Skip to content
  1. Jun 15, 2011
  2. Jun 14, 2011
  3. Jun 13, 2011
  4. Jun 09, 2011
  5. Jun 03, 2011
  6. Jun 02, 2011
  7. May 29, 2011
  8. May 27, 2011
  9. May 26, 2011
  10. May 25, 2011
  11. May 24, 2011
  12. May 23, 2011
    • Dan Gohman's avatar
      When checking for signed multiplication overflow, watch out for INT_MIN and -1. · 6c4a3190
      Dan Gohman authored
      This fixes PR9845.
      
      llvm-svn: 131919
      6c4a3190
    • Chris Lattner's avatar
      Teach valuetracking that byval arguments with a specified alignment are · 83791ced
      Chris Lattner authored
      aligned.
      
      Teach memcpyopt to not give up all hope when confonted with an underaligned
      memcpy feeding an overaligned byval.  If the *source* of the memcpy can be
      determined to be adequeately aligned, or if it can be forced to be, we can
      eliminate the memcpy.
      
      This addresses PR9794.  We now compile the example into:
      
      define i32 @f(%struct.p* nocapture byval align 8 %q) nounwind ssp {
      entry:
        %call = call i32 @g(%struct.p* byval align 8 %q) nounwind
        ret i32 %call
      }
      
      in both x86-64 and x86-32 mode.  We still don't get a tailcall though,
      because tailcalls apparently can't handle byval.
      
      llvm-svn: 131884
      83791ced
  13. 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
  14. May 21, 2011
  15. May 20, 2011
Loading