Squashed 'llvm/' changes from db0ec65..545127f

545127f [Hexagon] Adding encoding bits for add opcode. Adding llvm-mc tests. Removing unit tests.
fa16693 [AArch64] Add support for the .inst directive.
596e63d Go: add binding for LLVMSetUnnamedAddr.
9552fca Strength reduce constant-sized vectors into arrays. No functionality change.
1496d41 Do not add -gsplit-dwarf to LLVM_DEFINITIONS.
1afcd6b LoopVectorize: Simplify code. No functionality change.
0b70f77 Shorten auto iterators for function basic blocks.
e54627b Fix number of operands in documentation for minnum / maxnum
6a369db test: Make this test runnable in directories with @ in their names
72536bc Fix VS2012 build; C++11 type aliases are not supported.
6683239 Ammending 220393 - Removing unused decoding tables.
6162d42 Ammending 220393 - Removing unused functions.
55321cd [PATCH] Support select-cc for VSFRC when VSX is enabled
e64e141 Use auto iteration in lib/Transforms/Scalar/SampleProfile.cpp. No functional changes.
324cd41 [Hexagon] Adding basic disassembler. Marking all instructions as CodeGenOnly since encoding bits are not set yet. http://reviews.llvm.org/D5829?vs=on&id=15023&whitespace=ignore-all#toc
1b8af6a Preserving 'nonnull' metadata in SimplifyCFG
dc18ebc Shrinkify libcalls: use float versions of double libm functions with fast-math (bug 17850)
d5b8931 Make two helper functions static.
79ca2c2 Change error to warning when a profile cannot be found.
013cbf2 [PowerPC] Support select-cc for VSX
df8b8e7 Fixing a -Wsign-compare warning; NFC.
418d0cf Support using sample profiles with partial debug info.
c9ada07 [AArch64] Cleanup A57PBQPConstraints
5165ff9 [InstSimplify] Support constant folding to vector of pointers
8546076 [Thumb/Thumb2] Implement restrictions on SP in register list on LDM, STM variants in thumb mode
3e874e6 [OCaml] Fix a typo in documentation.
9b0ace6 R600/SI: Add another failing testcase for i1 copies
69643f4 R600/SI: Add failing testcase reduced from OpenCV
230b53f Handle spaces and quotes in file names in MRI scripts.
f9ebe0a Fix a gcc warning.
8ff1b98 Silence gcc's -Wcomment
539be96 [lit] Fix Python-3 compatibility, patch by Dan Liew.
1c76fb5 [lit] Bump version number.
ac1af12 Fix ShTest parsing error when a keyword line doesn't end with a newline.
1b2e041 Fix typo
469094d Try to fix documentation bot warning
61ed31c [msan] Handle param-tls overflow.
ec4e924 Revert "Teach the load analysis to allow finding available values which require" (r220277)
8c4980b [MCJIT] Defer application of AArch64 MachO GOT relocations until resolve time.
f6b403a MRI scripts: Add addlib support.
3c47b5c LTO: respect command-line options that disable vectorization.
e0b4b36 Use a range loop. NFC.
015776f Add minnum / maxnum codegen
2521346 Add minnum / maxnum intrinsics
cb3866e IR: Reorder metadata bitcode serialization, NFC
c68710c R600/SI: Add missing parameter to div_fmas intrinsic
9fa8641 IR: Remove dead code in metadata bitcode writing, NFC
e539932 Overwrite instead of adding to archives when creating them in mri scripts.
2d20cb2 Pacify bots and simplify r220321
c6961f2 Convert a few std::string with StringRef. NFC.
478b0b5 GCC has supported C++11 ref-qualifiers since 4.8.1
3605d74 R600: Use default GlobalDirective
41e69be Use a StringRef. No functionality change.
5b69592 Teach combineMetadata how to merge 'nonnull' metadata.
7b60e0e Preserve 'nonnull' when changing type of the load.
5127ff9 Extend the verifier to check usage of 'nonnull' metadata.
de246de [PBQP] Teach PassConfig to tell if the default register allocator is used.
2256b35 Move code a bit to avoid a few declarations. NFC.
5eb02a6 [PBQP] Add a testcase for r220302: Fix coalescing benefits
dea8105 InstCombine: Simplify FoldICmpCstShrCst
4af7ead Drop support for an old version of ld64 (from darwin 9).
3f898e6 remove function names from comments; NFC
33f014f Convert two tests to use llvm-readobj.
8287a4b R600/SI: Add pattern for bswap
d57a1ba [PBQP] Check for out of bound access in DEBUG builds
a5d0ebd [PBQP] Fix coalescing benefits
c65b578 X86AsmInstrumentation.cpp: Dissolve initializer-ranged-for. MSC17 disliked it.
72376cc Silence a -Wcast-qual warning; NFC.
6094462 Test commit Fixing brief comment.
32adf22 Comment cleanup. NFC.
2afb0e4 Add support for addmod to mri scripts.
41454cc [PowerPC] Avoid VSX FMA mutate when killed product reg = addend reg
00e0b8a [ARM] NEON 32-bit scalar moves are also available in VFPv2
7ffc5bb [asan-asm-instrumentation] Fixed memory accesses with rbp as a base or an index register.
d75e7ad [Thumb2] LDRS?[BH] cannot load to the PC
9156c5e Teach the load analysis to allow finding available values which require inttoptr or ptrtoint cast provided there is datalayout available. Eventually, the datalayout can just be required but in practice it will always be there today.
59e1681 [mips][microMIPS] Implement ADDU16 and SUBU16 instructions Differential Revision: http://reviews.llvm.org/D5118
a245b68 [mips][microMIPS] Implement AND16, NOT16, OR16 and XOR16 instructions Differential Revision: http://reviews.llvm.org/D5117
fa20aa3 [mips][microMIPS] Implement microMIPS 16-bit instructions registers Differential Revision: http://reviews.llvm.org/D5116
45968c5 Fix a bit of confusion about .set and produce more readable assembly.
f8c9d3d Do not attribute static allocas to the call site's DebugLoc.
f46dd92 Make this test a bit more strict.
14e55b1 Teach lit to filter the host LDFLAGS down from the build system and into the CGO build environment. This lets things like -rpath propagate down to the C++ code that is built along side the Go bindings when testing them.
82805eb PR21202: Memory leak in Windows RWMutexImpl when using SRWLOCK
33966cf Make AsmPrinter::EmitLabelOffsetDifference a static helper and simplify.
acaf8f5 [MCJIT] Temporarily revert r220245 - it broke several bots.
9be9473 Introduce enum values for previously defined metadata types. (NFC)
c0c4f1b Extend the verifier to validate range metadata on calls and invokes.
32aaaea [MCJIT] Make MCJIT honor symbol visibility settings when populating the global symbol table.
a37862e [X86] Fix a bug in the lowering of the mask of VSELECT. X86 code to lower VSELECT messed a bit with the bits set in the mask of VSELECT when it knows it can be lowered into BLEND. Indeed, only the high bits need to be set for those and it optimizes those accordingly. However, when the mask is a compile time constant, the lowering will be handled by the generic optimizer and those modifications will generate bad code in the generic optimizer.
90f3f15 Introduce a 'nonnull' metadata on Load instructions.
0d1978b [X86] Memory folding for commutative instructions (updated)
b9c7f60 Explain why we don't always use --gc-sections.
4e399f4 ARM: rework Thumb1 frame index rewriting
2d6aee1 Try to fix GCC error about invalid use of const_cast in const version of ErrorOr::get()
e505b3d Constify getELFDynamicSymbolIterators standalone function. NFC.
262b278 Add const version of OwningBinary::getBinary
9170808 Be more specific about return type of MachOUniversalBinary::getObjectForArch
10051f0 Constify input argument of RelocVisitor and DWARFContext constructors. NFC.
559074a Teach Lit to catch OSError exceptions when creating a process during the execution of a shell command. This can happen for example if the ``RUN:`` line calls a python script which can work correctly under Linux/OSX but will not work under Windows. A more useful error message is now shown rather than an unhelpful backtrace.
10646db Moved out IIT_V64 from common values section. Thanks Juergen Ributzka for notice.
1591cf0 [AArch64] test case for compfail fixed by r219748
3ea3989 Fix Intrinsic::getType not working with vararg
e7c9c44 [Thumb2] RFE, SRS and "SUBS pc, lr" are undefined on v7M
958df22 Remove unnecessary else.
7c771b0 Revert r220174, "Always use -Wl,-gc-sections on our build."
19d010b [ARM] Do not select SMULW[BT] or SMLAW[BT]
508c393 [Thumb] Fix crash in Thumb1RegisterInfo::rewriteFrameIndex
34b45cd Switch the default DataLayout to be little endian, and make the variable be BigEndian so the default can continue to be zero-initialized.
d413989 Remove some completely superfluous trailing comments and clang-format this header to remove numerous formatting inconsistencies that impede making simple changes here without large diffs.
64cf50d Clean up the comments and doxygen for DataLayout.
3ac929c Fix a miscompile introduced in r220178.
7798534 IR: Replace DataLayout::RoundUpAlignment with RoundUpToAlignment
080dfb5 Fix a somewhat subtle pair of issues with JumpThreading I introduced in r220178. First, the creation routine doesn't insert prior to the terminator of the basic block provided, but really at the end of the basic block. Instead, get the terminator and insert before that. The next issue was that we need to ensure multiple PHI node entries for a single predecessor re-use the same cast instruction rather than creating new ones.
96fc0d2 [PBQP] Use DenseSet rather than std::set for PBQP's PoolCostAllocator implementation.
35c4e07 Teach the load analysis driving core instcombine logic and other bits of logic to look through pointer casts, making them trivially stronger in the face of loads and stores with intervening pointer casts.
fc1c1ec Add a datalayout string to this test so that it exercises the full gamut of InstCombine rather than just the bits enabled when datalayout is optional.
0ea9c06 Always use -Wl,-gc-sections on our build.
551a3d7 [PowerPC] Clean up -mattr=+vsx tests to always specify -mcpu
1d142d4 [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests
ff8acb6 [PowerPC] Re-enable VSX test line for fma.ll with -mcpu=pwr7
63b14ba [ADT] Add a 'find_as' operation to DenseSet.
63276cc Do a better and more complete job of preserving metadata when combining loads.
4d2a706 Move previously dead code to handle computing the known bits of an alias up to where it actually works as intended. The problem is that a GlobalAlias isa GlobalValue and so the prior block handled all of the cases.
0fd4e2e InstCombine: (sub (or A B) (xor A B)) --> (and A B)
242aeb9 InstCombine: Optimize icmp eq/ne (shl Const2, A), Const1
908d451 Fix a long-standing miscompile in the load analysis that was uncovered by my refactoring of this code.
f84407b Switch how the datalayout availability test is handled in this code to make much more sense and in theory be more correct.
efed41c Use triple predicate functions instead of checking values directly. NFC.
652627d Rename 'TD' to 'DL' in this function as the argument is now a DataLayout argument.
dacb8a6 Fix the other comment to use modern doxygen style and be a bit more direct. Notably, comment on the fact that the loaded type is significant in that it determines how wide of an access must be safe.
28502a8 More formatting cleanup brought to you by clang-format.
e99ca83 Clean up doxygen syntax and reword comments to flow better, have a brief section, and not have unfinished sentence fragments.
01dc911 Clean up the formatting and trailing whitespace of a routine before editting it.
440079e [PBQP] Move register-allocation specific PBQP code into RegAllocPBQP.h.
33ea6f2 [PBQP] Replace the interference-constraints algorithm with a faster version loosely based on linear scan.
797e9b8 Preserve AA metadata when combining (cast (load (...))) -> (load (cast (...))).
9b2d091 [InstCombine] Do an about-face on how LLVM canonicalizes (cast (load ...)) and (load (cast ...)): canonicalize toward the former.
a45d0c8 Remove a test that was ported from the old llvm-gcc frontend test suite.
5357e3a [llvm-objdump] don't test timestamp dump as that is time zone dependent
e0b3f29 [llvm-objdump] enhance test case for mach-o -private-headers
50ede16 [llvm-objdump] Fix mach-o binding decompression error
2402e63 [SROA] Change how SROA does vector-based promotion of allocas to handle cases where the alloca type, the load types, and the store types used all disagree.
4e00650 R600/SI: Add global atomicrmw xchg
2107be5 R600/SI: Add global atomicrmw xor
e81b68b R600/SI: Add global atomicrmw or
1883b51 R600/SI: Add global atomicrmw min/umin
387e397 R600/SI: Add global atomicrmw max/umax
beac0c1 R600/SI: Add global atomicrmw and
892bb7d R600/SI: Add global atomicrmw sub
d9f9b51 R600/SI: Fix/add tests for atomicrmw add
802463d R600: Rename atomic_load global tests to atomic_add
c83c81a [msan] Fix handling of byval arguments with large alignment.
185a992 Check for dynamic alloca's when selecting lifetime intrinsics.
3b362b3 [PowerPC] Disable +vsx RUN line for fma.ll due to inconsistency on other builders
ec51f45 Revert "TRE: make TRE a bit more aggressive"
b56bf6b [PowerPC] Change assert to better form
24463c7 R600/SI: Remove redundant setting of instruction bits
d2dcbd0 [PowerPC] Change liveness testing in VSX FMA mutation pass
560e270 Disable ccache for go tests.
b659104 Fix typo
0e974f6 R600/SI: Also check for FPImm literal constants
7d8f171 R600/SI: Allow commuting with source modifiers
b4fe2b4 R600/SI: Simplify code with hasModifiersSet
415789c R600/SI: Fix general commuting breaking src mods
bf5be3f R600/SI: Cleanup code with ChangeToFPImmediate
84895bd R600/SI: Allow comuting fp immediates
7eeaefa R600/SI: Use early return instead of checking condition twice
e7b03ee We also need to catch OSError here.
aa796b99b R600/SI: Use complex pattern for MUBUF load patterns.
46b53c9 R600/SI: Remove SI_BUFFER_RSRC pseudo
32ef687 [Stackmaps] Enable invoking the patchpoint intrinsic.
5512b50 [X86] Fix missed selection of non-temporal store of zero vector.
7023b85 [AArch64] Fix a silent codegen fault in BUILD_VECTOR lowering.
ad8eef5 Don't crash if find_executable return None.
b76f5ba [PowerPC] Enable use of lxvw4x/stxvw4x in VSX code generation
7eee3b0 Mips: Only set divrem i64 to custom on 64bit
9c1d1fa R600: Add EG to FMA test
cef793e SelectionDAG: Add sext_inreg optimizations
eaf8f5e [mips] Add support for COP1's Branch-On-Cond-Likely instructions
0f22fe9 [mips] Add support for COP0's Branch-On-Cond-Likely instructions
9d85eff [DSE] Remove no-data-layout-only type-based overlap checking
ee0f96f Fix bashism in build.sh.
d8ee23f Add back commits r219835 and a fixed version of r219829.
101025c [PPC] Adjust some PowerPC tests to account for presence/absence of VSX
410bde5 Add a test that would have found the bug in r219829.
1cdebe5 ARM: Fix a bug which was causing convergence failure in constant-island pass.
70a1be3 Revert commit r219835 and r219829.
46b94aa [OCaml] Add Llvm.instr_clone.
cb76f39 [LLVM-C] Add LLVMInstructionClone.
0fea775 [llvm-symbolizer] Introduce the -dsym-hint option.
a383742 R600/SI: Simplify debug printing
770f3af Add our own copy of the find_executable function to cope with installations that do not have the distutils.spawn package. Should hopefully fix the aarch64 buildbot.
61bf4bf R600/SI: Remove another VALU pattern
798ace2 Initial version of Go bindings.
86b3d8e Introduce LLVMParseCommandLineOptions C API function.
933d703 Reduce code duplication between patchpoint and non-patchpoint lowering. NFC.
68ca48c [SROA] Switch the common variable name for the 'AllocaSlices' class to 'AS'.
c62c42b [SROA] More range-based cleanups to SROA, these brought to you by clang-modernize.
5269b24 [SROA] Switch a couple of overly complex iterator accessors to just be ArrayRef accessors.
d310963 Erase fence insertion from SelectionDAGBuilder.cpp (NFC)
ceb4f49 R600/SI: Remove unnecessary VALU patterns
c232054 [SROA] Start more deeply moving SROA to use ranges rather than just iterators.
0134a9b R600: Fix nonsensical implementation of computeKnownBits for BFE
2f8f1d3 Delete -std-compile-opts.
6eaa62a Allow call-slop optzn for destinations with a suitable dereferenceable attribute
0ab5b9f Fix lang-ref doc bug: s/icmp lt/icmp slt/
fb02b5c [llvm-objdump] Fix -private-headers for mach-o to print all LC_*_DYLIB variants
d8214db fold: sqrt(x * x * y) -> fabs(x) * sqrt(y)
c40dab20 [AArch64] Fix miscompile of sdiv-by-power-of-2.
3b72ec5 [mips] Account for endianess when expanding BuildPairF64/ExtractElementF64 nodes.
02065a6 [mips] Marked the DI/EI instruction aliases as MIPS32r2
c3ab783 Test commit access: remove extra new line at the end of file
fa41293 Add missing header guard.
4eb0312 Reapply r219832 - InstCombine: Narrow switch instructions using known bits.
ebe6584 TRE: make TRE a bit more aggressive
608d59f Revert r219832.
61c65b2 [LVI] Add some additional comments about caching and context instructions
cbfd91d llvm/Support/Options.h: Use \tparam. [-Wdocumentation]
231a8d6 R600: Remove dead function
a0b0184 Revert "r219834 - Teach ScalarEvolution to sharpen range information"
43141a0 Preserve non-byval pointer alignment attributes using @llvm.assume when inlining
76ce614 Add CreateAlignmentAssumption to IRBuilder
fb9d61a [AVX512] Add DQ subvector inserts
ec7f306 [AVX512] Add SKX testing to avx512-insert-extract.ll
f9e3a3a [AVX512] Fix test to produce a defined value
ccebe72 [AVX512] Two new attributes in X86VectorVTInfo for subvector insert
80b9e00 [AVX512] Rename arg from Opcode32/64 to Opcode128/256 in vinsert_for_size
37e484b R600: Remove unnecessary part of computeKnownBitsForTargetNode
bb402de Move variable down to use
4976a53 Add MachOObjectFile::getUuid()
3c12c29 Updating documentation based on my change to remove the template disambiguation.
aaf36b4 Fixing the build failure due to compiler warnings and unnecessary disambiguation.
c14fb89 Defining a new API for debug options that doesn't rely on static global cl::opts.
d3fc10a R600/SI: Fix bug where immediates were being used in DS addr operands
55751ba Avoid caching the MachineFunction, we don't use it outside of runOnMachineFunction.
0a72d8b Wrong attribute.  LLVM_ATTRIBUTE_UNUSED not LLVM_ATTRIBUTE_USED
9ca230f IR: Move NumOperands from User to Value, NFC
40dd9d6 IR: Cleanup comments for Value, User, and MDNode
a169d59 Wrong attribute. LLVM_ATTRIBUTE_USED not LLVM_ATTRIBUTE_UNUSED
fc6e0f6 Allow forward references to section symbols.
40edbf1 Teach ScalarEvolution to sharpen range information.
f0f7ec3 Add LLVM_ATTRIBUTE_UNUSED to function currently just used in an assert
3853763 InstCombine: Narrow switch instructions using known bits.
7440a83 Reapply "[FastISel][AArch64] Add custom lowering for GEPs."
32c5fde [FastISel][AArch64] Factor out add with immediate emission into a helper function. NFC.
ad04f5d Correctly handle references to section symbols.
1338612 Enable the instruction printer in HexagonMCTargetDesc
8b3a920 R600/SI: Also try to use 0 base for misaligned 8-byte DS loads.
7fdd553 R600: Fix miscompiles when BFE has multiple uses
ddcfe81 correct const-ness with auto and dyn_cast
6c15862 [SLPVectorize] Basic ephemeral-value awareness
9819bcf Treat the WorkSet used to find ephemeral values as double-ended
279b550 [MC] Make bundle alignment mode setting idempotent and support nested bundles
ffc65d2 DI: Make comments "brief"-er, NFC
5af49c8 Use 'auto' for easier reading; no functional change intended.
ed0b7a0 remove function names from comments; NFC
03631a8 DI: Cleanup comments, NFC
90ce9f7 Simplify handling of --noexecstack by using getNonexecutableStackSection.
5c2d60d DI: Use a `DenseMap` instead of named metadata, NFC
b510f8d Move getNonexecutableStackSection up to the base ELF class.
18ed4ac R600: Use existing variable
8a55ca3 R600: Remove outdated comment
0081070 Revert "[FastISel][AArch64] Add custom lowering for GEPs."
75d77cd [MachineSink] Use the real post dominator tree
d345857 ARM: drop check for triple that's no longer used.
c6d2db4 Remove unused variable.
2ff93bf No need to cache this unused variable.
cd27f3f [AArch64] Wrong CC access in CSINC-conditional branch sequence
1a0afd8 [llvm-objdump] Update error message and add test case for mach-o file with bad library ordinals
2bddd7c [AAarch64] Optimize CSINC-branch sequence
75277b9 [LoopVectorize] Ignore @llvm.assume for cost estimates and legality
3a1045d MC, COFF: Make bigobj test compatible with python3
84a3fee [X86][SSE] pslldq/psrldq shuffle mask decodes
b315be2 MC: Rewrite bigobj test in python
7419c9c ARM: remove ARM/Thumb distinction for preferred alignment.
32d728f ARM: allow misaligned local variables in Thumb1 mode.
388c2d3 Add a test for writing COFF BigObj
569c5b6 [FastISel][AArch64] Add custom lowering for GEPs.
7680674 [x86 asm] allow fwait alias in both At&t and Intel modes (PR21208)
eddeac0 ARM: set preferred aggregate alignment to 32 universally.
2a77e6b [CFL-AA] CFL-AA should not assert on an va_arg instruction
3f349b2 Optimize away fabs() calls when input is squared (known positive).
4001708 [FastISel][AArch64] Fix sign-/zero-extend folding when SelectionDAG is involved.
505187a InstCombine: Don't miscompile X % ((Pow2 << A) >>u B)
d6315ea Reapply "R600: Add new intrinsic to read work dimensions"
f0f9841 Revert "r216914 - Revert: [APFloat] Fixed a bug in method 'fusedMultiplyAdd'"
e8e8db7 Revert "R600: Add new intrinsic to read work dimensions"
d1494d5 Remove unused member variable.
6a52985 R600: Add new intrinsic to read work dimensions
787e3ca R600: FMA is VecALU only instruction
c180402 Finish getting Mips fast-isel to match up with AArch64 fast-isel
d661fde DebugInfo: Ensure that all debug location scope chains from instructions within a function, lead to the function itself.
e418129 Remove method that is identical to the base class one.
704b06c R600/SI: Use DS offsets for constant addresses
8730dc1 Revert "Fix stuff... again."
2b0657e Revert some parts of r196288 that were confusing and untested.
8a61781 Fix stuff... again.
2993617 [LVI] Check for @llvm.assume dominating the edge branch
65e4aa4 Revert r219638, (r219640 and r219676), "Removing the static destructor from ManagedStatic.cpp by controlling the allocation and de-allocation of the mutex."
ad5d223 [AVX512] Extended avx512_binop_rm to DQ/VL subsets. Added encoding tests.
33a95f2 [AVX512] Extended avx512_binop_rm to BW/VL subsets. Added encoding tests.
5051f60 [AArch64] Fix crash with empty/pseudo-only blocks in A53 erratum (835769) workaround
49e7edc [llvm-symbolizer] Minor typedef cleanup. NFC.
45ed687 Threading.h: Use \tparam for template parameters. [-Wdocumentation]
0ba4483 Grab the subtarget info off of the MachineFunction rather than indirecting through the TargetMachine.
ff91827 Use the triple to figure out if this is a darwin target, not the subtarget.
ded375f Remove unnecessary TargetMachine.h includes.
1dd55ba Grab the subtarget and subtarget dependent variables off of MachineFunction rather than TargetMachine.
eb271ec Grab the subtarget and subtarget dependent variables off of MachineFunction rather than TargetMachine.
188c856 Instead of the TargetMachine cache the MachineFunction and TargetRegisterInfo in the peephole optimizer. This makes it easier to grab subtarget dependent variables off of the MachineFunction rather than the TargetMachine.
d879de1 Access subtarget specific variables off of the MachineFunction's cached subtarget and not the TargetMachine.
151811c Add lld to the parallel set of directories since it doesn't depend on any of the other tools directories.
cd69481 Access the subtarget off of the MachineFunction via the DAG scheduler or via the SelectionDAG if available. Otherwise grab the subtarget off of the MachineFunction by going up the parent chain.
75ad488 [AArch64]Select wide immediate offset into [Base+XReg] addressing mode e.g Currently we'll generate following instructions if the immediate is too wide:     MOV  X0, WideImmediate     ADD  X1, BaseReg, X0     LDR  X2, [X1, 0]
b15974e Remove the use and member variable of the TargetMachine from MachineLICM as we can get the same data off of the MachineFunction.
c026db7 Have MachineInstrBundle use the MachineFunction for subtarget access rather than the TargetMachine.
3788687 Access the subtarget off of the MachineFunction rather than through the TargetMachine.
db9fed9 Switch to select optimization for two-case switches
07d392b Don't include DFAPacketizer in TargetInstrInfo, there's no reason.
9accb10 Include map into the A15SDOptimizer rather than pick it up transitively from the DFAPacketizer via TargetInstrInfo.h.
8ff8c16 Remove the TargetMachine from DFAPacketizer since it was only being used to grab subtarget specific things that we can grab from the MachineFunction anyhow.
7c9c49b Introduce Go coding standards for LLVM.
e0a0018 fix formatting; NFC
ab1f4ef Add some optional passes around the vectorizer to both better prepare the IR going into it and to clean up the IR produced by the vectorizers.
75202eb Introduce LLVMWriteBitcodeToMemoryBuffer C API function.
0df98b6 Updating documentation as per Chandler's feedback.
af6be11 InstCombine: Fix miscompile in X % -Y -> X % Y transform
3a143ce Removing the static destructor from ManagedStatic.cpp by controlling the allocation and de-allocation of the mutex.
5db6cf4 Migrate another set of getSubtargetImpl away.
7adaa03 Remove unused debug info constants.
dfe81ad InstCombine: Don't miscompile (x lshr C1) udiv C2
2061a56 Make first of several changes to bring up to AArch64 fast-isel style
9de9951 Update the example of using a command-line option custom parser to match the current implementation.
2273ca1 Add an assertion about the integrity of the iterator. Broken parent scope pointers in inlined DIVariables can cause ensureAbstractVariableIsCreated to insert new abstract scopes, thus invalidating the iterator in this loop and leading to hard-to-debug crashes. Useful when manually reducing IR for testcases.
2400ba6 constify the getters in SDNodeDbgValue.
46eb4d8 Refactor debug statement and remove dead argument. NFC.
1dc437c Add VS2012-generated test inputs for test/tools/llvm-readobj/codeview-linetables.test
40251eb Fix a broadcast related regression on the vector shuffle lowering.
162415e R600/SI: Minor cleanup of function
ec8aeb0 [asan-asm-instrumentation] Follow-up fixes to r219602: asserts are moved into function.
d0c745a Adds support for the Cortex-A17 to the ARM backend
586e23b [mips] Mark redundant instructions with a comment in test/CodeGen/Mips/Fast-ISel/icmpa.ll.
7e67a4b [AArch64] Add workaround for Cortex-A53 erratum (835769)
eba0a96 [asan-asm-instrumentation] Fixed memory references which includes %rsp as a base or an index register.
5adece0 Unix/Signals.inc: Let findModulesAndOffsets() built conditionally regarding to (defined(HAVE_BACKTRACE) && defined(ENABLE_BACKTRACES)). [-Wunused-function]
58c0f65 Revert r219584, "[X86] Memory folding for commutative instructions."
f591f37 [modules] Stop excluding Support/Debug.h from the Support module. This header has been modular since r206822, and excluding it was leading to workarounds such as the one in r219592, which this change removes.
b85e7ae [Modules] Add some missing includes to make files compile stand-alone.
c67df0c Modernize old-style static asserts. NFC.
c6133c1 Revert r219223, it creates invalid PHI nodes.
5defae6 APSInt: Simplify code to reduce the number of copies. No functionality change.
2b7b804 InstCombine: Turn (x != 0 & x <u C) into the canonical range check form (x-1 <u C-1)
c00cd8e [X86] Memory folding for commutative instructions.
05f7e38 InstCombine: Simplify commonIDivTransforms
e9bc1e8 llvm/test/CodeGen: Some tests don't REQUIRE asserts any more. Remove them.
5395265 Suppress llvm-ar's MRI tests for now on win32, since line_iterator is incompatible to CRLF.
b6e1b30 Test commit access (email fix)
8daea6b AssumptionTracker: Don't create temporary CallbackVHs.
b1bba1a MC: Shrink MCSymbolRefExpr by only storing the bits we need.
fedd0e2 MC: Bit pack MCSymbolData.
195be17 Test commit access
171825a InstCombine: Don't fold (X <<s log(INT_MIN)) /s INT_MIN to X
9043f74 InstCombine, InstSimplify: (%X /s C1) /s C2 isn't always 0 when C1 * C2 overflow
2af441e InstCombine: mul to shl shouldn't preserve nsw
0b01269 [SCEV] Fix one more caller blindly passing the latch to SCEV's getSmallConstantTripCount even when it isn't the exiting block.
fade9f1 Guard the definition of the stack tracing function with the same macros that guard its usage. Without this, we can get unused function warnings when backtraces are disabled.
dd19024 Add basic conditional branches in mips fast-isel
c13c091 [SCEV] Add some asserts to the recently improved trip count computation routines and fix all of the bugs they expose.
458b495 [MCJIT] Replace memcpy with readBytesUnaligned in RuntimeDyldMachOI386.
add74ff Return undef on FP <-> Int conversions that overflow (PR21330).
fab0a99 Follow-up to r219534 to make symbolization more robust.
fc9fda5 R600/SI: Change how DS offsets are printed
9bd1daf R600/SI: Match read2/write2 stride 64 versions
fcc00a1 Re-land r219354: Use llvm-symbolizer to symbolize LLVM/Clang crash dumps.
968e1f2 R600/SI: Add load / store machine optimizer pass.
65f2077 This patch teaches ScalarEvolution to pick and use !range metadata. It also makes it more aggressive in querying range information by adding a call to isKnownPredicateWithRanges to isLoopBackedgeGuardedByCond and isLoopEntryGuardedByCond.
9a0be5b [mips] Actually mark that the default case is unreachable as this switch is over a subset of condition codes.
704d427 Implement floating point compare for mips fast-isel
b586add Revert "DebugInfo: Ensure that all debug location scope chains from instructions within a function, lead to the function itself."
f02687d llvm-ar: Start adding support for mri scripts.
b144f27 R600/SI: Disable copying of SCC
5ae4b93 implement integer compare in mips fast-isel
ed05e37 This patch de-pessimizes the calculation of loop trip counts in ScalarEvolution in the presence of multiple exits. Previously all loops exits had to have identical counts for a loop trip count to be considered computable. This pessimization was implemented by calling getBackedgeTakenCount(L) rather than getExitCount(L, ExitingBlock) inside of ScalarEvolution::getSmallConstantTripCount() (see the FIXME in the comments of that function). The pessimization was added to fix a corner case involving undefined behavior (pr/16130). This patch more precisely handles the undefined behavior case allowing the pessimization to be removed.
a64ffb8 Add couple of missing 'override' keyword. NFC.
38a2029 [PowerPC] Reduce names from Power8Vector to P8Vector
d3aa46a [MiSched] Fix a logic error in tryPressure()
f6e11ea Implement floating point to integer conversion in mips fast-isel
6808453 Simplify a few uses of DwarfDebug::SPMap
17dbd06 Reorder functions in WinCodeViewLineTables.cpp [NFC]
0f65dfd [dwarfdump] Prettyprint DW_AT_APPLE_property_attribute bitfield values.
dd2cb9ca [dwarfdump] Resolve also variable specifications/abstract_origins.
d62c4ba Reduce double set lookups. NFC.
836ca75 [PowerPC] Add feature for Power8 vector extensions
0bf4807 [mips][microMIPS] Implement ADDIUSP instruction Differential Revision: http://reviews.llvm.org/D5084
24335e6 [mips][microMIPS] Implement JR16 instruction Differential Revision: http://reviews.llvm.org/D5062
e2db302 [mips][microMIPS] Implement ADDIUS5 instruction Differential Revision: http://reviews.llvm.org/D5049
28b2826 ps][microMIPS] Implement JRC instruction Differential Revision: http://reviews.llvm.org/D5045
b581230 [mips][microMIPS] Implement JALRS16 instruction Differential Revision: http://reviews.llvm.org/D5027
a560067 Fix a small typo, NFC
d8b0418 APInt: Unfold return expressions so RVO can work.
082e667 [ADT] Add an (ADL-friendly) abs free function for APFloat that returns by value having cleared the sign bit.
f2f5070 Don't use an unqualified 'abs' function call with a builtin type.
afb7eea Add tests for r219479.
1e0e306 Object, COFF: Relax aux symbols for section definitions
0c3d376 Sink the per-CU part of DwarfDebug::finishSubprogramDefinitions into DwarfCompileUnit.
43ed8ae Sink most of DwarfDebug::constructAbstractSubprogramScopeDIE down into DwarfCompileUnit.
c08f0e3 Add minnum / maxnum to APFloat
f4ec669 [ADT] Replace the logb implementation with the simpler and much closer to what we actually want ilogb implementation. This makes everything *much* easier to deal with and is actually what we want when using it anyways.
cb84b21 [ADT] Add the scalbn function for APFloat.
9ea4dd2 [ADT] Implement the 'logb' functionality for APFloat. This is necessary to implement complex division in the constant folder of Clang.
9a97f23 [LVI] Revert the remainder of "r218231 - Add two thresholds lvi-overdefined-BB-threshold and lvi-overdefined-threshold"
df89f0d Avoid unnecessary map lookup/insertion.
4728073 Add isInfinity to ConstantFP
dd8c386 SimplifyCFG: Don't convert phis into selects if we could remove undef behavior instead
a447422 Fix gcc warning in gold-plugin.cpp.
54a3b74 obj2yaml, COFF: Handle long section names
0ffdb31 [ADT] Add basic operator overloads for arithmetic to APFloat to make code using it more readable.
a4554c2 Improve sqrt estimate algorithm (fast-math)
c3d3f63 delete function names from comments
c160a9a delete function name from comment
0d807cc Add ApplePropertyString dump helper to Dwarf.{h|cpp}.
f75bfbe Fix bug in GPR to FPR moves in PPC64LE.
127cb8e Remove unused parameter

git-subtree-dir: llvm
git-subtree-split: 545127f54dc632b2d0da38e027c58888d091ede1
Merge commit '123b999efd4d23b271103d0dc2d4fa272541bcb2' into devel
Squashed 'llvm/tools/clang/' changes from e136c9d..424c891

424c891 Fix C++ compliance issue.  string literals must be const char *
ec0db6f Parse: Ignore "long" and "short" in #pragma section
ca2a03f Removing the setLBracLoc and setRBracLoc functions from CompoundStmt -- their only use was with the AST reader, and friendship can be used to handle that. Drive-by rename of "Brac" to "Brace" for the private data members. NFC.
35414d2 Fix up attribute documentation links to MSDN in a nicer way
c9ecba7 Make a good guess about where MSVC and Windows SDK libraries are for linking.
bfcee13 Resubmit "Improve Windows toolchain support for non-standard environments."
2cee159 Create a documentation category for the new calling convention documentation. Drive-by fixing of duplicate target names from a previous commit.
9c8ca0e Add support for profiling the matchers used.
3313b40 Try to fix link errors in mingw cmake -DBUILD_SHARED_LIBS=ON
84fdc04 Add documentation for calling convention attributes
4ca3fbf Remove unused DiagnosticsEngine::NumErrorsSuppressed member.
8cc6471 Correct importing of the type of a TemplateArgument
8387021 DebugInfo: Omit scopes in -gmlt to reduce metadata size (on disk and in memory)
29a9d89 Fixup for r220403: Use getFileLoc() instead of getSpellingLoc() in SanitizerBlacklist.
f3f44c3 SanitizerBlacklist: Use spelling location for blacklisting purposes.
e1f5149 Reland r219810 "Fix late template parsing leak with incremental processing"
b7f0587 MS ABI: Emit more canonical vbptr stores and loads
c886ae8 Remove unused StmtVector& parameters from declaration parsing functions.
f19c7ec Support using sample profiles with partial debug info (driver)
9c252ed clang-format: Fix tests after recent change to ObjC block formatting.
b132921 clang-format: Use AllowShortBlocksOnASingleLine for ObjC blocks, too.
0d6a4cb clang-format: Fix broken test.
a71ab95 clang-format: Fix incorrect trailing return arrow detection.
9ccafa3 Fix style issue from r220363.  No functional change.
25c85ca Disable the uninitialized field warning in uninstantiated classes.
4a63958 Driver: rename Windows to MSVCToolChain
732cea5 [modules] Initial support for explicitly loading .pcm files.
523c15f <float.h>: Don't seek #include_next if -ffreestanding for targeting mingw.
817b2aa PR21327 / C++ DR1652 / C++ DR73: comparing a past-the-end pointer for one complete object to a pointer to the start of another complete object does not evaluate to the constant 'false'. All other comparisons between the addresses of subobjects of distinct complete objects still do.
a6e91c9 R600: Update for div_fmas intrinsic change
7e8998d [modules] When building an injected-class-name type, we may have to insert it into multiple merged classes' TypeForDecl slots.
071286f Removing unused variable (assigned into, but never read from); NFC.
cd2a846 Follow-up commit to r211657 which introduced these macros, but not for MSVC. This turns out to break our freestanding tests on Windows when compiling in MSVC-compatible mode. It was decided (http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20141020/116942.html is the start of the thread) to support this as part of Clang's interface on all platforms.
3f19c5a Treat -g1 as -gline-tables-only
67b346d Driver: Quote the command in crash reproduction scripts.
616830b Driver: Move crash report command mangling into Command::Print
78884d1 The nodebug attribute has a C++11-style spelling supported by GCC as well. This modifies it so we support that spelling as well.
2827547 Fixing the MSVC build by removing friendship with CodeGenFunction; NFC.
0fd17e3 [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package.
7b17fc1 clang-format: [Java] Understand string literal concatenation.
4b081fa clang-format: [Java] Fix formatting of multiple annotations.
e4e2dd5 clang-format: [Java] Fix space in generic method calls.
0be53b1 clang-format: [Java] Improve annotation handling.
4212c76 clang-format: [Java] Make annotation formatting more consistent.
95e3aa8 clang-format: [Java] Improve generic support.
96458f8 clang-format: [Java] Support extending inner classes.
53d2160 clang-format: [Java] Support annotations with parameters.
ce4e238 clang-format: [Java] Wrap after each function annotation.
84959ef Test case B: fixed check rule
b3fab13 Test case B is updated to work for 32-bit and 64-bit platforms
504432e clang-format: [ObjC] Fix spacing in block variable parameters.
53cc08b clang-format: Fix space in direct destructor calls.
fa08e28 Add missing qualifier to documentation.
43e97cd Update documentation to match API change in r215323.
d157fcc OpenMPClause.h: Fix a warning. [-Wdocumentation]
5bec154 Driver: Tighten up crash report tests
bb7c593 Remove unused member variable.
5b6e44a [OPENMP] Codegen for 'private' clause in 'parallel' directive. This patch generates some helper variables which used as a private copies of the corresponding original variables inside an OpenMP 'parallel' directive. These generated variables are initialized by default (with the default constructor, if any). In outlined function references to original variables are replaced by the references to these private helper variables. At the end of the initialization of the private variables and implicit barier is set by calling __kmpc_barrier(...) runtime function to be sure that all threads were initialized using original values of the variables. Differential Revision: http://reviews.llvm.org/D4752
49c893b Remove including <complex.h> in test case, and change to use _Complex instead.
119f205 Lower compound assignment for the missing type llvm::Type::FP128TyID.
b241411 Switch C compilations to C11 by default.
f2d455f Revert "Improve Windows toolchain support for non-standard environments." (r220226)
d587ca4 Driver: Consolidate the logic for naming the module crashdump cache
3004643 Driver: Name crashdump scripts after the first temp file
25bc037 Driver: Use an early return instead of a long if condition (NFC)
8d24a33 Driver: Make FailingCommand mandatory for generateCompilationDiagnostics
ed84178 Fix whitespace introduced in r220221
4da58c9 Improve Windows toolchain support for non-standard environments.
ae27cbd PR21312: Fix a regression in non-type template parameters of function type that are static member functions.
e169d66 Fix indentation.
a2be46b Add RestrictQualifierLoc to DeclaratorChunk::FunctionTypeInfo
1c8a21c Revert most of r215810, which is no longer needed
6894808 Don't add ID mappings for offsets with no entities in a module
7664f3a clang-format: Fix overloaded operator edge case.
813a1b7 D5823: Fix typo in Clang test arm-cortex-cpus.c; patch by Gabor Ballabas!
7489d0a clang-format: [ObjC] Fix using selector names as macro arguments.
6933b7d clang-format: Fix indentation of struct definitions with array init.
c60864f Commit to test commit access
2ad6854 CodeGen: Update for LLVM API change
ccaf624 [modules] Add support for #include_next.
05db1e2 CodeGen: ConstStructBuilder must verify packed constraints after padding
fc2ae6a Preprocessor.h: Suppress a warning in SkipMainFilePreamble. [-Wsign-compare]
0334832 Revert r220153: "CodeGen: ConstStructBuilder must verify packed constraints after padding"
f25ec40 [complex] Teach the complex math IR gen to emit direct math and a NaN-test prior to the call to the library function.
ab5d98f clang/test/Layout/itanium-union-bitfield.cpp: Appease i686.
62bcca6 [analyzer] Tweak MallocSizeOfChecker to not warn when using sizeof(void*) to allocate a bunch of any pointer type.
5410814 Use the triple's isiOS() method instead of checking the value directly. NFC.
9fd8cd1 CodeGen: ConstStructBuilder must verify packed constraints after padding
bacc8fd New round of fixes for "Always compile debuginfo-tests for the host triple"
1dfb2c1 Use non-member begin/end for a slight readability improvement.
e02bd00 [libclang] If the code-completion point is inside the preamble, adjust the position at the beginning of the file after the preamble.
767b614 [libclang] Allow code-completion when pointing at the end-of-file.
df77101 PR21305: Typedefs in non-type template parameters in member data pointers.
114a3ea Append the %itanium_abi_host_triple substitution unconditionally
86b5fc6 Fix makefile for debuginfo-tests execution.
2b08fd0 SemaDeclCXX.cpp: UninitializedFieldVisitor: Avoid member initializers to appease msc17.
87f4b5c Fix typo in comment.
87d4805 [ASan] Improve blacklisting of global variables.
a4de584 fix -fsanitize-address-field-padding for the cases with virtual base classes
1df657d Fix the rest of PR21289: a pack expansion that we can't expand yet makes a template specialization type dependent, even if it has no dependent template arguments. I've filed a corresponding bug against the C++ standard.
4f1e337 Add support for initializer lists on field initializers for -Wuninitialized
e283363 Try to fix parse-progname.c test on Darwin
bd2dc74 Don't forget to substitute into the qualifier when instantiating the definition of a member function of a class template that is defined outside the template. This substitution can actually fail in some weird cases.
355e8c8 Move test/CodeGen/sections.c to CodeGenCXX/sections.cpp
3436439 Rename TemplateArgument::getTypeForDecl to getParamTypeForDecl for clarity
c92ae03 Sema: address post-commit review comment
6b3f2d2 Driver: support detecting driver mode when clang has a version suffix without dash (PR21094)
365506d clang-format: Prefer breaking before trailing return arrows.
3062266 clang-format: [Java] Don't break immediately after "throws".
f972c36 Revert r219977, "Re-commit r217995 and follow-up patches (r217997, r218011, r218053). These were"
d256764 Add explicit triple to clang/test/CodeGen/sanitize-address-field-padding.cpp, for now. It's incompatible to ms mangling.
b2b4ccd complex long double support for PowerPC
c3ef53c Optimize Type::isStructureOrClassType() by reusing RT->getDecl().
096aec5 D5775: The new test case was missing from the preceding commit.
a1aa244 D5775: Fix of assertion failure in case of non-POD unions with bitfields. Patch by Evgeny Astigeevich!
3287501 User c-tor name to fix the sanitizer test
550f545 Trying to fix failing Clang sanitizer test on ARM bots
1f127ff Towards PR21289: don't lose track of unexpanded parameter packs with non-dependent types, in CXXScalarValueInitExprs and in the nested-name-specifier or template arguments of a DeclRefExpr in particular.
4b147b2 Remove incorrect usage of JoinedOrSeparate.
84a0f84 PR21215: Support -fmodule-map-file being specified multiple times. Support loading multiple module map files from the same directory.
fbdfa91 Switch to range-based for loop. No functionality change.
a2425bc Per comments on PR12350, move DR244 back from 'done' to 'partial' and add tests showing what we get wrong.
6605f09 CodeGen: Kill FillInNullDataMemberPointers
b4e0d0d AST: Remove dead code from RecordLayoutBuilder
582d5ed trying to fix the new test again, this time for the clang-cmake-armv7-a15 bot
dd1c90c SanitizerBlacklist: blacklist functions by their source location.
f488f17 Appease the buildbots with the special case for non-set variables
1a97621 Teach SanitizerBlacklist to blacklist by SourceLocation. NFC.
0737853 Added %itanium_abi_host_triple to fix debuginfo-tests when clang is a cross-compiler by default
4dca855 Re-commit r217995 and follow-up patches (r217997, r218011, r218053). These were reverted in r218058 because they triggered a rejects-valid bug in MSVC.
dc6d797 Sema: handle additional case of qualified types
37b2d70 test/CodeGen/sections.c: add triple
9d2e9d4 trying to fix the new test on hexagon-build
52c4fcf Insert poisoned paddings between fields in C++ classes so that AddressSanitizer can find intra-object-overflow bugs
1bd7119 MS Compat: mark globals emitted in read-only sections const
2762716 No longer emit diagnostics about unused results (comparisons, etc) from unevaluated contexts. Fixes PR18571.
aca883c Update for llvm change.
f5e9d83 DebugInfo: Follow up to r219736, also test/demonstrate that we emit the constant value in this case as well.
3c0dffc Fixing comment grammar; NFC.
98329ed Speculatively fix GCC 4.7 build after r219938
7fc72f6 Switching to range-based for loops; NFC.
44a6862 Fix code to follow the "Don’t use else after a return" rule.
44e147d Use iterators and algorithms to possibly make this code a bit tidier
a41df17 Remove one of SanitizerBlacklist::isIn() overloads. NFC.
26a8b76 Use array_lengthof; NFC.
429b0fb [AArch64] Enable A53 erratum workaround (835769) by default for Android targets
6810691 tests: move test to more appropriate location
520113d OpenCL: Emit global variables in the constant addr space as constant globals
575a318 OpenCL: Add -ffake-address-space-map to a test
eec240b clang-format: Fix behavior with comments before conditional expressions
3dfb31c clang-format: [ObjC] Fix method expression detection.
eecb2b2 Frontend: Fix some underscore-then-capital UB
4e87ba0 specify dwarf version for Solaris
3b32ee4d PR21246: DebugInfo: Emit the appropriate type (cv qualifiers, reference-ness, etc) for non-type template parameters
87f89f4 Bugfix in template instantiation in CXXPseudoDestructorExpr. Fix for clang crash when instantiating a template with qualified lookup for members in non-class types. Differential Revision: http://reviews.llvm.org/D5769
116b574 DebugInfo: Cleanup testing of non-type template parameters.
4e6a057 [CMake] clangBasic: Add Core to LINK_COMPONENTS introduced by r219840.
5e551b0 Moving CGF::EmitAlignmentAssumption to IRBuilder
ceb95ab CodeGen: Don't drop thread_local when emitting __thread aliases
816e1b9 Move SanitizerBlacklist object from CodeGenModule to ASTContext.
a60adf0 Avoid having "using namespace" for both "clang" and "llvm" namespaces. This is fragile, as there are classes with the same name in both namespaces (e.g. llvm::Module and clang::Module).
715b1b7 Sema: handle AttributedTypeLocs in C++14 auto deduction
98cb8af test: simplify test further
102912b Change hasName() to take const std::string&, as it was taking before rL219792.
0121057 Move -fsanitize-blacklist to LangOpts from CodeGenOpts. NFC.
8bb2e13 Move SanitizerBlacklist to clangBasic. NFC.
e0dc8e2 As requested by Matt Thomas, use long long for intmax_t and int64_t on PPC64/NetBSD.
37ac9f9 Set ABI and DescriptionString first to reduce OS specific logic. Use switch for FreeBSD check to allow easier extension.
7d04e2c Add llvm_unreachable after switch to avoid warnings about a missing return.
8685214 Drop unneccessary default case from switch introduced in r219809
715149a Revert "Fix late template parsing leak with incremental processing"
6b0ed0a [analyzer] Perl scripts are run differently from makefiles. Sometimes additional utilities are involved, e.g. 'env' utility that present in MSYS but is missing in MinGW. The patch unifies launch of "c++-analyzer" and "ccc-analyzer".
065a98c Fix late template parsing leak with incremental processing
763069a [libclang] Add function to retrieve storage class in libclang.
822389d Adding attributes to the IndirectFieldDecl that we generate for anonymous struct/union fields. This fixes PR20930.
51847c2 Don't use a global_ctors comdat for globals that aren't externally visible
27c0ff3 CodeGen: Cleanup CGRecordLowering::lowerUnion a little
a5d76ab Fix for PR21254 - Assertion in comment parser
dc27750 Update for llvm api change.
6227646 Update for llvm api change.
c8261ff Turned Sema::HandleDelayedAvailabilityCheck into a static function; NFC.
471d393 [analyzer] Handle 'mingw32-make' in the same way as 'make' and 'gmake'.
b08e352c Speed up hasName() matcher.
9221152 Fixed a comment. No functional changes.
e7a8501 CodeGen: Use the initing member's type for a union's storage type more often
398bebf CodeGen: Fix a typo in a comment
80a4e4a MS ABI: Use the correct this arg when generating implicit array copy ctor
7784ec0 Improvements to -Wnull-conversion
41ed5a7 Frontend: Don't accept null DiagnosticsEngines when building ASTUnits
a02506a Frontend: Remove some unused arguments in ASTUnit (NFC)
5b066cf vadefs.h: be even more conservative and only define the macros if already defined
a9a12f4 clang-cl: Diagnose the usage of ASAN with a debug runtime library
ac27abf Sort files list in lib/Headers/CMakeLists.txt
d373f7c MS Compat: interpose vadefs.h to fix definitions of _crt_va_{start,end,arg} (PR21247)
25ae676 DebugInfo: Lazily built static member variable declarations should use the canonical declaration for line/file information.
0e9cdfc ARM: remove ARM/Thumb distinction for preferred alignment.
1a3bafc Be smarter when parsing variable declarations with unknown types.
404920d ARM: set preferred aggregate alignment to 32 universally.
6d0ad4f Factor code into CXXRecordDecl::getTemplateInstantiationPattern() helper
343c3fb Patch to warn on interger overflow in presence of implicit casts. Reviewed by Reid Kleckner. rdar://18405357
e2742e2 CodeGen: correct block mangling in ObjC
b478684 CodeGen: correct mangling for blocks
a0468d6 Formatting for prior commit
ccbbd20 [SystemZ] Address review comments for r219679
89fe0a6 DebugInfo: Don't leak location information from one function into the prologue of the next function.
1315fc913 [SystemZ] Add test case to verify default use of integrated assembler
a905ad1 Re-apply "Frontend: Extract SerializedDiagnosticReader out of CXLoadedDiagnostic (NFC)"
aaa7337 Extend -Rmodule-build to also remark when module building finishes.
f0afe93 [modules] Merging for class-scope using-declarations.
bd272ec Revert "Frontend: Extract SerializedDiagnosticReader out of CXLoadedDiagnostic (NFC)"
5489836 Frontend: Try to fix cmake builders after r219647
2835c8a Frontend: Extract SerializedDiagnosticReader out of CXLoadedDiagnostic (NFC)
52de81f Sanitize upcasts and conversion to virtual base.
8fe0cab Fix the build
c4ff594 Objective-C [Sema]. Fixes a bug in comparing qualified Objective-C pointer types. In this case, checker incorrectly claims incompatible pointer types if redundant protocol conformance is specified. rdar://18491222
ab4f3cb [analyzer] Check all 'nonnull' attributes, not just the first one.
0d98baf Fix order of evaluation bug in DynTypedMatcher::constructVariadic().
e0265de Fix bug in DynTypedMatcher::constructVariadic() that would cause false negatives.
bd01824 Relinquish ownership of MS-style inline assembly.
a1ec237 More OpenMP test case compatibility fixes
e883df9 [AArch64] Fixup test from A53 erratum patch after buildbot failures
cf732d1 Adds support for the Cortex-A17 processor to Clang
8af1aca [AArch64] Add workaround for Cortex-A53 erratum (835769)
7bb3292 Fix incompatibility issue in /OpenMP/parallel_num_threads_codegen.cpp
4db7fa6 [OPENMP] Codegen for 'num_threads' clause in 'parallel' directive. This patch generates call to "kmpc_push_num_threads(ident_t *loc, kmp_int32 global_tid, kmp_int32 num_threads);" library function before calling "kmpc_fork_call" each time there is an associated "num_threads" clause in the "omp parallel" directive. Differential Revision: http://reviews.llvm.org/D5145
f6751b5 Fix test OpenMP/parallel_if_codegen.cpp.
0b72dab [OPENMP] Codegen for 'if' clause in 'parallel' directive. Adds codegen for 'if' clause. Currently only for 'if' clause used with the 'parallel' directive. If condition evaluates to true, the code executes parallel version of the code by calling __kmpc_fork_call(loc, 1, microtask, captured_struct/*context*/), where loc - debug location, 1 - number of additional parameters after "microtask" argument, microtask - is outlined finction for the code associated with the 'parallel' directive, captured_struct - list of variables captured in this outlined function. If condition evaluates to false, the code executes serial version of the code by executing the following code:
46bb1be PredefinedExpr deserialization test in dependent context. For commit r219561 - Fix deserialization of PredefinedExpr in dependent context.
47ab6c7 [Modules] Make header standalone. NFC.
cd8b623 Fixed a problem in r19589.
41d599b Allow constant expressions in pragma loop hints.
673b396 CodeGen: Strip qualifiers from qualified array types in catches
df527b0 clang/test/Driver: Some tests don't REQUIRE asserts any more. Remove them.
beb216d Suppress a warning about an unused variable in NDEBUG builds.
2dfe53a [complex] Teach the other two binary operators on complex numbers (== and !=) to support mixed complex and real operand types.
5d697e8 Fix typo in ARM reserved-r9 test case
1f5a93b [complex] Use the much more powerful EmitCall routine to call libcalls for complex math.
3fa42e8 clang-format: [ObjC] Wrap ObjC method declarations before annotations.
d52c445 Fix deserialization of PredefinedExpr in dependent context.
0eb6c46 [complex] Teach Clang to preserve different-type operands to arithmetic operators where one type is a C complex type, and to emit both the efficient and correct implementation for complex arithmetic according to C11 Annex G using this extra information.
cd98c92 [modules] When instantiating a class member, don't expect to find the previous declaration in the instantiation if the previous declaration came from another definition of the class template that got merged into the pattern definition.
baa7637 clang-cl: Don't warn for unused private fields when encountering a late parsed template member
887e8ee Treat -mios-simulator-version-min option as an alias for -mios-version-min.
105139c [modules] Delay loading the field declared with an anonymous tag declaration until after we've had a chance to merge that tag.
62136e4 Correctly handle reading locations from serialized diagnostics
356de0f Objective-C [qoi]. When reporting that a property is not auto synthesized because it is synthesized in its super class. locate property declaration in super class which will default synthesize the property. rdar://18488727
a0b1e64 Add libclang capabilities to retriete template arguments from specializations.
2fdc497 Remove rest of the comment that is no longer true after r219527.
5d0f6eb Remove a FIXME: use the ios_simulator_version_min linker option consistently.
595e18e Make test more robust to appease build bots
ecfc7f0 Bugfix for predefined expressions in dependent context. This bug break compilation with precompiled headers and predefined expressions in dependent context.
d1e07e9c CodeGen: FieldMemcpyizer didn't handle copies starting inside bitfields
41b720d Change how we distinguish bitfield widths, in-class initializers, and captured VLA types so that we can answer questions like "is this a bit-field" without looking at the enclosing DeclContext.  NFC.
824d789 [PowerPC] Reduce names from Power8Vector to P8Vector
b6821bf Alright, just XFAIL all these for Windows.
8b51a78 Fix documentation typo.
86f8bac Reduce double set lookups. NFC.
e30a077 [PowerPC] Add feature for Power8 vector extensions
8c59824 Unfriend CGOpenMPRegionInfo so it can go into an anonymous namespace.
954e28b Fixing the MSVC 2013 build, NFC.
c86ac7a Code reformatting and improvement for OpenMP. Moved CGOpenMPRegionInfo from CGOpenMPRuntime.h to CGOpenMPRuntime.cpp file and reworked the code for this change. Also added processing of ThreadID variable passed as an argument in outlined functions in parallel and task directives.
7128695 Code improvements in OpenMP CodeGen. This patch makes class OMPPrivateScope a common class for all private variables. Reworked processing of firstprivate variables (now it is based on OMPPrivateScope too).
1a713ad XFAIL coverage -no-integrated-as tests for msvc.
bc3b0e9 Revert r218865 because it introduced PR21236, a crash in codegen emitting the try block.
83066c8 _Really_ fix these tests (probably).
95c9b8e Remove support for the IOS_SIMULATOR_DEPLOYMENT_TARGET env var.
9ba36f9 Fix for OpenMP/parallel_firstprivate_codegen.cpp Fix compatibility issues of the test with SystemZ target.
086a633 Hopefully fixes test failures for msvc.
11d7113 PR21195: Emit .gcno files to the proper location.
fb27bb0 Promote null pointer constants used as arguments to variadic functions
768b930 Fix completion logic to allow for heterogeneous argument types in matcher overloads.
5d0bde8 Objective-C SDK modernization. import Foundation even when a previous definition of NS_OPTION is available ; e.g. from a pch. enhancement to rdar://18498550
edfae44 [Analysis] Add missing newlines at end of file.

git-subtree-dir: llvm/tools/clang
git-subtree-split: 424c891b04480f0379ee48bf1b52222b9b7b7836
Merge with Clang.
Squashed 'llvm/tools/lldb/' changes from aad8d5c..c5a7aed

c5a7aed Add a 'type info' command, which can be fed one or more local variables - and it will spew out the list of formatters that apply to each of those variables, if any
6b1f316 More cleanup of the CXXFormatterFunctions header
84bef3d Fixed name lookups for names that contain "::" but aren't actually C++ qualified C++ names.
37941f7 Re-use the GetMatchAtIndex() that uses the StringRef to avoid code duplication and properly detect when a capture is invalid and return false.
7cc1706 Fix CMake build broken after r220421.
cd83daf Reorganize some of the data formatters code to simplify CXXFormattersFunction.h. Also, add a synthetic child provider for libc++'s version of std::initializer_list<T>
dde0a3c Fixed a problem in the lldbinline logic where C++ files could not be validly compiled
122f5bc Fix a problem where summary strings could not use a synthetically generated value as part of themselves
c4f23b6 Sort unit test failures by name - submitted for Vince Harron http://reviews.llvm.org/D5904
829fb1e Added functions to the C++ API, for the benefit of non-8-bit byte architectures.
2e22177 The breakpoint location hit counts were getting incremented in BreakpointLocation::ShouldStop.  That worked but wasn't really right, since there's nothing to guarantee that won't get called more than once.  So this change moves that responsibility to the StopInfoBreakpoint directly, and then it uses the BreakpointSite to actually do the bumping.
1c4830f Expose the type-info flags at the public API layer. These flags provide much more informational content to consumers of the LLDB API than the existing TypeClass. Part of the fix for rdar://18517593
f393be0 Move anonymous types declared in an anonymous union to outside the anonymous union as it's a language extension we don't normally support.
a8656ee Remove unused variable.
cae915e Fix implicit conversion of NULL constant to 'bool'.
54f75f8 Add typemaps to handle the transformation of Python list of strings into a 'char const **'. This fixes zephyr's issue with SBTarget::Launch without splitting the API into multiple names
b1e21fd Make the "synchronous" mode actually work without race conditions.
9a212bc Don't allow the expression parser to magically look through 'self' at its ivars.  It produces surprising results.
5999ba5 Skip dsym test on !Darwin
0d279b2 Don't use mkstemp, as it doesn't exist on Windows.
6c48666 Remove LLDB_DEFAULT_SHELL #define, and determine this at runtime.
86d0b7b Fix 4 failing llgs-related tests on a stock Ubuntu 14.04 x86_64 system./
c70cff9 Fixed python API event test cases.
a4b1b96 Make the registerEHFrame function do nothing, because the default implementation isn't meant to run against a target process.
f2e738d Do not delete the class, or else multiple tests that try to rely on lldbinline will fail
41084af Fixed the expression parser to handle cases where GetValueForVariableExpressionPath returns NULL and doesn't set an error.
33d4894 Make a general helper function on the AST context to retrieve a type by identifier in the fashion needed by data formatters
462e141 Break out of the command word parsing loop if we hit an invalid combination of words; don't accidentally continue trying to parse the command line. clang static analysis fixit.
8c4693f Add #if 0 around unreachable block of code to suppress warnings. clang warnings.
64ebfee Add null-checks around getter/setter before using them. clang static analyzer fixit.
02a6adb A << operation would be undefined for a bit-selecting function because of a '1u' making it a 32-bit value when it really needed to be a 64-bit value.  Trivial to fix once I figured out what was going on. clang static analzyer fixit.
4c2197f Remove always-true part of a conditional expression. clang warning.
beb64a3 Put #if 0 blocks around three sections of code that are intentionally unreachable so we don't get warnings about them.
ae496dc Making all @expectedFailure markers take an explicit bugnumber annotation. This used to be optional, but that makes it harder to track what tests are failing for what reason. So, make it mandatory, in the form of refusing to run the test suite if annotations are missing
3d918f4 Don't enable the log here. It was just me debugging
0a61e8b Add a few more bug IDs for x'fail test cases
ca704bb Made multi-line test case actions possible in the inline test cases.  This makes them much more readable.
4f64854 Attach a bug number to these failures
c4257b4 Split this test case to handle each literal kind uniquely
74b93fc Added a new kind of test case: the "inline" test case.  This test case style attempts to shed all of the boilerplate that is required for test cases, and let 80% of test cases use a much terser syntax.
589f844 Change a use of mktemp() to mkstemp() for better security. We have two more uses of mktemp still in the source base but they'll take a little more consideration. clang static analyzer fixit.
b46ca03 The number '5' triggers a bug unrelated to LLDB, and is not instrumental to this test in any way. Use another, randomly chosen, number to make the test pass again and provide useful actionable feedback about things that truly matter
83fad40 Some more test marking
e948c16 This test needs the SB headers to make sense
de293ac Add a test for the -b (batch mode) option to the lldb driver.
6167e1d Fix this test case to actually work - it was relying on a certain 'po' output which wasn't occurring
e0af90d Some more failure to bug tracking
18de6d6 Associate a bug tracking ID with this test case
8da3efc This test actually works alright - we were just checking for the wrong string
38d56c6 I see this test case crash - skip for now
40b92ba Only call RemovePersistentVariable on expr_result if that shared pointer contains something.
c7ed4be Rework this code so that it does not trigger a compiler warning. NFC
6d76408 Fix MemoryHistory plugin to check whether the plugin was able to create itself before returning the shared pointer to it. clang warning.
c043059 Most of this function checks to see if m_process is non-null before dereferencing it, except for this one section of code.  Add a null check around it. clang static analyzer fix.
af37d7a Another logical-or vrs. bitwise-or mixup in ClangUserExpression. clang unreachable code warning.
1c192e8 Enable warnings in the debugserver project file..
2438327 A series of bit-flag values should be bitwise-or'ed not logical-or'ed. clang unreachable code warning.
820c499 Remove unreachable code.
457b788 Remove unreachable code.
e7cd47c Add /* DISABLES CODE */ annotation before if (0) to mark it as intentional.
2569394 Remove unreachable code.
809fe81 Remove unreachable code.
c125b1f Xcode recommended these changes to the project file.  It recommended a number of warnings to be enabled.  The one making the most noise across the code base right now is CLANG_WARN_UNREACHABLE_CODE = YES.
87dec61 Remove unused initialization. clang static analyzer fixit.
57776c3 Remove dead store. clang static analyzer fixit.
78a5fb2 Remove dead store. clang static analyzer fixit.
a12e7ce Remove dead store. clang static analyzer fixit.
e00462a Remove unused variable. clang static analyzer fixit.
17fea84 Ryan Brown's patch to handle DW_OP_call_frame_cfa addresses as load addreses instead of host addresses. http://reviews.llvm.org/D5735
ff3013f Fix accidental over-checking of args in launcherXPCService.
220a831 Fix a potential null pointer deref & a potential memory leak, also reformat to conform to the usual lldb coding conventions a little better. clang static analyzer fixit.
fed1f48 Remove unnecessary update of 'name' local. clang static analyzer fixit.
b1da6e4 Remove unused change to argc/argv after long option parsing has been completed. clang static analyzer fixit.
28860a4 Ensure that user_exe_path is non-NULL before derferencing. We've already created a FileSpec based on this local and this code path would never be executed if it is an invalid FilePath - but the static analyzer doesn't know this and I want to placate it. clang static analyzer fixit.
7438ef1 Guard against NULL derefs. clang static analyzer fixits.
3d7b089 Ah, accidentally committed a patch I didn't mean to.
24ed15e It's possible for long_options[long_options_index].definition to be null from the previous for() loop - check that it is non-null before trying to deref it. clang static analyzer fixit.
634b2f8 Check that process is non-null before calling a method in it. clang static analyzer fixit.
5df5953 It's possible for this function to not be passed a CompUnit*; add guards around a few additional uses of the cu local pointer. clang static analyzer fixit.
b0249de Give old_state a default value so we won't try to restore an uninitialized value.  In reality the code block that initializes it and the code block that restores it will always match up - but the analyzer doesn't know that and I want to quiet it, so... clang static analyzer fixit.
32ed3b1 Give user_id a default invalid value so we don't possibly use it uninitialized in a log message later. clang static analyzer fixit.
821eb3d Fix unused-variable warnings from the clang static analyzer.
d73f2c8 Mechanical change to FastDemangle to make it closer to the lldb coding conventions.  Lots of whitespace et al changes but no content changes.
b923a0c This should keep the non-Xcode-based builds happy
ce0f064 Add synthetic children support for NSIndexPath
f83869c The NSDate formatter should use GMT instead of the local timezone. Fixes rdar://13416848
e7f509c Make this test case more resilient in the face of line-table and inlining changes
8c9f05d Allow ThreadLauncher::LaunchThread() to specify a minimum stack byte size when launching threads.
434b9eb Remove some unnecessary headers from Host.cpp
bde8543 Improve the handling of kalimba ELF file section type recognition.
dd8409b Be more consistent about null checks for the Process and ABI in GetFullUnwindPlanForFrame() - the code was mostly checking that we had an active Process and ABI but not always. clang static analyzer fixit.
de9a29b Make sure local var cu is non-NULL before dereferencing. (it was checked for NULL-ness in some places, not in others) clang static analyzer fixit.
93fb934 Remove unneeded local var initialization. clang static analyzer fixit.
d8eaf90 Make sure is_indirect local var is initialized; there exists a code path where it could be used while uninitialized. clang static analyzer fixit.
4757b99 Ensure that m_syntax is initialized in all the FileSpec constructors. clang static analyzer fixit.
d2de477 Remove unused variable.
537636e Create a process launcher abstraction.
632eba7 Fix a path concatenation issue related to windows paths.
74b1b75 When PlatformDarwinKernel::ExamineKextForMatchingUUID is given a FileSpec, UUID, and ArchSpec, and it's opening all the kexts with the same bundle id to see if they're a match, don't set the Arch in the ModuleSpec.  If Module::GetObjectFile() sees that the architecture of the kext is a mismatch for the arch we're looking for, it'll spew a warning message to the dev (r217251).
d72a92c Fixed stdio redirection within LLDB to "do the right thing" in all cases.
82823eb Skip asan test on FreeBSD
d36ed4e Fix dotest.py test runner exit code to return non-zero on failure/error.
f769b57 Use PARALLEL_DIRS instead of DIRS in the Makefile based build since the subdirectories all appear to have no inter-directory dependencies. This speeds up parallel makefile builds greatly.
d2a54e9 This adds a "batch mode" to lldb kinda like the gdb batch mode.  It will quit the debugger after all the commands have been executed except if one of the commands was an execution control command that stopped because of a signal or exception.
6a3f040 Resolve non-pointer isas for metaclasses. Patch by Enrico Granata. <rdar://problem/18618298>
fa3c1e9 Don't lock the IOHandlerList::m_mutex in Debugger::RunIOHandler(...) since if a process is resumed or halted, it will try to push/pop the process IOHandler and it will deadlock.
0b22215 llgs: fixes to PTY/gdb-remote inferior stdout/stderr handling, logging addtions.
7624230 Fix cmake build for PluginInstrumentationRuntimeAddressSanitizer.
a6b3a6d Add a IsInstrumentationRuntimePresent SB API
00b321f include compiler-rt in build-llvm.pl
a71bc30 Fix the build after the recent plugin additions for AddressSanitizer by adding dependencies and definitions.
5a2f371 Rework the way we pass "run multiple command" options to the various API's that do that (RunCommandInterpreter, HandleCommands, HandleCommandsFromFile) to gather the options into an options class.  Also expose that to the SB API's.
a6abae2 Reinstate setting addr_width to the result of the computation, but in the conditional rather than at initialization time.
1c64f69 Remove default case from a fully covered switch.
ed690ba Fix unused variable warning from r219544.
1578e04 LLDB AddressSanitizer instrumentation runtime plugin, breakpint on error and report data extraction
ba9dad4 Add a new disassembly-format specification so that the disassembler output style can be customized.  Change the built-in default to be more similar to gdb's disassembly formatting.
71229ff When parsing ObjC types from encoded strings (and disallowing any-type), the ^? combination gets resolved to no type, while we could resolve it to void* I don't think on any of the platforms where ObjC matters sizeof(T*) depends on T, so even if we never figured out the pointee type, the pointer type should still be sane This might also allow some limited inspection where previously none was possible, so a win
c683c88 Update assertion in DYLDRendezvous.
b73f8f3 Reverse out r219169 related to quote handling.
abffce7 Enable local llgs debugging on Linux when the use-llgs-for-local setting is enabled.
17de9e5 In cases where you'd use an expression to get a value to insert in a command, be ready to use synthetic children if they are there. Those are now a source of values, so worth checking for
8db1f22 Enhance the libc++ list data formatter so that it does not start looking for loops until asked to actually fetch children. Also, if you're going to read child X, only look for a loop in the first X nodes. Loops further down the road won't really matter. This should speed things up for large lists and fix rdar://18583790

git-subtree-dir: llvm/tools/lldb
git-subtree-split: c5a7aedd7295bf795c00a9349d3020514262455c
Merge commit '06238fdfdc5bbc7ba37903f770f2a82ab90f2d07' into devel
Finish merge with Clang.
Finish merge with Clang.
Merge branch 'devel' of elmo.lanl.gov:gitlab/scout into devel