- Sep 13, 2011
-
-
Akira Hatanaka authored
llvm-svn: 139607
-
Owen Anderson authored
llvm-svn: 139606
-
Jakob Stoklund Olesen authored
Three out of four clients prefer this interface which is consistent with extendIntervalEndTo() and LiveRangeCalc::extend(). llvm-svn: 139604
-
Jakob Stoklund Olesen authored
The complement interval may overlap the other intervals created, so use a separate LiveRangeCalc instance to compute its live range. A LiveRangeCalc instance can only be shared among non-overlapping intervals. llvm-svn: 139603
-
Craig Topper authored
Only disassembler instructions with vvvv != 1111 if the instruction actually uses the vvvv field to encode an operand. Fixes PR10851. llvm-svn: 139591
-
Craig Topper authored
Remove filter that was preventing MOVDQU/MOVDQA and their VEX forms from being disassembled. Also added encodings for the other register/register form of these instructions. Fixes PR10848. llvm-svn: 139588
-
Craig Topper authored
Fix encoding of VMOVDQU to not simultaneously be 'TB OpSize' and 'XS'. 'XS' is correct and seems to have been taking priority. llvm-svn: 139587
-
Andrew Trick authored
llvm-svn: 139583
-
NAKAMURA Takumi authored
llvm-svn: 139581
-
Andrew Trick authored
llvm-svn: 139579
-
Eli Friedman authored
llvm-svn: 139575
-
Andrew Trick authored
llvm-svn: 139574
-
Benjamin Kramer authored
llvm-svn: 139573
-
Jakob Stoklund Olesen authored
SplitKit will soon need two copies of these data structures, and the algorithms will also be useful when LiveIntervalAnalysis becomes independent of LiveVariables. llvm-svn: 139572
-
Eli Friedman authored
llvm-svn: 139571
-
Eli Friedman authored
llvm-svn: 139565
-
Eli Friedman authored
Fix the assembler strings for a couple of atomic instructions. Doesn't really matter much in practice, but it's a bit cleaner. llvm-svn: 139563
-
Jim Grosbach authored
llvm-svn: 139559
-
Bruno Cardoso Lopes authored
destination types are equal! llvm-svn: 139553
-
- Sep 12, 2011
-
-
Bill Wendling authored
Splitting a landing pad takes considerable care because of PHIs and other nasties. The problem is that the jump table needs to jump to the landing pad block. However, the landing pad block can be jumped to only by an invoke instruction. So we clone the landingpad instruction into its own basic block, have the invoke jump to there. The landingpad instruction's basic block's successor is now the target for the jump table. But because of PHI nodes, we need to create another basic block for the jump table to jump to. This is definitely a hack, because the values for the PHI nodes may not be defined on the edge from the jump table. But that's okay, because the jump table is simply a construct to mimic what is happening in the CFG. So the values are mysteriously there, even though there is no value for the PHI from the jump table's edge (hence calling this a hack). llvm-svn: 139545
-
Owen Anderson authored
llvm-svn: 139542
-
Bruno Cardoso Lopes authored
llvm-svn: 139541
-
Owen Anderson authored
llvm-svn: 139537
-
Eli Friedman authored
No tests; these changes aren't really interesting in the sense that the logic is the same for volatile and atomic. I believe this completes all of the changes necessary for the optimizer to handle loads and stores correctly. I'm going to try and come up with some additional testing, though. llvm-svn: 139533
-
Owen Anderson authored
There's no need to add additional predicate operands when converting a tB to a tBfar now. Fixes nightly test failures on armv6 Thumb. <rdar://problem/10110404> llvm-svn: 139531
-
Eric Christopher authored
llvm-svn: 139530
-
Bruno Cardoso Lopes authored
However with this fix it does now. Basically the operand order for the x86 target specific node is not the same as the instruction, but since the intrinsic need that specific order at the instruction definition, just change the order during legalization. Also, there were some wrong invertions of condition codes, such as GE => LE, GT => LT, fix that too. Fix PR10907. llvm-svn: 139528
-
Bruno Cardoso Lopes authored
llvm-svn: 139527
-
Bruno Cardoso Lopes authored
llvm-svn: 139526
-
Bruno Cardoso Lopes authored
llvm-svn: 139525
-
Owen Anderson authored
Port more encoding tests to decoding tests, and correct an improper Thumb2 pre-indexed load decoding this uncovered. llvm-svn: 139522
-
Andrew Trick authored
llvm-svn: 139517
-
Devang Patel authored
llvm-svn: 139515
-
Devang Patel authored
llvm-svn: 139503
-
Jakob Stoklund Olesen authored
It has been enabled by default for a while, it was only there to allow performance comparisons. llvm-svn: 139501
-
Jakob Stoklund Olesen authored
SplitKit always computes a complement live range to cover the places where the original live range was live, but no explicit region has been allocated. Currently, the complement live range is created to be as small as possible - it never overlaps any of the regions. This minimizes register pressure, but if the complement is going to be spilled anyway, that is not very important. The spiller will eliminate redundant spills, and hoist others by making the spill slot live range overlap some of the regions created by splitting. Stack slots are cheap. This patch adds the interface to enable spill modes in SplitKit. In spill mode, SplitKit will assume that the complement is going to spill, so it will allow it to overlap regions in order to avoid back-copies. By doing some of the spiller's work early, the complement live range becomes simpler. In some cases, it can become much simpler because no extra PHI-defs are required. This will speed up both splitting and spilling. This is only the interface to enable spill modes, no implementation yet. llvm-svn: 139500
-
Jakob Stoklund Olesen authored
llvm-svn: 139498
-
Richard Osborne authored
This information is required if we want LDWCP to be hoisted out of loops. llvm-svn: 139495
-
Richard Osborne authored
llvm-svn: 139494
-
Nadav Rotem authored
llvm-svn: 139491
-