- Feb 22, 2011
-
-
Devang Patel authored
In other words, do not keep track of argument's location. The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body. This requires some coordination with debugger to get this working. - The debugger needs to be aware of prolog_end attribute attached with line table entries. - The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+) llvm-svn: 126155
-
- Feb 21, 2011
-
-
NAKAMURA Takumi authored
"dllimport" function must not be GlobalVariable, but Function. It is enough to check with GlobalValue. test/CodeGen/X86/dll-linkage.ll is updated to check llc -O0. llvm-svn: 126110
-
Cameron Zwarich authored
of a constant had a minor typo introduced when copying it from the book, which caused it to favor negative approximations over positive approximations in many cases. Positive approximations require fewer operations beyond the multiplication. In the case of division by 3, we still generate code that is a single instruction larger than GCC's code. llvm-svn: 126097
-
- Feb 20, 2011
-
-
Nick Lewycky authored
test for that. With this change, test/CodeGen/X86/codegen-dce.ll no longer finds any instructions to DCE, so delete the test. Also renamed J and JP to I and IP in RecursivelyDeleteDeadPHINode. llvm-svn: 126088
-
Nadav Rotem authored
The DAGCombiner folds the zext into complex load instructions. This patch prevents this optimization on vectors since none of the supported targets knows how to perform load+vector_zext in one instruction. llvm-svn: 126080
-
- Feb 19, 2011
-
-
Devang Patel authored
llvm-svn: 126008
-
- Feb 18, 2011
-
-
Devang Patel authored
Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. This time with a fix that avoids using invalidated DenseMap iterator. llvm-svn: 125984
-
Bill Wendling authored
llvm-svn: 125960
-
Cameron Zwarich authored
llvm-svn: 125830
-
Devang Patel authored
Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. llvm-svn: 125794
-
- Feb 17, 2011
-
-
NAKAMURA Takumi authored
No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way. llvm-svn: 125747
-
- Feb 16, 2011
-
-
Eric Christopher authored
transformation if we can't legally create a build vector of the correct type. Check that we can make the transformation first, and add a TODO to refactor this code with similar cases. Fixes: PR9223 and rdar://9000350 llvm-svn: 125631
-
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
-