Skip to content
  1. Jan 14, 2011
    • Duncan Sands's avatar
      Move some shift transforms out of instcombine and into InstructionSimplify. · 7f60dc1e
      Duncan Sands authored
      While there, I noticed that the transform "undef >>a X -> undef" was wrong.
      For example if X is 2 then the top two bits must be equal, so the result can
      not be anything.  I fixed this in the constant folder as well.  Also, I made
      the transform for "X << undef" stronger: it now folds to undef always, even
      though X might be zero.  This is in accordance with the LangRef, but I must
      admit that it is fairly aggressive.  Also, I added "i32 X << 32 -> undef"
      following the LangRef and the constant folder, likewise fairly aggressive.
      
      llvm-svn: 123417
      7f60dc1e
    • Chris Lattner's avatar
      fix PR8961 - a fast isel miscompilation where we'd insert a new instruction · 0c34cb42
      Chris Lattner authored
      after sext's generated for addressing that got folded.  Previously we compiled
      test5 into:
      
      _test5:                                 ## @test5
      ## BB#0:
              movq    -8(%rsp), %rax          ## 8-byte Reload
              movq    (%rdi,%rax), %rdi
              addq    %rdx, %rdi
              movslq  %esi, %rax
              movq    %rax, -8(%rsp)          ## 8-byte Spill
              movq    %rdi, %rax
              ret
      
      which is insane and wrong.  Now we produce:
      
      _test5:                                 ## @test5
      ## BB#0:
      	movslq	%esi, %rax
      	movq	(%rdi,%rax), %rax
      	addq	%rdx, %rax
      	ret
      
      llvm-svn: 123414
      0c34cb42
    • Jakob Stoklund Olesen's avatar
      Better terminator avoidance. · 088b30aa
      Jakob Stoklund Olesen authored
      This approach also works when the terminator doesn't have a slot index. (Which
      can happen??)
      
      llvm-svn: 123413
      088b30aa
    • Evan Cheng's avatar
      Add comment about Thumb2 fixup comments being completely bogus. · 52899a9c
      Evan Cheng authored
      llvm-svn: 123411
      52899a9c
    • Tobias Grosser's avatar
      Add single entry / single exit accessors. · b1d11c19
      Tobias Grosser authored
      Add methods for accessing the (single) entry / exit edge of a region. If no such
      edge exists, null is returned.  Both accessors return the start block of the
      corresponding edge. The edge can finally be formed by utilizing
      Region::getEntry() or Region::getExit();
      
      Contributed by: Andreas Simbuerger <simbuerg@fim.uni-passau.de>
      
      llvm-svn: 123410
      b1d11c19
  2. Jan 13, 2011
Loading