Bill Wendling [Mon, 27 Nov 2006 10:09:12 +0000 (10:09 +0000)]
Removed #include <iostream> and replaced with llvm_* streams.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31936
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 27 Nov 2006 05:08:03 +0000 (05:08 +0000)]
Alter these tests to ensure they match a "test $1, X" X86 instruction that
is now generated by the LLVM backend for "trunc to bool" instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31935
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 27 Nov 2006 05:06:58 +0000 (05:06 +0000)]
Add a test to ensure a bitcast/and/trunc combination eliminates the bitcast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31934
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Nov 2006 04:40:53 +0000 (04:40 +0000)]
For better or worse, load from i1 is assumed to be zero extended. Do not
form a load from i1 from larger loads that may not be zext'd.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31933
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Nov 2006 04:39:56 +0000 (04:39 +0000)]
If a brcond condition is promoted, make sure to zero extend it, even if not
expanded into BR_CC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31932
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 27 Nov 2006 01:05:10 +0000 (01:05 +0000)]
For PR950:
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 26 Nov 2006 21:22:01 +0000 (21:22 +0000)]
Don't use bitcast yet!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31930
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 26 Nov 2006 18:27:09 +0000 (18:27 +0000)]
Make this test case easier to read. No functional changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31929
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 26 Nov 2006 10:52:51 +0000 (10:52 +0000)]
Removed #include <iostream> and replace with llvm_* streams.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31927
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 26 Nov 2006 10:51:51 +0000 (10:51 +0000)]
Add method that will take a function pointer so that it can handle things
like "llvm_cerr << std::flush";
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31926
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 26 Nov 2006 10:17:54 +0000 (10:17 +0000)]
Remove #include <iostream> and use llvm_* streams instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31925
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 26 Nov 2006 10:02:32 +0000 (10:02 +0000)]
Replace #include <iostream> with llvm_* streams.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31924
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 26 Nov 2006 09:46:52 +0000 (09:46 +0000)]
Removed #include <iostream> and replaced with llvm_* streams.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31923
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 26 Nov 2006 09:17:06 +0000 (09:17 +0000)]
Removed #include <iostream> and used the llvm_cerr/DOUT streams instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31922
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Sun, 26 Nov 2006 04:34:26 +0000 (04:34 +0000)]
fix storing bools to mem and unordered FP ops
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31920
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 25 Nov 2006 08:38:44 +0000 (08:38 +0000)]
Make the absolute/relative tolerance information easier to read/understand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31908
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 25 Nov 2006 05:41:02 +0000 (05:41 +0000)]
Add newline at end of file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31902
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 25 Nov 2006 04:07:06 +0000 (04:07 +0000)]
Only show the first few lines of difference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31901
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 24 Nov 2006 20:34:16 +0000 (20:34 +0000)]
Add an option to enable lli (interpreter mode) testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31899
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 23 Nov 2006 16:45:52 +0000 (16:45 +0000)]
Fix some typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31897
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 23 Nov 2006 15:14:52 +0000 (15:14 +0000)]
Promote GEP ubyte indices to uint. Backwards compatibility for 1.2 and
older features will be dropped soon and these test cases must not rely
on the upgrade capability.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31896
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 22 Nov 2006 23:49:16 +0000 (23:49 +0000)]
Update to new predicate simplifier VRP design. Fixes PR966 and PR967.
Remove predicate simplifier from default gcc3 pipeline. New design is too
slow to enable by default.
Add new testcases for problems encountered in development.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31895
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 22 Nov 2006 03:46:45 +0000 (03:46 +0000)]
Stop early if there is no mis-optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31893
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 21 Nov 2006 22:53:12 +0000 (22:53 +0000)]
Documented the --disable-compression option in gccld and gccas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31892
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 21 Nov 2006 22:50:24 +0000 (22:50 +0000)]
Added the --disable-compression option which controls whether the
generated bytecode uses compression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31891
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Nov 2006 17:05:13 +0000 (17:05 +0000)]
This xform is handled by FoldOpIntoPhi in visitCastInst in a more elegant way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31889
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 21 Nov 2006 00:01:06 +0000 (00:01 +0000)]
Refactored *GVRequiresExtraLoad() to Subtarget method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31887
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 20 Nov 2006 21:58:02 +0000 (21:58 +0000)]
Test for PR1013.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31886
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Nov 2006 21:20:57 +0000 (21:20 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31885
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Nov 2006 20:48:05 +0000 (20:48 +0000)]
in ppc64-mode, don't allocate the 32-bit version of r13 either.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31884
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 20 Nov 2006 20:29:06 +0000 (20:29 +0000)]
Global label not handled correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31883
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Nov 2006 19:33:51 +0000 (19:33 +0000)]
r13 is the thread pointer on darwin/ppc64, don't allocate it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31882
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Nov 2006 18:57:02 +0000 (18:57 +0000)]
Fix PR1005
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31881
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Nov 2006 18:54:33 +0000 (18:54 +0000)]
Fix PR1001, patch by Nikhil Patil!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31880
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Nov 2006 18:16:05 +0000 (18:16 +0000)]
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
Chris Lattner [Mon, 20 Nov 2006 18:05:46 +0000 (18:05 +0000)]
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
Chris Lattner [Mon, 20 Nov 2006 18:05:26 +0000 (18:05 +0000)]
Testcase for PR1011
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31877
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Nov 2006 17:57:22 +0000 (17:57 +0000)]
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
Chris Lattner [Mon, 20 Nov 2006 17:55:30 +0000 (17:55 +0000)]
Testcase for pr1012
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31875
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 20 Nov 2006 10:46:14 +0000 (10:46 +0000)]
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
Tanya Lattner [Mon, 20 Nov 2006 06:07:10 +0000 (06:07 +0000)]
Fixed typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31871
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Mon, 20 Nov 2006 06:04:46 +0000 (06:04 +0000)]
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
Tanya Lattner [Mon, 20 Nov 2006 05:52:06 +0000 (05:52 +0000)]
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
Reid Spencer [Mon, 20 Nov 2006 01:22:35 +0000 (01:22 +0000)]
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
Reid Spencer [Sun, 19 Nov 2006 23:07:00 +0000 (23:07 +0000)]
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
Reid Spencer [Sun, 19 Nov 2006 03:00:14 +0000 (03:00 +0000)]
Corrections from review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31865
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 18 Nov 2006 22:25:39 +0000 (22:25 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 21:56:39 +0000 (21:56 +0000)]
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
Reid Spencer [Sat, 18 Nov 2006 21:55:45 +0000 (21:55 +0000)]
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
Reid Spencer [Sat, 18 Nov 2006 21:50:54 +0000 (21:50 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 21:48:05 +0000 (21:48 +0000)]
MachineInstr includes this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31858
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 18 Nov 2006 21:47:36 +0000 (21:47 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 21:30:35 +0000 (21:30 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 20:47:54 +0000 (20:47 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 19:19:36 +0000 (19:19 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 19:17:52 +0000 (19:17 +0000)]
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
Reid Spencer [Sat, 18 Nov 2006 18:30:18 +0000 (18:30 +0000)]
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
Reid Spencer [Sat, 18 Nov 2006 18:02:30 +0000 (18:02 +0000)]
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
Reid Spencer [Sat, 18 Nov 2006 17:14:09 +0000 (17:14 +0000)]
Provide a list of gccld optimization switches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31849
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 18 Nov 2006 08:06:17 +0000 (08:06 +0000)]
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
Anton Korobeynikov [Sat, 18 Nov 2006 08:04:48 +0000 (08:04 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 07:52:10 +0000 (07:52 +0000)]
fix bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31846
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 18 Nov 2006 07:51:14 +0000 (07:51 +0000)]
first draft of 1.9 release notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31845
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 18 Nov 2006 06:08:21 +0000 (06:08 +0000)]
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
Reid Spencer [Sat, 18 Nov 2006 05:52:18 +0000 (05:52 +0000)]
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
Reid Spencer [Sat, 18 Nov 2006 04:37:19 +0000 (04:37 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 01:57:19 +0000 (01:57 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 01:34:43 +0000 (01:34 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 01:23:56 +0000 (01:23 +0000)]
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
Chris Lattner [Sat, 18 Nov 2006 00:32:03 +0000 (00:32 +0000)]
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
Chris Lattner [Fri, 17 Nov 2006 23:53:28 +0000 (23:53 +0000)]
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
Chris Lattner [Fri, 17 Nov 2006 22:37:34 +0000 (22:37 +0000)]
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
Chris Lattner [Fri, 17 Nov 2006 22:14:47 +0000 (22:14 +0000)]
rename PPC::COND_BRANCH to PPC::BCC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31834
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 17 Nov 2006 22:10:59 +0000 (22:10 +0000)]
start using PPC predicates more consistently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31833
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 17 Nov 2006 22:10:14 +0000 (22:10 +0000)]
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
Jim Laskey [Fri, 17 Nov 2006 21:19:15 +0000 (21:19 +0000)]
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
Evan Cheng [Fri, 17 Nov 2006 20:41:55 +0000 (20:41 +0000)]
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
Jim Laskey [Fri, 17 Nov 2006 18:49:39 +0000 (18:49 +0000)]
Assert unhandled case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31828
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 17 Nov 2006 18:00:39 +0000 (18:00 +0000)]
Case sensitive not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31827
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 17 Nov 2006 17:19:49 +0000 (17:19 +0000)]
Check for MaxAlign.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31826
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 17 Nov 2006 16:54:21 +0000 (16:54 +0000)]
Tests to verify PowerPC ABI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31825
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 17 Nov 2006 16:09:31 +0000 (16:09 +0000)]
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
Jim Laskey [Fri, 17 Nov 2006 14:06:41 +0000 (14:06 +0000)]
Typo. Fix the nightly tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31823
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 17 Nov 2006 13:07:55 +0000 (13:07 +0000)]
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
Bill Wendling [Fri, 17 Nov 2006 10:09:22 +0000 (10:09 +0000)]
Need <iostream> for the time being.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31821
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 10:05:07 +0000 (10:05 +0000)]
Need iostream to be included for the time being.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31820
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 09:54:47 +0000 (09:54 +0000)]
Moved definition of llvm_ostream wrappers to the Streams.cpp file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31819
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 09:52:49 +0000 (09:52 +0000)]
Used llvm_ostream instead of std::ostream objects. This will reduce use
of the icky <iostream> class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31818
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 09:51:22 +0000 (09:51 +0000)]
Added wrappers for the std::cerr/std::cout objects. The wrappers will
soon replace all uses of those objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31817
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 09:44:28 +0000 (09:44 +0000)]
Needed <iostream> for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31816
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 09:38:03 +0000 (09:38 +0000)]
Needs the iostream include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31815
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 08:03:48 +0000 (08:03 +0000)]
Removed iostream #includes. Replaced std::cerr with DOUT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31814
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 07:52:03 +0000 (07:52 +0000)]
Removed even more std::cerr and #include <iostream> things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31813
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 07:36:54 +0000 (07:36 +0000)]
Replaced DEBUG(std::cerr with DOUT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31812
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 07:33:59 +0000 (07:33 +0000)]
Replace DEBUG(std::cerr with DOUT. Removed some iostream #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31811
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 07:10:51 +0000 (07:10 +0000)]
Removed unneeded <iostream> #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31810
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 17 Nov 2006 06:17:33 +0000 (06:17 +0000)]
If an indvar with a variable stride is used by the exit condition, go ahead
and handle it like constant stride vars. This fixes some bad codegen in
variable stride cases. For example, it compiles this:
void foo(int k, int i) {
for (k=i+i; k <= 8192; k+=i)
flags2[k] = 0;
}
to:
LBB1_1: #bb.preheader
movl %eax, %ecx
addl %ecx, %ecx
movl L_flags2$non_lazy_ptr, %edx
LBB1_2: #bb
movb $0, (%edx,%ecx)
addl %eax, %ecx
cmpl $8192, %ecx
jle LBB1_2 #bb
LBB1_5: #return
ret
or (if the array is local and we are in dynamic-nonpic or static mode):
LBB3_2: #bb
movb $0, _flags2(%ecx)
addl %eax, %ecx
cmpl $8192, %ecx
jle LBB3_2 #bb
and:
lis r2, ha16(L_flags2$non_lazy_ptr)
lwz r2, lo16(L_flags2$non_lazy_ptr)(r2)
slwi r3, r4, 1
LBB1_2: ;bb
li r5, 0
add r6, r4, r3
stbx r5, r2, r3
cmpwi cr0, r6, 8192
bgt cr0, LBB1_5 ;return
instead of:
leal (%eax,%eax,2), %ecx
movl %eax, %edx
addl %edx, %edx
addl L_flags2$non_lazy_ptr, %edx
xorl %esi, %esi
LBB1_2: #bb
movb $0, (%edx,%esi)
movl %eax, %edi
addl %esi, %edi
addl %ecx, %esi
cmpl $8192, %esi
jg LBB1_5 #return
and:
lis r2, ha16(L_flags2$non_lazy_ptr)
lwz r2, lo16(L_flags2$non_lazy_ptr)(r2)
mulli r3, r4, 3
slwi r5, r4, 1
li r6, 0
add r2, r2, r5
LBB1_2: ;bb
li r5, 0
add r7, r3, r6
stbx r5, r2, r6
add r6, r4, r6
cmpwi cr0, r7, 8192
ble cr0, LBB1_2 ;bb
This speeds up Benchmarks/Shootout/sieve from 8.533s to 6.464s and
implements LoopStrengthReduce/var_stride_used_by_compare.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31809
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 17 Nov 2006 06:09:49 +0000 (06:09 +0000)]
New testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31808
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 17 Nov 2006 03:32:33 +0000 (03:32 +0000)]
Undo removal of the runtime libraries. While this may have been a bit
premature, these libraries will be going away for the 2.0 release. Other
arrangements for profiling, gc, etc. should be made in the next few months.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31807
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Nov 2006 02:09:07 +0000 (02:09 +0000)]
More removal of std::cerr and DEBUG, replacing with DOUT instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31806
91177308-0d34-0410-b5e6-
96231b3b80d8