platform/upstream/llvm.git
11 years agoImplementing the notion of externally-acquirable ScriptInterpreter lock
Enrico Granata [Wed, 27 Mar 2013 22:38:11 +0000 (22:38 +0000)]
Implementing the notion of externally-acquirable ScriptInterpreter lock
With this notion, if parties outside the ScriptInterpreter itself need to acquire a lock on script APIs, they can do so by a pattern like this:

{
auto lock = interpeter->AcquireInterpreterLock();
// do whatever you need to do...
} // lock will automatically be released here

This might be useful for classes that use the Python convenience objects (e.g. PythonDictionary) to ensure they keep the underlying interpreter in a safe and controlled condition while they call through the C API functions
Of course, the ScriptInterpreter still manages its internal locking correctly when necessary :-)

llvm-svn: 178189

11 years agoRemove unnecessary attributes from test case.
Chad Rosier [Wed, 27 Mar 2013 21:54:09 +0000 (21:54 +0000)]
Remove unnecessary attributes from test case.

llvm-svn: 178188

11 years agoAdd a front-end test case for r178186.
Chad Rosier [Wed, 27 Mar 2013 21:50:39 +0000 (21:50 +0000)]
Add a front-end test case for r178186.

llvm-svn: 178187

11 years ago[ms-inline asm] Add support of imm displacement before bracketed memory
Chad Rosier [Wed, 27 Mar 2013 21:49:56 +0000 (21:49 +0000)]
[ms-inline asm] Add support of imm displacement before bracketed memory
expression.  Specifically, this syntax:

 ImmDisp [ BaseReg + Scale*IndexReg + Disp ]

We don't currently support:

 ImmDisp [ Symbol ]

rdar://13518671

llvm-svn: 178186

11 years agoFixes a typo in my last patch.
Fariborz Jahanian [Wed, 27 Mar 2013 21:33:52 +0000 (21:33 +0000)]
Fixes a typo in my last patch.

llvm-svn: 178184

11 years agoBroke out header file list reading into separate function. Moved options to front...
John Thompson [Wed, 27 Mar 2013 21:23:21 +0000 (21:23 +0000)]
Broke out header file list reading into separate function. Moved options to front.  Removed some trailing spaces.

llvm-svn: 178182

11 years agoRevert "[lib/Headers] Define NULL as __DARWIN_NULL when on __APPLE__."
Argyrios Kyrtzidis [Wed, 27 Mar 2013 21:22:45 +0000 (21:22 +0000)]
Revert "[lib/Headers] Define NULL as __DARWIN_NULL when on __APPLE__."

Per feedback by Doug, we should avoid platform-specific implementations
in lib/Headers as much as possible.

This reverts commit r178110.

llvm-svn: 178181

11 years agoResynchronize isLoadFromStackSlot with LoadRegFromStackSlot (and stores) in PPCInstrInfo
Hal Finkel [Wed, 27 Mar 2013 21:21:15 +0000 (21:21 +0000)]
Resynchronize isLoadFromStackSlot with LoadRegFromStackSlot (and stores) in PPCInstrInfo

These functions should have the same list of load/store instructions. Now that
all load/store forms have been normalized (to single instructions or pseudos)
they can be resynchronized.

Found by inspection, although hopefully this will improve optimization.  I've
also added some comments.

llvm-svn: 178180

11 years agoObjective-C: Issue more precise warning when user
Fariborz Jahanian [Wed, 27 Mar 2013 21:19:25 +0000 (21:19 +0000)]
Objective-C: Issue more precise warning when user
is accessing 'isa' as an object pointer.
// rdar://13503456. FixIt to follow in another patch.

llvm-svn: 178179

11 years agotest commit
Ashok Thirumurthi [Wed, 27 Mar 2013 21:09:30 +0000 (21:09 +0000)]
test commit
- modified a comment

llvm-svn: 178178

11 years ago<rdar://problem/13327940>
Greg Clayton [Wed, 27 Mar 2013 20:53:12 +0000 (20:53 +0000)]
<rdar://problem/13327940>

Cleaned up some paths.

llvm-svn: 178177

11 years agoAdded a source file needed for clang to compile in the lldb_perf_clang test.
Greg Clayton [Wed, 27 Mar 2013 20:13:09 +0000 (20:13 +0000)]
Added a source file needed for clang to compile in the lldb_perf_clang test.

llvm-svn: 178176

11 years ago<rdar://problem/13327940>
Greg Clayton [Wed, 27 Mar 2013 20:12:14 +0000 (20:12 +0000)]
<rdar://problem/13327940>

Enhance automated testing to include evaluating function calls.

llvm-svn: 178175

11 years agotest file name change to correct typo
Jack Carter [Wed, 27 Mar 2013 20:07:48 +0000 (20:07 +0000)]
test file name change to correct typo

llvm-svn: 178174

11 years agoCleanup clang's specializations of simplify_type.
Rafael Espindola [Wed, 27 Mar 2013 19:38:14 +0000 (19:38 +0000)]
Cleanup clang's specializations of simplify_type.

Now that the basic implementation in llvm has been fixed, simplify the
specializations in clang.

llvm-svn: 178173

11 years agoAdded informational comment about using -x c++.
John Thompson [Wed, 27 Mar 2013 19:31:22 +0000 (19:31 +0000)]
Added informational comment about using -x c++.

llvm-svn: 178172

11 years agoFor the current Atom processor, the fastest way to handle a call
Preston Gurd [Wed, 27 Mar 2013 19:14:02 +0000 (19:14 +0000)]
For the current Atom processor, the fastest way to handle a call
indirect through a memory address is to load the memory address into
a register and then call indirect through the register.

This patch implements this improvement by modifying SelectionDAG to
force a function address which is a memory reference to be loaded
into a virtual register.

Patch by Sriram Murali.

llvm-svn: 178171

11 years agoFix typo (common to both X86 and PPC)
Hal Finkel [Wed, 27 Mar 2013 19:10:42 +0000 (19:10 +0000)]
Fix typo (common to both X86 and PPC)

Thanks to Bill Schmidt for pointing this out during code review!

llvm-svn: 178170

11 years agoRemove more dead LR-as-GPR PPC code
Hal Finkel [Wed, 27 Mar 2013 19:10:40 +0000 (19:10 +0000)]
Remove more dead LR-as-GPR PPC code

I had removed similar code a few days ago, but somehow missed this.

llvm-svn: 178169

11 years agocpp11-migrate segfaults transforming map<string,int>::iterator
Ariel J. Bernal [Wed, 27 Mar 2013 18:49:31 +0000 (18:49 +0000)]
cpp11-migrate segfaults transforming map<string,int>::iterator

cpp11-migrate segfaults when -use-auto tries to resolve initializing
expression resulting in an expression with cleanups.

- Skip expressions with cleanups from the initializer
- Added test case

Fixes PR15550

llvm-svn: 178167

11 years agoAvoid undefined behavior from passing a std::vector's own contents
Dan Gohman [Wed, 27 Mar 2013 18:44:56 +0000 (18:44 +0000)]
Avoid undefined behavior from passing a std::vector's own contents
in as an argument to push_back.

llvm-svn: 178166

11 years agoRemove "gpr0 allocation" from the PPC README TODO list
Hal Finkel [Wed, 27 Mar 2013 18:39:52 +0000 (18:39 +0000)]
Remove "gpr0 allocation" from the PPC README TODO list

As Chris pointed out, post r178123, this is now done!

llvm-svn: 178165

11 years agoFixed path in file comment. Fixed #include order.
John Thompson [Wed, 27 Mar 2013 18:34:38 +0000 (18:34 +0000)]
Fixed path in file comment.  Fixed #include order.

llvm-svn: 178164

11 years agoDon't try to generate crash diagnostics if we had an I/O failure. It's very
Chad Rosier [Wed, 27 Mar 2013 18:30:00 +0000 (18:30 +0000)]
Don't try to generate crash diagnostics if we had an I/O failure.  It's very
likely the crash diagnostics generation will fail as well.
Part of rdar://13296693

llvm-svn: 178163

11 years agoUpdate the error handing static functions for r178161.
Chad Rosier [Wed, 27 Mar 2013 18:28:23 +0000 (18:28 +0000)]
Update the error handing static functions for r178161.
Part of rdar://13296693

llvm-svn: 178162

11 years agoAdd a boolean parameter to the llvm::report_fatal_error() function to indicated
Chad Rosier [Wed, 27 Mar 2013 18:27:54 +0000 (18:27 +0000)]
Add a boolean parameter to the llvm::report_fatal_error() function to indicated
if crash diagnostics should be generated.  By default this is enabled.
Part of rdar://13296693

llvm-svn: 178161

11 years ago[analyzer] Use evalBind for C++ new of scalar types.
Jordan Rose [Wed, 27 Mar 2013 18:10:35 +0000 (18:10 +0000)]
[analyzer] Use evalBind for C++ new of scalar types.

These types will not have a CXXConstructExpr to do the initialization for
them. Previously we just used a simple call to ProgramState::bindLoc, but
that doesn't trigger proper checker callbacks (like pointer escape).

Found by Anton Yartsev.

llvm-svn: 178160

11 years agotsan: print matched suppressions if print_suppressions=1 flag is provided
Dmitry Vyukov [Wed, 27 Mar 2013 17:59:57 +0000 (17:59 +0000)]
tsan: print matched suppressions if print_suppressions=1 flag is provided

llvm-svn: 178159

11 years agotsan: better flag parsing: do not confuse flag that is a part of another flag
Dmitry Vyukov [Wed, 27 Mar 2013 17:59:13 +0000 (17:59 +0000)]
tsan: better flag parsing: do not confuse flag that is a part of another flag
(e.g. suppressions and print_suppressions)

llvm-svn: 178158

11 years agotsan: fix lint warning
Dmitry Vyukov [Wed, 27 Mar 2013 17:57:58 +0000 (17:57 +0000)]
tsan: fix lint warning

llvm-svn: 178157

11 years agoSpecutively revert r178130.
Bill Wendling [Wed, 27 Mar 2013 17:54:41 +0000 (17:54 +0000)]
Specutively revert r178130.

This may be causing a failure on some buildbots:

Referencing function in another module!
  tail call fastcc void @_ZL11EvaluateOpstPtRj(i16 zeroext %17, i16* %Vals, i32* %NumVals), !dbg !219
Referencing function in another module!
  tail call fastcc void @_ZL11EvaluateOpstPtRj(i16 zeroext %19, i16* %Vals, i32* %NumVals), !dbg !221
Broken module found, compilation aborted!
Stack dump:
0.    Running pass 'Function Pass Manager' on module 'ld-temp.o'.
1.    Running pass 'Module Verifier' on function '@_ZL11EvaluateOpstPtRj'
clang: error: unable to execute command: Illegal instruction: 4
clang: error: linker command failed due to signal (use -v to see invocation)

<rdar://problem/13516485>

llvm-svn: 178156

11 years agoFix comment
David Blaikie [Wed, 27 Mar 2013 17:50:12 +0000 (17:50 +0000)]
Fix comment

llvm-svn: 178155

11 years agoFix a typo in help string.
Jim Ingham [Wed, 27 Mar 2013 17:36:54 +0000 (17:36 +0000)]
Fix a typo in help string.

llvm-svn: 178154

11 years ago[analyzer] Cleanup: only get the PostStmt when we need the underlying Stmt + comment
Anna Zaks [Wed, 27 Mar 2013 17:36:01 +0000 (17:36 +0000)]
[analyzer] Cleanup: only get the PostStmt when we need the underlying Stmt + comment

llvm-svn: 178153

11 years ago[analyzer] Ensure that the node NilReceiverBRVisitor is looking for is not reclaimed
Anna Zaks [Wed, 27 Mar 2013 17:35:58 +0000 (17:35 +0000)]
[analyzer] Ensure that the node NilReceiverBRVisitor is looking for is not reclaimed

The visitor should look for the PreStmt node as the receiver is nil in the PreStmt and this is the node. Also, tag the nil
receiver nodes with a special tag for consistency.

llvm-svn: 178152

11 years ago[modules] Make sure enabled diagnostic pragmas inside the module don't affect the...
Argyrios Kyrtzidis [Wed, 27 Mar 2013 17:17:23 +0000 (17:17 +0000)]
[modules] Make sure enabled diagnostic pragmas inside the module don't affect the translation unit that
imports the module.

Getting diagnostic sections from modules properly working is a fixme.

rdar://13516663

llvm-svn: 178151

11 years agoInsert extra new line before access specifiers.
Alexander Kornienko [Wed, 27 Mar 2013 17:08:02 +0000 (17:08 +0000)]
Insert extra new line before access specifiers.

Summary: Insert extra new line before access specifiers.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D581

llvm-svn: 178149

11 years ago<rdar://problem/13509689> Introduce -module-file-info option that provides informatio...
Douglas Gregor [Wed, 27 Mar 2013 16:47:18 +0000 (16:47 +0000)]
<rdar://problem/13509689> Introduce -module-file-info option that provides information about a particular module file.

This option can be useful for end users who want to know why they
ended up with a ton of different variants of the "std" module in their
module cache. This problem should go away over time, as we reduce the
need for module variants, but it will never go away entirely.

llvm-svn: 178148

11 years agoCleanup the simplify_type implementation.
Rafael Espindola [Wed, 27 Mar 2013 16:43:11 +0000 (16:43 +0000)]
Cleanup the simplify_type implementation.

As far as simplify_type is concerned, there are 3 kinds of smart pointers:

* const correct: A 'const MyPtr<int> &' produces a 'const int*'. A
'MyPtr<int> &' produces a 'int *'.
* always const: Even a 'MyPtr<int> &' produces a 'const int*'.
* no const: Even a 'const MyPtr<int> &' produces a 'int*'.

This patch then does the following:

* Removes the unused specializations. Since they are unused, it is hard
to know which kind should be implemented.
* Make sure we don't drop const.
* Fix the default forwarding so that const correct pointer only need
one specialization.
* Simplifies the existing specializations.

llvm-svn: 178147

11 years agoAdd const in preparation for a simplify_type change in llvm.
Rafael Espindola [Wed, 27 Mar 2013 15:37:54 +0000 (15:37 +0000)]
Add const in preparation for a simplify_type change in llvm.

llvm-svn: 178146

11 years agoR600/SI: add SETO/SETUO patterns
Christian Konig [Wed, 27 Mar 2013 15:27:31 +0000 (15:27 +0000)]
R600/SI: add SETO/SETUO patterns

6 more piglit tests.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 178145

11 years agoSilence warning about mixing || in &&, fix up 80-cols.
Benjamin Kramer [Wed, 27 Mar 2013 15:03:14 +0000 (15:03 +0000)]
Silence warning about mixing || in &&, fix up 80-cols.

llvm-svn: 178144

11 years agoAdd another expected note. Two errors => two notes.
Tim Northover [Wed, 27 Mar 2013 13:50:57 +0000 (13:50 +0000)]
Add another expected note. Two errors => two notes.

llvm-svn: 178143

11 years agoPrint PPC ZERO as 0 (not r0) even on Darwin
Hal Finkel [Wed, 27 Mar 2013 13:20:52 +0000 (13:20 +0000)]
Print PPC ZERO as 0 (not r0) even on Darwin

It seems that the Darwin PPC assembler requires r0 to be written as 0 when it
means 0 (at least in lwarx/stwcx.). Fixes PR15605.

llvm-svn: 178142

11 years agoSwitch to LLVM support function abs64 to keep VS2008 happy.
Tim Northover [Wed, 27 Mar 2013 13:15:08 +0000 (13:15 +0000)]
Switch to LLVM support function abs64 to keep VS2008 happy.

llvm-svn: 178141

11 years agoDisable ASan/MSan symbolization of reports in tests.
Evgeniy Stepanov [Wed, 27 Mar 2013 13:11:46 +0000 (13:11 +0000)]
Disable ASan/MSan symbolization of reports in tests.

It was using an instrumented symbolizer binary, which is a potential fork bomb.

llvm-svn: 178140

11 years agoDisable ASan/MSan symbolization of reports in tests.
Evgeniy Stepanov [Wed, 27 Mar 2013 13:11:12 +0000 (13:11 +0000)]
Disable ASan/MSan symbolization of reports in tests.

It was using an instrumented symbolizer binary, which is a potential fork bomb.

llvm-svn: 178139

11 years agoMark comment-to-html-xml-conversion test as XFAIL:msan, in addition to valgrind.
Evgeniy Stepanov [Wed, 27 Mar 2013 13:05:40 +0000 (13:05 +0000)]
Mark comment-to-html-xml-conversion test as XFAIL:msan, in addition to valgrind.

llvm-svn: 178138

11 years agoFix target-customized spilling in the register scavenger
Hal Finkel [Wed, 27 Mar 2013 13:00:56 +0000 (13:00 +0000)]
Fix target-customized spilling in the register scavenger

This is a follow-up to r178073 (which should actually make target-customized
spilling work again).

I still don't have a regression test for this (but it would be good to have
one; Thumb 1 and Mips16 use this callback as well).

Patch by Richard Sandiford.

llvm-svn: 178137

11 years ago<rdar://problem/13317030> Consider using directives when performing unqualified name...
Douglas Gregor [Wed, 27 Mar 2013 12:51:49 +0000 (12:51 +0000)]
<rdar://problem/13317030> Consider using directives when performing unqualified name lookup into declarations contexts represented by the qualified-id but not in the actual scope hierarchy.

llvm-svn: 178136

11 years agoDisable Initialize.MultipleThreads test under MemorySanitizer.
Evgeniy Stepanov [Wed, 27 Mar 2013 12:50:49 +0000 (12:50 +0000)]
Disable Initialize.MultipleThreads test under MemorySanitizer.

Fails due to insufficient thread stack.

llvm-svn: 178135

11 years agoEnabling the generation of dependency breakers for partial updates on Cortex-A15...
Silviu Baranga [Wed, 27 Mar 2013 12:38:44 +0000 (12:38 +0000)]
Enabling the generation of dependency breakers for partial updates on Cortex-A15. Also fixing a small bug in getting the update clearence for VLD1LNd32.

llvm-svn: 178134

11 years agoSplit line comments
Alexander Kornienko [Wed, 27 Mar 2013 11:52:18 +0000 (11:52 +0000)]
Split line comments

Summary:
Split line comments that exceed column limit + fixed leading whitespace
handling when splitting block comments.

Reviewers: djasper, klimek

Reviewed By: djasper

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D577

llvm-svn: 178133

11 years agoHexagon: Disable optimizations at O0.
Jyotsna Verma [Wed, 27 Mar 2013 11:14:24 +0000 (11:14 +0000)]
Hexagon: Disable optimizations at O0.

llvm-svn: 178132

11 years ago[ASan] Demangle global names in error reports.
Alexey Samsonov [Wed, 27 Mar 2013 10:41:22 +0000 (10:41 +0000)]
[ASan] Demangle global names in error reports.

llvm-svn: 178131

11 years agoImprove performance of LinkModules when linking with modules with large numbers of...
James Molloy [Wed, 27 Mar 2013 10:23:32 +0000 (10:23 +0000)]
Improve performance of LinkModules when linking with modules with large numbers of functions which link lazily. Instead of creating and destroying function prototypes irrespective of if they are used, only create them if they are used.

llvm-svn: 178130

11 years ago[TSan] Fixup for r178128: verify that TSan indeed doesn't report race
Alexey Samsonov [Wed, 27 Mar 2013 10:22:51 +0000 (10:22 +0000)]
[TSan] Fixup for r178128: verify that TSan indeed doesn't report race

llvm-svn: 178129

11 years ago[TSan] Run test output through FileCheck
Alexey Samsonov [Wed, 27 Mar 2013 09:25:06 +0000 (09:25 +0000)]
[TSan] Run test output through FileCheck

llvm-svn: 178128

11 years agoR600/SI: add cummuting of rev instructions
Christian Konig [Wed, 27 Mar 2013 09:12:59 +0000 (09:12 +0000)]
R600/SI: add cummuting of rev instructions

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 178127

11 years agoR600/SI: add mulhu/mulhs patterns
Christian Konig [Wed, 27 Mar 2013 09:12:51 +0000 (09:12 +0000)]
R600/SI: add mulhu/mulhs patterns

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 178126

11 years agoR600/SI: add srl/sha patterns for SI
Christian Konig [Wed, 27 Mar 2013 09:12:44 +0000 (09:12 +0000)]
R600/SI: add srl/sha patterns for SI

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 178125

11 years agoAllocate r0 on PPC
Hal Finkel [Wed, 27 Mar 2013 06:52:27 +0000 (06:52 +0000)]
Allocate r0 on PPC

The R0 register can now be allocated because instructions
that cannot use R0 as a GPR have been appropriately marked.

llvm-svn: 178123

11 years agoFix testcase to add expected note.
Bill Wendling [Wed, 27 Mar 2013 06:45:37 +0000 (06:45 +0000)]
Fix testcase to add expected note.

llvm-svn: 178122

11 years agoUse the PPC no-r0 class on the TOC LD pseudos
Hal Finkel [Wed, 27 Mar 2013 06:36:55 +0000 (06:36 +0000)]
Use the PPC no-r0 class on the TOC LD pseudos

The register parameter in these instructions becomes the base register in an
r+i ld instruction (and, thus, cannot be r0).

This is not yet testable because we don't yet allocate r0 (and even then any
test would be very fragile).

llvm-svn: 178121

11 years agoPass the diagnostic in for better error messages.
Bill Wendling [Wed, 27 Mar 2013 06:06:26 +0000 (06:06 +0000)]
Pass the diagnostic in for better error messages.

llvm-svn: 178120

11 years agoApply the no-r0 register class to the PPC SELECT_CC_I[4|8] pseudos
Hal Finkel [Wed, 27 Mar 2013 05:57:58 +0000 (05:57 +0000)]
Apply the no-r0 register class to the PPC SELECT_CC_I[4|8] pseudos

Either operand of these pseudo instructions can be transformed into the first
operand of an isel instruction (and this operand cannot be r0).

This is not yet testable because we don't yet allocate r0 (and even when we do,
any test would be very fragile).

llvm-svn: 178119

11 years agoApply the no-r0 class to PPC TOC ADDI[S] pseudo instructions
Hal Finkel [Wed, 27 Mar 2013 05:57:56 +0000 (05:57 +0000)]
Apply the no-r0 class to PPC TOC ADDI[S] pseudo instructions

Like the addi/addis instructions themselves, these pseudo instructions also
cannot have r0 as their register parameter (because it will be interpreted as
the value 0).

This is not yet testable because we don't yet allocate r0 (and even when we do,
any regression test would be very fragile because it would depend on the
register allocator heuristics).

llvm-svn: 178118

11 years ago[lib/Headers] Break the module import cycle between _Builtin_intrinsics.sse and _Buil...
Argyrios Kyrtzidis [Wed, 27 Mar 2013 05:12:34 +0000 (05:12 +0000)]
[lib/Headers] Break the module import cycle between _Builtin_intrinsics.sse and _Builtin_intrinsics.sse2

Module "sse" implicitly exports module "sse2".
This is bad because we also have module "sse2" export module "sse" (as intended) so we end up with a cycle
in the module import graph:
1. sse2 -> (also imports) sse
2. sse -> (also imports) sse2

To eliminate the cycle remove 2.; importing module "sse2" will also import module "sse", but just importing
module "sse" will not also import module "sse2".

rdar://13240552

llvm-svn: 178117

11 years agoRevert r178075, "Tighten up the iterator requirements ...", it breaks LLVM
Daniel Dunbar [Wed, 27 Mar 2013 04:10:25 +0000 (04:10 +0000)]
Revert r178075, "Tighten up the iterator requirements ...", it breaks LLVM
bootstrap with libc++.

llvm-svn: 178116

11 years agoFixed a problem where inline assembly errors caused
Sean Callanan [Wed, 27 Mar 2013 03:09:55 +0000 (03:09 +0000)]
Fixed a problem where inline assembly errors caused
LLDB to crash.

<rdar://problem/13497915>

llvm-svn: 178115

11 years agoRemove the link register from the GPR classes on PowerPC.
Bill Schmidt [Wed, 27 Mar 2013 02:40:14 +0000 (02:40 +0000)]
Remove the link register from the GPR classes on PowerPC.

Some implementation detail in the forgotten past required the link
register to be placed in the GPRC and G8RC register classes.  This is
just wrong on the face of it, and causes several extra intersection
register classes to be generated.  I found this was having evil
effects on instruction scheduling, by causing the wrong register class
to be consulted for register pressure decisions.

No code generation changes are expected, other than some minor changes
in instruction order.  Seven tests in the test bucket required minor
tweaks to adjust to the new normal.

llvm-svn: 178114

11 years agoDon't use a "uintptr_t" for the metadata key, use a "void *". This removes all of...
Greg Clayton [Wed, 27 Mar 2013 01:48:02 +0000 (01:48 +0000)]
Don't use a "uintptr_t" for the metadata key, use a "void *".  This removes all of the casts that were being used and cleans the code up a bit. Also added the ability to dump the metadata.

llvm-svn: 178113

11 years agoPrune more stuff out of the build and source folders after building clang.
Greg Clayton [Wed, 27 Mar 2013 01:46:51 +0000 (01:46 +0000)]
Prune more stuff out of the build and source folders after building clang.

llvm-svn: 178112

11 years agoImplement compiler intrinsics needed for compatibility with MSVC 2012 <type_traits>.
Joao Matos [Wed, 27 Mar 2013 01:34:16 +0000 (01:34 +0000)]
Implement compiler intrinsics needed for compatibility with MSVC 2012 <type_traits>.

Patch by me and Ryan Molden.

llvm-svn: 178111

11 years ago[lib/Headers] Define NULL as __DARWIN_NULL when on __APPLE__.
Argyrios Kyrtzidis [Wed, 27 Mar 2013 01:25:37 +0000 (01:25 +0000)]
[lib/Headers] Define NULL as __DARWIN_NULL when on __APPLE__.

This makes it identical with the system definition.

llvm-svn: 178110

11 years ago[modules] Before marking the module imported macros as ambiguous, check if this is...
Argyrios Kyrtzidis [Wed, 27 Mar 2013 01:25:34 +0000 (01:25 +0000)]
[modules] Before marking the module imported macros as ambiguous, check if this is a case where
the system macro uses a not identical definition compared to a macro from the clang headers.

For example (these come from different modules):
   \#define LONG_MAX __LONG_MAX__ (clang's limits.h)
   \#define LONG_MAX 0x7fffffffffffffffL (system's limits.h)
in which case don't mark them ambiguous to avoid the "ambiguous macro expansion" warning.

llvm-svn: 178109

11 years agoRemove IdentifierInfo::setHadMacroDefinition()
Argyrios Kyrtzidis [Wed, 27 Mar 2013 01:25:31 +0000 (01:25 +0000)]
Remove IdentifierInfo::setHadMacroDefinition()

It's not used anymore.

llvm-svn: 178108

11 years ago[PCH/modules] Remove HiddenName::MacroUndef
Argyrios Kyrtzidis [Wed, 27 Mar 2013 01:25:28 +0000 (01:25 +0000)]
[PCH/modules] Remove HiddenName::MacroUndef

llvm-svn: 178107

11 years ago[Preprocessor] Remove PPMutationListener.
Argyrios Kyrtzidis [Wed, 27 Mar 2013 01:25:24 +0000 (01:25 +0000)]
[Preprocessor] Remove PPMutationListener.

It's not used anymore.

llvm-svn: 178106

11 years ago[modules] Re-enable the "ambiguous expansion of macro" warning.
Argyrios Kyrtzidis [Wed, 27 Mar 2013 01:25:19 +0000 (01:25 +0000)]
[modules] Re-enable the "ambiguous expansion of macro" warning.

Also update "test/Modules/macros.c" to test modified semantics:
-When there is an ambiguous macro, expand using the latest introduced version, not the first one.
-#undefs in submodules cause the macro to not be exported by that submodule, it doesn't cause
 undefining of macros in the translation unit that imported that submodule.
 This reduces macro namespace interference across modules.

llvm-svn: 178105

11 years agoRevised to use MemoryBuffer. Removed redundant llvm:: qualifiers. Removed unnecessar...
John Thompson [Wed, 27 Mar 2013 01:02:46 +0000 (01:02 +0000)]
Revised to use MemoryBuffer. Removed redundant llvm:: qualifiers.  Removed unnecessary c_str() calls.  Reformatted with clang-format.

llvm-svn: 178104

11 years agoPR15597: Fix a confusion between the implicit exception specification and the
Richard Smith [Wed, 27 Mar 2013 00:22:47 +0000 (00:22 +0000)]
PR15597: Fix a confusion between the implicit exception specification and the
uninstantiated exception specification when a special member within a class
template is both defaulted and given an exception specification on its first
declaration.

llvm-svn: 178103

11 years agoIf we're unable to create the TargetMachine, then just quit producing the
Chad Rosier [Wed, 27 Mar 2013 00:14:35 +0000 (00:14 +0000)]
If we're unable to create the TargetMachine, then just quit producing the
backend output; there's no need to report a fatal error.  This reverts r178042.
Part of rdar://13295753 and rdar://13401547

llvm-svn: 178102

11 years agoAdded back in the test for arc-annotations.
Michael Gottesman [Wed, 27 Mar 2013 00:09:58 +0000 (00:09 +0000)]
Added back in the test for arc-annotations.

The test was removed since I had not turned off the test during release
builds. This fails since ARC annotations support  is conditionally
compiled out during release builds. I added the proper requires header
to assuage this issue.

llvm-svn: 178101

11 years agoUpdate debug info test for schema change made to LLVM.
David Blaikie [Wed, 27 Mar 2013 00:08:24 +0000 (00:08 +0000)]
Update debug info test for schema change made to LLVM.

This accounts for the addition of another field to DIScopes that will be used
to store a list of DIImportedModules in the future.

llvm-svn: 178100

11 years agoAdding DIImportedModules to DIScopes.
David Blaikie [Wed, 27 Mar 2013 00:07:26 +0000 (00:07 +0000)]
Adding DIImportedModules to DIScopes.

This is just the basic groundwork for supporting DW_TAG_imported_module but I
wanted to commit this before pushing support further into Clang or LLVM so that
this rather churny change is isolated from the rest of the work. The major
churn here is obviously adding another field (within the common DIScope prefix)
to all DIScopes (files, classes, namespaces, lexical scopes, etc). This should
be the last big churny change needed for DW_TAG_imported_module/using directive
support/PR14606.

llvm-svn: 178099

11 years agoMake the -Wreinterpret-base-class logic safe against invalid
John McCall [Wed, 27 Mar 2013 00:03:48 +0000 (00:03 +0000)]
Make the -Wreinterpret-base-class logic safe against invalid
declarations at any point. Patch by Alexander Zinenko, and
report by Richard Smith.

llvm-svn: 178098

11 years agoSplit "incomplete implementation" warnings for ObjC into separate warnings.
Ted Kremenek [Wed, 27 Mar 2013 00:02:21 +0000 (00:02 +0000)]
Split "incomplete implementation" warnings for ObjC into separate warnings.

Previously all unimplemented methods for a class were grouped under
a single warning, with all the unimplemented methods mentioned
as notes.  Based on feedback from users, most users would like
a separate warning for each method, with a note pointing back to
the original method declaration.

Implements <rdar://problem/13350414>

llvm-svn: 178097

11 years agoDon't spill PPC VRSAVE on non-Darwin (even in SjLj)
Hal Finkel [Wed, 27 Mar 2013 00:02:20 +0000 (00:02 +0000)]
Don't spill PPC VRSAVE on non-Darwin (even in SjLj)

As Bill Schmidt pointed out to me, only on Darwin do we need to spill/restore
VRSAVE in the SjLj code. For non-Darwin, don't spill/restore VRSAVE (and I've
added some asserts to make sure that we're not).

As it turns out, we're not currently handling the Darwin case correctly (I've
added a FIXME in the test case). I've tried adding various implied register
definitions/uses to force the spill without success, so I'll need to address
this later.

llvm-svn: 178096

11 years ago<rdar://problem/13278115> Improve diagnostic when failing to bind an rvalue reference...
Douglas Gregor [Tue, 26 Mar 2013 23:59:23 +0000 (23:59 +0000)]
<rdar://problem/13278115> Improve diagnostic when failing to bind an rvalue reference to an lvalue of compatible type.

llvm-svn: 178095

11 years ago[analyzer] Better test for r178063.
Anna Zaks [Tue, 26 Mar 2013 23:58:52 +0000 (23:58 +0000)]
[analyzer] Better test for r178063.

Jordan pointed out that my previously committed test was bogus.

llvm-svn: 178094

11 years ago[analyzer] Make sure IDC works for ‘NSContainer value/key is nil’ checks.
Anna Zaks [Tue, 26 Mar 2013 23:58:49 +0000 (23:58 +0000)]
[analyzer] Make sure IDC works for ‘NSContainer value/key is nil’ checks.

Register the nil tracking visitors with the region and refactor trackNullOrUndefValue a bit.

Also adds the cast and paren stripping before checking if the value is an OpaqueValueExpr
or ExprWithCleanups.

llvm-svn: 178093

11 years agoRemove magic number usage from CGDebugInfo with new DICompositeType::setContainingType
David Blaikie [Tue, 26 Mar 2013 23:47:35 +0000 (23:47 +0000)]
Remove magic number usage from CGDebugInfo with new DICompositeType::setContainingType

llvm-svn: 178092

11 years agoMake DIBuilder::createClassType more type safe by returning DICompositeType rather...
David Blaikie [Tue, 26 Mar 2013 23:46:39 +0000 (23:46 +0000)]
Make DIBuilder::createClassType more type safe by returning DICompositeType rather than DIType

llvm-svn: 178091

11 years agoDebugInfo: more support for mutating DICompositeType to reduce magic number usage...
David Blaikie [Tue, 26 Mar 2013 23:46:36 +0000 (23:46 +0000)]
DebugInfo: more support for mutating DICompositeType to reduce magic number usage in Clang

llvm-svn: 178090

11 years ago[driver] Do not generate crash diagnostics if the compilation command failed
Chad Rosier [Tue, 26 Mar 2013 23:41:30 +0000 (23:41 +0000)]
[driver] Do not generate crash diagnostics if the compilation command failed
to execute as the crash will surely reoccur while generating the diagnostics.
rdar://13362359

llvm-svn: 178089

11 years ago<rdar://problem/13267210> Ensure that Sema::CompareReferenceRelationship returns...
Douglas Gregor [Tue, 26 Mar 2013 23:36:30 +0000 (23:36 +0000)]
<rdar://problem/13267210> Ensure that Sema::CompareReferenceRelationship returns consistent results with invalid types.

When Sema::RequireCompleteType() is given a class template
specialization type that then fails to instantiate, it returns
'true'. On subsequent invocations, it can return false. Make sure that
this difference doesn't change the result of
Sema::CompareReferenceRelationship, which is expected to remain stable
while we're checking an initialization sequence.

llvm-svn: 178088

11 years agoAdd a boolean parameter to the ExecuteAndWait static function to indicated
Chad Rosier [Tue, 26 Mar 2013 23:35:00 +0000 (23:35 +0000)]
Add a boolean parameter to the ExecuteAndWait static function to indicated
if execution failed.  ExecuteAndWait returns -1 upon an execution failure, but
checking the return value isn't sufficient because the wait command may
return -1 as well.  This new parameter is to be used by the clang driver in a
subsequent commit.
Part of rdar://13362359

llvm-svn: 178087

11 years agoRemove a FIXME that's not planned to be fixed. We only generated crash
Chad Rosier [Tue, 26 Mar 2013 23:25:41 +0000 (23:25 +0000)]
Remove a FIXME that's not planned to be fixed.  We only generated crash
diagnostics for the first failing command.

llvm-svn: 178086

11 years agoCleaned up how LLDB.framework was being linked to and also how the target dependencies.
Greg Clayton [Tue, 26 Mar 2013 22:52:20 +0000 (22:52 +0000)]
Cleaned up how LLDB.framework was being linked to and also how the target dependencies.

llvm-svn: 178085