- Dec 20, 2011
-
-
Akira Hatanaka authored
llvm-svn: 147005
-
Akira Hatanaka authored
llvm-svn: 147004
-
Akira Hatanaka authored
MIPS64 can generate constant +0.0 with a single DMTC1 instruction. llvm-svn: 146999
-
Jakob Stoklund Olesen authored
Use the spill slot alignment as well as the local variable alignment to determine when the stack needs to be realigned. This works now that the ARM target can always realign the stack by using a base pointer. Still respect the ARMBaseRegisterInfo::canRealignStack() function vetoing a realigned stack. Don't use aligned spill code in that case. llvm-svn: 146997
-
Jim Grosbach authored
llvm-svn: 146990
-
Jim Grosbach authored
llvm-svn: 146985
-
Jim Grosbach authored
llvm-svn: 146983
-
Evan Cheng authored
llvm-svn: 146981
-
Elena Demikhovsky authored
The failure that I see in the current version is: LLVM ERROR: Cannot select: 0x18b8f70: v4i64 = X86ISD::VZEXT_MOVL 0x18beee0 [ID=14] 0x18beee0: v4i64 = insert_subvector 0x18b8c70, 0x18b9170, 0x18b9570 [ID=13] 0x18b8c70: v4i64 = insert_subvector 0x18b9870, 0x18bf4e0, 0x18b9970 [ID=12] 0x18b9870: v4i64 = undef [ID=4] 0x18bf4e0: v2i64 = bitcast 0x18bf3e0 [ID=10] 0x18bf3e0: v4i32 = BUILD_VECTOR 0x18b9770, 0x18b9770, 0x18b9770, 0x18b9770 [ID=8] 0x18b9770: i32 = TargetConstant<0> [ID=6] 0x18b9770: i32 = TargetConstant<0> [ID=6] 0x18b9770: i32 = TargetConstant<0> [ID=6] 0x18b9770: i32 = TargetConstant<0> [ID=6] 0x18b9970: i32 = Constant<0> [ID=3] 0x18b9170: v2i64 = undef [ORD=1] [ID=1] 0x18b9570: i32 = Constant<2> [ID=5] llvm-svn: 146975
-
Chandler Carruth authored
use the zero-undefined variants of CTTZ and CTLZ. These are just simple patterns for now, there is more to be done to make real world code using these constructs be optimized and codegen'ed properly on X86. The existing tests are spiffed up to check that we no longer generate unnecessary cmov instructions, and that we generate the very important 'xor' to transform bsr which counts the index of the most significant one bit to the number of leading (most significant) zero bits. Also they now check that when the variant with defined zero result is used, the cmov is still produced. llvm-svn: 146974
-
Andrew Trick authored
llvm-svn: 146951
-
Bob Wilson authored
We used to rely on the *eh_sjlj_setjmp instructions to mark that a function with setjmp/longjmp exception handling clobbers all the registers. But with the recent reorganization of ARM EH, those eh_sjlj_setjmp instructions are expanded away earlier, before PEI can see them to determine what registers to save and restore. Mark the dispatchsetup instruction in the same way, since that instruction cannot be expanded early. This also more accurately reflects when the registers are clobbered. llvm-svn: 146949
-
Jim Grosbach authored
"mov r1, r2, lsl #0" should assemble as "mov r1, r2" even though it's not strictly legal UAL syntax. It's a common extension and the friendly thing to do. rdar://10604663 llvm-svn: 146937
-
Chris Lattner authored
merging types by name when we can. We still don't guarantee type name linkage but we do it when obviously the right thing to do. This makes LTO type names easier to read, for example. llvm-svn: 146932
-
Chris Lattner authored
fix PR11464 by preventing the linker from mapping two different struct types from the source module onto the same opaque destination type. An opaque type can only be resolved to one thing or another after all. llvm-svn: 146929
-
Evan Cheng authored
llvm-svn: 146923
-
Jim Grosbach authored
rdar://9932658 llvm-svn: 146921
-
- Dec 19, 2011
-
-
Akira Hatanaka authored
llvm-svn: 146901
-
Akira Hatanaka authored
patterns emit a single LUi instruction instead of a pair of LUi and ORi. llvm-svn: 146900
-
Jim Grosbach authored
rdar://10602276 llvm-svn: 146895
-
Akira Hatanaka authored
direct-object emitter should emit the appropriate shift instruction depending on the shift amount. llvm-svn: 146893
-
Akira Hatanaka authored
This change reduces the number of instructions generated. For example, (load (add (sub $n0, $n1), (MipsLo got(s)))) results in the following sequence of instructions: 1. sub $n2, $n0, $n1 2. lw got(s)($n2) Previously, three instructions were needed. 1. sub $n2, $n0, $n1 2. addiu $n3, $n2, got(s) 3. lw 0($n3) llvm-svn: 146888
-
Jim Grosbach authored
llvm-svn: 146885
-
Jim Grosbach authored
There's more variation that we need to handle. Error checking will need to be on operand predicates. llvm-svn: 146884
-
- Dec 18, 2011
-
-
Joerg Sonnenberger authored
attribute themselve. llvm-svn: 146851
-
- Dec 17, 2011
-
-
Chad Rosier authored
internal nightly testers. Original commit message: By popular demand, link up types by name if they are isomorphic and one is an autorenamed version of the other. This makes the IR easier to read, because we don't end up with random renamed versions of the types after LTO'ing a large app. llvm-svn: 146838
-
Kevin Enderby authored
Hope I did this correctly :) llvm-svn: 146834
-
Pete Cooper authored
SimplifyCFG now predicts some conditional branches to true or false depending on previous branch on same comparison operands. For example, if (a == b) { if (a > b) // this is false Fixes some of the issues on <rdar://problem/10554090> llvm-svn: 146822
-
Manuel Klimek authored
llvm-svn: 146821
-
Evan Cheng authored
llvm-svn: 146805
-
Rafael Espindola authored
asm parsing and testcase. llvm-svn: 146801
-
Lang Hames authored
llvm-svn: 146800
-
Dan Gohman authored
"half precision" floating-point with a first-class type. This patch adds basic IR support (but not codegen support). llvm-svn: 146786
-
Eric Christopher authored
pointer or a reference type - we actually just want the size of the pointer then for that. Fixes rdar://10335756 llvm-svn: 146785
-
Jakob Stoklund Olesen authored
The bad sorting caused a misaligned basic block when building 176.vpr in ARM mode. <rdar://problem/10594653> llvm-svn: 146767
-
- Dec 16, 2011
-
-
Benjamin Kramer authored
Reenable the tests. llvm-svn: 146750
-
Manuel Klimek authored
llvm-svn: 146735
-
Chris Lattner authored
autorenamed version of the other. This makes the IR easier to read, because we don't end up with random renamed versions of the types after LTO'ing a large app. llvm-svn: 146728
-
Craig Topper authored
Don't try to match 'unpackl/h v, v' for 32xi8 and 16xi16 when only AVX1 is supported. Fix 'unpackh v, v' for 256-bit types to understand 128-bit lanes. llvm-svn: 146726
-
Kostya Serebryany authored
llvm-svn: 146718
-