Squashed 'src/libcxxabi/' changes from 48092cc..a69d4d9

a69d4d9 Allow LIBCXXABI_SINGLE_THREADED to be defined by build scripts
a3a836a Add missing include to a test case.
1469090 Make _Unwind_Backtrace() work on ARM.
66ffcf8 Remove strict dependency on llvm-config.
5252205 Add baremetal ARM support to libcxxabi/libunwind
3ac101d Improve logging of aborts for Android.
d223dfd libcxxabi must link to dl if using bundled unwind
95272d2 Fix the CMake build on Mac when setting MACOSX_DEPLOYMENT_TARGET=10.6

git-subtree-dir: src/libcxxabi
git-subtree-split: a69d4d917316e4123ec6510845d21ae53b3ecf45
Merge commit '911806ee077a949512ff7ae716f3ec42c6693668' into develop
Squashed 'src/llvm/tools/clang/' changes from dbea01e..5890667

5890667 clang-format: Add an option 'SpaceAfterCStyleCast'.
8291bea Allow a scoped lockable object to acquire/release multiple locks.
fd2dea5 [modules] Use DeclContext::equals rather than == on DeclContext* when determining whether a declaration is out of line, instead of assuming that the semantic and lexical DeclContext will be the same declaration whenever they're the same entity.
e9783b3 Reinstate "Update for llvm API change.""
5aa7b72 Fix up formatting.
5ba6a1a Avoid test failure on platforms where size_t is long long (and thus can't be directly written in strictly-conforming source code).
0a37d9b Add --analyze to clang-cl
aeb4113 Tests for DR550-572.
6fb7b46 Use /usr/bin/env python instead of /usr/bin/python.
9d62ff5 Don't indent inside a namespace.
9ce674a Don't allow lambdas to capture invalid decls during template instantiations.
f2ced52 Fixing a typo in the documented __builtin_convertvector example.   "vf[0]" ==> "vs[0]"
8634605 Fix for LLVM API change to SpecialCaseList::create
48ec7e0 Test cleanup: move CHECK close to code.
03a41d05 Frontend: Reindent Opts.CoverageFile
f530c8f MS ABI: Reindent MicrosoftCXXABI::GetVirtualBaseClassOffset
ee9528a Typo fix, no functionality change.
3532641 clang/test/CXX/drs/dr5xx.cpp: Suppress dr547 for targeting MSVC x86 for now, due to incompatibility of attribute(thiscall).
8128cd2 cxx_status: we did support some of C++14 in Clang 3.3.
4b79c4d cxx_status: the name C++14 isn't provisional any more.
4ba8e62 Tests for DR525-550.
4bfbecd clang/test/CodeGenCXX/debug-info-access.cpp: Use %itanium_abi_triple to appease msvc. "[def] [free]" can be seen in different order.
4b9bebf Fix some cases where StringRef was being passed by const reference. Remove const from some other StringRefs since its implicitly const already.
d39a2d4 Use llvm::makeArrayRef instead of explicitly calling ArrayRef constructor and mentioning the type. This works now that we have a conversion from ArrayRef<T*> to ArrayRef<const T*>.
62c1122 Cleanup test.
3b96126 [modules] Fix deserialization cycle when loading a tag declaration with a typedef name for linkage purposes. When loading the type, delay loading its typedef until we've finished loading and merging the type. In its place, save out the name of the typedef, which we need for merging purposes.
0f8d38e7 Cleanup the test a bit. It was too dependent on the output order.
bfb9ad3 Debug info: Only emit C++ accessibility specifiers when they are diverging from the default for the containing type.
b9e46e3 Add some missing test coverage for merging 'extern "C"' functions with modules.
a038916 Fix my broken test cases.
2b60267 unique_ptrify PTHManager's PerIDCache using the newly added llvm::FreeDeleter
e648918 unique_ptrify some parameters to PTHManager::PTHManager
b92e1a5 Fixup for r216763. Add a driver test.
8060f16 Make all virtual member pointers use variadic musttail calls
486ef7c Fix for PR20660, where unexpanded parameter pack in function parameter clause causes clang to crash.
78943f9 Add a comment, no functional change.
8a7de8a Objective-C [qoi]. If property is going to be implemented in the super class, do not issue the warning about property in current class's protocol will not be auto synthesized. // rdar://18179833
6626cf2 unique_ptrify the raw_ostream argument to clang::serialized_diags::create
bf9c0da unique_ptrify clang::ento::createCheckerManager
805714a unique_ptrify PathDiagnosticConsumer::HandlePathDiagnostic
44323db Add an option to silence all analyzer warnings.
bacd216 unique_ptrify thep passing of BugReports to BugReportEquivClass
38717be unique_ptrify HeaderMap::FileBuffer
a70a52b unique_ptrify Preprocessor's TokenLexerCache
c2cb99d unique_ptrify the result of CFG::buildCFG/CFGBuilder::buildCFG
6c274d4 unique_ptrify the diagnostics in CXDiagnosticSetImpl
b1585c8 Objective-C. Tweak diagnosing properties that are not auto-synthesized. Do not warn when property declared in class's protocol will be auto-synthesized by its uper class implementation because super class has also declared this property while this class has not. Continue to warn if current class has declared the property also (because this declaration will not result in a 2nd synthesis). rdar://18152478
f990758 unique_ptrify PathDiagnostic::setEndOfPath's argument
8b29c79 unique_ptr-ify PathDiagnosticPiece ownership
49397c5 Check in a test case for the problem with late-dropped dllimport (PR20803)
05f50c3 One other BuryPointer of a unique_ptr cleanup.
680b6c0 Provide a BuryPointer for unique_ptrs.
93fef8f unique_ptrify Directives in VerifyDiagnosticConsumer
968597c clang-format: Fix unary operator detection in corner case.
10a6347 ASTMatchers: Replace some copies of the bound nodes tree builder with moves.
220fdf4 Use store size instead of alloc size when coercing.
f698366 unique_ptrify SourceManager::createFileID
5630e0f CodeGen: Don't completely mess-up optimized atomic libcalls
f11dfe0 unique_ptrify Driver Action handling
a0a1a1e Improve unique_ptr-y ownership in ASTUnit::ComputePreamble
1e65841 Use llvm::makeArrayRef instead of explicitly calling ArrayRef constructor and mentioning the type. This works now that we have a conversion from ArrayRef<T*> to ArrayRef<const T*>.
6b75de1 unique_ptrify clang::BackendConsumer::takeModule
a29d00b call __asan_load_cxx_array_cookie when loading array cookie in asan mode.
4d4cf7d Introduce -DLLVM_USE_SANITIZER=Undefined CMake option to build UBSan-ified version of LLVM/Clang.
d4a1ae3 Better codegen support for DLL attributes being dropped after the first declaration (PR20792)
efc6cb2 Don't create a null reference in ASTUnit::LoadFromCommandLine.
cdfa631 Don't load invalid enum value in Sema::LazilyCreateBuiltin.
63fa056 Don't load ill-formed AmbiguityKind in Sema::Lookup.
3148d46 Properly align inline space for ImplicitConversionSequences in OverloadSet.
232eaaf Don't create a null reference to NestedNameSpecifier.
52fc295 Call powerpc-darwin external tools with -arch ppc.
1d5d575 Oops, use correct RUN: line for test.
2085b8b [modules] PR20786: add (already passing) regression test from the bug report.
67be089 Reverting r216675. This breaks some bots. Before this can be committed again, I have to explore runtime ABI requirements with libc++abi.
327ee9c Objective-C IRGen. Fixes an assertion crash caused by inconsistent linkage related to generation of OBJC_SELECTOR_REFERENCES symbol needed in generation of call to 'super' in a class method. // rdar://18150301
1c99038 Throw a std::bad_array_new_length exception when the expression (or constant-expression) passed to operator new[] results in overflow in conformance with [expr.new]p7. Fixes PR11644.
d2cac94 Cache the memoization data for DynTypedNodes.
b374ac9 arm_acle: Fix error in ROR implementation
b762185 [CMake] clangStaticAnalyzerFrontend: Add clangLex, corresponding to r216550.
e6e29e4 [ARM] Change default ABI for AArch32 to be "aapcs" (was "apcs-gnu")
0c331cf arm_acle: Implement data processing intrinsics
a380138 Fixed test compatibility with MSVC codegen.
f132337 [modules] When completing the redecl chain for an anonymous declaration in a merged context, pull in the lexical decls in that context, since one of them may complete the redecl chain.
51be7a6 [C++11] Support for capturing of variable length arrays in lambda expression. Differential Revision: http://reviews.llvm.org/D4368
9dfdd2d During cross field uninitialized checking, when processing an assignment, don't mark the field as initialized until the next initializer instead of instantly.  Since this checker is AST based, statements are processed in tree order instead of following code flow.  This can result in different warnings from just reordering the code.  Also changed to use one checker per constructor instead of creating a new checker per field.
6af28e5 [modules] Number anonymous declarations that are lexically within mergeable contexts, so that we can merge them when we merge the surrounding context.
cc33d8f Properly handle multiple nonnull attributes in CodeGen
dd59aef Kill one of EmitCallArgs overloads. NFC.
55d9ed0 [modules] Add an assert that we properly manage the IsCompleteDefinition flag on CXXRecordDecls when merging definitions, and make it pass by not trying to save and restore this flag across AST serialization/deserialization. For CXXRecordDecls, we have a separate mechanism to manage this.
f1967c9 PR20769: Fix confusion when checking whether a prior default argument was in scope when checking for conflicts.
9b25aa4 More -Wuninitialized updates
f0d0b64 Query CompilationDatabase right before running each compilation.
eaf4ee9 Allow adding dll attributes on certain redecls with a warning if the decl hasn't been used yet (PR20746)
926a507 Overload SourceManager::overrideFileContents so that unconditionally passing ownership is explicitly done using unique_ptr.
c8df857 Objective-C. Change to method lookup rules to look into primary class's named categories before looking into their protocols. This is because categories are part of the public interface and , just as primary class, preference should be given to them before class (and category) protocols.  // rdar://18013929
d92e74d Update for LLVM api change.
6340041 Add tests for variadic functions versus attribute nonnull in the static analyzer.
ab16e63 Update for llvm API change.
585339c Fix regression in r216520: don't apply nonnull to non-pointer function parameters in the IR.
7c1ac19 Fix PR20773 which I introduced with a silly edit mistake in r216531. Trivial fix, and I've made the gentoo tests more representative. With the changes, they would have caught this failure.
18480ea clang-format: Address review comments of r216501.
4544002 Call ResolveExceptionSpec for non-OdrUsed functions.
fa0908f Objective-C. When multiple nullary selectors are found in global pool in the course of method selection for a messaging expression, select one with the most general return type of 'id'. This is to remove type-mismatch warning (which is useless) as result of random selection of method with more restrictive return type. rdar://18095772
8fd4641 Allow __fp16 as a function arg or return type for AArch64
3950cc8 Quick fix to test/CodeGen/2007-06-18-SextAttrAggregate.c for x86_64-mingw32, corresponding to r216507.
7a41da6 Use unique_ptr instead of OwningPtr.  I'm not certain how this compiled.
fdf0d35 Add support for the static analyzer to synthesize function implementations from external model files.
702b970 clang-format: Fix regression in formatting of braced initializers.
2269a20 Move some ARM-specific code from CGCall.cpp to TargetInfo.cpp
3e07ebf [asan] Restore asan-rt name on linux back to pre-r216380.
08b8fe7 Significantly fix Clang's header search for Ubuntu (and possibly other modern Debian-based distributions) due to on-going multiarch madness.
bbac840 Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created.
6504f57 Fix some cases were ArrayRefs were being passed by reference.
9493495 Refactor one of the larger functions for Type Diffing into smaller functions. No functionality change.
faac93d Driver: Restore -fkeep-inline-functions as an ignored flag
2a1084c Fix representation of __attribute__((nonnull)) to support correctly modeling the no-arguments case. Don't expand this to an __attribute__((nonnull(A, B, C))) attribute, since that does the wrong thing for function templates and varargs functions.
104bc91 Change a few methods to static methods.  No functionality change.
ef86fa4 PR20760: Don't assert (and produce better diagnostics) if a default initializer contains an unmatched closing bracket token.
ab63684 Refactor the diagnostic DeclContext printing.  No functionality change.
0f8328b ClangCodeGenTests: Prune redundant libdeps.
a30cfc7 [CMake] ClangCodeGenTests: Add Core. It's referenced by the test.
2a3b818 ClangCodeGenTests: Reorder libdeps.
14eec94 ClangCodeGenTests: Quick fix to USEDLIBS. clangCodeGen requires, at least, AST, Basic, Frontend, and Lex.
404d524 Re-apply r216491 (Win64 ABI shouldn't extend integer type arguments.)
2b3310f Fix missing component.
e1b1adc [modules] Don't assert when merging virtual functions that override other functions. Also don't needlessly pull in non-canonical declarations of the overridden virtual functions.
3c002de clang-format: Don't butcher __asm blocks.
f839645 Attempt to address cmake buildbot failure
7db5421 Revert 216491, it breaks CodeGenCXX/microsoft-abi-member-pointers.cpp
6cc1c22 Don't segfault in EmitCXXGlobalInitFunc when main file is a membuf
1b4975f Update for llvm api change.
3d0984b2 Win64 ABI shouldn't extend integer type arguments.
a3d81725 Clarify comment so this doesn't appear to be a C11-only rule.
cfa7a9e Update for llvm api change
63823de revert patch r216469.
bf2ef3e [libclang] Fixup the cursor spelling range for C++ destructors, operator overloads, and conversion functions.
73945fa Fix an incorrect assert condition added in r216410.
50f7732 Return a std::unique_ptr from getBufferForFile. NFC.
2ace02a Ignore -fdevirtualize and -fdevirtualize-speculatively for gcc compat
490fd36 Return a std::unique_ptr from getBufferForFile. NFC.
8188b32 [test/CodeGen/ARM] Update arm_neon_intrinsics test case to actually test the lowering of the intrinsics. Prior to this commit, most of the copy-related intrinsics could be optimized away. The situation is still not ideal as there are several possibilities to lower a given intrinsic. Currently, we match LLVM behavior.
bffbc2a Convert MC command line flag for fatal assembler warnings into a proper flag.
1bd3f74 c11- Check for c11 language option as documentation says feature is c11 about nested struct declarations must have struct-declarator-list. Without this change, code which was meant for c99 breaks. rdar://18125536
3755e27 Update for llvm api change.
f24ba61 Switching from std::vector to llvm::ArrayRef per post-commit review suggestion.
26380cd Some versions of MSVC do not support initializer list construction of vectors, so this fixes a broken build from r216385.
8839624 This test was updated in r216397, but was failing on Windows due to mixed path separators as well as case sensitivity of the "no" in "no such file or directory." Rather than revert this file back to its original form, I've made some incredibly ugly regexes so that it will pass everywhere.
e2b32bc arm_acle: Add mappings for dbg intrinsic
982f0de ARM: Add dbg builtin intrinsic
4b30eb6 clang-format: New option SpacesInSquareBrackets.
94705ef [ASan/Win] Add an extra thunk.lib to handle stack-use-after-return option
ae401c8 arm_acle: Implement swap intrinsic
655e70b clang-format: Improve handling of block comments in braced lists.
f53535a Passing a variable to std::move now counts as a use for -Wuninitialized
d12f6af [modules] Track the described template in an alias declaration that is the pattern of an alias template declaration. Use this to merge alias templates properly when they're members of class template specializations.
ef90791 [clang/asan] call __asan_poison_cxx_array_cookie after operator new[]
eac3c8c Fix typo.
324487e Pass actual CXXConstructExpr instead of argument iterators into EmitSynthesizedCXXCopyCtorCall. No functionality change.
effffaa Objective-C. Allow [super initialize] in an +initialize implementation but not anywhere else. rdar://16628028
884375b Objective-C modernization. Convert -initWithUTF8String messaging with auto-boxing syntax for literals. rdar://18080352
8eae4ca Pass actual CallExpr instead of CallExpr-specific iterators into EmitCXXMemberOrOperatorCall methods. In the end we want to make declaration visible in EmitCallArgs() method, that would allow us to alter CodeGen depending on function/parameter attributes.
97b51af Update for llvm api change.
79adaa2 ASTVector: Fix return value of various insert() methods.
8942b6d Follow-up to r216380: update test expectations
1707621 [ASan] Rename the ASan dynamic RT
ccbd7ae Add hasAttr matcher for declarations.
89692cc clang-format: Understand sequenced casts.
9ec9028 clang-format: Improve formatting of nested builder-type calls.
708e338 Use range based for loops to avoid needing to re-mention SmallPtrSet size.
5780abe [modules] Fix false report of an ODR violation when merging friend declarations. We can't expect to find them in the canonical definition of the class, because that's not where they live.
1ed7bfb PR20716 - Crash when recovering from type in known dependent base.
8b2795c Frontend: unique_ptr-ify
a558d58 Move __vector long deprecation checking into DeclSpec::Finish
041b099 Implement __builtin_signbitl for PowerPC
852eed5 Don't assert on different DLL attributes in template and explicit instantiation (PR20137)
707e27b Add another test for DLL attribute inheritance to partial specializations
4b032fe Fix CodeGenCXX/dllexport.cpp test. Somehow this slipped out of my previous commit.
5148a69 MS ABI: Inherit DLL attributes to partial class template specializations
9c6a477 checkDLLAttribute: remove a redundant dyn_cast
c3209c1 CodeGen: Skip unnamed bitfields when handling designated initializers
63f1f83 [modules] When merging a tag declaration that has a typedef name for linkage purposes, look for other typedefs with that same name and merge into their named tag declaration if there is one.
309e8e9 [modules] Put class template declarations into the scope in which they're declared, rather than putting them into the template parameter scope. We previously had *no record* in the scope for class template declarations, once those declarations completed and their template parameter scopes were popped. This in turn caused us to be unable to merge class template declarations that were declared in the global scope (where we use scope lookup rather than DeclContext lookup for merging), when loading a module.
a8c7afe Fix a bad location in -Wparentheses fix-it hint
024d9c6 Objective-C. Warn when @encode'ing provides an incomplete type encoding because in certain cases, such as for vector types, because we still haven't designed encoding for them. rdar://9255564
91d7339 DebugInfo: Test that the loop backedge in a range-for is attribute to the loop header.
5ed8161 DebugInfo: for loop backedge should be attributed to the start of the for statement.
b7bb8d9 Clear the clang release notes to make room for 3.6.
dce8b37 DebugInfo: Provide scopes for C++11 range-for loop variables similar to r216288 (which was for plain-for loop condition variables).
f256e04 DebugInfo: Scope for condition variables more narrowly than the loop variable.
9375a83 Ignore -Wunsupported-dll-base-class-template by default
7d38fcd Objective-C. Update my previous patch to not warn if +initialize is called on 'super' in its implementation. rdar://16628028
78c5ce7 Fix PR17239 by changing the semantics of the RemainingArgsClass Option kind
006f3ae [test/CodeGen/ARM] Adpat test to match new codegen after r216274. Moreover, rework some patterns to actually check the emitted instructions instead of matching unrelated string!
1292e09 [analyzer] Remove check covered by -Wobjc-missing-super-calls.
99ef95c Objective-C. Warn if user has made explicit call to +initilize as this results in an extra call to this method. rdar://16628028
703e007 -fms-extensions: Alias _intNN to __intNN
53c7267 Fixing MSVC warning: "warning C4373: 'blah': virtual function overrides 'blah', previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers."
dfc0ac7 [AArch64, inline-asm] Improve diagnostic that is printed when the size of a variable that has regiser constraint "r" is not 64-bit.
7276d2d MS ABI: Don't use the Itanium scheme for numbering lambdas
ca36cf5 Fix PR20705, crash on invalid.
039fc1e CGCall: Factor out the logic mapping call arguments to LLVM IR arguments.
b5dca5b [test/CodeGen/ARM] Adpat test to match new codegen after r216236.
71f992a Update for LLVM API change to remove discriminator tracking from DILexicalBlock (in favor of DILexicalBlockFile - where a default arg is used to avoid the need for API churn of those callers)
9c865a8 Update Clang for LLVM API change to use unique_ptr in SourceManager::AddNewSourceBuffer
16169e7 Return statements are initialization; don't forget to revert the initializer to its syntactic form before re-analyzing it during template instantiation.
10c57ce Simplify this logic now that -W can't be applied to remarks. No functionality change.
21b45ea Fix grammatical error in diagnostic.
4152ff7 Pass expressions instead of argument ranges to EmitCall/EmitCXXConstructorCall.
3f1e549 Coverage Mapping: store function's hash in coverage function records.
c7bc814 Refactor TLI creation. NFC.
342ba4c Objective-C. Recover from missing interface decl. and checking on availability of method declaration instead of crashing. // rdar://18059669
89699bf Range'ify some for loops over RecordDecl::fields()
19854c0 R600: Implement getPointerWidthV()
57bf16b R600: Add processor type for hainan
a528c6a Driver: Implement -cl-denorms-are-zero
ab704bc [analyzer] Don't warn on virtual calls in ctors to final methods.
ef943a9 Fix invalid test generation by utils/ABITest/ABITestGen.py when the same enum is generated more than once.
aeb085d MS ABI: Don't always instantiate all members of dllexported class templates (PR20163)
d284ced test/CodeGenCXX/dllexport.cpp: don't instantiate templates in USEMEMFUNC macro
114cb5f [test] Turn off warnings for test/Analysis/identical-expressions.cpp.
b9d3f06 Test: CoverageMapping: use "RUN: FileCheck" command instead of "RUN: cat | Filecheck".
fd55f56 Coverage mapping: fix mapping for objective-c for statement
82aa23b Coverage mapping: fix mapping for objective-c message expression
50e819a [analyzer] UnixAPI: Check that the third argument to open(2) (if present) is an integer.
820e69f [analyzer] UnixAPI: Check when open(2) is called with more than three arguments.
8ecdd0a [analyzer] IdenticalExpr: don't try to compare integer literals with different widths.
ef75d13 [analyzer] IdenticalExpr: use getBytes rather than getString to compare string literals.
b9f1d9e Objective-C [qoi]. Provide fix-it hint when sending class method to an object receiver. rdar://16263395
fa39a24 Handle SPARC float command line parameters for SPARCv9.
6aa083d Test: Coverage Mapping: add missing RUN commands
4905e06 Add tests for coverage mapping generation.
6ae7057 ext_vector IRGen. Patch to allow indexing into ext_vector_type's 'hi/lo' components when used as lvalue. rdar://18031917 pr20697
fbc9c9f C++1y is now C++14!
9a90ce5 Move the body out of line to try to fix a buildbot.
932979d Go back to having a takeModule instead of a getModule.
4e6916ab [OPENMP] Extract common superclass from all the loop directives. No functional changes (having common superclass is convenient for future loop directives CodeGen implementation)
194c27f MS ABI: Update alias template mangling for VC "14" CTP 3
82abc10 Update for llvm api change.
9adb1ed Add a warning flag for an existing diagnostic.
8312572 Update link strategy for sanitizer runtime libraries on Linux:
6dc4e613 Fix the rececl chain for redeclarations of predefined decls
e95b2a0 Store std::unique_ptr in InMemoryBuffers. NFC.
623a4f4 return a std::unique_ptr from getMainBufferWithPrecompiledPreamble. NFC.
0e34c9f Use std::unique_ptr to simplify this code a bit.
3bc6e60 Inline function into only use.
2166e87 Simplify ASTUnit::Parse a bit by passing a std::unique_ptr to it.
745e15c [x32] Handle -m64/-m32 switches by Driver in x32 mode
25d2ffa Fix a memory leak in one of the test unit. Silent coverity warning CID 1095912
01af2ae Add the break in the switch case (even if there is llvm_unreachable. It will silent coverity warning CID 1231654
09163b8 Update the call to llvm::sys::fs::UniqueID to match the definition: UniqueID(uint64_t Device, uint64_t File) Fixes CID 1095247
effa2bc Repace SmallPtrSet with SmallPtrSetImpl in function arguments to avoid needing to mention the size.
329d3b8 Use the pointer-like API of ErrorOr.
7b34374 Create a std::unique_ptr earlier.
e4b06e9 Use std::unique_ptr in a few methods that take ownership.
783cea4 Update for llvm api changes.
86925f9 Convert a few ownership comments with std::unique_ptr.
ad67cbb Do not rely on bin/ path prefix in tests.
61f219b Add a test for -no-canonical-prefixes.
b7c04bc Fix assertion on asm register that are "%"
0606cf7 Uniformed parsing of GNU attributes at line beginnning and added GNU attributes parsing FIXMEs.
76ef35d When loading a module with no local entities, still bump the size of the
a11b69c Clarify.
8bb346b Try indenting to put all the text inside the block.
c2842d5 Document what's experimental about __attribute__((enable_if)). PR20392
2fd1ed4 [libclang] Introduce clang_File_isEqual for comparing CXFile handles.
95c7500 Revert "Update for LLVM change (StringSaver)"
4a38c1f Make sure that vtables referenced from delay-parsed templates get referenced.
170ebf4 Update for LLVM change (StringSaver)
aa5769f Add a RAII class for saving and restoring instantiations and uses. No behavior change.
cd2512d Wrap to 80 columns, no behavior change.
6871abb Rename as suggested by dblaikie
e0b8ba1 ArrayRef'ize
fcd34fd DebugInfo: While loop backedge should be attribute to the start of the while statement.
a38374b Rename this function to better reflect its purpose
c733e27 DebugInfo: Fix PR19864 better - attribute the jump at the end of a range-for loop, to the start of the loop.
3a9d3ba Typo fix in comments: definintion -> definition
aa25811 [cleanup] Rename this function to better reflect its purpose. NFC.
731b3be [cleanup] Range-for'ify this loop. NFC.
df3ecd5 [cleanup] Factor out handling CC1 tools. NFC.
865561c Add missing matchers to the dynamic registry.
50b1cd7 [cleanup] Factor out setting the driver's install dir. NFC.
a0a6177 [cleanup] Factor out initializing the DianosticOptions. NFC.
3b5494b [cleanup] Factor out adjusting "cl.exe" to "clang-cl.exe". NFC.
0f3db83 [cleanup] Factor out some checks. NFC.
bcc4095 MS ABI: Virtual member pointer thunks are not unnamed_addr
a1fb0dd R600: Add ldexp intrinsic
34db924 Objective-C. Do not warn if user is using property-dox syntax to name a user provided setter name (as declared in @property attribute declaration). rdar://18022762
be9f08f Move some code into a helper function. NFC.
9a9dbd8 Use a valid arch name in this triple.
35211d0 Add isDeleted() matcher for FunctionDecl nodes.
bb74ef4 Const-correctness, return-after-else, and formatting updates. NFC.
d23589f There are no overloads of this virtual function, nor are there any callers of it. NFC.
547f9d8 Adding const-qualifiers to auto declarations. NFC.
60ea804 arm_acle.h: Small cleanup
aa20405 clang-format: Prefer breaking after return type over template param
782b0db clang-format: [proto] Understand text-format nesting without :
8444ae7 Make sure CallExpr::getLocStart doesn't segfault
99af5d6 Limit our MSVC compat hack for nested names from dependent bases
8e928eb Thread Safety Analysis:  Move -Wthread-safety-negative out of the -Wthread-safety umbrella flag, pending updates to documentation.  The flag works, but is likely to be confusing to existing users of -Wthread-safety.
1fb5438 Use a switch statement for IsIntegratedAssemblerDefault().
2974801 Thread safety analysis: add -Wthread-safety-verbose flag, which adds additional notes that are helpful when compiling statistics on thread safety warnings.
cc1aa26 [modules] Turn off a broken optimization: we need to pick up implicit special members from all redefinitions of a class that have them, in case the special member is defined in one module but only declared in another.
8ca5957 Don't Lex past EOF when lexing _Pragma
b95f6d5 Thread Safety Analysis: fix to improve handling of references to guarded data members and range based for loops.
66cf4e3 Use the big endian emulations for NetBSD/arm in EB mode.
42a4388 [AVX512] Add FMA intrinsics
8e28c57 Use the proper post-order traversal in LiveVariables analysis, to recover the performance after r214064.
fccd6cc Revert "CodeGen: When bitfields fall on natural boundaries, split them up"
7e5485c Delete support for AuroraUX.
13f22e6 Split a large unit-test, so that it doesn't exceed stack frame size in certain test environments
078a00c clang-format: Fix AlwaysBreakAfterDefinitionReturnType in Stroutrup style
4230ae8 clang-format: Support chained dereferenced assignments.
0982555 clang-format: Support breaking arguments of function type typedefs.
bd8060f Fix a crash when compiling blocks in OpenCL with multiple address spaces.
bbd242e Parse: Don't attempt to act on #pragma init_seg when not targeting MSVC
e3a8218 [modules] Factor .td-generated diagnostics stuff out into its own module; this avoids users of AllDiagnostics.h from needing to pregenerate *all* generated headers. Hopefully this will make my modules buildbot happier...
688e6c5 [modules] Don't assert if the same imported class template specialization declaration has its definition instantiated in two sibling modules and they use a partial specialization.
12d8791 CodeGen: When bitfields fall on natural boundaries, split them up
f2e6053 [modules] When we merge together multiple class template specialization definitions (because some other declaration declares a special member that isn't present in the canonical definition), we need to search *all* of them; we can't just stop when we find the requested name in any of the definitions, because that can fail to find things (and in particular, it can fail to find the member of the canonical declaration and return a bogus ODR failure).
30c1301 Sema: Permit nullptr template args in MSVC compat mode
30f2e7a clang/test/Modules/cxx-irgen.cpp: Let it tolerant of x86_thiscallcc.
c1100c1 Simplify some CodeGenTypes::arrangeXXX functions. No functionality change
cd21fe6 Objective-C. Handle case of multiple class methods found in global pool as well. rdar://16808765
32756ad Whitespace fix.
56b7cd4 ARM: Add mappings for ACLE prefetch intrinsics
e8b31f1 clang/test/Index/index-module.m: Tweak expressions to meet dos path on win32.
11f792a test/CodeGen: Don't rely on a value's number in check lines
dc812ef Objective-C. Minor refactoring of my last patch. // rdar://16808765
679b2ef [modules] Fix a rejects-valid resulting from emitting an inline function recursively within the emission of another inline function. This ultimately led to us emitting the same inline function definition twice, which we then rejected because we believed we had a mangled name conflict.
7cdaec7 Objective-C. This patch is to resolve the method used in method expression to the best method found in global method pools. This is wip.  // rdar://16808765
8d4cf9b Simplify a few loops over CallArgList/FunctionArgList. NFC
6b0c23e AArch64: Prefetch intrinsic
e68984a ARM: Prefetch intrinsics
854a022 Revert what looks like an unintended change in r215557.
9cda133 Small cleanup: Don't duplicate default behavior.
48bd217 Use std::unique_ptr to simplify memory management a bit.
7b36de5 Header guard canonicalization, clang part.
e216a3b Work around missing handling of temporaries bound to default arguments.
f9b3fc3 [Driver] Support -muclibc / -mglibc command line options for a couple of MIPS toolchains.
0608843 For NetBSD, use the same settings for PPC64 as for PPC when it comes to integrated assembler, libc++ and libgcc. Set emulation for ld for both platforms for correct -m32 handling.
7c643eb Fix crasher bug in clang-format.
c16172f Default getFile() to use the last accessed name in the FileEntry.
b3fae3d Emit diagnostic for -munaligned-access on v6m targets
fef3e20 clang-format: Format long lists in columns if without bin-packing.
3ed303a clang-format: Understand #defines defining system includes.
8402429 PR20634: add some more cases that can legitimately come after a struct declaration to our list of special cases.
bf6143f [modules] When performing a lookup into a namespace, ensure that any later redefinitions of that namespace have already been loaded. When writing out the names in a namespace, if we see a name that is locally declared and had imported declarations merged on top of it, export the local declaration as the lookup result, because it will be the most recent declaration of that entity in the redeclaration chain of an importer of the module.
ad059a3 [AVX512] Add intrinsics for FP scalar broadcasts
e971bd3 [UBSan] Add returns-nonnull sanitizer.
7c33b61 Objective-C [qoi]. Patch to not do Fix-It for fixing a messaging expression except in the simple case of a unary selector. We cannot reliably provide such a fixit due to numerous reasons where a matching selector could not be found. rdar://15756038
fc064f8 Fix the \param comments to have the parameter name.
ff09fa4 Support named values in the autocomplete feature.
4443509 Improve -Wuninitialized to catch const classes being used in their own copy constructors.
4d0e9cd MS ABI: Mangle this qualifiers on function types
58c713a [analyzer] Check for negative values used as the size of a C variable-length array.
5ddbece Verify all the module map files for a pcm are the same on load
d54ba51 Add a module cache path to test/Headers/cxx11
17735d7 Allow @synchronized to contextually convert a C++ object to an ObjC object pointer.
b452261 Objective-C. Fixes an assert where because of captured variable in block is over-aligned with an align attribute causing block metadata size not be multiple of alignment. rdar://17878679
1cb6d93 Use StringRef instead of MemoryBuffer&.
9db16bf Adding some test cases to test attribute-related source range diagnostics. This augments r214722, r214723 and r214507.
c80b428 Add documentation on how Language option in .clang-format files work.
cd177b1 clang-format: Avoid bad line break.
04f9ed5 clang/test/Frontend/print-header-includes.c REQUIRES shell due to "cd".
0e5c52d Correctly implement -include search logic.
4aeb30d Debuginfo: Correctly tag variadic ObjC methods with DW_TAG_unspecified_parameter.
b9df04c Reject virt-specifiers on friend declarations. Give anonymous bitfields a location so their diagnostics have somewhere to point.
444d8c4 Reject varargs '...' in function prototype if there are more parameters after it. Diagnose with recovery if it appears after a function parameter that was obviously supposed to be a parameter pack. Otherwise, warn if it immediately follows a function parameter pack, because the user most likely didn't intend to write a parameter pack followed by a C-style varargs ellipsis.
2f361f7 Modify behavior of -ast-dump-lookups: if -ast-dump is not also provided, dump anyway. If -ast-dump *is* also provided, then dump the AST declarations as well as the lookup results. This is invaluable for cross-correlating the lookup information with the declarations actually found.
9febd24 Change MemoryBuffer* to MemoryBuffer& parameter to Lexer::ComputePreamble
88b00c0 unique_ptr-ify FileSystemStatCache::setNextStatCache
3c85348 unique_ptr-ify the MemoryBuffer parameter of GlobalModuleIndex
7a15929 Add some FIXMEs.
133412d Sema: Properly perform lookup when acting on fields for desig inits
3806089 Revert r215365 - Coverage mapping: emit mapping for cxx constructors that use microsoft's ABI
0b98b89 ToolChains.cpp: Increase size of Lines vector in DetectDistro
f7a7b38 Increase the size of two SmallVectors in Generic_GCC::GCCInstallationDetector::init
21c38cf GCC compatibility: Ignore -fexec-charset=UTF-8 argument. It is the default in Clang. Reject other values.
4078613 Coverage mapping: emit mapping for cxx constructors that use microsoft's ABI
aed03e4 Increase the size of ToolChain::FilePaths
56b46af Increase SmallVector<> size in DiagnosticsEngine::setSeverityForGroup
a8a5ebf Work around default parameter problem in the static analyzer.
80e26f2 Fixes bug 20587 - Add K&R break before braces style
2c87bd9 Properly #include ASTConsumer.h instead of forward declaration.

git-subtree-dir: src/llvm/tools/clang
git-subtree-split: 58906676e5075e2f416ca69cc38afdc88c7d0bd6
Update clang
Merge commit '300360349d7123b2cbc6618fce5ba8119bf2dbfa' into develop
Squashed 'src/cmake/' changes from 76acc12..3c0d876

3c0d876 Merge branch 'fix-lexer-open-square' into release
02b3cba cmListFileLexer: Fix lexing of single '[' character (#15092)
302ba3f Merge branch 'doc-CMP0022-compat-version-typo' into release
91857e0 CMP0022: Fix version documented to support LINK_PUBLIC/LINK_PRIVATE
8db3c79 Merge branch 'backport-OpenRISC-1000-support' into release
81a4ca5 Merge branch 'backport-BundleUtilities-os9-newlines' into release
4988b17 Merge branch 'backport-fix-CMP0047-IS_GNU-vars' into release
c6f1c55 Merge branch 'fix-Qt-Autogen' into release
ef12065 KWSys CPU: Add support for OpenRISC 1000
d061248 KWIML: Teach ABI.h about OpenRISC 1000
00ad505 BundleUtilities: Allow Info.plist files which use CR line endings
59c3695 CMP0047: Fix CMAKE_COMPILER_IS_GNU(CC|CXX) in OLD behavior
71a1125 QtAutogen: Fix use of multiple ui files in a single target.
261acd9 QtAutogen: Use the basename for resource files.

git-subtree-dir: src/cmake
git-subtree-split: 3c0d87645f5861e9fd6fd78855697f77ef77144e
Update Cmake
Merge commit 'bd3371439a9ecdd1176b8bd6875a5c0fe90a476d' into develop
Squashed 'src/llvm/projects/compiler-rt/' changes from 39238e8..590928c

590928c tsan: more precise handling of atexit callbacks Fixes issue https://code.google.com/p/thread-sanitizer/issues/detail?id=74
6765622 tsan: disable getpwent interceptors
4e992b9 tsan: restructure signal handling to allow recursive handling Fixes issue https://code.google.com/p/thread-sanitizer/issues/detail?id=71
1739987 tsan: address comments in r214912 See http://reviews.llvm.org/D4794
a171087 [libsanitizer] Fix the Android build.
f24e907 [asan] Update asan_device_setup to support Android L Preview.
1e98f8f [libsanitizer] Make sanitizer_unwind_posix.cc a libcdep source file. Guard the source with #if SANITIZER_POSIX to fix compilation on Windows. use it only in
b3540db tsan: fix false positive related to signal handlers Users expect synchronization between sigaction and arrival of the signal. See the test for details.
b8a1973 [ASan] Small refactoring - split the slow unwinding logic into sanitizer_unwind_posix.cc This allows the slow unwinder to be used on OSX (it's disabled for now, see https://code.google.com/p/address-sanitizer/issues/detail?id=137 for details)
4bc3d6e tsan: unbreak windows build
014076f [asan] enable poison_array_cookie back
6bd6b30 [asan] introduce __asan_load_cxx_array_cookie: check that the array cookie address is properly poisoned and return the cookie value. If not, return 0 to avoid infinite loop of DTORs (in case of use-after-free). Calls to this function will be inserted by clang (separate change)
11d19e8 [asan] disable poison_array_cookie while I am investigating a false positive on chromium (I suspect that LLVM looses nosanitizer metadata; no test yet)
710118b [ASan/Win] Add a test case for r216663 [-Zl vs LIBCMT vs asan_win_uar_thunk]
d7eed2d [ASan/Win] Add the -Zl flag to avoid /DEFAULTLIB:libcmt directive in the asan_win_uar_thunk object file
9b4ba5e [ubsan] Follow-up for r216657: fixed the line numbers in the test.
3d7e5d0 [UBSan] Temporarily disable checks for stack traces in UBSan reports on Darwin to make the tests green. Slow stack unwinding is disabled in libsanitizer on Darwin now.
e4a7fdd [ASan] Whitespace fix. No functionality change.
5b7bce3 [asan] Add asprintf negative test.
c75455f [ASan/Win] Enable building the MD runtime by default
d1ff840 [asan] Restore asan-rt name on linux back to pre-r216380.
a353c98 [asan] add a test for poison_array_cookie=1
c022392 [lsan] Implement the public allocator interface in standalone LSan.
b965022 [lsan] Implement __sanitizer_print_stack_trace() in standalone LSan.
1ad8781 [ASan/Win] Disable warning C4391: incorrect return type for intrinsic function
5033912 [ASan/Win] Rename asan_dll_thunk.cc to asan_win_dll_thunk.cc
a26c0c7 [ASan/Win] Add an extra thunk.lib to handle stack-use-after-return option
ea4f5b5 [sanitizer] move mlock interceptor from asan/tsan/msan to common; no functionality change intended
2b4c5e0 [ASan/Win] Add /DEBUG to the MD RTL link flags
305ee68 [ASan] Replace CMake if/APPEND/endif with append_if
8f87bbd [ASan/Win] Intercept memory allocation functions in the MD CRT
a8f7b8f [ASan] Rename the ASan dynamic RT
4cc09bc [UBSan] Add support for printing backtraces to all UBSan handlers
93497ae [ubsan] Follow-up for r216263: fix the expected line number.
fc28b5d [ASan/Win] Land the trivial bits of -MD RTL support (PR20214)
77617ea [ASan] Use check_library_exists to determine if libc/libstdc++ are available
ed07038 [ubsan] Do not run Function/function.cpp on Darwin where -fsanitize=function is not supported.
c912e5b Follow-up for r215436: use SIZE_T for strlen and wcslen interceptors.
5581f33 [ASan] Turns out we should always intercept __cxa_throw At least check-asan works with this change.
2482af2 Fix latent bug in try_compile macro and use CMAKE_EXE_LINKER_FLAGS when testing for supported architectures, as suggested by Andy Gibbs.
6b07b56 DFSan's set label function should avoid writing to the shadow memory when the write would not change the value in memory.
ee354fb [LSan] Parse common flags from LSAN_OPTIONS even if LSan is combined with another sanitizer.
2a0bb21 Add regression test for PR15823
be2854e [TSan] Add -lpthread to the test which uses pthread_ functions
007293c profile: Improve error messages on bad GCDA files
9d3da31 sanitizer_printf.cc: guard the va_copy hack on _MSC_VER
3a025f6 Revert "[ASan/Win] Remove a hack that seems not to be required with VS2013 anymore" (r215708)
cbaa006 [TSan] Initialize flags as early as possible. Disables back coredump, accidentally enabled in r215479. Add a test.
b9cdf18 Follow-up to r215724: fix a lint warning
79c3ad1 [ASan/Win] Introduce a new macro for malloc-like function attributes; also, clang-format the definitions of these functions
a3e8d4a [ASan/Win] Remove one more reference to __interception::GetRealFunctionAddress (follow-up to r215707)
e6244cd [ASan/Win] We don't really need to use .CRT to call __asan_init when using -MD
9ac6fe9 [ASan/Win] Remove a hack that seems not to be required with VS2013 anymore
f6cc004 [ASan/Win] Remove old, unused and non-functional code that will be re-written soon
b77dd3b [ASan/Win] Slightly update&relax test expectations to work with both -MT and -MD (in progress, PR20214) CRTs
13ce83f [ASan/Win] Mark tests that require -MT asan_dll_thunk as such
0a58d23 tsan: fix unaligned memory access routine It was possimitically handling an aligned 8-byte access as 2 4-byte accesses.
14034c1 [UBSan] Add returns-nonnull sanitizer.
3d42f6f [MSan] Disable coredump for 64-bit binaries.
6fd4da6 [TSan] Share the code the setup code calling getrlim/setrlim with sanitizer_common
be4623b [Sanitizer] Make disable_coredump a common flag and use it in TSan
2ec75e8 [Sanitizer] Kill deprecated allocator interfaces in ASan, MSan and TSan in favor of a unified interface in <sanitizer/allocator_interface.h>.
b8778f5 Fix the CMake build when setting MACOSX_DEPLOYMENT_TARGET
92507a9 [ASan] Use more appropriate return types for strlen/wcslen to avoid MSVC warnings
1a8b15e [ASan/Win] Fix PR18987: warning about overriding '/MD' with '/MT'
5abe399 [ASan] Add new options for asan_symbolize.py script.
fe9eac5 Fix build on some architectures caused by r215247.

git-subtree-dir: src/llvm/projects/compiler-rt
git-subtree-split: 590928cf13ee02ce57feea4b83a6c91b27ff390c
Update compiler-rt
Merge commit 'a6a48b3776725aa9c7f3f8446b0f6a70af9fd858' into develop
Squashed 'src/libcxx/' changes from b953610..464da3b

464da3b test: Make it possible to opt in to use_clang_verify per test
438d2cb Fix buffer overflow issue in valarray test
837cfe5 test: Allow using clang -verify for failures rather than exit 1
fc68548 Fix yet another aspect of the build breakage caused by r216949
cb09395 Fix comment that was obsoleted by r216949
7d7b994 Fix build breakage introduced in r216949
497f912 [asan] Make vector asan annotations exception-friendly
5050833 Silence _LIBCPP_ELAST porting warning on __APPLE__
0991323 Don't #define _LIBCPP_HAS_NO_MONOTONIC_CLOCK on __APPLE__
c578065 Partially address a FIXME in steady_clock::now()
b942093 Newlib names ELAST differently than linux
e33e03e Fix PR#20834 - 'is_trivially_destructible yeilds wrong answer for arrays of unknown bound' Thanks to K-ballo for the bug report. Update a few of the other tests while we're here, and fix a typo in a test name.
b26c966 Mark test types for <atomic> nothrow default constructible. Patch from Steve MacKenzie.
9dc353c Rename arguments in include/cmath to work around Newlib macro implementation using these particular names
116c819 Revert r216497: "[libcxx] Fix ctype_byname<wchar_t>::do_is() mask checking."
32050e1 [libcxx] Fix ctype_byname<wchar_t>::do_is() mask checking.
861f1e9 Replace 'noexcept' with '_NOEXCEPT' in <shared_mutex>. This allows us to build the dylib with MSVC, which doesn't support noexcept (sheesh\!). Thanks to K-ballo for the report.
4de3204 Fix bug 20740 - std::set/std::map don't support heterogeneous lookup for count(). Thanks to Jim Porter for the bug report
a564dc5 Fix assignments that should be comparisons x3
69e7c05 Add return statement to a test class's assignment operator. Defect found by Coverity Scan.
1070916 [libcxx] Add --show-unsupported and --show-xfail to check-libcxx's default LIT args.
ae6e58c Fix handling of format strings to work with python 2.6
2c26213 Refactor lit.cfg.
4f26672 Add self to credits
5015619 Mark some localization time tests as XFAIL on linux.
51642a4 Mark some localization monetary tests as XFAIL on linux.
f523693 Mark localization ctype tests as XFAIL on linux.
682132b fix missing include for ::close in platform_support.h
bc4bcf0 Add extra test case for PR20345. Should have been commited with r215984
63648cf Fix is_member_function_pointer does not account for ellipsis. PR20345. Patch from Agustin Berge.
6f10d47 Give libcxx tests temporary filenames that are actually unique.
6661ad1 Add standard version to lit.cfg's available features
978faa0 Update linux test results
da98ce0 [libcxx] Add UNSUPPORTED tag to lit. It mirrors REQUIRES.
caf1c02 [libcxx] Add list of currently known buildbots to libc++ homepage
781448f Mark cuchar tests as always xfail since we don't provide the header'
25a1516 [libcxx] Add support for LLVM_USE_SANITIZER to libcxx when being built standalone and in-tree
dfe5e72 [libcxx] Update the way the -std= flag is chosen by CMake and LibcxxTestFormat
b4b32a0 Readding FreeBSD support to lit.cfg. Patch from Pawel Worach.
09d8c46 Tame a few enum size tests when using -fshort-enums on ARM.
efefe8b Revert get testsuite running on FreeBSD.
101e2f3 Get testsuite running on FreeBSD.
98c4e40 Revert "Turn off extern templates for most uses."
c8089616 Fix incorrect locale requirements in tests
31b9c44a Add bare_allocator archetype that implements the minimal possible allocator interface.
f3b5f0e [libc++] Fix the CMake build on Mac when setting MACOSX_DEPLOYMENT_TARGET=10.6
5b34a5f Change two tests to be less dependant on locales.
f412461 Add return statement to slice_array and mask_array assignment. Closes PR20614.
35d775d Update libc++ docs to include instructions for LIT.

git-subtree-dir: src/libcxx
git-subtree-split: 464da3b76c0dd37df6d0b11740fa694c15b33372
Update libcxx
Merge commit '09f201b042d1357f0f48c595a5bc6c90c771efb0' into develop
Squashed 'src/llvm/' changes from af713d3..8f2394e

8f2394e Fix ambiguous call to make_unique and clang-format.
42ebff8 Follow-up for r217020: actually commit the fix for PR20800, revert the accidentally committed changes to LLVMSymbolize.cpp
fac68d2 Fix PR20800: correctly calculate the offset of the subq instruction when generating compact unwind info.
8475470 Reapply r216805 "[MachineCombiner][AArch64] Use the correct register class for MADD, SUB, and OR.""
732b026 Recommit "Use unique_ptr to manager FilterChooser ownership."
6426140 Revert "Use unique_ptr to manager FilterChooser ownership."
e2d4093 Use unique_ptr to manager FilterChooser ownership.
5c58157 Implement move constructor and remove copy constructor for Filter objects in FixedLenDecoderEmitter. Also remove unused copy constructor of FilterChooser.
ef279f9 [MCJIT] Make llvm-rtdyld process eh_frame sections in -verify mode (accidentally left out of r217010).
5ae2647 [MCJIT] Add a 'section_addr' builtin function to RuntimeDyldChecker.
dd7a710 [FastISel][AArch64] Add target-dependent instruction selection for Add/Sub.
46d52b1 Fix test case to match correct llvm-objdump output
3ab3a82 Replace printf with outs() <<
ae77bf4 Change name of copyFlags() to copyIRFlags(). Add convenience method for logical 'and' of all flags. NFC.
fbe935e [CFLAA] Remove one final initializer list
b38c0b8 [CFLAA] And even more MSVC fixes
16632ce Cleaning up remaining static initializers in Signals.inc
fa5d491 [CFLAA] More cleanup for MSVC
0a304f0 Tablegen scheduling models don't reference empty itineraries as of r216919, so don't emit the unused itinerary variables
8de4282 [CFLAA] No initializer lists for MSVC
418103c Missing test from r216989
ddcf3bd0a Only emit movw on ARMv6T2+
4becee1 unique_ptrify passing the TargetMachine to ExecutionEngine::MCJITCtor
41b6e32 [CFLAA] Remove tautological comparison
79ec2ed [FastISel][AArch64] Use the target-dependent selection code for shifts first.
4919b69 [FastISel][AArch64] Use a new helper function to determine if a value type is supported. NFCI.
73d86aa Nuke MCAnalysis.
d5dd8ce Reinstate "Nuke the old JIT." Approved by Jim Grosbach, Lang Hames, Rafael Espindola.
4437658 [CFLAA] LLVM_CONSTEXPR -> const
76b55cc [X86] Allow atomic operations using immediates to avoid using a register
ba70909 [CFLAA] constexpr -> LLVM_CONSTEXPR
e1b1cac Add pass-manager flags to use CFL AA
d52e9a1 BumpPtrAllocator: use uintptr_t when aligning addresses to avoid undefined behaviour
891198b [asan]  Assign a low branch weight to ASan's slow path, patch by Jonas Wagner. This speeds up asan (at least on SPEC) by 1%-5% or more. Also fix lint in dfsan.
2aab51a R600/SI: Relax some ordering in tests.
bf301d5 Add a CFL Alias Analysis implementation
a2e22cd [FastISel][AArch64] Move over to target-dependent instruction selection only.
37753c5 [FastISel] Provide the option to skip target-independent instruction selection. NFC.
cb25224 Generate extract for in-tree uses if the use is scalar operand in vectorized instruction. radar://18144665
9c21df6 R600/SI: Fix hardcoded register numbers in test
96b466c Refactor LowerFABS and LowerFNEG into one function (x86) (NFC)
ef02f8e cmake: Don't reject unknown cpp files that start with .
cc99164 Fix MemoryDependenceAnalysis in cases where QueryInstr is a CmpXchg or a AtomicRMW
4211bbc Fix a logic bug when copying fast-math flags.
6cae39f Add a note about AuroraUX to the release notes.
f9139d7 Add note to documentation about machine node chains.
f471c48 R600/SI: Add failing testcase.
f7a3c7e Fix interference caused by fmul 2, x -> fadd x, x
9bf0327 Code review tweaks
0565503 Fix crash when looking up the addrspace of GEPs with vector types
f93099e CodeGen: Handle va_start in the entry block
1c7650f Fix comment and unnecessary check for FP build_vectors.
fc5b232 unique_ptrify LTOCodeGenerator::NativeObjectFile
7b96c49 unique_ptrify the result of SpecialCaseList::create
fb9a3fb MCSchedule.h: fix VS2012 build after r216919
98f518c unique_ptrify FileOutputBuffer::FileOutputBuffer
60a82bc Fix left shifts of negative values in MipsDisassembler.
6de6c6a Change MCSchedModel to be a struct of statically initialized data.
ac31076 unique_ptrify PBQPBuilder::build
93accb4 Fix signed integer overflow in PPCInstPrinter.
7bda613 Correct unique_ptr passing in MCObjectDisassembler::setFallbackRegion
251da88 Fix left shifts by too large exponents in MCParser (which happened only on error recovery path).
ca514a4 Revert: [APFloat] Fixed a bug in method 'fusedMultiplyAdd'.
0b6ee9f [APFloat] Fixed a bug in method 'fusedMultiplyAdd'.
a778b5e Add missing override on ARMAsmBackend's dtor.
9e1f653 LICM: Don't crash when an instruction is used by an unreachable BB
4648487 Fix left shifts of negative integers in AArch64 InstPrinter/Disassembler
2633f79 Enable splitting indexing from loads with TargetConstants
1e556a8 Replace -use-init-array with -use-ctors.
edc658d Silencing an MSVC C4334 warning ('<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)). NFC.
4e2b661 Merge Extend and Shift into a UBFX
3da41a2 Revert "Revert '[DAGCombiner] Split up an indexed load if only the base pointer value is live'"
dea837d [PowerPC] Guard against illegal selection of add for TargetConstant operands
901a341 CodeGen: indicate Windows unwind data format
05c3ddf CodeGen: split out the Win64Exception emitter
0c1740c MC: remove unnecessary enumeration prefix
e64e7c4 SROA: Don't insert instructions before a PHI
a0b2af4 Revert "Revert two GEP-related InstCombine commits"
3c7bd3f Use an integer constant for FABS / FNEG (x86).
73f8eff Add a convenience method to copy wrapping, exact, and fast-math flags (NFC).
88350bf Fix a typo in comments in r216862, NFC
4016a9e [ARM] Add Thumb-2 code size optimization regression test for EOR.
9e6f09d ARM] Add Thumb-2 code size optimization regression test for BIC.
861eddb [asan-assembly-instrumentation] Prologue and epilogue are moved out from InstrumentMemOperand().
09e28e3 Thumb2 M-class MSR instruction support changes
7948290 Fix in InlineSpiller to make the rematerilization loop also consider implicit uses of the whole register when a sub register is defined.
c642ad9 Revert "[asan-assembly-instrumentation] Prologue and epilogue are moved out from InstrumentMemOperand()."
1faa445 Fix a really bad miscompile introduced in r216865 - the else-if logic chain became completely broken here as *all* intrinsic users ended up being skipped, and the ones that seemed to be singled out were actually the exact wrong set.
35b114f Small refactor on VectorizerHint for deduplication
895aa39 [asan-assembly-instrumentation] Prologue and epilogue are moved out from InstrumentMemOperand().
32418db Feed AA to the inliner and use AA->getModRefBehavior in AddAliasScopeMetadata
0cbef49 Ignore lifetime intrinsics in use list for MemCpyOptimizer. Patch by Luqman Aden, review by Hal Finkel.
7ba4e07 Remove an errant outer loop that contains nothing but an inner loop over exactly the same elements. While no functionality is change intended (and hence there are no changes to tests), you don't want to skip this revision if bisecting for errors.
5581563 Fix AddAliasScopeMetadata again - alias.scope must be a complete description
d43e6df [MachineSink] Use the real post dominator tree
e2cf6dc DebugInfo: Elide lexical scopes which only contain other (inline or lexical) scopes.
30392bf Consider addrspaces in canLosslesslyBitCastTo()
363d0d2 DebugInfo: Move argument creation up into the caller that's unambiguously handling the subprogram scope (replacing a conditional with an assertion in the process)
4b538d3 Delay adding imported entity DIEs to the lexical scope, streamlining the check for "this scope has nothing in it"
677ae42 Modify DwarfDebug::constructImportedEntityDIE to return rather than insert into the scope
ba466e6 Refactor constructImportedEntityDIE(DwarfUnit, DIImportedEntity) to return a DIE rather than inserting it into a specified context.
b8ee7c2 Simplify expression using container's front() rather than begin()->
07f3526 Add some negative (and positive) static_assert checks for ArrayRef-of-pointer conversions introduced in r216709
6e153ad [PATCH][Interpreter] Add missing FP intrinsic lowering.
d421075 Teach llvm-bcanalyzer to use one stream's BLOCKINFO to read another stream.
3af1356 Remove 'virtual' keyword from methods markedwith 'override' keyword.
847998f Use StringRef to avoid copies and simplify code.
8316713 Add a test for converting ArrayRef<T *> to ArrayRef<const T *>.
24ae56d Fix some cases where StringRef was being passed by const reference. Remove const from some other StringRefs since its implicitly const already.
7ee57cc JIT support has been added awhile ago.
bd896c1 Fix AddAliasScopeMetadata to not add scopes when deriving from unknown pointers
b265e6f InstCombine: Respect recursion depth in visitUDivOperand
c6219ba InstCombine: Try harder to combine icmp instructions
bcbae3d Revert r216805 "[MachineCombiner][AArch64] Use the correct register class for MADD, SUB, and OR."
77c2eb2 Fixed a build problem when there were headers for a different LLVM present in the system header lookup path.
23e2653 Add missing const to StringRef.copy()
fbf47c2 Fix typo and formatting
aa4d2ac Object/llvm-objdump: allow dumping of mach-o exports trie
4e92383 [MachineCombiner][AArch64] Use the correct register class for MADD, SUB, and OR.
e7f301e [FastISel][AArch64] Use the correct register class for branches.
bc420a0 [MachineSinking] Clear kill flag of all operands at all their uses.
361153e [MCJIT] Move endian-aware read/writes from RuntimeDyldMachO into RuntimeDyldImpl.
4b9f3c1 Debug info: Add a new explicit DIDescriptor flag for the "public" access specifier and change the default behavior to only emit the DW_AT_accessibility(public) attribute when the isPublic() is explicitly set.
794003c Comment only: Annotate loop as per mailing list discussion
c5198dc Make isValidMCLOHType take unsigned instead of enum to avoid loading invalid enum values
e306159 Next bit of support for llvm-objdump’s -private-headers for Mach-O files.
61123cf AArch64: Silence -Wabsolute-value warning with std::abs
e038aca Speculative build fix for const, gcc, and ArrayRef overloads
3f4b69d Revert accidentally committed patches r216787-r216789
3da7647 Add a trivial functor for use with unique_ptrs managing memory that needs to be freed rather than deleted.
a2fa271 Omit DW_AT_artificial, DW_AT_external, and similar attributes under -gmlt
0f155c1 Omit dwarf::DW_AT_frame_base under -gmlt
a66ce7a Stuff
217b38e Fix typos in comments, NFC
039f6c6 Add a const and munge some comments
9436574 musttail: Forward regparms of variadic functions on x86_64
dae2873 Verifier: Don't reject varargs callee cleanup functions
6393b3a Remove spurious mask operations from AArch64 add->compares on 16 and 8 bit values
1469e29 X86: Fix conflict over ESI between base register and rep;movsl
e8b65bc another typo
da0bc1c typo
66b380b Relax the constraint more in MemoryDependencyAnalysis.cpp
22f3cb0 [X86] Refactor X86ISelDAGToDAG::SelectAtomicLoadArith - NFC
f1b5734c Add missing mach-o EXPORT_SYMBOL_FLAG_KIND_ABSOLUTE
1da4862 Tablegen fixes for new syntax when initializing bits from variables. Followup to r215086.
d8835d0 [FastISel][AArch64] Fix an incorrect kill flag due to a bug in SelectTrunc.
59758c4 [ARM] Add Thumb-2 code size optimization test for ASR (register).
b1424d7 [ARM] Add Thumb-2 code size optimization test for ASR (immediate).
4f66dd7 Fix a typo in AddAliasScopeMetadata
0d90962 Make fabs safe to speculatively execute
f4d57e7 R600/SI: Use mad for fsub + fmul
1e77dc8 AArch64: only try to get operand of a known node.
d1c5443 Remove unnecessary regex in test pattern per dblaikie suggestion.
86cafbc typo
87a2b36 [NVPTX] Make the alignment an explicit argument to ldu/ldg
c5484a2 [ARM] Make Thumb-2 code size optimization test more strict.
f238c18 [ARM] Add a first test for the Thumb-2 code size optimization pass.
1f70cb9 AArch64: skip select/setcc combine in complex case.
123c92c [AArch64] FPLoadBalancing: move ownership of the chain to its current accumulator register
622de3b Use DwarfDebug::attachLowHighPC for the compilation unit DIE.
37e671e [SKX] Enable lowering of integer CMP operations. Added new types to Legalizer. Fixed getSetCCResultType function Added lowering tests.
d2323fc Do not assume the value passed to memset is an i32.
95f7e2d Add conversion constructor to convert ArrayRef<T*> to ArrayRef<const T*>. Reviewed with Chandler and David Blaikie.
3cd73a5 [AArch64] Fix some failures exposed by value type v4f16 and v8f16.
d814e38 Cleaning up static initializers in Signals.inc
77bf4f9 Cleaning up static initializers in TimeValue.
79e9b30 Introduce -DLLVM_USE_SANITIZER=Undefined CMake option to build UBSan-ified version of LLVM/Clang.
cf45151 [FastISel][AArch64] Don't fold instructions that are not in the same basic block.
6acfc54 Revert two GEP-related InstCombine commits
8f58e02 Don't promote byval pointer arguments when padding matters
0d34b1e AArch64: More correctly constrain target vector extend lowering.
179b5ee Move FNEG next to FABS and make them more similar, so it's easier that they can be refactored. NFC.
4bb5350 On MachO, don't put non-private constants in mergeable sections.
8317095 Constify MCSymbol* parameters to DwarfDebug::attachLowHighPC.
cf9661c Fix a logic bug in x86 vector codegen: sext (zext (x) ) != sext (x) (PR20472).
538b1cb Do not introduce new shuffle patterns after operation legalization if SHUFFLE_VECTOR was marked custom.  The target independent DAG combine has no way to know if the shuffles it is introducing are ones that the target could support or not.
98491c0 Janitorial services: "Don’t duplicate function or class name at the beginning of the comment."
e43c262 Remove local TLI vars that are just duplicates of the class var. No functional change.
a63b6e2 Use local vars to improve readability. No functional change.
4152f8d Minor spelling correction.
6948f9e Silence a -Wsign-compare warning. NFC.
e9c80bc [PBQP] Only output debug information when requested
0b16ed7 InstCombine: Remove redundant combines
c84ba85 Fix: SLPVectorizer tried to move an instruction which was replaced by a vector instruction.
5ca7935 Generate CMN when comparing a short int with minus
cf37360 Test commit.  Fix whitespace from a previous patch of mine.
41db812 [MCJIT] Fix format specifiers for debug output in RuntimeDyld.
5283829 MC: Don't crash when the COFF section limit is reached
dccb2af [x86] Fix whitespace and formatting around this function with clang-format, no functionality changed.
6abd62f [x86] Hoist conditions from *every single if* in this routine to a single early exit.
1201cc1 [x86] Inline an SSE4 helper function for INSERT_VECTOR_ELT lowering, no functionality changed.
da3a293 [x86] Clean up some tests to use FileCheck and combine two into a single file.
b11fff1 InstSimplify: Move a transform from InstCombine to InstSimplify
4a76317 [FastISel] Undo phi node updates when falling-back to SelectionDAG.
d24494d [FastISel]
a26b1bd Revert "[FastISel][AArch64] Don't fold instructions too aggressively into the memory operation."
34ea0a1 Fix unaligned reads/writes in X86JIT and RuntimeDyldELF.
1f5263e [FastISel][AArch64] Don't fold instructions too aggressively into the memory operation.
96c845a Avoid zero length memset error
a160df5 Use local variable in visitFADD. No functional change.
2c4b9ea [FastISel][AArch64] Fix a comment in my previous commit (r216617).
ccf5301 [FastISel][AArch64] Fix simplify address when the address comes from a shift.
aa9db69 Fix a double free in llvm::getBitcodeTargetTriple.
d445e4a [FastISel][AArch64] Use the zero register for stores.
305938e Group unsafe-math optimizations for fsub into one block. No functional change.
fc68dad [FastISel] Fix a potential bug in FastEmitInst_ri
5b92f44 Use local variable to improve readability.
644da32 typo in comment
b5e9bf0 Don't create a MemoryBuffer just to get the MemoryBufferRef. NFC.
819242a Convert a few more cases of direct intialization of unique_ptrs from MemoryBuffer::getMemBuffer to move initialization now that it returns by unique_ptr instead of raw pointer.
2ab3b56 X86 MC: Handle instructions like fxsave that match multiple operand sizes
8ee308f InstCombine: Combine gep X, (Y-X) to Y
48164ed InstSimplify: Don't simplify gep X, (Y-X) to Y if types differ
1c76881 Reland r216439 215441, majnemer has a real fix for PR20771.
1a7f705 Return a std::unique_ptr when creating a new MemoryBuffer.
b2f7183 Revert r216439 (and r216441, else the former doesn't revert cleanly).
e18e2a8 Remove unused argument.
e909464 Use BitVector instead of int in R600 SIISelLowering. int may not have enough bits in it, which was detected by UBSan bootstrap (it reported left shift by a too large constant).
34806d2 yaml::Stream doesn't need to take ownership of the buffer.
7132e32 Fix some semantic usability issues with DynamicLibrary.
d8e448b InstSimplify: Compute comparison ranges for left shift instructions
0927dab Revert "Limit the symbol search in DynamicLibrary to the module that was opened."
95141f9 [MCJIT] Replace a C-style cast in RuntimeDyldImpl.h.
644e3c07 [MCJIT] More endianness fixes for RuntimeDyldMachO.
70d2d3c Limit the symbol search in DynamicLibrary to the module that was opened.
5e487f8 Teach the AArch64 backend about v4f16 and v8f16
b8c95a8 [SLP] Re-enable vectorization of GEP expressions (re-apply r210342 with a fix).
fda6b88 Clang-format over X86AsmInstrumentation.* with LLVM style.
ccce703 Add an explicit cast to pacify implicit boolean conversion warnings.
7e3dc40 [x86] Fix a regression introduced with r213897 for 32-bit targets where we stopped efficiently lowering sextload using the SSE41 instructions for that operation.
963a5e6 [SDAG] Re-instate r215611 with a fix to a pesky X86 DAG combine.
08cb02e Clang-format over X86AsmInstrumentation.*.
e79a94a [SKX] Added new versions of cmp instructions in avx512_icmp_cc multiclass, added VL multiclass. Added encoding tests
fe0c6ea AVX-512: Added intrinsic for VMOVSS store form with mask.
3512034 Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created.
16edb0e Fix some cases were ArrayRefs were being passed by reference. Also remove 'const' from some other ArrayRef uses since its implicitly const already.
dd5456b InstCombine: Optimize GEP's involving ptrtoint better
ad2a271 Remove type unit skeletons. GDB no longer needs them & this saves a heap of space.
fc03e72 [FastISel][AArch64] Fix address simplification.
836f4bd [FastISel][AArch64] Fold Sign-/Zero-Extend into the shift immediate instruction.
c04b786 Fix a couple of debug info test cases to match the metadata schema change in r216239
fb1af0a Pass a std::unique_ptr<MemoryBuffer>& to getLazyBitcodeModule.
2292996 Pass a MemoryBufferRef when we can avoid taking ownership.
af07403 Give ExecutionEngine of top level buffers.
3c92309 MC: Split the x86 asm matcher implementations by dialect
1d5cdfd Revert r210342 and r210343, add test case for the crasher. PR 20642.
a5718c6 Convert MC command line option for fatal assembler warnings into a proper flag.
de2d08e Invert the condition to have a single return.
81e4992 Return a std::unique_ptr from the IRReader.h functions. NFC.
1bfd87a Return a std::unique_ptr from parseInputFile and propagate. NFC.
85ae5fc Simplify LTOModule::makeLTOModule a bit. NFC.
9be4884 Merge TempDir and system_temp_directory.
083c9de Silence unused function warning in Release builds.
698eabd Change the return value of "getEnd()" from a MachineInstr* to a MachineBasicBlock::iterator.
2282afa ARM: Add patterns for dbg
52c92df This patch enables SimplifyUsingDistributiveLaws() to handle following pattens.
647d329 Use 'xz' compression instead of 'gz'.
8058ffe InstSimplify: Fold gep X, (sub 0, ptrtoint(X)) to null
594e4a1 InstSimplify: Simplify trivial pointer expressions like b + (e - b)
2db57b4 AArch64: use std::fill instead of memset
4a3195c Revert "AArch64: use std::vector for temp array"
7532912 Analysis: cleanup
8cb2706 Revert "Analysis: unique_ptr-ify DependenceAnalysis::collectCoeffInfo"
ce0adaa Revert "NVPTX: remove another raw delete call"
ae65d0e Revert "Support/APFloat: unique_ptr-ify temp arrays"
27dc1b8 Revert "Support/Path: remove raw delete"
759a71a ExecutionEngine: address review comments
71499d3 CodeGen/LiveVariables: use vector::assign()
fad8d81 musttail: Don't eliminate varargs packs if there is a forwarding call
18637be fix typos in comments
44b3a0b Declare that musttail calls in variadic functions forward the ellipsis
64bb4a6 Fix Path unittests on Windows after raw_fd_ostream changes
9d1f8b1 ArgPromotion: Don't touch variadic functions
9fe621a [MCJIT][SystemZ] Use a simpler expression for indirect relocation offsets.
c33fe1b Fix bug in llvm::sys::argumentsFitWithinSystemLimits().
476f243 [MCJIT] Dump section memory both before and after relocations are applied.
749c738 Refactor argument serialization logic when executing process. NFC.
670885e [FastISel][AArch64] Refactor float zero materialization. NFCI.
f9526ac [MCJIT] Make RuntimeDyld dump section contents in -debug mode.
8c96862 Modernize raw_fd_ostream's constructor a bit.
a4c8f31 [x86] Fix a bug in r216319 where I was missing a 'break'.
ff69509 Remove dangling initializers in GlobalDCE
a696ccb Rise from the dead and update personal info
373fc00 [AArch32] Add patterns for VCVT{A,N,P,M}.
cc4b123 [SKX] avx512_icmp_packed multiclass extension Extended avx512_icmp_packed multiclass by masking versions. Added avx512_icmp_packed_rmb multiclass for embedded broadcast versions. Added corresponding _vl multiclasses. Added encoding tests for CPCMP{EQ|GT}* instructions. Add more fields for X86VectorVTInfo. Added AVX512VLVectorVTInfo that include X86VectorVTInfo for 512/256/128-bit versions
f2a082a MergeFunctions, tiny refactoring: cmpAPFloat has been renamed to cmpAPFloats (multiple form).
4112da5 MergeFunctions, tiny refactoring: cmpAPInt has been renamed to cmpAPInts (multiple form).
993a3f8 MergeFunctions, tiny refactoring: cmpType has been renamed to cmpTypes (multiple form).
c676425 MergeFunctions, tiny refactoring: cmpGEP has been renamed to cmpGEPs (multiple form).
e637d65 Allow vectorization of division by uniform power of 2.
9fdcfdd CodeGen/LiveVariables: hoist out code in nested loops
20d7da5 CodeGen/LiveVariables: switch to std::vector
2c6a26d AArch64: unique_ptr-ify map structures
7fb86b0 AArch64: use std::vector for temp array
f0d9f33 NVPTX: remove another raw delete call
0280c4c NVPTX: remove raw delete call
1e321bb ExecutionEngine: unique_ptr-ify
444aa2d EE/JIT: unique_ptr-ify
0acfd7f Support/Path: remove raw delete
0901b15 Support/APFloat: unique_ptr-ify temp arrays
97dc647 Analysis: unique_ptr-ify DependenceAnalysis::collectCoeffInfo
fe2cc2d Analysis: unique_ptr-ify DependenceAnalysis::depends
75129f6 Analysis: take a reference instead of pointer
c97e8d8 CodeGen: switch raw array to std::vector
c11cb69 IR: remove dead code
273fd11 Use range based for loops to avoid needing to re-mention SmallPtrSet size.
7bd541a TableGen: unique_ptr-ify RecordKeeper
d52b1d0 TableGen: delete no-op code
025ab7f TableGen: use auto and for-range
5cb5e7e This code is from r216285, which did not go out to the mailing list for some reason.
519ec3a X86 intrinsics table - simplifies intrinsics lowering. The tables are initialized when X86TargetLowering object is created.
401ca95 Silence gcc -Wpedantic.
5cbd5a1 InstCombine: Properly optimize or'ing bittests together
7ca2a7d [PowerPC] Add support for dcbtst and icbt (prefetch)
389f130 Support: add llvm::unique_lock
d930a30 Support: make LLVM Mutexes STL-compatible
7e3e431 Support/Unix: use ScopedLock wherever possible
a2a6fa2 cmake: actually test -Wcomment
136fd4c cmake: disable -Wnon-virtual-dtor when it gives false positives
8eb867e Revert "ARM: improve RTABI 4.2 conformance on Linux"
f5aa254 Revert "ARM: mark missing functions from RTABI"
bfed08e [x86] Start fixing a really subtle and terrible form of miscompile in these DAG combines.
21f3756 ProgrammersManual: the flag is called -debug-only
e62541e llvm-cov: test: add xfail for the big-endian buildbots
f591b9c Revert r215611 because it caused the infinite loop in bug 20736. There is a reduced testcase in that bug.
9fe9272 Add a test case for SROA where the store size is bigger than slice size. The test case was fixed in r216248.
03d2823 Add support for comdats to the gold plugin.
6c7a6a1 llvm-cov: add code coverage tool that's based on coverage mapping format and clang's pgo.
8be5600 [SROA] Fold a PHI node if all its incoming values are the same
d89c0ab ARM / x86_64 varargs: Don't save regparms in prologue without va_start
e5e847a Clear the llvm release notes to make room for 3.6.
d9757b4 Add the start of the support for llvm-objdump’s -private-headers for Mach-O files.
bf9d5df Add a few missing mach header flags.
2e1bf78 Fix PR17239 by changing the semantics of the RemainingArgsClass Option kind
f50f927 R600/SI: Use READ2/WRITE2 instructions for 64-bit mem ops with 32-bit alignment
ec4cb33 R600/SI: Use a ComplexPattern for DS loads and stores
8054465 R600/SI: Wrap local memory pointer in AssertZExt on SI
9048dc6 R600/SI: Use correct helper class for DS_WRITE2 instructions
c3f2ad0 [ARM] Move the implementation of the target hooks related to copy-related instruction from ARMInstrInfo to ARMBaseInstrInfo. That way, thumb mode can also benefit from the advanced copy optimization.
5939f08 InstCombine: Don't unconditionally preserve 'nuw' when shrinking constants
0e4fc41 InstCombine: sub nsw %x, C -> add nsw %x, -C if C isn't INT_MIN
4ef54c3 [Support] Fix the overflow bug in ULEB128 decoding.
cc59c3f [mips] Don't use odd-numbered float registers for double arguments for fastcc calling convention if FP is 64-bit and +nooddspreg is used.
c86bdc7 InstCombine: Don't unconditionally preserve 'nsw' when shrinking constants
6ca2d8b fix: SLPVectorizer crashes for unreachable blocks containing not schedulable instructions.
f537702 [dfsan] Fix non-determinism bug in non-zero label check annotator.
54056f1 ValueTracking: Figure out more bits when looking at add/sub
2c0e02e SROA: Handle a case of store size being smaller than allocation size
5e83e81 Revert "X86: Align the stack on word boundaries in LowerFormalArguments()"
a79efd7 Add an explicit move constructor to SrcBuffer
5e34dff [FastISel][AArch64] Add support for variable shift.
daebbe2 Minor refactor to make applying patches from 'Add a "probe-stack" attribute' review thread out of order easier.
c7260209 Use DILexicalBlockFile, rather than DILexicalBlock, to track discriminator changes to ensure discriminator changes don't introduce new DWARF DW_TAG_lexical_blocks.
d1a09c4 name change: isPow2DivCheap -> isPow2SDivCheap
bd66db2 [PeepholeOptimizer] Enable the advanced copy optimization by default.
9bdd5df Whitespace change to reduce diff in future patch.
ecad452 [X86] Split out the logic to select the stack probe function (NFC)
a204592 Add hooks for emitLeading/TrailingFence
cf165c3 Rename AtomicExpandLoadLinked into AtomicExpand
4921d1a [PeepholeOptimizer] Update the kill flags when extending the live-range of the source of a copy.
6d2164e Fix a URL (NFC)
5d6365c [FastISel][AArch64] Use the correct register class to make the MI verifier happy.
95ca0fb Explicitly pass ownership of the MemoryBuffer to AddNewSourceBuffer using std::unique_ptr
fdbf61d R600/SI: Teach moveToVALU how to handle more S_LOAD_* instructions
5f52739 R600/SI: Make sure SCRATCH_WAVE_OFFSET is added as Live-In to the function
7af96a2 R600/SI: Remove unused SGPR spilling code
9b60cb1 R600/SI: Use eliminateFrameIndex() to expand SGPR spill pseudos
a07c077 R600/SI: Handle VCC in SIRegisterInfo::getPhysRegSubReg()
3fd7e37 Rewrite the gold plugin to fix pr19901.
96c909c Satiate the sanitizer build bot
7b4eb02 Move some logic to populateLTOPassManager.
9db660e [AVX512] Add class to group common template arguments related to vector type
93695d2 Coverage Mapping: add function's hash to coverage function records.
9ca2a9a llvm-gcc is dead.
29863d8 [LIT] Remove documentation for  method since it does not exist
4658ea9 Respect LibraryInfo in populateLTOPassManager and use it. NFC.
8d1b742 Remove dead code. NFC.
ad3c628 [AArch64] Run a peephole pass right after AdvSIMD pass. The AdvSIMD pass may produce copies that are not coalescer-friendly. The peephole optimizer knows how to fix that as demonstrated in the test case.
60aadd5 [FastISel][AArch64] Factor out ANDWri instruction generation into a helper function. NFCI.
a6afad8 Thumb1 load/store optimizer: Improve code to materialize new base register.
eeb828f Use returns_nonnull in BumpPtrAllocator and MallocAllocator to avoid null-check in placement new
69ec09b [FastISel][AArch64] Remove redundant test.
4c3be1a Add a thread-model knob for lowering atomics on baremetal & single threaded systems
0b994a7 Handle inlining in populateLTOPassManager like in populateModulePassManager.
63f5912 [CLNUP] Remove return after llvm_unreachable. Thanks to Hal Finkel for pointing.
daada81 DAGCombiner: Make concat_vector combine safe for EVTs and concat_vectors with many arguments.
47199c3 Move DisableGVNLoadPRE from populateLTOPassManager to PassManagerBuilder.
f19807d X86AsmPrinter MCJIT MSVC bug fix.
760a465 [ARM] Enable DP copy, load and store instructions for FPv4-SP
fc4bdcd Sort declarations.
67e5178 Make format_object_base's destructor protected and non-virtual.
0edc5e8 Reassociate x + -0.1234 * y into x - 0.1234 * y
f11ac42 X86: Turn redundant if into an assertion.
fec1aba [x86] Added _addcarry_ and _subborrow_ intrinsics
375a68c [x86] SMAP: added HasSMAP attribute for CLAC/STAC, corrected attributes
10dacc4 [x86] Broadwell: ADOX/ADCX. Added _addcarryx_u{32|64} intrinsics to LLVM.
3a34f5e [x86] Enable Broadwell target. Added FeatureSMAP.
164cd01 [INDVARS] Extend using of widening of induction variables for the cases of "sub nsw" and "mul nsw" instructions.
6623af7 IntelJITEventListener updates to fix breaks by recent changes to EngineBuilder and DIContext. By Arch Robison.
431bdfc Repace SmallPtrSet with SmallPtrSetImpl in function arguments to avoid needing to mention the size.
e234f93 InstCombine: Fold ((A | B) & C1) ^ (B & C2) -> (A & C1) ^ B if C1^C2=-1
e88b796 Remove custom implementations of max/min in StringRef that was originally added to work an old gcc bug. I believe its been fixed by now.
e996e5e add self to credits
82f1a8c Fix a bug around truncating vector in const prop.
150cef2 Revert r216066, "Optimize ZERO_EXTEND and SIGN_EXTEND in both SelectionDAG Builder and type".
e817bdd [PeepholeOptimizer] Take advantage of the isInsertSubreg property in the advanced copy optimization.
7599acc [ARM] Mark VSETLNi32 with the InsertSubreg property and implement the related target hook.
824431f [LoopVectorize] Up the maximum unroll factor to 4 for AArch64
bb819ed [LoopVectorizer] Limit unroll factor in the presence of nested reductions.
0d15213 Add isInsertSubreg property.
506ed4d Lower thumbv4t & thumbv5 lo->lo copies through a push-pop sequence
400bc21 Mention the right target hook in the comment on isExtractSubreg property.
8ccce6b [PeepholeOptimizer] Take advantage of the isExtractSubreg property in the advanced copy optimization.
ee1b45f New InstCombine pattern: (icmp ult/ule (A + C1), C3) | (icmp ult/ule (A + C2), C3)  to (icmp ult/ule ((A & ~(C1 ^ C2)) + max(C1, C2)), C3) under certain condition
9ec471a Don't allow MCStreamer::EmitIntValue to output 0-byte integers. It makes no sense and can hide bugs. In particular, it lead to left shift by 64 bits, which is an undefined behavior, properly reported by UBSan.
d28e4c1 [ARM] Mark VMOVRRD with the ExtractSubreg property and implement the related target hook.
d1e3fcf Fix undefined behavior (left shift of negative value) in SystemZ backend.
dac6764 Add isExtractSubreg property.
fa210ac Fix null reference creation in SelectionDAG constructor.
145d28e Fix undefined behavior (left shift of negative value) in Hexagon backend.
a046b41 Cleanup: Delete seemingly unused reference to MachineDominatorTree from ScheduleDAGInstrs.
89305e5 Don't prevent a vselect of constants from becoming a single load (PR20648).
4641d5d X86: Add missing triples from r216119
5012f1d X86: Align the stack on word boundaries in LowerFormalArguments()
ada5f2a Fix null reference creation in ScheduleDAGInstrs constructor call.
4b1cddba Do not insert a tail call when returning multiple values on X86
2423203 Fix undefined behavior (left shift by 64 bits) in ScaledNumber::toString().
3deb3e3 critical-anti-dependency breaker: don't use reg def info from kill insts (PR20308)
dcd3cbe [PeepholeOptimizer] Refactor the advanced copy optimization to take advantage of the isRegSequence property.
e18eb61 Tweak CFGPrinter to wrap very long names.
1506856 Remove unused field.
5273295 [FastISel][AArch64] Don't fold the sign-/zero-extend from i1 into the compare.
4b67b5a Quick fix for an use after free.
0ea6d44 Add note to LangRef about how function arguments can be unnamed and how this affects the numbering of unnamed temporaries.
a2bec69 Silencing a -Wcast-qual warning. NFC.
0e9c68e Silencing an MSVC C4334 warning ('<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)). NFC.
e04455d Optimize ZERO_EXTEND and SIGN_EXTEND in both SelectionDAG Builder and type legalization stage. With those two optimizations, fewer signed/zero extension instructions can be inserted, and then we can expose more opportunities to Machine CSE pass in back-end.
aadaac2 [x32] Fix FrameIndex check in SelectLEA64_32Addr
40f9d11 ARM: Fix codegen for rbit intrinsic
7130b22 Update projects lists.
bca58d8 Add libcxxabi to the projects.
99e941f InstCombine: Annotate sub with nuw when we prove it's safe
78832c6 Fix an off by 1 bug that prevented SmallPtrSet from using all of its 'small' capacity. Then fix the early return in the move constructor that prevented 'small' moves from clearing the NumElements in the moved from object. The directed test missed this because it was always testing large moves due to the off by 1 bug.
ae8d297 Constants.h: Fix possible typo in r216015. [-Wdocumentation]
b3b125a [dfsan] Treat vararg custom functions like unimplemented functions.
3ef392c [FastISel][AArch64] Use the proper FMOV instruction to materialize a +0.0.
e0134d95 InstCombine: Annotate sub with nsw when we prove it's safe
06de8a1 BumpPtrAllocator: don't accept 0 for the alignment parameter
ae9a796 [FastISel][AArch64] Factor out ADDS/SUBS instruction emission and add support for extensions and shift folding.
b12ab60 Split parseAssembly into parseAssembly and parseAssemblyInto.
97eadf2 Delete unused argument in AArch64MCInstLower constructor: it doesn't use Mangler, and Mangler is in fact not even created when AArch64MCInstLower is constructed.
5a466d3 LangRef: Move example of function-scope uselistorder to a function
7838818 IR: Implement uselistorder assembly directives
722885f [MCJIT] Add an i386 RuntimeDyldMachO test case.
8db4ddb IR: Fix a missed case when threading OnlyIfReduced through ConstantExpr
13f5c58 verify-uselistorder: Force -preserve-bc-use-list-order
1d58f98 [FastISel][AArch64] Extend floating-point materialization test.
6825609 fix the gcc build
3414e45 [MCJIT] Allow '$' characters in symbol names in RuntimeDyldChecker.
b03916a IR: Fix ConstantExpr::replaceUsesOfWithOnConstant()
e221557 IR: Thread OnlyIfReduced through ConstantExpr::getWithOperands()
a96d94a Fix the MSVC build.
06bb1ca Reapply [FastISel][AArch64] Add support for more addressing modes (r215597).
96b1e70 Reapply [FastISel][X86] Add large code model support for materializing floating-point constants (r215595).
9c23685 Reapply [FastISel][X86] Use XOR to materialize the "0" value (r215594).
e8757c5 Reapply [FastISel][X86] Emit more efficient instructions for integer constant materialization (r215593).
78f686d Reapply [FastISel][AArch64] Make use of the zero register when possible (r215591).
7d84c8e ADT: Unit test for ArrayRef::equals change in r215986
bb69ce8 IR: De-duplicate code for replacing operands in place
f08cddc Reapply [FastISel] Let the target decide first if it wants to materialize a constant (215588).
f2b844d Fix a pair of use after free. Should bring the bots back.
548f2b6 Don't own the buffer in object::Binary.
2ac376b Hide two different AlignMode enums in anonymous namespaces. This bug is reported by UBSan.
8308f0e Revert "Small refactor on VectorizerHint for deduplication"
8841fb5 [FastISel][AArch64] Fix a few BuildMI callsites where the result register was added as an operand register.
dca1265 Small refactor on VectorizerHint for deduplication
e3cea5f Docs: add documentation for the coverage mapping format.
9b29ff9 Modernize the .ll parsing interface.
2788345 CodingStandards: Document std::equal misbehaviour
7116af6 Reapply r215966, r215965, r215964, r215963, r215960, r215959, r215958, and r215957
8c20a93 ADT: Avoid using std::equal in ArrayRef::equals
93710f0 Reverting r215966, r215965, r215964, r215963, r215960, r215959, r215958, and r215957 (these commits all rely on previous commits) due to build breakage. These commits cause failed assertions when testing Clang using MSVC 2013. The asserts are triggered from the std::equal call within ArrayRef::equals due to being passed invalid input (ArrayRef.begin() is returning a nullptr which is problematic).
109447f [mips] Add assembler support for .set arch=x directive.
ecdb0ab InstCombine:  ((A & ~B) ^ (~A & B)) to A ^ B
7ce4ac1 Const-correct and prevent a copy of a SmallPtrSet.
25fc910 Prevent use of the implicit copy constructor on SmallPtrSetImpl. An accidental copy caused my SmallPtrSet->SmallPtrSetImpl conversion commit to fail the other day.
be63d58 test commit (spelling correction)
3f4ed32 Make it explicit that ExecutionEngine takes ownership of the modules.
4d48c3f IR: Reduce RAUW traffic in ConstantVector
3b666f3 IR: Fix ConstantArray::replaceUsesOfWithOnConstant()
6238162 IR: Factor out replaceUsesOfWithOnConstantImpl(), NFC
45d53fd IR: Split up Constant{Array,Vector}::get(), NFC
6290308 [X86, X87 stackifier] Do not mark an operand of a debug instruction as kill.
1cfbb63 IR: Reduce RAUW traffic in ConstantExpr
fe0bf8f IR: Replace uses of ConstantAggrUniqueMap with ConstantUniqueMap
f2534dd Remove extraneous typenames from r215957
78c0b35 IR: Rewrite ConstantUniqueMap
79f9f85 IR: Declare LookupKey right before its use, NFC
fd0a813 IR: ArrayRef-ize {Insert,Extract}ValueConstantExpr constructors
783d16f Prevent clang-format from moving the namespace closing brace, NFC
6b86325 NVPTX: Use RAUW instead of reinventing the wheel
1658978 LLParser: Handle BlockAddresses on-the-fly
36c1508 verify-uselistorder: Call verifyModule() and improve output
f359f7e Use a range loop. NFC.
0282239 These classes only need a StringRef, not a MemoryBuffer.
2851337 Delete unused method.
0acd421 Answer to Philip Reames comments
6c0e1e0 Weak relaxing of the constraints on atomics in MemoryDependencyAnalysis
08f77a9 [MCJIT] Respect target endianness in RuntimeDyldMachO and RuntimeDyldChecker.
f759032 Make llvm-objdump handle both arm and thumb disassembly from the same Mach-O file with -macho, the Mach-O specific object file parser option.
0526d16 [X86][Haswell][SchedModel] Tidy up.
48e3a27 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Floating Point XMM and YMM instructions. Sub-group: Other instructions.
7af88ec [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Floating Point XMM and YMM instructions. Sub-group: Logic instructions.
487ecab [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Floating Point XMM and YMM instructions. Sub-group: Math instructions.
3d6a30e [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Floating Point XMM and YMM instructions. Sub-group: Arithmetic instructions.
25529b3 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Floating Point XMM and YMM instructions. Sub-group: Conversion instructions.
540b4f6 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Floating Point XMM and YMM instructions. Sub-group: Move instructions.
7bdfd1b [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer MMX and XMM instructions. Sub-group: Other instructions.
0c5071f [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer MMX and XMM instructions. Sub-group: Logic instructions.
1cb132f [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer MMX and XMM instructions. Sub-group: Arithmetic instructions.
84cab94 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer MMX and XMM instructions. Sub-group: Move instructions.
f8da7e5 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Floating Point x87 instructions. Sub-group: Math instructions.
435fa2b [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Floating Point x87 instructions. Sub-group: Arithmetic instructions.
a49b463 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Floating Point x87 instructions. Sub-group: Move instructions.
d2ea316 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer instructions. Sub-group: Other instructions.
184c0f8 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer instructions. Sub-group: Synchronization instructions.
2a2fcc1 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer instructions. Sub-group: String instructions.
0cccab7 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer instructions. Sub-group: Control transfer instructions.
29b31c6 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer instructions. Sub-group: Logic instructions.
3f17d37 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer instructions. Sub-group: Arithmetic instructions.
94ce368 [X86][Haswell][SchedModel] Add architecture specific scheduling models. Group: Integer instructions. Sub-group: Move instructions.
af2fa71 Make use of isAtLeastRelease/Acquire in the ARM/AArch64 backends
71493b7 Disabling an MSVC warning ('var' : definition from the for loop is ignored; the definition from the enclosing scope is used) which will trigger false positives more than true positives.
eb92210 Teach the AArch64 backend to handle f16
802d420 [ARM,AArch64] Do not tail-call to an externally-defined function with weak linkage
9735ccb AVX-512: Fixed a bug in emitting compare for MVT:i1 type. Added a test.
9f92467 Silencing an MSVC warning about loop variable conflicting with a variable from an outer scope. NFC.
049ffbb TableGen: allow use of uint64_t for available features mask.
56c15de Added forgotten noexcept.
db77b82 Revert "Repace SmallPtrSet with SmallPtrSetImpl in function arguments to avoid needing to mention the size."
f06c707 Repace SmallPtrSet with SmallPtrSetImpl in function arguments to avoid needing to mention the size.
6de46b5 Use copy initialization to initialize std::unique_ptr.
4570cfa ARM: mark missing functions from RTABI
f15492f ARM: improve RTABI 4.2 conformance on Linux
c5b4130 ARM: whitespace
9f52e1d Remove unused member variable.
2b861c3 Return a std::uinque_ptr. Every caller was already using one.
b5a6adc Convert an ownership comment with std::uinque_ptr.
822199b Pass a std::uinque_ptr to ParseAssembly to make the ownership explicit. NFC.
283c82a getLazyIRModule always takes ownership. Make that explicit.
40ef179 Return a std::unique_ptr to make the ownership explicit.
9ea1ec3 Don't repeat the function name in comments. NFC.
21a2b5f Don't repeat names in comments. NFC.
5535fca Revert: r215698 - Current implementation of c.cond.fmt instructions only accept default cc0 register...
70d641f ARM: correct toggling behaviour
78e8d52 llvm-objdump: don't print relocations in non-relocatable files.
fad339d Remove a redundant "public:". NFC.
61760ce BumpPtrAllocator: remove 'no slabs allocated yet' check
db7cdc8 Add a non-templated ELFObjectFileBase class.
4c511cd Fix an off-by-one bug in the target independent llvm-objdump.
36d685d Reverted last commit
8b88009 Reverted last commit
a73ac1f Added a table for intrinsics on X86. It should remove dosens of lines in handling instrinsics (in a huge switch) and give an easy way to add new intrinsics. I did not completed to move al intrnsics to the table, I'll do this in the upcomming commits.
7a0201c Remove an InstCombine that transformed patterns like (x * uitofp i1 y) to (select y, x, 0.0) when the multiply has fast math flags set. While this might seem like an obvious canonicalization, there is one subtle problem with it.  The result of the original expression is undef when x is NaN (remember, fast math flags), but the result of the select is always defined when x is NaN.  This means that the new expression is strictly more defined than the original one.  One unfortunate consequence of this is that the transform is not reversible! It's always legal to make increase the defined-ness of an expression, but it's not legal to reduce it.  Thus, targets that prefer the original form of the expression cannot reverse the transform to recover it.  Another way to think of it is that the transform has lost source-level information (the fast math flags), which is undesirable.
48c67ed [x86] Fix an indentation goof in a prior commit. Should have re-run clang-format.
120b4c6 [shuffle] Teach the shufflevector fuzzer to support fixed element types.
0ac5626 llvm/test/CodeGen/X86/fmul-combines.ll: Appease Windows x64. <4 x float> is passed by stack.
5f8a9ae Fix fmul combines with constant splat vectors
a3805f1 [x86] Teach lots of the new vector shuffle lowering to use UNPCK instructions for blend operations at 128 bits. This was a serious hole in our prior blend lowering.
3bbb4b1 InstCombine: Fix a potential bug in 0 - (X sdiv C)  -> (X sdiv -C)
cb698b2 InstCombine: Combine mul with div.
f1aba61 arm asm: Let .fpu enable instructions, PR20447.
e1167f1 [LIT] Move display of unsupported and xfail tests to summary.
1d8c9d9 BitcodeReader: Only create one basic block for each blockaddress
1e97329 UseListOrder: Correctly count the number of uses
7a5cb43 IR: Don't add inbounds to GEPs of extern_weak variables
89cea3c [DAGCombiner] Improve the folding of target independet shuffles to Undef.
5dc48ac [PowerPC] Mark fixed-offset byvals as pointed-to by IR values
227df4b Make isAliased property for fixed-offset stack objects adjustable
bdd8b6b [PowerPC] Darwin byval arguments are not immutable
855d602 Revert "[Support] Promote cl::StringSaver to a separate utility"
f0d509a Get rid of dead code: SelectAtomic64 in X86ISelDAGtoDAG.cpp
3f8a26f [Support] Promote cl::StringSaver to a separate utility
f11a5fc Add two helper functions: isAtLeastAcquire, isAtLeastRelease
c51ec91 Fix typos in comments
cc921d6 [AArch32] Add support for FP rounding operations for ARMv8/AArch32. Phabricator Revision: http://reviews.llvm.org/D4935
4a8a0f2 [Option] Support MultiArg in --help
0549fc2 Set comdats when lazily linking functions.
9ad3f9b [FastISel][AArch64] Fix a latent bug in floating-point materialization.
db9a5cb Reapplying [FastISel][AArch64] Cleanup constant materialization code. NFCI.
c86e55e R600/SI: Move all fabs / fneg handling to patterns
0498d07 R600/SI: Use source modifiers for f64 fneg
c882fc7 R600/SI: Use source modifier for f64 fabs
b5cb5e2 R600/SI: Refactor fneg / fabs patterns
2726e7d Fix the build with MSVC 2013 after new shuffle code
34ef4cd R600/SI: Fix offset folding in some cases with shifted pointers.
92ee945 [x86] Teach the new AVX v4f64 shuffle lowering to use UNPCK instructions where applicable for blending.
f92cdd6 [FastISel] Remove an performance debugging assert.
5bc44c7 R600/SI: Add intrinsic for ldexp
e2bb4f9 [FastISel][ARM] Fix unit test from r215682.
ed76ca7 R600/SI: Implement isLegalAddressingMode
d84561b ARM: Fix and re-enable load/store optimizer for Thumb1.
713d9cb ARM load/store optimizer: Compute BaseKill correctly.
7b0f4a8 [FastISel][ARM] Fix a think-o in my previous commit (r215682).
d37ec47 Introduce a helper to combine instruction metadata.
f36437d Make EmitAbsValue an static helper.
607e03b Delete dead code. NFC.
4d15a24 Make EmitDwarfSetLineAddr an static helper. NFC.
305a51f Make BuildSymbolDiff an static helper.
cef3ad6 [AArch64] Narrow arguments passed in wrong position on the stack in big-endian mode.
abe3774 Make ForceExpAbs an static helper.
216fdfe Add a helper to MCExpr for when an expression is know to be absolute.
a348fc7 Remove HasLEB128.
44beebe [PPC64] Add test case for r215685.
5a649ba PPC: Clean up pointer casting, no functionality change.
12e69a0 [x86] Add the initial skeleton of type-based dispatch for AVX vectors in the new shuffle lowering and an implementation for v4 shuffles.
d996c5b [x86] Teach the instruction printer to decode immediate operands to BLENDPS, BLENDPD, and PBLENDW instructions into pretty shuffle comments.
f52efce ARM: implement MRS/MSR (banked reg) system instructions.
69d0bd6 Remove testcase from README which we didn't get. We do get it now.
30bb8f6 Current implementation of c.cond.fmt instructions only accept default cc0 register. This patch enables the instruction to accept other fcc registers. The aliases with default fcc0 registers are also defined.
437928b [x86] Remove the duplicated code for testing whether we can widen the elements of a shuffle mask and simplify how it works. No functionality changed now that the bug that was here has been fixed.
407460e [LIT]Correct name of global lit configuration object to be lit_config (not lit).
886f010 [x86] Fix the very broken formation of vpunpck instructions in the target-specific shuffl DAG combines.
906ae95 Don't print comments to an object streamer :-)
746b906 EmitAbsValue is the same as EmitValue on non-darwin. NFC.
477f28c [x86] Fix PR20540 where the x86 shuffle DAG combiner had completely broken logic for merging shuffle masks in the face of SM_SentinelZero mask operands.
feb45e3 [PPC64] Add missing dependency on X2 to LDinto_toc.
266ecac [FastISel][ARM] Fall-back to constant pool loads when materializing an i32 constant.
e1e7862f Copy noalias metadata from call sites to inlined instructions
6398a7f Revert several FastISel commits to track down a buildbot error.
3f8f30f Fix whitespace error from r215279, NFC
41c5e68 [AVX512] Add test for FMA masking instrinsics
90eb948 [AVX512] Switch FMA intrinsics to the masking version
b27f7ac [X86] Break out logic to map FMA Intrinsic number to Opcode
e9565b2 [AVX512] Add enum for the static rounding types
6360552 [AVX512] Break out the logic to lower masking intrinsics
265d201 [AVX512] Add masking variant for the FMA instructions
14bc045 Revert "[FastISel][AArch64] Add support for more addressing modes."
b1b9953 Add noalias metadata for general calls (not just memory intrinsics) during inlining
d8b0f99 Testing commit access.
3b41039 [Reassociation] Add support for reassociation with unsafe algebra.
9615d70 optimize vector fneg of bitcasted integer value
1c9cace Delete support for AuroraUX.
1ab70ef Silencing some -Wcast-qual warnings and removing some C-style casts at the same time. NFC.
f6964a7 Silencing an MSVC C4334 warning ('<<' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)). NFC.
0b2081a [mips] Improve robustness of some tests.
cad1711 [x86] Begin stubbing out the AVX support in the new vector shuffle lowering scheme.
cdcacd7 [mips][microMIPS] MicroMIPS Compact Branch Instructions BEQZC and BNEZC Differential Revision: http://reviews.llvm.org/D3545
43d6849 Make message about building sphinx documentation with CMake more informative by stating where the output is going.
550abf8 Add SPHINX_WARNINGS_AS_ERRORS CMake option to allow warnings to not be treated as errors (which is still the default). This is useful when working on documentation that has existing errors.
cb43f81 [mips] Add assembler support for the "la $reg,symbol" pseudo-instruction.
74ad595 [mips] Rename [gs]etCanHaveModuleDir to more natural names
369e0ef [SDAG] Fix a bug in the DAG combiner where we would fail to return the input node after manually adding it to the worklist and using CombineTo.
eb323b2 InstCombine: ((A | ~B) ^ (~A | B)) to A ^ B
8c651f5 AArch64: Silence warning in AArch64FastISel
923556f Added InstCombine Transform for ((B | C) & A) | B -> B | (A & C)
0086358 MC: AsmLexer: handle multi-character CommentStrings correctly
e8d6e37 [MCJIT] Support DisableSymbolSearching and InstallLazyFunctionCreator in MCJIT.
14ee003 [SDAG] Fix a case where we would iteratively legalize a node during combining by replacing it with something else but not re-process the node afterward to remove it.
53f3421 Remove llvm_headers_do_not_build for the benefit of XCode and Visual Studio users.
b2b79cd [X86] Fix the value of the low mask for the lowering of MUL_LOHI for v4i32. Found by code inspection.
d0ddfb0 [AArch64, fast-isel] Fall back to SelectionDAG to select tail calls.
8c9a031 [FastISel][AArch64] Add support for more addressing modes.
b677a87 [FastISel][X86] Add large code model support for materializing floating-point constants.
0701e5d [FastISel][X86] Use XOR to materialize the "0" value.
f245d9a [FastISel][X86] Emit more efficient instructions for integer constant materialization.
dc408e8 [FastISel][AArch64] Make use of the zero register when possible.
eb1c51f [FastISel] Let the target decide first if it wants to materialize a constant.
2205044 [MachineCombiner] Removal of dangling DBG_VALUES after combining [20598]
a0c81f0 [FastISel][X86] Refactor constant materialization. NFCI.
0474237 [FastISel][ARM] Use MOVT/MOVW if the subtarget requests it.
c76c3fe [FastISel][ARM] Fix a bug in the integer materialization code.
eac0bae [FastISel][AArch64] Cleanup constant materialization code. NFCI.
4e917a2 [Cleanup] Utility function to erase instruction and mark DBG_Values
4912863 [MachineDominatorTree] Provide a method to inform a MachineDominatorTree that a critical edge has been split. The MachineDominatorTree will when lazy update the underlying dominance properties when require.
4551342 Fix (re-)creation of unittest lit.site.cfg for clang-tools-extra.
d3fa093 utils: Fix segfault in flattencfg
f7a325b Initialize FlattenCFG pass
c73a086 Simplify memory ownership with std::unique_ptr.
d6448b2 Simplify ownership with std::unique_ptr. NFC.
bd949ee R600: Correctly set the src value offset for scalarized kernel args
00e08fc Canonicalize header guards into a common format.
f58eecf Test commit, remove trailing whitespace
05a76eb [DAGCombiner] Improved target independent vector shuffle combine rule.
48017d1 [mips] Refactor calls to setCanHaveModuleDir.
adc58a6 [shuffle] Stand back! I'm about to (try to) do math!
3c02eb1 Asserting that the call to chdir succeeds in this test. Fixes some -Wunused-result warnings.
701073e [optnone] Make the optnone attribute effective at suppressing function attribute and function argument attribute synthesizing and propagating.
8b77c00 Silence a -Wparenthesis warning with these asserts. NFC.
2322024 [SKX] Extended non-temporal load/store instructions for AVX512VL subsets.
5d16d6c Re-commit: [mips] Implement .ent, .end, .frame, .mask and .fmask.
ba20fb1 [shuffle] Make the seed an optional component and add support for letting the python very directly compute a UUID.
5e5aa94 Revert r215415 which causse MSan to crash on a great deal of C++ code. I've followed up on the original commit as well.
9188011 [shuffle] Teach the shuffle fuzzer to fuzz blends, including forming a tree of inputs to blend iteratively together.
4c97c14 AVX-512: Fixed a bug in shufflevector lowering. PALIGNR instruction does not exist in AVX-512F set. Added a test.
7ef167a InstCombine: Combine (xor (or %a, %b) (xor %a, %b)) to (add %a, %b)
59ee88d [NVPTX] Remove MemIntrinsicSDNode/MemSDNode duplicate checking
12a0c0b Fix examples of "named metadata" (some of which isn't named).
08cfa8c [shuffle] Tweak the shuffle fuzzer to support bigger seeds. I'm currently using UUIDs to seed this in order to scan a bigger range.
6bb093b [x86] Rewrite a core part of the new vector shuffle lowering to handle one pesky test case correctly.
e693d3c [PowerPC] Implement PPCTargetLowering::getTgtMemIntrinsic
695e914 Fix classof for ISD::INTRINSIC_W_CHAIN and INTRINSIC_VOID
4c9467e [AVX512] Verify the code generated for the intrinsic _mm512_broadcastsd_pd
8ebea01 Fix -Wsign-compare warnings
151f8ce APInt: Make self-move-assignment a no-op to fix stage3 clang-cl
ee8b879 Remove a condition that can never be true, as wittnessed by the assert above.
6ea7f36 [AVX512] Handle valign masking intrinsic via C++ lowering
00139e5 Allwo bitcast + struct GEP transform to work with addrspacecast
3c57820 R600: Use optimized 24bit path in udivrem
1001344 R600: Remove unused code.
b40562c R600: Use i24 optimized path for SREM
693defb Fix a parentheses warning introduced in r215394.
49135bb Don't upgrade global constructors when reading bitcode
01c6ad0 fixed typos
8b14a49 Make the test a bit more strict.
f531e92 Add a plugin testcase for merging weak variables.
87d7e90 llvm/test/TableGen/*Foreach*.td: Remove XFAIL:vg_leak. They have not been failing since r215176.
0dbff88 Reverted my "Testing commit access" commit.
589e61a Testing commit access.
48bfab8 llvm-objdump: print contents of MachO __unwind_info sections
99cd10f Have MachineRegisterInfo take and store the MachineFunction it was created for rather than the TargetMachine since we only needed the TM for the subtarget and we can get that from the MF.
392f7d9 [MachineCombiner] Fix for ICE bug 20598
2925be5 IR: Print a newline when dumping Types
601bf96 [OCaml] Expose Llvm.get_operand_use.
7cfad3e [LLVM-C] Expose User::getOperandUse as LLVMGetOperandUse.
a6bd9bd DebugLocEntry: Restore the comparison predicate from before the refactoring in 215384. This way it can unique multiple entries describing the same piece even if they don't have the exact same location. (The same piece may get merged in and be added from OpenRanges). There ought to be a more elegant solution for this, though.
2376160 msan: Handle musttail calls
2970677 Move helper for getting a terminating musttail call to BasicBlock
524cd2e Revert "Partially revert r214761 that asserted that all concrete debug info variables had DIEs, due to a failure on Darwin."
bc7206a [MachineSink] Improve the compile time by preserving the dominance information as long as possible.
4935833 [x86] Fold extract_vector_elt of a load into the Load's address computation.
79fb67b Add a couple of convenience accessors to DebugLocEntry::Value to further simplify common usage patterns.
61b3abb R600/SIInstrInfo.cpp: Suppress an warning. [-Wunused-variable]
acd4d8e [ARM] Mark VMOVDRR with the RegSequence property and implement the related target hook.
74f89fe Make these DebugLocEntry::Value comparison operators friend functions as suggested by dblaikie in a comment on r215384.
ce9ccc0 Add missing closing namespace comment.
3392b33 AArch64: Tidy up a few comments.
e8be18e InstCombine: Combine (add (and %a, %b) (or %a, %b)) to (add %a, %b)
13f4476 R600/SI: Add a ComplexPattern for selecting MUBUF _OFFSET variant
f56c55d R600/SI: Add an _OFFEN variant MUBUF_STORE_* and use it for scratch writes
68e9ebb R600/SI: Add check for low 32 bits of encoding to mubuf tests
728d0e4 R600/SI: Clear lds bit on MUBUF instructions used for private stores
0df264a R600/SI: Fix broken test
1b42540 Add isRegSequence property.
7f4f923 [AArch64] Fix registerAllocator assigns same register for base and wback in pre/post-index load and store.
7189d07 Debug info: Remove an obsolete constructor from DebugLocEntry.
db72188 Debug info: Modify DebugLocEntry::addValue to take multiple values so it only has to sort/unique values once per batch.
59b6049 Debug info: Further simplify the implementation of buildLocationList by getting rid of the redundant DIVariable in the OpenRanges pair.
b89cf2a Debug Info: Move the sorting and uniqueing of pieces from emitLocPieces() into buildLocationList(). By keeping the list of Values sorted, DebugLocEntry::Merge can also merge multi-piece entries.
0ca6b9f Debug info: Refactor DebugLocEntry's Merge function to make buildLocationLists easier to read.
6c2be4f ARM: try harder to detect non-IT eligible instructions
b2d2f28 Fix using -plugin-opt=apiflie when also using -plugin-opt=emit-llvm.
7c0fa0c Correct a missing RUN line in the ARM codegen test for fneg ops. We should also explicitly specify +/-neonfp.
d7f37d8 Add missing test for r215031
b81e6cf MC: Diagnose an unexpected token in COFF .section instead of asserting
a7f0941 Fix typos: * libaries => libraries * avaiable => available
69ca26c Fix use of uninitialized variable.
cb7da63 Use an early return. NFC.
e20f611 Revert r215359 - [mips] Implement .ent, .end, .frame, .mask and .fmask assembler directives
36cf28e [mips] Implement .ent, .end, .frame, .mask and .fmask assembler directives
efa23d3 PeepholeOptimizer: make parameter ref to SmallPtrSetImpl
4d97a1a Make this SmallVector size a power of two as suggested by Chandler

git-subtree-dir: src/llvm
git-subtree-split: 8f2394e5af85cea476fb6b47958e4d549a050973
Update llvm
Merge commit 'a6ef4eb615841daec2cbd93d981716420158f5a1' into develop
Squashed 'src/musl/' changes from 4fe57ca..70729de

70729de add static_assert and hide noreturn, alignas, alignof from C++
18dde00 add C11 floating-point characteristic macros to float.h
8d998a7 add malloc_usable_size function and non-stub malloc.h
f5fb20b refrain from spinning on locks when there is already a waiter
97a7512 spin before waiting on futex in mutex and rwlock lock operations
2ff714c spin in sem_[timed]wait before performing futex wait
8b3d7d0 fix build error on arm due to new a_spin code
b8a9c90 sanitize number of spins in userspace before futex wait
ea818ea add working a_spin() atomic for non-x86 targets
5345c9b fix false ownership of stdio FILEs due to tid reuse
b8ca9eb fix fallback checks for kernels without private futex support
a629328 fix use of uninitialized memory with application-provided thread stacks
321f4fa add max_align_t definition for C11 and C++11
4992ace further simplify and optimize new cond var
2c4b510 simplify and improve new cond var implementation
37195db redesign cond var implementation to fix multiple issues
4220d29 fix possible failure-to-wake deadlock with robust mutexes
de7e99c make pointers used in robust list volatile
d338b50 fix robust mutex unrecoverable status, and related clean-up
fffc5cd fix false ownership of mutexes due to tid reuse, using robust list
25d12fc optimize locking against vm changes for mmap/munmap
b092f1c enable private futex for process-local robust mutexes
bc09d58 make futex operations use private-futex mode when possible
d86af2a fix #ifdef inside a macro argument list in __init_tls.c
d146d4d fix CPU_EQUAL macro in sched.h
b04971d add inline isspace in ctype.h as an optimization

git-subtree-dir: src/musl
git-subtree-split: 70729de075bfe3138b05af91ecefcd5786bed5ac
Update musl
Merge commit 'dec75d47c4801ae6c84e8268edd50da97d9d964c' into develop