Squashed 'llvm/' changes from 7e82200..b4aafff

b4aafff move getNameWithPrefix and getSymbol to TargetMachine.
737c9f6 Add back r201608, r201622, r201624 and r201625
cf42174 Refactor TargetOptions initialization into a single place.
eb5fe70 Test commit - remove the new line to lib/Target/AArch64/AArch64TargetMachine.cpp.
a72f916 [mips] Use multiple FileCheck prefixes rather than run the test multiple times
ffac49b [mips] In the integrated assembler, select the default feature bits by changing the CPU value.
f47b32e Test commit - added a new line to lib/Target/AArch64/AArch64TargetMachine.cpp.
191f882 [Sparc] Remove spurious checks from a testcase.
9a8ab56 [mips] Use llvm::Triple in ParseMipsTriple() instead of manually parsing it
3e0d3a4 This reverts commit r201625 and r201624.
210edf5 [mips] Add explicit N32 and N64 tests to nabi-regs.s test
2228d01 Support GTest for FreeBSD platforms (9.x)
f513217 [mips] Remove unused NotN64 predicate
35f15e5 Fix AVX512 vector sqrt assembly strings.
6e2c745 Disable override and final C++ keyword in gcc 4.6.
9a92586 Revert r201622 and r201608.
1f55e40 X86: move test requiring X86TargetLowering info into its own directory
a5d63e5 Try addding datalayout in case that's what Hexagon doesn't like.
44697f3 X86 CodeGenPrep: sink shufflevectors before shifts
84d5a23 Build PIE binaries when cross-compiling to Android.
70416f8 Try to revive buildbots after r201620
fa0cf99 Remove special FP opcode maps and instead add enough MRM_XX formats to handle all the FP operations. This increases format by 1 bit, but decreases opcode map by 1 bit so the TSFlags size doesn't change.
52fb0a5 Reduce size of map field in X86 TSFlags since it now requires less bits.
75116bc Put some of the X86 formats in a more logical order.
82a644a Remove A6/A7 opcode maps. They can all be handled with a TB map, opcode of 0xa6/0xa7, and adding MRM_C0/MRM_E0 forms. Removes 376K from the disassembler tables.
b7e1ab7 llvm-objdump/COFF: Print load configuration table.
3fd813e Fix a typo in a comment.
156f2a1 MCAsmParser: support required parameters
5bbd4d2 MCAsmParser: change representation of MCAsmMacroParameter
070b574 Now that llvm always does the right thing with private, use it.
f2ce8f7 Use PrivateLinkage now that it is safe.
faaa553 Avoid an infinite cycle with private linkage and -f{data|function}-sections.
7a8ca27 [docs] Clean up some more llvm-gcc stuff
f7f33ce [docs] Nuke some references to llvm-gcc
6880f0e Fix PR18743.
1836fe5 Rename a DebugLoc variable to DbgLoc and a DataLayout to DL.
25818a6 Consistently check 'IsCode' when allocating sections in RuntimeDyld (via findOrEmitSection).
a3de371 [AArch64] Expanded sin, cos, pow with FP vector types inputs
aa43604 [mips] Add support for ELF64-mips and the R_MIPS_32/R_MIPS_64 relocs for it.
39d8dcb Rename some member variables from TD to DL.
2678b21 Add myself as owner for libc++
ade82a4 XCore target: Handle common linkage
b489828 XCore target: addMemOperand as necessary
9409825 XCore target: Fix llvm.eh.return and EH info register handling
eb720cc Darwin builds: handle different possible form for SDKROOT.
4bcb985 GlobalMerge: move "-global-merge" option to the pass itself.
d729dfc X86: use vpsllvd (& friends) for 16-bit shifts on Haswell
257ed1e llvm-cov: Support gcov's extermely lenient treatment of -o
ce3db3c Add PS prefix to some classes I missed in r201538.
17e2af6 Add a bunch of OpSize32 tags to 64-bit mode only instructions to match their 32-bit mode counterparts for cases where there is also a OpSize16 instruction.
2e58f46 AVX-512: Fixed size of mask registers
47f6b17 Fix a typo about lowering AArch64 va_copy.
7d2bb38 Add an x86 prefix encoding for instructions that would decode to a different instruction with 0xf2/f3/66 were in front of them, but don't themselves have a prefix. For now this doesn't change any bbehavior, but plan to use it to fix some bugs in the disassembler.
ddc5a01 PGO: llvm-profdata: tool for merging profiles
4959a2d Fix the arm assembler so that this malformed instruction:     ldrd r6, r7 [r2, #15] simply gives an error and does not triggers an assertion.
1410f7f Add support for assigning to . in AsmParser.
3457506 Fix diassembler handling of rex.b when mod=00/01/10 and bbb=101. Mod=00 should ignore the base register entirely. Mod=01/10 should treat this as R13 plus displacment. Fixes PR18860.
e139a1e AVX-512: implemented zext fron i1 to i16
3bc8594 fix for null VectorizedValue assertion in the SLP Vectorizer (in function vectorizeTree()). radar://16064178
62cb90e MCAsmParser: add some mixed argument tests
696002f MCAsmParser: better handling for named arguments
09d1d54 Use 16 byte stack alignment for NaCl on ARM
2ced338 SCEVExpander: Try hard not to create derived induction variables in other loops
56d3491 Remove dead code, we already require cmake 2.8.8.
2a8437f Remove unnecessary typename.
1800766 Fix more broken CHECK lines
c15d3a8 Add extra CHECK prefix to tests with explicit prefix
da39cf4 Actually call FileCheck in tests
a938c51 llvmbuild: Exclude disabled targets from LLVMExports.cmake.
789f722 LLVMExports.cmake: Add System libs $(LIBS) to LLVMSupport, corresponding to r201077.
88fae4e LLVMExports.cmake: Exclude gtest since they are not installed.
f280c65 AVX-512: simpyfied BUILD_VECTOR for masks; fixed cmp/test sequence
8e810ae fixed typo in comment as my test commit
0cefb0e Add a DIELoc class to cover the DW_FORM_exprloc set of expressions alongside DIEBlock and replace uses accordingly. Use DW_FORM_exprloc in DWARF4 and later code. Update testcases.
268e96a Fix broken CHECK lines
5a39da0 MCAsmParser: relax declaration parsing
1edea19 ARM IAS: (partially) support .arch_extension directive
132a287 DebugInfo: Deduplicate entries in the fission address table
16413fa DwarfDebug: Remove dead code.
a9db46b Revert "SCEVExpander: Try hard not to create derived induction variables in other loops"
e672548 SCEVExpander: Try hard not to create derived induction variables in other loops
4b3ec17 Cleanup docs about lit substitutions
0877c65 Add opcode extension forms of MOV8ri/MOV16ri/MOV32ri.
b556a70 Fix typo
76554f3 Remove tautological test line (unsigneds are always >=0).
a666f9d Remove unnecessary typename introduced in r201440.
4b45137 DebugInfo: Implement DW_AT_stmt_list for type units
ff1677e DwarfUnit: Remove unnecessarily explicit/out of line virtual dtors.
fa4ff8a Hopefully fix the build with gcc.
906c8de DwarfUnit: Remove unnecessary (void)t; that was previously used to suppress -Wunused-member-variable
705991f DwarfUnit: Refactor out DW_AT_stmt_list creation into common function for fission and non-fission cases
d4762e8 Add extern template instantiations of llvm::Calculate.
038600b [CodeGenPrepare][AddressingModeMatcher] Give up on type promotion if the transformation does not bring any immediate benefits and introduce an illegal operation.
5f80594 TargetLowering: n * r where n > 2 should be an illegal addressing mode
3b0acd4 Remove myself as owner of libc++
2220abe Remove unused #include
c4e1b13 DebugInfo: Don't include the name of the CU file in the line table file list when it's unneeded
837c54f Support DWARF discriminators in object streamer.
fba2a76 This patch has two main functions:
034b8f9 Trivial cleanup: reuse existing variable.
e228078 Generate the DWARF stack frame decode operations in the function prologue for ARM/Thumb functions.
54136ca [AArch64 NEON] Fix a bug to avoid using floating type as condition type in lowering SELECT_CC.
89eb5dc Revert "DebugInfo: Don't include the name of the CU file in the line table file list when it's unneeded"
f46135e llvm/test/DebugInfo/empty.ll: Mark it as XFAIL:win32 lacking of line table.
255181f Enable AArch64 NEON by default.
5e8aa01 [PR18809] Remove XFAIL from DebugInfo/empty.ll.
9c4127a [AArch64]Fix the assertion failure caused by "v1i1 SETCC" DAG node. As v1i1 is illegal, the type legalizer tries to scalarize such node. But if the type operands of SETCC is legal, the scalarization algorithm will cause an assertion failure.
35d2f61 DebugInfo: Don't include the name of the CU file in the line table file list when it's unneeded
5483012 Disable emission of aranges by default and add a command line option to enable again that will be matched with a commit to enable in clang.
5cb9925 [X86] Don't mark movabsq as cheap-as-move - it isn't that cheap.
f222ebe Do more addrspacecast transforms that happen for bitcast.
0f2e653 R600/SI: Expand all v8[if]32 operations
9757ba1 R600/SI: Add a pattern for i32 anyext
130f271 R600/SI: Completely Disable TypeRewriter on compute
1a52c2b R600/SI: Split global vector loads with more than 4 elements
c4fea35 R600/SI: Add ShaderType attribute to some tests
cac25de Use __literal16. It has been supported by the linker since 2005.
c5887a2 MSBuild integration: get the LibraryPath right (PR18707)
d60c43b Don't build DFSan functionality for Android.
3e5fe14 Simplify checks in MC/AsmParser/directive_loc.s
86dd0f9 Fix generation of 'isa' and 'discriminator' keywords.
f2df02b Tweak an _MSC_VER ifdef to use typename with clang in a unittest
fa9ce5c Tweak llvm/test/DebugInfo/X86/generate-odr-hash.ll corresponding to r201351 (Revert r201187).
573c050 Check that GlobalAliases don't have section or alignment.
efe40a5 SCCIterator: Merge MinVisitNumStack and VisitStack
62356fc InstCombine: Replace custom constant folding code with ConstantExpr.
d8be721 [PR18809] Revert r201187, "DebugInfo: Don't include the name of the CU file in the line table file list when it's unneeded"
e08aac4 Use mkdir instead of stat+mkdir.
5645e5f Add triples to try to fix the windows bots.
8ed2c8e Reduce code duplication resulting from the ConstantVector/ConstantDataVector split.
7fd806d .file is only available on ELF, use a triple instead of -march.
ad15c9d "foo" is not a ppc instruction, don't try to parse it.
0f25a45 Specify a triple. MachO AArch64 support is missing.
38c6b58 Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call
5d9d24d Remove dead code.
621c80f [CMake] Let llvm_add_library(MODULE) check capability of loadable module.
069bd29 [CMake] Move the target property PREFIX from add_llvm_loadable_module() to llvm_add_library().
74c3f7d [CMake] llvm_add_library(MODULE) may use CMAKE_MODULE_LINKER_FLAGS instead of target property LINK_FLAGS.
38a10d0 [CMake] LLVM_PLUGIN_EXT: Use CMAKE_SHARED_LIBRARY_SUFFIX rather than CMAKE_SHARED_MODULE_SUFFIX in llvm tree.
92a24ec llvm/test/CodeGen/AArch64/cpus.ll: Tweak to use -mtriple=aarch64-unknown-unknown, or this would crash for targeting pecoff like *-mingw32.
a7181f2 ARM: remove floating-point patterns for @llvm.arm.neon.vabs
b8c81b5 Add Cortex-A53 and Cortex-A57 cores to the AArch64 backend
611c2c3 Remove unused method declaration.
1ee7e39 Remove filtering concept from X86 disassembler table generation. It's no longer necessary.
7a6f5c7 [AArch64]Fix the problems that can't select mul/add/sub of v1i8/v1i16/v1i32 types. As this problems are similar to shl/sra/srl, also add patterns for shift nodes.
126099e [RegAlloc] Fix the assertion in the last chance recoloring to match the condition at the call site.
17c9169 Copy dll storage in copyAttributes.
5256375 [DAG] Fix the recognition of opaque constants in the SelectionDAGBuilder.
f79b906 Use simpler version of sys::fs::exists when possible.
4f22561 [AArch64]Add support for spilling FPR8/FPR16.
2798b77 GlobalOpt: Aliases don't have sections, don't copy them when replacing
571417b [CMake] llvm_add_library: Add handling of the parameter ADDITIONAL_HEADERS to pass through to process_source.
81c7e18 Fix misleading comment.
04510e6 The new MCJIT C-API unit test is generating objects without constant data sections, at least on MachO. Relax expectations to keep the bots green while I investigate.
3042a65 Remove a very old instcombine where we would turn sequences of selects into logical operations on the i1's driving them.  This is a bad idea for every target I can think of (confirmed with micro tests on all of: x86-64, ARM, AArch64, Mips, and PowerPC) because it forces the i1 to be materialized into a general purpose register, whereas consuming it directly into a select generally allows it to exist only transiently in a predicate or flags register.
029a76b [Vectorizer] Add a new 'OperandValueKind' in TargetTransformInfo called 'OK_NonUniformConstValue' to identify operands which are constants but not constant splats.
8887371 [X86] Teach the backend how to lower vector shift left into multiply rather than scalarizing it.
67ee127 VS Integration: install toolsets for x64 too (PR18738)
e53b2ac DebugInfo: Demonstrate that we're not currently uniquing address table entries in fission
2964013 DebugInfo: Merge fission and non-fission (and 32 and 64 bit) tests for TLS support.
58f4aa4 Reformat a few lines with clang-format.
3572627 80-col.
53c9085 [Stackmaps] Improve the stackmap lowering code in the SelectionDAGBuilder.
586004f [Stackmaps] Fix the ID type to be i64 also for stackmaps (as we claim in the documenation)
4839a7d Don't try to build ExceptionDemo on ARM.
061a739 Extend RTDyld API to enable optionally precomputing the total amount of memory required for all sections in a module. This can be useful when targets or code-models place strict requirements on how sections must be laid out in memory.
29a60e6 Rename Windows.h to WindowsSupport.h to avoid ambiguity
17159cb _CS_DARWIN_USER macros available on darwin>=9.  Thanks, Dave Odell!
4c1ea6b Debug info: Bugfix for r201190: DW_OP_piece takes bytes, not bits. rdar://problem/16015314
386fedd Pass edges weights to MachineBasicBlock::addSuccessor in TailDuplicatePass to preserve branch probability information.
e4c62d1 PC-rel implemented in AArch64, test now pass
a0ea8fa Move more self-contained functionality away from tools/opt/opt.cpp
7580df3 Revert r201237+r201238: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call
57edb95 Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call
f51d6eb Windows/Path.inc: Move <shlobj.h> after "Windows.h" for some API available.
dd5ff1b Teach tablegen() macro to check needed variables
eee40f9 R600: Always implement both versions of isTruncateFree and add a sanity check.
cfd14e6 Remove special case filtering for instructions with lock prefix as they are all marked with isCodeGenOnly already.
56d749a Mark XACQUIRE_PREFIX/XRELEASE_PREFIX as isAsmParserOnly so they'll disappear from the disassembler table build without custom filtering code.
0d7106b [PR18809] Mark DebugInfo/empty.ll as XFAIL:cygming.
c7709a4 Test case I forgot to 'add' for r201126.
c2a0dff Remove unneeded include
9a0eced DwarfUnit: Include type unit's file strings in the defining compile unit's file_names table
f7943e5 Fix some formatting in my last commit (r201196)
c6c93e9 DwarfUnit: Provide a reference to a defining DwarfCompileUnit from DwarfTypeUnit.
a22a1bb DwarfUnit: Refactor DW_AT_file creation into a common function.
19cfb96 DwarfUnit: Replace unnecessary conditionals with asserts.
9f5baa3 Tweak ARM fastcc by adopting these two AAPCS rules: * CPRCs may be allocated to co-processor registers or the stack – they may never be allocated to core registers * When a CPRC is allocated to the stack, all other VFP registers should be marked as unavailable
e48e941 Reapply r201180 with an additional error path. Debug info: Emit values in subregisters that do not have a separate DWARF register number by emitting a super-register + DW_OP_bit_piece. This is necessary because on x86_64, there are no DWARF register numbers for i386-style subregisters. Fixes a bunch of FIXMEs.
20d5e1b Revert "Debug info: Emit values in subregisters that do not have a separate"
feb006f DebugInfo: Don't include the name of the CU file in the line table file list when it's unneeded
3f93eb5 DebugInfo: Remove dependence on file numbering in the line table.
b015567 whitespace
f4f80eb Debug info: Emit values in subregisters that do not have a separate DWARF register number by emitting a super-register + DW_OP_bit_piece. This is necessary because on x86_64, there are no DWARF register numbers for i386-style subregisters. Fixes a bunch of FIXMEs.
d5468bf make llvm-dwarfdump a little more resilient when parsing .debug_loc sections. The call to data.getUnsigned(&Offset, AddressSize) only increments Offset if the read succeeds, which will result in an infinite loop.
69bc4dd R600/SI: Fix assertion on infinite loops.
1e6240a InstCombine: Teach icmp merging about the equivalence of bit tests and UGE/ULT with a power of 2.
75bf592 Tidy up a bit. Formatting only.
0c2ff8c ARM: Thumb2 LDR(literal) can target SP.
193c091 SCEV: Cast switched values to make -Wswitch more useful.
6a089db Improve the declaration when LDPO_PIE is not available. Thanks to İsmail Dönmez for the better declaration.
31575e7 If LDPO_PIE is not defined (before binutils 2.23 version), use the hardcoded declaration 3 See r201110 for the initial change
440ef85 Add a note about using "Differential Revision:" in commit messages
cb27441 ScalarEvolution: Analyze trip count of loops with a switch guarding the exit.
a63585a Teach the DAGCombiner how to fold concat_vector nodes when the input is two BUILD_VECTOR nodes, e.g.:
79ced8c [AArch64] Add missing PCRel relocations for AArch64 in RuntimeDyldELF
8615ab4 [LPM] Switch LICM to actively use LCSSA in addition to preserving it.
d3abd0b XCore target: fix const section handling
04a573a  XCore target: Lower ATOMIC_LOAD & ATOMIC_STORE
e9d5f6e AVX: fixed a bug in LowerVECTOR_SHUFFLE
d4ab7d1 Remove TimeValue::toPosixTime() -- it is buggy, semantics are unclear, and its only current user should be using toEpochTime() instead.
e4092e9 AVX-512: Optimized BUILD_VECTOR pattern; fixed encoding of VEXTRACTPS instruction.
defd4bc [CodeGenPrepare] Test case for the promotions that bypass the profitability check due to some other checks in the addressing mode matcher. I.e., test case for commit r201121.
a70e3fc In RuntimeDyldImpl::emitSection, make Allocate (section size to be allocated) a uintptr_t. An unsigned could overflow for large sections.
35c474d Changed attributes of all gather intrinsics from IntrReadMem to IntrReadArgMem as they access only memory based on argument. Patch by Robert Khasanov.
bec3b48 Using the helper API for random number generation.
91b585b Hopefully fixing the MinGW 32 build, which was broken by r200767. Not using rand_s() since MinGW does not have an implementation for it, but instead using the underlying CryptGenRandom APIs.
921f0b1 [CodeGenPrepare] Undo changes that happened for the profitability check.
efbd8e5 DebugInfo: Use existing symbol rather than creating it again.
8ed971b Move the *PassPrinter into their own module.
1a66b63 [Stackmaps] Cleanup code. No functional change intended.
f3fc8c9 LTO API: add lto_module_create_from_memory_with_path.
4822c5f Mark the methods in the Mangler const.
b89b119 cmake: Do not export targets when installing toolchain only
256d839 Fix an old FIXME. LDPO_PIE is available since 2.23, realeased 2012-10-22.
a40b352 Change the begin and end methods in ObjectFile to match the style guide.
700bba2 R600: Implement isTruncateFree
d5a9ea8 [LPM] A terribly simple fix to a terribly complex bug: PR18773.
1c45548 Copy the ThreadLocalMode in GlobalVariable::copyAttributesFrom
42faffd R600/SI: Initialize M0 and emit S_WQM_B64 whenever DS instructions are used
835f1c0 R600/SI: Only use S_WQM_B64 in pixel shaders
853f658 Remove some prototype code accidentally committed in r201043
71313f8 ARM: use natural LLVM IR for vshll instructions
5fcb5c9 [AArch64] Handle aliases of conditional branches without b.pred form.
dbd5c28 ARM: r12 is callee-saved for interrupt handlers
299918a Make succ_iterator a real random access iterator and clean up a couple of users.
df3ae8e GlobalsModRef: Unify and clean up duplicated pointer analysis code.
9ed30bb ARM: use LLVM IR to represent the vshrn operation
5a2ae98 Test commit - added a new line to vec_shuf-insert.ll.
3f14ca5 [mips][msa] Add DLSA instruction.
5f09dd3 [mips][msa] Update FileCheck prefix in preparation for  the addition of Mips64 tests.
ac27d71 [CMake] Add dependencies to gtest.
bf6f7a7 [mips][msa] Make LSA_DESC a parameterizable class.
fdc6308 [CMake] LLVMSupport should be responsible to provide system_libs.
282713c Fix LLVM install rules to not set permissions on include/
0eefad3 [CMake] Introduce llvm_add_library().
8cab11a [asan] support for FreeBSD, LLVM part. patch by Viktor Kutuzov
27ef6ee AVX-512: Fixed extract_vector_elt for v16i1 and v8i1 vectors.
ced2756 Recommit r201059 and r201060 with hopefully a fix for its original failure.
70ff3e9 Revert r201059 and r201060.
70fda36 [CMake] LLVMProcessSources.cmake: Prune add_file_dependencies to ${TABLEGEN_OUTPUT}.
b1e7bec [CMake] Re-apply r200765, "Get rid of llvm_config() to expand dependencies."
2825b8f [AArch64]Implement the copy of two FPR8 registers by using FMOVss of two FPR32 registers in copyPhysReg.
a73f0e2 Simplify a bunch of code by removing the need for the x86 disassembler table builder to know about extended opcodes. The modrm forms are sufficient to convey the information.
d8fdb19 Add MRMXr/MRMXm form to X86 for use by instructions which treat the 'reg' field of modrm byte as a don't care value. Will allow for simplification of disassembler code.
537dca9 MCParser: add a single token lookahead
a4122f4 Remove shell comment in the middle of a single-line command.
5d74ffc AsmParser: Simplify code with ArrayRef.
911a491 Whitespace.
4c56efb Provide CMake package modules in install tree
2fbf9e2 Add version, arch, system libs, and targets to Makefile.config
3e308c8 Load exported lib and exe targets from LLVMConfig
5778c9e Export lib and exe build target names from build tree
39fcc71 Export lib and exe build target names from install tree
24ef854 Provide LLVMConfig in both build and install tree
6574a84 Teach LLVMConfig to avoid modifying CMAKE_MODULE_PATH
5534cb3 De-duplicate references to share/llvm/cmake path
275f653 AsmParser: Parse (and ignore) nested .macro definitions.
965e3bc Use a consistent argument order in TargetLoweringObjectFile.
cc719cf Fix formatting introduced in r200941
a01427c Remove unnecessary include.
426497e Remove some unnecessary code. The conditions it was checking had already been ruled out by the caller.
12ea35f tools: cast the right operand
81756b9 [docs] [tblgen] clarify that code fragments are just string literals
7048c05 [docs] [tblgen] There is no "code" type.
f408f0f [docs] TableGen easter egg: Multiline string literals
8e616d3 tools: explicitly cast to avoid a warning
804bd9d tools: handle out-of-line personality 0 decoding
91ec991 ARM: change attribute tests to use parsed form
846acbe LoopVectorizer: Keep track of conditional store basic blocks
e09411d Pass the Mangler by reference.
3f2e9e5 Add LLVM_OVERRIDE to a few declarations.
6f1819f [Constant Hoisting] Fix insertion point for constant materialization.
1368e65 [Constant Hoisting] Don't update the use list while traversing it - DOH!
3365433 Remove dead code.
40bb66b Improve existing visualizers by:
4280221  Comment cleanup. Don't repeat the function name in the comment.
c90c6d5 Comment cleanup. Don't repeat the function name in the comment.
1820428 Remove training whitespace.
26baaa1 Always create a temporary symbol to use with the cfi frame.
d413950 Use FileCheck variables to simplify this test.
0b9dca0 Fix Darwin bots from EHABI change
26bc2c8 R600/SI: Add failing test for 3 x i64 vectors.
703197f Remove -arm-disable-ehabi option
1e75dec Don't internalize linkonce_odr non constant variables.
11b8b43 Fix an invalid check for duplicate option categories.
24e5f96 [mips] Forbid the use of registers t6, t7 and t8 if the target is NaCl.
0732e94 Fix a bug with .weak_def_can_be_hidden: Mutable variables cannot use it.
12eb44d Refactor logic into a function predicate.
c3261b3 Try to unbreak the mingw32 build.
c8f5d43 LLVM-1163: AAPCS-VFP violation when CPRC allocated to stack
fba9c10 Changed comment.
1826a52 [Sparc] Add support for parsing synthetic instruction 'mov'.
464d664 [Sparc] Emit correct encoding for atomic instructions. Also, add support for parsing CAS instructions to test the CAS encoding.
fabdd66 [Sparc] Emit relocations for Thread Local Storage (TLS) when integrated assembler is used.
44ad4d0 [Sparc] Emit correct relocations for PIC code when integrated assembler is used.
f2f6d44 [Sparc] Use SparcMCExpr::VariantKind itself as MachineOperand's target flags.
ee5625b PGO branch weight: fix PR18752.
1f65cfa X86: Resolve a long standing FIXME and properly isel pextr[bw].
1dd4d5f Convert test to FileCheck.
30c0f72 [CodeGenPrepare] Move away sign extensions that get in the way of addressing mode.
2be0fae Track register pressure a bit more carefully (weird corner case).
e75bf03 Revert r200095 and r200152. It turns out when compiling with -arch armv7 -mcpu=cortex-m3, the triple would still set iOS as the OS so the hack is still needed. rdar://15984891
226bd87 R600/SI: Add a MUBUF store pattern for Reg+Imm offsets
603cd56 R600/SI: Add a MUBUF store pattern for Imm offsets
becac0f R600/SI: Add a MUBUF load pattern for Reg+Imm offsets
2227437 R600/SI: Use immediates offsets for SMRD instructions whenever possible
4ed2667 Remove const_cast for STI when parsing inline asm
0c245b6 X86: add costs for 64-bit vector ext/trunc & rebalance
6984ee6 Add a -suppress-warnings option to bitcode linking.
efcc736 Yet another patch to reduce compile time for small programs:
c0fc62c X86: deduplicate V[SZ]EXT_MOVL and V[SZ]EXT nodes
9f2252f The following patch' purpose is to reduce compile time for compilation of small programs on targets with large register files. The root of the compile time overhead was in the use of llvm::SmallVector to hold PhysRegEntries, which resulted in slow-down from calling llvm::SmallVector::assign(N, 0). In contrast std::vector uses the faster __platform_bzero to zero out primitive buffers when assign is called, while SmallVector uses an iterator.
f15735e This small change reduces compile time for small programs on targets that have large register files. The omission of Queries.clear() is perfectly safe because LiveIntervalUnion::Query doesn't contain any data that needs freeing and because LiveRegMatrix::runOnFunction happens to reset the OwningArrayPtr holding Queries every time it is run, so there's no need to zero out the queries either. Not having to do this for very large numbers of physregs is a noticeable constant cost reduction in compilation of small programs.
44e4040 A memcpy out of an fresh alloca is a no-op, delete it. Patch by Patrick Walton!
a4f328f Delete all of the CodeGenInstructions from CodeGenTarget destructor.
f47fd2f [PM] Fix horrible typos that somehow didn't cause a failure in a C++11 build but spectacularly changed behavior of the C++98 build. =]
57732bf [PM] Add a new "lazy" call graph analysis pass for the new pass manager.
9b71cd8 [PM] Back out one hunk of the patch in r200901 that was *supposed* to go in my next patch. Sorry for the breakage.
d8e62b6 [PM] Wire up the analysis managers in the opt driver. This isn't really necessary until we add analyses to the driver, but I have such an analysis ready and wanted to split this out. This is actually exercised by the existing tests of the new pass manager as the analysis managers are cross-checked and validated by the function and module managers.
58bc0ca [DAG] Don't pull the binary operation though the shift if the operands have opaque constants.
c7ac256 Set default of inlinecold-threshold to 225.
a2f4bb9 Update the X86 assembler for .intel_syntax to accept the << and >> bitwise operators.
cc94d00 don't set HasReliableSymbolDifference for ELF.
b03e292 doesSectionRequireSymbols is meaningless on ELF, remove.
2684ddd Disable most IR-level transform passes on functions marked 'optnone'. Ideally only those transform passes that run at -O0 remain enabled, in reality we get as close as we reasonably can. Passes are responsible for disabling themselves, it's not the job of the pass manager to do it for them.
b725815 Just returning false is the default.
a9ff3fd Pass address space to allowsUnalignedMemoryAccesses
bb7bf85 Add address space argument to allowsUnalignedMemoryAccess.
df7da79 Inliner uses a smaller inline threshold for callees with cold attribute.
8147752 Fix layering StringRef copy using BumpPtrAllocator.
1a10a51 [RegAlloc] Add a last chance recoloring mechanism when everything else failed to find a register.
77b655c [PM] Don't require analysis results to be const in the new pass manager.
f392976 Remove support for not using .loc directives.
9a7cfe5 Revert "Fix an invalid check for duplicate option categories."
d1dc9a0 [mips] Add NaCl target and forbid indexed loads and stores for it
0644c7a Fix an invalid check for duplicate option categories.
6c0351c mips: XFAIL non-extern-addend-smallcodemodel test
c341b7c AVX-512: optimized icmp -> sext -> icmp pattern
abb572f Test commit
575c4ad ARM: Resolve thumb_bl fixup in same MCFragment.
1ee5ca7 AVX-512: fixed a bug in EVEX encoding (the bug appeared after r200624)
cf4061a R600/SI: Add pattern for zero-extending i1 to i32
51dd765 Shrink the size of CodeGenInstruction a little bit by using bitfields. 32 bools seemed excessive.
49d687d Get rid of a vector copy by just making a pointer out of the reference returned by getInstructionsByEnumValue instead of assigning it to a new vector.
725d794 Fix a vector that was passed by value instead of reference.
0b2d8ed ARM: Enable use of relocation type tlsldo in debug info for tls data.
7583b60 Fix a doxygen comment referencing the wrong method name.
0e8ecef Move matching for x86 BMI BLSI/BLSMSK/BLSR instructions to isel patterns instead of DAG combine. This weakens the ability to fold loads with them because we aren't able to match patterns that load the same thing twice. But maybe we should fix that if we care. The peephole optimizer will be able to fold some loads in its absense.
002683a AVX-512: Added intrinsic for cvtph2ps. Added VPTESTNM instruction. Added a pattern to vselect (lit tests will follow).
3211c86 Add CheckChildInteger to ISelMatcher operations. Removes nearly 2000 bytes from X86 matcher table.
deb0ab5 Use the information provided by getFlags to unify some code in llvm-nm.
9cd9208 Fix configure to find arc4random via header files.
9e849c7 Add a test for printing absolute symbols in ELF.
ab70fcf [CMake] Deliberately get all LLVM library dependencies for standalone builds.
1b7969e [CMake] Move -stdlib=libc++ handling into its own file.
7e369ff Small fix for llvm-nm handling of weak symbols on ELF (print 'v').
524f08d Update testing case for r200806.
58631c7 Fix wording of warning message about invalid debug info.
9b06b0f Add a test for common symbols in coff.
51ca004 Silence a warning:
19a4033 Remove unused SF_ThreadLocal.
d1cf804 llvm-cov: Fix include order in GCOV.cpp
fb0ad6b SimplifyLibCalls: Push TLI through the exp2->ldexp transform.
767a3dc Avoid using EL_GETFP.
051faa2 [X86] Only 213 FMA3 variants should be marked commutable.
483727d cleanup: scc_iterator consumers should use isAtEnd
7f15e90 [mips] Implement %hi(sym1 - sym2) and %lo(sym1 - sym2) expressions
5e47632 Every target uses .align. Simplify.
506eb6d Use the default values.
b92cca2 Fix PR18345: ldr= pseudo instruction produces incorrect code when using in inline assembly
7d9ed1c R600/SI: Expand i1 BR_CC
0c7a6b6 R600/SI: Don't assume copies will be coalesced in SIFixSGPRCopies
83918a2 R600/SI: Custom lower i64 ISD::SELECT
4ee42ea R600: Enable vector fpow.
efb6bb6 HowToReleaseLLVM: Add information about dot releases
8f0354c OS X: the correct function is __sincospif_stret, not __sincospi_stretf
f9ced85 ARM & AArch64: merge NEON absolute compare intrinsics
8753ba9 Implemented support for Process::GetRandomNumber on Windows.
055e700 [CMake] Get rid of llvm_config() to expand dependencies.
c4c93c1 [CMake] LLVM-Config.cmake: Split explicit_map_components_to_libraries and introduce llvm_map_components_to_libnames and llvm_expand_dependencies.
82adfbd [CMake] add_llvm_loadable_module: Fixup r200762, I mis-eliminated wrong line. :(
455bf8d Revert r122395, "Fixes file extension for loadable modules on OS X."
07ce07d Add a note to documentation that Clang + libstdc++ 4.7.2 can not be used to build LLD.
01c0550 llvm-cov: Implement the preserve-paths flag
284c931 ARM: fix fast-isel assertion failure
c55ee81 [CMake] Revert r200695 and fix the problem with missing -fno-function-sections in a different way.
caeb7f9 [CMake] Add -stdlib=libc++ to host Clang build flags before performing any header search
de2e0bc R600/SI: Fix fneg for 0.0
e2d1c6c llvm-cov: Implement the object-directory flag
9433c77 llvm-cov: Ignore missing .gcda files
f7d0d07 llvm-cov: Document the llvm-cov tests
1a3b253 RegAllocGreedy.cpp: Use more simple value as Hysteresis, to suppress -mfpmath-dependent behavior.
6d0903f Revert: ARM: Enable use of relocation type tlsldo in debug info for tls data.
6840e89 Add strchr(p, 0) -> p + strlen(p) to SimplifyLibCalls
eabe14b ARM: Enable use of relocation type tlsldo in debug info for tls data.
cec7ce7 DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer emits zero-length arrays as {i32 0}
ee3a79a Revert r200150, "[CMake] tablegen(): Use -I <dir> according to the list by include_directories()."
8195368 Move error handling down to getSymbolNMTypeChar.
e4d1a3e Self-memcpy-elision and memcpy of constant byte to memset transforms don't care how many bytes you were trying to transfer. Sink that safety test after those transforms. Noticed by inspection.
3f7a92d DIBuilder: simplify array generation to produce true zero-length arrays
2a3e343 Add DEBUG_TYPE to SIAnnotateControlFlow
8155893 inalloca: Don't remove dead arguments in the presence of inalloca args
07786c2 AArch64 & ARM: refactor crypto intrinsics to take scalars
e6c04bf Expand vector bswap in LegalizeVectorOps
c2489e3 Undef'ing _WIN32_IE to silence an MSVC warning about redefining a macro value.
3e5b78d Add a note about Clang+LLVM on Sparc64.
83b8bc7 Remove outdated & incorrect part of comment.
7db79d9 Don't use -ffunction-sections if -fno-function-sections is not supported in the compiler.
17fec83 Introduce SmallPtrSetImpl<T *> which allows insert, erase, count, and iteration. This alows the majority of operations to be performed without encoding a specific small size. It follows the model of SmallVectorImpl<T>.
e3f8794 Rename the non-templated base class of SmallPtrSet to 'SmallPtrSetImplBase'. This more closely matches the organization of SmallVector and should allow introducing a SmallPtrSetImpl which serves the same purpose as SmallVectorImpl: isolating the element type from the particular small size chosen. This in turn allows a lot of simplification of APIs by not coding them against a specific small size which is rarely needed.
a3db812 Remove unnecessary include of AArch64GenInstrInfo.inc from AArch64Disassembler.cpp. None of the GET_ defines were set that would make the include do anything.
e6562c5 Lower llvm.expect intrinsic correctly for i1
25b48d5 Unaligned access is supported on ARMv6 and ARMv7 for the NetBSD target. Patch from Matt Thomas.
640dd76 [CMake] Move cmake_minimum_required(2.8.8) at the top.
de2d83b [CMake] Untabify.
3328a1d TableGen/X86RecognizableInstr.h: Prune out-of-date "@param isSSE". [-Wdocumentation]
6b6dfa5 Merge x86 HasOpSizePrefix/HasOpSize16Prefix into a 2-bit OpSize field with 0 meaning no 0x66 prefix in any mode. Rename Opsize16->OpSize32 and OpSize->OpSize16. The classes now refer to their operand size rather than the mode in which they need a 0x66 prefix. Hopefully can merge REX_W into this as OpSize64.
3c53b6f Simplify some code since VEX and EVEX instructions never have HasOpSizePrefix.
1415ca1 Merge HasVEXPrefix/HasEVEXPrefix/HasXOPPrefix into a 2-bit 'encoding' field in TSFlags.
c9ac328 Replace PPC instruction-size code with MCInstrDesc getSize
a16c1b5 LoopVectorizer: Enable unrolling of conditional stores and the load/store unrolling heuristic per default
1bdadf3 Add some xfailed R600 tests for 64-bit private accesses.
b2abb97 R600/SI: Fix insertelement with dynamic indices.
eb97c04 [Sparc] Set %o7 as the return address register instead of %i7 in MCRegisterInfo. Also, add CFI instructions to initialize the frame correctly.
991dd3b ARMTTI: We don't have 16 allocatable scalar registers
2d53a37 MC: Fix .octa output for APInts with BitWidth > 128
075a90a MC: Add support for .octa
aac8e4e MC: Add AsmLexer::BigNum token for integers greater than 64 bits
115fd30 [LPM] Apply a really big hammer to fix PR18688 by recursively reforming LCSSA when we promote to SSA registers inside of LICM.
a7bc25e Remove some unused #includes
878ca66 Silence GCC warnings.
d383b8e [inliner] Skip debug intrinsics even earlier in computing the inline cost so that they don't impact the vector bonus. Fundamentally, counting unsimplified instructions is just *wrong*; it will continue to introduce instability as things which do not generate code bizarrely impact inlining. For example, sufficiently nested inlined functions could turn off the vector bonus with lifetime markers just like the debug intrinsics do. =/
312eec7 Simplify some x86 format classes and remove some ambiguities in their application.
f34dc1b Update a .fill test to use the updated semantics.
e18fc7b MC: Improve the .fill directive's compatibility with GAS
69a0d80 Hopefully fix mingw32 bots.
86cb795 Revert "[SLPV] Recognize vectorizable intrinsics during SLP vectorization ..."
cde5c26 [stackprotector] Implement the sspstrong rules for stack layout.
8a24e83 Implement inalloca codegen for x86 with the new inalloca design
cb6684b Introduce line editor library.
bef2236 Introduce llvm::sys::path::home_directory.
f10743d Don't put non-static allocas in the static alloca map
1cf7708 Split out small-code-model MCJIT testcase in order to xfail for AArch64, where PC-rel relocations aren't yet fully implemented.
6f4efee Remove a redundant call to hasRawTextSupport.
ac9f143 Remove another hasRawTextSupport.
9934ff2 Set -mcpu to make this test pass on atom bots
7c30caa [inliner] Print out extra stats about the cost, threshold, and vector bonus in the inline cost analysis.
9d96045 Remove the last hasRawTextSupport call from R600.
b8f1606 Replace another use with hasRawTextSupport+EmitRawText with emitRawComment.
f7af9ea Use emitRawComment to avoid a call to hasRawTextSupport.
4457ab3 Fix file header for APFloat.h
42e0bc8 Clean up whitespace
b81f60f Mark the first dynamic elf symbol as SF_FormatSpecific.
f96f832 Replace X86 FMA intrinsic pseduo-instructions with def pats.
093b041 [SLPV] Recognize vectorizable intrinsics during SLP vectorization and transform accordingly. Based on similar code from Loop vectorization. Subsequent commits will include vectorization of function calls to vector intrinsics and form function calls to vector library calls.
d8324e6 Simplify getSymbolFlags.
c2c98e7 If we're not producing DWARF accel tables, don't waste memory keeping track of those entries.
5ff4b20 Add support for DW_FORM_flag and DW_FORM_flag_present to the DIE hashing algorithm. Sink the 'A' + Attribute hash into each form so we don't have to check valid forms before deciding whether or not we're going to hash which will let the default be to return without doing anything.
5ce9d65 Fix name of nested type in comment to match code.
0451736 DebugInfo: Flag type unit references as declarations
4fa3492 x86: Rename NumBytesForCalleeToPush to ...Pop for accuracy
fa2c384 Revert r200560, "LTO itself hasn't depended on MCDisassembler any more."
65c98b9 [ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret'
0cb94d9 LTO itself hasn't depended on MCDisassembler any more.
e225c19 llvm/tools: Prune redundant target_link_libraries.
1089c2c [CMake] Move libgtest for external projects.
773f200 AddLLVM.cmake: Untabify.
f1352fd HandleLLVMOptions.cmake: Typo, s/proerty/property/
9c45241 [mips][msa] Add insert.d instruction.
27574db Update FileCheck prefixes in preparation for the addition of Mips64 MSA tests.
93228f6 [vectorizer] Tweak the way we do small loop runtime unrolling in the loop vectorizer to not do so when runtime pointer checks are needed and share code with the new (not yet enabled) load/store saturation runtime unrolling. Also ensure that we only consider the runtime checks when the loop hasn't already been vectorized. If it has, the runtime check cost has already been paid.
f0b161d Separate x86 opcode maps and 0x66/0xf2/0xf3 prefixes from each other in the TSFlags. This greatly simplifies the switch statements in the disassembler tables and the code emitters.
45b8e5f Move REP out of the Prefix field of the X86 format. Give it its own bit. It had special handling anyway and this enables a future patch.
8d67f83 Move address override handling in X86CodeEmitter to a place where it works for VEX encoded instructions too. This allows 32-bit addressing to work in 64-bit mode.
2bb06b0 Move address override handling in X86MCCodeEmitter to a place where it works for VEX encoded instructions too. This allows 32-bit addressing to work in 64-bit mode.
8498c08 Fix a bug in gcov instrumentation introduced by r195513. <rdar://15930350>
9026e07 [Sparc] Save and restore float registers that may be used for parameter passing.
05324ab This patch teaches the DAGCombiner how to fold insert_subvector nodes when the input is a concat_vectors and the insert replaces one of the concat halves:
45b07e1 DAGCombine should not produce ISD::OR nodes after operation legalization if they're not legal.
21f0908 PGO branch weight: update edge weights in SelectionDAGBuilder.
e932091 Allow speculating llvm.sqrt, fma and fmuladd
4b4b808 Add a link to a bug to a couple of FIXMEs
8062fa2 [CMake] llvm_update_compile_flags: Honor LLVM_COMPILE_FLAGS.
3bbf29b HandleLLVMOptions.cmake: Typo in comment.
93f81d9 [x86] Fix signed relocations for i64i32imm operands
fe7fa28 This file already has a "using namespace object;", use it.
dafea15 [AArch64] Custom lower concat_vector patterns with v4i16, v4i32, v8i8, v8i16, v16i8 types.
4e54e6f Fix PR18381 - print a minimal diagnostic rather than assert on unresolved .secidx target
6420c11 Only ELF has a dynamic symbol table. Remove it from ObjectFile.
8010c98 This has been fixed.
a1da3dd Use early returns and factor the object::Binary creation.
014fdcd [Stackmaps] Record the stack size of each function that contains a stackmap/patchpoint intrinsic.
b68991f Comment out unused macro because of warning
735c98d Explicitly specify the CPU to avoid Atom-specific assembly mismatch
b2fa3a4 Reenable ARM EHABI on Android.
30b21ac [mips] Fix typo.
11a410b Remove duplicate patterns
28d965d Couple minor formatting fixes to the XXXGenDAGISel.inc files.
a93d7e9 Remove some AddedComplexity tags that were forcing priority for AVX over SSE. Use predicates instead.
0dd6b9b tools: fix Twine abuse
a2a6c39 tools: remove unnecessary typename
db75240 Remove duplicate pattern and add predicate checks on other patterns.
5ecf81d tools: repair Windows build
17ca0f8 Implement SPARCv9 atomic_swap_64 with a pseudo.
09f38a0 ARM IAS: support .object_arch
459c949 tools: add support for decoding ARM attributes
7a38b33 ARM IAS: support .movsp
2c9ed5d ARM: suuport .tlsdescseq directive
4747d6b ARM: support TLS descriptor relocations
9629ad3 ARM: support tlscall relocations
d26c0e7 Revert "[Stackmaps] Record the stack size of each function that contains a stackmap/patchpoint intrinsic."
2baaf25 [Stackmaps] Record the stack size of each function that contains a stackmap/patchpoint intrinsic.
efdbec8 Simplify the handling of iterators in ObjectFile.
6bf3966 Extend the preserve_most/all calling convention description in LangRef about the fact that the argument registers will be preserved too.
ab42578 Reland r200340 - 'Add line table debug info to COFF files when using a win32 triple'
8ddf091 add a bunch of LLVM_OVERRIDE before I start refactoring these.
fc79e50 Remove dead code.
2227f98 Revert r200431 due to bot failures.
b0dcfa5 Fix TLS handling in ELF's getAddress and llvm-nm to print 'D' for it.
0bdaca5 PGO branch weight: update edge weights in SelectionDAGBuilder.
ea120b6 PGO branch weight: update edge weights in IfConverter.
65a1296 Move range handling for a function to endFunction rather than when we create the subprogram DIE.
c55cb49 If we use DW_AT_ranges we need to specify a base address that ranges are relative to in the compile unit. Currently let's just use 0...
c879504 Turn on CU ranges if we've got multiple compile units in the same module since there's no range guarantee that we could make given output order. This also fixes up the testcases that have multiple CUs to have the correct range offset.
4ec1a52 Make the compile unit map a MapVector so that we can assume a stable output ordering.
8e290f5 Fix formatting of comment.
5b4cc3f llvm-cov: Accept the long forms of gcov options
c8662b1 llvm-cov: Improve help message text
5119fd5 llvm-cov: Expect a source file as a positional parameter
94b3a88 Remove C++11ism from r200407.
654247c MC: Better management of macro arguments
fb70e11 LoopVectorizer: Add a test case for unrolling of small loops that need a runtime check.
c2d6310 [CommandLine] Aliases require an value if their target requires a value.
b492843 Add support for PC-relative non-extern relocations to RuntimeDyldMachO.
2bd8350 [X86][SchedModel] Fix typos in the definitions of the ports for Haswell.
ff50030 Test commit
72d4223 [mips][msa] Add fill.d instruction.
8839020 [mips][msa] CHECK-DAG-ize MSA 2r_vector_scalar.ll test.
ba67c2a [mips][msa] Add copy_{u,s}.d.
cf78698 [mips][msa] CHECK-DAG-ize MSA elm_copy.ll test.
a403ceb [LPM] Fix PR18643, another scary place where loop transforms failed to preserve loop simplify of enclosing loops.
e89e312 Remove -arm-enable-ehabi from Android build rules. It's enabled by default.
6e16651 Document EHABI enabled by default
3fca788 Enable EHABI by default
b04ddad MC: Reorganize macro MC test along dialect lines
06fd4ed [asan] simplify a test
01a5c17 Delete the Matchers stored in the SmallVectors in SwitchOpcodeMatcher/SwitchTypeMatcher.
99c3e48 [Sparc] Use %r_disp32 for pc_rel entries in FDE as well.
52de969 Revert r200340, "Add line table debug info to COFF files when using a win32 triple."
8378035 Normalize the style in llvm-nm.cpp.
771023d [Sparc] Use %r_disp32 for pc_rel entries in gcc_except_table and eh_frame.
6a67a3f [LPM] Fix PR18642, a pretty nasty bug in IndVars that "never mattered" because of the inside-out run of LoopSimplify in the LoopPassManager and the fact that LoopSimplify couldn't be "preserved" across two independent LoopPassManagers.
8dc253e LoopVectorizer: Don't count the induction variable multiple times
c86f56a We do use pipefail these days. Update the test.
5c1983b [SparcV9] Use correct register class (I64RegClass) to hold the address of  _GLOBAL_OFFSET_TABLE_ in sparcv9.
916d312 Use a raw_stream to implement the mangler.
79c6a4f [AArch64 NEON] Lower SELECT_CC with vector operand.
e0f5a86 [ARM] Remove superfluous inline asm mode switch test
11ecfc8 Remove unnecessary call to pthread_mutexattr_setpshared()
7a34570 MC: Clean up error paths in AsmParser::parseMacroArgument
07dc57c Make createObjectFile's signature a bit less error prone.
bf2b27c [Sparc] Fix breakage in r200345
86b8fac Finish bringing file_type to the llvm style (other than its name).
ffcc427 Be more explicit about which overloaded variant to use. Caught by ASan!
ed139ac Convert to the inner enum so the compiler can warn about it in switches.
634295b Tests for mode switching
eab5cc3 Delete MCSubtargetInfo data members from target MCCodeEmitter classes
4faa861 Propagate MCSubtargetInfo through TableGen's getBinaryCodeForInstr()
2ddea4b Explictly pass MCSubtargetInfo to MCCodeEmitter::EncodeInstruction()
41c8ba9 Keep the MCSubtargetInfo in the MCRelxableFragment class.
d5d381b Modify MCObjectStreamer EmitInstTo* interface
4396f5d Change MCStreamer EmitInstruction interface to take subtarget info
ece65e3 Disable the COFF tests on non-X86 archs
38afdbe Add line table debug info to COFF files when using a win32 triple.
6cccb32 Use the proper SDK when building iOS sim builds of LLVM and/or Mac OS X builds.
79877dc fix templates to work with pre c++11
4ed4bd0 [mips] Fix ELF header flags.
1c71a20 Add BumpPtrAllocator::allocateCopy() utilities
3dcb2a2 [NVPTX] Fix emitting aggregate parameters
106b797 [X86] Add extra rules for combining vselect dag nodes into movsd.
bb6f236 typo
f611ae4 Fix pr14893.

git-subtree-dir: llvm
git-subtree-split: b4aaffffd3473d7eff7fc63d022ed4e9549983ea
Merge with LLVM.
Merge with LLVM.
Squashed 'llvm/tools/clang/' changes from 418b2b4..06c8a76

06c8a76 Some of these headings had the incorrect number of "underlines" and so would get warnings when generating the content from Sphinx. No functional changes intended.
3256fe5 Moving the documentation for the availability attribute into AttrDocs.
d1f3601 Only print the selected multilib when something is actually found on the host.
2eae290 [analyzer] Extend IdenticalExprChecker to check logical and bitwise expressions.
f460d79 [analyzer] Extend IdenticalExprChecker to check the two branches of an if.
05d56ef Reduce verbosity in the virtual file system using LLVM.h
8785edc Updated tutorial code according to the changes in r197139.
c482cba Fix some test issues in VirtualFileSystemTest
90ec5ff Moving the documentation for the objc_requires_super attribute into AttrDocs.
62c4059 Moving the documentation for the objc_method_family attribute into AttrDocs.
423f00a Remove typo from r201618
3249db8 Moving the documentation for the overloadable attribute into AttrDocs.
fe50e2b Moving the documentation for the enable_if attribute into AttrDocs. Removed the "clang introduces" phrase for style consistency, but otherwise the documentation is identical.
7d2228a AArch64: look up EmitAArch64Scalar support before calling.
7e48493 ARM & AArch64: move struct definition outside function.
f2e6535 Add FreeBSD ARM EABI hard-float support
c60ade5 ARM NEON: add vcvtX (with rounding mode) intrinsics to v8 ARM.
54d5cf2 ARM NEON: use more flexible TableGen field for defs.
45de76e ARM & AArch64: merge the semantic checking of NEON intrinsics
69ca344 libclang: ensure clang_createTranslationUnit2 always initializes *TU
6143653 [analyzer] post analyzer build checker-276
fda0860 [analyzer] Move checker alpha.osx.cocoa.MissingSuperCall out of alpha category.
2dc42ea Attempt to appease C++11 buildbots
251d40e Pass VFS from CompilerInstance to FileManager
0d3cd05 Add an OverlayFileSystem class
f9b4b1d Remove gunk from cxx_dr_status.html
f3ff480 Regenerate DR status page.
d3d0cf1 Implement DR577
720a847 CIndex: initialise TU
182109a Remove dead code.
36e5e19 clang-cl /fallback: turn the note into a warning
b508db6 Remove a C++11ism.
d970a31 PR13110: Add a -Wignored-qualifiers warning when ignoring a const, volatile, or _Atomic qualifier applied to a reference type.
91e3d58 Initial implementation of virtual file system
0003db2 Add missing test file for r201615
a20e7b2 Fix false positives in -Wmsvc-include by continuing header search
2d32f25 Fix the Driver/cl-fallback.c test
c825d6a MS ABI: Remove nv adjustment from direct vdtor calls and prologues
6100ca7 More tests for r201536.
a0b0677 Experiment with making -Wunreachable-code more immediately useful by restricting warnings to those issued in the main file.
06bf1dd clang-cl /fallback: emit a note when falling back
16e5460 DebugInfo: Avoid unnecessarily looking up the context when the declaration is already built.
3e02029 Updated documentation for Thread Safety Analysis.
eff1bc0 clang-cl: support -v
50f64d4 Fix testcase to actually check what it was supposed to, and make it a bit more robust.
0005612 Attempting to fix the build bot due to some missing text in the ast dump.
4816f24 clang-cl: Parse the /d2Zi+ flag (PR18728)
6c1c23a Missed updating this test case with r201585 -- the lockable attribute is now internally represented by CapabilityAttr.
bd0d2c6 In some cases (for example, the Firefox build system), the CLANG_CXX variable is defined but empty. Extend the test (like it is done in scan-build) to check also if the variable is empty or not.
0894e59 DeLesley Hutchins (who wrote the original thread-safety attribute functionality) and I have agreed to start migrating from lock-specific terminology to "capability"-specific terminology. This opens the door for future threading-related analysis passes so that a common nomenclature can be used.
d70502c Remove trailing spaces (no other change). Bikeshed #2
e1bb9b2 [analyzer] Teach CastSizeChecker about flexible array members.
90801c6 Add files that I forgot to svn add in 201578.
31ad0a0 libclang: fix a bug in processing invalid arguments, introduced in r201249
e4f0f4a MS ABI: Refactor extended qualifiers
fb51566 Remove trailing spaces (no other change)
8bd69ae MS ABI: Add support for mangling __restrict
48788de PR18876: The special-case rule that ignores the destruction of a top-level temporary in a decltype expression only applies if that temporary was created by a function call, not by a function-style cast or other flavour of expression.
f1f62b8 Fix a non-error diagnostic that had an err_ name. Also move it from Warning to ExtWarn, since it's an extension.
eeabe91 PR18839: 'extern "C++"' also adds an implicit 'extern', not just 'extern "C"'.
5d7b051 PR18870: Parse language linkage specifiers properly if the string-literal is spelled in an interesting way.
40de650 PR18855: Add support for UCNs and UTF-8 encoding within ud-suffixes.
ac14efa Change PGO instrumentation to compute counts in a separate AST traversal.
0cc307f Some nitpicky comment fixes for "i.e." and "e.g." abbreviations.
7b6f634 Fix some minor whitespace issues.
48e74b6 [analyzer] Improved checker naming in CFG dump.
bb61aa3 Forcing it to be an error when there is no Documentation list specified for an attribute. This is a bit of a (harmless) hack, but the FIXME explains why and when this hack can be removed. It's a justified hack because this prevents attribute authors from forgetting to add documentation when they add a new attribute.
c0e2731 Revert "Debug info: Make DWARF4 the default for Darwin, too."
8fae9d6 The default assignment operator could not be generated by all of the bots, but it's required by std::vector to operate properly.
1b7ff4d Removing a C++11'ism to also fix the build bots.
b49c375 Fixing build bot breakage due to using a local type as a template argument.
b0d5955 Implements a declarative approach to documenting individual attributes in Clang via a Documentation tablegen class. Also updates the internals manual with information about how to use this new, required, documentation feature.
7e2fb94 Fix gcc warning about C++ style comments.
2695cfd Darwin: remove buggy assertion
9531410 clang-format: Don't wrap "const" etc. of function declarations.
454b3a6 clang/unittests/AST,ASTMatchers: Remove _MSC_VER.
3f769be check-clang: Introduce the feature "non-ms-sdk" to suppress Driver/nostdincxx.cpp on msvc.
238e84e check-clang: Introduce the feature "dw2" to suppress CodeGenCXX/debug-info-namespace.cpp with *-win32.
e87513a Introduce the feature "can-remove-opened-file" to suppress tests. [PR18856]
b7d3bc9 Use -target instead of ignored -arch to fix x86_64 builders
1dc0c3e Remove useless XPASS
263f145 Fix broken CHECK lines
b06ac42 FileCheck's -LABEL cannot be combined with -NOT or -DAG
18d291c Fix broken RUN lines
32c29db DebugInfo: imported_decl/using declarations at namespace scope
a0cc3f6 [Sema] Fix assertion hit while trying to do constant evaluation for a dependent expression inside a GNU statement expression.
011b66b MS ABI: Remove a useless FileCheck line
ab6e91a Move test inputs into the Inputs directory (improvement/fix to r201419)
8b8ec99 PGO: fix a bug in parsing pgo data.
ec7248c MS ABI: Fix some layout tests
17453db MS ABI: Fix some layout tests
7c26ce2 Remove transactional memory from c++ status page; there's no working paper for it yet.
7326163 Add some missing threes.
f400314 Add entries to C++ status page for Technical Specification Working Papers that WG21 is about to vote on.
3ca6b01 [Objective-C Sema]. Warn when an indirectly overridden property mismatches the one declared in current class; in addition to those that are directly overridden. // rdar://15967517
3e589a1 Fix crash-on-invalid if decltype(auto) is used as a deduced return type in C++11 mode. Continue to disallow return type deduction in C++11 for now.
09080ab Consistently print anonymous namespace names as "<anonymous namespace>"
2a1598e Print anonymous namespaces as <anonymous namespace> instead of <anonymous>
45ac397 [IRGen]. Fixes a crash in using Objective-C array properties by fixing shouldBindAsLValue to accept arrays (like record types) because we always manipulate them in memory. Patch suggested by John MaCall. // rdar://15610943
cafca20 clang-format: Fix formatting of class template declaration.
27203f6 If the headermap maps the filename to a framework include ("Foo.h" -> "Foo/Foo.h"), continue header lookup using the framework include as filename.
a935271 Enable generation of unwind tables when building with sanitizers.
03f2949 Enable AArch64 NEON by default.
9330356 Add a command line option -gdwarf-aranges that will turn on emitting the dwarf .debug_aranges section.
6df4eb9 Debug info: Make DWARF4 the default for Darwin, too.
7a03bd8 Revert "[CMake] Disable libclangTests.exe on win32 for now."
b3c1077 Revert "libclang: fix a bug in processing invalid arguments, introduced in r201249,"
bf5be51 Enable correcting a member declaration where the type is class template, and the class name is shadowed by another member. Recovery still needs to be figured out, which is non-trivial since the parser has already gone down a much different path than if it had recognized the class template as type instead of seeing the member that shadowed the class template.
abd1fbf [examples] Add tablegen'd ClangCommentCommandList as a dependency for plugins.
2c974a9 [CMake] Disable libclangTests.exe on win32 for now.
cf7344d libclang: fix a bug in processing invalid arguments, introduced in r201249, pointed out by Daniel Jasper in r201329
a621dcd Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call
1617d45 Remove assert added in r201249.
00dff34 clang-format: Improve documentation of DerivePointerBinding.
cfb4533 [CMake] add_clang_library(MODULE): Create a phony target when llvm_add_library(MODULE) gave up.
589f01e ARM & AArch64 NEON: share the vabs implementation.
1beb994 XCore target pass -v flag to assembler & linker
a7a73f7 add comment explaining previous commit
80eb669 XCore target -fexceptions flag handling
0f24293 Remove spurious default case to silent sanitizer
98964df Add EXPERIMENTAL --rtlib=compiler-rt to GNU Clang
154210a [OPENMP] 'if' clause support (no CodeGen support)
6e1cfa4 There is no std namespace for standards-based attributes. Removing the scope qualifier and updating the only affected test case.
10a3be3 Use simpler version of fs::create_directory.
bb3fe0b Use simpler version of llvm::sys::fs::create_directories.
584c630 Fixing a compiler assertion with zero-width bit-fields in packed structs. According to the GNU docs, zero-sized bitfields should not be affected by the packed attribute.
6cadadf Really fix unused variable warnings in CIndex.
546b2d0 ms_struct layout replaces platform-specific behavior like useBitFieldTypeAlignment() and appears to ignore the special bit-packing semantics of __attribute__((packed)).
1cb060c3 Change testcase to use FileCheck.
26c70bc Fix uninitialized read in vtordisp pragma code.
854ec99 Fix some -Wdocumentation warnings in Sema.h and try to fix test for win64
79bbe11 Silence unused variable warning in CIndex.cpp with NDEBUG
dd6709e MS ABI: Implement #pragma vtordisp() and clang-cl /vdN
0e76625 Remove FIXME and hardcoded triple from this test (PR18251)
63ff92d Remove unused diagnostic.
c766e50 [examples] Use loadable modules instead of shared libraries for Clang plugins.
63405b9 Sema: Restrict alignment to 2**28.
363ed37 Attributes: Avoid a big useless copy in the emitter
88cddd3 relax testcase and make ppc64 buildbots happy.
b670b9b libclang: report error code for bad PCH files
e4022bf Document and improve the debug-property-synth.m test based on the information provided in the referenced radar.
12c6341 Revert "Remove bad debug info test."
64593b8 Attributes: Emit enumerators in td file declaration order
efae417 Revert r201237+r201238: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call
27f0b86 Arcanist failed to commit the two clang test corrections that should have been in r201237.
e8cc587 libclang: fix a crash in clang_disposeDiagnosticSet when it is passed a NULL argument
718ece2 Whitespace cleanup (mostly stray tabs, a few not-quite-empty lines).
2be0fcb ARM & NEON: add test for r101232
a5f2399 ARM NEON: fix range checking on immediates.
a947a5a Don't use find | xargs in test/Modules/fmodules-validate-once-per-build-session.c
d0d5f43 clang/test/Modules/fmodules-validate-once-per-build-session.c: Tweak for gnuwin32 with %/t (instead of %t).
32986cd clang/lib/Driver/Multilib.cpp: Rewrite normalizePathSegment() to be tolerant dosish pathsep.
283e9bc 'svn add' files I forgot for r201224 (Add an option to allow Clang verify source files for a module only once during)
337c8c6 Add an option to allow Clang verify source files for a module only once during the build
a5c3f06 [ARM] Fix NEON wrongly being enabled with soft-float when targeting armv8/Cortex-A53/A57.
82150fd Fix memory leak introduced by r201010.
a60a522 Fix r201205's use-after-free bug caught by sanitizer bot
ddccd4e Add Multilib selection machinery
56c7cf6 Revert 201202
1b6afd8 Add Multilib selection machinery
10dbcf4 MS ABI: vptr injection should obey alignment requirements
a8cb272 Fix build error caused by r201186 (GCC's "declaration of X changes meaning of Y").
15c01b2 Expose the name of the checker producing each diagnostic message.
caf67bf Remove bad debug info test.
a3d14a9 update of the clang version (should probably managed in the configure)
f8c4643 Remove bad debug info test.
69d6b39 MS ABI: Add support for the -vm{b,g,s,m,v} flags
13180c6 Test commit -- Remove an extra newline from Toolchains.cpp
4071089 [Sema] Revert the change in r200622 that allowed integer casts to silence -Wnon-literal-null-conversion in C code.
6bb65c2 'nonnull(1)' on a block parameter should apply to the block's argument.
14c5f77 Rename some PCH-related errors to have 'err_' as their prefix
5d1b349 Fix a typo in the function name that I just introduced (r201155)
f9db0e0 libclang: audit all APIs that accept a CXTranslationUnit to make sure that checks for invalid translation unit are in place.  Also, while there, add log output for this case.
8d47c72 libclang: use namespace qualifiers in the macro, so that it does not require 'using namespace clang::cxindex'.
902dff2 AArch64: share slgihtly more NEON implementation with ARM.
db3db1b XCore target: add section information.
3306764 XCore target: Pass through "-fverbose-asm" flag to xcc assembler.
44e8e23 clang-format: Support lambdas with namespace-qualified return types.
36dc461 clang-format: Fix alignment of comments inside statements.
52b628c AAPCS: Do not split structs after CPRC allocated on stack
4cb28d9 Fix self-hosted -Werror build: delete comma at the end of enumerator list
09f906e Fix PCH deserialization bug with local static symbols being treated as local extern.
d0f476b [analyzer] Inline C++ operator new when c++-inline-allocators is turned on.
3ab3dae [stackprotector] Add command line option -fstack-protector-strong
a980883 [AArch64] Fixed vget/vset_lane_f16 implementation
20a09a6 Tests for DR351-370, plus update DR status page to match the latest core issue list.
3fad241 MS ABI: Add support for #pragma pointers_to_members
4809f9b Basic: Clean up malformed pragma diagnostics
d387ffe PR18777: This PR is already fixed; add regtest.
58ea39d Sema: Remove useless MSStructPragmaOn update in Sema::~Sema
911d926 ARM: move vshll NEON implementation to common code
27ecc4d ARM: implement vshrn NEON intrinsic in terms of shr/trunc
184a6e1 ASTUnit: simplify remapping files by using the exact same logic in Preprocessor
a0b8dd6 Fix Clang install rules to not set permissions on include/
81881ac [CMake] add_clang_library(): Use llvm_add_library.
de8278f PR18685: Ignore class template specializations as potential nested-name-specifiers for typos unless the typo already has a nested-name-specifier that is a template specialization.
884e03f [libclang] While visiting a C++ destructor decl, keep the type identifier associated with the decl, don't turn it into a type ref.
1fc841b Clarify comment. Remove braces from single-statement block.
97e7a03 Improve diagnostic for using non-class/namespace/scoped enum in a nested name specifier.
c809e14 Preprocessor: Add __ALIGNOF_MAX_ALIGN_T__
be9778d PR16519, PR18009: When checking a partial specialization for uses of its own template parameters, don't look for parameters of outer templates. If a problem is found in a default template argument, point the diagnostic at the partial specialization (with a note pointing at the default argument) instead of pointing it at the default argument and leaving it unclear which partial specialization os problematic.
c174fe5 type_info objects are not unnamed_addr: the ABI requires us to unique them and permits the implementation of dynamic_cast (and anything else which knows it's working with a complete class type) to compare their addresses directly.
da8b957 Move the -fms-compatibility using decl check after real access checking
98bbe63 PR18581: Attempt to complete the type in a VLA declaration before checking whether it's POD.
7ac2116 clang-cl: Alias /Zi and /Z7 to -gline-tables-only
746e87d MS ABI: Use the most recent decl to check the inheritance model
a82c1e6 Fix lifetime issue causing buildbot failures.
ec0ca13 Remove the -fhidden-weak-vtables -cc1 option.  It was dead, gross, and increasingly replaced through other mechanisms.
b7f8c7a ASTUnit: remove dead code in remapping files
636e677 [analyzer] Objective-C object literals are always non-nil.
b7142cb PR16638, DR1552: the exception specification on an implicitly-declared 'operator delete' or 'operator delete[]' is an explicit exception specification. Therefore we should diagnose 'void operator delete(void*)' instead of 'void operator delete(void*) noexcept'.
17ef7ef Fold together two repeated identical 'if's.
866f747 Fix test from r200979 on Windows
5ca20f5 Objective-C. Revert patch r193003 for further internal discussions. // rdar://16006401
a167686 Fix test from r200979 on non-Darwin systems
cbf51dd [analyzer] Just silence all warnings coming out of std::basic_string.
499512d Stat system dependencies when using -verify-pch
d95b96f ASTUnit: ArrayRef'ize RemappedFiles
15ac50f clang-format: Fix column limit violation for merged lines in macros.
b8a10f1 Fix AAPCS compliance for HFAs containing doubles and long doubles
7dc61d7 clang-format: Fix range-based for-loop formatting.
13b7d9f Document return value for FileManager::getNoncachedStatValue()
229253a Revert r194097: "With this patch -Wwrite-strings is still implemented with the terrible     hack of passing -fconst-strings to -cc1"
61a09b7 MS ABI: Don't be so hasty to judge an inheritance model
65dd623 Temporary fix for PR18473: Don't try to evaluate the initializer for a type-dependent variable, even if the initializer isn't value-dependent. This happens for ParenListExprs composed of non-value-dependent subexpressions, for instance.
0fe43fb Fixes PR18762, stop the StmtPrinter for ObjCPropertyRefExpr from crashing on certain receiver types.
a17c35c Add isListInitialization matcher.
06524af PR18128: a lambda capture-default is not permitted for a non-local lambda expression.
8bc7719 Use correct ld emulation for EABI hardware float triple on NetBSD.
46cd858 Fix indentation of a code example in LibTooling's documentation.
273ee0f Silence build-bots from the fallout of r200921
847330d Move -verify-pch to use VerifyJobAction
65ad11b Wired-up the new LLVM diagnostic system into clang diagnostic system. The approach is similar to the existing inline-asm reporting, just more general.
704cb95 MS ABI: Handle indirect field decls in template args
595bf5c MS ABI: Tweak pointer-to-member mangling/inheritance model selection
a494d33 check-clang: Introduce the feature "utf8-capable-terminal".
ce4dc26 Allow transformation of VariableArray to ConstantArray.
8eacc54 DR101, PR12770: If a function is declared in the same context as a using-declaration, and they declare the same function (either because the using-declaration is in the same namespace as the declaration it imports, or because they're both extern "C"), they do not conflict.
c957c95 Simplify code by combining ifs.
eebc831 Fix Werror introduced at r200874.
3ec05d9 Fix -Wunused-variable 'FD' by using it instead of ND when they're equal but FD has a more precise type.
e9e34e2 Add a CC1 option -verify-pch
f763bf2 Try to fix ppc bot failure.
6cfa20f Clean up some particularly ugly casting.
f153ec2 Changed OptionCategory variables to be static.
94328b6 PGO: instrumentation based profiling sets function attributes.
cf956c4 MS ABI: Fix mangling of static methods and function references
c1b19f1 Don't consider records with a NULL identifier as a name for typo correction.
a7b48ed Update for llvm api change.
07a5bf3 Remove unused variable to fix -Werror build
9d74e0d MS ABI: Mangle member pointer template arguments
3bb5468 Objective-C driver. Do not use legacy dispatch for 10.5 or less for x86_64 arch. // rdar://15852259
34d8851 Added the hasLoopVariable sub-matcher for forRangeStmt.
e10417d Fix the range for Malayam UCNs in C99.
7d9f0e4 clang-format: Don't indent relative to unary operators.
5d050e5 Make the OptionCategory variable static.
7cc0c9e Fix typo in CastExpr::getCastKindName.
67bd3df Don't mark decls with mismatching exception specs invalid in MS mode (PR18683)
66ad8de Tighten lax vector-conversion rules and enforce them consistently.
2553832 Further simplify r200797 and add an explanatory comment.
1598639 Simplify testcase from r200797 some more.
e4fc27f Debug info: fix a crasher when when emitting debug info for not-yet-completed templated types. getTypeSize() needs a complete type.
6c3521f Clean up whitespace checks
6ee824e Fix whitespace handling in empty macro expansions
b3a4bdd Fix whitespace handling in empty macro arguments
2b307d0 Fix whitespace handling in ## operator
e847967 ARM & AArch64: combine implementation of vcaXYZ intrinsics
1c8a710 [CMake] add_clang_library(): Fix LLVM_PLUGIN_EXT in MODULE. It was broken since my r199902.
bb52a57 [CMake] add_clang_library(): Honor STATIC.
661bb39 Add implicit declarations of allocation functions when looking them up for redeclaration, not just when looking them up for a use -- we need the implicit declaration to appropriately check various properties of them (notably, whether they're deleted).
19b4096 Tidy up and reduce some comment redundancy.
0521261 DebugInfo: Fix for an improvement to DIBuilder to not emit {i32 0} for zero-length arrays.
9f6b296 Fix a -Wmicrosoft warning about an unrepresentable enum value
197a0fc Fix a -Wformat warning in ASTUnit.cpp
fb9e547 PR17846, PR17848: don't build a VarTemplateSpecializationDecl for a use of a variable template until we know what the template arguments actually are.
0090140 [ms-cxxabi] Fix cast when structor replacement is an alias
44ed544 Allow specifying a custom PathDiagnosticConsumer for use with the static analyzer.
ee57e8c Test cases for NetBSD/eARM
0a3d476 ARM: implement support for crypto intrinsics in arm_neon.h
6e65698 AArch64: use new non-polymorphic crypto intrinsics
d60b3ce Fix handling of -fno-function-sections, -fno-data-sections in clang driver.
8673e94 Fix typo 'uusal'.
390feb0 Fix typo in CSS class name.
2917547 Clang 3.4 was released, make the boxes green.
6bab958 Tests for DR331-350.
14be8df Update C++ DR page now 3.4 has been released.
d4acea6 Implement DR329. We already did the right thing here in C++98 mode, but r104014 (which implemented the DR) was disabled in C++11.
74d44b2 Tests for DR321-330.
c1789eb Tests for DR301-320.
853b30a MS ABI: Fix some layout tests
bb8ec69 Handle O32/N64 ABIs for NetBSD/MIPS64. From Matt Thomas.
41177da Replace hasMipsN32ABIArg with hasMipsABIArg in preparation of o32/n64 support.
a5b33da Use a switch for the emulation handling.
2b06324 Handle compat support for EABI/old APCS compatibility on NetBSD/ARM.
55d60b6 Replace hasMipsN32ABIArg by hasMipsABIArg to make it easier to add support for o32 and n64.
4cb2dd7 Pass down -mcpu for external assembler in thumb mode, too. From Matt Thomas.
ae1b7c2 Minor formatting improvement.
91297e4 Test pre-defined macros of aarch64-netbsd.
313170a NetBSD uses signed wchar_t on AArch64. It also wants __LITTLE_ENDIAN__ / __BIG_ENDIAN__ as on other architectures.
80c147c clang-format: Let chromium style inherit google style's javascript tweaks.
10900e2 [CMake] Move cmake_minimum_required(2.8.8) at the top.
492f172 clang/CMakeLists.txt: Untabify.
9f466a1 clang/lib/ASTMatchers/Dynamic/CMakeLists.txt: redundant
b72839f Sema: Reject templates in all extern "C" contexts.
096b70c Report a correct end location for nameless parameters.
930a25a Revert r200555, r200545.
2ba73ad [Sema] Follow-up on r200521 for the -Wnon-literal-null-conversion warning and revert its behavior for C++.
ea9fa6a Fix an assertion failure when building for the iOS simulator. rdar://15959009
f061cea Remove local type use in template.
279292b [ms-cxxabi] Use inalloca on win32 when passing non-trivial C++ objects
e6a9903 [ms-cxxabi] Use x86_cdeclmethodcc for __cdecl methods on win32
ecde7ac [ms-cxxabi] Raise aggregate memptr alignment to 8 for x86_32
974eb1d Fix comment typo in test.
b0a3c5a Track the currently-being-built submodule inside the preprocessor (rather than just storing a flag indicating if there was one), and include it in the 'end of module' annotation. No functionality change.
9936c91 MS Intrin.h: implement __cpuidex and simplify __cpuid
4be869e [CMake] arcmt-test: Reorganize link libraries with *actually referenced* libs from arcmt-test.cpp.
5595d21 Last option on -fexception for arm-disable-ehabi
49d8406 Connect -fno-exceptions to -arm-disable-ehabi
0903447 clang-format: (JavaScript) Don't crash on empty string literals.
2ced440 Add tests for ARM RT library name
9b80314 ARM RT libs with generic name
38c8045 [CMake] clang doesn't care whether CLANG_ENABLE_*(s) were set or not.
729b116 [CMake] Suppress SampleAnalyzerPlugin w/o ENABLE_STATIC_ANALYZER.
75dc0f6 [CMake] Prune stray entries in add_dependencies(). target_link_libraries() implies it.
f2bec4a [sanitizer] update the list of supported platforms in the docs
18aa0b2 ARM & AArch64: unify the rest of the completely shared NEON implementations
75e7564 ARM & AArch64: another block of miscellaneous NEON sharing.
4ee3b82 ARM & AArch64: move shared vld/vst intrinsics to common implementation.
bf2e3b0 ARM & AArch64: more instructions into common block
23ac25e ARM & AArch64: merge another NEON block completely.
cdd2a4b [Sema] For -Wnon-literal-null-conversion warning, look through integer casts, which are used by some projects in their null macro.
8492691 [OPENMP] Bug fixes in threadprivate declaration and data sharing attributes processing. (http://llvm-reviews.chandlerc.com/D2451)
011b53f9 Make x86 Android default target CPUs compatible with GCC (http://llvm-reviews.chandlerc.com/D2655)
96d43c18 libclang/Makefile: Reorder libraries.
8e98a75 Driver: Don't use DOS style paths on UNIX
80c2e6d Fix autolinking when modules are imported in pch files
b680ae8 Introduce Parser::completeExpression.
38a2408 PR14995: Allow a dependent type as the second parameter of operator++ and operator--, since it might instantiate as 'int' (or, if it's a pack, it might instantiate as an empty pack).
e3732a5 Don't produce a 'returning reference to local' warning if a lambda returns a reference (or pointer) to a variable from the closure object or from the surrounding function scope.
faa90ea Revert "Fix assertion failures on annot_* tokens in clang -E"
2364b44 Fix assertion failures on annot_* tokens in clang -E
4808677 ARM & AArch64: extend shared NEON implementation to first block.
a828992 ARM & AArch64: fully share NEON implementation of permutation intrinsics
5b6a99b ARM & AArch64: share the BI__builtin_neon enum defs.
77730d1 clang-format: Support ObjC's NS_ENUMs.
9d95eaa Update debugging visualizers section.
507d1f4 SPARCv9 supports atomic operations up to 64 bits.
61aa432 Diagnose typedef names for linkage purposes that would change a previously-computed linkage as an unsupportable error condition.
b2a07a3 Actually test that the local static variable from my test in r200380 gets linkonce_odr linkage.
6db65c1 Use an Itanium triple in DWARF debug info tests
8ed2255 Objective-C [IRGen]. Generator a tail call to objc_getProperty() in synthesized getters for performance improvement. // rdar://15884113
4403dcd Consolidating several table-generated files containing parser-related string switches into a single file. This reduces build-related complexity by replacing four separate projects (and table-gen instantiations) with a single one.
2a0497a Sema: Diagnose improper application of inheritance keywords
7a42b84 clang-format: More custom option fixes for protocol buffer files.
343fc1b clang-format: Fix formatting of custom proto options.
08914eb Cortex-M3 and Cortex-M4 should not enable hwdiv-arm (committing again, with an updated test)
b7bf331 Fix crash on unmatched #endif's.
44f56e4 Short-circuit a couple of queries (and avoid corrupting the linkage cache) when type-checking static local variables.
4e88652 Extensively comment bitfield layout, rearrange some code for legibility, and fix a bug with bitfields in packed ms_structs.
87a33de clang-cl: Better error message when trying to compile stdin (PR18640)
9124a4b Fixing PR18430 by checking that the size of bitfields plus padding does not grow into the following virtual base.
2ca8d0c A new conversion warning for when an Objective-C object literal is implicitly cast into a boolean true value.  This warning will catch code like:
29ab168 Intrin.h: include setjmp.h to get a jmp_buf definition
828f790 Intrin.h: implement __rdtsc and __halt
8549ec2 Objective-C. Fixes a bug where "new" family attribute was not being overridden in the category method implementation resulting in bogus warning. // rdar://15919775
7c447ca Objective-C. provide legacy encoding of *id and *Class types instead of crashing.  // rdar://15824769.
a5eec9b clang-format: Understand __attribute__s preceding parameter lists.
27e9012 clang-format: Fix option formatting in protocol buffer files.

git-subtree-dir: llvm/tools/clang
git-subtree-split: 06c8a76a0fa106e08fcb876b246a69c223af1629
Merge with Clang.
Squashed 'llvm/tools/lldb/' changes from 791b2ed..34b4ab8

34b4ab8 Restore the ability of SBFrame::FindValue() to look for file global variables This should clean up the new test failures caused by r201614
72b3685 Treat 'amd64' as 'x86_64' as done for other tests
22aa525 FreeBSD hardware watchpoint implementation
bce6efd Update decorator for test that still fails with FreeBSD Watchpoint support
0141200 Track Clang virtualFileSystem change (r201618)
d68c19c Initial patch for supporting Hexagon DSP
5f9b06a Re-apply r201292.  We're not going to enforce proper stack frame alignment on i386/x86_64 because there are too many trap handlers that will have an improperly aligned caller sp and this will cause the unwinder to stop too early.
b767b98 <rdar://problem/15906684>
61be5f7 <rdar://problem/15960553>
d63f07d Also recognize interrupt as a possible trap handler name.
9216137 Add two additional trap handler names for PlatformDarwinKernel. <rdar://problem/15246793>
d688282 Eliminate kernel warning when running tests on FreeBSD
5edaca9 Make sure we don't try to print the SystemExit exception, or we will cause the containing process to exit() from under us
3d802ff Move the libpanel dependency into the Libraries project folder.
9ff7f1c Convert to codesigning by hand to work around bugs in Xcode cert verification.
2bdc2f6 elf-core: support 32- and 64-bit x86 registers
f0b2891 Properly report when a struct is anonymous.
c956b55 Replaced custom variable arguments to standard library for correcting 64 bit Windows build
078b886 Fix Windows build, broken by the inclusion of sys/ioctl.h and isatty()
e6bc647 Fix the LLDB prompt for older Editline versions, specifically running on Ubuntu 12.04
d1035f5 Remove nativecodegen as it forces the native target libraries to be linked in regardless of whether the target was specified in LLVM_TARGETS_TO_BUILD
2003884 elf-core: Plug latent memory leak
cce935a Simplify core file register context handling
8c60263 <rdar://problem/16006373>
becfc09 Add some additional logging to the Mac OS X SystemRuntime.  Fix a bug where lldb could free an inferior's vm_page.
3a047d9 Allow FreeBSD/i386 core files to be loaded
10c651b Correct offset calculation for FreeBSD i386 core NT_PRSTATUS
b11047a Adjust logging test case after r201372
b52b2df0 Update decorators for tests that still fail with FreeBSD Watchpoint support
d8f5ee9 Fix minor build warning on Mac OS X x86_64.
42d2f2c Add a new target setting, trap-handler-names, where a user can specify a list of functions which should be treated as trap handlers. This will be primarily useful to people working in non-user-level process debugging - kernels and other standalone environments. For most people, the trap handler functions provided by the Platform plugin will be sufficient.
1ac1fbb Fixed deadlocks that could occur when using python for breakpoints, operating system plugins, and other async python usage.
342a4fa Revert r201292 which relaxed the stack frame alignment requirements. This was primarily working around problems where we weren't able to identify trap handlers for different environments -- but instead, I'm working to make it easier to specify those trap handler function names.
06f46ec Change the way the m_trap_handlers Platform base class ivar is initialized; add a new pure virtual CalculateTrapHandlerSymbolNames() that Platform subclasses must implement which fills in the function name list with any trap handlers that are expected on that platform.
83cd384 Re-enable TestAbbreviations.py on Linux after test fix.
6239cf8 Fixed a test suite failure on Darwin due to logging issues.
839d11d Avoid undesired variable shadowing
ca77c87 The Platform base class now maintains a list of trap handlers aka asynchronous signal handlers, which subclasses should fill in as appropriate.  For most Unix user process environments, the one entry in this list is _sigtramp.  For bare-board and kernel environments, there will be different sets of trap handlers.
8acf405 Change the ABI CallFrameAddressIsValid methods for i386 and x86_64. They were enforcing 16-byte alignment on stack frames for Darwin x86 programs. But we've found that trap handlers typically don't have the stack pointer aligned correctly when a trap happens and lldb wasn't backtracing all the way through.  This method is only used as a safety guard to prevent lldb's unwinder from using a bogus address as a stack frame - we'll still enforce word-size alignment on stack frames so that should be fine.
6863aaf Remove decorator for fixed test
975f094 Fixed the TestLogging test.
c2dd342 Fixed the functionalities/abbreviation/TestAbbreviations.py test case.
62dbdcc Add support for DW_OP_piece and DW_OP_bit_piece.
c8f37fc Change TestAbbreviations test to expected failure on Linux.
489a0ca Fix elf core file VMA-contiguous region collapsing.
931e3bd Avoid leaking namebuf in case of an early exit
c707112 Fix cmake compilation on Mac OS X.
acc8f4b When a multiline expression produces output, the multi-line help message is printed twice.
b6c32d4 Remove decorator for llvm.org/pr17233
2f47456 Remove FreeBSD decorator for llvm.org/pr17499 (no longer fails)
d489788 Remove decorators for llvm.org/pr17920 fixed by r200646
1fb131a Update decorator for FreeBSD failure pr18066
7f6127a Don’t leak memory when reading memory and we do an early return for error conditions.
108d395 Add decorator for llvm.org/pr18805 until root cause is identified
e3dc46f Change RNBRemote::HandlePacket_m() to store the packet on the heap instead of on the stack.  Handles larger packet read requests better.
6947816 Adjust the calls to __introspection_dispatch_thread_get_item_info to use a system-wide unique thread ID instead of a pthread_t to identify the thread we want debug info for.  Also, free some more memory regions that needed to be freed.
f1d02fb <rdar://problem/15996848>
1527a3a Host: unconstify editline paramters
456d4dd hostname is guarantee to never be null in this branch.
5fba7a4 Fix null dereference if address is NULL.
06848be Only set EL_PROMPT_ESC when existing - fix typo
13ed0e8 Only set EL_PROMPT_ESC when existing
797b0a0 Added a test case for variables in registers, with clang -O1.
3478958 Modified ObjectFile::SetLoadAddress() to now be:
74be1bd Now that the command interpreter runs in a separate thread in Xcode, we need to lock the target API lock instead of trying to lock it.
04e3ae4 <rdar://problem/12857181>
13337b0 Add conditional breakpoints to our cheat sheet
d4f34b8 When writing data back into a register, accept values whose size differs from the register's size.
d089cbb Fix a bug where we will crash if we have a class "B" that is contained inside a class "A" in the DWARF where "A" is a forward declaration.
dc94519 rdar://15648942
938c3c5 Lock the JIT before using it.
694b8c4 Removed spurious lookup of the $__lldb_expr selector when compiling an expression in an Objective-C context.
4a3bcc1 Implement ObjectFileMachO::SetLoadAddress().
a1f0d33 Factor some methods that were in DynamicLoaderPOSIXDYLD.
9f9f221 The "-n" and "-p" options to the lldb driver no longer worked after recent IOHandler changes, this is now fixed.
6b5222f Don't print out "script" results twice.
f40f5a1 An example summary provider for PyObject and the LLDB wrapper PythonObject hierarchy - this would have probably helped track down those refcount bugs..
b974977 Fix the --source-quietly option to the driver so that it actually works.  Clean up the help output a bit.
d92e891 Fixed output to display correctly for "command source" by fixing the correct flags being set.
649cf2e Enable lldb-gdbserver for FreeBSD in the (g)make build
792c1ac Enable lldb-gdbserver on Linux as well in the cmake build
d741fdd Remove leftover debug printf
9cb4646 Build lldb-gdbserver on FreeBSD
19443b3 Fixed an issue where "command source" would not do the right thing: - empty lines in init files would repeat previous command and cause errors to be displayed - all options to control showing the command, its output, if it should stop on error or continue, weren't being obeyed.
1e4adc5 Fixed indentation.
8e410f7 Change the Mac OS X SystemRuntime plugin from using the placeholder libldi library to collect extended backtrace information; switch to the libBacktraceRecording library and its APIs.  Complete the work of adding QueueItems to Queues and allow for the QueueItems to be interrogated about their extended backtraces in turn.
7929ed9 <rdar://problem/15936507>
6bab811 Update URL for OS X buildbot
3cc1a74 If setgid fails for any reason, exit lldb.
00dad8f LLDB exits the command interpreter and thus LLDB when using a pty or file as the input handle and a blank line is entered (like when running under emacs). This is now fixed.
d099616 Avoid accessing an element of an empty vector in a log message
96fd68a If we fail to attach, return an error rather than returning the success or failure of sending the error packet.
c37277b Fix UnwindAssembly memory leak by defining and using a shared UnwindAssemblySP type.
89fad2f <rdar://problem/15154623>
99a5990 Remove failure decorators for FreeBSD bug
925fdfb Update header comment to match filename
b8ff0a4 Use libc++ on FreeBSD as on Darwin
c2cb7bb Remove commented includes
901a7f8 Fix for failure to unwind Linux stack frames with call in final position.
f264efb Fixing the Windows build for the changes brought in from the iohandler merge.
830bad8 Add libs needed by iohandler merge to Makefile for FreeBSD
d0ecd1f Check curr_thread is not empty before accessing it.
3ab8c37 Pressing ^D in a non-empty input terminates LLDB. This was due to the fact that we stack more than one editline instance on top of each other and we still expect CTRL+D to exit the editline instance, but it should only do so when the line is empty. Otherwise it should (and does) delete the character at the cursor.
5a47e81 Fixed b18655: cleaned up script interpreter file reference handling.
09948a4 Missing files for previous checkin that fixed: "script help (lldb.SBThread)" output stops after 2048 bytes are printed.
f0a529d "script help (lldb.SBThread)" output stops before all output is displayed. Fixed now.
7dd8a37 <rdar://problem/15936507>
adc46e7 Don't crash when trying to auto complete 'breakpoint set -n "_'
27af31e Show help dialog the first time the "gui" is run to help users find their way.

git-subtree-dir: llvm/tools/lldb
git-subtree-split: 34b4ab872cfc697f6b4547ce371cc228f4f6ea0b
Merge commit '566c36d7417ca17c9c05834fd8c774577ce9b255' into overhaul
Merge with Clang.
Merge with LLVM/Clang trunk.