Jim Laskey [Wed, 18 Oct 2006 12:29:57 +0000 (12:29 +0000)]
Use global info for alias analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31035
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 18 Oct 2006 12:03:07 +0000 (12:03 +0000)]
implement CallingConv::Fast as CallingConv::C
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31034
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 18 Oct 2006 09:12:29 +0000 (09:12 +0000)]
Fixed mingw\cygwin linkonce linkage once again.
Added workaround for linker bug with linkonce sections.
Changed sections prefix to allow linker merge them
(PE loader doesn't like too much long-named sections :) )
All of this unbreaks libstdc++ on mingw32 allowing (small)
programs to be compiled, linked and run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31033
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 18 Oct 2006 05:50:12 +0000 (05:50 +0000)]
Add LCSSA to the LLVM lexicon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31032
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 18 Oct 2006 02:21:48 +0000 (02:21 +0000)]
Add support for the new "target data" information in .ll files. This provides
a better encoding of the targets data layout, rather than trying to guess it
from the endianness and pointersize like before.
Update the generated files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31031
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 18 Oct 2006 02:21:12 +0000 (02:21 +0000)]
Add support for the new "target data" information in .ll files. This provides
a better encoding of the targets data layout, rather than trying to guess it
from the endianness and pointersize like before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31030
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 18 Oct 2006 01:21:35 +0000 (01:21 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31029
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 18 Oct 2006 01:20:43 +0000 (01:20 +0000)]
set the ppc64 stack pointer right, dynamic alloca now works for ppc64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31028
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 18 Oct 2006 01:18:48 +0000 (01:18 +0000)]
Expand alloca for ppc64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31027
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 23:17:27 +0000 (23:17 +0000)]
Teach the branch folder to update debug info if it removes blocks with line
# notes in it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31026
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 23:16:42 +0000 (23:16 +0000)]
add a method to remove a line # record.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31025
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 22:41:45 +0000 (22:41 +0000)]
expose DWARF_LABEL opcode# so the branch folder can update debug info properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31024
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 22:12:15 +0000 (22:12 +0000)]
update comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31023
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 22:06:46 +0000 (22:06 +0000)]
Do not leak all of the SourceLineInfo objects. Do not bother mallocing each
one separately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31022
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 21:51:44 +0000 (21:51 +0000)]
minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31021
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 21:47:13 +0000 (21:47 +0000)]
Trivial patch to speed up legalizing common i64 constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31020
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 21:24:15 +0000 (21:24 +0000)]
Fix CodeGen/PowerPC/2006-10-17-brcc-miscompile.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31019
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 21:23:20 +0000 (21:23 +0000)]
new testcase, miscompilation of llvm with itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31018
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 17 Oct 2006 21:18:26 +0000 (21:18 +0000)]
Fix printer for StoreSDNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31017
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 17 Oct 2006 21:14:32 +0000 (21:14 +0000)]
Reflect MemOpAddrMode change; added a helper to create pre-indexed load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31016
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 17 Oct 2006 21:12:56 +0000 (21:12 +0000)]
Split PRE_INDEXED to PRE_INC / PRE_DEC and similarly for POST_INDEXED.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31015
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 17 Oct 2006 21:05:33 +0000 (21:05 +0000)]
expand ISD::SDIV, ISD::UDIV, ISD::SREM and ISD::UREM
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31014
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 17 Oct 2006 20:45:22 +0000 (20:45 +0000)]
add the FPUnaryOp and DFPUnaryOp classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31013
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 17 Oct 2006 20:33:13 +0000 (20:33 +0000)]
add FABSS and FABSD
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31012
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 17 Oct 2006 20:29:49 +0000 (20:29 +0000)]
Adding linkonce linkage codegeneration support for mingw32\cygwin
targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31011
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 17 Oct 2006 20:20:07 +0000 (20:20 +0000)]
cleanup some tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31010
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 17 Oct 2006 19:33:52 +0000 (19:33 +0000)]
Make it simplier to dump DAGs while in DAGCombiner. Remove a nasty optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31009
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 17 Oct 2006 18:29:14 +0000 (18:29 +0000)]
remove extra [] in stores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31008
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 18:16:40 +0000 (18:16 +0000)]
Enable deleting branches to successor blocks. With the previous patches,
branch folding can now compile stuff like this:
void foo(int W, int X, int Y, int Z) {
if (W & 1) {
for (; X;--X) bar();
} else if (W & 2) {
for (; Y;--Y) bar();
} else if (W & 4) {
for (; Z;--Z) bar();
} else if (W & 8) {
for (; W;--W) bar();
}
if (W) {
bar();
}
}
contrived testcase where loops exits all end up merging together. To have
the loop merges be:
...
cmplw cr0, r30, r27
bne cr0, LBB1_14 ;bb38
LBB1_16: ;cond_next48.loopexit
mr r27, r29
LBB1_20: ;cond_next48
cmplwi cr0, r27, 0
beq cr0, LBB1_22 ;UnifiedReturnBlock
...
instead of:
...
cmplw cr0, r30, r27
bne cr0, LBB1_14 ;bb38
LBB1_16: ;cond_next48.loopexit
mr r27, r29
b LBB1_20 ;cond_next48
LBB1_17: ;cond_next48.loopexit1
b LBB1_20 ;cond_next48
LBB1_18: ;cond_next48.loopexit2
b LBB1_20 ;cond_next48
LBB1_19: ;cond_next48.loopexit3
LBB1_20: ;cond_next48
cmplwi cr0, r27, 0
beq cr0, LBB1_22 ;UnifiedReturnBlock
...
This is CodeGen/PowerPC/branch-opt.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31006
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 18:14:39 +0000 (18:14 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31005
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 18:06:55 +0000 (18:06 +0000)]
add support for inserting an uncond branch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31003
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 17 Oct 2006 18:04:53 +0000 (18:04 +0000)]
initial implementation of addressing mode 5
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31002
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 17 Oct 2006 17:17:24 +0000 (17:17 +0000)]
Clean up interface to getGlobalLinkName.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31001
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 17 Oct 2006 17:13:52 +0000 (17:13 +0000)]
Reenable this pass, fixing the bugs in it.
It now correctly deletes unreachable blocks and blocks that are empty.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31000
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 17 Oct 2006 17:06:35 +0000 (17:06 +0000)]
Make sure operand does have size and element type operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30999
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 17 Oct 2006 14:34:02 +0000 (14:34 +0000)]
add the immediate to the Offset in eliminateFrameIndex
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30998
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 17 Oct 2006 13:41:07 +0000 (13:41 +0000)]
Basic support for getGlobalLinkName.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30997
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 17 Oct 2006 13:36:07 +0000 (13:36 +0000)]
add FSTD and FSTS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30996
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 17 Oct 2006 13:13:23 +0000 (13:13 +0000)]
add FCPYS and FCPYD
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30995
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 17 Oct 2006 11:30:57 +0000 (11:30 +0000)]
Use S_debug for dwarf info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30994
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 17 Oct 2006 00:24:49 +0000 (00:24 +0000)]
Proper fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30993
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 16 Oct 2006 23:44:08 +0000 (23:44 +0000)]
One more try.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30992
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 16 Oct 2006 23:08:08 +0000 (23:08 +0000)]
Undo Chris' last patch, it caused a regression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30991
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 16 Oct 2006 22:53:28 +0000 (22:53 +0000)]
Unbreak x86-64 build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30990
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 16 Oct 2006 22:49:37 +0000 (22:49 +0000)]
Be careful when looking through a vbit_convert. Optimizing this:
(vector_shuffle
(vbitconvert (vbuildvector (copyfromreg v4f32), 1, v4f32), 4, f32),
(undef, undef, undef, undef), (0, 0, 0, 0), 4, f32)
to the
vbitconvert
is a very bad idea.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30989
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 16 Oct 2006 21:50:04 +0000 (21:50 +0000)]
add fdivs e fdivd
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30988
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 16 Oct 2006 21:10:32 +0000 (21:10 +0000)]
expand ISD::SHL_PARTS, ISD::SRA_PARTS and ISD::SRL_PARTS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30987
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 16 Oct 2006 21:01:55 +0000 (21:01 +0000)]
Added a X86CompilationCallback variant which saves XMM argument registers for targets with SSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30986
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 16 Oct 2006 21:00:37 +0000 (21:00 +0000)]
Proper fix for rdar://problem/
4770604 Thanks to Stuart Hastings!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30985
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 16 Oct 2006 20:52:31 +0000 (20:52 +0000)]
Pass AliasAnalysis thru to DAGCombiner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30984
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Oct 2006 20:41:42 +0000 (20:41 +0000)]
add a ReplaceMBBInJumpTables method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30983
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 16 Oct 2006 19:38:41 +0000 (19:38 +0000)]
Global name regression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30982
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 16 Oct 2006 18:39:22 +0000 (18:39 +0000)]
define the DFPBinOp class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30981
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 16 Oct 2006 18:32:36 +0000 (18:32 +0000)]
add the FPBinOp class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30980
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 16 Oct 2006 18:18:14 +0000 (18:18 +0000)]
define the Addr1BinOp class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30979
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 16 Oct 2006 17:57:20 +0000 (17:57 +0000)]
define the IntBinOp class and use it to implement the multiply instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30978
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 16 Oct 2006 17:38:12 +0000 (17:38 +0000)]
fix assembly syntax
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30977
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 16 Oct 2006 17:17:22 +0000 (17:17 +0000)]
implement LDRB, LDRSB, LDRH and LDRSH
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30976
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 16 Oct 2006 16:33:29 +0000 (16:33 +0000)]
implement smull and umull
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30975
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 16 Oct 2006 06:36:00 +0000 (06:36 +0000)]
Avoid getting into an infinite loop when -disable-x86-shuffle-opti is specified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30974
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 16 Oct 2006 06:34:55 +0000 (06:34 +0000)]
SelectScalarSSELoad should call CanBeFoldedBy as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30973
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 16 Oct 2006 06:33:44 +0000 (06:33 +0000)]
Passing isel root and use operands to ComplexPattern functions, these should do the usual load folding checks as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30972
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 15 Oct 2006 23:27:25 +0000 (23:27 +0000)]
regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30971
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 15 Oct 2006 23:26:46 +0000 (23:26 +0000)]
Produce a useful error message for Regression/Verifier/2006-10-15-AddrLabel.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30970
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 15 Oct 2006 23:26:28 +0000 (23:26 +0000)]
testcase that causes the asmparser to assert
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30969
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 15 Oct 2006 23:21:12 +0000 (23:21 +0000)]
label* is not a valid type, add an assertion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30968
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 15 Oct 2006 22:42:15 +0000 (22:42 +0000)]
fix a buggy check that accidentally disabled this xform
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30967
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 15 Oct 2006 20:05:59 +0000 (20:05 +0000)]
clarify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30966
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 15 Oct 2006 00:11:05 +0000 (00:11 +0000)]
Document the VAArg, and vector instruction opcodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30965
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 14 Oct 2006 20:53:35 +0000 (20:53 +0000)]
Align stack size to DWORD boundary
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30964
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 14 Oct 2006 17:59:54 +0000 (17:59 +0000)]
expand ISD::BRCOND
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30963
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 14 Oct 2006 13:42:53 +0000 (13:42 +0000)]
fix some fp condition codes
use non trapping comparison instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30962
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sat, 14 Oct 2006 12:14:27 +0000 (12:14 +0000)]
Tidy up after truncstore changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30961
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 14 Oct 2006 08:35:02 +0000 (08:35 +0000)]
One cyclic dag a day is good for ya...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30960
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 14 Oct 2006 08:34:06 +0000 (08:34 +0000)]
Debug tweak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30959
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 14 Oct 2006 08:33:25 +0000 (08:33 +0000)]
Corrected load folding check. We need to start from the root of the sub-dag
being matched and ensure there isn't a non-direct path to the load (i.e. a
path that goes out of the sub-dag.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30958
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 14 Oct 2006 08:30:53 +0000 (08:30 +0000)]
Start checking from the root of the matched sub-tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30957
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 14 Oct 2006 08:30:15 +0000 (08:30 +0000)]
When checking if a load can be folded, we check if there is any non-direct
way to reach the load via any nodes that would be folded. Start from the
root of the matched sub-tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30956
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 14 Oct 2006 03:52:46 +0000 (03:52 +0000)]
Make sure that the node returned by SimplifySetCC is added to the worklist
so that it can be deleted if unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30955
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 14 Oct 2006 03:40:02 +0000 (03:40 +0000)]
testcase for recent dag combiner patch. Before the entry bb was:
_test:
stwu r1, -80(r1)
stw r1, 76(r1)
mflr r11
stw r11, 88(r1)
rlwinm r2, r4, 0, 30, 31
cmplwi cr7, r2, 2
mfcr r2
rlwinm r2, r2, 30, 31, 31
cmplwi cr0, r2, 0
bne cr0, LBB1_2 ;UnifiedReturnBlock
after it is:
_test:
stwu r1, -80(r1)
stw r1, 76(r1)
mflr r11
stw r11, 88(r1)
rlwinm r2, r4, 0, 30, 31
cmplwi cr0, r2, 2
bgt cr0, LBB1_2 ;UnifiedReturnBlock
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30954
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 14 Oct 2006 01:02:29 +0000 (01:02 +0000)]
fold setcc of a setcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30953
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 14 Oct 2006 00:41:01 +0000 (00:41 +0000)]
When SimplifySetCC was moved to the DAGCombiner, it was never removed from
SelectionDAG and it has since bitrotted. Remove the copy from SelectionDAG.
Next, remove the constant folding piece of DAGCombiner::SimplifySetCC into
a new FoldSetCC method which can be used by getNode() and SimplifySetCC.
This fixes obscure bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30952
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 14 Oct 2006 00:30:06 +0000 (00:30 +0000)]
disable this pass for now, it's causing issues
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30951
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 14 Oct 2006 00:21:48 +0000 (00:21 +0000)]
falling off the end of a function is ok with an unreachable instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30950
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 23:54:16 +0000 (23:54 +0000)]
testcase for recent selectiondag patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30949
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 13 Oct 2006 23:32:28 +0000 (23:32 +0000)]
Reduce the workload by not adding chain users to work list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30948
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 22:46:18 +0000 (22:46 +0000)]
Fix a bug where we incorrectly turned '(X & 0) == 0' into '(X & 0) >> -1',
which is undefined. "0" isn't a power of 2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30947
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 21:21:17 +0000 (21:21 +0000)]
implement branch inspection/modification methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30946
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 13 Oct 2006 21:14:26 +0000 (21:14 +0000)]
Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30945
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 21:02:27 +0000 (21:02 +0000)]
it is easier to implement these when they are virtual
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30944
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 20:59:31 +0000 (20:59 +0000)]
allow branch reversal to fail
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30943
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 13 Oct 2006 20:53:50 +0000 (20:53 +0000)]
Corrected formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30942
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 20:45:56 +0000 (20:45 +0000)]
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 :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30941
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 20:44:01 +0000 (20:44 +0000)]
replace the existing branch inspection/modification APIs with something more
useful and general.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30940
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 20:43:10 +0000 (20:43 +0000)]
disable some objectionable code, maybe we can bring this pass to life
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30939
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 20:40:42 +0000 (20:40 +0000)]
remove some dead code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30938
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 20:20:58 +0000 (20:20 +0000)]
add note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30937
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 19:10:34 +0000 (19:10 +0000)]
set isBarrier correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30936
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 17:56:02 +0000 (17:56 +0000)]
Correctly handle instruction separators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30935
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Oct 2006 17:50:07 +0000 (17:50 +0000)]
Expose method and ivars for measuring inline asm length properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30934
91177308-0d34-0410-b5e6-
96231b3b80d8