Reid Spencer
21a55c9f08
For mul transforms, when checking for a cast from bool as either operand,
...
make sure to also check that it is a zext from bool, not any other cast
operation type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32539 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 08:33:33 +00:00
Reid Spencer
5ae9cebef5
Fix and/or/xor (cast A), (cast B) --> cast (and/or/xor A, B)
...
The cast patch introduced the possibility that the wrong cast opcode
could be used and that this transform could trigger on different kinds
of cast operations. This patch rectifies that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32538 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 08:27:15 +00:00
Reid Spencer
3ba68b9eef
Change the interface to SCEVExpander::InsertCastOfTo to take a cast opcode
...
so the decision of which opcode to use is pushed upward to the caller.
Adjust the callers to pass the expected opcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32535 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 08:06:42 +00:00
Reid Spencer
dccd9fe161
Fix some casts. isdigit(c) returns 0 or 1, not 0 or -1
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32534 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 08:04:32 +00:00
Chris Lattner
4d17caadbc
only check non-external functions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32530 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 04:45:46 +00:00
Chris Lattner
41af719526
Reject attempts to define intrinsics. This fixes PR1047 and
...
Regression/Verifier/2006-12-12-IntrinsicDefine.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32529 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 04:30:37 +00:00
Evan Cheng
548f611bae
Expand (f64 extload f32) to (f64 fp_ext (load f32)) if f64 type action is expand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32527 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 03:19:57 +00:00
Evan Cheng
98ff3b979a
Expand fsqrt, fsin, and fcos to libcalls.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32526 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 02:38:13 +00:00
Devang Patel
3162691f69
Add #ifdef switch toggle between old and new pass manager. However,
...
continue to use old pass manager at the moment. To use new manager
remove #define USE_OLD_PASSMANAGER 1 from Pass.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32525 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 02:36:01 +00:00
Chris Lattner
21c362d324
revert my recent int<->fp and vector union promotion changes, they expose
...
obscure bugs affecting the X86 code generator. I will reenable this
when fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32524 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 02:26:45 +00:00
Evan Cheng
6af00d588c
Expand f32 / f64 to i32 / i64 conversion to soft-fp library calls.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32523 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 01:57:55 +00:00
Reid Spencer
7b06bd532d
Replace CastInst::createInferredCast calls with more accurate cast
...
creation calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32521 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 00:50:17 +00:00
Devang Patel
2db3a3bed7
FunctionPassManager does not support runOnModule().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32519 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 00:34:32 +00:00
Devang Patel
37a6f7966c
Implement PassManager_New destructors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32517 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-13 00:09:23 +00:00
Devang Patel
d4ea4ef541
Remove unused constructor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32516 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 23:51:31 +00:00
Reid Spencer
d977d8651a
Replace inferred getCast(V,Ty) calls with more strict variants.
...
Rename getZeroExtend and getSignExtend to getZExt and getSExt to match
the the casting mnemonics in the rest of LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32514 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 23:36:14 +00:00
Devang Patel
ebc0922eeb
Add routines to dump pass manager queue.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32513 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 23:34:33 +00:00
Devang Patel
b920bd85ad
FunctionPassManager()
...
Set AnalysisResolver_New and add FPM to PassManagers list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32512 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 23:27:37 +00:00
Devang Patel
1fbe2c9964
Do not runOnFunction on external functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32510 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 23:15:28 +00:00
Devang Patel
41545fd663
Initialize AnalysisImpls for each pass before executing the pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32509 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 23:13:09 +00:00
Devang Patel
27aaab2bd3
collectRequiredAnalysisPasses().
...
Include RequiredTrainsitiveSet also.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32508 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 23:09:32 +00:00
Devang Patel
54e247d2d0
removeNotPreservedAnalysis().
...
Do not remove ImmutablePass from the list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32507 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 23:07:44 +00:00
Devang Patel
395ed73984
Initialize activeManager.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32506 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 22:57:43 +00:00
Devang Patel
1e1008a52e
Remove unused constructor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32505 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 22:56:36 +00:00
Devang Patel
a5f9d556b7
Maintain ImmutablePasses list at top level only. Do not make them
...
directly available to individual managers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32504 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 22:53:40 +00:00
Devang Patel
d0fa16c336
findAnalysisPass().
...
First search all available passes before searching ImmutablePasses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32503 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 22:50:05 +00:00
Devang Patel
7e601a70fc
Fix thinko.
...
While searching for a analysis in a pass manager, do not search it into
pass manager's manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32501 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 22:47:13 +00:00
Devang Patel
1b8d015066
o s/OtherPassManagers/IndirectPassManagers
...
o Make IndirectPassManagers vector of PMDataManager *
o Move PMTopLevelManager implementation below all class declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32499 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 22:35:25 +00:00
Devang Patel
689c683bcc
Initialize AnalysisImpls for ImmutablePass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32498 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 22:21:37 +00:00
Evan Cheng
279101eb1a
Expand FP constant to integers if FP types are not legal.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32497 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 22:19:28 +00:00
Devang Patel
dff33ef8e8
Set top level manager.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32496 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 22:02:16 +00:00
Evan Cheng
5c9ce1893a
Soft fp FNEG, SINT_TO_FP, UINT_TO_FP libcall expansion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32495 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 21:51:17 +00:00
Evan Cheng
004952140f
Expand ConstantFP to load from CP if float types are being expanded.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32494 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 21:32:44 +00:00
Evan Cheng
0ca67332fa
Expand i32/i64 CopyToReg f32/f64 to BIT_CONVERT + CopyToReg.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32493 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 21:21:32 +00:00
Jim Laskey
c35010d3a4
Honor cpu directive, take two.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32492 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 20:57:08 +00:00
Evan Cheng
7b2b5c846c
- 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32490 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 19:53:13 +00:00
Jim Laskey
9a7dfa3fd4
Rollback changes to take a different tack.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32488 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 19:26:50 +00:00
Chris Lattner
bb4e7b2fa4
this can be trunc or bitcast, per line 3092.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32487 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 19:11:20 +00:00
Chris Lattner
078b631ff3
Fix regression on 400.perlbench last night.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32486 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 18:41:03 +00:00
Rafael Espindola
a898ce687a
more general matching of the MVN instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32484 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 17:10:13 +00:00
Jim Laskey
55a7ec33d7
Honor the command line specification for machine type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32483 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 16:07:33 +00:00
Rafael Espindola
2426775c81
don't use "ordinary" addressing mode 1 when mvn is appropriate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32482 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 14:03:29 +00:00
Jim Laskey
78f97f3118
Reduce number of instructions to load 64-bit constants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32481 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 13:23:43 +00:00
Reid Spencer
17212df0ee
Fix numerous inferred casts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32479 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 09:18:51 +00:00
Reid Spencer
b6ba3e6d85
Get even more accurate on the casting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32478 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 09:17:50 +00:00
Reid Spencer
daa8e3c263
Fix the casting for the computation of the Malloc size.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32477 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 09:17:08 +00:00
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
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
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
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
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
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
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
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
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
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
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
Chris Lattner
b4115ac8f3
this is done
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32424 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 01:01:03 +00:00
Chris Lattner
a5546fbd10
Evan implemented the machineinstr improvements.
...
The rot example works if the type is cast to ubyte.
Move sroa examples together and upgrade them to HEAD syntax.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32423 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 00:44:03 +00:00
Chris Lattner
1dbea1598c
implement promotion of unions containing two packed types of the same width.
...
This implements Transforms/ScalarRepl/union-packed.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32422 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 00:35:08 +00:00
Chris Lattner
82e8a8ffe4
clarify some comments, simplify some checks, fix:
...
Regression/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32420 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 00:12:31 +00:00
Chris Lattner
ae6a305094
* Eliminate calls to CastInst::createInferredCast.
...
* Add support for promoting unions with fp values in them. This produces
our new int<->fp bitcast instructions, implementing
Transforms/ScalarRepl/union-fp-int.ll
As an example, this allows us to compile this:
union intfloat { int i; float f; };
float invsqrt(const float arg_x) {
union intfloat x = { .f = arg_x };
const float xhalf = arg_x * 0.5f;
x.i = 0x5f3759df - (x.i >> 1);
return x.f * (1.5f - xhalf * x.f * x.f);
}
into:
_invsqrt:
movss 4(%esp), %xmm0
movd %xmm0, %eax
sarl %eax
movl $1597463007, %ecx
subl %eax, %ecx
movd %ecx, %xmm1
mulss LCPI1_0, %xmm0
mulss %xmm1, %xmm0
movss LCPI1_1, %xmm2
mulss %xmm1, %xmm0
subss %xmm0, %xmm2
movl 8(%esp), %eax
mulss %xmm2, %xmm1
movss %xmm1, (%eax)
ret
instead of:
_invsqrt:
subl $4, %esp
movss 8(%esp), %xmm0
movss %xmm0, (%esp)
movl (%esp), %eax
movl $1597463007, %ecx
sarl %eax
subl %eax, %ecx
movl %ecx, (%esp)
mulss LCPI1_0, %xmm0
movss (%esp), %xmm1
mulss %xmm1, %xmm0
mulss %xmm1, %xmm0
movss LCPI1_1, %xmm2
subss %xmm0, %xmm2
mulss %xmm2, %xmm1
movl 12(%esp), %eax
movss %xmm1, (%eax)
addl $4, %esp
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32418 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-10 23:56:50 +00:00
Anton Korobeynikov
d27a258d2d
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32415 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-10 23:12:42 +00:00
Jim Laskey
0eadd73bd7
Reverting until finding the cause of secondary bugs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32413 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-10 13:09:42 +00:00
Jim Laskey
630def54f4
__PPC64CompilationCallback code was allowing registers to be clobbered by stub.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32412 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-10 12:13:31 +00:00
Chris Lattner
87f28e87d7
fix PR1039 by making timing info be destroyed by llvm_shutdown, not by
...
static dtors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32411 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-10 07:40:46 +00:00
Rafael Espindola
796cbd87b4
.align is in bits
...
.comm is in bytes
:-(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32408 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-10 02:53:14 +00:00
Rafael Espindola
3e69a7e527
fix test/Regression/CodeGen/X86/weak.ll
...
if a variable has no initialization, I->getInitializer() will fail
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32407 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-09 23:14:08 +00:00
Evan Cheng
1a8f1fe676
Preliminary soft float support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32394 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-09 02:42:38 +00:00
Evan Cheng
c9ab2f39ce
Added option -soft-float to generate SW fp library calls instead of fp instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32393 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-09 02:41:30 +00:00
Devang Patel
298feadd7a
Analysis resolver now manages AnalysisImpls for the given patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32389 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-09 01:11:34 +00:00
Devang Patel
5b640e7edc
Top level pass manager keeps track of other managers, so this can be
...
removed now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32388 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-09 00:09:12 +00:00