- Feb 02, 2011
-
-
Devang Patel authored
llvm-svn: 124755
-
Devang Patel authored
llvm-svn: 124752
-
Evan Cheng authored
the load, then it may be legal to transform the load and store to integer load and store of the same width. This is done if the target specified the transformation as profitable. e.g. On arm, this can transform: vldr.32 s0, [] vstr.32 s0, [] to ldr r12, [] str r12, [] rdar://8944252 llvm-svn: 124708
-
- Feb 01, 2011
-
-
Matt Beaumont-Gay authored
llvm-svn: 124688
-
- Jan 31, 2011
-
-
Devang Patel authored
llvm-svn: 124611
-
Richard Osborne authored
llvm-svn: 124587
-
- Jan 30, 2011
-
-
Anton Korobeynikov authored
llvm-svn: 124569
-
Jakob Stoklund Olesen authored
This is similar to the -unroll-threshold option. There should be no change in behavior when -tail-dup-size is not explicit on the llc command line. llvm-svn: 124564
-
Benjamin Kramer authored
Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, c1+c2) when c1 equals the amount of bits that are truncated off. This happens all the time when a smul is promoted to a larger type. On x86-64 we now compile "int test(int x) { return x/10; }" into movslq %edi, %rax imulq $1717986919, %rax, %rax movq %rax, %rcx shrq $63, %rcx sarq $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax" addl %ecx, %eax This fires 96 times in gcc.c on x86-64. llvm-svn: 124559
-
- Jan 29, 2011
-
-
Benjamin Kramer authored
This happens e.g. for code like "X - X%10" where we lower the modulo operation to a series of multiplies and shifts that are then subtracted from X, leading to this missed optimization. llvm-svn: 124532
-
Evan Cheng authored
llvm-svn: 124526
-
Evan Cheng authored
llvm-svn: 124522
-
Evan Cheng authored
Re-commit r124462 with fixes. Tail recursion elim will now dup ret into unconditional predecessor to enable TCE on demand. llvm-svn: 124518
-
- Jan 28, 2011
-
-
Evan Cheng authored
llvm-svn: 124478
-
Nick Lewycky authored
llvm-svn: 124472
-
Rafael Espindola authored
llvm-svn: 124468
-
Evan Cheng authored
branches. PR8575, rdar://5134905, rdar://8911460. - Allow codegen tail duplication to dup small return blocks after register allocation is done. llvm-svn: 124462
-
- Jan 27, 2011
-
-
Andrew Trick authored
llvm-svn: 124443
-
Andrew Trick authored
rdar://problem/8893967: JM/lencod miscompile at -arch armv7 -mthumb -O3 Added ResurrectKill to remove kill flags after we decide to reused a physical register. And (hopefully) ensure that we call it in all the right places. Sorry, I'm not checking in a unit test given that it's a miscompile I can't reproduce easily with a toy example. Failures in the rewriter depend on a series of heuristic decisions maked during one of the many upstream phases in codegen. This case would require coercing regalloc to generate a couple of rematerialzations in a way that causes the scavenger to reuse the same register at just the wrong point. The general way to test this is to implement kill flags verification. Then we could have a simple, robust compile-only unit test. That would be worth doing if the whole pass was not about to disappear. At this point we focus verification work on the next generation of regalloc. llvm-svn: 124442
-
Devang Patel authored
llvm-svn: 124397
-
Devang Patel authored
Take 2. This includes fix for dragonegg crash. llvm-svn: 124380
-
Bob Wilson authored
Linear scan regalloc is currently assuming that any register aliased with a member of a regclass must also be in at least one regclass. That is not always true. For example, for X86, RIP is in a regclass but IP is not. If you're unlucky, this can cause a crash by invalidating the iterator. llvm-svn: 124365
-
Matt Beaumont-Gay authored
llvm-svn: 124350
-
Matt Beaumont-Gay authored
llvm-svn: 124346
-
Devang Patel authored
llvm-svn: 124339
-
- Jan 26, 2011
-
-
Bill Wendling authored
llvm-svn: 124331
-
Devang Patel authored
llvm-svn: 124327
-
Devang Patel authored
llvm-svn: 124320
-
David Greene authored
[AVX] Add INSERT_SUBVECTOR and support it on x86. This provides a default implementation for x86, going through the stack in a similr fashion to how the codegen implements BUILD_VECTOR. Eventually this will get matched to VINSERTF128 if AVX is available. llvm-svn: 124307
-
Devang Patel authored
llvm-svn: 124302
-
Devang Patel authored
llvm-svn: 124301
-
Devang Patel authored
llvm-svn: 124300
-
David Greene authored
[AVX] Support EXTRACT_SUBVECTOR on x86. This provides a default implementation of EXTRACT_SUBVECTOR for x86, going through the stack in a similr fashion to how the codegen implements BUILD_VECTOR. Eventually this will get matched to VEXTRACTF128 if AVX is available. llvm-svn: 124292
-
Jakob Stoklund Olesen authored
No functional change. llvm-svn: 124257
-
Devang Patel authored
llvm-svn: 124245
-
- Jan 25, 2011
-
-
Devang Patel authored
Resolve DanglingDbgValue of PHI nodes where the use follows dbg.value intrinisic. llvm-svn: 124203
-
Devang Patel authored
This assertion is too restrictive, it does not apply for dangling dbg value nodes (nodes where dbg.value intrinsic preceds use of the value). llvm-svn: 124202
-
- Jan 24, 2011
-
-
Anton Korobeynikov authored
llvm-svn: 124150
-
Devang Patel authored
llvm-svn: 124142
-
Devang Patel authored
llvm-svn: 124138
-