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
Bill Wendling
a089d4430d
Need <iostream> for the time being.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31821 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 10:09:22 +00:00
Bill Wendling
31bf2b4979
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
2006-11-17 10:05:07 +00:00
Bill Wendling
ab41c3e6b7
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
2006-11-17 09:54:47 +00:00
Bill Wendling
52883e7a9a
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
2006-11-17 09:52:49 +00:00
Bill Wendling
e562ed1c92
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
2006-11-17 09:51:22 +00:00
Bill Wendling
0231982b62
Needed <iostream> for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31816 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 09:44:28 +00:00
Bill Wendling
6d99777e33
Needs the iostream include.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31815 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 09:38:03 +00:00
Bill Wendling
2e3def1177
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
2006-11-17 08:03:48 +00:00
Bill Wendling
6345d75729
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
2006-11-17 07:52:03 +00:00
Bill Wendling
9be7ac1d8c
Replaced DEBUG(std::cerr with DOUT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31812 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 07:36:54 +00:00
Bill Wendling
5294fb0b3f
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
2006-11-17 07:33:59 +00:00
Bill Wendling
0cb83fcab5
Removed unneeded <iostream> #include.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31810 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 07:10:51 +00:00
Chris Lattner
020f714a93
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
2006-11-17 06:17:33 +00:00
Chris Lattner
fea05b464e
New testcase.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31808 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 06:09:49 +00:00
Reid Spencer
8b2e1419cf
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
2006-11-17 03:32:33 +00:00
Bill Wendling
b2b9c20b61
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
2006-11-17 02:09:07 +00:00
Chris Lattner
280b714cd0
implement a todo: change a map into a vector
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31805 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 01:52:23 +00:00