- Apr 13, 2011
-
-
Devang Patel authored
llvm-svn: 129406
-
Devang Patel authored
llvm-svn: 129405
-
Devang Patel authored
This mechanical patch moves type handling into CompileUnit from DwarfDebug. In case of multiple compile unit in one object file, each compile unit is responsible for its own set of type entries anyway. This refactoring makes this obvious. llvm-svn: 129402
-
Eric Christopher authored
llvm-svn: 129400
-
- Apr 12, 2011
-
-
Jakob Stoklund Olesen authored
Use a Bitvector instead, we didn't need the smaller memory footprint anyway. This makes the greedy register allocator 10% faster. llvm-svn: 129390
-
Andrew Trick authored
llvm-svn: 129385
-
Andrew Trick authored
UnitsSharePred was a source of randomness in the scheduler: node priority depended on the queue data structure. I rewrote the recent VRegCycle heuristics to completely replace the old heuristic without any randomness. To make these heuristic adjustments to node latency work, I also needed to do something a little more reasonable with TokenFactor. I gave it zero latency to its consumers and always schedule it as low as possible. llvm-svn: 129383
-
Jakob Stoklund Olesen authored
This merges the behavior of splitSingleBlocks into splitAroundRegion, so the RS_Region and RS_Block register stages can be coalesced. That means the leftover intervals after region splitting go directly to spilling instead of a second pass of per-block splitting. llvm-svn: 129379
-
Jakob Stoklund Olesen authored
This makes it possible to target multiple registers in one pass. llvm-svn: 129374
-
Jakob Stoklund Olesen authored
llvm-svn: 129373
-
Devang Patel authored
llvm-svn: 129368
-
Devang Patel authored
llvm-svn: 129367
-
Eric Christopher authored
llvm-svn: 129334
-
Jakob Stoklund Olesen authored
when compiling many small functions. llvm-svn: 129321
-
Nick Lewycky authored
mean that it has to be ConstantArray of ConstantStruct. We might have ConstantAggregateZero, at either level, so don't crash on that. Also, semi-deprecate the sentinal value. The linker isn't aware of sentinals so we end up with the two lists appended, each with their "sentinals" on them. Different parts of LLVM treated sentinals differently, so make them all just ignore the single entry and continue on with the rest of the list. llvm-svn: 129307
-
- Apr 11, 2011
-
-
Jakob Stoklund Olesen authored
weight limit has been exceeded. llvm-svn: 129305
-
Bill Wendling authored
the 'unwind' instruction. However, later on that instruction was converted into a jump to the basic block it was located in, causing an infinite loop when we get there. It turns out, we get there if the _Unwind_Resume_or_Rethrow call returns (which it's not supposed to do). It returns if it cannot find a place to unwind to. Thus we would get what appears to be a "hang" when in reality it's just that the EH couldn't be propagated further along. Instead of infinitely looping (or calling `unwind', which none of our back-ends support (it's lowered into nothing...)), call the @llvm.trap() intrinsic instead. This may not conform to specific rules of a particular language, but it's rather better than infinitely looping. <rdar://problem/9175843&9233582> llvm-svn: 129302
-
Evan Cheng authored
Look pass copies when determining whether hoisting would end up inserting more copies. rdar://9266679 llvm-svn: 129297
-
Jakob Stoklund Olesen authored
LiveIntervals::findLiveInMBBs has to do a full binary search for each segment. llvm-svn: 129292
-
Evan Cheng authored
llvm-svn: 129287
-
Jakob Stoklund Olesen authored
Both coalescing and register allocation already check aliases for interference, so these extra segments are only slowing us down. This speeds up both linear scan and the greedy register allocator. llvm-svn: 129283
-
Jakob Stoklund Olesen authored
This particularly helps with the initial transfer of fixed intervals. llvm-svn: 129277
-
Jakob Stoklund Olesen authored
llvm-svn: 129276
-
Jakob Stoklund Olesen authored
In particular, don't repeatedly recompute the PIC base live range after rematerialization. llvm-svn: 129275
-
Jay Foad authored
llvm-svn: 129271
-
- Apr 09, 2011
-
-
Chris Lattner authored
Switch lowering probably shouldn't be using FP for this. This resolves PR9581. llvm-svn: 129199
-
Jakob Stoklund Olesen authored
It is common for large live ranges to have few basic blocks with register uses and many live-through blocks without any uses. This approach grows the Hopfield network incrementally around the use blocks, completely avoiding checking interference for some through blocks. llvm-svn: 129188
-
Jakob Stoklund Olesen authored
This doesn't require seeking in the live interval union, so it is very cheap. llvm-svn: 129187
-
Chris Lattner authored
with undef arguments. llvm-svn: 129185
-
Devang Patel authored
Simplify array bound checks and clarify comments. One element array can have same non-zero number as lower bound as well as upper bound. llvm-svn: 129170
-
- Apr 08, 2011
-
-
Devang Patel authored
If lower bound is more then upper bound then consider it is an unbounded array. An array is unbounded if non-zero lower bound is same as upper bound. If lower bound and upper bound are zero than array has one element. llvm-svn: 129156
-
Evan Cheng authored
Change -arm-trap-func= into a non-arm specific option. Now Intrinsic::trap is lowered into a call to the specified trap function at sdisel time. llvm-svn: 129152
-
Nick Lewycky authored
of { i32, void ()* }. Teach the verifier to verify that, deleting copies of checks strewn about. llvm-svn: 129128
-
- Apr 07, 2011
-
-
Andrew Trick authored
induction variable. The preRA scheduler is unaware of induction vars, so we look for potential "virtual register cycles" instead. Fixes <rdar://problem/8946719> Bad scheduling prevents coalescing llvm-svn: 129100
-
Jakob Stoklund Olesen authored
PHI values may be deleted, causing the flags to be wrong. This fixes PR9616. llvm-svn: 129092
-
Jakob Stoklund Olesen authored
llvm-svn: 129081
-
Jakob Stoklund Olesen authored
llvm-svn: 129080
-
Jakob Stoklund Olesen authored
llvm-svn: 129079
-
-
- Apr 06, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 129030
-