- May 22, 2011
-
-
Chris Lattner authored
llvm-svn: 131862
-
Chris Lattner authored
result is non-zero. Implement an example optimization (PR9814), which allows us to transform: A / ((1 << B) >>u 2) into: A >>u (B-2) which we compile into: _divu3: ## @divu3 leal -2(%rsi), %ecx shrl %cl, %edi movl %edi, %eax ret instead of: _divu3: ## @divu3 movb %sil, %cl movl $1, %esi shll %cl, %esi shrl $2, %esi movl %edi, %eax xorl %edx, %edx divl %esi, %eax ret llvm-svn: 131860
-
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
-
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
-
Chris Lattner authored
"stored once" even if its address is compared. llvm-svn: 131849
-
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
-
Nick Lewycky authored
of the inlinee to the code representing the original function. llvm-svn: 131838
-
- May 21, 2011
-
-
Eli Friedman authored
consistently. llvm-svn: 131803
-
Benjamin Kramer authored
It's better to do this in codegen, mul.with.overflow(X, 2) is more canonical because it has only one use on "X". llvm-svn: 131798
-
Benjamin Kramer authored
llvm-svn: 131789
-
- May 20, 2011
-
-
Andrew Trick authored
No functionality enabled by default. Use -disable-iv-rewrite. Extended IVUsers to keep track of the phi that represents the users' IV. Added the WidenIV transform to replace a narrow IV with a wide IV by doing a one-for-one replacement of IV users instead of expanding the SCEV expressions. [sz]exts are removed and truncs are inserted. llvm-svn: 131744
-
Andrew Trick authored
llvm-svn: 131716
-
-
- May 19, 2011
-
-
Devang Patel authored
Reapply r131605. This time with a fix, which is to use NoFolder. llvm-svn: 131673
-
Evan Cheng authored
llvm-svn: 131659
-
Rafael Espindola authored
llvm-svn: 131620
-
Eli Friedman authored
I'm not sure this is quite ideal, but I can't really think of any better way to do it. llvm-svn: 131616
-
Devang Patel authored
llvm-svn: 131609
-
Devang Patel authored
llvm-svn: 131607
-
Devang Patel authored
llvm-svn: 131605
-
Eli Friedman authored
llvm-svn: 131604
-
Devang Patel authored
llvm-svn: 131598
-
Eli Friedman authored
llvm-svn: 131596
-
- May 18, 2011
-
-
Devang Patel authored
llvm-svn: 131580
-
Dan Gohman authored
of the comparison, so that the resulting expression is fully normalized. This fixes PR9939. llvm-svn: 131576
-
Devang Patel authored
llvm-svn: 131571
-
Devang Patel authored
llvm-svn: 131566
-
Devang Patel authored
llvm-svn: 131561
-
Eli Friedman authored
llvm-svn: 131559
-
Devang Patel authored
llvm-svn: 131552
-
Devang Patel authored
llvm-svn: 131551
-
Devang Patel authored
llvm-svn: 131548
-
Eli Friedman authored
llvm-svn: 131547
-
Devang Patel authored
llvm-svn: 131545
-
Eli Friedman authored
llvm-svn: 131544
-
Matt Beaumont-Gay authored
llvm-svn: 131543
-
Eli Friedman authored
llvm-svn: 131542
-
Devang Patel authored
llvm-svn: 131541
-
Stuart Hastings authored
llvm-svn: 131538
-
Duncan Sands authored
Original log entry: Refactor getActionType and getTypeToTransformTo ; place all of the 'decision' code in one place. llvm-svn: 131536
-