Skip to content
  1. Jul 31, 2012
    • Chandler Carruth's avatar
      Bring TinyPtrVector under test. Somehow we never picked up unit tests · a565375a
      Chandler Carruth authored
      for this class. These tests exercise most of the basic properties, but
      the API for TinyPtrVector is very strange currently. My plan is to start
      fleshing out the API to match that of SmallVector, but I wanted a test
      for what is there first.
      
      Sadly, it doesn't look reasonable to just re-use the SmallVector tests,
      as this container can only ever store pointers, and much of the
      SmallVector testing is to get construction and destruction right.
      
      Just to get this basic test working, I had to add value_type to the
      interface.
      
      While here I found a subtle bug in the combination of 'erase', 'begin',
      and 'end'. Both 'begin' and 'end' wanted to use a null pointer to
      indicate the "end" iterator of an empty vector, regardless of whether
      there is actually a vector allocated or the pointer union is null.
      Everything else was fine with this except for erase. If you erase the
      last element of a vector after it has held more than one element, we
      return the end iterator of the underlying SmallVector which need not be
      a null pointer. Instead, simply use the pointer, and poniter + size()
      begin/end definitions in the tiny case, and delegate to the inner vector
      whenever it is present.
      
      llvm-svn: 161024
      a565375a
    • Jakob Stoklund Olesen's avatar
      Clear kill flags in removeCopyByCommutingDef(). · 0c807dfa
      Jakob Stoklund Olesen authored
      We are extending live ranges, so kill flags are not accurate. They
      aren't needed until they are recomputed after RA anyway.
      
      <rdar://problem/11950722>
      
      llvm-svn: 161023
      0c807dfa
    • Manman Ren's avatar
      Reverse order of the two branches at end of a basic block if it is profitable. · 2b6a0dfd
      Manman Ren authored
      We branch to the successor with higher edge weight first.
      Convert from
           je    LBB4_8  --> to outer loop
           jmp   LBB4_14 --> to inner loop
      to
           jne   LBB4_14
           jmp   LBB4_8
      
      PR12750
      rdar: 11393714
      
      llvm-svn: 161018
      2b6a0dfd
    • Andrew Trick's avatar
      Use the latest MachineRegisterInfo APIs. No functionality. · 79795897
      Andrew Trick authored
      llvm-svn: 161010
      79795897
    • Andrew Trick's avatar
      Added MachineRegisterInfo::hasOneDef() · 79df0de4
      Andrew Trick authored
      llvm-svn: 161009
      79df0de4
    • Andrew Trick's avatar
      Inline MachineRegisterInfo::hasOneUse · 535a23c3
      Andrew Trick authored
      llvm-svn: 161007
      535a23c3
    • Chandler Carruth's avatar
      Extend the InstVisitor to visit the specialized classes wrapping · e9cdc7f0
      Chandler Carruth authored
      CallInst for intrinsics. This allows users of the InstVisitor that would
      like to special case certain very common intrinsics to do so naturally
      in keeping with the type hierarchy's utility classes.
      
      llvm-svn: 161006
      e9cdc7f0
    • Jakob Stoklund Olesen's avatar
      Avoid looking at stale data in verifyAnalysis(). · 68c2cd05
      Jakob Stoklund Olesen authored
      llvm-svn: 161004
      68c2cd05
    • Jakob Stoklund Olesen's avatar
      Allow traces to enter nested loops. · c14cf57b
      Jakob Stoklund Olesen authored
      This lets traces include the final iteration of a nested loop above the
      center block, and the first iteration of a nested loop below the center
      block.
      
      We still don't allow traces to contain backedges, and traces are
      truncated where they would leave a loop, as seen from the center block.
      
      llvm-svn: 161003
      c14cf57b
    • Jim Grosbach's avatar
      Keep empty assembly macro argument values in the middle of the list. · 20666162
      Jim Grosbach authored
      Empty macro arguments at the end of the list should be as-if not specified at
      all, but those in the middle of the list need to be kept so as not to screw
      up the positional numbering. E.g.:
      .macro foo
      foo_-bash___:
        nop
      .endm
      
      foo 1, 2, 3, 4
      foo 1, , 3, 4
      
      Should create two labels, "foo_1_2_3_4" and "foo_1__3_4".
      
      rdar://11948769
      
      llvm-svn: 161002
      20666162
    • Chandler Carruth's avatar
      Move the SmallVector unit tests to be type-parameterized so that we can · 0b01261c
      Chandler Carruth authored
      test more than a single instantiation of SmallVector.
      
      Add testing for 0, 1, 2, and 4 element sized "small" buffers. These
      appear to be essentially untested in the unit tests until now.
      
      Fix several tests to be robust in the face of a '0' small buffer. As
      a consequence of this size buffer, the growth patterns are actually
      observable in the test -- yes this means that many tests never caused
      a grow to occur before. For some tests I've merely added a reserve call
      to normalize behavior. For others, the growth is actually interesting,
      and so I captured the fact that growth would occur and adjusted the
      assertions to not assume how rapidly growth occured.
      
      Also update the specialization for a '0' small buffer length to have all
      the same interface points as the normal small vector.
      
      llvm-svn: 161001
      0b01261c
  2. Jul 30, 2012
  3. Jul 29, 2012
  4. Jul 28, 2012
Loading