Chris Lattner [Wed, 22 Feb 2006 23:54:15 +0000 (23:54 +0000)]
new testcase distilled from SPASS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26319
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Feb 2006 23:09:03 +0000 (23:09 +0000)]
This fixes a couple of problems with expansion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26318
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Feb 2006 23:00:51 +0000 (23:00 +0000)]
Don't return registers from register classes that aren't legal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26317
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Feb 2006 22:37:12 +0000 (22:37 +0000)]
Change a whole bunch of code to be built around RegsForValue instead of
a single register number. This fully implements promotion for inline asms,
expand is close but not quite right yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26316
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 22 Feb 2006 20:19:42 +0000 (20:19 +0000)]
- Added option -relocation-model to set relocation model. Valid values include static, pic,
dynamic-no-pic, and default.
PPC and x86 default is dynamic-no-pic for Darwin, pic for others.
- Removed options -enable-pic and -ppc-static.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26315
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 22 Feb 2006 19:02:11 +0000 (19:02 +0000)]
Coordinate activities with llvm-gcc4 and dwarf.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26314
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Feb 2006 16:23:43 +0000 (16:23 +0000)]
Make the LLVM headers "-ansi -pedantic -Wno-long-long" clean.
Patch by Martin Partel!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26313
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Feb 2006 07:33:49 +0000 (07:33 +0000)]
Turn on loop unswitching tonight
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26312
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Feb 2006 06:37:14 +0000 (06:37 +0000)]
Add some comments, simplify some code, and fix a bug that caused rewriting
to rewrite with the wrong value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26311
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 22 Feb 2006 02:26:30 +0000 (02:26 +0000)]
Added MMX, SSE1, and SSE2 vector instructions and some simple patterns.
Fixed some existing bugs (wrong predicates, prefixes) at the same time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26310
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Feb 2006 00:59:06 +0000 (00:59 +0000)]
reorder some libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26309
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Feb 2006 00:56:39 +0000 (00:56 +0000)]
split register class handling from explicit physreg handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26308
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Feb 2006 23:51:58 +0000 (23:51 +0000)]
expose the set of values types holdable in a regclass to clients
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26307
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Feb 2006 23:12:12 +0000 (23:12 +0000)]
Adjust to changes in getRegForInlineAsmConstraint prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26306
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Feb 2006 23:11:00 +0000 (23:11 +0000)]
Updates to match change of getRegForInlineAsmConstraint prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26305
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Feb 2006 23:10:29 +0000 (23:10 +0000)]
Pass in a value type to getRegForInlineAsmConstraint, allowing targets to
select different sets of registers depending on the type requested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26304
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 21 Feb 2006 20:00:20 +0000 (20:00 +0000)]
One more round of reorg so sabre doesn't freak out. :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26303
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 21 Feb 2006 19:30:30 +0000 (19:30 +0000)]
A big more cleaning up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26302
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 21 Feb 2006 19:26:52 +0000 (19:26 +0000)]
Moving things to their proper places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26301
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 21 Feb 2006 19:13:53 +0000 (19:13 +0000)]
Split instruction info into multiple files, one for each of x87, MMX, and SSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26300
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Feb 2006 18:29:44 +0000 (18:29 +0000)]
missed optzn
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26299
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Feb 2006 18:04:32 +0000 (18:04 +0000)]
The HasNoV9 hack isn't needed here, now that tblgen knows that CustomDAGSchedInserter
instructions are expensive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26298
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 21 Feb 2006 02:24:38 +0000 (02:24 +0000)]
Added separate alias instructions for SSE logical ops that operate on non-packed types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26297
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 21 Feb 2006 01:39:57 +0000 (01:39 +0000)]
Added MMX and XMM packed integer move instructions, movd and movq.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26296
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 21 Feb 2006 01:38:21 +0000 (01:38 +0000)]
Added SSE2 128-bit integer packed types: V16I8, V8I16, V4I32, and V2I64.
Added generic vector types: VR64 and VR128.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26295
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 20 Feb 2006 22:34:53 +0000 (22:34 +0000)]
Added x86 integer vector types: 64-bit packed byte integer (v16i8), 64-bit
packed word integer (v8i16), and 64-bit packed doubleword integer (v2i32).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26294
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 20 Feb 2006 19:58:27 +0000 (19:58 +0000)]
Some updates
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26292
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Feb 2006 06:51:04 +0000 (06:51 +0000)]
Fix a problem Nate and Duraid reported where simplifying nodes can cause
them to get ressurected, in which case, deleting the undead nodes is
unfriendly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26291
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Feb 2006 06:38:35 +0000 (06:38 +0000)]
Fix a problem on itanium with memset. The value to set has been promoted to
i64 before this code, so zero_ext doesn't work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26290
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 18 Feb 2006 07:57:38 +0000 (07:57 +0000)]
improved support for branch folding, still not enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26289
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 18 Feb 2006 07:26:17 +0000 (07:26 +0000)]
If SSE3 is available, promote FP_TO_UINT i32 to FP_TO_SINT i64 to take
advantage of fisttpll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26288
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Sat, 18 Feb 2006 03:20:33 +0000 (03:20 +0000)]
Fix bugs identified by VC++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26287
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 18 Feb 2006 02:43:25 +0000 (02:43 +0000)]
Add a fold for add that exchanges it with a constant shift if possible, so
that the shift may be more easily folded into other operations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26286
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 18 Feb 2006 02:42:34 +0000 (02:42 +0000)]
Implement deletion of dead blocks, currently disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26285
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 18 Feb 2006 02:40:58 +0000 (02:40 +0000)]
Add checks to make sure we don't create bogus extend nodes, and fix a bug
where we were doing exactly that which was causing failures on x86 and
alpha.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26284
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 18 Feb 2006 02:36:28 +0000 (02:36 +0000)]
Added fisttp for fp to int conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26283
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 18 Feb 2006 02:33:09 +0000 (02:33 +0000)]
Bump up pattern cost if the resulting instruction is marked
usesCustomDAGSchedInserter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26282
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 18 Feb 2006 01:49:25 +0000 (01:49 +0000)]
Disable PIC for JIT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26281
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 18 Feb 2006 01:32:04 +0000 (01:32 +0000)]
a previous patch completely disabled trivial unswitching, this fixees it.
Thanks to nate for pointing this out :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26280
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 18 Feb 2006 01:27:45 +0000 (01:27 +0000)]
initial trivial support for folding branches that have now-constant destinations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26279
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 18 Feb 2006 00:57:10 +0000 (00:57 +0000)]
Jit does not support PIC yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26278
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 18 Feb 2006 00:55:32 +0000 (00:55 +0000)]
When unswitching a loop, make sure to update loop info with exit blocks in
the right loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26277
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 18 Feb 2006 00:33:17 +0000 (00:33 +0000)]
Fix Transforms/SimplifyCFG/2006-02-17-InfiniteUnroll.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26275
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 18 Feb 2006 00:32:44 +0000 (00:32 +0000)]
new testcase that crashes simplifycfg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26274
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 18 Feb 2006 00:15:05 +0000 (00:15 +0000)]
x86 / Darwin PIC support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26273
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 18 Feb 2006 00:08:58 +0000 (00:08 +0000)]
Moved PICEnabled to include/llvm/Target/TargetOptions.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26272
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 18 Feb 2006 00:06:03 +0000 (00:06 +0000)]
Move PICEnabled declaration here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26271
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 17 Feb 2006 21:58:01 +0000 (21:58 +0000)]
Fix a tricky issue in the SimplifyDemandedBits code where CombineTo wasn't
exactly the API we wanted to call into. This fixes the crash on crafty last
night.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26269
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 17 Feb 2006 21:57:00 +0000 (21:57 +0000)]
add a new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26268
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 21:38:45 +0000 (21:38 +0000)]
A few final (for now) tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26267
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 21:32:46 +0000 (21:32 +0000)]
Yet another test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26266
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 21:22:08 +0000 (21:22 +0000)]
New tests!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26265
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Bocchino [Fri, 17 Feb 2006 21:18:08 +0000 (21:18 +0000)]
Added documentation for vset and vselect.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26264
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 19:54:08 +0000 (19:54 +0000)]
Clean up DemandedBitsAreZero interface
Make more use of the new mask helpers in valuetypes.h
Combine (sra (srl x, c1), c1) -> sext_inreg if legal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26263
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 18:06:19 +0000 (18:06 +0000)]
Fix a nit sabre noticed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26262
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 07:26:20 +0000 (07:26 +0000)]
Don't expand sdiv by power of two before legalize, since it will likely
generate illegal nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26261
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 17 Feb 2006 07:09:27 +0000 (07:09 +0000)]
unbreak the build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26260
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 17 Feb 2006 07:01:52 +0000 (07:01 +0000)]
Unbreak x86 be
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26259
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 17 Feb 2006 06:39:56 +0000 (06:39 +0000)]
Fix loops where the header has an exit, fixing a loop-unswitch crash on crafty
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26258
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 06:24:31 +0000 (06:24 +0000)]
Fix a comment sabre noticed :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26257
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 06:16:56 +0000 (06:16 +0000)]
A couple new regression tests to make sure we always pattern match the new
opcodes on ppc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26256
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 05:43:56 +0000 (05:43 +0000)]
kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBC
and SUBE nodes that actually expose what's going on and allow for
significant simplifications in the targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26255
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 17 Feb 2006 04:32:33 +0000 (04:32 +0000)]
Fix another miscompilation exposed by lencode, where we lowered i64->f32
conversions to __floatdidf instead of __floatdisf on targets that support
f32 but not i64 (e.g. sparc).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26254
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 17 Feb 2006 04:20:13 +0000 (04:20 +0000)]
add note about div by power of 2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26253
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 17 Feb 2006 02:12:18 +0000 (02:12 +0000)]
Fix bug noticed by VC++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26252
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 17 Feb 2006 02:11:34 +0000 (02:11 +0000)]
Inform Visual Studio of deleted file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26251
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 00:56:19 +0000 (00:56 +0000)]
Whoops, didn't mean to check this in yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26250
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 00:51:06 +0000 (00:51 +0000)]
Add a missing and useful pat frag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26249
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 17 Feb 2006 00:31:07 +0000 (00:31 +0000)]
start of some new simplification code, not thoroughly tested, use at your own
risk :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26248
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 17 Feb 2006 00:04:28 +0000 (00:04 +0000)]
Remind ourselves to revisit the "pxor vs. xorps/xorpd to clear XMM registers"
issue. Need to do more experiments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26247
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 17 Feb 2006 00:03:04 +0000 (00:03 +0000)]
Kill the x86 pattern isel. boom.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26246
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 17 Feb 2006 00:00:58 +0000 (00:00 +0000)]
Remove the entry about using movapd for SSE reg-reg moves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26245
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 16 Feb 2006 23:59:30 +0000 (23:59 +0000)]
pxor (for FLD0SS) encoding was missing the OpSize prefix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26244
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Feb 2006 23:14:50 +0000 (23:14 +0000)]
Remove the skeleton target, it doesn't produce useful code and there are
other small targets that do that can be learned from. They also have
the added advantage of being tested :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26243
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 16 Feb 2006 23:11:42 +0000 (23:11 +0000)]
Dumb bug. Code sees a memcpy from X+c so it increments src offset. But it
turns out not to point to a constant string but it forgot change the offset
back.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26242
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 16 Feb 2006 22:45:17 +0000 (22:45 +0000)]
1. Use pxor instead of xoraps / xorapd to clear FR32 / FR64 registers. This
proves to be worth 20% on Ptrdist/ks. Might be related to dependency
breaking support.
2. Added FsMOVAPSrr and FsMOVAPDrr as aliases to MOVAPSrr and MOVAPDrr. These
are used for FR32 / FR64 reg-to-reg copies.
3. Tell reg-allocator to generate MOVSSrm / MOVSDrm and MOVSSmr / MOVSDmr to
spill / restore FsMOVAPSrr and FsMOVAPDrr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26241
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 16 Feb 2006 21:20:26 +0000 (21:20 +0000)]
Use movaps / movapd to spill / restore V4F4 / V2F8 registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26240
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Feb 2006 21:12:54 +0000 (21:12 +0000)]
remove skeleton target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26239
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 16 Feb 2006 21:11:51 +0000 (21:11 +0000)]
Rework the SelectionDAG-based implementations of SimplifyDemandedBits
and ComputeMaskedBits to match the new improved versions in instcombine.
Tested against all of multisource/benchmarks on ppc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26238
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Feb 2006 21:11:49 +0000 (21:11 +0000)]
don't build the skeleton target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26237
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Feb 2006 21:10:57 +0000 (21:10 +0000)]
remove support for the skeleton target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26236
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Feb 2006 19:36:22 +0000 (19:36 +0000)]
Change SplitBlock to increment a BasicBlock::iterator, not an Instruction*. Apparently they do different things :)
This fixes a testcase that nate reduced from spass.
Also included are a couple minor code changes that don't affect the generated
code at all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26235
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 16 Feb 2006 19:34:41 +0000 (19:34 +0000)]
MOVAPSrr and MOVAPDrr instruction format should be MRMSrcReg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26234
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 16 Feb 2006 13:12:57 +0000 (13:12 +0000)]
distinguish between objects and register names, now we can have stuff
with names like "f84", "in6" etc etc.
this should fix one or two tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26232
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 16 Feb 2006 08:27:56 +0000 (08:27 +0000)]
If the false case is the current basic block, then this is a self loop.
We do not want to emit "Loop: ... brcond Out; br Loop", as it adds an extra
instruction in the loop. Instead, invert the condition and emit
"Loop: ... br!cond Loop; br Out.
Generalize the fix by moving it from PPCDAGToDAGISel to SelectionDAGLowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26231
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Feb 2006 08:02:36 +0000 (08:02 +0000)]
Lowering of sdiv X, pow2 was broken, this fixes it. This patch is written
by Nate, I'm just committing it for him.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26230
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Feb 2006 05:10:48 +0000 (05:10 +0000)]
Fix a minor makefile bug with lex/yacc handling that nate noticed. We don't
want to copy the files when the .cpp file changes, we want to copy them
to the .cvs versions when the .l/.y file change (like the comments even say).
This avoids having bogus changes show up in diffs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26229
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Thu, 16 Feb 2006 04:07:37 +0000 (04:07 +0000)]
Fix VC++ warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26228
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Thu, 16 Feb 2006 04:07:03 +0000 (04:07 +0000)]
Visual Studio enters the future of bisoning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26227
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 16 Feb 2006 01:50:02 +0000 (01:50 +0000)]
Use movaps / movapd (instead of movss / movsd) to do FR32 / FR64 reg to reg
transfer.
According to the Intel P4 Optimization Manual:
Moves that write a portion of a register can introduce unwanted
dependences. The movsd reg, reg instruction writes only the bottom
64 bits of a register, not to all 128 bits. This introduces a dependence on
the preceding instruction that produces the upper 64 bits (even if those
bits are not longer wanted). The dependence inhibits register renaming,
and thereby reduces parallelism.
Not to mention movaps is shorter than movss.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26226
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Feb 2006 01:24:41 +0000 (01:24 +0000)]
fix a bug where we unswitched the wrong way
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26225
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 16 Feb 2006 00:21:07 +0000 (00:21 +0000)]
A bit more memset / memcpy optimization.
Turns them into calls to memset / memcpy if 1) buffer(s) are not DWORD aligned,
2) size is not known to be greater or equal to some minimum value (currently 128).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26224
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 22:52:05 +0000 (22:52 +0000)]
Implement trivial unswitching for switch stmts. This allows us to trivial
unswitch this loop on 2 before sweating to unswitch on 1/3.
void test4(int N, int i, int C, int*P, int*Q) {
int j;
for (j = 0; j < N; ++j) {
switch (C) { // general unswitching.
default: P[i+j] = 0; break;
case 1: Q[i+j] = 0; break;
case 3: P[i+j] = Q[i+j]; break;
case 2: break; // TRIVIAL UNSWITCH on C==2
}
}
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26223
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Feb 2006 22:14:34 +0000 (22:14 +0000)]
Remove an entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26222
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Feb 2006 22:12:35 +0000 (22:12 +0000)]
Remove an unused function parameter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26221
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 22:03:36 +0000 (22:03 +0000)]
make "trivial" unswitching significantly more general. It can now handle
this for example:
for (j = 0; j < N; ++j) { // trivial unswitch
if (C)
P[i+j] = 0;
}
turning it into the obvious code without bothering to duplicate an empty loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26220
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Feb 2006 21:59:04 +0000 (21:59 +0000)]
Turn a memcpy from string constant into a series of stores of constant values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26219
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 15 Feb 2006 21:13:37 +0000 (21:13 +0000)]
fix a bunch of alpha regressions. see bug 709
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26218
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 19:52:06 +0000 (19:52 +0000)]
new test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26217
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 15 Feb 2006 19:34:44 +0000 (19:34 +0000)]
Should not combine ISD::LOCATIONs until we have scheme to remove from
MachineDebugInfo tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26216
91177308-0d34-0410-b5e6-
96231b3b80d8