Nate Begeman [Fri, 13 Jan 2006 23:26:38 +0000 (23:26 +0000)]
Make the bswap documentation more to sabre's liking!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25302
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 23:26:01 +0000 (23:26 +0000)]
fix some minor errors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25301
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 13 Jan 2006 23:02:51 +0000 (23:02 +0000)]
Add documentation for the upcoming bswap intrinsics!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25300
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Bocchino [Fri, 13 Jan 2006 22:48:06 +0000 (22:48 +0000)]
Added instcombine support for extractelement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25299
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 22:05:36 +0000 (22:05 +0000)]
testcase for PR691
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25298
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 22:01:47 +0000 (22:01 +0000)]
new testcases for the stackrestore instcombine optimizations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25297
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 13 Jan 2006 21:45:19 +0000 (21:45 +0000)]
Add truncstore i1 patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25296
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 21:31:54 +0000 (21:31 +0000)]
it is ok to dce stacksave.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25295
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 21:28:09 +0000 (21:28 +0000)]
Do a simple instcombine xforms to delete llvm.stackrestore cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25294
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 20:19:44 +0000 (20:19 +0000)]
Fix a bug in my last X86 checkin, pointed out by cozmic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25293
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 20:11:04 +0000 (20:11 +0000)]
Simplify this a tiny bit by using the new IntrinsicInst functionality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25292
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 20:00:51 +0000 (20:00 +0000)]
Simplify the implementations of classof using the new IntrinsicInst classof.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25291
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 13 Jan 2006 19:51:46 +0000 (19:51 +0000)]
LHS = X86ISD::CMOVcc LHS, RHS means LHS = RHS if cc. So the operands must be
flipped around.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25290
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 19:49:02 +0000 (19:49 +0000)]
Add some functionality to the IntrinsicInst class and some comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25289
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 19:35:43 +0000 (19:35 +0000)]
Permit inlining functions that contain dynamic allocations now that
InlineFunction handles this case safely. This implements
Transforms/Inline/dynamic_alloca_test.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25288
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 19:35:05 +0000 (19:35 +0000)]
New testcase that functions with dynamic allocas can be inlined, and are
inlined correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25287
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 19:34:14 +0000 (19:34 +0000)]
If inlining a call to a function that contains dynamic allocas, wrap the
resultant code with llvm.stacksave/llvm.stackrestore intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25286
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 19:18:11 +0000 (19:18 +0000)]
Use ClonedCodeInfo to avoid another walk over the inlined code, this this
time in common C cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25285
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 19:15:15 +0000 (19:15 +0000)]
Use the ClonedCodeInfo object to avoid scans of the inlined code when
it doesn't contain any calls. This is a fairly common case for C++ code,
so it will probably speed up the inliner marginally in these cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25284
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 19:05:59 +0000 (19:05 +0000)]
Refactor a bunch of invoke handling stuff out into a new function
"HandleInlinedInvoke". No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25283
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 13 Jan 2006 18:49:47 +0000 (18:49 +0000)]
make DAG isel the default
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25282
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 18:39:17 +0000 (18:39 +0000)]
Allow the code cloning interfaces to capture some important info about the
code being cloned if the client wants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25281
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 18:16:48 +0000 (18:16 +0000)]
Fix a bug I noticed by inspection: if the first instruction in the inlined
function was not an alloca, we wouldn't check the entry block for any allocas,
leading to increased stack space in some cases. In practice, allocas are almost
always at the top of the block, so this was never noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25280
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 18:06:56 +0000 (18:06 +0000)]
Fix 80 column violations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25279
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 18:00:54 +0000 (18:00 +0000)]
Enable X86 support for savestack/restorestack
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25278
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 17:52:03 +0000 (17:52 +0000)]
implement stacksave/stackrestore on PPC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25277
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 17:48:44 +0000 (17:48 +0000)]
If a target specified a stack pointer with setStackPointerRegisterToSaveRestore,
lower STACKSAVE/STACKRESTORE into a copy from/to that register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25276
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 17:47:52 +0000 (17:47 +0000)]
Provide an interface for Targets to specify their stack pointer register
for llvm.stacksave/restore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25275
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Fri, 13 Jan 2006 10:28:25 +0000 (10:28 +0000)]
don't be a doofus - this fixes storing bools
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25274
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 02:50:02 +0000 (02:50 +0000)]
Compile llvm.stacksave/restore into STACKSAVE/STACKRESTORE nodes, and allow
targets to custom expand them as they desire.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25273
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 02:42:53 +0000 (02:42 +0000)]
expand unsupported stacksave/stackrestore nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25272
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 02:40:58 +0000 (02:40 +0000)]
new nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25271
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 02:39:42 +0000 (02:39 +0000)]
add stacksave/stackrestore nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25270
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 02:25:08 +0000 (02:25 +0000)]
testcase for the llvm.stacksave/llvm.stackrestore intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25269
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 02:24:42 +0000 (02:24 +0000)]
Add "support" for stacksave/stackrestore to the dag isel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25268
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 02:22:08 +0000 (02:22 +0000)]
Add "support" for the llvm.stacksave/stackrestore intrinsics, this is
used by the C backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25267
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 02:15:39 +0000 (02:15 +0000)]
Add recognition and verification of new llvm.stacksave/llvm.stackrestore intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25266
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 02:15:02 +0000 (02:15 +0000)]
add new llvm.stacksave/llvm.stackrestore intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25265
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 02:03:13 +0000 (02:03 +0000)]
Add llvm.stacksave and llvm.stackrestore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25264
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 13 Jan 2006 01:20:42 +0000 (01:20 +0000)]
Minor update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25263
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jan 2006 01:20:27 +0000 (01:20 +0000)]
void* is not legal in LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25262
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 13 Jan 2006 01:17:24 +0000 (01:17 +0000)]
More typo's. I need new eye glasses...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25261
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 13 Jan 2006 01:06:49 +0000 (01:06 +0000)]
Oops. Typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25260
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 13 Jan 2006 01:03:02 +0000 (01:03 +0000)]
Fix a SETCC / BRCOND folding bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25259
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 13 Jan 2006 01:02:22 +0000 (01:02 +0000)]
Test case for a SETCC / BRCOND folding bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25258
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 12 Jan 2006 22:54:21 +0000 (22:54 +0000)]
Fix sint_to_fp (fild*) support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25257
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 20:22:43 +0000 (20:22 +0000)]
Add a simple missing fold to produce this:
subfic r3, r2, 33
instead of this:
subfic r2, r2, 32
addi r3, r2, 1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25255
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 12 Jan 2006 19:36:31 +0000 (19:36 +0000)]
Specify transformation from GlobalAddress to TargetGlobalAddress and
ExternalSymbol to TargetExternalSymbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25253
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 12 Jan 2006 19:35:54 +0000 (19:35 +0000)]
Allow transformation from GlobalAddress to TargetGlobalAddress and
ExternalSymbol to TargetExternalSymbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25252
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 19:17:23 +0000 (19:17 +0000)]
If using __main, emit global ctor/dtor list like any other global
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25251
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 18:57:33 +0000 (18:57 +0000)]
Don't create rotate instructions in unsupported types, because we don't have
promote/expand code yet. This fixes the 177.mesa failure on PPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25250
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 17:05:32 +0000 (17:05 +0000)]
Fix branches on FP compares
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25249
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 16:48:23 +0000 (16:48 +0000)]
Patch #10 from Saem:
"Extracts a few more methods, reduces some redundancy in the code at
the same time."
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25248
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 12 Jan 2006 08:27:59 +0000 (08:27 +0000)]
X86ISD::SETCC (e.g. SETEr) produces a flag (so multiple SETCC can be
linked together).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25247
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 12 Jan 2006 07:56:47 +0000 (07:56 +0000)]
* Materialize GlobalAddress and ExternalSym with MOV32ri rather than
LEA32r.
* Do not lower GlobalAddress to TargetGlobalAddress. Let isel does it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25246
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 12 Jan 2006 07:54:57 +0000 (07:54 +0000)]
GlobalAddress -> TargetGlobalAddress; ExternalSymbol -> TargetExternalSymbol
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25245
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 07:38:04 +0000 (07:38 +0000)]
fix a bug in my previous checkin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25244
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 07:31:15 +0000 (07:31 +0000)]
Give V8ISD nodes symbolic names in dumps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 06:17:59 +0000 (06:17 +0000)]
Convert the verifier over to use ETForest instead of DominatorSet. Patch
by Daniel Berlin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25242
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 12 Jan 2006 03:28:40 +0000 (03:28 +0000)]
sabre's (correct) fix means these guys need to be flagged as well (else
the scheduler will complain)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25241
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Thu, 12 Jan 2006 02:50:34 +0000 (02:50 +0000)]
verily, sabre did leave
and yea! Saem said "ARRR."
meanwhile, the pinksias and the campfires and the ET forests glowed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25240
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 02:05:36 +0000 (02:05 +0000)]
ahem :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25239
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 02:01:45 +0000 (02:01 +0000)]
these cases are autogenerated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25238
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 01:54:15 +0000 (01:54 +0000)]
remove dead code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25237
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 01:46:07 +0000 (01:46 +0000)]
Goodbye PPC pattern isel. You have served us well, but it is now time for
you to ride off into the sunset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25236
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 01:33:08 +0000 (01:33 +0000)]
Fix an itanium call lowering bug for duraid
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25235
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jan 2006 01:28:56 +0000 (01:28 +0000)]
invert the sense of this switch and its name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25234
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 11 Jan 2006 23:20:28 +0000 (23:20 +0000)]
Missed a spot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25233
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jan 2006 23:20:05 +0000 (23:20 +0000)]
Added ROTL and ROTR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25232
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 23:16:29 +0000 (23:16 +0000)]
Fix an off-by-one error that Nate's eagle eyes caught
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25231
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 23:07:57 +0000 (23:07 +0000)]
Use the auto-insert BuildMI constructor to avoid an explicit insert. No
functionality change, just code cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25230
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 23:03:54 +0000 (23:03 +0000)]
If a function has a non-zero sized frame, use an add to adjust the stack
pointer in the epilog, not a load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25229
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 11 Jan 2006 22:58:12 +0000 (22:58 +0000)]
Add testcase for rotate by register and rotate by immediate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25228
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jan 2006 22:16:13 +0000 (22:16 +0000)]
Some minor fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25227
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jan 2006 22:15:48 +0000 (22:15 +0000)]
Support for MEMCPY and MEMSET.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25226
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jan 2006 22:15:18 +0000 (22:15 +0000)]
Select DYNAMIC_STACKALLOC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25225
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jan 2006 22:14:47 +0000 (22:14 +0000)]
Allow custom lowering of DYNAMIC_STACKALLOC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25224
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jan 2006 22:13:48 +0000 (22:13 +0000)]
ignore register #0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25223
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 11 Jan 2006 21:21:00 +0000 (21:21 +0000)]
Add bswap, rotl, and rotr nodes
Add dag combiner code to recognize rotl, rotr
Add ppc code to match rotl
Targets should add rotl/rotr patterns if they have them
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25222
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 19:55:07 +0000 (19:55 +0000)]
Fix calls that need to store values in stack slots, to not copy the stack
pointer. This allows us to emit stuff like this:
li r10, 0
stw r10, 56(r1)
or r3, r10, r10
or r4, r10, r10
or r5, r10, r10
or r6, r10, r10
or r7, r10, r10
or r8, r10, r10
or r9, r10, r10
bl L_bar$stub
instead of this:
or r2, r1, r1 ;; Extraneous copy.
li r10, 0
stw r10, 56(r2)
or r3, r10, r10
or r4, r10, r10
or r5, r10, r10
or r6, r10, r10
or r7, r10, r10
or r8, r10, r10
or r9, r10, r10
bl L_bar$stub
wowness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25221
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 19:53:22 +0000 (19:53 +0000)]
tblgen does this now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25220
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 19:52:46 +0000 (19:52 +0000)]
This is no longer needed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25219
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 19:52:27 +0000 (19:52 +0000)]
Always select target registers to themselves
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25218
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 18:21:25 +0000 (18:21 +0000)]
Dead FP arguments still use an incoming FP reg. This fixes
Regression/CodeGen/PowerPC/2006-01-11-darwin-fp-argument.ll, which was
distilled from a miscompilation in 252.eon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25217
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 18:15:37 +0000 (18:15 +0000)]
Testcase the PPC backend is miscompiling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25216
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Wed, 11 Jan 2006 16:21:53 +0000 (16:21 +0000)]
Visual Studio is feeling left out again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25215
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Wed, 11 Jan 2006 16:21:23 +0000 (16:21 +0000)]
Fix VC++ compilation error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25214
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 16:14:49 +0000 (16:14 +0000)]
Patch #9 from Saem:
"Cut up the runPasses method into smaller pieces. The small private
helpers should be easier to deal with when code shuffling arising
from creating the new specialised batchers, not to mention, they're
much easier to understand.
I inlined them, in case function call overhead would be noticeable --
doubtful."
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25213
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 07:49:38 +0000 (07:49 +0000)]
Use Evan's outflag stuff to implement V8cmpicc. This allows us to write a
pattern for SUBCCrr, and makes it trivial to add support for SUBCCri, eliminating
an instruction in the common "setcc X, imm" case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25212
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 07:27:40 +0000 (07:27 +0000)]
Fix a bug in i32->f64 conversion lowering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25211
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 07:15:43 +0000 (07:15 +0000)]
Unbreak ret void :-/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25210
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 07:14:01 +0000 (07:14 +0000)]
Write this pattern in canonical form, allowing more patterns to match.
This implements Regression/CodeGen/SparcV8/xnor.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25209
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 07:13:22 +0000 (07:13 +0000)]
catch all forms of xnor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25208
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jan 2006 06:09:51 +0000 (06:09 +0000)]
* Add special entry code main() (to set x87 to 64-bit precision).
* Allow a register node as SelectAddr() base.
* ExternalSymbol -> TargetExternalSymbol as direct function callee.
* Use X86::ESP register rather than CopyFromReg(X86::ESP) as stack ptr for
call parmater passing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25207
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 05:39:45 +0000 (05:39 +0000)]
Simple is good. CVS is for revision control, not file headers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25206
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 05:38:55 +0000 (05:38 +0000)]
Simple is good
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25205
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 05:38:15 +0000 (05:38 +0000)]
Simple is good, CVS log is for history, not the silly credits block
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25204
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 05:11:13 +0000 (05:11 +0000)]
Preserve and update ETForest. Patch by Daniel Berlin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25203
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 05:10:20 +0000 (05:10 +0000)]
Switch these to using ETForest instead of DominatorSet to compute itself.
Patch written by Daniel Berlin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25202
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jan 2006 05:09:40 +0000 (05:09 +0000)]
Switch this to using ETForest instead of DominatorSet to compute itself.
Patch written by Daniel Berlin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25201
91177308-0d34-0410-b5e6-
96231b3b80d8