oota-llvm.git
17 years agoNew testcase for PR1047
Chris Lattner [Wed, 13 Dec 2006 04:30:18 +0000 (04:30 +0000)]
New testcase for PR1047

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

17 years agoExpand (f64 extload f32) to (f64 fp_ext (load f32)) if f64 type action is expand.
Evan Cheng [Wed, 13 Dec 2006 03:19:57 +0000 (03:19 +0000)]
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

17 years agoExpand fsqrt, fsin, and fcos to libcalls.
Evan Cheng [Wed, 13 Dec 2006 02:38:13 +0000 (02:38 +0000)]
Expand fsqrt, fsin, and fcos to libcalls.

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

17 years agoAdd #ifdef switch toggle between old and new pass manager. However,
Devang Patel [Wed, 13 Dec 2006 02:36:01 +0000 (02:36 +0000)]
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

17 years agorevert my recent int<->fp and vector union promotion changes, they expose
Chris Lattner [Wed, 13 Dec 2006 02:26:45 +0000 (02:26 +0000)]
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

17 years agoExpand f32 / f64 to i32 / i64 conversion to soft-fp library calls.
Evan Cheng [Wed, 13 Dec 2006 01:57:55 +0000 (01:57 +0000)]
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

17 years agoFix a regression that completely broke make install.
Chris Lattner [Wed, 13 Dec 2006 01:15:18 +0000 (01:15 +0000)]
Fix a regression that completely broke make install.
Instead of installing into /usr/local/bin it would install into /usr/localbin

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

17 years agoReplace CastInst::createInferredCast calls with more accurate cast
Reid Spencer [Wed, 13 Dec 2006 00:50:17 +0000 (00:50 +0000)]
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

17 years agoChange createInferredCast calls to more accurate cast creation calls.
Reid Spencer [Wed, 13 Dec 2006 00:47:58 +0000 (00:47 +0000)]
Change createInferredCast calls to more accurate cast creation calls.

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

17 years agoFunctionPassManager does not support runOnModule().
Devang Patel [Wed, 13 Dec 2006 00:34:32 +0000 (00:34 +0000)]
FunctionPassManager does not support runOnModule().

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

17 years agoMove getAnalysis() and getAnalysisID() definitions from Pass.h to
Devang Patel [Wed, 13 Dec 2006 00:23:44 +0000 (00:23 +0000)]
Move getAnalysis() and getAnalysisID() definitions from Pass.h to
PassAnalysisSupport.h

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

17 years agoImplement PassManager_New destructors.
Devang Patel [Wed, 13 Dec 2006 00:09:23 +0000 (00:09 +0000)]
Implement PassManager_New destructors.

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

17 years agoRemove unused constructor.
Devang Patel [Tue, 12 Dec 2006 23:51:31 +0000 (23:51 +0000)]
Remove unused constructor.

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

17 years agoReplace inferred getCast(V,Ty) calls with more strict variants.
Reid Spencer [Tue, 12 Dec 2006 23:36:14 +0000 (23:36 +0000)]
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

17 years agoAdd routines to dump pass manager queue.
Devang Patel [Tue, 12 Dec 2006 23:34:33 +0000 (23:34 +0000)]
Add routines to dump pass manager queue.

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

17 years agoFunctionPassManager()
Devang Patel [Tue, 12 Dec 2006 23:27:37 +0000 (23:27 +0000)]
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

17 years agoDo not runOnFunction on external functions.
Devang Patel [Tue, 12 Dec 2006 23:15:28 +0000 (23:15 +0000)]
Do not runOnFunction on external functions.

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

17 years agoInitialize AnalysisImpls for each pass before executing the pass.
Devang Patel [Tue, 12 Dec 2006 23:13:09 +0000 (23:13 +0000)]
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

17 years agocollectRequiredAnalysisPasses().
Devang Patel [Tue, 12 Dec 2006 23:09:32 +0000 (23:09 +0000)]
collectRequiredAnalysisPasses().

Include RequiredTrainsitiveSet also.

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

17 years agoremoveNotPreservedAnalysis().
Devang Patel [Tue, 12 Dec 2006 23:07:44 +0000 (23:07 +0000)]
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

17 years agoInitialize activeManager.
Devang Patel [Tue, 12 Dec 2006 22:57:43 +0000 (22:57 +0000)]
Initialize activeManager.

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

17 years agoRemove unused constructor.
Devang Patel [Tue, 12 Dec 2006 22:56:36 +0000 (22:56 +0000)]
Remove unused constructor.

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

17 years agoMaintain ImmutablePasses list at top level only. Do not make them
Devang Patel [Tue, 12 Dec 2006 22:53:40 +0000 (22:53 +0000)]
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

17 years agofindAnalysisPass().
Devang Patel [Tue, 12 Dec 2006 22:50:05 +0000 (22:50 +0000)]
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

17 years agoFix thinko.
Devang Patel [Tue, 12 Dec 2006 22:47:13 +0000 (22:47 +0000)]
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

17 years agoo s/OtherPassManagers/IndirectPassManagers
Devang Patel [Tue, 12 Dec 2006 22:35:25 +0000 (22:35 +0000)]
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

17 years agoInitialize AnalysisImpls for ImmutablePass.
Devang Patel [Tue, 12 Dec 2006 22:21:37 +0000 (22:21 +0000)]
Initialize AnalysisImpls for ImmutablePass.

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

17 years agoExpand FP constant to integers if FP types are not legal.
Evan Cheng [Tue, 12 Dec 2006 22:19:28 +0000 (22:19 +0000)]
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

17 years agoSet top level manager.
Devang Patel [Tue, 12 Dec 2006 22:02:16 +0000 (22:02 +0000)]
Set top level manager.

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

17 years agoSoft fp FNEG, SINT_TO_FP, UINT_TO_FP libcall expansion.
Evan Cheng [Tue, 12 Dec 2006 21:51:17 +0000 (21:51 +0000)]
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

17 years agoExpand ConstantFP to load from CP if float types are being expanded.
Evan Cheng [Tue, 12 Dec 2006 21:32:44 +0000 (21:32 +0000)]
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

17 years agoExpand i32/i64 CopyToReg f32/f64 to BIT_CONVERT + CopyToReg.
Evan Cheng [Tue, 12 Dec 2006 21:21:32 +0000 (21:21 +0000)]
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

17 years agoHonor cpu directive, take two.
Jim Laskey [Tue, 12 Dec 2006 20:57:08 +0000 (20:57 +0000)]
Honor cpu directive, take two.

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

17 years agoIgnore entries with blank names.
Jim Laskey [Tue, 12 Dec 2006 20:55:58 +0000 (20:55 +0000)]
Ignore entries with blank names.

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

17 years ago- When expanding a bit_convert whose src operand is also to be expanded and
Evan Cheng [Tue, 12 Dec 2006 19:53:13 +0000 (19:53 +0000)]
- 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

17 years agoRemove unneeded include.
Jim Laskey [Tue, 12 Dec 2006 19:36:53 +0000 (19:36 +0000)]
Remove unneeded include.

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

17 years agoRollback changes to take a different tack.
Jim Laskey [Tue, 12 Dec 2006 19:26:50 +0000 (19:26 +0000)]
Rollback changes to take a different tack.

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

17 years agothis can be trunc or bitcast, per line 3092.
Chris Lattner [Tue, 12 Dec 2006 19:11:20 +0000 (19:11 +0000)]
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

17 years agoFix regression on 400.perlbench last night.
Chris Lattner [Tue, 12 Dec 2006 18:41:03 +0000 (18:41 +0000)]
Fix regression on 400.perlbench last night.

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

17 years agomore general matching of the MVN instruction
Rafael Espindola [Tue, 12 Dec 2006 17:10:13 +0000 (17:10 +0000)]
more general matching of the MVN instruction

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

17 years agoHonor the command line specification for machine type.
Jim Laskey [Tue, 12 Dec 2006 16:07:33 +0000 (16:07 +0000)]
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

17 years agodon't use "ordinary" addressing mode 1 when mvn is appropriate
Rafael Espindola [Tue, 12 Dec 2006 14:03:29 +0000 (14:03 +0000)]
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

17 years agoReduce number of instructions to load 64-bit constants.
Jim Laskey [Tue, 12 Dec 2006 13:23:43 +0000 (13:23 +0000)]
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

17 years agoFix numerous inferred casts.
Reid Spencer [Tue, 12 Dec 2006 09:18:51 +0000 (09:18 +0000)]
Fix numerous inferred casts.

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

17 years agoGet even more accurate on the casting.
Reid Spencer [Tue, 12 Dec 2006 09:17:50 +0000 (09:17 +0000)]
Get even more accurate on the casting.

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

17 years agoFix the casting for the computation of the Malloc size.
Reid Spencer [Tue, 12 Dec 2006 09:17:08 +0000 (09:17 +0000)]
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

17 years agoExpand formal arguments and call arguments recursively: e.g. f64 -> i64 -> 2 x i32.
Evan Cheng [Tue, 12 Dec 2006 07:27:38 +0000 (07:27 +0000)]
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

17 years agoDon't create usless casts for same-bith-width floating point casts.
Reid Spencer [Tue, 12 Dec 2006 05:38:50 +0000 (05:38 +0000)]
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

17 years agofit in 80 cols
Chris Lattner [Tue, 12 Dec 2006 05:22:21 +0000 (05:22 +0000)]
fit in 80 cols

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

17 years agothis can only be fptrunc.
Chris Lattner [Tue, 12 Dec 2006 05:21:51 +0000 (05:21 +0000)]
this can only be fptrunc.

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

17 years agoThis case isn't needed with recent changes to ConstantInt::get
Chris Lattner [Tue, 12 Dec 2006 05:19:46 +0000 (05:19 +0000)]
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

17 years agosplit up inttoptr from ptrtoint handling, the cases aren't similar at all.
Chris Lattner [Tue, 12 Dec 2006 05:18:19 +0000 (05:18 +0000)]
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

17 years agothe operand of a bitcast is always the right size, just emit it in place.
Chris Lattner [Tue, 12 Dec 2006 05:14:13 +0000 (05:14 +0000)]
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

17 years agoChange inferred getCast into specific getCast. Passes all tests.
Reid Spencer [Tue, 12 Dec 2006 05:05:00 +0000 (05:05 +0000)]
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

17 years agoPatch for PR1045 and Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll
Chris Lattner [Tue, 12 Dec 2006 04:24:41 +0000 (04:24 +0000)]
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

17 years agonew testcase for pr1045
Chris Lattner [Tue, 12 Dec 2006 04:24:17 +0000 (04:24 +0000)]
new testcase for pr1045

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

17 years agoRevert Nate's patch to fix X86/store-fp-constant.ll. With the dag combiner
Chris Lattner [Tue, 12 Dec 2006 04:18:56 +0000 (04:18 +0000)]
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

17 years agomake this code more aggressive about turning store fpimm into store int imm.
Chris Lattner [Tue, 12 Dec 2006 04:16:14 +0000 (04:16 +0000)]
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

17 years agoThis should check for darwin literal sections as well.
Chris Lattner [Tue, 12 Dec 2006 03:59:46 +0000 (03:59 +0000)]
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

17 years agoteach scev to analyze X*4|1 like X*4+c. This allows us to produce:
Chris Lattner [Tue, 12 Dec 2006 02:26:09 +0000 (02:26 +0000)]
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

17 years agoTidy up a bit.
Reid Spencer [Tue, 12 Dec 2006 01:32:02 +0000 (01:32 +0000)]
Tidy up a bit.

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

17 years agoGenerate the correct cast opcode for constant expressions.
Reid Spencer [Tue, 12 Dec 2006 01:31:37 +0000 (01:31 +0000)]
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

17 years agoChange inferred cast creation calls to more specific cast creations.
Reid Spencer [Tue, 12 Dec 2006 01:17:41 +0000 (01:17 +0000)]
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

17 years agouse MVN to handle small negative constants
Rafael Espindola [Tue, 12 Dec 2006 01:03:11 +0000 (01:03 +0000)]
use MVN to handle small negative constants

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

17 years agoDon't bother upgrading this.
Reid Spencer [Tue, 12 Dec 2006 00:53:31 +0000 (00:53 +0000)]
Don't bother upgrading this.

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

17 years agoImplement getIntegerCast and getFPCast for ConstantExpr. These are similar
Reid Spencer [Tue, 12 Dec 2006 00:51:07 +0000 (00:51 +0000)]
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

17 years agoImplement createIntegerCast and createFPCast factory methods for handling
Reid Spencer [Tue, 12 Dec 2006 00:49:44 +0000 (00:49 +0000)]
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

17 years agoFix PR1040:
Reid Spencer [Tue, 12 Dec 2006 00:43:38 +0000 (00:43 +0000)]
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

17 years agoadd mvn
Rafael Espindola [Tue, 12 Dec 2006 00:37:38 +0000 (00:37 +0000)]
add mvn

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

17 years agoFix the BitCastUnion type for 32-bit targets.
Reid Spencer [Tue, 12 Dec 2006 00:11:08 +0000 (00:11 +0000)]
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

17 years agoadd note
Rafael Espindola [Mon, 11 Dec 2006 23:56:10 +0000 (23:56 +0000)]
add note

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

17 years agoAnother step forward in PPC64 JIT support: we now no-longer need stubs
Chris Lattner [Mon, 11 Dec 2006 23:22:45 +0000 (23:22 +0000)]
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

17 years agoCreate the cast constant expression that was read instead of attempting
Reid Spencer [Mon, 11 Dec 2006 23:20:20 +0000 (23:20 +0000)]
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

17 years agoTest case for ensuring correct reading back of cast constant expressions.
Reid Spencer [Mon, 11 Dec 2006 23:19:53 +0000 (23:19 +0000)]
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

17 years agogetInstrItineraryData shouldn't copy the itineraries
Chris Lattner [Mon, 11 Dec 2006 21:42:55 +0000 (21:42 +0000)]
getInstrItineraryData shouldn't copy the itineraries

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

17 years agoFix constant folding of FP->int due to cut & paste error in last commit.
Reid Spencer [Mon, 11 Dec 2006 21:27:28 +0000 (21:27 +0000)]
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

17 years agoAdd a test for constant folding of bitcast to/from floating point.
Reid Spencer [Mon, 11 Dec 2006 21:25:10 +0000 (21:25 +0000)]
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

17 years agoProvide a test for int<->float and long<->double bitcasts.
Reid Spencer [Mon, 11 Dec 2006 20:40:28 +0000 (20:40 +0000)]
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

17 years agoImplement correct bitcast of int<->float and long<->double by using a
Reid Spencer [Mon, 11 Dec 2006 20:39:15 +0000 (20:39 +0000)]
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

17 years agoRe-apply changes that were backed out and fix a naughty typo.
Evan Cheng [Mon, 11 Dec 2006 19:27:14 +0000 (19:27 +0000)]
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

17 years agoIt seems the llvm::OStream class does not handle stream manipulators.
John Criswell [Mon, 11 Dec 2006 19:15:36 +0000 (19:15 +0000)]
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

17 years agoRevert changes that broke oggenc on ppc
Chris Lattner [Mon, 11 Dec 2006 18:53:38 +0000 (18:53 +0000)]
Revert changes that broke oggenc on ppc

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

17 years agoMissing opcode.
Jim Laskey [Mon, 11 Dec 2006 18:45:56 +0000 (18:45 +0000)]
Missing opcode.

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

17 years agoImplement correct constant folding of bitcast. This implements
Chris Lattner [Mon, 11 Dec 2006 18:30:27 +0000 (18:30 +0000)]
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

17 years agoconstant folding of bitcast is broken.
Chris Lattner [Mon, 11 Dec 2006 18:29:07 +0000 (18:29 +0000)]
constant folding of bitcast is broken.

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

17 years agoLayout proper frame for ppc64.
Jim Laskey [Mon, 11 Dec 2006 18:10:54 +0000 (18:10 +0000)]
Layout proper frame for ppc64.

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

17 years agoProvide a script that can track down which optimization pass causes
Reid Spencer [Mon, 11 Dec 2006 17:42:12 +0000 (17:42 +0000)]
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

17 years agoDon't convert store double C, Ptr to store long C, Ptr if i64 is not a legal type.
Evan Cheng [Mon, 11 Dec 2006 17:25:19 +0000 (17:25 +0000)]
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

17 years agof32 / f64 node is expanded to one i32 / i64 node.
Evan Cheng [Mon, 11 Dec 2006 06:50:04 +0000 (06:50 +0000)]
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

17 years agoClean up some bad code.
Evan Cheng [Mon, 11 Dec 2006 06:25:26 +0000 (06:25 +0000)]
Clean up some bad code.

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

17 years agoMove something that should be in the dag combiner from the legalizer to the
Nate Begeman [Mon, 11 Dec 2006 02:23:46 +0000 (02:23 +0000)]
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

17 years agoProperly mangles symbol table names
Nate Begeman [Mon, 11 Dec 2006 02:20:45 +0000 (02:20 +0000)]
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

17 years agoAdd a default relocation type, and allow clients to set the ConstantVal
Nate Begeman [Mon, 11 Dec 2006 02:19:29 +0000 (02:19 +0000)]
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

17 years agofix typo
Chris Lattner [Mon, 11 Dec 2006 02:16:58 +0000 (02:16 +0000)]
fix typo

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

17 years agoUpdate note, with the SROA change, we now produce:
Chris Lattner [Mon, 11 Dec 2006 01:20:25 +0000 (01:20 +0000)]
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

17 years agotrunc to integer, not to FP.
Chris Lattner [Mon, 11 Dec 2006 01:17:00 +0000 (01:17 +0000)]
trunc to integer, not to FP.

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

17 years agothe xform is done by scalarrepl not the code generator.
Chris Lattner [Mon, 11 Dec 2006 01:03:32 +0000 (01:03 +0000)]
the xform is done by scalarrepl not the code generator.

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

17 years agothis is done
Chris Lattner [Mon, 11 Dec 2006 01:01:03 +0000 (01:01 +0000)]
this is done

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

17 years agoEvan implemented the machineinstr improvements.
Chris Lattner [Mon, 11 Dec 2006 00:44:03 +0000 (00:44 +0000)]
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

17 years agoimplement promotion of unions containing two packed types of the same width.
Chris Lattner [Mon, 11 Dec 2006 00:35:08 +0000 (00:35 +0000)]
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