- Mar 27, 2013
-
-
Christian Konig authored
6 more piglit tests. Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 178145
-
Hal Finkel authored
It seems that the Darwin PPC assembler requires r0 to be written as 0 when it means 0 (at least in lwarx/stwcx.). Fixes PR15605. llvm-svn: 178142
-
Tim Northover authored
llvm-svn: 178141
-
Silviu Baranga authored
Enabling the generation of dependency breakers for partial updates on Cortex-A15. Also fixing a small bug in getting the update clearence for VLD1LNd32. llvm-svn: 178134
-
Jyotsna Verma authored
llvm-svn: 178132
-
Christian Konig authored
Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> Tested-by:
Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 178127
-
Christian Konig authored
Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> Tested-by:
Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 178126
-
Christian Konig authored
Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> Tested-by:
Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 178125
-
Hal Finkel authored
The R0 register can now be allocated because instructions that cannot use R0 as a GPR have been appropriately marked. llvm-svn: 178123
-
Hal Finkel authored
The register parameter in these instructions becomes the base register in an r+i ld instruction (and, thus, cannot be r0). This is not yet testable because we don't yet allocate r0 (and even then any test would be very fragile). llvm-svn: 178121
-
Hal Finkel authored
Either operand of these pseudo instructions can be transformed into the first operand of an isel instruction (and this operand cannot be r0). This is not yet testable because we don't yet allocate r0 (and even when we do, any test would be very fragile). llvm-svn: 178119
-
Hal Finkel authored
Like the addi/addis instructions themselves, these pseudo instructions also cannot have r0 as their register parameter (because it will be interpreted as the value 0). This is not yet testable because we don't yet allocate r0 (and even when we do, any regression test would be very fragile because it would depend on the register allocator heuristics). llvm-svn: 178118
-
Bill Schmidt authored
Some implementation detail in the forgotten past required the link register to be placed in the GPRC and G8RC register classes. This is just wrong on the face of it, and causes several extra intersection register classes to be generated. I found this was having evil effects on instruction scheduling, by causing the wrong register class to be consulted for register pressure decisions. No code generation changes are expected, other than some minor changes in instruction order. Seven tests in the test bucket required minor tweaks to adjust to the new normal. llvm-svn: 178114
-
Hal Finkel authored
As Bill Schmidt pointed out to me, only on Darwin do we need to spill/restore VRSAVE in the SjLj code. For non-Darwin, don't spill/restore VRSAVE (and I've added some asserts to make sure that we're not). As it turns out, we're not currently handling the Darwin case correctly (I've added a FIXME in the test case). I've tried adding various implied register definitions/uses to force the spill without success, so I'll need to address this later. llvm-svn: 178096
-
- Mar 26, 2013
-
-
Michael Liao authored
llvm-svn: 178083
-
Michael Liao authored
llvm-svn: 178082
-
Jakob Stoklund Olesen authored
All Intel CPUs since Yonah look a lot alike, at least at the granularity of the scheduling models. We can add more accurate models for processors that aren't Sandy Bridge if required. Haswell will probably need its own. The Atom processor and anything based on NetBurst is completely different. So are the non-Intel chips. llvm-svn: 178080
-
Hal Finkel authored
As suggested by Bill Schmidt (in reviewing r178067), use the real register number bit lengths (which is self-documenting, and prevents using illegal numbers), and set only the relevant bits in HWEncoding (which defaults to 0). No functionality change intended. llvm-svn: 178077
-
Hal Finkel authored
As pointed out by Jakob, we don't need to maintain a separate register-numbering table. Instead we should let TableGen generate the table for us from the information (already present) in PPCRegisterInfo.td. TRI->getEncodingValue is now used to access register-encoding values. No functionality change intended. llvm-svn: 178067
-
NAKAMURA Takumi authored
llvm-svn: 178065
-
Hal Finkel authored
Now that the register scavenger can support multiple spill slots, and PEI can use virtual-register-based scavenging for multiple simultaneous registers, we can use a virtual register for the transfer register in the CR spilling code. This should eliminate the last place (outside of the prologue/epilogue) where we depend on the unconditional availability of the r0 register. We will soon be able to allocate it (in a somewhat restricted sense) as a GPR. llvm-svn: 178060
-
Hal Finkel authored
PPC's use of PEI's virtual-register-based scavenging functionality had redefined the virtual registers (it was non-SSA). Now that PEI supports dealing with instructions with multiple virtual registers, this can be cleanup up to use multiple virtual registers and keep SSA form. No functionality change intended. llvm-svn: 178059
-
Jakob Stoklund Olesen authored
Now all x86 instructions that have itinerary classes also have SchedRW lists. This is required before the new scheduling models can be used. There are still unannotated instructions remaining, but they don't have itinerary classes either. llvm-svn: 178051
-
Jakob Stoklund Olesen authored
This only covers the instructions that were given itinerary classes for the Atom model. llvm-svn: 178050
-
Jakob Stoklund Olesen authored
This could definitely be more granular. I am not sure if it makes a difference. llvm-svn: 178049
-
Jakob Stoklund Olesen authored
llvm-svn: 178048
-
Michael Liao authored
- Add 'PRFCHW' feature defined in AVX2 ISA extension llvm-svn: 178040
-
Jyotsna Verma authored
llvm-svn: 178032
-
Jyotsna Verma authored
llvm-svn: 178030
-
Arnold Schwaighofer authored
This reverts commit r177968. It is causing failures in a local build bot. "fatal error: error in backend: Expected a variant SchedClass" Original commit message: Move the CortexA9 resources into the CortexA9 SchedModel namespace. Define resource mappings under the CortexA9 SchedModel. Define resources and mappings for the SwiftModel. llvm-svn: 178028
-
Benjamin Kramer authored
llvm-svn: 178025
-
Christian Konig authored
Not only fold immediates, but avoid unnecessary copies as well. Signed-off-by:
Christian König <christian.koenig@amd.com> llvm-svn: 178024
-
Christian Konig authored
Prevent loading M0 multiple times. Signed-off-by:
Christian König <christian.koenig@amd.com> llvm-svn: 178023
-
Christian Konig authored
Just define the address as unknown instead of VReg_32. Signed-off-by:
Christian König <christian.koenig@amd.com> llvm-svn: 178022
-
Christian Konig authored
Signed-off-by:
Christian König <christian.koenig@amd.com> llvm-svn: 178021
-
Christian Konig authored
They read from constant register space anyway. v2: fix lit tests Signed-off-by:
Christian König <christian.koenig@amd.com> llvm-svn: 178020
-
Christian Konig authored
Just enable WQM when we see an LDS interpolation instruction. Signed-off-by:
Christian König <christian.koenig@amd.com> llvm-svn: 178019
-
Christian Konig authored
Restore the EXEC mask early, otherwise a copy might end up not beeing executed. Candidate for the mesa stable branch. Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> Tested-by:
Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 178018
-
Joe Abbey authored
If PC or SP is the destination, the disassembler erroneously failed with the invalid encoding, despite the manual saying that both are fine. This patch addresses failure to decode encoding T4 of LDR (A8.8.62) which is a postindexed load, where the offset 0xc is applied to SP after the load occurs. llvm-svn: 178017
-
Ulrich Weigand authored
There remain a number of patterns that cannot (and should not) be handled by the asm parser, in particular all the Pseudo patterns. This commit marks those patterns as isCodeGenOnly. No change in generated code. llvm-svn: 178008
-