Evan Cheng
b15974a65c
Expand formal arguments and call arguments recursively: e.g. f64 -> i64 -> 2 x i32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32476 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 07:27:38 +00:00
Reid Spencer
f25212a223
Don't create usless casts for same-bith-width floating point casts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32475 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 05:38:50 +00:00
Chris Lattner
f0094839f0
fit in 80 cols
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32474 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 05:22:21 +00:00
Chris Lattner
d9e06a5d03
this can only be fptrunc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32473 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 05:21:51 +00:00
Chris Lattner
3bb7e3f3ba
This case isn't needed with recent changes to ConstantInt::get
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32472 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 05:19:46 +00:00
Chris Lattner
ddc9401991
split up inttoptr from ptrtoint handling, the cases aren't similar at all.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32471 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 05:18:19 +00:00
Chris Lattner
cb0a681989
the operand of a bitcast is always the right size, just emit it in place.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32470 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 05:14:13 +00:00
Reid Spencer
4da49122f3
Change inferred getCast into specific getCast. Passes all tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32469 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 05:05:00 +00:00
Chris Lattner
a30fc5ed04
Patch for PR1045 and Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32468 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 04:24:41 +00:00
Chris Lattner
bcb56d8104
new testcase for pr1045
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32467 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 04:24:17 +00:00
Chris Lattner
d93d46ee7e
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32466 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 04:18:56 +00:00
Chris Lattner
62be1a71f4
make this code more aggressive about turning store fpimm into store int imm.
...
This is not sufficient to fix X86/store-fp-constant.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32465 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 04:16:14 +00:00
Chris Lattner
d7626a82e6
This should check for darwin literal sections as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32464 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 03:59:46 +00:00
Chris Lattner
a17f03980f
teach scev to analyze X*4|1 like X*4+c. This allows us to produce:
...
LBB1_1: #bb
movdqa (%esi), %xmm2
movaps %xmm2, %xmm3
punpcklbw %xmm0, %xmm3
movaps %xmm3, %xmm4
punpcklwd %xmm0, %xmm4
cvtdq2ps %xmm4, %xmm4
mulps %xmm1, %xmm4
movaps %xmm4, (%edi)
leal 1(,%eax,4), %ebx
shll $4, %ebx
punpckhwd %xmm0, %xmm3
cvtdq2ps %xmm3, %xmm3
mulps %xmm1, %xmm3
movaps %xmm3, (%edx,%ebx)
leal 2(,%eax,4), %ebx
shll $4, %ebx
punpckhbw %xmm0, %xmm2
movaps %xmm2, %xmm3
punpcklwd %xmm0, %xmm3
cvtdq2ps %xmm3, %xmm3
mulps %xmm1, %xmm3
movaps %xmm3, (%edx,%ebx)
leal 3(,%eax,4), %ebx
shll $4, %ebx
punpckhwd %xmm0, %xmm2
cvtdq2ps %xmm2, %xmm2
mulps %xmm1, %xmm2
movaps %xmm2, (%edx,%ebx)
addl $64, %edi
incl %eax
addl $16, %esi
cmpl %ecx, %eax
jne LBB1_1 #bb
instead of:
LBB1_1: #bb
movdqa (%esi), %xmm2
movaps %xmm2, %xmm3
punpcklbw %xmm0, %xmm3
movaps %xmm3, %xmm4
punpcklwd %xmm0, %xmm4
cvtdq2ps %xmm4, %xmm4
mulps %xmm1, %xmm4
movaps %xmm4, (%edi)
leal 1(,%eax,4), %ebx
shll $4, %ebx
punpckhwd %xmm0, %xmm3
cvtdq2ps %xmm3, %xmm3
mulps %xmm1, %xmm3
movaps %xmm3, (%edx,%ebx)
leal 2(,%eax,4), %ebx
shll $4, %ebx
punpckhbw %xmm0, %xmm2
movaps %xmm2, %xmm3
punpcklwd %xmm0, %xmm3
cvtdq2ps %xmm3, %xmm3
mulps %xmm1, %xmm3
movaps %xmm3, (%edx,%ebx)
leal 3(,%eax,4), %ebx
shll $4, %ebx
punpckhwd %xmm0, %xmm2
cvtdq2ps %xmm2, %xmm2
mulps %xmm1, %xmm2
movaps %xmm2, (%edx,%ebx)
addl $64, %edi
incl %eax
addl $16, %esi
cmpl %ecx, %eax
jne LBB1_1 #bb
for a testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32463 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 02:26:09 +00:00
Reid Spencer
86b89e5529
Tidy up a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32462 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 01:32:02 +00:00
Reid Spencer
b0e9f722da
Generate the correct cast opcode for constant expressions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32461 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 01:31:37 +00:00
Reid Spencer
15f46d6c28
Change inferred cast creation calls to more specific cast creations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32460 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 01:17:41 +00:00
Rafael Espindola
f64945d83c
use MVN to handle small negative constants
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32459 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 01:03:11 +00:00
Reid Spencer
12375467b2
Don't bother upgrading this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32458 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 00:53:31 +00:00
Reid Spencer
84f3eab017
Implement getIntegerCast and getFPCast for ConstantExpr. These are similar
...
to the createIntegerCast and createFPCast for CastInst instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32457 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 00:51:07 +00:00
Reid Spencer
6d81a7d2ae
Implement createIntegerCast and createFPCast factory methods for handling
...
integer and floating point cast creation. createIntegerCast generates
ZExt/SExt, BitCast or Trunc. createFPCast generates FPExt, Bitcast, or
FPTrunc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32456 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 00:49:44 +00:00
Reid Spencer
4fbcdf61e8
Fix PR1040:
...
Don't rebuild llvm-config if none of the library dependencies changed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32455 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 00:43:38 +00:00
Rafael Espindola
450856d01b
add mvn
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32454 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 00:37:38 +00:00
Reid Spencer
22b36fb7eb
Fix the BitCastUnion type for 32-bit targets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32453 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 00:11:08 +00:00
Rafael Espindola
4dfab986ab
add note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32452 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 23:56:10 +00:00
Chris Lattner
57fc62c8d2
Another step forward in PPC64 JIT support: we now no-longer need stubs
...
emitted for external globals in PPC64-JIT-PIC mode (which is good because
we didn't handle them before!).
This also fixes a bug handling the picbase delta, which we would get wrong
in some cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32451 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 23:22:45 +00:00
Reid Spencer
a77fa7edbf
Create the cast constant expression that was read instead of attempting
...
to infer the cast from its operand and type. This fixes:
test/Regression/Bytecode/2006-12-11-Cast-ConstExpr.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32450 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 23:20:20 +00:00
Reid Spencer
1565491af2
Test case for ensuring correct reading back of cast constant expressions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32449 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 23:19:53 +00:00
Chris Lattner
442b9a6981
getInstrItineraryData shouldn't copy the itineraries
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32448 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 21:42:55 +00:00
Reid Spencer
8c4fed50e3
Fix constant folding of FP->int due to cut & paste error in last commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32447 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 21:27:28 +00:00
Reid Spencer
6a126513fc
Add a test for constant folding of bitcast to/from floating point.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32446 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 21:25:10 +00:00
Reid Spencer
711679e21c
Provide a test for int<->float and long<->double bitcasts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32445 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 20:40:28 +00:00
Reid Spencer
555a0b189c
Implement correct bitcast of int<->float and long<->double by using a
...
union to perform the bitcast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32444 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 20:39:15 +00:00
Evan Cheng
13acce3ef0
Re-apply changes that were backed out and fix a naughty typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32442 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 19:27:14 +00:00
John Criswell
2381f6f6c6
It seems the llvm::OStream class does not handle stream manipulators.
...
For now, just grab the stream and perform the output on it directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32441 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 19:15:36 +00:00
Chris Lattner
70a24b3141
Revert changes that broke oggenc on ppc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32440 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 18:53:38 +00:00
Jim Laskey
2060a822fe
Missing opcode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32439 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 18:45:56 +00:00
Chris Lattner
14f440aae7
Implement correct constant folding of bitcast. This implements
...
Transforms/ConstProp/bitcast.ll and fixes
SingleSource/Regression/C/2003-10-12-GlobalVarInitializers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32438 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 18:30:27 +00:00
Chris Lattner
4ed4ac34c3
constant folding of bitcast is broken.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32437 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 18:29:07 +00:00
Jim Laskey
18e2f4433e
Layout proper frame for ppc64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32436 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 18:10:54 +00:00
Reid Spencer
33c9683865
Provide a script that can track down which optimization pass causes
...
different code to be produced between two llvm builds that differe slightly.
This is useful in tracking down mis-optimization bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32435 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 17:42:12 +00:00
Evan Cheng
25ece66ff3
Don't convert store double C, Ptr to store long C, Ptr if i64 is not a legal type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32434 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 17:25:19 +00:00
Evan Cheng
bbf1e5e2e9
f32 / f64 node is expanded to one i32 / i64 node.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32433 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 06:50:04 +00:00
Evan Cheng
b618230231
Clean up some bad code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32432 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 06:25:26 +00:00
Nate Begeman
2cbba89347
Move something that should be in the dag combiner from the legalizer to the
...
dag combiner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32431 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 02:23:46 +00:00
Nate Begeman
bfaaaa6e0f
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32430 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 02:20:45 +00:00
Nate Begeman
5381baa051
Add a default relocation type, and allow clients to set the ConstantVal
...
field after creation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32429 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 02:19:29 +00:00
Chris Lattner
36c2451ddb
fix typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32428 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 02:16:58 +00:00
Chris Lattner
9f09fa2900
Update note, with the SROA change, we now produce:
...
_pairtest:
movl 8(%esp), %eax
movl 4(%esp), %ecx
movd %eax, %xmm0
movd %ecx, %xmm1
addss %xmm0, %xmm1
movl 12(%esp), %eax
movss %xmm1, (%eax)
ret
instead of:
_pairtest:
subl $12, %esp
movl 20(%esp), %eax
movl %eax, 4(%esp)
movl 16(%esp), %eax
movl %eax, (%esp)
movss (%esp), %xmm0
addss 4(%esp), %xmm0
movl 24(%esp), %eax
movss %xmm0, (%eax)
addl $12, %esp
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32427 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 01:20:25 +00:00
Chris Lattner
509f85140c
trunc to integer, not to FP.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32426 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 01:17:00 +00:00