Evan Cheng
15699fc5ed
Rename some variables to avoid confusion with SelectionDAGISel::BB.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34110 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 01:08:18 +00:00
Evan Cheng
2e67781ef5
Make use of TLI.SimplifySetCC() in LegalizeSetCCOperands().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34066 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 22:16:19 +00:00
Evan Cheng
fa1eb27b76
Move SimplifySetCC to TargetLowering and allow it to be shared with legalizer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34065 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 22:13:59 +00:00
Evan Cheng
f50d09ad21
Fixed a long standing spiller bug that's exposed by Thumb:
...
The code sequence before the spiller is something like:
= tMOVrr
%reg1117 = tMOVrr
%reg1078 = tLSLri %reg1117, 2
The it starts spilling:
%r0 = tRestore <fi#5>, 0
%r1 = tRestore <fi#7>, 0
%r1 = tMOVrr %r1<kill>
tSpill %r1, <fi#5>, 0
%reg1078 = tLSLri %reg1117, 2
It restores the value while processing the first tMOVrr. At this point, the
spiller remembers fi#5 is available in %r0. Next it processes the second move.
It restores the source before the move and spills the result afterwards. The
move becomes a noop and is deleted. However, a spill has been inserted and that
should invalidate reuse of %r0 for fi#5 and add reuse of %r1 for fi#5.
Therefore, %reg1117 (which is also assigned fi#5) should get %r1, not %r0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34039 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 06:04:54 +00:00
Bill Wendling
04523eab6b
Split the addPassesToEmitFile method up into two. This is so that we can
...
do some common stuff, then on our own add an object file writer (by calling
a concrete function), and then do some finishing stuff, if need be.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34032 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 01:36:53 +00:00
Bill Wendling
8f84f1f301
Add function to create a file writer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34031 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 01:35:27 +00:00
Bill Wendling
4b2ca1a3c4
Moved from include/llvm/CodeGen to lib/CodeGen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34027 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 01:30:50 +00:00
Nate Begeman
c2b2d6a7c9
Fix a fixme by correctly calculating preferred alignments for functions,
...
based on the alignment of the symbol and the target data's preferred align
for that type.
Also, rename some arguments for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33984 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 05:47:16 +00:00
Chris Lattner
c67da0cf13
Two fixes:
...
1. Memset takes an i32 for the value to set, not i8. This was causing GCC to
ICE all over the place (PR1183).
2. memcpy/memmove were not properly zext/trunc'ing the size in some cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33970 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 19:06:38 +00:00
Chris Lattner
7d6f77db28
Fix PR1181 and CodeGen/CBackend/2007-02-05-memset.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33957 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 06:07:51 +00:00
Chris Lattner
4b09252e4b
Oops, swap this. This fixes a regression I introduced in the ARM backend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33946 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 01:56:31 +00:00
Chris Lattner
b6a24bfa95
Fix PR1178
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33924 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 21:23:52 +00:00
Anton Korobeynikov
13b7d3d499
Fixing silly "not-implemented" bug in AsmPrinter. This fixes PR1169.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33888 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 23:27:42 +00:00
Chris Lattner
831e0374a7
switch the VRBaseMap in the scheduler from an std::map to a DenseMap. This
...
speeds up the isel pass from 2.5570s to 2.4722s on kc++ (3.4%).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33879 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 08:47:20 +00:00
Chris Lattner
3f97eb449b
Introduce new UnarySDNode/BinarySDNode/TernarySDNode nodes, which coallocate
...
their operands with the node itself. This reduces malloc traffic for operand
lists. This reduces isel time on kc++ from 2.6164 to 2.5570s, about 2.3%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33878 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 08:35:21 +00:00
Chris Lattner
ab4ed59538
eliminate the SDNode::setValueTypes method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33876 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 07:37:24 +00:00
Chris Lattner
63e3f14df6
eliminate a bunch of duplicate ctors and helper functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33875 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 07:28:00 +00:00
Chris Lattner
d429bcd4ac
move MorphNode to out of line and merge setNodeOperands into it. There is
...
no behavior or performance change here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33869 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:49:29 +00:00
Chris Lattner
48b8592652
simplify MorphNodeTo to take a VTList operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33868 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:41:42 +00:00
Chris Lattner
67612a1188
eliminate some extraneous methods in SDNode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33867 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:32:44 +00:00
Chris Lattner
c76e3c8602
Give each selectiondag node class a home for it's vtable and rtti info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33866 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:23:32 +00:00
Chris Lattner
9f24ad79ce
Switch VAlueMap from std::map to DenseMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33863 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 01:35:11 +00:00
Chris Lattner
0da331fe0b
Switch NodeMap from std::map to DenseMap, this speeds up isel by 2.3%
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33862 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 01:31:47 +00:00
Chris Lattner
0ed4417075
swtich vector-> smallvector, speeding up selectiondag stuff 1%
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33861 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 01:20:02 +00:00
Chris Lattner
40030bfa75
Switch promoted/expanded ops over to using a DenseMap. Vector related maps
...
aren't worth it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33860 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 01:17:38 +00:00
Chris Lattner
718071c476
switch LegalizedNodes from std::map to a DenseMap. This speeds up isel
...
time as a whole on kc++ by 11%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33857 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:50:02 +00:00
Chris Lattner
00755df36c
Eliminate some malloc traffic from LegalizeAllNodesNotLeadingTo, speeding
...
up isel on kimwitu by 0.7%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33853 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:27:56 +00:00
Chris Lattner
d48c5e871a
Eliminate some std::sets. This speeds up isel of kimwitu by about 0.9%
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33852 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:24:41 +00:00
Chris Lattner
cf5640bd52
Switch SelectionDAG::ReplaceAllUsesOfValueWith to use a SmallSetVector for
...
the users set (most nodes have 1 or 2 users). This speeds up the isel pass
3.2% on kimwitu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33849 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:14:31 +00:00
Bill Wendling
886b412fb0
Pass in non-Mach-O-specific parameters to the GetTargetRelocation method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33816 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 02:39:40 +00:00
Chris Lattner
2ba528b3a7
switch the sched unit map over to use a DenseMap instead of std::map. This
...
speeds up isel as a whole time by 2.6%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33810 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 01:34:13 +00:00
Chris Lattner
7971514755
Switch ComputeTopDownOrdering over to using a densemap. This speeds up
...
isel as a whole by 3.3%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33809 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 01:12:36 +00:00
Evan Cheng
5efdecc030
Pasto
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33806 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 00:43:46 +00:00
Reid Spencer
1b19cd35fe
Use short form of BinaryOperator create function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33784 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 14:09:34 +00:00
Reid Spencer
832254e1c2
Changes to support making the shift instructions be true BinaryOperators.
...
This feature is needed in order to support shifts of more than 255 bits
on large integer types. This changes the syntax for llvm assembly to
make shl, ashr and lshr instructions look like a binary operator:
shl i32 %X, 1
instead of
shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 02:16:23 +00:00
Jim Laskey
b47f32e0e9
Slip up
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33758 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 17:48:20 +00:00
Jim Laskey
29bf16a0bd
Emit labels as label_n and not as debug_n
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33757 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 17:46:10 +00:00
Jim Laskey
b82313fdc2
Support for non-landing pad exception handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33755 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 16:31:34 +00:00
Anton Korobeynikov
b25fe82671
Fixed uninitialized stuff inside LegalizeDAG. Fortunately, the only
...
affected part is codegen of "memove" inside x86 backend. This fixes
PR1144
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33752 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 08:39:52 +00:00
Chris Lattner
94c002a190
rename DenseMap to IndexedMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33749 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 05:32:05 +00:00
Chris Lattner
fea997aac5
Fit in 80 columns
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33745 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 04:55:59 +00:00
Chris Lattner
527fae12c3
Emit a better assertion message for PR1133
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33736 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 01:21:12 +00:00
Evan Cheng
d385fd62cb
Allow the target to override the ISD::CondCode that's to be used to test the
...
result of the comparison libcall against zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33701 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-31 09:29:11 +00:00
Reid Spencer
5cbf985dcb
For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
...
confusion with external linkage types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33663 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 20:08:39 +00:00
Chris Lattner
367f109ba9
add initial support for handling inline asms with multiple constraints.
...
This doesn't do the "right thing" but will probably work in most cases.
This implements CodeGen/PowerPC/2007-01-29-lbrx-asm.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33643 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 23:45:14 +00:00
Jim Laskey
c1c47c3fa4
Out of line function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33641 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 23:40:33 +00:00
Jim Laskey
e078d1a14a
Only gather frame info if debug or eh.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33639 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 23:20:22 +00:00
Nate Begeman
bcc5f36765
Finish off bug 680, allowing targets to custom lower frame and return
...
address nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33636 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:58:52 +00:00
Nate Begeman
1257c855d7
Properly support cstrings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33629 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 21:20:42 +00:00
Jim Laskey
1b340dc8e2
Flag to control exception handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33628 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 20:48:32 +00:00