oota-llvm.git
16 years agoIt might be nice to have this run as x86 on non-x86 platforms...
Bill Wendling [Tue, 18 Mar 2008 22:38:22 +0000 (22:38 +0000)]
It might be nice to have this run as x86 on non-x86 platforms...

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

16 years agoTemporarily revert r48491. It's breaking test/CodeGen/X86/xorl.ll.
Bill Wendling [Tue, 18 Mar 2008 22:29:51 +0000 (22:29 +0000)]
Temporarily revert r48491. It's breaking  test/CodeGen/X86/xorl.ll.

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

16 years agoFix PR 2160 by making sure arguments to external functions get marked as pointing...
Daniel Berlin [Tue, 18 Mar 2008 22:22:53 +0000 (22:22 +0000)]
Fix PR 2160 by making sure arguments to external functions get marked as pointing to anything

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

16 years agoDo not pass -g flag when compiling tests, so remove the C.Flags. This only happens...
Tanya Lattner [Tue, 18 Mar 2008 19:59:04 +0000 (19:59 +0000)]
Do not pass -g flag when compiling tests, so remove the C.Flags. This only happens if you have a debug build of llvm.

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

16 years agoMake conversions of i8/i16 to ppcf128 work.
Dale Johannesen [Tue, 18 Mar 2008 17:28:38 +0000 (17:28 +0000)]
Make conversions of i8/i16 to ppcf128 work.

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

16 years agoDial down gcc's warnings: don't use 0UL when 0U suffices (and when the
Scott Michel [Tue, 18 Mar 2008 16:55:06 +0000 (16:55 +0000)]
Dial down gcc's warnings: don't use 0UL when 0U suffices (and when the
variables and methods themselves only use unsigned.)

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

16 years agoTarget independent DAG transform to use truncate for field extraction + sign extend...
Christopher Lamb [Tue, 18 Mar 2008 16:46:39 +0000 (16:46 +0000)]
Target independent DAG transform to use truncate for field extraction + sign extend on targets where this is profitable. Passes nightly on x86-64.

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

16 years agoRewrite code that propagate isDead information after a dead copy is coalesced. This...
Evan Cheng [Tue, 18 Mar 2008 08:26:47 +0000 (08:26 +0000)]
Rewrite code that propagate isDead information after a dead copy is coalesced. This remove some ugly spaghetti code and fixed a number of subtle bugs.

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

16 years agoUpgrade tests to not use llvm-upgrade.
Tanya Lattner [Tue, 18 Mar 2008 04:14:37 +0000 (04:14 +0000)]
Upgrade tests to not use llvm-upgrade.

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

16 years agoUpgrade tests to not use llvm-upgrade.
Tanya Lattner [Tue, 18 Mar 2008 03:45:45 +0000 (03:45 +0000)]
Upgrade tests to not use llvm-upgrade.

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

16 years agoGet rid of compilation warnings. Per Devang.
Dale Johannesen [Tue, 18 Mar 2008 01:52:17 +0000 (01:52 +0000)]
Get rid of compilation warnings.  Per Devang.

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

16 years agoIdentify Analysis pass.
Devang Patel [Tue, 18 Mar 2008 00:39:19 +0000 (00:39 +0000)]
Identify Analysis pass.
Do not run analysis pass again if analysis info is still available.
This fixes PR1441.

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

16 years agoUpdate heuritics that estimates cost of call instructions.
Devang Patel [Mon, 17 Mar 2008 23:41:20 +0000 (23:41 +0000)]
Update heuritics that estimates cost of call instructions.

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

16 years agoMake Complex long long/double/long double work
Dale Johannesen [Mon, 17 Mar 2008 17:11:08 +0000 (17:11 +0000)]
Make Complex long long/double/long double work
in ppc64 mode.

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

16 years agoClarify the unwind attribute. Add assumption
Duncan Sands [Mon, 17 Mar 2008 12:17:41 +0000 (12:17 +0000)]
Clarify the unwind attribute.  Add assumption
about sret made by the optimizers.

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

16 years agoFix for "make install" of ocaml docs. Patch by Erick Tryzelaar!
Bill Wendling [Mon, 17 Mar 2008 07:49:23 +0000 (07:49 +0000)]
Fix for "make install" of ocaml docs. Patch by Erick Tryzelaar!

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

16 years agoAdd support for escaping {} in asm strings, based on patch from Nick Burns.
Nate Begeman [Mon, 17 Mar 2008 07:26:14 +0000 (07:26 +0000)]
Add support for escaping {} in asm strings, based on patch from Nick Burns.

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

16 years agoCheck in some #ifdef'd out code switching call argument
Chris Lattner [Mon, 17 Mar 2008 06:58:37 +0000 (06:58 +0000)]
Check in some #ifdef'd out code switching call argument
lowering over to SparcCallingConv.td.  We can't make the switch
yet because we can't say to pass f64 registers in 2 x i32 registers
with the td file yet.

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

16 years agominor cleanups
Chris Lattner [Mon, 17 Mar 2008 06:57:02 +0000 (06:57 +0000)]
minor cleanups

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

16 years agoUnbreak JIT. Ignore TargetInstrInfo::IMPLICIT_DEF.
Evan Cheng [Mon, 17 Mar 2008 06:56:52 +0000 (06:56 +0000)]
Unbreak JIT. Ignore TargetInstrInfo::IMPLICIT_DEF.

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

16 years agoA first attempt at updating live intervals, with code lifted from
Owen Anderson [Mon, 17 Mar 2008 06:08:26 +0000 (06:08 +0000)]
A first attempt at updating live intervals, with code lifted from
the coalescer.  This doesn't really work, but gets us farther than
before.

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

16 years agoremove dead code
Chris Lattner [Mon, 17 Mar 2008 06:04:10 +0000 (06:04 +0000)]
remove dead code

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

16 years agoSwitch sparc from using LowerCallTo to using LowerOperation(CALL) like
Chris Lattner [Mon, 17 Mar 2008 06:01:07 +0000 (06:01 +0000)]
Switch sparc from using LowerCallTo to using LowerOperation(CALL) like
other targets.  Use autogenerated calling conv to lower result of
calls.

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

16 years agoStart moving sparc to use SparcCallingConv.td, switching over
Chris Lattner [Mon, 17 Mar 2008 05:41:48 +0000 (05:41 +0000)]
Start moving sparc to use SparcCallingConv.td, switching over
return lowering first.  This fixes a bug where the top and bottom
of i64 values were returned in the wrong registers before.

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

16 years agosplit sparc lowering out into SparcISelLowering.{cpp|h} to follow
Chris Lattner [Mon, 17 Mar 2008 03:21:36 +0000 (03:21 +0000)]
split sparc lowering out into SparcISelLowering.{cpp|h} to follow
best practices.

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

16 years agorefactor the LowerOperation code out to individual functions for
Chris Lattner [Mon, 17 Mar 2008 02:52:07 +0000 (02:52 +0000)]
refactor the LowerOperation code out to individual functions for
each lowering, which is 'best practice'.

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

16 years agoNext round of PPC32 ABI changes. Allow for gcc
Dale Johannesen [Mon, 17 Mar 2008 02:13:43 +0000 (02:13 +0000)]
Next round of PPC32 ABI changes.  Allow for gcc
behavior where a callee thinks a param will be
present in memory, even though the ABI doc says
it doesn't have to be.  Handle complex long long
and complex double (4 and 8 return regs).

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

16 years agovarious rotate fun.
Chris Lattner [Mon, 17 Mar 2008 01:47:51 +0000 (01:47 +0000)]
various rotate fun.

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

16 years agoensure we continue matching x86-64 rotates.
Chris Lattner [Mon, 17 Mar 2008 01:35:03 +0000 (01:35 +0000)]
ensure we continue matching x86-64 rotates.

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

16 years ago__builtin_ia32_movntdqa reads memory
Nate Begeman [Sun, 16 Mar 2008 21:15:47 +0000 (21:15 +0000)]
__builtin_ia32_movntdqa reads memory

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

16 years agoAdd a couple missing SSE4 instructions
Nate Begeman [Sun, 16 Mar 2008 21:14:46 +0000 (21:14 +0000)]
Add a couple missing SSE4 instructions

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

16 years agoC and Objective Caml bindings for the TargetData class.
Gordon Henriksen [Sun, 16 Mar 2008 20:08:03 +0000 (20:08 +0000)]
C and Objective Caml bindings for the TargetData class.

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

16 years agoAdd assert for non-hexadecimal radixes.
Bill Wendling [Sun, 16 Mar 2008 20:05:52 +0000 (20:05 +0000)]
Add assert for non-hexadecimal radixes.

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

16 years agoHousekeeping.
Gordon Henriksen [Sun, 16 Mar 2008 16:33:35 +0000 (16:33 +0000)]
Housekeeping.

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

16 years agoC and Objective Caml bindings for several scalar transforms.
Gordon Henriksen [Sun, 16 Mar 2008 16:32:40 +0000 (16:32 +0000)]
C and Objective Caml bindings for several scalar transforms.

Patch originally by Erick Tryzelaar, but has been modified somewhat.

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

16 years agoRemove unnecessary includes.
Gordon Henriksen [Sun, 16 Mar 2008 15:55:43 +0000 (15:55 +0000)]
Remove unnecessary includes.

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

16 years agoAll of these tests had out of date syntax and were never even running through
Nick Lewycky [Sun, 16 Mar 2008 07:55:46 +0000 (07:55 +0000)]
All of these tests had out of date syntax and were never even running through
llvm-upgrade because nobody noticed them failing.

Update to use new syntax and actually check for the right failure by looking at
the error message.

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

16 years agoFunctions are allowed to return structures. (Note that this test never failed.)
Nick Lewycky [Sun, 16 Mar 2008 07:49:49 +0000 (07:49 +0000)]
Functions are allowed to return structures. (Note that this test never failed.)

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

16 years agoRegressions/ is long gone.
Nick Lewycky [Sun, 16 Mar 2008 07:31:23 +0000 (07:31 +0000)]
Regressions/ is long gone.

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

16 years agoCommit works on regular functions too. Fix the syntax to allow @foo.
Nick Lewycky [Sun, 16 Mar 2008 07:18:12 +0000 (07:18 +0000)]
Commit works on regular functions too. Fix the syntax to allow @foo.

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

16 years agoC and Objective Caml bindings for PassManagers.
Gordon Henriksen [Sun, 16 Mar 2008 04:20:44 +0000 (04:20 +0000)]
C and Objective Caml bindings for PassManagers.

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

16 years agoMake insert_subreg a two-address instruction, vastly simplifying LowerSubregs pass...
Christopher Lamb [Sun, 16 Mar 2008 03:12:01 +0000 (03:12 +0000)]
Make insert_subreg a two-address instruction, vastly simplifying LowerSubregs pass. Add a new TII, subreg_to_reg, which is like insert_subreg except that it takes an immediate implicit value to insert into rather than a register.

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

16 years agoMinor documentation fix.
Gordon Henriksen [Sat, 15 Mar 2008 00:26:23 +0000 (00:26 +0000)]
Minor documentation fix.

Patch by Erick Tryzelaar.

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

16 years agoRemove isImplicitDef TargetInstrDesc flag.
Evan Cheng [Sat, 15 Mar 2008 00:19:36 +0000 (00:19 +0000)]
Remove isImplicitDef TargetInstrDesc flag.

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

16 years agoReplace all target specific implicit def instructions with a target independent one...
Evan Cheng [Sat, 15 Mar 2008 00:03:38 +0000 (00:03 +0000)]
Replace all target specific implicit def instructions with a target independent one: TargetInstrInfo::IMPLICIT_DEF.

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

16 years agoExpose Module::dump via C and Ocaml.
Gordon Henriksen [Fri, 14 Mar 2008 23:58:56 +0000 (23:58 +0000)]
Expose Module::dump via C and Ocaml.

Patch by Erick Tryzelaar.

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

16 years agoExpose Module::dump via C and Ocaml.
Gordon Henriksen [Fri, 14 Mar 2008 23:52:53 +0000 (23:52 +0000)]
Expose Module::dump via C and Ocaml.

Patch by Erick Tryzelaar.

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

16 years agomove the Use destructor where it belongs to
Gabor Greif [Fri, 14 Mar 2008 22:03:02 +0000 (22:03 +0000)]
move the Use destructor where it belongs to

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

16 years agoBack out r48353. Not needed.
Evan Cheng [Fri, 14 Mar 2008 22:01:01 +0000 (22:01 +0000)]
Back out r48353. Not needed.

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

16 years agoDo not generate special entries in the dwarf eh
Duncan Sands [Fri, 14 Mar 2008 21:36:24 +0000 (21:36 +0000)]
Do not generate special entries in the dwarf eh
table for nounwind calls.

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

16 years agoRestore this member, which is used on win32.
Chris Lattner [Fri, 14 Mar 2008 21:17:54 +0000 (21:17 +0000)]
Restore this member, which is used on win32.

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

16 years agoFix PR2138. Apparently any modification to a std::multimap (including remove entries...
Evan Cheng [Fri, 14 Mar 2008 20:44:01 +0000 (20:44 +0000)]
Fix PR2138. Apparently any modification to a std::multimap (including remove entries for a different key) can invalidate multimap iterators.

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

16 years agothis was removed from the Unix side.
Chris Lattner [Fri, 14 Mar 2008 20:41:50 +0000 (20:41 +0000)]
this was removed from the Unix side.

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

16 years agoUpdate comments; getPassName no longer uses RTTI.
Dan Gohman [Fri, 14 Mar 2008 18:27:04 +0000 (18:27 +0000)]
Update comments; getPassName no longer uses RTTI.

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

16 years agoMove the PMStack class out of Pass.h and into PassManagers.h.
Dan Gohman [Fri, 14 Mar 2008 18:14:29 +0000 (18:14 +0000)]
Move the PMStack class out of Pass.h and into PassManagers.h.

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

16 years agoImplement the real calling convention for ppc32 Altivec:
Dale Johannesen [Fri, 14 Mar 2008 17:41:26 +0000 (17:41 +0000)]
Implement the real calling convention for ppc32 Altivec:
vectors go at the end of the memory area, after all
non-vector parameters.

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

16 years agoFix some 80 col violations.
Evan Cheng [Fri, 14 Mar 2008 07:46:48 +0000 (07:46 +0000)]
Fix some 80 col violations.

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

16 years agoFix a number of encoding bugs. SSE 4.1 instructions MPSADBWrri, PINSRDrr, etc. have...
Evan Cheng [Fri, 14 Mar 2008 07:39:27 +0000 (07:39 +0000)]
Fix a number of encoding bugs. SSE 4.1 instructions MPSADBWrri, PINSRDrr, etc. have 8-bits immediate field (ImmT == Imm8).

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

16 years agoAdd debugging stuff.
Evan Cheng [Fri, 14 Mar 2008 07:13:42 +0000 (07:13 +0000)]
Add debugging stuff.

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

16 years agoAdd an issue that is preventing instcombine from doing a simplification.
Chris Lattner [Fri, 14 Mar 2008 06:00:19 +0000 (06:00 +0000)]
Add an issue that is preventing instcombine from doing a simplification.

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

16 years agoSimplify using getIntPtrConstant.
Duncan Sands [Fri, 14 Mar 2008 05:23:57 +0000 (05:23 +0000)]
Simplify using getIntPtrConstant.

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

16 years agoThe inst combining of inttoptr into GEP with one index was using the bit size of
Bill Wendling [Fri, 14 Mar 2008 05:12:19 +0000 (05:12 +0000)]
The inst combining of inttoptr into GEP with one index was using the bit size of
the type instead of the byte size. This was causing troublesome mis-compilations.

True to form, this took 2 days to find and is a one-line fix. :-P

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

16 years agoAdd an MO_Undef MachineOperandType, intended for INSERT_SUBREG. Next up MO_Undead.
Evan Cheng [Fri, 14 Mar 2008 01:47:49 +0000 (01:47 +0000)]
Add an MO_Undef MachineOperandType, intended for INSERT_SUBREG. Next up MO_Undead.

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

16 years agoTabs -> spaces
Nate Begeman [Fri, 14 Mar 2008 00:53:31 +0000 (00:53 +0000)]
Tabs -> spaces
Use getIntPtrConstant in a couple places to shorten stuff up
Handle splitting vector shuffles with undefs in the mask

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

16 years agoForgot this.
Evan Cheng [Fri, 14 Mar 2008 00:17:29 +0000 (00:17 +0000)]
Forgot this.

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

16 years agoLivein copy scheduling fixes: do not coalesce physical register copies, correctly...
Evan Cheng [Fri, 14 Mar 2008 00:14:55 +0000 (00:14 +0000)]
Livein copy scheduling fixes: do not coalesce physical register copies, correctly determine the safe location to insert the copies.

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

16 years agoUse SDTNone instead of duplicating it.
Dan Gohman [Thu, 13 Mar 2008 23:07:40 +0000 (23:07 +0000)]
Use SDTNone instead of duplicating it.

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

16 years agoFix a typo in a comment.
Dan Gohman [Thu, 13 Mar 2008 23:04:27 +0000 (23:04 +0000)]
Fix a typo in a comment.

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

16 years agoMore APInt-ification.
Dan Gohman [Thu, 13 Mar 2008 22:13:53 +0000 (22:13 +0000)]
More APInt-ification.

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

16 years agoFix a bug in GVN that Duncan noticed, where we potentially need to insert a
Owen Anderson [Thu, 13 Mar 2008 22:07:10 +0000 (22:07 +0000)]
Fix a bug in GVN that Duncan noticed, where we potentially need to insert a
pointer bitcast when performing return slot optimization.

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

16 years agoFix error in testing for END. notation.
Tanya Lattner [Thu, 13 Mar 2008 22:02:51 +0000 (22:02 +0000)]
Fix error in testing for END. notation.
Patch by Julien Lerouge. Thanks!

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

16 years agoUndo tweak. It had no obvious benefit.
Evan Cheng [Thu, 13 Mar 2008 17:42:48 +0000 (17:42 +0000)]
Undo tweak. It had no obvious benefit.

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

16 years agoRemove unused GetAddressOfSymbol()
Devang Patel [Thu, 13 Mar 2008 16:55:34 +0000 (16:55 +0000)]
Remove unused GetAddressOfSymbol()
Thanks Daniel Dunbar!

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

16 years agoNew test case.
Evan Cheng [Thu, 13 Mar 2008 08:05:02 +0000 (08:05 +0000)]
New test case.

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

16 years agoTypo.
Evan Cheng [Thu, 13 Mar 2008 08:04:35 +0000 (08:04 +0000)]
Typo.

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

16 years agoDon't try to sink 3-address instruction if convertToThreeAddress created more than...
Evan Cheng [Thu, 13 Mar 2008 07:56:58 +0000 (07:56 +0000)]
Don't try to sink 3-address instruction if convertToThreeAddress created more than one instructions.

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

16 years agoA test case I forgot to check in.
Evan Cheng [Thu, 13 Mar 2008 06:42:46 +0000 (06:42 +0000)]
A test case I forgot to check in.

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

16 years agoRemove an unused command line option.
Evan Cheng [Thu, 13 Mar 2008 06:38:28 +0000 (06:38 +0000)]
Remove an unused command line option.

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

16 years agoTwoAddressInstructionPass enhancement. After it converts a two address instruction...
Evan Cheng [Thu, 13 Mar 2008 06:37:55 +0000 (06:37 +0000)]
TwoAddressInstructionPass enhancement. After it converts a two address instruction into a 3-address one, sink it past the instruction that kills the read-mod-write register if its definition is used past the kill. This reduces the number of live register by one.

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

16 years agoGet rid of a pseudo instruction and replace it with subreg based operation on real...
Christopher Lamb [Thu, 13 Mar 2008 05:47:01 +0000 (05:47 +0000)]
Get rid of a pseudo instruction and replace it with subreg based operation on real instructions, ridding the asm printers of the hack used to do this previously. In the process, update LowerSubregs to be careful about eliminating copies that have side affects.

Note: the coalescer will have to be careful about this too, when it starts coalescing insert_subreg nodes.

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

16 years agoFix Path::GetMainExecutable on cygwin, patch by Sam Bishop.
Chris Lattner [Thu, 13 Mar 2008 05:22:05 +0000 (05:22 +0000)]
Fix Path::GetMainExecutable on cygwin, patch by Sam Bishop.

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

16 years agoremove extraneous namespace qualifier, PR2142
Chris Lattner [Thu, 13 Mar 2008 05:17:59 +0000 (05:17 +0000)]
remove extraneous namespace qualifier, PR2142

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

16 years agomove a bunch of trivial methods to be inline.
Chris Lattner [Thu, 13 Mar 2008 05:00:21 +0000 (05:00 +0000)]
move a bunch of trivial methods to be inline.

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

16 years agoVarious improvements suggested by Duncan
Chris Lattner [Thu, 13 Mar 2008 04:33:03 +0000 (04:33 +0000)]
Various improvements suggested by Duncan

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

16 years agoFix an incorrect comment, PR2147.
Chris Lattner [Thu, 13 Mar 2008 03:29:42 +0000 (03:29 +0000)]
Fix an incorrect comment, PR2147.

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

16 years agoImprove VarInfo::removeKill() by using std::find instead of linear search.
Evan Cheng [Thu, 13 Mar 2008 02:42:55 +0000 (02:42 +0000)]
Improve VarInfo::removeKill() by using std::find instead of linear search.

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

16 years agoUpdate -mem2reg to use succ_iterator instead of iterating across TerminatorInst
Nick Lewycky [Thu, 13 Mar 2008 02:42:41 +0000 (02:42 +0000)]
Update -mem2reg to use succ_iterator instead of iterating across TerminatorInst
successors. This makes it support nounwind.

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

16 years agoRemove unused options.
Evan Cheng [Thu, 13 Mar 2008 02:41:34 +0000 (02:41 +0000)]
Remove unused options.

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

16 years agoEliminate a few unnecessary uses of dynamic_cast.
Dan Gohman [Thu, 13 Mar 2008 02:08:36 +0000 (02:08 +0000)]
Eliminate a few unnecessary uses of dynamic_cast.

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

16 years agoFix a typo.
Dan Gohman [Thu, 13 Mar 2008 01:58:48 +0000 (01:58 +0000)]
Fix a typo.

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

16 years agoDon't redundantly clear std::vector members in destructors.
Dan Gohman [Thu, 13 Mar 2008 01:57:34 +0000 (01:57 +0000)]
Don't redundantly clear std::vector members in destructors.

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

16 years agoChange PMTopLevelManager's PassManagers vector element type from
Dan Gohman [Thu, 13 Mar 2008 01:48:32 +0000 (01:48 +0000)]
Change PMTopLevelManager's PassManagers vector element type from
Pass* to PMDataManager*. PMDataManager is more specific than Pass,
so this more accurately describes the objects that are being stored.

This eliminates the need for several dynamic_casts to PMDataManager*.
It does introduce one dynamic_cast though, in dumpPasses(). Give
this one a comment describing why a dynamic_cast is being used.

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

16 years agoChange PMStack::push to accept a PMDataManager* instead of
Dan Gohman [Thu, 13 Mar 2008 01:21:31 +0000 (01:21 +0000)]
Change PMStack::push to accept a PMDataManager* instead of
a Pass*. PMDataManager* is what it actually holds, so this
makes it clearer.

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

16 years agoFix a typo in a comment.
Dan Gohman [Thu, 13 Mar 2008 01:08:50 +0000 (01:08 +0000)]
Fix a typo in a comment.

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

16 years agoNo need for typedefs with enums in C++.
Dan Gohman [Thu, 13 Mar 2008 01:07:53 +0000 (01:07 +0000)]
No need for typedefs with enums in C++.

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

16 years agoRefactor some code out of MachineSink into a MachineInstr query.
Evan Cheng [Thu, 13 Mar 2008 00:44:09 +0000 (00:44 +0000)]
Refactor some code out of MachineSink into a MachineInstr query.

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

16 years agoDo not promote float params to double in varargs
Dale Johannesen [Wed, 12 Mar 2008 23:40:01 +0000 (23:40 +0000)]
Do not promote float params to double in varargs
calls here.  This was done earlier for params in
the varargs part of the params; any float params
that survive to here are in the non-varargs part,
and must not be promoted.

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

16 years agoExperimental scheduler change to schedule / coalesce the copies added for function...
Evan Cheng [Wed, 12 Mar 2008 22:19:41 +0000 (22:19 +0000)]
Experimental scheduler change to schedule / coalesce the copies added for function livein's. Take 2008-03-10-RegAllocInfLoop.ll, the schedule looks like this after these copies are inserted:

entry: 0x12049d0, LLVM BB @0x1201fd0, ID#0:
Live Ins: %EAX %EDX %ECX
        %reg1031<def> = MOVPC32r 0
        %reg1032<def> = ADD32ri %reg1031, <es:_GLOBAL_OFFSET_TABLE_>, %EFLAGS<imp-def>
        %reg1028<def> = MOV32rr %EAX
        %reg1029<def> = MOV32rr %EDX
        %reg1030<def> = MOV32rr %ECX
        %reg1027<def> = MOV8rm %reg0, 1, %reg0, 0, Mem:LD(1,1) [0x1201910 + 0]
        %reg1025<def> = MOV32rr %reg1029
        %reg1026<def> = MOV32rr %reg1030
        %reg1024<def> = MOV32rr %reg1028

The copies unnecessarily increase register pressure and it will end up requiring a physical register to be spilled.

With -schedule-livein-copies:
entry: 0x12049d0, LLVM BB @0x1201fa0, ID#0:
Live Ins: %EAX %EDX %ECX
        %reg1031<def> = MOVPC32r 0
        %reg1032<def> = ADD32ri %reg1031, <es:_GLOBAL_OFFSET_TABLE_>, %EFLAGS<imp-def>
        %reg1024<def> = MOV32rr %EAX
        %reg1025<def> = MOV32rr %EDX
        %reg1026<def> = MOV32rr %ECX
        %reg1027<def> = MOV8rm %reg0, 1, %reg0, 0, Mem:LD(1,1) [0x12018e0 + 0]

Much better!

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

16 years agoInitial soft-float support for LegalizeTypes. I rewrote
Duncan Sands [Wed, 12 Mar 2008 21:27:04 +0000 (21:27 +0000)]
Initial soft-float support for LegalizeTypes.  I rewrote
the fcopysign expansion from LegalizeDAG to get rid of
what seems to be a bug: the use of sign extension means
that when copying the sign bit from an f32 to an f64,
the upper 32 bits of the f64 (now an i64) are set, not
just the top bit...  I also generalized it to work for
any sized floating point types, and removed the bogosity:
  SDOperand Mask1 = (SrcVT == MVT::f64)
    ? DAG.getConstantFP(BitsToDouble(1ULL << 63), SrcVT)
    : DAG.getConstantFP(BitsToFloat(1U << 31), SrcVT);
  Mask1 = DAG.getNode(ISD::BIT_CONVERT, SrcNVT, Mask1);
(here SrcNVT is an integer with the same size as SrcVT).
As far as I can see this takes a 1 << 63, converts to
a double, converts that to a floating point constant
then converts that to an integer constant, ending up
with... 1 << 63 as an integer constant!  So I just
generate this integer constant directly.

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

16 years agoChange VirtRegMap's dump to dump to cerr, not DOUT, so that it
Dan Gohman [Wed, 12 Mar 2008 20:52:10 +0000 (20:52 +0000)]
Change VirtRegMap's dump to dump to cerr, not DOUT, so that it
can be called from within a debuger without having -debug specified
on the command-line.

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