oota-llvm.git
20 years agoRemoved obsolete doxygen options (they were blank anyway).
Misha Brukman [Thu, 15 Apr 2004 15:33:49 +0000 (15:33 +0000)]
Removed obsolete doxygen options (they were blank anyway).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12965 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThe "best" of both worlds: readable C++ comments and valid HTML For doxygen.
Misha Brukman [Thu, 15 Apr 2004 15:30:15 +0000 (15:30 +0000)]
The "best" of both worlds: readable C++ comments and valid HTML For doxygen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12964 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDon't use invalid HTML in doxygen comments.
Misha Brukman [Thu, 15 Apr 2004 15:24:55 +0000 (15:24 +0000)]
Don't use invalid HTML in doxygen comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12963 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDon't use invalid HTML in a doxygen comment.
Misha Brukman [Thu, 15 Apr 2004 15:23:45 +0000 (15:23 +0000)]
Don't use invalid HTML in a doxygen comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12962 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoChange the canonical induction variable that we insert.
Chris Lattner [Thu, 15 Apr 2004 15:21:43 +0000 (15:21 +0000)]
Change the canonical induction variable that we insert.
Instead of producing code like this:

Loop:
  X = phi 0, X2
  ...

  X2 = X + 1
  if (X != N-1) goto Loop

We now generate code that looks like this:

Loop:
  X = phi 0, X2
  ...

  X2 = X + 1
  if (X2 != N) goto Loop

This has two big advantages:
  1. The trip count of the loop is now explicit in the code, allowing
     the direct implementation of Loop::getTripCount()
  2. This reduces register pressure in the loop, and allows X and X2 to be
     put into the same register.

As a consequence of the second point, the code we generate for loops went
from:

.LBB2:  # no_exit.1
...
        mov %EDI, %ESI
        inc %EDI
        cmp %ESI, 2
        mov %ESI, %EDI
        jne .LBB2 # PC rel: no_exit.1

To:

.LBB2:  # no_exit.1
...
        inc %ESI
        cmp %ESI, 3
        jne .LBB2 # PC rel: no_exit.1

... which has two fewer moves, and uses one less register.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12961 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoadd some helpful methods. Rearrange #includes to proper order
Chris Lattner [Thu, 15 Apr 2004 15:16:02 +0000 (15:16 +0000)]
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

20 years agoAdd some helpful methods
Chris Lattner [Thu, 15 Apr 2004 15:15:40 +0000 (15:15 +0000)]
Add some helpful methods

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12959 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFactor a bunch of classes out into a public header
Chris Lattner [Thu, 15 Apr 2004 15:07:24 +0000 (15:07 +0000)]
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

20 years agoPublically export all of these classes from the ScalarEvolutions.cpp file
Chris Lattner [Thu, 15 Apr 2004 15:06:59 +0000 (15:06 +0000)]
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

20 years agoUnbreak the build
Chris Lattner [Thu, 15 Apr 2004 14:17:43 +0000 (14:17 +0000)]
Unbreak the build

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12956 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement a FIXME: if we're going to insert a cast, we might as well only
Chris Lattner [Wed, 14 Apr 2004 22:01:22 +0000 (22:01 +0000)]
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

20 years agoRemove code to adjust the iterator for llvm.readio and llvm.writeio.
John Criswell [Wed, 14 Apr 2004 21:27:56 +0000 (21:27 +0000)]
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

20 years agoFix typo.
Brian Gaeke [Wed, 14 Apr 2004 21:21:56 +0000 (21:21 +0000)]
Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12953 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis is a trivial tweak to the addrec insertion code: insert the increment
Chris Lattner [Wed, 14 Apr 2004 21:11:25 +0000 (21:11 +0000)]
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

20 years agoAdd a TargetData to the PassManager regardless of the TargetMachine.
Brian Gaeke [Wed, 14 Apr 2004 17:45:52 +0000 (17:45 +0000)]
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

20 years agoAdd a copy constructor for TargetData.
Brian Gaeke [Wed, 14 Apr 2004 17:45:48 +0000 (17:45 +0000)]
Add a copy constructor for TargetData.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12948 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoWe are now on LLVM 1.3
Chris Lattner [Wed, 14 Apr 2004 16:32:34 +0000 (16:32 +0000)]
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

20 years agoRegenerated
Chris Lattner [Wed, 14 Apr 2004 16:32:09 +0000 (16:32 +0000)]
Regenerated

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12946 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRemove the return type check for llvm.readio. This check is done for all
John Criswell [Wed, 14 Apr 2004 15:06:48 +0000 (15:06 +0000)]
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

20 years agoAdded code to verify that llvm.readio's pointer argument returns something
John Criswell [Wed, 14 Apr 2004 14:49:36 +0000 (14:49 +0000)]
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

20 years agoTest for memory mapped I/O intrinsics.
John Criswell [Wed, 14 Apr 2004 13:52:56 +0000 (13:52 +0000)]
Test for memory mapped I/O intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12943 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFinish adding the llvm.readio and llvm.writeio intrinsics.
John Criswell [Wed, 14 Apr 2004 13:46:52 +0000 (13:46 +0000)]
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

20 years agoADd a trivial instcombine: load null -> null
Chris Lattner [Wed, 14 Apr 2004 03:28:36 +0000 (03:28 +0000)]
ADd a trivial instcombine: load null -> null

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12940 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis is the real fix for Codegen/X86/2004-04-13-FPCMOV-Crash.llx which works
Chris Lattner [Wed, 14 Apr 2004 02:42:32 +0000 (02:42 +0000)]
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

20 years agoTemporarily hack in the intrinsics that John added. I expect him to finish up their...
Chris Lattner [Wed, 14 Apr 2004 02:22:54 +0000 (02:22 +0000)]
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

20 years agoAdded support for the llvm.readio and llvm.writeio intrinsics.
John Criswell [Tue, 13 Apr 2004 22:13:14 +0000 (22:13 +0000)]
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

20 years agoImplement a small optimization, which papers over the problem in
Chris Lattner [Tue, 13 Apr 2004 21:56:09 +0000 (21:56 +0000)]
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

20 years agoFix bug, add support for +/-
Chris Lattner [Tue, 13 Apr 2004 21:48:43 +0000 (21:48 +0000)]
Fix bug, add support for +/-

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12934 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agonew testcase that crashes the fp stackifier
Chris Lattner [Tue, 13 Apr 2004 21:44:54 +0000 (21:44 +0000)]
new testcase that crashes the fp stackifier

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12932 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoWe actually don't have spiff anymore
Chris Lattner [Tue, 13 Apr 2004 20:59:47 +0000 (20:59 +0000)]
We actually don't have spiff anymore

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12929 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoOut with spiff, in with fpcmp
Chris Lattner [Tue, 13 Apr 2004 20:59:24 +0000 (20:59 +0000)]
Out with spiff, in with fpcmp

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12928 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRemove spiff. Though it looked good, it was not really as spiffy as it seemed
Chris Lattner [Tue, 13 Apr 2004 20:58:42 +0000 (20:58 +0000)]
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

20 years agoOkay, spiff is completely incapable of handling files of nontrivial size.
Chris Lattner [Tue, 13 Apr 2004 20:55:49 +0000 (20:55 +0000)]
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

20 years agoAdd a note
Chris Lattner [Tue, 13 Apr 2004 19:48:55 +0000 (19:48 +0000)]
Add a note

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12922 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd SCCP support for constant folding calls, implementing:
Chris Lattner [Tue, 13 Apr 2004 19:43:54 +0000 (19:43 +0000)]
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

20 years agoNew testcase
Chris Lattner [Tue, 13 Apr 2004 19:43:33 +0000 (19:43 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12920 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a simple call constant propagation interface.
Chris Lattner [Tue, 13 Apr 2004 19:28:52 +0000 (19:28 +0000)]
Add a simple call constant propagation interface.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12919 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd new interfaces
Chris Lattner [Tue, 13 Apr 2004 19:28:32 +0000 (19:28 +0000)]
Add new interfaces

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12918 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoConstant propagation should remove the dead instructions
Chris Lattner [Tue, 13 Apr 2004 19:28:20 +0000 (19:28 +0000)]
Constant propagation should remove the dead instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12917 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase
Chris Lattner [Tue, 13 Apr 2004 19:28:09 +0000 (19:28 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12916 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRegenerated using autoconf-2.57.
Brian Gaeke [Tue, 13 Apr 2004 19:03:49 +0000 (19:03 +0000)]
Regenerated using autoconf-2.57.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12915 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRewrite POV-Ray check as per PR301
Brian Gaeke [Tue, 13 Apr 2004 19:02:51 +0000 (19:02 +0000)]
Rewrite POV-Ray check as per PR301

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12914 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoIncrease buffer size again. *sigh*
Chris Lattner [Tue, 13 Apr 2004 18:43:18 +0000 (18:43 +0000)]
Increase buffer size again. *sigh*

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12912 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDon't index spiff. It should not count as lines of LLVM code
Chris Lattner [Tue, 13 Apr 2004 18:37:51 +0000 (18:37 +0000)]
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

20 years agoFixed sized limits are bad... duh.
Chris Lattner [Tue, 13 Apr 2004 18:34:16 +0000 (18:34 +0000)]
Fixed sized limits are bad... duh.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12908 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoReally spiff, don't chatter :)
Chris Lattner [Tue, 13 Apr 2004 18:33:21 +0000 (18:33 +0000)]
Really spiff, don't chatter :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12907 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoI don't think we have to have 4 extra allocated (but unused) bytes on the stack.
Brian Gaeke [Tue, 13 Apr 2004 18:28:37 +0000 (18:28 +0000)]
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

20 years agoI started working on casts, but I don't have anything compilable yet.
Brian Gaeke [Tue, 13 Apr 2004 18:27:46 +0000 (18:27 +0000)]
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

20 years agoDon't underline diffs
Brian Gaeke [Tue, 13 Apr 2004 18:24:01 +0000 (18:24 +0000)]
Don't underline diffs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12902 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoEmit the immediate form of in/out when possible.
Chris Lattner [Tue, 13 Apr 2004 17:20:37 +0000 (17:20 +0000)]
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

20 years agoAdd immediate forms of in/out. Use let to shorten lines
Chris Lattner [Tue, 13 Apr 2004 17:19:31 +0000 (17:19 +0000)]
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

20 years agoAdd support for new instruction type
Chris Lattner [Tue, 13 Apr 2004 17:18:51 +0000 (17:18 +0000)]
Add support for new instruction type

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12894 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd support for the printImplicitDefsBefore flag
Chris Lattner [Tue, 13 Apr 2004 17:18:39 +0000 (17:18 +0000)]
Add support for the printImplicitDefsBefore flag

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12893 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake the testcase more challenging
Chris Lattner [Tue, 13 Apr 2004 17:18:07 +0000 (17:18 +0000)]
Make the testcase more challenging

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12892 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoReenable library now that the loopsimplify bug is fixed
Chris Lattner [Tue, 13 Apr 2004 16:24:53 +0000 (16:24 +0000)]
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

20 years agoFix LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll
Chris Lattner [Tue, 13 Apr 2004 16:23:25 +0000 (16:23 +0000)]
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

20 years agoNew testcase where loop simplify is not updating domfrontiers correctly
Chris Lattner [Tue, 13 Apr 2004 16:22:04 +0000 (16:22 +0000)]
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

20 years agoRefactor code a bit to make it simpler and eliminate the goto
Chris Lattner [Tue, 13 Apr 2004 15:21:18 +0000 (15:21 +0000)]
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

20 years agoAdd notes about some of the code quality improvements that have gone in
Chris Lattner [Tue, 13 Apr 2004 14:43:35 +0000 (14:43 +0000)]
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

20 years agoTemporary hack to get the nightly tester running
Chris Lattner [Tue, 13 Apr 2004 13:57:29 +0000 (13:57 +0000)]
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

20 years agoAdded Spiff.
John Criswell [Tue, 13 Apr 2004 13:42:38 +0000 (13:42 +0000)]
Added Spiff.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12885 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis patch addresses PR35: Loop simplify should reconstruct nested loops.
Chris Lattner [Tue, 13 Apr 2004 05:05:33 +0000 (05:05 +0000)]
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

20 years agoClean up the Spiff code so that it emits fewer warnings. This
Brian Gaeke [Tue, 13 Apr 2004 03:24:45 +0000 (03:24 +0000)]
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

20 years agoBuild Spiff directory
Brian Gaeke [Mon, 12 Apr 2004 22:53:51 +0000 (22:53 +0000)]
Build Spiff directory

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12876 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd the Spiff fp-aware diff utility from Bellcore
Brian Gaeke [Mon, 12 Apr 2004 22:53:24 +0000 (22:53 +0000)]
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

20 years agoWe don't need to insert TargetData into the PassManager here.
Brian Gaeke [Mon, 12 Apr 2004 21:46:31 +0000 (21:46 +0000)]
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

20 years agonew testcase
Chris Lattner [Mon, 12 Apr 2004 20:59:07 +0000 (20:59 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12873 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix bug introduced in previous commit.
Alkis Evlogimenos [Mon, 12 Apr 2004 20:26:39 +0000 (20:26 +0000)]
Fix bug introduced in previous commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12872 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd some methods that are useful for updating loop information.
Chris Lattner [Mon, 12 Apr 2004 20:26:17 +0000 (20:26 +0000)]
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

20 years agoUpdate testcase to illustrate the coalescing problem. The previous one did not work...
Alkis Evlogimenos [Mon, 12 Apr 2004 19:04:22 +0000 (19:04 +0000)]
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

20 years agoCorrectly compute spill weights
Alkis Evlogimenos [Mon, 12 Apr 2004 17:39:20 +0000 (17:39 +0000)]
Correctly compute spill weights

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12869 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdded testcase for the llvm.readport and llvm.writeport intrinsics.
John Criswell [Mon, 12 Apr 2004 16:42:43 +0000 (16:42 +0000)]
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

20 years agoCorrected the descriptions of the llvm.writeport and llvm.writeio
John Criswell [Mon, 12 Apr 2004 16:33:19 +0000 (16:33 +0000)]
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

20 years agoPrint def lists a bit more compactly
Alkis Evlogimenos [Mon, 12 Apr 2004 15:57:58 +0000 (15:57 +0000)]
Print def lists a bit more compactly

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12866 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd same value coalescing testcase
Alkis Evlogimenos [Mon, 12 Apr 2004 15:40:25 +0000 (15:40 +0000)]
Add same value coalescing testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12865 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdded initial design for the llvm.readio and llvm.writeio intrinsics.
John Criswell [Mon, 12 Apr 2004 15:02:16 +0000 (15:02 +0000)]
Added initial design for the llvm.readio and llvm.writeio intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12864 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a couple more IPO's
Chris Lattner [Mon, 12 Apr 2004 05:38:15 +0000 (05:38 +0000)]
Add a couple more IPO's

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12863 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agofinegrainify namespacification
Chris Lattner [Mon, 12 Apr 2004 05:38:01 +0000 (05:38 +0000)]
finegrainify namespacification

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12862 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoActually update the call graph as the inliner changes it. This allows us to
Chris Lattner [Mon, 12 Apr 2004 05:37:29 +0000 (05:37 +0000)]
Actually update the call graph as the inliner changes it.  This allows us to
execute other CallGraphSCCPasses after the inliner without crashing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12861 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoChange the call graph class to have TWO external nodes, making call graph
Chris Lattner [Mon, 12 Apr 2004 05:36:32 +0000 (05:36 +0000)]
Change the call graph class to have TWO external nodes, making call graph
SCC passes much more useful.  In particular, this should fix the incredibly
stupid missed inlining opportunities that the inliner suffered from.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12860 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoHrm, operator new and new[] do not belong here. We should not CSE them! :)
Chris Lattner [Mon, 12 Apr 2004 05:16:42 +0000 (05:16 +0000)]
Hrm, operator new and new[] do not belong here.  We should not CSE them!  :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12859 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd support for removing invoke instructions
Chris Lattner [Mon, 12 Apr 2004 05:15:13 +0000 (05:15 +0000)]
Add support for removing invoke instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12858 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoStop printing Function*
Chris Lattner [Mon, 12 Apr 2004 04:06:56 +0000 (04:06 +0000)]
Stop printing Function*

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12857 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSimplify code a bit, and be sure to mark the external node as potentially throwing
Chris Lattner [Mon, 12 Apr 2004 04:06:38 +0000 (04:06 +0000)]
Simplify code a bit, and be sure to mark the external node as potentially throwing

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12856 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix issues that the local allocator has dealing with instructions that implicitly...
Chris Lattner [Mon, 12 Apr 2004 03:02:48 +0000 (03:02 +0000)]
Fix issues that the local allocator has dealing with instructions that implicitly use ST(0)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12855 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNo really, fix printing for LLC. I gotta get a way for CVS to whine at me if
Chris Lattner [Mon, 12 Apr 2004 01:52:04 +0000 (01:52 +0000)]
No really, fix printing for LLC.  I gotta get a way for CVS to whine at me if
I have unsaved emacs buffers, geeze...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12854 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoCorrect printing for LLC and the encoding for the JIT
Chris Lattner [Mon, 12 Apr 2004 01:50:04 +0000 (01:50 +0000)]
Correct printing for LLC and the encoding for the JIT

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12853 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUse the fucomi[p] instructions to perform floating point comparisons instead
Chris Lattner [Mon, 12 Apr 2004 01:43:36 +0000 (01:43 +0000)]
Use the fucomi[p] instructions to perform floating point comparisons instead
of the fucom[p][p] instructions.  This allows us to code generate this function

bool %test(double %X, double %Y) {
        %C = setlt double %Y, %X
        ret bool %C
}

... into:

test:
        fld QWORD PTR [%ESP + 4]
        fld QWORD PTR [%ESP + 12]
        fucomip %ST(1)
        fstp %ST(0)
        setb %AL
        movsx %EAX, %AL
        ret

where before we generated:

test:
        fld QWORD PTR [%ESP + 4]
        fld QWORD PTR [%ESP + 12]
        fucompp
**      fnstsw
**      sahf
        setb %AL
        movsx %EAX, %AL
        ret

The two marked instructions (which are the ones eliminated) are very bad,
because they serialize execution of the processor.  These instructions are
available on the PPRO and later, but since we already use cmov's we aren't
losing any portability.

I retained the old code for the day when we decide we want to support back
to the 386.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12852 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd support for the FUCOMIr instruction
Chris Lattner [Mon, 12 Apr 2004 01:39:15 +0000 (01:39 +0000)]
Add support for the FUCOMIr instruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12851 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd two new instructions
Chris Lattner [Mon, 12 Apr 2004 01:38:55 +0000 (01:38 +0000)]
Add two new instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12850 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a bug in my load/cast folding patch.
Chris Lattner [Mon, 12 Apr 2004 00:23:04 +0000 (00:23 +0000)]
Fix a bug in my load/cast folding patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12849 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdjust some comments, fix a bug in my previous patch
Chris Lattner [Mon, 12 Apr 2004 00:12:04 +0000 (00:12 +0000)]
Adjust some comments, fix a bug in my previous patch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12848 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDisambiguate symbols after loop extraction so that we can diagnose a code
Chris Lattner [Sun, 11 Apr 2004 23:52:35 +0000 (23:52 +0000)]
Disambiguate symbols after loop extraction so that we can diagnose a code
generator bug if multiple loops are extracted from a function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12847 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoOn X86, casting an integer to floating point requires going through memory.
Chris Lattner [Sun, 11 Apr 2004 23:21:26 +0000 (23:21 +0000)]
On X86, casting an integer to floating point requires going through memory.
If the source of the cast is a load, we can just use the source memory location,
without having to create a temporary stack slot entry.

Before we code generated this:

double %int(int* %P) {
        %V = load int* %P
        %V2 = cast int %V to double
        ret double %V2
}

into:

int:
        sub %ESP, 4
        mov %EAX, DWORD PTR [%ESP + 8]
        mov %EAX, DWORD PTR [%EAX]
        mov DWORD PTR [%ESP], %EAX
        fild DWORD PTR [%ESP]
        add %ESP, 4
        ret

Now we produce this:

int:
        mov %EAX, DWORD PTR [%ESP + 4]
        fild DWORD PTR [%EAX]
        ret

... which is nicer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12846 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase
Chris Lattner [Sun, 11 Apr 2004 23:18:30 +0000 (23:18 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12845 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement folding of loads into floating point operations. This implements:
Chris Lattner [Sun, 11 Apr 2004 22:05:45 +0000 (22:05 +0000)]
Implement folding of loads into floating point operations.  This implements:
test/Regression/CodeGen/X86/fp_load_fold.llx

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12844 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase
Chris Lattner [Sun, 11 Apr 2004 22:05:16 +0000 (22:05 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12843 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUnify all of the code for floating point +,-,*,/ into one function
Chris Lattner [Sun, 11 Apr 2004 21:23:56 +0000 (21:23 +0000)]
Unify all of the code for floating point +,-,*,/ into one function

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12842 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis implements folding of constant operands into floating point operations
Chris Lattner [Sun, 11 Apr 2004 21:09:14 +0000 (21:09 +0000)]
This implements folding of constant operands into floating point operations
for mul and div.

Instead of generating this:

test_divr:
        fld QWORD PTR [%ESP + 4]
        fld QWORD PTR [.CPItest_divr_0]
        fdivrp %ST(1)
        ret

We now generate this:

test_divr:
        fld QWORD PTR [%ESP + 4]
        fdivr QWORD PTR [.CPItest_divr_0]
        ret

This code desperately needs refactoring, which will come in the next
patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12841 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRestructure the mul/div/rem handling code to follow the pattern the other
Chris Lattner [Sun, 11 Apr 2004 20:56:28 +0000 (20:56 +0000)]
Restructure the mul/div/rem handling code to follow the pattern the other
instructions use.  This doesn't change any functionality except that long
constant expressions of these operations will now magically start working.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12840 91177308-0d34-0410-b5e6-96231b3b80d8