Dan Gohman
5b994215c8
Add an assertion to catch SUnits reallocations. And add a doxygen
...
comment for the ScheduleDAGSDNodes class.
llvm-svn: 61341
2008-12-22 21:06:20 +00:00
Dan Gohman
cfc84d4332
Clarify a comment.
...
llvm-svn: 61338
2008-12-22 19:44:39 +00:00
Mikhail Glushenkov
2cd5897920
Use ignore & grep instead of XFAIL.
...
llvm-svn: 61307
2008-12-21 07:47:49 +00:00
Nick Lewycky
8fd2389593
Turn strcmp into memcmp, such as strcmp(P, "x") --> memcmp(P, "x", 2).
...
llvm-svn: 61297
2008-12-21 00:19:21 +00:00
Dan Gohman
c9f244842c
Fix fast-isel to not emit invalid assembly when presented with a
...
constant shift count that doesn't fit in the shift instruction's
immediate field. This fixes PR3242.
llvm-svn: 61281
2008-12-20 17:19:40 +00:00
Dan Gohman
a8303269cf
Reword the comment for ConstantInt's getLimitedValue.
...
llvm-svn: 61280
2008-12-20 17:06:39 +00:00
Nick Lewycky
dd2222ab27
Remove redundant test for vector-nature. Scan the vector first to see whether
...
our optz'n will apply to it, then build the replacement vector only if needed.
llvm-svn: 61279
2008-12-20 16:48:00 +00:00
Dan Gohman
6124fd2975
LiveInterval::removeKills and isKill don't need 'this' and
...
can be static member functions.
llvm-svn: 61278
2008-12-20 16:44:40 +00:00
Dan Gohman
ab5072f624
Use SmallVector's pop_back_val.
...
llvm-svn: 61277
2008-12-20 16:42:33 +00:00
Dan Gohman
8c5bea15ca
Use the correct Preds and Succs lists in setHeightDirty()
...
and setDepthDirty(), respectively. This fixes PR3241.
llvm-svn: 61276
2008-12-20 16:34:57 +00:00
Bill Wendling
3632d60482
More precise XFAIL.
...
llvm-svn: 61265
2008-12-19 22:28:23 +00:00
Bill Wendling
1bbcac82ce
Un-XFAIL this test because it's passing and John doesn't seem interested in un-XFAILing it.
...
llvm-svn: 61264
2008-12-19 22:25:01 +00:00
Dan Gohman
e75b2ce6e2
Use ~0u instead of -1u as the special value, to hopefully avoid
...
warnings on compilers that warn about such things.
llvm-svn: 61263
2008-12-19 22:23:43 +00:00
Evan Cheng
da55c4ffb7
Fix PR3149. If an early clobber def is a physical register and it is tied to an input operand, it effectively extends the live range of the physical register. Currently we do not have a good way to represent this.
...
172 %ECX<def> = MOV32rr %reg1039<kill>
180 INLINEASM <es:subl $5,$1
sbbl $3,$0>, 10, %EAX<def>, 14, %ECX<earlyclobber,def>, 9, %EAX<kill>,
36, <fi#0>, 1, %reg0, 0, 9, %ECX<kill>, 36, <fi#1>, 1, %reg0, 0
188 %EAX<def> = MOV32rr %EAX<kill>
196 %ECX<def> = MOV32rr %ECX<kill>
204 %ECX<def> = MOV32rr %ECX<kill>
212 %EAX<def> = MOV32rr %EAX<kill>
220 %EAX<def> = MOV32rr %EAX
228 %reg1039<def> = MOV32rr %ECX<kill>
The early clobber operand ties ECX input to the ECX def.
The live interval of ECX is represented as this:
%reg20,inf = [46,47:1)[174,230:0) 0@174-(230) 1@46-(47)
The right way to represent this is something like
%reg20,inf = [46,47:2)[174,182:1)[181:230:0) 0@174-(182) 1@181-230 @2@46-(47)
Of course that won't work since that means overlapping live ranges defined by two val#.
The workaround for now is to add a bit to val# which says the val# is redefined by a early clobber def somewhere. This prevents the move at 228 from being optimized away by SimpleRegisterCoalescing::AdjustCopiesBackFrom.
llvm-svn: 61259
2008-12-19 20:58:01 +00:00
John Criswell
b7e13addf7
The fields for the stoppoint debug intrinsic have not changed, so update the
...
version number assertions.
llvm-svn: 61257
2008-12-19 19:56:36 +00:00
Bill Wendling
8f79cd1f1b
This test works again for Darwin because a patch was reverted.
...
llvm-svn: 61254
2008-12-19 19:08:13 +00:00
Gordon Henriksen
9b8b72fe0a
Add dyn_cast_or_null bindings for some additional classes missed in r61252.
...
llvm-svn: 61253
2008-12-19 18:51:17 +00:00
Gordon Henriksen
1f4a555efc
C bindings for dyn_cast_or_null.
...
This operation can be used to build dyn_cast, isa, and cast.
llvm-svn: 61252
2008-12-19 18:39:45 +00:00
Chris Lattner
7819d9c8be
Add support for writing LLVM IR to a specified BitstreamWriter.
...
Patch by Lukasz Janyst!
llvm-svn: 61251
2008-12-19 18:37:59 +00:00
Dan Gohman
22b7b328a4
Move the patterns which have i8 immediates before the patterns
...
that have i32 immediates so that they get selected first. This
currently only matters in the JIT, as assemblers will
automatically use the smallest encoding.
llvm-svn: 61250
2008-12-19 18:25:21 +00:00
Dan Gohman
84db870cc3
Use dyn_cast intead of isa + cast in the generated DAGISel code. This
...
reduces the amount of code slightly when assertions are enabled.
llvm-svn: 61249
2008-12-19 18:13:39 +00:00
Evan Cheng
17b53ef5b0
- CodeGenPrepare does not split loop back edges but it only knows about back edges of single block loops. It now does a DFS walk to find loop back edges.
...
- Use SplitBlockPredecessors to factor out common predecessors of the critical edge destination. This is disabled for now due to some regressions.
llvm-svn: 61248
2008-12-19 18:03:11 +00:00
Chris Lattner
27c3b1df00
Fix some release-assert warnings
...
llvm-svn: 61244
2008-12-19 17:03:38 +00:00
Rafael Espindola
7593f0004f
Fix bug 3202.
...
The EH_frame and .eh symbols are now private, except for darwin9 and earlier.
The patch also fixes the definition of PrivateGlobalPrefix on pcc linux.
llvm-svn: 61242
2008-12-19 10:55:56 +00:00
Nick Lewycky
4f2d81176d
Update the .cvs files for nocapture.
...
llvm-svn: 61241
2008-12-19 09:41:54 +00:00
Nick Lewycky
b8719a653f
Commit missed files from nocapture change.
...
llvm-svn: 61240
2008-12-19 09:38:31 +00:00
Nick Lewycky
8f96b51785
Resubmit support for the 'nocapture' attribute.
...
The problematic part of this patch is that we were out of attribute bits,
requiring some fancy bit hacking to make it fit (by shrinking alignment)
without breaking existing users or the file format.
This change will require users to rebuild llvm-gcc to match llvm.
llvm-svn: 61239
2008-12-19 06:39:12 +00:00
Bill Wendling
d4a3c71eb1
Perform this loop only when the -debug flag is specified.
...
llvm-svn: 61238
2008-12-19 02:09:57 +00:00
Dan Gohman
3991753a76
Initialize the ImplicitDefed member, to avoid getting stale
...
data from a previous block.
llvm-svn: 61237
2008-12-19 00:46:20 +00:00
Dan Gohman
1e66a47f73
Fix RegScavenger::forward() to work on basic blocks containing exactly
...
one instruction.
llvm-svn: 61236
2008-12-19 00:45:13 +00:00
Dan Gohman
40ff87ab97
Delete the RegScavenging constructor that takes a MachineBasicBlock
...
argument. Nothing was using it, and it set the MBB member without
calling enterBasicBlock, which was problematic.
llvm-svn: 61234
2008-12-19 00:34:32 +00:00
Mon P Wang
4e9022582d
Fix test to account for generating some vector code for mul v2i64 instead
...
of incorrectly generating pmuldq
llvm-svn: 61228
2008-12-18 23:42:37 +00:00
Bill Wendling
4ca9e94f91
Didn't mean to commit this.
...
llvm-svn: 61222
2008-12-18 22:19:50 +00:00
Dan Gohman
42b2f38113
Teach LowerSubregs to preserve kill/dead information when lowering
...
subreg instructions.
llvm-svn: 61220
2008-12-18 22:14:08 +00:00
Bill Wendling
5ec9cb2217
Re-XFAIL this test until debug stuff settles down.
...
llvm-svn: 61219
2008-12-18 22:13:31 +00:00
Dan Gohman
ca2ab1f2c8
Make LowerSubregs' debug output for EXTRACT_SUBREG consistent with
...
that of INSERT_SUBREG and SUBREG_TO_REG.
llvm-svn: 61218
2008-12-18 22:11:34 +00:00
Dan Gohman
7000e62d3a
Fix a copy+pasto in an assertion message.
...
llvm-svn: 61217
2008-12-18 22:07:25 +00:00
Dan Gohman
34e47d552b
Fix indentation level.
...
llvm-svn: 61216
2008-12-18 22:06:01 +00:00
Dan Gohman
1c74326cea
When emitting instructions that define EFLAGS and the EFLAGS value isn't
...
used, mark the defs as dead.
llvm-svn: 61215
2008-12-18 22:03:42 +00:00
Dan Gohman
54790143b2
When setting up the frame pointer, add it as a live-in register to all
...
non-entry blocks, so that it doesn't appear use-before-def anywhere.
llvm-svn: 61214
2008-12-18 22:01:52 +00:00
Dan Gohman
47de8c174c
Print subreg information in MachineInstr::dump.
...
llvm-svn: 61213
2008-12-18 21:51:27 +00:00
Mon P Wang
9f8945c5b9
Fixed x86 code generation of multiple for v2i64. It was incorrect for SSE4.1.
...
llvm-svn: 61211
2008-12-18 21:42:19 +00:00
Mon P Wang
5b74ab1f1e
Added some basic test cases for r61209
...
llvm-svn: 61210
2008-12-18 20:05:58 +00:00
Mon P Wang
84ad2a383d
Added support for vector widening.
...
llvm-svn: 61209
2008-12-18 20:03:17 +00:00
Evan Cheng
d3d1efc584
Remove dead comments.
...
llvm-svn: 61201
2008-12-18 09:01:18 +00:00
Nick Lewycky
c6e4019d57
Oops! Left out a line.
...
Simplifying the sdiv might allow further simplifications for our users.
llvm-svn: 61196
2008-12-18 06:42:28 +00:00
Nick Lewycky
ab50d88e6a
Make all the vector elements positive in an srem of constant vector.
...
llvm-svn: 61195
2008-12-18 06:31:11 +00:00
Chris Lattner
6ecf1b2bb1
Fix PR2929 by making bugpoint/code extract propagate the nothrow
...
bit from the original function to the cloned one.
llvm-svn: 61194
2008-12-18 05:52:56 +00:00
Mikhail Glushenkov
964b643cf8
Fix typo in error message.
...
llvm-svn: 61191
2008-12-18 04:06:58 +00:00
Nick Lewycky
4a36d896bf
Recommit this grammar fix that was backed out along with nocapture.
...
llvm-svn: 61189
2008-12-18 02:15:05 +00:00