- Feb 16, 2011
-
-
Eric Christopher authored
llvm-svn: 125630
-
- Feb 15, 2011
-
-
Devang Patel authored
Ignore DBG_VALUE machine instructions while constructing instruction ranges based on location info. Machine instruction range consisting of only DBG_VALUE MIs only contributes consecutive labels in assembly output, which is harmless, and empty scope entry in DebugInfo, which confuses debugger tools. llvm-svn: 125577
-
- Feb 14, 2011
-
-
Rafael Espindola authored
section. llvm-svn: 125526
-
Chris Lattner authored
vector fp conversions. llvm-svn: 125482
-
- Feb 13, 2011
-
-
Chris Lattner authored
have their low bits set to zero. This allows us to optimize out explicit stack alignment code like in stack-align.ll:test4 when it is redundant. Doing this causes the code generator to start turning FI+cst into FI|cst all over the place, which is general goodness (that is the canonical form) except that various pieces of the code generator don't handle OR aggressively. Fix this by introducing a new SelectionDAG::isBaseWithConstantOffset predicate, and using it in places that are looking for ADD(X,CST). The ARM backend in particular was missing a lot of addressing mode folding opportunities around OR. llvm-svn: 125470
-
Chris Lattner authored
the shift amounts are in a suitably wide type so that we don't generate out of range constant shift amounts. This fixes PR9028. llvm-svn: 125458
-
- Feb 10, 2011
-
-
Evan Cheng authored
After 3-addressifying a two-address instruction, update the register maps; add a missing check when considering whether it's profitable to commute. rdar://8977508. llvm-svn: 125259
-
- Feb 07, 2011
-
-
Devang Patel authored
llvm-svn: 125019
-
- Feb 05, 2011
-
-
NAKAMURA Takumi authored
Target/X86: Tweak allocating shadow area (aka home) on Win64. It must be enough for caller to allocate one. llvm-svn: 124949
-
- Feb 04, 2011
-
-
Devang Patel authored
llvm-svn: 124904
-
Nick Lewycky authored
purpose. Fixes PR9080! llvm-svn: 124903
-
Devang Patel authored
DebugLoc associated with a machine instruction is used to emit location entries. DebugLoc associated with a DBG_VALUE is used to identify lexical scope of the variable. After register allocation, while inserting DBG_VALUE remember original debug location for the first instruction and reuse it, otherwise dwarf writer may be mislead in identifying the variable's scope. llvm-svn: 124845
-
- Feb 03, 2011
-
-
Rafael Espindola authored
llvm-svn: 124774
-
Rafael Espindola authored
Reversing the operands allows us to fold, but doesn't force us to. Also, at this point the DAG is still being optimized, so the check for hasOneUse is not very precise. llvm-svn: 124773
-
- Jan 31, 2011
-
-
Devang Patel authored
llvm-svn: 124611
-
- Jan 30, 2011
-
-
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
-
-
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
-
Rafael Espindola authored
llvm-svn: 124471
-
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 26, 2011
-
-
NAKAMURA Takumi authored
llvm-svn: 124272
-
NAKAMURA Takumi authored
llvm-svn: 124270
-
- Jan 25, 2011
-
-
Devang Patel authored
Resolve DanglingDbgValue of PHI nodes where the use follows dbg.value intrinisic. llvm-svn: 124203
-
- Jan 24, 2011
-
-
Devang Patel authored
llvm-svn: 124142
-
Devang Patel authored
llvm-svn: 124138
-
Chris Lattner authored
llvm-svn: 124102
-
- Jan 20, 2011
-
-
Eric Christopher authored
to add/sub by doing the normal operation and then checking for overflow afterwards. This generally relies on the DAG handling the later invalid operations as well. Fixes the 64-bit part of rdar://8622122 and rdar://8774702. llvm-svn: 123908
-
- Jan 17, 2011
-
-
Benjamin Kramer authored
llvm-svn: 123664
-
Benjamin Kramer authored
This shaves off 4 popcounts from the hacked 186.crafty source. This is enabled even when a native popcount instruction is available. The combined code is one operation longer but it should be faster nevertheless. llvm-svn: 123621
-
- Jan 16, 2011
-
-
Rafael Espindola authored
llvm-svn: 123591
-
Chris Lattner authored
into and/shift would cause nodes to move around and a dangling pointer to happen. The code tried to avoid this with a HandleSDNode, but got the details wrong. llvm-svn: 123578
-
Chris Lattner authored
llvm-svn: 123560
-
Chris Lattner authored
multi-instruction sequences like calls. Many thanks to Jakob for finding a testcase. llvm-svn: 123559
-
- Jan 14, 2011
-
-
Chris Lattner authored
llvm-gcc-i386-linux-selfhost buildbot heartburn... llvm-svn: 123431
-
Chris Lattner authored
llvm-svn: 123427
-
Chris Lattner authored
llvm-svn: 123422
-
Chris Lattner authored
after sext's generated for addressing that got folded. Previously we compiled test5 into: _test5: ## @test5 ## BB#0: movq -8(%rsp), %rax ## 8-byte Reload movq (%rdi,%rax), %rdi addq %rdx, %rdi movslq %esi, %rax movq %rax, -8(%rsp) ## 8-byte Spill movq %rdi, %rax ret which is insane and wrong. Now we produce: _test5: ## @test5 ## BB#0: movslq %esi, %rax movq (%rdi,%rax), %rax addq %rdx, %rax ret llvm-svn: 123414
-