Squashed 'llvm/' changes from 3560137..2a25daa

2a25daa [LCG] Switch a weird do/while loop that actually couldn't fail its condition into an obviously infinite loop with an assert about the degenerate condition. No functionality changed.
01f2134 [ADT] Generalize pointee_iterator to smart pointers by using decltype. Based on review feedback from Dave on the original patch.
fda5e19 X86: Don't transform shifts into ands when the sign bit is tested.
1ce40b3 Remove dead inline function that doesn't compile
710c1a4 Add 'musttail' marker to call instructions
870200a Fix rdtsc.ll test to match r8 on win64
d24fc95 Remove C++11ism (specializing a template in a surrounding namespace) to appease the buildbots.
807a3c2 Debug info: Let dbg.values inserted by LowerDbgDeclare inherit the location of the dbg.value. This gets rid of tons of redundant variable DIEs in subscopes.
778aacb [modules] "Specialize" a function by actually specializing a function template rather than by adding an overload and hoping that it's declared before the code that calls it. (In a modules build, it isn't.)
f28f471 Debug info for optimized code: Support variables that are on the stack and described by DBG_VALUEs during their lifetime.
35f9e1a [X86] Add support for Read Time Stamp Counter x86 builtin intrinsics.
2dbbd17 R600/SI: Use address space in allowsUnalignedMemoryAccesses
45966fa Spread some const around for non-mutating uses of MCSymbolData.
25fb047 [mips] Remove non-ascii character.
d8b6fe2 AArch64/ARM64: add ARM64 runs to more MC tests.
7b59710 AArch64/ARM64: run AArch64 NEON MC tests through ARM64 too.
344569a Fix memory leak of MCSymbolData in MCAsmStreamer.
a05d37e AArch64: print NEON lists with a space.
23a4885 [asan] Use MCInstrInfo in inline asm instrumentation.
c80e567 AArch64/ARM64: enable remaining MC elf tests.
d4daf17 AArch64/ARM64: allow negative addends, at least on ELF.
421c65b ARM64: support relocated "TBZ/TBNZ" instructions.
332497f AArch64/ARM64: support relocated ADR instruction
4fec407 AArch64/ARM64: add support for :abs_gN_s: MOVZ modifiers
f909da2 ARM64: shut up warning about variable only used in assert.
d4b4f40 AArch64/ARM64: disentangle the "B.CC" and "LDR lit" operands
92f4b34 AArch64/ARM64: enable some MC tests on ARM64
00b214a AArch64/ARM64: port bitfield test to ARM64.
b62ba5e AArch64/ARM64: implement BFI optimisation
fe6f4e4 AArch64/ARM64: port more tests
befdb1a [LCG] Incorporate the core trick of improvements on the naive Tarjan's algorithm here: http://dl.acm.org/citation.cfm?id=177301.
6c7af1b [LCG] Rotate logic applied to the top of the DFSStack to instead be applied prior to pushing a node onto the DFSStack. This is the first step toward avoiding the stack entirely for leaf nodes. It also simplifies things a bit and I think is pointing the way toward factoring some more of the shared logic out of the two implementations.
9e9ec34 [LCG] Re-order expectations to provide more useful output when debugging an issue. This way you see that the number of nodes was wrong before a crash due to accessing too many nodes.
fd46b84 [asan] Fix instrumentation of x86 intel syntax inline assembly.
bcb39a4 [LCG] Switch the parent SCC tracking from a SmallSetVector to a SmallPtrSet. Currently, there is no need for stable iteration in this dimension, and I now thing there won't need to be going forward.
9e65c46 [LCG] We don't actually need a set in each SCC to track the nodes. We can use the node -> SCC mapping in the top-level graph to test this on the rare occasions we need it.
25209ab [CLNUP] Test commit. Remove newline.
f43438b X86: Emit test instead of constant shift + compare if the shift result is unused.
63ed439 [LCG] Switch the SCC's parent iterators to be value iterators rather than pointer iterators.
0698b2b Allow vectorization of few missed llvm intrinsic calls in BBVectorizor by handling them in isVectorizableIntrinsic function.
3c1f8e0 [ADT] Attempt to appease another MSVC oddity by moving the injected class name usage into a context we can put typename on it.
e703fcb [C++] Use 'nullptr'.
2c0470e [ADT] Try to appease MSVC by sinking the enable_if from a default template argument to a default argument to the constructor.
5c025f2 Fix for PR18921, "vmov" part. Added support for bytes replication feature, so it could be GAS compatible.
f627b1e Use the shiny new iterator adaptor tool to implement the value_op_iterator.
18cd5b1 [ADT] Factor out the facade aspect of the iterator_adaptor_base into its own CRTP base class for more general purpose use. Add some clarifying comments for the exact way in which the adaptor uses it. Hopefully this will help us write increasingly full featured iterators. This is becoming important as they start to be used heavily inside of ranges.
beee61d [ADT] Add a generic iterator utility for adapting iterators much like Boost's iterator_adaptor, and a specific adaptor which iterates over pointees when wrapped around an iterator over pointers.
c118614 Remove unused parameter
a0d6bcc Remove the intermediate AccelTypes maps in DWARF units.
e33575f Remove the intermediate AccelNamespace maps in DWARF units.
96363d5 [InstCombine][x86] Constant fold psll intrinsics.
b536101 Remove the intermediate AccelObjC maps in DWARF units
cd9f6b8 Optimize some special cases for SSE4a insertqi
8bd9405 Handle addrspacecast when looking at memcpys from globals
9f2150c [LCG] Normalize the post-order SCC iterator to just iterate over the SCC values rather than having pointers in weird places.
e3273c5 [LCG] Remove two unused typedefs from the iterators.
23615f8 And actually use the DwarfDebug::AccelNames to emit the names.
b8ebb28 More formatting...
c8bd54b Remove intermediate accelerator table for names.
306d5ba [LCG] Switch the primary node iterator to be a *much* more normal C++ iterator, returning a Node by reference on dereference.
807c1bc [LCG] Make the insertion and query paths into the LCG which cannot fail return references to better model this property.
31d2477 [LCG] Switch the SCC lookup to be in terms of call graph nodes rather than functions. So far, this access pattern is *much* more common. It seems likely that any user of this interface is going to have nodes at the point that they are querying the SCCs.
e69ea7d DwarfAccelTable: Remove trivial dtor and simplify construction with an array.
e45bc94 Use std::less instead of < in array_pod_sort's default comparator.
8850866 [LCG] Switch the primary SCC building code to use the negative low-link values rather than an expensive dense map query to test whether children have already been popped into an SCC. This matches the incremental SCC building code. I've also included the assert that I put there but updated both of their text.
646d516 MC: disable test on thumbv7-windows
de2703d llvm-cov: Add support for gcov's --long-file-names option
edcd7c7 llvm-cov: Allow short options to be grouped
ac30dfd MC: move test from Generic to COFF
dc71f09 MC: move ARM64 test from AArch64 directory
49babc9 MC: honour IMAGE_SCN_CNT_INITIALIZED_DATA
08e5ef2 Move the AddressPool from DwarfFile to DwarfDebug.
2bff668 clang-format for my previous commit (I keep forgetting... )
16fc3db Use pointer size function where only a pointer is expected
e384ec7 Separate out the DWARF address pool into its own type/files.
b5a391a Remove more default address space argument usage.
28a24ca [ARM64] Fix the information we give to the peephole optimizer for comparison. ANDS does not use the same encoding scheme as other xxxS instructions (e.g., ADDS). Take that into account to avoid wrong peephole optimization.
0f31056 Don't use default address space arguments in GlobalOpt
99bf4b7 [python] Fix python bindings tests
6cd6974 R600: Add a test that used to be broken that I forgot to add
53008d6 clang-format r207010
0e92fe9 Convert test to FileCheck
3ce58b3 [X86] Fix missing/wrong scheduling model found by code inspection.
d25fec6 llvm-build: Get rid of 'import *'
1188a75 Split out DwarfFile from DwarfDebug into its own .h/.cpp files.
08a4d0b ProfileData: Avoid unnecessary copies of CounterData
94a9772 [yaml2obj][ELF] Remove unnecessary space between namespace name and colons.
2820f73 [ASan] Move the shadow range on 32-bit iOS (and iOS Simulator) to 0x40000000-0x60000000 to avoid address space clash with system libraries. The solution has been proposed by tahabekireren@gmail.com in https://code.google.com/p/address-sanitizer/issues/detail?id=210 This is also known to fix some Chromium iOS tests.
e0f15f8 Remove dead code in instcombine.
d5a7c3f X86AsmParser.cpp: Fix memory leak at replacing movsd to movsl.
c6c61c3 cl::ParseCommandLineOptions(): Use StringRef to receive sys::path::filename() instead of std::string.
db3d12f Mark llvm/test/BugPoint/compile-custom.ll as XFAIL:vg_leak.
5473dc7 Centralize handling of ELF_Other_ThumbFunc. No functionality change.
da2d85c Fix handling of missing DataLayout in sanitizers.
8b9fe76 Remove AssemblyAnnotationWriter from NamedMDNode::print.
d6af41b Create MCTargetOptions.
e8276ef [yaml2obj][ELF] Add a virtual destructor to the ELFYAML::Section class to prevent memory leaks.
e42618b [LCG] Add the first round of mutation support to the lazy call graph. This implements the core functionality necessary to remove an edge from the call graph and correctly update both the basic graph and the SCC structure. As part of that it has to run a tiny (in number of nodes) Tarjan-style DFS walk of an SCC being mutated to compute newly formed SCCs, etc.
c2547d0 [ARM64] Fix formatting.
b961911 [LCG] Implement Tarjan's algorithm correctly this time. We have to walk up the stack finishing the exploration of each entries children before we're finished in addition to accounting for their low-links. Added a unittest that really hammers home the need for this with interlocking cycles that would each appear distinct otherwise and crash or compute the wrong result. As part of this, nuke a stale fixme and bring the rest of the implementation still more closely in line with the original algorithm.
57683b8 [ARM64] Add a big endian version of the ARM64 target machine, and update all users.
4231346 Fixing typos in commit r206957
8d91579 [LCG] Add some accessor methods to the SCC to allow iterating over the parents of an SCC, and add a lookup method for finding the SCC for a given function. These aren't used yet, but will be used shortly in some unit tests I'm adding and are really part of the broader intended interface for the analysis.
2e5f39e [X86] Silvermont new scheduler model This model is not final and work is still in progress. However there are substantial improvements on integer tests mainly because of better RAL with new scheduler.
bf255f5 [LV] Statistics numbers for LoopVectorize introduced: a number of analyzed loops & a number of vectorized loops. Use -stats to see how many loops were analyzed for possible vectorization and how many of them were actually vectorized. Patch by Zinovy Nis
07c2241 [LCG] Add a unittest for the LazyCallGraph. I had a weak moment and resisted this for too long. Just with the basic testing here I was able to exercise the analysis in more detail and sift out both type signature bugs in the API and a bug in the DFS numbering. All of these are fixed here as well.
3890a42 X86Disassembler - fixed a bug in immediate print
8c5b314 Integrated assbemler, macros: added 'vararg' argument qualifier support. Note, currently we have no 'vararg' support for darwin macros.
81ea345 [ARM64] Enable feature predicates for NEON / FP / CRYPTO.
b001573 [LCG] Hoist the logic for forming a new SCC from the top of the DFSStack into a helper function. I plan to re-use it for doing incremental DFS-based updates to the SCCs when we mutate the call graph.
b3112f6 [LCG] Switch the Callee sets to be DenseMaps pointing to the index into the Callee list. This is going to be quite important to prevent removal from going quadratic. No functionality changed at this point, this is one of the refactoring patches I've broken out of my initial work toward mutation updates of the call graph.
aaff72b Fix test/CodeGen/arm.ll
1a4a8b9 Requisite reformatting for previous commit.
875f90e Push memory ownership of DwarfUnits into clients of DwarfFile.
4235754 [docs] Add a note to docs/README.txt
faf363f Change the prototype for MCContext::FatalError() so it can be called from places like MCCodeEmitter() in the MC backend when the MCContext is const.
0eb05e2 Use std::unique_ptr to handle ownership of DwarfUnits in DwarfFile.
44fa7c3 Whitespace
7ff1eb2 No need to check condition after grow()
8c8fae7 Follow aliases when determining if a symbol is thumb.
8dd58d1 Replace loops using goto with plain while loops
b95412c [Constant Hoisting] Materialize the constant before the cloned cast instruction.
0db2ba1 [Constant Hoisting] Print the instructions in the correct order for debugging. No functional change.
1021014 Fix DataLayout::operator==().
29c96f1 Fix the assembler to print a better relocatable expression error diagnostic that includes location information.
795e462 Simplify address pool index assignment.
3682fda R600: Emit error instead of unreachable on function call
baf1d45 R600/SI: Reorganize SIInstructions.td
b84cc10 AVX-512: store and truncstore for i1 values
4e2e959 Remove DOS CRLF.
2872e11 AArch64/ARM64: more testing from AArch64 to ARM64
8b36f98 AArch64/ARM64: make use of ANDS and BICS instructions for comparisons.
c499ecd AArch64/ARM64: add extra testing from AArch64 to ARM64
20850bb [X86] Require HasBMI2 for the new BZHI tablegen patterns.
c13297f [AVX512] Implemented integer conversions up/down with masking. Added encoding tests.
468fabf [asan] Support outline instrumentation for wide types and delete dead code, patch by Yuri Gribov
404fa73 [X86] Remove Tablegen def of X86bzhi SDNode: It's not needed as of r206879.
390592d [X86] Use tablegen instead of DAG combines to match BZHI instructions, as suggested by Ben Kramer in review of r206738.
59d57db [mips] Clang-format MipsAsmParser.
ba61446 AArch64/ARM64: enable various AArch64 tests on ARM64.
0e277d1 AArch64/ARM64: add patterns for scalar_to_vector/extract pairs
85974bc AArch64/ARM64: mark fmul intrinsic as commutative.
74bd57b ARM: disable emission of __XYZvfp in soft-float environment.
07dcdc7 Fix an infinite loop bug in DAG Combine about keeping transfering between ANY_EXTEND and SIGN_EXTEND.
53b4d83 [X86] Don't use BZHI for short masks (>=32 bits). Thanks to Ben Kramer for the review.
ada34b3 Revert "Use value semantics to manage DbgVariables rather than dynamic allocation/pointers."
f749021 Use unique_ptr to manage ParsedBinariesAndObjects in LLVMSymbolizer
073440f R600: Change how vector truncating stores are packed.
3ddf868 R600: Make sign_extend_inreg legal.
0240286 [AArch64] Enable global merge pass.
846a143 blockfreq: Skip irreducible backedges inside functions
dda2f88 blockfreq: Rename PackagedLoops => Loops
40a483e blockfreq: Use a pointer for ContainingLoop too
92897fd blockfreq: Use pointers to loops instead of an index
153a265 blockfreq: Implement clear() explicitly
aa866b9 blockfreq: Rename PackagedLoopData => LoopData
df1956a blockfreq: Move PackagedLoopData above WorkingData
2c3c821 blockfreq: Remove "dead" comment
843eb0c [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE definition below all of the header #include lines, tools edition.
c722ba4 [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE definition below all of the header #include lines, lib/Support edition.
915c29c [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE definition below all of the header #include lines, TableGen edition.
0d338a5 [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE definition below all the header #include lines. This updates most of the miscellaneous other lib/... directories. A few left though.
7962dbd [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE definition below all of the header #include lines, lib/Transforms/... edition.
4da2537 [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE definition below all the header #include lines, lib/Analysis/... edition.
42e8630 [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE definition below all of the header #include lines, lib/Target/... edition.
3d5cd01 [cleanup] Fix two headers where we included a standard library header after including the generated code from tablegen.
cd30379 [cleanup] Fix another place where we were including the tablegen'ed code of a '.inc' file before including actual headers. In this case we had both duplicated a header's include and were including a standard header.
43285b3 This reverts r206828 until David has time to figure out that is going on.
58f58c9 [cleanup] Lift using directives, DEBUG_TYPE definitions, and even some system headers above the includes of generated '.inc' files that actually contain code. In a few targets this was already done pretty consistently, but it wasn't done *really* consistently anywhere. It is strictly cleaner IMO and necessary in a bunch of places where the DEBUG_TYPE is referenced from the generated code. Consistency with the necessary places trumps. Hopefully the build bots are OK with the movement of intrin.h...
8677f2f [Modules] Remove potential ODR violations by sinking the DEBUG_TYPE define below all header includes in the lib/CodeGen/... tree. While the current modules implementation doesn't check for this kind of ODR violation yet, it is likely to grow support for it in the future. It also removes one layer of macro pollution across all the included headers.
8959c39 [CodeGenPrepare] Use APInt to check the value of the immediate in a and while checking candidate for bit field extract. Otherwise the value may not fit in uint64_t and this will trigger an assertion.
bb67355 [Modules] Followup to r206822 to add a DEBUG_TYPE which is used on ARM and PPC, but not x86.
6d73b80 Use unique_ptr to handle ownership of Value*s in Cloning unit tests.
b5213bb Fix wrong iterator type
262f39e Simplify DFAPacketizerEmitter State copy/move semantics to use compiler defaults.
283b399 [Modules] Make Support/Debug.h modular. This requires it to not change behavior based on other files defining DEBUG_TYPE, which means it cannot define DEBUG_TYPE at all. This is actually better IMO as it forces folks to define relevant DEBUG_TYPEs for their files. However, it requires all files that currently use DEBUG(...) to define a DEBUG_TYPE if they don't already. I've updated all such files in LLVM and will do the same for other upstream projects.
9f38d0d Fix builds that use an stl missing std::set::emplace
c37ae28 Store State objects by value in TableGen's DFAPacketizerEmitter
32eba65 Set default value of HasExtractBitsInsn to false
8981860 ARM64: Refactor away a few redundant helpers.
db0a73f Simplify a vpermil* with constant mask.
2b77be2 Use Regex objects by value (rather than 'new'ed) in CodeGenSchedule.
91c6557 ARM64: Improve diagnostics for malformed reg+reg addressing mode.
8a412da Move helper functions earlier in the file.
fa49d1a ARM64: Extended addressing mode source reg is 64-bit.
e1c0863 Use unique_ptr to manage ownership of GCOVFunctions, Blocks, and Edges.
2df01c6 Remove seemingly-unneeded artificial dependency
b86fbcb Simplify destruction of Modules in LLVContextImpl.
bc26ff9 Handle _GLOBAL_OFFSET_TABLE_ in 64 bit mode.
67f71d1 clang-format this function.
cdb2808 Use unique_ptr to handle GlobalOpt's Evaluator members
0df9abb Fix PR7272 in -tailcallelim instead of the inliner
290ce19 Simplify expression that was explicitly naming an operator overload in a call.
77a301f Use unique_ptr to handle ownership of GCOVFunctions in GCOVProfiler.
864c531 Use unique_ptr to handle ownership of UserValues in LiveDebugVariablesImpl
52d629e Use unique_ptr to manage objects owned by the ScheduleDAGMI.
d0da5af Use value semantics to manage DbgVariables rather than dynamic allocation/pointers.
c5b286b Rename X86insrtps to the proper instruction name.
51d1381 [Modules] Consolidate the DEBUG_TYPE defines in NVPTX to the top of the cpp file rather than in the header and then again in the cpp file.
b2c8ff0 [Modules] Sink all the DEBUG_TYPE defines for InstCombine out of the header files and into the cpp files.
361c71e [Modules] Sink the DEBUG_TYPE macro out of LegalizeTypes.h and into the various .cpp files. This macro is inherently non-modular, and it wasn't even needed in this header file.
5d473a0 ARM64: Combine shifts and uses from different basic block to bit-extract instruction
59b626b Revert "[rtdyld,c++11] Range'ify symbol table walking."

git-subtree-dir: llvm
git-subtree-split: 2a25daa0a94a677c1143876953fa501c78a332d4
Merge commit '37704de0d9f008359dc39ce656cce1f94f09d9a9' into overhaul
Squashed 'llvm/tools/clang/' changes from f9d2832..57218ee

57218ee MicrosoftVTableContext: Don't leak VPtrInfos. Found by LSan, PR19522.
b7ed4ee Fix a tiny test-only leak, found by LSan.
1ed90e4 Intrin.h: remove __rdtsc and __rdtscp declarations
09a3930 [X86] Add Clang support for intrinsics __rdtsc and __rdtscp.
5a48fb5 Squelch leak found by LSan by handling missing switch case.
4ec7faa [mips] Support 128-bit int in N32 ABI by overriding TargetInfo::hasInt128Type()
4a935ca AArch64: update tests to new way of printing NEON lists.
f65f66e CommentToXMLConverter: Don't use "default" to method(s). It is unavailable in msc17.
3cc798b [mips] Correct size_t and ptrdiff_t for N32.
b4e01ab Comment to XML conversion: use unique_ptr for SimpleFormatContext
9b7ce5b Simplify leak fix of r207076, by just disposing the previous CXString.
33d6788 Don't leak _all_ directives in -verify mode. Found by LSan, PR19520.
9a68097 Don't leak invalid RegexDirectives. Probably a small part of PR19520.
4674f25 Fix two leaks found by LSan.
1f7b913 Fix two leaks found by LSan (one is test-only).
07aa876 Fix two test-only leaks found by LSan.
29c13d1 Fix two leaks in c-index-test found by LSan.
9fb2c58 Fix four more test-only leaks found by LSan.
3427ab0 Revert the "don't leak" part of r207065, looks like the bots don't like it :-/ http://bb.pgr.jp/builders/cmake-clang-x86_64-linux/builds/22506
0917027 Fix 3 test-only leaks found by LSan.
0877ff4 More spellchecking for Index.h
8637d44 compeltions are never appropriate.
8de2f29 Don't leak objects in load-from-ast path unless DisableFree is set.
edc6f0f When two templates get merged together, also merge their pattern declarations together. This is extremely hairy, because in general we need to have loaded both the template and the pattern before we can determine whether either should be merged, so we temporarily violate the rule that all merging happens before reading a decl ends, but *only* in the case where a template's pattern is being loaded while loading the template itself.
cc423c3 Fix test to not depend on llvm optimizations.
2f579d9 Bury leaked sema pointer when reading from AST files.
a4b982c Fix another leak in ParseMicrosoftAsmStatement(), found by LSan.
d696316 Suppress unused variable warning
88d3e52 Change -Wfloating-point-conversion to -Wfloat-conversion.
2e7d1f2 Fixed comments (thanks to Richard Smith).
d60acf3 Make RewriteRope less confusing for me. No intended behavior change.
2726ba6 Fix leak introduced in r194610, found by LSan.
db32760 Moved operator delete to public area to appease gcc and conform to C++ standard.
1cd8e7d Do not print inferred submodules explicitly in __inferred_module.map
f035b1e Fix a memory leak found by LSan.
86bb94f Quick fix for layering that broke shared library build.
437dc60 MS ABI: Use a different guard variable for each weak global
b21ef91 Make TypeDecl much less friendly.
5828a1d Objective-C [IRGen]. Fixes a crash in IRGen involving use of 'typeof' to extract type of an @encode expression used in an initializer. // rdar://16655340
022878f [analyzer] Fix a leak found by LSan.
489a7ba Don't pass llvm::DenseSet<> by value.
c2a06c6 Review feedback.
ebb7666 Review feedback.
d6d7a5d Review feedback
b86942f Add documentation for sample profiling support.
252d11b Prune \param introduced in r206977, possibly committed ahead. [-Wdocumentation]
4b3c06d Add missing test input for r206979.
3da854e The rewrite constructor should actually rewrite.
aafc70a Replacing a naked pointer with a unique_ptr. No functional changes intended.
5521b81 Minor formatting and simplification cleanup -- no functional changes intended.
9107bb3 Updated to be a bit more const friendly. Also switched the linkage to be static since this function is file-local. No functional changes intended.
53d5f45 Fix unused variable.
d2f62fa Add aarch64-linux-android triple for Android.
9be87f8 Initial implementation of -modules-earch-all option, for searching for symbols in non-imported modules.
0f0e18f Add yet another vtordisp test
5877be8 This reverts commit r206934 and r206935.
50a0ce4 Update Target::createMCAsmParser calls for the LLVM interface change.
3413467 [ARM64] Enable more CodeGen tests for ARM64. The crypto and neon intrinsics tests needed changing slightly due to the naming differences between AArch64 and ARM64.
fa203ed [ARM64] Change inline assembly constraints to be more lax, to match the behaviour of Clang/AArch64 and GCC.
e593c2b [ARM64] Enable the test aarch64-type-sizes.c for ARM64 BE.
5d06787 [ARM64] Add a missed case label for arm64_be, and enable the aarch64-varargs test for arm64_be.
affcec8 MS ABI: Implement mangling for ref-qualifiers on methods
b66406e MS ABI: Use range-based for loops in the mangler
dc9bea3 MS ABI: Cleanup some egregious style violations
db9b9b7 AST: Cleanup/simplify some LV calculation code
8e180fe CodeGen: Unify handling guard variables in the Itanium C++ ABI
8c645f8 Add missing test triples
5f701b4 Driver: Honor %INCLUDE% when built with MinGW
b183650 Driver: Avoid a duplicate path separator and clean up code
431393e Add some missing checks for C++1y digit separators that don't in fact separate digits. Turns out we have completely separate lexing codepaths for floating point numbers depending on whether or not they start with a zero. Who knew... =)
e75dc3b PR18746: If a constexpr function has a dependent return type and no return statements, don't diagnose; the return type might end up being 'void'.
7de8254 Driver: Skip the -fmodules-cache-path argument in driver crash diags
0436233 Use a manipulator to add a value to the current diagnostic flag.
53326f9 [Driver][ARM64] Add a testcase for r206227.
4ab423c Objective-C ARC. Under ARC, addition of 'bridge' attribute on CF type is not sufficient and bridge casting is still required for proper ownership semantics. // rdar://16650445
13e41ba Attempt to fix null ASTContext in ASTUnit error path
1b710a8 Fix PR19487, PR19505 and PR19506 -- redundant vtordisp thunks when the final overrider is present in both a vbase and nvbase
4d7f4b6 Thread safety analysis: add array operations to SExpr.
23be9d0 Thread safety analysis: fix warning.
9eaa23e Try to fix warnings to escape '@' as '\@'. [-Wdocumentation-html]
f1e95d4 [OPENMP] parsing 'linear' clause (for directive 'omp simd')
fae71a4 ARM64: update NEON test to improved backend codegen
07aed96 Comment parsing: close a hole in CDATA escaping in XML output
e36bbd1 Comment parsing: in the generated XML file, mark HTML that is safe to pass through to the output even if the input comment comes from an untrusted source
059bec7 DiagnosticsEngine::Report(): Fix a warning. [-Wdocumentation]
7910e52 Update clang/test/PCH/single-token-macro.c corresponding to r206791.
2e5043a [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE definition below all of the header #include lines, clang edition.
75bc74f Move the C++11 ExtWarn for converting a string literal to 'char*' out of -Wc++11-compat-deprecated-writable-strings. It's neither a C++11 compatibility warning nor a deprecated feature, it's just ill-formed.
e836dd3 Move the warning of implicit cast of a floating point to an integer out of -Wconversion and into it's own group, -Wfloating-point-conversion.
2e81e13 Thread safety analysis:  misc updates to SExpr handling.  Fix to minimal SSA, function parameters, and compound assignment.
0da1b70 Allow adding a value to a flag in diagnostics.
e2f48e9 [Modules] Update Clang's two files that use DEBUG(...) without defining DEBUG_TYPE to do so. LLVM's Debug.h requires this as of r206822.
13b8d7d [Modules] Remove the only use of the DEBUG(...) macro in the compiler parts of Clang. I don't really have any opinion about whether using that macro is good or bad, but its odd that this is the only one, and Eric seemed happy with just nuking it for now.
431fb79 Try to fix bad Twine usage in r206791 with std::string
392e01f MinGW: Define __stdcall&co when -fms-extensions is disabled
cc623a0 Split out the rest of MS ABI multiple inheritance tests
46ddd12 Objective-C. Patch to allow use of dot syntax on class objects to fund root class's instance methods. // rdar://16650575
b36744f Allow submodule inferrences with a missing umbrella when the module is unavailable

git-subtree-dir: llvm/tools/clang
git-subtree-split: 57218ee935e495ef17164e7f6580777e1a376430
Merge with Clang.
Squashed 'llvm/tools/lldb/' changes from b29070e..bc3fe5d

bc3fe5d Remove print statements I was using to debug this script additions.
4402c41 Fix the build-llvm.pl to use glob to find all llvm and clang .a files for libllvmclang.a.
52c3d42 Fixed a flipped conditional when writing back the values of variables in the Materializer.
d1af67e Fixed an issue where we would try to interrupt a process while it is in the process of naturally stopping due to another reason (breakpoint, or step).
dce7ab5 Making a SharingPtr out of a nullptr_t should be a safe and allowed operation
4d576a2 If CMake finds a python interpreter, use it
245aa74 Windows Fix: added inttypes.h. Introduces macro redefinition warnings due to LLVM itself externally defining the PRI macros, but now builds on vs2013.
7491cc8 Allow summary formatters to take ValueObjects into account when deciding whether values/children should be printed and if child names should be shown This decision has always been statically-bound to the individual formatter. With this patch, the idea is that this decision could potentially be dynamic depending on the ValueObject itself
bafb6e2 Remove the using namespace directives to make it clear where code is scoped.
421f92b Change the default key bindings for multi-line mode: Up/down arrows select next/prev line in multi-line mode CTRL+N and CTRL+P do next/prev history
13eb031 Fixed a case where if someone added a "bind -v" to their ~/.editrc file, key mappings would get messed up.
d2d20c3 Honour DESTDIR when installing LLDB python module
3ded17c Remove duplication in expectedFailure* decorators
44da8be Windows fix: Need to ensure all APIs are forward decl'd with LLDB_API. If not then frontend linker errors appear due to dllexport differences. There may be some others missing, will commit as I find them.
cd0f490 Added a packet-playback test facility for lldb-gdbserver and a few starter tests.
767cb40 Switch to Darwin decorator for tests that XPASS on FreeBSD
23dba4d Note that the FreeBSD x86_64 buildbot uses CMake
0ebb229 When increasing the amount of a file read, read the total of the Mach-O header plus the size of the load commands in case the LC_UUID load command comes near the end of the file. <rdar://problem/16599318>
d80ccb3 build: use keyword signatures for link dependencies
3b50cf7 Give the clang functions names.  This is only for logging.
fb52a98 Make RunThreadPlan start the timeout clock for each part of the expression evaluation AFTER the successful resume for that part.  This will make the timeouts more stable when lldb is running in a busy program.
e9af314 Update FreeBSD: Threads and Watchpoints generally work

git-subtree-dir: llvm/tools/lldb
git-subtree-split: bc3fe5db713dcfe932f62db5d5d628924bc952c6
Merge with LLDB.
Finish merge with Clang.