summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* The "ReadOnlyWithRel" enum seems to apply more to what Darwin does with the EHBill Wendling2009-11-191-4/+5
| | | | | | exception table than DataRel. llvm-svn: 89279
* There should be no need to keep renumbering blocks during tail duplication.Bob Wilson2009-11-181-3/+0
| | | | llvm-svn: 89275
* Attempt #2:Bill Wendling2009-11-181-6/+28
| | | | | | Place the EH table in the __TEXT section on MachO. It saves space. llvm-svn: 89270
* Tail duplication still needs to iterate. Duplicating new instructions ontoBob Wilson2009-11-181-3/+7
| | | | | | the tail of a block may make that block a new candidate for duplication. llvm-svn: 89264
* Add another statistic to measure code size due to tail duplication.Bob Wilson2009-11-181-0/+3
| | | | llvm-svn: 89254
* Fix PR5300.Jakob Stoklund Olesen2009-11-181-12/+5
| | | | | | | | When TwoAddressInstructionPass deletes a dead instruction, make sure that all register kills are accounted for. The 2-addr register does not get special treatment. llvm-svn: 89246
* Allow the machine verifier to be run outside the PassManager.Jakob Stoklund Olesen2009-11-181-17/+160
| | | | | | Verify LiveVariables information when present. llvm-svn: 89241
* Remove the -early-coalescing optionJakob Stoklund Olesen2009-11-181-137/+0
| | | | llvm-svn: 89240
* Fixed the in-place spiller and trivial rewriter, which had been broken by ↵Lang Hames2009-11-183-221/+56
| | | | | | the recent SlotIndexes work. llvm-svn: 89238
* Add statistics for tail duplication.Bob Wilson2009-11-181-0/+4
| | | | llvm-svn: 89225
* Don't require LiveVariables for PHIElimination. Enable critical edge splittingJakob Stoklund Olesen2009-11-182-28/+9
| | | | | | | | | | | | when LiveVariables is available. The -split-phi-edges is now gone, and so is the hack to disable it when using the local register allocator. The PHIElimination pass no longer has LiveVariables as a prerequisite - that is what broke the local allocator. Instead we do critical edge splitting when possible - that is when LiveVariables is available. llvm-svn: 89213
* Add a target hook to allow changing the tail duplication limit based on theBob Wilson2009-11-181-4/+5
| | | | | | | | | contents of the block to be duplicated. Use this for ARM Cortex A8/9 to be more aggressive tail duplicating indirect branches, since it makes it much more likely that they will be predicted in the branch target buffer. Testcase coming soon. llvm-svn: 89187
* Fix inverted test and add testcase from failing self-host.Jakob Stoklund Olesen2009-11-181-9/+7
| | | | llvm-svn: 89167
* Disable -split-phi-edges to unbreak the buildbotsJakob Stoklund Olesen2009-11-171-1/+1
| | | | llvm-svn: 89142
* Never call UpdateTerminator() when AnalyzeBranch would fail.Jakob Stoklund Olesen2009-11-171-1/+13
| | | | llvm-svn: 89139
* Add a WriteAsOperand for MachineBasicBlock so MachineLoopInfo dump looks sane.Evan Cheng2009-11-171-0/+5
| | | | llvm-svn: 89130
* Fix comment.Evan Cheng2009-11-171-3/+3
| | | | llvm-svn: 89129
* Enable -split-phi-edges by default, except when -regalloc=local.Jakob Stoklund Olesen2009-11-171-3/+15
| | | | | | | The local register allocator doesn't like it when LiveVariables is run. We should also disable edge splitting under -O0, but that has to wait a bit. llvm-svn: 89125
* Remove a special case for tail merging that seems to be both broken andBob Wilson2009-11-171-33/+0
| | | | | | | | | | | unnecessary. It is broken because the "isIdenticalTo" check should be negated. If that is fixed, this code causes the CodeGen/X86/tail-opts.ll test to fail, in the dont_merge_oddly function. And, I confirmed that the regression is real -- the generated code is worse. As far as I can tell, that tail-opts.ll test is checking for what this code is supposed to handle and we're doing the right thing anyway. llvm-svn: 89121
* Set MadeChange instead of MadeChangeThisIteration.Dan Gohman2009-11-171-1/+1
| | | | llvm-svn: 89114
* Update a comment, now that tail duplication happens after other branchBob Wilson2009-11-171-2/+2
| | | | | | folding optimizations. llvm-svn: 89109
* Perform tail duplication only once, after tail merging is complete.Bob Wilson2009-11-172-33/+68
| | | | | | | It was too difficult to keep the heuristics for merging and duplication consistent. llvm-svn: 89105
* Revert 89021. It's miscompiling llvm-gcc driver driver at -O0.Evan Cheng2009-11-171-1/+1
| | | | llvm-svn: 89082
* Remove VISIBILITY_HIDDEN from the classes in this directory. Fixes bug 5507.Nick Lewycky2009-11-175-19/+18
| | | | llvm-svn: 89075
* Revert r88939.Nick Lewycky2009-11-171-2/+2
| | | | llvm-svn: 89066
* Refactor the code that creates the "dot-label" difference. This may be used inBill Wendling2009-11-172-18/+29
| | | | | | more than one place. No intended functionality change. llvm-svn: 89024
* Enable -split-phi-edges by defaultJakob Stoklund Olesen2009-11-171-1/+1
| | | | llvm-svn: 89021
* Remove the optimizations that convert BRCOND and BR_CC intoDan Gohman2009-11-171-17/+12
| | | | | | | | | | unconditional branches or fallthroghes. Instcombine/SimplifyCFG should be simplifying branches with known conditions. This fixes some problems caused by these transformations not updating the MachineBasicBlock CFG. llvm-svn: 89017
* Initialize the new AsmPrinterFlags field to 0, fixing uses ofDan Gohman2009-11-161-6/+8
| | | | | | uninitialized memory. llvm-svn: 88985
* Revert r88939.Devang Patel2009-11-161-2/+2
| | | | llvm-svn: 88973
* Sink a #include <map> to where it's actually needed.Dan Gohman2009-11-161-0/+1
| | | | llvm-svn: 88956
* Fix a typo in a comment.Dan Gohman2009-11-162-2/+2
| | | | llvm-svn: 88953
* Fix a comment.Bob Wilson2009-11-161-1/+1
| | | | llvm-svn: 88940
* Add VISIBILITY_HIDDEN marker.Devang Patel2009-11-161-2/+2
| | | | llvm-svn: 88939
* Fix some comments.Bob Wilson2009-11-161-5/+4
| | | | llvm-svn: 88932
* Whitespace: be consistent with pointer syntax.Bob Wilson2009-11-161-6/+6
| | | | llvm-svn: 88929
* Clean up whitespace.Bob Wilson2009-11-161-6/+6
| | | | llvm-svn: 88927
* Support spill comments.David Greene2009-11-161-0/+52
| | | | | | | | Have the asm printer emit a comment if an instruction is a spill or reload and have the spiller mark copies it introdues so the asm printer can also annotate those. llvm-svn: 88911
* Check if subreg index is zero.Evan Cheng2009-11-161-1/+3
| | | | llvm-svn: 88899
* For some targets, a copy can use a register multiple times, e.g. ppc.Evan Cheng2009-11-161-0/+5
| | | | llvm-svn: 88895
* Fixes the bug exposed by Anton's test case in PR 5495:Lang Hames2009-11-161-0/+4
| | | | | | | Make sure when ProcessImplicitDefs removes a copy which kills its source reg that it removes the copy from said reg's Kills list. llvm-svn: 88881
* Fix for the original bug in PR5495 - Look at uses as well as defs when ↵Lang Hames2009-11-161-5/+5
| | | | | | | | determining the PHI-copy insert point. - Patch by Andrew Canis! llvm-svn: 88880
* Added an assert to the PBQP allocator to catch infinite cost solutions which ↵Lang Hames2009-11-151-0/+5
| | | | | | might otherwise lead to miscompilations. llvm-svn: 88829
* Do not merge jump tables this early. Branch folding will do any necessaryJim Grosbach2009-11-141-4/+0
| | | | | | | merges, and until then, it's useful to keep the tables separate for ease of manipulation. llvm-svn: 88806
* Add function to replace a destination MBB in a single jump tableJim Grosbach2009-11-141-8/+19
| | | | llvm-svn: 88804
* revert 88761 as it fails builds.Sanjiv Gupta2009-11-141-1/+1
| | | | llvm-svn: 88762
* Fix debug info crashes for PIC16.Sanjiv Gupta2009-11-141-1/+1
| | | | llvm-svn: 88761
* Added getSubRegIndex(A,B) that returns subreg index of A to B. Use it to ↵Evan Cheng2009-11-141-5/+2
| | | | | | replace broken code in VirtRegRewriter. llvm-svn: 88753
* - Change TargetInstrInfo::reMaterialize to pass in TargetRegisterInfo.Evan Cheng2009-11-145-8/+13
| | | | | | | | - If destination is a physical register and it has a subreg index, use the sub-register instead. This fixes PR5423. llvm-svn: 88745
* Fix PR5412: Fix an inverted check and another missing sub-register check.Evan Cheng2009-11-141-9/+30
| | | | llvm-svn: 88738
OpenPOWER on IntegriCloud