Commit Graph

11562 Commits

Author SHA1 Message Date
Chris Lattner
92020faa2c add some helpful methods. Rearrange #includes to proper order
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12960 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-15 15:16:02 +00:00
Chris Lattner
e725cb0d5a Add some helpful methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12959 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-15 15:15:40 +00:00
Chris Lattner
0a7f98c80d Factor a bunch of classes out into a public header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12958 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-15 15:07:24 +00:00
Chris Lattner
4950e88e0f Publically export all of these classes from the ScalarEvolutions.cpp file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12957 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-15 15:06:59 +00:00
Chris Lattner
0aa84fdd04 Unbreak the build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12956 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-15 14:17:43 +00:00
Chris Lattner
e9fc96e7cc Implement a FIXME: if we're going to insert a cast, we might as well only
insert it once!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12955 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 22:01:22 +00:00
John Criswell
53b54be5fc Remove code to adjust the iterator for llvm.readio and llvm.writeio.
The iterator is pointing at the next instruction which should not disappear
when doing the load/store replacement.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12954 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 21:27:56 +00:00
Brian Gaeke
8121fcd260 Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12953 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 21:21:56 +00:00
Chris Lattner
16011e6201 This is a trivial tweak to the addrec insertion code: insert the increment
at the bottom of the loop instead of the top.  This reduces the number of
overlapping live ranges a lot, for example, eliminating a spill in an important
loop in 183.equake with linear scan.

I still need to make the exit comparison of the loop use the post-incremented
version of this variable, but this is an easy first step.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12952 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 21:11:25 +00:00
Brian Gaeke
50872d5385 Add a TargetData to the PassManager regardless of the TargetMachine.
This should unbreak the Sparc JIT again.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12949 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 17:45:52 +00:00
Brian Gaeke
325297142c Add a copy constructor for TargetData.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12948 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 17:45:48 +00:00
Chris Lattner
ac84728d48 We are now on LLVM 1.3
Make autoconf default to checking to look to see if our funny directory exists


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12947 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 16:32:34 +00:00
Chris Lattner
95f45c56b1 Regenerated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12946 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 16:32:09 +00:00
John Criswell
71c887d688 Remove the return type check for llvm.readio. This check is done for all
functions and is not needed here.
Simplify the pointer type check per Chris's suggestions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12945 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 15:06:48 +00:00
John Criswell
17f64258cf Added code to verify that llvm.readio's pointer argument returns something
that matches its return type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12944 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 14:49:36 +00:00
John Criswell
5365b6d143 Test for memory mapped I/O intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12943 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 13:52:56 +00:00
John Criswell
994a765e5c Finish adding the llvm.readio and llvm.writeio intrinsics.
Sorry these didn't get in yesterday.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12942 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 13:46:52 +00:00
Chris Lattner
d9955aaa61 ADd a trivial instcombine: load null -> null
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12940 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-14 03:28:36 +00:00
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