Commit Graph

27871 Commits

Author SHA1 Message Date
Chris Lattner
3b6f497873 Fix codegen for x86-64 on systems (like ppc or i386) that don't have 64-bit
features autodetected.  This fixes PR1010 and Regression/CodeGen/X86/xmm-r64.ll
on non-x86-64 hosts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31879 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 18:16:05 +00:00
Chris Lattner
32ba1aa204 Fix PR1011 and CodeGen/Generic/2006-11-20-DAGCombineCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31878 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 18:05:46 +00:00
Chris Lattner
f2d2a5a79c Testcase for PR1011
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31877 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 18:05:26 +00:00
Chris Lattner
a138c6c73a setOperand should not zap the operand list or add implicit operands to an
instruction.  Doing so breaks the FP stackifier, the alpha branch selector
the sparc fpmover.

This fixes PR1012 and CodeGen/X86/fp-stack-compare.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31876 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 17:57:22 +00:00
Chris Lattner
aa9c54909d Testcase for pr1012
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31875 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 17:55:30 +00:00
Anton Korobeynikov
a59868519b We should perform extra load for dllimported calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31874 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 10:46:14 +00:00
Tanya Lattner
134693aed0 Fixed typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31871 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 06:07:10 +00:00
Tanya Lattner
f7b6be0d87 Adding 1.9 release and removing references to cfrontend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31870 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 06:04:46 +00:00
Tanya Lattner
c9aee64172 Changing cfrontend dir to llvm-gcc3.4 as the example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31869 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 05:52:06 +00:00
Reid Spencer
45fb3f3cb2 For PR950:
First in a series of patches to convert SetCondInst into ICmpInst and
FCmpInst using only two opcodes and having the instructions contain their
predicate value. Nothing uses these classes yet. More patches to follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31867 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 01:22:35 +00:00
Reid Spencer
36699cabc5 For PR950:
Retain the signedness of the old integer types in a new TypeInfo structure
so that it can be used in the grammar to implement auto-upgrade of things
that depended on signedness of types. This doesn't implement any new
functionality in the AsmParser, its just plumbing for future changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31866 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-19 23:07:00 +00:00
Reid Spencer
b7f26289b1 Corrections from review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31865 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-19 03:00:14 +00:00
Chris Lattner
4b10591265 Don't transform in another bad case: if the block is empty, it should be
simplified before we do this xform so that our cost model is accurate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31864 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 22:25:39 +00:00
Chris Lattner
f10a56a86f Fix another case we *don't* want to do this xform.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31861 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 21:56:39 +00:00
Reid Spencer
36d68e418d Update a reference to the old setcc instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31860 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 21:55:45 +00:00
Reid Spencer
f3a70a6cd9 For PR950:
Documentation preview of the upcoming icmp and fcmp instructions that
will replace the various setcc instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31859 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 21:50:54 +00:00
Chris Lattner
9b9cc5ab71 MachineInstr includes this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31858 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 21:48:05 +00:00
Chris Lattner
1ccc4684f3 Implement operator<< for machine basic blocks to make it easier to dump them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31857 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 21:47:36 +00:00
Chris Lattner
154e104718 make the previous change more aggressive, moving any block with no fallthrough.
This speeds up yacr2 by 7% on a core2.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31856 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 21:30:35 +00:00
Chris Lattner
a7bef4a4e4 Minor code layout tweak: if we have something like this:
if (cond) goto BB2
BB1:
    ...
    return;
BB2:
   ...

Move BB1 to the end of the function so that the code falls through in the
non-return case.  This has the effect of moving assert (and other no-return
call) bodies and return blocks out of loops.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31855 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 20:47:54 +00:00
Chris Lattner
822a879983 Do not convert massive blocks on phi nodes into select statements. Instead
only do these transformations if there are a small number of phi's.
This speeds up Ptrdist/ks from 2.35s to 2.19s on my mac pro.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31853 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 19:19:36 +00:00
Chris Lattner
e6cc288941 converting massive blocks of phis into selects like this is silly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31852 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 19:17:52 +00:00
Reid Spencer
161a2fb9d8 Make the awk filter print out which files its eliminating.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31851 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 18:30:18 +00:00
Reid Spencer
35d958cf76 This is a utility for preparing patches against LLVM. It runs cvs diff with
the correct options, places the patch content in order that makes sense for
review, and filters cruft out of the patch (like diffs in *.cvs files). It
produces both a NAME.patch.raw (unfiltered) and NAME.patch (filtered) file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31850 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 18:02:30 +00:00
Reid Spencer
5b31cf0f9f Provide a list of gccld optimization switches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31849 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 17:14:09 +00:00
Reid Spencer
52d0d6648e Fix bugs in this. What was I thinking??? :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31848 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 08:06:17 +00:00
Anton Korobeynikov
9413de3c80 Movind newly-intorudced dll* linkage stuff & windows CC to "supported"
list


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31847 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 08:04:48 +00:00
Chris Lattner
c53e5061a8 fix bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31846 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 07:52:10 +00:00
Chris Lattner
2629922054 first draft of 1.9 release notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31845 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 07:51:14 +00:00
Reid Spencer
64fc3411b0 Fail even if opt doesn't print anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31844 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 06:08:21 +00:00
Reid Spencer
1faa5491d2 Add a simple test to make sure getModRefInfo is 1/2 way sane.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31842 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 05:52:18 +00:00
Reid Spencer
967413fa20 Have ConstantExprs upgrade opcodes the same way as instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31841 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 04:37:19 +00:00
Chris Lattner
b1eb987ccd on ppc64, float arguments take 8-byte stack slots not 4-byte stack slots.
Also, valist should create a pointer RC reg class value, not a GPRC value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31840 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 01:57:19 +00:00
Chris Lattner
ff790894bd make sure to safe LR8 in the right stack slot for PPC64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31839 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 01:34:43 +00:00
Chris Lattner
566c1b1a04 Pretty print 'rldicr r2, r2, 2, 61' as 'sldi r2, r2, 2'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31838 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 01:23:56 +00:00
Chris Lattner
54e853b8a6 Rewrite the branch selector to be correct in the face of large functions.
The algorithm it used before wasn't 100% correct, we now use an iterative
expansion model.  This fixes assembler errors when compiling 403.gcc with
tail merging enabled.

Change the way the branch selector works overall: Now, the isel generates
PPC::BCC instructions (as it used to) directly, and these BCC instructions
are emitted to the output or jitted directly if branches don't need
expansion.  Only if branches need expansion are instructions rewritten
and created.  This should make branch select faster, and eliminates the
Bxx instructions from the .td file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31837 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 00:32:03 +00:00
Chris Lattner
d5275157b5 add encoding for BCC, after finally wrestling strange ppc/tblgen endianness
issues to the ground.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31836 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 23:53:28 +00:00
Chris Lattner
18258c6404 convert PPC::BCC to use the 'pred' operand instead of separate predicate
value and CR reg #.  This requires swapping the order of these everywhere
that touches BCC and requires us to write custom matching logic for
PPCcondbranch :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31835 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 22:37:34 +00:00
Chris Lattner
289c2d5f45 rename PPC::COND_BRANCH to PPC::BCC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31834 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 22:14:47 +00:00
Chris Lattner
df4ed6350b start using PPC predicates more consistently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31833 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 22:10:59 +00:00
Evan Cheng
b1409ce7ba For unsigned 8-bit division. Use movzbw to set the lower 8 bits of AX while
clearing the upper 8-bits instead of issuing two instructions. This also
eliminates the need to target the AH register which can be problematic on
x86-64.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31832 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 22:10:14 +00:00
Jim Laskey
9dea41d9e1 Hopefully a good crack at making debugging work on intel -disable-fp-elim.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31830 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 21:19:15 +00:00
Evan Cheng
7d689e8b62 Add a x86-64 test case: movb %sil, %ah is illegal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31829 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 20:41:55 +00:00
Jim Laskey
d6fa8c166a Assert unhandled case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31828 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 18:49:39 +00:00
Jim Laskey
ba890249ce Case sensitive not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31827 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 18:00:39 +00:00
Jim Laskey
a44fea3467 Check for MaxAlign.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31826 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 17:19:49 +00:00
Jim Laskey
64c32dd2ea Tests to verify PowerPC ABI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31825 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 16:54:21 +00:00
Jim Laskey
2ff5cdb16c 1. Ignore the -disable-fp-elim when the routine is a leaf.
2. Offsets on 64-bit stores are still in bytes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31824 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 16:09:31 +00:00
Jim Laskey
c1c2f4b52b Typo. Fix the nightly tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31823 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 14:06:41 +00:00
Jim Laskey
5f64a16869 Fixing the ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1 build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31822 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 13:07:55 +00:00