Chris Lattner
|
47db29a405
|
disable this pass for now, it's causing issues
llvm-svn: 30951
|
2006-10-14 00:30:06 +00:00 |
|
Chris Lattner
|
3218e0eed5
|
falling off the end of a function is ok with an unreachable instruction.
llvm-svn: 30950
|
2006-10-14 00:21:48 +00:00 |
|
Jim Laskey
|
dcf983ce41
|
Reduce the workload by not adding chain users to work list.
llvm-svn: 30948
|
2006-10-13 23:32:28 +00:00 |
|
Chris Lattner
|
45ffb1eb70
|
Fix a bug where we incorrectly turned '(X & 0) == 0' into '(X & 0) >> -1',
which is undefined. "0" isn't a power of 2.
llvm-svn: 30947
|
2006-10-13 22:46:18 +00:00 |
|
Evan Cheng
|
ab51cf2e78
|
Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.
llvm-svn: 30945
|
2006-10-13 21:14:26 +00:00 |
|
Chris Lattner
|
55ad08a59b
|
add the branch folding pass as a late cleanup pass for all targets. For now
it just deletes empty MBB's. Soon it will do more :)
llvm-svn: 30941
|
2006-10-13 20:45:56 +00:00 |
|
Chris Lattner
|
3e8e57c771
|
disable some objectionable code, maybe we can bring this pass to life
llvm-svn: 30939
|
2006-10-13 20:43:10 +00:00 |
|
Jim Laskey
|
ccee9baebe
|
Workaround for templates
llvm-svn: 30927
|
2006-10-13 13:02:19 +00:00 |
|
Jim Laskey
|
13d3373e72
|
Clean up dump.
llvm-svn: 30926
|
2006-10-13 13:01:34 +00:00 |
|
Chris Lattner
|
d0620d2773
|
Lower X%C into X/C+stuff. This allows the 'division by a constant' logic to
apply to rems as well as divs. This fixes PR945 and speeds up ReedSolomon
from 14.57s to 10.90s (which is now faster than gcc).
It compiles CodeGen/X86/rem.ll into:
_test1:
subl $4, %esp
movl %esi, (%esp)
movl $2155905153, %ecx
movl 8(%esp), %esi
movl %esi, %eax
imull %ecx
addl %esi, %edx
movl %edx, %eax
shrl $31, %eax
sarl $7, %edx
addl %eax, %edx
imull $255, %edx, %eax
subl %eax, %esi
movl %esi, %eax
movl (%esp), %esi
addl $4, %esp
ret
_test2:
movl 4(%esp), %eax
movl %eax, %ecx
sarl $31, %ecx
shrl $24, %ecx
addl %eax, %ecx
andl $4294967040, %ecx
subl %ecx, %eax
ret
_test3:
subl $4, %esp
movl %esi, (%esp)
movl $2155905153, %ecx
movl 8(%esp), %esi
movl %esi, %eax
mull %ecx
shrl $7, %edx
imull $255, %edx, %eax
subl %eax, %esi
movl %esi, %eax
movl (%esp), %esi
addl $4, %esp
ret
instead of div/idiv instructions.
llvm-svn: 30920
|
2006-10-12 20:58:32 +00:00 |
|
Evan Cheng
|
a731cb674a
|
Add RemoveDeadNode to remove a dead node and its (potentially) dead operands.
llvm-svn: 30916
|
2006-10-12 20:34:05 +00:00 |
|
Chris Lattner
|
2e33fb453b
|
add a minor dag combine noticed when looking at PR945
llvm-svn: 30915
|
2006-10-12 20:23:19 +00:00 |
|
Chris Lattner
|
c040e53372
|
restore my previous patch, now that the X86 backend bug has been fixed:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061009/038518.html
llvm-svn: 30906
|
2006-10-12 17:45:38 +00:00 |
|
Jim Laskey
|
df2ccc395e
|
D'oh - need to use the rigth kind of store.
llvm-svn: 30903
|
2006-10-12 15:22:24 +00:00 |
|
Evan Cheng
|
c935741b1d
|
Backing out Chris' last commit. It's breaking llvm-gcc bootstrapping.
It's turning:
movl -24(%ebp), %esp
subl $16, %esp
movl -24(%ebp), %ecx
into
movl -24(%ebp), %esp
subl $16, %esp
movl %esp, (%esp)
llvm-svn: 30902
|
2006-10-12 08:00:47 +00:00 |
|
Chris Lattner
|
86a012ab61
|
If we see a load from a stack slot into a physreg, consider it as providing
the stack slot. This fixes PR943.
llvm-svn: 30898
|
2006-10-12 02:34:07 +00:00 |
|
Jim Laskey
|
a13b9c7aa4
|
Alias analysis of TRUNCSTORE.
llvm-svn: 30889
|
2006-10-11 18:55:16 +00:00 |
|
Jim Laskey
|
6a4c6d3a7a
|
Typo
llvm-svn: 30884
|
2006-10-11 17:52:19 +00:00 |
|
Jim Laskey
|
0f7c328ae7
|
Handle aliasing of loadext.
llvm-svn: 30883
|
2006-10-11 17:47:52 +00:00 |
|
Jim Laskey
|
08edf332ed
|
Fix regression in combiner alias analysis.
llvm-svn: 30880
|
2006-10-11 13:47:09 +00:00 |
|
Evan Cheng
|
d35734bd1f
|
Naming consistency.
llvm-svn: 30878
|
2006-10-11 07:10:22 +00:00 |
|
Andrew Lenharth
|
a6bbf33cbf
|
Jimptables working again on alpha.
As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff.
llvm-svn: 30873
|
2006-10-11 04:29:42 +00:00 |
|
Chris Lattner
|
6df349676e
|
add two helper methods.
llvm-svn: 30869
|
2006-10-11 03:58:02 +00:00 |
|
Evan Cheng
|
2da4671e05
|
FindModifiedNodeSlot needs to add LoadSDNode ivars to create proper SelectionDAGCSEMap ID.
llvm-svn: 30866
|
2006-10-11 01:47:58 +00:00 |
|
Evan Cheng
|
7994aec7b5
|
Also update getNodeLabel for LoadSDNode.
llvm-svn: 30861
|
2006-10-10 20:11:26 +00:00 |
|
Evan Cheng
|
fe858538c0
|
SDNode::dump should also print out extension type and VT.
llvm-svn: 30860
|
2006-10-10 20:05:10 +00:00 |
|
Chris Lattner
|
8438429c96
|
Fix another bug in extload promotion.
llvm-svn: 30857
|
2006-10-10 18:54:19 +00:00 |
|
Evan Cheng
|
dc6a3aab71
|
Fix a bug introduced by my LOAD/LOADX changes.
llvm-svn: 30853
|
2006-10-10 07:51:21 +00:00 |
|
Evan Cheng
|
e71fe34d75
|
Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.
llvm-svn: 30844
|
2006-10-09 20:57:25 +00:00 |
|
Chris Lattner
|
5ab6d8b3fc
|
Eliminate more token factors by taking advantage of transitivity:
if TF depends on A and B, and A depends on B, TF just needs to depend on
A. With Jim's alias-analysis stuff enabled, this compiles the testcase in
PR892 into:
__Z4test3Val:
subl $44, %esp
call L__Z3foov$stub
movl %edx, 28(%esp)
movl %eax, 32(%esp)
movl %eax, 24(%esp)
movl %edx, 36(%esp)
movl 52(%esp), %ecx
movl %ecx, 4(%esp)
movl %eax, 8(%esp)
movl %edx, 12(%esp)
movl 48(%esp), %eax
movl %eax, (%esp)
call L__Z3bar3ValS_$stub
addl $44, %esp
ret
instead of:
__Z4test3Val:
subl $44, %esp
call L__Z3foov$stub
movl %eax, 24(%esp)
movl %edx, 28(%esp)
movl 24(%esp), %eax
movl %eax, 32(%esp)
movl 28(%esp), %eax
movl %eax, 36(%esp)
movl 32(%esp), %eax
movl 36(%esp), %ecx
movl 52(%esp), %edx
movl %edx, 4(%esp)
movl %eax, 8(%esp)
movl %ecx, 12(%esp)
movl 48(%esp), %eax
movl %eax, (%esp)
call L__Z3bar3ValS_$stub
addl $44, %esp
ret
llvm-svn: 30821
|
2006-10-08 22:57:01 +00:00 |
|
Jim Laskey
|
0463e08005
|
Combiner alias analysis passes Multisource (release-asserts.)
llvm-svn: 30818
|
2006-10-07 23:37:56 +00:00 |
|
Chris Lattner
|
f9f90bc239
|
Fix a bug legalizing zero-extending i64 loads into 32-bit loads. The bottom
part was always forced to be sextload, even when we needed an zextload.
llvm-svn: 30782
|
2006-10-07 00:58:36 +00:00 |
|
Chris Lattner
|
a389a612bb
|
initialize ivar
llvm-svn: 30780
|
2006-10-06 22:52:08 +00:00 |
|
Chris Lattner
|
9043823cf4
|
If a target uses a GOT, put it in the jt data section, not the text
section. This will fix alpha when Andrew implements
AlphaTargetMachine::getTargetLowering().
llvm-svn: 30779
|
2006-10-06 22:50:56 +00:00 |
|
Chris Lattner
|
9d75324ddf
|
jump tables handle pic
llvm-svn: 30776
|
2006-10-06 22:32:29 +00:00 |
|
Chris Lattner
|
4e107aa0b6
|
print labels even if a MBB doesn't have a corresponding LLVM BB, just don't
print the LLVM BB label.
llvm-svn: 30775
|
2006-10-06 21:28:17 +00:00 |
|
Chris Lattner
|
f5839a0816
|
Fix a miscompilation of:
long long foo(long long X) {
return (long long)(signed char)(int)X;
}
Instead of:
_foo:
extsb r2, r4
srawi r3, r4, 31
mr r4, r2
blr
we now produce:
_foo:
extsb r4, r4
srawi r3, r4, 31
blr
This fixes a miscompilation in ConstantFolding.cpp.
llvm-svn: 30768
|
2006-10-06 17:34:12 +00:00 |
|
Chris Lattner
|
16ae43e901
|
MachineBasicBlock::splice was incorrectly updating parent pointers on
instructions.
llvm-svn: 30760
|
2006-10-06 01:12:44 +00:00 |
|
Evan Cheng
|
df9ac47e5e
|
Make use of getStore().
llvm-svn: 30759
|
2006-10-05 23:01:46 +00:00 |
|
Evan Cheng
|
af309d29b1
|
Add getStore() helper function to create ISD::STORE nodes.
llvm-svn: 30758
|
2006-10-05 22:57:11 +00:00 |
|
Chris Lattner
|
8b1a59a272
|
Don't crash if an MBB doesn't have an LLVM BB
llvm-svn: 30757
|
2006-10-05 21:40:14 +00:00 |
|
Jim Laskey
|
6549d22ef9
|
Alias analysis code clean ups.
llvm-svn: 30753
|
2006-10-05 15:07:25 +00:00 |
|
Chris Lattner
|
66c1625a37
|
Emit pic jumptables to the same section that the function is emitted to,
allowing label differences to work. This fixes CodeGen/X86/pic_jumptable.ll
llvm-svn: 30744
|
2006-10-05 03:13:28 +00:00 |
|
Chris Lattner
|
a6a570e02f
|
Pass the MachineFunction into EmitJumpTableInfo.
llvm-svn: 30742
|
2006-10-05 03:01:21 +00:00 |
|
Chris Lattner
|
dc82241182
|
move getSectionForFunction to AsmPrinter
llvm-svn: 30736
|
2006-10-05 02:42:47 +00:00 |
|
Evan Cheng
|
f80dfa83a0
|
Fix some typos that can cause a flag value to have more than one use.
llvm-svn: 30727
|
2006-10-04 22:23:53 +00:00 |
|
Jim Laskey
|
708d0db2d8
|
More extensive alias analysis.
llvm-svn: 30721
|
2006-10-04 16:53:27 +00:00 |
|
Jim Laskey
|
0d5a0eae57
|
More long term solution
llvm-svn: 30720
|
2006-10-04 10:40:15 +00:00 |
|
Jim Laskey
|
66b0b55816
|
Work around for some problems with templates.
llvm-svn: 30715
|
2006-10-04 01:43:13 +00:00 |
|
Evan Cheng
|
5d9fd977d3
|
Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add an
extra operand to LOADX to specify the exact value extension type.
llvm-svn: 30714
|
2006-10-04 00:56:09 +00:00 |
|