platform/upstream/llvm.git
12 years agoAdd comment.
Chad Rosier [Fri, 21 Sep 2012 20:51:43 +0000 (20:51 +0000)]
Add comment.

llvm-svn: 164414

12 years agoFix installheaders target to do what it did prior to r161760. rdar://12348765
Bob Wilson [Fri, 21 Sep 2012 20:49:54 +0000 (20:49 +0000)]
Fix installheaders target to do what it did prior to r161760. rdar://12348765

llvm-svn: 164413

12 years agoobjective-C: when diagnosing deprecated/unavailable usage of
Fariborz Jahanian [Fri, 21 Sep 2012 20:46:37 +0000 (20:46 +0000)]
objective-C: when diagnosing deprecated/unavailable usage of
setter or getter backing a deprecated/unavailable property,
also not location of the property. // rdar://12324295

llvm-svn: 164412

12 years agoCall CGM.SetLLVMFunctionAttributesForDefinition on thunks so that they get
Rafael Espindola [Fri, 21 Sep 2012 20:39:32 +0000 (20:39 +0000)]
Call CGM.SetLLVMFunctionAttributesForDefinition on thunks so that they get
attributes like uwtable. Without uwtable a stack unwinder would be unable
to go past the thunks.

llvm-svn: 164411

12 years agoAdd four new command line options for MIPS CPU selection:
Simon Atanasyan [Fri, 21 Sep 2012 20:19:32 +0000 (20:19 +0000)]
Add four new command line options for MIPS CPU selection:
-mips32, -mips32r2, -mips64, -mips64r2.

The patch reviewed by Eric Christopher.

llvm-svn: 164410

12 years agoFix a typo in the PCH internals documentation
Douglas Gregor [Fri, 21 Sep 2012 20:16:09 +0000 (20:16 +0000)]
Fix a typo in the PCH internals documentation

llvm-svn: 164409

12 years agoFix a significant recent(?) regression. StackSlotColoring no longer did anything
Evan Cheng [Fri, 21 Sep 2012 20:04:28 +0000 (20:04 +0000)]
Fix a significant recent(?) regression. StackSlotColoring no longer did anything
because LiveStackAnalysis was not preserved by VirtRegWriter. This caused
big stack usage regression in some cases.

rdar://12340383

llvm-svn: 164408

12 years agodocs: Fix long-standing typo in yaml2obj.rst.
Sean Silva [Fri, 21 Sep 2012 19:48:16 +0000 (19:48 +0000)]
docs: Fix long-standing typo in yaml2obj.rst.

llvm-svn: 164407

12 years agoWhitespace.
Chad Rosier [Fri, 21 Sep 2012 19:25:59 +0000 (19:25 +0000)]
Whitespace.

llvm-svn: 164406

12 years agoRename class __lambda to __lambda_node to avoid clash with gcc. This fixes http...
Howard Hinnant [Fri, 21 Sep 2012 19:21:37 +0000 (19:21 +0000)]
Rename class __lambda to __lambda_node to avoid clash with gcc.  This fixes llvm.org/bugs/show_bug.cgi?id=13889

llvm-svn: 164405

12 years agoTweak use of dlopen to be a little more correct and higher performing.
Howard Hinnant [Fri, 21 Sep 2012 19:12:56 +0000 (19:12 +0000)]
Tweak use of dlopen to be a little more correct and higher performing.

llvm-svn: 164404

12 years agoInitial commit of a new testsuite feature: test categories.
Enrico Granata [Fri, 21 Sep 2012 19:10:53 +0000 (19:10 +0000)]
Initial commit of a new testsuite feature: test categories.

This feature allows us to group test cases into logical groups (categories), and to only run a subset of test cases based on these categories.

Each test-case can have a new method getCategories(self): which returns a list of strings that are the categories to which the test case belongs.
If a test-case does not provide its own categories, we will look for categories in the class that contains the test case.
If that fails too, the default implementation looks for a .category file, which contains a comma separated list of strings.
The test suite will recurse look for .categories up until the top level directory (which we guarantee will have an empty .category file).

The driver dotest.py has a new --category <foo> option, which can be repeated, and specifies which categories of tests you want to run.
(example: ./dotest.py --category objc --category expression)

All tests that do not belong to any specified category will be skipped. Other filtering options still exist and should not interfere with category filtering.
A few tests have been categorized. Feel free to categorize others, and to suggest new categories that we could want to use.

All categories need to be validly defined in dotest.py, or the test suite will refuse to run when you use them as arguments to --category.

In the end, failures will be reported on a per-category basis, as well as in the usual format.

This is the very first stage of this feature. Feel free to chime in with ideas for improvements!

llvm-svn: 164403

12 years agoSay "bytes" instead of "address units", since that's what the
Dan Gohman [Fri, 21 Sep 2012 18:41:30 +0000 (18:41 +0000)]
Say "bytes" instead of "address units", since that's what the
rest of LangRef uses.

llvm-svn: 164402

12 years agoExperiment in BodyFarm of structuring AST creation calls in a hierarchy,
Ted Kremenek [Fri, 21 Sep 2012 18:33:56 +0000 (18:33 +0000)]
Experiment in BodyFarm of structuring AST creation calls in a hierarchy,
so that they visually look like an AST dump.

llvm-svn: 164401

12 years agoCreate helper method in BodyFarm for creating simple assignments.
Ted Kremenek [Fri, 21 Sep 2012 18:33:54 +0000 (18:33 +0000)]
Create helper method in BodyFarm for creating simple assignments.

llvm-svn: 164400

12 years agoAdd helper method in BodyFarm to create unary dereferences.
Ted Kremenek [Fri, 21 Sep 2012 18:33:52 +0000 (18:33 +0000)]
Add helper method in BodyFarm to create unary dereferences.

llvm-svn: 164399

12 years agoDocument the new !tbaa.struct metadata.
Dan Gohman [Fri, 21 Sep 2012 18:21:48 +0000 (18:21 +0000)]
Document the new !tbaa.struct metadata.

llvm-svn: 164398

12 years agoAdd helper method to BodyFarm for creating lvalue-to-rvalue conversions.
Ted Kremenek [Fri, 21 Sep 2012 18:13:27 +0000 (18:13 +0000)]
Add helper method to BodyFarm for creating lvalue-to-rvalue conversions.

llvm-svn: 164397

12 years agoAdd helper method to BodyFarm for creatinging integral casts.
Ted Kremenek [Fri, 21 Sep 2012 18:13:23 +0000 (18:13 +0000)]
Add helper method to BodyFarm for creatinging integral casts.

llvm-svn: 164396

12 years agoAdd missing 'to' and rephrase an explanation of GCC's assumptions.
David Blaikie [Fri, 21 Sep 2012 18:03:02 +0000 (18:03 +0000)]
Add missing 'to' and rephrase an explanation of GCC's assumptions.

Wordsmithing by Matt Beaumont-Gay in response to r164389.

llvm-svn: 164395

12 years agoThread-safety analysis: better handling of unreachable blocks. Fixes a bug
DeLesley Hutchins [Fri, 21 Sep 2012 17:57:00 +0000 (17:57 +0000)]
Thread-safety analysis: better handling of unreachable blocks.  Fixes a bug
where a call to function marked 'noreturn' is followed by unreachable
implicit destructor calls.

llvm-svn: 164394

12 years agoRe-enable faux-bodies by default.
Ted Kremenek [Fri, 21 Sep 2012 17:55:34 +0000 (17:55 +0000)]
Re-enable faux-bodies by default.

Try this again, now that r164392 is in place.

llvm-svn: 164393

12 years agoUse helper method to create DeclRefExprs in BodyFarm, hopefully allevating
Ted Kremenek [Fri, 21 Sep 2012 17:54:35 +0000 (17:54 +0000)]
Use helper method to create DeclRefExprs in BodyFarm, hopefully allevating
them being correctly constructed.

llvm-svn: 164392

12 years agoAdd some structuring comments. No functionality change.
Ted Kremenek [Fri, 21 Sep 2012 17:54:32 +0000 (17:54 +0000)]
Add some structuring comments.  No functionality change.

llvm-svn: 164391

12 years agoUpdate comment.
Chad Rosier [Fri, 21 Sep 2012 17:50:09 +0000 (17:50 +0000)]
Update comment.

llvm-svn: 164390

12 years agoDocument "do not use defaults in covered switch-over-enum" coding standard.
David Blaikie [Fri, 21 Sep 2012 17:47:36 +0000 (17:47 +0000)]
Document "do not use defaults in covered switch-over-enum" coding standard.

llvm-svn: 164389

12 years agoLoopIdiom: Give up when the loop is not in canonical form.
Benjamin Kramer [Fri, 21 Sep 2012 17:27:23 +0000 (17:27 +0000)]
LoopIdiom: Give up when the loop is not in canonical form.

We rely on it when doing the transforms. This can happen when there is an
indirectbr in  the loop.

Fixes PR13892.

llvm-svn: 164383

12 years agoUse MapVectors to make the order we mark virtual functions used by a vtable
Rafael Espindola [Fri, 21 Sep 2012 17:15:24 +0000 (17:15 +0000)]
Use MapVectors to make the order we mark virtual functions used by a vtable
deterministic. Fixes pr13868.

llvm-svn: 164382

12 years ago[fast-isel] Fallback to SelectionDAG isel if we require strict alignment for
Chad Rosier [Fri, 21 Sep 2012 16:58:35 +0000 (16:58 +0000)]
[fast-isel] Fallback to SelectionDAG isel if we require strict alignment for
non-aligned i32 loads/stores.
rdar://12304911

llvm-svn: 164381

12 years agoFull KDP process control with per CPU resume and step.
Greg Clayton [Fri, 21 Sep 2012 16:31:20 +0000 (16:31 +0000)]
Full KDP process control with per CPU resume and step.

llvm-svn: 164378

12 years agoInstCombine: Make sure we use the pre-zext type when creating a constant of a value...
Benjamin Kramer [Fri, 21 Sep 2012 16:26:41 +0000 (16:26 +0000)]
InstCombine: Make sure we use the pre-zext type when creating a constant of a value that is zext'd.

Fixes PR13250.

llvm-svn: 164377

12 years agoBailout if libpluto finds no schedule
Tobias Grosser [Fri, 21 Sep 2012 16:24:13 +0000 (16:24 +0000)]
Bailout if libpluto finds no schedule

Older versions of libpluto crashed, if no schedule was found. Recent
versions return NULL. We detect this and keep the original schedule.

llvm-svn: 164376

12 years agoUpdate for encapsulating the "construct*AlignmentFromInt" methods.
Bill Wendling [Fri, 21 Sep 2012 16:07:49 +0000 (16:07 +0000)]
Update for encapsulating the "construct*AlignmentFromInt" methods.

llvm-svn: 164374

12 years agoEncapsulate the "construct*AlignmentFromInt" functions.
Bill Wendling [Fri, 21 Sep 2012 16:07:28 +0000 (16:07 +0000)]
Encapsulate the "construct*AlignmentFromInt" functions.

llvm-svn: 164373

12 years agoFix a typo in r164357
Michael Liao [Fri, 21 Sep 2012 16:03:03 +0000 (16:03 +0000)]
Fix a typo in r164357

llvm-svn: 164372

12 years agoClarify comment.
Dmitri Gribenko [Fri, 21 Sep 2012 15:26:34 +0000 (15:26 +0000)]
Clarify comment.

llvm-svn: 164371

12 years agoMake the 'get*AlignmentFromAttr' functions into member functions within the Attribute...
Bill Wendling [Fri, 21 Sep 2012 15:26:31 +0000 (15:26 +0000)]
Make the 'get*AlignmentFromAttr' functions into member functions within the Attributes class. Now with fix.

llvm-svn: 164370

12 years agoBitcodeReader: Correctly insert blockaddress constant referring to a already parsed...
Benjamin Kramer [Fri, 21 Sep 2012 14:34:31 +0000 (14:34 +0000)]
BitcodeReader: Correctly insert blockaddress constant referring to a already parsed function.

We inserted a placeholder that was never replaced because the function was
already visited. Assert that all placeholders have been resolved when tearing
down the bitcode reader.

Fixes PR13895.

llvm-svn: 164369

12 years agoRevert r164364, "Flip "faux-bodies" in the analyzer on by default to flush out bugs."
NAKAMURA Takumi [Fri, 21 Sep 2012 12:00:42 +0000 (12:00 +0000)]
Revert r164364, "Flip "faux-bodies" in the analyzer on by default to flush out bugs."

It crashed test/Analysis/Output/blocks.m on some hosts.

llvm-svn: 164368

12 years ago[Sanitizer] llvm-symbolizer: enable accessing symbol table (libObject is fixed in...
Alexey Samsonov [Fri, 21 Sep 2012 10:54:14 +0000 (10:54 +0000)]
[Sanitizer] llvm-symbolizer: enable accessing symbol table (libObject is fixed in r164365) and replace string with std::string

llvm-svn: 164367

12 years agoMake warnings about uninitialized fields include the field name.
Hans Wennborg [Fri, 21 Sep 2012 08:58:33 +0000 (08:58 +0000)]
Make warnings about uninitialized fields include the field name.

This makes the wording more informative, and consistent with the other
warnings about uninitialized variables.

Also, me and David who reviewed this couldn't figure out why we would
need to do a lookup to get the name of the variable; so just print the
name directly.

llvm-svn: 164366

12 years agoFix SymbolRef::getAddress implementation for ELF. The 'value' field in symbol table...
Alexey Samsonov [Fri, 21 Sep 2012 07:08:08 +0000 (07:08 +0000)]
Fix SymbolRef::getAddress implementation for ELF. The 'value' field in symbol table entry should be treated differently for relocatable and relocated files. This patch fixes symbol addresses printed by llvm-nm for executables and shared objects.

llvm-svn: 164365

12 years agoFlip "faux-bodies" in the analyzer on by default to flush out bugs.
Ted Kremenek [Fri, 21 Sep 2012 06:14:37 +0000 (06:14 +0000)]
Flip "faux-bodies" in the analyzer on by default to flush out bugs.

llvm-svn: 164364

12 years agoSimplify getRuntimeDefinition() back to taking no arguments.
Ted Kremenek [Fri, 21 Sep 2012 06:13:13 +0000 (06:13 +0000)]
Simplify getRuntimeDefinition() back to taking no arguments.

llvm-svn: 164363

12 years agollvm/test/CodeGen/X86/pr5145.ll: Tweak expressions to match for darwin target.
NAKAMURA Takumi [Fri, 21 Sep 2012 05:19:19 +0000 (05:19 +0000)]
llvm/test/CodeGen/X86/pr5145.ll: Tweak expressions to match for darwin target.

.LBB0_1: # Linux
LBB0_1:  # Darwin

llvm-svn: 164362

12 years agoCortex-A9 latency fixes (w/ -schedmodel only).
Andrew Trick [Fri, 21 Sep 2012 05:06:40 +0000 (05:06 +0000)]
Cortex-A9 latency fixes (w/ -schedmodel only).

Quick review against the manual revealed a few obvious mistakes.

llvm-svn: 164361

12 years agoDoxygen-ify a comment.
Craig Topper [Fri, 21 Sep 2012 04:33:26 +0000 (04:33 +0000)]
Doxygen-ify a comment.

llvm-svn: 164360

12 years agoPR13890: Warn on abstract final classes.
David Blaikie [Fri, 21 Sep 2012 03:21:07 +0000 (03:21 +0000)]
PR13890: Warn on abstract final classes.

llvm-svn: 164359

12 years agoAdd missing i8 max/min/umax/umin support
Michael Liao [Fri, 21 Sep 2012 03:18:52 +0000 (03:18 +0000)]
Add missing i8 max/min/umax/umin support

- Fix PR5145 and turn on test 8-bit atomic ops

llvm-svn: 164358

12 years agoRevise td of X86 atomic instructions
Michael Liao [Fri, 21 Sep 2012 03:00:17 +0000 (03:00 +0000)]
Revise td of X86 atomic instructions

- Rewirte most atomic instructions in templates for both better
  maintenance and future extensions, such as HLE in TSX.

llvm-svn: 164357

12 years agodocs: Fix Sphinx warning over Atomics.rst.
Sean Silva [Fri, 21 Sep 2012 02:46:32 +0000 (02:46 +0000)]
docs: Fix Sphinx warning over Atomics.rst.

Atomics.rst was not linked into the toctree.

Docs now build warning-free!

llvm-svn: 164356

12 years agodocs: Fix Sphinx warning over yaml2obj.rst.
Sean Silva [Fri, 21 Sep 2012 02:46:30 +0000 (02:46 +0000)]
docs: Fix Sphinx warning over yaml2obj.rst.

yaml2obj.rst was not included in the toctree

Input from Michael Spencer.

llvm-svn: 164355

12 years agoMips16FrameLowering.cpp: Remove unused TII introduced in r164349. [-Wunused-variable]
NAKAMURA Takumi [Fri, 21 Sep 2012 02:21:30 +0000 (02:21 +0000)]
Mips16FrameLowering.cpp: Remove unused TII introduced in r164349. [-Wunused-variable]

llvm-svn: 164354

12 years agoFixed an oddity in the Objective-C class descriptors
Sean Callanan [Fri, 21 Sep 2012 02:09:51 +0000 (02:09 +0000)]
Fixed an oddity in the Objective-C class descriptors
where the descriptor took a pointer to an object and
expected the Initialize function to dereference that
pointer and extract the isa value.  This caused one
of our tests to fail.

llvm-svn: 164353

12 years ago<rdar://problem/9959501>
Greg Clayton [Fri, 21 Sep 2012 01:55:30 +0000 (01:55 +0000)]
<rdar://problem/9959501>

KDP -- now with rudimentary process control (continue only) and read + write registers (which means we can see stack frames) for x86_64, i386 and ARM.

llvm-svn: 164352

12 years ago[PCH] After deserializing a DeclContext, if it has external lexical decls but not
Argyrios Kyrtzidis [Fri, 21 Sep 2012 01:30:00 +0000 (01:30 +0000)]
[PCH] After deserializing a DeclContext, if it has external lexical decls but not
external visible decls, call DeclContext::setMustBuildLookupTable so that the
"lazy decls" bit of the LookupPtr is set.

Previously, in non-C++, if there were no new declarations causing the "lazy decls" bit
to be set, then DeclContext::lookups_begin() would fail to return the decls from the PCH.

Fixes rdar://12316296.

llvm-svn: 164351

12 years agollvm/test/CodeGen/ARM/fast-isel.ll: Fix possible typos, s/@unaligned_i16_store/@unali...
NAKAMURA Takumi [Fri, 21 Sep 2012 01:15:05 +0000 (01:15 +0000)]
llvm/test/CodeGen/ARM/fast-isel.ll: Fix possible typos, s/@unaligned_i16_store/@unaligned_i16_load/g.

I guess this had apparently passed in +Asserts possibly due to verborsity.

llvm-svn: 164350

12 years agoProperly save and restore RA and Mips16 callee save registers S0,S1
Akira Hatanaka [Fri, 21 Sep 2012 01:08:16 +0000 (01:08 +0000)]
Properly save and restore RA and Mips16 callee save registers S0,S1

Patch by Reed Kotler.

llvm-svn: 164349

12 years agoAdd faux-body support for dispatch_once().
Ted Kremenek [Fri, 21 Sep 2012 00:52:24 +0000 (00:52 +0000)]
Add faux-body support for dispatch_once().

llvm-svn: 164348

12 years agoTestcase does not need to be this strict.
Chad Rosier [Fri, 21 Sep 2012 00:47:08 +0000 (00:47 +0000)]
Testcase does not need to be this strict.

llvm-svn: 164347

12 years agoAdd newline.
Chad Rosier [Fri, 21 Sep 2012 00:43:18 +0000 (00:43 +0000)]
Add newline.

llvm-svn: 164346

12 years ago[fast-isel] Fallback to SelectionDAG isel if we require strict alignment for
Chad Rosier [Fri, 21 Sep 2012 00:41:42 +0000 (00:41 +0000)]
[fast-isel] Fallback to SelectionDAG isel if we require strict alignment for
non-halfword-aligned i16 loads/stores.
rdar://12304911

llvm-svn: 164345

12 years agoTidy up. Whitespace.
Jim Grosbach [Fri, 21 Sep 2012 00:36:42 +0000 (00:36 +0000)]
Tidy up. Whitespace.

llvm-svn: 164344

12 years agoTidy up. Formatting.
Jim Grosbach [Fri, 21 Sep 2012 00:26:53 +0000 (00:26 +0000)]
Tidy up. Formatting.

llvm-svn: 164343

12 years agoARM: Use a dedicated intrinsic for vector bitwise select.
Jim Grosbach [Fri, 21 Sep 2012 00:18:30 +0000 (00:18 +0000)]
ARM: Use a dedicated intrinsic for vector bitwise select.

The expression based expansion too often results in IR level optimizations
splitting the intermediate values into separate basic blocks, preventing
the formation of the VBSL instruction as the code author intended. In
particular, LICM would often hoist part of the computation out of a loop.

rdar://11011471

llvm-svn: 164342

12 years agoTidy up. Trailing whitespace and 80 columns.
Jim Grosbach [Fri, 21 Sep 2012 00:18:27 +0000 (00:18 +0000)]
Tidy up. Trailing whitespace and 80 columns.

llvm-svn: 164341

12 years agoARM: Use a dedicated intrinsic for vector bitwise select.
Jim Grosbach [Fri, 21 Sep 2012 00:18:20 +0000 (00:18 +0000)]
ARM: Use a dedicated intrinsic for vector bitwise select.

The expression based expansion too often results in IR level optimizations
splitting the intermediate values into separate basic blocks, preventing
the formation of the VBSL instruction as the code author intended. In
particular, LICM would often hoist part of the computation out of a loop.

rdar://11011471

llvm-svn: 164340

12 years agoImplement faux-body-synthesis of well-known functions in the static analyzer when
Ted Kremenek [Fri, 21 Sep 2012 00:09:11 +0000 (00:09 +0000)]
Implement faux-body-synthesis of well-known functions in the static analyzer when
their implementations are unavailable.  Start by simulating dispatch_sync().

This change is largely a bunch of plumbing around something very simple.  We
use AnalysisDeclContext to conjure up a fake function body (using the
current ASTContext) when one does not exist.  This is controlled
under the analyzer-config option "faux-bodies", which is off by default.

The plumbing in this patch is largely to pass the necessary machinery
around.  CallEvent needs the AnalysisDeclContextManager to get
the function definition, as one may get conjured up lazily.

BugReporter and PathDiagnosticLocation needed to be relaxed to handle
invalid locations, as the conjured body has no real source locations.
We do some primitive recovery in diagnostic generation to generate
some reasonable locations (for arrows and events), but it can be
improved.

llvm-svn: 164339

12 years agoConstify method.
Ted Kremenek [Fri, 21 Sep 2012 00:09:05 +0000 (00:09 +0000)]
Constify method.

llvm-svn: 164338

12 years agoEnsure that the Decl* wrapped by an AnalysisDeclContext cannot be changed after
Ted Kremenek [Fri, 21 Sep 2012 00:09:03 +0000 (00:09 +0000)]
Ensure that the Decl* wrapped by an AnalysisDeclContext cannot be changed after
construction.

llvm-svn: 164337

12 years agoRemove unused fields.
Ted Kremenek [Fri, 21 Sep 2012 00:09:01 +0000 (00:09 +0000)]
Remove unused fields.

llvm-svn: 164336

12 years agoSerialize the 'IsConstexpr' bit of VarDecls. Fixes <rdar://problem/12328814>.
Douglas Gregor [Thu, 20 Sep 2012 23:43:29 +0000 (23:43 +0000)]
Serialize the 'IsConstexpr' bit of VarDecls. Fixes <rdar://problem/12328814>.

llvm-svn: 164335

12 years agoFixing a logic error where we would incorrectly show the newly crafted function not...
Enrico Granata [Thu, 20 Sep 2012 23:23:55 +0000 (23:23 +0000)]
Fixing a logic error where we would incorrectly show the newly crafted function not found error for a Python function in some cases where the function actually existed and had an empty docstring

llvm-svn: 164334

12 years agoFixed a problem where persistent variables did
Sean Callanan [Thu, 20 Sep 2012 23:21:16 +0000 (23:21 +0000)]
Fixed a problem where persistent variables did
not correctly store the contents of Objective-C
classes.  This was due to a combination of
factors:

  1) Types were only being completed if we were
     looking inside them for specific ivars
     (using FindExternalVisibleDeclsByName).
     We now look the complete type up at every
     FindExternalLexicalDecls.

  2) Even if the types were completed properly,
     ValueObjectConstResult overrode the type
     of every ValueObject using the complete type
     for its class from the debug information.
     Superclasses of complete classes are not
     guaranteed to be complete.  Although "frame
     variable" uses the debug information,
     the expression parser does now piece together
     complete types at every level (as described
     in Bullet 1), so I provided a way for the
     expression parser to prevent overriding.

  3) Type sizes were being miscomputed by
     ClangASTContext.  It ignored the ISA pointer
     and only counted fields.  We now correctly
     count the ISA in the size of an object.

<rdar://problem/12315386>

llvm-svn: 164333

12 years agoThread-safety analysis: fix bug where shared trylock was treated
DeLesley Hutchins [Thu, 20 Sep 2012 23:14:43 +0000 (23:14 +0000)]
Thread-safety analysis: fix bug where shared trylock was treated
as exclusive.

llvm-svn: 164332

12 years agoRe-adding this previously removed file.
Greg Clayton [Thu, 20 Sep 2012 23:08:52 +0000 (23:08 +0000)]
Re-adding this previously removed file.

llvm-svn: 164331

12 years agoIgnore PHI-defs for -new-coalescer interference checks.
Jakob Stoklund Olesen [Thu, 20 Sep 2012 23:08:42 +0000 (23:08 +0000)]
Ignore PHI-defs for -new-coalescer interference checks.

A PHI can't create interference on its own. If two live ranges interfere
at a PHI, they must also interfere when leaving one of the PHI
predecessors.

llvm-svn: 164330

12 years agoExtend -new-coalescer SSA update to handle mapped values as well.
Jakob Stoklund Olesen [Thu, 20 Sep 2012 23:08:39 +0000 (23:08 +0000)]
Extend -new-coalescer SSA update to handle mapped values as well.

The old-fashioned many-to-one value mapping doesn't always work when
merging vector lanes. A value can map to multiple different values, and
it can even be necessary to insert new PHIs.

When a value number is defined by a copy from a value number that
required SSa update, include the live range of the copied value number
in the SSA update as well. It is not necessarily a copy of the original
value number any longer.

llvm-svn: 164329

12 years agoThis file is causing problems. I am going to remove it and try re-adding it.
Greg Clayton [Thu, 20 Sep 2012 23:08:12 +0000 (23:08 +0000)]
This file is causing problems. I am going to remove it and try re-adding it.

llvm-svn: 164328

12 years agoShow the size of what we are dematerializing in the output log for "lldb expr".
Greg Clayton [Thu, 20 Sep 2012 23:07:44 +0000 (23:07 +0000)]
Show the size of what we are dematerializing in the output log for "lldb expr".

llvm-svn: 164327

12 years agoOnly emit DW_AT_object_pointer if this is a definition.
Eric Christopher [Thu, 20 Sep 2012 22:51:57 +0000 (22:51 +0000)]
Only emit DW_AT_object_pointer if this is a definition.

llvm-svn: 164326

12 years agoSimplifyCFG: sink common codes from IF, ELSE blocks down to END block.
Manman Ren [Thu, 20 Sep 2012 22:37:36 +0000 (22:37 +0000)]
SimplifyCFG: sink common codes from IF, ELSE blocks down to END block.

We already have HoistThenElseCodeToIf, this patch implements
SinkThenElseCodeToEnd. When END block has only two predecessors and each
predecessor terminates with unconditional branches, we compare instructions in
IF and ELSE blocks backwards and check whether we can sink the common
instructions down.

rdar://12191395

llvm-svn: 164325

12 years agoThread safety analysis: properly canonicalize calls to virtual methods within
DeLesley Hutchins [Thu, 20 Sep 2012 22:18:02 +0000 (22:18 +0000)]
Thread safety analysis: properly canonicalize calls to virtual methods within
lock expressions.

llvm-svn: 164324

12 years agoIf the range in a for range statement doesn't have a viable begin/end function,
Richard Smith [Thu, 20 Sep 2012 21:52:32 +0000 (21:52 +0000)]
If the range in a for range statement doesn't have a viable begin/end function,
but can be dereferenced to form an expression which does have viable begin/end
functions, then typo-correct the range, even if something else goes wrong with
the statement (such as inaccessible begin/end or the wrong type of loop
variable).

In order to ensure we recover correctly and produce any followup diagnostics in
this case, redo semantic analysis on the for-range statement outside of the
diagnostic trap, after issuing the typo-correction.

llvm-svn: 164323

12 years agoCompile shared libraries with dSYM files when requested on darwin. Prior to this...
Greg Clayton [Thu, 20 Sep 2012 21:43:11 +0000 (21:43 +0000)]
Compile shared libraries with dSYM files when requested on darwin. Prior to this, we never had dSYM files for shared libraries unless it was a dylib only Makefile.

llvm-svn: 164322

12 years ago<rdar://problem/12315386>
Greg Clayton [Thu, 20 Sep 2012 21:38:45 +0000 (21:38 +0000)]
<rdar://problem/12315386>

Test suite to catch fragile base class ivar issues.

llvm-svn: 164321

12 years agoTry to make these tests more portable.
Evan Cheng [Thu, 20 Sep 2012 21:35:21 +0000 (21:35 +0000)]
Try to make these tests more portable.

llvm-svn: 164320

12 years agoFix typo. (s/Explided/Exploded/)
David Blaikie [Thu, 20 Sep 2012 20:59:21 +0000 (20:59 +0000)]
Fix typo. (s/Explided/Exploded/)

Patch by Sean McBride.

llvm-svn: 164318

12 years agoFix broken check lines.
Benjamin Kramer [Thu, 20 Sep 2012 19:54:13 +0000 (19:54 +0000)]
Fix broken check lines.

llvm-svn: 164317

12 years agoImprovements to my patch in r164143 per
Fariborz Jahanian [Thu, 20 Sep 2012 19:36:41 +0000 (19:36 +0000)]
Improvements to my patch in r164143 per
Richard's comments. // rdar://12202422

llvm-svn: 164316

12 years agoMake the wchar_t promotion test consistent across different hosts by specifying a...
David Blaikie [Thu, 20 Sep 2012 18:57:53 +0000 (18:57 +0000)]
Make the wchar_t promotion test consistent across different hosts by specifying a target triple.

This test behavior differs depending (at least) on whether
sizeof(wchar_t) == sizeof(int) or not.

When they are equal, the first redeclaration will fail because decltype(+L'x')
is unsigned int instead of the expected int. This occurs on ARM.

llvm-svn: 164315

12 years agoRemove a test that is non-portable (cannot be execute on cross builds, for example)
David Blaikie [Thu, 20 Sep 2012 18:42:02 +0000 (18:42 +0000)]
Remove a test that is non-portable (cannot be execute on cross builds, for example)

While it might be nice to have a quick end-to-end sanity test, it's just not
really the right place for it & would require more work to enable lit to
provide a detection flag ("XFAIL: cross" or similar) than the value we get from
having this test. Early on it might've made more sense, but these days we've
got some pretty good coverage across the stack with more targeted tests.

llvm-svn: 164314

12 years agoInclude types when a definition's type differs from a prior declaration.
David Blaikie [Thu, 20 Sep 2012 18:38:57 +0000 (18:38 +0000)]
Include types when a definition's type differs from a prior declaration.

This is some really old code (took me a while to find the test cases) & the
diagnostic text is slightly incorrect (it should really only apply to
re/declarations/, redefinitions are an error regardless of whether the types
match). Not sure if anyone cares about it, though.

For now this just makes the diagnostic more clear in less obvious cases where
the type of a declaration might not be explicitly written (eg: because it
uses decltype)

llvm-svn: 164313

12 years agoFix function names in coding style examples
Andrew Trick [Thu, 20 Sep 2012 17:02:04 +0000 (17:02 +0000)]
Fix function names in coding style examples

llvm-svn: 164311

12 years agoMore work for reading the Objective-C runtime.
Sean Callanan [Thu, 20 Sep 2012 17:01:52 +0000 (17:01 +0000)]
More work for reading the Objective-C runtime.
We can now read the relevant data structures for
the method list, and use a callback mechanism to
report their details to the AppleObjCTypeVendor,
which constructs appropriate Clang types.

llvm-svn: 164310

12 years agoRevert r164308 to fix buildbots.
Bill Wendling [Thu, 20 Sep 2012 16:59:57 +0000 (16:59 +0000)]
Revert r164308 to fix buildbots.

llvm-svn: 164309

12 years agoMake the 'get*AlignmentFromAttr' functions into member functions within the Attribute...
Bill Wendling [Thu, 20 Sep 2012 16:27:05 +0000 (16:27 +0000)]
Make the 'get*AlignmentFromAttr' functions into member functions within the Attributes class.

llvm-svn: 164308

12 years agoRemove more bare uses of the different Attribute enums.
Bill Wendling [Thu, 20 Sep 2012 15:20:36 +0000 (15:20 +0000)]
Remove more bare uses of the different Attribute enums.

llvm-svn: 164307

12 years agoSpecify cpu to get the correct instruction ordering. Remove XFAIL.
Roman Divacky [Thu, 20 Sep 2012 14:59:42 +0000 (14:59 +0000)]
Specify cpu to get the correct instruction ordering. Remove XFAIL.

llvm-svn: 164306

12 years agoMake the 'getAsString' function a method of the Attributes class.
Bill Wendling [Thu, 20 Sep 2012 14:44:42 +0000 (14:44 +0000)]
Make the 'getAsString' function a method of the Attributes class.

llvm-svn: 164305