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
Dan Gohman
7cc14c55da
Auto-upgrade code for multiple-value return statements. This code
...
isn't actually called yet.
llvm-svn: 52435
2008-06-17 23:38:43 +00:00
Dan Gohman
d8ca05f4ee
In InsertValueInst's copy ctor, actually copy the operands.
...
llvm-svn: 52434
2008-06-17 23:25:49 +00:00
Owen Anderson
75f3732b23
We don't want to find dependencies within the same block in this case. It leads to incorrect results because
...
we're detecting something at or after the call we're querying on.
llvm-svn: 52433
2008-06-17 22:27:06 +00:00
Dan Gohman
4a3125ba29
Implement the ExtractValueInst::getIndexedType that accepts one
...
index value.
llvm-svn: 52432
2008-06-17 21:07:55 +00:00
Evan Cheng
f873ed1b10
Live-through live interval is [mbb start, mbb end+1].
...
llvm-svn: 52431
2008-06-17 20:13:36 +00:00
Evan Cheng
1eb69314fa
When extending a liveinterval by commuting, don't throw away the live ranges that are not affected.
...
llvm-svn: 52430
2008-06-17 20:11:16 +00:00
Ted Kremenek
e157b265b7
Update website link to latest checker build.
...
llvm-svn: 52429
2008-06-17 19:23:54 +00:00
Ted Kremenek
3802fedfe4
Fix non-termination bug reported by Thomas Clement!
...
llvm-svn: 52426
2008-06-17 19:14:06 +00:00
Ted Kremenek
90ada832be
Consistently set "Buckets[NumBuckets] = reinterpret_cast<void*>(-1)" throughout FoldingSet.cpp.
...
llvm-svn: 52425
2008-06-17 19:12:43 +00:00
Owen Anderson
2505e0c36b
Add an insertBefore method for attaching previously unattached instructions,
...
such as those created by clone(), to a basic block.
llvm-svn: 52424
2008-06-17 18:29:27 +00:00
Owen Anderson
edcfe385fe
Fix use of placement new to actually use an address.
...
llvm-svn: 52423
2008-06-17 18:07:43 +00:00
Chris Lattner
5696e7badf
Change self/_cmd to be instances of ImplicitParamDecl instead of ParmVarDecl.
...
Patch by David Chisnall!
llvm-svn: 52422
2008-06-17 18:05:57 +00:00