- Mar 13, 2013
-
-
Benjamin Kramer authored
sigh. llvm-svn: 176946
-
Akira Hatanaka authored
mips16 and MipsSETargetLowering is for mips32/64. No functionality changes. llvm-svn: 176917
-
- Mar 12, 2013
-
-
Arnold Schwaighofer authored
Increase the cost of v8/v16-i8 to v8/v16-i32 casts and truncates as the backend currently lowers those using stack accesses. This was responsible for a significant degradation on MultiSource/Benchmarks/Trimaran/enc-pc1/enc-pc1 where we vectorize one loop to a vector factor of 16. After this patch we select a vector factor of 4 which will generate reasonable code. unsigned char cle[32]; void test(short c) { unsigned short compte; for (compte = 0; compte <= 31; compte++) { cle[compte] = cle[compte] ^ c; } } radar://13220512 llvm-svn: 176898
-
Hal Finkel authored
Now that only the register-scavenger version of the CR spilling code remains, we no longer need the Darwin R2 hack. Darwin can use R0 as a spare register in any case where the System V ABI uses it (R0 is special architecturally, and so is reserved under all common ABIs). A few test cases needed to be updated to reflect the register-allocation changes. llvm-svn: 176868
-
Hal Finkel authored
This removes the -disable-ppc[32|64]-regscavenger options; the code that uses the register scavenger has been working well (and has been the default) for some time, and we don't need options to enable the old (broken) CR spilling code. llvm-svn: 176865
-
Akira Hatanaka authored
Delete commented-out code. llvm-svn: 176844
-
- Mar 11, 2013
-
-
Kevin Enderby authored
rdar://13318048 llvm-svn: 176828
-
Vincent Lejeune authored
This allows R600 Target to use the newly created -verify-misched llc flag llvm-svn: 176819
-
NAKAMURA Takumi authored
llvm-svn: 176797
-
- Mar 10, 2013
-
-
Nick Lewycky authored
error above. Based on a patch by Peter Zotov! llvm-svn: 176794
-
Jakub Staszak authored
llvm-svn: 176787
-
- Mar 09, 2013
-
-
Lang Hames authored
intrinsic - it can cause impossible-to-schedule subgraphs to be introduced. PR15053. llvm-svn: 176777
-
Benjamin Kramer authored
The strlen+memcmp was hidden in a call to StringRef::operator==. We check if there are any null bytes in the string upfront so we can simplify the comparison Small speedup when compiling code with many function calls. llvm-svn: 176766
-
- Mar 08, 2013
-
-
Tom Stellard authored
fold selectcc (selectcc x, y, a, b, cc), b, a, b, setne -> selectcc x, y, a, b, cc Reviewed-by:
Christian König <christian.koenig@amd.com> llvm-svn: 176700
-
Tom Stellard authored
Two changes: 1. Prefer SET* instructions when possible 2. Handle the CND*_INT case with floating-point args Reviewed-by:
Christian König <christian.koenig@amd.com> llvm-svn: 176699
-
Tom Stellard authored
Reviewed-by:
Christian König <christian.koenig@amd.com> llvm-svn: 176698
-
Tom Stellard authored
Reviewed-by:
Christian König <christian.koenig@amd.com> llvm-svn: 176697
-
Tom Stellard authored
Reviewed-by:
Christian König <christian.koenig@amd.com> llvm-svn: 176696
-
Tom Stellard authored
LegalizeDAG.cpp uses the value of the comparison operands when checking the legality of BR_CC, so DAGCombiner should do the same. v2: - Expand more BR_CC value types for NVPTX v3: - Expand correct BR_CC value types for Hexagon, Mips, and XCore. llvm-svn: 176694
-
Jyotsna Verma authored
llvm-svn: 176689
-
Tim Northover authored
Patch based on Mans Rullgard's. llvm-svn: 176688
-
Michel Danzer authored
This is certainly not the last word on scheduling for this target, but right now this allows a few apps to run / finish with radeonsi, most notably UT2004 / Lightsmark. They fail to compile some shaders with the default scheduler because it ends up trying to spill registers, which we don't support yet (and which is probably a bad idea in general for performance if it can be avoided). NOTE: This is a candidate for the Mesa stable branch. Reviewed-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 176687
-
- Mar 07, 2013
-
-
Benjamin Kramer authored
llvm-svn: 176648
-
Jyotsna Verma authored
llvm-svn: 176647
-
Jyotsna Verma authored
llvm-svn: 176637
-
Benjamin Kramer authored
That can usually be lowered efficiently and is common in sandybridge code. It would be nice to do this in DAGCombiner but we can't insert arbitrary BUILD_VECTORs this late. Fixes PR15462. llvm-svn: 176634
-
Christian Konig authored
v2: update CMakeLists.txt as well Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 176626
-
Christian Konig authored
Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 176625
-
Christian Konig authored
v2: fix R600 regressions Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 176624
-
Christian Konig authored
Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 176623
-
Christian Konig authored
Just encode the type as target specific attribute. Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 176622
-
Christian Konig authored
Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 176621
-
Christian Konig authored
Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 176620
-
Michael Liao authored
- Phi nodes should be replaced/updated after lowering CMOV into branch because 'mainMBB' updating operand in Phi node is changed. - Add EFLAGS in livein before lowering the 2nd CMOV. It's necessary as we will reuse the EFLAGS generated before the 1st lowered CMOV, which won't clobber EFLAGS. However, we need explicitly specify that. - '-attr=-cmov' test case are added. llvm-svn: 176598
-
- Mar 06, 2013
-
-
Akira Hatanaka authored
In N64-static, GOT address is needed to compute the branch address. llvm-svn: 176580
-
Michael Liao authored
- Clear 'mayStore' flag when loading from the atomic variable before the spin loop - Clear kill flag from one use to multiple use in registers forming the address to that atomic variable - don't use a physical register as live-in register in BB (neither entry nor landing pad.) by copying it into virtual register (patch by Cameron Zwarich) llvm-svn: 176538
-
Akira Hatanaka authored
This calling convention was added just to handle functions which return vector of floats. The fix committed in r165585 solves the problem. llvm-svn: 176530
-
- Mar 05, 2013
-
-
Akira Hatanaka authored
returned in registers $2 and $4. llvm-svn: 176527
-
Akira Hatanaka authored
handle fp128 returns. llvm-svn: 176523
-
Akira Hatanaka authored
point registers. llvm-svn: 176521
-