- Aug 14, 2010
-
-
Dan Gohman authored
had its address taken. llvm-svn: 111058
-
Bob Wilson authored
This fixes another part of PR7792. llvm-svn: 111057
-
Jakob Stoklund Olesen authored
The earliestStart argument is entirely specific to linear scan allocation, and can be easily calculated by RegAllocLinearScan. Replace std::vector with SmallVector. llvm-svn: 111055
-
Bob Wilson authored
llvm-svn: 111050
-
- Aug 13, 2010
-
-
Bob Wilson authored
instruction opcode. This fixes part of PR7792. llvm-svn: 111047
-
Dan Gohman authored
when they are the same loop. Don't compare two instructions' loop depths when they are in the same block. llvm-svn: 111045
-
Jakob Stoklund Olesen authored
When a live range is contained a single block, we can split it around instruction clusters. The current approach is very primitive, splitting before and after the largest gap between uses. llvm-svn: 111043
-
Dan Gohman authored
ScalarEvolution::getAddExpr, which can be pretty expensive, when nothing has changed, which is pretty common. llvm-svn: 111042
-
Bruno Cardoso Lopes authored
llvm-svn: 111041
-
Dan Gohman authored
rather than testing whether the loop contains the other's header. llvm-svn: 111039
-
Dan Gohman authored
llvm-svn: 111038
-
Dan Gohman authored
the constant operand on the left, as that's where ScalarEvolution will end up canonicalizing to. llvm-svn: 111037
-
Dan Gohman authored
associated loop. This avoids potentially expensive traversals of the add recurrence's operands. llvm-svn: 111034
-
Bob Wilson authored
same lines as the change I made for ARM saturate instructions. llvm-svn: 111029
-
Dale Johannesen authored
misanalysis and is undesirable. llvm-svn: 111028
-
Bruno Cardoso Lopes authored
llvm-svn: 111022
-
Bruno Cardoso Lopes authored
llvm-svn: 111021
-
Jim Grosbach authored
llvm-svn: 111019
-
Eric Christopher authored
llvm-svn: 111001
-
Eric Christopher authored
llvm-svn: 111000
-
Jakob Stoklund Olesen authored
numbers match. The old check could accidentally leave holes in openli. Also let useIntv add all ranges for the phi-def value inserted by enterIntvAtEnd. This works as long at the value mapping is established in enterIntvAtEnd. llvm-svn: 110995
-
Jakob Stoklund Olesen authored
function to do it. llvm-svn: 110994
-
Nate Begeman authored
llvm-svn: 110987
-
Nate Begeman authored
Move some code from Verifier into SVI::isValidOperands. This allows us to catch bad shufflevector operations when they are created, rather than waiting for someone to notice later on. llvm-svn: 110986
-
Dan Gohman authored
llvm-svn: 110983
-
Dan Gohman authored
llvm-svn: 110982
-
Dan Gohman authored
llvm-svn: 110981
-
Jakob Stoklund Olesen authored
This can happen if the original interval has been broken into two disconnected parts. Ideally, we should be able to detect when the graph is disconnected and create separate intervals, but that code is not implemented yet. Example: Two basic blocks are both branching to a loop header. Our interval is defined in both basic blocks, and live into the loop along both edges. We decide to split the interval around the loop. The interval is split into an inside part and an outside part. The outside part now has two disconnected segments, one in each basic block. If we later decide to split the outside interval into single blocks, we get one interval per basic block and an empty dupli for the remainder. llvm-svn: 110976
-
Jakob Stoklund Olesen authored
split intervals. THis means the analysis can be used for multiple splits as long as curli doesn't shrink. llvm-svn: 110975
-
Chris Lattner authored
before it rewrites the code, we need to use that in the post-rewrite pass. llvm-svn: 110962
-
- Aug 12, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 110954
-
Johnny Chen authored
the memory barrier variants (other than 'SY' full system domain read and write) are treated as one instruction with option operand. llvm-svn: 110951
-
Jakob Stoklund Olesen authored
If a phi-def value were removed from the interval, the phi-kill flags are no longer valid. llvm-svn: 110949
-
Evan Cheng authored
Make sure ARM constant island pass does not break up an IT block. If the split point is in the middle of an IT block, it should move it up to just above the IT instruction. rdar://8302637 llvm-svn: 110947
-
Bruno Cardoso Lopes authored
- Teach SSEDomainFix to switch between different levels of AVX instructions. Here we guess that AVX will have domain issues, so just implement them for consistency and in the future we remove if it's unnecessary. - Make foldMemoryOperandImpl aware of 256-bit zero vectors folding and support the 128-bit counterparts of AVX too. - Make sure MOV[AU]PS instructions are only selected when SSE1 is enabled, and duplicate the patterns to match AVX. - Add a testcase for a simple 128-bit zero vector creation. llvm-svn: 110946
-
Jakob Stoklund Olesen authored
llvm-svn: 110944
-
Jakob Stoklund Olesen authored
llvm-svn: 110940
-
Bruno Cardoso Lopes authored
llvm-svn: 110937
-
Jakob Stoklund Olesen authored
Before spilling a live range, we split it into a separate range for each basic block where it is used. That way we only get one reload per basic block if the new smaller ranges can allocate to a register. This type of splitting is already present in the standard spiller. llvm-svn: 110934
-
Dan Gohman authored
having it finish processing all of the muliply operands before starting the whole getAddExpr process over again, instead of immediately after the first simplification. llvm-svn: 110916
-