platform/upstream/llvm.git
12 years ago[ms-inline asm] Don't rewrite out parts of an inline-asm skipped by .if 0 and friends.
Eli Friedman [Mon, 22 Oct 2012 20:50:25 +0000 (20:50 +0000)]
[ms-inline asm] Don't rewrite out parts of an inline-asm skipped by .if 0 and friends.
It's unnecessary and makes the generated assembly less faithful to the original source.

llvm-svn: 166440

12 years ago<rdar://problem/12524810>
Greg Clayton [Mon, 22 Oct 2012 20:49:35 +0000 (20:49 +0000)]
<rdar://problem/12524810>

Fixed a crasher where if an invalid SBTarget was passed to:

lldb::addr_t
SBAddress::GetLoadAddress (const SBTarget &target) const;

We would crash.

llvm-svn: 166439

12 years agoFix for PR13334. This prevents crashes that result from badly formed
Richard Trieu [Mon, 22 Oct 2012 20:28:48 +0000 (20:28 +0000)]
Fix for PR13334.  This prevents crashes that result from badly formed
expressions involving __has_include

llvm-svn: 166438

12 years ago[ms-inline asm] Add the isOffsetOf() function.
Chad Rosier [Mon, 22 Oct 2012 19:50:35 +0000 (19:50 +0000)]
[ms-inline asm] Add the isOffsetOf() function.
Part of rdar://12470317

llvm-svn: 166436

12 years agoIterating over a DenseMap<std::pair<BasicBlock*, unsigned>, PHINode*> is not
Julien Lerouge [Mon, 22 Oct 2012 19:43:56 +0000 (19:43 +0000)]
Iterating over a DenseMap<std::pair<BasicBlock*, unsigned>, PHINode*> is not
deterministic, replace it with a DenseMap<std::pair<unsigned, unsigned>,
PHINode*> (we already have a map from BasicBlock to unsigned).

<rdar://problem/12541389>

llvm-svn: 166435

12 years ago[ms-inline asm] Test case for r166433.
Chad Rosier [Mon, 22 Oct 2012 19:43:17 +0000 (19:43 +0000)]
[ms-inline asm] Test case for r166433.

llvm-svn: 166434

12 years ago[ms-inline asm] Add support for parsing the offset operator. Callback for
Chad Rosier [Mon, 22 Oct 2012 19:42:52 +0000 (19:42 +0000)]
[ms-inline asm] Add support for parsing the offset operator.  Callback for
CodeGen in the front-end not implemented yet.
rdar://12470317

llvm-svn: 166433

12 years ago<rdar://problem/12479701> Use the plain pydoc pager to work around Python help()...
Enrico Granata [Mon, 22 Oct 2012 19:09:28 +0000 (19:09 +0000)]
<rdar://problem/12479701> Use the plain pydoc pager to work around Python help() pagination conflicts with our I/O management

llvm-svn: 166432

12 years agoFix pre-commit refacto failure.
Daniel Dunbar [Mon, 22 Oct 2012 18:56:43 +0000 (18:56 +0000)]
Fix pre-commit refacto failure.

llvm-svn: 166431

12 years agodriver/Darwin: Follow up to last patch, M-class CPUs are AAPCS but not EABI.
Daniel Dunbar [Mon, 22 Oct 2012 18:51:13 +0000 (18:51 +0000)]
driver/Darwin: Follow up to last patch, M-class CPUs are AAPCS but not EABI.

llvm-svn: 166430

12 years agoEliminate the redundancy between source-file information in the source
Douglas Gregor [Mon, 22 Oct 2012 18:42:04 +0000 (18:42 +0000)]
Eliminate the redundancy between source-file information in the source
manager block and input-file information in the control block. The
source manager entries now point back into the control block. Input
files are now lazily deserialized (if validation is disabled). Reduces
Cocoa's PCH by the ~70k I added when I introduced the redundancy in
r166251.

llvm-svn: 166429

12 years agodriver/Darwin: Default to AAPCS for M-class CPUs.
Daniel Dunbar [Mon, 22 Oct 2012 18:30:51 +0000 (18:30 +0000)]
driver/Darwin: Default to AAPCS for M-class CPUs.

 - This is an assumption that is currently hardwired into the backend, we need
   to do this in order for the frontend and backend to agree.

llvm-svn: 166428

12 years agoDon't crash if the load/store pointer is not a GEP.
Nadav Rotem [Mon, 22 Oct 2012 18:27:56 +0000 (18:27 +0000)]
Don't crash if the load/store pointer is not a GEP.

Fix by Shivarama Rao <Shivarama.Rao@amd.com>

llvm-svn: 166427

12 years ago<rdar://problem/12437442>
Enrico Granata [Mon, 22 Oct 2012 18:18:36 +0000 (18:18 +0000)]
<rdar://problem/12437442>
Given our implementation of ValueObjects we could have a scenario where a ValueObject has a dynamic type of Foo* at one point, and then its dynamic type changes to Bar*
If Bar* has synthetic children enabled, by the time we figure that out, our public API is already vending SBValues wrapping a DynamicVO, instead of a SyntheticVO and there was
no trivial way for us to change the SP inside an SBValue on the fly
This checkin reimplements SBValue in terms of a wrapper, ValueImpl, that allows this substitutions on-the-fly by overriding GetSP() to do The Right Thing (TM)
As an additional bonus, GetNonSyntheticValue() now works, and we can get rid of the ForceDisableSyntheticChildren idiom in ScriptInterpreterPython
Lastly, this checkin makes sure the synthetic VOs get the correct m_value and m_data from their parents (prevented summaries from working in some cases)

llvm-svn: 166426

12 years agoAdd a testcase for the previous commit.
Nadav Rotem [Mon, 22 Oct 2012 18:16:55 +0000 (18:16 +0000)]
Add a testcase for the previous commit.

llvm-svn: 166425

12 years agoRevert r166407 because it caused analyzer tests to crash and broke self-host bots.
Argyrios Kyrtzidis [Mon, 22 Oct 2012 18:16:14 +0000 (18:16 +0000)]
Revert r166407 because it caused analyzer tests to crash and broke self-host bots.

llvm-svn: 166424

12 years agoBBVectorize should ignore unreachable blocks.
Hal Finkel [Mon, 22 Oct 2012 18:00:55 +0000 (18:00 +0000)]
BBVectorize should ignore unreachable blocks.

Unreachable blocks can have invalid instructions. For example,
jump threading can produce self-referential instructions in
unreachable blocks. Also, we should not be spending time
optimizing unreachable code. Fixes PR14133.

llvm-svn: 166423

12 years agoAdd the "ForceSizeOpt" attribute.
Nadav Rotem [Mon, 22 Oct 2012 17:33:31 +0000 (17:33 +0000)]
Add the "ForceSizeOpt" attribute.

Patch by Quentin Colombet <qcolombet@apple.com>

Original description:
"""
The attached patch is the first step to have a better control on Oz related optimizations.
The Oz optimization level focuses on code size, thus I propose to add an attribute called ForceSizeOpt.
"""

llvm-svn: 166422

12 years agoImplement hasParent()-matcher.
Daniel Jasper [Mon, 22 Oct 2012 16:26:51 +0000 (16:26 +0000)]
Implement hasParent()-matcher.

llvm-svn: 166421

12 years ago<rdar://problem/12473003>
Greg Clayton [Mon, 22 Oct 2012 16:19:56 +0000 (16:19 +0000)]
<rdar://problem/12473003>

Allow type searches to specify a type keyword when searching for type. Currently supported type keywords are: struct, class, union, enum, and typedef.

So now you can search for types with a string like "struct foo".

llvm-svn: 166420

12 years agoRename a variable.
Nadav Rotem [Mon, 22 Oct 2012 04:53:05 +0000 (04:53 +0000)]
Rename a variable.

llvm-svn: 166410

12 years agoVectorizer: optimize the generation of selects. If the condition is uniform, generate...
Nadav Rotem [Mon, 22 Oct 2012 04:38:00 +0000 (04:38 +0000)]
Vectorizer: optimize the generation of selects. If the condition is uniform, generate a scalar-cond select (i1 as selector).

llvm-svn: 166409

12 years agoUpdate the loop vectorizer docs.
Nadav Rotem [Mon, 22 Oct 2012 03:52:53 +0000 (03:52 +0000)]
Update the loop vectorizer docs.

llvm-svn: 166408

12 years agoReapply r166405, teaching tailcallelim to be smarter about nocapture, with a
Nick Lewycky [Mon, 22 Oct 2012 03:03:52 +0000 (03:03 +0000)]
Reapply r166405, teaching tailcallelim to be smarter about nocapture, with a
very small but very important bugfix:
  bool shouldExplore(Use *U) {
    Value *V = U->get();
    if (isa<CallInst>(V) || isa<InvokeInst>(V))
    [...]
should have read:
  bool shouldExplore(Use *U) {
    Value *V = U->getUser();
    if (isa<CallInst>(V) || isa<InvokeInst>(V))
Fixes PR14143!

llvm-svn: 166407

12 years agoRevert r166405, "Teach TailRecursionElimination to consider 'nocapture' when deciding...
NAKAMURA Takumi [Mon, 22 Oct 2012 00:48:51 +0000 (00:48 +0000)]
Revert r166405, "Teach TailRecursionElimination to consider 'nocapture' when deciding whether"

It broke selfhosting stage2 in several builders.

llvm-svn: 166406

12 years agoTeach TailRecursionElimination to consider 'nocapture' when deciding whether
Nick Lewycky [Sun, 21 Oct 2012 23:51:22 +0000 (23:51 +0000)]
Teach TailRecursionElimination to consider 'nocapture' when deciding whether
calls can be marked tail.

llvm-svn: 166405

12 years agoPR14141 (part of DR1351): An implicitly-deduced "any" exception specification
Richard Smith [Sun, 21 Oct 2012 23:00:34 +0000 (23:00 +0000)]
PR14141 (part of DR1351): An implicitly-deduced "any" exception specification
produces an exception of 'noexcept(false)' and is thus compatible with an
explicit exception specification of 'noexcept(false)'.

llvm-svn: 166404

12 years agoautoconf/cmake: Always require isl code generation.
Tobias Grosser [Sun, 21 Oct 2012 21:48:21 +0000 (21:48 +0000)]
autoconf/cmake: Always require isl code generation.

This change ensures that isl is only detected if it includes code generation
support. This allows us to remove a lot of conditional compilation and also
avoids missing test cases in case the feature is not available.

llvm-svn: 166403

12 years agocmake: Use suffix for shared modules instead of the one for shared libraries
Tobias Grosser [Sun, 21 Oct 2012 21:08:29 +0000 (21:08 +0000)]
cmake: Use suffix for shared modules instead of the one for shared libraries

On Linux there is no difference between shared modules and shared libaries, both
are '.so' files. However, on darwin only shared modules are '.so' files. Shared
libraries have the '.dynlib' suffix.

Fix test cases on darwin by expecting a shared module suffix for Polly instead
of a shared library suffix.

This fixes PR14135

Reported by:  Jack Howarth  <howarth@bromo.med.uc.edu>

llvm-svn: 166402

12 years agoDataLayout should use itself when calculating the size of a vector.
Hal Finkel [Sun, 21 Oct 2012 20:38:03 +0000 (20:38 +0000)]
DataLayout should use itself when calculating the size of a vector.

This is important for vectors of pointers because only DataLayout,
not the underlying vector type, knows how to calculate the size
of the pointers in the vector. Fixes PR14138.

llvm-svn: 166401

12 years agoFix typo, make test case slightly more reabable. Thanks to Dmitri Gribenko for
Lang Hames [Sun, 21 Oct 2012 19:56:13 +0000 (19:56 +0000)]
Fix typo, make test case slightly more reabable. Thanks to Dmitri Gribenko for
the suggestions.

llvm-svn: 166400

12 years agoRevert r166390 "LoopIdiom: Replace custom dependence analysis with LoopDependenceAnal...
Benjamin Kramer [Sun, 21 Oct 2012 19:31:16 +0000 (19:31 +0000)]
Revert r166390 "LoopIdiom: Replace custom dependence analysis with LoopDependenceAnalysis."

It passes all tests, produces better results than the old code but uses the
wrong pass, LoopDependenceAnalysis, which is old and unmaintained. "Why is it
still in tree?", you might ask. The answer is obviously: "To confuse developers."

Just swapping in the new dependency pass sends the pass manager into an infinte
loop, I'll try to figure out why tomorrow.

llvm-svn: 166399

12 years agoDon't crash when the Assignments vector is empty.
Jakob Stoklund Olesen [Sun, 21 Oct 2012 19:05:03 +0000 (19:05 +0000)]
Don't crash when the Assignments vector is empty.

Reported by Vincent Lejeune using an out-of-tree target.

llvm-svn: 166398

12 years agoRegisterPasses: Remove unreachable default case in switch
Tobias Grosser [Sun, 21 Oct 2012 18:31:27 +0000 (18:31 +0000)]
RegisterPasses: Remove unreachable default case in switch

llvm-svn: 166397

12 years agowww: Correct command line that loads polly into dragonegg
Tobias Grosser [Sun, 21 Oct 2012 17:33:00 +0000 (17:33 +0000)]
www: Correct command line that loads polly into dragonegg

Reported by:  Jack Howarth  <howarth@bromo.med.uc.edu>

llvm-svn: 166396

12 years agoAvoid an extra hash lookup when inserting a value into the widen map.
Anders Carlsson [Sun, 21 Oct 2012 16:26:35 +0000 (16:26 +0000)]
Avoid an extra hash lookup when inserting a value into the widen map.

llvm-svn: 166395

12 years agoIntroduce a separate file for CMake macros
Tobias Grosser [Sun, 21 Oct 2012 15:51:49 +0000 (15:51 +0000)]
Introduce a separate file for CMake macros

Contributed by:  Sameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com>

llvm-svn: 166394

12 years agoSimplify code. No functionality change.
Jakub Staszak [Sun, 21 Oct 2012 15:36:03 +0000 (15:36 +0000)]
Simplify code. No functionality change.

llvm-svn: 166393

12 years agoSimplify code. No functionality change.
Jakub Staszak [Sun, 21 Oct 2012 15:29:19 +0000 (15:29 +0000)]
Simplify code. No functionality change.

llvm-svn: 166392

12 years agoSilence warning about && in ||.
Benjamin Kramer [Sun, 21 Oct 2012 15:21:56 +0000 (15:21 +0000)]
Silence warning about && in ||.

llvm-svn: 166391

12 years agoLoopIdiom: Replace custom dependence analysis with LoopDependenceAnalysis.
Benjamin Kramer [Sun, 21 Oct 2012 15:03:07 +0000 (15:03 +0000)]
LoopIdiom: Replace custom dependence analysis with LoopDependenceAnalysis.

Requires a lot less code and complexity on loop-idiom's side and the more
precise analysis can catch more cases, like the one I included as a test case.
This also fixes the edge-case miscompilation from PR9481. I'm not entirely
sure that all cases are handled that the old checks handled but LDA will
certainly become smarter in the future.

llvm-svn: 166390

12 years agoAdd support of MIPS n32 ABI to the Clang driver. The fix builds correct library/objec...
Simon Atanasyan [Sun, 21 Oct 2012 11:44:57 +0000 (11:44 +0000)]
Add support of MIPS n32 ABI to the Clang driver. The fix builds correct library/object files paths and passes appropriate command line options to the linker if user provides -mabi=n32 option.

The patch reviewed by Rafael Espindola.

llvm-svn: 166389

12 years agoFix a bug in the vectorization of wide load/store operations.
Nadav Rotem [Sun, 21 Oct 2012 06:49:10 +0000 (06:49 +0000)]
Fix a bug in the vectorization of wide load/store operations.
We used a SCEV to detect that A[X] is consecutive. We assumed that X was
the induction variable. But X can be any expression that uses the induction
for example: X = i + 2;

llvm-svn: 166388

12 years agoAdd support for reduction variables that do not start at zero.
Nadav Rotem [Sun, 21 Oct 2012 05:52:51 +0000 (05:52 +0000)]
Add support for reduction variables that do not start at zero.
This is important for nested-loop reductions such as :

In the innermost loop, the induction variable does not start with zero:

for (i = 0 .. n)
 for (j = 0 .. m)
  sum += ...

llvm-svn: 166387

12 years agoDocument change. Describe the pass and some papers that inspired the design of the...
Nadav Rotem [Sun, 21 Oct 2012 04:04:25 +0000 (04:04 +0000)]
Document change. Describe the pass and some papers that inspired the design of the pass.

llvm-svn: 166386

12 years agoUnrevert r166268, reverted in r166272, with a fix for the issue which Nick
Richard Smith [Sun, 21 Oct 2012 03:28:35 +0000 (03:28 +0000)]
Unrevert r166268, reverted in r166272, with a fix for the issue which Nick
found: if an overloaded operator& is present before a template definition,
the expression &T::foo is represented as a CXXOperatorCallExpr, not as a
UnaryOperator, so we didn't notice that it's permitted to reference a non-static
data member of an unrelated class.

While investigating this, I discovered another problem in this area: we are
treating template default arguments as unevaluated contexts during substitution,
resulting in performing incorrect checks for uses of non-static data members in
C++11. That is not fixed by this patch (I'll look into this soon; it's related
to the failure to correctly instantiate constexpr function templates), but was
resulting in this bug not firing in C++11 mode (except with -Wc++98-compat).

Original message:

PR14124: When performing template instantiation of a qualified-id outside of a
class, diagnose if the qualified-id instantiates to a non-static class member.

llvm-svn: 166385

12 years agoVectorizer: fix a bug in the classification of induction/reduction phis.
Nadav Rotem [Sun, 21 Oct 2012 02:38:01 +0000 (02:38 +0000)]
Vectorizer: fix a bug in the classification of induction/reduction phis.

llvm-svn: 166384

12 years agoWhen used in a compound expression FP_CONTRACT should proceed all explicit
Lang Hames [Sun, 21 Oct 2012 01:10:01 +0000 (01:10 +0000)]
When used in a compound expression FP_CONTRACT should proceed all explicit
declarations and statements. Emit an error if the FP_CONTRACT is used
later in a compound statement.

llvm-svn: 166383

12 years agoAllow the commuted form of tied-operand constraints in tablegen ("$dst = $src",
Lang Hames [Sat, 20 Oct 2012 22:44:13 +0000 (22:44 +0000)]
Allow the commuted form of tied-operand constraints in tablegen ("$dst = $src",
rather than "$src = $dst").

llvm-svn: 166382

12 years agoReorder the sections of "USE AND EXTENSIONS" so the most useful to
Jason Molenda [Sat, 20 Oct 2012 21:01:22 +0000 (21:01 +0000)]
Reorder the sections of "USE AND EXTENSIONS" so the most useful to
users new to lldb are at the top.

llvm-svn: 166381

12 years agoRename the lldb/gdb command page.
Jason Molenda [Sat, 20 Oct 2012 21:00:03 +0000 (21:00 +0000)]
Rename the lldb/gdb command page.
Remove 'Customization', 'Documentation', and 'FAQ' pages from the sidebar's "USE AND EXTENSION"
section.  These pages have no content.  If someone ever wants to add content to them, we can
re-add them to the sidebar.

llvm-svn: 166380

12 years agoFix an infinite loop in the loop-vectorizer.
Nadav Rotem [Sat, 20 Oct 2012 20:45:01 +0000 (20:45 +0000)]
Fix an infinite loop in the loop-vectorizer.

PR14134.

llvm-svn: 166379

12 years agoDocument current Doxygen use practices in Coding Standards. Mostly it is
Dmitri Gribenko [Sat, 20 Oct 2012 13:27:43 +0000 (13:27 +0000)]
Document current Doxygen use practices in Coding Standards.  Mostly it is
obvious stuff and most new code being committed conforms to that.  Some old
code does not; this might cause confusion and this is the motivation to
document the correct guidelines.

llvm-svn: 166378

12 years agoMove private classes into anonymous namespaces.
Benjamin Kramer [Sat, 20 Oct 2012 13:02:06 +0000 (13:02 +0000)]
Move private classes into anonymous namespaces.

llvm-svn: 166377

12 years agoSymbol hygiene: Make sure declarations and definitions match, make helper functions...
Benjamin Kramer [Sat, 20 Oct 2012 12:53:26 +0000 (12:53 +0000)]
Symbol hygiene: Make sure declarations and definitions match, make helper functions static.

llvm-svn: 166376

12 years agoSROA: Simplify code. No functionality change.
Benjamin Kramer [Sat, 20 Oct 2012 12:04:57 +0000 (12:04 +0000)]
SROA: Simplify code. No functionality change.

llvm-svn: 166375

12 years agoInstCombine: Fix an edge case where constant icmps could sneak into ConstantFoldInstO...
Benjamin Kramer [Sat, 20 Oct 2012 08:43:52 +0000 (08:43 +0000)]
InstCombine: Fix an edge case where constant icmps could sneak into ConstantFoldInstOperands and crash.

Have to refactor the ConstantFolder interface one day to define bugs like this away. Fixes PR14131.

llvm-svn: 166374

12 years agoDR1473: Do not require a space between operator"" and the ud-suffix in a
Richard Smith [Sat, 20 Oct 2012 08:41:10 +0000 (08:41 +0000)]
DR1473: Do not require a space between operator"" and the ud-suffix in a
literal-operator-id.

llvm-svn: 166373

12 years agoRework implementation of DR1492: Apply the resolution to operator delete too,
Richard Smith [Sat, 20 Oct 2012 08:26:51 +0000 (08:26 +0000)]
Rework implementation of DR1492: Apply the resolution to operator delete too,
since it also has an implicit exception specification. Downgrade the error to
an extwarn, since at least for operator delete, system headers like to declare
it as 'noexcept' whereas the implicit definition does not have an explicit
exception specification. Move the exception specification for user-declared
'operator delete' functions from the type-as-written into the type, to reflect
reality and to allow us to detect whether there was an implicit exception spec
or not.

llvm-svn: 166372

12 years agoVectorize: teach cavVectorizeMemory to distinguish between A[i]+=x and A[B[i]]+=x.
Nadav Rotem [Sat, 20 Oct 2012 08:26:33 +0000 (08:26 +0000)]
Vectorize: teach cavVectorizeMemory to distinguish between A[i]+=x and A[B[i]]+=x.
If the pointer is consecutive then it is safe to read and write. If the pointer is non-loop-consecutive then
it is unsafe to vectorize it because we may hit an ordering issue.

llvm-svn: 166371

12 years agoAccept -Wno-arc-abi without warning for a while.
Nico Weber [Sat, 20 Oct 2012 06:18:14 +0000 (06:18 +0000)]
Accept -Wno-arc-abi without warning for a while.

Xcode 4.5 passes -Wno-arc-abi to clang, which makes a clang newer than
r163917 warn that it doesn't understand -Wno-arc-abi. I asked if adding
this is ok at
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20121015/066433.html
and nobody objected.

Adding this makes life a bit easier for the chromium project. If you think
this is a burden on for clang, shout, and I'll revert this.

llvm-svn: 166370

12 years agoFix __builtin_va_arg assertion failure in ARM AAPCS.
Logan Chien [Sat, 20 Oct 2012 06:11:33 +0000 (06:11 +0000)]
Fix __builtin_va_arg assertion failure in ARM AAPCS.

llvm-svn: 166369

12 years agoFixed a bug that caused floating-point values
Sean Callanan [Sat, 20 Oct 2012 06:08:09 +0000 (06:08 +0000)]
Fixed a bug that caused floating-point values
to be printed truncated.

<rdar://problem/12389615>

llvm-svn: 166368

12 years agoFix a typo
Nadav Rotem [Sat, 20 Oct 2012 05:03:27 +0000 (05:03 +0000)]
Fix a typo

llvm-svn: 166367

12 years agoVectorizer: refactor the memory checks to a new function. No functionality change.
Nadav Rotem [Sat, 20 Oct 2012 04:59:06 +0000 (04:59 +0000)]
Vectorizer: refactor the memory checks to a new function. No functionality change.

llvm-svn: 166366

12 years agoAlso remove PlatformiOSSimulator::GetProcessInfo decl from
Jason Molenda [Sat, 20 Oct 2012 04:57:29 +0000 (04:57 +0000)]
Also remove PlatformiOSSimulator::GetProcessInfo decl from
the header file.
(followup patch to Sean's commit of r166355 earlier today.)

llvm-svn: 166365

12 years agoVectorization docs.
Nadav Rotem [Sat, 20 Oct 2012 02:34:34 +0000 (02:34 +0000)]
Vectorization docs.

llvm-svn: 166364

12 years ago[analyzer] Assume 'new' never returns NULL if it could throw an exception.
Jordan Rose [Sat, 20 Oct 2012 02:32:51 +0000 (02:32 +0000)]
[analyzer] Assume 'new' never returns NULL if it could throw an exception.

This is actually required by the C++ standard in
[basic.stc.dynamic.allocation]p3:

  If an allocation function declared with a non-throwing
  exception-specification fails to allocate storage, it shall return a
  null pointer. Any other allocation function that fails to allocate
  storage shall indicate failure only by throwing an exception of a type
  that would match a handler of type std::bad_alloc.

We don't bother checking for the specific exception type, but just go off
the operator new prototype. This should help with a certain class of lazy
initalization false positives.

<rdar://problem/12115221>

llvm-svn: 166363

12 years agoXTARGET was removed, update debug-info tests.
Argyrios Kyrtzidis [Sat, 20 Oct 2012 01:38:50 +0000 (01:38 +0000)]
XTARGET was removed, update debug-info tests.

llvm-svn: 166362

12 years agoDR1472: A reference isn't odr-used if it has preceding initialization,
Richard Smith [Sat, 20 Oct 2012 01:38:33 +0000 (01:38 +0000)]
DR1472: A reference isn't odr-used if it has preceding initialization,
initialized by a reference constant expression.

Our odr-use modeling still needs work here: we don't yet implement the 'set of
potential results of an expression' DR.

llvm-svn: 166361

12 years ago[ms-inline asm] Rename AsmOpRewrite to just AsmRewrite to be more generic. No functio...
Chad Rosier [Sat, 20 Oct 2012 01:02:45 +0000 (01:02 +0000)]
[ms-inline asm] Rename AsmOpRewrite to just AsmRewrite to be more generic. No functional change intended.

llvm-svn: 166360

12 years agoWhen associating file ranges of macro arguments with their
Argyrios Kyrtzidis [Sat, 20 Oct 2012 00:51:32 +0000 (00:51 +0000)]
When associating file ranges of macro arguments with their
macro expansion ranges, make sure to check all the FileID
entries that are contained in the spelling range of the
expansion for the macro argument.

Fixes rdar://12537982

llvm-svn: 166359

12 years ago[ms-inline asm] Update test case for r166357.
Chad Rosier [Sat, 20 Oct 2012 00:47:32 +0000 (00:47 +0000)]
[ms-inline asm] Update test case for r166357.

llvm-svn: 166358

12 years ago[ms-inline asm] If the state of the parser is ignore, then don't parse the
Chad Rosier [Sat, 20 Oct 2012 00:47:08 +0000 (00:47 +0000)]
[ms-inline asm] If the state of the parser is ignore, then don't parse the
inline assembly.  Also make sure the remove the ignored statements from the IR.

llvm-svn: 166357

12 years agoImproved logging for the SBTarget's launching
Sean Callanan [Sat, 20 Oct 2012 00:21:31 +0000 (00:21 +0000)]
Improved logging for the SBTarget's launching
and attaching APIs.

llvm-svn: 166356

12 years agoFixed the iOS simulator platform:
Sean Callanan [Sat, 20 Oct 2012 00:19:59 +0000 (00:19 +0000)]
Fixed the iOS simulator platform:

- Fixed a crash when the executable module
  couldn't be found.
- Fixed a problem that made it impossible
  to attach to processes in the simulator
  using the SBTarget::Attach.

llvm-svn: 166355

12 years agoLoopVectorize: Keep the IRBuilder on the stack.
Nadav Rotem [Fri, 19 Oct 2012 23:27:19 +0000 (23:27 +0000)]
LoopVectorize: Keep the IRBuilder on the stack.

llvm-svn: 166354

12 years ago[ms-inline asm] Test case for r166349 and r166352.
Chad Rosier [Fri, 19 Oct 2012 23:16:17 +0000 (23:16 +0000)]
[ms-inline asm] Test case for r166349 and r166352.

llvm-svn: 166353

12 years ago[ms-inline asm] Continue parsing even when we're in an ignore block.
Chad Rosier [Fri, 19 Oct 2012 23:15:00 +0000 (23:15 +0000)]
[ms-inline asm] Continue parsing even when we're in an ignore block.

llvm-svn: 166352

12 years agoVectorizer: Add support for loop reductions.
Nadav Rotem [Fri, 19 Oct 2012 23:05:40 +0000 (23:05 +0000)]
Vectorizer: Add support for loop reductions.

For example:

  for (i=0; i<n; i++)
   sum += A[i] +  B[i] + i;

llvm-svn: 166351

12 years ago1. Remove noreturn attribute from __builtin_debugtrap().
Shuxin Yang [Fri, 19 Oct 2012 23:00:20 +0000 (23:00 +0000)]
1. Remove noreturn attribute from __builtin_debugtrap().
  (The change at Clang side was committed in r166345)

2. Cosmetic change in order to conform to coding standards.

llvm-svn: 166350

12 years ago[ms-inline asm] Reset the opcode prior to parsing a statement.
Chad Rosier [Fri, 19 Oct 2012 22:57:33 +0000 (22:57 +0000)]
[ms-inline asm] Reset the opcode prior to parsing a statement.

llvm-svn: 166349

12 years ago[Options] Make Option non clang specific.
Michael J. Spencer [Fri, 19 Oct 2012 22:37:06 +0000 (22:37 +0000)]
[Options] Make Option non clang specific.

llvm-svn: 166348

12 years ago[Options] make Option a value type.
Michael J. Spencer [Fri, 19 Oct 2012 22:36:40 +0000 (22:36 +0000)]
[Options] make Option a value type.

llvm-svn: 166347

12 years ago<rdar://problem/12491387>
Greg Clayton [Fri, 19 Oct 2012 22:22:57 +0000 (22:22 +0000)]
<rdar://problem/12491387>

Added commands to the KDP plug-in that allow sending raw commands through the KDP protocol. You specify a command byte and a payload as ASCII hex bytes, and the packet is created with a valid header/sequenceID/length and sent. The command responds with a raw ASCII hex string that contains all bytes in the reply including the header.

An example of sending a read register packet for the GPR on x86_64:

(lldb) process plugin packet send --command 0x07 --payload 0100000004000000

llvm-svn: 166346

12 years agoremove noreturn attribute from __builtin_debugtrap
Shuxin Yang [Fri, 19 Oct 2012 22:21:42 +0000 (22:21 +0000)]
remove noreturn attribute from __builtin_debugtrap

llvm-svn: 166345

12 years ago[mips] Use 64-bit registers to return an sret pointer if target ABI is N64.
Akira Hatanaka [Fri, 19 Oct 2012 22:11:40 +0000 (22:11 +0000)]
[mips] Use 64-bit registers to return an sret pointer if target ABI is N64.

llvm-svn: 166344

12 years agoGrammar-o.
Eric Christopher [Fri, 19 Oct 2012 22:10:54 +0000 (22:10 +0000)]
Grammar-o.

llvm-svn: 166343

12 years ago[mips] Add code to do tail call optimization.
Akira Hatanaka [Fri, 19 Oct 2012 21:47:33 +0000 (21:47 +0000)]
[mips] Add code to do tail call optimization.

Currently, it is enabled only if option "enable-mips-tail-calls" is given and
all of the callee's arguments are passed in registers.

llvm-svn: 166342

12 years ago[mips] Fix TAILCALL's operand node type.
Akira Hatanaka [Fri, 19 Oct 2012 21:30:15 +0000 (21:30 +0000)]
[mips] Fix TAILCALL's operand node type.

llvm-svn: 166341

12 years agorevert r166264 because the LTO build is still failing
Nadav Rotem [Fri, 19 Oct 2012 21:28:43 +0000 (21:28 +0000)]
revert r166264 because the LTO build is still failing

llvm-svn: 166340

12 years ago[mips] Delete MipsFunctionInfo::MaxCallFrameSize which is no longer used.
Akira Hatanaka [Fri, 19 Oct 2012 21:18:38 +0000 (21:18 +0000)]
[mips] Delete MipsFunctionInfo::MaxCallFrameSize which is no longer used.

llvm-svn: 166339

12 years ago[mips] Add tail call instructions.
Akira Hatanaka [Fri, 19 Oct 2012 21:14:34 +0000 (21:14 +0000)]
[mips] Add tail call instructions.

llvm-svn: 166338

12 years ago[mips] Make the branch nodes used in jump instructions a template parameter.
Akira Hatanaka [Fri, 19 Oct 2012 21:11:03 +0000 (21:11 +0000)]
[mips] Make the branch nodes used in jump instructions a template parameter.

llvm-svn: 166337

12 years agoAdd node and enum for mips tail call.
Akira Hatanaka [Fri, 19 Oct 2012 20:59:39 +0000 (20:59 +0000)]
Add node and enum for mips tail call.

llvm-svn: 166318

12 years ago[ms-inline asm] Update testcase for r166316.
Chad Rosier [Fri, 19 Oct 2012 20:57:37 +0000 (20:57 +0000)]
[ms-inline asm] Update testcase for r166316.

llvm-svn: 166317

12 years ago[ms-inline asm] Have the TargetParser callback to Sema to determine the size of
Chad Rosier [Fri, 19 Oct 2012 20:57:14 +0000 (20:57 +0000)]
[ms-inline asm] Have the TargetParser callback to Sema to determine the size of
a memory operand.  Retain this information and then add the sizing directives
to the IR.  This allows the backend to do proper instruction selection.

llvm-svn: 166316

12 years agoChange the name of the variable used to detect if we are loading kexts to "load-kexts...
Greg Clayton [Fri, 19 Oct 2012 20:53:18 +0000 (20:53 +0000)]
Change the name of the variable used to detect if we are loading kexts to "load-kexts" instead of "disable-kext-loading" since the value is a boolean. This was requested by the person who requested the feature. It now defaults to true:

(lldb) settings show plugin.dynamic-loader.darwin-kernel.load-kexts
plugin.dynamic-loader.darwin-kernel.load-kexts (boolean) = true

llvm-svn: 166315

12 years agoAdd 'IntrNoReturn' for longjmp intrinsics
Michael Liao [Fri, 19 Oct 2012 20:43:54 +0000 (20:43 +0000)]
Add 'IntrNoReturn' for longjmp intrinsics

llvm-svn: 166314

12 years agoSimplifyLibcalls: The return value of ffsll is always i32, even when the input is...
Benjamin Kramer [Fri, 19 Oct 2012 20:43:44 +0000 (20:43 +0000)]
SimplifyLibcalls: The return value of ffsll is always i32, even when the input is zero.

Fixes PR13028.

llvm-svn: 166313