platform/upstream/llvm.git
11 years agoFix a default on covered switch found by -Wcovered-switch-default
David Blaikie [Thu, 28 Mar 2013 02:30:37 +0000 (02:30 +0000)]
Fix a default on covered switch found by -Wcovered-switch-default

Introduced in r178207

llvm-svn: 178212

11 years agoRemove outdated FIXME.
Richard Smith [Thu, 28 Mar 2013 01:56:34 +0000 (01:56 +0000)]
Remove outdated FIXME.

llvm-svn: 178211

11 years agoSupport C11 _Atomic type qualifier. This is more-or-less just syntactic sugar for...
Richard Smith [Thu, 28 Mar 2013 01:55:44 +0000 (01:55 +0000)]
Support C11 _Atomic type qualifier. This is more-or-less just syntactic sugar for the _Atomic type specifier.

llvm-svn: 178210

11 years agoDebugserver fix for launching iOS apps who are named "com.apple.something"
Jason Molenda [Thu, 28 Mar 2013 01:48:21 +0000 (01:48 +0000)]
Debugserver fix for launching iOS apps who are named "com.apple.something"
- the ".app" would be treated as the app bundle final characters
and the SpringBoard launch would fail.
<rdar://problem/13258935>

llvm-svn: 178209

11 years agoCheck if Type is a vector before calling function Type::getVectorNumElements.
Akira Hatanaka [Thu, 28 Mar 2013 01:28:02 +0000 (01:28 +0000)]
Check if Type is a vector before calling function Type::getVectorNumElements.

llvm-svn: 178208

11 years agomodularize - revised to group duplicate symbols together in the error output.
John Thompson [Thu, 28 Mar 2013 01:20:19 +0000 (01:20 +0000)]
modularize - revised to group duplicate symbols together in the error output.

llvm-svn: 178207

11 years ago<rdar://problem/13412986>
Enrico Granata [Thu, 28 Mar 2013 00:27:30 +0000 (00:27 +0000)]
<rdar://problem/13412986>

Holding the Python lock while we call the Python C API to post-process objects returned from the OS plugins
This should avoid issues where some Python objects get invalidated while we are in the middle of processing them and we end up with an invalid Python state and a crash

llvm-svn: 178206

11 years agoProtect against the case where the current inlined depth is wrong, and leads us to...
Jim Ingham [Thu, 28 Mar 2013 00:13:30 +0000 (00:13 +0000)]
Protect against the case where the current inlined depth is wrong, and leads us to think we can't even get the
frame at index 0.  We should ALWAYS be able to get that.

<rdar://problem/13497571>

llvm-svn: 178205

11 years agoUse the error from ValidatePlan.
Jim Ingham [Thu, 28 Mar 2013 00:08:00 +0000 (00:08 +0000)]
Use the error from ValidatePlan.

llvm-svn: 178204

11 years agoThe other half of the checkin to produce better error messages when the ThreadPlanCal...
Jim Ingham [Thu, 28 Mar 2013 00:07:20 +0000 (00:07 +0000)]
The other half of the checkin to produce better error messages when the ThreadPlanCallFunction isn't valid.

llvm-svn: 178203

11 years agoRunThreadPlan should make sure the plan passed in is valid before running it.
Jim Ingham [Thu, 28 Mar 2013 00:05:34 +0000 (00:05 +0000)]
RunThreadPlan should make sure the plan passed in is valid before running it.

<rdar://problem/13485541>

llvm-svn: 178202

11 years agoReturn a useful error message from ValidatePlan if the expression can't be made for...
Jim Ingham [Thu, 28 Mar 2013 00:04:05 +0000 (00:04 +0000)]
Return a useful error message from ValidatePlan if the expression can't be made for some reason.

llvm-svn: 178201

11 years agoFold together the two implementations of 6.7.3p2 in SemaType. Fix two bugs, each...
Richard Smith [Thu, 28 Mar 2013 00:03:10 +0000 (00:03 +0000)]
Fold together the two implementations of 6.7.3p2 in SemaType. Fix two bugs, each of which was only present in one version:
 * Give the right diagnostic for 'restrict' applied to a non-pointer, non-reference type.
 * Don't reject 'restrict' applied indirectly to an Objective-C object pointer type (eg, through template instantiation).

llvm-svn: 178200

11 years ago[Parser] Don't code-complete twice.
Argyrios Kyrtzidis [Wed, 27 Mar 2013 23:58:17 +0000 (23:58 +0000)]
[Parser] Don't code-complete twice.

When we are consuming the current token just to enter a new token stream, we push
the current token in the back of the stream so that we get it again.

Unfortunately this had the effect where if the current token is a code-completion one,
we would code-complete once during consuming it and another time after the stream ended.

Fix this by making sure that, in this case, ConsumeAnyToken() will consume a code-completion
token without invoking code-completion.

rdar://12842503

llvm-svn: 178199

11 years agoDon't reject __restrict applied to a dependent type; it might instantiate to a pointe...
Richard Smith [Wed, 27 Mar 2013 23:36:39 +0000 (23:36 +0000)]
Don't reject __restrict applied to a dependent type; it might instantiate to a pointer or reference type.

llvm-svn: 178198

11 years agoSimplify test to use a count for the number of notes expected.
Bill Wendling [Wed, 27 Mar 2013 23:26:09 +0000 (23:26 +0000)]
Simplify test to use a count for the number of notes expected.

llvm-svn: 178196

11 years agocompiler-rt part of r178194. Remove ubsan test for diagnostic on inf/nan conversion...
Richard Smith [Wed, 27 Mar 2013 23:21:10 +0000 (23:21 +0000)]
compiler-rt part of r178194. Remove ubsan test for diagnostic on inf/nan conversion between floating-point types.

llvm-svn: 178195

11 years agoUBSan: Don't diagnose inf/nan conversions between floating-point types. It's far...
Richard Smith [Wed, 27 Mar 2013 23:20:25 +0000 (23:20 +0000)]
UBSan: Don't diagnose inf/nan conversions between floating-point types. It's far from clear whether these have undefined behavior, and these checks are helping no-one. Keep the double->float overflow warnings, though, since those are useful in practice, even though it's unclear whether such operations have defined behavior.

llvm-svn: 178194

11 years agoThis patch follows is a follow up to r178171, which uses the register
Preston Gurd [Wed, 27 Mar 2013 23:16:18 +0000 (23:16 +0000)]
This patch follows is a follow up to r178171, which uses the register
form of call in preference to memory indirect on Atom.

In this case, the patch applies the optimization to the code for reloading
spilled registers.

The patch also includes changes to sibcall.ll and movgs.ll, which were
failing on the Atom buildbot after the first patch was applied.

This patch by Sriram Murali.

llvm-svn: 178193

11 years agoThis test case was not doing the right thing with libc++ being used and was generatin...
Enrico Granata [Wed, 27 Mar 2013 23:08:54 +0000 (23:08 +0000)]
This test case was not doing the right thing with libc++ being used and was generating spurious over-completion warning flags

llvm-svn: 178192

11 years ago<rdar://problem/13521159>
Greg Clayton [Wed, 27 Mar 2013 23:08:40 +0000 (23:08 +0000)]
<rdar://problem/13521159>

LLDB is crashing when logging is enabled from lldb-perf-clang. This has to do with the global destructor chain as the process and its threads are being torn down.

All logging channels now make one and only one instance that is kept in a global pointer which is never freed. This guarantees that logging can correctly continue as the process tears itself down.

llvm-svn: 178191

11 years agoUpdated ELF relocation test for .eh_frame section
Jack Carter [Wed, 27 Mar 2013 22:58:49 +0000 (22:58 +0000)]
Updated ELF relocation test for .eh_frame section

Made sure we were looking a correct section
Added Mips32/64 as an extra check
Updated llvm-objdump to generate symbolic info for Mips relocations

llvm-svn: 178190

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