Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Enable deleting branches to successor blocks. With the previous patches, | Chris Lattner | 2006-10-17 | 1 | -4/+3 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | branch folding can now compile stuff like this: void foo(int W, int X, int Y, int Z) { if (W & 1) { for (; X;--X) bar(); } else if (W & 2) { for (; Y;--Y) bar(); } else if (W & 4) { for (; Z;--Z) bar(); } else if (W & 8) { for (; W;--W) bar(); } if (W) { bar(); } } contrived testcase where loops exits all end up merging together. To have the loop merges be: ... cmplw cr0, r30, r27 bne cr0, LBB1_14 ;bb38 LBB1_16: ;cond_next48.loopexit mr r27, r29 LBB1_20: ;cond_next48 cmplwi cr0, r27, 0 beq cr0, LBB1_22 ;UnifiedReturnBlock ... instead of: ... cmplw cr0, r30, r27 bne cr0, LBB1_14 ;bb38 LBB1_16: ;cond_next48.loopexit mr r27, r29 b LBB1_20 ;cond_next48 LBB1_17: ;cond_next48.loopexit1 b LBB1_20 ;cond_next48 LBB1_18: ;cond_next48.loopexit2 b LBB1_20 ;cond_next48 LBB1_19: ;cond_next48.loopexit3 LBB1_20: ;cond_next48 cmplwi cr0, r27, 0 beq cr0, LBB1_22 ;UnifiedReturnBlock ... This is CodeGen/PowerPC/branch-opt.ll llvm-svn: 31006 | |||||
* | Reenable this pass, fixing the bugs in it. | Chris Lattner | 2006-10-17 | 1 | -23/+32 | |
| | | | | | | It now correctly deletes unreachable blocks and blocks that are empty. llvm-svn: 31000 | |||||
* | disable this pass for now, it's causing issues | Chris Lattner | 2006-10-14 | 1 | -0/+4 | |
| | | | | llvm-svn: 30951 | |||||
* | falling off the end of a function is ok with an unreachable instruction. | Chris Lattner | 2006-10-14 | 1 | -28/+57 | |
| | | | | llvm-svn: 30950 | |||||
* | disable some objectionable code, maybe we can bring this pass to life | Chris Lattner | 2006-10-13 | 1 | -7/+42 | |
| | | | | llvm-svn: 30939 | |||||
* | Remove trailing whitespace | Misha Brukman | 2005-04-21 | 1 | -3/+3 | |
| | | | | llvm-svn: 21420 | |||||
* | Changes For Bug 352 | Reid Spencer | 2004-09-01 | 1 | -1/+1 | |
| | | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137 | |||||
* | Dereferencing end() is bad. | Chris Lattner | 2004-08-01 | 1 | -1/+1 | |
| | | | | llvm-svn: 15402 | |||||
* | Make OptimizeBlock take a MachineFunction::iterator instead of a | Alkis Evlogimenos | 2004-07-31 | 1 | -4/+4 | |
| | | | | | | | MachineBasicBlock* as a parameter so that nxext() and prior() helper functions can work naturally on it. llvm-svn: 15376 | |||||
* | Next on a pointer increments the pointer, not an iterator | Chris Lattner | 2004-07-31 | 1 | -1/+1 | |
| | | | | llvm-svn: 15375 | |||||
* | Use next() helper to make code more readable. Use | Alkis Evlogimenos | 2004-07-31 | 1 | -4/+6 | |
| | | | | | | | MachineFunction::iterator instead of MachineBasicBlock* to avoid dereferencing end iterators. llvm-svn: 15373 | |||||
* | Use MachineFunction::iterator instead of a MachineBasicBlock* because | Alkis Evlogimenos | 2004-07-31 | 1 | -2/+3 | |
| | | | | | | FallThrough maybe == to MF.end(). llvm-svn: 15372 | |||||
* | Implement a simple target-independent CFG cleanup pass | Chris Lattner | 2004-07-31 | 1 | -0/+201 | |
llvm-svn: 15368 |