Commit Graph

57760 Commits

Author SHA1 Message Date
Chris Lattner 7f28b8e8eb use DEBUG instead of DebugFlag directly so that this
respects -debug-only=something-else.

llvm-svn: 97307
2010-02-27 06:51:44 +00:00
Chris Lattner d9e1e83e3b implement a new optimization to sink pattern predicates (like isSSE1)
as deeply into the pattern as we can get away with.  In pratice, this 
means "all the way to to the emitter code, but not across 
ComplexPatterns".  This substantially increases the amount of factoring
we get.

llvm-svn: 97305
2010-02-27 06:22:57 +00:00
Bill Wendling e7179e8b76 The TType is always absptr on Mach-O...at least for now.
llvm-svn: 97295
2010-02-27 01:05:51 +00:00
Jeffrey Yasskin 67c0aece75 Fix the ocaml bindings for the bitcode reader.
llvm_get_module_provider() was returning a value of the wrong type.

llvm-svn: 97290
2010-02-27 00:25:18 +00:00
Chris Lattner d887f1da73 fix PR6414, a nondeterminism issue in IPSCCP which was because
of a subtle interation in a loop operating in densemap order.

llvm-svn: 97288
2010-02-27 00:07:42 +00:00
Chris Lattner 65d3a0a5f8 Fix rdar://7694996 a miscompile of 183.equake from my patch yesterday,
confusing the old MAT variable with the new GlobalType one.  This caused
us to promote the @disp global pointer into:

@disp.body = internal global double*** undef

instead of:

@disp.body = internal global [3 x double**] undef

llvm-svn: 97285
2010-02-26 23:42:13 +00:00
Chris Lattner da5fcdace0 remove dead code, by this point all uses of CI are gone.
llvm-svn: 97283
2010-02-26 23:35:25 +00:00
Jeffrey Yasskin a433ee3302 Test that docs are updating.
llvm-svn: 97279
2010-02-26 22:25:06 +00:00
John McCall b42cc681ba Make APFloat's string-parsing routines a bit safer against very large exponents.
llvm-svn: 97278
2010-02-26 22:20:41 +00:00
Bill Wendling c3a9376215 A much cleaner (and less code!) way of inserting the correct amount of padding
for alignment into the LSDA. If the TType base offset is emitted, then put the
padding there. Otherwise, put it in the call site table length. There will be no
conflict between the two sites when placing the padding in one place.

llvm-svn: 97277
2010-02-26 22:17:52 +00:00
Johnny Chen 38e7bb6f34 Added the follwoing 32-bit Thumb instructions for disassembly only:
o Parallel addition and subtraction, signed/unsigned
o Miscellaneous operations: QADD, QDADD, QSUB, QDSUB
o Unsigned sum of absolute differences [and accumulate]: USAD8, USADA8
o Signed/Unsigned saturate: SSAT, SSAT16, USAT, USAT16
o Signed multiply accumulate long (halfwords): SMLAL<x><y>
o Signed multiply accumulate/subtract [long] (dual): SMLAD[x], SMLALD[X], SMLSD[X], SMLSLD[X]
o Signed dual multiply add/subtract [long]: SMUAD[X], SMUSD[X]

llvm-svn: 97276
2010-02-26 22:04:29 +00:00
Jakob Stoklund Olesen 17d54920d7 Merge PPC instructions FMRS and FMRD into a single FMR instruction.
This is possible because F8RC is a subclass of F4RC. We keep FMRSD around so
fextend has a pattern.

Also allow folding of memory operands on FMRSD.

llvm-svn: 97275
2010-02-26 21:53:24 +00:00
Dan Gohman b53dababc4 Fix grammaro in a comment.
llvm-svn: 97273
2010-02-26 21:45:37 +00:00
Dan Gohman 1b9dd248e4 Add Revision keywords to these files, as it's common for them to be
copied out of the source tree.

llvm-svn: 97270
2010-02-26 21:38:04 +00:00
Bill Wendling fea6c4efc7 Comment typo.
llvm-svn: 97269
2010-02-26 21:31:01 +00:00
Chris Lattner 134a9dc114 don't build edis if the x86 target isn't enabld.
llvm-svn: 97268
2010-02-26 21:26:33 +00:00
Dan Gohman 94fa92b441 Improve the vim code for highlighting trailing whitespace and lines
longer than 80 columns. This replaces the heavy-handed "textwidth"
mechanism, and makes the trailing-whitespace highlighting lazy so
that it isn't constantly jumping on the user during typing.

llvm-svn: 97267
2010-02-26 21:24:46 +00:00
Tanya Lattner 0569db0699 Test autoupdate.
llvm-svn: 97266
2010-02-26 21:23:59 +00:00
Tanya Lattner 7bb1a6e306 Test auto update.
llvm-svn: 97265
2010-02-26 21:19:09 +00:00
Dan Gohman 91f97f094f Add the alignstack keyword.
llvm-svn: 97264
2010-02-26 21:16:17 +00:00
Dan Gohman ae53e2c1f0 Remove bogus Updated line.
llvm-svn: 97263
2010-02-26 21:15:49 +00:00
Jakob Stoklund Olesen ddbf7a858e Use the right floating point load/store instructions in PPCInstrInfo::foldMemoryOperandImpl().
The PowerPC floating point registers can represent both f32 and f64 via the
two register classes F4RC and F8RC. F8RC is considered a subclass of F4RC to
allow cross-class coalescing. This coalescing only affects whether registers
are spilled as f32 or f64.

Spill slots must be accessed with load/store instructions corresponding to the
class of the spilled register. PPCInstrInfo::foldMemoryOperandImpl was looking
at the instruction opcode which is wrong.

X86 has similar floating point register classes, but doesn't try to fold
memory operands, so there is no problem there.

llvm-svn: 97262
2010-02-26 21:09:24 +00:00
Jakob Stoklund Olesen 391700872f Remove dead code
llvm-svn: 97261
2010-02-26 21:09:20 +00:00
Jeffrey Yasskin db341a5282 Remove REQUIRES_EH from the suggested set of make variables, since users can
build with exceptions even if LLVM is built without.

llvm-svn: 97260
2010-02-26 20:43:33 +00:00
Benjamin Kramer 7f98b46dc1 Replace a temporary std::string with SmallString.
llvm-svn: 97259
2010-02-26 20:28:29 +00:00
Dan Gohman 42f5691d3c Fix typos in comments.
llvm-svn: 97257
2010-02-26 20:18:32 +00:00
Dale Johannesen dd33104203 Move dbg_value generation to target-independent FastISel,
as X86 is currently the only FastISel target.  Per review.

llvm-svn: 97255
2010-02-26 20:01:55 +00:00
Dale Johannesen 3e7df345c8 Further constify MDNode* references.
llvm-svn: 97252
2010-02-26 19:39:56 +00:00
Dale Johannesen e6b53047bb Add type printing for Metadata pseudo.
llvm-svn: 97251
2010-02-26 19:38:59 +00:00
Bob Wilson ed1b0c31a7 Move the EnableFullLoadPRE flag from a separate command-line option to an
argument of createGVNPass and set it automatically for -O3.

llvm-svn: 97245
2010-02-26 19:09:47 +00:00
Sanjiv Gupta f8bd9413d5 disable-mem2reg and disable-gvn options should not be used by the driver.
llvm-svn: 97236
2010-02-26 18:38:44 +00:00
Bob Wilson d4655991c3 Remove unused "NoPRE" parameter in GVN and createGVNPass().
llvm-svn: 97235
2010-02-26 18:35:19 +00:00
Chris Lattner bb592eb9d0 pass in more section kinds, enough to get the .align 0x90
stuff to emit optimal nops in the right places.

llvm-svn: 97233
2010-02-26 18:32:26 +00:00
Sanjiv Gupta ef686dc38d The cloner has nothing to do if any of the main or ISR entrypoints are not
present in the module.

llvm-svn: 97232
2010-02-26 18:32:18 +00:00
Chris Lattner 0521c09d97 fix PR6435 another bug from the MallocInst elimination work.
llvm-svn: 97231
2010-02-26 18:23:13 +00:00
Jeffrey Yasskin f074cb8eea Set svn:keywords property on docs/Packaging.html.
llvm-svn: 97230
2010-02-26 18:07:00 +00:00
Jeffrey Yasskin 56917d1d74 Add to the packaging advice.
llvm-svn: 97229
2010-02-26 18:03:43 +00:00
Sanjiv Gupta 2bdbb3c167 Reapply things reverted back in 97220, with the fixed test case.
llvm-svn: 97228
2010-02-26 17:59:28 +00:00
Dan Gohman 952f6f98bb movl is a cheaper way to materialize 0 without clobbering EFLAGS than movabsq.
llvm-svn: 97227
2010-02-26 16:49:27 +00:00
Richard Osborne 333300e0df Fix XCoreTargetLowering::isLegalAddressingMode() to handle VoidTy.
Previously LoopStrengthReduce would sometimes be unable to find
a legal formula, causing an assertion failure.

llvm-svn: 97226
2010-02-26 16:44:51 +00:00
Chandler Carruth 663f658d87 Revert r97211 and r97213 to get the build green again.
llvm-svn: 97220
2010-02-26 08:43:09 +00:00
Chris Lattner 4835aecd95 add some helpful comments to the emitter
llvm-svn: 97219
2010-02-26 08:15:02 +00:00
Chris Lattner 4f9a671a30 switch from my nice hashtable based merging solution to a
gross little neighbor merging implementation.  This one has
the benefit of not violating the ordering of patterns, so it
generates code that passes tests again.

llvm-svn: 97218
2010-02-26 08:08:41 +00:00
Chris Lattner 1ffcde2f3b fix same bug in CheckChainCompatibleMatcher::isEqualImpl
llvm-svn: 97217
2010-02-26 08:06:02 +00:00
Chris Lattner a6142a241a fix a nasty bug in CheckTypeMatcher::isEqualImpl
llvm-svn: 97216
2010-02-26 08:05:36 +00:00
Chris Lattner be5b634cea finish off the factoring optimization along the lines of the
current design.  This generates a matcher that successfully
runs, but it turns out that the factoring we're doing violates
the ordering of patterns, so we end up matching (e.g.) movups
where we want movaps.  This won't due, but I'll address this in
a follow on patch.  It's nice to not be on by default yet! :)

llvm-svn: 97215
2010-02-26 07:36:37 +00:00
Chris Lattner 81129177a3 add a new setNumChildren method for resizing scopes. Tweak getHash() so
that we never return a tombstone value, which (thankfully) triggers an
assert in densemap.

llvm-svn: 97214
2010-02-26 07:35:27 +00:00
Sanjiv Gupta 7828ff9535 Currently in LLVM, names of libcalls are assigned during TargetLowering
object construction. There is no provision to change them when the 
code for a function generated. 
So we have to change these names while printing assembly.

llvm-svn: 97213
2010-02-26 07:31:15 +00:00
Chris Lattner 9f960c2d3a fix the matcher in the presence of multiple scopes: we need to save
and restore the entire matcher stack by value.  This is because children
we're testing could do moveparent or other things besides just 
scribbling on additions to the stack.

llvm-svn: 97212
2010-02-26 07:28:20 +00:00
Sanjiv Gupta 528b1465e5 Before converting an operand to mem, check if it is legal to do so.
llvm-svn: 97211
2010-02-26 07:27:35 +00:00