Chris Lattner
64431dbce7
This is the real fix for Codegen/X86/2004-04-13-FPCMOV-Crash.llx which works
...
even when the "optimization" I added before is turned off. It generates this
extremely pointless code:
test:
fld QWORD PTR [%ESP + 4]
mov %AL, 0
test %AL, %AL
fcmove %ST(0), %ST(0)
ret
Good thing the optimizer will have removed this before code generation
anyway. :)
llvm-svn: 12939
2004-04-14 02:42:32 +00:00
Chris Lattner
ffd151e5a9
Temporarily hack in the intrinsics that John added. I expect him to finish up their addition, but in the meantime, the build should not be broken.
...
llvm-svn: 12938
2004-04-14 02:22:54 +00:00
John Criswell
94de925685
Added support for the llvm.readio and llvm.writeio intrinsics.
...
On x86, memory operations occur in-order, so these are just lowered into
volatile loads and stores.
llvm-svn: 12936
2004-04-13 22:13:14 +00:00
Chris Lattner
2ba048528f
Implement a small optimization, which papers over the problem in
...
X86/2004-04-13-FPCMOV-Crash.llx
A more robust fix is to follow.
llvm-svn: 12935
2004-04-13 21:56:09 +00:00
Chris Lattner
6e48365ab9
Fix bug, add support for +/-
...
llvm-svn: 12934
2004-04-13 21:48:43 +00:00
Chris Lattner
197f2fcda2
new testcase that crashes the fp stackifier
...
llvm-svn: 12932
2004-04-13 21:44:54 +00:00
Chris Lattner
9dfaa1f6ba
We actually don't have spiff anymore
...
llvm-svn: 12929
2004-04-13 20:59:47 +00:00
Chris Lattner
8b85738eb8
Out with spiff, in with fpcmp
...
llvm-svn: 12928
2004-04-13 20:59:24 +00:00
Chris Lattner
d5de2d698d
Remove spiff. Though it looked good, it was not really as spiffy as it seemed
...
llvm-svn: 12927
2004-04-13 20:58:42 +00:00
Chris Lattner
5fc6c15a31
Okay, spiff is completely incapable of handling files of nontrivial size.
...
Here is a simple minimal program that does what we want. Instead of taking
minutes to compare mesa's output, and crashing on binary files (like spiff
does), this take < .02s in the common case and doesn't crash.
llvm-svn: 12926
2004-04-13 20:55:49 +00:00
Chris Lattner
e83cd11f13
Add a note
...
llvm-svn: 12922
2004-04-13 19:48:55 +00:00
Chris Lattner
545e77c9d5
Add SCCP support for constant folding calls, implementing:
...
test/Regression/Transforms/SCCP/calltest.ll
llvm-svn: 12921
2004-04-13 19:43:54 +00:00
Chris Lattner
486436b5ad
New testcase
...
llvm-svn: 12920
2004-04-13 19:43:33 +00:00
Chris Lattner
778f09027f
Add a simple call constant propagation interface.
...
llvm-svn: 12919
2004-04-13 19:28:52 +00:00
Chris Lattner
2bf8038c69
Add new interfaces
...
llvm-svn: 12918
2004-04-13 19:28:32 +00:00
Chris Lattner
8c0e9c95e9
Constant propagation should remove the dead instructions
...
llvm-svn: 12917
2004-04-13 19:28:20 +00:00
Chris Lattner
344d15008a
New testcase
...
llvm-svn: 12916
2004-04-13 19:28:09 +00:00
Brian Gaeke
c4bd98ab79
Regenerated using autoconf-2.57.
...
llvm-svn: 12915
2004-04-13 19:03:49 +00:00
Brian Gaeke
4d774ffc6d
Rewrite POV-Ray check as per PR301
...
llvm-svn: 12914
2004-04-13 19:02:51 +00:00
Chris Lattner
7600e1a723
Increase buffer size again. *sigh*
...
llvm-svn: 12912
2004-04-13 18:43:18 +00:00
Chris Lattner
ca7062b1d9
Don't index spiff. It should not count as lines of LLVM code
...
llvm-svn: 12911
2004-04-13 18:37:51 +00:00
Chris Lattner
0b4b2331f6
Fixed sized limits are bad... duh.
...
llvm-svn: 12908
2004-04-13 18:34:16 +00:00
Chris Lattner
c0e932457f
Really spiff, don't chatter :)
...
llvm-svn: 12907
2004-04-13 18:33:21 +00:00
Brian Gaeke
336b83623a
I don't think we have to have 4 extra allocated (but unused) bytes on the stack.
...
llvm-svn: 12905
2004-04-13 18:28:37 +00:00
Brian Gaeke
6d8a362874
I started working on casts, but I don't have anything compilable yet.
...
llvm-svn: 12903
2004-04-13 18:27:46 +00:00
Brian Gaeke
27ab76dbcb
Don't underline diffs
...
llvm-svn: 12902
2004-04-13 18:24:01 +00:00
Chris Lattner
8b6bc380e3
Emit the immediate form of in/out when possible.
...
Fix several bugs in the intrinsics:
1. Make sure to copy the input registers before the instructions that use them
2. Make sure to copy the value returned by 'in' out of EAX into the register
it is supposed to be in.
This fixes assertions when using in/out and linear scan.
llvm-svn: 12896
2004-04-13 17:20:37 +00:00
Chris Lattner
15ac62827e
Add immediate forms of in/out. Use let to shorten lines
...
llvm-svn: 12895
2004-04-13 17:19:31 +00:00
Chris Lattner
ecbade26d5
Add support for new instruction type
...
llvm-svn: 12894
2004-04-13 17:18:51 +00:00
Chris Lattner
e8e60bf45f
Add support for the printImplicitDefsBefore flag
...
llvm-svn: 12893
2004-04-13 17:18:39 +00:00
Chris Lattner
b8987d93b7
Make the testcase more challenging
...
llvm-svn: 12892
2004-04-13 17:18:07 +00:00
Chris Lattner
c85541fa70
Reenable library now that the loopsimplify bug is fixed
...
llvm-svn: 12891
2004-04-13 16:24:53 +00:00
Chris Lattner
70f6a0ddcf
Fix LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll
...
LoopSimplify was not updating dominator frontiers correctly in some cases.
llvm-svn: 12890
2004-04-13 16:23:25 +00:00
Chris Lattner
7ad15c5ea7
New testcase where loop simplify is not updating domfrontiers correctly
...
llvm-svn: 12889
2004-04-13 16:22:04 +00:00
Chris Lattner
ae63c235f9
Refactor code a bit to make it simpler and eliminate the goto
...
llvm-svn: 12888
2004-04-13 15:21:18 +00:00
Chris Lattner
a404874643
Add notes about some of the code quality improvements that have gone in
...
llvm-svn: 12887
2004-04-13 14:43:35 +00:00
Chris Lattner
c0fa7b5d9d
Temporary hack to get the nightly tester running
...
llvm-svn: 12886
2004-04-13 13:57:29 +00:00
John Criswell
d41f8a3ad3
Added Spiff.
...
llvm-svn: 12885
2004-04-13 13:42:38 +00:00
Chris Lattner
faf377df58
This patch addresses PR35: Loop simplify should reconstruct nested loops.
...
This is fairly straight-forward, but was a real nightmare to get just
perfect. aarg. :)
llvm-svn: 12884
2004-04-13 05:05:33 +00:00
Brian Gaeke
08b81db73a
Clean up the Spiff code so that it emits fewer warnings. This
...
consists mostly of changing sloppy K&R C code to slightly more
disciplined K&R C code, and doing the usual things to shut gcc up.
llvm-svn: 12877
2004-04-13 03:24:45 +00:00
Brian Gaeke
8feac10842
Build Spiff directory
...
llvm-svn: 12876
2004-04-12 22:53:51 +00:00
Brian Gaeke
52e364f301
Add the Spiff fp-aware diff utility from Bellcore
...
llvm-svn: 12875
2004-04-12 22:53:24 +00:00
Brian Gaeke
36093cb38c
We don't need to insert TargetData into the PassManager here.
...
llvm-svn: 12874
2004-04-12 21:46:31 +00:00
Chris Lattner
d2ed0ee2cd
new testcase
...
llvm-svn: 12873
2004-04-12 20:59:07 +00:00
Alkis Evlogimenos
40d8a6802b
Fix bug introduced in previous commit.
...
llvm-svn: 12872
2004-04-12 20:26:39 +00:00
Chris Lattner
fd1cfeeb1d
Add some methods that are useful for updating loop information.
...
llvm-svn: 12871
2004-04-12 20:26:17 +00:00
Alkis Evlogimenos
338004b75f
Update testcase to illustrate the coalescing problem. The previous one did not work because of a fix in the x86 instruction selector.
...
llvm-svn: 12870
2004-04-12 19:04:22 +00:00
Alkis Evlogimenos
38984637d9
Correctly compute spill weights
...
llvm-svn: 12869
2004-04-12 17:39:20 +00:00
John Criswell
c477529404
Added testcase for the llvm.readport and llvm.writeport intrinsics.
...
llvm-svn: 12868
2004-04-12 16:42:43 +00:00
John Criswell
b612d46d37
Corrected the descriptions of the llvm.writeport and llvm.writeio
...
intrinsics.
Modified llvm.readio and llvm.writeio to use pointers to memory instead
of integers. This should take care of problems such as different pointer
sizes, casting integers to pointers, weird architectural pointer types, etc.
Re-worded the description of llvm.readio and llvm.writeio so that it should
be more clear as to why they should be used over regular loads/stores for
I/O.
llvm-svn: 12867
2004-04-12 16:33:19 +00:00