Commit Graph

122312 Commits

Author SHA1 Message Date
John McCall 5ed3caf2e3 Warn about non-int main() results in GNU C mode instead of erroring.
Based on a patch by Vasiliy Korchagin!

llvm-svn: 150500
2012-02-14 19:50:52 +00:00
Timur Iskhodzhanov d2a9075de0 [ASan] Define an internal implementation of strchr to make stack OOB tests pass on Windows
llvm-svn: 150499
2012-02-14 19:33:04 +00:00
Fariborz Jahanian bce36774f0 more objective-c translator for modern abi.
metadata for protocol definitions used on
class qualifiers.

llvm-svn: 150498
2012-02-14 19:31:35 +00:00
Douglas Gregor 3e308b1fba Implement support for lambda capture pack expansions, e.g.,
[&values...] { print(values...); }

llvm-svn: 150497
2012-02-14 19:27:52 +00:00
Lang Hames 1ce837af7e Update MachineVerifier to check the new physreg live-in rules.
llvm-svn: 150496
2012-02-14 19:17:48 +00:00
Kaelyn Uhrain 0a16a8e531 Use several weighted factors to determine typo candidate viablity.
Replace the simple Levenshtein edit distance for typo correction
candidates--and the hacky way adding namespace qualifiers would affect
the edit distance--with a synthetic "edit distance" comprised of several
factors and their relative weights. This also allows the typo correction
callback object to convey more information about the viability of a
correction candidate than simply viable or not viable.

llvm-svn: 150495
2012-02-14 18:56:48 +00:00
Lang Hames 595111f221 Tighten physical register invariants: Allocatable physical registers can
only be live in to a block if it is the function entry point or a landing pad.

llvm-svn: 150494
2012-02-14 18:51:53 +00:00
Douglas Gregor ae64101e49 Simplify and robustify lambda PCH test
llvm-svn: 150493
2012-02-14 18:47:12 +00:00
Enrico Granata 6baf70aaab (no commit message)
llvm-svn: 150492
2012-02-14 18:01:27 +00:00
Douglas Gregor 99ae806aff Implement AST (de-)serialization for lambda expressions.
llvm-svn: 150491
2012-02-14 17:54:36 +00:00
Fariborz Jahanian b1ba885b49 more modern objc translator. Focusing on metadata for methods.
llvm-svn: 150490
2012-02-14 17:19:02 +00:00
Howard Hinnant e586ac735d Provide a move(const T&) overload for C++03 mode to enable moving from rvalues. This is to support proxy references. Fixes r10858112.
llvm-svn: 150488
2012-02-14 16:03:09 +00:00
Dylan Noblesmith 4d9cbffbe2 include clang's config.h unconditionally (v2)
And remove HAVE_CLANG_CONFIG_H, now that the header is generated
in the autoconf build, too.

Reverts r149571/restores r149504, now that config.h is generated
correctly by LLVM's configure in all build configurations.

llvm-svn: 150487
2012-02-14 15:54:49 +00:00
Tobias Grosser 1deda29598 ScheduleOpt: Allow to configure for which dependences to optimize
We can either optimize for RAW dependences or for all dependences.
For the moment, I do not see a big difference here.

llvm-svn: 150484
2012-02-14 14:02:48 +00:00
Tobias Grosser 00383a75b8 CodeGen: Get dependences for validity and proximity separately
This change itself should not change functionality, but it will make it easier
to support use different dependence kinds in for validity and proximity
constraints.

llvm-svn: 150483
2012-02-14 14:02:44 +00:00
Tobias Grosser 5f9a762056 ScopInfo: Add Scop::getDomains()
llvm-svn: 150482
2012-02-14 14:02:40 +00:00
Tobias Grosser cef36d5b99 Copy IndVarSimplify pass from LLVM to Polly
This allows us to enable -enable-iv-rewrite by default and releases LLVM from
the burdon to keep that feature. This is an intermediate step. We plan to soon
remove the need for rewritten induction variables entirely.

llvm-svn: 150481
2012-02-14 14:02:33 +00:00
Tobias Grosser 0ac9214c2f Recommit "CodeGen: Maintain a valid CFG during code generation"
When I first tried to commit this patch, the builder pointed after generation
of a loop still into the loop body. This means that code that was supposed to
be generated after the loop was generated right into the loop body. We fixed
this by pointing the builder to the BB after the loop, as soon as code
generation of the loop body itself is finished.

llvm-svn: 150480
2012-02-14 14:02:27 +00:00
Evgeniy Stepanov 2ee5950dd0 [asan] Add lots of missing visibility attributes.
llvm-svn: 150479
2012-02-14 13:46:06 +00:00
Nadav Rotem 29984ba033 Fix PR12000. Some vector operations may use scalar operands with types
that are greater than the vector element type. For example BUILD_VECTOR
of type <1 x i1> with a constant i8 operand.
This patch fixes the assertion.

llvm-svn: 150477
2012-02-14 13:06:32 +00:00
Benjamin Kramer 8001f7467a Use a simpler (and more efficient) pattern to pad vectors.
llvm-svn: 150475
2012-02-14 12:06:21 +00:00
Benjamin Kramer 0e3791efd1 Turn push_back loops into append/insert.
llvm-svn: 150471
2012-02-14 10:29:27 +00:00
Bill Wendling acb0f4795d Change error tests to coincide with message changes.
llvm-svn: 150467
2012-02-14 09:29:21 +00:00
Bill Wendling 9273b53965 Capitalize messages so that they appear nicely with the linker's error messages.
llvm-svn: 150466
2012-02-14 09:13:54 +00:00
David Blaikie cdd91dbe9f Fix crash-on-invalid for 'operator int[]()' in C++11.
Signed off by Richard Smith.

llvm-svn: 150464
2012-02-14 09:00:46 +00:00
Craig Topper cfad98f745 Move old movl vector_shuffle patterns. Not needed anymore since vector_shuffles shouldn't reach isel.
llvm-svn: 150462
2012-02-14 08:14:53 +00:00
Ted Kremenek b05119cb00 Fix use-after-free introduced by me being an idiot.
llvm-svn: 150461
2012-02-14 06:54:46 +00:00
Lang Hames 29d6ed6416 Rename getExceptionAddressRegister() to getExceptionPointerRegister() for consistency with setExceptionPointerRegister(...).
llvm-svn: 150460
2012-02-14 04:45:49 +00:00
Eli Friedman 248f898c5b Remove useless if statement.
llvm-svn: 150459
2012-02-14 03:54:45 +00:00
Eli Friedman 4412b23e7e Add a coverage test for lambda expression IRGen.
llvm-svn: 150458
2012-02-14 03:07:59 +00:00
Lang Hames 3365179018 Use convenience function for consistency.
llvm-svn: 150457
2012-02-14 03:04:29 +00:00
Ted Kremenek 914c7e62e8 Implement new DiagnosticsRenderer that packages notes retrieved by clang_getDiagnosticSetFromTU() as
child diagnostics of primary diagnostics.  By using the DiagnosticRenderer, these Diagnostics now
match with those generated for serialized diagnostics.

llvm-svn: 150456
2012-02-14 02:46:03 +00:00
Ted Kremenek 0964cca5d5 Refactor DiagnosticRenderer and SDiagsRenderer to have some functionality
pulled into DiagnosticNoteRenderer, and common DiagnosticRenderer that
assumes that all custom diagnostic messages are notes.  Also extend
DiagnosticRenderer to work with StoredDiagnostics in preparation for
subsequent changes.

llvm-svn: 150455
2012-02-14 02:46:00 +00:00
Ted Kremenek 3efa357fee Add helper methods to StoredDiagnostic.
llvm-svn: 150454
2012-02-14 02:43:12 +00:00
Richard Smith e7f5de485e Fix another issue introduced by the proposed wording for core issue 1358: since
the instantiation of a constexpr function temploid is now always constexpr, a
defaulted constexpr function temploid is often ill-formed by the rule in
[dcl.fct.def.default]p2 that an explicitly-defaulted constexpr function must
have a constexpr implicit definition. To avoid making loads of completely
reasonable code ill-formed, do not apply that rule to templates.

llvm-svn: 150453
2012-02-14 02:33:50 +00:00
Eli Friedman 5f1a04ffd1 Implement IRGen of lambda expressions which capture arrays.
llvm-svn: 150452
2012-02-14 02:31:03 +00:00
Eli Friedman 6ae6302ddf Refactor out new function EmitInitializerForField from EmitMemberInitializer. The new function will be used to initialize the fields of lambda expressions.
llvm-svn: 150451
2012-02-14 02:15:49 +00:00
Johnny Chen 5e60e3904c Add test cases exercising SBValue.GetObjectDescription() with the SBValue from SBTarget.FindGlobalVariables()
as well as from SBFrame.GetVariables().  Both scenarios are expected to work.

llvm-svn: 150450
2012-02-14 01:02:41 +00:00
Kostya Serebryany a8531eeb64 [tsan] fix compiler warnings
llvm-svn: 150449
2012-02-14 00:52:07 +00:00
Lang Hames 876f24f706 Third time's the charm...?
llvm-svn: 150447
2012-02-14 00:34:30 +00:00
Anna Zaks ad01ef5fb9 [analyzer] Malloc Checker: realloc: add dependency between the symbols
in realloc map. 

If there is no dependency, the reallocated ptr will get garbage
collected before we know that realloc failed, which would lead us to
missing a memory leak warning.

Also added new test cases, which we can handle now.
Plus minor cleanups.

llvm-svn: 150446
2012-02-14 00:26:13 +00:00
Sean Callanan a97aa92ab2 Fixed a bug that caused the description strings
for assembly instructions to occasionally come
out empty.

llvm-svn: 150445
2012-02-14 00:22:51 +00:00
Lang Hames 185455df7e Unswap swap operands, partially reducing confusion.
llvm-svn: 150444
2012-02-14 00:17:12 +00:00
Greg Clayton bae2f2f812 Made loading sections in the DynamicLoaderDarwinKernel more robust as it
seems that sections in the memory module might be quite different from the
sections in the file module. Now we find all segments in the on disk file and
find that segment by name in the memory module and it is ok if any sections
from the file are missing in the memory image.

llvm-svn: 150443
2012-02-14 00:14:24 +00:00
Douglas Gregor 1b66d8c287 Simple test ensuring that we perform direct initialization when copy-capturing in lambdas
llvm-svn: 150442
2012-02-14 00:03:38 +00:00
Kostya Serebryany dc84eae1e0 [asan] fix asan-vs-gvn.ll test (it did not actually check much before this change)
llvm-svn: 150441
2012-02-14 00:02:35 +00:00
Douglas Gregor b4328233c1 Link together the call operator produced from transforming a lambda
expression with the original call operator, so that we don't try to
separately instantiate the call operator. Test and tweak a few more
bits for template instantiation of lambda expressions.

llvm-svn: 150440
2012-02-14 00:00:48 +00:00
Andrew Trick 10cc45336d Add simplifyLoopLatch to LoopRotate pass.
This folds a simple loop tail into a loop latch. It covers the common (in fortran) case of postincrement loops. It's a "free" way to expose this type of loop to downstream loop optimizations that bail out on non-canonical loops (getLoopLatch is a heavily used check).

llvm-svn: 150439
2012-02-14 00:00:23 +00:00
Andrew Trick a20f198747 whitespace
llvm-svn: 150438
2012-02-14 00:00:19 +00:00
Bill Wendling 05d6f2ff1e Don't reserve the R0 and R1 registers here. We don't use these registers, and
marking them as "live-in" into a BB ruins some invariants that the back-end
tries to maintain.

llvm-svn: 150437
2012-02-13 23:47:16 +00:00