oota-llvm.git
16 years agoadd a new BF->LLVM translator, contributed by Sterling Stein.
Chris Lattner [Wed, 12 Sep 2007 18:24:00 +0000 (18:24 +0000)]
add a new BF->LLVM translator, contributed by Sterling Stein.

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

16 years agoChange llvm.gcroot to not init the root to null at runtime, this prevents
Chris Lattner [Wed, 12 Sep 2007 17:53:10 +0000 (17:53 +0000)]
Change llvm.gcroot to not init the root to null at runtime, this prevents
using it for live-in values etc.

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

16 years agoGenerated files for previous patch.
Dale Johannesen [Wed, 12 Sep 2007 03:31:28 +0000 (03:31 +0000)]
Generated files for previous patch.

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

16 years agoRevise previous patch per review comments.
Dale Johannesen [Wed, 12 Sep 2007 03:30:33 +0000 (03:30 +0000)]
Revise previous patch per review comments.
Next round of x87 long double stuff.
Getting close now, basically works.

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

16 years agoCompensate for partCount change in Bogus definition
Dale Johannesen [Wed, 12 Sep 2007 01:22:05 +0000 (01:22 +0000)]
Compensate for partCount change in Bogus definition
(could break hash table in ConstantFP)

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

16 years agoEnable indirect encoding for the personality function
Bill Wendling [Tue, 11 Sep 2007 23:55:40 +0000 (23:55 +0000)]
Enable indirect encoding for the personality function

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

16 years agoMove dump out of class, use "\n" instead of endl
Daniel Berlin [Tue, 11 Sep 2007 22:58:27 +0000 (22:58 +0000)]
Move dump out of class, use "\n" instead of endl

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

16 years agoSometimes a MI can define a register as well as defining a super-register at the
Evan Cheng [Tue, 11 Sep 2007 22:34:47 +0000 (22:34 +0000)]
Sometimes a MI can define a register as well as defining a super-register at the
same time. Do not mark the "smaller" def as dead.

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

16 years agoFix date :)
Anton Korobeynikov [Tue, 11 Sep 2007 22:20:27 +0000 (22:20 +0000)]
Fix date :)

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

16 years agoTestcase for recent pragma pack stuff
Anton Korobeynikov [Tue, 11 Sep 2007 22:12:26 +0000 (22:12 +0000)]
Testcase for recent pragma pack stuff

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

16 years agoRemove (somewhat confusing) Imp<> helper, use let Defs = [], Uses = [] instead.
Evan Cheng [Tue, 11 Sep 2007 19:55:27 +0000 (19:55 +0000)]
Remove (somewhat confusing) Imp<> helper, use let Defs = [], Uses = [] instead.

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

16 years agoAdded status flags register: EFLAGS.
Evan Cheng [Tue, 11 Sep 2007 19:53:28 +0000 (19:53 +0000)]
Added status flags register: EFLAGS.

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

16 years agoAllow set operators with multiple destinations, i.e. (set x, y, (op a, b)).
Evan Cheng [Tue, 11 Sep 2007 19:52:18 +0000 (19:52 +0000)]
Allow set operators with multiple destinations, i.e. (set x, y, (op a, b)).

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

16 years agoGenerated files for previous patch.
Dale Johannesen [Tue, 11 Sep 2007 18:33:39 +0000 (18:33 +0000)]
Generated files for previous patch.

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

16 years agoAdd APInt interfaces to APFloat (allows directly
Dale Johannesen [Tue, 11 Sep 2007 18:32:33 +0000 (18:32 +0000)]
Add APInt interfaces to APFloat (allows directly
access to bits).  Use them in place of float and
double interfaces where appropriate.
First bits of x86 long double constants handling
(untested, probably does not work).

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

16 years agoConvert to use ilist and non-pointer lists for extra goodness
Daniel Berlin [Tue, 11 Sep 2007 17:42:22 +0000 (17:42 +0000)]
Convert to use ilist and non-pointer lists for extra goodness

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

16 years agoAdd accessor method.
Bill Wendling [Tue, 11 Sep 2007 17:24:38 +0000 (17:24 +0000)]
Add accessor method.

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

16 years agoAdd a bool to indicate if we should set the "indirect encoding" bit in the Dwarf
Bill Wendling [Tue, 11 Sep 2007 17:20:55 +0000 (17:20 +0000)]
Add a bool to indicate if we should set the "indirect encoding" bit in the Dwarf
information for EH.

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

16 years agoReenable libgc and libprofile is explicitly requested.
Chris Lattner [Tue, 11 Sep 2007 17:12:32 +0000 (17:12 +0000)]
Reenable libgc and libprofile is explicitly requested.

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

16 years agoremove an obsolete library.
Chris Lattner [Tue, 11 Sep 2007 17:10:52 +0000 (17:10 +0000)]
remove an obsolete library.

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

16 years agoupdate this to use llvm-config, patch by Jose M. Moya
Chris Lattner [Tue, 11 Sep 2007 17:09:54 +0000 (17:09 +0000)]
update this to use llvm-config, patch by Jose M. Moya

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

16 years agoTest that a call to a trampoline is turned into a call to
Duncan Sands [Tue, 11 Sep 2007 15:07:50 +0000 (15:07 +0000)]
Test that a call to a trampoline is turned into a call to
the underlying nested function.

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

16 years agoTwo ParamAttrsVectors which differ by a permutation
Duncan Sands [Tue, 11 Sep 2007 14:40:04 +0000 (14:40 +0000)]
Two ParamAttrsVectors which differ by a permutation
of their elements do not yield the same ParamAttrsList,
though they should.  On the other hand, everyone seems
to pass such vectors with elements ordered by increasing
index, so rather than sorting the elements simply assert
that the elements are ordered in this way.

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

16 years agoTurn calls to trampolines into calls to the underlying
Duncan Sands [Tue, 11 Sep 2007 14:35:41 +0000 (14:35 +0000)]
Turn calls to trampolines into calls to the underlying
nested function.

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

16 years agoFold the adjust_trampoline intrinsic into
Duncan Sands [Tue, 11 Sep 2007 14:10:23 +0000 (14:10 +0000)]
Fold the adjust_trampoline intrinsic into
init_trampoline.  There is now only one
trampoline intrinsic.

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

16 years agoMy compiler warns about the semicolon.
Duncan Sands [Tue, 11 Sep 2007 12:30:25 +0000 (12:30 +0000)]
My compiler warns about the semicolon.

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

16 years agoThe personality function on Darwin needs a global stub. We then refer to
Bill Wendling [Tue, 11 Sep 2007 08:27:17 +0000 (08:27 +0000)]
The personality function on Darwin needs a global stub. We then refer to
that global stub instead of doing the ".set" thingy we were doing before.

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

16 years agoAdd a ValueInfoT template parameter to DenseMap so that it can properly make decisions
Owen Anderson [Tue, 11 Sep 2007 05:08:05 +0000 (05:08 +0000)]
Add a ValueInfoT template parameter to DenseMap so that it can properly make decisions
based on whether the key AND the value require ctors/dtors.

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

16 years agoDon't bother to initialize values corresponding to empty or tombstone
Owen Anderson [Tue, 11 Sep 2007 04:43:51 +0000 (04:43 +0000)]
Don't bother to initialize values corresponding to empty or tombstone
keys.

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

16 years agoFix a typo in memdep, which was causing PR1648.
Owen Anderson [Tue, 11 Sep 2007 04:31:00 +0000 (04:31 +0000)]
Fix a typo in memdep, which was causing PR1648.

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

16 years agoFix bugs with &=, intersect with complement. Add three argument version of intersect...
Daniel Berlin [Tue, 11 Sep 2007 04:11:28 +0000 (04:11 +0000)]
Fix bugs with &=, intersect with complement. Add three argument version of intersect with complement.

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

16 years agoFix non-deterministic behavior in the DenseMap copy constructor.
Owen Anderson [Tue, 11 Sep 2007 03:48:08 +0000 (03:48 +0000)]
Fix non-deterministic behavior in the DenseMap copy constructor.

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

16 years agoAdd remaining functions necessary for andersen's
Daniel Berlin [Tue, 11 Sep 2007 01:38:07 +0000 (01:38 +0000)]
Add remaining functions necessary for andersen's

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

16 years agoAvoid negative logic.
Devang Patel [Tue, 11 Sep 2007 01:10:45 +0000 (01:10 +0000)]
Avoid negative logic.

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

16 years agoRefactor code into a separate method.
Devang Patel [Tue, 11 Sep 2007 00:42:56 +0000 (00:42 +0000)]
Refactor code into a separate method.

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

16 years agoTestcase for PR1634
Chris Lattner [Tue, 11 Sep 2007 00:39:43 +0000 (00:39 +0000)]
Testcase for PR1634

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

16 years agoClear split info object.
Devang Patel [Tue, 11 Sep 2007 00:23:56 +0000 (00:23 +0000)]
Clear split info object.

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

16 years agoSplit condition does not have to be ICmpInst in all cases.
Devang Patel [Tue, 11 Sep 2007 00:12:56 +0000 (00:12 +0000)]
Split condition does not have to be ICmpInst in all cases.

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

16 years agoCheck all terminators inside loop.
Devang Patel [Mon, 10 Sep 2007 23:57:58 +0000 (23:57 +0000)]
Check all terminators inside loop.

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

16 years agoremove obsolete testcase
Chris Lattner [Mon, 10 Sep 2007 23:51:41 +0000 (23:51 +0000)]
remove obsolete testcase

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

16 years agoremove some dead code, this is handled by constant folding.
Chris Lattner [Mon, 10 Sep 2007 23:46:29 +0000 (23:46 +0000)]
remove some dead code, this is handled by constant folding.

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

16 years agoFix a buggy constant folding transformation when handling aliases.
Chris Lattner [Mon, 10 Sep 2007 23:42:42 +0000 (23:42 +0000)]
Fix a buggy constant folding transformation when handling aliases.

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

16 years agoSwap exit condition operands if it works.
Devang Patel [Mon, 10 Sep 2007 23:34:06 +0000 (23:34 +0000)]
Swap exit condition operands if it works.

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

16 years agoregenerate
Chris Lattner [Mon, 10 Sep 2007 23:24:14 +0000 (23:24 +0000)]
regenerate

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

16 years agoFix PR1645 by resolving forward alias references.
Chris Lattner [Mon, 10 Sep 2007 23:23:53 +0000 (23:23 +0000)]
Fix PR1645 by resolving forward alias references.

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

16 years agoAdd missing llvm-dis.
Dale Johannesen [Mon, 10 Sep 2007 22:47:59 +0000 (22:47 +0000)]
Add missing llvm-dis.

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

16 years ago80 col.
Evan Cheng [Mon, 10 Sep 2007 22:22:23 +0000 (22:22 +0000)]
80 col.

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

16 years agoNew entry.
Evan Cheng [Mon, 10 Sep 2007 22:16:37 +0000 (22:16 +0000)]
New entry.

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

16 years agoObservation of rematerialization.
Evan Cheng [Mon, 10 Sep 2007 22:11:18 +0000 (22:11 +0000)]
Observation of rematerialization.

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

16 years agoAdd some notes about better flag handling.
Chris Lattner [Mon, 10 Sep 2007 21:43:18 +0000 (21:43 +0000)]
Add some notes about better flag handling.

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

16 years agoEmit:
Chris Lattner [Mon, 10 Sep 2007 21:39:07 +0000 (21:39 +0000)]
Emit:

        cmpl    %eax, %ecx
        setae   %al
        movzbl  %al, %eax

instead of:

        cmpl    %eax, %ecx
        setb    %al
        xorb    $1, %al
        movzbl  %al, %eax

when using logical not of a C comparison.

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

16 years agothis is not infinite recursion.
Chris Lattner [Mon, 10 Sep 2007 21:16:23 +0000 (21:16 +0000)]
this is not infinite recursion.

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

16 years ago1. Don't call Value::getName(), which is slow.
Chris Lattner [Mon, 10 Sep 2007 21:15:22 +0000 (21:15 +0000)]
1. Don't call Value::getName(), which is slow.
2. Lower calls to fabs and friends to FABS nodes etc unless the function has
   internal linkage.  Before we wouldn't lower if it had a definition, which
   is incorrect.  This allows us to compile:

define double @fabs(double %f) {
        %tmp2 = tail call double @fabs( double %f )
        ret double %tmp2
}

into:

_fabs:
        fabs f1, f1
        blr

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

16 years agoPrevent tailcallelim from breaking "recursive" calls to builtins.
Chris Lattner [Mon, 10 Sep 2007 20:58:55 +0000 (20:58 +0000)]
Prevent tailcallelim from breaking "recursive" calls to builtins.

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

16 years agoIt's not safe to rematerialize MOV32r0 etc. by simply cloning the original
Evan Cheng [Mon, 10 Sep 2007 20:48:53 +0000 (20:48 +0000)]
It's not safe to rematerialize MOV32r0 etc. by simply cloning the original
instruction. These are implemented with xor which will modify the conditional
code. They should be rematerialized as move instructions.

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

16 years agoFilter exit conditions which are not yet handled.
Devang Patel [Mon, 10 Sep 2007 18:33:42 +0000 (18:33 +0000)]
Filter exit conditions which are not yet handled.

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

16 years agoNew test.
Devang Patel [Mon, 10 Sep 2007 18:12:52 +0000 (18:12 +0000)]
New test.

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

16 years agoRequire SCEV before LCSSA.
Devang Patel [Mon, 10 Sep 2007 18:08:23 +0000 (18:08 +0000)]
Require SCEV before LCSSA.

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

16 years agoRemove an un-needed dependence query. This improves compile time marginally on 401...
Owen Anderson [Sun, 9 Sep 2007 21:43:49 +0000 (21:43 +0000)]
Remove an un-needed dependence query.  This improves compile time marginally on 401.bzip2.

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

16 years agoAdd SparseBitVector implementation
Daniel Berlin [Sun, 9 Sep 2007 01:10:40 +0000 (01:10 +0000)]
Add SparseBitVector implementation

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

16 years agoTurn GVN on by default.
Owen Anderson [Sat, 8 Sep 2007 22:23:52 +0000 (22:23 +0000)]
Turn GVN on by default.

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

16 years agoImplement misaligned FP loads and stores.
Dale Johannesen [Sat, 8 Sep 2007 19:29:23 +0000 (19:29 +0000)]
Implement misaligned FP loads and stores.

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

16 years agoFix description of the call instruction. There are two types, with one being
Nick Lewycky [Sat, 8 Sep 2007 13:57:50 +0000 (13:57 +0000)]
Fix description of the call instruction. There are two types, with one being
optional.

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

16 years agoFix for VisualStudio. It is treating a 2 bit enum as a signed int for comparison...
Chuck Rose III [Sat, 8 Sep 2007 04:17:08 +0000 (04:17 +0000)]
Fix for VisualStudio.  It is treating a 2 bit enum as a signed int for comparison purposes, causing failures.  Using an extra bit fixes it.

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

16 years agoSmarter Reset(). Instead of deallocating all memory regions and reallocate the
Evan Cheng [Sat, 8 Sep 2007 00:02:17 +0000 (00:02 +0000)]
Smarter Reset(). Instead of deallocating all memory regions and reallocate the
first region, just deallocate all but the last region in the list.

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

16 years agoTableGen no longer emit CopyFromReg nodes for implicit results in physical
Evan Cheng [Fri, 7 Sep 2007 23:59:02 +0000 (23:59 +0000)]
TableGen no longer emit CopyFromReg nodes for implicit results in physical
registers. The scheduler is now responsible for emitting them.

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

16 years agoAdd missing index versions of instructions to the map.
Bill Wendling [Fri, 7 Sep 2007 22:01:02 +0000 (22:01 +0000)]
Add missing index versions of instructions to the map.

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

16 years agoAvoid storing and reloading zeros and other constants from stack slots
Dan Gohman [Fri, 7 Sep 2007 21:32:51 +0000 (21:32 +0000)]
Avoid storing and reloading zeros and other constants from stack slots
by flagging the associated instructions as being trivially rematerializable.

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

16 years agoApply feedback from previous patch.
Dale Johannesen [Fri, 7 Sep 2007 21:07:57 +0000 (21:07 +0000)]
Apply feedback from previous patch.

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

16 years agoRevert previous change to IR.
Dale Johannesen [Fri, 7 Sep 2007 18:31:50 +0000 (18:31 +0000)]
Revert previous change to IR.

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

16 years agoAdd support for having different alignment for objects on call frames.
Rafael Espindola [Fri, 7 Sep 2007 14:52:14 +0000 (14:52 +0000)]
Add support for having different alignment for objects on call frames.
The x86-64 ABI states that objects passed on the stack have
8 byte alignment. Implement that.

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

16 years agoSplit eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed...
Anton Korobeynikov [Fri, 7 Sep 2007 11:39:35 +0000 (11:39 +0000)]
Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed, because they just "mark" register
liveins and we let frontend solve type issue, not lowering code :)

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

16 years agoTest for PR1641.
Bill Wendling [Fri, 7 Sep 2007 08:30:09 +0000 (08:30 +0000)]
Test for PR1641.

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

16 years agoDon't zap back to back volatile load/stores
Chris Lattner [Fri, 7 Sep 2007 05:33:03 +0000 (05:33 +0000)]
Don't zap back to back volatile load/stores

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

16 years agoAdd lengthof and endof templates that hide a lot of sizeof computations.
Owen Anderson [Fri, 7 Sep 2007 04:06:50 +0000 (04:06 +0000)]
Add lengthof and endof templates that hide a lot of sizeof computations.
Patch by Sterling Stein!

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

16 years agoConstify to catch bugs.
David Greene [Thu, 6 Sep 2007 19:46:46 +0000 (19:46 +0000)]
Constify to catch bugs.

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

16 years agoNext round of APFloat changes.
Dale Johannesen [Thu, 6 Sep 2007 18:13:44 +0000 (18:13 +0000)]
Next round of APFloat changes.
Use APFloat in UpgradeParser and AsmParser.
Change all references to ConstantFP to use the
APFloat interface rather than double.  Remove
the ConstantFP double interfaces.
Use APFloat functions for constant folding arithmetic
and comparisons.
(There are still way too many places APFloat is
just a wrapper around host float/double, but we're
getting there.)

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

16 years agoProper handle case, when aliasee is external weak symbol referenced only by alias...
Anton Korobeynikov [Thu, 6 Sep 2007 17:21:48 +0000 (17:21 +0000)]
Proper handle case, when aliasee is external weak symbol referenced only by alias itself.
Also, fix a case, when target doesn't have weak symbols supported.

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

16 years agoAdd instruction dump output. This helps find bugs.
David Greene [Thu, 6 Sep 2007 16:36:39 +0000 (16:36 +0000)]
Add instruction dump output.  This helps find bugs.

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

16 years agoPluggable coalescers inplementation.
David Greene [Thu, 6 Sep 2007 16:18:45 +0000 (16:18 +0000)]
Pluggable coalescers inplementation.

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

16 years agoUse isTrueWhenEqual. Thanks Chris!
Nick Lewycky [Thu, 6 Sep 2007 02:40:25 +0000 (02:40 +0000)]
Use isTrueWhenEqual. Thanks Chris!

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

16 years agoWhen the two operands of an icmp are equal, there are five possible predicates
Nick Lewycky [Thu, 6 Sep 2007 01:10:22 +0000 (01:10 +0000)]
When the two operands of an icmp are equal, there are five possible predicates
that would make the icmp true. Fixes PR1637.

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

16 years agoFix a memory leak.
Evan Cheng [Thu, 6 Sep 2007 01:07:24 +0000 (01:07 +0000)]
Fix a memory leak.

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

16 years agoFix a bug in X86InstrInfo::convertToThreeAddress that caused it to codegen:
Evan Cheng [Thu, 6 Sep 2007 00:14:41 +0000 (00:14 +0000)]
Fix a bug in X86InstrInfo::convertToThreeAddress that caused it to codegen:
leal    (,%rcx,8), %rcx
It should be
leal    (,%rcx,8), %ecx

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

16 years agoLVXL and STVXL are also a load and store resp.
Bill Wendling [Wed, 5 Sep 2007 23:47:12 +0000 (23:47 +0000)]
LVXL and STVXL are also a load and store resp.

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

16 years agoAccidentially left this out.
Evan Cheng [Wed, 5 Sep 2007 21:58:18 +0000 (21:58 +0000)]
Accidentially left this out.

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

16 years agoUse pool allocator for all the VNInfo's to improve memory access locality. This reduc...
Evan Cheng [Wed, 5 Sep 2007 21:46:51 +0000 (21:46 +0000)]
Use pool allocator for all the VNInfo's to improve memory access locality. This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks.

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

16 years agoAdded Reset() to free all allocated memory regions and reset state to be the same...
Evan Cheng [Wed, 5 Sep 2007 21:41:34 +0000 (21:41 +0000)]
Added Reset() to free all allocated memory regions and reset state to be the same as right after ctor.

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

16 years agoMissing break. Patch by Wojciech Matyjewicz.
Evan Cheng [Wed, 5 Sep 2007 21:36:14 +0000 (21:36 +0000)]
Missing break. Patch by Wojciech Matyjewicz.

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

16 years agoFix mod so it actually works. Fix conversions to
Dale Johannesen [Wed, 5 Sep 2007 20:39:49 +0000 (20:39 +0000)]
Fix mod so it actually works.  Fix conversions to
native types to handle denormals correctly.

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

16 years agoForgot to obey 80 column rule. Fixing that.
Chuck Rose III [Wed, 5 Sep 2007 20:36:41 +0000 (20:36 +0000)]
Forgot to obey 80 column rule.  Fixing that.

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

16 years agoChange all floating constants that are not exactly
Dale Johannesen [Wed, 5 Sep 2007 17:50:36 +0000 (17:50 +0000)]
Change all floating constants that are not exactly
representable to use hex format.

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

16 years agoAdded default parameters to GetElementPtrInstr constructor call. Visual Studio 2k5...
Chuck Rose III [Wed, 5 Sep 2007 16:54:38 +0000 (16:54 +0000)]
Added default parameters to GetElementPtrInstr constructor call.  Visual Studio 2k5 was getting confused and was unable to compile it.  Suspected compiler error.

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

16 years agoDue to label merging, the last label for an invoke
Duncan Sands [Wed, 5 Sep 2007 14:12:46 +0000 (14:12 +0000)]
Due to label merging, the last label for an invoke
may be the same as the first label for the following
invoke.  Remove a micro-optimization which was wrong
in this case.

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

16 years agoTestcases for PR1628.
Duncan Sands [Wed, 5 Sep 2007 11:53:04 +0000 (11:53 +0000)]
Testcases for PR1628.

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

16 years agoFix PR1628. When exception handling is turned on,
Duncan Sands [Wed, 5 Sep 2007 11:27:52 +0000 (11:27 +0000)]
Fix PR1628.  When exception handling is turned on,
labels are generated bracketing each call (not just
invokes).  This is used to generate entries in
the exception table required by the C++ personality.
However it gets in the way of tail-merging.  This
patch solves the problem by no longer placing labels
around ordinary calls.  Instead we generate entries
in the exception table that cover every instruction
in the function that wasn't covered by an invoke
range (the range given by the labels around the invoke).
As an optimization, such entries are only generated for
parts of the function that contain a call, since for
the moment those are the only instructions that can
throw an exception [1].  As a happy consequence, we
now get a smaller exception table, since the same
region can cover many calls.  While there, I also
implemented folding of invoke ranges - successive
ranges are merged when safe to do so.  Finally, if
a selector contains only a cleanup, there's a special
shorthand for it - place a 0 in the call-site entry.
I implemented this while there.  As a result, the
exception table output (excluding filters) is now
optimal - it cannot be made smaller [2].  The
problem with throw filters is that folding them
optimally is hard, and the benefit of folding them is
minimal.

[1] I tested that having trapping instructions (eg
divide by zero) in such a region doesn't cause trouble.
[2] It could be made smaller with the help of higher
layers, eg by having branch folding reorder basic blocks
ending in invokes with the same landing pad so they
follow each other.  I don't know if this is worth doing.

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

16 years agoAdd the 64-bit versions of the DS* Altivec instructions.
Bill Wendling [Wed, 5 Sep 2007 04:05:20 +0000 (04:05 +0000)]
Add the 64-bit versions of the DS* Altivec instructions.

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

16 years agoEnable loop index split pass.
Devang Patel [Tue, 4 Sep 2007 20:46:58 +0000 (20:46 +0000)]
Enable loop index split pass.

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

16 years agoInsert cloned loop basic blocks before original loop header.
Devang Patel [Tue, 4 Sep 2007 20:46:35 +0000 (20:46 +0000)]
Insert cloned loop basic blocks before original loop header.

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

16 years agoFix for PR1632. EHSELECTION always produces a i32 value.
Evan Cheng [Tue, 4 Sep 2007 20:39:26 +0000 (20:39 +0000)]
Fix for PR1632. EHSELECTION always produces a i32 value.

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