Commit Graph

11544 Commits

Author SHA1 Message Date
Chris Lattner
098e945fbd 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.  :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12939 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 02:42:32 +00:00
Chris Lattner
f1d483d641 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12938 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 02:22:54 +00:00
John Criswell
e5a4c15da6 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12936 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 22:13:14 +00:00
Chris Lattner
82c5a9990f Implement a small optimization, which papers over the problem in
X86/2004-04-13-FPCMOV-Crash.llx

A more robust fix is to follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12935 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 21:56:09 +00:00
Chris Lattner
6de6a0a6f0 Fix bug, add support for +/-
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12934 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 21:48:43 +00:00
Chris Lattner
c78c0e4c06 new testcase that crashes the fp stackifier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12932 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 21:44:54 +00:00
Chris Lattner
4411de1082 We actually don't have spiff anymore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12929 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 20:59:47 +00:00
Chris Lattner
39975d3671 Out with spiff, in with fpcmp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12928 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 20:59:24 +00:00
Chris Lattner
0d8c3b6da3 Remove spiff. Though it looked good, it was not really as spiffy as it seemed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12927 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 20:58:42 +00:00
Chris Lattner
337481a07e 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12926 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 20:55:49 +00:00
Chris Lattner
d828bc6b31 Add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12922 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:48:55 +00:00
Chris Lattner
58b7b08ad7 Add SCCP support for constant folding calls, implementing:
test/Regression/Transforms/SCCP/calltest.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12921 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:43:54 +00:00
Chris Lattner
3d78b23d24 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12920 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:43:33 +00:00
Chris Lattner
25b8390bf2 Add a simple call constant propagation interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12919 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:28:52 +00:00
Chris Lattner
a2631b0225 Add new interfaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12918 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:28:32 +00:00
Chris Lattner
4647b7cd69 Constant propagation should remove the dead instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12917 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:28:20 +00:00
Chris Lattner
cc713a343e New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12916 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:28:09 +00:00
Brian Gaeke
f66cdf8449 Regenerated using autoconf-2.57.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12915 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:03:49 +00:00
Brian Gaeke
bc7b85f856 Rewrite POV-Ray check as per PR301
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12914 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 19:02:51 +00:00
Chris Lattner
e8263c2c09 Increase buffer size again. *sigh*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12912 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 18:43:18 +00:00
Chris Lattner
1ae684a158 Don't index spiff. It should not count as lines of LLVM code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12911 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 18:37:51 +00:00
Chris Lattner
422acf2674 Fixed sized limits are bad... duh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12908 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 18:34:16 +00:00
Chris Lattner
f7dd526fa6 Really spiff, don't chatter :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12907 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 18:33:21 +00:00
Brian Gaeke
ef8e48aae0 I don't think we have to have 4 extra allocated (but unused) bytes on the stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12905 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 18:28:37 +00:00
Brian Gaeke
3d11e8a6d3 I started working on casts, but I don't have anything compilable yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12903 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 18:27:46 +00:00
Brian Gaeke
07b2c46ae3 Don't underline diffs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12902 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 18:24:01 +00:00
Chris Lattner
87e18deabc 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12896 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 17:20:37 +00:00
Chris Lattner
440bbc257e Add immediate forms of in/out. Use let to shorten lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12895 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 17:19:31 +00:00
Chris Lattner
e47f4ff9f6 Add support for new instruction type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12894 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 17:18:51 +00:00
Chris Lattner
266538350a Add support for the printImplicitDefsBefore flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12893 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 17:18:39 +00:00
Chris Lattner
5deaa7a73d Make the testcase more challenging
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12892 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 17:18:07 +00:00
Chris Lattner
a990398102 Reenable library now that the loopsimplify bug is fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12891 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 16:24:53 +00:00
Chris Lattner
4b66242c54 Fix LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll
LoopSimplify was not updating dominator frontiers correctly in some cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12890 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 16:23:25 +00:00
Chris Lattner
4acd51a1c1 New testcase where loop simplify is not updating domfrontiers correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12889 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 16:22:04 +00:00
Chris Lattner
1f62f82b05 Refactor code a bit to make it simpler and eliminate the goto
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12888 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 15:21:18 +00:00
Chris Lattner
6491340bc1 Add notes about some of the code quality improvements that have gone in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12887 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 14:43:35 +00:00
Chris Lattner
5d98f04ebe Temporary hack to get the nightly tester running
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12886 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 13:57:29 +00:00
John Criswell
a33f669ac8 Added Spiff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12885 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 13:42:38 +00:00
Chris Lattner
529b28da45 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.  :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12884 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 05:05:33 +00:00
Brian Gaeke
cce5a349d9 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12877 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-13 03:24:45 +00:00
Brian Gaeke
401be2c18c Build Spiff directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12876 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12 22:53:51 +00:00
Brian Gaeke
0df5f9fb7e Add the Spiff fp-aware diff utility from Bellcore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12875 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12 22:53:24 +00:00
Brian Gaeke
5f0b51547c We don't need to insert TargetData into the PassManager here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12874 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12 21:46:31 +00:00
Chris Lattner
ee7e286997 new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12873 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12 20:59:07 +00:00
Alkis Evlogimenos
6e4d0d6546 Fix bug introduced in previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12872 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12 20:26:39 +00:00
Chris Lattner
46758a894f Add some methods that are useful for updating loop information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12871 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12 20:26:17 +00:00
Alkis Evlogimenos
479f7e5e78 Update testcase to illustrate the coalescing problem. The previous one did not work because of a fix in the x86 instruction selector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12870 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12 19:04:22 +00:00
Alkis Evlogimenos
43b61f724e Correctly compute spill weights
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12869 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12 17:39:20 +00:00
John Criswell
f8d57a51ad Added testcase for the llvm.readport and llvm.writeport intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12868 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12 16:42:43 +00:00
John Criswell
96db6fcb2e 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12867 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-12 16:33:19 +00:00