1. 08 Nov, 2012 12 commits
  2. 07 Nov, 2012 14 commits
  3. 06 Nov, 2012 14 commits
    • David Goodell's avatar
      [svn-r10568] fix -Wshorten-64-to-32 warning in the OS wrappers · 595cd68f
      David Goodell authored
      There are other instances of this warning that definitely need to get
      fixed, but this one is especially annoying because it is in a header
      and therefore causes a warning in nearly all nemesis compilation
      units.
      
      Reviewed by balaji@.
      595cd68f
    • David Goodell's avatar
      [svn-r10567] add -Wshorten-64-to-32 to --enable-strict · 32821541
      David Goodell authored
      Any code that causes this new warning to trigger is likely to be a bug,
      or at least a case that ought to be checked/asserted and then explicitly
      casted.  This warning is essential to tracking down problems related to
      the new MPI_Count datatype/interfaces added in MPI-3.
      
      Reviewed by balaji@.
      32821541
    • David Goodell's avatar
      [svn-r10566] add MPIU_Assert_prod_overflow macro · 62309498
      David Goodell authored
      This macro checks for positive overflow due to multiplication and
      asserts if the product would exceed the given limit.  Useful for
      guarding older, sloppier code from before the MPI_Count transition.
      
      Reviewed by balaji@.
      62309498
    • David Goodell's avatar
      [svn-r10565] MPI_Count: add new large-count test · 41b16184
      David Goodell authored
      Attempts to validate that we have successfully implemented MPI-3's new
      "large count" routines and updated behavior for "legacy" count routines:
      
      MPI_Get_count
      MPI_Get_elements_x
      MPI_Status_set_elements_x
      MPI_Type_get_extent_x
      MPI_Type_get_true_extent_x
      MPI_Type_size_x
      
      Because we only use contigs and vectors in this test, we are actually
      missing quite a bit of coverage in terms of checking for MPI_Count-clean
      size/extent calculations.  At some point we should strengthen this test
      with a wider variety of tests using more complex datatypes.
      
      Reviewed by balaji@.
      41b16184
    • David Goodell's avatar
      [svn-r10564] MPI_Count: implement MPI_Type_get_true_extent_x · b0f7fb67
      David Goodell authored
      Also update MPI_Type_get_true_extent to have proper
      MPI_UNDEFINED-clamping per MPI-3.
      
      Reviewed by balaji@.
      b0f7fb67
    • David Goodell's avatar
      [svn-r10563] MPI_Count: implement MPI_Type_get_extent_x · bfce889c
      David Goodell authored
      Also update MPI_Type_get_extent to have proper MPI_UNDEFINED-clamping
      per MPI-3.
      
      Reviewed by balaji@.
      bfce889c
    • David Goodell's avatar
      [svn-r10562] MPI_Count: implement MPI_Status_set_elements_x · 1dba1aae
      David Goodell authored
      Also update MPI_Status_set_elements to have proper MPI_UNDEFINED-clamping per
      MPI-3.
      
      Reviewed by balaji@.
      1dba1aae
    • David Goodell's avatar
      [svn-r10561] MPI_Count: implement MPI_Get_elements_x · ddc435c2
      David Goodell authored
      Also update MPI_Get_elements to have proper MPI_UNDEFINED-clamping
      per MPI-3.
      
      Reviewed by balaji@.
      ddc435c2
    • David Goodell's avatar
      [svn-r10560] MPI_Count: implement MPI_Type_size_x · 9c2af512
      David Goodell authored
      Also update MPI_Type_size to have proper MPI_UNDEFINED-clamping per
      MPI-3.
      
      Reviewed by balaji@.
      9c2af512
    • David Goodell's avatar
      [svn-r10559] MPI_Count: fix MPI_Get_count · b40f4c44
      David Goodell authored
      MPI_UNDEFINED is now returned in case the count cannot be represented
      by an "int".  Work may still be needed for the case when
      sizeof(int)!=sizeof(MPI_Fint).
      
      Reviewed by balaji@.
      b40f4c44
    • David Goodell's avatar
      [svn-r10558] use MPI_Count in MPI_Status · ed089ed8
      David Goodell authored
      This commit actually does a few things to the status object:
      
      (1) `int count` becomes `MPI_Count count`;
      (2) `count` & `cancelled` have been reordered after the "public"
      fields (e.g., MPI_TAG) to ensure that direct access from Fortran is
      not somehow broken by the (potentially) non-INTEGER count field;
      (3) and a new future-proofing field, `abi_slush_fund`, has been added to
      attempt to allow us to add fields to the status object in the future
      without having to break ABI compatibility.
      
      There's still too much duplication of the status object's contents/layout
      in multiple pieces of the code, but I don't see a reasonable way to fix
      this in the near term.
      
      Warning: large count breaks the experimental Fortran binding code
      generated for handling the "sizeof(int)!=sizeof(MPI_Fint)" case.
      
      Reviewed by balaji@.
      ed089ed8
    • David Goodell's avatar
      [svn-r10557] MPI_Count: auto-generated boilerplate · 088c4106
      David Goodell authored
      This commit is largely auto-generated boilerplate for the following
      "large count" routines:
      
      * MPI_Get_elements_x
      * MPI_Type_get_extent_x
      * MPI_Type_get_true_extent_x
      * MPI_Type_size_x
      * MPI_Status_set_elements_x
      
      None of these routines actually _do_ anything (not even assert/error
      out) as implemented.  But this makes it very easy to review the logic of
      the implementation later on in the succeeding smaller commits.
      
      Reviewed by balaji@.
      088c4106
    • David Goodell's avatar
      [svn-r10556] MPI_Count: add MPI_Count/MPI_COUNT_KIND · b2786132
      David Goodell authored
      This commit only contains the build system and mpi.h modifications
      necessary for `MPI_Count` to be a valid new type.  It does *not*
      actually use this new type anywhere, such as in MPI_Status.
      
      Reviewed by balaji@.
      b2786132
    • David Goodell's avatar
      [svn-r10555] add MPIR_AINT_MAX/MPIR_OFFSET_MAX for overflow checks · b1af52c6
      David Goodell authored
      Currently unused, but we should probably be using these in more places
      for overflow checks.
      
      Reviewed by balaji@.
      b1af52c6