Devang Patel
937b07fb5e
Update dominator info for the middle blocks created while spliting
...
exit edge to preserve LCSSA.
Fix dominance frontier update during loop unswitch. This fixes PR 1589, again
llvm-svn: 40737
2007-08-02 15:25:57 +00:00
Dan Gohman
a599a813d5
Mark the SSE and MMX load instructions that
...
X86InstrInfo::isReallyTriviallyReMaterializable knows how to handle
with the isReMaterializable flag so that it is given a chance to handle
them. Without hoisting constant-pool loads from loops this isn't very
visible, though it does keep CodeGen/X86/constant-pool-remat-0.ll from
making a copy of the constant pool on the stack.
llvm-svn: 40736
2007-08-02 14:27:55 +00:00
Chris Lattner
0111f62050
Enhance instcombine to be more aggressive about folding casts of
...
operations of casts. This implements InstCombine/zext-fold.ll
llvm-svn: 40726
2007-08-02 06:11:14 +00:00
Anders Carlsson
122059b2e9
Fix bug spotted by Chris.
...
llvm-svn: 40725
2007-08-02 06:05:19 +00:00
Anders Carlsson
89ea07e724
Add extend and extOrTrunc methods that do sign or zero extension depending on whether the integer is signed or not
...
llvm-svn: 40724
2007-08-02 06:00:13 +00:00
Evan Cheng
3163814591
Switch some multiplication instructions over to the new scheme for testing.
...
llvm-svn: 40723
2007-08-02 05:48:35 +00:00
Evan Cheng
a06b9cf09f
Do not emit copies for physical register output if it's not used.
...
llvm-svn: 40722
2007-08-02 05:29:38 +00:00
Evan Cheng
5a30bb6d47
Fix test.
...
llvm-svn: 40721
2007-08-02 05:04:16 +00:00
Chris Lattner
2cacb6cc56
Fix PR1575 and test/Transforms/CondProp/2007-08-01-InvalidRead.ll
...
llvm-svn: 40720
2007-08-02 04:47:05 +00:00
Reid Spencer
37f222a6bf
Adjust for new CallInst constructor interface.
...
This fixes test/Feature/llvm2cpp.ll
llvm-svn: 40714
2007-08-02 03:30:26 +00:00
Scott Michel
199544367f
Style police: Expand the tabs to spaces!
...
llvm-svn: 40712
2007-08-02 02:22:46 +00:00
Christopher Lamb
9a2a58c818
Teach BasicAA about noalias parameter attributes, but do it correctly this time.
...
llvm-svn: 40711
2007-08-02 01:18:14 +00:00
Evan Cheng
14bd520741
Instead of adding copyfromreg's to handle physical definitions. Now isel can
...
simply specify them as results and let scheduledag handle them. That
is, instead of
SDOperand Flag = DAG.getTargetNode(Opc, MVT::i32, MVT::Flag, ...)
SDOperand Result = DAG.getCopyFromReg(Chain, X86::EAX, MVT::i32, Flag)
Just write:
SDOperand Result = DAG.getTargetNode(Opc, MVT::i32, MVT::i32, ...)
And let scheduledag emit the move from X86::EAX to a virtual register.
llvm-svn: 40710
2007-08-02 00:28:15 +00:00
Evan Cheng
8f126e59f5
Added TargetInstrDescriptor::numDefs - num of results.
...
llvm-svn: 40709
2007-08-02 00:20:17 +00:00
Evan Cheng
019ecf3b91
Can't handle offset and scale if rip-relative addressing is to be used.
...
llvm-svn: 40703
2007-08-01 23:46:47 +00:00
Evan Cheng
69bbf3ed2a
Mac OS X X86-64 low 4G address not available.
...
llvm-svn: 40702
2007-08-01 23:46:10 +00:00
Evan Cheng
0fa6cdbff5
Mac OS X X86-64 low 4G address not available.
...
llvm-svn: 40701
2007-08-01 23:45:51 +00:00
Devang Patel
f21f509c2c
Undo previous check-in.
...
llvm-svn: 40698
2007-08-01 23:24:50 +00:00
Evan Cheng
b050c17b31
Some out operands were incorrectly specified as input operands.
...
llvm-svn: 40697
2007-08-01 23:07:38 +00:00
Reid Spencer
329af05ad3
Make sure these tests pass for the right reasons (verifier error, rather than
...
failure to assemble).
llvm-svn: 40696
2007-08-01 23:07:36 +00:00
Devang Patel
51c61e730a
Update dominator info for the middle blocks created while spliting
...
exit edge to preserve LCSSA.
Fix dominance frontier update during loop unswitch. This fixes PR 1589.
llvm-svn: 40695
2007-08-01 22:23:50 +00:00
Owen Anderson
7028dfaf9d
Make non-local memdep not be recursive, and fix a bug on 403.gcc that this exposed.
...
llvm-svn: 40692
2007-08-01 22:01:54 +00:00
Evan Cheng
defb3b8389
Missing Requires.
...
llvm-svn: 40691
2007-08-01 21:42:24 +00:00
Evan Cheng
8183a284fd
New test. Bogus implicit-def prevented a copy from being coalesced.
...
llvm-svn: 40690
2007-08-01 20:26:40 +00:00
Evan Cheng
fb587a3851
Be more precise.
...
llvm-svn: 40689
2007-08-01 20:22:37 +00:00
Evan Cheng
d6d66f0cf4
Bugs: missing partial uses and redundant partial defs.
...
llvm-svn: 40688
2007-08-01 20:18:21 +00:00
Lauro Ramos Venancio
699e4b2dec
Add a test for the load/store alignment.
...
llvm-svn: 40687
2007-08-01 20:07:59 +00:00
Lauro Ramos Venancio
1ef30713de
Expand unaligned loads/stores when the target doesn't support them. (PR1548)
...
llvm-svn: 40682
2007-08-01 19:34:21 +00:00
Christopher Lamb
1787c27f13
Clean up C++ restrict test cases and add a test for restrict qualified methods.
...
llvm-svn: 40681
2007-08-01 18:48:29 +00:00
Chris Lattner
0b930d11c7
these tests aren't xfailed.
...
llvm-svn: 40680
2007-08-01 18:37:44 +00:00
Chris Lattner
5d3a429915
we're now handling this right :)
...
llvm-svn: 40675
2007-08-01 17:10:30 +00:00
Owen Anderson
86544141cf
Forgot to update these files for the FastDSE changes.
...
llvm-svn: 40674
2007-08-01 16:53:51 +00:00
Dan Gohman
7dd04fb91c
More explicit keywords.
...
llvm-svn: 40673
2007-08-01 15:32:29 +00:00
Dan Gohman
8e7234519e
Change a .size directive to use a tab instead of a space, for consistency.
...
llvm-svn: 40672
2007-08-01 14:42:30 +00:00
Dan Gohman
53bb686577
Make ImmutablePass::runOnModule non-virtual, since it is not
...
intended to be overridden.
llvm-svn: 40671
2007-08-01 14:28:20 +00:00
Owen Anderson
58e64df595
Rename FastDSE to just DSE.
...
llvm-svn: 40668
2007-08-01 06:36:51 +00:00
Owen Anderson
45499c55e5
Move FastDSE in to DeadStoreElimination.
...
llvm-svn: 40667
2007-08-01 06:30:51 +00:00
Owen Anderson
48e3b68d57
Remove old DSE.
...
llvm-svn: 40666
2007-08-01 06:30:10 +00:00
David Greene
29112580c6
Update generated files.
...
llvm-svn: 40663
2007-08-01 03:59:32 +00:00
David Greene
f06a395bb9
New CallInst interface to address GLIBCXX_DEBUG errors caused by
...
indexing an empty std::vector.
Updates to all clients.
llvm-svn: 40660
2007-08-01 03:43:44 +00:00
Evan Cheng
ab0a826b88
Indexed loads each has 2 outputs.
...
llvm-svn: 40658
2007-08-01 00:12:08 +00:00
Evan Cheng
7a025bad7a
Requires SSE2.
...
llvm-svn: 40657
2007-08-01 00:10:12 +00:00
Owen Anderson
89022c1367
Don't let the memory allocator outsmart GVN. ;-)
...
llvm-svn: 40655
2007-07-31 23:27:13 +00:00
Evan Cheng
8889a56947
simpleregistercoalescing -> regcoalescing. It's too long for me to handle.
...
llvm-svn: 40654
2007-07-31 22:37:44 +00:00
Owen Anderson
9c996b3212
Fix a failure I accidentally caused in my last commit by mishandling the
...
removal of redundant phis.
llvm-svn: 40650
2007-07-31 20:18:28 +00:00
Lauro Ramos Venancio
abf6c6d469
Fix a bug in GetKnownAlignment of packed structs.
...
llvm-svn: 40649
2007-07-31 20:13:21 +00:00
Dan Gohman
e3464e6bec
Change the x86 assembly output to use tab characters to separate the
...
mnemonics from their operands instead of single spaces. This makes the
assembly output a little more consistent with various other compilers
(f.e. GCC), and slightly easier to read. Also, update the regression
tests accordingly.
llvm-svn: 40648
2007-07-31 20:11:57 +00:00
David Greene
4251f42689
Fix GLIBCXX_DEBUG error owing to dereference of end iterator. There's
...
no guarantee that an instruction returned by getDependency exists in
the maps.
llvm-svn: 40647
2007-07-31 20:01:27 +00:00
Owen Anderson
d178c05c62
Fix a misoptimization in aha.
...
llvm-svn: 40642
2007-07-31 17:43:14 +00:00
Dan Gohman
7702c23d4a
Use SCEVExpander::InsertCastOfTo instead of calling new IntToPtrInst
...
directly, because the insert point used by the SCEVExpander may vary
from what LSR originally computes.
llvm-svn: 40641
2007-07-31 17:22:27 +00:00