- Sep 21, 2010
-
-
Evan Cheng authored
define double @foo(double %x, double %y, i1 %c) nounwind { %a = fdiv double %x, 3.2 %z = select i1 %c, double %a, double %y ret double %z } Was: _foo: divsd LCPI0_0(%rip), %xmm0 testb $1, %dil jne LBB0_2 movaps %xmm1, %xmm0 LBB0_2: ret Now: _foo: testb $1, %dil je LBB0_2 divsd LCPI0_0(%rip), %xmm0 ret LBB0_2: movaps %xmm1, %xmm0 ret This avoids the divsd when early exit is taken. rdar://8454886 llvm-svn: 114372
-
- Sep 20, 2010
-
-
Owen Anderson authored
CombinerAA cannot assume that different FrameIndex's never alias, but can instead use MachineFrameInfo to get the actual offsets of these slots and check for actual aliasing. This fixes CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll and CodeGen/X86/tailcallstack64.ll when CombinerAA is enabled, modulo a different register allocation sequence. llvm-svn: 114348
-
Jim Grosbach authored
between the high and low registers for prologue/epilogue code. This was a Darwin-only thing that wasn't providing a realistic benefit anymore. Combining the save areas simplifies the compiler code and results in better ARM/Thumb2 codegen. For example, previously we would generate code like: push {r4, r5, r6, r7, lr} add r7, sp, #12 stmdb sp!, {r8, r10, r11} With this change, we combine the register saves and generate: push {r4, r5, r6, r7, r8, r10, r11, lr} add r7, sp, #12 rdar://8445635 llvm-svn: 114340
-
Rafael Espindola authored
llvm-svn: 114339
-
Evan Cheng authored
llvm-svn: 114338
-
Francois Pichet authored
Fix the "unable to rename temporary" lit test failing on Windows. rename is now copy + delete on Windows. Problem to be revisited for a permanent and clean solution. llvm-svn: 114320
-
- Sep 19, 2010
-
-
Owen Anderson authored
llvm-svn: 114313
-
Owen Anderson authored
r114268 fixed the last of the blockers to enabling it. I will be monitoring for failures. llvm-svn: 114312
-
Jakob Stoklund Olesen authored
llvm-svn: 114310
-
Chris Lattner authored
llvm-svn: 114304
-
Chris Lattner authored
llvm-svn: 114303
-
Chris Lattner authored
llvm-svn: 114302
-
- Sep 18, 2010
-
-
NAKAMURA Takumi authored
llvm-svn: 114297
-
Eric Christopher authored
Patch by Che-Liang Chiou <clchiou@gmail.com>! llvm-svn: 114294
-
Michael J. Spencer authored
llvm-svn: 114292
-
Rafael Espindola authored
llvm-svn: 114285
-
Benjamin Kramer authored
llvm-svn: 114284
-
Gabor Greif authored
llvm-svn: 114278
-
Gabor Greif authored
llvm-svn: 114277
-
Lang Hames authored
llvm-svn: 114273
-
Lang Hames authored
Added a separate class (PBQPBuilder) for PBQP Problem construction. This class can be extended to support custom constraints. For now the allocator still uses the old (internal) construction mechanism by default. This will be phased out soon assuming no issues with the builder system come up. To invoke the new construction mechanism just pass '-regalloc=pbqp -pbqp-builder' to llc. To provide custom constraints a Target just needs to extend PBQPBuilder and pass an instance of their derived builder to the RegAllocPBQP constructor. llvm-svn: 114272
-
Evan Cheng authored
llvm-svn: 114270
-
Owen Anderson authored
NO path to the destination containing side effects, not that SOME path contains no side effects. In practice, this only manifests with CombinerAA enabled, because otherwise the chain has little to no branching, so "any" is effectively equivalent to "all". llvm-svn: 114268
-
Eric Christopher authored
llvm-svn: 114263
-
Eric Christopher authored
thumb with floating point. llvm-svn: 114256
-
Eric Christopher authored
llvm-svn: 114254
-
Jim Grosbach authored
instructions (PICADD, PICLDR, et.al.) llvm-svn: 114243
-
Jim Grosbach authored
with one in the generic printing code is an error. llvm-svn: 114242
-
Benjamin Kramer authored
llvm-svn: 114240
-
Jim Grosbach authored
llvm-svn: 114237
-
Bob Wilson authored
value should be in GPRs when it's going to be used as a scalar, and we use VMOVRRD to make that happen, but if the value is converted back to a vector we need to fold to a simple bit_convert. Radar 8407927. llvm-svn: 114233
-
Jim Grosbach authored
and shift instructions on ARM. Update the tests to match. llvm-svn: 114230
-
Rafael Espindola authored
llvm-svn: 114229
-
Evan Cheng authored
1) Do forward copy propagation. This makes it easier to estimate the cost of the instruction being sunk. 2) Break critical edges on demand, including cases where the value is used by PHI nodes. Critical edge splitting is not yet enabled by default. llvm-svn: 114227
-
Eric Christopher authored
llvm-svn: 114226
-
- Sep 17, 2010
-
-
Evan Cheng authored
llvm-svn: 114222
-
Evan Cheng authored
llvm-svn: 114220
-
Jakob Stoklund Olesen authored
llvm-svn: 114219
-
Jim Grosbach authored
llvm-svn: 114215
-
Jim Grosbach authored
llvm-svn: 114212
-