- Mar 31, 2009
-
-
Bill Wendling authored
llvm-svn: 68099
-
Owen Anderson authored
Remove the "fast" cases for spill and restore point determination, as these were subtlely wrong in obscure cases. Patch the testcase to account for this change. llvm-svn: 68093
-
Bill Wendling authored
llvm-svn: 68092
-
Dan Gohman authored
instructions. This fixes lua. llvm-svn: 68083
-
Evan Cheng authored
X86 address mode isel tweak. If the base of the address is also used by a CopyToReg (i.e. it's likely live-out), do not fold the sub-expressions into the addressing mode to avoid computing the address twice. The CopyToReg use will be isel'ed to a LEA, re-use it for address instead. This is not yet enabled. llvm-svn: 68082
-
Dan Gohman authored
only reachable via fall-through edges. This dramatically reduces the number of labels printed, and thus also the number of labels the assembler must parse and remember. llvm-svn: 68073
-
Devang Patel authored
Loop Index Split can eliminate a loop if it can determin if loop body is executed only once. There was a bug in determining IV based value of the iteration for which the loop body is executed. Fix it. llvm-svn: 68071
-
- Mar 30, 2009
-
-
Evan Cheng authored
When optimzing a mul by immediate into two, the resulting mul's should get a x86 specific node to avoid dag combiner from hacking on them further. llvm-svn: 68066
-
Evan Cheng authored
Turn a 2-address instruction into a 3-address one when it's profitable even if the two-address operand is killed. e.g. %reg1024<def> = MOV r1 %reg1025<def> = ADD %reg1024, %reg1026 r0 = MOV %reg1025 If it's not possible / profitable to commute ADD, then turning ADD into a LEA saves a copy. llvm-svn: 68065
-
Bill Wendling authored
llvm-svn: 68059
-
Bill Wendling authored
llvm-svn: 68057
-
Dan Gohman authored
llvm-svn: 68054
-
Bob Wilson authored
llvm-svn: 68050
-
Devang Patel authored
Walking an invalidated iterator is not a good idea. llvm-svn: 68047
-
Anton Korobeynikov authored
llvm-svn: 68036
-
Anton Korobeynikov authored
llvm-svn: 68034
-
Anton Korobeynikov authored
llvm-svn: 68033
-
Anton Korobeynikov authored
Do not propagate ELF-specific stuff (data.rel) into other targets. This simplifies code and also ensures correctness. llvm-svn: 68032
-
Anton Korobeynikov authored
llvm-svn: 68031
-
- Mar 29, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 68007
-
Anton Korobeynikov authored
llvm-svn: 68006
-
Anton Korobeynikov authored
llvm-svn: 68005
-
Anton Korobeynikov authored
Extend the relocation tracker handler, so we can filter on different 'kinds' of relocations required. llvm-svn: 68004
-
Duncan Sands authored
when using -soft-float. Based on a patch by Jakob Stoklund Olesen. llvm-svn: 67996
-
Chris Lattner authored
hackish workarounds from memdep llvm-svn: 67971
-
- Mar 28, 2009
-
-
Chris Lattner authored
llvm-svn: 67953
-
Rafael Espindola authored
llvm-svn: 67950
-
Rafael Espindola authored
llvm-svn: 67949
-
Rafael Espindola authored
of operands in an address in so many places. llvm-svn: 67945
-
Arnold Schwaighofer authored
a CALL and a RET node more generic. Add a test for tail calls with a void return. llvm-svn: 67943
-
Arnold Schwaighofer authored
Enable tail call optimization for functions that return a struct (bug 3664) and for functions that return types that need extending (e.g i1). llvm-svn: 67934
-
Evan Cheng authored
Optimize some 64-bit multiplication by constants into two lea's or one lea + shl since imulq is slow (latency 5). e.g. x * 40 => shlq $3, %rdi leaq (%rdi,%rdi,4), %rax This has the added benefit of allowing more multiply to be folded into addressing mode. e.g. a * 24 + b => leaq (%rdi,%rdi,2), %rax leaq (%rsi,%rax,8), %rax llvm-svn: 67917
-
Chris Lattner authored
llvm-svn: 67892
-
Dan Gohman authored
llvm-svn: 67881
-
Dan Gohman authored
default constructor produces an uninitialized APInt. This fixes PR3896. llvm-svn: 67879
-
Jim Grosbach authored
llvm-svn: 67874
-
- Mar 27, 2009
-
-
Gabor Greif authored
llvm-svn: 67872
-
Rafael Espindola authored
llvm-svn: 67848
-
Rafael Espindola authored
llvm-svn: 67846
-
Rafael Espindola authored
improve TLS support (see http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090309/075220.html), but that code is VERY brittle. This patch just makes it a bit more resistant. llvm-svn: 67843
-