Squashed 'llvm/' changes from d2f12fd..fe6c7ee

fe6c7ee Now that we require a newer python, use the new exception syntax.
708bc15 Require python 2.7.
7db2065 [mips] Enable code generation for MIPS-III.
a4f5a55 [AVX512] Enabling MIN/MAX lowering. Added lowering tests.
de48903 Reapply "[MachineScheduler] Fix for PR21807: minor code difference building with/without -g."
5400fd6d [Reassociate] Use dbgs() instead of errs().
31f9936 [mips] Support SELECT nodes for targets that don't have conditional-move instructions.
97996ea Disable --icf=safe to avoid a bug.
b59ec5a [AVX512] Minor fix in lowering pattern for broadcast intrustions. No functional change.
bf72e14 Revert: [MachineScheduler] Fix for PR21807: minor code difference building with/without -g.
1dea0dc This patch recognizes (+ (+ v0, v1) (+ v2, v3)), reorders them for bundling into vector of loads, and vectorizes it.
c15d82e [MachineScheduler] Fix for PR21807: minor code difference building with/without -g.
2a3c63a Emit Tag_ABI_FP_16bit_format build attribute.
536c84f Silence gcc 4.9.1 warning 'xyz' is used uninitialized in this function.
2c86ed8 Pass output stream to AsLexInput instead of the whole tool_output_file.
b8e1d79 Use unique_ptr to remove an explicit delete. Change return type to pass the unique_ptr to caller.
b90043f Use make_unique instead of reset() and 'new'
0ea6f98 Use range-based for loop.
3248223 Remove unnecessary calls to unique_ptr::get.
e34c578 Remove an unnecessary reference variable that pointed to a unique_ptr variable. Just use the unique_ptr variable directly.
2a4988e Use unique_ptr operator= instead of constructor to make it explicit that there's no conversion occurring.
e0b0363 A fix for PR21176.
a511846 Fix another infinite loop in InstCombine
002ca4c R600: Fix min/max matching problems with unordered compares
03858c7 R600/SI: fmin/fmax_legacy are not associative
3d1ca35 R600/SI: Don't promote f32 select to i32
d948b98 Update the modules build to match r223802.
b0d1b98 Bitcode: Add missing "Remove in 4.0" comments
e821037 Document that PassManager::add() may delete the pass right away.
c010032 Tom Stellard is now the code owner for libclc.
b7dfa31 Comment and minor code cleanup for GCStrategy (NFC)
6e6318f Add target hook for whether it is profitable to reduce load widths
6f44989 remove function names from comments; NFC
73460ae R600/SI: Handle physical registers in getOpRegClass
bdf0ee0 R600/SI: Don't verify constant bus usage of flag ops
4bedb48 Bitcode: Use unsigned char to record MDStrings
033d8ea return without temporary; NFC
8ac056b Enable MachineVerifier in debug mode for X86, ARM, AArch64, Mips.
11fcb48 [X86] Add a temporary testcase for PR21876/r223996.
e39dba9 Bitcode: Add METADATA_NODE and METADATA_VALUE
f329765 [PowerPC] Better lowering for add/or of a FrameIndex
934da0f Bitcode: Add `OLD_` prefix to metadata node records
9dd31e8 Try to include operand counts for mismatches in tablegen.
29ae5b8 R600/SI: Use unordered equal instructions
e5bd584 R600/SI: Make more unordered comparisons legal
8651adf R600/SI: Use unordered not equal instructions
05e5839 [ASan] Change fake stack and local variables handling.
f88e4c8 CodeGen: Stop using LeakDetector for MachineInstr
da75f72 IR: Store MDNodes in a separate LeakDetector container
5b17297 [CodeGen] Add print and verify pass after each MachineFunctionPass by default
966942d LeakDetector: Simplify code and fix comments, NFC
054eb6c AsmParser: Don't crash on an ill-formed MDNodeVector
f275000 [InstCombine][X86] Improved folding of calls to Intrinsic::x86_sse4a_insertqi.
ff3fa3d AsmParser: Don't crash on an ill-formed MDNodeVector
0be06cf Remove a convoluted way of calling close by moving the call to the only caller.
428923c This reverts commit r224043 and r224042.
2b7ed47 Silence static analyzer warnings in LLVMSupport.
e9256e3 Enable machineverifier in debug mode for X86, ARM, AArch64, Mips
71f56c4 [CodeGen] Add print and verify pass after each MachineFunctionPass by default
9173c77 [CodeGen] Let MachineVerifierPass own its banner string
01bc84d [Hexagon] Renaming classes in preparation for replacement.
c875ab3 ARM: convert isTargetIOS checks to isTargetDarwin.
31f6bdb [PowerPC] Implement BuildSDIVPow2, lower i64 pow2 sdiv using sradi
de15d01 Remove dead code. NFC.
14273ae [AVX512] Add support for 512b variable bit shift intrinsics.
21876d5 [Hexagon] Ading i64 <- i32, i32 sextw pattern.
015408c [Hexagon] Adding encoding information for sign extend word instruction.
d432c4a Only seek once before writing the member offsets.
1fa0164 llvm-ar: close input files early.
11fb1d0 AVX-512: Added all forms of COMPRESS instruction + intrinsics + tests
c3692e5 [mips][microMIPS] Implement CodeGen support for LI16 instruction.
c57bee5 InstSimplify: Remove usesless %a parameter from tests
1696b35 The inliner needs to fix up debug information for llvm.dbg.declare, not only for llvm.dbg.value.
0378ed4 Add newline missing in r224010.
6ad268c [X86] When converting movs to pushes, don't assume MOVmi operand is an actual immediate
40c2dde Bugfix in InlineSpiller::traceSiblingValue().
bcb1a62 AVX-512: Fixed a bug in lowering setcc for MVT::i1 type
f3da1ac test commit (spelling correction)
1bf1224 Refactor creation of overflow result tuples in InstCombineCalls.
3490558 Use range-based for loops. NFC
4fca0dd Just use the Module unique_ptr object directly in many places instead of separate pointer that's kept in sync with it.
11043f9 Use unique_ptr to remove an explicit delete. Change return type to pass the unique_ptr to caller.
8f61616 IR: Canonicalize metadata formatting, NFC
e9afc33 Reverting commit 223981, because the test that I added (incorrect-variable-debugloc1.ll) failed for llvm-ppc64.
99873cb Make MultiClass::DefPrototypes own their Records to fix memory leaks.
5008314 Replace std::map<K, V*> with std::map<K, std::unique_ptr<V>> to handle ownership and deletion of the values.
0aac070 [X86] Add back AVX2 VR256 PMOVX patterns.
efddacd Fix LLVMContext to match what MDKind names that the LL parser permits. Fixes PR21799!
5e62b84 GCStrategy should not own GCFunctionInfo
a40cc0b IR: Add 'invalid-' to test names for invalid assembly
1bfcc2d LiveInterval: Use range based for loops for subregister ranges.
d1db298 Try again at sorting entries in CODE_OWNERS
901ba4e Fix some incorrectly sorted entries in CODE_OWNERS
763f09f Add code owners for profiling and coverage
19734e7 ARM: correctly expand LDR-lit based globals.
de68a56 A fix for PR21176.
218d20a LiveInterval: Use more range based for loops for value numbers and segments.
1e9d355 Fix PR21694. r219517 added a use of SCEV divide in HowFarToZero computation.  This divide can produce incorrect results as we are using an unsigned divide for what should be a modular divide.  This change reverts back to a more conservative computation using trailing zeros.
b1fac19 [Hexagon] Adding combine ri/ir instructions.
3e04c3e ConstantFold: Clean up X * undef code
72c6bdb ConstantFold, InstSimplify: undef >>a x can be either -1 or 0, choose 0
ea9bcfc ConstantFold: an undef shift amount results in undef
f6492bc [Hexagon] Adding encodings for JR class instructions.  Updating complier usages.
c0e3340 Move three methods only used by MCJIT to MCJIT.
446f01b [AArch64] MachO large code-model: Materialize FP constants in code.
a98fd8b R600/SI: Use getTargetConstant in AdjustRegClass
9f3b3bc [Hexagon] Adding JR class predicated call reg instructions.
4912640 Added documentation for MergeFunctions pass: Pass looks for equivalent functions that are mergable and folds them.
3cd5b83 Match new shuffle codegen for MOVHPD patterns
7e1839f Silencing a -Wsequence-point warning, and the resulting undefined behavior. NFC.
8953163 ConstantFold: div undef, 0 should fold to undef, not zero
6578f1b InstSimplify: [al]shr exact undef, %X -> undef
89db49f [X86] Make a code path in EltsFromConsecutiveLoads work only on vectors it expects
1297775 InstSimplify: div %X, 0 -> undef
f492c9e Use unique_ptr instead of DeleteContainerSeconds.
bd11260 [LIT] Add support for `UNSUPPORTED` tag to `TestRunner.parseIntegratedTestScript`
fda1719 DataLayout: Provide nicer diagnostics for malformed strings
09df764 AsmParser: Don't allow null bytes in BB labels
0e66796 IR: Move call to dropAllReferences() to MDNode subclasses
bf13927 DataLayout: Be more verbose when diagnosing problems in pointer specs
0178ab5 I didn't intend to commit this with r223898
ef6e549 DataLayout: Move asserts over to report_fatal_error
5e40bd7 MachineVerifier: Allow physreg use if just a subreg is defined.
8f08516 MachineVerifier: Allow LiveInterval segments to end at a partial write.
8f08002 VirtRegMap: Improve block live-in info if subregister liveness is available.
d796533 MCRegisterInfo: Add MCSubRegIndexIterator.
6681324 VirtRegMap: No implicit defs/uses for super registers with subreg liveness tracking.
0fc2899 LiveRegMatrix: Respect subregister liveness when allocating registers.
7b54b4d LiveIntervalUnion: Allow specification of liverange when unifying/extracting.
84cc6ec Tablegen'erate lanemasks for register units.
08c7b08 RegisterCoalescer: Preserve subregister liveranges.
f2f0589 LiveInterval: Add removeEmptySubRanges().
6e616d2 LiveIntervalAnalysis: Add subregister aware variants pruneValue().
c080fce LiveInterval: Introduce LiveQuery accessor for dead or live out values.
7fbeb8d Add a flag to enable/disable subregister liveness.
4402447 LiveIntervalAnalysis: Adapt repairIntervalsInRange() to subregister liveness.
c7db66d LiveRangeEdit: Adapt eliminateDeadDef() to subregister liveness.
dc08729 LiveIntervalAnalysis: Adapt handleMove() to subregister ranges.
e59399c LiveIntervalAnalysis: Update SubRanges in shrinkToUses().
6cdf1d9 LiveIntervalAnalysis: Make computeDeadValues() private.
c66fa84 LiveIntervalAnalysis: Compute subregister ranges.
01ddf04 LiveInterval: Add support to track liveness of subregisters.
5874714 LiveInterval: Add a 'covers' operation to LiveRange.
fd9bbbb LiveInterval: Add const version of LiveRange::advanceTo().
6fed9ca Add function that translates subregister lane masks to other subregs.
2d1536a Let tablegen compute maximum lanemask for regs/regclasses.
eca8426 AsmParser: Don't crash if a null byte is inside a quoted string
f8225ab Extend some comments around GCModuleInfo, GCFunctionInfo, & GCStrategy
24d058a cmake: Make SVNVersion.inc work on Windows if svn is called svn.bat.
d3732d9 Simplify the handling of aliases in the gold plugin.
605c403 [ARM] Combine base-updating/post-incrementing vector load/stores.
3490d23 Remove the Module pointer from GCStrategy and GCMetadataPrinter
ea614a5 IR: Fix memory corruption in MDNode new/delete
d465762 Forgot to add test for r223856
4f5424e AsmParser: Verifier that the contents of a hex integer are hex
df7bc4e Rename static functiom "map" to be more descriptive and to avoid potential confusion with the std::map type.
ae5224d IR: Metadata: Detect an RAUW recursion
c9f47d8 Remove redundant variable.
7d7b761 [Hexagon] [NFC] Cleaning up unused classes.
5898fd4 [ARM] Make testcase more explicit. NFC.
d9b12d3 [ARM] Factor out base-updating VLD/VST combiner function. NFC.
a1aa4d3 [ARM] Move the store combiner function down. NFC.
a31421e [ARM] Also support v2f64 vld1/vst1.
90cd6f1 IR: Metadata/Value split: RAUW in a deterministic order
b2a5bf2 Return ErrorOr<std::unique_ptr<Archive>> form getAsArchive.
86704cc Try fixing MSVC build after r223802
11fa900 [Hexagon] Fixing broken tests.
075a8ce Rename createIRObjectFile to just create.
2085635 [Hexagon] Updating rr/ri 32/64 transfer encodings and adding tests.
b8755d9 Fix an MSVC failure from r223802
7727448 [FastISel][AArch64] Fix a missing nullptr check in 'computeAddress'.
260731d [Hexagon] Adding word combine dot-new form and replacing old combine opcode.
3508e27 Revert r223764 which taught instcombine about integer-based elment extraction patterns.
0247b81 AsmParser: Don't crash on short hex constants for fp128 types
f700a24 Fix another GCC build failure from r223802
63e42c2 Remove unneeded curly braces.
53c4c06 Reorder the code to avoid inserting at the beginning of a vector.
9512d7f Cleanup PatternMatch. NFC.
973ce33 Fix a GCC build failure from r223802
eaf5997 Adding a new option to CMake to disable C++ atexit on llvm-shlib.
648f7c7 [AVX512] Added lowering for VBROADCASTSS/SD instructions. Lowering patterns were written through avx512_broadcast_pat multiclass as pattern generates VBROADCAST and COPY_TO_REGCLASS nodes. Added lowering tests.
dad20b2 IR: Split Metadata from Value
db7b69e AsmParser: Don't crash on malformed attribute groups
60d733a [Hexagon] Updating predicate register transfers and adding tstbit to allow select selection.  Updating ll tests with predicate transfers that previously had nop encodings.
fa3c6de Correctly handle complex locations expressions in replaceDbgDeclareForAlloca()
1be6bc7 Deleting empty directories left over from r223794.
0ff2059 [CGP] Rewrite pattern match for splitBranchCondition to work with Values instead.
f3ac16d Revert "Move function to obtain branch weights into the BranchInst class. NFC."
574ca2a Revert "Initial dsymutil tool commit."
08550bc Initial dsymutil tool commit.
44603b6 [PowerPC 4/4] Enable little-endian support for VSX.
9a2a305 [PowerPC 3/4] Little-endian adjustments for VSX vector shuffle
f214fe8 Remember the unmangled name in the plugin.
8eabcf7 Add test cases that were inadvertently omitted from r223783 and r223788
03b9f9f [PowerPC 2/4] Little-endian adjustments for VSX insert/extract operations
c50f9f1 [AVX512] Added VPBROADCAST{BWDQ} (Load with Broadcast Integer Data from General Purpose Register) encodings for AVX512-BW/VL subsets Added encoding tests.
b49ee78 [CodeGenPrepare] Split branch conditions into multiple conditional branches.
c4dedab Add more pattern matchers for compares, instructions, and BinaryOperators. NFC.
50f10eb Move function to obtain branch weights into the BranchInst class. NFC.
b900895 [PowerPC 1/4] Little-endian adjustments for VSX loads/stores
8a48c86 Move method out of line to make buildbot happy.
4f20ed1 Don't lookup an object symbol name in the module.
de0cdb0 [x86] Fix the test to actually test things for the CPU names, add the missing barcelona CPU which that test uncovered, and remove the 32-bit x86 CPUs which I really wasn't prepared to audit and test thoroughly.
93fac96 Removing an unused variable to silence a -Wunused-but-set-variable warning. NFC.
838ec33 Fix modified immediate bug reported by MC Hammer.
85bb610 [x86] Add a test for the CPU names that should have been in r223769.
8729843 [x86] Bring some sanity to the x86 CPU processor definitions.
05a8248 Removal Of Duplicate Test Cases and Addition Of Missing Check Statements
df35082 [test/Transforms/InstCombine/shift.ll] Removed duplicate test cases. NFC.
f1f6524 Improve emacs coding style
e78a87b Teach instcombine to canonicalize "element extraction" from a load of an integer and "element insertion" into a store of an integer into actual element extraction, element insertion, and vector loads and stores.
ebaf61e Skip declarations in the case of functions.
d5578c8 Use range-based for loops. NFC.
ff3745b AVX-512: Added some comments to ERI scalar intrinsics. No functional change.
59bf8e8 Fix a few instances found in SelectionDAG where we were not handling F16 at parity with F32 and F64.
b284d4a test commit (spelling correction)
77c1b73 [X86] Convert esp-relative movs of function arguments into pushes, step 1
2959baf Reland r223754
ebddbe8 Revert "AsmParser: Reject invalid mismatch between forward ref and def"
82258b4 AsmParser: Reject invalid mismatch between forward ref and def
13dd854 Restore r223709 as it was meant to be, and enable FeatureP8Vector for P8
3d6e1ee Revert r223709, "[PowerPC]Activate FeatureVSX for the Power target", to unbreak bots.
014b06e Handle early-clobber registers in the aggressive anti-dep breaker
772e538 Add argument variable support to the debug info tutorial and rearrange the prologue source location hack to immediately after it.
9c276c7 R600/SI: Set MayStore = 0 on MUBUF loads
781a7ae R600/SI: Move setting of the lds bit to the base MUBUF class
a3b01e5 [Hexagon] Removing old def versions and replacing usages with versions that have encodings.
653ef32 MISched: Fix moving stores across barriers
73ed2dc [Hexagon] Adding any8, all8, and/or/xor/andn/orn/not predicate register forms, mask, and vitpack instructions and patterns.
ac6e0c8 [PowerPC]Activate FeatureVSX for the Power target
b849e04 [PowerPC] Don't use a non-allocatable register to implement the 'cc' alias
7ec769c [Hexagon] Fixing broken test.
27fbb34 [Hexagon] Adding xtype doubleword add, sub, and, or, xor and patterns.
9804956 [Hexagon] Adding xtype doubleword comparisons.  Removing unused multiclass.
7b9be18 [Hexagon] Adding xtype parity, min, minu, max, maxu instructions.
a321bd4 [Hexagon] Adding xtype halfword add/sub ll/hl/lh/hh/sat/<<16 instructions.
4ff230e Make myself the code owner for llgo.
dbd00bf R600/SI: Move continue after checking s_mov_b32.
8eef439 ConstantFold: Zero-sized globals might land on top of another global
abe81e4 Clean up the rst for the debug info tutorial
7fd7eff Lazily link GlobalVariables and GlobalAliases.
4772502 [Hexagon] Adding add/sub with saturation.  Removing unused def.  Cleaning up shift patterns.
fca9c7b InstSimplify: Try to bring back the rest of r223583
28eb431 Once more on the cmake build. nativecodegen->native on the dependencies.
28b439e Attempt to fix the cmake build by requiring mcjit on the cmake dependencies for the KS tutorials
43edafc [CompactUnwind] Fix register encoding logic
6efccd0 Fix KS tutorial build failure.
dcc44c6 Don't crash when the key of a comdat is lazily linked.
70b0751 InstrProf: An intrinsic and lowering for instrumentation based profiling
23cf05a Add Chapter 8 to the Kaleidoscope tutorial. This chapter adds a description of how to add debug information using DWARF and DIBuilder to the language.
72878a5 Fix the JIT code for the Kaleidoscope tutorial.
811474b AArch64: treat HFAs containing "half" types as blocks too.
eafdf26 [X86] Improved tablegen patters for matching TZCNT/LZCNT.
cf2daa3 [Hexagon] Adding combine reg, reg with predicated forms.
83fbd8d Simplify the test. NFC.
bc1055c Simplify test. NFC.
5c7adad [Hexagon] Adding packhl instruction.
e77177b Use CHECK-DAG to reduce the noise in an upcoming patch.
b856112 [mips] Add Mips-specific CCIf's for accessing the MipsCCState. NFC.
ae16ff1 [X86] Improved lowering of packed v8i16 vector shifts by non-constant count.
968f045 Move the ValueMap lookup inside linkFunctionBody. NFC.
eaa2992 Use range loops. NFC.
e305256 Use range loops. NFC.
7779b87 Fix linking of prologue data.
dc8b15c [CMake] Fix installation of llvm-ranlib on multiconfig builder.
254e679 Simple style fixes.
95d1d16 Move materialize/Dematerialize calls to linkFunctionBody. NFC.
a585ec7 Removal Of Duplicate Test Case from shift.ll file
c4fbd3f X86 intrinsics moved form X86ISelLowering.cpp to X86IntrinsicsInfo.h X86ISelLowering.cpp has a long switch for intrinsics. I moved a part of this long switch to the new intrinsics table in X86IntrinsicsInfo.h. No functional changes, just code and compile time optimization.
726bd41 lit: Don't use python 2.6 features
e4a5390 Revert a part of r223583, for now. It seems causing different emission between stage2(gcc-clang) and stage3 clang. Investigating.
47a14ea IR: Fix bitcode compatability filenames
8ecb7e2 IR: Revert r223618 behaviour of MDNode::concatenate()
7280d8c IR: Drop uniquing for self-referencing MDNodes
6bb158d IR: Remove reference to ENABLE_MDNODE_UNIQUING
a77df65 IR: Add missing tests for function-local metadata
6b9ae40 R600/SI: Disable VMEM and SMEM clauses by breaking them with S_NOP
eca8933 R600/SI: Set 20-bit immediate byte offset for SMRD on VI
67a6b29 [x86] Clean up the SSE1 test to use a slightly different pattern for matching offsets. I don't expect this to really matter, but its what the latest incarnation of my script for maintaining these tests happens to produce, and so its simpler for me if everything matches.
b2c7673 [x86] Switch a constant selection test to use positive assertions and to store to real pointers so that its clear that the right code is in fact being generated.
d4b678f [x86] Cleanup the combining vector shuffle tests a bit by merging identical checks for different SSE variants into a single block.
48a08fe [x86] Clean up the shift lowering vector shuffle tests a bit using my script. Notably this folds all the SSE cases together into a single FileCheck block. It also adds a vex prefix.
ac1f24a R600/SI: Update instruction conversions for VI
7eeb607 R600/SI: Add VI instructions
9ecb121 R600/SI: Add SCC Defs/Uses to SOP1 and SOP2 opcodes
2991725 Turn some DenseMaps that are only used for set operations into DenseSets.
2cd5836 Make the DenseMap bucket type configurable and use a smaller bucket for DenseSet.
51df2c2 Reapply "LLVMContext: Store APInt/APFloat directly into the ConstantInt/FP DenseMaps."
278bbac ConstantFold: Don't optimize comparisons with weak linkage objects
d34c5a9 I didn't intend to commit this change.
620e876 InstSimplify: Optimize away useless unsigned comparisons
c589098 Reformat.
1ba8146 R600/SI: Restore PrivateGlobalPrefix to the default ELF value of ".L"
0ce4233 Avoid angle brackets in comment. [-Wdocumentation-html]
09ba28c IR: Disallow function-local metadata attachments
e1d7711 LLVMInstrumentation requires MC since r223532.
9b64618 Fix typo
d7c9f76 Add a proper triple to switch-jump-table.ll
2dd9af9 llvm/test/CodeGen/X86/switch-jump-table.ll: Add explicit triple. Local labels have a prefix "." for targeting i686-cygming.
3b9ac8c [X86] Refactor PMOV[SZ]Xrm to add missing AVX2 patterns.
a421ac6 SelectionDAG switch lowering: Replace unreachable default with most popular case.
3059688 IR: Disallow complicated function-local metadata
ab1837a Fix for xunit output to work around issue in Jenkins when tests are at the root level
e70779e Utils: Style cleanups, NFC
fe10a11 Utils: Avoid RAUW on metadata in CloneFunction()
8a51f8e Canonicalize multiplies by looking at whether the operands have any constants themselves. Patch by Tim Murray!
d9999a4 [TEST-COMMIT] As per Developer Policy, Added a blank line.
4e54b5d AArch64: use explicit MVT::i64 when creating EXTRACT_SUBVECTOR nodes.
689f10d Fix corner cases in lit xunit for paths with dots
d46a818 Revert "LLVMContext: Store APInt/APFloat directly into the ConstantInt/FP DenseMaps."
f5e810b [X86] Cleanup FCOPYSIGN lowering. NFC intended.
a1d9932 Add target triples to all dfsan tests.
0a12d82 Recommit of r223513 and r223514.

git-subtree-dir: llvm
git-subtree-split: fe6c7ee0f0e11a368d8c98db7e75d26c1c2b32e6
Merge commit '2501398083b2795d20f7a4c6c8f56e683e4897b9' into devel
Squashed 'llvm/tools/clang/' changes from 8c585cd..fd4ab84

fd4ab84 Don't break string literals in Java and JavaScript.
5ec4a06 clang-format: Revamp nested block formatting.
18e7799 CodeGen: Loads/stores to allocas for atomic ops shouldn't be volatile
2a33f6e Do not warn on keyword undef
bb657de [Objective-C]. This patch extends  objc_bridge attribute to support objc_bridge(id). This means that a pointer to the struct type to which the attribute appertains is a CF type (and therefore an Objective-C object of some type), but not of any specific class. rdar://19157264
0748a20 [modules] When constructing paths relative to a module, strip out /./ directory components. These sometimes get synthetically added, and we don't want -Ifoo and -I./foo to be treated fundamentally differently here.
161fab8 Instead of having -Os/-Oz add OptimizeForSize/MinSize first, and later having OptimizeNone remove them again, just don't add them in the first place if the function already has OptimizeNone.
70cbaba AST: Incomplete types might be zero sized
c41e03a When checking for nonnull parameter attributes, also check the ParmVarDecl since the attribute may reside there, instead of just on the FunctionDecl. Fixes PR21668.
b13e679 Emit warning if define or undef reserved identifier or keyword.
1942cb3 MS ABI: Fix mangling of unsigned int template params
63d2f8d Parse: Concatenated string literals should be verified in inline asm
3170b2b Revert r223578, perf data collection depends on the old symbol name.
0a37dbd Diagnose attributes 'optnone' and 'minsize' on the same declaration.
dc4cf2d Revert r223980 as it had wrong commit message.
66d950e Rename a couple of preprocessor symbols to be more descriptive. NFC. Review feedback from recent changes to GetSVN.cmake.
c916a93 Forgot to commit this change with r223975
f1759e4 Add a FIXME for unifying ARM target abi handling.
b11ce4c Revert the default changing behavior part of r216662 until we can change the backend to be the same default. Leave the modified/new testcases with the exception of the default behavior since it increases our testing footprint.
4e15281 AST: Properly calculate the linkage of a IndirectFieldDecl
c035a15 Fixed an 80-column violation.
851e898 DR1891, PR21787: a lambda closure type has no default constructor, rather than having a deleted default constructor.
9553df9 Make test case 32/64 bit neutral
0b9c825 DebugInfo: Location information for scalar new expressions
db0973d clang-format: Factor out UnwrappedLineFormatter into a separate file.
832c0b4 Added a testcase to make sure the parser allows but ignores module imports in debugger mode, even inside functions.
1c1d4d8 Objective-C SDK modernizer. When modernizing an enum to NS_ENUM/NS_OPTIONS use the underlying type if there is no associated type. rdar://19198042
e81823d clang-format: Remove a few else after return statements.
5aa3ce1 OpenCL C: Add support for a set of floating point arithmetic relaxation flags:
925773a [mips] Removing __SIZEOF_INT128__ macro for MIPS64
3eec7e6 clang/test/Modules/modular_maps.cpp REQUIRES shell. chdir is unsupported on Lit internal runner.
b247819 Reinstate r223753, reverted in r223759 due to breakage of clang-tools-extra. Original commit message:
1691f14 Fixed the AST importer ot use redeclaration contexts properly.
16badbf DebugInfo: Correct location information for array accesses to elements of variable array type.
62b3c9a Made the ASTImporter resilient if it can't import SourceLocations.  LLDB rarely has the same files mapped into the target AST context as the source AST context, so the ASTImporter shouldn't expect to see those files there.
9a31be7 DebugInfo: Fix another case of array access line information
2800de7 DebugInfo: Correct the location of array accesses
7b9a206 Make sure that vec_perm is listed as a static function in altivec.h.
2379c9e Tweak test case from r223842 to make it pass on Windows MSVC
2e9a853 cmake: Make SVNVersion.inc step depend on GetSVN.cmake.
66b6f81 Updated the AST importer to support importing LinkageSpecDecls.  This is relevant when LLDB wants to import Decls from non-C++ modules, since many declarations are in extern "C" blocks.
fd797b8 Modified the Objective-C lexer and parser (only in debugger mode) to accept @import declarations and pass them to the debugger.
46323d1 DebugInfo: Correct location of aggregate assignment
48912b7 AST: Don't assume two zero sized objects live at different addresses
f983d12 clang-format: Add a test for PR19603 which seems fixed (maybe by r221338?).
7894c14 Objective-C SDK modernizer. Modernize to use property-dot-syntax when receiver is 'super'. rdar://19140267
0fb730a DebugInfo: Correct location of initialization of auto __complex
02782ef DebugInfo: Correct the location of initializations of auto.
9f95449 DebugInfo: Correct location for compound complex assignment
397f35a DebugInfo: Accurate location information for complex assignment
cbb0f52 DebugInfo: Emit the correct location for initialization of a complex variable
b37f14f Fix a GCC error from r223803
c737672 IR: Update clang for Metadata/Value split in r223802
b22508c Don't actually generate code for testing the frontend's target cpu flag, just verify. This should fix the bots where the x86 backend isn't built into Clang. Sorry for the breakage.
f15b19d Re-work the Clang system for classifying Intel x86 CPUs to use their basic microarchitecture names, and add support (with tests) for parsing all of the masic microarchitecture names for CPUs documented to be accepted by GCC with -march. I didn't go back through the 32-bit-only old microarchitectures, but this at least brings the recent architecture names up to speed. This is essentially the follow-up to the LLVM commit r223769 which did similar cleanups for the LLVM CPUs.
7195290 Revert "[modules] Add experimental -fmodule-map-file-home-is-cwd flag to -cc1."
59d0542 [modules] Add experimental -fmodule-map-file-home-is-cwd flag to -cc1.
cdd313d MS ABI: Add another test for PR20017
bc87555 DebugInfo: Correctly identify the location of C++ member initializer list elements
8373290 [modules] If the same .pcm file is imported via two different paths, don't complain that the contained modules are defined twice.
0a2e4f2 Revert "Driver: Objective-C should respect -fno-exceptions"
40d9da6 Add a test for MS-ABI this adjustment for virtual calls to member operators.
e789aab Handle possible TypoExprs in member initializers.
f5869c4 DebugInfo: Ensure the store for an assignment is attributed to the beginning of the assignment expression
5d39321 clang-format: Indent correctly in conditional expressions after return.
c281903 Fix isInstantiated and isInTemplateInstantiation to not recreate the matchers on each call.
22997ee clang-format: [Java] Always break after annotations of multiline decls.
5ebcca3 clang-format: Make clang-format-diff.py format java files.
bb794d1 InstrProf: Use LLVM's -instrprof pass for profiling
66e56fc clang-format: Support commas in lambda return types.
6d52512 clang/test/Index/usrs.cpp: Appease targeting msvc.
a895eb4 [libclang] Use same USR encoding for 'char' regardless of what the target considers the sign to be.
07dfbf9 [libclang] Encode InjectedClassNameType in the USR.
773f687 [libclang] Encode location info for anonymous embedded tag decls.
03c39bf [libclang] Use same USR encoding for 'class' as 'struct'.
7d7ee01 [libclang] Encode C++11 rvalue reference types in the USR.
219968a [libclang] Encode the C++11 method reference qualifier in the USR.
ee59c37 [libclang] Reflect in USR generation that 'signed char' and 'unsigned char' can overload a 'char' in C++, by giving them distinct encodings.
ab1d30c [libclang] Function templates can be 'overloaded' by return type, so encode the return type in the USR and handle DependentNameType in order to be able to distinguish them.
b0dfccf clang-format: Don't merge lines with comments.
aca8566 Add some file content to avoid test failures on content-addressed file systems.
3ccaa3b Add test file missed from r223561.
6e6cbbb Rename a couple of preprocessor symbols to be more descriptive. NFC. Review feedback from recent changes to GetSVN.cmake.
7b31669 [modules] If we import a module, and we've seen a module map that describes the module, use the path from the module map file in preference to the path from the .pcm file when resolving relative paths in the .pcm file. This allows diagnostics (and .d output) to give relative paths if the module was found via a relative path.
2fb9480 No memcpy for copy ctor with -fsanitize-address-field-padding=1
f41e52c PR21217: Slightly more eagerly load -fmodule-map-file= files and provide diagnostics if they don't exist. Based on a patch by John Thompson!
426032f Additional safety for the root cause of regression in r223443; make the module map path more canonical before hashing it. No functionality change.
69442eb [modules] Instead of storing absolute paths in a .pcm file, store the path to the root of the module and use paths relative to that directory wherever possible. This is a step towards allowing explicit modules to be relocated without being rebuilt, which is important for some kinds of distributed builds, for good paths in diagnostics, and for appropriate .d output.
68ffc1e ASTDumper: print whether a function is constexpr
84364ec Specify the name of the generated header only once. NFC. This will also simplify a private patch that we have.

git-subtree-dir: llvm/tools/clang
git-subtree-split: fd4ab844b790a49be9c7aad050b630469b5274da
Merge with Clang.
Squashed 'llvm/tools/lldb/' changes from 4c96149..cc92fcb

cc92fcb Make sure if a thread specifies a 'register_data_addr' in a python operating system plug-in, that is is used to fetch the register values.
a17ecc6 Make sure we print errors for python OperatingSystem plug-ins for when things go wrong. We also dump the dictionary or collection that had errors so the user can see which info was wrong.
1e1cde1 Removed the assertion that we can find any named Objective-C type in the runtime.  This is not actually true, it's entirely possible to say
59c070a Disable the remaining ProcessIO test on Windows.
bcd5123 Fix some test failures for Windows.
b59eba3 Fix a bunch of [-Werror,-Winconsistent-missing-override] warnings.
f6139c0 Silence -Winconsistent-missing-override warnings.
0845fe6 Added support to the expression parser for finding Objective-C types and enums in modules.  We now have a three-stage fallback when looking for methods and properties: first the DWARF, second the modules, third the runtime.
0166bfa ClangFunction: Fix destruction order of parser and execution unit
e43751d Remove the last vestige of the world before data formatters :-) Function pointers had a summary generated for them bypassing formatters, directly as part of the ValueObject subsystem
94e7420 Skip TestExprPathSynthetic test on FreeBSD, Linux & Windows.
a56275a Add D request handler to GDBRemoteCommunicationServer in order to support detach from inferior.
73658c6 Disable data formatter tests on Windows.
e6e9b2b Handle thumb IT instructions correctly all the time.
df33b29 Fix compilation failures resulting from the llvm Metadata refactor.
85e1846 Add a new 'eRegisterInLiveRegisterContext' RegisterLocation to track a register value that is live in the stack frame 0 register context.
6997511 Extend ValueObject::GetExpressionPath() to do something reasonable for synthetic children
4166974 Removed an unnecessary variaable.
9bb3d07 Fixed ValueObject::UpdateValueIfNeeded to keep track of the checksum of the object so we can track if it is modified.  This fixes a testcase (test/expression_command/issue_11588) on OS X.
660dfec Change AddressSanitzierRuntime to print its info message via the Debugger's output stream instead of logging to the module.
40d3401 This patch does a few things: - adds a new flag to mark ValueObjects as "synthetic children generated" - vends new Create functions as part of the SyntheticChildrenFrontEnd that set the flag automatically - moves synthetic child providers over to using these new functions
12ba6e6 XFAIL all of TestInferiorAssert.py tests on Windows.
a3eeea5 Create a valid stop info for all non-breakpoint exceptions.
de0876d Implement remote process listing in Linux platform.
15c8a76 Add Linux support for HostInfo::GetOSBuildString and HostInfo::GetOSKernelDescription.
1c91140 Simple test for file & line dummy breakpoints.
43d0a3b Add the ability for an SBValue to create a persisted version of itself. Such a persisted version is equivalent to evaluating the value via the expression evaluator, and holding on to the $n result of the expression, except this API can be used on SBValues that do not obviously come from an expression (e.g. are the result of a memory lookup)
9e13102 Fix platform shell test to run "dir c:\" instead of "ls /" on Windows.
4a40c15 Fix some posix assumptions related to running shell commands.
ba038c5 Remove use of GCC-style intrinsics, as they are non-portable.
5593c6c Fix a bug where global variable can be reported as local.
a143b2e The lldb unwinder can now use the unwind information from the compact-unwind section for x86_64 and i386 targets on Darwin systems.  Currently only the compact unwind encoding for normal frame-using functions is supported but it will be easy handle frameless functions when I have a bit more free time to test it.  The LSDA and personality routines for functions are also retrieved correctly for functions from the compact unwind section.
aadc258 Fixed an unfortunate reversed conditional that resulted in hard-to-track-down crashes.  Sigh.
9c36d90 Improvements to FastDemangler to correct parsing of <local-name> encodings for string literal and parameter/entity cases.  Patch courtesy of slydiman.
749929f Reverting r223548 which broke running in the shell on OS X.
83b7b09 Add the ability to set breakpoints with conditions, commands, etc, in the "dummy-target".  The dummy target breakpoints prime all future targets.  Breakpoints set before any target is created (e.g. breakpoints in ~/.lldbinit) automatically get set in the dummy target.  You can also list, add & delete breakpoints from the dummy target using the "-D" flag, which is supported by most of the breakpoint commands.
ca090c1 Now that we get types from modules, we occasionally encounter clang::ExternalASTSources that are not instances of ClangExternalASTSourceCommon.  We used to blithely assume that all are, and so we could use static_cast<>. That's no longer the case, so we have to have these AST sources register themselves.
0422a75 Fix a type (MAX_PATH instead of PATH_MAX) and remove an unused variable.
c05a275 Add new-lines after module compiler errors so they are readable.
b587828 Add an initial description of the rules for constructing new SB API classes.
e03bf6e Fix some posix assumptions related to running shell commands.
b9bd321 Add a list iterable helper and use it to make a Breakpoint iterator in the BreakpointList class.
87819f6 First pass at a description of the lldb coding conventions.
02d80aa Fix some uninitialized variables in ClangExpressionParser.

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