#
a97a2c99 |
| 21-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Reinstate r133435 and r133449 (reverted in r133499) now that the clang self-hosted build failure has been fixed (r133512).
llvm-svn: 133513
|
#
184f3b37 |
| 21-Jun-2011 |
Chad Rosier <mcrosier@apple.com> |
Revert r133435 and r133449 to appease buildbots.
llvm-svn: 133499
|
#
e03c05c3 |
| 20-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Change how PHINodes store their operands.
Change PHINodes to store simple pointers to their incoming basic blocks, instead of full-blown Uses.
Note that this loses an optimization in SplitCriticalE
Change how PHINodes store their operands.
Change PHINodes to store simple pointers to their incoming basic blocks, instead of full-blown Uses.
Note that this loses an optimization in SplitCriticalEdge(), because we can no longer walk the use list of a BasicBlock to find phi nodes. See the comment I removed starting "However, the foreach loop is slow for blocks with lots of predecessors".
Extend replaceAllUsesWith() on a BasicBlock to also update any phi nodes in the block's successors. This mimics what would have happened when PHINodes were proper Users of their incoming blocks. (Note that this only works if OldBB->replaceAllUsesWith(NewBB) is called when OldBB still has a terminator instruction, so it still has some successors.)
llvm-svn: 133435
show more ...
|
#
19ace4c3 |
| 15-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Simplify; no significant functionality change.
llvm-svn: 133086
|
#
843bc7d6 |
| 24-May-2011 |
Cameron Zwarich <zwarich@apple.com> |
Make LoadAndStorePromoter preserve debug info and create llvm.dbg.values when promoting allocas to SSA variables. Fixes <rdar://problem/9479036>.
llvm-svn: 131953
|
#
ad964559 |
| 22-May-2011 |
Frits van Bommel <fvbommel@gmail.com> |
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
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
show more ...
|
#
8fa6ebf9 |
| 18-May-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
fix typo
llvm-svn: 131543
|
#
1fabbe92 |
| 18-May-2011 |
Devang Patel <dpatel@apple.com> |
Use IRBuiler while constant folding terminator.
llvm-svn: 131541
|
#
8e60ff11 |
| 16-May-2011 |
Devang Patel <dpatel@apple.com> |
Preserve debug info for unused zero extended boolean argument. Radar 9422775.
llvm-svn: 131422
|
#
72aa1a8a |
| 28-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Remove DbgDeclare only if all uses are converted.
llvm-svn: 130431
|
#
6a85be25 |
| 19-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Trivial simplification.
llvm-svn: 129759
|
#
7c14a558 |
| 11-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Don't include Operator.h from InstrTypes.h.
llvm-svn: 129271
|
Revision tags: llvmorg-2.9.0 |
|
#
b85c0caf |
| 04-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Attempt to fix breakage from r128782 reported by Francois Pichet on llvm-commits. (Not sure why it only breaks on Windows; maybe it has something to do with the iterator representation...)
llvm-svn
Attempt to fix breakage from r128782 reported by Francois Pichet on llvm-commits. (Not sure why it only breaks on Windows; maybe it has something to do with the iterator representation...)
llvm-svn: 128802
show more ...
|
#
17bf4922 |
| 02-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR9446: RecursivelyDeleteTriviallyDeadInstructions can delete the instruction after the given instruction; make sure to handle that case correctly. (It's difficult to trigger; the included testcase i
PR9446: RecursivelyDeleteTriviallyDeadInstructions can delete the instruction after the given instruction; make sure to handle that case correctly. (It's difficult to trigger; the included testcase involves a dead block, but I don't think that's a requirement.)
While I'm here, get rid of the unnecessary warning about SimplifyInstructionsInBlock, since it should work correctly as far as I know.
llvm-svn: 128782
show more ...
|
Revision tags: llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2 |
|
#
17bbd7f4 |
| 21-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Simplify.
llvm-svn: 128030
|
#
2c7ee270 |
| 18-Mar-2011 |
Devang Patel <dpatel@apple.com> |
If an AllocaInst referred by DbgDeclareInst is used by a LoadInst then the LoadInst should also get a corresponding llvm.dbg.value intrinsic.
llvm-svn: 127924
|
#
3ac171d4 |
| 18-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Remove dead code.
llvm-svn: 127923
|
#
c1431e6e |
| 18-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Consider debug info intrinsics pointing to null value as dead instructions.
llvm-svn: 127922
|
#
aad34d88 |
| 17-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Try to not lose variable's debug info during instcombine. This is done by lowering dbg.declare intrinsic into dbg.value intrinsic. Radar 9143931.
llvm-svn: 127834
|
#
8c0b16b0 |
| 17-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Refactor into a separate utility function.
llvm-svn: 127832
|
Revision tags: llvmorg-2.9.0-rc1 |
|
#
e2017b6f |
| 04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
DenseMap<uintptr_t,...> doesn't allow all values as keys.
Avoid colliding with the sentinels, hopefully unbreaking llvm-gcc-x86_64-linux-selfhost.
llvm-svn: 126982
|
#
ecbbf082 |
| 21-Feb-2011 |
Duncan Sands <baldrick@free.fr> |
If the phi node was used by an unreachable instruction that ends up using itself without going via a phi node then we could return false here in spite of making a change. Also, tweak the comment bec
If the phi node was used by an unreachable instruction that ends up using itself without going via a phi node then we could return false here in spite of making a change. Also, tweak the comment because this method can (and always could) return true without deleting the original phi node. For example, if the phi node was used by a read-only invoke instruction which is used by another phi node phi2 which is only used by and only uses the invoke, then phi2 would be deleted but not the invoke instruction and not the original phi node.
llvm-svn: 126129
show more ...
|
#
6dcd49bc |
| 21-Feb-2011 |
Duncan Sands <baldrick@free.fr> |
Simplify RecursivelyDeleteDeadPHINode. The only functionality change should be that if the phi is used by a side-effect free instruction with no uses then the phi and the instruction now get zapped
Simplify RecursivelyDeleteDeadPHINode. The only functionality change should be that if the phi is used by a side-effect free instruction with no uses then the phi and the instruction now get zapped (checked by the unittest).
llvm-svn: 126124
show more ...
|
#
183c24c5 |
| 20-Feb-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Make RecursivelyDeleteDeadPHINode delete a phi node that has no users and add a test for that. With this change, test/CodeGen/X86/codegen-dce.ll no longer finds any instructions to DCE, so delete the
Make RecursivelyDeleteDeadPHINode delete a phi node that has no users and add a test for that. With this change, test/CodeGen/X86/codegen-dce.ll no longer finds any instructions to DCE, so delete the test.
Also renamed J and JP to I and IP in RecursivelyDeleteDeadPHINode.
llvm-svn: 126088
show more ...
|
#
c8a15699 |
| 20-Feb-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Teach RecursivelyDeleteDeadPHINodes to handle multiple self-references. Patch by Andrew Clinton!
llvm-svn: 126077
|