Chris Lattner
|
d6b2556f07
|
Add new function
llvm-svn: 12601
|
2004-04-02 05:04:12 +00:00 |
|
Chris Lattner
|
2ef79bf28a
|
Add new function, autoconf support required tho
llvm-svn: 12600
|
2004-04-02 05:04:03 +00:00 |
|
Chris Lattner
|
8c22ebb727
|
Bug fixed
llvm-svn: 12598
|
2004-04-01 20:31:29 +00:00 |
|
Chris Lattner
|
973cb73b4f
|
Fix PR310 and TailDup/2004-04-01-DemoteRegToStack.llx
llvm-svn: 12597
|
2004-04-01 20:28:45 +00:00 |
|
Chris Lattner
|
1fe2d63344
|
New testcase for PR310
llvm-svn: 12596
|
2004-04-01 20:28:35 +00:00 |
|
Chris Lattner
|
441ab4b903
|
Remove some assertions that are now bogus with the last patch I put in
llvm-svn: 12595
|
2004-04-01 19:21:46 +00:00 |
|
Chris Lattner
|
061c03a1d0
|
Bug fixed
llvm-svn: 12593
|
2004-04-01 19:09:49 +00:00 |
|
Chris Lattner
|
eda638b0be
|
Fix PR306: Loop simplify incorrectly updates dominator information
Testcase: LoopSimplify/2004-04-01-IncorrectDomUpdate.ll
llvm-svn: 12592
|
2004-04-01 19:06:07 +00:00 |
|
Chris Lattner
|
100de6d67e
|
New testcase for PR306
llvm-svn: 12591
|
2004-04-01 19:05:54 +00:00 |
|
Misha Brukman
|
da1fac0cee
|
Fix grammar.
llvm-svn: 12590
|
2004-04-01 17:15:42 +00:00 |
|
Chris Lattner
|
ef90bac3e3
|
Add support for select constant expressions to the CBE, fixing SIOD
llvm-svn: 12589
|
2004-04-01 05:28:26 +00:00 |
|
Chris Lattner
|
b6e4e5a95e
|
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.
llvm-svn: 12588
|
2004-04-01 04:06:09 +00:00 |
|
Chris Lattner
|
78027ca4ff
|
Wrap at 80 cols
llvm-svn: 12587
|
2004-04-01 04:03:27 +00:00 |
|
Chris Lattner
|
c241db65d6
|
Allow converting a builder to an iterator
llvm-svn: 12586
|
2004-04-01 04:03:10 +00:00 |
|
Chris Lattner
|
ae7950aef4
|
Tests for fp cmov's that I forgot to check in earlier
llvm-svn: 12585
|
2004-04-01 03:47:56 +00:00 |
|
Chris Lattner
|
592949e887
|
Clear out all of the changes. Reset version numbers to 1.3
add note about select
llvm-svn: 12584
|
2004-04-01 00:41:31 +00:00 |
|
Brian Gaeke
|
e7f4f73f67
|
Add clear() forwarding method.
llvm-svn: 12580
|
2004-03-31 22:43:12 +00:00 |
|
Chris Lattner
|
2e0755a058
|
Generate slightly smaller code, "test R, R" instead of "cmp R, 0"
llvm-svn: 12579
|
2004-03-31 22:22:36 +00:00 |
|
Chris Lattner
|
97e8b80649
|
The X86 backend no longer needs the select lowering pass.
llvm-svn: 12578
|
2004-03-31 22:03:46 +00:00 |
|
Chris Lattner
|
e5d60adc20
|
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.
llvm-svn: 12577
|
2004-03-31 22:03:35 +00:00 |
|
Chris Lattner
|
d50df93168
|
Add support for floating point conditional move instructions
llvm-svn: 12576
|
2004-03-31 22:02:36 +00:00 |
|
Chris Lattner
|
4d543b4201
|
Add support for FP cmoves
llvm-svn: 12575
|
2004-03-31 22:02:21 +00:00 |
|
Chris Lattner
|
e4fa3010db
|
Add FP conditional move instructions, which annoyingly have special properties
that require the asmwriter to be extended (printing implicit uses before the
explicit operands)
llvm-svn: 12574
|
2004-03-31 22:02:13 +00:00 |
|
Chris Lattner
|
6aaea5f86b
|
Add warning
llvm-svn: 12573
|
2004-03-31 22:00:30 +00:00 |
|
Chris Lattner
|
bfe4dd0f90
|
MBB::remove should not modify the iterator passed in
llvm-svn: 12572
|
2004-03-31 21:59:59 +00:00 |
|
Chris Lattner
|
2cc4a29665
|
MachineBasicBlock::remove should not modify the iterator passed in
llvm-svn: 12571
|
2004-03-31 21:59:29 +00:00 |
|
Chris Lattner
|
34112aa99f
|
Improve description, add warning
llvm-svn: 12570
|
2004-03-31 21:59:07 +00:00 |
|
Chris Lattner
|
3f24ea6ccf
|
MachineBasicBlock::remove should not change the iterator passed into it
llvm-svn: 12569
|
2004-03-31 21:58:50 +00:00 |
|
Brian Gaeke
|
98c323dedd
|
Factor out getStaticStackSize from InsertPrologCode(), so that I can more
easily steal it for a separate use in the reoptimizer.
llvm-svn: 12568
|
2004-03-31 20:58:37 +00:00 |
|
Brian Gaeke
|
4ca49f84ba
|
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.
llvm-svn: 12567
|
2004-03-31 19:51:00 +00:00 |
|
Chris Lattner
|
6ea8b0176c
|
Avoid TRUE and FALSE which apparently conflict with some macros on OSX
llvm-svn: 12566
|
2004-03-31 03:49:47 +00:00 |
|
Chris Lattner
|
1c0ddbfb7d
|
Fix linking of constant expr casts due to type resolution changes. With
this and the other patches 253.perlbmk links again.
llvm-svn: 12565
|
2004-03-31 02:58:28 +00:00 |
|
Chris Lattner
|
5a789b5e06
|
Add support for constant expr casts
llvm-svn: 12564
|
2004-03-31 02:56:11 +00:00 |
|
Chris Lattner
|
b9cadcfcd9
|
Add support for reading constantexpr select instructions
llvm-svn: 12563
|
2004-03-31 02:53:59 +00:00 |
|
Chris Lattner
|
1d78eb6094
|
Fix a latent bug in select constantexpr handling that was broke 253.perlbmk
llvm-svn: 12562
|
2004-03-30 22:51:03 +00:00 |
|
Alkis Evlogimenos
|
45cb0b871d
|
Correctly update LiveVariables when an instruction changes
llvm-svn: 12561
|
2004-03-30 22:44:39 +00:00 |
|
Chris Lattner
|
f477746a61
|
Fold comparisons into select instructions, making much better code and
using our broad selection of movcc instructions. :)
llvm-svn: 12560
|
2004-03-30 22:39:09 +00:00 |
|
Chris Lattner
|
beaf1cdb85
|
Test folding comparisons into select instructions
llvm-svn: 12559
|
2004-03-30 22:37:04 +00:00 |
|
Chris Lattner
|
399515cbfb
|
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. :)
llvm-svn: 12558
|
2004-03-30 22:36:52 +00:00 |
|
Chris Lattner
|
6c1dd729d3
|
Implement spill code folding for all of the conditional move instructions
llvm-svn: 12554
|
2004-03-30 21:29:47 +00:00 |
|
Chris Lattner
|
ff016bd6fe
|
Add direct support for integer select instructions, though we still don't support
folding compares into the select yet.
llvm-svn: 12553
|
2004-03-30 21:22:00 +00:00 |
|
Chris Lattner
|
83b4416593
|
New testcase for select instructions
llvm-svn: 12552
|
2004-03-30 21:21:14 +00:00 |
|
Chris Lattner
|
d265077f6d
|
Fix bug: Assembler/2004-03-30-UnclosedFunctionCrash.llx
llvm-svn: 12551
|
2004-03-30 20:58:25 +00:00 |
|
Chris Lattner
|
f2d61c39d5
|
New testcase that crashes the assembler
llvm-svn: 12550
|
2004-03-30 20:58:00 +00:00 |
|
Chris Lattner
|
57968a98df
|
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
llvm-svn: 12549
|
2004-03-30 20:18:02 +00:00 |
|
Brian Gaeke
|
59c80cfd05
|
Start cleaning up this pass so that I can debug it.
llvm-svn: 12548
|
2004-03-30 19:53:46 +00:00 |
|
Chris Lattner
|
9527e2086b
|
Oops, actually USE the previously computed value
llvm-svn: 12547
|
2004-03-30 19:45:39 +00:00 |
|
Chris Lattner
|
9289723307
|
Test general value/value selection which we can do now that we use the
select instruction
llvm-svn: 12546
|
2004-03-30 19:45:11 +00:00 |
|
Chris Lattner
|
145aea5c4c
|
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
llvm-svn: 12545
|
2004-03-30 19:44:05 +00:00 |
|
Chris Lattner
|
b6612acb18
|
Implement select.ll:test[3-6]
llvm-svn: 12544
|
2004-03-30 19:37:13 +00:00 |
|