oota-llvm.git
16 years agoUpdate vcproj file.
Steve Naroff [Wed, 5 Mar 2008 22:30:39 +0000 (22:30 +0000)]
Update vcproj file.

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

16 years agoTry hard to link aliases. Checks can be too strict by now.
Anton Korobeynikov [Wed, 5 Mar 2008 22:22:46 +0000 (22:22 +0000)]
Try hard to link aliases. Checks can be too strict by now.

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

16 years agoFix a coalescer bug wrt how dead copy interval is shortened.
Evan Cheng [Wed, 5 Mar 2008 22:09:42 +0000 (22:09 +0000)]
Fix a coalescer bug wrt how dead copy interval is shortened.

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

16 years agoHandle 'ret' with multiple values.
Devang Patel [Wed, 5 Mar 2008 21:50:24 +0000 (21:50 +0000)]
Handle 'ret' with multiple values.

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

16 years agotest for something more interesting than not crashing
Andrew Lenharth [Wed, 5 Mar 2008 20:24:26 +0000 (20:24 +0000)]
test for something more interesting than not crashing

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

16 years agosync ops on ptrs, was breaking libgomp
Andrew Lenharth [Wed, 5 Mar 2008 19:48:27 +0000 (19:48 +0000)]
sync ops on ptrs, was breaking libgomp

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

16 years agoAdd Hybrid Cycle Detection to Andersen's analysis.
Daniel Berlin [Wed, 5 Mar 2008 19:31:47 +0000 (19:31 +0000)]
Add Hybrid Cycle Detection to Andersen's analysis.
Patch by Curtis Dunham.

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

16 years agoClarify that CALLSEQ_START..END may not be nested,
Dale Johannesen [Wed, 5 Mar 2008 19:14:03 +0000 (19:14 +0000)]
Clarify that CALLSEQ_START..END may not be nested,
and add some protection against creating such.

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

16 years agoThis patch fixes a problem encountered by the CellSPU backend where variants
Scott Michel [Wed, 5 Mar 2008 17:49:05 +0000 (17:49 +0000)]
This patch fixes a problem encountered by the CellSPU backend where variants
were being pruned in patterns where a variable was used more than once, e.g.:

  (or (and R32C:$rA, R32C:$rC), (and R32C:$rB, (not R32C:$rC)))

In this example, $rC is used more than once and is actually significant to
instruction selection pattern matching when commuted variants are produced.
This patch scans the pattern's clauses and collects the variables, creating
a set of variables that are used more than once. TreePatternNode::isIsomorphicTo()
also understands that multiply-used variables are significant.

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

16 years agoevan implemented this.
Chris Lattner [Wed, 5 Mar 2008 17:11:51 +0000 (17:11 +0000)]
evan implemented this.

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

16 years agoFix test not to emit junk into source directory
Anton Korobeynikov [Wed, 5 Mar 2008 15:44:25 +0000 (15:44 +0000)]
Fix test not to emit junk into source directory

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

16 years agoTestcase for PR2054
Anton Korobeynikov [Wed, 5 Mar 2008 15:43:58 +0000 (15:43 +0000)]
Testcase for PR2054

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

16 years agoRemember the source->dest mapping when copying aliases. This fixes PR2054
Anton Korobeynikov [Wed, 5 Mar 2008 15:27:21 +0000 (15:27 +0000)]
Remember the source->dest mapping when copying aliases. This fixes PR2054

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

16 years agoClarify the state-of-the-art
Anton Korobeynikov [Wed, 5 Mar 2008 15:11:00 +0000 (15:11 +0000)]
Clarify the state-of-the-art

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

16 years agoUse AC_PATH_PROG correctly:
Bill Wendling [Wed, 5 Mar 2008 09:28:02 +0000 (09:28 +0000)]
Use AC_PATH_PROG correctly:

    http://www.gnu.org/software/autoconf/manual/autoconf.html#Generic-Programs

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

16 years agoisTwoAddress = 1 -> Constraints.
Evan Cheng [Wed, 5 Mar 2008 08:19:16 +0000 (08:19 +0000)]
isTwoAddress = 1 -> Constraints.

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

16 years agoPSLLWri etc. are two-address instructions.
Evan Cheng [Wed, 5 Mar 2008 08:11:27 +0000 (08:11 +0000)]
PSLLWri etc. are two-address instructions.

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

16 years agoadd a note
Chris Lattner [Wed, 5 Mar 2008 07:22:39 +0000 (07:22 +0000)]
add a note

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

16 years agoGeneralize FP constant shrinking optimization to apply to any vt
Chris Lattner [Wed, 5 Mar 2008 06:48:13 +0000 (06:48 +0000)]
Generalize FP constant shrinking optimization to apply to any vt
except ppc long double.  This allows us to shrink constant pool
entries for x86 long double constants, which in turn allows us to
use flds/fldl instead of fldt.

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

16 years agoImprove comment, pass in the original VT so that we can shrink a long double constant
Chris Lattner [Wed, 5 Mar 2008 06:46:58 +0000 (06:46 +0000)]
Improve comment, pass in the original VT so that we can shrink a long double constant
all the way to float, not stopping at double.

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

16 years agoIgnore debugging related instructions if they get this far.
Evan Cheng [Wed, 5 Mar 2008 02:34:36 +0000 (02:34 +0000)]
Ignore debugging related instructions if they get this far.

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

16 years agoRather than asserting. Dump out the MI that we are not able to encode and abort.
Evan Cheng [Wed, 5 Mar 2008 02:08:03 +0000 (02:08 +0000)]
Rather than asserting. Dump out the MI that we are not able to encode and abort.

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

16 years agoCodegen support for i128 UINT_TO_FP. This just fixes a
Dan Gohman [Wed, 5 Mar 2008 02:07:31 +0000 (02:07 +0000)]
Codegen support for i128 UINT_TO_FP. This just fixes a
bug in r47928 (Int64Ty is the correct type for the constant
pool entry here) and removes the asserts, now that the code
is capable of handling i128.

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

16 years agoAdd a target lowering hook to control whether it's worthwhile to compress fp constant.
Evan Cheng [Wed, 5 Mar 2008 01:30:59 +0000 (01:30 +0000)]
Add a target lowering hook to control whether it's worthwhile to compress fp constant.
For x86, if sse2 is available, it's not a good idea since cvtss2sd is slower than a movsd load and it prevents load folding. On x87, it's important to shrink fp constant since fldt is very expensive.

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

16 years ago64bit CAS on 32bit x86.
Andrew Lenharth [Wed, 5 Mar 2008 01:15:49 +0000 (01:15 +0000)]
64bit CAS on 32bit x86.

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

16 years agoCodegen support for i128 SINT_TO_FP.
Dan Gohman [Wed, 5 Mar 2008 01:08:17 +0000 (01:08 +0000)]
Codegen support for i128 SINT_TO_FP.

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

16 years agoRefactor code. Remove duplicated functions that basically do the same thing as
Evan Cheng [Wed, 5 Mar 2008 00:59:57 +0000 (00:59 +0000)]
Refactor code. Remove duplicated functions that basically do the same thing as
findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies.

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

16 years agoSkip functions that return multiple values.
Devang Patel [Wed, 5 Mar 2008 00:36:59 +0000 (00:36 +0000)]
Skip functions that return multiple values.

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

16 years agoCheck struct return type first.
Devang Patel [Wed, 5 Mar 2008 00:27:05 +0000 (00:27 +0000)]
Check struct return type first.

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

16 years agoRemoved spurious EnablePPCRS check.
Bill Wendling [Tue, 4 Mar 2008 23:27:33 +0000 (23:27 +0000)]
Removed spurious EnablePPCRS check.

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

16 years agoMove PPC lowering functions into PPCTargetLowering
Dale Johannesen [Tue, 4 Mar 2008 23:17:14 +0000 (23:17 +0000)]
Move PPC lowering functions into PPCTargetLowering
class (cosmetic).  First piece of byval implementation;
this doesn't work yet.  No functional change.

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

16 years agoUse -enable-ppc-regscavenger flag for these checks
Bill Wendling [Tue, 4 Mar 2008 23:16:26 +0000 (23:16 +0000)]
Use -enable-ppc-regscavenger flag for these checks

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

16 years agoUse a command-line option to turn register scavenging on/off for PPC.
Bill Wendling [Tue, 4 Mar 2008 23:13:51 +0000 (23:13 +0000)]
Use a command-line option to turn register scavenging on/off for PPC.

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

16 years agoPrint types for all ret operands.
Devang Patel [Tue, 4 Mar 2008 22:05:14 +0000 (22:05 +0000)]
Print types for all ret operands.

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

16 years agoUse while loop.
Devang Patel [Tue, 4 Mar 2008 21:59:49 +0000 (21:59 +0000)]
Use while loop.

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

16 years agoRevert SmallVector ctor variants.
Devang Patel [Tue, 4 Mar 2008 21:54:56 +0000 (21:54 +0000)]
Revert SmallVector ctor variants.

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

16 years agoUse cast instead of dyn_cast.
Devang Patel [Tue, 4 Mar 2008 21:45:28 +0000 (21:45 +0000)]
Use cast instead of dyn_cast.
Update test to use multiple return value directly, instead of relying on -sretpromotion.

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

16 years agoFilter nested structs
Devang Patel [Tue, 4 Mar 2008 21:32:09 +0000 (21:32 +0000)]
Filter nested structs

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

16 years agoHandle multiple return values.
Devang Patel [Tue, 4 Mar 2008 21:15:15 +0000 (21:15 +0000)]
Handle multiple return values.

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

16 years agox86-64 atomics
Andrew Lenharth [Tue, 4 Mar 2008 21:13:33 +0000 (21:13 +0000)]
x86-64 atomics

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

16 years agoProperly populate lists of defined/undefined symbols in presence of aliases
Anton Korobeynikov [Tue, 4 Mar 2008 20:16:11 +0000 (20:16 +0000)]
Properly populate lists of defined/undefined symbols in presence of aliases

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

16 years agoAdd alias with non-external aliasee to the list of exported symbols of the library.
Anton Korobeynikov [Tue, 4 Mar 2008 20:15:35 +0000 (20:15 +0000)]
Add alias with non-external aliasee to the list of exported symbols of the library.

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

16 years agoUse appropriate index to get the result value.
Devang Patel [Tue, 4 Mar 2008 19:22:54 +0000 (19:22 +0000)]
Use appropriate index to get the result value.

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

16 years agoSkip sret attribute while preparing attribute list for
Devang Patel [Tue, 4 Mar 2008 19:12:58 +0000 (19:12 +0000)]
Skip sret attribute while preparing attribute list for
new function and new call sites.

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

16 years agoAdd FunctionType ctor variant that takes SmallVector params.
Devang Patel [Tue, 4 Mar 2008 18:57:05 +0000 (18:57 +0000)]
Add FunctionType ctor variant that takes SmallVector params.

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

16 years agoIncrement counter that keeps track of total number of sret promoted.
Devang Patel [Tue, 4 Mar 2008 17:48:11 +0000 (17:48 +0000)]
Increment counter that keeps track of total number of sret promoted.

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

16 years agoSkip declarations.
Devang Patel [Tue, 4 Mar 2008 17:47:06 +0000 (17:47 +0000)]
Skip declarations.

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

16 years agoProcess externally visible functions also. Later on code generator will do the right...
Devang Patel [Tue, 4 Mar 2008 17:46:26 +0000 (17:46 +0000)]
Process externally visible functions also. Later on code generator will do the right thing.

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

16 years agoCollect statistics.
Devang Patel [Tue, 4 Mar 2008 17:44:37 +0000 (17:44 +0000)]
Collect statistics.

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

16 years agoFix a typo noticed by Erick Tryzelaar,
Gordon Henriksen [Tue, 4 Mar 2008 14:52:05 +0000 (14:52 +0000)]
Fix a typo noticed by Erick Tryzelaar,

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

16 years agoSome improvements related to the computation of heights, depths of SUnits.
Roman Levenstein [Tue, 4 Mar 2008 11:19:43 +0000 (11:19 +0000)]
Some improvements related to the computation of heights, depths of SUnits.

The basic idea is that all these algorithms are computing the longest paths from the root node or to the exit node. Therefore the existing implementation that uses and iterative and potentially
exponential algorithm was changed to a well-known graph algorithm based on dynamic programming. It has a linear run-time.

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

16 years agoRefactor ExpandConstantFP so it can optimize load from constpool of types larger...
Evan Cheng [Tue, 4 Mar 2008 08:05:30 +0000 (08:05 +0000)]
Refactor ExpandConstantFP so it can optimize load from constpool of types larger than f64 into extload from smaller types.

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

16 years agoReally fix the test.
Evan Cheng [Tue, 4 Mar 2008 08:01:56 +0000 (08:01 +0000)]
Really fix the test.

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

16 years agoFix broken test.
Evan Cheng [Tue, 4 Mar 2008 07:59:13 +0000 (07:59 +0000)]
Fix broken test.

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

16 years ago80 column violations.
Evan Cheng [Tue, 4 Mar 2008 03:20:06 +0000 (03:20 +0000)]
80 column violations.

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

16 years agoFix 80 column violations.
Evan Cheng [Tue, 4 Mar 2008 03:19:19 +0000 (03:19 +0000)]
Fix 80 column violations.

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

16 years agoDid I say 'e = getNumOperands()'? I meant --e, of course.
Bill Wendling [Tue, 4 Mar 2008 00:48:15 +0000 (00:48 +0000)]
Did I say 'e = getNumOperands()'? I meant --e, of course.

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

16 years agoAdd PR1501 test case.
Evan Cheng [Tue, 4 Mar 2008 00:47:45 +0000 (00:47 +0000)]
Add PR1501 test case.

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

16 years agoRename isOperand() to isOperandOf() (and other similar methods). It always confuses me.
Evan Cheng [Tue, 4 Mar 2008 00:41:45 +0000 (00:41 +0000)]
Rename isOperand() to isOperandOf() (and other similar methods). It always confuses me.

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

16 years agoRemove -always-fold-and-in-test.
Evan Cheng [Tue, 4 Mar 2008 00:40:35 +0000 (00:40 +0000)]
Remove -always-fold-and-in-test.

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

16 years agoMiscellaneous clean-ups based on Evan's feedback:
Bill Wendling [Mon, 3 Mar 2008 23:57:28 +0000 (23:57 +0000)]
Miscellaneous clean-ups based on Evan's feedback:

- Cleaned up how the prologue-epilogue inserter loops over the instructions.
- Instead of restarting the processing of an instruction if we remove an
  implicit kill, just update the end iterator and make sure that the iterator
  isn't incremented.

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

16 years agoMisc. APInt-ification in the DAGCombiner.
Dan Gohman [Mon, 3 Mar 2008 23:51:38 +0000 (23:51 +0000)]
Misc. APInt-ification in the DAGCombiner.

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

16 years agoMore APInt-ification.
Dan Gohman [Mon, 3 Mar 2008 23:35:36 +0000 (23:35 +0000)]
More APInt-ification.

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

16 years agoYet more APInt-ification.
Dan Gohman [Mon, 3 Mar 2008 22:37:52 +0000 (22:37 +0000)]
Yet more APInt-ification.

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

16 years agoMore APInt-ification.
Dan Gohman [Mon, 3 Mar 2008 22:22:56 +0000 (22:22 +0000)]
More APInt-ification.

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

16 years agoAdd support for lowering i64 SRA_PARTS and friends on x86-64.
Dan Gohman [Mon, 3 Mar 2008 22:22:09 +0000 (22:22 +0000)]
Add support for lowering i64 SRA_PARTS and friends on x86-64.

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

16 years agoMore APInt-ification.
Dan Gohman [Mon, 3 Mar 2008 22:20:46 +0000 (22:20 +0000)]
More APInt-ification.

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

16 years agoThis is the initial check-in for adding register scavenging to PPC. (Currently,
Bill Wendling [Mon, 3 Mar 2008 22:19:16 +0000 (22:19 +0000)]
This is the initial check-in for adding register scavenging to PPC. (Currently,
PPC-64 doesn't work.) This also lowers the spilling of the CR registers so that
it uses a register other than the default R0 register (the scavenger scrounges
for one). A significant part of this patch fixes how kill information is
handled.

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

16 years agoGo through the machine instruction's operands to make sure that we're not
Bill Wendling [Mon, 3 Mar 2008 22:14:33 +0000 (22:14 +0000)]
Go through the machine instruction's operands to make sure that we're not
marking both a super- and sub-register as "killed". This removes implicit uses
that are marked as "killed".

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

16 years agoMake the register scavenger update the bookkeeping values for sub/super
Bill Wendling [Mon, 3 Mar 2008 22:12:25 +0000 (22:12 +0000)]
Make the register scavenger update the bookkeeping values for sub/super
registers.

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

16 years agoMultiple instructions can be inserted when eliminating frame indexes. We need
Bill Wendling [Mon, 3 Mar 2008 22:11:16 +0000 (22:11 +0000)]
Multiple instructions can be inserted when eliminating frame indexes. We need
the register scavenger to process all of those new instructions instead of just
the last one inserted.

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

16 years agonew testcase
Chris Lattner [Mon, 3 Mar 2008 21:59:00 +0000 (21:59 +0000)]
new testcase

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

16 years agos/isReturnStruct()/hasStructRetAttr()/g
Devang Patel [Mon, 3 Mar 2008 21:46:28 +0000 (21:46 +0000)]
s/isReturnStruct()/hasStructRetAttr()/g

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

16 years agoregenerate.
Devang Patel [Mon, 3 Mar 2008 18:58:47 +0000 (18:58 +0000)]
regenerate.

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

16 years agoIf a function uses multive values in ret instruction then it
Devang Patel [Mon, 3 Mar 2008 18:58:16 +0000 (18:58 +0000)]
If a function uses multive values in ret instruction then it
is returning a struct value.

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

16 years agoPreserve paramater attributes.
Devang Patel [Mon, 3 Mar 2008 18:36:03 +0000 (18:36 +0000)]
Preserve paramater attributes.

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

16 years agoRenable lto2 build.
Tanya Lattner [Mon, 3 Mar 2008 17:32:40 +0000 (17:32 +0000)]
Renable lto2 build.

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

16 years agoStub out a Path::GetMainExecutable call to find the path to the
Chris Lattner [Mon, 3 Mar 2008 02:55:43 +0000 (02:55 +0000)]
Stub out a Path::GetMainExecutable call to find the path to the
main executable of a program.  This needs to be implemented on windows.

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

16 years agoanother random note
Chris Lattner [Sun, 2 Mar 2008 19:29:42 +0000 (19:29 +0000)]
another random note

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

16 years agoadd a note
Chris Lattner [Sun, 2 Mar 2008 19:27:34 +0000 (19:27 +0000)]
add a note

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

16 years agoEvan implemented these.
Chris Lattner [Sun, 2 Mar 2008 18:05:14 +0000 (18:05 +0000)]
Evan implemented these.

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

16 years agoEvan implemented this.
Chris Lattner [Sun, 2 Mar 2008 17:56:29 +0000 (17:56 +0000)]
Evan implemented this.

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

16 years agoadd a testcase for misc vector stuff
Chris Lattner [Sun, 2 Mar 2008 08:57:59 +0000 (08:57 +0000)]
add a testcase for misc vector stuff

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

16 years agoadd support for lvsl, fixing PR1481
Chris Lattner [Sun, 2 Mar 2008 08:54:27 +0000 (08:54 +0000)]
add support for lvsl, fixing PR1481

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

16 years agoadd support for the sse.cmp.* intrinsics, which fixes sse.isamax with the CBE.
Chris Lattner [Sun, 2 Mar 2008 08:47:13 +0000 (08:47 +0000)]
add support for the sse.cmp.* intrinsics, which fixes sse.isamax with the CBE.

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

16 years agorefactor intrinsic handling code out into its own method.
Chris Lattner [Sun, 2 Mar 2008 08:29:41 +0000 (08:29 +0000)]
refactor intrinsic handling code out into its own method.

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

16 years agofix printing of undef vectors, this fixes "simple" and "build" in UnitTests/Vector.
Chris Lattner [Sun, 2 Mar 2008 08:14:45 +0000 (08:14 +0000)]
fix printing of undef vectors, this fixes "simple" and "build" in UnitTests/Vector.
Now they all pass.

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

16 years agoinsertelement got the wrong operands.
Chris Lattner [Sun, 2 Mar 2008 08:10:16 +0000 (08:10 +0000)]
insertelement got the wrong operands.

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

16 years agoSeveral changes:
Chris Lattner [Sun, 2 Mar 2008 08:07:24 +0000 (08:07 +0000)]
Several changes:
  * Simplify handling of byval, making it easier to understand and more
    consistent.  This fixes PR2065.
  * Clean up and simplify handling of GEPs.  I can actually understand it now!
  * Implement support for GEP'ing into vectors, this fixes
    SingleSource/UnitTests/Vector/build2 among others.

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

16 years agosuppress extra -install_name on Tiger. The 10.4 tools don't support it. Fix whitespace.
Nick Kledzik [Sun, 2 Mar 2008 06:33:06 +0000 (06:33 +0000)]
suppress extra -install_name on Tiger.  The 10.4 tools don't support it.  Fix whitespace.

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

16 years agoFix a bug I introduced in constant array and constant vector handling.
Chris Lattner [Sun, 2 Mar 2008 05:46:57 +0000 (05:46 +0000)]
Fix a bug I introduced in constant array and constant vector handling.

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

16 years agoimplement shufflevector.
Chris Lattner [Sun, 2 Mar 2008 05:41:07 +0000 (05:41 +0000)]
implement shufflevector.

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

16 years agomake operand accessors const-correct
Chris Lattner [Sun, 2 Mar 2008 05:32:05 +0000 (05:32 +0000)]
make operand accessors const-correct

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

16 years agoAdd a new ShuffleVectorInst::getMaskValue method.
Chris Lattner [Sun, 2 Mar 2008 05:28:33 +0000 (05:28 +0000)]
Add a new ShuffleVectorInst::getMaskValue method.

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

16 years agoimplement extractelement.
Chris Lattner [Sun, 2 Mar 2008 03:57:08 +0000 (03:57 +0000)]
implement extractelement.

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

16 years agoimplement insertelement.
Chris Lattner [Sun, 2 Mar 2008 03:52:39 +0000 (03:52 +0000)]
implement insertelement.

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

16 years agorespect isSigned for vector types, fixing sdiv of vectors etc.
Chris Lattner [Sun, 2 Mar 2008 03:41:23 +0000 (03:41 +0000)]
respect isSigned for vector types, fixing sdiv of vectors etc.

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

16 years agoprint the attribute in the right place, this fixes function returning vectors.
Chris Lattner [Sun, 2 Mar 2008 03:39:43 +0000 (03:39 +0000)]
print the attribute in the right place, this fixes function returning vectors.

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

16 years agoOops, can't unwind to the entry block (entry block may have no preds).
Nick Lewycky [Sun, 2 Mar 2008 03:34:55 +0000 (03:34 +0000)]
Oops, can't unwind to the entry block (entry block may have no preds).

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

16 years agovector types are simple types. This fixes div/rem of vectors.
Chris Lattner [Sun, 2 Mar 2008 03:33:31 +0000 (03:33 +0000)]
vector types are simple types.  This fixes div/rem of vectors.

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