Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Disable the peephole optimizer until 186.crafty on armv6 is fixed. This is what | Bill Wendling | 2010-10-31 | 1 | -0/+2 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | looks like is happening: Without the peephole optimizer: (1) sub r6, r6, #32 orr r12, r12, lr, lsl r9 orr r2, r2, r3, lsl r10 (x) cmp r6, #0 ldr r9, LCPI2_10 ldr r10, LCPI2_11 (2) sub r8, r8, #32 (a) movge r12, lr, lsr r6 (y) cmp r8, #0 LPC2_10: ldr lr, [pc, r10] (b) movge r2, r3, lsr r8 With the peephole optimizer: ldr r9, LCPI2_10 ldr r10, LCPI2_11 (1*) subs r6, r6, #32 (2*) subs r8, r8, #32 (a*) movge r12, lr, lsr r6 (b*) movge r2, r3, lsr r8 (1) is used by (x) for the conditional move at (a). (2) is used by (y) for the conditional move at (b). After the peephole optimizer, these the flags resulting from (1*) are ignored and only the flags from (2*) are considered for both conditional moves. llvm-svn: 117876 | |||||
* | Get rid of static constructors for pass registration. Instead, every pass ↵ | Owen Anderson | 2010-10-19 | 1 | -1/+3 | |
| | | | | | | | | | | | | | | | | | exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. llvm-svn: 116820 | |||||
* | Don't recompute MachineRegisterInfo in the Optimize* method. | Bill Wendling | 2010-10-18 | 1 | -1/+1 | |
| | | | | llvm-svn: 116750 | |||||
* | Begin adding static dependence information to passes, which will allow us to | Owen Anderson | 2010-10-12 | 1 | -1/+4 | |
| | | | | | | | | | perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. llvm-svn: 116334 | |||||
* | Now with fewer extraneous semicolons! | Owen Anderson | 2010-10-07 | 1 | -1/+1 | |
| | | | | llvm-svn: 115996 | |||||
* | Move the search for the appropriate AND instruction | Gabor Greif | 2010-09-21 | 1 | -3/+3 | |
| | | | | | | | | | | into OptimizeCompareInstr. This necessitates the passing of CmpValue around, so widen the virtual functions to accomodate. No functionality changes. llvm-svn: 114428 | |||||
* | must not peephole away side effects | Gabor Greif | 2010-09-14 | 1 | -1/+2 | |
| | | | | llvm-svn: 113848 | |||||
* | Rename ConvertToSetZeroFlag to something more general. | Bill Wendling | 2010-09-11 | 1 | -2/+2 | |
| | | | | llvm-svn: 113670 | |||||
* | No need to recompute the SrcReg and CmpValue. | Bill Wendling | 2010-09-10 | 1 | -1/+1 | |
| | | | | llvm-svn: 113666 | |||||
* | Move some of the decision logic for converting an instruction into one that sets | Bill Wendling | 2010-09-10 | 1 | -7/+2 | |
| | | | | | | | the 'zero' bit down into the back-end. There are other cases where this logic isn't sufficient, so they should be handled separately. llvm-svn: 113665 | |||||
* | Modify the comparison optimizations in the peephole optimizer to update the | Bill Wendling | 2010-09-10 | 1 | -6/+10 | |
| | | | | | | | iterator when an optimization took place. This allows us to do more insane things with the code than just remove an instruction or two. llvm-svn: 113640 | |||||
* | Remove now unneeded command line flag that enables 'optimize compares.' | Bill Wendling | 2010-08-27 | 1 | -8/+1 | |
| | | | | llvm-svn: 112287 | |||||
* | Turn optimize compares back on with fix. We needed to test that a machine op was | Bill Wendling | 2010-08-10 | 1 | -1/+1 | |
| | | | | | | a register before checking if it was defined. llvm-svn: 110733 | |||||
* | Revert r110718; it broke clang-i386-darwin9. | Dan Gohman | 2010-08-10 | 1 | -1/+1 | |
| | | | | llvm-svn: 110726 | |||||
* | Turn optimize cmps on by default so that we can get some testing by the nightly | Bill Wendling | 2010-08-10 | 1 | -1/+1 | |
| | | | | | | ARM testers. llvm-svn: 110718 | |||||
* | Merge the OptimizeExts and OptimizeCmps passes into one PeepholeOptimizer | Bill Wendling | 2010-08-09 | 1 | -0/+293 | |
pass. This pass should expand with all of the small, fine-grained optimization passes to reduce compile time and increase happiment. llvm-svn: 110627 |