platform/upstream/llvm.git
10 years agoAdd a std:: prefix in cases where ADL would have failed on windows.
Rafael Espindola [Thu, 12 Jun 2014 03:53:36 +0000 (03:53 +0000)]
Add a std:: prefix in cases where ADL would have failed on windows.

This is in preparation for removing make_error_code from the llvm namespace.

llvm-svn: 210745

10 years agoFix typo.
Rafael Espindola [Thu, 12 Jun 2014 03:31:26 +0000 (03:31 +0000)]
Fix typo.

Thanks to Alp Toker for noticing.

llvm-svn: 210744

10 years ago[x86] Improve frameaddress test from r210709.
Juergen Ributzka [Thu, 12 Jun 2014 03:29:29 +0000 (03:29 +0000)]
[x86] Improve frameaddress test from r210709.

llvm-svn: 210743

10 years ago[FastISel] Add support for the stackmap intrinsic.
Juergen Ributzka [Thu, 12 Jun 2014 03:29:26 +0000 (03:29 +0000)]
[FastISel] Add support for the stackmap intrinsic.

This implements target-independent FastISel lowering for the stackmap intrinsic.

llvm-svn: 210742

10 years agoDon't use make_error_code from the llvm namespace.
Rafael Espindola [Thu, 12 Jun 2014 03:13:49 +0000 (03:13 +0000)]
Don't use make_error_code from the llvm namespace.

llvm-svn: 210741

10 years agoPrefix generic_category with std::.
Rafael Espindola [Thu, 12 Jun 2014 02:52:22 +0000 (02:52 +0000)]
Prefix generic_category with std::.

Sorry I missed these before.

llvm-svn: 210740

10 years agoGive clang-format its own error category.
Rafael Espindola [Thu, 12 Jun 2014 02:50:04 +0000 (02:50 +0000)]
Give clang-format its own error category.

The posix errno values are probably to the best thing to use for
describing parse errors.

This should also fix the mingw build.

llvm-svn: 210739

10 years agoDriver: use more range-based for loops
Saleem Abdulrasool [Thu, 12 Jun 2014 02:08:04 +0000 (02:08 +0000)]
Driver: use more range-based for loops

Mechanical change converting some of the simpler for loops into range-based for
loops.  NFC.

llvm-svn: 210738

10 years agoDon't put generic_category in the llvm namespace.
Rafael Espindola [Thu, 12 Jun 2014 02:00:39 +0000 (02:00 +0000)]
Don't put generic_category in the llvm namespace.

llvm-svn: 210737

10 years agoUse generic_category from the std namespace.
Rafael Espindola [Thu, 12 Jun 2014 01:59:06 +0000 (01:59 +0000)]
Use generic_category from the std namespace.

llvm-svn: 210736

10 years agoUse generic_category from the std namespace.
Rafael Espindola [Thu, 12 Jun 2014 01:57:33 +0000 (01:57 +0000)]
Use generic_category from the std namespace.

llvm-svn: 210735

10 years agoFix verifier for GlobalAliases to avoid recursing into global initializers.
Bob Wilson [Thu, 12 Jun 2014 01:46:54 +0000 (01:46 +0000)]
Fix verifier for GlobalAliases to avoid recursing into global initializers.

The verifier follows GlobalAlias operands so that it can detect cycles of
alias definitions. It was doing this in a way that caused it to also recurse
through initializers for the GlobalValue aliasees, and it would fail when
an initializer refers to a global that is a declaration and not a definition.
This patch causes it to stop recursing when it hits a global definition.
<rdar://problem/17277451>

llvm-svn: 210734

10 years agoDon't import error_category into the llvm namespace.
Rafael Espindola [Thu, 12 Jun 2014 01:45:43 +0000 (01:45 +0000)]
Don't import error_category into the llvm namespace.

llvm-svn: 210733

10 years agoUse error_category from the std namespace.
Rafael Espindola [Thu, 12 Jun 2014 01:44:19 +0000 (01:44 +0000)]
Use error_category from the std namespace.

llvm-svn: 210732

10 years agoDon't import error_condition into the llvm namespace.
Rafael Espindola [Thu, 12 Jun 2014 01:29:42 +0000 (01:29 +0000)]
Don't import error_condition into the llvm namespace.

llvm-svn: 210731

10 years agoUse error_condition from the std namespace.
Rafael Espindola [Thu, 12 Jun 2014 01:28:12 +0000 (01:28 +0000)]
Use error_condition from the std namespace.

llvm-svn: 210730

10 years agoUsed mapWindowsError. I missed these in the initial transition.
Rafael Espindola [Thu, 12 Jun 2014 01:25:33 +0000 (01:25 +0000)]
Used mapWindowsError. I missed these in the initial transition.

llvm-svn: 210729

10 years agoRemove some low hanging fruit from system_error.h
Rafael Espindola [Thu, 12 Jun 2014 01:10:47 +0000 (01:10 +0000)]
Remove some low hanging fruit from system_error.h

llvm-svn: 210728

10 years agoErrno should use generic_category.
Rafael Espindola [Thu, 12 Jun 2014 00:57:40 +0000 (00:57 +0000)]
Errno should use generic_category.

Sorry, no testcase, just noticed while trying to remove llvm's system_error.h

llvm-svn: 210727

10 years ago[modules] Add first-draft module maps for Clang. These don't cover everything
Richard Smith [Thu, 12 Jun 2014 00:32:32 +0000 (00:32 +0000)]
[modules] Add first-draft module maps for Clang. These don't cover everything
yet, but they're enough for a clean bootstrap (with a few local patches that
are yet to be committed).

llvm-svn: 210726

10 years agoTry to fix the mingw build.
Rafael Espindola [Thu, 12 Jun 2014 00:24:39 +0000 (00:24 +0000)]
Try to fix the mingw build.

* MingW needs mapWindowsError.
* MingW is missing some entries in std::errc, but we don't use them.

llvm-svn: 210725

10 years agoDo not register and de-register PassRegistrationListeners during
Zachary Turner [Thu, 12 Jun 2014 00:16:36 +0000 (00:16 +0000)]
Do not register and de-register PassRegistrationListeners during
construction and destruction.

PassRegistrationListener is intended for use as a generic listener.
In some cases, PassRegistrationListener-derived classes were being
created, and automatically registered and de-registered in static
constructors and destructors.  Since ManagedStatics are destroyed
prior to program shutdown, this leads to errors where an attempt is
made to access a ManagedStatic that has already been destroyed.

Reviewed by: rnk, dblaikie

Differential Revision: http://reviews.llvm.org/D4106

llvm-svn: 210724

10 years agoPR19966: don't crash/assert when __underlying_type is applied to an incomplete
Richard Smith [Thu, 12 Jun 2014 00:01:45 +0000 (00:01 +0000)]
PR19966: don't crash/assert when __underlying_type is applied to an incomplete
enumeration type. I've also filed a LWG issue pointing out that this should be
ill-formed.

llvm-svn: 210723

10 years agoAccomodate for message differences on windows.
Rafael Espindola [Wed, 11 Jun 2014 23:53:06 +0000 (23:53 +0000)]
Accomodate for message differences on windows.

llvm-svn: 210722

10 years agoTeach LoopUnrollPass to respect loop unrolling hints in metadata.
Eli Bendersky [Wed, 11 Jun 2014 23:15:35 +0000 (23:15 +0000)]
Teach LoopUnrollPass to respect loop unrolling hints in metadata.

See http://reviews.llvm.org/D4090 for more details.

The Clang change that produces this metadata was committed in r210667

Patch by Mark Heffernan.

llvm-svn: 210721

10 years ago[FastISel][X86] Add support for the sqrt intrinsic.
Juergen Ributzka [Wed, 11 Jun 2014 23:11:02 +0000 (23:11 +0000)]
[FastISel][X86] Add support for the sqrt intrinsic.

llvm-svn: 210720

10 years ago[FastIsel][X86] Add support for lowering the first 8 floating-point arguments.
Juergen Ributzka [Wed, 11 Jun 2014 23:10:58 +0000 (23:10 +0000)]
[FastIsel][X86] Add support for lowering the first 8 floating-point arguments.

llvm-svn: 210719

10 years agoMulti-line expressions in Xcode now have a space between the line number and the...
Greg Clayton [Wed, 11 Jun 2014 23:10:41 +0000 (23:10 +0000)]
Multi-line expressions in Xcode now have a space between the line number and the expression text.

<rdar://problem/17238093>

llvm-svn: 210718

10 years agoDon't acquire the mutex during the destructor of PassRegistry.
Zachary Turner [Wed, 11 Jun 2014 23:03:31 +0000 (23:03 +0000)]
Don't acquire the mutex during the destructor of PassRegistry.

This destructor is run as part of static program termination, and
so all ManagedStatics (including this lock) will have been
destroyed by llvm_shutdown.  Furthermore, if there is actually
a race condition during static program termination, then we are
just hiding a bug somewhere else, because other threads should
not be running at this point.

llvm-svn: 210717

10 years agoImplement get_magic with generic tools and inline it.
Rafael Espindola [Wed, 11 Jun 2014 22:53:00 +0000 (22:53 +0000)]
Implement get_magic with generic tools and inline it.

llvm-svn: 210716

10 years agoDon't inherit dllimport to inline move assignment operators
Hans Wennborg [Wed, 11 Jun 2014 22:44:39 +0000 (22:44 +0000)]
Don't inherit dllimport to inline move assignment operators

Current MSVC versions don't have move assignment operators, so we
can't rely on them being available in the dll. If we have the
definition, we can just use that directly. This breaks pointer
equality, but should work fine otherwise.

When there is an MSVC version that supports move assignment,
we can key this off the -fmsc-ver option.

http://reviews.llvm.org/D4105

llvm-svn: 210715

10 years agoFix test build on windows.
Rafael Espindola [Wed, 11 Jun 2014 22:23:45 +0000 (22:23 +0000)]
Fix test build on windows.

llvm-svn: 210714

10 years agoDon't slice SemaDiagnosticBuilder
Reid Kleckner [Wed, 11 Jun 2014 21:57:15 +0000 (21:57 +0000)]
Don't slice SemaDiagnosticBuilder

I wasn't able to figure out how to emit this diagnostic from a SFINAE
context, so I don't have a test.

llvm-svn: 210713

10 years agoRemove unused has_magic.
Rafael Espindola [Wed, 11 Jun 2014 21:53:22 +0000 (21:53 +0000)]
Remove unused has_magic.

This will allow inlining get_magic, which should in turn fix one of the mingw
build problems after the switch to std::error_code.

llvm-svn: 210712

10 years agoMove Simple.h and Alias.h to include/Core.
Rui Ueyama [Wed, 11 Jun 2014 21:47:51 +0000 (21:47 +0000)]
Move Simple.h and Alias.h to include/Core.

Because the files in Core actually depend on these files.

Differential Revision: http://reviews.llvm.org/D4000

llvm-svn: 210710

10 years ago[FastISel][X86] Add support for the frameaddress intrinsic.
Juergen Ributzka [Wed, 11 Jun 2014 21:44:44 +0000 (21:44 +0000)]
[FastISel][X86] Add support for the frameaddress intrinsic.

llvm-svn: 210709

10 years agoFix the VS2012 build.
Hans Wennborg [Wed, 11 Jun 2014 21:24:13 +0000 (21:24 +0000)]
Fix the VS2012 build.

It didn't handle the in-class member initializer and compound literal.

llvm-svn: 210707

10 years agoObjective-C. Accept '__attribute__((__ns_returns_retained__))'
Fariborz Jahanian [Wed, 11 Jun 2014 21:22:53 +0000 (21:22 +0000)]
Objective-C. Accept '__attribute__((__ns_returns_retained__))'
for function/methods returning block in MRR mode as well.
// rdar://17259812

llvm-svn: 210706

10 years ago[AArch64] Basic Sched Model for Cortex-A57.
Chad Rosier [Wed, 11 Jun 2014 21:06:56 +0000 (21:06 +0000)]
[AArch64] Basic Sched Model for Cortex-A57.
Patch by Dave Estes<cestes@codeaurora.org>
Differential Revision: http://reviews.llvm.org/D4008

llvm-svn: 210705

10 years agoQuick fix for the windows build.
Rafael Espindola [Wed, 11 Jun 2014 21:04:06 +0000 (21:04 +0000)]
Quick fix for the windows build.

We have to look for both std::make_error_code as well as our overloads.

llvm-svn: 210704

10 years agoR600: Set correct InstrItinClass for instructions using *Helper classes
Tom Stellard [Wed, 11 Jun 2014 20:51:42 +0000 (20:51 +0000)]
R600: Set correct InstrItinClass for instructions using *Helper classes

We weren't doing this before, so all instruction using the *Helper
classes were considered for any ALU slot.

This fixes a hang in the builtin-char-clz-1.0.generated.cl piglit test.

llvm-svn: 210703

10 years agoR600: BCNT_INT is a vector only instruction
Tom Stellard [Wed, 11 Jun 2014 20:51:39 +0000 (20:51 +0000)]
R600: BCNT_INT is a vector only instruction

llvm-svn: 210702

10 years agoARM: honor hex immediate formatting for ldr/str i12 offsets.
Jim Grosbach [Wed, 11 Jun 2014 20:26:45 +0000 (20:26 +0000)]
ARM: honor hex immediate formatting for ldr/str i12 offsets.

Previously we would always print the offset as decimal, regardless of
the formatting requested. Now we use the formatImm() helper so the value
is printed as the client (LLDB in the motivating example) requested.

Before:
ldr.w r8, [sp, #180] @ always

After:
ldr.w r8, [sp, #0xb4] @ when printing hex immediates
ldr.w r8, [sp, #0180] @ when printing decimal immediates

rdar://17237103

llvm-svn: 210701

10 years agollvm-mc: Add option for prefering hex format disassembly.
Jim Grosbach [Wed, 11 Jun 2014 20:26:40 +0000 (20:26 +0000)]
llvm-mc: Add option for prefering hex format disassembly.

Previously there was a separate mode entirely (--hdis vs.
--disassemble). It makes a bit more sense for the immediate printing
style to be a flag for --disassmeble rather than an entirely different
thing.

llvm-svn: 210700

10 years agoRemove dev/null redirect and x86 backend requirement from new test.
Bob Wilson [Wed, 11 Jun 2014 20:19:07 +0000 (20:19 +0000)]
Remove dev/null redirect and x86 backend requirement from new test.

llvm-svn: 210699

10 years agogroup-cmd-search test is not supposed to pass on Windows.
Rui Ueyama [Wed, 11 Jun 2014 20:00:22 +0000 (20:00 +0000)]
group-cmd-search test is not supposed to pass on Windows.

llvm-svn: 210697

10 years agoAdd missing "non-constant" diagnostic for a member call on a temporary of
Richard Smith [Wed, 11 Jun 2014 19:53:12 +0000 (19:53 +0000)]
Add missing "non-constant" diagnostic for a member call on a temporary of
non-literal class type.

llvm-svn: 210696

10 years agoclang-cl: accept the /C option with /P (PR19978)
Hans Wennborg [Wed, 11 Jun 2014 19:44:53 +0000 (19:44 +0000)]
clang-cl: accept the /C option with /P (PR19978)

(It's also allowed with /EP, but we haven't implemented that option yet.)

llvm-svn: 210695

10 years agoRun new test with -fsyntax-only.
Bob Wilson [Wed, 11 Jun 2014 19:34:14 +0000 (19:34 +0000)]
Run new test with -fsyntax-only.

llvm-svn: 210693

10 years agoR600/SI: Fix bitcast between v2i32 and f64
Matt Arsenault [Wed, 11 Jun 2014 19:31:13 +0000 (19:31 +0000)]
R600/SI: Fix bitcast between v2i32 and f64

This is the same problem fixed in r210664 for more types.

The test passes without this fix. For some reason
I'm only hitting this when creating selects lowered
to v2i32 selects.

llvm-svn: 210692

10 years agoThe automated server-side process isn't quite right yet, so this is a newly-generated...
Aaron Ballman [Wed, 11 Jun 2014 19:11:24 +0000 (19:11 +0000)]
The automated server-side process isn't quite right yet, so this is a newly-generated attribute reference. Tanya is looking into the server process when she gets the chance.

llvm-svn: 210691

10 years agoObjective-C. More tests for both bridging attributes and
Fariborz Jahanian [Wed, 11 Jun 2014 19:10:46 +0000 (19:10 +0000)]
Objective-C. More tests for both bridging attributes and
a fix to make it work when CFStructs have no definition.
// rdar://17238954.

llvm-svn: 210690

10 years agoUse std::error_code instead of llvm::error_code.
Rafael Espindola [Wed, 11 Jun 2014 19:05:58 +0000 (19:05 +0000)]
Use std::error_code instead of llvm::error_code.

This is an update for a llvm api change.

llvm-svn: 210689

10 years agoUse std::error_code instead of llvm::error_code.
Rafael Espindola [Wed, 11 Jun 2014 19:05:55 +0000 (19:05 +0000)]
Use std::error_code instead of llvm::error_code.

This is an update for a llvm api change.

llvm-svn: 210688

10 years agoUse std::error_code instead of llvm::error_code.
Rafael Espindola [Wed, 11 Jun 2014 19:05:50 +0000 (19:05 +0000)]
Use std::error_code instead of llvm::error_code.

The idea of this patch is to turn llvm/Support/system_error.h into a
transitional header that just brings in the erorr_code api to the llvm
namespace. I will remove it shortly afterwards.

The cases where the general idea needed some tweaking:

* std::errc is a namespace in msvc, so we cannot use "using std::errc". I could
add an #ifdef, but there were not that many uses, so I just added std:: to
them in this patch.

* Template specialization had to be moved to the std namespace in this
patch set already.

* The msvc implementation of default_error_condition doesn't seem to
provide the same transformations as we need. Not too surprising since
the standard doesn't actually say what "equivalent" means. I fixed the
problem by keeping our old mapping and using it at error_code
construction time.

Despite these shortcomings I think this is still a good thing. Some reasons:

* The different implementations of system_error might improve over time.
* It removes 925 lines of code from llvm already.
* It removes 6313 bytes from the text segment of the clang binary when
it is built with gcc and 2816 bytes when building with clang and
libstdc++.

llvm-svn: 210687

10 years agoAdd some comments to TypoCorrectionConsumer.
Kaelyn Takata [Wed, 11 Jun 2014 18:33:46 +0000 (18:33 +0000)]
Add some comments to TypoCorrectionConsumer.

Also move the constructor for NamespaceSpecifierSet out of line to
improve the class' readability. I meant to do these two things while
cleaning up the previous TypoCorrectionConsumer changes and have them
folded into those changes.

No functionality changed.

llvm-svn: 210686

10 years ago[Reassociate] FileCheckize and cleanup a few testcases. No functional change
Chad Rosier [Wed, 11 Jun 2014 18:28:45 +0000 (18:28 +0000)]
[Reassociate] FileCheckize and cleanup a few testcases. No functional change
intended.

llvm-svn: 210685

10 years agoFix assert comments in Instruction.cpp.
Chad Rosier [Wed, 11 Jun 2014 18:26:29 +0000 (18:26 +0000)]
Fix assert comments in Instruction.cpp.

llvm-svn: 210684

10 years agoR600/SI: Update place using old subtarget predicate
Matt Arsenault [Wed, 11 Jun 2014 18:11:34 +0000 (18:11 +0000)]
R600/SI: Update place using old subtarget predicate

llvm-svn: 210683

10 years agoRestore select limitations comment for non-Apple platforms
Ed Maste [Wed, 11 Jun 2014 18:10:41 +0000 (18:10 +0000)]
Restore select limitations comment for non-Apple platforms

llvm-svn: 210682

10 years agoAdd gdb-remote P register write test.
Todd Fiala [Wed, 11 Jun 2014 18:09:01 +0000 (18:09 +0000)]
Add gdb-remote P register write test.

Added test that attempts to write a value to each general
purpose register that is bit-flipped from the initial read
value.  It then reads it back to see if it takes.

Right now I just assert that at least one register bit flip
write succeeds.  I added a note that on the MacOSX x86_64
debugserver case, the only writes that succeed from the GPR
set are rax thru rdx, rdi, rsi and rbp.  The failures are E32
failure-at-write-attempt issues on the debugserver end.
I'll revisit this after implementing in the llgs linux-x86_64 branch.
The packet log looks good but I may have a subtle mistake in the code.

llvm-svn: 210681

10 years agoR600/SI: Add common 64-bit LDS atomics
Matt Arsenault [Wed, 11 Jun 2014 18:08:54 +0000 (18:08 +0000)]
R600/SI: Add common 64-bit LDS atomics

llvm-svn: 210680

10 years agoR600/SI: Add instruction definitions for 64-bit LDS atomics
Matt Arsenault [Wed, 11 Jun 2014 18:08:50 +0000 (18:08 +0000)]
R600/SI: Add instruction definitions for 64-bit LDS atomics

llvm-svn: 210679

10 years agoR600/SI: Add 32-bit LDS atomic cmpxchg
Matt Arsenault [Wed, 11 Jun 2014 18:08:48 +0000 (18:08 +0000)]
R600/SI: Add 32-bit LDS atomic cmpxchg

llvm-svn: 210678

10 years agoR600/SI: Use LDS atomic inc / dec
Matt Arsenault [Wed, 11 Jun 2014 18:08:45 +0000 (18:08 +0000)]
R600/SI: Use LDS atomic inc / dec

llvm-svn: 210677

10 years agoR600/SI: Add other LDS atomic operations
Matt Arsenault [Wed, 11 Jun 2014 18:08:42 +0000 (18:08 +0000)]
R600/SI: Add other LDS atomic operations

llvm-svn: 210676

10 years agoR600/SI: Add instruction definitions for more LDS ops
Matt Arsenault [Wed, 11 Jun 2014 18:08:39 +0000 (18:08 +0000)]
R600/SI: Add instruction definitions for more LDS ops

llvm-svn: 210675

10 years agoR600/SI: Fix backwards names for local atomic instructions.
Matt Arsenault [Wed, 11 Jun 2014 18:08:37 +0000 (18:08 +0000)]
R600/SI: Fix backwards names for local atomic instructions.

The manual lists them as *_RTN_U32, not *_U32_RTN, which is more
consistent with how every other sized instruction is named.

llvm-svn: 210674

10 years agoR600/SI: Refactor local atomics.
Matt Arsenault [Wed, 11 Jun 2014 18:08:34 +0000 (18:08 +0000)]
R600/SI: Refactor local atomics.

Use patterns that will also match the immediate offset to
match the normal read / writes.

llvm-svn: 210673

10 years agoSink SpecifierInfo into the only class that uses it.
Kaelyn Takata [Wed, 11 Jun 2014 18:07:08 +0000 (18:07 +0000)]
Sink SpecifierInfo into the only class that uses it.

SpecifierInfo is not used outside of NamespaceSpecifierSet except
indirectly through NamespaceSpecifierSet's iterator, so clean up the
code a bit by moving SpecifierInfo into NamespaceSpecifierSet. Also drop
SpecifierInfo's trivial yet verbose constructor since brace
initiialization is sufficient in the only two places the constructor was
being explicitly called.

No functionality changed.

llvm-svn: 210672

10 years agoMake a couple of helper classes private to TypoCorrectionConsumer.
Kaelyn Takata [Wed, 11 Jun 2014 18:07:05 +0000 (18:07 +0000)]
Make a couple of helper classes private to TypoCorrectionConsumer.

The SpecifierInfo and NamespaceSpecifierSet are now only used by
TypoCorrectionConsumer, so treat them as the implementation details of
TypoCorrectionConsumer that they are. Also make NamespaceSpecifierSet's
method names more style guide compliant.

No functionality changed.

llvm-svn: 210671

10 years agoClean up the TypoCorrectionConsumer's interface a bit.
Kaelyn Takata [Wed, 11 Jun 2014 18:07:03 +0000 (18:07 +0000)]
Clean up the TypoCorrectionConsumer's interface a bit.

No functionality changed.

llvm-svn: 210670

10 years agoMove TypoCorrection filtering into the TypoCorrectionConsumer and make it incremental.
Kaelyn Takata [Wed, 11 Jun 2014 18:07:01 +0000 (18:07 +0000)]
Move TypoCorrection filtering into the TypoCorrectionConsumer and make it incremental.

The only external/visible functional change that fell out of this
refactoring is that there was one less case where the typo caching
and/or counting didn't work properly. The result is that a test case
had to be moved from typo-correction.cpp to typo-correction-pt2.cpp
to avoid the hard-coded limit on per file/TU typo correction attempts.

llvm-svn: 210669

10 years agoMove a few classes to be before TypoCorrectionConsumer.
Kaelyn Takata [Wed, 11 Jun 2014 18:06:56 +0000 (18:06 +0000)]
Move a few classes to be before TypoCorrectionConsumer.

This is in preparation for moving TypoCorrection filtering
into the TypoCorrectionConsumer, to separate out some of the purely
mechanical churn. It also makes some of the method names in
NamespaceSpecifierSet be more style guide compliant.

No functionality changed.

llvm-svn: 210668

10 years agoAdd loop unroll pragma support
Eli Bendersky [Wed, 11 Jun 2014 17:56:26 +0000 (17:56 +0000)]
Add loop unroll pragma support

http://reviews.llvm.org/D4089

Patch by Mark Heffernan.

llvm-svn: 210667

10 years agoR600/SI: Use v_cvt_f32_ubyte* instructions
Matt Arsenault [Wed, 11 Jun 2014 17:50:44 +0000 (17:50 +0000)]
R600/SI: Use v_cvt_f32_ubyte* instructions

This eliminates extra extract instructions when loading an i8 vector to
a float vector.

llvm-svn: 210666

10 years agoSmallVectorTest: Make the deleted member functions private to help MSVC users.
David Blaikie [Wed, 11 Jun 2014 17:50:14 +0000 (17:50 +0000)]
SmallVectorTest: Make the deleted member functions private to help MSVC users.

llvm-svn: 210665

10 years agoR600/SI: Fix selection failure on scalar_to_vector
Matt Arsenault [Wed, 11 Jun 2014 17:40:32 +0000 (17:40 +0000)]
R600/SI: Fix selection failure on scalar_to_vector

There seem to be only 2 places that produce these,
and it's kind of tricky to hit them.

Also fixes failure to bitcast between i64 and v2f32,
although this for some reason wasn't actually broken in the
simple bitcast testcase, but did in the scalar_to_vector one.

llvm-svn: 210664

10 years agoX86: add stringy name for X86ISD::LCMPXCHG16_DAG
Tim Northover [Wed, 11 Jun 2014 17:04:08 +0000 (17:04 +0000)]
X86: add stringy name for X86ISD::LCMPXCHG16_DAG

I don't know what "target specific node #383" is, and I don't want to
have to.

llvm-svn: 210663

10 years agoRevert r210613 to conform to coding standards.
Eric Christopher [Wed, 11 Jun 2014 16:59:33 +0000 (16:59 +0000)]
Revert r210613 to conform to coding standards.
Thanks Duncan for noticing.

llvm-svn: 210662

10 years agoAdd a FAQ section, with a question about why the std::exception class destructors...
Marshall Clow [Wed, 11 Jun 2014 16:54:09 +0000 (16:54 +0000)]
Add a FAQ section, with a question about why the std::exception class destructors live in libc++abi

llvm-svn: 210661

10 years agoObjective-C. Patch to handle bridge attribute warnings
Fariborz Jahanian [Wed, 11 Jun 2014 16:52:44 +0000 (16:52 +0000)]
Objective-C. Patch to handle bridge attribute warnings
correctly when both NSAttributedString and
NSMutableAttributedString are specified on the same
CFStruct via different typedefs. // rdar://17238954

llvm-svn: 210660

10 years agoImplement string_view from the library fundamentals TS (n4023). Also works in C+...
Marshall Clow [Wed, 11 Jun 2014 16:44:55 +0000 (16:44 +0000)]
Implement string_view from the library fundamentals TS (n4023). Also works in C++11 and 03, with reduced functionality (mostly in the area of constexpr)

llvm-svn: 210659

10 years ago[PPC64LE] Fix vec_sld and vec_vsldoi for little endian
Bill Schmidt [Wed, 11 Jun 2014 15:48:46 +0000 (15:48 +0000)]
[PPC64LE] Fix vec_sld and vec_vsldoi for little endian

The vec_sld and vec_vsldoi interfaces perform a left-shift on vector
arguments for both big and little endian.  However, because they rely
on the vec_perm interface which is endian-dependent, the permutation
vector needs to be reversed for LE to get the proper shift direction.

I've added some extra testing for these interfaces for LE in the
builtins-ppc-altivec.c.

llvm-svn: 210657

10 years ago[mips][mips64r6] Improve tests affected by the changes to multiplies and divides
Daniel Sanders [Wed, 11 Jun 2014 15:48:00 +0000 (15:48 +0000)]
[mips][mips64r6] Improve tests affected by the changes to multiplies and divides

Summary:
MIPS32r6/MIPS64r6 support has not been added yet.

inlineasm-cnstrnt-reg.ll:
  Explicitly specify the CPU since it will not work on MIPS32r6/MIPS64r6
  when -integrated-as is the default. We can't change the mnemonic since the
  LO register is an implicit def of mtlo and MIPS32r6/MIPS64r6 has no
  instructions that use LO.

2008-08-01-AsmInline.ll:
  Explicitly specify the CPU since MIPS32r6/MIPS64r6 will correctly emit
  different code and this is a regression test.

mips64instrs.ll and mips64muldiv.ll
  Check registers and the way the multiply is used in m1

divrem.ll
  Check registers and use multiple filecheck prefixes to limit redundancy

Reviewers: vmedic, jkolek, zoran.jovanovic, matheusalmeida

Reviewed By: matheusalmeida

Subscribers: matheusalmeida

Differential Revision: http://reviews.llvm.org/D3894

llvm-svn: 210656

10 years ago[asan] Fix mmap-ed coverage with coverage=0.
Evgeniy Stepanov [Wed, 11 Jun 2014 15:11:26 +0000 (15:11 +0000)]
[asan] Fix mmap-ed coverage with coverage=0.

llvm-svn: 210655

10 years ago[mips] Implement jr.hb and jalr.hb (Jump Register and Jump and Link Register with...
Matheus Almeida [Wed, 11 Jun 2014 15:05:56 +0000 (15:05 +0000)]
[mips] Implement jr.hb and jalr.hb (Jump Register and Jump and Link Register with Hazard Barrier).

Summary: These instructions are available in ISAs >= mips32/mips64. For mips32r6/mips64r6, jr.hb has a new encoding format.

Reviewers: dsanders

Reviewed By: dsanders

Differential Revision: http://reviews.llvm.org/D4019

llvm-svn: 210654

10 years agoAdd AVX512 masked leadz instrinsic support.
Cameron McInally [Wed, 11 Jun 2014 12:54:45 +0000 (12:54 +0000)]
Add AVX512 masked leadz instrinsic support.

llvm-svn: 210652

10 years agoclang-tidy: [use-override] Remove 'override' if 'final' is also present.
Daniel Jasper [Wed, 11 Jun 2014 12:18:24 +0000 (12:18 +0000)]
clang-tidy: [use-override] Remove 'override' if 'final' is also present.

Also, make warning more precise by distinguishing different cases.

llvm-svn: 210651

10 years ago[asan] Run Android test with asanwrapper.
Evgeniy Stepanov [Wed, 11 Jun 2014 10:37:06 +0000 (10:37 +0000)]
[asan] Run Android test with asanwrapper.

This better replicates the target environment.

llvm-svn: 210650

10 years ago[asan] Exclude non-executable mappings from coverage.
Evgeniy Stepanov [Wed, 11 Jun 2014 10:11:51 +0000 (10:11 +0000)]
[asan] Exclude non-executable mappings from coverage.

llvm-svn: 210649

10 years ago[Mips] Fix the bug -- symbol referred by the R_MIPS_TLS_GD relocation
Simon Atanasyan [Wed, 11 Jun 2014 10:08:08 +0000 (10:08 +0000)]
[Mips] Fix the bug -- symbol referred by the R_MIPS_TLS_GD relocation
does not get an entry in the dynamic symbol table.

llvm-svn: 210648

10 years ago[asan] One more coverage test.
Evgeniy Stepanov [Wed, 11 Jun 2014 09:23:25 +0000 (09:23 +0000)]
[asan] One more coverage test.

Test that coverage is dumped correctly (and completely) even when the processed
gets SIGKILL-ed.

llvm-svn: 210647

10 years ago[asan] Fix coverage-android test to avoid name conflict.
Evgeniy Stepanov [Wed, 11 Jun 2014 09:09:09 +0000 (09:09 +0000)]
[asan] Fix coverage-android test to avoid name conflict.

And re-enable it.

llvm-svn: 210646

10 years agoImprove the test for inlining of __no_debug__ functions.
Evgeniy Stepanov [Wed, 11 Jun 2014 08:46:45 +0000 (08:46 +0000)]
Improve the test for inlining of __no_debug__ functions.

llvm-svn: 210645

10 years ago[X86] Refactor the logic to select horizontal adds/subs to a helper function.
Andrea Di Biagio [Wed, 11 Jun 2014 07:57:50 +0000 (07:57 +0000)]
[X86] Refactor the logic to select horizontal adds/subs to a helper function.

This patch moves part of the logic implemented by the target specific
combine rules added at r210477 to a separate helper function.
This should make easier to add more rules for matching AVX/AVX2 horizontal
adds/subs.

This patch also fixes a problem caused by a wrong check performed on indices
of extract_vector_elt dag nodes in input to the scalar adds/subs.

New tests have been added to verify that we correctly check indices of
extract_vector_elt dag nodes when selecting a horizontal operation.

llvm-svn: 210644

10 years agoclang-format: Fix pointer/reference detection after decltype.
Daniel Jasper [Wed, 11 Jun 2014 07:35:16 +0000 (07:35 +0000)]
clang-format: Fix pointer/reference detection after decltype.

Before:
  [](const decltype(*a) & value) {}

After:
  [](const decltype(*a)& value) {}

llvm-svn: 210643

10 years agoMS ABI: Only class templates get complex nullptr pointer-to-member-functions
David Majnemer [Wed, 11 Jun 2014 07:08:37 +0000 (07:08 +0000)]
MS ABI: Only class templates get complex nullptr pointer-to-member-functions

r210637 regressed CodeGenCXX/mangle-ms-templates-memptrs.cpp because it
did not believe that there is a distinction between class templates and
function templates.

Sadly, there is.  Function templates should behave in a compatible
manner with MSVC.

llvm-svn: 210642

10 years agoCreate macro INITIALIZE_TM_PASS.
Jiangning Liu [Wed, 11 Jun 2014 07:04:37 +0000 (07:04 +0000)]
Create macro INITIALIZE_TM_PASS.

Pass initialization requires to initialize TargetMachine for back-end
specific passes. This commit creates a new macro INITIALIZE_TM_PASS to
simplify this kind of initialization.

llvm-svn: 210641

10 years agoGlobal merge for global symbols.
Jiangning Liu [Wed, 11 Jun 2014 06:44:53 +0000 (06:44 +0000)]
Global merge for global symbols.

This commit is to improve global merge pass and support global symbol merge.
The global symbol merge is not enabled by default. For aarch64, we need some
more back-end fix to make it really benifit ADRP CSE.

llvm-svn: 210640