oota-llvm.git
16 years agoFix typo.
Duncan Sands [Wed, 12 Mar 2008 20:35:19 +0000 (20:35 +0000)]
Fix typo.

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

16 years agoDon't try to extract an i32 from an f64. This
Duncan Sands [Wed, 12 Mar 2008 20:30:08 +0000 (20:30 +0000)]
Don't try to extract an i32 from an f64.  This
getCopyToParts problem was noticed by the new
LegalizeTypes infrastructure.  In order to avoid
this kind of thing in the future I've added a
check that EXTRACT_ELEMENT is only used with
integers.  Once LegalizeTypes is up and running
most likely BUILD_PAIR and EXTRACT_ELEMENT can
be removed, in favour of using apints instead.

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

16 years agoReimplement the parameter attributes support, phase #1. hilights:
Chris Lattner [Wed, 12 Mar 2008 17:45:29 +0000 (17:45 +0000)]
Reimplement the parameter attributes support, phase #1. hilights:

1. There is now a "PAListPtr" class, which is a smart pointer around
   the underlying uniqued parameter attribute list object, and manages
   its refcount.  It is now impossible to mess up the refcount.
2. PAListPtr is now the main interface to the underlying object, and
   the underlying object is now completely opaque.
3. Implementation details like SmallVector and FoldingSet are now no
   longer part of the interface.
4. You can create a PAListPtr with an arbitrary sequence of
   ParamAttrsWithIndex's, no need to make a SmallVector of a specific
   size (you can just use an array or scalar or vector if you wish).
5. All the client code that had to check for a null pointer before
   dereferencing the pointer is simplified to just access the
   PAListPtr directly.
6. The interfaces for adding attrs to a list and removing them is a
   bit simpler.

Phase #2 will rename some stuff (e.g. PAListPtr) and do other less
invasive changes.

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

16 years agono need to keep around this output.
Chris Lattner [Wed, 12 Mar 2008 17:14:06 +0000 (17:14 +0000)]
no need to keep around this output.

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

16 years agoDocument an implementation detail about EXTRACT_SUBREG and INSERT_SUBREG sub-register...
Evan Cheng [Wed, 12 Mar 2008 07:52:15 +0000 (07:52 +0000)]
Document an implementation detail about EXTRACT_SUBREG and INSERT_SUBREG sub-register operand.

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

16 years agoImprove the return slot optimization to be both more aggressive (not limited to sret...
Owen Anderson [Wed, 12 Mar 2008 07:37:44 +0000 (07:37 +0000)]
Improve the return slot optimization to be both more aggressive (not limited to sret parameters), and
safer (when the passed pointer might be invalid).  Thanks to Duncan and Chris for the idea behind this,
and extra thanks to Duncan for helping me work out the trap-safety.

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

16 years agoClean up my own mess.
Evan Cheng [Wed, 12 Mar 2008 07:02:50 +0000 (07:02 +0000)]
Clean up my own mess.
X86 lowering normalize vector 0 to v4i32. However DAGCombine can fold (sub x, x) -> 0 after legalization. It can create a zero vector of a type that's not expected (e.g. v8i16). We don't want to disable the optimization since leaving a (sub x, x) is really bad. Add isel patterns for other types of vector 0 to ensure correctness. It's highly unlikely to happen other than in bugpoint reduced test cases.

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

16 years agoWe also need to collect the VN IDs for the PHI instructions for later updating.
Owen Anderson [Wed, 12 Mar 2008 04:22:57 +0000 (04:22 +0000)]
We also need to collect the VN IDs for the PHI instructions for later updating.

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

16 years agoWhen we're determining what registers to coallesce, track the VNInfo IDs for the...
Owen Anderson [Wed, 12 Mar 2008 03:13:29 +0000 (03:13 +0000)]
When we're determining what registers to coallesce, track the VNInfo IDs for the definitions that
feed the PHI instructions.  We'll need these IDs in order to update LiveIntervals properly.

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

16 years agowhen the bitcode reader is referencing a paramattr, make sure to bump its refcount.
Chris Lattner [Wed, 12 Mar 2008 02:25:52 +0000 (02:25 +0000)]
when the bitcode reader is referencing a paramattr, make sure to bump its refcount.

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

16 years agoTotal brain cramp.
Evan Cheng [Wed, 12 Mar 2008 02:05:05 +0000 (02:05 +0000)]
Total brain cramp.

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

16 years agoThis is a simple fix for getting error messages from dlerror in
Chris Lattner [Wed, 12 Mar 2008 00:50:01 +0000 (00:50 +0000)]
This is a simple fix for getting error messages from dlerror in
LoadLibraryPermanently. The current code modifies the value of a pointer
that is passed by value, so the caller never gets the message.

Patch by Julien Lerouge!

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

16 years agoOne more bit of Altivec parameter passing.
Dale Johannesen [Wed, 12 Mar 2008 00:49:20 +0000 (00:49 +0000)]
One more bit of Altivec parameter passing.

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

16 years agoBe backward compatible
Anton Korobeynikov [Wed, 12 Mar 2008 00:49:19 +0000 (00:49 +0000)]
Be backward compatible

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

16 years agoCheck multiple return values.
Devang Patel [Wed, 12 Mar 2008 00:32:32 +0000 (00:32 +0000)]
Check multiple return values.

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

16 years agoMake this test x86-specific for now; targets that don't use
Dan Gohman [Wed, 12 Mar 2008 00:25:14 +0000 (00:25 +0000)]
Make this test x86-specific for now; targets that don't use
the automated CallingConv code to handle return values typically
don't support multiple return values.

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

16 years agoImplement Altivec passing to varargs functions on ppc.
Dale Johannesen [Wed, 12 Mar 2008 00:22:17 +0000 (00:22 +0000)]
Implement Altivec passing to varargs functions on ppc.

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

16 years agoSet NextMII after issuing a physical register spill.
Evan Cheng [Wed, 12 Mar 2008 00:14:07 +0000 (00:14 +0000)]
Set NextMII after issuing a physical register spill.

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

16 years agoFix attribute handling.
Devang Patel [Wed, 12 Mar 2008 00:07:03 +0000 (00:07 +0000)]
Fix attribute handling.

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

16 years agoMinor debug output bug.
Evan Cheng [Wed, 12 Mar 2008 00:02:46 +0000 (00:02 +0000)]
Minor debug output bug.

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

16 years agoBasic feature test for multiple return values in codegen.
Dan Gohman [Tue, 11 Mar 2008 23:53:16 +0000 (23:53 +0000)]
Basic feature test for multiple return values in codegen.

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

16 years agoUltimately resolve aliases during linking, if possible
Anton Korobeynikov [Tue, 11 Mar 2008 22:51:09 +0000 (22:51 +0000)]
Ultimately resolve aliases during linking, if possible

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

16 years agoTestcase for PR2137
Anton Korobeynikov [Tue, 11 Mar 2008 22:43:42 +0000 (22:43 +0000)]
Testcase for PR2137

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

16 years agoCorrectly propagate thread-local flag from aliasee to alias. This fixes PR2137
Anton Korobeynikov [Tue, 11 Mar 2008 22:38:53 +0000 (22:38 +0000)]
Correctly propagate thread-local flag from aliasee to alias. This fixes PR2137

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

16 years agoUse PassManagerBase instead of FunctionPassManager for functions
Dan Gohman [Tue, 11 Mar 2008 22:29:46 +0000 (22:29 +0000)]
Use PassManagerBase instead of FunctionPassManager for functions
that merely add passes. This allows them to be used with either
FunctionPassManager or PassManager, or even with a custom new
kind of pass manager.

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

16 years agoAdd helper for ultimate aliasee resoltion
Anton Korobeynikov [Tue, 11 Mar 2008 22:28:56 +0000 (22:28 +0000)]
Add helper for ultimate aliasee resoltion

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

16 years agoHandle multiple ret values.
Devang Patel [Tue, 11 Mar 2008 22:24:29 +0000 (22:24 +0000)]
Handle multiple ret values.

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

16 years agoInitialize.
Devang Patel [Tue, 11 Mar 2008 22:08:21 +0000 (22:08 +0000)]
Initialize.

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

16 years agoCheck to see if a two-entry PHI block can be simplified
Dan Gohman [Tue, 11 Mar 2008 21:53:06 +0000 (21:53 +0000)]
Check to see if a two-entry PHI block can be simplified
before trying to merge the block into its predecessors.
This allows two-entry-phi-return.ll to be simplified
into a single basic block.

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

16 years agoMake this test more challenging to help it avoid being
Dan Gohman [Tue, 11 Mar 2008 21:47:57 +0000 (21:47 +0000)]
Make this test more challenging to help it avoid being
optimized away before it tests what it is intended to test.

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

16 years agoUpdate testcase for recent aliases change
Anton Korobeynikov [Tue, 11 Mar 2008 21:42:20 +0000 (21:42 +0000)]
Update testcase for recent aliases change

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

16 years agoHonour aliases visibility during asm emission
Anton Korobeynikov [Tue, 11 Mar 2008 21:41:14 +0000 (21:41 +0000)]
Honour aliases visibility during asm emission

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

16 years agoHonour aliases visibility when reading from/writing to bitcode
Anton Korobeynikov [Tue, 11 Mar 2008 21:40:17 +0000 (21:40 +0000)]
Honour aliases visibility when reading from/writing to bitcode

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

16 years agoAdd a test to ensure that all-ones vectors are materialized with pcmpeqd.
Dan Gohman [Tue, 11 Mar 2008 21:37:00 +0000 (21:37 +0000)]
Add a test to ensure that all-ones vectors are materialized with pcmpeqd.

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

16 years agoTransfer physical register spill info when load / store folding happens.
Evan Cheng [Tue, 11 Mar 2008 21:34:46 +0000 (21:34 +0000)]
Transfer physical register spill info when load / store folding happens.

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

16 years agoUse the correct value for InSignBit.
Dan Gohman [Tue, 11 Mar 2008 21:29:43 +0000 (21:29 +0000)]
Use the correct value for InSignBit.

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

16 years agoInitial codegen support for functions and calls with multiple return values.
Dan Gohman [Tue, 11 Mar 2008 21:11:25 +0000 (21:11 +0000)]
Initial codegen support for functions and calls with multiple return values.

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

16 years agoImplement basic support for the 'f' register class constraint. This basically
Chris Lattner [Tue, 11 Mar 2008 19:50:13 +0000 (19:50 +0000)]
Implement basic support for the 'f' register class constraint.  This basically
works, but probably won't if you mix it with 't' or 'u' yet.

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

16 years agocoalesce away 80-bit floating point copies.
Chris Lattner [Tue, 11 Mar 2008 19:30:09 +0000 (19:30 +0000)]
coalesce away 80-bit floating point copies.

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

16 years agoconvert a massive if statement to a switch.
Chris Lattner [Tue, 11 Mar 2008 19:28:17 +0000 (19:28 +0000)]
convert a massive if statement to a switch.

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

16 years agostart handling the 'f' x87 constraint.
Chris Lattner [Tue, 11 Mar 2008 19:06:29 +0000 (19:06 +0000)]
start handling the 'f' x87 constraint.

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

16 years agoSkip functions that return multiple values.
Devang Patel [Tue, 11 Mar 2008 18:04:06 +0000 (18:04 +0000)]
Skip functions that return multiple values.

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

16 years agoThe feature this is testing did not work in the general case,
Dale Johannesen [Tue, 11 Mar 2008 17:48:26 +0000 (17:48 +0000)]
The feature this is testing did not work in the general case,
and has been removed.

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

16 years agoFix getOperand() for ReturnInst.
Devang Patel [Tue, 11 Mar 2008 17:35:03 +0000 (17:35 +0000)]
Fix getOperand() for ReturnInst.

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

16 years agoBecome multiple return value aware.
Devang Patel [Tue, 11 Mar 2008 17:33:32 +0000 (17:33 +0000)]
Become multiple return value aware.
Right now, the pass does not optimize tail recursions
involving multiple return values.

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

16 years agoAdd TODO reminder.
Devang Patel [Tue, 11 Mar 2008 17:32:05 +0000 (17:32 +0000)]
Add TODO reminder.

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

16 years agoGive PassManager and FunctionPassManager a common base class, with
Dan Gohman [Tue, 11 Mar 2008 16:41:42 +0000 (16:41 +0000)]
Give PassManager and FunctionPassManager a common base class, with
add(Pass *) as a pure virtual member function. This will allow all
the various addPassesTo* functions in LLVM to avoid hard-coding what
type of PassManager is used.

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

16 years agoFix typos in comments.
Dan Gohman [Tue, 11 Mar 2008 16:18:48 +0000 (16:18 +0000)]
Fix typos in comments.

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

16 years agoMissed part of recommit.
Christopher Lamb [Tue, 11 Mar 2008 10:27:36 +0000 (10:27 +0000)]
Missed part of recommit.

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

16 years agoRecommitting parts of r48130. These do not appear to cause the observed failures.
Christopher Lamb [Tue, 11 Mar 2008 10:09:17 +0000 (10:09 +0000)]
Recommitting parts of r48130. These do not appear to cause the observed failures.

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

16 years agoRecommitting changes after more testing. These appear to cause no problems.
Christopher Lamb [Tue, 11 Mar 2008 09:33:47 +0000 (09:33 +0000)]
Recommitting changes after more testing. These appear to cause no problems.

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

16 years agoUse TargetRegisterInfo::getPhysicalRegisterRegClass. Remove duplicated code.
Evan Cheng [Tue, 11 Mar 2008 07:55:13 +0000 (07:55 +0000)]
Use TargetRegisterInfo::getPhysicalRegisterRegClass. Remove duplicated code.

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

16 years agoIf there are multiple register classes that a register belongs to, return the super...
Evan Cheng [Tue, 11 Mar 2008 07:54:14 +0000 (07:54 +0000)]
If there are multiple register classes that a register belongs to, return the super-class (e.g. on x86, returns GR32, not GR32_).

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

16 years agoLearn how to xfail a test.
Evan Cheng [Tue, 11 Mar 2008 07:51:31 +0000 (07:51 +0000)]
Learn how to xfail a test.

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

16 years agoWhen the register allocator runs out of registers, spill a physical register around...
Evan Cheng [Tue, 11 Mar 2008 07:19:34 +0000 (07:19 +0000)]
When the register allocator runs out of registers, spill a physical register around the def's and use's of the interval being allocated to make it possible for the interval to target a register and spill it right away and restore a register for uses. This likely generates terrible code but is before than aborting.

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

16 years agoIn 32-bit mode, mark 64-bit GPR's as unallocatable.
Evan Cheng [Tue, 11 Mar 2008 07:16:00 +0000 (07:16 +0000)]
In 32-bit mode, mark 64-bit GPR's as unallocatable.

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

16 years agoXFAIL due to Dale's change.
Evan Cheng [Tue, 11 Mar 2008 07:15:44 +0000 (07:15 +0000)]
XFAIL due to Dale's change.

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

16 years agoSome LegalizeTypes code factorization and minor
Duncan Sands [Tue, 11 Mar 2008 06:41:14 +0000 (06:41 +0000)]
Some LegalizeTypes code factorization and minor
enhancements.

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

16 years agocompile: double test() {}
Chris Lattner [Tue, 11 Mar 2008 06:21:08 +0000 (06:21 +0000)]
compile: double test() {}

into:

_test:
fldz
ret

instead of:

_test:
subl $12, %esp
#IMPLICIT_DEF %xmm0
movsd %xmm0, (%esp)
fldl (%esp)
addl $12, %esp
ret

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

16 years agoFix the build on gcc 4.2.
Nick Lewycky [Tue, 11 Mar 2008 05:56:09 +0000 (05:56 +0000)]
Fix the build on gcc 4.2.

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

16 years agofix grammer
Devang Patel [Tue, 11 Mar 2008 05:51:59 +0000 (05:51 +0000)]
fix grammer

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

16 years agoInitial multiple return values support.
Devang Patel [Tue, 11 Mar 2008 05:46:42 +0000 (05:46 +0000)]
Initial multiple return values support.

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

16 years agoChange the model for FP Stack return to use fp operands on the
Chris Lattner [Tue, 11 Mar 2008 03:23:40 +0000 (03:23 +0000)]
Change the model for FP Stack return to use fp operands on the
RET instruction instead of using FpSET_ST0_32.  This also generalizes
the code to handling returning of multiple FP results.

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

16 years agovariadic instructions don't have operand info for variadic arguments.
Chris Lattner [Tue, 11 Mar 2008 03:14:42 +0000 (03:14 +0000)]
variadic instructions don't have operand info for variadic arguments.

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

16 years agoUpgrade this test.
Dan Gohman [Tue, 11 Mar 2008 02:19:59 +0000 (02:19 +0000)]
Upgrade this test.

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

16 years agoGeneralize ExpandIntToFP to handle the case where the operand is legal
Dan Gohman [Tue, 11 Mar 2008 01:59:03 +0000 (01:59 +0000)]
Generalize ExpandIntToFP to handle the case where the operand is legal
and it's the result that requires expansion. This code is a little confusing
because the TargetLoweringInfo tables for [US]INT_TO_FP use the operand type
(the integer type) rather than the result type.

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

16 years agoIf a register operand comes from the variadic part of a node, don't
Chris Lattner [Tue, 11 Mar 2008 00:59:28 +0000 (00:59 +0000)]
If a register operand comes from the variadic part of a node, don't
verify the register constraint matches what the instruction expects.

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

16 years agoTemporarily revert 48175.
Evan Cheng [Tue, 11 Mar 2008 00:27:34 +0000 (00:27 +0000)]
Temporarily revert 48175.

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

16 years agoFix thinko: alias always defines new symbol. Even is aliasee itself is undefined.
Anton Korobeynikov [Tue, 11 Mar 2008 00:24:53 +0000 (00:24 +0000)]
Fix thinko: alias always defines new symbol. Even is aliasee itself is undefined.

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

16 years agoMore APInt-ification.
Dan Gohman [Tue, 11 Mar 2008 00:11:06 +0000 (00:11 +0000)]
More APInt-ification.

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

16 years agoemit an ID # for each regclass ID. Chris doesn't like to have to count.
Chris Lattner [Tue, 11 Mar 2008 00:00:23 +0000 (00:00 +0000)]
emit an ID # for each regclass ID.  Chris doesn't like to have to count.

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

16 years agoabort with an assert instead of a cerr to get line#
Chris Lattner [Mon, 10 Mar 2008 23:56:08 +0000 (23:56 +0000)]
abort with an assert instead of a cerr to get line#

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

16 years agoUse utostr instead of a stringstream.
Dan Gohman [Mon, 10 Mar 2008 23:55:07 +0000 (23:55 +0000)]
Use utostr instead of a stringstream.

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

16 years ago- Style cleanup in IA64ISelLowering.h: add 'virtual' keyword for consistency.
Scott Michel [Mon, 10 Mar 2008 23:49:09 +0000 (23:49 +0000)]
- Style cleanup in IA64ISelLowering.h: add 'virtual' keyword for consistency.
- Add test pattern matching in CellSPU's icmp32.ll test harness
- Fix CellSPU fcmp.ll-generated assert.

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

16 years agoCorrectly clone FlaggedNodes.
Dan Gohman [Mon, 10 Mar 2008 23:48:14 +0000 (23:48 +0000)]
Correctly clone FlaggedNodes.

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

16 years agoInitialize ArgTypes directly instead of manually copying in the elements.
Dan Gohman [Mon, 10 Mar 2008 23:41:23 +0000 (23:41 +0000)]
Initialize ArgTypes directly instead of manually copying in the elements.

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

16 years agoAPInt-ify this.
Dan Gohman [Mon, 10 Mar 2008 23:38:17 +0000 (23:38 +0000)]
APInt-ify this.

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

16 years agoRemove an unnecessary #include
Dan Gohman [Mon, 10 Mar 2008 23:37:12 +0000 (23:37 +0000)]
Remove an unnecessary #include

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

16 years agoDon't emit FP_REG_KILL into a block that just returns. Nothing
Chris Lattner [Mon, 10 Mar 2008 23:34:12 +0000 (23:34 +0000)]
Don't emit FP_REG_KILL into a block that just returns.  Nothing
can be live out of the block anyway, so it isn't needed.

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

16 years agoImplement more support for fp-to-i128 and i128-to-fp conversions.
Dan Gohman [Mon, 10 Mar 2008 23:03:31 +0000 (23:03 +0000)]
Implement more support for fp-to-i128 and i128-to-fp conversions.

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

16 years agoDisable prolog code that aligns the stack when a
Dale Johannesen [Mon, 10 Mar 2008 22:59:46 +0000 (22:59 +0000)]
Disable prolog code that aligns the stack when a
local object of >16 byte alignment exists.  It does not
work and getting it to work is not trivial, as explained
in the comment.  This fixes all the remaining ppc32
failures in the struct-layout-1 part of the gcc testsuite.

(gcc does not support this either, and the only way to
get such an object is with __attribute__((aligned)) or
generic vectors; it can't be done in a standard-conforming
program, or with Altivec.  So I think disabling it is OK.)

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

16 years agoUpdate llc flags for PPC register scavenger.
Bill Wendling [Mon, 10 Mar 2008 22:59:08 +0000 (22:59 +0000)]
Update llc flags for PPC register scavenger.

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

16 years agoChange the "enable/disable" mechanism so that we can enable PPC register
Bill Wendling [Mon, 10 Mar 2008 22:49:16 +0000 (22:49 +0000)]
Change the "enable/disable" mechanism so that we can enable PPC register
scavenging for 32-bit and 64-bit separately.

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

16 years agoAdd sanity checks
Anton Korobeynikov [Mon, 10 Mar 2008 22:36:53 +0000 (22:36 +0000)]
Add sanity checks

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

16 years agoTypo: 'function' => 'alias'
Anton Korobeynikov [Mon, 10 Mar 2008 22:36:35 +0000 (22:36 +0000)]
Typo: 'function' => 'alias'

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

16 years agoSyntactic sugar'ify stuff :)
Anton Korobeynikov [Mon, 10 Mar 2008 22:36:08 +0000 (22:36 +0000)]
Syntactic sugar'ify stuff :)

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

16 years agoAlways run 'make check' :) Fix fallout from prev. commit: query for possible
Anton Korobeynikov [Mon, 10 Mar 2008 22:35:31 +0000 (22:35 +0000)]
Always run 'make check' :) Fix fallout from prev. commit: query for possible
alias destination only if we don't have anything to link to

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

16 years agoMake error messages to have common style
Anton Korobeynikov [Mon, 10 Mar 2008 22:34:46 +0000 (22:34 +0000)]
Make error messages to have common style

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

16 years agoProperly link globals with aliases
Anton Korobeynikov [Mon, 10 Mar 2008 22:34:28 +0000 (22:34 +0000)]
Properly link globals with aliases

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

16 years agoThis passes now
Anton Korobeynikov [Mon, 10 Mar 2008 22:34:11 +0000 (22:34 +0000)]
This passes now

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

16 years agoRemove the LinkGlobal weirderness in common linking phase.
Anton Korobeynikov [Mon, 10 Mar 2008 22:33:53 +0000 (22:33 +0000)]
Remove the LinkGlobal weirderness in common linking phase.

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

16 years agoTypo
Anton Korobeynikov [Mon, 10 Mar 2008 22:33:22 +0000 (22:33 +0000)]
Typo

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

16 years agoIf the register allocator ran out of registers, just abort for now.
Evan Cheng [Mon, 10 Mar 2008 21:27:20 +0000 (21:27 +0000)]
If the register allocator ran out of registers, just abort for now.

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

16 years agoEliminate the FP_GET_ST0/FP_SET_ST0 target-specific dag nodes, just lower to
Chris Lattner [Mon, 10 Mar 2008 21:08:41 +0000 (21:08 +0000)]
Eliminate the FP_GET_ST0/FP_SET_ST0 target-specific dag nodes, just lower to
copyfromreg/copytoreg instead.

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

16 years agoDocument multiple return values.
Devang Patel [Mon, 10 Mar 2008 20:49:15 +0000 (20:49 +0000)]
Document multiple return values.

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

16 years agoFix mul expansion to check the correct number of bits for
Dan Gohman [Mon, 10 Mar 2008 20:42:19 +0000 (20:42 +0000)]
Fix mul expansion to check the correct number of bits for
zero extension when checking if an unsigned multiply is
safe.

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

16 years agoSomewhat better solution.
Evan Cheng [Mon, 10 Mar 2008 19:58:22 +0000 (19:58 +0000)]
Somewhat better solution.

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

16 years agoDefault ISD::PREFETCH to expand.
Evan Cheng [Mon, 10 Mar 2008 19:38:10 +0000 (19:38 +0000)]
Default ISD::PREFETCH to expand.

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

16 years agoRevert 48125, 48126, and 48130 for now to unbreak some x86-64 tests.
Evan Cheng [Mon, 10 Mar 2008 19:31:26 +0000 (19:31 +0000)]
Revert 48125, 48126, and 48130 for now to unbreak some x86-64 tests.

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

16 years agofix 80 col violations.
Chris Lattner [Mon, 10 Mar 2008 18:55:53 +0000 (18:55 +0000)]
fix 80 col violations.

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