Evan Cheng
d4fd650c5f
Allow promoted FP_TO_UINT / FP_TO_SINT to expand operand.
...
llvm-svn: 32621
2006-12-16 02:10:30 +00:00
Evan Cheng
b0292a750a
Expand fabs / fneg to and / xor.
...
llvm-svn: 32619
2006-12-16 00:52:40 +00:00
Jeff Cohen
03161dd132
An even better unbreakage...
...
llvm-svn: 32617
2006-12-15 22:57:14 +00:00
Evan Cheng
ea9ab75427
Fix select_cc, select expansion to soft-fp bugs.
...
llvm-svn: 32616
2006-12-15 22:42:55 +00:00
Jim Laskey
0809c79c60
This code was usurping the sextload expand in teh legalizer. Just make
...
sure the right conditions are checked.
llvm-svn: 32611
2006-12-15 21:38:30 +00:00
Chris Lattner
3e789e232f
silence a bogus warning
...
llvm-svn: 32597
2006-12-15 07:36:19 +00:00
Evan Cheng
a221cb0b2c
Minor clean up.
...
llvm-svn: 32593
2006-12-15 06:41:01 +00:00
Evan Cheng
4e661ebef9
Expand FP compares to soft-fp call(s)
...
llvm-svn: 32590
2006-12-15 02:59:56 +00:00
Jim Laskey
19b276f67f
1. Tidy up jump table info.
...
2. Allow the jit to handle PIC relocable jump tables.
llvm-svn: 32581
2006-12-14 19:17:33 +00:00
Evan Cheng
2f7cae1f57
Fix a long-standing spiller bug:
...
If a spillslot value is available in a register, and there is a noop copy that
targets that register, the spiller correctly decide not to invalidate the
spillslot register.
However, even though the noop copy does not clobbers the value. It does start a
new intersecting live range. That means the spillslot register is available for
use but should not be reused for a two-address instruction modref operand which
would clobber the new live range.
When we remove the noop copy, update the available information by clearing the
canClobber bit.
llvm-svn: 32576
2006-12-14 07:54:05 +00:00
Evan Cheng
10389e802b
More soft-fp work.
...
llvm-svn: 32559
2006-12-13 20:57:08 +00:00
Evan Cheng
e200668366
Expand (f64 extload f32) to (f64 fp_ext (load f32)) if f64 type action is expand.
...
llvm-svn: 32527
2006-12-13 03:19:57 +00:00
Evan Cheng
d5d848048f
Expand fsqrt, fsin, and fcos to libcalls.
...
llvm-svn: 32526
2006-12-13 02:38:13 +00:00
Evan Cheng
f72f8a7730
Expand f32 / f64 to i32 / i64 conversion to soft-fp library calls.
...
llvm-svn: 32523
2006-12-13 01:57:55 +00:00
Reid Spencer
50702907eb
Replace CastInst::createInferredCast calls with more accurate cast
...
creation calls.
llvm-svn: 32521
2006-12-13 00:50:17 +00:00
Evan Cheng
3e6cc1641c
Expand FP constant to integers if FP types are not legal.
...
llvm-svn: 32497
2006-12-12 22:19:28 +00:00
Evan Cheng
aefab1a7c1
Soft fp FNEG, SINT_TO_FP, UINT_TO_FP libcall expansion.
...
llvm-svn: 32495
2006-12-12 21:51:17 +00:00
Evan Cheng
8a830bc4a1
Expand ConstantFP to load from CP if float types are being expanded.
...
llvm-svn: 32494
2006-12-12 21:32:44 +00:00
Evan Cheng
061d636b7a
Expand i32/i64 CopyToReg f32/f64 to BIT_CONVERT + CopyToReg.
...
llvm-svn: 32493
2006-12-12 21:21:32 +00:00
Evan Cheng
75b41e03f6
- When expanding a bit_convert whose src operand is also to be expanded and
...
its expansion result type is equal to the result type of the bit_convert,
e.g. (i64 bit_convert (f64 op)) if FP is not legal
returns the result of the expanded source operand.
- Store f32 / f64 may be expanded to a single store i32/i64.
llvm-svn: 32490
2006-12-12 19:53:13 +00:00
Evan Cheng
df11bd2186
Expand formal arguments and call arguments recursively: e.g. f64 -> i64 -> 2 x i32.
...
llvm-svn: 32476
2006-12-12 07:27:38 +00:00
Chris Lattner
ddb1fa5291
fit in 80 cols
...
llvm-svn: 32474
2006-12-12 05:22:21 +00:00
Chris Lattner
0405309282
this can only be fptrunc.
...
llvm-svn: 32473
2006-12-12 05:21:51 +00:00
Chris Lattner
0b46ffb643
This case isn't needed with recent changes to ConstantInt::get
...
llvm-svn: 32472
2006-12-12 05:19:46 +00:00
Chris Lattner
0ecfce975c
split up inttoptr from ptrtoint handling, the cases aren't similar at all.
...
llvm-svn: 32471
2006-12-12 05:18:19 +00:00
Chris Lattner
4c064bcc3e
the operand of a bitcast is always the right size, just emit it in place.
...
llvm-svn: 32470
2006-12-12 05:14:13 +00:00
Chris Lattner
0fd9c58f6a
Revert Nate's patch to fix X86/store-fp-constant.ll. With the dag combiner
...
and legalizer separated like they currently are, I don't see a way to handle
this xform.
llvm-svn: 32466
2006-12-12 04:18:56 +00:00
Chris Lattner
df2345fcbe
make this code more aggressive about turning store fpimm into store int imm.
...
This is not sufficient to fix X86/store-fp-constant.ll
llvm-svn: 32465
2006-12-12 04:16:14 +00:00
Reid Spencer
5af6b6baf1
Tidy up a bit.
...
llvm-svn: 32462
2006-12-12 01:32:02 +00:00
Reid Spencer
5bc563a190
Change inferred cast creation calls to more specific cast creations.
...
llvm-svn: 32460
2006-12-12 01:17:41 +00:00
Evan Cheng
e182862c91
Re-apply changes that were backed out and fix a naughty typo.
...
llvm-svn: 32442
2006-12-11 19:27:14 +00:00
John Criswell
d5817b08f5
It seems the llvm::OStream class does not handle stream manipulators.
...
For now, just grab the stream and perform the output on it directly.
llvm-svn: 32441
2006-12-11 19:15:36 +00:00
Chris Lattner
7124b0d561
Revert changes that broke oggenc on ppc
...
llvm-svn: 32440
2006-12-11 18:53:38 +00:00
Evan Cheng
93c75d4cfb
Don't convert store double C, Ptr to store long C, Ptr if i64 is not a legal type.
...
llvm-svn: 32434
2006-12-11 17:25:19 +00:00
Evan Cheng
4eebfee858
f32 / f64 node is expanded to one i32 / i64 node.
...
llvm-svn: 32433
2006-12-11 06:50:04 +00:00
Evan Cheng
44f9ec68ab
Clean up some bad code.
...
llvm-svn: 32432
2006-12-11 06:25:26 +00:00
Nate Begeman
2566f75e7a
Move something that should be in the dag combiner from the legalizer to the
...
dag combiner.
llvm-svn: 32431
2006-12-11 02:23:46 +00:00
Nate Begeman
b1b1aaa4e5
Properly mangles symbol table names
...
Supports constant pools
Supports relocations to jump tables
Supports relocations within the data segment (global = address of global)
Allocates memory in a non-hacky for all non-code objects.
llvm-svn: 32430
2006-12-11 02:20:45 +00:00
Anton Korobeynikov
e76b69846d
Cleaned setjmp/longjmp lowering interfaces. Now we're producing right
...
code (both asm & cbe) for Mingw32 target.
Removed autoconf checks for underscored versions of setjmp/longjmp.
llvm-svn: 32415
2006-12-10 23:12:42 +00:00
Evan Cheng
a366d082b5
Preliminary soft float support.
...
llvm-svn: 32394
2006-12-09 02:42:38 +00:00
Evan Cheng
88a55bdd64
Move findTiedToSrcOperand to TargetInstrDescriptor.
...
llvm-svn: 32366
2006-12-08 18:45:48 +00:00
Evan Cheng
6f02378443
Proper fix for PR1037: to determine is a VR is a modref, check 1) whether it is
...
tied to another oeprand, 2) whether is is being tied to by another operand. So
the destination operand of a two-address MI can be correctly identified.
llvm-svn: 32354
2006-12-08 08:02:34 +00:00
Evan Cheng
79bcfb0e11
findTiedToSrcOperand() changed.
...
llvm-svn: 32353
2006-12-08 07:59:51 +00:00
Chris Lattner
db346e68a9
Fix CodeGen/PowerPC/2006-12-07-SelectCrash.ll on PPC64
...
llvm-svn: 32336
2006-12-07 22:36:47 +00:00
Bill Wendling
4d1444725b
Removed more <iostream> includes
...
llvm-svn: 32321
2006-12-07 20:28:15 +00:00
Bill Wendling
23b8b13c9d
Removing even more <iostream> includes.
...
llvm-svn: 32320
2006-12-07 20:04:42 +00:00
Reid Spencer
cfce6d2ee4
Revision 1.83 causes PR1037.
...
Reverted.
llvm-svn: 32305
2006-12-07 16:21:19 +00:00
Evan Cheng
b5a57532b0
Initialize {Min|Max}CSFrameIndex properly.
...
llvm-svn: 32299
2006-12-07 02:25:34 +00:00
Bill Wendling
a3246c4272
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
...
now cerr, cout, and NullStream resp.
llvm-svn: 32298
2006-12-07 01:30:32 +00:00
Evan Cheng
f4788fe306
MI keeps a ptr of TargetInstrDescriptor, use it.
...
llvm-svn: 32296
2006-12-07 01:21:59 +00:00