Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Move most of the pre BB code to TailDuplicateAndUpdate. Change the | Rafael Espindola | 2011-07-04 | 1 | -112/+125 |
| | | | | | | HasIndirectbr variable to be just that. No functionality change. llvm-svn: 134371 | ||||
* | Reduce indentation and fix the count of how many PHIs we have inserted. | Rafael Espindola | 2011-07-04 | 1 | -75/+80 |
| | | | | llvm-svn: 134370 | ||||
* | - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and | Evan Cheng | 2011-06-28 | 1 | -2/+2 |
| | | | | | | | | sink them into MC layer. - Added MCInstrInfo, which captures the tablegen generated static data. Chang TargetInstrInfo so it's based off MCInstrInfo. llvm-svn: 134021 | ||||
* | Simplify | Rafael Espindola | 2011-06-24 | 1 | -14/+6 |
| | | | | llvm-svn: 133798 | ||||
* | 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 |