Commit Graph

22724 Commits

Author SHA1 Message Date
Evan Cheng 2d23c9f1ab Use .zerofill on x86/darwin.
llvm-svn: 26196
2006-02-15 01:56:23 +00:00
Evan Cheng e2038bdeee Lower memcpy with small constant size operand into a series of load / store
ops.

llvm-svn: 26195
2006-02-15 01:54:51 +00:00
Chris Lattner 01db04efb0 more refactoring, no functionality change.
llvm-svn: 26194
2006-02-15 01:44:42 +00:00
Evan Cheng aacc4c3b4c cvtsd2ss / cvtss2sd encoding bug.
llvm-svn: 26193
2006-02-15 00:31:03 +00:00
Evan Cheng 665c26ab40 movaps, movapd encoding bug.
llvm-svn: 26192
2006-02-15 00:11:37 +00:00
Chris Lattner b0cbe7106e pull some code out into a function
llvm-svn: 26191
2006-02-15 00:07:43 +00:00
Chris Lattner 684f911241 new testcase that broke unswitch due to loopsimplify not doing the right thing.
llvm-svn: 26190
2006-02-14 23:07:29 +00:00
Chris Lattner 9c5693fb2a 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.

llvm-svn: 26189
2006-02-14 23:06:02 +00:00
Evan Cheng 0451499b3c Doh again!
llvm-svn: 26188
2006-02-14 23:05:54 +00:00
Chris Lattner cffbbee8d1 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?

llvm-svn: 26187
2006-02-14 22:34:08 +00:00
Chris Lattner e3c793a71a new note
llvm-svn: 26186
2006-02-14 22:19:54 +00:00
Chris Lattner b134520b86 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.

llvm-svn: 26185
2006-02-14 22:18:23 +00:00
Jim Laskey ebb50a61d2 Using wrong DW_FORM.
llvm-svn: 26184
2006-02-14 22:01:57 +00:00
Evan Cheng f84774ed46 Don't special case XS, XD prefixes.
llvm-svn: 26183
2006-02-14 21:52:51 +00:00
Evan Cheng fb7b5ef74b Bug fix: XS, XD prefixes were being emitted twice.
XMM registers were not being handled.

llvm-svn: 26182
2006-02-14 21:45:24 +00:00
Chris Lattner 84fb09eba4 Make sure that weak functions are aligned properly
llvm-svn: 26181
2006-02-14 20:42:33 +00:00
Evan Cheng 43b72f4421 Duh
llvm-svn: 26180
2006-02-14 20:37:37 +00:00
Evan Cheng ad8c20cd2b Remove -disable-x86-sse
llvm-svn: 26179
2006-02-14 20:30:14 +00:00
Chris Lattner 94f936d8ef add an assert
llvm-svn: 26178
2006-02-14 20:14:17 +00:00
Evan Cheng db2a7a736a Keep to < 80 cols
llvm-svn: 26177
2006-02-14 20:12:38 +00:00
Evan Cheng 038521ef76 Missed a break so memcpy cases fell through to memset. Doh.
llvm-svn: 26176
2006-02-14 19:45:56 +00:00
Evan Cheng d502610604 Fixed a build breakage.
llvm-svn: 26175
2006-02-14 09:11:59 +00:00
Evan Cheng 4b40a42653 Rename maxStoresPerMemSet to maxStoresPerMemset, etc.
llvm-svn: 26174
2006-02-14 08:38:30 +00:00
Evan Cheng f976d79f78 Add a entry.
llvm-svn: 26173
2006-02-14 08:25:32 +00:00
Evan Cheng 6a37456d73 Set maxStoresPerMemSet to 16. Ditto for maxStoresPerMemCpy and
maxStoresPerMemMove. Although the last one is not used.

llvm-svn: 26172
2006-02-14 08:25:08 +00:00
Evan Cheng 81fcea8aa2 Expand memset dst, c, size to a series of stores if size falls below the
target specific theshold, e.g. 16 for x86.

llvm-svn: 26171
2006-02-14 08:22:34 +00:00
Evan Cheng 40b6eb9973 Enable SSE (for the right subtargets)
llvm-svn: 26169
2006-02-14 08:07:58 +00:00
Jeff Cohen 5cc208f9a9 Match changes to unix build system.
llvm-svn: 26167
2006-02-14 06:12:08 +00:00
Chris Lattner 1784a9d267 now that libcalls don't suck, we can remove this hack
llvm-svn: 26164
2006-02-14 05:39:35 +00:00
Chris Lattner e01ff337ee Adjust to new style "generated files in CVS" mechanism for lex output
llvm-svn: 26163
2006-02-14 05:16:35 +00:00
Chris Lattner 0242688ad8 adjust to new style of handling lexer changes
llvm-svn: 26162
2006-02-14 05:14:46 +00:00
Chris Lattner ecd162d5cd Adjust to new form of handling lexer dependencies, this way shouldn't have
the problems the old way did.

llvm-svn: 26161
2006-02-14 05:13:13 +00:00
Chris Lattner 8104b4c352 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.

llvm-svn: 26160
2006-02-14 05:12:00 +00:00
Chris Lattner b8e7aa0c9b Wrap a couple more long lines
llvm-svn: 26159
2006-02-14 04:27:15 +00:00
Chris Lattner e2dcbe03a1 wrap long lines
llvm-svn: 26158
2006-02-14 04:25:54 +00:00
Chris Lattner 0b8ec1a132 Use statistics to keep track of what flavors of loops we are unswitching
llvm-svn: 26157
2006-02-14 01:01:41 +00:00
Chris Lattner 8e2ee7358f 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.

llvm-svn: 26156
2006-02-14 00:55:02 +00:00
Chris Lattner 8b10ab3002 Implement Instcombine/and.ll:test34
llvm-svn: 26155
2006-02-13 23:07:23 +00:00
Chris Lattner 8081f40b50 new testcase
llvm-svn: 26154
2006-02-13 23:07:02 +00:00
Chris Lattner 4108d260e8 Fix typo that caused build failures for things trying to use m_Or.
llvm-svn: 26153
2006-02-13 23:06:39 +00:00
Chris Lattner 7d8522884b 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.

llvm-svn: 26152
2006-02-13 22:41:07 +00:00
Chris Lattner 5898effde0 testcase reduced from Ptrdist/bc that is miscompiled by recent instcombine changes.
llvm-svn: 26151
2006-02-13 22:31:50 +00:00
Chris Lattner d2d174dd0e Another hack due to allowing multiple symbols with the same name.
llvm-svn: 26150
2006-02-13 22:22:42 +00:00
Chris Lattner eea0f0198e Another work around for the 'symbols with different types can have the same
name' issue.

llvm-svn: 26149
2006-02-13 21:43:26 +00:00
Andrew Lenharth a438ef0ee7 improved zap discovery
llvm-svn: 26148
2006-02-13 18:52:29 +00:00
Andrew Lenharth a3bc7b8a85 test for improved zap discovery
llvm-svn: 26147
2006-02-13 18:52:01 +00:00
Jim Laskey 29483560d0 Sync up the tag numbers with gcc4.
llvm-svn: 26146
2006-02-13 16:56:43 +00:00
Jim Laskey 390c63e9d9 Rename to better reflect usage (current and planned.)
llvm-svn: 26145
2006-02-13 12:50:39 +00:00
Chris Lattner 462505fc5f Completely rewrite libcall insertion by the legalizer, providing the
following handy-dandy properties:

1. it is always correct now
2. it is much faster than before
3. it is easier to understand

This implementation builds off of the recent simplifications of the
legalizer that made it single-pass instead of iterative.

This fixes JM/lencod, JM/ldecod, and
CodeGen/Generic/2006-02-12-InsertLibcall.ll (at least on PPC).

llvm-svn: 26144
2006-02-13 09:18:02 +00:00
Chris Lattner 62c3484e43 Switch targets over to using SelectionDAG::getCALLSEQ_START to create
CALLSEQ_START nodes.

llvm-svn: 26143
2006-02-13 09:00:43 +00:00