Squashed 'llvm/' changes from 8b35abd..4f45d04

4f45d04 [ppc64] Patch in TOC restore code after all external function calls
90d0ed2 ARM: honour -f{no-,}optimize-sibling-calls
2b42ff6 ARM: remove ancient -arm-tail-calls option
cde1f2e ARM: enable tail call optimisation on Thumb 2
0638609 Fix crash in PRE.
d111694 [lit] Fix non-function style print statement.
90b25ea ARM: simplify EmitAtomicBinary64
dabc507 Remove copy ctors that did the same thing as the default one.
ca396e3 IR: add a second ordering operand to cmpxhg for failure
fb411c8 GVN: fix hashing of extractvalue.
cf52406 GVN: merge overflow intrinsics with non-overflow instructions.
d4b9957 Fix fixme: remove unused method.
afe381c Object: rename ARMV7 to ARMNT
3139a0a Cleanup whitespace
0e5b486 R600: Calculate store mask instead of using switch.
67ad03b Add helpers for getting scalar sizes of vector value types.
7a37166 X86: Enable ISel of 16-bit MOVBE instructions.
2ab1641 MultiJITTest.cpp: Tweak getPointerToNamedFunction() to be aware of also Windows x64.
fc77954 Follow up to r203488. Code clean up to eliminate a lot of copy+paste.
5313162 Fix undefined behavior in vector shift tests.
bea18e3 Remove incomplete comment
6cf9da3 Move trivial getter into header.
cc1240e Use .data() instead of &x[0]
60616b6 Fix indentation
99b683b Fix non 2-space indentation.
f5d1752 Module: Don't rename in getOrInsertFunction()
6df2b69 When analyzing vectors of element type that require legalization, the legalization cost must be included to get an accurate estimation of the total cost of the scalarized vector. The inaccurate cost triggered unprofitable SLP vectorization on 32-bit X86.
87393cf Use discriminator information in sample profiles.
e45534d Test commit: Remove trailing whitespace.
d522121 Fix a couple typos.
453474e [lit] Bump dev version number.
a594517 [lit] Add a README.txt.  - Also, update MANIFEST.in and utils/check-sdist.
a997593 [lit] Add --version option.
55aa019 fix polly buildbot
e62ce01 IR: Slightly more verbose error in Verifier
8da0b73 MemCpyOpt: When merging memsets also merge the trivial case of two memsets with the same destination.
d89b0f2 For functions with ARM target specific calling convention, when simplify-libcall optimize a call to a llvm intrinsic to something that invovles a call to a C library call, make sure it sets the right calling convention on the call.
789dde4 fix PR13550: add a cmake WITH_POLLY option
428b609 Followup to r203483 - add test.
754aaee [mips] Implement NaCl sandboxing of loads, stores and SP changes:
c32c110 Make sure NVPTX doesn't emit symbol names that aren't valid in PTX.
b7dec21 llvm-c: expose unnamedaddr field of globals
7806d2c Docs: remove paragraph about manual account creation.
866797d [bugpoint] Add testcase for r203343.
bdb05aa Add a --enable-clang-plugin-support option to configure.
017bc0f Fix regression with -O0 for mips .
c869887 Add test for LinkModules warning on triple, modified by r203009. Datalayout is already tested.
6e9eeab [C++11] Modernize the IR library a bit.
e1820a6 [mips][fp64] Add an implicit def to MFHC1 claiming that it reads the lower 32-bits of 64-bit FPR
7d4afb2 Removing llvm::distance and llvm::copy for iterator_range based on post-commit review feedback. Adding an explicit range-based constructor to SmallVector, which supersedes the llvm::copy functionality.
ffb6f6e [mips] Assembly parser must invoke the target streamer to handle .set reorder macro.
8ca089d AArch64: fix LowerCONCAT_VECTORS for new CodeGen.
31da39e [LCG] Make this call graph a fully regular type by giving it assignment as well. I don't see any particular need but it imposes no cost to support it and it makes the API cleaner.
b94ad97 [LCG] Make the iterator move constructable (and thus movable in general) now that there is essentially no cost to doing so. Yay C++11.
3b89e52 [C++11] Remove 'virtual' keyword from methods marked with 'override' keyword.
49e139b [C++11] Remove 'virtual' keyword from methods marked with 'override' keyword.
292fcee [AArch64] Fix a use of uninitialized memory introduced in r203125, and caught by the MSan bootstrap build bot. This should hopefully get the bot green at long last.
984084a De-virtualize a method since it doesn't override anything and isn't overridden itself.
3d3e407 [C++11] Add 'override' keyword to virtual methods that override their base class.
673fbf1 [LCG] One more formatting fix that I failed to get into the prior commit. Sorry for the churn, just trying to keep it out of any functionality changed.
436906a [TTI] There is actually no realistic way to pop TTI implementations off the stack of the analysis group because they are all immutable passes. This is made clear by Craig's recent work to use override systematically -- we weren't overriding anything for 'finalizePass' because there is no such thing.
804ff19 ADT/PointerIntPairTest.cpp: Appease msc17.
b53becf [LCG] Ran clang-format over this too and it pointed out some fixes.
1b497a9 [PM] While I'm here, fix a few other clang-format issues. Pulls some lines under 80-columns, etc.
d11898d [C++11] Add 'override' keyword to virtual methods that override their base class.
87d5f1b [PM] Cleanup formatting and namespace commenting. Mostly done with clang-format, but with some modifications by me where it got things wrong or got confused.
209ae57 [PM] As Dave noticed in review, I had erroneously copied the move constructors from the classes which only have a single reference member to many other places. This resulted in them copying their single member instead of moving. =/ Fix this.
4cd770f MC: Appease the buildbots
5d0bfc8 MC: Cleanup MCSectionMachO::ParseSectionSpecifier
9e215b0 [PM] Add a comment I missed and add the special members to one more class that might (at some point) need them.
1bb614e [PM] Comment on all of the totally pointless definitions of special members as being te workaround MSVC.
153ed40 [PM] I have been educated by several folks that MSVC will never synthesize a move constructor. Thus, for any types where move semantics are important (yea, that's essentially every type...) you must explicitly define the special members. Do so systematically throughout the pass manager as the core of the design relies heavily on move semantics.
08da01c [Sparc] Add support for decoding 'swap' instruction.
f749c23 Fix inconsistent whitespace.
d6728ad Work around FreeBSD rtld rpath $ORIGIN limitation
124c86e [C++11] Add 'override' keyword to virtual methods that override their base class.
e07a3f5 StackColoring: Use range-based for loops.
1ceef0ef MachineModuleInfo: Turn nested std::pairs into a proper struct.
4b48462 SimplifyCFG: Simplify the weight scaling algorithm.
c52fffe [LCG] Simplify a bunch of the LCG code with range for loops and auto. Still more work to be done here to leverage C++11, but this clears out the glaring issues.
05d8dc6 [C++11] Add range views for various parts of a Module.
8445040 Change documentation based on feedback from Chandler.
f328eeb [C++11] Now that we have C++11 and I've replaced the use of this horrible smart pointer by std::unique_ptr and strict move semantics, rip this out.
15903b7 [PM] Switch new pass manager from polymorphic_ptr to unique_ptr now that it is available. Also make the move semantics sufficiently correct to tolerate move-only passes, as the PassManagers *are* move-only passes.
fee1963 [C++11] Add llvm::make_unique, according to N3656.
e086782 Revert r203230, "CodeGenPrep: sink extends of illegal types into use block."
feb0113 De-virtualize some methods since they don't override anything.
f2c9fef [C++11] Add 'override' keyword to virtual methods that override their base class.
39a09d2 IR: Change inalloca's grammar a bit
3e07f8a Revert "Clean up SmallString a bit"
ed8ba2e Clean up SmallString a bit
873c589 [C++11] Fix break due to MSVC bug.
9c3328f Fix build break.
36b699f [C++11] Add range based accessors for the Use-Def chain of a Value.
b033b03 Update comment from r203315 based on review
29b1962 Adding some includes to appease build bots. Amends r203354
5c47b58 Adding range-based STL-like helper APIs. llvm::distance() is the range version of std::distance. llvm::copy is the range version of std::copy.
f089b84 Make createObjectImage and createObjectImageFromFile static methods on the relevant subclasses of RuntimeDyldImpl. This allows construction of RuntimeDyldImpl instances to be deferred until after the target architecture is known.
f911d52 Change else if => if after return, after r203265
783b222 Fix 80 cols.
c83e68f [C++11] Add 'override' keyword to virtual methods that override their base class.
838cb74 [C++11] Add 'override' keyword to virtual methods that override their base class.
1829d9d [bugpoint] Don't ignore arg in -compile-commad="tool arg"
5dc48d7 [C++11] Add 'override' keyword to virtual methods that override their base class.
ad1b194 De-virtualize a method since it doesn't override anything (yay 'override' keyword) and its class is in an anonymous namespace.
5747a14 [C++11] Add 'override' keyword to virtual methods that override their base class.
d659d34 [C++11] Add 'override' keyword to virtual methods that override their base class.
50b59c7 DebugInfo: further improvements to test following up on r203329
5c31033 DebugInfo: Fix test fallout from r203323
5af111c DebugInfo: Use DW_FORM_data4 for DW_AT_high_pc in DW_TAG_lexical_blocks
b1c8844 Add support for hashing location information for CU level hashes. Add a testcase based on sret.cpp where we can now hash the entire compile unit.
d07494f [DAGCombiner] Distribute TRUNC through AND in rotation amount
316d3e3 [DAGCombiner] Recognize another rotation idiom
622f350 [DAGCombiner] Slightly improve readability of matchRotateSub
aa5b17b ISel: Make VSELECT selection terminate in cases where the condition type has to be split and the result type widened.
bd86fbe Remove unnecessary test for Darwin and update testcase to be a little less horrible/fragile. rdar://problem/16264854
e373dfa Add a virtual destructor to quiet a warning.
7cf32a7 Range-ify some for loops.
a8c247c Actually add the header file.
096eaf8 Two part patch:
a8d9fe2 Add include guards and make public a few routines that add values to the hash.
32643e3 Remove unused method declaration
d013411 Revert "Remove unnecessary check for Darwin. rdar://problem/16264854"
fa14948 Moved test file from test/MC/Mips to test/CodeGen/Mips.
1630c3c Remove unnecessary check for Darwin. rdar://problem/16264854
9623e46 DebugInfo: Use DW_FORM_data4 for DW_AT_high_pc in inlined functions
0afacf1 DebugInfo: Update test to cover linux (with a FIXME...) too
ba2a549 [C++11] Revert uses of lambdas with array_pod_sort.
e1362f1 [C++11] Convert sort predicates into lambdas.
856eb29 Actually include the ArrayRef header rather than rely on the forward declaration.
6a90a1e Fix up formatting.
2195ed6 Fix EXPECT_* to not produce a compile warning.
6cadd40 R600/SI: Using SGPRs is illegal for instructions that read carry-out from VCC
7e06370 R600/SI: Custom lower i1 stores
adb294d [C++11] DwarfDebug: Turn single-use functors into lambdas.
bc3b242 [ADT] Update PointerIntPair to handle pointer types with more than 31 bits free.
fac2487 [docs] Teach CMake docs build how to generate Qt Creator help/documentation files.
3bfc4d8 [C++11] DwarfDebug: Use range-based for loops.
5abd466 Don't avoid cfi instructions on the bg/p.
1a763b0 Remove dead 'break' (dominated by 'return').
af0c5ed Remove dead 'return'.
f5955c7 MC: Use MachO::SectionType for MCSectionMachO::getType's return type
5ba79a9 DebugInfo: Refactor high_pc/low_pc construction into reusable function
f456d37 "Mac OS/X" -> "Mac OS X" spelling fixes for llvm.
feed880 C++11: Remove const from in auto guidelines
f7952d3 DebugInfo: Restrict DW_AT_high_pc encoding as data4 offset to DWARF 4 as per spec
fc9031c C++11: Copy pointers with const auto *
ac4c4a8 ARM: Make .unreq directives case-insensitive
1dd3111 [C++11] Now that the users are gone, rip out the duplicated traits from type_traits.h
8eccde8 Add missing std:: qualifiers
a6a3d4d Make header standalone for libstdc++.
c1dafe8 [C++11] Replace LLVM-style type traits with C++11 standard ones.
122a970 [SystemZ] Move sign_extend optimization to PerformDAGCombine
fa9e4b5 CodeGenPrep: sink extends of illegal types into use block.
69d2b2a InstCombine: form shuffles from wider range of insert/extractelements
cd68cff Change MCDisassembler::setSymbolizer to take unique_ptr by value.
490750b Remove unused method.
9f998de [C++11] Add 'override' keyword to virtual methods that override their base class.
177c1ef Enable FeatureFastUAMem for Silvermont processor
adaa3e5 Test commit Removed whitespace
508e0c4 MC: Remove superfluous section attribute flag definitions
6a2154e [Typo] Fix sentence in CMake documentation.
7d7d996 Replace PROLOG_LABEL with a new CFI_INSTRUCTION.
ec7ab53 clang-format a bit of code to make the next patch easier to read.
49dd5e8 Simplify. No functionality change.
ab5573e Simplify. No functionality change.
70957b9 Allow constant folding of round function whenever feasible
40e107d Add missing "[unnamed_addr]" to LangRef.rst#functions.
4b10252 DebugInfo: Limit r203187 to non-darwin as lldb can't handle this yet
d5c1fb9 Move some dwarf emission routines to AsmPrinterDwarf.cpp.
0e42ae9 80-column fixups.
34fa564 DebugInfo: Emit DW_TAG_subprogram's DW_AT_high_pc as an offset from the low_pc
e2bb4f4 DebugInfo: Refactor test to not rely on fixed DIE offsets
63557bf DebugInfo: Improve test to not depend on the specific naming of temporary symbols
83710e7 Add iterator_range support for MachineInstr's operand and memoperand iterators.
aa558a7 Reapply "MC: simplify object file selection for Windows"
b52d0c0 Remove shouldEmitUsedDirectiveFor.
e7147c1 Convert test to FileCheck.
93998f3 Remove unreachable 'return true' always dominated by 'return Error' or 'return false'.
046c8e1 [Support/LockFileManager] Re-apply r203137 and r203138 but use symbolic links only on unix.
4eb048a Support: split object format out of environment
5219b0f MC: simplify object file selection for Windows
e541585 [X86] Teach the DAGCombiner how to fold a OR of two shufflevector nodes.
d0d94d6 Fix warning about mismatched signs in comparison.
abb1fad Fix the printing of n_type.
7ed86b0 Use the existing N_STAB from the MachO namespace.
27cfb7a Constify a few things with DotDebugLocEntry.
9035f6b MS asm: The initial dot in struct access is optional
bbf1c8d Revert create_symbolic_link and both depending changes
6c43168 Move DIEEntry handling inside the main switch statement. No functional change.
d25733b [Support/LockFileManager] Make the LockFileManager more robust against races.
7b95c0d [Support/LockFileManager] Use symbolic link for the lock file.
bd3f9c0 [Support/FileSystem] Introduce llvm::sys::fs::create_symbolic_link().
161e3a8 R600: Fix extloads from i8 / i16 to i64.
b4cd160 R600/SI: Expand selects on vectors.
0c5c3b9 Fix missing C++ mode comment
38c18ef Teach lint about address spaces
d530a96 [XCore] Add support for the "m" inline asm constraint.
371e07f Micro optimization: this code only needs to look at eh labels.
514d703 [AArch64] This is a work in progress to provide a machine description for the Cortex-A53 subtarget in the AArch64 backend.
abe7680 [SystemZ] Remove "virtual" from override methods
0c3682a [SystemZ] Use "auto" for cast results
b653ed8 [SystemZ] Use "for (auto" a bit
9a1cd05 [SystemZ] Update namespace formatting to match current guidelines
b0a36274 AVX-512: Added rrk, rrkz, rmk, rmkz, rmbk, rmbkz versions of AVX512 FP packed instructions, added encoding tests for them. By Robert Khazanov.
f4623ce AVX-512: fixed comressed displacement - by Robert Khazanov
7bc835b Cleaning up two more pre-Visual C++ 2012 build hacks.
9959dff Fix warnings about an variable only used in asserts.
7284c97 Add <cstddef> for use of std::ptrdiff_t.
acc8fb1 Fix break by qualifying ptrdiff_t with std::.
f4ccd11 Replace OwningPtr<T> with std::unique_ptr<T>.
ca8b562 DebugInfo: Tag units as having been indexed in GNU pubnames by using a DW_AT_GNU_pubnames of DW_FORM_flag(_present) rather than sec_offsets to the pubnames/types sections
df95a94 Allow constant folding of copysign
7c00d18 [Modules] Fix a layering issue that is actually impacting the modules selfhost.
ca7680b [Layering] Move GVMaterializer.h into the IR library where its implementation already lived.
56a2673 [cleanup] Re-sort the standard library include lines.
8a67f12 [Layering] Sink Linker.h into a Linker subdirectory to make it consistent with every other sub-library header in LLVM.
67f6bf7 [Layering] Move InstVisitor.h into the IR library as it is pretty obviously coupled to the IR.
aa3d8b2 Change the tag on this iterator to bidir and implement enough operators to make it true. It ought to be possible to make this truly random access if anyone cares enough.
907423f Fix issues in the NamedMDNode operand iterator, including those pointed out by Chandler in review.
4b2ab80 DebugInfo: Shrink pubnames/pubtypes in the presence of type units by only emitting pub sections for compile units
b29a86a Add some helpful comments on DIEValue types that we expect to hash.
a14dc34 The PPC global base register cannot be r0
d6ea721 Add a iterator and interator_range interface to the operands of a NamedMDNode. The iterator is a little complex because we don't want to expose the implementation details (TrackingVH) of the operand vector to clients.
f4ec8bf [Layering] Move DebugInfo.h into the IR library where its implementation already lives.
341ea7d Fixup PPC Darwin i1 argument handling
0284629 Rewrite the attribute hashing algorithm to use the type of the value pointed to by the attribute, rather than the form as a first step to determining how to hash the values. No functional change intended.
025c1ce When using CR bit registers on PPC32, handle the i1 vaarg case
7cf9764 [Layering] Move DIBuilder.h into the IR library where its implementation already lives.
8b6d60f Change math intrinsic attributes from readonly to readnone. These are operations that do not access memory but may be sensitive to floating-point environment changes. LLVM does not attempt to model FP environment changes, so this was unnecessarily conservative and was getting on the way of some optimizations, in particular SLP vectorization.
001e676 Remove the last of the special case code for emitting attributes. This works by moving the existing code into the DIEValue hierarchy and using the DwarfDebug pointer off of the AsmPrinter to access any global information we need.
ec3c85e constify a few accessors.
26148a6 Remove special case in the DIEValue printing since it only existed for verbose asm.
1da08cb Attempt to unbreak little-endian buildbots.
c4392f9 [Mips] Testcase typo fix. No functionality change.
c23e234 Now that we don't use libtool, we don't need to upgrade it :-)
517aaf2 Add a DIELocList class to handle pointers into the location list. This enables us to figure out where in the debug_loc section our locations are so that we can eventually hash them. It also helps remove some special case code in emission. No functional change.
f698d77 With PPC CR bit registers, handle int_to_fp on older cores
af0cc45 Fix typo
51da5c7 Fix datalayout test that I broke with my previous LinkModules warning improvement.
9bf239e Improve LinkModules warnings
9d84b4d LoopVectorizer: Preserve fast-math flags
fc5436c Always print the implicit .text at the start of an asm file.
82d372e Fix an inconsistency in treatment of trailing / in path::const_iterator
4d36f91 ConstantFolding: Also fold the vector overloads of our math intrinsics.
f3ff7c3 Lower AVX v4i64->v4i32 truncate to one shuffle.
986a284 Fix clang -Werror build break due to mismatched sign comparison.
be5c5d7 Work around MSVC bug in IntrusiveRefCntPtr.h
0d31d1e ARM: Correctly align arguments after a byval struct is passed on the stack
f6003a6 Add a ThreadSafeRefCountedBase
4c16a16 [LangRef] Improve llvm.mem.parallel_loop_access example
7c09fb6 Enable integrated assembler on OpenBSD/PPC32 by default, too. From Brad Smith.
6844c3f This patch implements .set dsp directive and sets appropriate feature bits.This directive is a counterpart of -mattr=dsp command line option with the exception that it does not influence elf header flags. The usage example is gives in test file.
da55d20 Add missing parenthesis in SCEV comment
f8aca1d [Layering] Move AutoUpgrade.h into the IR library where its implementation already lives.
b810517 [Layering] Move DebugLoc.h into the IR library. The implementation already lived there and it is where it belongs -- this is the in-memory debug location representation.
fbf6daa [C++11] Add overloads for externally used OwningPtr functions.
2e816f0 [C++11] Make this interface accept const Use pointers and use override to ensure we don't mess up any of the overrides. Necessary for cleaning up the Value use iterators and enabling range-based traversing of use lists.
1a6eca2 [C++11] Replace OwningPtr::take() with OwningPtr::release().
7b62be2 [C++11] Add 'override' keyword to virtual methods that override their base class.
b619318 [C++11] Add release() to OwningPtr.
01394fb [C++11] Add 'override' keyword to virtual methods that override their base class.
c37e6c0 [C++11] Add 'override' keyword to virtual methods that override their base class.
a6ace00 Make stackmap machineinstrs clobber the scratch regs too.
98f54c0 [C++11] Add 'override' keyword to IR library.
0bfd526 [C++11] Add 'override' keywords to tablegen code.
8a25ef9 [C API] Implement LLVM{Get,Set}Alignment for AllocaInst.
c75dc74 Remove unnecessary variables.
a9b2552 Fix unused variable in FunctionLoweringInfo.cpp
2f471c8 Check for dynamic allocas and inline asm that clobbers sp before building selection dag (PR19012)
3b9afd3 Change x86mmx -> x86_mmx in LangRef.rst
1372b78 C API: Add functions to get or set a GlobalValue's DLLStorageClass
d6e0bca LangRef: Remove stale docs on LLVM types in module structure
e6d0bed Make the DIEValue constructor even more explicit.
7e8a540 Trivial test commit.
d1fe495 [C++11] Sink the iterator over a Value's users into the Value type itself and teach it to convert between the non-const and const variants. De-templatetize its usage in APIs to just use the const variant which always works for those use cases. Also, rename its implementation to reflect that it is an iterator over *users* not over *uses*.
8b3fad9 Use a bool for whether or not an abbreviation has children rather than using a full uint16_t with the flag value... which happens to be 0 or 1. Update the class for bool values and rename functions slightly.
33a9132 Use dwarf::Attribute instead of a bare uint16_t.
d3190ef Expand slightly on comment.
9ad8924 Unindent namespace.
64da21d Update comment.
da96b2e Partially roll back r202915.
e553a3b Fix endianness bug.
34fae3a Allow constant folding of fma and fmuladd
175c634 Fix duplicate code in ConstantFolding
f48dbd8 [DAGCombiner] Factor out distributeTruncateThroughAnd
bc03027 Remove a special character in comment that accidentially got committed.
6e5887e Remove dependence on std::function.
943d1fd Add support for arbitrary functors to CrashRecoveryContext.
f0a0ceb APFloat: Add a move ctor and operator=
afee151 llvm-objdump: Indent unwind info contents.
1d8f551 llvm-objdump: Fix typo in output.
a9a43d0 MS asm: Attempt to parse variables followed by a bracketed displacement
86e85c1 X86: 80-column
230036c [CMake] add_llvm_target(): No need to include TABLEGEN_OUTPUT in source list.
db09f82 [PowerPC] support powerpc64le as syntax-checking target (pass2)
f41c05c [XCore] Fix call of absolute address.
ba920ab [CMake] check-llvm: Include "bugpoint" in dependent list.
8954b14 Remove out-of-date comment in llvm/tools/CMakeLists.txt.
e06bec4 [mips][msa] Correct the behaviour of the COPY_FW pseudo on lanes 2 and 3.
80a59df Hey, we can stop depending on the IR library from the Support unittests now. ;] Tested on both a static and shared CMake build. Hopefully the bots will agree.
8f124fe [Modules] Move the LeakDetector header into the IR library where the source file had already been moved. Also move the unittest into the IR unittest library.
11d95df [cleanup] Fix a typo in the path.
f7591dd [Modules] Move the PassNameParser to the IR library as it deals in the PassInfo structures of the legacy pass manager. Also give it the Legacy prefix as it is not a particularly widely used header.
19d764f [Modules] Move the ConstantRange class into the IR library. This is a bit surprising, as the class is almost entirely abstracted away from any particular IR, however it encodes the comparsion predicates which mutate ranges as ICmp predicate codes. This is reasonable as they're used for both instructions and constants. Thus, it belongs in the IR library with instructions and constants.
a2e3265 [Modules] Stop including CFG.h from GenericDomTree.h. This used to be necessary, but is no longer.
5b74a01 [Modules] Move the PredIteratorCache into the IR library -- it is hardcoded to use IR BasicBlocks.
ff956e7 [Modules] Move the NoFolder into the IR library as it creates instructions.
9234e06 [Modules] Move the ConstantFolder into the IR library where it can reference the ConstantExpr implementation.
d90488f [Modules] Move the TargetFolder into the Analysis library. Historically, this would have been required because of the use of DataLayout, but that has moved into the IR proper. It is still required because this folder uses the constant folding in the analysis library (which uses the datalayout) as the more aggressive basis of its folder.
03e36d7 [Modules] Move CFG.h to the IR library as it defines graph traits over IR types.
1fd02bc [Modules] Delete DataFlow.h rather than move it to the IR library. No one in the tree (or in Polly) is using this.
7225e27 [Modules] Move ValueMap to the IR library. While this class does not directly care about the Value class (it is templated so that the key can be any arbitrary Value subclass), it is in fact concretely tied to the Value class through the ValueHandle's CallbackVH interface which relies on the key type being some Value subclass to establish the value handle chain.
eb3d76d [Modules] Move ValueHandle into the IR library where Value itself lives.
df3d8e8 [Modules] Move the LLVM IR pattern match header into the IR library, it obviously is coupled to the IR.
4bbfbdf [Modules] Move CallSite into the IR library where it belogs. It is abstracting between a CallInst and an InvokeInst, both of which are IR concepts.
bd7cba0 [Modules] Move GetElementPtrTypeIterator into the IR library. As its name might indicate, it is an iterator over the types in an instruction in the IR.... You see where this is going.
876ac60 [Modules] Move InstIterator out of the Support library, where it had no business.
1decd56 [cleanup] Re-sort all the includes with utils/sort_includes.py.
efba32f Remove unused typedef
7650bc0 This patch implements .set mips32r2 directive and sets appropriate feature bits. It also introduces helper functions that are used to set and clear feature bits as necessary. This directive is a counterpart of -mips32r2 command line options with the exception that it does not influence elf header flags. The usage example is gives in test file.
b62b44c Cleaning up a bunch of pre-Visual C++ 2012 build hacks.
13f0d30 [cleanup] Add a getOperandNo method to the Use class and implement it out-of-line so that it can refer to the methods on User. As a consequence, this removes the need to define one template method if value_use_iterator in the extremely strange User.h header (!!!).
775581c [cleanup] Use early exit and simpler temporary variables to clarify the swap implementation.
4f6b2a2 Fix gcc -Wunused-but-set-variable warning.
2bfe24c [cleanup] Run clang-format over the Use code. It was *really* inconsistent both with itself and with LLVM at large with formatting. The *s were on the wrong side, the indent was off, etc etc. This is much cleaner.
0a605711 [cleanup] Tidy up and modernize comments and the definition order for the Use class.
d186c93 PBQP/Graph.h: Prune @return in setNodeCosts, possibly copypasto. [-Wdocumentation]
e93f18e PBQP/Graph.h: s/os/OS/ in @param. [-Wdocumentation]
4a655e7 [C+11] Add 'override' keyword to methods in the support library.
cfb73ab Fix typo.
80f2397 Use auto for readability.
3ab0ce0 llvm-objdump: Print x64 unwind info in executable.
7ef591d Make a test for llvm-objdump a little bit more readable.
b1347c6 llvm-objdump: Split printRuntimeFunction to two small functions.
5dee350 [AArch64]Fix improper diagnostics about offset range of load/store instructions.
4e43e1e MC: Fix Intel assembly parser for [global + offset]
168a1af Revert "[AArch64] This is a work in progress to provide a machine description"
d1a0a58 llvm-objdump: Split printCOFFUnwindInfo into small functions.
839b3c7 llvm-objdump: Use range-based-for loop and fix format.
824dfb1 [AArch64] This is a work in progress to provide a machine description for the Cortex-A53 subtarget in the AArch64 backend.
288da8c Adding support for MSVC debugger visualization of the Optional datatype.
739dd52 Avoid std::function until PR19030 is fixed
a2e96a9 Add missing include.
f05b45f Pass to emit DWARF path discriminators.
9efaf2f [C++11] Use std::tie to simplify compare operators.
c3835cc Document that std::initializer_list is not always available.
dcf23dd [C++11] Remove a leftover std::function instance.
0550e93 [C++11] Remove the completely unnecessary requirement on SetVector's remove_if that its predicate is adaptable. We don't actually need this, we can write a generic adapter for any predicate.
6f8c0c0 Add DWARF discriminator support to DILexicalBlocks.
98b5aae Re-apply r202551, which introduced new PBQP solver.
7515c71 Revert "[C++11] Replace LLVM atomics with std::atomic."
4721e55 [C++11] Replace LLVM atomics with std::atomic.
59a4517 C++11: Beware unnecessary copies with auto
653638b Clarify struct usage guidelines
db3064e Add patch level to llvm version in CMake and Autoconf
7bc65d0 Don't emit a blank line when running llvm-config --system-libs.
fc210ac [mips] Prevent %lo relocation being used on MSA loads and stores.
c1e634d [mips] support FK_Data_2 and FK_Data_8 to fix big-endian debug data
6e983f3  Fixing a build failure reported by certain buildbots. This will disable jalx instruction for micromips target.
a0fb580 Unbreak the C++11 build.
8b77d95 [msan] Handle X86 SIMD bitshift intrinsics.
afa6150 This patch implements jalx instruction for Mips architecture.This instruction executes a procedure call within the current 256 MB-aligned region and change the ISA Mode from MIPS32 to microMIPS32 or MIPS16e. Usage samples for assembler and dissasembler are provided as well.
75c86c9 [C++11] Add a basic block range view for RegionInfo
8959996 [C++11] MSVC 2012 can't handle list-initialization that calls a constructor either. Just call the constructor directly. I'll look into making this work with aggregate initialization some other time (when I have someone with MSVC 2012 handy to test ideas).
3dfabcb [C++11] Add two range adaptor views to User: operands and operand_values. The first provides a range view over operand Use objects, and the second provides a range view over the Value*s being used by those operands.
26abef7 [C++11] Add an iterator_range class template. This is modeled on the proposed std::iterator_pair which was in committee suggested to move toward std::iterator_range. There isn't a formal paper yet, but there seems little disagreement within the committee at this point so it seems fine to provide our own version in the llvm namespace so we can easily build range adaptors for the numerous iterators in LLVM's interfaces.
0b949e0 [C++11] Pass unique_ptr by value instead of &&.
00e373a AsmParser: add missed tests
c594f39 [Sparc] Add trap on integer condition codes (Ticc) instructions to Sparc backend.
75bff89 [Sparc] Add return/rett instruction to Sparc backend.
361542a Remove unnecessary copy ctors.
c4b0eec [Sparc] Add support for decoding jmpl/retl/ret instruction.
3efb8b2 Give APInt move semantics.
833687b [Sparc] Add fcmpe* instructions to Sparc backend.
cf06410 [Sparc] Add VIS instructions to sparc backend.
5a49125 Add a PPC inline asm constraint type for single CR bits
3de6ee1 Ensure bitcode encoding of instructions and their operands stays stable. This includes instructions that relate to memory access (load/store/GEP), comparison instructions and calls.
a4f0aad [C++11] Replace llvm::tie with std::tie.
fc6d7d6 [C++11] Replace LLVM_STATIC_ASSERT with static_assert, we now have access to it on all host toolchains.
742e43f Test commit.
d628f19 [C++11] Replace llvm::next and llvm::prior with std::next and std::prev.
cb13d40 [C++11] Clarify in the Compiler.h support macros and comments (and assert it with an #error) that we require MSVC 2012; MSVC 2010 will no longer suffice.
5cba717 [C++11] Remove LLVM_FINAL and LLVM_OVERRIDE macros now that all their uses are gone.
2871375 [SparcV9] Adds support for branch on integer register instructions (BPr) and conditional moves on integer register (MOVr/FMOVr).
a9fe27f AVX-512: Fixed extract_vector_elt for v8i1 vector
bab807e [C++11] Suggest placing callable arguments as the last argument to facilitate the nice formatting of lambdas passed there. Suggested by Chris during review of my lambda additions, and something I strongly agree with.
629b96c Switch all uses of LLVM_OVERRIDE to just use 'override' directly.
cfbdd4d [C++11] Update the coding standards to provide some important guidance about a few constructs in C++11 that are worth starting off in a consistent manner within the codebase.
f432a32 Add back LLVM_FINAL macro. lld still needs it.
4eb03f0 Switch all uses of LLVM_FINAL to just use 'final', and remove the macro.
a45e3ff remove an old entry whose link is broken anyway
a21b315 [Sparc] Add support for parsing branches and conditional move instructions with %fcc1-%fcc3 conditional registers.
18fe44c [Sparc] Make floating point branch instruction formats to accept %fcc0-%fcc1 conditional registers as input. No functionality change.
0a3eef5 [C++11] Switch all uses of the llvm_move macro to use std::move directly, and remove the macro.
afad335 [Sparc] Add support for parsing fcmp with %fcc registers.
80949c5 [C++11] Add support for OwningPtr<T> to be converted to and from std::unique_ptr<T>.
fd18fcb [C++11] Add unit tests for OwningPtr<T> in preparation for changes to make it interoperate (minimally) with std::unique_ptr<T>. This is part of my plan to migrate LLVM to use std::unique_ptr with a minimal impact on out-of-tree code.
18510b7 [C++11] Expand and eliminate the LLVM_ENUM_INT_TYPE() macro
2434916 [Sparc] Add register class for floating point conditional flags (%fcc0 - %fcc3).
aede1c9 [docs] Fix some Sphinx warnings.
628886b [SparcV9] Add support for parsing branch instructions with prediction.
c59a9f0 R600: Add failing control flow tests.
92b38a9 Remove extra truncs/exts around i32 bit operations on PPC64
e4c88dd [Sparc] Add support for parsing annulled branch instructions.
d4dafd1 [Sparc] Add support for parsing sparcv9 instructions addc/subc/addccc/subccc.
e1f5cd3 [Sparc] Add missing ALU instruction patterns.
71e50f0 Make helper function static.
9b1add5 Add missing FileCheck in test command line.
ee5e607 Now that we have C++11, turn simple functors into lambdas and remove a ton of boilerplate.
73bbab9 [C++11] Remove LLVM_HAS_CXX11_STDLIB now that it is just on.
f07a95a [C++11] Remove LLVM_HAS_CXX11_TYPETRAITS now that it is a constant due to the build being C++11.
9a42d21 [C++11] Now that we're not using it, remove the LLVM_HAS_RVALUE_REFERENCES macro.
bad2104 [C++11] Remove uses of LLVM_HAS_RVALUE_REFERENCES from the unittests.
bc1bddb [C++11] Remove the use of LLVM_HAS_RVALUE_REFERENCES from the rest of the core LLVM libraries.
9314308d [Sparc] Add support to decode unimp instruction.
e56ffb9 [C++11] Remove the R-value reference #if usage from the ADT and Support libraries. It is now always 1 in LLVM builds.
ef6cf47 [C++11] Force the other C++11 standard library detection macros to be on unconditionally. Continuing to break down the C++98 support, hopefully without breaking anything.
61f5c0a [Sparc] Add support to decode negative simm13 operands in the sparc disassembler.
830156c [Sparc] Add support for decoding call instructions in the sparc disassembler.
abad354 Rewrite a terrible comment about the machine model.
06f2e69 [Sparc] Add support to disassemble sparc memory instructions.
f8bc17f [C++11] Turn off compiler-based detection of R-value references, relying on the fact that we now build in C++11 mode with modern compilers. This should flush out any issues. If the build bots are happy with this, I'll GC all the code for coping without R-value references.
8669eda Add support for parsing sun-style section flags in ELFAsmParser.
5ddaa6d [Sparc] Implement writeNopData. Emit actual NOP instruction instead of just filling with zeroes.
e0c7e3d [Sparc] Teach SparcAsmParser to emit correct relocations for PIC code.
79ac85b Fix RWMutex to be thread-safe when pthread_rwlock is not available
f38b536 [C++11] Replace autoconf --enable-cxx11 with --enable-cxx1y. The baseline is now C++11, and we unconditionally add -std=c++11 to the flags.
b23750a [C++11] Switch the CMake option from LLVM_ENABLE_CXX11 (default on) to LLVM_ENABLE_CXX1Y (default *off*). =D C++98 is dead. Long live C++11.
f468dea [docs] Update the docs to remove my hedging about C++98 vs. C++11. =] The switch has been thrown. While I'm still watching for any failures or problems with this, the documentation can go ahead and move forward.
f06322b [Sparc] 80 column rule. No functionality change.
17e9537 [Sparc] Add support for parsing directives in SparcAsmParser.
c9bf74f [Sparc] Emit 'restore' instead of 'restore %g0, %g0, %g0'. This improves the readability of the generated code.
5de5680 SpillPlacement: fix a bug in iterate.
c1d2eda [CMake] Remove dead C backend option
d95e8b4 Reflow isProfitableToMakeFastCC
ba34beb Jumped the gun with r202551 and broke some bots that weren't yet C++11ified.
d54d4f6 New PBQP solver, and updates to the PBQP graph.
e6a2102 [docs] Clarify that there isn't much to be done other than watch build bots when using the standard library facilities. The missing pieces here aren't always in useful discreet chunks.
2e7beea [C++11] Switch autoconf and make to use C++11 by default. Now both build systems have the default as C++11, but retain the ability to build with C++98.
cec8bf3 Fix >> to be > > for non-c++11.
34faf78 R600: Verify all instructions in the AsmPrinter on debug builds
9f0d68f R600/SI: Expand all v16[if]32 operations
7166b28 [C++11] Switch CMake to use C++11 by default! Next up, autoconf/make!
ffbfa9f 80-col.
ede487c Fix a crasher where when we're attempting to replace a type during the finalization for CGDebugInfo in clang we would RAUW a type and it would result in a corrupted MDNode for an imported declaration.
80883b6 Add more whitespace to fix more bullets.
27f41a3 Add whitespace to try to fix bulleted list.
640da19 Fix some links to C++11 feature papers in the Coding Standards
4a2f393 add missing 3.4 release
4ef6a7b CommandLine: Exit successfully for -version and -help
1b5d421 Test commit
2a80d7d Fixed operand of SC microMIPS instruction.
0164f27 Drop libtool from llvm.
5d945db Fixed encoding of SYSCALL microMIPS instruction.
8f883ae Revert revision 202518  because of wrong commit message.
60f8980 Fix operand of SC instruction.
fc6cc0e With rpaths being set correctly, SHLIBPATH_VAR is not needed anymore.
128237d Correctly set rpath for unittests.
37c04a0 Centralize the handling of install_name and rpath.
2dc637f [docs] Add a section to the coding standards about languages and such.
2c4b1c4 X86Operand is extracted into individual header.
72667d1 [docs] A slight tweak to the intro for the golden rule in the coding standards.
345ca69 [docs] Tweak the example to match what is apparantly the desired form for the style templates we're using.
a20d48d [docs] Switch to external hyperlink references. Much more readable and hopefully easier to get the formatting right for ReST.
9447b54 [docs] Fix my links to use the correct ReST syntax.
ed0b862 [docs] Fix 80-column wrap that I messed up.
67814df [docs] Tweak discussion of BSDs based on feedback from Roman Divacky. FreeBSD 10.0 and newer have a modern Clang toolchain that should work well.
baed825 [docs] Add a big section with details about how to go about acquiring a more modern host C++ toolchain for Linux distros where folks sometimes don't have a good option to get one as part of their system.
bec8cee Reorder Mips/MCTargetDesc/CMakeLists.txt.
99e493f [mips] Add MipsNaClELFStreamer.cpp to CMakeLists.txt.
068a8c1 [mips] Implement NaCl sandboxing of indirect jumps:
72c42d9 Add 'remark' diagnostic type in LLVM
6e2a50e Turn static inline functions to inline, following Rafael's suggestion
3d2ce7a Swap PPC isel operands to allow for 0-folding
49c7656 llvm-objdump: Fix crash bug with printing unwind info on stripped file.
6738a1b Style fix.
0ff25b3 Now that it is possible, use the mangler in IRObjectFile.
5de0f3d Rename coff_pdata_x64 -> coff_runtime_function_x64.
b7a2ea7 Trying to unbreak the darwin11 builder
ff455c0 Try to unbreak the C++11 build
d477e84 [CMake] llvm_add_library(SHARED|STATIC): Fix broken OUTPUT_NAME for *_static.
36e1825 Add CR-bit tracking to the PowerPC backend for i1 values
c72cf87 Add an OutPatFrag TableGen class
1a13499 Fix visitTRUNCATE for legal i1 values
64e9de3 Remove unnecessary temporary variable.
8594ec6 Object/COFF: Add a struct for the function table in .pdata.
4c34f71 Provide a target override for the latest regalloc heuristic.
594e2aa Drive-by comment fix. This regalloc comment was not accurate.
d76403b [docs] Stop advertising 'make update'. It isn't implemented in CMake and seems unlikely to be added. It also doesn't seem like it should be part of the build system at all (consider out-of-tree builds).
14551f0 Lower FNEG just like FABS to fneg[ds] and fmov[ds], thus avoiding expensive libcall. Also, Qp_neg is not implemented on at least FreeBSD. This is also what gcc is doing.
3e31a56 Add getter method to access Reloc::Model.
e6a9693 Revert r201751 and solve the const problem a different way - by making the cache mutable.
4bd26ae Debug info: Remove ARMAsmPrinter::EmitDwarfRegOp(). AsmPrinter can now scan the register file for sub- and super-registers. No functionality change intended.
cc331c8 [XCore] Support functions returning more than 4 words.
870d997 [XCore] Make LowerCallResult a static function.
b9e06b9 Remove MCPureStreamer.
106a28c Re-apply r200853, which should not crash after Clang plugins were converted to loadable modules in r201256.
e4db795 Revert r202396, r202397.
ad4ffce [XCore] Support functions returning more than 4 words.
6257ef8 [XCore] Make LowerCallResult a static function.
c26292d [XCore] Target optimized library function __memcpy_4()
83eab93 [XCore] Add dag combines for instructions that ignore some input bits.
ef174f7 [XCore] Provide information about known zero bits of resource instructions.
9aef444 [asan] fix a pair of silly typos
124bbea [asan] disable asan-detect-invalid-pointer-pair (was enabled by mistake)
9b3d3a9 [asan] *experimental* implementation of invalid-pointer-pair detector (finds when two unrelated pointers are compared or subtracted). This implementation has both false positives and false negatives and is not tuned for performance. A bug report for a proper implementation will follow.
36b191f [docs] Actually spell out the new version requirements for the host C++ toolchain of LLVM. These are already being enforced by the build system and have been discussed quite a few times on the lists, but documentation is important. =]
e2eb9a5 [docs] Clean up some of the required software to not mention irrelevant bits of software and to use a modern GCC version.
5fb0df0 [docs] Switch this table to the simple form as well. No content changed.
adf2c60 [docs] Switch to the incredibly simpler "simple table" form. It now actually looks like the table on the webpage and is entertainingly smaller, easier to read, and easier to edit.
19061dd [docs] Delete tons of bad information in the requirements section of the getting started guide.
fb1e26d Stop test/CodeGen/X86/v4i32load-crash.ll targeting non-X86-64 targets.
9e443ca [CMake] Introduce LLVM_BUILD_EXTERNAL_COMPILER_RT option
1348dc0 Don't emit anything into the debug_ranges section if we aren't emitting any ranges - this includes CU ranges where we were previously emitting an end list marker even if we didn't have a list.
1c30a35 Exception handling docs: Fix a typo
74be63b [X86] Fix Uses/Defs lists for INS, OUTS, SCAS, CMPS, LODS
7e99268 [X86] Add RAX/EAX/AX Uses/Defs to XCHG RAX/EAX/AX instructions.
956ef7f [X86] Add RAX/EAX/AX/AL Uses/Defs to the absolute memory location move instructions. Patch by Florian Lukas with some additional instructions fixed by me. Fixes PR18975.
9572b75 Fix indentation.
d7c1afb Fix odd indentation.
4fb1463 Revert "Use count 0."
8a6c29e Revert "Use StringRef in raw_fd_ostream constructor"
644aecf R600/SI: Optimize SI_KILL for constant operands
a5fbf24 R600/SI: Allow SI_KILL for geometry shaders
14ec680 If we're only emitting line tables for a particular CU then don't add any ranges to the list of ranges for the CU as we don't want to emit them anyway. This ensures that we will still emit ranges if we have a compile unit compiled with only line tables and one compiled with full debug info requested (we'll emit for the one with full debug info).
0181303 Add a debug info code generation level to the compile unit metadata and update everything accordingly. This can be used to conditionalize the amount of output in the backend based on the amount of debug requested/metadata emission scheme by a front end (e.g. clang).
dac5e91 Formatting.
1c2d4eb Add an explanatory comment.
63ba773 Grammar and spelling.
f68eb4f Fix a type error that crept into r202313.
0115a4e Remove unnecessary llvm:: qualification.
9ad6bda Use regnum regex in an XCore test case.
6a3e1db Debug info: Refactor AsmPrinter::EmitDwarfRegOp to make the control flow more obvious.
3f19b69 R600: Remove unnecessary build_vector pattern.
aa115a7 Very temporarily XFAILing a test. Will be fixed shortly.
06eab82 Fix broken FileCheck prefixes
eaf8a32 Add a limit to the heuristic that register allocates instructions in local order.
692c94c Use an install name dir of @executable_path/../lib instead of @rpath.
685b0d9 Lower unsigned vsetcc to psubus in certain cases
c540920 Don't mix the plain and keyword signatures of target_link_libraries.
a4e265a Silencing an MSVC signed comparison warning.
4a7156d Fix the aggressive anti-dep breaker's subregister definition handling
726bae9 GlobalOpt: Apply fastcc to internal x86_thiscallcc functions
0a91f48 Relax COFF string table check
5732fbd Fix broken FileCheck prefix
3ae2abb Use the overloaded std::abs rather than C's abs(int) to address Clang's -Wabsolute-value
a55b3df Use count 0.
f985aec Fix typo. Thanks to Roman Divacky for noticing it.
c4bdb93 Compare DataLayout by Value, not by pointer.
e356197 Use a sorted array to store the information about a few address spaces.
3c4c95e Move these functions out of line. A DenseMap lookup is not a simple operation.
401d35b Fix PR18165: LSR must avoid scaling factors that exceed the limit on truncated use.
12c9f92 llvm-symbolizer: use dynamic symbol table if the regular one is stripped.
2895793 Move getELFDynamicSymbolIterators to a public header.
18f2091 [CMake] BUILD_SHARED_LIBS: Fixup for r202261: Give PULIC to system_libs in LLVMSupport.
2d0eef4 Ensure bitcode encoding of instructions and their operands stays stable. This includes instructions with aggregate operands (insert/extract), instructions with vector operands (insert/extract/shuffle), binary arithmetic and bitwise instructions, conversion instructions and terminators.
2e0d7a9 [CMake] Work around to use target_link_libraries(PUBLIC) in BUILD_SHARED_LIBS mode.
8571df6 [CMake] Move LLVMBUILD_LIB_DEPS stuff from add_llvm_library (and LLVm-Config) to llvm_add_library to centralize target_link_libraries.
530869f AArch64: simplify tbl/tbx polymorphism
e708238 ARMv8 IfConversion must skip narrow instructions that a) define CPSR and b) wouldn't affect CPSR in an IT block
3d0b469 Stop test/CodeGen/ARM/a15.ll targetting non-ARM targets.
f6679de [mips] Treat -mcpu=generic the same way as an empty CPU string.
2b442bf [SROA] Use the correct index integer size in GEPs through non-default address spaces.
18eab50 Add two helpers to IRBuilder to flesh the interface out to N-width integers. Complements the interfaces it is wrapping.
5b95cec [SROA] Teach SROA how to handle pointers from address spaces other than the default.
38e90e3 [SROA] Split the alignment computation complete for the memcpy rewriting to work independently for the slice side and the other side.
07f95b3 [CMake] Use target_link_libraries(INTERFACE|PRIVATE) on CMake-2.8.12 to increase opportunity for parallel build.
ecb903c [x86] Add same itinerary to SYSEXIT64 as SYSEXIT for consistency.
38f8e8a [CMake] Introduce cmake_policy(CMP0022) for target_link_libraries(INTERFACE|PRIVATE).
5fb5076 [CMake] Use LINK_LIBS instead of target_link_libraries().
9262808 [x86] Remove some unused instruction format classes.
df24b19 [x86] Simplify disassembler code slightly.
c1c3773 [SROA] The original refactoring inspired by the addrspace patch in D1764, which in turn set off the other refactorings to make 'getSliceAlign()' a sensible thing.
dd08079 [SROA] Yet another slight refactoring that simplifies an API in the rewriting logic: don't pass custom offsets for the adjusted pointer to the new alloca.
c9166f0 [SROA] Simplify the computing of alignment: we only ever need the alignment of the slice being rewritten, not any arbitrary offset.
f28c057 [SROA] Use NewOffsetBegin in the unsplit case for memset merely for consistency with memcpy rewriting, and fix a latent bug in the alignment management for memset.
f11f7a4 [SROA] Use the members for New{Begin,End}Offset in the rewrite helpers rather than passing them as arguments.
abd2555 [SROA] Compute the New{Begin,End}Offset values once for each alloca slice being rewritten.
ca302ab Use StringRef in raw_fd_ostream constructor
50bc165 [SROA] Fix PR18615 with some long overdue simplifications to the bounds checking in SROA.
5820a93 Remove spurious emacs major mode marker, these should only go on .h files.
8e6d667 80-col.
717116f Formatting fixups.
bb69788 Delete two declared overloads of CallInst::CallInst that are never defined or used. No functionality change.
cf84b5b Constify the Optnone checks in IR passes.
204755b Simplify base64 routine a bit.
95e9730 Exception handling docs: Describe landingpad clauses' meanings in more detail
bf455c5 Add DIUnspecifiedParameter, so we can pretty-print it. This will be used for testcases in CFE.
e8aecce fix crash in SmallDenseMap copy constructor
356deb5 Use DataLayout from the module when easily available.
7e2bf3c Attempt to unbreak an MSVC buildbot by switching to %llc_dwarf.
889b129 DwarfDebug: Avoid emitting an empty debug_aranges section when aranges are disabled
35989a7 Address review comments for r202188. This is refactoring / simplifying code, updating comments and enabling the testcase on non-x86 platforms.
3f0a9af Fix resetting the DataLayout in a Module.
9c256ec [reassociate] Switch two std::sort calls into std::stable_sort calls as their inputs come from std::stable_sort and they are not total orders.
431e9f0 R600: Don't unconditionally unroll loops with private memory accesses
d8c3104 R600/SI: Custom select 64-bit ADD
495e401 [SROA] Add an off-by-default *strict* inbounds check to SROA. I had SROA implemented this way a long time ago and due to the overwhelming bugs that surfaced, moved to a much more relaxed variant. Richard Smith would like to understand the magnitude of this problem and it seems fairly harmless to keep some flag-controlled logic to get the extremely strict behavior here. I'll remove it if it doesn't prove useful.
15ac7df Account for 128-bit integer operations in PPCCTRLoops
724e528 Don't try to set a dummy DataLayout. It is parsed now.
aab87fe Store a DataLayout in Module.
dbaa6ab Debug info: Support variadic functions. Variadic functions have an unspecified parameter tag after the last argument. In IR this is represented as an unspecified parameter in the subroutine type.
9791b3f Revert "Debug info: Support variadic functions."
d225511 Remove outdated comments.
c6d0a14 Debug info: Support variadic functions. Variadic functions have an unspecified parameter tag after the last argument. In IR this is represented as an unspecified parameter in the subroutine type.
150f810 [XCore] Add intrinsic for CLRPT (clear port time) instruction.
fb2f73a [XCore] Add intrinsic for EDU (event disable unconditional) instruction.
57edc9d Make DataLayout a plain object, not a pass.
28713bd Keep the link register for uwtable.
6dc9f73 [XCore] Prefer to word align functions.
53eeb67 Factor out calls to AA.getDataLayout().
37ecf69 Make a few more DataLayout variables const.
a2ff581 [SROA] Use the original load name with the SROA-prefixed IRB rather than just "load". This helps avoid pointless de-duping with order-sensitive numbers as we already have unique names from the original load. It also makes the resulting IR quite a bit easier to read.
f5701e4 [SROA] Thread the ability to add a pointer-specific name prefix through the pointer adjustment code. This is the primary code path that creates totally new instructions in SROA and being able to lump them based on the pointer value's name for which they were created causes *significantly* fewer name collisions and general noise in the debug output. This is particularly significant because it is making it much harder to track down instability in the output of SROA, as name de-duplication is a totally harmless form of instability that gets in the way of seeing real problems.
1989963 [SROA] Rather than copying the logic for building a name prefix into the PHI-pointer builder, just copy the builder and clobber the obvious fields.
b59c39e [SROA] Simplify some of the logic to dig out the old pointer value by using OldPtr more heavily. Lots of this code was written before the rewriter had an OldPtr member setup ahead of time. There are already asserts in place that should ensure this doesn't change any functionality.
10b2920 [SROA] Adjust to new clang-format style.
6c35c95 Reuse constants for COFF string table entry offsets
64d5fd9 [SROA] Fix a *glaring* bug in r202091: you have to actually *write* the break statement, not just think it to yourself....
8eb7642 Disable old JIT unittests for AARch64
d28765c Ignore old JIT tests in AARch64 - CMake style
06b8110 Add aarch64 to config.guess
31c756b Silence GCC warning
bf930d5 Fix typos
eb1b5ba [SROA] Add a debugging tool which shuffles the slices sequence prior to sorting it. This helps uncover latent reliance on the original ordering which aren't guaranteed to be preserved by std::sort (but often are), and which are based on the use-def chain orderings which also aren't (technically) guaranteed.
2516e7f [SROA] Use a more direct way of determining whether we are processing the destination operand or source operand of a memmove.
3d9b85c Add some convenience accessors for the underlying Use of an operand. These complement many of the existing accessors and make it significantly easier to write code which needs to poke at the underlying Use without hard coding the operand number at which it resides for a particular instruction. No functionality changed of course.
88546b6 Indent this continued line.
c537759 [SROA] Fix another instability in SROA with respect to the slice ordering.
2a213a4 llvm-dwarfdump: Support for debug_line.dwo section for file names for type units under fission.
ec89b9f Make some DataLayout pointers const.
70b3b7d Permit CMAKE_INSTALL_RPATH to be set on command line
0aedb78 trivial test commit
341d0f4 llvm-objdump: Do not attempt to disassemble symbols outside of section boundaries.
e5f1c6d Disable an MCJIT test on older Darwins until we have a better interface.
2e4ab2a Fix unused variable
bc247e4 R600/SI - Add new CI arithmetic instructions.
3f9f4bc R600: Make check clearer.
e87a1a9 Fix DOT4 missing from getTargetOpcodeName
3246123 Add missing const
71e23f0 Trivial code simplification
68085c7 SLPVectorizer: Try vectorizing 'splat' stores
b55c398 [X86][SchedModel] Add missing scheduling model for SSE related instructions.
68e1531 Add a dwarf number to the Y register.
ac69459 Replace the F_Binary flag with a F_Text one.
137342f LTO: Add the loop vectorizer to the LTO pipeline.
35f35ee Fix windows unittest I missed in the raw_fd_ostream constructor change.
a2be909 For lcov tests, don't Xfail mips littl endian (mipsel-... and mip64el-...) targets. Just big endian (mips-... and mips64-...)
843efd4 Don't make F_None the default.
281d7fc [CMake] Remove dependency on non-existing profile_rt-shared. Patch by Brad King.
596d621 [asan] remove test that should have been removed in r202033
740a004 [asan] simplify the code that compute the shadow offset; get rid of two internal flags that allowed to override it. The tests pass, but still this change might break asan on some platform not covered by tests. If you see this, please submit a fix with a test.
d7e1256 Add AArch64 big endian Target (aarch64_be)
58423c8 AVX-512: Fixed encoding of VPCMPEQ and VPCMPGT
69aeeee4 Share a createUniqueEntity implementation between unix and windows.
6822655 Delete dead code.
6631253 Asm Parser: support .error directive
e3d661f AsmParser: support .ifeqs directive
570d544 SPARC: Implement TRAP lowering. Matches what GCC emits.
b4702e2 ARMAsmParser: whitespace
ec1c805 ARM IAS: support .align without parameters
69f706d MCAsmParser: support .ifne
0922e5b MCAsmParser: handle space properly for .ifc/.ifnc
a0d1629 MCAsmParser: add support for .err directive
da6ffb3 Use static instead of an anonymous namespace.
73f1a5f AVX-512: Fixed encoding of VPTESTMQ
589d637 Simplify remove, create_directory and create_directories.
e4e42f7 Use simpler form of llvm::sys::fs::remove.
ddc8ff2 LocalStackSlotAllocation: Turn one-iteration loop into if.
46e8559 TableGen.cmake: Functionalize and reformat.
043cc54 Simplify linking to system libraries
be66089 ARM IAS: support .short and .hword
ea06d97 [python-bindings] Remove some cruft that snuck in.
c7ee777 Make test more resilient against scheduling decisions.
2938fa4 Fix typo
fa3089b MC: Support COFF string tables larger than 10MB
3c288fc Don't inline get[S|U]LEB128Size() until they are proved to be hot.
80668d1 Move get[S|U]LEB128Size() to LEB128.h.
fb24ccf Revert "Revert "Use relative rpath so that the installation and build dirs are relocatable.""
ea5f676 Revert "Use relative rpath so that the installation and build dirs are relocatable."
8c0eb3e Add const to some member functions of SuccIterator.
a7101eb Prune debug message in AddLLVM.cmake.
378f318 llvm/test/CodeGen/X86/shift-pcmp.ll: Tweak to appease FileCheck. "CHECK-LABEL" doesn't identify labels magically and CHECK-LABEL behaves free from other contexts.
5e89e33 Include <cctype> for isdigit().
0ee9a84 [python-bindings] Added OpCode like support for all enumerations with unittests.
a6e734d [CodeGenPrepare] Fix the check of the legality of an instruction. The API expects an ISD opcode, not an IR opcode. Fixes a regression for R600.
c94f3ae Use relative rpath so that the installation and build dirs are relocatable.
341149a Switch the LLVM error reporting on the new diagnostic system. The LLVM diagnostic are now wired-up in clang (since r200931), thus the user experience will not be impacted by this change anymore.
8048c44 [CodeGenPrepare] Move CodeGenPrepare into lib/CodeGen.
0206b30 [DAGCombiner] PCMP* sets its result to all ones or zeros so we can AND with the shifted mask rather than masking and shifting separately.
94f20bf [Stackmaps] Move the target-independent frame index elimination for stackmaps and patchpoints into target-specific code.
84ace05 Shankar kindly pointed out that I wasn't following the coding convention properly, so moving raw_ostream.h above system_error.h.
100aba2 Fixing the MSVC build by including a file.
6700168 llvm-objdump/COFF: LoadConfiguration does not exist in object file.
1e08430 Add missing include.
91f86b7 Add a SymbolicFile interface between Binary and ObjectFile.
3825c08 DebugInfo: Remove the empty macinfo section.
75ece7a Rename a few more DataLayout variables from TD to DL.
4449ed2 add -da-delinearize runs and checks to MIV testcases
24d33a5 fix a corner case in delinearization
f9cb030 normalize the last delinearized dimension
fc605ac fail delinearization when the size of subscripts differs
1268135 Remove dead declaration

git-subtree-dir: llvm
git-subtree-split: 4f45d04c6f65c3456713db05d6e38b8f57c616d7
Merge with LLVM.
Squashed 'llvm/tools/clang/' changes from 35fb7b1..0c1843b

0c1843b Changing this test case to use an unknown attribute, since there are not currently any type attributes which would apply to a lambda, except in MSVC compatibility mode.
85f82dc Gracefully handle an attribute specifier following a lambda introducer when the parameter list wasn't present.
7533ae9 Sema: demote invalid atomic ordering message to warning.
ff4bb58 clang-format: Avoid unnecessary break before lambda return type.
4ca1d83 Sema: produce error when invalid ordering is passed to atomic builtin
4bf1fd0 Update for IR: add a second AtomicOrdering to cmpxchg insts.
cb635c5 clang-format: Fix another false positive in the lambda detection.
ab058aa clang-format: Fix incorrect lambda recognition exposed by r203452.
2a4e1a3 clang::HeaderSearch: Use default constructor even for POD.
64da6b3 clang-format: Detect weird macro lambda usage.
4918964 clang/test/Modules/include-relative.c REQUIRES shell due to chdir.
a30c462 Tests for DR381-388.
e1f0df8 Revert C++11ification in r203534 and r203536. Apparently our toolchains aren't ready for this yet.
260dbc3 [C++11] Add 'override' keyword to virtual methods that override their base class.
bc04c44 test: Regenerate profile data for PGO tests
0c689b5 Fix use of uninitialized variable in ExternalASTSourceTest.cpp (introduced in 203525)
ae7e589 [C++11] Add 'override' keyword to virtual methods that override their base class.
b5d8fba [HeaderSearch] Fix issue where if a headermap entry maps the filename to a framework import (non-absolute path) then we fail to find it if it is re-included later on.
89e314d test: Give instrumentation based profiling tests their own directory
3750d8d test: Fix feature test for "native" in lit.cfg
e611caa De-virtualize a method since it doesn't override anything and isn't overridden itself.
0b436eb [C++11] Add 'override' keyword to virtual methods that override their base class.
c712bfe Speculative workaround for apparent libstdc++ bug exposed by r203534.
61e100d Move the warning about unused relational comparison from -Wunused-value to -Wunused-comparison.  Also, newly warn on unused result from overloaded relational comparisons, now also in -Wunused-comparison.
4e2325b If a visibility update record is found for a DeclContext after that Decl has already been loaded, apply that update record to the Decl immediately, rather than adding it to a pending list and never applying it.
c6c3e3d If a module map is found in a relative -I path, convert the filenames within it to absolute paths when building the includes file for the module. Without this, the module build would fail, because the relative paths we were using are not necessarily relative to a directory in our include path.
de27913 Add a unittest for the ExternalASTSource.
c78427d Basic: Add -Wswitch-bool to control warn_bool_switch_condition
c9a92c2 Objective-C IRGen. Fixes several regressions caused by changes made to setting of ObjC linkages. //rdar://16206443
a0ca74f Add -fmodules-cache-path to test/Headers/c11.c
d4811af Thread safety analysis: move smart pointer checks from -Wthread-safety-beta to -Wthread-safety.
e018c7b [analyzer] Eliminate memory leak in BugReporter::emitReport()
22ee0a5 Turn on the uncovered umbrella header warning by default
82ff42d RTTI symbols for visible local types may need weak linkage.
815fcf9 Add a main function to the clang-format.py vim integration.
76246f6 IRGen: __c11/__atomic compare-and-exchange should respect the standard
c81e290 [C++11] Avoid implicit conversion of ArrayRef to std::vector and use move semantics where appropriate.
15fd658 [C++11] Replacing DeclBase iterators specific_attr_begin() and specific_attr_end() with iterator_range specific_attrs(). Updating all of the usages of the iterators with range-based for loops.
9c7670d Replace CLANG_IS_PRODUCTION with CLANG_PLUGIN_SUPPORT.
9989dfb Add loc() to the dynamic registry.
89ae198 clang-format: Add spaces between lambdas and comments.
1b93ddc Reverting llvm::distance changes to use std::distance with iterators instead, per post-commit review feedback.
d6b3635 Preserve hanging indent when breaking line comments.
f58bc2e Make __LITTLE_ENDIAN__/__BIG_ENDOAN__ common PredefinedMacros
f2d2d02 clang-format: Add spaces around trailing/lambda return types.
e933f45 clang/test/Index/preamble-reparse-warn-*.c: Stabilize on win32.
0556e85 clang/test/Index/preamble-reparse-warn-*.c: Use @LINE in FileCheck.
3e16919 When a type's definition is instantiated, the definition becomes visible, even if the type's declaration was previously instantiated in an unimported module. (For an imported type definition, this already worked, because the source location is set to the location of the definition, but for locally-instantiated type definitions, it did not.)
a8c56f1 Remove trailing whitespace.
2ea3dc2 Tab to spaces. No functionality change.
5486a90 Fix uninitialized value in AttributedTypeLoc.
e743954 [C++11] Replacing some using declarations which are not supported on all compilers (such as MSVC 2012) with a less problematic typedef.
28f5fd7 [C++11] Use std::unique_ptr for ownership in a vector.
68c37ba Fix build break, replace take() with release().
f8b74ee [C++11] Replace OwningPtr include with <memory>.
facff14 [C++11] Remove the remaining uses of OwningPtr.
f47666e [-Wunreachable-code] Handle Objective-C bool literals in 'isConfigurationValue'.
fd855a6 Update clang to account for changes made to LLVM in r203376
29d3b02 Remove uses of SmallString::equals in favor of SmallVectorImpl<char>'s operator==
3fcc6f3 [Sema] Fix assertion hit with #pragma weak.
8f6e314 [libclang] Don't pad the main buffer for the preamble.
5c16721 retain-comments-from-system-headers.c: Flush module cache, or incremental test would fail since r203317.
2201e59 [C++11] Update Clang for the change to LLVM's Use-Def chain iterators in r203364: what was use_iterator is now user_iterator, and there is a use_iterator for directly iterating over the uses.
df4c4c0 [-Wunreachable-code] Tweak heuristic for configuration values to include arithmetic operations involving sizeof(), but not raw integers.
d856df2 [C++11] Replacing Decl iterators attr_begin() and attr_end() with iterator_range attrs(). Updating all of the usages of the iterators with range-based for loops.
026af42 [Preprocessor] Only check for -Wunused-macros if the translation unit kind is TU_Complete.
8328f64 [C++11] Replacing RecordDecl iterators field_begin() and field_end() with iterator_range fields(). Updating all of the usages of the iterators with range-based for loops.
0ce08a0 [C++11] Replacing EnumDecl iterators enumerator_begin() and enumerator_end() with iterator_range enumerators(). Updating all of the usages of the iterators with range-based for loops.
1129b0c Reapplying r203299 in a slightly different manner. Now range APIs are implemented in terms of iterator APIs.
80cbf92 [-Wunreachabe-code] Don't warn about unreachable destructors for temporaries.
8ab3973 Fix CFG bug where the 'isTemporaryDtorsBranch' bit was silently lost for terminators.
0e611db [CFG] Record would-be successor for noreturn destructor.
42bbd73 [-Wunreachable-code] Handle 'return' with no argument dominated by 'noreturn' function.
dee928e Add an option to disable plugins in clang.
a82e0ce Revert "Add an option to disable plugins in clang."
1be34fd Add an option to disable plugins in clang.
37d00e7 Revert accidentally-committed file.
19512d9 Module [extern_c] attribute: inherit to submodules, don't write 'extern "C"' blocks when building in C mode, and serialize and deserialize the attribute.
c64c62a Replace "can not" with "cannot" in diagnostics messages.
6f69b0e In my tests, I'm finding that declaring iterators in terms of ranges can sometimes have dangerous side-effects where the range temporary is destroyed, taking the underlying iterators out with it.
f1d5d45 [C++11] Revert uses of lambdas with array_pod_sort.
3344f96 [C++11] Convert sort predicates into lambdas.
cccfdc4 [-Wunreachable-code] Treat constant globals as configuration values in unreachable code heuristics.
24ceb76 Zap another dead 'break' statement.
70639e8 Replace OwningPtr with std::unique_ptr.
caabaa8 [C++11] Replacing DeclBase iterators decls_begin() and decls_end() with iterator_range decls(). The same is true for the noload versions of these APIs. Updating all of the usages of the iterators with range-based for loops.
445fc76 Replace OwningPtr::isValid() with conversion to bool.
789a4f8 Change OwningPtr::take() to OwningPtr::release().
36ca069 Remove dead return and simplify code.
1c20e70 Renaming the chains() ranged iterator to chain() per suggestion by Richard Smith.
0a8ec26 [C++11] Replacing IndirectFieldDecl iterators chain_begin() and chain_end() with iterator_range chains(). Updating all of the usages of the iterators with range-based for loops.
835f122 Add a note in the user manual that tsan is not supported on Mac.
087429b "Mac OS/X" -> "Mac OS X" spelling fixes for clang.
ecb8277 [C++11] Replacing ObjCMethodDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
77e5210 [C++11] Adding an iterator_range accessor for parameter declarations to the CaptureDecl class; however, the only usage of the iterators cannot be converted to using the range yet. This change is for consistency with other Decls exposing parameters.
be72793 [C++11] Replacing BlockDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
126b7b9 [C++11] Replacing FunctionDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
d868780 [C++11] Replace LLVM-style type traits with C++11 standard ones.
0265df4 [C++11] Replacing iterators ddiag_begin() and ddiag_end() with iterator_range ddiags(). Updating all of the usages of the iterators with range-based for loops.
0d72b7c [C++11] Updating getUsingDirectives to use iterator_range instead of a std::pair.
32e45c4 Fully reverting r203236 -- it seems the only bots that are happy are the MSVC bots.
3dd81e6 [C++11] Replacing iterators attr_begin() and attr_end() with iterator_range attrs(). Updating all of the usages of the iterators with range-based for loops.
6b3182d Remove a test that we don't need anymore
fcd77d0 [OPENMP] Fix for threadprivate construct instantiatiation.
bf8b80b Fix PR18967 -- Bad this adjustment for virtual methods in a diamond virtual inheritance hierarchy
5af20f1 ExternalClangExamples: add a link to ToyClangPlugin
4f686af Tweak some test paths to match on Windows
b293a9a [OPENMP] Small update in threadprivate variables processing to fix template instantiation.
ddea715 [Preprocessor] Pass TranslationUnitKind to the preprocessor and if it is TU_Prefix avoid warning for unused macros.
fec65ff [OPENMP] Fixed linked libraries for libiomp5 on Linux
f29af09 Add a bunch of missing changes from r203208
2bd3969 Fix recent regressions in -Wreturn-type caused by heuristics to -Wunreachable-code.
9f36327 Add dependencies from imported modules with -MD
760c6c7 Another one fix for getSema()/getDerived().getSema()
110d021 Fixed getSema()/getDerived().getSema() diff pointed by Hal Finkel.
42efb1c [-Wunreachable-code] Correctly expand artificial reachability to pruned '&&' and '||' branches involving configuration values.
465ac25 [-Wunreachable-code] Teach reachable code analysis heuristics about more literal types.
51d97fe The Visual Studio IDE changed behavior in VS2012. It used to be the case that the clang diagnostic has to report a column number one less than the correct value in order for the IDE to move the cursor to the expected location. This behavior is changed in VS2012 and VS2013 so that the IDE is now expecting the column number to match the actual source location.   Before: source(line, column-1): type: message   After: source(line, column): type: message
894947e Partial revert of r203179. The build bots are telling me that some out-of-tree builds are using redecls_begin()/redecls_end(), so adding some machinery back in to support them.
ed65ea2 [C++11] Replacing iterators redecls_begin() and redecls_end() with iterator_range redecls(). Updating all of the usages of the iterators with range-based for loops, which allows the begin/end forms to be removed entirely.
73b802f C. Compare vector sizes using their raw element size instead of getTypeSize (which rounds up sizes) in order to issue diagnostics when casting to mismatched vector sizes; instead of crashing in IRGen. // rdar:// 16196902. Reviewed offline by John McCall.
bb46ff5 Use llvm.compiler.used instead of llvm.used for objc symbols.
89cc7ee Make the test a bit stronger by showing what is added to llvm.used.
4488394 Remove a dead store, add a FIXME for another.
5b7cea3 Exclude invalid old decl from mismatching linkage assertion
bcc82ea Remove dead code I introduced 6 years, 4 months ago in r43518.
02b1ecb PGO: rename profile data files from .pgodata to .profdata.
07e912f PGO: rename FileCheck variable to follow the existing convention.
b12c514 Update for LLVM API change
d388e94 [docs] s/cpp11-migrate/clang-modernize/
fae8726 PGO: Add support for Objective-C blocks.
6418873 Fix dead store and simplify. No functionality change (although the code is now correct if MaxEditDistance were increased to something greater than 1).
27d09ac MS ABI: Disambiguate the manglings for global guard variables
bf4e095 Based on usage, the NamedDecl is always set when constructing a CallingContext, but none of the other optional parameters are. Removing the optional parameters, and making the NamedDecl required.
9251f84 Refactored to use a simple helper function that wraps the logic of creating an SExprNode and returning the position in which it was inserted.
cd2a974 Add tests for MS inline asm change r203146
d06f929 MS ABI: Fix the initializer/finalizer mangling for static data members
43a9b34 Very minor simplification and typo correction; no functional changes intended.
62bfc97 Revert "Use private linkage for remaining GlobalVariables with private names."
b5ceb30 Fix use-after-free detected by ASan bootstrap.
cbcdc96 Run -fprofile-instr tests with %clang_cc1.
ad1d5b1 Expand documentation section on comment parsing
848b7b3 [ASTPrinter] 'SEL' isn't a ObjCObjectPointer, so we don't need to handle it in TypePrinter::printObjCObjectPointerBefore.
a2d482a Fix operator<< recognition (PR19064).
6a11659 [C++11] Adding override specifiers where appropriate, and removing virtual specifiers where not needed.
1942032 Reformatting the style used within the massive attribute semantic handling switch statement, so now there is only one style used in this block of code, instead of three or more styles.
1131808 Added an inserter for ArrayRef<SourceRange>.
f343a49 [OPENMP] Updated comments and _OPENMP macro value for OpenMP 4.0 (for 'omp simd' support)
316202f [OPENMP] Missed test for 'simd private'
f24be6f [-Wunreachable-code] Refine treating all branches of 'switch' as reachable, which includes those with all cases covered but with no 'default:'.
1cc74bc CodeGenObjC/instr-profile.m: Add -target darwin to appease bots.
516e77b [-Wunreachable-code] don't warn about dead 'return <string literal>' dominated by a 'noreturn' call, where literal becomes an std::string.
3c85413 Attempt to fix buildbots by dropping the -LABEL from some FileCheck patterns.
a3eb9f5 [OPENMP] Clause 'num_threads'
4084bb9 PGO: add instrumentation for Objective-C methods.
67fafb9 [OPENMP] Added option -fopenmp=libiomp5|libgomp
a95abca Remove 'break' dominated by 'return' in 'EmitBuiltinExpr'.
c5a9f95 Remove 2 dead 'break' statements.  The 'break' usage in this switch is inconsistent, making this hard to see.
3f330df Remove dead return in Parser::MayBeDesignationStart().
d824372 Remove dead return in BugReporter (found via -Wunreachable-code).
e9773c0 PGO: Use the main file name to help distinguish functions with local linkage.
467db6f PGO: Rename variables to avoid referring to the "MangledName" of a function.
8371711 Refactor PGO code in preparation for handling non-C/C++ code.
4b1cb4e PGO: don't emit counter increment if no counters have been allocated.
73c5236 [Layering] Update include of Linker.h to match its move to a Linker subdirectory in LLVM r203065.
0b2b59a Fix crash if a submodule overrides one of its own macros, and add support for submodule macro overriding within the same top-level module (necessary for the testcase to be remotely reasonable). Incidentally reduces the number of libc++ testsuite regressions with modules enabled from 7 to 6.
fb63bc2 Fix test from r203061
aaeba6f Suppress diagnostics during name lookup for absolute value type.
70e2f18 Use private linkage for remaining GlobalVariables with private names.
b86b0ed Update clang test to cover for new treatment of intrinsics as readnone.
c3404fd Construct GlobalValues with the correct linkage instead of using setLinkage.
f09edf7 [-Wunreachable-code] Handle idiomatic do...while() with an uninteresting condition.
b182cdf Change the color of comment nodes from bright yellow to blue.  Bright yellow on a white background is difficult to read.  Also include a chart showing which colors are used by which elements in the AST dump.
3e4f77b [Layering] Update include of DebugInfo.h which moved to the IR library in LLVM r203046.
47a4352 Objective-C properties. Fixes a crash in Sema where RHS of the property assignment is an lvalue for an incomplete type. // rdar://15118128. Reviewed offline by John McCall.
8762737 Switch to an idiomatic C++ erase/remove for this loop, and fix a bug in the process (I don't believe it's possible to write a testcase for the bug with a non-checking STL implementation).
c475523 [Layering] Update include for the move of DIBuilder.h to the IR library in LLVM r203038.
542df79 [-Wunreachable-code] Handle idiomatic do...while() with an uninteresting condition.
c7d11a8 clang/test/Modules/recursive.c: Tweak expressions for win32.
63d5403 [-Wunreachable-code] generalize pruning out warning on trivial returns.
3fa9b8e Objective-C. Suppress the warning for auto synthesis of property not synthesizing protocol properties if class's super class implements them. // rdar://16089191
67b30a3 [-Wunreachabe-code] add test for double 'break'.
c33de64 [-Wunreachable-code] include some enum constants in "configuration value" heuristic
502fd5f PR19010: Make sure we initialize (empty) indirect base class subobjects when evaluating trivial default initialization of a literal class type.
d038ebe Fix recursion bug in logic to validate 'objc_protocol_requires_explicit_implementation' conformance.
cfdb070 DR status page: add link targets for individual DRs, and link duplicates.
ce29c52 Tests for DR370-380.
a6e1649 [-Wunreachable-code] generalize configuration value checking to all comparison operators.
3ae0a33 Updating this test case to appease build bots which support ANSI escape sequences (unlike my dev box).
25a7fe7 Capabilities are required to pass a name specifying what type of capability is being annotated. There are currently only two supported names: mutex and role. Adding functionality to check for the capability name and diagnose when it's unexpected.
75f094c Attempt to re-enable the VFS unittests on Windows
902ac3b Don't produce an alias between destructors with different calling conventions.
12b5e19 When building a module from the command line via -emit-module, add an entry to the module build stack for the module being built, so we can correctly detect recursive module builds.
a889b8a If a #include finds a file relative to the current file, don't forget to check whether it's part of a module.
be7e334 Mention clang-cl in MSVCCompatibility.rst
90485a0 Update for llvm change.
c32509b [code-completion] Add a couple of test cases suggested by Jordan, and a FIXME.
84abcaf AST: Remove layering violation with Sema
506b3ea [C++11] Using std::unique_ptr to ensure that Argument objects do not leak (since clang-tblgen isn't long-lived, the old leak is probably acceptable, but it offended my senses nonetheless).
ef165ac Use ThreadSafeRefCountedBase for vfs::FileSystem
84ea983 Style fix: replace "1 entries" with "1 entry" in the vftable layout dumping code
99249c6 Revert "[C++11] Replace trivial lambda with std::cref."
3fff5b3 [C++11] Replace trivial lambda with std::cref.
cde007b Added a const qualifier to SourceManager& parameters.
f3523cd MS ABI: Mangle lambdas
2accf9a Disable BasicTests/VFS on win32 for now. Investigating.
adb19e6 [-cxx-abi microsoft] Implement local manglings accurately
9d33e30 Adjust logic for 'objc_protocol_requires_explicit_implementation' for inherited protocols and protocols already conformed in the class hierarchy.
2c9a039 [OPENMP] allow clause 'private' on directive 'omp simd'
0661f6d [OPENMP] emit error message for clause 'if(1 0)'
e819c15 [AST] A "Class<P>" type should not have '*' when printed out.
9e4d5da [OPNEMP] Fixed instantiation of 'if' clause
891c1ae Speculatively fix MSVC buildbots
bba282c Merge using-decl-pr17575.cpp into existing test case.
846f2bc Add a test case for PR17575.
19bab16 [-Wunreachable-code] Don't warn about dead code guarded by a "configuration value".
288b33f Headers: Provide an ABI compatible max_align_t when _MSC_VER is defined
3175463 Remove some unnecessary qualification
5ee6d5a Objective-C. Return 0 as class of methods in protocols. This simplifies my last patch a bit. No change in functionality.
0366aa4 Support relative paths in VFSFromYAML
5a37ee3 TokenKinds: _Atomic isn't a keyword in MS mode
49655e6 DebugInfo: Refix r202888 (a fix to r202769) in a different way, ensuring types aren't needlessly built during -gmlt
7f46de2 [CFG] Tweak "?:" CFG construction to record the unreachable blocks.
bc308b5 [C++11] Simplify a callback to use a lambda.
05b8601 Revert "FileEntry: Remove unused and half-broken copy ctor."
e8bd2d6 [C++11] Push move semantics through APValue.
9a8ff6c FileEntry: Remove unused and half-broken copy ctor.
70c6a06 [-Wunreachable-code] handle cases where a dead 'return' may have a valid predecessor.
305ff0e Add a test case for r202888, which boiled down to -gline-tables-only
da44725 Add tests for newly-resolved core issues <= 370.
c403063 Fix unconditional dereference of a WeakVH in CGDebugInfo TypeCache
c348e6b Update DR status page to match post-Issaquah core issues list.
6e0d73f Add links to TSen from post-Issaquah mailing.
6fd5cdd Pass llvm::Triple objects by const reference.
a7beeda [Mips] Check all MIPS toolchains to find the one that best meets command line arguments and directories tree. The old toolchain selection heuristics worked incorrectly when user has a reduced MIPS toolchain supports the O32 ABI only.
ddd9310 Objective-C IRGen. Fix up the hueristics for determining if an ivar offset load is invariant iff inside an instance method and ivar belongs to instance method's class and one of its super class. // rdar://16095748
6d04da7 The wmmintrin.h header includes two different sub-headers: one for AES support and one for PCLMUL support.  The current immintrin.h header only includes wmmintrin.h if AES support is enabled.  It should include it if either AES or PCLMUL is enabled (GCC's version of immintrin.h does this).
c213fc7 First step towards fixing PR18967 - simplify the ComputeThisOffset interface
e2ff0f6 When deciding whether or not to resolve two anonymous structs to the same Decl in the ASTImporter, ensure that both are filled in from their external sources (if present). Otherwise two different structs may be identified erroneously.
5dc62e3 Tests for LLVM MS inline asm change r202865
abb81d1 Fix -Wsign-compare warning.
2f36995 [C++11] Make StoredDeclsList move-only.
b0c2db49 [Modules] Update to reflect the move of CFG.h to the IR library in LLVM r202827.
bcd563e [Modules] Update to reflect ValueHandle moving to the IR library in LLVM r202821.
235e24a [Modules] Update to reflect the move of CallSite into the IR library in LLVM r202816.
de49053 [cleanup] Re-sort includes with llvm/utils/sort_includes.py and fix a missing include from CLog.h.
0bb7cf3 We now require Visual C++ 2012 (MSVC_VERSION = 1700) or later to build LLVM.
60d302d Give %itanium_abi_triple to the test to appease targeting msvc.
717ce7c [CMake] Add the newly introduced compiler header.
1425f1b MS ABI: Reorganize some tests
18c20f5 MS ABI: Mangle variable templates properly
3c5c22b Fix for r202778 - Implement __readeflags and __writeeflags intrinsics (renamed res to __res)
a3c9292 DebugInfo: Make test (introduced in r202769) resilient to platforms that default to -fstandalone-debug
9db62af DebugInfo: Improvements/corrections to conservative emission of types in explicit template instantiation declarations
35b7c6c Implement __readeflags and __writeeflags intrinsics
48090b3 Add triple to test.  On Mac OS it was failing to generate debug info which matched the check lines
4a7d04b Fix typo that resulted in names at TU scope getting lost sometimes after a module import.
b6b2402 DebugInfo: Emit only the declaration of a class template that has an explicit instantiation declaration (& always emit such a type when there's an explicit instantiation definition)
e135cdf Include <tuple> to speculatively try to fix VS2013 build after r202755
06c0167 Objective-C. Fixes a regression when figuring out linkage for metadata symbols for forward referenced protocols which are never defined.  // rdar://16203115
134c68d Improve diagnostics for malformed constructor declarations (where lookup for the type of the first parameter fails, and it is the only, unnamed, parameter).
5b0fc55 [C++11] Add missing include.
88f3c7e [C++11] Simplify compare operators with std::tie.
e1e6798 Schedule discriminator pass.
a98780d Re-fix previous commit.
7124f16 Remove absolute path from r202733.
4279d60 [libclang] Have clang_getCursorSpelling() return the string for a CXCursor_ObjCStringLiteral or CXCursor_StringLiteral cursor.
50744c2 [C++11] Remove a now unnecessary use of std::function for a remove_if predicate. The wrapper used by SetVector was erroneously requiring an adaptable predicate. It has been fixed and we really don't want to require an indirect call for every predicate evaluation.
c0e55cd Update call DIBuilder::createLexicalBlock.
fdd7bae I guess we're still using LLVM_DELETED_FUNCTION instead of = delete. This should fix a complaining built bot.
4c271d4 Serialized diagnostic severity levels should be stable.
7a9b46c Fix MSVCCompatibility doc ReST and wording.
60fa964 Removing some unused functionality.
eb0f579 Update tests for addition of patch level to LLVM version
192b0eb correct consitency of  XCore caps
ea547be Decl printing: add tests for typedefs
f192568 AArch64: convert NEON tests to use CHECK-LABEL.
743cc3b MSVC 2012 doesn't support std::initializer_list at all, so don't rely on that std::vector constructor.
977d67c Introduce '-fmodules-user-build-path' which accepts the "canonical" path to a user workspace build.
fe52454 MSVC cannot understand temporaries formed from initializer lists.
1d4cff1 [libclang] Introduce APIs that assist in constructing a simple module.map file for a user framework.
54108d0 [C++11] Add #include's for OwningPtr.
28b7261 [libclang] Change clang_VirtualFileOverlay_writeToBuffer to return a malloc'ed buffer.
bb8c08a Disable all dependency output options when using the Tooling library.
747909c Revert "Preprocessor: Add __ALIGNOF_MAX_ALIGN_T__"
5eccc20 Normalize line endings
2052d93 Add a PPC inline asm constraint type for single CR bits
4dd639d AttributeReference: Use UNIX line endings
1817a10 Adding some cross references to the sanitizer attribute documentation. Removes a Sphinx warning pointed out by Sean Silva.
9b463c9 Simplifying attribute generation with range-based for loops. No functional changes intended.
75a3e83 [C++11] ASTMatchers: Use standard static_assert and type traits.
3135d45 [C++11] Use std::atomic instead of LLVM's.
f9c494f [C++11] Work around an incompatibility between llvm::tie and std::tie.
2a1aa9d [C++11] Switch from LLVM_STATIC_ASSERT to static_assert now that we require host toolchains which support this.
ba9fd9e [C++11] Replace llvm::tie with std::tie.
99aa2bf [C++11] Switch the clang-format LLVM style to use C++11 style braced init list formatting. This suggestion has now gone into the LLVM coding standards, and is particularly relevant now that we're using C++11.
1824794 [C++11] Replace llvm::next and llvm::prior with std::next and std::prev.
c04f572 [C++11] Remove an LLVM_OVERRIDE use that I missed in my previous commit.
caa4c61 Switch all uses of LLVM_OVERRIDE to just use 'override' directly.
1cafcfd Add [extern_c] attribute for modules, allowing a C module to be imported within an extern "C" block in C++ code.
f4481e0 [C++11] Switch from the llvm_move macro to directly calling std::move.
0b9b41a [C++11] Expand and eliminate the LLVM_ENUM_INT_TYPE() macro
e1dd182 [C++11] Drop legacy conditionals for TokenKind's underlying type
f755b9d Move private classes into anonymous namespaces.
802ac72 [C++11] Replace verbose functors with succinct lambdas
edea911 ASTReader.h: Prune \param ImportLoc according to r202560. [-Wdocumentation]
e2478b5 [C++11] Remove use of LLVM_HAS_RVALUE_REFERENCES from Clang. This macro is now always 1, as we're requiring C++11 now!
30577e6 Fixed an assertion failure related to bitfield lowering.
03f900e If a module A exports a macro M, and a module B imports that macro and #undef's it, importers of B should not see the macro. This is complicated by the fact that A's macro could also be visible through a different path. The rules (as hashed out on cfe-commits) are included as a documentation update in this change.
fc0df2a Add Clang docs about MSVC compatibility
f89c97e Fix leak in MicrosoftVTableContext
efeac4d [analyzer] Fix for PR18394.
d066fe9 Reapply fixed "Honour 'use-external-names' in FileManager"
d353a18 Tests for lexing of digit separators versus UCNs.
008d8c0 Fix a minor bug in lexing pp-numbers with digit separators: if a pp-number contains "'e+", the pp-number ends between the 'e' and the '+'.
b7947f0 When completing Objective-C instance method invocations, perform a contextual conversion to an Objective-C pointer type of the target expression if needed. This fixes code completion of method invocations where the target is a smart pointer that has an explicit conversion operator to an Objective-C type.
044b71a Don't suggest non-static methods as corrections when they obviously won't work (i.e. when not doing a member lookup and not in a method from the same class or a descendant class).
3841b5a Removing some unused functionality.
cb0b6ef Adding a test case to ensure that type attributes applied to the decl-specifier are applied across all declarations in a group.
281b460 Now that llvm's build system sets -install_name, we don't need to.
b3e0e91 CFG: Also apply the filter to the first block in a FilteredCFGBlockIterator.
9762c97 Add 'remark' diagnostic type in 'clang'
3e1970f [ASTUnit] Don't let the preamble diagnostics out-live the CompilerInstance that created them, this is inherently unsafe.
2cedba8 Add a testcase for r202437.
16487a6 Fix crash with enable_if on constructors.
4230346 Add support for OpenBSD SPARC assembler.
93fe566 Add a -Wclass-varargs to warn on objects of any class type being passed through an ellipsis. Since C++11 relaxed the rules on this, we allow a lot more bad code through silently, such as:
ea890c8 Attempt to fix non-MSVC build
73fb313 -fdump-record-layouts: Sort nvbases by offset before printing them
c2606ce Add -mcrbits/-mno-crbits to control the PowerPC CR-bit-tracking feature
f089299 "&&&" != "&&"
86c8d8e Revert "Honour 'use-external-names' in FileManager"
2b1bc15 Honour 'use-external-names' in FileManager
9e229d2 MS ABI: Attempt to fix DenseMap entry reference invalidation
80070ba Reapply r202420 hopefully fixed for other STLs
58b4d18 Remove an assertion that no longer holds. <rdar://problem/16135814>
b228a86 [-Wunreachable-code] always treat 'case:' and 'default:' cases as reachable.
af663ae [CFG] record the original (now unreachable) block of 'case:' and 'default:' cases.
d4ba7a2 [analyzer] check for now possibly null predecessor edge.
1b06b07 Fix -Wunused-function in Release build.
f56a925 Diagnose attempts to apply ms_struct to records with base classes or virtual functions, but permit that error to be downgraded to a warning (with -Wno-error=incompatible-ms-struct), and officially support this kind of dual, ABI-mixing layout.
04d3c8a MS ABI: Fix vftable mangling by using the vbtable name algorithm
dda6f52 Revert "Remove constructors from FileEntry that prevent owning resources"
1f3d645 Remove constructors from FileEntry that prevent owning resources
8bb3054 Use private linkage for globals we already name with \01L and \01l.
cb258fa Split FileEntry name vs. isValid
f1489d6 Assert that the name of some internal variables start with \01L or \01l.
0b945e0 libclang: New functions clang_Type_getNumTemplateArguments, clang_Type_getTemplateArgument
f0ca76d [CMake] Teach build system to build/test compiler-rt with a just-built Clang
15afb8e [OPENMP] First changes for Parsing and Sema for 'omp simd' directive support
5c13e14 [-Wunreachable-code] Don't warn about trivially unreachable return statements preceded by 'noreturn' functions.
e2c30cf Fix test case indentation.
1f9ec92 [-Wunreachable-code] Don't warn about unreachable 'default:' cases.
0242440 [ASTUnit] Fix use-after-free bug in ASTUnit::getMainBufferWithPrecompiledPreamble().
7054982 Change this test to not try to emit any IR. (It should fail to, but it tries to create an output file before encountering the error.)
d48fe24 As of r202325, CFGBlock predecessors may be NULL. Ignore such preds. Fixes a crasher, PR18983.
17d3039 Add category test case for attribute 'objc_protocol_requires_explicit_implementation'.
78a4666 Pass down the debug emission kind into the compile unit for code generation purposes. Paired with a commit to llvm.
da810d9 [MS ABI] Error instead of generating bad vftables for certain virtual hierarchies (PR18967)
a164807 Fix -Wunused-variable in non-assert builds. No functionality change.
e40e43d Add a 'use-external-names' option to VFS overlay files
05a09c8 [-Wunreachable-code] Prune out unreachable warnings where a 'break' is preceded by a call to a 'noreturn' function.
7e6444b [CFG] encode unreachable block information for would-have-been successors for calls to 'noreturn' functions.
5610fa2 [CFG] Encode unreachable block information for successors when visiting 'if' statements.
36ce652 Rework CFG edges to encode potentially unreachable edges, instead of just making them NULL.
b7cb2e8 Fix testcase for PR18962 with an explicit triple
27618fb PR18962: Fix "Unable to find record layout information for type"
6f83a9e argument -> parameter terminology fixes for FunctionTypeInfo
98cafc6 Refactor linkage computation in CGObjCMac.cpp.
b57e967 Sema: Definition of dllimport globals is not allowed
a4396dd Add newlines to fallback-style description. Patch by Kamal Essoufi\!
18880d9 AArch64: use less cluttered intrinsic for vtbl/vtbx
d3cacdd Add a StmtPrinter test for implicit and explicit conversion operator calls.
dbc8ada Fix typo
68d56ea [CMake] Use target_link_libraries(INTERFACE|PRIVATE) on CMake-2.8.12 to increase opportunity for parallel build.
641cec2 [CMake] Introduce cmake_policy(CMP0022) for target_link_libraries(INTERFACE|PRIVATE).
53c3f9f [CMake] Use LINK_LIBS instead of target_link_libraries().
7c0d9a7 [CMake] Apply DEPENDS intrinsics_gen in clangCodeGen.
c2538c5 clang/test/CodeGenCXX/debug-info-varargs.cpp: Appease msvc with %itanium_abi_triple.
08e49fe 80-col and bad line ending fixups.
2a66e6e PR16074, implement warnings to catch pointer to boolean true and pointer to null comparison when the pointer is known to be non-null.
e180536 [analyzer] NonNullParamChecker: don't freak out about nested transparent_unions.
4a7f794 Add -Wabsolute-value, warnings about absolute value functions.
23eb673 Address review comments for r202185, no functionality changes.
3a3f306 Hoist culling of -Wunreachable-code from headers before we even run the analysis.
1741d11 Debug info: Generate debug info for variadic functions. Paired commit with LLVM.
59aeb1a Add preprocessed output to ccc-analyzer's accepted language map.
c148531 Pretty Printer: Print constexpr and ref qualifiers. Don't print return types on destructors.
8181ff0 Pass the sparc architecture variant to the assembler.
df76027 clang-cl: use -fno-rtti by default
016c301 Give sparcv9 the ability to set the target cpu. Change it from accepting -march which doesnt exist on sparc gcc to -mcpu. While here adjust a few tests to not write an unused temporary file.
89de580 Add a driver option -ivfsoverlay
ee8d6b9 MS ABI: Just use getTypeInfoInChars to get the field size
73db075 Reapply "Pretty Printer: Fix printing of conversion operator decls and calls."
7f219f0 Revert "Pretty Printer: Fix printing of conversion operator decls and calls."
098dc6b Update for llvm api change.
8388f81 Pretty Printer: Fix printing of conversion operator decls and calls.
e44e9e0 AArch64: use different type modifier in arm_neon.td
ee2e36b Add AArch64 big endian Target (aarch64_be)
40a81ef Respect ToolChain::isPIEDefault() in constructing link job on Linux and FreeBSD.
2d24dc3 Factor adding sanitizer linker flags into a separate function and make it less OS-specific
225d9cf Sema: When merging objc string literals, give the result a constant array type.
927053b RewriteObjC: Factor string literal creation into a helper and make sure it gets a proper constant array type.
fefc77a ARM NEON: fix tests after r202137
012148b Fix typo.
271504f Fix for Bug 18536 - Bad alignment in clang/AST/StmpOpenMP.h
0c3a20c AArch64 NEON: add 64-bit scalar intrinsics for _f64 mla/mls etc.
fb7e000 ARM NEON: add _f16 support to a couple of vector-shuffling intrinsics.
8fc5af7 IRGen: Remove a stale comment
de3be0d Attr: Remove ForceInline
0372675 AttributeReference: Document __single_inhertiance, __multiple_inheritance, __virtual_inheritance
2012aaa Modules: Fix malformed reStructuredText
865dbb1 Fix typo in the td source too
9a8475e Remove dead assignment reported by Gautier DI FOLCO.
3180c72 Remove the FormatSecurity diagnostic group from the FormatNonLiteral warning group.
2dff8ff AttributeReference: Fix a typo
2e63a11 Allow multi-component paths in VFS file nodes
0a8b98b Fix typos
57fc288 [libclang] Introduce libclang APIs for creating a buffer with a JSON virtual file overlay description.
63a3941 [libclang] Include "BuildSystem.h" along with "Index.h"
90cdec1 AST: Simplify CharUnits::alignmentAtOffset
a6c4a50 IRGen: Simplify alignment calculation in setBitFieldInfo
5b7370a MS ABI: Return sret parameters when using inalloca
0700120 clang/test/Preprocessor/init.c: Split conditions to win32 and non-win32.
ed0e6cc Suppress clang/test/Driver/clang_f_opts.c for targeting cygming since r202058 is incompatible to gcc driver.
7af2a8f Improve some gtest assertions
4fefab2 AST: Small code cleanup
bf326ac Sema: Make getPreferredTypeAlign respect alignments specified with an aligned attribute on a typedef
02ed638 Pass through context for DiagHandler in VFS
d55429f If preprocessing results in a token with leading whitespace that was expanded from a macro in column 0, ensure that we print whitespace before it in the -E output. Patch by Harald van Dijk!
413d8a2 Follow up to r201927: remove the Sema::InFunctionDeclarator field.
53ddd41 If the first token in a macro that appears at the start of a line expands to nothing, be sure to inform the *next* token expanded from the macro that it is now at the start of a line. Patch by Harald van Dijk!
4c58bbd Add a test for r202059.
e2e8ed2 Objective-C. Remove an assertion which asserts on correctly handled block layout IRGen. // rdar://16111839
aa09948 Implement getDwarfEHStackPointer() and initDwarfEHRegSizeTable() for sparcv9.
7615ef6 Implement -fno-short-wchar
2018c6b Update for llvm api change.
80a4849 [Win32 ABI] Defer operator delete checks until vtable is marked used
19029e8 Don't assume that F_None is the default. It is about to change.
4881429 Clarifying the wording for the noduplicate attribute.
52143b1 Fix AST matcher documentation for overloaded matchers.
7cdc75b Fix docs generation for the AST matchers:
3790613 ASTMatchers: added CXXMethodDecl matcher isPure()
5e8440c Add driver test for multiple preprocessor inputs
270d39e Use a more conventional logical op instead of bitwise and
491dd1c [AArch64] Change int64_t from 'long long int' to 'long int' for AArch64 target.
ef725a7 Update __cplusplus to match the value in the C++14 DIS preview (D3937).
be42129 Do not put instrumentation counters before phis in ObjC for-in loops.
d403cc9 [Index] Make the USRs more stable.
06f29ae Fixing the indentation of the RST content in the release notes. Fixes two warnings when building the HTML content and improves the format of the resulting content.
290a7cd Sema: Simplify away one-iteration loops.
89837cb [CMake] Resurrect mis-dropped dependency to ClangDriverOptions since r201842.
0dc8ce8 [CMake] clang_tblgen: Use add_public_tablegen_target.
1c0d41b [CMake] Deprecate clang_tablegen(DEPENDS).
b5595cd Fix crash when both ExpectAndConsume and ConsumeAnyToken emit diagnostics
f1026e6 Release Notes: document -f{,no-}integrate-as
8c702d1 clang: add -f{no-,}integrate-as as consistent parameters
a709481 Remove support for the QA_OVERRIDE_GCC3_OPTIONS environment variable.
9c1883c clang: forward -no-integrated-as from the driver
0474d7c test: fix MIPS driver tests
e1ee32c Revert "clang: forward -no-integrated-as from the driver"
5f6a23d clang: forward -no-integrated-as from the driver
4a719af Reorganize and improve semantic tests for dllexport/import
992b845 Adding manual headings to the new capability attributes' documentation.
16381d3 Exposing the noduplicate attribute within Clang, which marks functions so that the optimizer does not duplicate code.
3d8ada6 Do not add enums to prototype scope in C++ modes.
c7ecd63 Correctly set brace range for CXXConstructExprs formed by list initialization.
269a49b Per feedback from Aaron Ballman, push cast-to-ObjCProtocolDecl inside handleObjCSuppresProtocolAttr().
30a2403 [_mm_prefetch] Returning previously deleted comment. No functional change.  It's unclear if the word FIXME is relevant given that the macro behaves as intended.
28d7f1a Silence a warning from r201905
8c7fc11 IRGen: Fix build breakage
26d016d [MS-ABI] Fix MSRecordLayout to handel MultiDimensionalArrays A recent change caused multi-dimensional arrays not to be handled correctly, this patch fixes that.  Also, it adds a lit test for multi-dimensional arrays.
9fd9fdd Fix two warnings introduced r201907
fb9b689 Sema: Don't crash when trying to instantiate a local class with an invalid base specifier
1035a95 [ObjC] Make attribute 'objc_protocol_requires_explicit_implementation' behave correctly with default property synthesis.
21db05d Complete Rewrite of CGRecordLayoutBuilder
9298d56 Add a VFSFromYAML class and a parser to create it
9192e3b Reapply 201734 but with appropriate gcc compatibility Because GCC incorrectly defines _mm_prefetch to take anything that casts to void*, people have started using that behavior.  The previous patch that made _mm_prefetch actually take a const char * broke compatibility with existing code.  This update to the patch leaves the macro that defines _mm_prefetch with the (void*) cast when _MSC_VER is not defined.
78684c0 Add requirement that attribute 'objc_protocol_requires_explicit_implementation' can only be applied to protocol definitions.
4590e11 Default to ARMv5e for NetBSD/EABI, ARMv4 for APCS.
9732bd0 Add test that -Wunreachable-code warnings are suppressed in headers.
e81eb42 Adding role-based capability attributes that allow you to express role management: asserting a capability is held, acquiring a capability and releasing a capability. Also includes some skeleton documentation for these new attributes.
92856c2 [ObjC] add support for properties in attribute 'objc_protocol_requires_explicit_implementation'.
829d0a8 Remove 'followsSuper' argument from lookupPropertyAccessor.  Turns out I didn't need it.
9c4a3f0 [ObjC] Change default property synthesis logic to not completely skip DiagnoseUnimplementedProperties.
3c9512f [ObjC] Condense logic for diagnosing unimplemented setter/getters into help method.
2a98255 Remove accidentally-committed debugging statement. Thanks to Faisal Vali for spotting this!

git-subtree-dir: llvm/tools/clang
git-subtree-split: 0c1843b3dac3db7325213632b75ccb30b6f2134c
Merge with Clang.
Merge with Clang.
Squashed 'llvm/tools/lldb/' changes from 7274bbd..5441aaf

5441aaf Removed code that conditionally included pthread.h for mingw. This header is generally not available on mingw and can cause build errors. The windows host code does provide timespec definition that can be used for mingw case.
b65b99f update for renaming in LLVM
bb786b6 build: use LLVM build routines
b3f234e build: fix bleeding whitespace
acfdafd Minor fix for a logging message.
ca15fd9 Fix Mingw build error by using lower case name for windows header files.
1ec025c Fix #if 0'd code after range-based for loop change
f22a321 Update LLDB for LLVM iterator change in r203364
6e3755b Update LLDB for LLVM iterator change in r203364
5b4d6ad Correctly add the QueueID to a pending block's extended thread backtrace thread. Seed the QueueItem objects with the item_refs and addresses when they are fetched in one batch.  If additional information is needed from the QueueItem, fetch it lazily one pending item per function call. <rdar://problem/16270007>, <rdar://problem/16032150>
35ae011 libBacktraceRecording __introspection_dispatch_queue_get_pending_items is changing the data it returns; this change accepts either the old format or the new format.  It doesn't yet benefit from the new format's additions - but I need to get this checked in so we aren't rev-locked. Also add a missing .i entry for SBQueue::GetNumRunningItems() missing from the last checkin. <rdar://problem/16272115>
e8d72e1 SBQueue::GetNumPendingItems() should not force a fetch of the pending items; the backing Queue object has the number of pending items already cached.  Also, add SBQueue::GetNumRunningItems() to provide that information. <rdar://problem/16272016>
dec2802 Fix unwind_plan test conditions (could result in NULL memory access).
99ef3f9 PlatformWindows: Fix ObjectFile presence test conditions (could result in NULL memory access)
93f6f77 Implement ObjectFilePECOFF::GetModuleSpecifications().
f923377 POSIX: fix possible API misuse
f89885c POSIX: fix possible invalid API usage
553d146 POSIX: add missing curly braces
e8f23a0 Implement ObjectFilePECOFF::SetLoadAddress().
1dd3c29 Remove %zx in printf (only GCC supports it, not MSVC).
43e8b16 Add inttypes.h to SBQueue.cpp (MSVC compilation error with PRIx32).
fb318da Need to use rm -rf on dSYM bundle directories.
05d6daa Add API logging to the SBQueue/SBQueueItem/SBThread calls.
fddbd48 Fix a small inferior process memory leak in SystemRuntimeMacOSX::PopulatePendingItemsForQueue().
6ca9de7 Re-enable ProcessElfCore for non-FreeBSD/Linux builds; with Greg's fix in r203274 this is not installing itself for Mach-O binaries.
cb62294 Remove unused code.
7b1b0be Verify we have a correct ELF or Mach core file before we return a valid instace of ProcessElfCore or ProcessMachCore respectively.
3fa5202 Use predefined $(RM) in clean rule, and -r only for (expected) directories
d3c2c2b Fix malloc thread step-out test on FreeBSD
212ad92 Fix test 'make clean' target for empty $(DSYM) on FreeBSD
41ca001 Add decorator for recent FreeBSD failure
37459a1 Don't hold the ThreadList lock over calls to the GetStatus (Process or Thread) calls or the lower levels of the Process won't be able to restart.
f26f222 If you are disabling a hardware breakpoint, use z1 not z0.
60e4fd0 The ThreadPlanCallFunction needs to pass its "StopOthers" to its run to address subplan.
974140f Update for clang r203213
78344eb Todd points out that my change to ProcessElfCore is probably not going to key off of the ELF object file like I'd intended. Revert my change in r203205; also revert Greg's change in r203107 which builds ProcessElfCore on non-Linux/FreeBSD systems for the moment until we can straighten this out.
0d2154a Only enable ProcessElfCore if this is an ELF file.  Right now this plugin is winning over ProcessMachCore because it doesn't check the format of the file up front.  (this is only now happening because of Greg's change in r203178 to build ProcessElfCore for non-Linux/FreeBSD hosts). <rdar://problem/16257533>
db29fa3 Replace uses of OwningPtr<T> with std::unique_ptr<T>.
9b9a25d Allow line numbers to be shown in multi-line expressions.
3347a88 This commit provides support for running the dosep.ty test driver with multiple threads.
8343a37 Re-enable the JITLoaderGDB and ProcessElfCore that were disabled by:
8c1fff6 Get rid of lldb-dll-export.h and place the smarts of this into lldb-defines.h.
e1bb70d Added lldb-dll-export.h to the public API, fixing clients of LLDB.
8ff7cec Fix Windows build break introduced in r203035.
37202d8 When a client asks for a queue pending item's extended backtrace, hold a strong pointer to that extended backtrace thread in the Process just like we do for asking a thread's extended backtrace. Also, give extended backtrace threads an invalid ThreadIndexID number. We'll still give them valid thread_id's.  Clients who want to know the original thread's IndexID can call GetExtendedBacktraceOriginatingIndexID(). <rdar://problem/16126034>
434a39e Temporarily disable the JIT loading detector till we figure out why it crashes when lldb follows through exec's...
8a8ba83 Moved JITLoader.cpp and JITLoaderList.cpp over into "source/Target" since the header files were in "include/lldb/Target".
11c30b8 Add the new JITLoader plugin files to the lldb xcode project file. Add a cast for a size_t / PRIu64 printf formatter.
a89acb3 Build JITLoader on FreeBSD also
075bb0d Put "jit" in alpha order in log category list
2ea2359 Add support for JIT debugging on Linux using the GDB JIT interface. Patch written with Keno Fischer.
fd633a6 Test commit.
06d0c8a Small fix to DynamicLoaderDarwinKernel::KextImageInfo::LoadImageUsingMemoryModule needed with Greg's change to how we load modules in r202890.
dfdf99e lldb-gdbserver: add support for optional host in connection string and handle other startup errors.
144c652 Add ProcessGDBRemote::GetAuxvData() and fix multiple-packet concatenation for binary data.
7691676 Hardened against reads in the IRMemoryMap that exceed the bounds of the backing memory.
05af302 Fixed SBDebugger.CreateTarget("filename") and also make sure remote targets don't pickup bogus locally cached files.
cde7b50 Get Linux i386 running.
2b84039 Modified some test annotations so that tests on Linux that should be skipped don't show up as XFAIL.
d5188a3 Fix a couple of typo's in breakpoint descriptions.
b857a12 Temporarily revert part of Greg's changes in r202738 which are causing problems with the testsuite and SBDebugger::CreateTarget().
cbd2f16 Stop messages from being emitted out of order when detaching.
72758c2 Only require thread scope when we're about to run the function on a thread.
54c100f "size_t" isn't always 64 bit, it is 32 bit on 32 bit systems. All printf style statements that were assuming size_t were 64 bit were changed, and they were also changed to display them as unsigned values as "size_t" isn't signed.
f8af40b Check if the terminal is interactive and set the flags accordingly
92309dd Move Windows getopt for building the DLL
a1ebf07 Build liblldb.dll in Windows
fafcf3e Fix Windows build using portable types for formatting the log outputs
ab67411 Don't require a valid thread if expr can be evaluated statically
56ac6bd Update test class name and comment to match test
18f105d Make sure the exe_ctx passed to ClangUserExpression::Execute has a valid thread.
d8912f4 Better error reporting when a variable can't be read during materialization.  First of all, report if we can't read the data for some reason.  Second, consult the ValueObject's error and report that if there's some problem.
1343187 Simplify POSIXThread register context handling
2f99d31 Fixed configure-based build on OS X.
6d9e5c8 Be sure to propagate the error back out SBTarget::Attach() when we fail to launch debugserver as root.
4f9a1a2 Fixed "process launch --tty" on MacOSX.
04d5bbe Fixed all overlapping prompt issues.
9a036d6 Converted TestDeadStrip.py to be expected failure on Linux.
867a6a2 Adjust TestExprDoesntBlock.py to be expected failure on Linux.
629a332 Enabled TestSetWatchlocation.py on Linux.
85f93c3 Converted TestRegisterVariables to run on Linux and skip with clang.
118bab4 Converted TestConstVariables expected failure to @expectedFailureClang.
ae6fac0 Restore signal delivery to the inferior on FreeBSD
60b506c Enable TestExitDuringBreak.test_with_dwarf on Linux.
7720ff2 Adjust TestConcurrentEvents.py test running for Linux.
68a5c93 Enabled TestBreakAfterJoin.py on Linux.
58b1482 Change TestStopHookMechanism to @expectedFailureLinux.
f7249f1 Marked linux TestStopHookMultipleThreads as expected failure.
aa7f071 Fix types to eliminate compiler warnings in FreeBSD host class
3ca8916 Plumb the EvaluateExpressionOptions::{Set,Get}StopOthers through the SB API, and make it work in RunThreadPlan. Also remove SetStopOthers from the ThreadPlanCallFunction, because if the value you have doesn't match what is in the EvaluateExpressionOptions the plan was passed when created it won't work correctly.
a38fd7f Re-enable TestExprDoesntBlock.py on Linux.
c2776c6 Enable TestCallThatRestarts test on Linux.
52de389 Revert Xcode run argument settings that were accidentally checked in.
e9099c9 Re-enable TestMultithreaded.py test on Linux.
fb32cf5 remove useless declarations found thanks to scan-build
7d18084 Fixed the lldb_perf_clang.cpp test case to be able to run correctly.
e3b0f04 Fix linux x86 debugging on a linux x86 host (32-bit on 32-bit).
6d4d96b Check call to fgetc for EINTR.
25a0240 Remove an assertion that was being hit due to slow DNS name lookups on MacOSX for "localhost".
e048522 Improve logging a bit by printing the exception or signal type description.
206ea63 Fix build break due to signature change on ASTContext' setExternalSource parameter.
b7e6726 update the declaration from llvm::OwningPtr to llvm::IntrusiveRefCntPtr to match the clang update (r202346) on ASTContext
d45d5bf A better long term fix for stopping the process when it is running by writing to the pipe that was used for cancel.
204e16a Remove link_system_libs, unused after LLVM r201969
1c5c567 Small fix for i386 extended backtraces; wasn't skipping a 4-byte reserved area when reading the libBacktraceRecording API results. Also, add a little logging about queues being created. <rdar://problem/16127752>
690d7a2 Fix x86 32-bit register context definition to build properly on 32 and 64-bit hosts.
2f284f7 Add libexecinfo for backtrace() on FreeBSD
fe83460 Fixed lldb cmake build to include missing libpanel/libncurses.
10f79a5 remove useless declaration
1548dac remove useless declaration. Triggers 20 warnings on http://buildd-clang.debian.net/scan-build/
0d91480 * Rename PYTHON_INCLUDES to PYTHON_INC_DIR to match the similar declaration in lldb.svn/Makefile * Use CPP.Flags to export the declaration. The current solution broke all builds on http://llvm-jenkins.debian.net/
01f5444 Suppress python readline module under Linux to fix a seg fault.
4d423fb <rdar://problem/15593026>
32871eb Switch debugserver to detach on error by default, and change the flag to kill-on-error. Also fix the bug where lldb prints: "Got a connection and launched debugserver" rather than the name of the process it actually launched.
1738522 Make TestStdCXXDisassembly.StdCXXDisassembleTestCase work with libc++
7a46f01 Reapply r184270 by Jim Ingham to avoid abort on FreeBSD
1f588f0 Allow debugserver to detach from the target if the connection is unexpectedly closed.
1c6a490 Fixed the command line LLDB so that "CTRL+C" will interrupt a running process again.
6958c86 Don’t process the stop reply packet as a generic signal if we already figured out what it was from other data in the packet.
410053d Fix handling of gdbserver binary packets with escape characters.
80e4cb0 LLDB now handles DW_TAG_unspecified_parameters nested inside function prototypes and we now mark the function prototypes as being variadic.
5f7bf4f Remove TestConnectRemote decorator for FreeBSD
8fc2de0 Fix ptrace log on i386 and include return value
37f2626 Patch for fixing the handling of hardware breakpoints. Differential Revision: http://llvm-reviews.chandlerc.com/D2826
fd73b90 Stop skipping test on FreeBSD that no longer fails
f0a207d Oops, probably ought to turn on that fix...
6840a59 We have to call waitpid on the lldb side for Mac OS X (even though we've successfully called it on the debugserver side) when we kill a process or it leaves a zombie around.
20c34c4 Improved the GDBRemoteCommunicationClient::TestPacketSpeed() function so it tests how long it takes to send a 4MB buffer from the REMOTE GDB server to LLDB.
8ebd1e4 Add support for the qSpeedTest packet so we can test packet speeds and data throughput.
d25eed6 Remove the packet speed lines that were "#if 0"'ed out.
0eef84f Don't crash when we build with python enabled, yet we don't link in the lldb::SB* API layer.
e1c9843 remove dead code + simplify a little

git-subtree-dir: llvm/tools/lldb
git-subtree-split: 5441aafe15a38a87201e6bfc3e3e1b99e195e48b
Merge commit 'eb1f9272ccb53a024590022a8f0931d604b19156' into overhaul
Merge with Clang.
Finish merge with LLVM/Clang.