Chris Lattner
8b8ff16dba
New testcase for PR310
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12596 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 20:28:35 +00:00
Chris Lattner
4edf6c043e
Remove some assertions that are now bogus with the last patch I put in
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12595 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 19:21:46 +00:00
Chris Lattner
1869a466dd
Bug fixed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12593 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 19:09:49 +00:00
Chris Lattner
4f303bd4a5
Fix PR306: Loop simplify incorrectly updates dominator information
...
Testcase: LoopSimplify/2004-04-01-IncorrectDomUpdate.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12592 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 19:06:07 +00:00
Chris Lattner
afd5e2fdec
New testcase for PR306
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12591 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 19:05:54 +00:00
Misha Brukman
c4b611af63
Fix grammar.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12590 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 17:15:42 +00:00
Chris Lattner
6683dbf32e
Add support for select constant expressions to the CBE, fixing SIOD
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12589 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 05:28:26 +00:00
Chris Lattner
0526f01fec
Simplify code by using the more powerful BuildMI forms.
...
Implement a small optimization. In test/Regression/CodeGen/X86/select.ll,
we now generate this for foldSel3:
foldSel3:
mov %AL, BYTE PTR [%ESP + 4]
fld DWORD PTR [%ESP + 8]
fld DWORD PTR [%ESP + 12]
mov %EAX, DWORD PTR [%ESP + 16]
mov %ECX, DWORD PTR [%ESP + 20]
cmp %EAX, %ECX
fxch %ST(1)
fcmovae %ST(0), %ST(1)
*** fstp %ST(1)
ret
Instead of:
foldSel3:
mov %AL, BYTE PTR [%ESP + 4]
fld DWORD PTR [%ESP + 8]
fld DWORD PTR [%ESP + 12]
mov %EAX, DWORD PTR [%ESP + 16]
mov %ECX, DWORD PTR [%ESP + 20]
cmp %EAX, %ECX
fxch %ST(1)
fcmovae %ST(0), %ST(1)
*** fxch %ST(1)
*** fstp %ST(0)
ret
In practice, this only effects code size: performance should be basically
unaffected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12588 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 04:06:09 +00:00
Chris Lattner
f1ac50ec53
Wrap at 80 cols
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12587 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 04:03:27 +00:00
Chris Lattner
024e91f6f6
Allow converting a builder to an iterator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12586 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 04:03:10 +00:00
Chris Lattner
140385e0ac
Tests for fp cmov's that I forgot to check in earlier
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12585 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 03:47:56 +00:00
Chris Lattner
2974b5b9bb
Clear out all of the changes. Reset version numbers to 1.3
...
add note about select
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12584 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01 00:41:31 +00:00
Brian Gaeke
da44b15125
Add clear() forwarding method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12580 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 22:43:12 +00:00
Chris Lattner
68626c2b30
Generate slightly smaller code, "test R, R" instead of "cmp R, 0"
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12579 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 22:22:36 +00:00
Chris Lattner
08bde1870a
The X86 backend no longer needs the select lowering pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12578 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 22:03:46 +00:00
Chris Lattner
352eb48f8e
Codegen FP select instructions into X86 conditional moves. Annoyingly enough
...
the X86 does not support a full set of fp cmove instructions, so we can't always
fold the condition into the select. :( Yuck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12577 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 22:03:35 +00:00
Chris Lattner
c1bab32bc5
Add support for floating point conditional move instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12576 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 22:02:36 +00:00
Chris Lattner
30b2f72e7c
Add support for FP cmoves
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12575 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 22:02:21 +00:00
Chris Lattner
1c54a85447
Add FP conditional move instructions, which annoyingly have special properties
...
that require the asmwriter to be extended (printing implicit uses before the
explicit operands)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12574 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 22:02:13 +00:00
Chris Lattner
0e28eca4bc
Add warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12573 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 22:00:30 +00:00
Chris Lattner
b4186e0ccd
MBB::remove should not modify the iterator passed in
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12572 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 21:59:59 +00:00
Chris Lattner
4f6410f5cb
MachineBasicBlock::remove should not modify the iterator passed in
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12571 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 21:59:29 +00:00
Chris Lattner
0c58897d1c
Improve description, add warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12570 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 21:59:07 +00:00
Chris Lattner
83706a5a3a
MachineBasicBlock::remove should not change the iterator passed into it
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12569 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 21:58:50 +00:00
Brian Gaeke
368c5da198
Factor out getStaticStackSize from InsertPrologCode(), so that I can more
...
easily steal it for a separate use in the reoptimizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12568 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 20:58:37 +00:00
Brian Gaeke
60d6e54c72
Use the true, decoded name of the archive member in getObjectType.
...
In ReadArchiveBuffer, make sure that MemberName is set in the case where
getObjectType would want to return SVR4LongFilename.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12567 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 19:51:00 +00:00
Chris Lattner
91ef460285
Avoid TRUE and FALSE which apparently conflict with some macros on OSX
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12566 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 03:49:47 +00:00
Chris Lattner
1438102576
Fix linking of constant expr casts due to type resolution changes. With
...
this and the other patches 253.perlbmk links again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12565 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 02:58:28 +00:00
Chris Lattner
4b2f08a3a9
Add support for constant expr casts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12564 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 02:56:11 +00:00
Chris Lattner
1e490ba4cd
Add support for reading constantexpr select instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12563 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 02:53:59 +00:00
Chris Lattner
92e84229e1
Fix a latent bug in select constantexpr handling that was broke 253.perlbmk
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12562 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 22:51:03 +00:00
Alkis Evlogimenos
a8db01ac83
Correctly update LiveVariables when an instruction changes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12561 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 22:44:39 +00:00
Chris Lattner
307ecbaddb
Fold comparisons into select instructions, making much better code and
...
using our broad selection of movcc instructions. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12560 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 22:39:09 +00:00
Chris Lattner
dd285eab68
Test folding comparisons into select instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12559 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 22:37:04 +00:00
Chris Lattner
5192676aa4
New testcase. This now codegens to:
...
max:
mov %EAX, DWORD PTR [%ESP + 4]
mov %ECX, DWORD PTR [%ESP + 8]
cmp %EAX, %ECX
cmovle %EAX, %ECX
ret
Someone should really implement passing arguments through registers for
known-internal functions. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12558 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 22:36:52 +00:00
Chris Lattner
87d3bb5dfa
Implement spill code folding for all of the conditional move instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12554 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 21:29:47 +00:00
Chris Lattner
12d96a0b4d
Add direct support for integer select instructions, though we still don't support
...
folding compares into the select yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12553 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 21:22:00 +00:00
Chris Lattner
3b68c201c8
New testcase for select instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12552 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 21:21:14 +00:00
Chris Lattner
bc280abd46
Fix bug: Assembler/2004-03-30-UnclosedFunctionCrash.llx
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12551 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 20:58:25 +00:00
Chris Lattner
982b2791cf
New testcase that crashes the assembler
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12550 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 20:58:00 +00:00
Chris Lattner
a5cdab7101
Fix some serious bugs in the cmov descriptions, which didn't cause a problem because
...
we never generated them
Make indentation a bit more consistent
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12549 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 20:18:02 +00:00
Brian Gaeke
87fa610ee0
Start cleaning up this pass so that I can debug it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12548 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 19:53:46 +00:00
Chris Lattner
4971b722ff
Oops, actually USE the previously computed value
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12547 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 19:45:39 +00:00
Chris Lattner
5dd784a8ca
Test general value/value selection which we can do now that we use the
...
select instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12546 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 19:45:11 +00:00
Chris Lattner
552112f2f8
Now that all the code generators support the select instruction, and the instcombine
...
pass can eliminate many nasty cases of them, start generating them in the optimizers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12545 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 19:44:05 +00:00
Chris Lattner
c32b30a429
Implement select.ll:test[3-6]
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12544 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 19:37:13 +00:00
Chris Lattner
6d0996866c
Add some testcases for select simplification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12543 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 19:36:54 +00:00
Chris Lattner
6f2ab04e91
Fix a fairly major performance problem. If a PHI node had a constant as
...
an incoming value from a block, the selector would evaluate the constant
at the TOP of the block instead of at the end of the block. This made the
live range for the constant span the entire block, increasing register
pressure needlessly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12542 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 19:10:12 +00:00
Chris Lattner
5abd61f6d9
Add the select lowering pass to get initial support for select instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12541 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 18:41:59 +00:00
Chris Lattner
18bdbc3dda
Add a simple select instruction lowering pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12540 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 18:41:10 +00:00