1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
Commit Graph

27718 Commits

Author SHA1 Message Date
Chris Lattner
4946ae54df 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.

llvm-svn: 31864
2006-11-18 22:25:39 +00:00
Chris Lattner
b101c06bce Fix another case we *don't* want to do this xform.
llvm-svn: 31861
2006-11-18 21:56:39 +00:00
Reid Spencer
603a6e0590 Update a reference to the old setcc instruction.
llvm-svn: 31860
2006-11-18 21:55:45 +00:00
Reid Spencer
dfa8272cca For PR950:
Documentation preview of the upcoming icmp and fcmp instructions that
will replace the various setcc instructions.

llvm-svn: 31859
2006-11-18 21:50:54 +00:00
Chris Lattner
4715f9a02e MachineInstr includes this
llvm-svn: 31858
2006-11-18 21:48:05 +00:00
Chris Lattner
3a34164b82 Implement operator<< for machine basic blocks to make it easier to dump them.
llvm-svn: 31857
2006-11-18 21:47:36 +00:00
Chris Lattner
514fc3de5c make the previous change more aggressive, moving any block with no fallthrough.
This speeds up yacr2 by 7% on a core2.

llvm-svn: 31856
2006-11-18 21:30:35 +00:00
Chris Lattner
bddc114cfb 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.

llvm-svn: 31855
2006-11-18 20:47:54 +00:00
Chris Lattner
cdb67482da 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.

llvm-svn: 31853
2006-11-18 19:19:36 +00:00
Chris Lattner
af923f0720 converting massive blocks of phis into selects like this is silly.
llvm-svn: 31852
2006-11-18 19:17:52 +00:00
Reid Spencer
ce839fd108 Make the awk filter print out which files its eliminating.
llvm-svn: 31851
2006-11-18 18:30:18 +00:00
Reid Spencer
e52a08d399 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.

llvm-svn: 31850
2006-11-18 18:02:30 +00:00
Reid Spencer
e5c34cf38e Provide a list of gccld optimization switches.
llvm-svn: 31849
2006-11-18 17:14:09 +00:00
Reid Spencer
572819f0c0 Fix bugs in this. What was I thinking??? :)
llvm-svn: 31848
2006-11-18 08:06:17 +00:00
Anton Korobeynikov
38f8d184e7 Movind newly-intorudced dll* linkage stuff & windows CC to "supported"
list

llvm-svn: 31847
2006-11-18 08:04:48 +00:00
Chris Lattner
292dbfe5a8 fix bug
llvm-svn: 31846
2006-11-18 07:52:10 +00:00
Chris Lattner
146db9e859 first draft of 1.9 release notes
llvm-svn: 31845
2006-11-18 07:51:14 +00:00
Reid Spencer
9a5c56e27e Fail even if opt doesn't print anything.
llvm-svn: 31844
2006-11-18 06:08:21 +00:00
Reid Spencer
b610ada904 Add a simple test to make sure getModRefInfo is 1/2 way sane.
llvm-svn: 31842
2006-11-18 05:52:18 +00:00
Reid Spencer
c7a1e60e44 Have ConstantExprs upgrade opcodes the same way as instructions.
llvm-svn: 31841
2006-11-18 04:37:19 +00:00
Chris Lattner
eb9b1840b3 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.

llvm-svn: 31840
2006-11-18 01:57:19 +00:00
Chris Lattner
c4b759987a make sure to safe LR8 in the right stack slot for PPC64
llvm-svn: 31839
2006-11-18 01:34:43 +00:00
Chris Lattner
a55a2365bc Pretty print 'rldicr r2, r2, 2, 61' as 'sldi r2, r2, 2'.
llvm-svn: 31838
2006-11-18 01:23:56 +00:00
Chris Lattner
f50d87eb50 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.

llvm-svn: 31837
2006-11-18 00:32:03 +00:00
Chris Lattner
a5439b7913 add encoding for BCC, after finally wrestling strange ppc/tblgen endianness
issues to the ground.

llvm-svn: 31836
2006-11-17 23:53:28 +00:00
Chris Lattner
0d88b19f2f 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 :(

llvm-svn: 31835
2006-11-17 22:37:34 +00:00
Chris Lattner
73329ae80d rename PPC::COND_BRANCH to PPC::BCC
llvm-svn: 31834
2006-11-17 22:14:47 +00:00
Chris Lattner
1527483a15 start using PPC predicates more consistently.
llvm-svn: 31833
2006-11-17 22:10:59 +00:00
Evan Cheng
a9176b38f9 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.

llvm-svn: 31832
2006-11-17 22:10:14 +00:00
Jim Laskey
bc27bd0c6e Hopefully a good crack at making debugging work on intel -disable-fp-elim.
llvm-svn: 31830
2006-11-17 21:19:15 +00:00
Evan Cheng
37e2931b0a Add a x86-64 test case: movb %sil, %ah is illegal.
llvm-svn: 31829
2006-11-17 20:41:55 +00:00
Jim Laskey
a1f032c03a Assert unhandled case.
llvm-svn: 31828
2006-11-17 18:49:39 +00:00
Jim Laskey
c110c2945e Case sensitive not.
llvm-svn: 31827
2006-11-17 18:00:39 +00:00
Jim Laskey
df8a40c30b Check for MaxAlign.
llvm-svn: 31826
2006-11-17 17:19:49 +00:00
Jim Laskey
acec9e2d64 Tests to verify PowerPC ABI.
llvm-svn: 31825
2006-11-17 16:54:21 +00:00
Jim Laskey
b56f73f709 1. Ignore the -disable-fp-elim when the routine is a leaf.
2. Offsets on 64-bit stores are still in bytes.

llvm-svn: 31824
2006-11-17 16:09:31 +00:00
Jim Laskey
e0ff7bdbd3 Typo. Fix the nightly tests.
llvm-svn: 31823
2006-11-17 14:06:41 +00:00
Jim Laskey
a87c9d8905 Fixing the ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1 build.
llvm-svn: 31822
2006-11-17 13:07:55 +00:00
Bill Wendling
17c96ef0de Need <iostream> for the time being.
llvm-svn: 31821
2006-11-17 10:09:22 +00:00
Bill Wendling
68b475d560 Need iostream to be included for the time being.
llvm-svn: 31820
2006-11-17 10:05:07 +00:00
Bill Wendling
a3ba38284c Moved definition of llvm_ostream wrappers to the Streams.cpp file.
llvm-svn: 31819
2006-11-17 09:54:47 +00:00
Bill Wendling
48bd5207a4 Used llvm_ostream instead of std::ostream objects. This will reduce use
of the icky <iostream> class.

llvm-svn: 31818
2006-11-17 09:52:49 +00:00
Bill Wendling
dbbb5112c5 Added wrappers for the std::cerr/std::cout objects. The wrappers will
soon replace all uses of those objects.

llvm-svn: 31817
2006-11-17 09:51:22 +00:00
Bill Wendling
2f40f19e0d Needed <iostream> for now.
llvm-svn: 31816
2006-11-17 09:44:28 +00:00
Bill Wendling
42b8ad7362 Needs the iostream include.
llvm-svn: 31815
2006-11-17 09:38:03 +00:00
Bill Wendling
1838be30c7 Removed iostream #includes. Replaced std::cerr with DOUT.
llvm-svn: 31814
2006-11-17 08:03:48 +00:00
Bill Wendling
b6061e32fa Removed even more std::cerr and #include <iostream> things.
llvm-svn: 31813
2006-11-17 07:52:03 +00:00
Bill Wendling
e4bdd79300 Replaced DEBUG(std::cerr with DOUT.
llvm-svn: 31812
2006-11-17 07:36:54 +00:00
Bill Wendling
ccae1fe7c7 Replace DEBUG(std::cerr with DOUT. Removed some iostream #includes.
llvm-svn: 31811
2006-11-17 07:33:59 +00:00
Bill Wendling
3244a7dc35 Removed unneeded <iostream> #include.
llvm-svn: 31810
2006-11-17 07:10:51 +00:00