| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
This new register allocator is initially identical to RegAllocBasic, but it will
receive all of the tricks that RegAllocBasic won't get.
RegAllocGreedy will eventually replace linear scan.
llvm-svn: 121234
|
|
|
|
|
|
|
| |
Minor optimization to the use of IntervalMap iterators. They are fairly
heavyweight, so prefer SI.valid() over SI != end().
llvm-svn: 121217
|
|
|
|
|
|
|
| |
This speeds up RegAllocBasic by 20%, not counting releaseMemory which becomes
way faster.
llvm-svn: 121201
|
|
|
|
| |
llvm-svn: 121162
|
|
|
|
|
|
|
|
| |
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121120
|
|
|
|
| |
llvm-svn: 121098
|
|
|
|
|
|
| |
This will be used to truncate live range of DBG_VALUE instruction by register allocator and friends.
llvm-svn: 121061
|
|
|
|
|
|
| |
message instead of creating DBG_VALUE for undefined value in reg0.
llvm-svn: 121059
|
|
|
|
|
|
|
| |
as llc + llvm-mc. This time ELF is not changed and I tested that llvm-gcc
bootstrap on darwin10 using darwin9's assembler and linker.
llvm-svn: 121006
|
|
|
|
|
|
| |
linux and darwin assemblers happy :-(
llvm-svn: 121004
|
|
|
|
|
|
|
| |
that no relocations are used (on MochO).
Fixes llc producing different output from llc + llvm-mc.
llvm-svn: 121000
|
|
|
|
|
|
| |
StrongPHIElimination.
llvm-svn: 120961
|
|
|
|
| |
llvm-svn: 120959
|
|
|
|
|
|
| |
PHIElimination.h.
llvm-svn: 120953
|
|
|
|
|
|
|
| |
time, this method existed, but now PHIElimination uses the method of the same
name on MachineBasicBlock.
llvm-svn: 120952
|
|
|
|
|
|
| |
function so that it can be shared with StrongPHIElimination.
llvm-svn: 120951
|
|
|
|
| |
llvm-svn: 120918
|
|
|
|
| |
llvm-svn: 120910
|
|
|
|
| |
llvm-svn: 120846
|
|
|
|
|
|
| |
be emitted.
llvm-svn: 120845
|
|
|
|
| |
llvm-svn: 120842
|
|
|
|
| |
llvm-svn: 120841
|
|
|
|
|
|
|
|
|
|
| |
The StrongPHIElimination pass did not work, and nobody has worked on it for two
years.
A rewrite is underway, so I am leaving this shell pass instead of deleting it
completely.
llvm-svn: 120830
|
|
|
|
| |
llvm-svn: 120720
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Scan the MachineFunction for DBG_VALUE instructions, and replace them with a
data structure similar to LiveIntervals. The live range of a DBG_VALUE is
determined by propagating it down the dominator tree until a new DBG_VALUE is
found. When a DBG_VALUE lives in a register, its live range is confined to the
live range of the register's value.
LiveDebugVariables runs before coalescing, so DBG_VALUEs are not artificially
extended when registers are joined.
The missing half will recreate DBG_VALUE instructions from the intervals when
register allocation is complete.
The pass is disabled by default. It can be enabled with the temporary command
line option -live-debug-variables.
llvm-svn: 120636
|
|
|
|
|
|
| |
setAllBits(), setBit(unsigned), etc.
llvm-svn: 120564
|
|
|
|
| |
llvm-svn: 120504
|
|
|
|
|
|
|
|
|
|
|
| |
legalization time. Since at legalization time there is no mapping from
SDNode back to the corresponding LLVM instruction and the return
SDNode is target specific, this requires a target hook to check for
eligibility. Only x86 and ARM support this form of sibcall optimization
right now.
rdar://8707777
llvm-svn: 120501
|
|
|
|
|
|
|
|
| |
in favor of the widespread llvm style. Capitalize variables and add
newlines for visual parsing. Rename variables for readability.
And other cleanup.
llvm-svn: 120490
|
|
|
|
|
|
| |
and use this to disable a specific optimization. Patch by Micah Villmow!
llvm-svn: 120435
|
|
|
|
| |
llvm-svn: 120413
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This analysis is going to run immediately after LiveIntervals. It will stay
alive during register allocation and keep track of user variables mentioned in
DBG_VALUE instructions.
When the register allocator is moving values between registers and the stack, it
is very hard to keep track of DBG_VALUE instructions. We usually get it wrong.
This analysis maintains a data structure that makes it easy to update DBG_VALUE
instructions.
llvm-svn: 120385
|
|
|
|
| |
llvm-svn: 120298
|
|
|
|
| |
llvm-svn: 120235
|
|
|
|
| |
llvm-svn: 120229
|
|
|
|
| |
llvm-svn: 120228
|
|
|
|
| |
llvm-svn: 120146
|
|
|
|
| |
llvm-svn: 119990
|
|
|
|
|
|
|
| |
This currently only catches the most basic case, a two-case switch, but can be
extended later.
llvm-svn: 119964
|
|
|
|
| |
llvm-svn: 119904
|
|
|
|
| |
llvm-svn: 119903
|
|
|
|
|
|
|
|
|
|
|
| |
so don't claim they are. They are allocated using DAG.getNode, so attempts
to access MemSDNode fields results in reading off the end of the allocated
memory. This fixes crashes with "llc -debug" due to debug code trying to
print MemSDNode fields for these barrier nodes (since the crashes are not
deterministic, use valgrind to see this). Add some nasty checking to try
to catch this kind of thing in the future.
llvm-svn: 119901
|
|
|
|
|
|
| |
but not complicated enough to merit another test.
llvm-svn: 119898
|
|
|
|
| |
llvm-svn: 119896
|
|
|
|
| |
llvm-svn: 119895
|
|
|
|
| |
llvm-svn: 119875
|
|
|
|
|
|
|
| |
DAGCombine from making an illegal transformation of bitcast of a scalar to a
vector into a scalar_to_vector.
llvm-svn: 119819
|
|
|
|
|
|
| |
Patch by Krister Wombell!
llvm-svn: 119791
|
|
|
|
|
|
|
|
|
|
|
|
| |
MCStreamer instead of just MCObjectStreamer. Address changes cannot
be as efficient as we have to use DW_LNE_set_addres, but at least
most of the logic is shared.
This will be used so that, with CodeGen still using EmitDwarfLocDirective,
llvm-gcc is able to produce debug_line sections without needing an
assembler that supports .loc.
llvm-svn: 119777
|
|
|
|
| |
llvm-svn: 119754
|