- Aug 11, 2011
-
-
Jakob Stoklund Olesen authored
The InterferenceResult iterator turned out to be less important than we thought it would be. LiveIntervalUnion clients want higher level information, like the list of interfering virtual registers. llvm-svn: 137346
-
Jim Grosbach authored
llvm-svn: 137345
-
Owen Anderson authored
llvm-svn: 137344
-
Jim Grosbach authored
llvm-svn: 137342
-
Andrew Trick authored
ancestor loops. I have a unit test that depends on scev-unroll, which unfortunately isn't checked in. But I will check it in when I can. llvm-svn: 137341
-
Owen Anderson authored
llvm-svn: 137340
-
Jim Grosbach authored
llvm-svn: 137339
-
Jim Grosbach authored
llvm-svn: 137337
-
Jim Grosbach authored
llvm-svn: 137331
-
Owen Anderson authored
llvm-svn: 137325
-
Bruno Cardoso Lopes authored
llvm-svn: 137324
-
Owen Anderson authored
llvm-svn: 137323
-
Owen Anderson authored
Correct immediate range for shifter operands. Patch by James Molloy, with additional encoding fixes added by me. llvm-svn: 137322
-
Benjamin Kramer authored
llvm-svn: 137321
-
Owen Anderson authored
llvm-svn: 137320
-
Jim Grosbach authored
Per the ARM ARM, a 'push' of a single register encodes as an STR, not an STM. llvm-svn: 137318
-
Andrew Trick authored
llvm-svn: 137317
-
Jim Grosbach authored
Per the ARM ARM, a 'pop' of a single register encodes as an LDR, not an LDM. llvm-svn: 137316
-
Nadav Rotem authored
llvm-svn: 137313
-
Nadav Rotem authored
lower XMM register gets in first. This will allow the SUBREG pattern to elliminate the first vector insertion. llvm-svn: 137310
-
Nadav Rotem authored
(for example, after integer operation), do not pack the registers into a YMM before saving. Its better to save as two XMM registers. Before: vinsertf128 $1, %xmm3, %ymm0, %ymm3 vinsertf128 $0, %xmm1, %ymm3, %ymm1 vmovaps %ymm1, 416(%rsp) After: vmovaps %xmm3, 416+16(%rsp) vmovaps %xmm1, 416(%rsp) llvm-svn: 137308
-
rdar://9930964Chris Lattner authored
It's somewhat surprising anything works without this. Before we would compile the testcase into: test: # @test movl $4, 8(%rdi) movl 8(%rdi), %eax orl %esi, %eax cmpl $32, %edx movl %eax, -4(%rsp) # 4-byte Spill je .LBB0_2 now we produce: test: # @test movl 8(%rdi), %eax movl $4, 8(%rdi) orl %esi, %eax cmpl $32, %edx movl %eax, -4(%rsp) # 4-byte Spill je .LBB0_2 llvm-svn: 137303
-
Bruno Cardoso Lopes authored
llvm-svn: 137297
-
Bruno Cardoso Lopes authored
infinite recursive calls in legalize. Fix PR10562 llvm-svn: 137296
-
Bruno Cardoso Lopes authored
could only get undefs and the vector shuffle becomes an undef, generating wrong code. llvm-svn: 137295
-
Eli Friedman authored
Fix X86TargetLowering::LowerExternalSymbol so that it actually works in non-trivial cases. This hasn't been an issue before because the function isn't normally called (but apparently is used to generate a tail-call to sin() on ELF x86-32 with PIC and SSE2). Fixes PR9693. llvm-svn: 137292
-
Devang Patel authored
llvm-svn: 137283
-
Jim Grosbach authored
llvm-svn: 137282
-
Jim Grosbach authored
llvm-svn: 137277
-
Andrew Trick authored
An algorithm for incrementally updating LoopInfo within a LoopPassManager. The incremental update should be extremely cheap in most cases and can be used in places where it's not feasible to regenerate the entire loop forest. - "Unloop" is a node in the loop tree whose last backedge has been removed. - Perform reverse dataflow on the block inside Unloop to propagate the nearest loop from the block's successors. - For reducible CFG, each block in unloop is visited exactly once. This is because unloop no longer has a backedge and blocks within subloops don't change parents. - Immediate subloops are summarized by the nearest loop reachable from their exits or exits within nested subloops. - At completion the unloop blocks each have a new parent loop, and each immediate subloop has a new parent. llvm-svn: 137276
-
Jim Grosbach authored
llvm-svn: 137260
-
- Aug 10, 2011
-
-
Jim Grosbach authored
Add support for literal encoding of #-0 along the way. llvm-svn: 137254
-
Devang Patel authored
Distinguish between two copies of one inlined variable. Take 2. llvm-svn: 137253
-
Devang Patel authored
While extending definition range of a debug variable, consult lexical scopes also. There is no point extending debug variable out side its lexical block. This provides 6x compile time speedup in some cases. llvm-svn: 137250
-
Devang Patel authored
llvm-svn: 137249
-
Devang Patel authored
llvm-svn: 137246
-
Jim Grosbach authored
llvm-svn: 137245
-
Jim Grosbach authored
llvm-svn: 137244
-
Nadav Rotem authored
data in-register prior to saving to memory. When we reorder the data in memory we prevent the need to save multiple scalars to memory, making a single regular store. llvm-svn: 137238
-
Devang Patel authored
llvm-svn: 137237
-