Owen Anderson
ff21db851d
Be sure to remove values from the value numbering table after we delete them.
...
This fixes a failure on povray.
llvm-svn: 52499
2008-06-19 17:53:26 +00:00
Dan Gohman
ed2250990a
Use Instruction::moveBefore instead of manipulating the instruction list
...
directly.
llvm-svn: 52498
2008-06-19 17:47:47 +00:00
Dan Gohman
9eea470fcf
Avoid using BasicBlock::getInstList directly in a few places.
...
llvm-svn: 52497
2008-06-19 17:37:25 +00:00
Owen Anderson
45d3701fce
Revert support for insertvalue and extractvalue instructions for the moment.
...
GVN expects that all inputs which to an instruction fall somewhere in the value
hierarchy, which isn't true for these.
llvm-svn: 52496
2008-06-19 17:25:39 +00:00
Dan Gohman
6f880690b8
Use the transferSuccessors helper function.
...
llvm-svn: 52495
2008-06-19 17:22:29 +00:00
Dan Gohman
68f539e807
Delete dead code.
...
llvm-svn: 52494
2008-06-19 17:18:39 +00:00
Owen Anderson
eb31adeba4
Add an idx_iterator to the insertvalue and extractvalue instructions.
...
llvm-svn: 52493
2008-06-19 17:15:57 +00:00
Dan Gohman
386c2f616f
The inline keyword goes before the return type. This fixes a compiler warning.
...
llvm-svn: 52492
2008-06-19 16:16:06 +00:00
Matthijs Kooijman
a087b73dba
Modify some ipconstprop tests to also test with invokes.
...
llvm-svn: 52491
2008-06-19 09:27:44 +00:00
Matthijs Kooijman
0c71732497
Use a CallSite to find the nth argument of a call/invoke instruction instead of
...
using getOperand() directly. This makes things work with invoke instructions as
well.
llvm-svn: 52489
2008-06-19 08:53:24 +00:00
Duncan Sands
db356eea26
Fix some warnings reported by gcc-4.3. Hopefully
...
this still compiles on windows - I can't test!
llvm-svn: 52488
2008-06-19 08:47:31 +00:00
Evan Cheng
849fa11f15
Missed a check.
...
llvm-svn: 52487
2008-06-19 06:17:19 +00:00
Eli Friedman
8d66e98c92
Fix a bug with <8 x i16> shuffle lowering on X86 where parts of the
...
shuffle could be skipped. The check is invalid because the loop index i
doesn't correspond to the element actually inserted. The correct check is
already done a few lines earlier, for whether the element is already in
the right spot, so this shouldn't have any effect on the codegen for
code that was already correct.
llvm-svn: 52486
2008-06-19 06:09:51 +00:00
Owen Anderson
3c4ccc830e
Revert my last patch, which was causing regression test failures.
...
llvm-svn: 52485
2008-06-19 05:29:34 +00:00
Evan Cheng
b139ee95b4
New test case.
...
llvm-svn: 52483
2008-06-19 01:50:24 +00:00
Evan Cheng
d6d9cfa72a
This also got better (55 - 51 instructions). But doing one more re-materialization.
...
llvm-svn: 52482
2008-06-19 01:50:13 +00:00
Evan Cheng
1d1907d778
This got better.
...
llvm-svn: 52481
2008-06-19 01:46:43 +00:00
Evan Cheng
0c8ef553f5
Coalesce copy from one register class to a sub register class. e.g. X86::MOV16to16_.
...
llvm-svn: 52480
2008-06-19 01:39:21 +00:00
Evan Cheng
18e46d455b
Cosmetic changes.
...
llvm-svn: 52479
2008-06-19 01:21:26 +00:00
Evan Cheng
2dbba985d5
Unneeded include's.
...
llvm-svn: 52478
2008-06-19 01:21:02 +00:00
Evan Cheng
55bc848640
Minor spiller tweak to unfavor reload into load/store instructions.
...
llvm-svn: 52477
2008-06-19 01:16:17 +00:00
Owen Anderson
80ef880b98
Insert empty slots into the instruction numbering in live intervals, so that we can more easily
...
add new instructions.
llvm-svn: 52475
2008-06-19 00:10:49 +00:00
Owen Anderson
83c6a9d7c1
Remove this test until the corresponding patch is reapplied because it's causing make check to crash for some people.
...
llvm-svn: 52473
2008-06-18 22:37:31 +00:00
Owen Anderson
3ea800fbad
Add support for extractvalue and insertvalue instructions in GVN.
...
llvm-svn: 52472
2008-06-18 21:59:00 +00:00
Owen Anderson
6a903bc601
Add local PRE to GVN. This only operates in cases where it would not increase code size, namely when the instantiated expression
...
would only need to be created in one predecessor.
llvm-svn: 52471
2008-06-18 21:41:49 +00:00
Bill Wendling
573e0fd68b
Refactor the way to get a string containing the features of the target.
...
llvm-svn: 52470
2008-06-18 21:39:02 +00:00
Argyrios Kyrtzidis
55a8524241
Fix the source line debug information for the Windows platform.
...
According to DWARF-2 specification, the line information is provided through an offset in the .debug_line section.
Replace the label reference that is used with a section offset.
llvm-svn: 52468
2008-06-18 19:27:37 +00:00
Dan Gohman
08783a88a2
Fix a missing comma spotted by Bram Geron.
...
llvm-svn: 52467
2008-06-18 18:42:13 +00:00
Chris Lattner
78119b4742
Fix the regressions on sext-misc.ll my patch yesterday caused.
...
llvm-svn: 52466
2008-06-18 18:11:55 +00:00
Owen Anderson
9094cc957e
Revert r52459, which was causing an infinite loop or massive slowdown on MultiSource/Applications/SPASS, and possibly others as well.
...
Please reapply once this is fixed.
llvm-svn: 52465
2008-06-18 17:32:16 +00:00
Dan Gohman
095ca74a7f
Move SCEVExpander::visitAddExpr out-of-line.
...
llvm-svn: 52464
2008-06-18 16:37:11 +00:00
Dan Gohman
be928e3b21
Move LSR's private isZero function to a public SCEV member
...
function, and make use of it in several places.
llvm-svn: 52463
2008-06-18 16:23:07 +00:00
Gabor Greif
687f35f466
fix validator warning
...
llvm-svn: 52461
2008-06-18 14:05:31 +00:00
Gabor Greif
095502edfe
prettify, no semantic changes
...
llvm-svn: 52460
2008-06-18 13:44:57 +00:00
Matthijs Kooijman
964557fdf5
Rewrite the DeadArgumentElimination pass, to use a more explicit tracking of
...
dependencies between return values and/or arguments. Also make the handling of
arguments and return values the same.
The pass now looks properly inside returned structs, but only at the first
level (ie, not inside nested structs).
Also add a testcase for testing various variations of (multiple) dead rerturn
values.
llvm-svn: 52459
2008-06-18 11:12:53 +00:00
Matthijs Kooijman
fd17357643
Reapply r52397 (make IPConstProp promote returned arguments), but fixed this
...
time. Sorry for the trouble!
This time, also add a testcase, which I should have done in the first place...
llvm-svn: 52455
2008-06-18 08:30:37 +00:00
Evan Cheng
1d260dfa3b
XOR32rr, etc. are not AsCheapAsMove, but MOV32ri, etc. are.
...
llvm-svn: 52454
2008-06-18 08:13:07 +00:00
Matthijs Kooijman
97034598b1
Reapply r52396, it was unrelated to the breakage (that was caused by r52397, my
...
commit after this).
llvm-svn: 52453
2008-06-18 08:09:27 +00:00
Evan Cheng
c5618ebdb9
Complete support for two-address pass rematerialization. Now *almost* always a win.
...
llvm-svn: 52452
2008-06-18 07:49:14 +00:00
Evan Cheng
84da6318ca
Add MachineRegisterInfo::use_empty.
...
llvm-svn: 52451
2008-06-18 07:47:55 +00:00
Evan Cheng
50d59478da
Cosmetic.
...
llvm-svn: 52450
2008-06-18 07:47:28 +00:00
Bill Wendling
9b2c5730b3
If compiling for PPC on an i386 box, the LTO wouldn't get the altivec (and
...
other) feature information. The workaround is inelegant and could be cleaned up
if this information were available some other way (say, in the IR).
llvm-svn: 52447
2008-06-18 06:35:30 +00:00
Ted Kremenek
1ce19b9941
Updated static analyzer build to checker-39.
...
llvm-svn: 52446
2008-06-18 05:43:24 +00:00
Ted Kremenek
9a935fbdeb
Added a new ProgramPoint: PostPurgeDeadSymbols. This new program point distinguishes between the cases when we just evaluated the transfer function of a Stmt* (PostStmt) or performed a load (PostLoad). This solves a caching bug observed in a recent bug report.
...
llvm-svn: 52443
2008-06-18 05:34:07 +00:00
Chris Lattner
ef36dcd10b
implement some simple bswap optimizations, rdar://5992453
...
llvm-svn: 52442
2008-06-18 04:33:20 +00:00
Chris Lattner
466e1f8dd2
temporarily revert this testcase since its patch was reverted.
...
llvm-svn: 52441
2008-06-18 04:03:23 +00:00
Chris Lattner
b5ee8b3e89
make truncate/sext elimination capable of changing phi's. This
...
implements rdar://6013816 and the testcase in Transforms/InstCombine/sext-misc.ll.
llvm-svn: 52440
2008-06-18 04:00:49 +00:00
Evan Cheng
f6a1466829
Unbreak DECLARE isel in pic mode.
...
llvm-svn: 52439
2008-06-18 02:48:27 +00:00
Devang Patel
cd6b697945
Preserve dominance frontier while trivially unswitching loop.
...
llvm-svn: 52438
2008-06-18 02:16:38 +00:00
Devang Patel
772a008738
Check empty dominance frontier.
...
llvm-svn: 52437
2008-06-18 02:12:09 +00:00