platform/upstream/llvm.git
11 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

11 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

11 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

11 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

11 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

11 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

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

llvm-svn: 164371

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

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

llvm-svn: 164346

11 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

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

llvm-svn: 164344

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

llvm-svn: 164343

11 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

11 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

11 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

11 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

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

llvm-svn: 164338

11 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

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

llvm-svn: 164336

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 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

11 years agoAdd some matchers for basic AST nodes.
Daniel Jasper [Thu, 20 Sep 2012 14:12:57 +0000 (14:12 +0000)]
Add some matchers for basic AST nodes.

Patch by Gábor Horváth.
Review: http://llvm-reviews.chandlerc.com/D45

llvm-svn: 164304

11 years agoStmtPrinter: Print floating point literals with the right suffix to disambiguate...
Benjamin Kramer [Thu, 20 Sep 2012 14:07:17 +0000 (14:07 +0000)]
StmtPrinter: Print floating point literals with the right suffix to disambiguate them from integers.

Based on a patch by Olaf Krzikalla, UDL fixes by me.

llvm-svn: 164303

11 years agoBe more consistent about ending suggestions with a '?'
Nico Weber [Thu, 20 Sep 2012 13:02:00 +0000 (13:02 +0000)]
Be more consistent about ending suggestions with a '?'

llvm-svn: 164301

11 years agoclang/test/Analysis: Fix the declaration of strlen() for 32 bit targets.
NAKAMURA Takumi [Thu, 20 Sep 2012 11:03:56 +0000 (11:03 +0000)]
clang/test/Analysis: Fix the declaration of strlen() for 32 bit targets.

  - Inputs/system-header-simulator.h: Declare strlen() with size_t.

  - malloc-interprocedural.c: Move the definition of size_t into the header above.

Then XFAIL can be pruned.

llvm-svn: 164300

11 years agoDisable source fortification on Darwin with AddressSanitizer.
Alexander Potapenko [Thu, 20 Sep 2012 10:10:01 +0000 (10:10 +0000)]
Disable source fortification on Darwin with AddressSanitizer.

ASan doesn't play well with -D_FORTIFY_SOURCE, which is enabled by default starting at OS X 10.7

llvm-svn: 164299

11 years agoProvide better error messages for incorrect matchers.
Daniel Jasper [Thu, 20 Sep 2012 09:24:58 +0000 (09:24 +0000)]
Provide better error messages for incorrect matchers.

By changing the conversion operator into a conversion constructor, we
can enabled based on the template parameters leading to better error
messages. E.g.: stmt(decl()) will now create an error message including:

  note: candidate function not viable: no known conversion from
  'clang::ast_matchers::internal::BindableMatcher<clang::Decl>' to 'const
  clang::ast_matchers::internal::Matcher<clang::Stmt>' for 1st argument

llvm-svn: 164298

11 years agoFix 80-col violations.
Nadav Rotem [Thu, 20 Sep 2012 08:53:31 +0000 (08:53 +0000)]
Fix 80-col violations.

llvm-svn: 164297

11 years agoMake sure lli compiles all code before invalidating instruction caches.
Tim Northover [Thu, 20 Sep 2012 08:46:30 +0000 (08:46 +0000)]
Make sure lli compiles all code before invalidating instruction caches.

Patch from Amara Emerson.

llvm-svn: 164296

11 years agotest/Analysis/malloc-interprocedural.c: Mark it as XFAIL: cygwin,mingw,msvc for now...
NAKAMURA Takumi [Thu, 20 Sep 2012 08:44:12 +0000 (08:44 +0000)]
test/Analysis/malloc-interprocedural.c: Mark it as XFAIL: cygwin,mingw,msvc for now. Investigating.

llvm-svn: 164295

11 years agoBump to lldb-168, debugserver-193.
Jason Molenda [Thu, 20 Sep 2012 06:42:30 +0000 (06:42 +0000)]
Bump to lldb-168, debugserver-193.

llvm-svn: 164291

11 years agoBoth OpenBSD and Bitrig need to include machine/endian.h to get the
Eric Christopher [Thu, 20 Sep 2012 06:19:20 +0000 (06:19 +0000)]
Both OpenBSD and Bitrig need to include machine/endian.h to get the
_BYTE_ORDER define.

Patch by David Hill.

llvm-svn: 164286

11 years agoChange enum type in a static table to uint8_t instead. Saves about 700 hundred bytes...
Craig Topper [Thu, 20 Sep 2012 06:14:08 +0000 (06:14 +0000)]
Change enum type in a static table to uint8_t instead. Saves about 700 hundred bytes of static data. Change unsigned char in same table to uint8_t for explicitness.

llvm-svn: 164285

11 years agoUpdate the LLDB_DISABLE_PYTHON ifdef in FormatManager::LoadObjCFormatters to
Jason Molenda [Thu, 20 Sep 2012 06:06:59 +0000 (06:06 +0000)]
Update the LLDB_DISABLE_PYTHON ifdef in FormatManager::LoadObjCFormatters to
get FormatManager.cpp to build on no-python platforms again.

llvm-svn: 164284

11 years agoSpecify CPu to prevent failure on ATOM due to different code scheduling
Michael Liao [Thu, 20 Sep 2012 03:34:04 +0000 (03:34 +0000)]
Specify CPu to prevent failure on ATOM due to different code scheduling

llvm-svn: 164283

11 years agoFix Sphinx warnings.
Sean Silva [Thu, 20 Sep 2012 03:20:53 +0000 (03:20 +0000)]
Fix Sphinx warnings.

Toctree was not being interlinked properly.

llvm-svn: 164282

11 years agoRe-work X86 code generation of atomic ops with spin-loop
Michael Liao [Thu, 20 Sep 2012 03:06:15 +0000 (03:06 +0000)]
Re-work X86 code generation of atomic ops with spin-loop

- Rewrite/merge pseudo-atomic instruction emitters to address the
  following issue:
  * Reduce one unnecessary load in spin-loop

    previously the spin-loop looks like

        thisMBB:
        newMBB:
          ld  t1 = [bitinstr.addr]
          op  t2 = t1, [bitinstr.val]
          not t3 = t2  (if Invert)
          mov EAX = t1
          lcs dest = [bitinstr.addr], t3  [EAX is implicit]
          bz  newMBB
          fallthrough -->nextMBB

    the 'ld' at the beginning of newMBB should be lift out of the loop
    as lcs (or CMPXCHG on x86) will load the current memory value into
    EAX. This loop is refined as:

        thisMBB:
          EAX = LOAD [MI.addr]
        mainMBB:
          t1 = OP [MI.val], EAX
          LCMPXCHG [MI.addr], t1, [EAX is implicitly used & defined]
          JNE mainMBB
        sinkMBB:

  * Remove immopc as, so far, all pseudo-atomic instructions has
    all-register form only, there is no immedidate operand.

  * Remove unnecessary attributes/modifiers in pseudo-atomic instruction
    td

  * Fix issues in PR13458

- Add comprehensive tests on atomic ops on various data types.
  NOTE: Some of them are turned off due to missing functionality.

- Revise tests due to the new spin-loop generated.

llvm-svn: 164281

11 years agoSphinxify DebuggingJITedCode
Sean Silva [Thu, 20 Sep 2012 03:05:26 +0000 (03:05 +0000)]
Sphinxify DebuggingJITedCode

LGTM by Michael Spencer

llvm-svn: 164280

11 years agoThe keywords "true" and "false" shouldn't warn under -Wundef.
Eli Friedman [Thu, 20 Sep 2012 02:38:38 +0000 (02:38 +0000)]
The keywords "true" and "false" shouldn't warn under -Wundef.

llvm-svn: 164279

11 years agoFix static function names in CodingStandards examples.
Andrew Trick [Thu, 20 Sep 2012 02:01:06 +0000 (02:01 +0000)]
Fix static function names in CodingStandards examples.

Try not to violate conventions immediately before explaining them.

llvm-svn: 164278

11 years ago[analyzer] MallocChecker should not do post-call checks on inlined functions.
Jordan Rose [Thu, 20 Sep 2012 01:55:32 +0000 (01:55 +0000)]
[analyzer] MallocChecker should not do post-call checks on inlined functions.

If someone provides their own function called 'strdup', or 'reallocf', or
even 'malloc', and we inlined it, the inlining should have given us all the
malloc-related information we need. If we then try to attach new information
to the return value, we could end up with spurious warnings.

<rdar://problem/12317671>

llvm-svn: 164276

11 years agoRevert "[analyzer] Remove constraints on dead symbols as part of removeDeadBindings."
Jordan Rose [Thu, 20 Sep 2012 01:54:56 +0000 (01:54 +0000)]
Revert "[analyzer] Remove constraints on dead symbols as part of removeDeadBindings."

While we definitely want this optimization in the future, we're not
currently handling constraints on symbolic /expressions/ correctly.
These should stay live even if the SymExpr itself is no longer referenced
because could recreate an identical SymExpr later. Only once the SymExpr
can no longer be recreated -- i.e. a component symbol is dead -- can we
safely remove the constraints on it.

This liveness issue is tracked by <rdar://problem/12333297>.

This reverts r163444 / 24c7f98828e039005cff3bd847e7ab404a6a09f8.

llvm-svn: 164275

11 years agoHandle lambdas where the lambda-declarator is an explicit "(void)". PR13854.
Eli Friedman [Thu, 20 Sep 2012 01:40:23 +0000 (01:40 +0000)]
Handle lambdas where the lambda-declarator is an explicit "(void)".  PR13854.

llvm-svn: 164274

11 years agoPer C++11 [class.friend]p3, the 'friend' keyword must appear first in a
Richard Smith [Thu, 20 Sep 2012 01:31:00 +0000 (01:31 +0000)]
Per C++11 [class.friend]p3, the 'friend' keyword must appear first in a
non-function friend declaration. Patch by Josh Magee!

llvm-svn: 164273

11 years agoPR13881: Add -Wzero-length-array for zero length array extension, and move it into...
Richard Smith [Thu, 20 Sep 2012 01:02:05 +0000 (01:02 +0000)]
PR13881: Add -Wzero-length-array for zero length array extension, and move it into -Wgnu.

llvm-svn: 164272

11 years agoConvert some attribute existence queries over to use the predicate methods.
Bill Wendling [Wed, 19 Sep 2012 23:54:18 +0000 (23:54 +0000)]
Convert some attribute existence queries over to use the predicate methods.

llvm-svn: 164268

11 years agoFix a small FIXME involving template partial ordering and
Eli Friedman [Wed, 19 Sep 2012 23:52:13 +0000 (23:52 +0000)]
Fix a small FIXME involving template partial ordering and
member function templates with an rvalue ref qualifier.

llvm-svn: 164267

11 years agoAdd overflow check to tanh(complex) and reduce to finite answer. Fixes http://llvm...
Howard Hinnant [Wed, 19 Sep 2012 23:51:47 +0000 (23:51 +0000)]
Add overflow check to tanh(complex) and reduce to finite answer.  Fixes llvm.org/bugs/show_bug.cgi?id=13874

llvm-svn: 164266

11 years agoARM: Tidy up IntrinsicsARM.td a bit.
Jim Grosbach [Wed, 19 Sep 2012 23:39:03 +0000 (23:39 +0000)]
ARM: Tidy up IntrinsicsARM.td a bit.

Make the TargetPrefix setting one big setting instead of being spread out
everywhere. No functional change.

llvm-svn: 164265

11 years agoAdd predicates for queries on whether an attribute exists.
Bill Wendling [Wed, 19 Sep 2012 23:35:21 +0000 (23:35 +0000)]
Add predicates for queries on whether an attribute exists.

llvm-svn: 164264