Jim Laskey [Wed, 13 Dec 2006 17:49:24 +0000 (17:49 +0000)]
Update version in safe guards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32546
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Dec 2006 17:42:40 +0000 (17:42 +0000)]
xfail these until I recommit the scalarrepl patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32545
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 13 Dec 2006 17:19:09 +0000 (17:19 +0000)]
Implement review feedback. Most of this has to do with removing unnecessary
cast instructions. A few are bug fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32544
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 13 Dec 2006 17:02:04 +0000 (17:02 +0000)]
Remove DSA tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32543
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 13 Dec 2006 16:54:24 +0000 (16:54 +0000)]
Remove DSA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32542
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 13 Dec 2006 08:33:33 +0000 (08:33 +0000)]
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
Reid Spencer [Wed, 13 Dec 2006 08:27:15 +0000 (08:27 +0000)]
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
Reid Spencer [Wed, 13 Dec 2006 08:10:16 +0000 (08:10 +0000)]
Ressurrect this needed file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32537
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 13 Dec 2006 08:09:48 +0000 (08:09 +0000)]
Ressurrect the Stacker "st" configuration. Someday this will all go
away, but until then Stacker needs its configuration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32536
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 13 Dec 2006 08:06:42 +0000 (08:06 +0000)]
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
Reid Spencer [Wed, 13 Dec 2006 08:04:32 +0000 (08:04 +0000)]
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
Reid Spencer [Wed, 13 Dec 2006 08:03:25 +0000 (08:03 +0000)]
Update for llvm-gcc4 build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32533
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 13 Dec 2006 06:12:35 +0000 (06:12 +0000)]
Update comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32532
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 13 Dec 2006 06:09:03 +0000 (06:09 +0000)]
Update comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32531
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Dec 2006 04:45:46 +0000 (04:45 +0000)]
only check non-external functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32530
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Dec 2006 04:30:37 +0000 (04:30 +0000)]
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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