Chris Lattner
2452595927
visitSwitchCase knows how to insert conditional branches well. Change
...
visitBr to just call visitSwitchCase, eliminating duplicate logic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31167 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 18:07:37 +00:00
Chris Lattner
57ab65972e
Generalize CaseBlock a bit more:
...
Rename LHSBB/RHSBB to TrueBB/FalseBB. Allow the RHS value to be null,
in which case the LHS is treated as a bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31166 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 17:57:59 +00:00
Chris Lattner
33644ba8d2
update comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31165 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 17:41:22 +00:00
Chris Lattner
bacf9f4888
Fix CodeGen/IA64/ret-0.ll, which has apparently been broken since some of the
...
isel changes happened months ago.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31164 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 17:09:43 +00:00
Chris Lattner
d1300ab4f0
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31163 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 17:09:20 +00:00
Rafael Espindola
3d7d39ab15
fix warning about missing newline at end of file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31162 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 17:07:11 +00:00
Chris Lattner
7b248d9866
generalize 'CaseBlock'. It really allows any comparison to be inserted.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31161 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 17:03:35 +00:00
Chris Lattner
578e64a041
implement uncond branch insertion, mark branches with isBranch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31160 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 16:47:57 +00:00
Chris Lattner
11533e2236
implement uncond branch insertion for the branch folding pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31159 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 16:44:55 +00:00
Chris Lattner
0476b28525
implement uncond branch insertion so alpha works work branchfolding.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31158 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 16:41:36 +00:00
Chris Lattner
e87146ace8
implement uncond branch insertion for sparc to fix regressions from last night
...
due to branchfolding
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31157 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 16:39:19 +00:00
Chris Lattner
cf10391a72
new bad case
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31156 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 16:12:47 +00:00
Jim Laskey
62d07d6ace
Don't do dead block elimination in fast mode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31155 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 16:11:49 +00:00
Rafael Espindola
24321d7e23
fix assert comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31154 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 14:47:28 +00:00
Jim Laskey
e719d9f8f2
LinearScanner hotspot.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31153 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 14:35:25 +00:00
Jim Laskey
fcc1d9473e
Tighter data structure for deleted debug labels.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31152 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 11:50:43 +00:00
Chris Lattner
ae5d51c9c9
Fix Transforms/ScalarRepl/2006-10-23-PointerUnionCrash.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31151 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 06:26:32 +00:00
Chris Lattner
b0d6dbfd7c
New testcase that crashes scalarrepl
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31150 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 06:26:08 +00:00
Chris Lattner
7d09784d3f
move single basic blocks that are neither fallen into nor fall out of into
...
a place more useful. In particular, if we can put them in a place where code
will be able to fall into it, do so. Otherwise, put it in a place it can fall
through into a successor. Otherwise, if preventing a fallthrough, move to the
end of the function, out of the way.
This deletes several hundred unconditional branches from spass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31149 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 01:12:32 +00:00
Chris Lattner
e90c53756e
Add intrinsics for the rest of the DCB* instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31148 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 01:08:42 +00:00
Chris Lattner
0b2e61351c
add missing dcb* intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31147 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 01:07:39 +00:00
Chris Lattner
ef2aa193d6
Revert back to r1.21, which was the last revision of predsimplify that
...
passes llvm-gcc bootstrap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31146 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 00:36:21 +00:00
Chris Lattner
c585a3f62a
add moveBefore/moveAfter helper methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31145 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 00:02:26 +00:00
Devang Patel
2a4dd68535
Fix typo. Add more comment. Avoid extra hash_map search.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31144 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 23:57:53 +00:00
Chris Lattner
34ea07692f
add two helper methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31143 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 23:35:35 +00:00
Devang Patel
f2ca21f88f
Add removeModule().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31142 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 23:12:26 +00:00
Chris Lattner
a4bcfe12d1
Enable tail merging by default.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31140 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 22:10:12 +00:00
Evan Cheng
2cd931fee5
Update test case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31139 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 21:47:11 +00:00
Rafael Espindola
c391d16b49
implement STRB and STRH
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31138 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 20:34:27 +00:00
Rafael Espindola
d8ed7f8cde
expand ISD::MEMSET
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31137 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 20:08:22 +00:00
Andrew Lenharth
12711dfb16
Make these hack flags hidden, like other dsa hack flags
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31136 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 19:55:24 +00:00
Andrew Lenharth
72be6e63b1
Revert the aggressive inlining for now, it doesn't handle external correctly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31135 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 19:53:37 +00:00
Andrew Lenharth
9a9aa4c1ad
change this back
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31134 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 19:52:54 +00:00
Andrew Lenharth
21c04a3c8b
restore these tests
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31133 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 19:52:27 +00:00
Chris Lattner
ddaaa37487
Handle fallout from the recent branch-on-undef changes. This fixes
...
Prolangs-C/agrep and SCCP/2006-10-23-IPSCCP-Crash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31132 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 18:57:02 +00:00
Chris Lattner
e285d59ee6
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31131 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 18:54:35 +00:00
Chris Lattner
b354343af7
Minor tweak. Instead of generating:
...
movl 32(%esp), %eax
cmpl $1, %eax
je LBB1_1 #bb
LBB1_4: #entry
cmpl $2, %eax
je LBB1_2 #bb2
jmp LBB1_3 #UnifiedReturnBlock
LBB1_1: #bb
notice that we would miss the fall through and emit this instead:
movl 32(%esp), %eax
cmpl $2, %eax
je LBB1_2 #bb2
LBB1_4: #entry
cmpl $1, %eax
jne LBB1_3 #UnifiedReturnBlock
LBB1_1: #bb
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31130 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 18:38:22 +00:00
Jim Laskey
66ebf0973d
More complete solution to deleting blocks and debug info.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31129 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 14:56:37 +00:00
Jim Laskey
978b35e502
[SU]int update - inactive code may get activated someday
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31128 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 14:39:22 +00:00
Evan Cheng
937e87ad2a
Fix test case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31127 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 05:11:09 +00:00
Nick Lewycky
c17229d591
Remove the Backwards operation. Resolving now works at the time when a
...
property is added by running through the list of uses of the value and
adding resolved properties to the property set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31126 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 01:56:02 +00:00
Chris Lattner
b2e806eecd
Fix phi node updating for switches lowered to linear sequences of branches.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31125 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-22 23:00:53 +00:00
Chris Lattner
e236ac64a2
disable this code for now, it's not yet safely updating phi nodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31124 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-22 22:47:10 +00:00
Nick Lewycky
7e189d095e
Fix similar missing optimization opportunity in XOR.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31123 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-22 22:22:58 +00:00
Chris Lattner
ecb8d06356
this part implemented.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31122 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-22 21:40:12 +00:00
Nick Lewycky
92a8b71dc1
Whoops! Add missing NULL check.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31121 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-22 21:38:24 +00:00
Anton Korobeynikov
1a3ecbb4a6
Do section switching right way for Mingw\Cygwin and Linux.
...
This will allow (after llvm-gcc linkage fix) more dummy tests using
libstdc++ to pass on mingw :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31120 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-22 21:37:13 +00:00
Chris Lattner
d2c1d2200b
Implement PR964 and Regression/CodeGen/Generic/SwitchLowering.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31119 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-22 21:36:53 +00:00
Nick Lewycky
5062250f36
Handle "if ((x|y) != 0)" for ints like we do for bools. Fixes missed
...
optimization opportunity pointed out by Chris Lattner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31118 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-22 21:36:41 +00:00
Chris Lattner
96f5362ff2
new testcase for PR964
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31117 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-22 21:36:06 +00:00