- May 11, 2011
-
-
Rafael Espindola authored
llvm-svn: 131169
-
- May 10, 2011
-
-
Rafael Espindola authored
llvm-svn: 131151
-
Rafael Espindola authored
llvm-svn: 131149
-
Rafael Espindola authored
llvm-svn: 131146
-
Rafael Espindola authored
this clang will use .debug_frame in, for example, clang -g -c -m32 test.c This matches gcc's behaviour. It looks like .debug_frame is a bit bigger than .eh_frame, but has the big advantage of not being allocated. llvm-svn: 131140
-
Rafael Espindola authored
llvm-svn: 131129
-
Justin Holewinski authored
Patch by Dan Bailey llvm-svn: 131128
-
Rafael Espindola authored
llvm-svn: 131121
-
- May 08, 2011
-
-
Benjamin Kramer authored
"b + ((a < b) ? 1 : 0)" compiles into cmpl %esi, %edi adcl $0, %esi instead of cmpl %esi, %edi sbbl %eax, %eax andl $1, %eax addl %esi, %eax This saves a register, a false dependency on %eax (Intel's CPUs still don't ignore it) and it's shorter. llvm-svn: 131070
-
- May 07, 2011
-
-
Duncan Sands authored
often expressed as "x >= y ? x : y", there is a good chance we can extract the existing "x >= y" from it and use that as a replacement for "max(x,y)==x". llvm-svn: 131049
-
- May 06, 2011
-
-
Jakob Stoklund Olesen authored
This can't be just an assertion, users can always write impossible inline assembly. Such an assembly statement should be included in the error message. llvm-svn: 131024
-
Nick Lewycky authored
assert in the bitcode writer. No change needed because the ValueEnumerator holds a whole-module numbering anyhow. Fixes PR9857! llvm-svn: 131016
-
Galina Kistanova authored
llvm-svn: 131002
-
Rafael Espindola authored
llvm-svn: 130999
-
Rafael Espindola authored
llvm-svn: 130995
-
Justin Holewinski authored
Patch by Wei-Ren Chen llvm-svn: 130980
-
Duncan Sands authored
return the pointer being dereferenced, it returns the pointee, but a call might return the pointer itself. llvm-svn: 130979
-
Eli Friedman authored
possibly related to cbnz formation. llvm-svn: 130977
-
- May 05, 2011
-
-
Eli Friedman authored
PR9838: Fix transform introduced in r127064 to not trigger when only one side of the icmp is an exact shift. llvm-svn: 130954
-
Rafael Espindola authored
I tested both gdb on a bootstrapped clang and and the gdb testsuite on OS X (snow leopard) and both are happy using __eh_frame. llvm-svn: 130937
-
Galina Kistanova authored
Many LLVM tests relies on standard output stream be in the binary mode. Which is not always the case (on Windows in particular). The patch adds a test to verify that the standard output stream is actually in the binary mode. llvm-svn: 130936
-
Eli Friedman authored
Avoid extra vreg copies for arguments passed in registers. Specifically, this can make MachineCSE more effective in some cases (especially in small functions). PR8361 / part of rdar://problem/8259436 . llvm-svn: 130928
-
Jakob Stoklund Olesen authored
This should unbreak llvm-gcc-i386-linux-selfhost. llvm-svn: 130927
-
Jakob Stoklund Olesen authored
llvm-svn: 130893
-
Jakob Stoklund Olesen authored
Most of these tests require a single mov instruction that can come either before or after a 2-addr instruction. -join-physregs changes the behavior, but the results are equivalent. llvm-svn: 130891
-
Dan Gohman authored
the default register allocator is changed. llvm-svn: 130883
-
Bill Wendling authored
landing pad as its successor. SjLj exception handling jumps to the correct landing pad via a switch statement that's generated right before code-gen. Loosen the constraint in the machine instruction verifier to allow for this. Note, this isn't the most rigorous check since we cannot determine where that switch statement came from. But it's marginally better than turning this check off when SjLj exceptions are used. <rdar://problem/9187612> llvm-svn: 130881
-
Eli Friedman authored
Original message: Teach MachineCSE how to do simple cross-block CSE involving physregs. This allows, for example, eliminating duplicate cmpl's on x86. Part of rdar://problem/8259436 . llvm-svn: 130877
-
- May 04, 2011
-
-
Galina Kistanova authored
This test fails on ARM. The test shouldn't explicitly specify alignment (and alignment 4 is wrong) and requires hard-float. llvm-svn: 130875
-
Eli Friedman authored
llvm-svn: 130867
-
Eli Friedman authored
Teach MachineCSE how to do simple cross-block CSE involving physregs. This allows, for example, eliminating duplicate cmpl's on x86. Part of rdar://problem/8259436 . llvm-svn: 130862
-
Jakob Stoklund Olesen authored
llvm-svn: 130859
-
Jakob Stoklund Olesen authored
These tests all follow the same pattern: mov r2, r0 movs r0, #0 $CMP r2, r1 it eq moveq r0, #1 bx lr The first 'mov' can be eliminated by rematerializing 'movs r0, #0' below the test instruction: $CMP r0, r1 mov.w r0, #0 it eq moveq r0, #1 bx lr So far, only physreg coalescing can do that. The register allocators won't yet split live ranges just to eliminate copies. They can learn, but this particular problem is not likely to show up in real code. It only appears because r0 is used for both the function argument and return value. llvm-svn: 130858
-
Jakob Stoklund Olesen authored
llvm-svn: 130856
-
Jakob Stoklund Olesen authored
llvm-svn: 130855
-
Devang Patel authored
llvm-svn: 130854
-
Akira Hatanaka authored
llvm-svn: 130849
-
Akira Hatanaka authored
Prevent instructions using $gp from being placed between a jalr and the instruction that restores the clobbered $gp. llvm-svn: 130847
-
Rafael Espindola authored
it is both inefficient and unexpected by dwarfdump. Change to a DW_FORM_data4. While in here, change the predicate name to reflect that the position is not really absolute (it is an offset), just that the linker needs a relocation. llvm-svn: 130846
-
Duncan Sands authored
but according to my super-optimizer there are only two missed simplifications of -instsimplify kind when compiling bzip2, and this is one of them. It amuses me to have bzip2 be perfectly optimized as far as instsimplify goes! llvm-svn: 130840
-