Squashed 'llvm/' changes from 2a25daa..61e341e

61e341e [mips][mips64r6] Add Relocations R_MIPS_PCHI16, R_MIPS_PCLO16 Differential Revision: http://reviews.llvm.org/D3860
87d192b [ARM] Emit correct build attributes for the relocation models.
f774490 [mips][mips64r6] Add relocations R_MIPS_PC21_S2, R_MIPS_PC26_S2 Differential Revision: http://reviews.llvm.org/D3824
18b6fb9 [asancov] Emit an initializer passing number of coverage code locations in each module.
c74a70d AArch64: implement copies to/from NZCV as a last ditch effort.
e43c502 ARM: teach AAPCS-VFP to deal with Cortex-M4.
ae85c73 Fix bad assert.
9bbb406 AArch64: support 'c' and 'n' inline asm modifiers.
f31b009b Adding testcase for PR18886.
c5f6114 Convert some X86 blendv* intrinsics into IR.
b84ced6 Fix link.
ce5ddba Use existing helper function.
f2928b9 [PPC] Use alias symbols in address computation.
e0c2787 AArch64: force i1 to be zero-extended at an ABI boundary.
4146695 AArch64: simplify calling conventions slightly.
90e79a5 Some cleanup for r209568.
1322e99 Convert a few loops to use ranges.
7aac65d [AArch64] Add store + add folding regression tests for the load/store optimization pass.
3390e6c [AArch64] Add more regression tests for the load/store optimization pass.
3d150e0 [asan] decrease asan-instrumentation-with-call-threshold from 10000 to 7000, see PR17409
29682f4 AArch64: remove empty ARM64 directories from svn.
852c0cc Remove accidentally committed whitespace.
47e3b43 [AArch64] Add a regression test for the load store optimizer.
866ed7f Make the LoopRotate pass's maximum header size configurable both programmatically and via the command line, mirroring similar functionality in LoopUnroll.  In situations where clients used custom unrolling thresholds, their intent could previously be foiled by LoopRotate having a hardcoded threshold.
bcc9692 DebugInfo: Test linkonce-odr functions under LTO.
041b4ab DwarfUnit: Remove some misleading no-op code introduced in r204162.
524b883 Just check the entire string.
a1b1165 Reformat linefeeds.
a9b0742 Trailing whitespace.
d29bdc7 tools: avoid use of std::function
b6a667f tools: split out Win64EHDumper from COFFDumper
53046f3 tools: inline simple single-use function
ec944ce tools: refactor COFFDumper symbol resolution logic
12d17f4 tools: use references rather than out pointers in COFFDumper
cec3724 DebugInfo: Fix inlining with #file directives a little harder
7e79a35 Streamline test case by avoiding a temporary file and piping llc output straight to llvm-dwarfdump
c385367 Emit data or code export directives based on the type.
fba226f Make these CHECKs a bit more strict.
62692b4 Add an extension point for peephole optimizers.
68b0d1d Fix some misplaced spaces around 'override'
11d505b build: sort llvm-readobj sources
a054d53 llvm-readobj: remove some dead code
0fc4125 AArch64: disable FastISel for large code model.
c734d38 MachineVerifier: Clean up some syntactic weirdness left behind by find&replace.
9d934ac CodeGen: Make MachineBasicBlock::back skip to the beginning of the last bundle.
29f94c7 AArch64/ARM64: move ARM64 into AArch64's place
9105f66 AArch64/ARM64: remove AArch64 from tree prior to renaming ARM64.
4ca8b0b llvm/test/Object/ar-error.test: Don't check the message "No such file or directory".
45788be Implement sext(C1 + C2*X) --> sext(C1) + sext(C2*X) and sext{C1,+,C2} --> sext(C1) + sext{0,+,C2} transformation in Scalar Evolution.
6a04ef9 ARM64: extract a 32-bit subreg when selecting an inreg extend
1288a3b DebugInfo: Generalize some tests to handle variations in attribute ordering.
3b39845 DebugInfo: Generalize a test case to not depend on abbreviation numbering.
7ce3a72 Test case comments. Fix sloppiness.
ef3a12f clang-format function.
0d4e85d Remove a confusing use of a static method.
ae13f23 DebugInfo: Put concrete definitions referencing abstract definitions in the same scope as the abstract definition.
ab0d042 Fix and improve SCEV ComputeBackedgeTankCount.
8b8e384 Revert part of "Fix broken FileCheck prefixes"
ef72e73 Use alias linkage and visibility to decide tls access mode.
b165140 Remove unused CHECK lines
a739ea3 Fix broken FileCheck prefixes
8d959dd Add the extracted constant offset using GEP
bb75e24 [RuntimeDyld] Remove relocation bounds check introduced in r208375 (MachO only).
bd62a7a Add FIXME comment based on code review feedback by Hal Finkel on r209338
c3be377 Convert test to use FileCheck.
2bd2c56 Teach the table generated emitPseudoExpansionLowering function to not emit a switch statement containing only a default statement (and no cases). Updated some of the code to use range-based for loops as well. No functional changes.
a4df7d4 Aliases are always definition, delete dead code.
dc3ce83 Delete dead code.
b3fa233 [mips] Work around inconsistency in llvm-mc's placement of fixup markers
ff87630 [mips][mips64r6] t(eq|ge|lt|ne)i and t(ge|lt)iu are not available in MIPS32r6/MIPS64r6
36b0fd5 [mips][mips64r6] [ls][dw][lr] are not available in MIPS32r6/MIPS64r6
f2938bf [asan] properly instrument memory accesses that have small alignment (smaller than min(8,size)) by making two checks instead of one. This may slowdown some cases, e.g. long long on 32-bit or wide loads produced after loop unrolling. The benefit is higher sencitivity.
4f22c98 Updated the llvm.mem.parallel_loop_access semantics to include the possibility to have only some of the loop's memory instructions be annotated and still _help_ the loop carried dependence analysis.
fa16c88 Fixup sys::getHostCPUFeatures crypto names so it doesn't clash with kernel headers
84a0dc3 [YAML] Add an optional argument `EnumMask` to the `yaml::IO::bitSetCase()`.
7a0a087 Typedef NumeredTypesMapTy is not used anywhere.
cfce940 Test commit.
f97e200 llvm-ar: Output the file we errored on.
1ed412c Rename a couple of variables to be more accurate.
e4dfe5d DebugInfo: Fix cross-CU references for scopes (and variables within those scopes) in abstract definitions of cross-CU inlined functions
df9a782 MC: remove unnecessary restriction on tests
d7689b6 [ARM64] Fix a bug in shuffle vector lowering to generate corect vext ISD with swapped input vectors.
0e93fa9 Attempt to placate compilers that warn on casts between pointer-to-object and pointer-to-function types.
e318ce6 ScalarEvolution: Fix handling of AddRecs in isKnownPredicate
c86ebbd [Graph Writer] Limit the length of the graph name because Windows can't handle it.
ef518f1 Make these bool bitfields.
8f33e4c [RuntimeDyld] Teach RuntimeDyldMachO how to handle scattered VANILLA relocs on i386.
ff93350 Update some AliasAnalysis pass docs for getAdjustedAnalysisPointer.
fed4bab R600: Add definition for flat address space ID.
3c698f3 R600: Try to convert BFE back to standard bit ops when possible.
e3ed404 R600: Add dag combine for BFE
7e12b82 R600: Implement ComputeNumSignBitsForTargetNode for BFE
9859540 R600: Implement computeMaskedBitsForTargetNode for BFE
cb0402e R600: Expand mul24 for GPUs without it
21851f9 R600: Expand mad24 for GPUs without it
f49da43 R600: Add intrinsics for mad24
bd0283a Return false if we're not going to do anything.
351c658 R600/SI: Move instruction pattern to instruction definition
c647710 Remove LLVMContextImpl::optimizationRemarkEnabledFor.
3957d42 [X86] Improve the lowering of BITCAST from MVT::f64 to MVT::v4i16/MVT::v8i8.
634d64e ARM64: remove '#' from annotation of add/sub immediate
d16404a Add support for missed and analysis optimization remarks.
de70176 Segmented stacks: omit __morestack call when there's no frame.
65ea1ad ARM64: these work too
213f915 Yes they do
369e565 ARM64: model pre/post-indexed operations properly.
e072ed7 ARM64: separate load/store operands to simplify assembler
b08e038 [mips] Make unalignedload.ll test stricter and easier to modify for MIPS32r6/MIPS64r6
98eba92 [mips] Change lwl and lwr in inlineasm_constraint.ll to lw
8afb08e [mips] Use addiu in inline assembly tests since addi is not available in all ISA's
00011c7 Extend sys::getHostCPUFeatures to work on AArch64 platforms
e3ece90 [mips][mips64r6] addi is not available on MIPS32r6/MIPS64r6
5f45ba1 [mips][mips64r6] Test that paired single instructions are invalid
c96096c [mips][mips64r6] Add b[on]vc
2447dcc ARM64: assert if we see i64 -> i64 extend in the DAG.
de9e4c8 AArch64/ARM64: enable more AArch64 tests.
327edb4 MC: initialise MCAsmParser variable
9c553cf Remove unused variable.
71ce211 ARM: introduce llvm.arm.undefined intrinsic
bce7d05 R600/SI: Match fp_to_uint / uint_to_fp for f64
f4f930c MC: formalise some assertions into proper errors
424bbbb Override runOnMachineFunction for ARMISelDAGToDAG so that we can reset the subtarget on each function.
c5f6f15 Override runOnMachineFunction for X86ISelDAGToDAG so that we can reset the subtarget on each function.
26bbeec Avoid using subtarget features when adding X86 specific passes to the pass pipeline.
1e264de Remove extra local variable.
42854e5 Rename createGlobalBaseRegPass -> createX86GlobalBaseRegPass to make it obvious that it's a target specific pass.
4551b0a Fix typo.
6ccae2d Avoid using subtarget features when initializing the pass pipeline on PPC.
58d9172 Reset the subtarget for DAGToDAG on every iteration of runOnMachineFunction. This required updating the generated functions and TD file accordingly to be pointers rather than const references.
162180c Reset the subtarget for DAGToDAG on every iteration of runOnMachineFunction.
14fb9b6 Sort includes.
b1a3b17 DebugInfo: Simplify dead variable collection slightly.
facca6e Fix a bug in SCEV's backedge taken count computation from my prior fix in Jan.
107db21 Similar to bitcast, treat addrspacecast as a foldable operand.
a2f371b Fix compilation issues.
189fe78 Make early if conversion dependent upon the subtarget and add a subtarget hook to enable. Unconditionally add to the pass pipeline for targets that might want to use it. No functional change.
595bdb7 Group the scheduling functions together.
8a0240d Revert "DebugInfo: Don't put fission type units in comdat sections."
cba7ac7 MC: correct IMAGE_REL_ARM_MOV32T relocation emission
159ccc8 MC: introduce ability to restrict recorded relocations
111bad3 DebugInfo: Use the SPMap to find the parent CU of inlined functions as they may not be in the current CU
afd1747 R600: Add comment describing problems with LowerConstantInitializer
bd124c8 R600: Partially fix constant initializers for structs and vectors.
713096f R600: Add failing testcases for constant initializers.
5fe59a2 Remove getTargetLowering from TargetPassConfig as the target lowering can change depending upon subtarget/subtarget features for a function.
9bfc3f5 Remove unused member variable from hexagon pass.
3043645 DebugInfo: Ensure concrete out of line variables from inlined functions reference their abstract origins.
fd0096a [X86] Fix a bug in the lowering of BLENDI introduced in r209043. ISD::VSELECT mask uses 1 to identify the first argument and 0 to identify the second argument. On the other hand, BLENDI uses 0 to identify the first argument and 1 to identify the second argument. Fix the generation of the blend mask to account for this difference.
d1b5bda Move MCOptions that aren't shared between programs into their specific program and have them initialize the MCOptions struct explicitly.
9a37986 Make a couple of command lines static and remove an unnecessary initialization.
c10a1ed DebugInfo: Simplify subprogram declaration creation/references and accidentally refix PR11300.
4932377 Use cast<> instead of unchecked dyn_cast
5dd4b9f MC: loosen an overzealous assertion
03b003b Use llvm-lit if LLVM source tree is unavailable.
c12c3d0 Test comment commit.
8208615 [mips][mips64r6] Add bc[12](eq|ne)z
3046dcb [asm matcher] Fix incorrect assertion when there are exactly 32 SubtargetFeatures
c0e6693 [asan] Fix x86-32 asm instrumentation to preserve flags.
8235ed1 MC: mark COFF .drectve section as REMOVE
651f680 [modules] Add module maps for LLVM. These are not quite ready for prime-time yet, but only a few more Clang patches need to land. (I have 'ninja check' passing locally.)
91bbc25 ARM: correct bundle generation for MOV32T relocations
e648d75 This command line option is only used in one place. Move it there and rename it to something more descriptive.
1102603 Add a comment here.
3d5f46b Move this test to the backend from the frontend.
4f6d26d Move the verbose asm option to be part of the options struct and set appropriately.
b38059a Update MachOObjectFile::getSymbolAddress so it returns UnknownAddressOrSize for undefined symbols, so it matches what COFFObjectFile::getSymbolAddress does.  This allows llvm-nm to print spaces instead of 0’s for the value of undefined symbols in Mach-O files.
acf6215 Fix test added in r209242: llc shouldn't create files in source tree
ed3abe4 Revert "DebugInfo: Assume all subprogram DIEs have been created before any abstract subprograms are constructed."
adf1668 [ARM64] PR19792: Fix cycle in DAG after performPostLD1Combine
e94103a Unbreak the sanitizer buildbots after r209226 due to SROA issue described in http://reviews.llvm.org/D3714
6a9366c Move the function and data section flags into the options struct and make the functions to set them non-static. Move and rename the llvm specific backend options to avoid conflicting with the clang option.
95aa960 Revert r209235 as it broke two tests: Failing Tests (2): 	    LLVM :: ExecutionEngine/MCJIT/stubs-sm-pic.ll 	    LLVM :: ExecutionEngine/MCJIT/stubs.ll
e3f7456 Update MachOObjectFile::getSymbolAddress so it returns UnknownAddressOrSize for undefined symbols.  Allowing llvm-nm to print spaces instead of 0’s for the value of undefined symbols in Mach-O files.
50d4008 [LSR] Canonicalize reg1 + ... + regN into reg1 + ... + 1*regN.
8598e29 GlobalValue: Automatically reset visibility when setting local linkage
1e3493b Fix test breakage introduced in r209223.
447a7ce Rewrite calculateDbgValueHistory to make it (hopefully) more transparent.
e2ab467 PR19767: DebugInfo emission of pointer constants.
5d7afdb Avoids DCE on write_register
c9b12d0 [PowerPC] PR19796: Also match ISD::TargetConstant in isIntS16Immediate
68c7a1c Clean up language and grammar.
2bb4634 Temporarily revert: r209129 - [mips][mips64r6] Sorted *_ENC, *_DESC classes and tests
bdc6a7a [ARM64] Port basic-a64-diagnostics.s over to ARM64
ee8d5c3 TableGen: permit non-leaf ComplexPattern uses
57a98ba Add parentheses to suppress the gcc warning '-Wparentheses'.
51af588 Legalizer: Make bswap promotion safe for vectors.
6943f62 [Mips] Add more relocation types and MIPS specific e_flags constants.
6099306 ARMEB: Additional test files for ARM fixups
c9ff20e TableGen: convert InstAlias's Emit bit to an int.
0d0bab5 [X86] Tune LEA usage for Silvermont
6f242c9 [LV][REFACTOR] One more tiny fix for printing debug locations in loop vectorizer. Now consistent with the remarks emitter.
daf56d6 llvm-readobj: use range-based for loop
4bf804f Teach isKnownNonNull that a nonnull return is not null. Add a test for this case as well as the case of a nonnull attribute (already handled but not tested).
956583e DebugInfo: Emit function definitions within their namespace scope.
53d560e Follow up to 209187, updating a test to use FileCheck. Needed to ignore an extra DW_TAG_class_type
825920d Update test/DebugInfo/2010-04-06-NestedFnDbgInfo.ll to use FileCheck.
fe47ebf Add 'nonnull', a new parameter and return attribute which indicates that the pointer is not null. Instcombine will elide comparisons between these and null. Patch by Luqman Aden!
30e5830 LTO: Add a testcase for linking modules with incompatible Debug Info Versions. rdar://problem/16926122
dce55ec OK, NAKAMURA Takumi beat me to this change.  So backing out my addition of llvm-size to the list so it only has one.  Sorry for the noise.
d8d50e7 David Blaikie pointed out that the test added in r209158 fails in the check-llvm target under CMake.  And the test/CMakeFiles.txt needs to have llvm-size added to the list.
c108a06 DebugInfo: Assume all subprogram DIEs have been created before any abstract subprograms are constructed.
e267439 [CMake] Add llvm-size to check-llvm, to fix build since r209158.
e55ae5f [ARM64] Adds Cortex-A53 scheduling support for vector load/store post. Patch by Dave Estes<cestes@codeaurora.org>! PR19761 http://reviews.llvm.org/D3829
f5d9170 Remove unused method declaration
df0d63d Add documentation for llvm-dwarfdump tool
76f1938 DebugInfo: Don't include DW_AT_inline on each abstract definition multiple times.
df29a10 DebugInfo: Fix missing inlined_subroutines caused by r208748.
b39cae9 Fix typos.
37b0592 cmake: Remove -D NDEBUG from CFLAGS as well as CXXFLAGS
2f8bca0 [ConstantHoisting][X86] Change the cost model to never hoist constants for types larger than i128.
8e4a223 [X86] Add ISel patterns to improve the selection of TZCNT and LZCNT.
86ad7b7 Implement MachOObjectFile::isSectionData() and MachOObjectFile::isSectionBSS so that llvm-size will total up all the sections in the Berkeley format.  This allows for rough categorizations for Mach-O sections.  And allows the total of llvm-size’s Berkeley and System V formats to be the same.
ca162fa Added more insertps optimizations
861e2ef Fix testers by removing dubious testcase for r209154.
b96f71f [RuntimeDyld] Fix x86-64 MachO GOT relocation handling.
8ad418b Kill symbolization functionality in llvm-dwarfdump. We have llvm-symbolizer for that.
20a6a27 Check the alwaysinline attribute on the call as well as on the caller.
234227f Use range for
9bb7f7c reverting r209132
c933013 MemoryBuffer: Use GetNativeSystemInfo()
b90ef82 Revert "Patch for function cloning to inline all blocks whose address is taken" as it was causing build failures in ruby.
07df0ca [ARM64] Split tbz/tbnz into W/X register variant
3f19ce8 Hexagon: Add encoding bits to the mpy instructions.
78886be [mips][mips64r6] Sorted *_ENC, *_DESC classes and tests
50d09f1 Resolving MSVC warnings about switch statements with a default label, but no case labels. No functional changes intended.
29e068b Flip on vectorization of bswap intrinsics.
bb81d9d SDAG: Legalize vector BSWAP into a shuffle if the shuffle is legal but the bswap not.
306cd28 Added inst-combine for 'MIN(MIN(A, 97), 23)' and 'MAX(MAX(A, 23), 97)'
cb596ba Change the blend tests to AVX, not AVX2.
6f1b92a Reformat blank lines.
14c7036 Whitespace.
6ec9505 Remove last uses of OwningPtr from llvm. As far as I can tell these method versions are not used by lldb, lld, or clang.
677564f Use std::unique_ptr instead of OwningPtr in the MemoryBuffer unittests.
1cc4e8a ARM: make libcall setup more table driven
aad181f Options: Use erase_if to remove Args from the list.
bf3e78f ARM: improve WoA ABI conformance for frame register
4da07c2 ARM: consolidate frame pointer register knowledge
82b1114 Target: remove old constructors for CallLoweringInfo
a2b20f9 Target: add support to build CallLoweringInfo
d825568 Target: change member from reference to pointer
a53c765 ARM: whitespace
c86235f Use create methods since msvc doesn't handle delegating constructors.
e7a6c2f Handle ConstantAggregateZero when upgrading global_ctors.
fbd8cc0 Reduce abuse of default values in the GlobalAlias constructor.
a2f8219 Revert r209049 and r209065, "Add support for combining GEPs across PHI nodes"
41a6378 MachO: Add comments describing section flags/attrs
7af8e0d2 Fix for sanitizer crash introduced in r209049
575fc08 Target: Replace getSection().empty() with hasSection()
3395f5f test: fix copy-paste mistake
563fca4 ARM: use the proper target object format for WoA
2ff4a49 [x86] Fix a bad predicate I spotted by inspection -- pshufhw and pshuflw were added in SSE2, no SSSE3. Found this while auditing all uses of SSSE3 in the X86 target. I don't actually expect this to make a significant difference on anything and I don't have any detailed test cases but I updated the existing test cases that already covered some of this code path.
bf6e3f9 [DWARF parser] Teach DIContext to fetch short (non-linkage) function names for a given address.
2d1fa5f Add support for combining GEPs across PHI nodes
70f8b47 Use a sized enum for MachineOperandType.  No functionality change
31c8059 Added tests for the cost of lowering VSELECT instructions.
d77c1c4 Implemented special cases for PerformVSELECTCombine.
5ea7215 Lower vselects into X86ISD::BLENDI when appropriate.
38cbea8 Implemented LowerVSELECT to custom lower some instructions.
ad6d7f5 Delete getAliasedGlobal.
b3e1897 DebugInfo: Assert rather than conditionalizing when a CU's subprogram list contains declarations.
e792969 DebugInfo: Handle emitting constants of C++ unicode character type.
17200e3 R600/SI: Refactor the VOP3_32 tablegen class
9d99d7a R600/SI: Add a PredicateControl class for managing TableGen predicates
9b24e0c R600/SI: Move tablegen patterns away from instruction defs
1c073c3 R600/SI: Remove unused instruction
3bd63cd R600/SI: Promote f32 SELECT to i32
03b9620 R600/SI: Remove duplicate pattern
1ce3088 Add comdat key field to llvm.global_ctors and llvm.global_dtors
dedd620 Fix a warning in builds without asserts.
0c2d969 DebugInfo: Add an assert regarding the subprogram in the subprogram map matching the abstract subprogram.
27c076a Fix most of PR10367.
33b37c7 DebugInfo: Assume the CU's Subprogram list only contains definitions.
117b038 [ARM64] Increases the Sched Model accuracy for Cortex-A53. Patch by Dave Estes <cestes@codeaurora.org> http://reviews.llvm.org/D3769
3258443 InstSimplify: Improve handling of ashr/lshr
7a2ed26 InstSimplify: Optimize using dividend in sdiv
18fc327 [ARM64] Fix wrong comment in load/store optimization pass.
54978b3 DwarfDebug: Refactor AT_ranges/AT_high_pc+AT_low_pc emission into helper function.
19ab8f8 [yaml2obj][ELF] Add an optional `Size` field to the YAML section declaration.
b32cee5 Re-enable inline memcpy expansion for Thumb1.
74c8558 Small dyn_cast and auto cleanup.
40ae57c Fix the Load/Store optimization pass to work with Thumb1.
2c9f8a7 Enable the Load/Store optimization pass for Thumb1 but make it return immediately for now.
bdbf5af Fix a few comment typos and style issues.
fadf07b [mips][mips64r6] Add SELEQZ and SELNEZ instructions Differential Revision: http://reviews.llvm.org/D3743
ab67b30 Change the GlobalAlias constructor to look a bit more like GlobalVariable.
b95580a [mips][mips64r6] Add Compact indexed jumps.
0d356ec Fix hardcoded slash to native path seperator which was exposed from llvm::sys::path.
21cfede Revert "Implement global merge optimization for global variables."
2b3ef61 [mips][mips64r6] Add Compact zero-compare branch-and-link instructions
75d44de MergeFunctions Pass, introduced total ordering among GEP operations.
b5ce464 MC: Add DwarfTypesDWOSection also to MCCOFF.
b8c3bcb [mips][mips64r6] Add  compact branch instructions Differential Revision: http://reviews.llvm.org/D3691
0885a28 MergeFunctions Pass, introduced total ordering among operations.
e4dfc19 [mips][mips64r6] Add LWPC and LWUPC instructions
5f32c76 [mips][mips64r6] Add Floating Point Compare setting Mask - CMP.condn.fmt Differential Revision: http://reviews.llvm.org/D3750
a9a94ce TableGen: fix operand counting for aliases
fbf4058 ARM64: disable printing of "fcmXY ..., #0" aliases
61e0d55 AArch64: disable printing of add/sub alias
84a4f73 Sparc: disable printing of jmp/call aliases (C++ does it)
77da6f1 Sparc: disable printing on longer "brX,pt" aliases
b5ee7db Mips: don't print subu alias for addiu
5d25da2 X86: disable printing of bare "mov" aliases
78a667d AArch64: disable printing of MOV -> MOVZ aliases
4e15a3d ARM64: disable printing of swapped compare-mask aliases
fba407a ARM64: disable printing of LDUR -> LDR aliases
93185d1 ARM64: give TST aliases priority over ANDS.
22f4151 ARM64: give MOV priority over shorter ORR when printing aliases.
7d80c1a ARM64: give NEG priority over SUB when printing aliases.
ef5f53b ARM64: disable printing of "lslv" type aliases
ae6c659 [ARM64]Implement NEON post-increment LD1(lane) and post-increment LD1R.
0288fb0 MergeFunctions Pass, introduced total ordering among function attributes.
fbe77b1 [mips][mips64r6] Add Floating Point Fused Multiply Add Subtract Differential Revision: http://reviews.llvm.org/D3727
36b8b48 ARM: add some integer/floating point conversion libcalls
9bc1b73 Add C API for thread yielding callback.
6d81fc7 ProfileData: Allow multiple profiles in RawInstrProfReader
9364e63 Remove the Options query functions and just access our Options directly.
a9f15ce musttail: Fix the verification of alignment attributes
d5db876 Implement global merge optimization for global variables.
01a02d9 DebugInfo: Follow up to r208930, comment usage of 'using' to bring in base class overload.
6d22500 Move more MC options into the MCTargetOptions structure.
8fde27b Remove unused llvm namespace bool variable.
f1b1f7f DebugInfo: Don't put fission type units in comdat sections.
ae787d3 Make the -L option for SaveTempLabels not be static. No functional change.
121cddc Finish materialize for ints
a8f7afa Use range for
b043c3d [DWARF parser] Use enums instead of bitfields in DILineInfoSpecifier.
48ea98d Don't insert lifetime.end markers between a musttail call and ret
cf7cfd8 Revert "Don't insert lifetime.end markers between a musttail call and ret"
a9bef41 Remove unused variable in inliner
24a50c5 Don't insert lifetime.end markers between a musttail call and ret
44623e8 DebugInfo: Simplify retrieving filename/directory name for line table entry building.
998c1e0 Teach the inliner how to preserve musttail invariants
675e527 DebugInfo: Add FIXME regarding DILexicalBlock uniquing fields.
522a941 autoconf: Fix libLLVM-Major-Minor-Patch.so symlink
1564bf7 [obj2yaml][ELF] Print relocation's offset as a hex number. Use a proper types to hold relocation's offset and addend.
650c53f [obj2yaml][ELF] Do not print empty Link and Info fields for ELF sections.
218bad2 Revert "[PM] Add pass run listeners to the pass manager."
fd76d8a [ARM64] Improve diagnostics for Cn operands in SYS instructions
926273d [yaml2obj] Add "-o" command line option to specify an output file name.
70e3aba llvm/test/CodeGen/X86/combine-sse41-intrinsics.ll: Add explicit triple.
9836c47 [X86] Teach the backend how to fold SSE4.1/AVX/AVX2 blend intrinsics.
1f05322 [mips][mips64r6] Add CLASS.fmt instructions Differential Revision: http://reviews.llvm.org/D3712
7599912 [mips][mips64r6] Add RINT.fmt instructions Differential Revision: http://reviews.llvm.org/D3711
c8d4dfc [mips][mips64r6] Add SELEQZ/SELNEZ.fmt instructions Differential Revision: http://reviews.llvm.org/D3710
bd80605 [mips][mips64r6] Add MAX/MIN/MAXA/MINA.fmt instructions Differential Revision: http://reviews.llvm.org/D3709
29d4ed3 R600/SI: Stop using VSrc_* as the default register class for types.
704fe35 R600/SI: Fix a bug with handling of INSERT_SUBREG in SIFixSGPRCopies
c1de569 R600/SI: Only use SALU instructions for 64-bit add in a block of CF depth 0
bfffad6 R600/SI: Use VALU instructions for i1 ops
d0e93f2 TableGen: use correct MIOperand when printing aliases
9f6a386 [mips][mips64r6] Add bitswap, and dbitswap
b7ba5c2 Instead of littering asserts throughout the code after every call to computeKnownBits, consolidate them into one assert at the end of computeKnownBits itself.
0a088b1 ARM64: print correct aliases for NEON mov & mvn instructions
8b580cc [mips][mips64r6] Add align and dalign
f61a467 TableGen/ARM64: print aliases even if they have syntax variants.
d744346 ARM64: add correct vector registers during asm parsing
75aa537 [ARM64] Improve load/store diagnostics and forbid 32-bit register addresses
e7856db [ARM64] Parse fixed vector lanes properly so that diagnostics can be emitted
dbe4f8b [ARM64] Add/Fixup diagnostics for floating point immediates
6091820 [ARM64] Add condition code operand type such that proper diagnostics can be emitted
907c04b [ARM64] Add more simple diagnostics for immediate/shift ranges
06961bf [mips][mips64r6] Add addiupc, aluipc, and auipc
fc4953b [mips][mips64r6] Add aui, daui, dahi, and dati
ca323cf Teach the constant folder to look through bitcast constant expressions much more effectively when trying to constant fold a load of a constant. Previously, we only handled bitcasts by trying to find a totally generic byte representation of the constant and use that. Now, we look through the bitcast to see what constant we might fold the load into, and then try to form a constant expression cast of the found value that would be equivalent to loading the value.
9cfa5cf [mips][mips64r6] Test that branch likelies are not accepted on MIPS64r6.
0d5742f Reverting r208848, reason: build failure: sanitizer-x86_64-linux-bootstrap/builds/3399
707048b Added instcombine for 'MIN(MIN(A, 27), 93)' and 'MAX(MAX(A, 93), 27)'
d10a54f Added inst combine transforms for single bit tests from Chris's note
af5e67a Fix some dyslexia in an assert message
727273b Fix typos
66b123f [ARM64] Support aggressive fastcc/tailcallopt breaking ABI by popping out argument stack from callee.
cea72fe Remove unused functions setting MCOptions from TargetMachine.
475ac5d Unify command line handling of MCTargetOptions and remove extra options and code. No functional change.
afc6099 Move the TargetMachine MC options to MCTargetOptions. No functional change.
e880187 InstCombine: Optimize -x s< cst
dc37258 DwarfDebug: Don't set frame index locations on abstract variables.
3f62ac3 DebugInfo: Sure up subprogram variable list handling with more assertions and fewer conditionals.
fbb8f38 DebugInfo: Assert that a CU's subprogram list contains only subprograms.
14963a6 Teach llvm-nm to know about fat archives (aka MachOUniversal files containing archives).  First step as other tools will be updated next.
6b54371 Rename ComputeMaskedBits to computeKnownBits. "Masked" has been inappropriate since it lost its Mask parameter in r154011.
cd237ed InstSimplify: Optimize signed icmp of -(zext V)
e0776de DebugInfo: Do not delay attaching DW_AT_inline attribute to abstract definitions.
8101512 ARM-BE: test files for vector argument passing
62d6aa0 [ARM64-BE] Fix byte order of CIE and FDE frames for exception handling
f5864ff Fix ARM EHABI when function has landingpad and nounwind.
bb5d9ac More test case for r208715.
202be06 X86: If we have an instruction that sets a flag and a zero test on the input of that instruction try to eliminate the test.
f6741d6 [mips] Test that IAS for -mcpu=mips5 does not accept MIPS64 insns and -mcpu=mips(5|64) does not accept MIPS64r2
7214d26 [mips][mips64r6] Add sel.s and sel.d
fcb05f0 ARM64: remove unneeded InstPrinter hacks
c413e0167 Regression test for ARM EHABI breakage in r208166.
54952a3 [asan] Fix compiler warnings.
eb949e0 [asan] Set debug location in ASan function prologue.
df75220 Update of the documentation: I think we are now happy with Phabricator
eb7d69d Fix the case when reordering shuffle and binop produces a constant.
8517c90 Fix strange typo in markup.
5fa4d1c Update the comments for ComputeMaskedBits, which lost its Mask parameter in r154011.
b8236e5 [obj2yaml] Support ELF input format in the obj2yaml tool.
0fe443d ARM: implement support for the UDF mnemonic
8f84449 Optimize integral reciprocal (udiv 1, x and sdiv 1, x) to not use division. This fires exactly once in a clang bootstrap, but covers a few different results from http://www.cs.utah.edu/~regehr/souper/
ee8af3e Recommit r208506: DebugInfo: Include lexical scopes in inlined subroutines.
22dcd39 Fix typo in function name.
dda2229 R600/SI: Try to fix BFE operands when moving to VALU
f057625 [tools][llvm-rtdyld] Add a '-dylib <file>' option to llvm-rtdyld to load shared libraries before linking and executing the target objects.
9c29061 [RuntimeDyld] Fix handling of i386 PC-rel external relocations. This fixes several more i386 MCJIT regression test failures.
8a8de72 Add missing line breaks to debug output in CodeGenPrepare
5b6887d GVN: Fix non-determinism in map iteration.
7fe69dd GVN: rangify a couple of loops.
7d87049 Save the optimization level the subtarget was created with in a member variable and sink the initialization of crbits into the subtarget feature reset code.
e02c34b Make the split function use StringRef::split.
3e18fee autoconf: Fix soname for libLLVM-Major.Minor.so (2nd try)
834384b Split GlobalValue into GlobalValue and GlobalObject.
ebfe1f0 Check explicitly for EHABI and just use the default settings. Code depends on the assembler and linker to fix things up...
ad5d56c ARM: Additional test files for thumb fixups (checked with llvm-mv -show-encoding)
dd255b3 ARMEB: Fix byte order of EH frame unwinding instructions, with modified test file
289a85c Style fix: The name of variables starts with an upper case letter.
e774af2 Revert "autoconf: Fix soname for libLLVM-Major.Minor.so"
a37c778 autoconf: Fix soname for libLLVM-Major.Minor.so
fdae312 [CGP] r205941 changed the logic, so that a cast happens *before* 'Result' is compared to 'AddrMode.BaseReg'. In the case that 'AddrMode.BaseReg' is nullptr, 'Result' will also be nullptr, so the cast causes an assertion. We should use dyn_cast_or_null here to check 'Result' is not null and it is an instruction.
73306ce Revert "ARMEB: Fix byte order of EH frame unwinding instructions"
b37b01d Teach the table generator to not generate switch statements containing only a default label with no cases. This solves some warnings with MSVC.
3beea23 ARM: Additional test files for thumb fixups
0e0f907 [mips] Marked up instructions added in MIPS32r2 and tested that IAS for -mcpu=mips(2|32) does not accept them
34b9ca5e ARMEB: Fix byte order of EH frame unwinding instructions
fc2427b [mips] Free up two values in SubtargetFeatureFlag by folding the redundant IsGP32/IsGP64 into IsGP32bit/IsGP64bit
56db241 Fix build failure with MSVC, following r208680
8d9fa8f include/llvm/Support/Unicode.h didn't have re-include guards
04b6179 [un]wrap extracted from lib/Target/Target[MachineC].cpp, lib/ExecutionEngine/ExecutionEngineBindings.cpp into include/llvm/IR/DataLayout.h
e9592d0 TableGen: strengthen assert
ae0a833 Fix gcc -Wparentheses warning.
2a74dfe [ARM64] Fix the misleading diagnostic on bad extend amount of reg+reg addressing mode.
51a167d Fix type of shuffle resulted from shuffle merge.
e2b3744 Assert that we don't RAUW a Constant with a ConstantExpr that contains it.
0449d52 Folding into CSEL when there is ZEXT between SETCC and ADD
5204fed Convert test to FileCheck.
151e341 Convert test to FileCheck.
47290de Revert "DebugInfo: Include lexical scopes in inlined subroutines."
5a5a064 Use a logical not when inverting SetCC.  This unfortunately doesn't fire on any targets so I couldn't find a test case to trigger it.
7328201 [DAGCombiner] Split up an indexed load if only the base pointer value is live
1633f75 Fix ARM bswap16.ll test on Windows
17335ce Try to fix an SDAG dependence issue with sret
03e19bb DebugInfo: Attach DW_AT_inline to inlined subprograms at DIE-construction time rather than as a post-processing step.
b572bc1 [RuntimeDyld] Add support for MachO __jump_table and __pointers sections, and SECTDIFF relocations on 32-bit x86.
6124834 DebugInfo: Make gmlt debug info more gmlt-like by removing variables.
e154191 Suggested improvement by Rafael Espindola to use isa<> in a few places instead of dyn_cast<>.
8655b12 Use cast<> for unchecked use
d2b27bb use nullptr instead of NULL
45fc470 [Test] Trim unnecessary .c and .cpp from config.suffix in lit.local.cfg
9cec62a Add support bswap16 to/from memory compiling to rev16 on ARM/Thumb
b36e348 Use cast<> for unchecked use
76aa42c Use range for
2f5f1c2 do not assert when delinearization fails
d9673eb use isZero()
9f84cec DwarfDebug: Avoid an extra map lookup while constructing abstract scope DIEs and reduce nesting/conditionals.
d6cd038 TableGen: use PrintMethods to print more aliases
2161fd6 AArch64/ARM64: use InstAliases for NEON logical (imm) instructions.
c56a542 AArch64/ARM64: implement "mov $Rd, $Imm" aliases in TableGen.
5049ca6 R600: Add mul24 intrinsics
6212998 Make SimplifyDemandedBits understand BUILD_PAIR
db5b7e0 [mips] Move disassembler test (test_2r_msa64) into correct folder.
4d28469 [mips] Move disassembler test (Mips MSA test_vec) into correct folder.
d8527e2 [mips] Move disassembler tests (Mips MSA test_i*, test_mi10) into correct folder.
e9cd606 [mips] Move disassembler tests (Mips MSA test_elm*) into correct folder.
e18828f [mips] Move disassembler tests (Mips MSA test_lsa, test_dlsa) into correct folder.
f666827 [mips] Move disassembler test (Mips MSA test_ctrlregs) into correct folder.
8699206 [mips] Move disassembler test (Mips MSA test_bit) into correct folder.
5e3662a [mips] Move disassembler tests (Mips MSA test_2r, test_2rf, test_3r, test_3rf) into correct folder.
e44de6a Revert: r208582 - [mips][mips64r6] Add sel.s and sel.d
87010f3 [mips][mips64r6] Add sel.s and sel.d
05052f6 [ARM64-BE] Correct grammar mistake pointed out by Tobias.
b1b144c [mips][mips64r6] Add d?div, d?mod, d?divu, d?modu
8591804 [ARM64-BE] Add sphinx documentation for the ARM64 NEON implementation.
d76eeb1 [mips][mips64r6] Added mul/mulu/muh/muhu
64d3ae0 Move EmitDwarfAdvanceLineAddr and EmitDwarfAdvanceFrameAddr to the obj streamer.
7624b86 Pass a MCObjectStreamer instead of a MCStreamer when possible.
6a139d7 Pass a MCObjectStreamer instead of a MCStreamer when possible.
03faa83 Silencing an MSVC warning about not all control paths returning a value (even though the switch is fully covered). No functional change.
f502ba6 ARM64: remove dead validation code from the AsmParser.
f8c7bd4 ARM64: merge "extend" and "shift" addressing-mode enums.
23f2d7a Move EH/Debug frame handling to the object streamer.
6ec4814 Remove always true argument and unused field.
e4b9009 Remove always true argument and field.
f4a9638 Remove always true argument.
044302d Remove an always true argument.
2e087f3 Remove write only field.
6878dea Remove now empty method.
1468683 Remove the always true UseCFI member.
b31a977 X86: Make sure that we have SSE4.1 before we generate insertps nodes.
cdf5f98 Remove the useCFI constructor argument to MCAsmStreamer.
b656938 [mips] Marked up instructions added in MIPS32 and tested that IAS for -mcpu=mips2 does not accept them
7b6f59e Remove MCUseCFI from TargetMachine.
31546cd [mips] Marked up instructions added in MIPS-V and tested that IAS for -mcpu=mips[1234] does not accept them
b396af3 [mips] Fold FeatureBitCount into FeatureMips32 and FeatureMips64
ea27d2f [mips] Fold FeatureSEInReg into FeatureMips32r2
d46b2e2 [mips] Fold FeatureSwap into FeatureMips32r2 and FeatureMips64r2
4119c5f [mips] Replace FeatureFPIdx with FeatureMips4_32r2
b0b5871 [ARM64] Add proper bounds checking/diagnostics to logical shifts
5c39a97 ARM: Implement big endian bit-conversion for NEON type
7aa3041 X86ISelLowering.cpp:LowerINTRINSIC_W_CHAIN(): Prune impossible "default:" [-Wcovered-switch-default]
b1a6b91 Fix type of shuffle obtained from reordering with binary operation
f1e0454 [ARM64] Add diagnostics for bitfield extract/insert instructions
0ce7616 [ARM64] Correct more bounds checks/diagnostics for arithmetic shift operands
0d919c6 [ARM64] Move register/register MOV handling into tablegen and improve diagnostics
e7dd13a Fixed compilation issue
1cec507 AVX-512: changes in intrinsics 1) Changed gather and scatter intrinsics. Now they are aligned with GCC built-ins. There is no more non-masked form. Masked intrinsic receives -1 if all lanes are executed. 2) I changed the function that works with intrinsics inside X86ISelLowering.cpp. I put all intrinsics in one table. I did it for INTRINSICS_W_CHAIN and plan to put all intrinsics from WO_CHAIN set to the same table in order to avoid the long-long "switch". (I wanted to use static map initialization that allowed by C++11 but I wasn't able to compile it on VS2012). 3) I added gather/scatter prefetch intrinsics. 4) I fixed MRMm encoding for masked instructions.
f37d8e6 CodeGen: add parenthesis around complex expression
0795830 Fix reordering of shuffles and binary operations
8b6f742 Reformat blank lines.
d0c1b54 Fix return before else
70a83b4 [PowerPC] Add global named register support
24f554f Pass the value type to TLI::getRegisterByName
94a03fc Add 'override' to getRegisterByName in *ISelLowering.h
99ccb1f DebugInfo: Include lexical scopes in inlined subroutines.
db692e7 DebugInfo: Simplify/correct test for correct constant emission when dealing with derived types.
42e3b31 DwarfUnit: Make explicit a limitation/bug in enumeration constant emission.
87f4cf7 [PowerPC] On PPC32, 128-bit shifts might be runtime calls
f2bd335 DwarfUnit: Pick a winner between isTypeSigned and isUnsignedDIType.
9cfc5b2 DwarfUnit: Factor out calling isUnsignedDIType into a utility function so each caller of emitConstantValue doesn't have to call it separately.
abfe7d3 DwarfUnit: Share common constant value emission between APInts of small (<= 64 bit) and MCOperand immediates.
d0125ee DebugInfo: Simplify constant value emission.
4db3f41 SLPVectorizer: Instead of just performing CSE on dead blocks ignore them completely.
f5e04c3 [llvm-readobj] Print values of FLAGS and MIPS_FLAGS dynamic table tags in a human readable form.
86118b4 Reorder shuffle and binary operation.
4ccf0eb Fixed a bug when lowering build_vector (PR19694)
e283f74 R600/SI: Fold fabs/fneg into src input modifier
3378ca7 R600/SI: Prettier display of input modifiers
d19e830 R600/SI: Use pseudo instruction for fabs/clamp/fneg
bfd5dad SCEV: Use range-based for loop and fold variable into assert.
e87cadc ARM64: fix SELECT_CC lowering in absence of NaNs.
ae41759 Fix llvm-nm to print the full 64-bit address for symbols in 64-bit object files.
3ae331d SLPVectorizer: When sorting by domination for CSE don't assert on unreachable code.
d30c11e Revert "[ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret'"
754e940 move findArrayDimensions to ScalarEvolution
f255eb9 fix typo in debug message
805a83c Allow sret on the second parameter as well as the first
b3275b9 Fix ARM intrinsics-overflow.ll test on Windows
1acea2d Don't crash on redefinitions.
4820180 Fix broken build
7a9fbab Add custom lowering for add/sub with overflow intrinsics to ARM
c0adfbb Add ExtractValue instruction to SimplifyCFG's ComputeSpeculationCost
3f26d36 R600/SI: Teach SIInstrInfo::moveToVALU() how to move S_LOAD_*_IMM instructions
300094f R600/SI: Fix SMRD pattern for offsets > 32 bits
561bb44 R600: Expand i64 SELECT_CC
87b9836 R600: Move MIN/MAX matching from LowerOperation() to PerformDAGCombine()
bfaccd4 Attempt to pacify the bots - this commit requires asserts.
b4c14b4 Use auto and clang-format this snippet.
f35cc81 Run clang-format in small sections of code to make a patch easier to read.
2439e5d Delete trailing whitespace.
f992930 Delete trailing white space.
7ef8544 [mips] Marked up instructions added in MIPS-IV and tested that IAS for -mcpu=mips[123] does not accept them
e294838 ARM: HFAs must be passed in consecutive registers
ba148a1 [yaml2obj] Follow-up to the r208228 and r208406. Remove duplicated YAML map keys.
dd8ddbf Remove trailing white space.
08910b0 [mips] Remove unused CondMov feature bit
70f6f7e [mips] Marked up instructions added in MIPS-III and tested that IAS for -mcpu=mips[12] does not accept them
a1e2e91 Mark yaml2obj-elf-x86-rel.yaml as XFAIL:vg_leak for now. This has two pairs of duplicate hashes.
530f956 Fix 80 col violation. No functional change intended.
d8d1a7c [asan] Stop leaking X86Operands.
3265094 [mips][mips64r6] Add experimental support for MIPS32r6 and MIPS64r6
6b68224 [mips] Added missing daddu test to the valid instruction tests.
76056a0 [mips] Added missing dsra -> dsrav and sra -> srav aliases.
8d24d43 MemoryBuffer: don't force mmap when stat fails
87ccb2b MemoryBuffer: remove unusued definitions
ad4480c test/TableGen: Remove XFAIL:vg_leak out of 3 tests corresponding to r208293.
6454f24 Don't indent inside a namespace. Don't duplicate a function name in comment.
3fb66ae Remove use of = default/= delete as they're unsupported on MSVC2012
74d614a ARM: support PIC on Windows on ARM
e584911 printCustom is only used in PseudoSourceValue, remove it from Value.
9834b90 Add missing linkage predicates.
7e2946b [RuntimeDyld] Unify the RuntimeDyldMachO resolve.*Relocation method signatures around RelocationEntries, rather than passing the same information via loose arguments.
e4a3254 Optimize shufflevector that copies an i64/f64 and zeros the rest.
8d53407 [TargetInstrInfo] Fix the implementation of commuteInstruction to match the comment of the API.
8ec421c Improve wording to make it sounds more like a change than an analysis.
73773ce test/CodeGen: Check that the correct register is used in a store
bccff0f Reapply r207876 (Try simplifying LexicalScopes ownership again) including a workaround for an MSVC2012 bug regarding forward_as_tuple
50f8a53 Missed formatting
2b94fa7 StringMap: Move assignment and move construction.
06eb84e StringMap: Replace faux-copyability with faux-movability, which is sufficient.
b0439e6 StringMap support for move-only values.
24ac5df Correct formatting.
3a72258 Use std::remove_if to remove elements from a vector
6cc3e0e [InstCombine] Some cleanup in optimization of redundant insertvalue instructions. And one more test added.
82cb28e Use range loops.
8115f93 Make a CodeGen test more robust against vector register selection
798f57f [Hexagon] Add new InstrItinClass to support timing classes.
5fd4b41 Use for range loops.
dd2dc5b add testcase for r208237: do not collect undef terms
e4b1c81 Use range loop.
459ff08 R600: Promote f64 vector load/stores to i64 for consistency
2413bf3 Use a range loop.
2360e51 [X86] Add target specific combine rules to fold SSE2/AVX2 packed arithmetic shift intrinsics.
f37151a test: fix test on Windows
cb64c55 Mark test/TableGen/listconcat.td as XFAIL:vg_leak. llvm-tblgen is ignorant of vg_leak.
d41a985 [mips] Add PredicateControl to InstAlias's
a37c8c0 [ARM64] Add diagnostics for expected arithmetic shifts
0d2a5d2 [ARM64] Re-work parsing of ADD/SUB shifted immediate operands
4f83e2c [mips] Correct tests that are meant to test valid assembly. They were actually rejected by GAS.
23f5a0b [ARM64] Ensure immediates in extend operands are in a valid range
492ea4a [ARM64] Check for proper immediate in shift/extend operands
c60a59c ARM big endian function argument passing
958fcdc Fix a spelling error
7bd400e [mips] Implement l[wd]c3, and s[wd]c3.
9f0141d Add isOSFreeBSD triple test
da704bf Revert test commit. Removed blank line.
00c4dbd [ARM64-BE] Teach fast-isel about how to set up sub-word stack arguments for big endian calls.
1351726 [mips] Marked up instructions added in MIPS-II and tested that IAS for -mcpu=mips1 does not accept them
dd9080a [mips] Implement tlbp, tlbr, tlbwi, and tlbwr
a054f10 Test commit. Added blank line.
291cd09 ARM64: make sure FastISel emits SSA MachineInstrs
89329e9 [asan] Preserve flags in asm instrumentation.
01ce4b9 Use a vector of unique_ptrs to fix a memory leak introduced in r208179.
f35ce23 Move late partial-unrolling thresholds into the processor definitions
f46646d Revert "SCEV: Use I = vector<>.erase(I) to iterate and delete at the same time"
1c2f863 AArch64/ARM64: Port NEON post-increment load/store with 2/3/4 vectors to ARM64 backend.
96f8c56 SCEV: Use I = vector<>.erase(I) to iterate and delete at the same time
c51c340 [modules] Add missing #include.
f6efab6 test: fix silly typo
dade1d5 ARM: support FK_SecRel_2 relocations on WoA
4983b99 Simplify and fix incorrect comment. No functionality change.
b19c087 Lower certain build_vectors to insertps instructions
5229850 Back out r208257 while I investigate tester failures.
04d6002 GlobalValue: Assert symbols with local linkage have default visibility
76c17d3 IR: Don't allow non-default visibility on local linkage
c7e175a LTO: Assert visibility of local linkage when merging symbols
83533dd LTO: Check local linkage first
57b4c5d [X86] Add a test case for r208252. Prior to r208252, the FMA 231 family was marked as isCommutable. However the memory variants of this family are not commutable. Therefore, we did not implemented the findCommutedOpIndices for those variants and missed that the default implementation (more or less: commute indices 1 and 2) was firing behind our back. As a result, as demonstrated in the test case before the fix, we were transforming a = b * c + a into a = a * c + b.
3186597 [RuntimeDyld] Make RuntimeDyldImpl::resolveExternalSymbols preserve the relocation entries it applies.
df60e43 [X86TTI] Remove the unrolling branch limits
f7659e7 llvm-cov: Fix some funny indentation (NFC)
97e15a8 [X86] Selectively mark the FMA variants inside a family as isCommutable. Given a FMA family (e.g., 213, 231), not all the variants (i.e., register or memory) are commutable. E.g., for the 213 family (with the syntax src1, src2, src3): fmaXXX213 A, B, reg3/mem3 == fmaXXX213 B, A, reg3/mem3
db411a9 Reformat a couple of functions for clarity.
1ec10c1 Let OnDiskHashTable call the destructor of its Items.
b507e66 Replace a virtual with an override.
8b915ba [Hexagon] Add New TSFlags to be used in the upcoming patches.
4842e7d avoid segfaulting
bde4574 do not collect undef terms
ad4e697 Fix using wrong result type for setcc.
bbad521 Debug.h already includes raw_ostream.h, no need to include it again.
a822fab [Test] Remove c-index-test from the list of substitutions
5026b2c split delinearization pass in 3 steps
905e335 [x86] Make the 'x86-64' cpu, what I see as and many use as the generic default architecture for reasonable modern x86 processors, actually be modern. This processor model should essentially be "tuned" for modern x86 chips as much as possible without undue penalties on any specific architecture. Previously we weren't even using the nice scheduling models. There are a few other tweaks needed here, but this change at least I have benchmarked across a decent swatch of chips (intel's clovertown, westmere, and sandybridge; amd's istanbul) and seen no significant regressions.
40b514d Tidy up whitespace with clang-format prior to making significant changes.
d92c843 [yaml2obj] Support ELF x86 relocations.
4d88db0 Style update: don't duplicate the function name.
0f0974d [CMake] Add build rules for llvm-PerfectShuffle utility
3a163b7 Style update: don't duplicate the function name.
8f0f458 [ARM64][fast-isel] Disable target specific optimizations at -O0.  Functionally, this patch disables the dead register elimination pass and the load/store pair optimization pass at -O0.  The ILP optimizations don't require the optimization level to be checked because the call to addILPOpts is predicated with the necessary check.  The AdvSIMDScalar pass is disabled by default at all optimization levels.  This patch leaves that pass disabled by default.
7858e49 [mips] Add highly experimental support for MIPS-I, MIPS-II, MIPS-III, and MIPS-V
459a8aa llvm-cov: Explicitly namespace llvm::make_unique to keep MSVC happy
6cf16a4 Use range loop.
355e0a6 [InstCombine] Add optimization of redundant insertvalue instructions.
0c78010 [mips] Add FGR_32/FGR_64/GPR_64 adjectives and use then instead of FGRPredicates/GPRPredicates
b49c582 [mips] Add INSN_<name> adverbs and start using them instead of AdditionalPredicates overrides
8a387a7 [msan] Fix -fsanitize=memory -fno-integrated-as.
04a359f AArch64/ARM64: optimise vector selects & enable test
b1c5f88 [mips] Add ISA_<name> adverbs and start using them instead of AdditionalPredicates overrides
2842c05 Remove the UseCFI option from createAsmStreamer.
fe0b227 DebugInfo: Use enum instead of unsigned
b2d170d [mips] Continue splitting Instruction.Predicates into smaller lists and re-join them with !listconcat
2712c87 [ARM64-BE] Fix fast-isel, and add appropriate RUN lines to appropriate tests.
d93d214 [ARM64-BE] Fix variable-argument saving.
fca7f5c [ARM64-BE] Implement the lane-twiddling logic at AAPCS boundaries for big endian.
1caec99 [mips] Move IsFP64bit/NotFP64bit to the front of the AdditionalPredicates list
737c2ac [ARM64-BE] Implement the crazy bitcast handling for big endian vectors.
1f890ce [ARM64-BE] Predicate VLDR/VSTR for vectors as little-endian only. We must use LD1/ST1 on big-endian.
104629c [ARM64-BE] Make big endian (scalar) argument passing work correctly.
9b36310 MergeFunctions Pass, introduced total ordering among values.
0d42751 AArch64/ARM64: run test on ARM64 too.
5a1d513 AArch64/ARM64: put annotation in test
c6f6836 AArch64/ARM64: disable test directory if ARM64 not present
a3953a3 [mips] Split Instruction.Predicates into smaller lists and re-join them with !listconcat
d80222a [tablegen] Add !listconcat operator with the similar semantics as !strconcat
0c9ea21 [mips] Move HasStdEnc to the front of the predicates lists.
6a48f1c [BUG][REFACTOR] 1) Fix for printing debug locations for absolute paths. 2) Location printing is moved into public method DebugLoc::print() to avoid re-inventing the wheel.
cb3a147 Second patch of patch series that improves MergeFunctions performance time from O(N*N) to O(N*log(N)). The idea is to introduce total ordering among functions set. It allows to build binary tree and perform function look-up procedure in O(log(N)) time.
88ab50c Work-around MSVS build breakage due to r208148
227c4c6 [asan] Add a flag to control asm instrumentation.
2ecdcdc Allow using normal .eh_frame based unwinding on ARM. Use the same encodings as x86. Use this exception model for NetBSD.
8a25ee1 PR19562: DebugInfo temporary MDNode leak: Don't include a temporary node to replace with a variable list for methods, since they're always declarations and thus never include variables
a1f8bd6 [C++11] Add NArySCEV->Operands iterator range
111454f [obj2yaml] Recognize input file format using llvm::object::ObjectFile interface methods isCOFF().
3fe09b7 ARM: mark additional instructions as MachineFrameSetup
0029e2d ARM: fix WoA PEI instruction selection
ffb8718 llvm-cov: Document --no-output in the command guide
c92330c llvm-cov: Handle missing source files as GCOV does
56d05e4 llvm-cov: Implement --no-output
6d46f2d [Support/MemoryBuffer] Remove the assertion that the file size did not shrink.
9e9ec9b Fix ASan init function detection after clang r208128.
26668d0 Special case aliases in GlobalValue::getSection.
8abb75b Update an embarassing out-of-date comment.
887ab99 Use a range based for loop for the SubtargetFeatures print function.
ccad744 Revert "Try simplifying LexicalScopes ownership again."
d2ba53b Fix odd formatting that snuck into last patch.
b84f890 If a function needs a frame pointer, but r11 (aka fp) has not been used, remove it from the list of unspilled registers. Otherwise the following attempt to keep the stack aligned by picking an extra GPR register to spill will not work as it picks up r11.
d474181 ArrayRef-ize the Feature and Processor tables for SubtargetFeatures. This removes arguments passed everywhere and allows the use of standard iteration over lists. Should be no functional change.
3949749 Copy the full TailCallKind in CallInst::clone_impl
e3e870f Do not make -pass-remarks additive.
2c06cd8 TTI: Estimate @llvm.fmuladd cost as fmul + fadd when FMA's aren't legal on the target.
8a712ba [X86] Improve the lowering of BITCAST dag nodes from type f64 to type v2i32 (and vice versa).
22f779d Implememting named register intrinsics
b889448 Special case aliases in GlobalValue::getAlignment.
bfc3f30 Have the SubtargetFeature help routine just not return a number and fall back to the normal path without a cpu. While doing this fix llc to just exit when we don't have a module to process instead of asserting.
534ec26 Add some details to the llvm-cov documentation. <rdar://problem/15819496>
4f17235 Be more strict about not allowing setSection on aliases.
55ba6a1 Be more strict about not calling setAlignment on global aliases.
3524723 AArch64/ARM64: implement diagnosis of unpredictable loads & stores
4d28f03 AArch64/ARM64: add two more MC tests to ARM64 set.
c08733f AArch64/ARM64: enable MC-level diagnostic tests for NEON insts.
09b3bd8 AArch64/ARM64: make NEON vector list parsing a bit more robust
d58350d AArch64/ARM64: add more specific diagnostic for floating imm 0.0.
c5f9aff AArch64/ARM64: add more specific diagnostic for invalid vector lanes
6e64f90 AArch64/ARM64: produce more informative diagnostic assembling some immediates
80fd091 ARM: For thumb fixups store halfwords high first and low second
03145eb [ARM64] Enable alignment control option in front-end for ARM64.
0e8c40d Disable -Wcomment when building with GCC.
64cd55a Update programmers manual to cover llvm::function_ref, and add a note to the coding standard suggesting using it instead of the (unavailable) std::function.
b0eeb12 Use X86 memory operand enums instead of hardcoding.
b184a37 Fix some obvious Doxygen comment bugs.
3e889f7 Update comment from a recent commit.
f0e7f76 [Build] Add rule to generate fully-expanded .td file
40a1b74 PR19598: Provide the ability to RAUW a declaration with itself, creating a non-temporary copy and using that to RAUW.
5c34f99 Revert "Walk back commits for unused function parameters - they're still being"
cca77fc blockfreq: Move include to .cpp
2efa833 Revert accidentally-committed files.
36ecb2e Re-commit r208025, reverted in r208030, with a fix for a conformance issue which GCC detects and Clang does not!
f3a199b Revert r208025, which made buildbots unhappy for unknown reasons.
9ad48c1 Fix i128 div/mod on mingw64
10222d2 [Support/MemoryBuffer] Rename IsVolatile -> IsVolatileSize and add a comment about the use case for the new parameter.
245e8bd Add llvm::function_ref (and a couple of uses of it), representing a type-erased reference to a callable object.
9331beb Include intrin.h before windows.h as a workaround for the x64 self-host
6a91439 [Support/MemoryBuffer] Move the IsVolatile check inside shouldUseMmap() and make sure to zero-initialize the rest of the buffer if we unexpectedly reach end-of-file while reading.
096d841 Detabify.
05da4dd Improve 'tail' call marking in TRE. A bootstrap of clang goes from 375k calls marked tail in the IR to 470k, however this improvement does not carry into an improvement of the call/jmp ratio on x86. The most common pattern is a tail call + br to a block with nothing but a 'ret'.
59c397d Walk back commits for unused function parameters - they're still being used via dragonegg for now.
e3b906e Reapply: Add slp vectorization to LTO passes. The bug it exposed has been fixed by r207983. <radar://16641956>
bb95032 Remove a now unnecessary function since all calls have one version and inline it into its caller.
9edfca8 Remove a call to std::exit in a library. Make "Help" return a 0 as a default answer.
32b6099 [Support/MemoryBuffer] Introduce a boolean parameter (false by default) 'IsVolatile' for the open file functions.
73ebb5a Fix typo.
4b84b52 R600: Expand i64 ISD:SUB
33a4854 Remove unused argument from AddFeature.
9572a1c Fix typo (also tab character).
a75173c Use a range loop.
75ea413 Revert "Optimize shufflevector that copies an i64/f64 and zeros the rest."
a0fa9eb Optimize shufflevector that copies an i64/f64 and zeros the rest.
f6518f6 R600/SI: allow 5 more input SGPRs to a shader
830195e Move test from r207969 to another folder and rename it.
606660f Always set alignment of vectorized LD/ST in SLP-Vectorizer.   <rdar://problem/16812145>
b85d690 Fix spelling.
814442a Be a bit more specific in the release notes.
bbd9c21 LTO: -internalize sets visibility to default
c6e42b5 Remove the -disable-cfi option.
d51c57f [Test] Remove substitution for clang
3b4c8c2 Modify test to not use -disable-cfi.
54d2b33 Select bdver2 instead of bdver1 if TBM support is present on models < 0x10.
bd7cb3a Move test to the ARM64 directory.
260b6b0 Convert a CodeGen test into a MC test.
1c87e2a Fix test from r207966 and add a comment there.
df86405 [ASan/Win] Fix issue 305 -- don't instrument .CRT initializer/terminator callbacks
557a275 Trivial simplification. No functionality change.
07db1c9 Add regression test for r207692.
862cd00 Fix gcc -pedantic warning in lto.cpp.
3b98af5 Add range access to ELFFile's sections collection.
8d538f1 CodeGen: correct memset emittance for WoA
4fc5273 CodeGen: strengthen WoA AEABI avoidance tests
a7321a6 MC: support FK_SecRel_4 for Windows on ARM
99b03e3 LoopUnroll: If we're doing partial unrolling, use the PartialThreshold to limit unrolling.
28a739b SLPVectorizer: Bring back the insertelement patch (r205965) with fixes
8a3751f AVX-512: minor change in rndscale intrinsic
febf86d [LCG] Add the last (and most complex) of the edge insertion mutation operations on the call graph. This one forms a cycle, and while not as complex as removing an internal edge from an SCC, it involves a reasonable amount of work to find all of the nodes newly connected in a cycle.
57a38b8 [LCG] Reorder the tests to be a bit more logical: inter-SCC mutation before intra-SCC mutation, insertion before removal.
98ff665 X86: further range-loopify AsmPrinter
8afcab4 X86: remove X86COFFMachineModuleInfo
f3b2ed7 X86: repair export compatibility with MinGW/cygwin
6f0d4e3 X86: refactor export directive generation
b3428a0 IR: Cleanup AttributeSet::get for AttrBuilder
b2bd7e8 [TBAA] Fix handling of mixed TBAA (path-aware and non-path-aware TBAA).
930ca98 Fix pr19645.
72e96a5 [ARM64] Correctly select ANDWri in FastISel.
81f28f6 SLPVectorizer: Lazily allocate the map for block numbering.
91ffe99 Rename member variable to try to fix the bots.
0bf9cca Update docs still mentioning LLVM_ENABLE_CXX11
dd32608 Move LTOModule and LTOCodeGenerator to the llvm namespace.
10e8f95 Style fix: don't duplicate the method names.
fcee722 Style update: don't duplicate comments, they were getting out of sync.
879875f Updated Doxygen link for InstIterator.h.
e26759b [ELFYAML] Group ELF header falgs to target specific blocks. Handle flags which are corresponding to the current target read from the ELF file.
e6982bf [ELFYAML] Add more SHT_xxx flags to the YAML section type mapping.
5608a25 InstIterator.h lives in llvm/IR.
486ad62 Vectorize intrinsic math function calls in SLPVectorizer. This patch adds support to recognize and vectorize intrinsic math functions in SLPVectorizer. Review: http://reviews.llvm.org/D3560 and http://reviews.llvm.org/D3559
3aa9b49 [LSR] Add llc testcase for r207271/r207569.
10c37a0 Try simplifying LexicalScopes ownership again.
c7b30d8 [sanitizers] Propagate the sanitizer options through to the lit context. This makes it *really* easy to debug leaks FYI:
71aafce Satisfy GCC's urgent need for parentheses around ‘&&’ within ‘||’.
d036fef Aliases are always definitions. Delete dead code.
f41cc33 Clean up constructor logic and member access for LoopVectorizeHints.
688567e llvm-cov: Fix handling of line zero appearing in a line table
1913eeb [tablegen] !strconcat accepts more than two arguments but this wasn't documented or tested.
ae8904c Remove dead declaration.
3a5b104 Teach GlobalDCE how to remove empty global_ctor entries.
d753e83 [GVN] Pass the phi-translated address of a load instead of the untranslated address to AnalyzeLoadFromClobberingLoad. This fixes a bug in load-PRE where PRE is applied to a load that is not partially redundant.
735f9ed MC: place .file records into the correct section
b202527 DAGCombine: prevent formation of illegal ConstantFP nodes.
3cddd16 Add a description for AMD's bdver4 (aka Excavator).
c192d8a R600/SI: Add processor type for Mullins.
ab2fed6 R600: Expand vector sin and cos.
1d68592 R600: Expand TruncStore i64 -> {i16,i8}
9b22626 R600/SI: Only create one instruction when spilling/restoring register v3
ecc1896 AArch64/ARM64: add patterns for post-indexed ST1 ops.
2b951fd ARM64: refactor NEON post-indexed loads & stores (MC).
6f86e23 AArch64/ARM64: support indexed loads/stores on vector types.
bcf1501 Allow SelectionDAG::FoldConstantArithmetic to work when it's called with a vector VT but scalar values.
74e9519 Code style fix from Duncan P. N. Exon Smith.
26ad3eb Fold strlen(expr ? "str1" : "str2") to x ? len1 : len2. This fires about 330 times in a bootstrap of clang.
30e4655 [Stackmaps] Pacify windows buildbot.
a705794 [Stackmaps] Add command line option to specify the stackmap version.
a677552 [Stackmaps] Refactor serialization code. No functional change intended.
23fc172 [Stackmaps] Replace the custom ConstantPool class with a MapVector.
d4b4f2d [IR] Make {extract,insert}element accept an index of any integer type.
6010d95 Remove HexagonTargetMachine::addPassesForOptimizations; it is not needed any more.
53e7203 [OCaml] Add an ocamlfind package llvm.all_backends.
c02fc3d Add basic functionality for assignment of ints. This creates a lot of core infrastructure in which to add, with little effort, quite a bit more to mips fast-isel
8c31379 Fix uninitialized variable introduced in r207739.
dbd5d9d Don't propagate StorageClass and ComplexType to aliases.
896ae15 Update and sort CMakeLists.
167a57c Add an optimization that does CSE in a group of similar GEPs.
75bb54d DebugInfo: Correct the attribute type kind.
11786be PR19623: Implement typedefs of void.
32207fa Fixing a cast-qual warning. getBufferStart() and getBufferEnd() both return a const char *, so casting to non-const was triggering a warning (even though the assignment and usage was always const anyway).
2baa7c5 R600/SI: Fix verifier error with pseudo store instructions.
23d2759 Compute the correct section for zed = foo + 1 in COFF.
f2b88ce Move getBaseSymbol somewhere the COFF writer can use.
b378cac [ARM64] Prefer generation of bzero on Darwin only
68a7a88 Make getBaseSymbol non recursive.
1b68a68 Don't force symbols to be globals in .thumb_set.
3152576 Update post-r203364 http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140303/207915.html and ranged for loops.
3c5651a AArch64/ARM64: rewrite test to use FileCheck & add ARM64 lines
fadbf53 AArch64/ARM64: port basic disassembly tests to ARM64.
f2f35a9 AArch64/ARM64: print BFM instructions as BFI or BFXIL
3ce8291 [LCG] Add the other simple edge insertion API to the call graph. This just connects an SCC to one of its descendants directly. Not much of an impact. The last one is the hard one -- connecting an SCC to one of its ancestors, and thereby forming a cycle such that we have to merge all the SCCs participating in the cycle.
54bf6fd [LCG] Don't lookup the child SCC twice. Spotted this by inspection, and no functionality changed.
b8f4625 [LCG] Add some basic methods for querying the parent/child relationships of SCCs in the SCC DAG. Exercise them in the big graph test case. These will be especially useful for establishing invariants in insertion logic.
217b586 [llvm-readobj] Transform 'switch' with the only 'case' statement to 'if' statement.
8b88679 Correction to assert statemtent to allow 32-bit unsigned numbers with the top bit set.
06ace3c Revert r205965, which essentially reverts r205018 for the second time. =[
ed37b77 [llvm-readobj] Add support for Mips specific ELF header e_flags.
b6fdca6 [LCG] Fix a bad bug in the new fancy iterator scheme I added to support removal. We can't just blindly increment (or decrement) the adapted iterator when the value is null because doing so can walk past the end (or beginning) and keep inspecting the value. The fix I've implemented is to restrict this further to a forward iterator and add an end iterator to the members (replacing a member that had become dead when I switched to the adaptor base!) and using that to stop the iteration.
e29cd17 [ARM64] Conditionalize CPU specific system registers on subtarget features
4c71562 [mips] Move expansion of .cpsetup to target streamer.
873f87c [mips] Removed two-operand alias for sllv, sr[al]v, rotrv, dsllv, dsr[al]v, and drotrv
5604ab9 Record the DWARF version in MCContext
a1a235f ARM: fix memory leak, simplify WoA stack probing
fd2fb48 ARM: support expanding external symbols in 32-bit moves
953f250 Speculatively roll back r207724-r207726, which are code cleanup changes and appear to be breaking a bootstrapped build of compiler-rt.
2b7e17b If necessary for indirect encodings, emit stubs.
b77f891 Start fixing pr19147.
21b719d LexicalScopes: Use unique_ptr to manage ownership of abstract LexicalScopes.
d7bee44 Forgotten reformatting.
b5b0db9 LexicalScopes: use unique_ptr to own LexicalScope objects.
3589c24 Add missing breaks.
8169ef8 Switch over getArch()'s result.
5c91f4d Use a single data structure to store all user variables in DwarfDebug
4e9d838 Revert "Emit DW_AT_object_pointer once, on the declaration, for each function."
6c0458d Prepare support of Itanium ABI on ARM as opposed to EHABI by conditionally emitting .fnstart and friends only for EHABI.
e4c1d49 DebugInfo: Omit DW_AT_artificial on DW_TAG_formal_parameters in DW_TAG_inlined_subroutines.
2f253a9 Restore condition incorrectly changed in r96289 to the older state.
8467812 Convert more loops to range-based equivalents
fff0879 Patch for function cloning to inline all blocks whose address is taken
593cb79 Provide a version of getSymbolOffset that returns false on error.
b861d48 Slightly simplify code in DwarfDebug::beginFunction
d51ae64 Move logic for calculating DBG_VALUE history map into separate file/class.
d96bbed Move a testcase from ELF to ARM64, incorrectly placed in r207627.
f345c47 Emit DW_AT_object_pointer once, on the declaration, for each function.
2899780 Don't expect to find fpcmp and PerfectShuffle when running lit tests
f978570 Remove unused field hash_state::seed.
fa1cf8c [ARM64] Prevent bit extraction to be adjusted by following shift
79844fc Fix the clang-cl self-host build by defining ~DwarfDebug out of line
6f32742 Add a testcase for r207627.
14d1db9 Use the new StringTableBuilder in yaml2elf
6843898 Revert r207571 - Add slp vectorization to LTO passes
c80b103 [X86] Never hoist the shift value of a shift instruction.
4aef727 Convert several loops over MachineFunction basic blocks to range-based loops
78ecea9 [IPO/MergeFunctions] changes so it doesn't try to bitcast a struct return type but instead recreates it with insert/extract value.
bf741d2 IR: Conservatively verify inalloca arguments
1c37cbd Simplify ELFObjectWriter::SymbolValue.
1afb0cc [mips] Add instruction alias (negu).
3fa0a85 [mips] Add instruction alias (sltu).
a8febf2 ELFObjectWriter: deduplicate suffices in strtab
b1c1b8a ARM64: print fp immediates without using scientific notation.
83286f0 AArch64/ARM64: implement remaining TLS relocations (purely MC).
50de5e4 AArch64/ARM64: add specific diagnostic for MRS/MSR and enable tests.
52f60f8 AArch64/ARM64: accept and print floating-point immediate 0 as "#0.0"
c16fa88 IR: Alloca clones should remember inalloca state
c3a5ef5 [mips] Add instruction alias (dsll and dsrl).
3bdb901 Fix a use of uninitialized memory in SmallVector's move-assignment operator.
41fb117 Relax the test a bit.
bd24b33 R600/SI: Use VALU instructions for copying i1 values
1d8e31f R600/SI: Teach moveToVALU how to handle some SMRD instructions
fa2e88d [ARM64][fast-isel] Fast-isel doesn't know how to handle f128.
3dbcd2e Rename the test, it is testing the symver directive.
6c71a5f [mips] Add instruction alias (sll and srl).
fbe7448 [mips] Fix MipsLongBranch pass to work when the offset from the branch to the target cannot be determined accurately. This is the case for NaCl where the sandboxing instructions are added in MC layer, after the MipsLongBranch pass. It is also the case when the code has inline assembly. Instead of calculating offset in the MipsLongBranch pass, use %hi(sym1 - sym2) and %lo(sym1 - sym2) expressions that are resolved during the fixup.
99b44ba [mips] Update tests with encoding information for slt, slti, sltiu and sltu.
d3f1202 R600: Remove unused function AMDGPUSubtarget::getDefaultSize()
55f8c07 [asan] Disable asm instrumentation on unsupported platforms.
ee053f4 ARM64: enable AArch64's basic-a64-instructions test
44a2f56 ARM64: print lsr instead of lsrv for variable shifts (etc)
7870967 ARM64: use 32-bit operations for uxtb & uxth
1636a5f AArch64/ARM64: allow smaller granule relocations on MOVZ/MOVN
bfb7bc8 AArch64/ARM64: copy support for bCC instead of b.CC across.
36c7472 AArch64/ARM64: expunge CPSR from the sources
d805bf8 AArch64/ARM64: use HS instead of CS & LO instead of CC.
ff56f41 Grammar fix.
1c8add9 [mips][msa] Fix vector insertions where the index is variable
4e29e3a ARM64: accept ELF-relocated load/store insts without a #.
cb87e23 ARM64: remove duplication by templating InstPrinter methods
00bdeb4 [mips] Add support for .cpload.
737de9d [mips] Emit all three relocation operations for each relocation entry on Mips64 big-endian systems.
ebde5a5 ARM64: use hex immediates for movz/movk instructions
87476b6 ARM64: hexify printing various immediate operands
2a2cce7 ARM64: print canonical syntax for add/sub (imm) instructions.
491f476 [LCG] Add the really, *really* boring edge insertion case: adding an edge entirely within an existing SCC. Shockingly, making the connected component more connected is ... a total snooze fest. =]
0a78097 Fix multiline comment warning.
d5acbbf [ARM64] Simplify if condition.
d98970d [ARM64] Fix stupid copy-pasto in ARM64MCAsmInfo.cpp - aarch64_be -> arm64_be
44ff92f [ARM64] Try and make the ELF MCJIT *slightly* less broken for ARM64.
c447bef [ARM64] Ensure arm64_be is dealt with when emitting debug info.
5f4aba6 raw_ostream::operator<<(StringRef): Avoid potential overflow in pointer arithmetic.
5b188b1 ARM64: make sure FastISel uses a GPR64 source in 64-bit extensions.
6253c04 [LCG] Actually test the *basic* edge removal bits (IE, the non-SCC bits), and discover that it's totally broken. Yay tests. Boo bug. Fix the basic edge removal so that it works by nulling out the removed edges rather than actually removing them. This leaves the indices valid in the map from callee to index, and preserves some of the locality for iterating over edges. The iterator is made bidirectional to reflect that it now has to skip over null entries, and the skipping logic is layered onto it.
28ea582 Add a <tuple> include to more files that aren't getting it transitively on MSVC.
7ae9b5f Use makeArrayRef insted of calling ArrayRef<T> constructor directly. I introduced most of these recently.
ddbde80 ARM: support stack probe emission for Windows on ARM
38dbc84 ConstantHoisting.cpp: Add <tuple> for std::tie, since r207593 removed FileSystem.h, it includes <tuple>.
f3ce0c0 ARM: print COFF function header for Windows on ARM
25d437f [C++11] Use 'nullptr' in tablegen output files.
c6b0620 De-virtualize or remove some methods that have no overrides nor override anything. In some cases remove all together if there are no callers either.
38bd5c4 ARM: move llvm_unreachable use
745fff8 ARM: partially handle 32-bit relocations for WoA
c8556d7 Simplify getSymbolOffset.
91cc143 [ADT] Provide some helpful static_asserts for using operations of the wrong iterator category. These aren't comprehensive, but they have caught the common cases for me and produce much nicer errors.
1ea8589 [DWARF parser] Cleanup code in DWARFDebugLine.
9902128 Implement X86 code generation for musttail
fc288c8 Fix the build with MSVC 2013 by explicitly requesting llvm::make_unique
d17f593 Another missing include for MSVC.
62db473 Fix some 80 cols violations committed in r207539
ba88484 Try to fix the msvc build.
7259f14 raw_ostream: Forward declare OpenFlags and include FileSystem.h only where necessary.
c1ff2d3 R600: Remove duplicate setting of SELECT expansion.
40e455d R600/SI: Custom lower SI_IF and SI_ELSE to avoid machine verifier errors
2a90e44 R600/SI: Only select SALU instructions in the entry or exit block
19a970b R600: optimize the UDIVREM 64 algorithm
ea89cd8 R600: Implement iterative algorithm for udivrem
dbe7f87 R600: Change UDIV/UREM to UDIVREM when legalizing types
78fc9c5 R600: remove unused variable
5253c5c Tidy up.
550b9aa Spelling.
f822dab Tidy up whitespace.
2259a26 Also handle ConstantAggregateZero when optimizing vpermilvar*.
167cb01 Fix MSVC build broken by r207580
00121bb PR19553: Memory leak in RuntimeDyldELF::createObjectImageFromFile
2387e9e [DWARF parser] Cleanup code in DWARFDebugLine.
8263baf Remove tabs.
984f2fc Two fixes to the vpermilvar optimization.
6149bc1 [Windows] Fix assertion failure when passing 'nul' in input to clang.
55deff8 Fix vectorization remarks.
bbea614 Continue slp vectorization even the BB already has vectorized store radar://16641956
156cfdf Add slp vectorization to LTO passes
1363a77 Reapply r207271 without the testcase
52c03fb Add Simple return instruction to Mips fast-isel
b58db22 [DWARF parser] Compress DIEMinimal even further, simplify building DIE tree.
f38f17c SupportTest: Fix test names harder
67f5fca BranchProb: Simplify printing code
a70510a [mips] Remove two more redundant 'let Predicates = [HasStdEnc]' statements that were missed
d419606 Support: Remove out-of-date comments
31413d8 Support: More BlockFrequencyTest => BranchProbabilityTest
3dbface Support: Fix test name
2c252dd Support: BlockFrequencyTest => BranchProbabilityTest
8c4dcca [mips] Remove more redundant 'let Predicates = [HasStdEnc]' statements
07f9612 blockfreq: Defer to BranchProbability::scale() (again)
18f4763 [mips] Remove redundant 'let Predicates = [HasStdEnc]' statements
6919443 blockfreq: Defer to BranchProbability::scale()
81566c5 blockfreq: Remove BlockMass*BlockMass
d699090 Support: remove unnecessary namespace
048f520 Support: Add BranchProbability::scale() and ::scaleByInverse()
f90262a Document recently added sphinx documentation options in CMake.
9c77098 Support: Simplify BranchProbability operators
4afab2a Support: Add unit tests for BranchProbability
4b26377 DwarfDebug: Split the initialization of abstract and non-abstract subprogram DIEs.
ec96ef30 LinkModulesTest.cpp: Reformat.
d294b68 [CMake] Enable llvm/unittests/LinkerTests. It had not been enabled since r199354.
13085ed LinkModulesTest.cpp: Use test-specific Ctx instead of getGlobalContext(). The global context might not be free'd. [vg_leak]
e26c8c2 [ARM64] Disable regression tests for the old JIT.
4551e31 [mips][msa] Use CHECK-LABEL in basic_operations*.ll
4418039 Add optimization remarks to the loop unroller and vectorizer.
edc4595 Parse and create GOT_PREL relocations.
285c5693 [mips][msa] Fix element extraction where the index is variable.
0b4cdf4 Updated the link to the correct URL.
1c5f439 Centralize the handling of the thumb bit.
65baf80 ARM: fix test after change to indirect symbol emission.
d5d3e18 X86: emit hidden stubs into a proper non_lazy_symbol_pointer section.
8ea9566 ARM: emit hidden stubs into a proper non_lazy_symbol_pointer section.
0f79399 [BUG] Fix -Wunused-variable warning in Release mode. Thnx to Kostya Serebryany for pointing.
4370568 AArch64: Mark vector long multiplication as expand.
0f99bc0 fix -Wunused-variable warning in Release mode
e3e08ac AVX-512: optimized a shuffle pattern to VINSERTI64x4. Added intrinsics for VPERMT2PS/PD/D/Q instructions.
c5e41ae [OPENMP][LV][D3423] Respect Hints.Force meta-data for loops in LoopVectorizer
eda7f44 [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves.
0fd57f4 [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. AArch64 edition
a4f9f5e [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition
aab65f8 [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Hexagon edition
e17a026 [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. MSP430 edition
91b10fb [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition
6b7b725 [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. NVPTX edition
e651935 [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. PowerPC edition
c279ae9 [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. R600 edition
47f5087 [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Sparc edition
d4657fb [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. XCore edition
5bbe612 [ARM64]Fix a bug about incorrect operand order in an EXT instruction, which is introduced by r207485.
0850d7f Fix a typo in comment
b913bd4 [ADT] Make the iterator adaptor utility a touch more general by requiring full control over the various parameters to the std::iterator concept / trait thing. This is a precursor for adjusting these things to where you can write a bidirectional iterator wrapping a random access iterator with custom increment and decrement logic.
270f09d [ARM64]Fix a bug when lowering shuffle vector to an EXT instruction. E.g. Mask like <-1, -1, 1, ...> will generate incorrect EXT index.
aa475b4 None of these targets actually define their own CFI_INSTRUCTION opcode so there's no reason to use the target namespace for it rather than TargetOpcode.
dc1721b 80-column fixups.
3756fea 80-column, tab characters, comment fixups.
4ffd83b Fix 80-columns, tab characters, and comments.
4ef6c09 [ADT] Teach PointerUnion to support assignment directly from nullptr to clear it out.
b86c32f [cleanup] Add some actual positive tests for equality. This unittest never actually compared for equality two pointer unions that were equal. Fortunately, things seem to work. =]
e3976b2 [cleanup] Make this test use a proper fixture rather than globals.
e753df3 [cleanup] Fix the whitespace in this test. Notably, correct spacing around pointer types.
d13e09a Remove DwarfUnit::LabelRange since it's unused.
af09fb6 Revert r207271 for now. This commit introduced a test case that ran clang directly from the LLVM test suite! That doesn't work. I've followed up on the review thread to try and get a viable solution sorted out, but trying to get the tree clean here.
07c3167 [DWARF parser] DWARFDebugFrame: Make FrameEntry struct smaller.
4fc8298 AddressPool::HasBeenUsed: Add comment explaining the use-case for this flag.
2f9c1f2 [DWARF parser] DWARFDebugFrame: use unique_ptr instead of raw pointer
d200f07 DIE: Document some learnings about why the world isn't perfect.
dc9a4f7 [DWARF parser] Simplify DWARFDebugAranges generation.
686bd64 Satisfy sub-optimal GCC warning.
916c245 We already calculate WideVT above, just reuse it.
e5d5922 Add (...) around && clause to appeace gcc 4.8's warning
00f0627 Teach add_sphinx_target() to respect the LLVM_INSTALL_TOOLCHAIN_ONLY CMake option.
9feea1a DebugInfo: Just store the DIE by value in the DwarfUnit
c5211fe Pass DIEs to DwarfUnit constructors by unique_ptr.
1c50955 Add an option for evaluating past symbols.
dc352c1 Reformat, 80-col, tab characters, etc.
7c17e94 Improve explicit memory ownership of DIEs
becd8e7 DwarfDebug: Omit DW_AT_object_pointer on inlined_subroutines
744d155 blockfreq: Remove more extra typenames from r207438
57dc929 blockfreq: Remove extra typename from r207438
96837f7 Reapply "blockfreq: Approximate irreducible control flow"
aec1f2c [X86] Add more details in the comments of X86TargetLowering::getScalingFactorCost.
4e0cc51 [PM] Add pass run listeners to the pass manager.
c430d3f Fix comment
99a4b59 Modify the assertion in DIBuilder.cpp to cover the DWARF 5 languages
6426666 InstCombine: don't drop 'inalloca' in PromoteCastOfAllocation (PR19569)
ac22ae7 Simplify ELFObjectWriter::ExecutePostLayoutBinding.
2f3691e [ARM64] Fix an issue where we were always assuming a copy was coming from a D subregister.
bb626f0 Simplify isLocal().
fc1cc11 ARM: stop passing unused values up the TableGen hierarchy.
0af058f Don't include an invalid symbol in the symbol table.
086e9aa List the entire symbol table in this test.
c074b09 Produce an error instead of a crash in an expr we cannot represent.
696bbc5 Fix gcc -Wsign-compare warning in X86DisassemblerTables.cpp.
16aac43 ARM64: diagnose use of v16-v31 in certain indexed NEON instructions.
db0b52c [LCG] Add the most basic of edge insertion to the lazy call graph. This just handles the pre-DFS case. Also add some test cases for this case to make sure it works.
e52aad4 [LCG] Make the return of the IntraSCC removal method actually match its contract (and be much more useful). It now provides exactly the post-order traversal a caller might need to perform on newly formed SCCs.
55eab08 Fix rampant quadratic behavior in UpdatePHINodes. The operation of mapping from a basic block to an incoming value, either for removal or just lookup, is linear in the number of predecessors, and we were doing this for every entry in the 'Preds' list which is in many cases almost all of them!
f1a7403 Fix very poor compile-time in PR19499 due to excessive tree walks in domtree. When finding a nearest common dominator, if neither A dominates B nor B dominates A, we immediately resorted to a tree walk. The tree walk here is *particularly* expensive because we have to build a (potentially very large) set for one side's dominators and compare it with the other side's.
859530f If building with LLVM_ENABLE_DOXYGEN and using CMake then abort while configuring if doxygen could not be found. This is desirable because if the build is going to fail then it should fail as early as possible.
d6d57bc [inliner] Significantly improve the compile time in cases like PR19499 by avoiding inlining massive switches merely because they have no instructions in them. These switches still show up where we fail to form lookup tables, and in those cases they are actually going to cause a very significant code size hit anyways, so inlining them is not the right call. The right way to fix any performance regressions stemming from this is to enhance the switch-to-lookup-table logic to fire in more places.
0ddc744 [ARM64]Fix a bug cannot select UQSHL/SQSHL with constant i64 shift amount.
7d811a5 Convert more SelectionDAG functions to use ArrayRef.
c34a25d [C++] Use 'nullptr'.
1c5e4e5 MC: range-loopify
98e5006 Use raw_ostream and Format.h on Windows so that we don't have to roll our own portability system to cope without snprintf.
d1536b3 Update the Windows TimeValue formatting to match the new formatting on Unix-like OSes.
7a36912 Update tests to use the new format of printing a TimeValue. It's a bit odd to have the output of 'llvm-ar tv' depend on the format of TimeValue::str(), but that's what we have today. If anyone needs the output to remain compatible with GNU ar or old versions of llvm-ar, just shout and I'll switch the code to manually format its times.
7f19464 Teach the pass manager's execution dump to print the current time before each line. This is particularly nice for tracking which run of a particular pass over a particular function was slow.
befce90 CodeGen/AsmPrinter.h: Fix \param in r207369. [-Wdocumentation]
a8e8d83 Convert AddNodeIDNode and SelectionDAG::getNodeIfExiists to use ArrayRef<SDValue>
2dc04b4 Add emitThumbSet to the arm target streamer.
fe2da45 Fix an assert I accidentally broke to hopefully fix the build bots.
a440b0f Convert SelectionDAGISel::MorphNode to use ArrayRef.
f564ea3 Convert SelectionDAG::MorphNodeTo to use ArrayRef.
1aa05f3 Convert SelectionDAG::SelectNodeTo to use ArrayRef.
7e1ae6d Convert one last signature of getNode to take an ArrayRef of SDUse.
479c817 Convert SDNode constructor to use ArrayRef.
a7f892b Convert SelectionDAG::getMergeValues to use ArrayRef.
e046664 Const-correct SelectionDAG::getAtomic.
d8e141c Clarify the doxygen comment for AsmPrinter::EmitDwarfRegOpPiece and add default arguments to the function.
3551384 X86TTI: Adjust sdiv cost now that we can lower it on plain SSE2.
ad1f916 X86: If SSE4.1 is missing lower SMUL_LOHI of v4i32 to pmuludq and fix up the high parts.
75955d8 Debug info: Refactor EmitDwarfRegOpPiece to be a member function of AsmPrinter. No functional change.
eccd574 Debug Info: Prepare DebugLocEntry to handle more than a single value per entry. This is in preparation for generic DW_OP_piece support. No functional change so far.
14a1490 Make getOrCreateSymbolData non virtual.
70883a2 Avoid using MCSymbolData on the asm streamer.
189a2a9 MC: duplicate .file test for WoA (SVN r207341)
38df4bd Make helper functions static.
35d4ad3 Remove redundant explicit default initialization of non-trivially constructed member.
1a6bd31 Add the default constructor DwarfAccelTable::DataArray() to initialize (MCSymbol*)StrSym explicitly.
1d7595a Revert r206989, "Mark llvm/test/BugPoint/compile-custom.ll as XFAIL:vg_leak." It has been fixed since r207265.
3fd5902 Update test not to check for a shuffle of an all-zero vector.
55e03c1 SelectionDAG: Aggressively fold shuffles of constant splats.
f090afd ARM: MSVC does not support = default
103f947 MC: restore behaviour of defaulting to ELF
b7c41fe tests: Windows ARM now supports object emission
86e4b7d COFF: move ARM COFF test to ARM directory
2d0d7fd Add WoA object file emission support
6c76c95 MC: create X86WinCOFFStreamer for target specific behaviour
d54ec77 MC: rename WinCOFFStreamer and move declaration out-of-line
31c99dd MC: style tweaks to WinCOFFStreamer
2c2af22 ARM: Support SingleParameterDotFile on WoA
e3a8e53 [LCG] Re-organize the methods for mutating a call graph to make their API requirements much more obvious.
eb3430c DAGCombiner: Simplify code a bit, make more transforms work with vectors.
eadbda3 [LCG] Add some pedantry to the use of ptrdiff_t to appease build bots.
bbec604 [LCG] Eliminate more boiler plate by using the iterator facade base class.
b9acdb7 [LCG] Switch the node iterator to use the new fancy adaptor base. This is *much* cleaner, makes the iterator a full random access iterator, etc.
c37bb3a DwarfDebug: Roll argument into call.
5fc870d DebugInfo: Fix and test a regression caused by r207263 causing the DW_AT_object_pointer to go missing on blocks
708d680 Mark the growing path in SmallVector::push_back as cold.
86d321f Replace std::vector with SmallVector for some small, known size vectors.
72c9359 Convert getMemIntrinsicNode to take ArrayRef of SDValue instead of pointer and size.
a829ec9 Trivial test commit.
80d8db7 Convert SelectionDAG::getNode methods to use ArrayRef<SDValue>.
57d7597 Remove an unused version of getMemIntrinsicNode and getNode. Additionally, these were calling makeVTList with the pointers passed in which would were unlikely to belong to SelectionDAG and likely would have just been stack pointers.
d7d6543 Include C++ source for debug info test case committed in r207323
4f18a81 DWARF Type Units: Avoid emitting type units under fission if the type requires an address.
1ecbfb4 Print X86ISD::PMULDQ nodes properly in debug output.
f95477d DwarfDebug: Minor refactoring around type unit construction
d9ced71 X86TTI: i16/i32 vector div with a constant (splat) divisor are reasonably cheap now.
9f2c218 X86: Lower SMUL_LOHI of v4i32 to pmuldq when SSE4.1 is available.
fb625ea X86: Add patterns for MULHU/MULHS of v8i16 and v16i16.
75125c1 Rip out X86-specific vector SDIV lowering, make the corresponding DAGCombiner transform work on vectors.
aab6231 DAGCombiner: Turn divs of vector splats into vectorized multiplications.
05e00b6 X86: Custom lower v4i32 UMUL_LOHI into 2 pmuludqs.
abd7ca0 Revert r206749 till a final decision about the intrinsics is made.
9a1fab3 [LCG] Rather than removing nodes from the SCC entry set when we process them, just skip over any DFS-numbered nodes when finding the next root of a DFS. This allows the entry set to just be a vector as we populate it from a uniqued source. It also removes the possibility for a linear scan of the entry set to actually do the removal which can make things go quadratic if we get unlucky.
797bbce [LCG] Rotate the full SCC finding algorithm to avoid round-trips through the DFS stack for leaves in the call graph. As mentioned in my previous commit, this is particularly interesting for graphs which have high fan out but low connectivity resulting in many leaves. For such graphs, this can remove a large % of the DFS stack traffic even though it doesn't make the stack much smaller.
8495669 [LCG] Hoist the main DFS loop out of the edge removal function. This makes working through the worklist much cleaner, and makes it possible to avoid the 'bool-to-continue-the-outer-loop' hack. Not a huge difference, but I think this is approaching as polished as I can make it.
b79f1fe RecursivelyDeleteTriviallyDeadInstructions() could remove more than 1 instruction. The caller need to be aware of this and adjust instruction iterators accordingly.
67a1d85 Restore CloneFunction.cpp which got accidently overwritten by previous backout of r207303
dec9a2c [LCG] In the incremental SCC re-formation, lift the node currently being processed in the DFS out of the stack completely. Keep it exclusively in a variable. Re-shuffle some code structure to make this easier. This can have a very dramatic effect in some cases because call graphs tend to look like a high fan-out spanning tree. As a consequence, there are a large number of leaf nodes in the graph, and this technique causes leaf nodes to never even go into the stack. While this only reduces the max depth by 1, it may cause the total number of round trips through the stack to drop by a lot.
0c8f0bf [LCG] Special case the removal of self edges. These don't impact the SCC graph in any way because we don't track edges in the SCC graph, just nodes. This also lets us add a nice assert about the invariant that we're working on at least a certain number of nodes within the SCC.
d10a9fb [DAG] During DAG legalization keep opaque constants even after expanding.
9d40485 Revert commit r207302 since build failures have been reported.
4c9277b RecursivelyDeleteTriviallyDeadInstructions() could remove more than 1 instruction. The caller need to be aware of this and adjust instruction iterators accordingly.
9e93e47 [X86] Implement TargetLowering::getScalingFactorCost hook. Scaling factors are not free on X86 because every "complex" addressing mode breaks the related instruction into 2 allocations instead of 1.
64e1be4 [LCG] Refactor the duplicated code I added in my last commit here into a helper function. Also factor the other two places where we did the same thing into the helper function. =] Much cleaner this way. NFC.
96db9b8 [InstCombine][X86] Teach how to fold calls to SSE2/AVX2 packed logical shift right intrinsics.
f3a9eb1 Add missing include guards and missing #include, found by modules build.
31e75e6 Appease the almighty buildbots.
3c02165 Optimization for certain shufflevector by using insertps.
cee7abf Revert "blockfreq: Approximate irreducible control flow"
d905bba blockfreq: Approximate irreducible control flow
2bfbbd5 Unbreak the gdb buildbot by not lowering dbg.declare intrinsics for arrays.
eed2620 Make sure that rangelists are also relative to the compile unit low_pc similar to location lists.
d1f361a R600: Fix function name printing in LowerCall
82a35bf DwarfAccelTable: Store the string symbol in the accelerator table to avoid duplicate lookup.
817f5e2 Add an -mattr option to the gold plugin to support subtarget features in LTO
c744a37 Fix missing include
891481f Encapsulate the DWARF string pool in a separate type.
c87722c [DWARF parser] Cleanup code in DWARFDebugAranges.
bfd66f5 [DWARF parser] Cleanup code in DWARFDebugAbbrev.
d761cc1 [LoopStrengthReduce] Don't trim formula that uses a subset of required registers
d9dc957 SCC: Use the reference typedef
988b78a This reapplies r207235 with an additional bugfixes caught by the msan buildbot - do not insert debug intrinsics before phi nodes.
31494cb MCAssembler: Simplify implementation of const variants of getSymbolData by calling one implementation from the other.
5ed33e0 BugPoint: Fix some memory leaks.
9c6a820 DwarfUnit: Remove unused function
12d5224 DIE: Pass ownership of children via std::unique_ptr rather than raw pointer.
172515f DIEEntry: Refer to the specified DIE via reference rather than pointer.
d48f5ef DwarfUnit: return by reference from createAndAddDIE
2d18167 blockfreq: Further shift logic to LoopData
eae0809 SCC: Provide operator->() through iterator_facade_base
4870dae enable fast isel tablegen files for Mips
5410b5a Return DIE by reference instead of pointer from DwarfUnit::getUnitDie
d86dbcc SCC: Remove non-const operator*()
f6e0037 DwarfUnit: Suddently, DIE references, everywhere.
db8c1ae SCC: Change clients to use const, NFC
5a6277a SCC: Doxygen-ize comments, NFC
25c74de Revert "This reapplies r207130 with an additional testcase+and a missing check for"
ad56833 SCC: Un-inline long functions
f40905c SCC: Remove redundant inline keywords, NFC
f7c84bf Make sure that DSUB does not duplicate the pattern of DSUBU
25bc383 ARM: remove @llvm.arm.sevl
3bd471d [inline cold threshold] Command line argument for inline threshold will override the default cold threshold.
7d772dd Refactor some common logic in DwarfUnit::constructVariableDIE and pass non-null DIE by reference to DbgVariable::setDIE
04f826c ARM: provide a new generic hint intrinsic
5d71d87 PR19554: Fix some memory leaks in DIEHashTest.cpp
a067162 Reapply r207135 without modifications.
7e96d88 This reapplies r207130 with an additional testcase+and a missing check for AllocaInst that was missing in one location. Debug info for optimized code: Support variables that are on the stack and described by DBG_VALUEs during their lifetime.
e1cd931 [ARM64] When compiling for ELF in PIC mode, local symbols shouldn't go through the GOT
0c4797c [ARM64] Handle fp128 for parameter passing on stack
5c4d157 ARM64: fix assertion in ISelDAGToDAG
8aa927a [ARM64] Print preferred aliases for SFBM/UBFM in InstPrinter
09d1d3d [LCG] During the incremental update of an SCC, switch to using the SCCMap to test for nodes that have been re-added to the root SCC rather than a set vector. We already have done the SCCMap lookup, we juts need to test it in two different ways. In turn, do most of the processing of these nodes as they go into the root SCC rather than lazily. This simplifies the final loop to just stitch the root SCC into its children's parent sets. No functionlatiy changed.
435b9bd [ARM64] Add RUN lines for "–target arm64 –mattr=-fp-armv8" on AArch64 no-fp test.
78eedb1 [ARM64] Support crc predicate on ARM64.
7b7a21b [LCG] During the incremental re-build of an SCC after removing an edge, remove the nodes in the SCC from the SCC map entirely prior to the DFS walk. This allows the SCC map to represent both the state of not-yet-re-added-to-an-SCC and added-back-to-this-SCC independently. The first is being missing from the SCC map, the second is mapping back to 'this'. In a subsequent commit, I'm going to use this property to simplify the new node list for this SCC.
cea05a5 [LCG] Rather than doing a linear time SmallSetVector removal of each child from the worklist, wait until we actually need to pop another element off of the worklist and skip over any that were already visited by the DFS. This also enables swapping the nodes of the SCC into the worklist. No functionality changed.
6b168d6 [LCG] Remove a completely unnecessary loop. It wasn't even doing any thing, just mucking up the code. I feel bad that I even wrote this loop. Very sorry. The diff is huge because of the indent change, but I promise all this is doing is realizing that the outer two loops were actually the exact same loops, and we didn't need two of them.
fe0f018 [LCG] Now that the loop structure of the core SCC finding routine is factored into a more reasonable form, replace the tail call with a simple outer-loop continuation. It's sad that C++ makes this so awkward to write, but it seems more direct and clear than the tail call at this point.
64b5470 X86: convert object streamer selection to a switch
53258e6 [python] Fix getting section contents.
3d79151 Add missing cpp file header
c848b1b [C++] Use 'nullptr'. Target edition.
8d7221c [C++] Use 'nullptr'. Transforms edition.
39087bf blockfreq: Only one mass distribution per node
9c98914 blockfreq: Document assertion
ebda12e blockfreq: Use better branch weights in multiexit test
e838db3 blockfreq: Clean up irreducible testcases
16df231 blockfreq: Document high-level functions
7cb8011 blockfreq: Remove dead code
58aa607 blockfreq: Scale LoopData::Scale on the way down
f47649f blockfreq: unwrapLoopPackage() => unwrapLoop()
ed306d0 blockfreq: Pass the Loop directly into unwrapLoopPackage()
e249a45 blockfreq: Unwrap from Loops
3475765 blockfreq: Separate unwrapLoops() from finalizeMetrics()
e839ab2 blockfreq: LoopData::MemberList => NodeList
7ed8c05 blockfreq: Expose getPackagedNode()
3df8534 blockfreq: Store the header with the members
7e26181 blockfreq: Encapsulate LoopData::Header
625063d blockfreq: Embed Loop hierarchy in LoopData
336238c blockfreq: Use LoopData directly
1e3d420 blockfreq: Stop using range-based for to traverse Loops
6f1f9f4 blockfreq: Use a std::list for Loops
573faec [C++] Use 'nullptr'. Tools edition.
ac16f0e Allow vectorization of bit intrinsics in BB Vectorizer. This patch adds support for vectorization of  bit intrinsics such as bswap,ctpop,ctlz,cttz.
38ac7e9 ProfileData: Treat missing function counts as malformed
b33022e Change llvm-config --ldflags to report ${CMAKE_CXX_LINK_FLAGS}
6715d6e Fix quadratic performance during debug compression due to sections x symbols iteration.
680311d Revert "This reapplies r207130 with an additional testcase+and a missing check for" Typo in testcase.
50e7ba1 This reapplies r207130 with an additional testcase+and a missing check for AllocaInst that was missing in one location. Debug info for optimized code: Support variables that are on the stack and described by DBG_VALUEs during their lifetime.
ab6ab3c Revert "Debug info for optimized code: Support variables that are on the stack and"
45588a0 Revert "Debug info: Let dbg.values inserted by LowerDbgDeclare inherit the location"
e434cc2 Add missing include, found by modules build.
12da0f2 Function defined in a header should be inline. Found by modules build.
1749b55 [DWARF parser] Make a few methods non-public
a189d1a [DWARF parser] DWARFUnit ctor doesn't need both parsed and raw .debug_abbrev section. Remove the former.
f93114e [DWARF parser] Simplify and re-format a method

git-subtree-dir: llvm
git-subtree-split: 61e341e0bfcc83ec865fe763759e66ab3c2feba5
Merge with LLVM
Squashed 'llvm/tools/clang/' changes from 57218ee..d9ad71c

d9ad71c ASTMatchers.h: Appease msc17.
16bac88 Parsing/Sema for OMPCollapseClause. Actual usage in Sema for collapsing loops will in some future patch.
e0652d1 Make equalsNode work with pointers to subtypes.
80678be Adds child traversal matchers for IfStmt's then and else branches.
30ab174 Allow hasBody on CXXForRangeStmt nodes and update the docs.
1843a20 [C++11] Use 'nullptr'. StaticAnalyzer edition.
9d0a0d8 Rejecting the mutable specifier on a freestanding type declaration, instead of supporting it as a "extension" (which serves no purpose). Un-XFAILing the test for mutable specifiers.
fcebf22 clang-format: Split up moveStateToNextToken.
87b3c14 clang-format: Keep '{' of dict literals on the same line in Allman style
6b8c585 [C++11] Use 'nullptr'. Sema edition.
b0449de [C++11] Use 'nullptr'.
1421a20 Sema: Add dll attribute tests for member functions
0fae7fe Sema: Add dll attribute tests for variable templates
6fa6ef4 IRGen: Add more tests for dll attributes
51d79b1 Fix some misplaced spaces around 'override'
8d681a2 AArch64/ARM64: rename ARM64 components to AArch64
646ddb5 AArch64/ARM64: update Clang after AArch64 removal.
7302a74 CXXInfo memory should be released after calling the destructor instead of before. The wrong order had no effect since Deallocate() does nothing right now, but we may replace allocator in the future.
da3cc83 This test doesn't need -O2 -disable-llvm-optzns
6fd2f7a Recommit r209532 with -ffreestanding.
c10ffe5 Remove test while I investigate why the test is breaking the bots.
171d8e4 Recompute the injected class name type for a class template specialization rather than saving and restoring it.
3a32ee6 XFAIL test which is breaking some of the build bots.
8756959 Use comdats to avoid double initialization of weak data
3ccca48 [modules] If a referenced-but-not-instantiated class template specialization gets explicitly specialized, don't reuse the previous class template specialization declaration as a new declaration. The benefit here is fairly marginal, it harms source fidelity, and this is horrible to model if the specialization was imported from another module (without this change, it asserts or worse).
63c4289 Emit used/dllexport inline method definitions in nested classes (PR19743, PR11170)
98a84f6 Don't suppress warning about dllimport on typedefs etc. in MicrosoftExt mode
cb6ec96 Sema: Add more tests for dll attributes on inline functions
a529061 Fix broken FileCheck prefix
fd0044e Fix typo
68d890d Stopgap fix for finding module for a file mapped in the VFS
4c92d44 Add the hasRangeInit() matcher for range-based for loop.
5e15113 Test case for r209489.
a492ec1 Make dead return statement detection more robust against changes in the CFG.
9c4a4a0 Make the ParentVector default to size 2.
5f630f2 revert "r209526 List the function/method name in the index page of scan-build " Depends on http://reviews.llvm.org/D3762
32f41f2 List the function/method name in the index page of scan-build
e5983b5 [MS-ABI] Silence warning from r209523 no functional change.
2ae8566 Replace system() by native perl calls
7ed2a98 [MS-ABI] Implements MS-compatible RTTI Enables the emission of MS-compatible RTTI data structures for use with typeid, dynamic_cast and exceptions.  Does not implement dynamic_cast or exceptions.  As an artiface, typeid works in some cases but proper support an testing will coming in a subsequent patch.
0ddd258 [test] Force a triple in the pragma optimize test due to expected mangled names.
e2190cc PR19352 - getLocation() points to the wrong position for FriendDecls
81d690d Implemented support for "pragma clang optimize on/off", based on attribute 'optnone'.
b1d67d0 Fix '-main-file-name <name>' so that it is used for the ModuleID.
41a49d9 Clean DiagRanges. Fix a possible problem introduced in r209468.
a67eeb0 Fix a bug in xmmintrin.h.
71e63e3 Don't set unnamed_addr in CreateRuntimeVariable.
80866d0 Avoid allocating extra memory to handle the lazy definition data pointer for CXXRecordDecls when modules is enabled.
6d1cc57 Don't reduce the stack protector level given -fstack-protector.
1e2e58f Use error_code::success() instead of make_error_code(llvm::errc::success).
9cd6c51 Unify the name of compiler-rt builtins library on Linux.
66936e1 If a class template specialization from one module has its definition instantiated in another module, and the instantiation uses a partial specialization, include the partial specialization and its template arguments in the update record. We'll need them if someone imports the second module and tries to instantiate a member of the template.
3175e5f Don't warn about undefined inline functions if they're dllexport/import
c2f2b74 Remove limits on the number of fix-it hints and ranges in the DiagnosticsEngine.
3c19b12 Improved location for non-constant initializers diagnostics.
2a9eb57 Forgot to add updated datalayout test
2804212 Update R600 datalayout
e156960 An inline function redeclaration does not drop the dllimport attribute
431f0c2 clang-format: Add basic test for -style=none.
a065461 clang-format: Introduce DisableFormat that prevents formatting.
b362f62 clang-format: Don't use Allman brace breaking for ObjC blocks.
370a384 clang-format: Fix corner case in AllowShortBlocksOnASingleLine.
d16325c MachO: look for nearby tools on all MachO platforms.
f8f06e3 Revert "TMP"
8b409a0 MachO: perform ARM ABI detection even for non-Darwin triples.
01b389c TMP
6bb020b Use stack protector strong by default on OpenBSD.
8231758 clang-format: Fix braced list detection.
75ca797 clang-format: Fix incorrect braced init identification.
0ae1b95 clang-format: Store pointers to seen formatting states.
fc95a27 clang-format: Fix vim-integration for empty files.
25c2990 clang-format: [JS] Understand line breaks in concatenated strings.
643549b clang-format: Correctly identify multiplications in braces init lists.
b725d27 This patch adds a helper class (CGLoopInfo) for marking memory instructions with llvm.mem.parallel_loop_access metadata. It also adds a simple initial version of codegen for pragma omp simd (it will change in the future to support all the clauses).
5da13c6 clang-format: Correctly calculate line lenghts for nest blocks.
1787f2e Frontend: Propagate ASTReaderListener API in ChainedASTReaderListener
5017bb6 [C++11] Use 'nullptr'. Serialization edition.
d24fb6c [C++11] Use 'nullptr'. Frontend edition.
b1ac4f7 Add hasSameType overload to ASTContext for Type pointers.  Switch a type comparison check to use this instead of calling Type::getCanonicalTypeInternal
9fefd02 VirtualFileSystem: Fix a few directory traversal bugs in VFSWriter
b717625 Provide an aka for the C++ operator name macro diagnostic
ebfec0c Sema: Implement DR244
6a81e83 cindex/test_cursor.py: no need to skip implicit decls in tests
740289c Remove outdated diagnostic.
94d5954 Improved recovery of switch statement
4b077ab Move virtual methods out of line.
0a0e27d Make the parent-map use significantly less memory.
eea3b58 clang-format: Fix corner case working around one-per-line dict literals.
ba21568 clang-format: Fix incorrect macro call detection.
c890573 clang-format: [JS] Support different function literal style.
4b98993 Make global named registers internal variables
9837842 DeclVisitor is not used here.
4f6988e Preprocessor: support defined() with operator names for MS compatibility
d685fc0 [C++11] Use 'nullptr'. Parser edition.
d1008e5 [C++11] Use 'nullptr'. CodeGen edition.
7a1672c utils/CmpDriver: add brief documentation to indicate what this does
16b9782 SourceManager: Use setMainFileID() consistently
041c5c1 [objcmt] Make sure we don't edit the return type to add 'instancetype' if the return type is already that.
3cdece9 Update for paired llvm commit with AsmVerbose.
18ab7ee Remove test. Replacing it with a backend test with the optimized IR.
e4fee1f libclang: Give each VirtualFileOverlay unit test its own name
8a868d3 Make this test emit llvm IR rather than assembly.
f1b460f VirtualFileSystem: Fix false positives in YAMLVFSWriter::containedIn
3d9f4d1 Reduce string duplication
214f049 RAV reunification: merge Lambda body visitation to DRAV
e4b04d2 RAV reunification: merge DISPATCH_STMT() macro back to standard RAV
88cfb3c RAV reunification: merge r190728
99b5a85 VirtualFileSystem: Add YAMLVFSWriter to generate VFS mapping files
addbfc9 Update for llvm change to avoid having global flag setting in TargetMachine.
4bc6889 Cleaning up some range-based for loops so that the automatic type deduction is more explicit about pointers and const. Did some minor drive-by const correctness fixes and identifier updates as well. No functional changes.
0017c7e Revert r209231, "Update AttributeReference.rst."
4a57f4d Update AttributeReference.rst.
8f4c45b Fix testcase from r209228
ec6a7da GlobalValue: Testcase for hidden visibility and local linkage
a87f570 Fixed spelling.
b85e941 Add a check for tautological bitwise comparisons to -Wtautological-compare.
ca90717 Make the wording for the flatten docs a little clearer.
ce0b2e1 Fix testcase for case.
7e9a34d Implement the flatten attribute.
fa11365 Clean up language and grammar.
a511c92 clang/test/SemaCXX/err_init_conversion_failed.cpp: Tweak for i686-msvc.
8a04753 None of these attributes require FunctionTemplate to be explicitly listed as part of their subject definition. FunctionTemplateDecls are not what the attribute appertains to in the first place -- it attaches to the underlying FunctionDecl.
b46eb10 clang-format: [JS] Understand top-level function literals properly.
17f91dc XCore target: sort typestring enum fields alphabetically
e3870d8 Speculative fix for Windows buildbot after r209138
070be84 [C++11] Use 'nullptr'. Tooling edition.
fa36169 [C++11] Use 'nullptr'. Analysis edition.
7af6e0b Fix diagnostic message for member function pointer mismatches where one of the classes is a template argument.
1469f39 Ignore void returning overloaded functions fom -Wunused-comparison.  PR19791.
ea6edcb ARCMT/GC-check-warn-nsalloc.m: don't provide a diag group
7fb0923 Demote the "Debug Info Version" module flag to llvm::Module::Warning behavior on mismatch. The AutoUpgrader will drop incompatible debug info any way and also emit a warning diagnostic for it.
5118df4 Using SmallString and correct addr var
5db2415 Improve test verification from r209172
5946f35 Get ARCMT/GC-check-warn-nsalloc.m working
9bb2c58 Fix usage of string when StringRef was needed
d5358b6 [modules] Fix ODR violation: there's another clang::TypeLocVisitor elsewhere.
33b7885 [module] Remove a header that isn't used and doesn't compile.
edea169 Implement the no_split_stack attribute.
6ea7381 If two sibling modules declare the same entity, and we indirectly pull a declaration of that entity in from one of those modules, keep track of the fact that we've not completed the redeclaration chain yet so that we can pull the remaining declarations in from the other module if they're needed.
30cd91e Allow dllimport on function definitions when they're template instantiations
5df2310 Non-allocatable Global Named Register
c83d828 Removing an XFAIL which shouldn't apply. We no longer care about MSVC 9, and this test probably should not have been XFAILed everywhere regardless. The test passes on Windows with MSVC 12.
0974690 test/CodeGenCXX/dllexport.cpp: -O2 and -disable-llvm-optzns aren't nedded
2e7f8be Don't refresh stat() info for pcm files
1919a36 This test doesn't need to be XFAILed anywhere; it just needed to be updated to the appropriate diagnostic wording.
735d818 Fix use-after-free and spurious error during module load
76790c5 [analyzer] Alpha and implicit checker lists, expand/collapse feature.
323f398 This test is XFAILed on Windows, but I cannot see a reason as to why it should be failing. The original commit which XFAILed this was r111581, which suggested something was wrong with file remapping, but that may have been subsequently fixed.
b0d2c9b Fixing some comments in this test. No functional changes.
5e16ee0 [OpenCL] Reject reqd_work_group_size(X, Y, Z) where X, Y or Z == 0.
066aa1a Pass -gdwarf-N options to integrated assembler
608c7f7 ARM: PCS non-compliance when struct is padded to avoid register/stack split, and requires internal padding
d2510d5 Make the ARCMT tests self-contained.
2e43cf4 clang-format: Don't force line breaks in ObjC calls with ColumnLimit 0.
d59cba5 clang-format: [JS] Support ES6 destructuring assignments.
f805b0c clang-format: [JS] Support for EC6 arrow functions.
cea7244 RAV reunification: MSPropertyRefExpr visitation
0a57cf6 RAV reunification: merge r162133 (visit the TypeLoc when RecursiveASTVisitor visits a CompoundLiteralExpr)
b6ad425 Ongoing RAV reunification
c480f5d Format the two RecursiveASTVisitors
4db4ffd Begin RAV reunification: s/DataRecursiveASTVisitor/RecursiveASTVisitor/
1afad8c Remove historical Unicode TODOs
b689843 Remove unused diagnostic.
d1376d1 Driver: force restricted IT blocks for Windows on ARM
da176c6 [C++11] Use 'nullptr'. Lex edition.
9d83a93 Update for llvm api change.
6b9d068 Update for llvm api change.
9369232 [C++11] Use 'nullptr'. ASTMatchers edition.
03208ad [C++11] Use 'nullptr'. Driver edition.
c6bbecb CodeGen: remove MinGW and Cygwin legacy entries
9db6786 Provide and use a safe Token::getRawIdentifier() accessor
5027d6f More fixes for isBetterOverloadCandidate not being a strict weak ordering. The bug was obvious from inspection, figuring out a way to test it was... less so.
0c6c783 [objcmt] Don't wrap a PCH generation action with a ObjCMigrateAction one, it messes up the PCH file.
ac3a79c Switch to a more efficient expression of this check.
44d9ece Correct incoherent function versus function template partial ordering for conversion operators (the comparison could claim that two conversion operators are both better than each other). Actually implement DR495, rather than passing its test by chance because the declarations happened to be in the "lucky" order.
22062cf Tweak diagnostic wording for init list narrowing
9785cd7 Add missed file from r209046.
3ad9bfa If a declaration is loaded, and then a module import adds a redeclaration, then ensure that querying the first declaration for its most recent declaration checks for redeclarations from the imported module.
db597e2 Use getAliasee instead of getAliasedGlobal.
27846ec Missed a ! in the if statement when these were being set and the options are inverted in clang and llvm.
70c7eda Update for llvm api change.
2cfcfd2 [ASTMatchers] Move the 'isImplicit' matcher from CXXConstructorDecl to Decl.
0bfe35e Merge a couple of copy-and-pasted functions
a4ba244 Rename SourceManager::createFileIDForMemBuffer()
54cfbfb Tooling: use stderr, not stdout for missing command line messages
01920cf Update for llvm API change.
bcfa453 Improve a scan-build message
5b07cec InstrProf: Look for the PIC-version of the profile runtime
4a449d0 Push implicitly-declared allocation functions into the IdResolver. Otherwise, declaration merging in modules is unable to find them and we get bogus errors and even crashes.
3de046a Replace a fake enum class with the real thing.
74a4aaa Switch another write_escaped to yaml::escape
eaad5be InstrProf: Set profile data to visibility hidden
efed1a7 test/CodeGenCXX/dllexport.cpp: we already correctly emit b() even when it's not used, because CodeGenModule::EmitGlobal consults ASTContext::DeclMustBeEmitted via CodeGenModule::MayDeferGeneration.
80ace8a MS ABI: Use musttail for thunk IR generation
82893e7 Eliminate DefaultImageName from the Driver constructor
61e1f5c Allow dllimport/dllexport on inline functions and adjust the linkage.
b441500 Thread Safety Analysis: fixes to SExpr pretty printing.
3d86cec Refactoring another for loop to use a range-based for loop instead. Also cleaned up a bit of formatting. No functional changes intended.
d29beb9 Refactoring some for loops to use range-based for loops instead. No functional changes intended.
d23fd9a Use the virtual name of headers when searching for a module
bf45a93 clang-format: Fix Sphinx build error.
cc11f45 C++11 - Use nullptr in lib/Sema/SemaOpenMP.cpp and some reformatting (no functional changes).
e1a39ac ARM64: update tests now that we print "mov" & "mvn".
a9915c0 AArch64: update test after LLVM CodeGen change
7eaa924 AST: Remove dead-code/update reference to standard
bef5d79 [libclang] Introduce clang_Module_isSystem(), which returns non-zero if the given CXModule is a system one.
537ec10 Replace completely bogus ambiguous-compound-literal-in-C++ code with something that isn't always wrong.
ae2d067 PR19748: Make sure we don't lose colon protection after the parenthesized type-id in a cast-expression.
89a69a8 Fix typos
fde5f97 Revert Itanium parts of "Don't copy objects with trivial, deleted copy ctors"
8454a4b Fill in the options in the MCOptions struct directly like the other options.
be8977c Thread Safety Analysis: add new node types to thread safety TIL. This fills in a few missing gaps in functionality.
5adc3bb PR19742: cv-qualifiers and ref-qualifiers aren't allowed on functions within pointer and reference types, even if those types are produced by template instantiation.
f1fc444 When an overloaded comparison operator returns a reference, do not consider it for -Wunused-comparion warnings.  This fixes PR19724.
1e80e4c [liblang] Introduce clang_getModuleForFile, which given a CXFile header file, returns the module that contains it, if one exists.
c85839c Make verbose clang builds also build compiler_rt verbosely
e37df58 Converting some for loops to use range-based for loops. No functional changes intended.
a22c9e3 Rename CodeGenModule::getLLVMLinkageforDeclarator -> getLLVMLinkageForDeclarator
71d28c4 Amending r208783 based on a suggestion by David Blaikie.
6c2c5c6 When we generate a redeclaration for an elaborated-type-specifier, place it in the correct context.
00b2b6d clang-cl: Fall back immediately if /GR and /fallback were both passed
13ec00d Don't copy objects with trivial, deleted copy ctors
b51314c Replacing some manual iterations with standard algorithms. No functional changes intended.
9b6eaee Formatting and style changes; no functional changes intended.
0c65bc2 Remove empty directory left after r207995.
3390ed3 [OPENMP] Fix warning in Release builds.
7747c87 clang-format: Add clang-format-diff usage examples for SVN.
65e6867 clang-format: Add option to allow short blocks on a single line.
0c71560 [ARM64]Fix the bug right shift uint64_t by 64 generates incorrect result.
73eb3f8 Sema::FindAllocationFunctions(): Fix \param. [-Wdocumentation]
96766f9 Create a redeclaration when an elaborated type specifier resolves to an existing declaration if there are attributes present.
dfb7a74 DebugInfo: Avoid creating DILexicalScopeFiles when the filename in the current scope has not changed.
014e81d Push record return type classification into CGCXXABI
254b263 Make this test target independent.
f579a0e PR19729: Delete a bunch of bogus code in Sema::FindAllocationOverload. This caused us to perform copy-initialization for the parameters of an allocation function called by a new-expression multiple times, resulting in us rejecting allocations that passed non-copyable parameters (and much worse things in MSVC compat mode, where we potentially called this function multiple times).
45f70c2 Add a requires for the arm-registered-target needed by this test as well.
0d5bfdd Add __ARM_DWARF_EH__ to signify the use of Itanium ABI for unwind instructions.
4bcbcd0 Test preprocessor defines for NetBSD/ARM.
711c94c Update for llvm API change.
eba9195 Fix the AST printer for attributed statements so that it does not print duplicate attribute introducers. Eg) [[clang::fallthrough]] instead of  [[[[clang::fallthrough]]]]
27f98ae Updated the test case to show that no diagnostics are expected, and not require emitting the AST until after the AST printing for statement attributes is updated.
4b5acca No longer triggering a checked iterator assert on Windows when using std::copy while deserializing attributed statements with more than one attribute.
d42a1e6 Define the InterlockedCompareExchange64 intrinsic on 32-bits too
421c65f try to make test/Driver/masm.c work with the hexagon bot
f79084e Drop AST's version of ARMCXXABI, it doesn't differ from the Itanium base class.
8277d9c Support -masm= flag for x86 targets.
9e7b06f clang-format: Don't break in the middle of ">>".
740a360 MS ABI: Tighten RTTI mangling
0e14742 Fixed a few tests and moved a comment to its proper place
c0680e2 Patched clang to emit x86 blends as shufflevectors.
facf07a Refactor to avoid explicitly listing all the different flavours of redeclarable declarations, and duplicating code between them.
9a07730 MS ABI: Preliminary RTTI mangling
c91bc4f Refactor and fix a latent bug (found by inspection) where an external AST source that provides a declaration from a hidden module would not have the visibility of the produced definition checked. This might matter if an external source chose to import a new module to provide an extra definition, but is not observable with our current external sources.
fbe9bae Remove unused PP variable NumIncluded
53ba0df [ASan] Fixup for r208610: link in asan_cxx library on Windows
fdf63ac clang-cl: accept -mllvm and -fsanitize_blacklist
161a85d [ASan] Split static ASan runtime in two parts: asan and asan_cxx.
2b84dd3 [scan-build] Pass --sysroot through for both compilation and linking.
86396e9 clang-format: [JS] Basic support for escape sequences in regex literals.
5473fec clang/test/CXX/drs/dr4xx.cpp: Use env(1) to satisfy lit internal runner.
4be26d9 [Driver] Do not lose already detected set of toolchain's multilibs while iterating over different library path suffixes and different library versions.
fac9916 disable asan's detect_stack_use_after_return when running CXX/drs/dr4xx.cpp (temporary workaround for PR19722); This should make the asan bootstrap bot green again
613c4e1 [C++11] Use 'nullptr'. AST edition.
1a751e4 [OPENMP] Removed unnecessary enums from OpenMP constructs
fd99887 Revert "Revert "Another try at making MSVC happy again.""
1b31163 Revert "Another try at making MSVC happy again."
7ef92c4 Make DiagnosticsEngine non-copyable
e94a8bb PR19713: Don't warn on unused static inline functions, even if the 'inline' was implied by 'constexpr'.
7d0886e Driver: Don't leak the -Xarch argument when its use is incorrect.
58ef309 c-index-test: Don't leak diagnostic category text.
a4f9b91 Parameter/argument terminology fixes
3cfefde Consolidate single void paramter checking
e62085c Another try at making MSVC happy again.
36d74cd Put back raw_ostream.h include.
4f5abb3 Silence warning in Release builds. This function is only used in an assert.
18512f3 CodeGen: support dll{ex,im}port on WoA
c2b54ef Wrap at 80 columns. No code change.
b70f4ce Follow-up to r208481: Free all default arguments, not just the first one.
a5e558a Don't leak CXStrings for replacement fix-its in c-index-test.
8eccd0d Try to bring the 32 bit buildbots back to life.
b29545d Don't leak default arg tokens on invalid destructors or conversion functions.
97d2104 Add test coverage for invalid conversion functions with default args.
fdc87c6 Wrap to 80 columns. No behavior change.
5225cc8 Objective-C ARC. Add support for toll-free bridge type ,and bridge attribute, checking with static_cast. // rdar://16756639
7885a53 Analyzer: Make helper function static.
10ffef9 Decouple ExprCXX.h and DeclCXX.h and clean up includes a bit.
39b4d62 Add FIXME describing the limitation of using column info to disambiguate inlining.
d22bd31 Stop all the Decl classes poking at Redeclarable's data member directly, and make getNextRedeclaration follow the pattern of its friends getPreviousDecl and getMostRecentDecl.
e0d57a1 MS ABI: Pass 'sret' as the second parameter of instance methods
3748941 Don't leak the CXStoredDiagnostics returned by clang_codeCompleteGetDiagnostic()
b8e405f Don't emit -Wnon-virtual-dtor on final classes, since it's not a problem there.
f6df606 PR19698, PR19674: enable __has_feature checks for cxx_generic_lambdas and cxx_decltype_auto, and fix documentation of cxx_generic_lambdas and cxx_init_captures to specify the right feature-check name.
53331ec Objective-C. Reduce false positive warnings with -Wselector by issuing warning only when named selector is declared in TU and it is not declared in a system header. rdar://16600230
43f465f Amending r208439 to remove buildLExpr; this code isn't strictly required yet, and fixes a dead code warning.
b8f956e Add the ability to use logical expressions for capability attributes. This is to allow requirements to be expressed not just in terms of lists, but in terms of logical expressions. Eg)
3ae09ee Don't leak MacroArgs when using code completion, PR19688.
6f5f205 ThreadSafetyAnalysis: Don't crash when trying to analyze objc methods.
60f8d94 Pacify bots again - turns out my checkout was slightly polluted when I was reverting a olista01s change, and this pollution made it upstream during the revert checkin :/ Sorryemacs -nw lib/CodeGen/CodeGenModule.cpp
a7b6c1e Reapply r208417 (olista01 'ARM: HFAs must be passed in consecutive registers'). Bots are now pacified.
deba5fb Revert r208417 (olista01 'ARM: HFAs must be passed in consecutive registers'). This is a followon commit from r208413 which broke the LLVM bots.
fd75415 ARM: HFAs must be passed in consecutive registers
63b00e2 clang-format: Fix bug introduced by r208392.
656b212 clang-format: [JS] Allow up to 3 empty lines in Google's JS style.
c86e76e clang-format: [JS] Fix spacing in dict literals.
09a6d70 Permit duplicate explicit class instantiations if MSVCCompat is enabled
a26ce2a Revised wording for diagnostics in r208299
6d5195b Add support for partial jump scope checking
4182be8 [C++11] Use 'nullptr'.
0de5ed6 Don't repeat function name in comment.
c096683 Wrap to 80 columns, no code change.
258ff31 Don't indent in namespaces.
ed2fa8c Simplify the code a bit by using linkage predicates.
0342528 Fix filename in file header comment more.
4b95222 Fix filename in file header comment.
ccae0dc Don't indent inside namespaces.
b543bad Fix link target.
98ca943 Use auto to avoid duplicating the type.
9dd934d Switch Wmodule-build to a remark
eda06b9 Fix an outdated comment.
838b076 [Driver] Range-based loop simplification.
1a04a93 Remove -Wnon-modular-include
1dd3931 CodeGen: fix code model mapping
40844b1 Simplify a few cast<>s.
c9727ea Cleanup setFunctionDefinitionAttributes.
48c83f7 Replace virtual with override.
262fbc0 Use more specific type.
7e619cb Small simplification: Reduce the use of cast<>.
459bb10 Fix segmentation fault when mixing -Rpass with #line.
c52c190 Fix PR19169 [Crash on invalid attempting to specialize a template method as a template variable]. A template declaration of a template name can be null in case we have a dependent name or a set of function templates. Hence use dyn_cast_or_null instead of dyn_cast. Also improve the diagnostic emitted in this case.
2d4fcb8 Use predicate function to simplify a bit.
79145ae Enable standalone-debug by default on FreeBSD
e7d788b clang-format: Cleanup redundant calculation of ParenLevel.
70b1047 clang-format: Initial support for try-catch.
f439181 Explicitly keep track of temporaries during the consumed analysis.
7716d54 Suggest fix-it ':' when '=' used in for-range-declaration
a16d0b2 clang-format: [JS] support closures in container literals.
26368c6 clang-format: Fix binary operator detection before lambdas.
38070dc clang-format: [JS] Support regex literals after 'return'.
33a0007 clang-format: [JS] Initial support for regex literals.
603e37c [C++11] Use 'nullptr'.
60efcfe [OPENMP] Another one fix in test for msvc
1d8bd5a [OPENMP] Fix codegen test for msvc build
d875831 Let ASTReader optionally delete its ASTDeserializationListener.
e81307a Driver: parse -mcmodel earlier
b9da57d Fix latent bug. This can't actually manifest at the moment, but is a time-bomb for the next time someone adds something to this function.
974c549 Enable alternative tokens by default for clang-format.
b335d96 fmodules-search-all: Removed dead code and added some comments.
b37ba16 CodeGen: Don't set hidden visibility on symbols with local linkage
359a15d Add an Extension warning for applying unary * to an operand of type 'void*' in C++. This seems like a pointless (and indeed harmful) restriction to me, so I've suggested removing it to -core and disabled this diagnostic by default.
f3e4763 NSOrCFErrorDerefChecker: Don't leak bug type. Similar to r208110/r208155. Found by LSan.
6d7447d c-index-test: Don't leak the strings returned by makeClientContainer().
ba22e70 Make 2 functions static, remove unneeded cast, rewrap. No behavior change.
7bb93d6 When doing int<->ptr coercion for big-endian, calculate the shift amount correctly.
16173fc PR19562: Fix another temporary node leak in Clang debug info emission
d725b1e Remove "CH_ECK" line (which is ignored) from test after r154191.
b9ec38b [mips] Pass nan2008 info to the back-end.
70815b2 Re-satisfy the bots. Due to a de-sync between my clang and LLVM trees, I didn't notice that the generated BE alignment register is now unnamed and is not called '%align_be'.
b00d127 [ARM64-BE] Correctly deal with single element HFAs in varargs.
968a75d Update for llvm api change.
9af567f DebugInfo: Use enum instead of unsigned
3a0d738 ARM: Fix assertion caused by passing bitfield struct using ABIArgInfo::getExpandWithPadding
27f00b4 Use nullptr instead of 0 for const char * value.
6bf9a9c clang-format: Be slightly more aggressive on single-line functions.
e486bd0 clang-format: Fix corner cases for comments in if conditions.
63b875d Drop libgcc and default to libc++ for NetBSD/ARM on 6.99.40+. Don't bother with keeping the old support for x86_64 in 6.99.23+, just use a single range. Update test cases for the always-on --eh-frame-hdr.
3c228c8 Also recognize Big Endian ARM variants.
65f588f clang-format: Fix bad space before braced initializer.
0fbbbd5 [OPENMP] Fixed checking for mangled names in parallel_codegen.cpp test
6e4eb5d Fix up indentation and fix an 80 column violation.
a797c52 [C++11] Use 'nullptr'.
5e16294 [OPENMP] Fixed problem with temp removal on some platforms in codegen for '#pragma omp parallel'
9416355 PR19562: Fix memory leak when ObjC interface types cause the creation of further interfaces.
7968078 Fixing tests to account for LLVM r208159.
fad839f [OPENMP] Temporarily disable test parallel_codegen.cpp
f66a16c [analyzer] Use a lazily-initialized BugType in ObjCSelfInitChecker.
3560c1e [analyzer] Functions marked __attribute__((const)) don't modify any memory.
67198ad If an instantiation of a template is required to be a complete type, check whether the definition of the template is visible rather than checking whether the instantiated definition happens to be in an imported module.
c40a46c Clean up some existing keyword tests in the test/Lexer directory by using the pre-defined __is_identifier() macro.
695bd88 Try harder to ensure a strict weak ordering of overload candidates that have arity mismatches.
3f4e8a5 Rename "secondary initializer" -> "convenience initializer" in the warnings, which is a more correct and consistent term.
958f628 AST: Update reference temporary mangling
6c269f9 Add testcase for r208062.
f65fb7c tblgen: Modularize the diagnostic emitter
afafe70 Include translation unit filename in global ctor symbol names.
0cb2626 Reapply: DebugInfo: Emit the definition of enums when the definition preceeds the declaration and initial use.
83bc50a Fix leak in ObjCSelfInitChecker, found by LSan.
ae8a33d Fix a leak found by LSan: ConsumedBlockInfo owns its StateMapsArray entries.
8304a54 Revert "DebugInfo: Emit the definition of enums when the definition preceeds the declaration and initial use."
a7e8934 Add driver support for AArch64 Fedora.
a233d80 Update comment for ObjCImplementationDecl's handling of instance variables.
56b2dd0 clang-format: [JS] Keep space after closure style comments.
1860b49 clang-format: [JS] Keep space between 'return' and '['.
043dde4 clang-format: [JS] Don't indent in goog.scope blocks.
fce71a3 [OPENMP] Another one fix for codegen test '#pragma omp parallel'
c5ad6c5 [OPENMP] Fixed test for '#pragma omp parallel' codegen
7cd95fe Fixed one issue with casting
1841456 [OPENMP] Temporary disable test for parallel codegen
bfa3838 [OPENMP] Initial codegen for '#pragma omp parallel'
600a7d7 [PATCH] [ARM64] Enable alignment control option in front-end for ARM64.
21cb1aa XCore target: fix initialization bug found by MSan Bot.
291e3cb Pulled out cast detection in TokenAnnotator into its own function This is to remove FIXME added in r207964.
9451434 DebugInfo: Emit the definition of enums when the definition preceeds the declaration and initial use.
9ee9b9e [C++11] Use 'nullptr'
e539c80 Fix crash when one overload candidate is a template instead of a function. Patch by Kaelyn Takata.
9292dbd [OPENMP] 'proc_bind' clause support - Parsing and sema analysis for OpenMP clause 'proc_bind'
2115b66 PR19598: Ensure temporary metadata nodes used in debug info are destroyed.
30dabc0 Support field references to struct names and c++11 aliases from inline asm. This is in addition to the existing support for typedefs.
0d2d8fd I fixed this fixme in r208017.
530c31a www: add a missing HTML open tag
ba7ed34 Build debug info for ObjC interface types at the end of the translation unit to ensure all ivars are included.
d843795 ObjC IVars aren't added when the type isn't emitted after the interface extension
74dd271 During parsing, update the range of the Declarator to include the identifier.
bd80493 [Basic/FileManager] Propagate whether a file 'IsVolatile' to the file opening functions.
57973be Add -Wnon-modular-include* options
6197f10 Simplify replacement map by avoiding duplicate values and ensuring the values it does contain are necessary.
192d781 MS ABI: Emit an error during IRgen on C++ exception handling
b458729 Fix pr19653.
8c57c84 www: remove proprietary dbtree.js script from r96013
c1f8690 Fix some typos
9ef2e14 Small refactoring, no functionality change.
a9cf72f CodeGen: Assign linkage to thread-wrappers correctly
fdea112 Fix handling of condition variables in the face of temp dtors.
59f0889 CodeGen: Cleanup visibility in RTTIBuilder
e9a44d1 Add -Wmodule-build to make it easy to see when modules are (re)built
2afa00c clang-format: Understand functions with decltype return type.
f58cd1f Added some heuristics to identify c style casting
01d8eae Driver: Recognize CentOS 6 as RHEL 6.
91024aa StringRefize and take out an old FIXME
77c0aa1 clang-format: Improve understanding of decltype.
4114947 Fix bug in clang-format while merging short function
db5c09f Fix crash when resolving branch conditions for temporary destructor condition blocks.
a337b33 Simplify getARMCPUForMArch() and make it more consistent
df4eada clang-format: Fix import statements with ColumnLimit: 0
95a932e Update lit.cfg to support the clang-interpreter test from r207950
230adb8 Add speculative clang-interpreter test
917edde Make module self-import an error
9f450b2 cindex-dump.py: fix the --show-ids description string
9ec9eb8 Fix cindex-dump.py --show-ids
2b59ca4 Split out header integration tests
7a6df65 Speculative fix to unbreak the buildbots that fail with compiler errors.
dbbd409 Fix a use-after-free bug I recently introduced in lookupModuleFile
a92193c [Modules] Add the resource-dir to the module hash.
b25d619 CodeGen: complete ARM ACLE hint 8.4 support
424e60d Target: fix wchar_t definition for Windows on ARM
aa83cba Minor cleanups, no behavior change.
5f76018 Wrap a few lines at 80 columns, change a confusing indent. No behavior change.
e28fce2 Replace one-element SmallVectors inside DenseMaps with TinyPtrVector.
20a2627 Remove unused diagnostics.
3ae5ff5 [leaks] The PDFileEntry nodes in the FilesMade FoldingSet contain a std::vector that allocates on the heap. As a consequence, we have to run all of their destructors when tearing down the set, not just deallocate the memory blobs.
5baeb1d [leaks] Re-shuffle code such that we don't create a basic block for initializing an array unless we need it. Specifically, position the creation of a new basic block after we've checked all of the cases that bypass the need for it.
589e7ec [leaks] Don't leak the fake arguments we synthesize for LLVM option parsing.
1e0ab3f Eliminate ASTContext's DelayInitialization flag
eba660f Fix a bunch of mislayered clang/Lex includes from Sema
ec58c2d Update Preprocessor::Initialize() documentation following r207825
fbccf24 CodeGen: Cleanup ABIArgInfo
304f0b0 Revert "Sema: Implement DR244"
3c88688 Sema: Implement DR244
849ca0e Err, wait. Those new test functions in r207890 need CHECK lines.
130d63a Rewrite NRVO determination. Track NRVO candidates on the parser Scope and apply the NRVO candidate flag to all possible NRVO candidates here, and remove the flags in computeNRVO or upon template instantiation. A variable now has NRVO applied if and only if every return statement in that scope returns that variable. This is nearly optimal.
3753e68 MS ABI x64: Pass small objects with dtors but no copy ctors directly
011ceaf [leaks] Fix a leak of a basic block when we successfully fold a switch condition to a constant and emit only the relevant statement. In that case, we were previously creating the epilog jump destination, a cleanup scope, and emitting any condition variable into it. Instead, we can emit the condition variable (if we have one) into the cleanup scope used for the entire folded case sequence. We avoid creating a jump dest, a basic block, and an extra cleanup scope. Win!
6cdc03f Fix PR 19630, don't crash when file ends with whitespace.
d069a45 [leaks] Parse the schema file every time we try to verify the XML. Yes, this is wasteful, blah blah, but this is a test utility only. It turns out that without doing this, libxml2 will always leak a bunch of the XML data, and that is causing failures with LSan. This is also quite a bit simpler and I don't think it is slow enough to really be a show stopper. If someone yells about the runtime of c-index-test, we can do other things to try to mitigate it, but the current strategy wasn't working well.
c0c0ad6 Fix clang-cl Driver leak
3d3d978 clang-c: Fix a typo
3cd6e99 [sanitizers] Propagate the sanitizer options through to the lit context. This makes it *really* easy to debug leaks FYI:
f0785ab [leaks] Fix a leak recently introduced to the pragma handling. This whole code would be better with std::unique_ptr managing the lifetimes of the handlers, but I wanted to make a targeted fix to the leaks first. With this change, all of the Clang preprocessor tests are leak free with LSan.
e4b7fc5 Remove unused typedef found by gcc's -Wunused-local-typedefs.
1f9bad0 Fix null pointer segfault when calling dump() on a DeclStmt containing a VarDecl.
bea199a [driver] Enable the slp vectorizer at -Oz. PR19568
0d06f0b Fix bad comment from r207573.
05dc0eb Small formatting change.
e46eeed Fixes issue with Allman BreakBeforeBraces for Objective C @interface
1c4c89d Add support for -march=bdver4.
da66f35 [ARM64/AArch64] Define the correct value for __ARM_NEON_FP
32f676e [ARM64/AArch64] Hook up CRC32 subtarget feature to the driver
03ebcc8 Updated the attribute tablegen emitter for variadic arguments to emit a range accessor in addition to the iterators. Updated code using iterators to use range-based for loops.
f977428 Renaming the CallableState variadic attribute argument to be CallableStates. No functional changes intended.
b799357 XCore target: fix bug in dereferencing null pointer.
6f10763 XCore target: fix handling of -g0 flag
00a52b3 XCore target: Add TypeString meta data to IR output.
30d310e CodeGen: reorder ARM hint
0f870bf CodeGen: rename __builtin_arm_sevl to __sevl
ad0a050 Reformat code following Preprocessor constructor updates
e36c959 Factor TargetInfo pointer/DelayInitialization bool pair out of Preprocessor ctor
850a105 Remove unused IncrProcessing parameter from Preprocessor ctor
688b1f2 Cut off parsing early during code completion
3b1dad7 Handle -fdelayed-template-parsing of out-of-line definitions of class template member classes (PR19613)
c0ddee2 Remove unused variable that I missed in my rush to fix the bots
2336f58 Win64: Use ConvertType instead of checking the MS inheritance
e0526bf Win64: Pass member pointers larger than 8 bytes by reference
fb3f2a9 MS ABI: Fix logic bug in member pointer null test code
fc4510c -fsyntax-only for a test
009a778 Bitrig's standard C++ standard library changed from libstdc++ to libc++. Also, it uses libc++abi and needs pthread.  While there, fix the libc++ include path. Patch by Patrick Wildt!
7afba90 Bitrig now supports TLS, so enable TLS support when targeting it. Patch by Patrick Wildt!
134a0ee Use std::abs(int) portably.
07c24b8 Use %clang_cc1 in rewrite-includes-messages.c test and drop REQUIRES: shell
66a40c9 do not hide clang stderr output during a test
11ddfb8 Fix some -Wabsolute-value warnings introduced in r207796.
71e3c1f Revert "Use make_unique<T>(...) rather than unique_ptr<T>(new T(...))"
177caa3 use 'diff' rather than 'cmp -s' in a test
8603e9e When sorting overload candidates, sort arity mismatches in ascending order by the number of missing or extra parameters. This is useful if there are more than a few overload candidates with arity mismatches, particularly in the presence of -fshow-overloads=best.
957f4a2 write a line marker right before adding included file
13c23ba do not use "1" for line marker for the predefines "file" either
94f9e6f Use make_unique<T>(...) rather than unique_ptr<T>(new T(...))
2bc825e Update documentation to match recent API change. newFrontendActionFactory now returns a unique_ptr.
c355489 PR19601: testcase improvement
387e171 PR19623: Support typedefs (and alias templates) of void.
b9351d0 Fix debug-info-alias test to add CHECK to some lines that were missing it.
781a1d0 AST: Mangle reference temporaries reliably
f138d35 Fix typo (first commit to test commit access).
e40054f Fix declspec-thread.cpp test with a triple
2271162 MSVCCompat: Don't produce an invalid AST when accepting void pseudo-dtors
bfbb72a [libclang] Add attribute support for 'pure', 'const' and 'noduplicate'.
f3fa16f Fixing a FIXME -- no longer using std::memcpy, since that would fail for non-trivial types. Replaced with std::copy. No functional changes intended since all uses of this functionality either use pointers or integers.
0d40b63 Support 'remark' in VerifyDiagnosticConsumer
9de1702 do not use "1" for line marker for the main file
02a0ec2 revert r207756
bce3e03 do not warn about unknown pragmas in modes that do not handle them (pr9537)
40dd1a0 write a line marker right before adding included file
64d1a0b Avoid a potential race between stat() and open() of ASTFile
8dda109 Add support for __declspec(thread) under -fms-extensions
380c0cf MS ABI x64: Don't destroy arguments twice on x64
fc666be Make typo-correction of inheriting constructors work a bit better. Limit correction to direct base class members, and recover properly after we apply such a correction.
89a92d3 Comment parsing: remove HTML attribute validation
ac011f7 PR19601: std::remove_if does not really remove the elements.
cc1fce5 Fix typos in carries_dependency docs
24b75e6 Sema: Implement DR477
63e8e2d When typo-correcting a member using declaration, don't exclude member templates.
ae68b55 When typo-correcting a member using-declaration, only consider members of base classes.
f58c66e Fix crash if typo correction corrects a member using-declaration to a non-member declaration. Patch by Dinesh Dwivedi!
84062d9 __thread: Move constant init check to CheckCompleteVariableDeclaration
f6881d9 -Wunused-parameter: Don't fire on defaulted or deleted functions
03102d5 Android uses -fpic for arm64 as well.
da1c4e9 Add a test for big-endian NEON on ARM64.
2f7e8ff [ARM64] Port remaining relevant AArch64 clang tests over to ARM64
8ee12c9 [ARM64] Add arm64_be where it was accidentally missed from a bunch of if-conditions.
fe76cbb Simplify test. No functional change intended.
d4201d8 Add a triple to new test.
7933ece Let stddef.h respect __need_{wchar_t, size_t, NULL, ptrdiff_t, wint_t}.
8108769 Defer loading any pending update records until we've finished deserializing. This fixes a bug where an update record causes us to load an entity that refers to an entity we've not finished loading yet, resulting in badness.
42e599f Drop non-cfi assembly support from clang.
4a92578 Add test case for revision 207575 to verify that on Windows, clang doesn't crash with an assertion failure when 'nul' is passed in input.
4bfadd9 scanf analysis: handle scanlists that start with ^] (PR19559)
ebbe39f [PCH/Modules] Don't tie TargetOptions::LinkerVersion to a module/PCH, it's a driver only thing and doesn't affect any language/preprocessor/etc. semantics.
32f64aa Android uses -fpic for aarch64.
0b65390 [analyzer] Improve test from r207486.
fc2409b [analyzer] Don't assert when combining using .* on a temporary.
00ea13b Reapply r207477 and r207479 without cyclic dependency
56844d5 Objective-C. Improve diagnosis of bridging types. // rdar://16737117
cdbc68e clang-format: Don't bin-pack text-proto-formatted options.
8cf5dd6 clang-format: Remove accidentally added debug output.
c9f13e1 clang-format: Allow single-line function in WebKit style.
a41049b Add comments regarding isPIEDefault usage for r207520
ab5d05b Pass -pie to linker when generating executable on Android This fixes problem with LTO on Android.
4f5189a AST: Fix visibility calculation for VarTemplateSpecializationDecl
69c9612 Revert r207477 (and r207479), "Check -Werror options during module validation"
ff5d943 CodeGen: Reference temporaries inherit visibility
9102e00 Make test independent of label. Thanks to Richard Smith for catching this!
dfb1f74 Run this test through instnamer to stop it failing on non-asserts clang builds.
c4b0c45 [analyzer] Don't crash when a construction is followed by an uninitialized variable.
3155775 scan-build: Don't use realpath when the user provides an explicit path.
e68bfe3 Revert r207482; I fail at reading IRC.
6b21c43 Let stddef.h redefine NULL if __need_NULL is set, as needed by glibc, PR12997.
bc9e1b2 Debug info: Improve line table for functions with cleanups an early exit and no return expr at the end of the function. The "function has only simple returns" check in FinishFunction tests whether the number of simple return exprs equals the number of return exprs, but so far a fallthrough at the end of a function was not counted as a return, which would result in cleanup code being associated with the wrong source line.
a3fc225 Add missing triple to make -isysroot work
0dae363 [analyzer] Clean up the lists of current and potential checkers.
a172a34 Check -Werror options during module validation
5324f83 LLVM supports TLS on Windows and we can use it from Clang
29f4a8d When Driver::generateCompilationDiagnostics is filtering the list of inputs to the preprocessor, check for invalid types first because not all linker inputs have an option value to retrieve.
495bb26 Move all CUDA testing inputs to Inputs/ subdirectory inside the tests.
f5563f5 CodeGen: Fix linkage of reference temporaries
ec47c91 [cleanup] Fix an 80-column violation
bf6a66c [driver] Disable the slp vectorizer at -O0, -O1, and -Oz.  This mirrors the behavior of the loop vectorizer, which is enabled at -O2, -O3, -O4, -Ofast and -Os. PR19568
6f6c038 Remove unused using statement.
9860270 Renaming range-based for loop variables so they don't appear iterator-like.
78beaaa [C++11] Converting to range-based for loops. No functional changes intended.
9a7de24 clang-format: Improve binary operator detection.
c944d2a clang-format: Fixes spaces in case statements.
91417dd [ARM64]Fix a bug cannot select UQSHL/SQSHL with constant i64 shift amount.
4145db1 clang-format: Don't wrap after @interface.
d53fa2e Follow-up to r207071: Let newFrontendActionFactory() return a unique_ptr.
113a55f libclang: split out the documentation comment API
efdd867 [objcmt] Revert r191796, it's not needed anymore.
b97eabc CodeGen: remove an unused variable
2574f88 [SemaCXX] Silence -Wconstant-logical-operand if the operand is a 0/1 from a macro.
22ede25 [Index/DocComments] When cloning a full comment, pick the template parameters from the original FullComment, if the parameters are not already set (e.g. because it is a typedef).
68dfabb remove less relevant information + about packaging/Mac OS X + link to cfe-dev
bb92cf2 Remove no longer relevant information in the gcc/llvm comparison page + minor updates
ef3627f remove useless code
5f28cdb9 Remove deprecated information about performances: * It is better if we leave third parties to do "independent" benchmark. * We compare Clang (version unspecified) with gcc 4.0 or 4.2. * The graphs have not been updated for a while. * Clang is well known now. I don't think we still need to explain why Clang is great.
394dfe8 clang-format: Fix bug when aligning trailing /**/-comments in macros.
2e3eed3 Fix the method len of the CompletionString object. Patch by Christopher Greene
fa101d9 c-arcmt-test/Makefile: Update USEDLIBS for -static.
78512b1 [SemaObjC] Fix ObjCInterfaceDecl::inheritsDesignatedInitializers(), if there are no designated initializers in the super class hierarchy then it should return false.
c117f22 [Sema] Adjust Sema::getCurBlock()/getCurLambda() to take into account that we may have switch CurContext due to class template instantiation.
dbc6d63 libclang: remove 'CXDiagnostic_Remark'
7129bf2 Add mangling for attribute enable_if. The demangling patch for libcxxabi is still in review.
34e8603 Fixed Assert In CGRecordLowering Prior to this patch, CGRecordLower assumed that virtual bases could not be placed before the nvsize of an object.  This isn't true in Itanium mode, virtual bases are placed at dsize rather than vnsize and in the case of zero sized non-virtual bases nvsize can be larger than dsize. This patch fixes CGRecordLowering to avoid an assert and to clip bitfields properly in this case.  A test case is included.
a7b80b7 CodeGen: add __yield intrinsic for ARM
5c29252 Make test pass on 32 bit architectures.
f0b6597 Print detailed vector type information on diagnostics.
fbba3c1 Fix leak of GlobalModuleIndex::IdentifierIndex, found by LSan.
62034ad PR19558: don't produce an "unused variable" warning for a variable template partial specialization.
653f5c6 CodeGen: replace use of @llvm.arm.sevl with @llvm.arm.hint
544524b CodeGen: Cleanup variable linkage calculation
6ccd636 CodeGen: Refactor linkage/visibility calculation
266c0c9 Push unique_ptr ownership of ASTUnits further back into their factories.
8a6fa5c clang-cl: /fallback only applies to C or C++ files
b67bacf clang-cl: pass -debug flag to the linker when compiling with debug info
7225262 Improve ownership of ASTUnits in libTooling by using std::unique_ptr.
e73a9fd Revert "Reland r206934 with a hopefully fixed test"
1e77d0f fix a test-only leak found by lsan, PR19521
2196195 CodeGen: Avoid instrumenting implicit Decls more effectively
4f2e3bb bindings: expose C++ access specifiers
02091f0 Reland r206934 with a hopefully fixed test
0ba2e26 If we see an explicit instantiation declaration or definition of a function after we've already instantiated a definition for the function, pass it to the ASTConsumer again so that it knows the specialization kind has changed and can update the function's linkage.

git-subtree-dir: llvm/tools/clang
git-subtree-split: d9ad71c332449fec52b2c7eb0755f7be50ef7cf6
Merge with Clang.
Fixed llvm/clang merge.
Squashed 'llvm/tools/lldb/' changes from bc3fe5d..5fbd52c

5fbd52c Fixed the Module::Module(ModuleSpec) constructor to properly copy the file offset and object file mod time from the actual module specifications so we will always be able to directly load the image we care about when calling Module::GetObjectFile().
5faa607 Fix r209807 which inadvertently removed things
3c602a2 Fix build. Method was renamed in r209800.
fac7bea Disabled warning C4251 on MSVC builds.
5a4ff12 Cmake build changes.
c0edbe9 Fix Windows warnings.
cef6e96 Avoid passing null signal name for Log %s argument
0bdae01 Fix whitespace / formatting
69181c1 Remove unused variable.
df60c70 Allow classes to be intialized using current lldb::SB objects. This can help to import/export the current process state.
15390d4 Add stdlib.h for malloc and friends
2350c8f Remove include of obsolete stropts.h header
1fce7de Use MIUtilSystemLinux on FreeBSD as well
02c2ba1 Add missing header
2a8620b Add a lock ivar to the Platform so that multiple Targets trying to populate the list of trap handler names at the same time don't conflict with one another. <rdar://problem/17011969>
44df42f Remove some unnecessary comments from previous check-in.
8551505 Added gdb remote tests to verify $Hg{thread-id}.
237d787 Fixed the Symbol code to resolve the callable address of the symbol itself rather than forcing clients to do it.  This simplifies the logic for the expression parser a great deal.
a777a1d Instead of having an UnwindTable own a single assembly profiler, and sharing it with all of its FuncUnwinders, have each FuncUnwinder create an AssemblyProfiler on demand as needed.  I was worried that the cost of creating the llvm disassemblers would be high for this approach but it's not supposed to be an expensive operation, and it means we don't need to add locks around this section of code. <rdar://problem/16992332>
be362e1 Revert r209488; Greg suggests a different approach.
8d36315 The UnwindTable (one per module) used to hand out shared pointers to its unwind assembly profiler to all of the FuncUnwinders (one per symbol) under it.  If lldb is running multiple targets, you could get two different FuncUnwinders in the same Module trying to use the same llvm disassembler simultaneously and that may be a re-entrancy problem.
27d09b2 Make sure SectionLoadHistory::GetCurrentSectionLoadList () is thread safe.
a6a6103 Added gdbremote protocol test for $p and returned data size.
e0c17c1 Change ProcessKDP::DoReadMemory() to break up large memory read requests into smaller chunks; some remote kdp stubs cannot handle memory reads larger than a KB or two & will error out. <rdar://problem/16983125>
1eb48e6 Added tests for q{f,s}ThreadInfo for attached processes.
791aa04 Added gdb-remote tests for q{f,s}ThreadInfo.
626906f Implement Host::GetThreadName for FreeBSD
afccb29 Update for llvm api change in r209266.
9e84d36 Correct comment for thread name log option
06ee4a0 ReExported symbols can point to a library that doesn't actually contain the symbol, but just reexports wholesale from another library.  Handle this case.
34a3e06 Update .arcconfig to point to reviews.llvm.org
3d07cfd Change gdb remote test support multi-request format.
569bb53 Added gdb remote protocol tests across all qRegisterInfo responses.
0b03189 Don't allow two threads to both be in SBDebugger::Create() due to threading issues in FormatManager.
ac92232 Revert r209142.
31e19bf Update Xcode settings for Xcode 5.1 (5B130a) to remove workspace warning.
e522892 Build lldb-mi with autotools on Linux. THe lldb-mi stuff was not being built on Linux with autotools. I only added Linux now as I have tested that it build fine on Linux.
d86b5ac Added gdb remote test for one valid qRegisterInfo result.
dae1aee Add support for gdb remote $X stop notification.
a16037c Introduce the concept of a "display name" for types
ff1e97b Update how we create our MCSymbolizer to keep working correctly on arm64 binaries after the llvm r206063 changes. Patch written by Jim Ingham and Lang Hames. <rdar://problem/16935671>
c40ed06 Fix the copy constructor and assignement operator for the lldb_private::Value class to "do the right thing".
5acdcc7 Refactored RegisterInfoInterface into its own header.
98d6adb Fix from: Scott Knight(knightsc@gmail.com):
768acb4 Do not require the triple to be hard-coded
5add589 Initial commit of LLDB Machine Interface Frontend.
f09eb0a Added gdbremote tests to verify kill and continue after attach.
7728486 Fixed SectionLoadHistory::GetSectionLoadListForStopID() to always return a valid "SectionLoadList *".
a953a5f Fix up TestLldbGdbServer C++ test slug exe.
4df2eba Replace SIZE_T_MAX with std::numeric_limits value in Section.cpp.
3f30b83 Added debugserver/llgs test for command-line --attach {pid} variant.
b90141a Don't assert and crash when sections are malformed.
b147f6a lldb: gdb remote support always falls back to $qC when no $qProcessInfo.
27ee395 Fix the quoting in my x packet documentation so it's consistent with the rest of the entries.
c2d076b Add a new SBThread::SafeToCallFunctions API; this calls over to the SystemRuntime to check if a thread will have any problems performing an inferior function call so the driver can skip making that function call on that thread.  Often the function call can be executed on another thread instead. <rdar://problem/16777874>
c845809 Fix broken TestMultithreaded on Linux.
6ae6b72 python: silence macro redefinition warnings
49828dd Documented our "attach" extension packets.
ebf190c Args::StringToGenericRegister will now accept "lr" as another way to indicate that this register is a generic Return Address register (in addition to "ra") - this is used primarily by OperatingSystem plugins.
fef9cdb "process kill" and "process detach" were causing double prompts or prompts that would overwrite each other. Fixed now.
62917ea Revert bad checkin that use incorrect member field.
abbf1d4 Set the current line to invalid when done getting multiple lines.
79896bc lldb TOT is dropping the last entry for multi-line IOHandlers that use the IOHandlerDelegateMultiline.
a79f4ce Change ProcessElfCore::CreateInstance() to check if the ELF magic bytes appear in the file before it assumes the file is ELF.  It was incorrectly activating for Mach-O core files. <rdar://problem/16836816>
d0f8efb Allow clients to control the exact path that is used to launch processes by adding new calls to SBLaunchInfo.
b0bf531 Modify debugserver to follow gdb remote $qC protocol definition.
fda40a0 If CMake finds a python interpreter, use it
e4214d6 control-D on empty line to quit lldb stopped working in Release builds on MacOSX.
999b8c0 gdbremote testing: added regex support to match packets and propagate/test against previously stored matches.
eac3885 Change ProcessGDBRemote::DoReadMemory to use the x packet to read data if it is available.
b5944f1 Add GetxPacketSupported to test if the 'x' packet is supported. <rdar://problem/16032150>
b5728a5 Add a simple qSupported packet, fix a bug in decode_binary_data(), add a new 'x' packet for reading data in binary format.  Document the 'x' packet. <rdar://problem/16032150>
6d79e8a Refactored gdb remote protocol testing sequence handling.
86707ba Rename eExecution*** to eExpression*** to be consistent with the result type.
d5ed760 Make the Expression Execution result enum available to the SB API layer. Add a callback that will allow an expression to be cancelled between the expression evaluation stages (for the ClangUserExpressions.)
75a34d5 Track recent changes in clang internals
e5ac32c Remove obsolete CXX11 buld instructions
e7e7a50 LLDB could segfault if it got a .a file that had extra padding bytes at the end of the file.
e92256f Use posix_spawn on NetBSD as well.
060df13 For now, use FreeBSD's host configuration for NetBSD as well.
71ddf21 Fix format string for 32bit systems.
8d56ecd Use correct readline header on NetBSD.
ddb852c LLDB_INVALID_ADDRESS may not be too large for a uintptr_t, so cast first.
8ebfb6c EOF is outside the value range of char on architectures with unsigned char like ARM. Check for EOF explicitly.
fb6a568 LLDB_INVALID_OFFSET can be large than a size_t on ILP32 systems, so use SIZE_MAX here.
33ca43b "DONE" is being left in multi-line results when it shouldn't for non terminal input.
6a3b18d Fixed CTRL+C related issues: - CTRL+C wasn't clearing the command in lldb - CTRL+C doesn't work in python macros in lldb - Ctrl+C no longer interrupts the running process that you attach to
6ee62f2 Fixed whitespace issues.
9457fa0 Sometimes when launching through a shell, we can run into cases where the /bin/sh or /usr/bin/arch can crash the process due to security measures. Now we correctly report when a process exited in the process of launching so we can show the reason why it crashed instead of just showing “initial process state wasn't stopped: exited”.
b5b78a3 Allow for a task port to change when we exec.
471321a Report the result of waitpid() a little more clearly as well as clearly logging the process status.
29d094a Correct offsets in the debugserver arm back end for the s and d registers so we get the offsets of these correct after the changes of r194302. <rdar://problem/16176270>
d9a49eb Added gdb remote protocol tests for no output and inferior non-zero exit code.
9e6bff9 Fix interval recalculation in the event that usleep is interrupted
60724cc Typo: forever is one word
1f607f1 Add decorator for FreeBSD buildbot failure
5d60950 Make lldb-gdbserver configure/(g)make build parity with cmake.
65c49f9 Added debugserver/llgs protocol test for output and clean exit.
b1dc323 Address warnings in EmulateInstructionARM64
d011d01 Fixed up lldb-gdbserver to match slightly different debugserver listener host:port message. Fixed up typo in lldb-gdbserver name missed when working on the OS X side earlier today for debugserver support.
9923c1f Added two new test types: @debugserver_test and @llgs_test.
52d83e8 Since one or more Editline instances of the same kind (lldb commands, expressions, etc) can exist at once, they should all shared a ref counted history object.
c299dff Free the strong reference to a lldb::SBDebugger that the script interpreter was holding onto in the "lldb.debugger" global variable.
8b24866 Added TestLldbGdbServer test for A start exe packet. Fixed up bug in XFAIL tests where I appended an array when I intended to merge an array.
3785bde Prevent TestLldbGdbServer shutdown cleanup failures from failing the test.
5da34e9 Modify TestSettings test for stderr.txt/stdout.txt to ignore an optional path prior to the file base name.
e1a7831 Attempt to fix the build
d00cbd4 Make sure that the CommandInterpreter::m_command_io_handler_sp gets reset when we quit.
8735d88 Only allow on thread to run when calling libBacktraceRecording. Make sure the timeout is set to 0.5s for these. <rdar://problem/16719510>
ca33fe2 Missed this file with the r207160 commit.
8d7fba8 Add a new SBThread::GetQueue() method to get the queue that is currently associated with a given thread, on relevant targets.

git-subtree-dir: llvm/tools/lldb
git-subtree-split: 5fbd52c29f2f4a90fe54dad99b13296bc685a3b4
Merged lldb.
Merge with latest in overhaul.