Skip to content
  1. May 22, 2011
    • Chris Lattner's avatar
      Fix PR9815: I was trying to get out of "generating code and then · c4ca7ab7
      Chris Lattner authored
      failing to form a memset, then having to delete it" but my approximation
      isn't safe for self recurrent loops.  Instead of doign a hack, just
      do it the right way.
      
      llvm-svn: 131858
      c4ca7ab7
    • Frits van Bommel's avatar
      Add a parameter to ConstantFoldTerminator() that callers can use to ask it to... · ad964559
      Frits van Bommel authored
      Add a parameter to ConstantFoldTerminator() that callers can use to ask it to also clean up the condition of any conditional terminator it folds to be unconditional, if that turns the condition into dead code. This just means it calls RecursivelyDeleteTriviallyDeadInstructions() in strategic spots. It defaults to the old behavior.
      
      I also changed -simplifycfg, -jump-threading and -codegenprepare to use this to produce slightly better code without any extra cleanup passes (AFAICT this was the only place in -simplifycfg where now-dead conditions of replaced terminators weren't being cleaned up). The only other user of this function is -sccp, but I didn't read that thoroughly enough to figure out whether it might be holding pointers to instructions that could be deleted by this.
      
      llvm-svn: 131855
      ad964559
    • Chris Lattner's avatar
      fix PR9841 by having GVN not process dead loads. This was · f0d59072
      Chris Lattner authored
      causing it to get into infinite loops when it would widen a 
      load (which can necessarily leave around dead loads).
      
      llvm-svn: 131847
      f0d59072
  2. May 21, 2011
  3. May 20, 2011
  4. May 18, 2011
  5. May 17, 2011
  6. May 16, 2011
  7. May 13, 2011
  8. May 12, 2011
    • Andrew Trick's avatar
      indvars: Added SimplifyIVUsers. · 81683ed2
      Andrew Trick authored
      Interleave IV simplifications. Currently involves EliminateComparison
      and EliminateRemainder. Next I'll add EliminateExtend.
      
      llvm-svn: 131210
      81683ed2
  9. May 06, 2011
  10. May 05, 2011
  11. May 04, 2011
  12. May 03, 2011
  13. May 01, 2011
  14. Apr 29, 2011
  15. Apr 28, 2011
  16. Apr 27, 2011
  17. Apr 26, 2011
    • Chris Lattner's avatar
      Improve the bail-out predicate to really only kick in when phi · eb045f9c
      Chris Lattner authored
      translation fails.  We were bailing out in some cases that would
      cause us to miss GVN'ing some non-local cases away.
      
      llvm-svn: 130206
      eb045f9c
    • Chris Lattner's avatar
      Enhance MemDep: When alias analysis returns a partial alias result, · 6f83d06f
      Chris Lattner authored
      return it as a clobber.  This allows GVN to do smart things.
      
      Enhance GVN to be smart about the case when a small load is clobbered
      by a larger overlapping load.  In this case, forward the value.  This
      allows us to compile stuff like this:
      
      int test(void *P) {
        int tmp = *(unsigned int*)P;
        return tmp+*((unsigned char*)P+1);
      }
      
      into:
      
      _test:                                  ## @test
      	movl	(%rdi), %ecx
      	movzbl	%ch, %eax
      	addl	%ecx, %eax
      	ret
      
      which has one load.  We already handled the case where the smaller
      load was from a must-aliased base pointer.
      
      llvm-svn: 130180
      6f83d06f
  18. Apr 23, 2011
  19. Apr 20, 2011
Loading