Nick Lewycky
c6edcb8904
Commit the testcase too.
...
llvm-svn: 47988
2008-03-06 06:50:03 +00:00
Nick Lewycky
f249c5d5ad
Don't try to simplify urem and srem using arithmetic rules that don't work
...
under modulo (overflow). Fixes PR1933.
llvm-svn: 47987
2008-03-06 06:48:30 +00:00
Scott Michel
8dd2324903
Refine Cell's i64 constant generation code to cover more constants where the
...
upper and lower 32-bits are the same (in addition to 0 and -1 previously.)
llvm-svn: 47985
2008-03-06 04:02:54 +00:00
Andrew Lenharth
0c26f5bb94
gcc likes things spelled correctly
...
llvm-svn: 47981
2008-03-05 23:41:37 +00:00
Devang Patel
63e7d0fe7d
Skip, for now, callsites where use of sret argument is not dominated by callsite.
...
llvm-svn: 47980
2008-03-05 23:39:23 +00:00
Dale Johannesen
6bcc9808db
Next bit of PPC ByVal handling; call-site code seems
...
correct now.
llvm-svn: 47978
2008-03-05 23:31:27 +00:00
Anton Korobeynikov
b66feb845f
Missed patch from my last commit
...
llvm-svn: 47977
2008-03-05 23:21:39 +00:00
Anton Korobeynikov
d4e00c2d59
Resolve aliases to aliasees, where possible
...
llvm-svn: 47975
2008-03-05 23:08:47 +00:00
Anton Korobeynikov
76b5b2d294
Handle functions as targets during linking of aliases as well
...
llvm-svn: 47974
2008-03-05 23:08:16 +00:00
Scott Michel
c29399e54e
- Fix support for "special" i64 immediates that can be loaded
...
using IL, ILA, et. al. v2i64 and i64 are now supported by
the select bits (SELB) instruction.
- Add missing comparison operations (testcase forthcoming)
- More multiclass refactoring.
llvm-svn: 47973
2008-03-05 23:02:02 +00:00
Scott Michel
3c19a3950c
- Expand tabs to spaces.
...
- select_bits.ll now fully functional now that PR1993 is closed. It was
previously broken by refactoring in SPUInstrInfo.td and using multiclasses.
- Same for eqv.ll
llvm-svn: 47972
2008-03-05 23:00:19 +00:00
Steve Naroff
a93ec57f15
Update vcproj file.
...
llvm-svn: 47969
2008-03-05 22:30:39 +00:00
Anton Korobeynikov
f2f352ec48
Try hard to link aliases. Checks can be too strict by now.
...
llvm-svn: 47968
2008-03-05 22:22:46 +00:00
Evan Cheng
8f5092bea8
Fix a coalescer bug wrt how dead copy interval is shortened.
...
llvm-svn: 47966
2008-03-05 22:09:42 +00:00
Devang Patel
e2c01a6c92
Handle 'ret' with multiple values.
...
llvm-svn: 47965
2008-03-05 21:50:24 +00:00
Andrew Lenharth
52436854a2
test for something more interesting than not crashing
...
llvm-svn: 47962
2008-03-05 20:24:26 +00:00
Andrew Lenharth
7ac03edf8d
sync ops on ptrs, was breaking libgomp
...
llvm-svn: 47960
2008-03-05 19:48:27 +00:00
Daniel Berlin
2a8fd44b9d
Add Hybrid Cycle Detection to Andersen's analysis.
...
Patch by Curtis Dunham.
llvm-svn: 47959
2008-03-05 19:31:47 +00:00
Dale Johannesen
8322b6fb70
Clarify that CALLSEQ_START..END may not be nested,
...
and add some protection against creating such.
llvm-svn: 47957
2008-03-05 19:14:03 +00:00
Scott Michel
15cc6fabaf
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.
llvm-svn: 47950
2008-03-05 17:49:05 +00:00
Chris Lattner
83e0b885f8
evan implemented this.
...
llvm-svn: 47948
2008-03-05 17:11:51 +00:00
Anton Korobeynikov
8302c973b4
Fix test not to emit junk into source directory
...
llvm-svn: 47947
2008-03-05 15:44:25 +00:00
Anton Korobeynikov
d78f82b480
Testcase for PR2054
...
llvm-svn: 47946
2008-03-05 15:43:58 +00:00
Anton Korobeynikov
79f6795ebb
Remember the source->dest mapping when copying aliases. This fixes PR2054
...
llvm-svn: 47945
2008-03-05 15:27:21 +00:00
Anton Korobeynikov
0d90b4596b
Clarify the state-of-the-art
...
llvm-svn: 47944
2008-03-05 15:11:00 +00:00
Bill Wendling
dfa3472e4e
Use AC_PATH_PROG correctly:
...
http://www.gnu.org/software/autoconf/manual/autoconf.html#Generic-Programs
llvm-svn: 47943
2008-03-05 09:28:02 +00:00
Evan Cheng
a36562006a
isTwoAddress = 1 -> Constraints.
...
llvm-svn: 47941
2008-03-05 08:19:16 +00:00
Evan Cheng
6c2bb7c67e
PSLLWri etc. are two-address instructions.
...
llvm-svn: 47940
2008-03-05 08:11:27 +00:00
Chris Lattner
7571a88209
add a note
...
llvm-svn: 47939
2008-03-05 07:22:39 +00:00
Chris Lattner
a9fcb187af
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.
llvm-svn: 47938
2008-03-05 06:48:13 +00:00
Chris Lattner
8e6367195e
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.
llvm-svn: 47937
2008-03-05 06:46:58 +00:00
Evan Cheng
d421708e35
Ignore debugging related instructions if they get this far.
...
llvm-svn: 47934
2008-03-05 02:34:36 +00:00
Evan Cheng
a2939a16de
Rather than asserting. Dump out the MI that we are not able to encode and abort.
...
llvm-svn: 47933
2008-03-05 02:08:03 +00:00
Dan Gohman
4ebf6b3b53
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.
llvm-svn: 47932
2008-03-05 02:07:31 +00:00
Evan Cheng
e0b3c221ab
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.
llvm-svn: 47931
2008-03-05 01:30:59 +00:00
Andrew Lenharth
95c88272c6
64bit CAS on 32bit x86.
...
llvm-svn: 47929
2008-03-05 01:15:49 +00:00
Dan Gohman
b987fe16e4
Codegen support for i128 SINT_TO_FP.
...
llvm-svn: 47928
2008-03-05 01:08:17 +00:00
Evan Cheng
18064ddb5b
Refactor code. Remove duplicated functions that basically do the same thing as
...
findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies.
llvm-svn: 47927
2008-03-05 00:59:57 +00:00
Devang Patel
4ca594a2d7
Skip functions that return multiple values.
...
llvm-svn: 47924
2008-03-05 00:36:59 +00:00
Devang Patel
a97b000dcc
Check struct return type first.
...
llvm-svn: 47922
2008-03-05 00:27:05 +00:00
Bill Wendling
37f5b4586a
Removed spurious EnablePPCRS check.
...
llvm-svn: 47918
2008-03-04 23:27:33 +00:00
Dale Johannesen
86867d323e
Move PPC lowering functions into PPCTargetLowering
...
class (cosmetic). First piece of byval implementation;
this doesn't work yet. No functional change.
llvm-svn: 47917
2008-03-04 23:17:14 +00:00
Bill Wendling
cf70f2c2a0
Use -enable-ppc-regscavenger flag for these checks
...
llvm-svn: 47916
2008-03-04 23:16:26 +00:00
Bill Wendling
dc9de245cb
Use a command-line option to turn register scavenging on/off for PPC.
...
llvm-svn: 47915
2008-03-04 23:13:51 +00:00
Devang Patel
a33f4b4cc7
Print types for all ret operands.
...
llvm-svn: 47911
2008-03-04 22:05:14 +00:00
Devang Patel
844c248410
Use while loop.
...
llvm-svn: 47909
2008-03-04 21:59:49 +00:00
Devang Patel
26d0fac377
Revert SmallVector ctor variants.
...
llvm-svn: 47908
2008-03-04 21:54:56 +00:00
Devang Patel
84e9abbb60
Use cast instead of dyn_cast.
...
Update test to use multiple return value directly, instead of relying on -sretpromotion.
llvm-svn: 47907
2008-03-04 21:45:28 +00:00
Devang Patel
219be17d65
Filter nested structs
...
llvm-svn: 47906
2008-03-04 21:32:09 +00:00
Devang Patel
a14b91d6a3
Handle multiple return values.
...
llvm-svn: 47904
2008-03-04 21:15:15 +00:00