Skip to content
  1. Jun 20, 2011
    • Chris Lattner's avatar
      Update to match mainline ConstantStruct::get API change. Also, use · e64d7ba1
      Chris Lattner authored
      ConvertType on InitListExprs as they are being converted.  This is
      needed for a forthcoming patch, and improves the IR generated anyway
      (see additional type names in testcases). 
      
      This patch also converts a bunch of std::vector's in CGObjCMac to use
      C arrays.  There are a ton more that should be converted as well.
      
      llvm-svn: 133413
      e64d7ba1
    • Chris Lattner's avatar
      Revamp the "ConstantStruct::get" methods. Previously, these were scattered · cc19efaa
      Chris Lattner authored
      all over the place in different styles and variants.  Standardize on two
      preferred entrypoints: one that takes a StructType and ArrayRef, and one that
      takes StructType and varargs.
      
      In cases where there isn't a struct type convenient, we now add a
      ConstantStruct::getAnon method (whose name will make more sense after a few
      more patches land).  
      
      It would be "really really nice" if the ConstantStruct::get and 
      ConstantVector::get methods didn't make temporary std::vectors.
      
      llvm-svn: 133412
      cc19efaa
    • Jordy Rose's avatar
    • Chris Lattner's avatar
      introduce an isLayoutIdentical() method, which is currently just a pointer · 676a3177
      Chris Lattner authored
      equality check.
      
      llvm-svn: 133409
      676a3177
    • Jordy Rose's avatar
      [analyzer] Re-enable checking for strncpy, along with a new validation of the... · 328deeed
      Jordy Rose authored
      [analyzer] Re-enable checking for strncpy, along with a new validation of the size argument. strncat is not yet up-to-date, but I'm leaving it enabled for now (there shouldn't be any false positives, at least...)
      
      llvm-svn: 133408
      328deeed
    • Jakob Stoklund Olesen's avatar
      Add a RegisterTuples class to Target.td and TableGen. · 3bd1b65e
      Jakob Stoklund Olesen authored
      A RegisterTuples instance is used to synthesize super-registers by
      zipping together lists of sub-registers. This is useful for generating
      pseudo-registers representing register sequence constraints like 'two
      consecutive GPRs', or 'an even-odd pair of floating point registers'.
      
      The RegisterTuples def can be used in register set operations when
      building register classes. That is the only way of accessing the
      synthesized super-registers.
      
      For example, the ARM QQ register class of pseudo-registers could have
      been formed like this:
      
        // Form pairs Q0_Q1, Q2_Q3, ...
        def QQPairs : RegisterTuples<[qsub_0, qsub_1],
                                     [(decimate QPR, 2),
                                      (decimate (shl QPR, 1), 2)]>;
      
        def QQ : RegisterClass<..., (add QQPairs)>;
      
      Similarly, pseudo-registers representing '3 consecutive D-regs with
      wraparound' look like:
      
        // Form D0_D1_D2, D1_D2_D3, ..., D30_D31_D0, D31_D0_D1.
        def DSeqTriples : RegisterTuples<[dsub_0, dsub_1, dsub_2],
                                         [(rotl DPR, 0),
                                          (rotl DPR, 1),
                                          (rotl DPR, 2)]>;
      
      TableGen automatically computes aliasing information for the synthesized
      registers.
      
      Register tuples are still somewhat experimental. We still need to see
      how they interact with MC.
      
      llvm-svn: 133407
      3bd1b65e
    • Jordy Rose's avatar
      [analyzer] Eliminate "byte string function" from CStringChecker's diagnostics,... · dceb0cf3
      Jordy Rose authored
      [analyzer] Eliminate "byte string function" from CStringChecker's diagnostics, and make it easier to provide custom messages for overflow checking, in preparation for re-enabling strncpy checking.
      
      llvm-svn: 133406
      dceb0cf3
    • Chandler Carruth's avatar
      Restructure the API in Type based on a conversation with Richard Smith. · 92c810be
      Chandler Carruth authored
      This makes 'isPointerLikeType' a little less confusing, and pulls the
      decay check into a separate interface that is much more clear and
      concrete. Also, just implement these as logical wrappers around other
      predicates. Having a switch based implementation isn't likely to be
      necessary. We can try to optimize them later if they show up on
      a profile.
      
      llvm-svn: 133405
      92c810be
    • Johnny Chen's avatar
      Add TestInlinedFrame.py to exercise the newly added SBFrame APIs: IsInlined()... · 4cfd07ef
      Johnny Chen authored
      Add TestInlinedFrame.py to exercise the newly added SBFrame APIs: IsInlined() and GetFunctionName().
      
      llvm-svn: 133404
      4cfd07ef
  2. Jun 19, 2011
  3. Jun 18, 2011
Loading