oota-llvm.git
20 years agoMake ConstantBool act like a 1 bit ConstantInt, in order to simplify client
Chris Lattner [Mon, 21 Jun 2004 12:12:12 +0000 (12:12 +0000)]
Make ConstantBool act like a 1 bit ConstantInt, in order to simplify client
code.  Patch contributed by Vladimir Prus.

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

20 years agoNullify this test as it causes infinite loop in optimized nightly test.
Reid Spencer [Mon, 21 Jun 2004 08:11:32 +0000 (08:11 +0000)]
Nullify this test as it causes infinite loop in optimized nightly test.

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

20 years ago*FINALLY* Fix a really nasty nondeterministic bug that has been haunting us
Chris Lattner [Mon, 21 Jun 2004 07:19:01 +0000 (07:19 +0000)]
*FINALLY* Fix a really nasty nondeterministic bug that has been haunting us
since May 1st.  In this code, the pred iterator was being invalidated sometimes
causing the wrong entries to be added to PHI nodes.

The fix for this is to defererence and safe the *PI value before we hack on
branch instructions, which changes use/def chains, which SOMETIMES invalidates
the iterator.

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

20 years agoComment out the isnan stuff until we get a proper autoconf test for it
Chris Lattner [Mon, 21 Jun 2004 06:17:21 +0000 (06:17 +0000)]
Comment out the isnan stuff until we get a proper autoconf test for it
breaking the build on sparc is not acceptable.

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

20 years agoMake order of argument addition deterministic. In particular, the layout
Chris Lattner [Mon, 21 Jun 2004 00:07:58 +0000 (00:07 +0000)]
Make order of argument addition deterministic.  In particular, the layout
of ConstantInt objects in memory used to determine which order arguments
were added in in some cases.

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

20 years agoREALLY fix PR378: crash in scalar evolution analysis
Chris Lattner [Sun, 20 Jun 2004 20:32:16 +0000 (20:32 +0000)]
REALLY fix PR378: crash in scalar evolution analysis

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

20 years agoAdded a note about requiring QMTest 2.0.3 instead of any other version.
Reid Spencer [Sun, 20 Jun 2004 19:21:11 +0000 (19:21 +0000)]
Added a note about requiring QMTest 2.0.3 instead of any other version.

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

20 years agoBug fixed
Chris Lattner [Sun, 20 Jun 2004 19:08:50 +0000 (19:08 +0000)]
Bug fixed

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

20 years agoFix a bug in my change last night that caused a few test failures.
Chris Lattner [Sun, 20 Jun 2004 17:01:44 +0000 (17:01 +0000)]
Fix a bug in my change last night that caused a few test failures.

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

20 years agoIntrinsicLowering.cpp now lives in lib/CodeGen/
Chris Lattner [Sun, 20 Jun 2004 07:59:27 +0000 (07:59 +0000)]
IntrinsicLowering.cpp now lives in lib/CodeGen/

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

20 years agoUpdate path
Chris Lattner [Sun, 20 Jun 2004 07:53:22 +0000 (07:53 +0000)]
Update path

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

20 years agoHeader moved into the CodeGen directory
Chris Lattner [Sun, 20 Jun 2004 07:50:32 +0000 (07:50 +0000)]
Header moved into the CodeGen directory

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

20 years agoMove the IntrinsicLowering header into the CodeGen directory, as per PR346
Chris Lattner [Sun, 20 Jun 2004 07:49:54 +0000 (07:49 +0000)]
Move the IntrinsicLowering header into the CodeGen directory, as per PR346

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

20 years agoMove the IntrinsicLowering header into the CodeGen directory
Chris Lattner [Sun, 20 Jun 2004 07:46:18 +0000 (07:46 +0000)]
Move the IntrinsicLowering header into the CodeGen directory

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

20 years agoStart moving IntrinsicLowering out of VMCore into libcodegen, as per PR346
Chris Lattner [Sun, 20 Jun 2004 07:40:46 +0000 (07:40 +0000)]
Start moving IntrinsicLowering out of VMCore into libcodegen, as per PR346

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

20 years agoDo not sort SCEV objects by address: instead sort by complexity and group
Chris Lattner [Sun, 20 Jun 2004 06:23:15 +0000 (06:23 +0000)]
Do not sort SCEV objects by address: instead sort by complexity and group
by address.  This prevents the resultant SCEV objects from depending on
where in memory other scev objects happen to live.

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

20 years agoMake use of BinaryOperator::create* methods to shrinkify code.
Chris Lattner [Sun, 20 Jun 2004 05:04:01 +0000 (05:04 +0000)]
Make use of BinaryOperator::create* methods to shrinkify code.

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

20 years agoAdd methods like BinaryOperator::createAdd that take an instruction to insert
Chris Lattner [Sun, 20 Jun 2004 05:02:56 +0000 (05:02 +0000)]
Add methods like BinaryOperator::createAdd that take an instruction to insert
before.

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

20 years agoFix the inliner to be deterministic, not letting its output depend on the
Chris Lattner [Sun, 20 Jun 2004 04:11:48 +0000 (04:11 +0000)]
Fix the inliner to be deterministic, not letting its output depend on the
relative location of Function objects in memory.

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

20 years agoMake fpcmp handle running off of the beginning or end of the file correctly.
Chris Lattner [Sun, 20 Jun 2004 03:12:18 +0000 (03:12 +0000)]
Make fpcmp handle running off of the beginning or end of the file correctly.

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

20 years agoAdd some DEBUG output to the simplifycfg routines
Chris Lattner [Sun, 20 Jun 2004 01:13:18 +0000 (01:13 +0000)]
Add some DEBUG output to the simplifycfg routines
Fix another non-deterministic behavior, this one should actually speed up the
code though as it was doing silly things.

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

20 years agoA utility to search the LLVM source tree for a grep pattern. This is a
Reid Spencer [Sat, 19 Jun 2004 20:32:55 +0000 (20:32 +0000)]
A utility to search the LLVM source tree for a grep pattern. This is a
replacement for getsrcs.sh which now generates too much text to put on a
Linux command line. The approach taken with llvmgrep is to execute a find
command and execute a grep on each file that matches the name pattern. The
arguments to this script are the same as those of egrep. Note that the -H
and -n options to egrep will always be passed so that you always get the
file and line number of matches.

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

20 years agoNow that dominator tree children are built in determinstic order, this horrible code
Chris Lattner [Sat, 19 Jun 2004 20:23:35 +0000 (20:23 +0000)]
Now that dominator tree children are built in determinstic order, this horrible code
can go away

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

20 years agocompute dominator tree children in a deterministic order that does not depend
Chris Lattner [Sat, 19 Jun 2004 20:13:48 +0000 (20:13 +0000)]
compute dominator tree children in a deterministic order that does not depend
on the address of BasicBlock objects in memory.  This eliminates stuff like this:

 Inorder Dominator Tree:
   [1]  %entry
     [2]  %loopentry
-      [3]  %loopexit
       [3]  %no_exit
-        [4]  %endif
         [4]  %then
+        [4]  %endif
+      [3]  %loopexit
       [3]  %return

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

20 years agoPrint out immediate dominators in program order, not in random order based on the...
Chris Lattner [Sat, 19 Jun 2004 20:04:47 +0000 (20:04 +0000)]
Print out immediate dominators in program order, not in random order based on the address
of BasicBlock objects

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

20 years agoThis will hopefully fix a heisenbug that Vladimir Merzliakov is running
Chris Lattner [Sat, 19 Jun 2004 19:01:26 +0000 (19:01 +0000)]
This will hopefully fix a heisenbug that Vladimir Merzliakov is running
into valiantly trying to compile stuff on freebsd.

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

20 years agoAdd a note about GCC 3.3.2 optimization bug that causes llc to spin.
Reid Spencer [Sat, 19 Jun 2004 18:24:05 +0000 (18:24 +0000)]
Add a note about GCC 3.3.2 optimization bug that causes llc to spin.

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

20 years agoFix a nasty bug, noticed by Reid
Chris Lattner [Sat, 19 Jun 2004 18:15:50 +0000 (18:15 +0000)]
Fix a nasty bug, noticed by Reid

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

20 years agoFix one source of nondeterminism in the -licm pass: the hoist pass
Chris Lattner [Sat, 19 Jun 2004 08:56:43 +0000 (08:56 +0000)]
Fix one source of nondeterminism in the -licm pass: the hoist pass
was processing blocks in whatever order they happened to end up in the
dominator tree data structure.  Force an ordering.

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

20 years agoChange to use the StableBasicBlockNumbering class
Chris Lattner [Sat, 19 Jun 2004 08:42:40 +0000 (08:42 +0000)]
Change to use the StableBasicBlockNumbering class

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

20 years agoInitial checkin of the StableBasicBlockNumbering, a little helper class for computing
Chris Lattner [Sat, 19 Jun 2004 08:41:59 +0000 (08:41 +0000)]
Initial checkin of the StableBasicBlockNumbering, a little helper class for computing
(strangely enough) a stable (determinstic) numbering for basic blocks.

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

20 years agoFix a tiny bug in the -no-aa pass, in which it did not ever get a target data.
Chris Lattner [Sat, 19 Jun 2004 08:05:58 +0000 (08:05 +0000)]
Fix a tiny bug in the -no-aa pass, in which it did not ever get a target data.
This is a regression from 1.2, though noone uses -no-aa anyway

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

20 years agoDo not let the numbering of PHI nodes placed in the function depend on
Chris Lattner [Sat, 19 Jun 2004 07:40:14 +0000 (07:40 +0000)]
Do not let the numbering of PHI nodes placed in the function depend on
non-deterministic things like the ordering of blocks in the dominance
frontier of a BB.  Unfortunately, I don't know of a better way to solve
this problem than to explicitly sort the BB's in function-order before
processing them.  This is guaranteed to slow the pass down a bit, but
is absolutely necessary to get usable diffs between two different tools
executing the mem2reg or scalarrepl pass.

Before this, bazillions of spurious diff failures occurred all over the
place due to the different order of processing PHIs:

-       %tmp.111 = getelementptr %struct.Connector_struct* %upcon.0.0, uint 0, uint 0
+       %tmp.111 = getelementptr %struct.Connector_struct* %upcon.0.1, uint 0, uint 0

Now, the diffs match.

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

20 years agoDo not sort by the address of LLVM ConstantInt* objects. This produces
Chris Lattner [Sat, 19 Jun 2004 07:02:14 +0000 (07:02 +0000)]
Do not sort by the address of LLVM ConstantInt* objects.  This produces
nondeterministic results that depend on where these objects land in memory.
Instead, sort by the value of the constant, which is stable.

Before this patch, the -simplifycfg pass run from two different compilers
could cause different code to be generated, though it was semantically the
same:

@@ -12258,8 +12258,8 @@
        %s_addr.1 = phi sbyte* [ %s, %entry ], [ %inc.0, %no_exit ]             ; <sbyte*> [#uses=5]
        %tmp.1 = load sbyte* %s_addr.1          ; <sbyte> [#uses=1]
        switch sbyte %tmp.1, label %no_exit [
-                sbyte 0, label %loopexit
                 sbyte 46, label %loopexit
+                sbyte 0, label %loopexit
        ]

We need to stomp all of this stuff out.

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

20 years agoDo not loop over uses as we delete them. This causes iterators to be
Chris Lattner [Sat, 19 Jun 2004 02:02:22 +0000 (02:02 +0000)]
Do not loop over uses as we delete them.  This causes iterators to be
invalidated out from under us.  This bug goes back to revision 1.1: scary.

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

20 years agoBug fixed
Chris Lattner [Sat, 19 Jun 2004 01:11:02 +0000 (01:11 +0000)]
Bug fixed

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

20 years agoTest for PR374
Chris Lattner [Sat, 19 Jun 2004 01:08:12 +0000 (01:08 +0000)]
Test for PR374

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

20 years agoFix relative link to the CVS mirrors.
Misha Brukman [Fri, 18 Jun 2004 20:18:31 +0000 (20:18 +0000)]
Fix relative link to the CVS mirrors.

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

20 years agoAdd link to the CVS mirror hosted by Reid
Chris Lattner [Fri, 18 Jun 2004 20:15:58 +0000 (20:15 +0000)]
Add link to the CVS mirror hosted by Reid

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

20 years agoAdd link documenting shared/static library differences across platforms.
Misha Brukman [Fri, 18 Jun 2004 18:39:00 +0000 (18:39 +0000)]
Add link documenting shared/static library differences across platforms.

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

20 years agoBug fixed
Chris Lattner [Fri, 18 Jun 2004 17:57:29 +0000 (17:57 +0000)]
Bug fixed

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

20 years agoCapitalize Cygwin.
Misha Brukman [Fri, 18 Jun 2004 15:54:54 +0000 (15:54 +0000)]
Capitalize Cygwin.

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

20 years ago* Fix file header and name
Misha Brukman [Fri, 18 Jun 2004 15:38:49 +0000 (15:38 +0000)]
* Fix file header and name
* Order #includes alphabetically

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

20 years agoUse the machine-independent method of querying the page size.
Misha Brukman [Fri, 18 Jun 2004 15:34:07 +0000 (15:34 +0000)]
Use the machine-independent method of querying the page size.

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

20 years agoAdd a target-independent way to query page size.
Misha Brukman [Fri, 18 Jun 2004 15:30:25 +0000 (15:30 +0000)]
Add a target-independent way to query page size.

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

20 years ago.zero doesn't work in the Solaris assembler.
Brian Gaeke [Fri, 18 Jun 2004 08:59:16 +0000 (08:59 +0000)]
.zero doesn't work in the Solaris assembler.

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

20 years agoGet rid of selects the easy way
Brian Gaeke [Fri, 18 Jun 2004 08:46:15 +0000 (08:46 +0000)]
Get rid of selects the easy way

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

20 years agoMake visitAllocaInst() look more like its X86 counterpart.
Brian Gaeke [Fri, 18 Jun 2004 08:45:52 +0000 (08:45 +0000)]
Make visitAllocaInst() look more like its X86 counterpart.

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

20 years agoMess around with allocation order. In particular, I think we ought to be
Brian Gaeke [Fri, 18 Jun 2004 08:19:08 +0000 (08:19 +0000)]
Mess around with allocation order. In particular, I think we ought to be
using the local & in regs first because they are not clobbered by calls.

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

20 years agoJMPL has a delay slot.
Brian Gaeke [Fri, 18 Jun 2004 08:18:54 +0000 (08:18 +0000)]
JMPL has a delay slot.

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

20 years agoClean up the commented-out F3_3 stuff.
Brian Gaeke [Fri, 18 Jun 2004 06:28:21 +0000 (06:28 +0000)]
Clean up the commented-out F3_3 stuff.
Replace it with a working class for FP instrs.

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

20 years agoFix jmpl.
Brian Gaeke [Fri, 18 Jun 2004 06:28:10 +0000 (06:28 +0000)]
Fix jmpl.
Add some FP moves.

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

20 years agoSupport printing base+offset pairs where the offset is a register.
Brian Gaeke [Fri, 18 Jun 2004 06:27:59 +0000 (06:27 +0000)]
Support printing base+offset pairs where the offset is a register.
Use this for printing the jmpl indirect-call instruction.

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

20 years agoSupport intrinsic calls (although no particular intrinsics are supported yet).
Brian Gaeke [Fri, 18 Jun 2004 06:27:48 +0000 (06:27 +0000)]
Support intrinsic calls (although no particular intrinsics are supported yet).
Support indirect calls.
Support returning a float value.

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

20 years agoCalls to __builtin_isunordered and friends no longer cause llvmgcc to ICE.
Chris Lattner [Fri, 18 Jun 2004 06:26:29 +0000 (06:26 +0000)]
Calls to __builtin_isunordered and friends no longer cause llvmgcc to ICE.

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

20 years agoImplement Transforms/InstCombine/and.ll:test17, a common case that
Chris Lattner [Fri, 18 Jun 2004 06:07:51 +0000 (06:07 +0000)]
Implement Transforms/InstCombine/and.ll:test17, a common case that
occurs due to unordered comparison macros in math.h

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

20 years agoNew test
Chris Lattner [Fri, 18 Jun 2004 06:07:17 +0000 (06:07 +0000)]
New test

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

20 years agoDo not function resolve intrinsics. This prevents warnings and possible bad
Chris Lattner [Fri, 18 Jun 2004 05:50:48 +0000 (05:50 +0000)]
Do not function resolve intrinsics.  This prevents warnings and possible bad
things from happening due to

declare bool %llvm.isunordered(double, double)
declare bool %llvm.isunordered(float, float)

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

20 years agoTest that C99 unordered comparison functions are not being turned into libc calls
Chris Lattner [Fri, 18 Jun 2004 05:42:50 +0000 (05:42 +0000)]
Test that C99 unordered comparison functions are not being turned into libc calls

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

20 years agoAdd load instructions for floating-point registers.
Brian Gaeke [Fri, 18 Jun 2004 05:19:27 +0000 (05:19 +0000)]
Add load instructions for floating-point registers.

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

20 years agoSupport alloca instructions.
Brian Gaeke [Fri, 18 Jun 2004 05:19:16 +0000 (05:19 +0000)]
Support alloca instructions.
Support copying floating-point constants to registers.
Add assertion to visitCallInst to abort if we hit a NULL calledFunction, for now.

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

20 years agoFix printing of Argument objects, problem found by Patrick Meredith
Chris Lattner [Fri, 18 Jun 2004 04:07:20 +0000 (04:07 +0000)]
Fix printing of Argument objects, problem found by Patrick Meredith

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

20 years agoNew testcase for GCC unordered comparison builtins
Chris Lattner [Fri, 18 Jun 2004 03:39:56 +0000 (03:39 +0000)]
New testcase for GCC unordered comparison builtins

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

20 years agoCodegen sub C, X a little bit better for register pressure. Instead of
Chris Lattner [Fri, 18 Jun 2004 00:50:37 +0000 (00:50 +0000)]
Codegen sub C, X a little bit better for register pressure.  Instead of

mov REG, C
sub REG, X

generate:

neg X
add X, C

which uses one less reg

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

20 years agoFold setcc instructions into select and branches that are not in the same BB as
Chris Lattner [Fri, 18 Jun 2004 00:29:22 +0000 (00:29 +0000)]
Fold setcc instructions into select and branches that are not in the same BB as
the setcc.

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

20 years agoMake storeRegToStackSlot slightly shorter.
Brian Gaeke [Thu, 17 Jun 2004 22:34:48 +0000 (22:34 +0000)]
Make storeRegToStackSlot slightly shorter.
Make copyRegToReg return 1 instead of -1.
Edit a comment in emitPrologue().

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

20 years agoSet the isBranch and isTerminator flags on branch instructions correctly.
Brian Gaeke [Thu, 17 Jun 2004 22:34:29 +0000 (22:34 +0000)]
Set the isBranch and isTerminator flags on branch instructions correctly.
Add a FIXME about the (currently unused) JMPL instructions.

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

20 years agoEmit stores correctly; don't fail an assertion.
Brian Gaeke [Thu, 17 Jun 2004 22:34:19 +0000 (22:34 +0000)]
Emit stores correctly; don't fail an assertion.

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

20 years agoSupport generating machine instructions for Phi nodes (based on x86, but with
Brian Gaeke [Thu, 17 Jun 2004 22:34:08 +0000 (22:34 +0000)]
Support generating machine instructions for Phi nodes (based on x86, but with
modifications for 1 LLVM BB --> many MBBs).
Fix store operand order: make it always be Base, Offset, SrcReg (think
"[ Base + Offset ] = SrcReg").
Rewrite visitBranchInst() to be even dumber (but working) -- give up on
the branch fallthrough trick, for the time being.
Make visitSetCondInst() work.

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

20 years agoRecognize more branches.
Brian Gaeke [Thu, 17 Jun 2004 22:33:57 +0000 (22:33 +0000)]
Recognize more branches.

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

20 years agoI love the smell of a freshly broken PowerPC build in the morning.
Brian Gaeke [Thu, 17 Jun 2004 22:27:04 +0000 (22:27 +0000)]
I love the smell of a freshly broken PowerPC build in the morning.

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

20 years agoMake debugging dumps w/ multiple MachineBBs for a given LLVM BB readable.
Brian Gaeke [Thu, 17 Jun 2004 22:26:53 +0000 (22:26 +0000)]
Make debugging dumps w/ multiple MachineBBs for a given LLVM BB readable.

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

20 years agoDo not fold loads into instructions if it is used more than once. In particular
Chris Lattner [Thu, 17 Jun 2004 22:15:25 +0000 (22:15 +0000)]
Do not fold loads into instructions if it is used more than once.  In particular
we do not want to fold the load in cases like this:

  X = load
    = add A, X
    = add B, X

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

20 years agoFix compilation problem on freebsd. Problem noted by Vladimir Merzliakov in
Chris Lattner [Thu, 17 Jun 2004 21:20:52 +0000 (21:20 +0000)]
Fix compilation problem on freebsd.  Problem noted by Vladimir Merzliakov in
PR371

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

20 years agoUse addGlobalAddress and addMBB for call & branch targets instead of addPCDisp.
Brian Gaeke [Thu, 17 Jun 2004 19:39:23 +0000 (19:39 +0000)]
Use addGlobalAddress and addMBB for call & branch targets instead of addPCDisp.
Abort if we see a PCRelativeDisp MachineOperand, to be safe. This matches
the X86 backend.

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

20 years agoRename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
Chris Lattner [Thu, 17 Jun 2004 18:19:28 +0000 (18:19 +0000)]
Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()

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

20 years agoRename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
Chris Lattner [Thu, 17 Jun 2004 18:16:02 +0000 (18:16 +0000)]
Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
Delete two functions that are now methods on the Type class

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

20 years agoMinor cleanup
Chris Lattner [Thu, 17 Jun 2004 17:56:54 +0000 (17:56 +0000)]
Minor cleanup

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

20 years agoMake header comment fit within 80 cols.
Misha Brukman [Thu, 17 Jun 2004 15:49:36 +0000 (15:49 +0000)]
Make header comment fit within 80 cols.

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

20 years agoSince the Great LLVM Tool Renaming(tm), we no longer have collisions between our
Misha Brukman [Thu, 17 Jun 2004 15:39:58 +0000 (15:39 +0000)]
Since the Great LLVM Tool Renaming(tm), we no longer have collisions between our
assembler/linker and the system equivalents.

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

20 years agoFix typo in DEBUG printout.
Brian Gaeke [Thu, 17 Jun 2004 07:26:52 +0000 (07:26 +0000)]
Fix typo in DEBUG printout.

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

20 years agoFix a recent regression in Applications/sgefa that Alkis pointed out to me.
Chris Lattner [Wed, 16 Jun 2004 06:57:29 +0000 (06:57 +0000)]
Fix a recent regression in Applications/sgefa that Alkis pointed out to me.
The vector may actually be empty if the register that we are marking as
recently used is not actually allocatable.  This happens for physical registers
that are not allocatable, like the ST(x) registers on X86.

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

20 years agoAdd int ferror(FILE *)
Brian Gaeke [Wed, 16 Jun 2004 02:56:40 +0000 (02:56 +0000)]
Add int ferror(FILE *)

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

20 years agoI'm afraid this doesn't exist.
Brian Gaeke [Wed, 16 Jun 2004 00:26:45 +0000 (00:26 +0000)]
I'm afraid this doesn't exist.

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

20 years agoUm, did someone make a typo or something?
Brian Gaeke [Tue, 15 Jun 2004 23:09:50 +0000 (23:09 +0000)]
Um, did someone make a typo or something?

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

20 years agoisnan is dead
Chris Lattner [Tue, 15 Jun 2004 21:52:58 +0000 (21:52 +0000)]
isnan is dead

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

20 years agollvm.isnan is dead, long live llvm.isunordered!
Chris Lattner [Tue, 15 Jun 2004 21:50:46 +0000 (21:50 +0000)]
llvm.isnan is dead, long live llvm.isunordered!

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

20 years agoRemove support for llvm.isnan. Alkis wins :)
Chris Lattner [Tue, 15 Jun 2004 21:48:07 +0000 (21:48 +0000)]
Remove support for llvm.isnan.  Alkis wins :)

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

20 years agoThis testcase is a bit silly now, but oh well :)
Chris Lattner [Tue, 15 Jun 2004 21:46:16 +0000 (21:46 +0000)]
This testcase is a bit silly now, but oh well :)

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

20 years agoRemove isnan support, correct isunordered support
Chris Lattner [Tue, 15 Jun 2004 21:42:23 +0000 (21:42 +0000)]
Remove isnan support, correct isunordered support

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

20 years agoRemove support for the isnan intrinsic
Chris Lattner [Tue, 15 Jun 2004 21:37:54 +0000 (21:37 +0000)]
Remove support for the isnan intrinsic

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

20 years agoAdd basic support for the isunordered intrinsic. The isnan stuff still needs to go
Chris Lattner [Tue, 15 Jun 2004 21:36:44 +0000 (21:36 +0000)]
Add basic support for the isunordered intrinsic.  The isnan stuff still needs to go

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

20 years agoRight, stop being silly
Chris Lattner [Tue, 15 Jun 2004 21:29:40 +0000 (21:29 +0000)]
Right, stop being silly

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

20 years agoAdd a nan, stop testing isnan
Chris Lattner [Tue, 15 Jun 2004 21:29:01 +0000 (21:29 +0000)]
Add a nan, stop testing isnan

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

20 years agoFix thinko in visitor... ShiftInsts should currently be delegated
Brian Gaeke [Tue, 15 Jun 2004 21:09:46 +0000 (21:09 +0000)]
Fix thinko in visitor... ShiftInsts should currently be delegated
to visitBinaryOperator.

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

20 years agoDo not dereference end iterators. It's really bad for the asmwriter's health.
Chris Lattner [Tue, 15 Jun 2004 21:07:32 +0000 (21:07 +0000)]
Do not dereference end iterators.  It's really bad for the asmwriter's health.
This possibly fixes PR370

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

20 years agoI think we'll use the standard lowering passes for now.
Brian Gaeke [Tue, 15 Jun 2004 20:37:12 +0000 (20:37 +0000)]
I think we'll use the standard lowering passes for now.

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

20 years agoFix bug generating code for void call instructions: don't call
Brian Gaeke [Tue, 15 Jun 2004 20:06:32 +0000 (20:06 +0000)]
Fix bug generating code for void call instructions: don't call
getReg() on void value.

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

20 years agoSquash a warning from the Solaris assembler by aligning the stack
Brian Gaeke [Tue, 15 Jun 2004 19:53:10 +0000 (19:53 +0000)]
Squash a warning from the Solaris assembler by aligning the stack
on a double-word boundary instead of a single-word boundary.

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

20 years agoAllow special-casing of operand printing based on opcode. Print
Brian Gaeke [Tue, 15 Jun 2004 19:52:59 +0000 (19:52 +0000)]
Allow special-casing of operand printing based on opcode.  Print
non-register, non-immed. arguments to SETHI and OR using %hi() and
%lo() respectively.

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