Commit Graph

79054 Commits

Author SHA1 Message Date
Anders Carlsson
d46ed89d79 Stub out more of the 'this' pointer adjustment fixes I've been planning. Start using a set vector for primary bases so they will be ordered.
llvm-svn: 97326
2010-02-27 16:18:19 +00:00
Benjamin Kramer
b14e0b637a Simplify code.
llvm-svn: 97324
2010-02-27 14:22:08 +00:00
Benjamin Kramer
c5c65d2993 Fix thinko.
llvm-svn: 97323
2010-02-27 14:15:42 +00:00
Benjamin Kramer
0a1abd4088 Add an overload of Preprocessor::getSpelling which takes a SmallVector and
returns a StringRef. Use it to simplify some repetitive code.

llvm-svn: 97322
2010-02-27 13:44:12 +00:00
Ted Kremenek
09597b461d Fix crasher caused by setting a bit in a possibly empty bitvector while
doing printf format string checking.  This is a recent regression.

llvm-svn: 97318
2010-02-27 08:34:51 +00:00
Chris Lattner
fb2a0f20dd add another case from the ppc backend. This is obviously a huge and
dissatisfying hack.  TODO: Improve it. :)

llvm-svn: 97317
2010-02-27 08:19:47 +00:00
Chris Lattner
a2075d44ad fix an incorrect (overly conservative) predicate.
llvm-svn: 97316
2010-02-27 08:18:55 +00:00
Chris Lattner
21a7bf3fab fix logic in DEBUG.
llvm-svn: 97315
2010-02-27 08:13:23 +00:00
Chris Lattner
2586c86a8a teach the optimizer that opcode == ISD::STORE is contradictory
with getType() == MVT::i32 etc.  Teach it that two different
integer constants are contradictory.  This cuts 1K off the X86
table, down to 98k

llvm-svn: 97314
2010-02-27 08:11:15 +00:00
Chris Lattner
2af7e3dceb fix grammaro's pointed out by daniel
llvm-svn: 97313
2010-02-27 07:50:40 +00:00
Chris Lattner
c577b816fc Teach the grouper some simple tricks about looking contradictory
predicates.  For example if we have:

Scope:
  CheckType i32
    ABC
  CheckType f32
    DEF
  CheckType i32
    GHI

Then we know that we can transform this into:
Scope:
  CheckType i32
    Scope
      ABC
      GHI
  CheckType f32
    DEF

This reorders the check for the 'GHI' predicate above
the check for the 'DEF' predidate.  However it is safe to do this
in this situation because we know that a node cannot have both an
i32 and f32 type.

We're now doing more factoring that the old isel did.

llvm-svn: 97312
2010-02-27 07:49:13 +00:00
Kovarththanan Rajaratnam
9a3f55c2a4 Wire up Daniel's new spiffy C interpreter into the CMake build system
llvm-svn: 97311
2010-02-27 07:46:49 +00:00
Evan Cheng
228c31f045 Re-apply 97040 with fix. This survives a ppc self-host llvm-gcc bootstrap.
llvm-svn: 97310
2010-02-27 07:36:59 +00:00
Kovarththanan Rajaratnam
7cfffceec7 Add comment
llvm-svn: 97309
2010-02-27 07:06:44 +00:00
Kovarththanan Rajaratnam
fa0a4bcb55 Add header + comments
llvm-svn: 97308
2010-02-27 07:05:56 +00:00
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
Anders Carlsson
d2025417ef Fix another vtable layout bug; we weren't looking hard enough for overriden functions when determining if an overrider will ever be used.
llvm-svn: 97306
2010-02-27 06:38:03 +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
Anders Carlsson
d69b2f93ea Handle vcall offset sharing between destructors.
llvm-svn: 97304
2010-02-27 04:12:52 +00:00
Anders Carlsson
b08aaa3e10 Fix a bug where we were generating an unnecessary vtable for a virtual base that's already a primary virtual base.
llvm-svn: 97303
2010-02-27 04:05:52 +00:00
Zhongxing Xu
e334bb1a66 Add test case for inlining call analysis.
llvm-svn: 97300
2010-02-27 02:44:37 +00:00
Douglas Gregor
b8b9f28e24 Robustify SourceManager::getLocation(), so that it returns an
end-of-line source location when given a column number beyond the
length of the line, or an end-of-file source location when given a
line number beyond the length of the file. Previously, we would return
an invalid location.

llvm-svn: 97299
2010-02-27 02:42:25 +00:00
Ted Kremenek
af11dcf348 Add reference to positional arguments documentation.
llvm-svn: 97298
2010-02-27 01:46:29 +00:00
Ted Kremenek
d166819c26 For printf format string checking, add support for positional format strings.
Along the way, coelesce some of the diagnostics.

llvm-svn: 97297
2010-02-27 01:41:03 +00:00
Douglas Gregor
89a56c561f When given unsaved files in clang_createTranslationUnitFromSourceFile,
copy the source buffers provided rather than referencing them
directly, so that the caller can free those buffers immediately after
calling clang_createTranslationUnitFromSourceFile(). Otherwise, we
risk hitting those buffers later (when building source ranges, forming
diagnostics, etc.). 

llvm-svn: 97296
2010-02-27 01:32:48 +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
Douglas Gregor
beab56e923 Skip dependent virtual base classes; fixes PR6413.
llvm-svn: 97291
2010-02-27 00:25:28 +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
John McCall
013b006557 Put BadLiteral in the NonGCC group. I'd completely forgotten about this.
llvm-svn: 97286
2010-02-26 23:48:57 +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
John McCall
62abc944d6 At sabre's request, drop the FP bounds diagnostics down to warnings and file
them under -Wbad-literal.  They're still on by default.

llvm-svn: 97284
2010-02-26 23:35:57 +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
Fariborz Jahanian
6005bd821c Prevent rewriter crash when variable type is missing.
Fixes radar 7692183.

llvm-svn: 97281
2010-02-26 22:49:11 +00:00
Fariborz Jahanian
be730c9e34 Minor cleanup of the rewriter.
llvm-svn: 97280
2010-02-26 22:36:30 +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
Fariborz Jahanian
9bbc148e16 Removed some unused code in rewriter.
llvm-svn: 97274
2010-02-26 21:46:27 +00:00
Dan Gohman
b53dababc4 Fix grammaro in a comment.
llvm-svn: 97273
2010-02-26 21:45:37 +00:00
Dan Gohman
fc2d097de6 Use the right svn:keywords value.
llvm-svn: 97271
2010-02-26 21:39:02 +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