summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCleanup.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Change how PHINodes store their operands.Jay Foad2011-06-201-3/+3
| | | | | | | | | | | | | | | | | | | 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
* update for api change.Chris Lattner2011-06-181-2/+1
| | | | llvm-svn: 133365
* implement rdar://9289524 - case followed immediately by break results in ↵Chris Lattner2011-04-171-0/+23
| | | | | | | | empty IR block, a -O0 code quality issue. llvm-svn: 129652
* Tame an assert; the scope depth of a jump destination does notJohn McCall2011-02-251-1/+1
| | | | | | | | necessarily enclose the innermost normal cleanup depth, because the top of the jump scope stack might be an EH cleanup or EH scope. Fixes PR9303. llvm-svn: 126472
* Reorganize CodeGen{Function,Module} to eliminate the unfortunateJohn McCall2011-02-081-2/+2
| | | | | | | | Block{Function,Module} base class. Minor other refactorings. Fixed a few address-space bugs while I was there. llvm-svn: 125085
* Move all the cleanups framework code into a single file.John McCall2011-01-281-0/+1144
Pure motion. llvm-svn: 124484
OpenPOWER on IntegriCloud