Dan Gohman
0edbed16c7
Have PseudoSourceValue override Value::dump, so that it works
...
on PseudoSourceValue values. This also fixes a FIXME in
lib/VMCode/AsmWriter.cpp.
llvm-svn: 60507
2008-12-03 21:37:21 +00:00
Dale Johannesen
a0b1516bdc
Fix a misspelled function name.
...
llvm-svn: 60506
2008-12-03 20:56:12 +00:00
Chris Lattner
420385f8c3
Factor some code into a new FoldSingleEntryPHINodes method.
...
llvm-svn: 60501
2008-12-03 19:44:02 +00:00
Dan Gohman
19b43e462f
Fix an inconsistency in a comment.
...
llvm-svn: 60500
2008-12-03 19:38:38 +00:00
Evan Cheng
05ded29738
Use mmx (punpckldq VR64, (mmx_v_set0)) to clear high 32-bits of a VR64 register.
...
llvm-svn: 60499
2008-12-03 19:38:05 +00:00
Dan Gohman
af9b4a8a21
Don't charge the full latency for anti and output dependencies. This is
...
an area where eventually it would be good to use target-dependent
information.
llvm-svn: 60498
2008-12-03 19:37:34 +00:00
Dale Johannesen
6322cd40c6
A step towards geting linux ppc to work (see PR 3099)
...
llvm-svn: 60497
2008-12-03 19:33:10 +00:00
Dan Gohman
4f8709518d
When looking for anti-dependences on the critical path, don't bother
...
examining non-anti-dependence edges.
llvm-svn: 60496
2008-12-03 19:32:26 +00:00
Dan Gohman
1020320a05
Add a comment about callee-saved registers.
...
llvm-svn: 60495
2008-12-03 19:30:13 +00:00
Dale Johannesen
a851280d26
Fix a really wrong comment.
...
llvm-svn: 60494
2008-12-03 19:25:46 +00:00
Chris Lattner
c77e2f13a3
fix a really incorrect comment.
...
llvm-svn: 60492
2008-12-03 19:18:54 +00:00
Dan Gohman
74529a2226
Split foldMemoryOperand into public non-virtual and protected virtual
...
parts, and add target-independent code to add/preserve
MachineMemOperands.
llvm-svn: 60488
2008-12-03 18:43:12 +00:00
Dan Gohman
5dad0993a9
Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning.
...
llvm-svn: 60487
2008-12-03 18:15:48 +00:00
Dan Gohman
fc05cdda64
Extend X86's addFrameReference to add a MachineMemOperand for
...
the frame reference. This will help post-RA scheduling determine
that spills to distinct stack slots are independent.
llvm-svn: 60486
2008-12-03 18:11:40 +00:00
Rafael Espindola
0b01e188e5
Fix some tests. The grep for "il" was matching "file".
...
llvm-svn: 60485
2008-12-03 17:14:56 +00:00
Dan Gohman
6be47e9542
Update a comment.
...
llvm-svn: 60484
2008-12-03 17:10:41 +00:00
Duncan Sands
fbc8da66d6
Only check that the result of the mapping was not
...
a new node if the node was actually remapped.
llvm-svn: 60482
2008-12-03 12:36:16 +00:00
Rafael Espindola
0c800cf35e
Fix bug 3140.
...
Print a single parameter .file directive if we have an ELF target.
llvm-svn: 60480
2008-12-03 11:01:37 +00:00
Richard Osborne
e74ae9dbb7
Add support for ISD::TRAP to the XCore backend
...
llvm-svn: 60479
2008-12-03 10:59:16 +00:00
Evan Cheng
440e75e1d5
Refactor code. No functionality change.
...
llvm-svn: 60478
2008-12-03 08:38:43 +00:00
Bill Wendling
d2208d570b
CC should only be a ConstantSDNode at this point. Just use 'cast' instead of 'dyn_cast'.
...
llvm-svn: 60477
2008-12-03 08:32:02 +00:00
Evan Cheng
803ac3b438
Fix test.
...
llvm-svn: 60476
2008-12-03 08:20:45 +00:00
Chris Lattner
3f3717a4e2
testcase for br undef folding.
...
llvm-svn: 60471
2008-12-03 07:48:27 +00:00
Chris Lattner
f00b2f3fb4
Teach jump threading some more simple tricks:
...
1) have it fold "br undef", which does occur with
surprising frequency as jump threading iterates.
2) teach j-t to delete dead blocks. This removes the successor
edges, reducing the in-edges of other blocks, allowing
recursive simplification.
3) Fold things like:
br COND, BBX, BBY
BBX:
br COND, BBZ, BBW
which also happens because jump threading iterates.
llvm-svn: 60470
2008-12-03 07:48:08 +00:00
Chris Lattner
29326a6d1f
third time is the charm.
...
llvm-svn: 60469
2008-12-03 07:45:15 +00:00
Chris Lattner
d03c1b5440
fix assertion.
...
llvm-svn: 60468
2008-12-03 07:43:05 +00:00
Chris Lattner
683df044b0
don't spew tons of stuff to the output. This testcase is *not* for
...
loop deletion (it is for a ton of passes), which is very bad.
llvm-svn: 60465
2008-12-03 06:41:50 +00:00
Chris Lattner
7a00825f57
Rename DeleteBlockIfDead to DeleteDeadBlock and make it
...
unconditionally delete the block. All likely clients will
do the checking anyway.
llvm-svn: 60464
2008-12-03 06:40:52 +00:00
Chris Lattner
12c3938837
Factor some code out of SimplifyCFG, forming a new
...
DeleteBlockIfDead method.
llvm-svn: 60463
2008-12-03 06:37:44 +00:00
Dan Gohman
ac6561793c
Mark x86's V_SET0 and V_SETALLONES with isSimpleLoad, and teach X86's
...
foldMemoryOperand how to "fold" them, by converting them into constant-pool
loads. When they aren't folded, they use xorps/cmpeqd, but for example when
register pressure is high, they may now be folded as memory operands, which
reduces register pressure.
Also, mark V_SET0 isAsCheapAsAMove so that two-address-elimination will
remat it instead of copying zeros around (V_SETALLONES was already marked).
llvm-svn: 60461
2008-12-03 05:21:24 +00:00
Bill Wendling
f1fab58701
Change label to 'carry' for unsigned adds.
...
llvm-svn: 60460
2008-12-03 02:43:12 +00:00
Dan Gohman
6333d48459
Add a sanity-check to tablegen to catch the case where isSimpleLoad
...
is set but mayLoad is not set. Fix all the problems this turned up.
Change code to not use isSimpleLoad instead of mayLoad unless it
really wants isSimpleLoad.
llvm-svn: 60459
2008-12-03 02:30:17 +00:00
Dan Gohman
18c4a4c9ea
Fix a missing #include.
...
llvm-svn: 60458
2008-12-03 02:10:00 +00:00
Dan Gohman
4560e0ae94
Add an explicit keyword.
...
llvm-svn: 60457
2008-12-03 01:55:47 +00:00
Dan Gohman
c6b61cac39
Replace a #include with a forward-declaration.
...
llvm-svn: 60456
2008-12-03 01:53:18 +00:00
Dan Gohman
86b0a220af
Fix this comment to reflect that it applies to types other
...
than just i32.
llvm-svn: 60455
2008-12-03 01:39:44 +00:00
Dan Gohman
dcd4896f12
Fix byval arguments in the fastcc calling convention. The fastcc convention
...
delegates to the regular x86-32 convention which handles byval, but only
after it handles a few cases, and it's necessary to handle byval before
handling those cases. This fixes PR3122 (and rdar://6400815), llvm-gcc
miscompiling LLVM.
llvm-svn: 60453
2008-12-03 01:28:04 +00:00
Dan Gohman
06c3ee5aa8
Add nounwind attributes to this test.
...
llvm-svn: 60451
2008-12-03 01:10:18 +00:00
Dale Johannesen
da5e01399a
testcases for recent dag combiner changes
...
llvm-svn: 60449
2008-12-03 00:52:41 +00:00
Chris Lattner
a249224590
Fix isIntN to work with APInts > 64 bits. This method is only
...
used by clang apparently.
llvm-svn: 60446
2008-12-02 23:33:29 +00:00
Evan Cheng
a77559c870
Remove a (what appears to be) overly strict assertion. Here is what happened:
...
1. ppcf128 select is expanded to f64 select's.
2. f64 select operand 0 is an i1 truncate, it's promoted to i32 zero_extend.
3. f64 select is updated. It's changed back to a "NewNode" and being re-analyzed.
4. f64 select operands are being processed. Operand 0 is a "NewNode". It's being expunged out of ReplacedValues map.
5. ExpungeNode tries to remap f64 select and notice it's a "NewNode" and assert.
Duncan, please take a look. Thanks.
llvm-svn: 60443
2008-12-02 21:57:09 +00:00
Dale Johannesen
e06fb96c43
Minor rewrite per review feedback.
...
llvm-svn: 60442
2008-12-02 21:17:11 +00:00
Scott Michel
69c9d01241
Non-functional change: make custom lowering for truncate stylistically
...
consistent with the way it's generally done in other places.
llvm-svn: 60439
2008-12-02 19:55:08 +00:00
Scott Michel
e0bbe7afb7
CellSPU:
...
- Incorporate Tilmann Scheller's ISD::TRUNCATE custom lowering patch
- Update SPU calling convention info, even if it's not used yet (but can be
at some point or another)
- Ensure that any-extended f32 loads are custom lowered, especially when
they're promoted for use in printf.
llvm-svn: 60438
2008-12-02 19:53:53 +00:00
Dan Gohman
0834d959e9
Fix a typo in a comment.
...
llvm-svn: 60434
2008-12-02 19:27:20 +00:00
Owen Anderson
afbd11e227
Add support for folding spills into preceding defs when doing pre-alloc splitting.
...
llvm-svn: 60433
2008-12-02 18:53:47 +00:00
Dale Johannesen
c9123e12e3
One more transformation.
...
llvm-svn: 60432
2008-12-02 18:40:40 +00:00
Dale Johannesen
531472926e
Make the code do what the comment says it does.
...
llvm-svn: 60431
2008-12-02 18:40:09 +00:00
Chris Lattner
2f766df51f
Comment typeo fix, thanks Duncan!
...
llvm-svn: 60429
2008-12-02 18:33:11 +00:00
Tilmann Scheller
14310949e3
make it possible to custom lower TRUNCATE (needed for the CellSPU target)
...
llvm-svn: 60409
2008-12-02 12:12:25 +00:00