oota-llvm.git
19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 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

19 years agoSupport constant GEP expressions.
Brian Gaeke [Tue, 15 Jun 2004 19:16:07 +0000 (19:16 +0000)]
Support constant GEP expressions.
Support copying long constants to register pairs.
Support copying ConstantPointerNulls and ConstantPointerRefs to registers.

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

19 years agoThe correct prototype is `int atoi(CONST char*)'. Unbroke AIX build.
Misha Brukman [Mon, 14 Jun 2004 16:30:05 +0000 (16:30 +0000)]
The correct prototype is `int atoi(CONST char*)'.  Unbroke AIX build.

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

19 years agoAdd file comment.
Misha Brukman [Mon, 14 Jun 2004 15:13:59 +0000 (15:13 +0000)]
Add file comment.

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

19 years agoQuick hack to get this file compiling again on Mac OS X. The right thing to do
Brian Gaeke [Mon, 14 Jun 2004 06:33:19 +0000 (06:33 +0000)]
Quick hack to get this file compiling again on Mac OS X.  The right thing to do
is write an autoconf macro that checks whether __isnan or isnan actually works
**using the C++ compiler after #include <cmath>**, instead of doing it the easy
way with AC_CHECK_FUNCS().

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

19 years agoMake -print-machineinstrs even stronger. You get to see the final code after
Brian Gaeke [Mon, 14 Jun 2004 05:05:45 +0000 (05:05 +0000)]
Make -print-machineinstrs even stronger. You get to see the final code after
peepholing, and make it work the same way in the JIT as in LLC.

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

19 years agoGet rid of "might be uninitialized" warnings when compiling with GCC 3.3.2
Reid Spencer [Sun, 13 Jun 2004 19:17:49 +0000 (19:17 +0000)]
Get rid of "might be uninitialized" warnings when compiling with GCC 3.3.2

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

19 years agoAdd constant folding capabilities to the isunordered intrinsic.
Alkis Evlogimenos [Sun, 13 Jun 2004 01:23:56 +0000 (01:23 +0000)]
Add constant folding capabilities to the isunordered intrinsic.

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

19 years agoReally add the docs this time :-)
Alkis Evlogimenos [Sun, 13 Jun 2004 01:16:15 +0000 (01:16 +0000)]
Really add the docs this time :-)

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

19 years agoMake assertions more consistent with the rest of the intrinsic
Alkis Evlogimenos [Sun, 13 Jun 2004 00:55:26 +0000 (00:55 +0000)]
Make assertions more consistent with the rest of the intrinsic
function verification and make it a requirement that both arguments to
llvm.isunordered are of the same type.

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

19 years agoAdd the isunordered intrinsic.
Alkis Evlogimenos [Sat, 12 Jun 2004 19:19:14 +0000 (19:19 +0000)]
Add the isunordered intrinsic.

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

19 years agoReduce the number of columns in the alpha index to 4 so that it fits
Reid Spencer [Sat, 12 Jun 2004 14:46:02 +0000 (14:46 +0000)]
Reduce the number of columns in the alpha index to 4 so that it fits
on a 1280x1024 screen!

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

19 years agoIt is no longer 2001
Chris Lattner [Fri, 11 Jun 2004 21:12:22 +0000 (21:12 +0000)]
It is no longer 2001

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

19 years agoDon't trim @PrevDays (causing an error) if it isn't long enough.
Brian Gaeke [Fri, 11 Jun 2004 19:55:30 +0000 (19:55 +0000)]
Don't trim @PrevDays (causing an error) if it isn't long enough.

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

19 years agoFix grammar: 's is for possessive only.
Misha Brukman [Fri, 11 Jun 2004 16:50:21 +0000 (16:50 +0000)]
Fix grammar: 's is for possessive only.

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

19 years agoImplement tracking of bytecode instruction size and the number of long
Reid Spencer [Fri, 11 Jun 2004 15:10:38 +0000 (15:10 +0000)]
Implement tracking of bytecode instruction size and the number of long
instructions generated.

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

19 years agoAdd two options to the program:
Reid Spencer [Fri, 11 Jun 2004 07:06:22 +0000 (07:06 +0000)]
Add two options to the program:
-release causes ENABLE_OPTIMIZED=1 to be added to the make line so that
         the test runs against optimized code.
-pedantic causes the CompileOptimizeOpts variable to be overridden to
          add several additional warnings not picked up by -Wall. This
  should help catch additional programming faux pas. See the diff
  for the specific details.

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

19 years agoFix fallout from getOffsetOfLocalArea() being negated. Debugging dumps were being
Chris Lattner [Fri, 11 Jun 2004 06:37:11 +0000 (06:37 +0000)]
Fix fallout from getOffsetOfLocalArea() being negated.  Debugging dumps were being
printed incorrectly, and we were reserving 8 extra bytes of stack space for functions
on X86.

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

19 years agollvm.isnan doesn't access memory
Chris Lattner [Fri, 11 Jun 2004 06:17:13 +0000 (06:17 +0000)]
llvm.isnan doesn't access memory

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

19 years agoConstant fold the isnan intrinsic
Chris Lattner [Fri, 11 Jun 2004 06:16:23 +0000 (06:16 +0000)]
Constant fold the isnan intrinsic

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

19 years agoAdd tests for isnan
Chris Lattner [Fri, 11 Jun 2004 06:16:13 +0000 (06:16 +0000)]
Add tests for isnan

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

19 years agoBy far, one of the most common uses of isnan is to make 'isunordered'
Chris Lattner [Fri, 11 Jun 2004 05:33:49 +0000 (05:33 +0000)]
By far, one of the most common uses of isnan is to make 'isunordered'
comparisons.  In an 'isunordered' predicate, which looks like this at
the LLVM level:

        %a = call bool %llvm.isnan(double %X)
        %b = call bool %llvm.isnan(double %Y)
        %COM = or bool %a, %b

We used to generate this code:

        fxch %ST(1)
        fucomip %ST(0), %ST(0)
        setp %AL
        fucomip %ST(0), %ST(0)
        setp %AH
        or %AL, %AH

With this patch, we generate this code:

        fucomip %ST(0), %ST(1)
        fstp %ST(0)
        setp %AL

Which should make alkis happy.  Tested as X86/compare_folding.llx:test1

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

19 years agoTest that the X86 backend is only emitting one fucom instruction
Chris Lattner [Fri, 11 Jun 2004 05:30:34 +0000 (05:30 +0000)]
Test that the X86 backend is only emitting one fucom instruction
for each 'COM =' line.

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

19 years agoFix bug in previous checkin
Chris Lattner [Fri, 11 Jun 2004 05:22:44 +0000 (05:22 +0000)]
Fix bug in previous checkin

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

19 years agoNo really, these are dead now
Chris Lattner [Fri, 11 Jun 2004 04:50:14 +0000 (04:50 +0000)]
No really, these are dead now

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

19 years agoNow that compare instructions aren't lumped in with the other twoargfp instructions,
Chris Lattner [Fri, 11 Jun 2004 04:49:02 +0000 (04:49 +0000)]
Now that compare instructions aren't lumped in with the other twoargfp instructions,
we can get rid of the FpUCOM/FpUCOMi pseudo instructions, which makes stuff simpler
and faster.

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

19 years agoIntroduce a new FP instruction type to separate the compare cases from the
Chris Lattner [Fri, 11 Jun 2004 04:41:24 +0000 (04:41 +0000)]
Introduce a new FP instruction type to separate the compare cases from the
twoarg cases.

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

19 years agoBug fixed, new feature
Chris Lattner [Fri, 11 Jun 2004 04:35:21 +0000 (04:35 +0000)]
Bug fixed, new feature

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

19 years agoAdd direct support for the isnan intrinsic, implementing test/Regression/CodeGen...
Chris Lattner [Fri, 11 Jun 2004 04:31:10 +0000 (04:31 +0000)]
Add direct support for the isnan intrinsic, implementing test/Regression/CodeGen/X86/isnan.llx
testcase

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

19 years agoAdd support for the setp instructions
Chris Lattner [Fri, 11 Jun 2004 04:30:06 +0000 (04:30 +0000)]
Add support for the setp instructions

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

19 years agoSplit compare instruction handling OUT of handleTwoArgFP into handleCompareFP.
Chris Lattner [Fri, 11 Jun 2004 04:25:06 +0000 (04:25 +0000)]
Split compare instruction handling OUT of handleTwoArgFP into handleCompareFP.
This makes the code much simpler, and the two cases really do belong apart.
Once we do it, it's pretty obvious how flawed the logic was for A != A case,
so I fixed it (fixing PR369).

This also uses freeStackSlotAfter instead of inserting an fxchg then
popStackAfter'ing in the case where there is a dead result (unlikely, but
possible), producing better code.

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

19 years agoChange tags rule to pipe output from find through etags command so that it
Reid Spencer [Fri, 11 Jun 2004 03:10:27 +0000 (03:10 +0000)]
Change tags rule to pipe output from find through etags command so that it
doesn't break on machines with limited command line lengths.

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

19 years agoRevert an unneeded interface change to Instruction.h
Reid Spencer [Fri, 11 Jun 2004 03:06:43 +0000 (03:06 +0000)]
Revert an unneeded interface change to Instruction.h

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

19 years agoTestcase for PR369
Chris Lattner [Fri, 11 Jun 2004 02:59:47 +0000 (02:59 +0000)]
Testcase for PR369

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

19 years agoCheck to make sure that isnan doesn't require calling a function
Chris Lattner [Fri, 11 Jun 2004 02:54:54 +0000 (02:54 +0000)]
Check to make sure that isnan doesn't require calling a function

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

19 years agoFix lowering to work correctly
Chris Lattner [Fri, 11 Jun 2004 02:54:02 +0000 (02:54 +0000)]
Fix lowering to work correctly

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

19 years agoI misled Alkis: LLVM should have isnan, not isunordered.
Chris Lattner [Fri, 11 Jun 2004 02:29:57 +0000 (02:29 +0000)]
I misled Alkis: LLVM should have isnan, not isunordered.
  isunordered(X, Y) === isnan(X) | isnan(Y)

Remove isunordered, add isnan.

Modernize testcase

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

19 years agoI misled Alkis: LLVM should have isnan, not isunordered.
Chris Lattner [Fri, 11 Jun 2004 02:29:43 +0000 (02:29 +0000)]
I misled Alkis: LLVM should have isnan, not isunordered.
  isunordered(X, Y) === isnan(X) | isnan(Y)

Remove isunordered, add isnan.

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

19 years agoDocument the llvm.isnan intrinsic
Chris Lattner [Fri, 11 Jun 2004 02:28:03 +0000 (02:28 +0000)]
Document the llvm.isnan intrinsic

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

19 years agoBug fixed.
Brian Gaeke [Fri, 11 Jun 2004 02:15:39 +0000 (02:15 +0000)]
Bug fixed.

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

19 years agoTest case for PR368
Brian Gaeke [Fri, 11 Jun 2004 02:11:43 +0000 (02:11 +0000)]
Test case for PR368

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