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
Chris Lattner [Wed, 15 Feb 2006 19:05:52 +0000 (19:05 +0000)]
Checking the wrong value. This caused us to emit silly code like
Y = seteq bool X, true
instead of just using X :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26215
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 15 Feb 2006 17:20:59 +0000 (17:20 +0000)]
Code sufficiently protected against this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26213
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 15 Feb 2006 07:57:42 +0000 (07:57 +0000)]
reverting previous change, will add support for other compilers later
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26211
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 07:26:07 +0000 (07:26 +0000)]
Convert over to the new way of handling lex/bison checked into cvs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26209
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 07:24:01 +0000 (07:24 +0000)]
Check the new form for bison output into CVS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26208
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 07:23:05 +0000 (07:23 +0000)]
bugfixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26207
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 07:22:58 +0000 (07:22 +0000)]
Convert this over to work with the new makefiles
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26206
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 07:16:57 +0000 (07:16 +0000)]
Convert the bison-output-checked-into-cvs makefile handling stuff to work
like the flex stuff, which actually works when people do cvs updates and
get conflicts in the updated checked in file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26205
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 07:07:14 +0000 (07:07 +0000)]
Sparc actually *DOES* have a directive for emitting zeros. In fact, it requires
it, because this:
.bss
X:
.byte 0
results in the assembler warning: "initialization in bss segment". Annoying.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26204
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 07:02:59 +0000 (07:02 +0000)]
random lexer change to test the makefile updating stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26203
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 06:41:34 +0000 (06:41 +0000)]
Fix SingleSource/Regression/C/2004-08-12-InlinerAndAllocas.c on Sparc.
The ABI specifies that there is a register save area at the bottom of the
stack, which means the actual used pointer needs to be an offset from
the subtracted value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26202
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 15 Feb 2006 03:23:26 +0000 (03:23 +0000)]
HP aCC (and a bunch of other compilers, no doubt) don't share
GCC's syntax for auto-dependency generation stuff. This should
be changed to be disabling dependency stuff unless GCC/ICC is
found.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26201
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 15 Feb 2006 03:20:16 +0000 (03:20 +0000)]
oops, I meant this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26200
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 15 Feb 2006 03:16:52 +0000 (03:16 +0000)]
zap
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26199
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Wed, 15 Feb 2006 03:15:55 +0000 (03:15 +0000)]
previously, configure would die if GCC or ICC was not found. Now it'll
go through, but we do want to know if we're using GCC/ICC since they
share certain funky command line options (for dependency generation
stuff)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26198
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Feb 2006 01:56:48 +0000 (01:56 +0000)]
Remove an entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26197
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Feb 2006 01:56:23 +0000 (01:56 +0000)]
Use .zerofill on x86/darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26196
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Feb 2006 01:54:51 +0000 (01:54 +0000)]
Lower memcpy with small constant size operand into a series of load / store
ops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26195
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 01:44:42 +0000 (01:44 +0000)]
more refactoring, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26194
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Feb 2006 00:31:03 +0000 (00:31 +0000)]
cvtsd2ss / cvtss2sd encoding bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26193
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Feb 2006 00:11:37 +0000 (00:11 +0000)]
movaps, movapd encoding bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26192
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Feb 2006 00:07:43 +0000 (00:07 +0000)]
pull some code out into a function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26191
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 23:07:29 +0000 (23:07 +0000)]
new testcase that broke unswitch due to loopsimplify not doing the right thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26190
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 23:06:02 +0000 (23:06 +0000)]
Canonicalize inner loops before outer loops. Inner loop canonicalization
can provide work for the outer loop to canonicalize.
This fixes a case that breaks unswitching.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26189
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 23:05:54 +0000 (23:05 +0000)]
Doh again!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26188
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 22:34:08 +0000 (22:34 +0000)]
When splitting exit edges to canonicalize loops, make sure to put the new
block in the appropriate loop nest.
Third time is the charm, right?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26187
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 22:19:54 +0000 (22:19 +0000)]
new note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26186
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 22:18:23 +0000 (22:18 +0000)]
If we have zero initialized data with external linkage, use .zerofill to
emit it (instead of .space), saving a bit of space in the .o file.
For example:
int foo[100];
int bar[100] = {};
when compiled with C++ or -fno-common results in shrinkage from 1160 to 360
bytes of space. The X86 backend can also do this on darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26185
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 14 Feb 2006 22:01:57 +0000 (22:01 +0000)]
Using wrong DW_FORM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26184
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 21:52:51 +0000 (21:52 +0000)]
Don't special case XS, XD prefixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26183
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 21:45:24 +0000 (21:45 +0000)]
Bug fix: XS, XD prefixes were being emitted twice.
XMM registers were not being handled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26182
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 20:42:33 +0000 (20:42 +0000)]
Make sure that weak functions are aligned properly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26181
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 20:37:37 +0000 (20:37 +0000)]
Duh
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26180
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 20:30:14 +0000 (20:30 +0000)]
Remove -disable-x86-sse
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26179
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 20:14:17 +0000 (20:14 +0000)]
add an assert
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26178
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 20:12:38 +0000 (20:12 +0000)]
Keep to < 80 cols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26177
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 19:45:56 +0000 (19:45 +0000)]
Missed a break so memcpy cases fell through to memset. Doh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26176
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 09:11:59 +0000 (09:11 +0000)]
Fixed a build breakage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26175
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 08:38:30 +0000 (08:38 +0000)]
Rename maxStoresPerMemSet to maxStoresPerMemset, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26174
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 08:25:32 +0000 (08:25 +0000)]
Add a entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26173
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 08:25:08 +0000 (08:25 +0000)]
Set maxStoresPerMemSet to 16. Ditto for maxStoresPerMemCpy and
maxStoresPerMemMove. Although the last one is not used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26172
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 08:22:34 +0000 (08:22 +0000)]
Expand memset dst, c, size to a series of stores if size falls below the
target specific theshold, e.g. 16 for x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26171
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 14 Feb 2006 08:07:58 +0000 (08:07 +0000)]
Enable SSE (for the right subtargets)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26169
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Tue, 14 Feb 2006 06:12:08 +0000 (06:12 +0000)]
Match changes to unix build system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26167
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 05:39:35 +0000 (05:39 +0000)]
now that libcalls don't suck, we can remove this hack
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26164
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 05:16:35 +0000 (05:16 +0000)]
Adjust to new style "generated files in CVS" mechanism for lex output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26163
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 05:14:46 +0000 (05:14 +0000)]
adjust to new style of handling lexer changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26162
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 05:13:13 +0000 (05:13 +0000)]
Adjust to new form of handling lexer dependencies, this way shouldn't have
the problems the old way did.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26161
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 05:12:00 +0000 (05:12 +0000)]
Implement an alternative way of handling generated lex files in CVS. This
should solve the "updating cvs when .l files change give me conflict markers
that break my build" issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26160
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 04:27:15 +0000 (04:27 +0000)]
Wrap a couple more long lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26159
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 04:25:54 +0000 (04:25 +0000)]
wrap long lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26158
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 01:01:41 +0000 (01:01 +0000)]
Use statistics to keep track of what flavors of loops we are unswitching
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26157
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Feb 2006 00:55:02 +0000 (00:55 +0000)]
Fix a latent bug in the call sequence handling stuff. Some targets (e.g. x86)
create these nodes with flag results. Remember that we legalized them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26156
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Feb 2006 23:07:23 +0000 (23:07 +0000)]
Implement Instcombine/and.ll:test34
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26155
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Feb 2006 23:07:02 +0000 (23:07 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26154
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Feb 2006 23:06:39 +0000 (23:06 +0000)]
Fix typo that caused build failures for things trying to use m_Or.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26153
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Feb 2006 22:41:07 +0000 (22:41 +0000)]
If any of the sign extended bits are demanded, the input sign bit is demanded
for a sign extension.
This fixes InstCombine/2006-02-13-DemandedMiscompile.ll and Ptrdist/bc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26152
91177308-0d34-0410-b5e6-
96231b3b80d8