Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Now that bb with phis are not considered simple, duplicate them even if | Rafael Espindola | 2011-06-24 | 1 | -12/+18 | |
| | | | | | | we cannot duplicate to every predecessor. llvm-svn: 133797 | |||||
* | Simplify now that blocks with phis are not considered simple. | Rafael Espindola | 2011-06-24 | 1 | -15/+0 | |
| | | | | llvm-svn: 133793 | |||||
* | Move more logic to shouldTailDuplicate and only duplicate regular bb before | Rafael Espindola | 2011-06-23 | 1 | -21/+45 | |
| | | | | | | | | | | register allocation if it has a indirectbr or if we can duplicate it to every predecessor. This fixes the SingleSource/Benchmarks/Shootout-C++/matrix.cpp regression but keeps the previous improvements to sunspider. llvm-svn: 133682 | |||||
* | Reenable tail duplication of bb with just an unconditional jump, but | Rafael Espindola | 2011-06-22 | 1 | -4/+4 | |
| | | | | | | don't remove blocks that have their address taken. llvm-svn: 133659 | |||||
* | Revert r133607. This is causing failures in the Clang gccTestSuite. | Chad Rosier | 2011-06-22 | 1 | -3/+3 | |
| | | | | | | Specifically, gcc.c-torture/compile/pr21356.c. llvm-svn: 133646 | |||||
* | Reenable the optimization added in 133415, but change the definition of a ↵ | Rafael Espindola | 2011-06-22 | 1 | -3/+3 | |
| | | | | | | | | | "simple" bb to be one with only one unconditional branch and no phis. Duplicating the phis in this case is possible, but requeres liveness analysis or breaking edges. llvm-svn: 133607 | |||||
* | Disable again. | Rafael Espindola | 2011-06-20 | 1 | -1/+1 | |
| | | | | llvm-svn: 133446 | |||||
* | Re enable 133415 with two fixes | Rafael Espindola | 2011-06-20 | 1 | -3/+8 | |
| | | | | | | | | * Don't introduce a duplicated bb in the CFG * When making a branch unconditional, clear the PredCond array so that it is really unconditional. llvm-svn: 133432 | |||||
* | Disable the logic added by rafael in commit 133415 to see if it brings the | Duncan Sands | 2011-06-20 | 1 | -1/+1 | |
| | | | | | | | | dragonegg buildbots back to life. Original commit message: Teach early dup how to duplicate basic blocks with one successor and only phi instructions into more complex blocks. llvm-svn: 133430 | |||||
* | Fix MSVC build. next() function already exists in the MSVC headers. This ↵ | Francois Pichet | 2011-06-20 | 1 | -1/+1 | |
| | | | | | | create a overload conflict. Make sure we pick up the llvm one. llvm-svn: 133416 | |||||
* | Teach early dup how to duplicate basic blocks with one successor and only ↵ | Rafael Espindola | 2011-06-20 | 1 | -2/+142 | |
| | | | | | | | | phi instructions into more complex blocks. llvm-svn: 133415 | |||||
* | Two fixes relating to debug value: | Rafael Espindola | 2011-06-17 | 1 | -0/+10 | |
| | | | | | | | | * We should change the generated code because of a debug use. * Avoid creating debug uses of undef, as they become a kill. Test to follow. llvm-svn: 133255 | |||||
* | Enable early duplication of small blocks. There are still improvements to | Rafael Espindola | 2011-06-17 | 1 | -29/+32 | |
| | | | | | | be made, but this is already a win. llvm-svn: 133240 | |||||
* | Removed tabs. Also fixed my editor... | Rafael Espindola | 2011-06-10 | 1 | -3/+2 | |
| | | | | llvm-svn: 132857 | |||||
* | Remove duplicated test. | Rafael Espindola | 2011-06-10 | 1 | -4/+3 | |
| | | | | | | Thanks Bob Wilson for noticing it! llvm-svn: 132851 | |||||
* | Make the optional verification step more strict. | Rafael Espindola | 2011-06-09 | 1 | -1/+8 | |
| | | | | llvm-svn: 132822 | |||||
* | Avoid a gcc warning about multiline comments. | Rafael Espindola | 2011-06-09 | 1 | -6/+6 | |
| | | | | llvm-svn: 132821 | |||||
* | On last fix to the early tail duplication. | Rafael Espindola | 2011-06-09 | 1 | -4/+60 | |
| | | | | | | | | With this I am able to bootstrap clang with early tail duplication enabled for any small bb and setting tail-dup-size to a relatively large value(8) to stress this code. llvm-svn: 132816 | |||||
* | Also consider phi nodes when deciding if a register is live out. | Rafael Espindola | 2011-06-09 | 1 | -10/+34 | |
| | | | | llvm-svn: 132814 | |||||
* | AnalyzeBranch modifies the bb, but we don't want to modify a bb with | Rafael Espindola | 2011-06-09 | 1 | -7/+6 | |
| | | | | | | eh edges. Swap the order of the checks to avoid it. llvm-svn: 132806 | |||||
* | A PHI in this basic block is a use in another basic block. | Rafael Espindola | 2011-06-09 | 1 | -1/+1 | |
| | | | | llvm-svn: 132805 | |||||
* | Refactor some checks into shouldTailDuplicate. Update comments. | Rafael Espindola | 2011-06-09 | 1 | -18/+29 | |
| | | | | | | No functionality change. llvm-svn: 132798 | |||||
* | Fix count. | Rafael Espindola | 2011-06-08 | 1 | -1/+1 | |
| | | | | llvm-svn: 132749 | |||||
* | Count how many phis we are creating. | Rafael Espindola | 2011-06-08 | 1 | -0/+2 | |
| | | | | llvm-svn: 132748 | |||||
* | Update comments. | Evan Cheng | 2011-02-04 | 1 | -2/+3 | |
| | | | | llvm-svn: 124843 | |||||
* | Respect the -tail-dup-size command line option even when optimizing for size. | Jakob Stoklund Olesen | 2011-01-30 | 1 | -1/+2 | |
| | | | | | | | This is similar to the -unroll-threshold option. There should be no change in behavior when -tail-dup-size is not explicit on the llc command line. llvm-svn: 124564 | |||||
* | Re-apply r124518 with fix. Watch out for invalidated iterator. | Evan Cheng | 2011-01-29 | 1 | -4/+7 | |
| | | | | llvm-svn: 124526 | |||||
* | Revert r124518. It broke Linux self-host. | Evan Cheng | 2011-01-29 | 1 | -7/+4 | |
| | | | | llvm-svn: 124522 | |||||
* | Re-commit r124462 with fixes. Tail recursion elim will now dup ret into ↵ | Evan Cheng | 2011-01-29 | 1 | -4/+7 | |
| | | | | | | unconditional predecessor to enable TCE on demand. llvm-svn: 124518 | |||||
* | Revert r124462. There are a few big regressions that I need to fix first. | Evan Cheng | 2011-01-28 | 1 | -7/+4 | |
| | | | | llvm-svn: 124478 | |||||
* | - Stop simplifycfg from duplicating "ret" instructions into unconditional | Evan Cheng | 2011-01-28 | 1 | -4/+7 | |
| | | | | | | | | branches. PR8575, rdar://5134905, rdar://8911460. - Allow codegen tail duplication to dup small return blocks after register allocation is done. llvm-svn: 124462 | |||||
* | Simplify a bunch of isVirtualRegister() and isPhysicalRegister() logic. | Jakob Stoklund Olesen | 2011-01-10 | 1 | -1/+1 | |
| | | | | | | | | These functions not longer assert when passed 0, but simply return false instead. No functional change intended. llvm-svn: 123155 | |||||
* | Reapply r110396, with fixes to appease the Linux buildbot gods. | Owen Anderson | 2010-08-06 | 1 | -1/+1 | |
| | | | | llvm-svn: 110460 | |||||
* | Revert r110396 to fix buildbots. | Owen Anderson | 2010-08-06 | 1 | -1/+1 | |
| | | | | llvm-svn: 110410 | |||||
* | Don't use PassInfo* as a type identifier for passes. Instead, use the ↵ | Owen Anderson | 2010-08-05 | 1 | -1/+1 | |
| | | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396 | |||||
* | Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway. | Jakob Stoklund Olesen | 2010-07-16 | 1 | -8/+9 | |
| | | | | | | TII::isMoveInstr is going tobe completely removed. llvm-svn: 108507 | |||||
* | Replace copyRegToReg with COPY everywhere in lib/CodeGen except for FastISel. | Jakob Stoklund Olesen | 2010-07-10 | 1 | -10/+8 | |
| | | | | llvm-svn: 108062 | |||||
* | Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it | Dan Gohman | 2010-05-06 | 1 | -2/+2 | |
| | | | | | | doesn't have to guess. llvm-svn: 103194 | |||||
* | Ignore debug value instructions while analyzing BB for tail duplication. | Devang Patel | 2010-03-16 | 1 | -1/+1 | |
| | | | | llvm-svn: 98675 | |||||
* | eliminate InvalidateLabel and LabelIDList from MMI and replace | Chris Lattner | 2010-03-14 | 1 | -11/+0 | |
| | | | | | | them with a counter. llvm-svn: 98462 | |||||
* | Reuse operand location when updating PHI instructions. | Jakob Stoklund Olesen | 2010-02-11 | 1 | -7/+26 | |
| | | | | | | | | Calling RemoveOperand is very expensive on huge PHI instructions. This makes early tail duplication run twice as fast on the Firefox JavaScript interpreter. llvm-svn: 95832 | |||||
* | move target-independent opcodes out of TargetInstrInfo | Chris Lattner | 2010-02-09 | 1 | -5/+5 | |
| | | | | | | | | | into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. llvm-svn: 95687 | |||||
* | Treat indirect branches specially only during pre-regalloc tail duplication, | Bob Wilson | 2010-01-16 | 1 | -13/+13 | |
| | | | | | | not during the later post-alloc tail duplication. llvm-svn: 93600 | |||||
* | Simplify logic. Any functional change is unintended. | Jakob Stoklund Olesen | 2010-01-15 | 1 | -6/+2 | |
| | | | | llvm-svn: 93540 | |||||
* | Change pre-regalloc tail duplication to only duplicate indirect branch blocks. | Bob Wilson | 2010-01-15 | 1 | -4/+11 | |
| | | | | | | | | | The pre-regalloc pass caused some regressions in both compile time and performance of the generated code, and it did not improve performance, except for indirect branches. I also moved the check for single-block loops to speed up the common case when running the taildup pass before reg allocation. llvm-svn: 93505 | |||||
* | Add Target hook to duplicate machine instructions. | Jakob Stoklund Olesen | 2010-01-06 | 1 | -1/+1 | |
| | | | | | | | Some instructions refer to unique labels, and so cannot be trivially cloned with CloneMachineInstr. llvm-svn: 92873 | |||||
* | Change errs() to dbgs(). | David Greene | 2010-01-05 | 1 | -11/+11 | |
| | | | | llvm-svn: 92582 | |||||
* | Tail duplication should zap a copy it inserted for SSA update if the copy is ↵ | Evan Cheng | 2009-12-15 | 1 | -13/+37 | |
| | | | | | | the only use of its source. llvm-svn: 91390 | |||||
* | Delete code accidentally left behind. | Evan Cheng | 2009-12-07 | 1 | -10/+0 | |
| | | | | llvm-svn: 90804 | |||||
* | Pre-regalloc tale duplication. Work in progress. | Evan Cheng | 2009-12-07 | 1 | -90/+220 | |
| | | | | llvm-svn: 90759 |