Commit Graph

28696 Commits

Author SHA1 Message Date
Reid Spencer 8dabca4118 Clean up ConstantFoldCastInstruction.
llvm-svn: 32672
2006-12-19 07:41:40 +00:00
Reid Spencer f5fc34ad09 Rewrite ConstantFoldCastInstruction so that it doesn't use any of the
ConstRules. Remove the casting rules from ConstRules and subclasses. This
cleans up ConstantFolding significantly. Passes all tests.

llvm-svn: 32671
2006-12-19 03:15:47 +00:00
Reid Spencer 56fd357f5e Back out last revision, a bit premature, its not an upgrade-only change.
llvm-svn: 32670
2006-12-19 02:17:23 +00:00
Reid Spencer 60ea16cd6d For PR950:
Upgrade this test in preparation for the SETCC patch.

llvm-svn: 32669
2006-12-19 02:14:08 +00:00
Reid Spencer 2fff0acab4 For PR950:
These tests need to be upgraded in preparation for the SETCC patch.

llvm-svn: 32668
2006-12-19 02:09:20 +00:00
Reid Spencer fe0cda3de8 This test needs to be upgraded in preparation for the SETCC patch.
llvm-svn: 32667
2006-12-19 02:07:11 +00:00
Reid Spencer c136005f32 This test needs to be upgraded.
llvm-svn: 32666
2006-12-19 02:03:04 +00:00
Evan Cheng 9ad6edf2ec May need to promote the operand (either sign_extend_inreg or and) before
expanding a {s|u}int_to_fp.

llvm-svn: 32665
2006-12-19 01:44:04 +00:00
Reid Spencer b799e77547 Correct the description of ConstantInt::isValueValidForType.
llvm-svn: 32664
2006-12-19 01:34:39 +00:00
Reid Spencer e733472221 Make ConstantInt not care about sign any more. To ensure the AsmParser can
still check the validity of signed values an overload to isValueValidForType
was added to allow passing in an int64_t to check.

llvm-svn: 32663
2006-12-19 01:28:19 +00:00
Chris Lattner 0a1e99317e Fix a bug in GetConstantFactor for affine expressions, in which the existing
code was wrong for things like 3+4*i.

llvm-svn: 32662
2006-12-19 01:16:02 +00:00
Chris Lattner c1b828c78d Doxgenate comments.
Add GreatestCommonDivisor64

llvm-svn: 32661
2006-12-19 01:11:32 +00:00
Reid Spencer 8b5cd5f710 Remove a useless statement.
llvm-svn: 32660
2006-12-18 23:40:19 +00:00
Evan Cheng adc80f98cf LegalizeSetCCOperands() may end up inserting libcalls. They need to be
properly serialized. Do not clear LastCallSEQ_END until that is done.

llvm-svn: 32659
2006-12-18 22:55:34 +00:00
Bill Wendling 21be92d260 Removed llvm_ostream and used std::ostream instead.
llvm-svn: 32658
2006-12-18 21:59:00 +00:00
Reid Spencer 77cc7edf3e For PR1042:
Fix a thinko. We want to check the second case if the first cast *didn't*
trigger.

llvm-svn: 32657
2006-12-18 21:56:29 +00:00
Rafael Espindola 3ab9256d19 macros -> Inline functions
Lauros's patch

llvm-svn: 32656
2006-12-18 11:07:09 +00:00
Reid Spencer e45ac2ab11 Remove the createInferredCast methods now that their last uses have been
removed. All casting is now explicit and not inferred by VMCore.

llvm-svn: 32655
2006-12-18 08:52:59 +00:00
Reid Spencer 668d90f289 Convert the last uses of CastInst::createInferredCast to a normal cast
creation. These changes are still temporary but at least this pushes
knowledge of signedness out closer to where it can be determined properly
and allows signedness to be removed from VMCore.

llvm-svn: 32654
2006-12-18 08:47:13 +00:00
Reid Spencer 4800c38a75 Remove the two-argument (inferred cast) form of ConstantExpr::getCast now
that its last uses have been removed.

llvm-svn: 32653
2006-12-18 08:18:46 +00:00
Reid Spencer b83593e3ea Convert the last use of two-argument ConstantExpr::getCast into another
form so we can remove that method from ConstantExpr.

llvm-svn: 32652
2006-12-18 08:16:27 +00:00
Reid Spencer cf0c82f5fa Remove a call to Type::isSigned().
llvm-svn: 32651
2006-12-18 07:58:01 +00:00
Reid Spencer db6b6fb916 Revert last patch. ConstantInt isn't quite ready for signlessness.
llvm-svn: 32650
2006-12-18 04:22:56 +00:00
Reid Spencer a4044f35f4 Determine if the -enable-pic option was given.
llvm-svn: 32649
2006-12-18 04:11:16 +00:00
Rafael Espindola d7998d0e6d move ExtWeakSymbols to AsmPrinter
llvm-svn: 32648
2006-12-18 03:37:18 +00:00
Reid Spencer 0e60d55519 Add a couple little tests for SExt/ZExt of constants of a sign that doesn't
match.

llvm-svn: 32647
2006-12-18 01:11:46 +00:00
Reid Spencer 776311e000 Remove the last use of getUnsignedVersion and getSignedVersion from VMCore.
ConstantInt doesn't care about the sign of the type it represents. It only
cares about the bitwidth so there is no need to make the sign of the type
match the SExt or ZExt constant expression.

llvm-svn: 32646
2006-12-18 01:11:03 +00:00
Reid Spencer f5165ac0d1 Remove some clutter and make it keep going instead of stopping at the
first difference.

llvm-svn: 32645
2006-12-18 00:37:37 +00:00
Chris Lattner 811d75f71a Fix PR1057 (compilation on macos 10.3), patch by Scott Michel!
llvm-svn: 32644
2006-12-17 21:04:02 +00:00
Reid Spencer 8bd6317823 Use a predicate function to identify bitcast of fp and integer instead of
repeating the logic in two different parts of the code.

llvm-svn: 32643
2006-12-17 20:24:50 +00:00
Reid Spencer 174dc2f35e Fix PR1058:
Generate the BITCAST_TEMPORARY regardless of the uses or inlinability of
the instruction. This temporary is needed to perform the instruction, not
provide storage for its results.

llvm-svn: 32642
2006-12-17 18:50:51 +00:00
Bill Wendling 3307244ce9 Added example of how to code print() methods so that they will disappear
from the code if "cnull" is passed into them.

llvm-svn: 32641
2006-12-17 11:40:40 +00:00
Bill Wendling e33ce528da Fixed so that it dereferences the ostream pointer.
llvm-svn: 32640
2006-12-17 11:15:53 +00:00
Bill Wendling 1e48353346 Accidental submission.
llvm-svn: 32639
2006-12-17 11:13:13 +00:00
Bill Wendling e891701547 This snuck in. Reverted.
llvm-svn: 32638
2006-12-17 11:11:10 +00:00
Reid Spencer cb80954483 Fix problems in the CBE and InstructionCombining which use the isMaxValue
and isMinValue methods of ConstantInt. These have been broken since the
isSigned parameter was added. It is necessary to use the signed version
of the type in the call to isValueValidForType or else incorrect results
are returned.

llvm-svn: 32637
2006-12-17 06:07:30 +00:00
Bill Wendling a77f14265b Added an automatic cast to "std::ostream*" etc. from OStream. We then can
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.

llvm-svn: 32636
2006-12-17 05:15:13 +00:00
Reid Spencer 05a1fe5bf5 Allow an --enable-pic option to turn on -fPIC compiler option when building.
The default is disabled until we know this doesn't break anyone.

llvm-svn: 32635
2006-12-16 22:07:52 +00:00
Chris Lattner fd5f03ec3f when inserting a dummy argument to work-around the CBE not supporting
zero arg vararg functions, pass undef instead of 'int 0', which is cheaper.

llvm-svn: 32634
2006-12-16 21:21:53 +00:00
Chris Lattner 9bd5ed636c Fix PR1049 and CodeGen/Generic/2006-12-16-InlineAsmCrash.ll
by producing target constants instead of constants.  Constants can get
selected to li/movri instructions, which causes the scheduler to explode.

llvm-svn: 32633
2006-12-16 21:14:48 +00:00
Chris Lattner 5ffb07839d testcase for pr1049
llvm-svn: 32632
2006-12-16 21:12:49 +00:00
Chris Lattner cbc280f559 Fix one more broken testcase
llvm-svn: 32631
2006-12-16 20:27:43 +00:00
Chris Lattner 360a14be02 Apply B. Scott Michel's patch for PR1054, thanks!
llvm-svn: 32630
2006-12-16 20:23:42 +00:00
Evan Cheng 28cf4277bb Cannot combine an indexed load / store any further.
llvm-svn: 32629
2006-12-16 06:25:23 +00:00
Evan Cheng 5c65ea0db1 Typo.
llvm-svn: 32628
2006-12-16 06:21:55 +00:00
Chris Lattner a07e363aae Fix borken testcase
llvm-svn: 32627
2006-12-16 02:30:24 +00:00
Chris Lattner cf1eac3535 fix buggy testcase
llvm-svn: 32626
2006-12-16 02:29:22 +00:00
Chris Lattner cff7b8a9ca testcases for PR1042
llvm-svn: 32625
2006-12-16 02:26:57 +00:00
Chris Lattner 697617709c Fix PR1042, by tightening up the subtle rules with invoke value use.
llvm-svn: 32624
2006-12-16 02:25:35 +00:00
Evan Cheng 851e589eda Expand FP undef
llvm-svn: 32623
2006-12-16 02:20:50 +00:00
Jeff Cohen 29192e6274 The best unbreakage yet, addressing Bill's concerns.
llvm-svn: 32622
2006-12-16 02:15:42 +00:00
Evan Cheng 860004688a Allow promoted FP_TO_UINT / FP_TO_SINT to expand operand.
llvm-svn: 32621
2006-12-16 02:10:30 +00:00
Devang Patel abfbe3bfda Add getNumContainedPasses() and getContainedPass() inteface and use
it instead of passVectorBegin/End().

llvm-svn: 32620
2006-12-16 00:56:26 +00:00
Evan Cheng 388cbbf000 Expand fabs / fneg to and / xor.
llvm-svn: 32619
2006-12-16 00:52:40 +00:00
Devang Patel 56d48ec501 Cosmetic changes, based on Chris's review.
llvm-svn: 32618
2006-12-15 22:57:49 +00:00
Jeff Cohen b82309f1ab An even better unbreakage...
llvm-svn: 32617
2006-12-15 22:57:14 +00:00
Evan Cheng 884bc09d10 Fix select_cc, select expansion to soft-fp bugs.
llvm-svn: 32616
2006-12-15 22:42:55 +00:00
Jeff Cohen 75e93bc8c7 Complete unbreak of VC++ (Chris identified the simple fix).
llvm-svn: 32615
2006-12-15 22:06:08 +00:00
Jeff Cohen 9f46963f11 Partial unbreak of VC++ (stream stuff has no easy fix).
llvm-svn: 32614
2006-12-15 21:47:01 +00:00
Reid Spencer 496222a1a8 Remove an extraneous { at the end of a block.
llvm-svn: 32613
2006-12-15 21:46:37 +00:00
Jim Laskey a0850e98ee Patterns no longer needed due to fix in the DAG combiner.
llvm-svn: 32612
2006-12-15 21:39:31 +00:00
Jim Laskey 26df19ace6 This code was usurping the sextload expand in teh legalizer. Just make
sure the right conditions are checked.

llvm-svn: 32611
2006-12-15 21:38:30 +00:00
Devang Patel 991aebacba Mark dump* routines const routines.
llvm-svn: 32610
2006-12-15 20:13:01 +00:00
Evan Cheng 2f4cdc78fa Some AT&T syntax assembler (e.g. Mac OS X) does not recognize the movq alias for i64 <-> XMM moves.
llvm-svn: 32609
2006-12-15 19:58:58 +00:00
Reid Spencer 5dd391b4bb Fix long standing issue with propagating error message back to caller. This
has been a problem since exceptions were removed from the BytecodeReader.
Error messages are now captured from ModuleProvider::releaseModule as well
as after a longjmp.

llvm-svn: 32608
2006-12-15 19:49:23 +00:00
Reid Spencer 1c6cb06ff5 For PR1050:
Convert asserts into error messages.

llvm-svn: 32607
2006-12-15 19:44:51 +00:00
Devang Patel ffca910d45 Move PMTopLevelManager and TImingInfo into anon namespace.
llvm-svn: 32606
2006-12-15 19:39:30 +00:00
Jim Laskey 73d307d12d Not all test cases are created equal. This fix is needed.
llvm-svn: 32605
2006-12-15 18:51:01 +00:00
Jim Laskey 38b1d53afe Not needed. Misinterpreted error message from other bug (Missing load/store
relocations.)

llvm-svn: 32604
2006-12-15 18:45:32 +00:00
Andrew Lenharth e06036d229 extern_weak linkage. fixes PR1038
llvm-svn: 32603
2006-12-15 17:35:32 +00:00
Andrew Lenharth 54de5be0b4 extern_weak link test
llvm-svn: 32602
2006-12-15 17:34:37 +00:00
Jim Laskey b0367c987e Missing load/store relocations.
llvm-svn: 32601
2006-12-15 16:44:10 +00:00
Jim Laskey 36d826dca2 Provide 64-bit support for i64 sextload<i8>.
llvm-svn: 32600
2006-12-15 14:34:11 +00:00
Jim Laskey f07cc990dd Provide support for FP_TO_UINT.
llvm-svn: 32599
2006-12-15 14:32:57 +00:00
Jim Laskey 57825843d0 Pass html validation.
llvm-svn: 32598
2006-12-15 10:40:48 +00:00
Chris Lattner b1a9492ed7 silence a bogus warning
llvm-svn: 32597
2006-12-15 07:36:19 +00:00
Chris Lattner 43662ef02b reenable these
llvm-svn: 32596
2006-12-15 07:32:49 +00:00
Chris Lattner 8f7b775bf4 re-enable a temporarily-reverted patch
llvm-svn: 32595
2006-12-15 07:32:38 +00:00
Chris Lattner bb39cc4631 New testcase for llvm-gcc bugfix
llvm-svn: 32594
2006-12-15 06:49:20 +00:00
Evan Cheng 54c4ab8524 Minor clean up.
llvm-svn: 32593
2006-12-15 06:41:01 +00:00
Evan Cheng 16057e7454 Silly assertion. Forgot variable_ops instructions can have arbitrary number of
operands.

llvm-svn: 32592
2006-12-15 06:37:08 +00:00
Evan Cheng 2455e6937b This is done.
llvm-svn: 32591
2006-12-15 05:50:39 +00:00
Evan Cheng 35fdd5ffe1 Expand FP compares to soft-fp call(s)
llvm-svn: 32590
2006-12-15 02:59:56 +00:00
Devang Patel 832bc079b2 s/ForcedLastUses/TransferLastUses/g
Register pass has the its last user, otherwise sometimes no one will claim
LastUse.

Handle transferred last uses from child pass manager.

llvm-svn: 32589
2006-12-15 00:08:26 +00:00
Jim Laskey 3958955f47 Simplify the fetching of relocation mode.
llvm-svn: 32588
2006-12-14 22:53:42 +00:00
Evan Cheng 735fcf74d8 f64 <-> i64 bit_convert using movq in 64-bit mode.
llvm-svn: 32587
2006-12-14 21:55:39 +00:00
Jim Laskey 90c8e997a7 File missing from last check in.
llvm-svn: 32586
2006-12-14 21:03:17 +00:00
Evan Cheng e50b17e97e Fix a couple of typo's.
llvm-svn: 32585
2006-12-14 19:46:06 +00:00
Evan Cheng ac1fa442a7 This is done.
llvm-svn: 32584
2006-12-14 19:45:32 +00:00
Evan Cheng 0fd32e9ade Added MOVSS2DIrr and MOVDI2SSrr to foldMemeoryOperand().
llvm-svn: 32583
2006-12-14 19:44:45 +00:00
Evan Cheng fccea9b2a9 - Rename MOVDSS2DIrr to MOVSS2DIrr for consistency sake.
- Add MOVDI2SSrm and MOVSS2DImr to fold load / store for i32 <-> f32 bit_convert
  patterns.

llvm-svn: 32582
2006-12-14 19:43:11 +00:00
Jim Laskey 70323a8146 1. Tidy up jump table info.
2. Allow the jit to handle PIC relocable jump tables.

llvm-svn: 32581
2006-12-14 19:17:33 +00:00
Rafael Espindola 3b7544e24c avoid using a constant table when a constant can be used inline
llvm-svn: 32580
2006-12-14 18:58:37 +00:00
Chris Lattner ce22ca3fc6 random minor typographical changes
llvm-svn: 32579
2006-12-14 18:22:14 +00:00
Jim Laskey ef58334ddb Start of PowerPC info.
llvm-svn: 32578
2006-12-14 17:19:50 +00:00
Rafael Espindola 09e2921d9a Avoid creating invalid sub/add instructions on the prolog/epilog
patch by Lauro

llvm-svn: 32577
2006-12-14 13:31:27 +00:00
Evan Cheng 4c306ae0c2 Fix a long-standing spiller bug:
If a spillslot value is available in a register, and there is a noop copy that
targets that register, the spiller correctly decide not to invalidate the
spillslot register.

However, even though the noop copy does not clobbers the value. It does start a
new intersecting live range. That means the spillslot register is available for
use but should not be reused for a two-address instruction modref operand which
would clobber the new live range.

When we remove the noop copy, update the available information by clearing the
canClobber bit.

llvm-svn: 32576
2006-12-14 07:54:05 +00:00
Devang Patel b8817b9b6e Add -time-passes support.
llvm-svn: 32574
2006-12-14 00:59:42 +00:00
Devang Patel f6d1d21355 Add debug-pass=Details support to print Required and Preserved Set info.
llvm-svn: 32573
2006-12-14 00:25:06 +00:00
Devang Patel 93a197c202 Add " Made Modification " messages in debug-pass=Executions output.
llvm-svn: 32572
2006-12-14 00:08:04 +00:00
Devang Patel 200d305c02 Add debug-pass=Executions support in new pass manager.
llvm-svn: 32571
2006-12-13 23:50:44 +00:00
Devang Patel cfd70c4a46 Add -pass-debug=Arguments support in new manager.
llvm-svn: 32567
2006-12-13 22:10:00 +00:00
Chris Lattner f0f611a76a fit in 80 cols
llvm-svn: 32563
2006-12-13 21:56:10 +00:00
Devang Patel 03fb587348 Using PDL as a prefix for PassDebugLevel enums is not a good idea.
Fix it.

llvm-svn: 32562
2006-12-13 21:13:31 +00:00
Evan Cheng 9ffa6a60ed Add note.
llvm-svn: 32561
2006-12-13 20:59:43 +00:00
Evan Cheng 22cf89967b More soft-fp work.
llvm-svn: 32559
2006-12-13 20:57:08 +00:00
Evan Cheng b0b8ae17c2 Add getTypeToExpandTo() which recursively walks TransformToType to determine
the intrinsic type to expand to.

llvm-svn: 32558
2006-12-13 20:52:00 +00:00
Devang Patel f1567a511f Move enum PassDebugLevel from PassManagerT.h to Pass.h.
Use PDL as the prefix for these enums.
Define and use PassDebugging_New in new PassManager.

llvm-svn: 32554
2006-12-13 20:03:48 +00:00
John Criswell b4208fe97e Remove DSA.
llvm-svn: 32553
2006-12-13 19:56:15 +00:00
John Criswell 2eeeab7754 Remove DSA header files.
llvm-svn: 32552
2006-12-13 19:55:53 +00:00
John Criswell 764f2c03bc Changed from PARALLEL_DIRS to DIRS since we're only building one directory.
Thanks Reid.

llvm-svn: 32551
2006-12-13 19:42:54 +00:00
John Criswell ca6e2f71dd Remove DSA.
llvm-svn: 32550
2006-12-13 19:41:57 +00:00
John Criswell 21a589beba Remove DSA tests.
llvm-svn: 32549
2006-12-13 19:39:27 +00:00
Reid Spencer 74a528b427 Fix a bug in EvaluateInDifferentType. The type of operand should not be
used to determine whether a ZExt or SExt cast is performed. Instead, pass
an "isSigned" bool to the function and determine its value from the opcode
of the cast involved.
Also, clean up some cruft from previous patches.

llvm-svn: 32548
2006-12-13 18:21:21 +00:00
John Criswell 62813edc67 Remove DSA tests.
llvm-svn: 32547
2006-12-13 18:05:30 +00:00
Jim Laskey b6cdf465c2 Update version in safe guards.
llvm-svn: 32546
2006-12-13 17:49:24 +00:00
Chris Lattner e612d336d9 xfail these until I recommit the scalarrepl patch
llvm-svn: 32545
2006-12-13 17:42:40 +00:00
Reid Spencer 2a499b0b6c Implement review feedback. Most of this has to do with removing unnecessary
cast instructions. A few are bug fixes.

llvm-svn: 32544
2006-12-13 17:19:09 +00:00
John Criswell f9e355c7f1 Remove DSA tests.
llvm-svn: 32543
2006-12-13 17:02:04 +00:00
John Criswell 2bcf535e0f Remove DSA.
llvm-svn: 32542
2006-12-13 16:54:24 +00:00
Reid Spencer 612683b0d7 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.

llvm-svn: 32539
2006-12-13 08:33:33 +00:00
Reid Spencer 799b5bfc71 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.

llvm-svn: 32538
2006-12-13 08:27:15 +00:00
Reid Spencer 20f7a2a09b Ressurrect this needed file.
llvm-svn: 32537
2006-12-13 08:10:16 +00:00
Reid Spencer 753036ebaa Ressurrect the Stacker "st" configuration. Someday this will all go
away, but until then Stacker needs its configuration.

llvm-svn: 32536
2006-12-13 08:09:48 +00:00
Reid Spencer df1f19a8ef 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.

llvm-svn: 32535
2006-12-13 08:06:42 +00:00
Reid Spencer a730cf80d7 Fix some casts. isdigit(c) returns 0 or 1, not 0 or -1
llvm-svn: 32534
2006-12-13 08:04:32 +00:00
Reid Spencer 2b768652db Update for llvm-gcc4 build.
llvm-svn: 32533
2006-12-13 08:03:25 +00:00
Evan Cheng 461a3648cc Update comments.
llvm-svn: 32532
2006-12-13 06:12:35 +00:00
Evan Cheng 37fc94a76e Update comments.
llvm-svn: 32531
2006-12-13 06:09:03 +00:00
Chris Lattner cb813314aa only check non-external functions
llvm-svn: 32530
2006-12-13 04:45:46 +00:00
Chris Lattner 50a9951809 Reject attempts to define intrinsics. This fixes PR1047 and
Regression/Verifier/2006-12-12-IntrinsicDefine.ll

llvm-svn: 32529
2006-12-13 04:30:37 +00:00
Chris Lattner fc069248f7 New testcase for PR1047
llvm-svn: 32528
2006-12-13 04:30:18 +00:00
Evan Cheng e370e0eb09 Expand (f64 extload f32) to (f64 fp_ext (load f32)) if f64 type action is expand.
llvm-svn: 32527
2006-12-13 03:19:57 +00:00
Evan Cheng f3a80c6235 Expand fsqrt, fsin, and fcos to libcalls.
llvm-svn: 32526
2006-12-13 02:38:13 +00:00
Devang Patel b67904d1dc 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

llvm-svn: 32525
2006-12-13 02:36:01 +00:00
Chris Lattner 7c1dff99dc 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.

llvm-svn: 32524
2006-12-13 02:26:45 +00:00
Evan Cheng 0a5b805f6d Expand f32 / f64 to i32 / i64 conversion to soft-fp library calls.
llvm-svn: 32523
2006-12-13 01:57:55 +00:00
Chris Lattner 42be3a3096 Fix a regression that completely broke make install.
Instead of installing into /usr/local/bin it would install into /usr/localbin

llvm-svn: 32522
2006-12-13 01:15:18 +00:00
Reid Spencer bfe26ffcfc Replace CastInst::createInferredCast calls with more accurate cast
creation calls.

llvm-svn: 32521
2006-12-13 00:50:17 +00:00
Reid Spencer d845dc00c7 Change createInferredCast calls to more accurate cast creation calls.
llvm-svn: 32520
2006-12-13 00:47:58 +00:00
Devang Patel 08bed59d59 FunctionPassManager does not support runOnModule().
llvm-svn: 32519
2006-12-13 00:34:32 +00:00
Devang Patel 476a58a917 Move getAnalysis() and getAnalysisID() definitions from Pass.h to
PassAnalysisSupport.h

llvm-svn: 32518
2006-12-13 00:23:44 +00:00
Devang Patel ab97cf4c7c Implement PassManager_New destructors.
llvm-svn: 32517
2006-12-13 00:09:23 +00:00
Devang Patel 209b13990f Remove unused constructor.
llvm-svn: 32516
2006-12-12 23:51:31 +00:00
Reid Spencer bb65ebf9a1 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.

llvm-svn: 32514
2006-12-12 23:36:14 +00:00
Devang Patel eda561762f Add routines to dump pass manager queue.
llvm-svn: 32513
2006-12-12 23:34:33 +00:00
Devang Patel 1036b65ca0 FunctionPassManager()
Set AnalysisResolver_New and add FPM to PassManagers list.

llvm-svn: 32512
2006-12-12 23:27:37 +00:00
Devang Patel 745a696050 Do not runOnFunction on external functions.
llvm-svn: 32510
2006-12-12 23:15:28 +00:00
Devang Patel 47d7df7407 Initialize AnalysisImpls for each pass before executing the pass.
llvm-svn: 32509
2006-12-12 23:13:09 +00:00
Devang Patel f58183dae1 collectRequiredAnalysisPasses().
Include RequiredTrainsitiveSet also.

llvm-svn: 32508
2006-12-12 23:09:32 +00:00
Devang Patel be6bd55e96 removeNotPreservedAnalysis().
Do not remove ImmutablePass from the list.

llvm-svn: 32507
2006-12-12 23:07:44 +00:00
Devang Patel ad6b7fe726 Initialize activeManager.
llvm-svn: 32506
2006-12-12 22:57:43 +00:00
Devang Patel 5f945dd79e Remove unused constructor.
llvm-svn: 32505
2006-12-12 22:56:36 +00:00
Devang Patel 75cdf20412 Maintain ImmutablePasses list at top level only. Do not make them
directly available to individual managers.

llvm-svn: 32504
2006-12-12 22:53:40 +00:00
Devang Patel cd6ba15364 findAnalysisPass().
First search all available passes before searching ImmutablePasses.

llvm-svn: 32503
2006-12-12 22:50:05 +00:00
Devang Patel 10c2ca6874 Fix thinko.
While searching for a analysis in a pass manager, do not search it into
pass manager's manager.

llvm-svn: 32501
2006-12-12 22:47:13 +00:00
Devang Patel afb1f362c6 o s/OtherPassManagers/IndirectPassManagers
o Make IndirectPassManagers vector of PMDataManager *
o Move PMTopLevelManager implementation below all class declarations.

llvm-svn: 32499
2006-12-12 22:35:25 +00:00
Devang Patel 95257548c9 Initialize AnalysisImpls for ImmutablePass.
llvm-svn: 32498
2006-12-12 22:21:37 +00:00
Evan Cheng 3766fc60da Expand FP constant to integers if FP types are not legal.
llvm-svn: 32497
2006-12-12 22:19:28 +00:00
Devang Patel 9c6290c53c Set top level manager.
llvm-svn: 32496
2006-12-12 22:02:16 +00:00
Evan Cheng 97a750fc47 Soft fp FNEG, SINT_TO_FP, UINT_TO_FP libcall expansion.
llvm-svn: 32495
2006-12-12 21:51:17 +00:00
Evan Cheng 47833a1d28 Expand ConstantFP to load from CP if float types are being expanded.
llvm-svn: 32494
2006-12-12 21:32:44 +00:00
Evan Cheng 634885f71e Expand i32/i64 CopyToReg f32/f64 to BIT_CONVERT + CopyToReg.
llvm-svn: 32493
2006-12-12 21:21:32 +00:00
Jim Laskey 59e7a777da Honor cpu directive, take two.
llvm-svn: 32492
2006-12-12 20:57:08 +00:00
Jim Laskey 3f7d047a14 Ignore entries with blank names.
llvm-svn: 32491
2006-12-12 20:55:58 +00:00
Evan Cheng 0076ca0da9 - When expanding a bit_convert whose src operand is also to be expanded and
its expansion result type is equal to the result type of the bit_convert,
e.g. (i64 bit_convert (f64 op)) if FP is not legal
returns the result of the expanded source operand.
- Store f32 / f64 may be expanded to a single store i32/i64.

llvm-svn: 32490
2006-12-12 19:53:13 +00:00
Jim Laskey 6bb89d8054 Remove unneeded include.
llvm-svn: 32489
2006-12-12 19:36:53 +00:00
Jim Laskey 8171e58bd9 Rollback changes to take a different tack.
llvm-svn: 32488
2006-12-12 19:26:50 +00:00
Chris Lattner 2dc148e89d this can be trunc or bitcast, per line 3092.
llvm-svn: 32487
2006-12-12 19:11:20 +00:00
Chris Lattner ade1f6894d Fix regression on 400.perlbench last night.
llvm-svn: 32486
2006-12-12 18:41:03 +00:00
Rafael Espindola 67d1c8ae0e more general matching of the MVN instruction
llvm-svn: 32484
2006-12-12 17:10:13 +00:00
Jim Laskey 7c3cab9ddc Honor the command line specification for machine type.
llvm-svn: 32483
2006-12-12 16:07:33 +00:00
Rafael Espindola 470d61d82c don't use "ordinary" addressing mode 1 when mvn is appropriate
llvm-svn: 32482
2006-12-12 14:03:29 +00:00
Jim Laskey 095e6f3044 Reduce number of instructions to load 64-bit constants.
llvm-svn: 32481
2006-12-12 13:23:43 +00:00
Reid Spencer 13bc5d7b57 Fix numerous inferred casts.
llvm-svn: 32479
2006-12-12 09:18:51 +00:00
Reid Spencer 1ac0ab0850 Get even more accurate on the casting.
llvm-svn: 32478
2006-12-12 09:17:50 +00:00
Reid Spencer 41cb269a2b Fix the casting for the computation of the Malloc size.
llvm-svn: 32477
2006-12-12 09:17:08 +00:00
Evan Cheng 0c0b78c18e Expand formal arguments and call arguments recursively: e.g. f64 -> i64 -> 2 x i32.
llvm-svn: 32476
2006-12-12 07:27:38 +00:00
Reid Spencer ca104e80ee Don't create usless casts for same-bith-width floating point casts.
llvm-svn: 32475
2006-12-12 05:38:50 +00:00
Chris Lattner 2f96e7d241 fit in 80 cols
llvm-svn: 32474
2006-12-12 05:22:21 +00:00
Chris Lattner 080881614d this can only be fptrunc.
llvm-svn: 32473
2006-12-12 05:21:51 +00:00
Chris Lattner 6801f02557 This case isn't needed with recent changes to ConstantInt::get
llvm-svn: 32472
2006-12-12 05:19:46 +00:00
Chris Lattner 0c537dae55 split up inttoptr from ptrtoint handling, the cases aren't similar at all.
llvm-svn: 32471
2006-12-12 05:18:19 +00:00
Chris Lattner b9e41f5559 the operand of a bitcast is always the right size, just emit it in place.
llvm-svn: 32470
2006-12-12 05:14:13 +00:00
Reid Spencer b341b0861d Change inferred getCast into specific getCast. Passes all tests.
llvm-svn: 32469
2006-12-12 05:05:00 +00:00
Chris Lattner 6e5fe376ec Patch for PR1045 and Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll
llvm-svn: 32468
2006-12-12 04:24:41 +00:00
Chris Lattner f65ce046db new testcase for pr1045
llvm-svn: 32467
2006-12-12 04:24:17 +00:00
Chris Lattner 6ba11fbd75 Revert Nate's patch to fix X86/store-fp-constant.ll. With the dag combiner
and legalizer separated like they currently are, I don't see a way to handle
this xform.

llvm-svn: 32466
2006-12-12 04:18:56 +00:00
Chris Lattner b7524b6d0e make this code more aggressive about turning store fpimm into store int imm.
This is not sufficient to fix X86/store-fp-constant.ll

llvm-svn: 32465
2006-12-12 04:16:14 +00:00
Chris Lattner f929e81d37 This should check for darwin literal sections as well.
llvm-svn: 32464
2006-12-12 03:59:46 +00:00
Chris Lattner 49b090ed61 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.

llvm-svn: 32463
2006-12-12 02:26:09 +00:00
Reid Spencer 38dbe1ca14 Tidy up a bit.
llvm-svn: 32462
2006-12-12 01:32:02 +00:00
Reid Spencer 595cef1650 Generate the correct cast opcode for constant expressions.
llvm-svn: 32461
2006-12-12 01:31:37 +00:00
Reid Spencer 3c49edcaa1 Change inferred cast creation calls to more specific cast creations.
llvm-svn: 32460
2006-12-12 01:17:41 +00:00
Rafael Espindola 9fa0a26808 use MVN to handle small negative constants
llvm-svn: 32459
2006-12-12 01:03:11 +00:00
Reid Spencer aabebbbf2e Don't bother upgrading this.
llvm-svn: 32458
2006-12-12 00:53:31 +00:00
Reid Spencer 56521c48fe Implement getIntegerCast and getFPCast for ConstantExpr. These are similar
to the createIntegerCast and createFPCast for CastInst instructions.

llvm-svn: 32457
2006-12-12 00:51:07 +00:00
Reid Spencer 7e93347b57 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.

llvm-svn: 32456
2006-12-12 00:49:44 +00:00
Reid Spencer b7e5180d3c Fix PR1040:
Don't rebuild llvm-config if none of the library dependencies changed.

llvm-svn: 32455
2006-12-12 00:43:38 +00:00
Rafael Espindola 1bbe581d0f add mvn
llvm-svn: 32454
2006-12-12 00:37:38 +00:00
Reid Spencer 2075374e28 Fix the BitCastUnion type for 32-bit targets.
llvm-svn: 32453
2006-12-12 00:11:08 +00:00
Rafael Espindola eb3e8d75df add note
llvm-svn: 32452
2006-12-11 23:56:10 +00:00
Chris Lattner f4646a7e54 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.

llvm-svn: 32451
2006-12-11 23:22:45 +00:00
Reid Spencer 2d73fe7fad 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

llvm-svn: 32450
2006-12-11 23:20:20 +00:00
Reid Spencer 840cc9e1a9 Test case for ensuring correct reading back of cast constant expressions.
llvm-svn: 32449
2006-12-11 23:19:53 +00:00
Chris Lattner b1f3157638 getInstrItineraryData shouldn't copy the itineraries
llvm-svn: 32448
2006-12-11 21:42:55 +00:00
Reid Spencer 3db7d3764e Fix constant folding of FP->int due to cut & paste error in last commit.
llvm-svn: 32447
2006-12-11 21:27:28 +00:00
Reid Spencer 0fdba212a7 Add a test for constant folding of bitcast to/from floating point.
llvm-svn: 32446
2006-12-11 21:25:10 +00:00
Reid Spencer 025ca90b7a Provide a test for int<->float and long<->double bitcasts.
llvm-svn: 32445
2006-12-11 20:40:28 +00:00
Reid Spencer b943555716 Implement correct bitcast of int<->float and long<->double by using a
union to perform the bitcast.

llvm-svn: 32444
2006-12-11 20:39:15 +00:00
Evan Cheng 3432ab97c1 Re-apply changes that were backed out and fix a naughty typo.
llvm-svn: 32442
2006-12-11 19:27:14 +00:00
John Criswell b3b285185f It seems the llvm::OStream class does not handle stream manipulators.
For now, just grab the stream and perform the output on it directly.

llvm-svn: 32441
2006-12-11 19:15:36 +00:00
Chris Lattner e9a203c4e5 Revert changes that broke oggenc on ppc
llvm-svn: 32440
2006-12-11 18:53:38 +00:00
Jim Laskey 2b136a73bd Missing opcode.
llvm-svn: 32439
2006-12-11 18:45:56 +00:00
Chris Lattner 4d1da16ec1 Implement correct constant folding of bitcast. This implements
Transforms/ConstProp/bitcast.ll and fixes
SingleSource/Regression/C/2003-10-12-GlobalVarInitializers

llvm-svn: 32438
2006-12-11 18:30:27 +00:00
Chris Lattner 2a39f55e24 constant folding of bitcast is broken.
llvm-svn: 32437
2006-12-11 18:29:07 +00:00
Jim Laskey e95909a4ef Layout proper frame for ppc64.
llvm-svn: 32436
2006-12-11 18:10:54 +00:00
Reid Spencer d436ea5cb4 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.

llvm-svn: 32435
2006-12-11 17:42:12 +00:00
Evan Cheng 218369881f Don't convert store double C, Ptr to store long C, Ptr if i64 is not a legal type.
llvm-svn: 32434
2006-12-11 17:25:19 +00:00
Evan Cheng f4bec95b58 f32 / f64 node is expanded to one i32 / i64 node.
llvm-svn: 32433
2006-12-11 06:50:04 +00:00
Evan Cheng f6b01fdb48 Clean up some bad code.
llvm-svn: 32432
2006-12-11 06:25:26 +00:00
Nate Begeman 8e20c760fa Move something that should be in the dag combiner from the legalizer to the
dag combiner.

llvm-svn: 32431
2006-12-11 02:23:46 +00:00
Nate Begeman e8da58b3f9 Properly mangles symbol table names
Supports constant pools
Supports relocations to jump tables
Supports relocations within the data segment (global = address of global)
Allocates memory in a non-hacky for all non-code objects.

llvm-svn: 32430
2006-12-11 02:20:45 +00:00
Nate Begeman 5c56215232 Add a default relocation type, and allow clients to set the ConstantVal
field after creation.

llvm-svn: 32429
2006-12-11 02:19:29 +00:00
Chris Lattner 8410beb12d fix typo
llvm-svn: 32428
2006-12-11 02:16:58 +00:00
Chris Lattner a11aa92e6b 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

llvm-svn: 32427
2006-12-11 01:20:25 +00:00
Chris Lattner e810140c4b trunc to integer, not to FP.
llvm-svn: 32426
2006-12-11 01:17:00 +00:00
Chris Lattner e9c430c5d8 the xform is done by scalarrepl not the code generator.
llvm-svn: 32425
2006-12-11 01:03:32 +00:00
Chris Lattner 6727f2a5f9 this is done
llvm-svn: 32424
2006-12-11 01:01:03 +00:00
Chris Lattner feeb9c7be5 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.

llvm-svn: 32423
2006-12-11 00:44:03 +00:00
Chris Lattner 23f4b68f7e implement promotion of unions containing two packed types of the same width.
This implements Transforms/ScalarRepl/union-packed.ll

llvm-svn: 32422
2006-12-11 00:35:08 +00:00
Chris Lattner ac57792106 new testcase
llvm-svn: 32421
2006-12-11 00:34:27 +00:00
Chris Lattner b2f5973867 clarify some comments, simplify some checks, fix:
Regression/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll

llvm-svn: 32420
2006-12-11 00:12:31 +00:00
Chris Lattner a571d211ae testcase for a regression introduced by the recent cast patch
llvm-svn: 32419
2006-12-11 00:12:07 +00:00
Chris Lattner 216c3028e6 * 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

llvm-svn: 32418
2006-12-10 23:56:50 +00:00
Chris Lattner a4121981ce new testcase
llvm-svn: 32417
2006-12-10 23:52:28 +00:00
Reid Spencer 4372571d3d Regenerate.
llvm-svn: 32416
2006-12-10 23:29:19 +00:00
Anton Korobeynikov 3b7c257cae Cleaned setjmp/longjmp lowering interfaces. Now we're producing right
code (both asm & cbe) for Mingw32 target.
Removed autoconf checks for underscored versions of setjmp/longjmp.

llvm-svn: 32415
2006-12-10 23:12:42 +00:00
Chris Lattner 6161452b67 make statistics and timing info print even if the JIT'd program calls exit
instead of returning from main.

llvm-svn: 32414
2006-12-10 19:01:52 +00:00
Jim Laskey 6af2220815 Reverting until finding the cause of secondary bugs.
llvm-svn: 32413
2006-12-10 13:09:42 +00:00
Jim Laskey 04c832d4ab __PPC64CompilationCallback code was allowing registers to be clobbered by stub.
llvm-svn: 32412
2006-12-10 12:13:31 +00:00
Chris Lattner ad796fadf7 fix PR1039 by making timing info be destroyed by llvm_shutdown, not by
static dtors.

llvm-svn: 32411
2006-12-10 07:40:46 +00:00
Reid Spencer bef61c5781 Don't bother with setting the path before running llvm-gcc4, it doesn't
need it like llvm-gcc3 did.

llvm-svn: 32410
2006-12-10 04:56:38 +00:00
Reid Spencer d8c16d39b6 For PR739:
Define a DESTDIR variable and use it to define the various install
locations. This allows DESTDIR to be overridden on the command line.

llvm-svn: 32409
2006-12-10 04:09:19 +00:00
Rafael Espindola b8ada08b26 .align is in bits
.comm is in bytes
:-(

llvm-svn: 32408
2006-12-10 02:53:14 +00:00
Rafael Espindola b313efb0cd fix test/Regression/CodeGen/X86/weak.ll
if a variable has no initialization, I->getInitializer() will fail

llvm-svn: 32407
2006-12-09 23:14:08 +00:00
Rafael Espindola 839bcb4af2 use a . instead of a % in the grep expression
llvm-svn: 32406
2006-12-09 21:21:06 +00:00
Reid Spencer 04f47b9e8d Regenerate.
llvm-svn: 32405
2006-12-09 19:41:25 +00:00
Reid Spencer 2126b0518e Fix test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll
Do not upgrade casts of bool to bool.

llvm-svn: 32404
2006-12-09 19:40:41 +00:00
Reid Spencer 2fee8a99e2 Fix the run line and make this test more specific.
llvm-svn: 32403
2006-12-09 19:39:56 +00:00
Reid Spencer 1d3dbd34b7 Add a check to catch an incorrect upgrade.
llvm-svn: 32402
2006-12-09 19:35:43 +00:00
Reid Spencer 1719061bfd Regenerate.
llvm-svn: 32400
2006-12-09 16:57:22 +00:00
Reid Spencer 87644df5bc When upgrading cast to bool to a setne, generate icmp ne instead.
llvm-svn: 32399
2006-12-09 16:56:55 +00:00
Reid Spencer b558b57e75 Too soon to commit, revert.
llvm-svn: 32397
2006-12-09 05:13:50 +00:00
Reid Spencer 0606d15530 New test cases for regressions in the SetCC -> ICmp patch.
llvm-svn: 32396
2006-12-09 05:13:01 +00:00
Reid Spencer 68acb20000 Allow the input of the test program to be specified.
Don't generate the reference output for each comparison.

llvm-svn: 32395
2006-12-09 04:42:33 +00:00
Evan Cheng 4eee72471c Preliminary soft float support.
llvm-svn: 32394
2006-12-09 02:42:38 +00:00
Evan Cheng e107a8b872 Added option -soft-float to generate SW fp library calls instead of fp instructions.
llvm-svn: 32393
2006-12-09 02:41:30 +00:00
Bill Wendling b0629487d8 Fixed some formatting.
llvm-svn: 32392
2006-12-09 01:35:43 +00:00
Bill Wendling c78ae26ff8 Another example of using the llvm IO streams.
llvm-svn: 32391
2006-12-09 01:27:51 +00:00
Bill Wendling 2b52dc1753 Add documentation for how to use the new LLVM streams.
llvm-svn: 32390
2006-12-09 01:20:34 +00:00
Devang Patel 984698ac24 Analysis resolver now manages AnalysisImpls for the given patch.
llvm-svn: 32389
2006-12-09 01:11:34 +00:00
Devang Patel 9d759b8854 Top level pass manager keeps track of other managers, so this can be
removed now.

llvm-svn: 32388
2006-12-09 00:09:12 +00:00
Devang Patel 64619bec14 Use analysis resolver to find the info.
llvm-svn: 32387
2006-12-09 00:07:38 +00:00
Devang Patel fa971cda8b Do not drop ImmutablePasses on the floor.
llvm-svn: 32386
2006-12-08 23:57:43 +00:00
Devang Patel d440cd92a5 Set AnalysisResolver for the passes when they are inserted into
pass manager queuer.

llvm-svn: 32385
2006-12-08 23:53:00 +00:00
Devang Patel 5fdac4070b Add AnalysisResolver_New.
llvm-svn: 32384
2006-12-08 23:52:04 +00:00
Devang Patel 9bdf7d46f6 Add AnalysisResolver_New. It is a replacement for existing
AnalysisResolver.

llvm-svn: 32383
2006-12-08 23:28:54 +00:00
Devang Patel af1fca5f10 Keep track of other pass managers, that are not directly managed by
top level manager. Use this info to findAnalysisPass.

llvm-svn: 32382
2006-12-08 23:11:43 +00:00
Devang Patel 272908dcf2 Implement top level FunctionPassManager::run(Function &F)
llvm-svn: 32381
2006-12-08 22:57:48 +00:00
Devang Patel 5bbeb49130 Do not keep yet another list of pass managers in PassManagerImpl_New.
Use one provided by toplevel manager.

llvm-svn: 32380
2006-12-08 22:47:25 +00:00
Devang Patel df6c9ae208 Remove unused schedulePass() parameter.
llvm-svn: 32379
2006-12-08 22:34:02 +00:00
Devang Patel e31049fed5 Remove unused getAnalysisPass and getAnalysisPassFromManager
llvm-svn: 32378
2006-12-08 22:32:32 +00:00
Devang Patel 640c5bba77 Implement PMTopLevel::findAnalysisPass() and
PMDataManager::findAnalysisPass()

llvm-svn: 32377
2006-12-08 22:30:11 +00:00
Rafael Espindola d12d2250a7 %progbits not @progbits
llvm-svn: 32376
2006-12-08 22:06:02 +00:00
Reid Spencer efe5c862f1 Incorporate any changes in the successor blocks into the result of
MarkAliveBlocks.

llvm-svn: 32375
2006-12-08 21:52:01 +00:00
Rafael Espindola 735a27246c add missing &&
llvm-svn: 32374
2006-12-08 21:43:02 +00:00
Rafael Espindola 94f29f129d add \"aw\",@progbits" to ctors and dtors
llvm-svn: 32373
2006-12-08 21:24:58 +00:00
Chris Lattner 8c9969ac03 Change the implementation of statistic to not need destructors at all.
Instead, the stat info is printed when llvm_shutdown() is called.
These also don't need static ctors, but getting rid of them is uglier:
still investigating.  This reduces the number of static dtors in llvm from
~1400 to ~750.

llvm-svn: 32372
2006-12-08 20:00:42 +00:00
Devang Patel 0e29e29cc5 During runOnModule() do initialization and finalization.
llvm-svn: 32371
2006-12-08 19:04:09 +00:00
Devang Patel 1929089ea2 Reuse code. Directly use runOnFunction().
llvm-svn: 32370
2006-12-08 19:03:05 +00:00
Reid Spencer 5c09dd74b9 Add the -ldl library option.
llvm-svn: 32369
2006-12-08 18:58:38 +00:00
Devang Patel 1f65368a82 Implement FunctionPassManager_New::FunctionPassManager_New(ModuleProvider *P)
llvm-svn: 32368
2006-12-08 18:57:16 +00:00
Andrew Lenharth 60be4775ff test packed struct codegen on x86
llvm-svn: 32367
2006-12-08 18:54:15 +00:00
Evan Cheng 78cb08d082 Move findTiedToSrcOperand to TargetInstrDescriptor.
llvm-svn: 32366
2006-12-08 18:45:48 +00:00
Andrew Lenharth ae5733ba6a packed initializers too in the test
llvm-svn: 32365
2006-12-08 18:45:38 +00:00
Rafael Espindola 87f4382163 fix truncstorei1
llvm-svn: 32364
2006-12-08 18:41:21 +00:00
Andrew Lenharth 23469cca1a feature test for packed structs
llvm-svn: 32363
2006-12-08 18:36:24 +00:00
Andrew Lenharth 2d189ff8cd Hopefully these are the regenerated files
llvm-svn: 32362
2006-12-08 18:07:09 +00:00
Andrew Lenharth dcb3c978c4 Packed Structures
llvm-svn: 32361
2006-12-08 18:06:16 +00:00
Andrew Lenharth 78f9389d79 A backwards compatible bc format for packed structs
llvm-svn: 32360
2006-12-08 17:50:05 +00:00
Reid Spencer 3c63db7138 This test needs to be upgraded.
llvm-svn: 32359
2006-12-08 17:39:49 +00:00
Reid Spencer ed644771ea For PR950:
Add a test for a regression in combining of ICmp instructions.

llvm-svn: 32358
2006-12-08 17:38:55 +00:00
Andrew Lenharth 8df88e2cc9 Packed Structure Definitions (docs)
llvm-svn: 32357
2006-12-08 17:13:00 +00:00
Evan Cheng bb4e6d4d12 Proper fix for PR1037: to determine is a VR is a modref, check 1) whether it is
tied to another oeprand, 2) whether is is being tied to by another operand. So
the destination operand of a two-address MI can be correctly identified.

llvm-svn: 32354
2006-12-08 08:02:34 +00:00
Evan Cheng 4539418a7b findTiedToSrcOperand() changed.
llvm-svn: 32353
2006-12-08 07:59:51 +00:00
Evan Cheng b5f1c22e94 Use MI's TargetInstrDescriptor.
llvm-svn: 32352
2006-12-08 07:57:56 +00:00
Chris Lattner 5040f58ae4 Fix a bug introduced by the streams patch. DEBUG code was made unconditional.
llvm-svn: 32351
2006-12-08 05:41:26 +00:00
Reid Spencer 196d517667 Regenerate.
llvm-svn: 32350
2006-12-08 05:06:28 +00:00
Chris Lattner 060750b731 this warning is obsolete with llvmgcc3 being gone
llvm-svn: 32349
2006-12-08 05:03:54 +00:00