FailedChanges

Summary

  1. [Power9] Add support for stxvw4x.be and stxvd2x.be intrinsics On Power9, we don't have patterns to select the following intrinsics: llvm.ppc.vsx.stxvw4x.be llvm.ppc.vsx.stxvd2x.be This patch adds support for these. Differential Revision: https://reviews.llvm.org/D53581
  2. [InstCombine] canonicalize -0.0 to +0.0 in fcmp As stated in IEEE-754 and discussed in: https://bugs.llvm.org/show_bug.cgi?id=38086 ...the sign of zero does not affect any FP compare predicate. Known regressions were fixed with: rL346097 (D54001) rL346143 The transform will help reduce pattern-matching complexity to solve: https://bugs.llvm.org/show_bug.cgi?id=39475 ...as well as improve CSE and codegen (a zero constant is almost always easier to produce than 0x80..00).
  3. [AST] Get aliased type info from an aliased TemplateSpecialization. Summary: Previously the TemplateSpecialization instance for 'template_alias', in the example below, returned the type info of the canonical type (int). This ignored the type alias if the template type happen to be aliased. Before this patch, the assert would trigger with an alignment of 4: ``` typedef int __attribute__(( aligned( 16 ) )) aligned_int; template < typename > using template_alias = aligned_int; static_assert( alignof( template_alias<void>) == 16, "" ); ``` This patch checks if the TemplateSpecialization type has an alias, and if so will return the type information for the aliased type, else the canonical type's info is returned (original behavior). I believe that this is the desired behavior. Reviewers: aaron.ballman, rjmccall Reviewed By: rjmccall Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D54048
  4. [UBsan] disable few tests for FreeBSD Reviewers: krytarowsky, vitalybuka Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D54103
  5. [Format] Add debugging to ObjC language guesser Summary: To handle diagnosing bugs where ObjCHeaderStyleGuesser guesses wrong, this diff adds a bit more debug logging to the Objective-C language guesser. Reviewers: krasimir Reviewed By: krasimir Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D54110
  6. [InstCombine] loosen FP 0.0 constraint for fcmp+select substitution It looks like we correctly removed edge cases with 0.0 from D50714, but we were a bit conservative because getBinOpIdentity() doesn't distinguish between +0.0 and -0.0 and 'nsz' is effectively always true for fcmp (see discussion in: https://bugs.llvm.org/show_bug.cgi?id=38086 Without this change, we would get regressions by canonicalizing to +0.0 in all fcmp, and that's a step towards solving: https://bugs.llvm.org/show_bug.cgi?id=39475
  7. [InstCombine] adjust tests for select with FP identity op; NFC These are mislabeled as negative tests.
  8. [FPEnv] Add constrained CEIL/FLOOR/ROUND/TRUNC intrinsics Differential Revision: https://reviews.llvm.org/D53411
  9. [ThinLTO] Add an option to disable (thin)lto internalization. Summary: LTO and ThinLTO optimizes the IR differently. One source of differences is the amount of internalizations that can happen. Add an option to enable/disable internalization so that other differences can be studied in isolation. e.g. inlining. There are other things lto and thinlto do differently, I will add flags to enable/disable them as needed. Reviewers: tejohnson, pcc, steven_wu Subscribers: mehdi_amini, inglorion, steven_wu, dexonsmith, dang, llvm-commits Differential Revision: https://reviews.llvm.org/D53294
  10. [TargetLowering] Begin generalizing TargetLowering::expandFP_TO_SINT support. NFCI. Prior to initial work to add vector expansion support, remove assumptions that we're working on scalar types.
  11. [InstCombine] add/adjust tests for select with fsub identity op; NFC
  12. [NFCI][FPEnv] Split constrained intrinsic tests The constrained intrinsic tests have grown in number. Split off the FMA tests into their own file to reduce double coverage. Differential Revision: https://reviews.llvm.org/D53932
  13. [InstCombine] add tests for select with FP identity op; NFC
  14. [Tooling] Correct the total number of files being processed when `filter` is provided. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D54104
  15. [Inliner] Penalise inlining of calls with loops at Oz We currently seem to underestimate the size of functions with loops in them, both in terms of absolute code size and in the difficulties of dealing with such code. (Calls, for example, can be tail merged to further reduce codesize). At -Oz, we can then increase code size by inlining small loops multiple times. This attempts to penalise functions with loops at -Oz by adding a CallPenalty for each top level loop in the function. It uses LI (and hence DT) to calculate the number of loops. As we are dealing with minsize, the inline threshold is small and functions at this point should be relatively small, making the construction of these cheap. Differential Revision: https://reviews.llvm.org/D52716
  16. [Mips] Supplement long branch pseudo instructions Expand on LONG_BRANCH_LUi and LONG_BRANCH_(D)ADDiu pseudo instructions by creating variants which support less operands/accept GPR64Opnds as their operand in order to appease the machine verifier pass. Differential Revision: https://reviews.llvm.org/D53977
  17. [NFC][ARM] Adding extra test for ARM CGP Added a reproducer that I received a while ago.
  18. [Tooling] Add "-filter" option to AllTUsExecution Summary: We can run the tools on a subset files of compilation database. Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D54092
  19. Reapply "Fix regression in behavior of clang -x c++-header -fmodule-name=XXX" This reverts commit r345963. We have a path forward now. Original commit message: The driver accidentally stopped passing the input filenames on to -cc1 in this mode due to confusion over what action was being requested. This change also fixes a couple of crashes I encountered when passing multiple files to such a -cc1 invocation.
  20. Fix build on sparc64-linux-gnu. Differential Revision: https://reviews.llvm.org/D54030
  21. [AMDGPU] Fix the new atomic optimizer in pixel shaders. The new atomic optimizer I previously added in D51969 did not work correctly when a pixel shader was using derivatives, and had helper lanes active. To fix this we add an llvm.amdgcn.ps.live call that guards a branch around the entire atomic operation - ensuring that all helper lanes are inactive within the wavefront when we compute our atomic results. I've added a test case that can cause derivatives, and exposes the problem. Differential Revision: https://reviews.llvm.org/D53930
  22. [CMake] Expose opt-remark tooling through libOptRemarks.dylib * Create an install target for it * Add it under tools/opt-remarks * Add an export file for the dylib * Install the llvm-c/OptRemarks.h header * Add an API to query its version rdar://45458839
  23. [ARM] Turn assert into condition in ARMCGP Turn the assert in PrepareConstants into a conditon so that we can handle mul instructions with negative immediates. Differential Revision: https://reviews.llvm.org/D54094
  24. [ARM][ARMCGP] Remove unecessary zexts and truncs r345840 slightly changed the way promotion happens which could result in zext and truncs having the same source and destination types. This fixes that issue. We can now also remove the zext and trunc in the following case: (zext (trunc (promoted op)), i32) This means that we can no longer treat a value, that is only used by a sink, to be safe to promote. I've also added in some extra asserts and replaced a cast for a dyn_cast. Differential Revision: https://reviews.llvm.org/D54032
  25. [mips][msa] Fix broken test Test builtins-mips-msa-error.c wasn't reporting errors. This patch fixes the test, so further test cases can be added. Differential Revision: https://reviews.llvm.org/D53984
  26. Fix breakage on FrontendTest by initializing new field on constructor
  27. Exclude wasm target from Windows packaging due to PR39448
  28. [NFC][x86][AArch64] extract-bits.ll: add test with 'ashr'.
  29. [hwasan] Fix stack-uar.c after rCRT345110 Set -fno-discard-value-names so that the frame description string contains the variable name.
  30. [DAGCombiner] Use tryFoldToZero to simplify some code and make it work correctly between LegalTypes and LegalOperations. The original code avoided creating a zero vector after type legalization, but if we're after type legalization the type we have is legal. The real hazard we need to avoid is creating a build vector after op legalization. tryFoldToZero takes care of checking for this.
  31. [DAGCombiner] Remove an unused argument from tryFoldToZero. NFC
  32. [AVR] Fix a backend bug that left extraneous operands after expansion This patch fixes a bug in the AVR FRMIDX expansion logic. The expansion would leave a leftover operand from the original FRMIDX, but now attached to a MOVWRdRr instruction. The MOVWRdRr instruction did not expect this operand and so LLVM rejected the machine instruction. This would trigger an assertion: Assertion failed: ((isImpReg || Op.isRegMask() || MCID->isVariadic() || OpNo < MCID->getNumOperands() || isMetaDataOp) && "Trying to add an operand to a machine instr that is already done!"), function addOperand, file llvm/lib/CodeGen/MachineInstr.cpp Tim fixed this so that now the FRMIDX is expanded correctly into a well-formed MOVWRdRr. Patch by Tim Neumann
  33. [XRay] Update TSC math to handle wraparound Summary: Prior to this change, we can run into situations where the TSC we're getting when exiting a function is less than the TSC we got when entering it. This would sometimes cause the counter for cumulative call times overflow, which was erroneously also being stored as a signed 64-bit integer. This change addresses both these issues while adding provisions for tracking CPU migrations. We do this because moving from one CPU to another doesn't guarantee that the timestamp counter for some architectures aren't guaranteed to be synchronised. For the moment, we leave the provisions there until we can update the data format to include the counting of CPU migrations we can catch. We update the necessary tests as well, ensuring that our expectations for the cycle accounting to be met in case of counter wraparound. Reviewers: mboerger Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D54088
  34. [X86] Custom type legalize v2i8/v2i16/v2i32 mul to use to pmuludq. v2i8/v2i16/v2i32 are promoted to v2i64. pmuludq takes a v2i64 input and produces a v2i64 output. Since we don't about the upper bits of the type legalized multiply we can use the pmuludq to produce the multiply result for the bits we do care about.
  35. [AVR] Disallow the LDDWRdPtrQ instruction with Z as the destination This is an AVR-specific workaround for a limitation of the register allocator that only exposes itself on targets with high register contention like AVR, which only has three pointer registers. The three pointer registers are X, Y, and Z. In most nontrivial functions, Y is reserved for the frame pointer, as per the calling convention. This leaves X and Z. Some instructions, such as LPM ("load program memory"), are only defined for the Z register. Sometimes this just leaves X. When the backend generates a LDDWRdPtrQ instruction with Z as the destination pointer, it usually trips up the register allocator with this error message: LLVM ERROR: ran out of registers during register allocation This patch is a hacky workaround. We ban the LDDWRdPtrQ instruction from ever using the Z register as an operand. This gives the register allocator a bit more space to allocate, fixing the regalloc exhaustion error. Here is a description from the patch author Peter Nimmervoll As far as I understand the problem occurs when LDDWRdPtrQ uses the ptrdispregs register class as target register. This should work, but the allocator can't deal with this for some reason. So from my testing, it seams like (and I might be totally wrong on this) the allocator reserves the Z register for the ICALL instruction and then the register class ptrdispregs only has 1 register left and we can't use Y for source and destination. Removing the Z register from DREGS fixes the problem but removing Y register does not. More information about the bug can be found on the avr-rust issue tracker at https://github.com/avr-rust/rust/issues/37. A bug has raised to track the removal of this workaround and a proper fix; PR39553 at https://bugs.llvm.org/show_bug.cgi?id=39553. Patch by Peter Nimmervoll
  36. [analyzer] Restrict AnalyzerOptions' interface so that non-checker objects have to be registered One of the reasons why AnalyzerOptions is so chaotic is that options can be retrieved from the command line whenever and wherever. This allowed for some options to be forgotten for a looooooong time. Have you ever heard of "region-store-small-struct-limit"? In order to prevent this in the future, I'm proposing to restrict AnalyzerOptions' interface so that only checker options can be retrieved without special getters. I would like to make every option be accessible only through a getter, but checkers from plugins are a thing, so I'll have to figure something out for that. This also forces developers who'd like to add a new option to register it properly in the .def file. This is done by * making the third checker pointer parameter non-optional, and checked by an assert to be non-null. * I added new, but private non-checkers option initializers, meant only for internal use, * Renamed these methods accordingly (mind the consistent name for once with getBooleanOption!): - getOptionAsString -> getCheckerStringOption, - getOptionAsInteger -> getCheckerIntegerOption * The 3 functions meant for initializing data members (with the not very descriptive getBooleanOption, getOptionAsString and getOptionAsUInt names) were renamed to be overloads of the getAndInitOption function name. * All options were in some way retrieved via getCheckerOption. I removed it, and moved the logic to getStringOption and getCheckerStringOption. This did cause some code duplication, but that's the only way I could do it, now that checker and non-checker options are separated. Note that the non-checker version inserts the new option to the ConfigTable with the default value, but the checker version only attempts to find already existing entries. This is how it always worked, but this is clunky and I might end reworking that too, so we can eventually get a ConfigTable that contains the entire configuration of the analyzer. Differential Revision: https://reviews.llvm.org/D53483
  37. Ensure the correct order of evaluation in part 2. of PlistMacroExpansion Windows buildbots break with the previous commit '[analyzer][PlistMacroExpansion] Part 2.: Retrieving the macro name and primitive expansion'. This patch attempts to solve this issue.
  38. Reland '[analyzer][PlistMacroExpansion] Part 2.: Retrieving the macro name and primitive expansion'
  39. [X86] Fix typo in test comment. NFC
  40. [HotColdSplitting] Use TTI to inform outlining threshold Using TargetTransformInfo allows the splitting pass to factor in the code size cost of instructions as it decides whether or not outlining is profitable. This did not regress the overall amount of outlining seen on the handful of internal frameworks I tested. Thanks to Jun Bum Lim for suggesting this! Differential Revision: https://reviews.llvm.org/D53835
  41. [Driver] Use -Bstatic/dynamic for libc++ on Fuchsia -static relies on lld's behavior, but -Bstatic/dynamic is supported across all linkers. Differential Revision: https://reviews.llvm.org/D54082
  42. [X86] Add nounwind to some tests to remove cfi directives from checks. NFC
  43. [X86] Regenerate test checks to merge 32 and 64 bit. Remove stale check prefixes. NFC
  44. Fix the test for partition_copy so it is not ridiculously slow. Also, detab.
  45. Add support of the next Ubuntu (Ubuntu 19.04 - Disco Dingo)
  46. [X86] Add vector shift by immediate to SimplifyDemandedBitsForTargetNode. Summary: This also enables some constant folding from KnownBits propagation. This helps on some cases vXi64 case in 32-bit mode where constant vectors appear as vXi32 and a bitcast. This can prevent getNode from constant folding sra/shl/srl. Reviewers: RKSimon, spatel Reviewed By: spatel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D54069
  47. Update our URLs in clang doc to use https
  48. Disable recursive interception for tzset in MSan This fixes sanitization of this library call on NetBSD. Extracted as a part of D42050.
  49. [ValueTracking] determine sign of 0.0 from select when matching min/max FP In PR39475: https://bugs.llvm.org/show_bug.cgi?id=39475 ..we may fail to recognize/simplify fabs() in some cases because we do not canonicalize fcmp with a -0.0 operand. Adding that canonicalization can cause regressions on min/max FP tests, so that's this patch: for the purpose of determining whether something is min/max, let the value returned by the select determine how we treat a 0.0 operand in the fcmp. This patch doesn't actually change the -0.0 to +0.0. It just changes the analysis, so we don't fail to recognize equivalent min/max patterns that only differ in the signbit of 0.0. Differential Revision: https://reviews.llvm.org/D54001
  50. Revert '[analyzer][PlistMacroExpansion] Part 2.: Retrieving the macro name and primitive expansion'
  51. [analyzer][PlistMacroExpansion] Part 2.: Retrieving the macro name and primitive expansion This patch adds a couple new functions to acquire the macro's name, and also expands it, although it doesn't expand the arguments, as seen from the test files Differential Revision: https://reviews.llvm.org/D52794
  52. [DAGCombiner] Remove 'else' after return. NFC This makes this code consistent with the nearly identical code in visitZERO_EXTEND.
  53. [Driver] Always match resource dir in Fuchsia driver tests This makes the tests stricter by not only matching the runtime file name, but the entire path into the resource directory. Differential Revision: https://reviews.llvm.org/D54064
  54. [SelectionDAG] Remove special methods for creating *_EXTEND_VECTOR_INREG nodes. Move asserts into getNode. These methods were just wrappers around getNode with additional asserts (identical and repeated 3 times). But getNode already has a switch that can be used to hold these asserts that allows them to be shared for all 3 opcodes. This also enables checking on the places that create these nodes without using the wrappers. The rest of the patch is just changing all callers to use getNode directly.
  55. [coroutines] Fix fallthrough warning on try/catch Summary: The test case added in this diff would incorrectly warn that control flow may fall through without returning. Here's a standalone example: https://godbolt.org/z/dCwXEi The same program, but using `return` instead of `co_return`, does not produce a warning: https://godbolt.org/z/mVldqQ The issue was in how Clang analysis would structure its representation of the control-flow graph. Specifically, when constructing the CFG, `CFGBuilder::Visit` had special handling of a `ReturnStmt`, in which it would place object destructors in the same CFG block as a `return` statement, immediately after it. Doing so would allow the logic in `lib/Sema/AnalysisBasedWarning.cpp` `CheckFallThrough` to work properly in the program that used `return`, correctly determining that no "plain edges" preceded the exit block of the function. Because a `co_return` statement would not enjoy the same treatment when it was being built into the control-flow graph, object destructors would not be placed in the same CFG block as the `co_return`, thus resulting in a "plain edge" preceding the exit block of the function, and so the warning logic would be triggered. Add special casing for `co_return` to Clang analysis, thereby remedying the mistaken warning. Test Plan: `check-clang` Reviewers: GorNishanov, tks2103, rsmith Reviewed By: GorNishanov Subscribers: EricWF, lewissbaker, cfe-commits Differential Revision: https://reviews.llvm.org/D54075
  56. [X86] Update comment I forgot to change in r346043. NFC
  57. [NFC] Fix incorrect comment in std::list
  58. [ValueTracking] peek through 2-input shuffles in ComputeNumSignBits This patch gives the IR ComputeNumSignBits the same functionality as the DAG version (the code is derived from the existing code). This an extension of the single input shuffle analysis added with D53659. Differential Revision: https://reviews.llvm.org/D53987
  59. Fix test on Windows. This test checks the entire output of a help option, the problem is that on Windows, the line break occurs in a different place causing the CHECK to fail because it is not expecting a line break.
  60. Add /Zc:DllexportInlines option to clang-cl Summary: This CL adds /Zc:DllexportInlines flag to clang-cl. When Zc:DllexportInlines- is specified, inline class member function is not exported if the function does not have local static variables. By not exporting inline function, code for those functions are not generated and that reduces both compile time and obj size. Also this flag does not import inline functions from dllimported class if the function does not have local static variables. On my 24C48T windows10 machine, build performance of chrome target in chromium repository is like below. These stats are come with 'target_cpu="x86" enable_nacl = false is_component_build=true dcheck_always_on=true` build config and applied * https://chromium-review.googlesource.com/c/chromium/src/+/1212379 * https://chromium-review.googlesource.com/c/v8/v8/+/1186017 Below stats were taken with this patch applied on https://github.com/llvm-project/llvm-project-20170507/commit/a05115cd4c57ff76b0f529e38118765b58ed7f2e | config | build time | speedup | build dir size | | with patch, PCH on, debug | 1h10m0s | x1.13 | 35.6GB | | without patch, PCH on, debug | 1h19m17s | | 49.0GB | | with patch, PCH off, debug | 1h15m45s | x1.16 | 33.7GB | | without patch, PCH off, debug | 1h28m10s | | 52.3GB | | with patch, PCH on, release | 1h13m13s | x1.22 | 26.2GB | | without patch, PCH on, release | 1h29m57s | | 37.5GB | | with patch, PCH off, release | 1h23m38s | x1.32 | 23.7GB | | without patch, PCH off, release | 1h50m50s | | 38.7GB | This patch reduced obj size and the number of exported symbols largely, that improved link time too. e.g. link time stats of blink_core.dll become like below | | cold disk cache | warm disk cache | | with patch, PCH on, debug | 71s | 30s | | without patch, PCH on, debug | 111s | 48s | This patch's implementation is based on Nico Weber's patch. I modified to support static local variable, added tests and took stats. Bug: https://bugs.llvm.org/show_bug.cgi?id=33628 Reviewers: hans, thakis, rnk, javed.absar Reviewed By: hans Subscribers: kristof.beyls, smeenai, dschuff, probinson, cfe-commits, eraman Differential Revision: https://reviews.llvm.org/D51340
  61. [debuginfo-tests] commands.getoutput -> subprocess.check_output We should also make Darwin Python3 happy after r346059 The output has an extra newline but it is fine in this particular case.
  62. Revert r345562: "PR23833, DR2140: an lvalue-to-rvalue conversion on a glvalue of type" This exposes a (known) CodeGen bug: it can't cope with emitting lvalue expressions that denote non-odr-used but usable-in-constant-expression variables. See PR39528 for a testcase. Reverted for now until that issue can be fixed.
  63. [Driver] Use -push-/-pop-state and -as-needed for libc++ on Fuchsia This avoids introducing unnecessary DT_NEEDED entries when using C++ driver for linking C code or C++ code that doesn't use C++ standard library. Differential Revision: https://reviews.llvm.org/D53854
  64. [compiler-rt] Support for passing through linker flags to libc++ build This may be needed when cross-compiling to certain platforms. Differential Revision: https://reviews.llvm.org/D54027
  65. [codeview] Let the X86 backend tell us the VFRAME offset adjustment Use MachineFrameInfo's OffsetAdjustment field to pass this information from the target to CodeViewDebug.cpp. The X86 backend doesn't use it for any other purpose. This fixes PR38857 in the case where there is a non-aligned quantity of CSRs and a non-aligned quantity of locals.
  66. [DWARF v5] Verifier: Add checks for DW_FORM_strx* forms. Adding functionality to the DWARF verifier for DWARF v5 strx* forms which index into the string offsets table. Differential Revision: https://reviews.llvm.org/D54049
  67. Update debuginfo tests lit for r341135
  68. [debuginfo-tests] Avoid "import commands" which was deprecated in Py3
  69. [CMake][Fuchsia] Set -fuse-ld=lld explicitly for Linux runtimes We set lld as the default linker on non-Darwin platforms, but we still need to set -fuse-ld=lld explicitly in to support cross-compiling Linux runtimes on Darwin. Differential Revision: https://reviews.llvm.org/D54026
  70. [LTO] Fix a crash caused by accessing an empty ValueInfo ModuleSummaryIndex::exportToDot crashes when linking the Linux kernel under ThinLTO using LLVMgold.so. This is due to the exportToDot function trying to get the GUID of an empty ValueInfo. The root cause related to the fact that we attempt to get the GUID of an aliasee via its OriginalGUID recorded in the aliasee summary, and that is not always possible. Specifically, we cannot do this mapping when the value is internal linkage and there were other internal linkage symbols with the same name. There are 2 fixes for the problem included here. 1) In all cases where we can currently print the dot file from the command line (which is only via save-temps), we have a valid AliaseeGUID in the AliasSummary. Use that when it is available, so that we can get the correct aliasee GUID whenever possible. 2) However, if we were to invoke exportToDot from the debugger right after it is built during the initial analysis step (i.e. the per-module summary), we won't have the AliaseeGUID field populated. In that case, we have a fallback fix that will simply print "@"+GUID when we aren't able to get the GUID from the OriginalGUID. It simply checks if the VI is valid or not before attempting to get the name. Additionally, since getAliaseeGUID will assert that the AliaseeGUID is non-zero, guard the earlier fix #1 by a new function hasAliaseeGUID(). Reviewers: pcc, tmroeder Subscribers: evgeny777, mehdi_amini, inglorion, dexonsmith, arphaman, llvm-commits Differential Revision: https://reviews.llvm.org/D53986
  71. [clangd] don't buffer the input-mirror stream, it's used to diagnose crashes
  72. [compiler-rt][Fuzzer] Fix the fuzzer test build This fixes the issue introduced in r345765 which changed the way in which the embedded libc++ is being built but omitted tests. Differential Revision: https://reviews.llvm.org/D54058
  73. Workaround using new Clang with an old NDK. We're using an old NDK and a new Clang. New Clangs default to `-stdlib=libc++` for Android, but those libraries cannot be found by default with an old NDK. Use an explicit `-stdlib=libstdc++` in the cxx_mode_flags.
  74. [X86] In LowerEXTEND_VECTOR_INREG, emit a vector shuffle instead of directly using X86ISD::UNPCKL The majority of the changes are because the rest of shuffle lowering/combining prefers to replace the undef input with the other operand. Using UNPCKL directly seemed to avoid this and just grabbed a randomish register for the undef which can create false dependencies.
  75. Add an explicit -std=c++14 to this test. rdar://problem/45642490
  76. [WebAssembly] Parsing missing directives to produce valid .o Summary: The assembler was able to assemble and then dump back to .s, but was failing to parse certain directives necessary for valid .o output: - .type directives are now recognized to distinguish function symbols and others. - .size is now parsed to provide function size. - .globaltype (introduced in https://reviews.llvm.org/D54012) is now recognized to ensure symbols like __stack_pointer have a proper type set for both .s and .o output. Also added tests for the above. Reviewers: sbc100, dschuff Subscribers: jgravelle-google, aheejin, dexonsmith, kristina, llvm-commits, sunfish Differential Revision: https://reviews.llvm.org/D53842
  77. [COFF, ARM64] Implement InterlockedExchange*_* builtins Summary: Windows SDK needs these intrinsics to be proper builtins. This is second in a series of patches to move intrinsic defintions out of intrin.h. Reviewers: rnk, mstorsjo, efriedma, TomTan Reviewed By: rnk, efriedma Subscribers: javed.absar, kristof.beyls, chrib, jfb, kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D54046
  78. [X86] Don't emit *_extend_vector_inreg nodes when both the input and output types are legal with AVX1 We already have custom lowering for the AVX case in LegalizeVectorOps. So its better to keep the regular extend op around as long as possible. I had to qualify one place in DAG combine that created illegal vector extending load operations. This change by itself had no effect on any tests which is why its included here. I've made a few cleanups to the custom lowering. The sign extend code no longer creates an identity shuffle with undef elements. The zero extend code now emits a zero_extend_vector_inreg instead of an unpckl with a zero vector. For the high half of the custom lowering of zero_extend/any_extend, we're now using an unpckh with a zero vector or undef. Previously we used used a pshufd to move the upper 64-bits to the lower 64-bits and then used a zero_extend_vector_inreg. I think the zero vector should require less execution resources and be smaller code size. Differential Revision: https://reviews.llvm.org/D54024
  79. Try to unbreak the build of sanitizers on !NetBSD Include the build of unpoison_passwd() and unpoison_group() for SANITIZER_INTERCEPT_FGETPWENT_R and SANITIZER_INTERCEPT_FGETGRENT_R. static void unpoison_passwd(
  80. Diagnose parameter names that shadow the names of inherited fields under -Wshadow-field. This addresses PR34120. Note, unlike GCC, we take into account the accessibility of the field when deciding whether to warn or not.
  81. [DWARF] Fix typo, .gnu_index -> .gdb_index
  82. Split getpwent and fgetgrent functions in interceptors Summary: NetBSD does not ship with fgetpwent_r() and fgetgrent_r(). Split their interceptors from getpwent_r() and getgrent_r() and disable for this OS. Installation of supernumerary interceptors causes leaking of errors to dlsym(3)-like operations. No functional change for other OSes. Reviewers: vitalybuka, joerg Reviewed By: vitalybuka Subscribers: srhines, kubamracek, fedor.sergeev, llvm-commits, #sanitizers, mgorny Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D54041
  83. Removed dead builder/slave lldb-amd64-ninja-netbsd7.
  84. [AArch64] [Windows] Misc fixes for llvm-readobj -unwind. Use getImageBase() helper to compute the image base. Fix various offsets/addresses/masks so they're actually correct. This allows decoding unwind info from DLLs, and unwind info from object files containing multiple functions. Differential Revision: https://reviews.llvm.org/D54015
  85. [RISCV] Add some missing expansions for floating-point intrinsics A number of intrinsics, such as llvm.sin.f32, would result in a failure to select. This patch adds expansions for the relevant selection DAG nodes, as well as exhaustive testing for all f32 and f64 intrinsics. The codegen for FMA remains a TODO item, pending support for the various RISC-V FMA instruction variants. The llvm.minimum.f32.* and llvm.maximum.* tests are commented-out, pending upstream support for target-independent expansion, as discussed in http://lists.llvm.org/pipermail/llvm-dev/2018-November/127408.html. Differential Revision: https://reviews.llvm.org/D54034 Patch by Luís Marques.
  86. Attempt to fix 'logical operation on address of string constant' Caused a lot of warnings for Windows: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/21178/steps/build/logs/warnings%20%2867%29
  87. [X86][AVX512] Change mask ops on vpermi2var tests to not use zeroinitializer. This is necessary as I'm wanting to remove the 'Constant Pool' shuffle decoding from getTargetShuffleMask - but using getTargetShuffleMaskIndices allows the shuffle combiner to realize that these calls are really broadcasts..... As with a lot of the X86ISD::VPERMV3 code this causes some vperm2i/vperm2t shuffles to flip depending on optimal commutation.
  88. [WebAssembly] Change indices types to unsined int (NFC) Summary: This changes int types to unsigned int in a few places: function indices and `wasm::Valtype` (which is unsigend int enum). Currently these values cannot have negative values anyway, so this should not be a functional change for now. Reviewers: sbc100 Subscribers: dschuff, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D54044
  89. [PowerPC]Disable randomized address space on Linux ppc64le Recent versions of Ubuntu (17.04 and 18.04) on PowerPC have introduced changes to Address Space Layout Randomization (ASLR) that is causing 500+ sanitizer failures. This patch disables ASLR when running the sanitizers on PowerPC 64bit LE. Differential Revision: https://reviews.llvm.org/D52900
  90. [WebAssembly] Fix bugs in rethrow depth counting and InstPrinter Summary: EH stack depth is incremented at `try` and decremented at `catch`. When there are more than two catch instructions for a try instruction, we shouldn't count non-first catches when calculating EH stack depths. This patch fixes two bugs: - CFGStackify: Exclude `catch_all` in the terminate catch pad when calculating EH pad stack, because when we have multiple catches for a try we should count only the first catch instruction when calculating EH pad stack. - InstPrinter: The initial intention was also to exclude non-first catches, but it didn't account nested try-catches, so it failed on this case: ``` try try catch end catch <-- (1) end ``` In the example, when we are at the catch (1), the last seen EH instruction is not `try` but `end_try`, violating the wrong assumption. We don't need these after we switch to the second proposal because there is gonna be only one `catch` instruction. But anyway before then these bugfixes are necessary for keep trunk in working state. Reviewers: dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53819
  91. [analyzer] Fixup of the module build after https://reviews.llvm.org/D53277 Adds AnalyzerOptions.def to the list of textual headers.
  92. [DebugInfo][InstMerge] Fix -debugify for phi node created by -mldst-motion Summary: -mldst-motion creates a new phi node without any debug info. Use the merged debug location from the incoming stores to fix this. Fixes PR38177. The test case here is (somewhat) simplified from: ``` struct S { int foo; void fn(int bar); }; void S::fn(int bar) { if (bar) foo = 1; else foo = 0; } ``` Reviewers: dblaikie, gbedwell, aprantl, vsk Reviewed By: vsk Subscribers: vsk, JDevlieghere, llvm-commits Tags: #debug-info Differential Revision: https://reviews.llvm.org/D54019
  93. ARMExpandPseudoInsts: Fix CMP_SWAP expansion adding a kill flag to a def
  94. [ValueTracking] add test for non-canonical shuffle; NFC
  95. [COFF, ARM64] Change setjmp for AArch64 Windows to use Intrinsic.sponentry Summary: ARM64 setjmp expects sp on entry instead of framepointer. Patch by: Yin Ma (yinma@codeaurora.org) Reviewers: mgrang, eli.friedman, ssijaric, mstorsjo, rnk, compnerd Reviewed By: mgrang Subscribers: efriedma, javed.absar, kristof.beyls, chrib, cfe-commits Differential Revision: https://reviews.llvm.org/D53998
  96. Fix a few small issues in llvm-pdbutil Running "llvm-pdbutil dump -all" on linux (using the native PDB reader), over a few PDBs pulled from the Microsoft public symbol store uncovered a few small issues: - stripped PDBs might not have the strings stream (/names) - stripped PDBs might not have the "module info" stream Differential Revision: https://reviews.llvm.org/D54006
  97. [SystemZ::TTI] Improve cost handling of uint/sint to fp conversions. Let i8/i16 uint/sint to fp conversions cost 1 if operand is a load. Since the load already does the extension, there is no extra cost (previously returned 2). Review: Ulrich Weigand https://reviews.llvm.org/D54028
  98. Refactor the lit configuration files A year or so ago, I re-wrote most of the lit infrastructure in LLVM so that it wasn't so boilerplate-y. I added lots of common helper type stuff, simplifed usage patterns, and made the code more elegant and maintainable. We migrated to this in LLVM, clang, and lld's lit files, but not in LLDBs. This started to bite me recently, as the 4 most recent times I tried to run the lit test suite in LLDB on a fresh checkout the first thing that would happen is that python would just start crashing with unhelpful backtraces and I would have to spend time investigating. You can reproduce this today by doing a fresh cmake generation, doing ninja lldb and then python bin/llvm-lit.py -sv ~/lldb/lit/SymbolFile at which point you'll get a segfault that tells you nothing about what your problem is. I started trying to fix the issues with bandaids, but it became clear that the proper solution was to just bring in the work I did in the rest of the projects. The side benefit of this is that the lit configuration files become much cleaner and more understandable as a result. Differential Revision: https://reviews.llvm.org/D54009
  99. [ProfileSummary] Add options to override hot and cold count thresholds. Summary: The hot and cold count thresholds are derived from the summary, but for debugging purposes it is convenient to provide the actual thresholds. Reviewers: davidxl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D54040
  100. [CodeGen] Fix a crash when updating a designated initializer We need to handle the ConstantAggregateZero case here too. rdar://45691981 Differential revision: https://reviews.llvm.org/D54010
  101. Change -fsanitize-address-poison-class-member-array-new-cookie to -fsanitize-address-poison-custom-array-cookie Handle it in the driver and propagate it to cc1 Reviewers: rjmccall, kcc, rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D52615
  102. Fixed inclusion of M_PI fow MinGW-w64 Patch by KOLANICH
  103. [SystemZ] Rework getInterleavedMemoryOpCost() Model this function more closely after the BasicTTIImpl version, with separate handling of loads and stores. For loads, the set of actually loaded vectors is checked. This makes it more readable and just slightly more accurate generally. Review: Ulrich Weigand https://reviews.llvm.org/D53071
  104. Remove the duplicated definition of size_t So hopefully windows won't complain.
  105. [MachineSink][DebugInfo] Correctly sink DBG_VALUEs As reported in PR38952, postra-machine-sink relies on DBG_VALUE insns being adjacent to the def of the register that they reference. This is not always true, leading to register copies being sunk but not the associated DBG_VALUEs, which gives the debugger a bad variable location. This patch collects DBG_VALUEs as we walk through a BB looking for copies to sink, then passes them down to performSink. Compile-time impact should be negligable. Differential Revision: https://reviews.llvm.org/D53992
  106. [fix][clang-tidy] fix for r345961 that introduced a test failure on Windows builds r345961 introduced a path check in .\tools\clang\tools\extra\test\clang-tidy\clang-tidy-run-with-database.cpp. r345961 added a check line for a path that only handled / on unix machines and not \ on windows machines. This patch handles both cases. Patch by TWeaver. Differential Revision: https://reviews.llvm.org/D54036
  107. Didn't -> didnt, because #errors complains about untermianted '
  108. [analyzer] Fix diagnostics/explicit-suppression.cpp *OI++ = *II++ is on line 670, not 668
  109. [OPENMP][NVPTX]Use __kmpc_data_sharing_coalesced_push_stack function. Coalesced memory access requires use of the new function `__kmpc_data_sharing_coalesced_push_stack` instead of the `__kmpc_data_sharing_push_stack`.
  110. [analyzer] Put llvm.Conventions back in alpha Interestingly, this many year old (when I last looked I remember 2010ish) checker was committed without any tests, so I thought I'd implement them, but I was shocked to see how I barely managed to get it working. The code is severely outdated, I'm not even sure it has ever been used, so I'd propose to move it back into alpha, and possibly even remove it. Differential Revision: https://reviews.llvm.org/D53856
  111. [analyzer] New flag to print all -analyzer-config options A new -cc1 flag is avaible for the said purpose: -analyzer-config-help Differential Revision: https://reviews.llvm.org/D53296
  112. [ValueTracking] allow non-canonical shuffles when computing signbits This possibility is noted in D53987 for a different case, so we need to adjust the existing code.
  113. [NFC] Remove some extra characters from docs/LangRef.rst
  114. [analyzer][NFC] Collect all -analyzer-config options in a .def file I'm in the process of refactoring AnalyzerOptions. The main motivation behind here is to emit warnings if an invalid -analyzer-config option is given from the command line, and be able to list them all. In this patch, I'm moving all analyzer options to a def file, and move 2 enums to global namespace. Differential Revision: https://reviews.llvm.org/D53277
  115. [analyzer][NFC] Fix some incorrect uses of -analyzer-config options I'm in the process of refactoring AnalyzerOptions. The main motivation behind here is to emit warnings if an invalid -analyzer-config option is given from the command line, and be able to list them all. In this patch, I found some flags that should've been used as checker options, or have absolutely no mention of in AnalyzerOptions, or are nonexistent. - NonLocalizedStringChecker now uses its "AggressiveReport" flag as a checker option - lib/StaticAnalyzer/Frontend/ModelInjector.cpp now accesses the "model-path" option through a getter in AnalyzerOptions - -analyzer-config path-diagnostics-alternate=false is not a thing, I removed it, - lib/StaticAnalyzer/Checkers/AllocationDiagnostics.cpp and lib/StaticAnalyzer/Checkers/AllocationDiagnostics.h are weird, they actually only contain an option getter. I deleted them, and fixed RetainCountChecker to get it's "leak-diagnostics-reference-allocation" option as a checker option, - "region-store-small-struct-limit" has a proper getter now. Differential Revision: https://reviews.llvm.org/D53276
  116. [clang-tidy] Fixed code sample in a comment. NFC
  117. [NFC] Refactor initialisation of Darwin malloc zone fields into separate function called `InitMallocZoneFields()` which is now called from `ReplaceSystemMalloc()`. Summary: The motivation here is to be able support initialisation of the malloc zone on other code paths. rdar://problem/45284065 Reviewers: kubamracek, george.karpenkov Subscribers: llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D54037
  118. [OPENMP]Change the mapping type for lambda captures. The previously used combination `PTR_AND_OBJ | PRIVATE` could be used for mapping of some data in Fortran. Changed it to `PTR_AND_OBJ | LITERAL`.
  119. [clang-tidy] .reset(new X) -> make_unique<X>() in a comment. NFC
  120. [OPENMP][NVPTX]Improve emission of the globalized variables for target/teams/distribute regions. Target/teams/distribute regions exist for all the time the kernel is executed. Thus, if the variable is declared in their context and then escape it, we can allocate global memory statically instead of allocating it dynamically. Patch captures all the globalized variables in target/teams/distribute contexts, merges them into the records, one per each target region. Those records are then joined into the union, one per compilation unit (to save the global memory). Those units are organized into 2 x dimensional arrays, where the first dimension is the number of blocks per SM and the second one is the number of SMs. Runtime functions manage this global memory space between the executing teams.
  121. [Hexagon] Do not reduce load size for globals in small-data Small-data (i.e. GP-relative) loads and stores allow 16-bit scaled offset. For a load of a value of type T, the small-data area is equivalent to an array "T sdata[65536]". This implies that objects of smaller sizes need to be closer to the beginning of sdata, while larger objects may be farther away, or otherwise the offset may be insufficient to reach it. Similarly, an object of a larger size should not be accessed via a load of a smaller size.
  122. [clangd] Add fallbackFlags initialization extension. Summary: This allows customizing the flags used when no compile database is available. It addresses some uses of the old extraFlags extension. Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53688
  123. [DEBUGINFO, NVPTX]DO not emit ',debug' option if no debug info or only debug directives are requested. Summary: If the output of debug directives only is requested, we should drop emission of ',debug' option from the target directive. Required for supporting of nvprof profiler. Reviewers: probinson, echristo, dblaikie Subscribers: Hahnfeld, jholewinski, llvm-commits, JDevlieghere, aprantl Differential Revision: https://reviews.llvm.org/D46061
  124. Reapply Logging: make os_log buffer size an integer constant expression. The size of an os_log buffer is known at any stage of compilation, so making it a constant expression means that the common idiom of declaring a buffer for it won't result in a VLA. That allows the compiler to skip saving and restoring the stack pointer around such buffers. This also moves the OSLog and other FormatString helpers from libclangAnalysis to libclangAST to avoid a circular dependency.
  125. [clangd] Make in-memory CDB always available as an overlay, refactor. Summary: The new implementation is a GlobalCompilationDatabase that overlays a base. Normally this is the directory-based CDB. To preserve the behavior of compile_args_from=LSP, the base may be null. The OverlayCDB is always present, and so the extensions to populate it are always supported. It also allows overriding the flags of the fallback command. This is just unit-tested for now, but the plan is to expose this as an extension on the initialize message. This addresses use cases like https://github.com/thomasjo/atom-ide-cpp/issues/16 Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53687
  126. [clangd] Remove didOpen extraFlags extension. Summary: This was added in D34947 to support YCM, but YCM actually provides *all* args, and this was never actually used. Meanwhile, we grew another extension that allows specifying all args. I did find one user of this extension: https://github.com/thomasjo/atom-ide-cpp. I'll reach out, there are multiple good alternatives: - compile_commands.txt can serve the same purpose as .clang_complete there - we can add an extension to support setting the fallback command Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53641
  127. [clangd] Only log ignored diagnostics with -log=verbose. Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53648
  128. Add support for 'atomic_default_mem_order' clause on 'requires' directive. Also renamed test files relating to 'requires'. Differntial review: https://reviews.llvm.org/D53513
  129. Allow null-valued function operands in getCalledFunction() Summary: Change the dynamic cast in CallBase::getCalledFunction() to allow null-valued function operands. This patch fixes a crash that occurred when a funtion operand of a call instruction was dropped, and later on a metadata-carrying instruction was printed out. When allocating the metadata slot numbers, getCalledFunction() would be invoked on the call with the dropped operand, resulting in a failed non-null assertion in isa<>. This fixes PR38924, in which a printout in DBCE crashed due to this. This aligns getCalledFunction() with getCalledValue(), as the latter allows the operand to be null. Reviewers: vsk, dexonsmith, hfinkel Reviewed By: dexonsmith Subscribers: hfinkel, llvm-commits Differential Revision: https://reviews.llvm.org/D52537
  130. [analyzer][CTU] Correctly signal in the function index generation tool if there was an error Differential Revision: https://reviews.llvm.org/D53979
  131. [DAGCombiner] Remove reduceBuildVecConvertToConvertBuildVec and rely on the vectorizers instead (PR35732) reduceBuildVecConvertToConvertBuildVec vectorizes int2float in the DAGCombiner, which means that even if the LV/SLP has decided to keep scalar code using the cost models, this will override this. While there are cases where vectorization is necessary in the DAG (mainly due to legalization artefacts), I don't think this is the case here, we should assume that the vectorizers know what they are doing. Differential Revision: https://reviews.llvm.org/D53712
  132. Revert "Fix regression in behavior of clang -x c++-header -fmodule-name=XXX" This reverts commit r345803 and r345915 (a follow-up fix to r345803). Reason: r345803 blocks our internal integrate because of the new warnings showing up in too many places. The fix is actually correct, we will reland it after figuring out how to integrate properly.
  133. [AMDGPU] UBSan bug fix for r345710 UBSan detected an error in our ISelLowering that is exposed only when you have a dmask == 0x1. Fix this by adding in an explicit check to ensure we don't do the UBSan detected shl << 32.
  134. [clang-tidy] Get ClangTidyContext out of the business of storing diagnostics. NFC Summary: Currently ClangTidyContext::diag() sends the diagnostics to a DiagnosticsEngine, which probably delegates to a ClangTidyDiagnosticsConsumer, which is supposed to go back and populate ClangTidyContext::Errors. After this patch, the diagnostics are stored in the ClangTidyDiagnosticsConsumer itself and can be retrieved from there. Why? - the round-trip from context -> engine -> consumer -> context is confusing and makes it harder to establish layering between these things. - context does too many things, and makes it hard to use clang-tidy as a library - everyone who actually wants the diagnostics has access to the ClangTidyDiagnosticsConsumer The most natural implementation (ClangTidyDiagnosticsConsumer::take() finalizes diagnostics) causes a test failure: clang-tidy-run-with-database.cpp asserts that clang-tidy exits successfully when trying to process a file that doesn't exist. In clang-tidy today, this happens because finish() is never called, so the diagnostic is never flushed. This looks like a bug to me. For now, this patch carefully preserves that behavior, but I'll ping the authors to see whether it's deliberate and worth preserving. Reviewers: hokein Subscribers: xazax.hun, cfe-commits, alexfh Differential Revision: https://reviews.llvm.org/D53953
  135. Fix a typo in a function name Declaration and definition have slightly different names with a typo in the declaration, which leads to a link error. See the following bug report for more details: https://bugs.llvm.org/show_bug.cgi?id=39523
  136. [LV] Avoid vectorizing loops under opt for size that involve SCEV checks Fix PR39417, PR39497 The loop vectorizer may generate runtime SCEV checks for overflow and stride==1 cases, leading to execution of original scalar loop. The latter is forbidden when optimizing for size. An assert introduced in r344743 triggered the above PR's showing it does happen. This patch fixes this behavior by preventing vectorization in such cases. Differential Revision: https://reviews.llvm.org/D53612
  137. [XRay] Fix tests with updated fdr-dump Follow-up to D54022.
  138. [XRay] Update delta computations in runtime Summary: Fix some issues discovered from mostly manual inspection of outputs from the `llvm-xray fdr-dump` tool. It turns out we haven't been writing the deltas properly, and have been writing down zeros for deltas of some records. This change fixes this oversight born by the recent refactoring. Reviewers: mboerger Subscribers: llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D54022
  139. [clangd] Really fix clang -Wimplicit-fallthrough The intention was to fall through to Function case in LLVM_ENABLE_ASSERTIONS=Off builds. Use #ifndef NDEBUG to fix -Wimplicit-fallthrough
  140. [clangd] Fix clang -Wimplicit-fallthrough
  141. Fix -Wimplicit-fallthrough warning in LLVM_ENABLE_ASSERTIONS=Off builds
  142. Fix -Wimplicit-fallthrough warning in LLVM_ENABLE_ASSERTIONS=Off builds
  143. AMDGPU: Fix assertion with bitcast from i64 constant to v4i16
  144. test/DebugInfo: Convert some tests to MIR These tests are meant to test dwarf emission (or prolog/epilogue generation) so we can convert them to .mir and only run the relevant part of the pipeline. This way they become independent of changes in earlier passes such as my planned changes to RegAllocFast.
  145. LLVMTargetMachine/TargetPassConfig: Simplify handling of start/stop options; NFC - Make some TargetPassConfig methods that just check whether options have been set static. - Shuffle code in LLVMTargetMachine around so addPassesToGenerateCode only deals with TargetPassConfig now (but not with MCContext or the creation of MachineModuleInfo)
  146. [WebAssembly] Added a .globaltype directive to .s output. Summary: Assembly output can use globals like __stack_pointer implicitly, but has no way of indicating the type of such a global, which makes it hard for tools processing it (such as the MC Assembler) to reconstruct this information. The improved assembler directives parsing (in progress in https://reviews.llvm.org/D53842) will make use of this information. Also deleted code for the .import_global directive which was unused. New test case in userstack.ll Reviewers: dschuff, sbc100 Subscribers: jgravelle-google, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D54012
  147. [WebAssembly] General vector shift lowering Summary: Adds support for lowering non-splat shifts. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53625
  148. When building a header module, treat inputs as headers rather than source files. This suppresses certain warnings (eg, '#include_next in main source file').
  149. [NFC][LICM] Factor out instruction erasing logic This patch factors out a function that makes all required updates whenever an instruction gets erased. Differential Revision: https://reviews.llvm.org/D54011 Reviewed By: apilipenko
  150. [WebAssembly] Expand inserts and extracts with variable indices Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53964
  151. [AliasSetTracker] Misc cleanup (NFCI) Summary: Remove two redundant checks, add one in the unit test. Remove an unused method. Fix computation of TotalMayAliasSetSize.
  152. [gold-plugin] Fix a bunch of build warnings Phabricator: https://reviews.llvm.org/D53997
  153. [COFF, ARM64] Implement Intrinsic.sponentry for AArch64 Summary: This patch adds Intrinsic.sponentry. This intrinsic is required to correctly support setjmp for AArch64 Windows platform. Patch by: Yin Ma (yinma@codeaurora.org) Reviewers: mgrang, ssijaric, eli.friedman, TomTan, mstorsjo, rnk, compnerd, efriedma Reviewed By: efriedma Subscribers: efriedma, javed.absar, kristof.beyls, chrib, llvm-commits Differential Revision: https://reviews.llvm.org/D53996
  154. [DAGCombiner] Make the isTruncateOf call from visitZERO_EXTEND work for vectors. Remove FIXME. I'm having trouble creating a test case for the ISD::TRUNCATE part of this that shows any codegen differences. But I was able to test the setcc path which is what the test changes here cover.
  155. [X86] Add test cases for adding vector support to isTruncateOf in DAGCombiner::visitZERO_EXTEND
  156. [MachineOutliner][NFC] Remember when you map something illegal across MBBs Instruction mapping in the outliner uses "illegal numbers" to signify that something can't ever be part of an outlining candidate. This means that the number is unique and can't be part of any repeated substring. Because each of these is unique, we can use a single unique number to represent a range of things we can't outline. The outliner tries to leverage this using a flag which is set in an MBB when the previous instruction we tried to map was "illegal". This patch improves that logic to work across MBBs. As a bonus, this also simplifies the mapping logic somewhat. This also updates the machine-outliner-remarks test, which was impacted by the order of Candidates on an OutlinedFunction changing. This order isn't guaranteed, so I added a FIXME to fix that in a follow-up. The order of Candidates on an OutlinedFunction isn't important, so this still is NFC.
  157. [XRay] Fix TSC and atomic custom/typed event accounting Summary: This is a follow-on change to D53858 which turns out to have had a TSC accounting bug when writing out function exit records in FDR mode. This change adds a number of tests to ensure that: - We are handling the delta between the exit TSC and the last TSC we've seen. - We are writing the custom event and typed event records as a single update to the buffer extents. - We are able to catch boundary conditions when loading FDR logs. We introduce a TSC matcher to the test helpers, which we use in the testing/verification of the TSC accounting change. Reviewers: mboerger Subscribers: mgorny, hiraditya, jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D53967
  158. [IR] remove fake binop query for fneg We want to remove this fneg API because it would silently fail if we add an actual fneg instruction to IR (as proposed in D53877 ). We have a newer 'match' API that makes checking for these patterns simpler. It also works with vectors that may include undef elements in constants. If any out-of-tree users need updating, they can model their code changes on this commit: https://reviews.llvm.org/rL345295
  159. [CodeGen] Fix assertion on referencing constexpr Obj-C object with ARC. Failed assertion is > Assertion failed: ((ND->isUsed(false) || !isa<VarDecl>(ND) || !E->getLocation().isValid()) && "Should not use decl without marking it used!"), function EmitDeclRefLValue, file llvm-project/clang/lib/CodeGen/CGExpr.cpp, line 2437. `EmitDeclRefLValue` mentions > // A DeclRefExpr for a reference initialized by a constant expression can > // appear without being odr-used. Directly emit the constant initializer. The fix is to use the similar approach for non-references as for references. It is achieved by trying to emit a constant before we attempt to load non-odr-used variable as LValue. rdar://problem/40650504 Reviewers: ahatanak, rjmccall Reviewed By: rjmccall Subscribers: dexonsmith, erik.pilkington, cfe-commits Differential Revision: https://reviews.llvm.org/D53674
  160. [AMDGPU] Handle the idot8 pattern generated by FE. Summary: Different variants of idot8 codegen dag patterns are not generated by llvm-tablegen due to a huge increase in the compile time. Support the pattern that clang FE generates after reordering the additions in integer-dot8 source language pattern. Author: FarhanaAleen Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D53937
  161. Fix test assumption that Linux implies glibc. Summary: This fixes an regression when using bionic introduced in r345173. I need to follow up and figure out what exactly is implied by TEST_HAS_C11_FEATURES and see what the correct configuration is for bionic (new versions should have everything the tests care about, versions that predate C11 certainly don't), but this gets the tests back to the old behavior. Reviewers: EricWF Reviewed By: EricWF Subscribers: mclow.lists, christof, ldionne, libcxx-commits, cfe-commits Differential Revision: https://reviews.llvm.org/D53956
  162. [CodeGen] Move `emitConstant` from ScalarExprEmitter to CodeGenFunction. NFC. The goal is to use `emitConstant` in more places. Didn't move `ComplexExprEmitter::emitConstant` because it returns a different type. Reviewers: rjmccall, ahatanak Reviewed By: rjmccall Subscribers: dexonsmith, erik.pilkington, cfe-commits Differential Revision: https://reviews.llvm.org/D53725
  163. [llvm-objcopy/strip] [NFC] Clean up tablegen opts (clang-format + reorganizing things).
  164. Silence -Wimplicit-fallthrough in gold plugin Fatal errors are likely fatal, but in case they aren't, return instead of printing a second warning.
  165. Revert "Bug 39129: Speeding up partition_point/lower_bound/upper_bound/ by using unsigned division by 2 when possible." This reverts r345525. I'm reverting because that patch apparently caused a regression on certain platforms (see https://reviews.llvm.org/D53994). Since we don't fully understand the reasons for the regression, I'm reverting until we can provide a fix we understand.
  166. [COFF, ARM64] Implement llvm.addressofreturnaddress intrinsic Reviewers: rnk, mstorsjo, efriedma, TomTan Reviewed By: efriedma Subscribers: javed.absar, kristof.beyls, chrib, llvm-commits Differential Revision: https://reviews.llvm.org/D53962
  167. [CMake][Fuchsia] Don't restrict Linux runtimes to UNIX This allows building Linux runtimes on any platform if the correct sysroot is provided via CMake option. Differential Revision: https://reviews.llvm.org/D53970
  168. [WebAssembly] Fix signature parsing for 'try' in AsmParser Summary: Like `block` or `loop`, `try` can take an optional signature which can be omitted. This patch allows `try`'s signature to be omitted. Also added some tests for EH instructions. Reviewers: aardappel Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53873
  169. Enable -Wimplicit-fallthrough for clang as well as GCC All instances of this warning should already be fixed across all LLVM subprojects, at least on Linux.
  170. [Hexagon] Remove unintended fallthrough from MC duplex code I added these annotations in r345878 because I wasn't sure if the fallthrough was intended. Krzysztof Parzyszek confirmed that they should be breaks, so that's what this patch does. Reviewers: kparzysz Differential Revision: https://reviews.llvm.org/D53991
  171. Fix clang -Wimplicit-fallthrough warnings across llvm, NFC This patch should not introduce any behavior changes. It consists of mostly one of two changes: 1. Replacing fall through comments with the LLVM_FALLTHROUGH macro 2. Inserting 'break' before falling through into a case block consisting of only 'break'. We were already using this warning with GCC, but its warning behaves slightly differently. In this patch, the following differences are relevant: 1. GCC recognizes comments that say "fall through" as annotations, clang doesn't 2. GCC doesn't warn on "case N: foo(); default: break;", clang does 3. GCC doesn't warn when the case contains a switch, but falls through the outer case. I will enable the warning separately in a follow-up patch so that it can be cleanly reverted if necessary. Reviewers: alexfh, rsmith, lattner, rtrieu, EricWF, bollu Differential Revision: https://reviews.llvm.org/D53950
  172. [LoopInterchange] Fix unused variables in release build
  173. [WebAssembly] Fixup `main` signature by default Differential Revision: https://reviews.llvm.org/D53396
  174. [codeview] Add breaks to fix -Wimplicit-fallthrough This is a minor bug fix. Previously, if you tried to encode the RSP register on the x86 platform, that might have succeeded and been encoded incorrectly. However, no existing producer or consumer passes the x86_64 registers when targeting x86_32.
  175. Annotate possibly unintended fallthroughs in Hexagon MC code, NFC Clang's -Wimplicit-fallthrough check fires on these switch cases. GCC does not warn when a case body that ends in a switch falls through to a case label of an outer switch. It's not clear if these fall throughs are truly intended. The Hexagon tests pass regardless of whether these case blocks fall through or break. For now, I have applied the intended fallthrough annotation macro with a FIXME comment to unblock enabling the warning. I will send a follow-up patch that converts them to breaks to the Hexagon maintainers.
  176. [LoopInterchange] Remove support for inner-only reductions. Inner-loop only reductions require additional checks to make sure they form a load-phi-store cycle across inner and outer loop. Otherwise the reduction value is not properly preserved. This patch disables interchanging such loops for now, as it causes miscompiles in some cases and it seems to apply only for a tiny amount of loops. Across the test-suite, SPEC2000 and SPEC2006, 61 instead of 62 loops are interchange with inner loop reduction support disabled. With -loop-interchange-threshold=-1000, 3256 instead of 3267. See the discussion and history of D53027 for an outline of how such legality checks could look like. Reviewers: efriedma, mcrosier, davide Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D53027
  177. Remove unnecessary fallthrough annotation after unreachable Clang's -Wimplicit-fallthrough implementation warns on this. I built clang with GCC 7.3 in +asserts and -asserts mode, and GCC doesn't warn on this in either configuration. I think it is unnecessary. I separated it from the large mechanical patch (https://reviews.llvm.org/D53950) in case I am wrong and it has to be reverted.
  178. [GlobalISel] Fix a bug in LegalizeRuleSet::clampMaxNumElements Summary: This function was causing a crash when `MaxElements == 1` because it was trying to create a single element vector type. Reviewers: dsanders, aemerson, aditya_nandakumar Reviewed By: dsanders Subscribers: rovka, kristof.beyls, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D53734
  179. Output "rule" information in SARIF exports. SARIF allows you to export descriptions about rules that are present in the SARIF log. Expose the help text table generated into Checkers.inc as the rule's "full description" and export all of the rules present in the analysis output. This information is useful for analysis result viewers like CodeSonar.
  180. Add LLVM_FALLTHROUGH annotation after switch This silences a -Wimplicit-fallthrough warning from clang. GCC does not appear to warn when the case body ends in a switch. This is a somewhat surprising but intended fallthrough that I pulled out from my mechanical patch. The code intends to handle 'Yi' and related constraints as the 'x' constraint.
  181. Revert "[COFF, ARM64] Change setjmp for AArch64 Windows to use Intrinsic.sponentry" This reverts commit 619111f5ccf349b635e4987ec02d15777c571495.
  182. Revert "Reapply Logging: make os_log buffer size an integer constant expression." Still more dependency hell.
  183. Use C++11 fallthrough attribute syntax when available and add a break Summary: This silences the two -Wimplicit-fallthrough warnings clang finds in ItaniumDemangle.h in libc++abi. Clang does not have a GNU attribute spelling for this attribute, so this is necessary. I will commit the same change to the LLVM demangler soon. Reviewers: EricWF, ldionne Subscribers: christof, erik.pilkington, cfe-commits Differential Revision: https://reviews.llvm.org/D53985
  184. [LegalizeDAG] Add generic vector CTPOP expansion (PR32655) This patch adds support for expanding vector CTPOP instructions and removes the x86 'bitmath' lowering which replicates the same expansion. Differential Revision: https://reviews.llvm.org/D53258
  185. [Hexagon] Fix MO_JumpTable const extender conversion Previously this case fell through to unreachable, so it is clearly not covered by any test case in LLVM. It may be dynamically unreachable, in fact. However, if it were to run, this is what it would logically do. The assert suggests that the intended behavior was not to allow folding offsets from jump table indices, which makes sense.
  186. Reapply Logging: make os_log buffer size an integer constant expression. The size of an os_log buffer is known at any stage of compilation, so making it a constant expression means that the common idiom of declaring a buffer for it won't result in a VLA. That allows the compiler to skip saving and restoring the stack pointer around such buffers. This also moves the OSLog helpers from libclangAnalysis to libclangAST to avoid a circular dependency.
  187. [llvm-mca] Add extra counters for move elimination in view RegisterFileStatistics. This patch teaches view RegisterFileStatistics how to report events for optimizable register moves. For each processor register file, view RegisterFileStatistics reports the following extra information: - Number of optimizable register moves - Number of register moves eliminated - Number of zero moves (i.e. register moves that propagate a zero) - Max Number of moves eliminated per cycle. Differential Revision: https://reviews.llvm.org/D53976
  188. [AArch64] Fix unintended fallthrough and strengthen cast This was added in r330630. GCC's -Wimplicit-fallthrough seems to not fire when the previous case contains a switch itself. This fallthrough was bening because the helper function implementing the case used dyn_cast to re-check the type of the node in question. After fixing the fallthrough, we can strengthen the cast.
  189. Revert "[COFF, ARM64] Implement Intrinsic.sponentry for AArch64" This reverts commit 585b6667b4712e3c7f32401e929855b3313b4ff2.
  190. Replace two fallthrough annotations after covered switch with unreachable Both preceding switches handle all possible enumerators, so the fallthrough is actually unreachable. This strengthens that to an assertion. The first instance had a comment from 2010 indicating that fallthrough was possible, but that was back when we had a unary operator for offsetof. Now it is its own expression kind, so the annotation was stale.
  191. [llvm-strip] Support --keep and --strip-all-gnu from llvm-objcopy Summary: Add --keep and --strip-all-gnu from llvm-objcopy into llvm-strip. Reviewers: jakehehrlich, jhenderson, alexshap Reviewed By: jhenderson, alexshap Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53954
  192. [llvm-objcopy] Support --{enable,disable}-deterministic-archives Summary: ar and objcopy/strip all support configuring whether archives are written deterministically (timestamps/UIDs/GIDs/etc zero'd). This has been ported to llvm-ar (the U/D modifiers) but not yet to llvm-objcopy/strip. Reviewers: jakehehrlich, jhenderson, alexshap Reviewed By: jhenderson Subscribers: ruiu, mgrang, llvm-commits Differential Revision: https://reviews.llvm.org/D53913
  193. Fix the issue that not recognizing single acronym with prefix as ObjC property name. Summary: This will make clang-tidy accept property names like xyz_URL (URL is a common acronym). Reviewers: benhamilton, hokein Reviewed By: benhamilton Subscribers: jfb, cfe-commits Differential Revision: https://reviews.llvm.org/D53955
  194. [llvm-objcopy] Don't apply --localize flags to common symbols Summary: --localize-symbol and --localize-hidden will currently localize common symbols. GNU objcopy will not localize these symbols even when explicitly requested, which seems reasonable; common symbols should always be global so they can be merged during linking. See PR39461 Reviewers: jakehehrlich, jhenderson, alexshap, MaskRay, espindola Reviewed By: jakehehrlich, jhenderson, alexshap, MaskRay Subscribers: emaste, arichardson, alexshap, MaskRay, llvm-commits Differential Revision: https://reviews.llvm.org/D53782
  195. [llvm-objcopy] For multiclass Eq, associate help text with --name= , not with --name Summary: Before: % llvm-objcopy -help ... --weaken-symbol=symbol Mark <symbol> as weak --weaken-symbol symbol Mark <symbol> as weak After: % llvm-objcopy -help ... --weaken-symbol=symbol Mark <symbol> as weak Reviewers: jhenderson, rupprecht, alexshap, jakehehrlich Reviewed By: jhenderson Subscribers: llvm-commits, kristina Differential Revision: https://reviews.llvm.org/D53983
  196. [InstCombine] add test for ComputeNumSignBits on 2-input shuffle; NFC
  197. Fix whitespace in test/Assembler/fast-math-flags.ll Differential Revision: https://reviews.llvm.org/D53981
  198. [ARM] Attempt to fix ppc64be buildbot
  199. [NativePDB] Get LLDB types from PDB function types. This adds basic support for getting function signature types into LLDB's type system, including into clang's AST. There are a few edge cases which are not correctly handled, mostly dealing with nested classes, but this isn't specific to functions and apply equally to variable types. Note that no attempt has been made yet to deal with member function types, which will happen in subsequent patches. Differential Revision: https://reviews.llvm.org/D53951
  200. [Diagnostics] Implement -Wsizeof-pointer-div Summary: void test(int *arr) { int arr_len = sizeof(arr) / sizeof(*arr); // warn, incorrect way to compute number of array elements } Enabled under -Wall (same behaviour as GCC) Reviewers: rsmith, MTC, aaron.ballman Reviewed By: aaron.ballman Subscribers: MTC, thakis, jfb, cfe-commits Differential Revision: https://reviews.llvm.org/D52949
  201. Revert "Logging: make os_log buffer size an integer constant expression. This also reverts a couple of follow-up commits trying to fix the dependency issues. Latest revision added a cyclic dependency that can't just be patched up in 5 minutes.
  202. [llvm-objcopy] Use proper cases Reviewers: jhenderson, alexshap, jakehehrlich, espindola, rupprecht Reviewed By: jhenderson, rupprecht Subscribers: emaste, arichardson, rupprecht, llvm-commits Differential Revision: https://reviews.llvm.org/D53971
  203. [clang] Improve ctor initializer completions. Summary: Instead of providing generic "args" for member and base class initializers, tries to fetch relevant constructors and show their signatures. Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: ZaMaZaN4iK, eraman, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D53654
  204. [DAGCombiner] make sure we have a whole-number extract before trying to narrow a vector op (PR39511) The test causes a crash because we were trying to extract v4f32 to v3f32, and the narrowing factor was then 4/3 = 1 producing a bogus narrow type. This should fix: https://bugs.llvm.org/show_bug.cgi?id=39511
  205. [MC] Implement EmitRawText in MCNullStreamer Summary: This adds dummy implementation of `EmitRawText` in `MCNullStreamer`. This fixes the behavior of `AsmPrinter` with `MCNullStreamer` on targets on which no integrated assembler is used. An attempt to emit inline asm on such a target would previously lead to a crash, since `AsmPrinter` does not check for `hasRawTextSupport` in `EmitInlineAsm` and calls `EmitRawText` anyway if integrated assembler is disabled (the behavior has changed in D2686). Error message printed by MCStreamer: > EmitRawText called on an MCStreamer that doesn't support it, something > must not be fully mc'ized Patch by Eugene Sharygin Reviewers: dsanders, echristo Reviewed By: dsanders Subscribers: eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D53938
  206. [ARM][CGP] Negative constant operand handling While mutating instructions, we sign extended negative constant operands for binary operators that can safely overflow. This was to allow instructions, such as add nuw i8 %a, -2, to still be able to perform a subtraction. However, the code to handle constants doesn't take into consideration that instructions, such as sub nuw i8 -2, %a, require the i8 -2 to be converted into i32 254. This is a relatively simple fix, but I've taken the time to reorganise the code a bit - mainly that instructions that can be promoted are cached and splitting up the Mutate function. Differential Revision: https://reviews.llvm.org/D53972
  207. Multiversioning- Ensure all MV functions are emitted. Multiverson function versions are always used (by the resolver), so ensure that they are always emitted. Change-Id: I5d2e0841fddf0d18918b3fb92ae76814add7ee96
  208. CPU-Dispatch- Fix type of a member function, prevent deferrals The member type creation for a cpu-dispatch function was not correctly including the 'this' parameter, so ensure that the type is properly determined. Also, disable defer in the cases of emitting the functoins, as it can end up resulting in the wrong version being emitted. Change-Id: I0b8fc5e0b0d1ae1a9d98fd54f35f27f6e5d5d083
  209. [MS Demangler] Expose the Demangler AST publicly. LLDB would like to use this in order to build a clang AST from a mangled name. This is NFC otherwise.
  210. [X86][X86FixupLEA] Rename processInstructionForSLM to processInstructionForSlowLEA (NFCI) The function isn't SLM specific (its driven by the FeatureSlowLEA flag). Minor tidyup prior to PR38225.
  211. Logging: put link against libclangAnalysis rather than libLLVMAnalysis for os_log
  212. [libcxx] Fix usage of _C2, which is a "nasty macro" in some environments The problem was pointed out in https://reviews.llvm.org/D48896#inline-475775.
  213. Logging: add CMake dependency so libAST can use OSLog analysis. Should fix bots on platforms with slightly different symbol resolution semantics.
  214. [InstSimplify] fold icmp based on range of abs/nabs (2nd try) This is retrying the fold from rL345717 (reverted at rL347780) ...with a fix for the miscompile demonstrated by PR39510: https://bugs.llvm.org/show_bug.cgi?id=39510 Original commit message: This is a fix for PR39475: https://bugs.llvm.org/show_bug.cgi?id=39475 We managed to get some of these patterns using computeKnownBits in https://reviews.llvm.org/D47041, but that can't be used for nabs(). Instead, put in some range-based logic, so we can fold both abs/nabs with icmp with a constant value. Alive proofs: https://rise4fun.com/Alive/21r Name: abs_nsw_is_positive %cmp = icmp slt i32 %x, 0 %negx = sub nsw i32 0, %x %abs = select i1 %cmp, i32 %negx, i32 %x %r = icmp sgt i32 %abs, -1 => %r = i1 true Name: abs_nsw_is_not_negative %cmp = icmp slt i32 %x, 0 %negx = sub nsw i32 0, %x %abs = select i1 %cmp, i32 %negx, i32 %x %r = icmp slt i32 %abs, 0 => %r = i1 false Name: nabs_is_negative_or_0 %cmp = icmp slt i32 %x, 0 %negx = sub i32 0, %x %nabs = select i1 %cmp, i32 %x, i32 %negx %r = icmp slt i32 %nabs, 1 => %r = i1 true Name: nabs_is_not_over_0 %cmp = icmp slt i32 %x, 0 %negx = sub i32 0, %x %nabs = select i1 %cmp, i32 %x, i32 %negx %r = icmp sgt i32 %nabs, 0 => %r = i1 false Differential Revision: https://reviews.llvm.org/D53844
  215. [InstSimplify] add tests for icmp fold bug (PR39510); NFC Verify that set intersection/subset are not confused.
  216. [mips][micromips] Fix JmpLink to TargetExternalSymbol When matching MipsISD::JmpLink t9, TargetExternalSymbol:i32'...', wrong JALR16_MM is selected. This patch adds missing pattern for JmpLink, so that JAL instruction is selected. Differential Revision: https://reviews.llvm.org/D53366
  217. [ADT] Clean up SparseBitVector copying and make it moveable
  218. Logging: make os_log buffer size an integer constant expression. The size of an os_log buffer is known at any stage of compilation, so making it a constant expression means that the common idiom of declaring a buffer for it won't result in a VLA. That allows the compiler to skip saving and restoring the stack pointer around such buffers.
  219. [AArch64] Add support for ARMv8.4 in Saphira.
  220. CPU-Dispatch-- Fix conflict between 'generic' and 'pentium' When a dispatch function was being emitted that had both a generic and a pentium configuration listed, we would assert. This is because neither configuration has any 'features' associated with it so they were both considered the 'default' version. 'pentium' lacks any features because we implement it in terms of __builtin_cpu_supports (instead of Intel proprietary checks), which is unable to decern between the two. The fix for this is to omit the 'generic' version from the dispatcher if both are present. This permits existing code to compile, and still will choose the 'best' version available (since 'pentium' is technically better than 'generic'). Change-Id: I4b69f3e0344e74cbdbb04497845d5895dd05fda0
  221. Allow clk_event_t comparisons Also rename `invalid-clk-events-cl2.0.cl` to `clk_event_t.cl` and repurpose it to include both positive and negative clk_event_t tests. Differential Revision: https://reviews.llvm.org/D53871
  222. [X86][SSE] Move 2-input limit up from getFauxShuffleMask to resolveTargetShuffleInputs (reapplied) Reapplying an updated version of rL345395 (reverted in rL345451), now the issues noticed in PR39483 have been fixed. This patch allows resolveTargetShuffleInputs to remove UNDEF inputs from cases where we have more than 2 inputs.
  223. Update to the 10-10 SARIF spec. This removes the Step property (which can be calculated by consumers trivially), and updates the schema and version numbers accordingly.
  224. [NFC] Specialize public API of ICFLoopSafetyInfo for insertions and removals
  225. [Mips] Conditionally remove successor block In MipsBranchExpansion::splitMBB, upon splitting a block with two direct branches, remove the successor of the newly created block (which inherits successors from the original block) which is pointed to by the last branch in the original block only if the targets of two branches differ. This is to fix the failing test when ran with -verify-machineinstrs enabled. Differential Revision: https://reviews.llvm.org/D53756
  226. [NFC] Reorganize code to prepare it for more transforms
  227. [SystemZ::TTI] Recognize the higher cost of scalar i1 -> fp conversion Scalar i1 to fp conversions are done with a branch sequence, so it should have a higher cost. Review: Ulrich Weigand https://reviews.llvm.org/D53924
  228. [SystemZ::TTI] Accurate costs for i1->double vector conversions This factors out a new method getBoolVecToIntConversionCost() containing the code for vector sext/zext of i1, in order to reuse it for i1 to double vector conversions. Review: Ulrich Weigand https://reviews.llvm.org/D53923
  229. [clang][CodeGen] ImplicitIntegerSignChangeSanitizer: actually ignore NOP casts. I fully expected for that to be handled by the canonical type check, but it clearly wasn't. Sadly, somehow it hide until now. Reported by Eli Friedman.
  230. [IndVars] Smart hard uses detection When rewriting loop exit values, IndVars considers this transform not profitable if the loop instruction has a loop user which it believes cannot be optimized away. In current implementation only calls that immediately use the instruction are considered as such. This patch extends the definition of "hard" users to any side-effecting instructions (which usually cannot be optimized away from the loop) and also allows handling of not just immediate users, but use chains. Differentlai Revision: https://reviews.llvm.org/D51584 Reviewed By: etherzhhb
  231. [SCEV] Avoid redundant computations when doing AddRec merge When we calculate a product of 2 AddRecs, we end up making quite massive computations to deduce the operands of resulting AddRec. This process can be optimized by computing all args of intermediate sum and then calling `getAddExpr` once rather than calling `getAddExpr` with intermediate result every time a new argument is computed. Differential Revision: https://reviews.llvm.org/D53189 Reviewed By: rtereshin
  232. [CodeView] Emit the correct TypeIndex for std::nullptr_t. The TypeIndex used by cl.exe is 0x103, which indicates a SimpleTypeMode of NearPointer (note the absence of the bitness, normally pointers use a mode of NearPointer32 or NearPointer64) and a SimpleTypeKind of void. So this is basically a void*, but without a specified size, which makes sense given how std::nullptr_t is defined. clang-cl was actually not emitting *anything* for this. Instead, when we encountered std::nullptr_t in a DIType, we would actually just emit a TypeIndex of 0, which is obviously wrong. std::nullptr_t in DWARF is represented as a DW_TAG_unspecified_type with a name of "decltype(nullptr)", so we add that logic along with a test, as well as an update to the dumping code so that we no longer print void* when dumping 0x103 (which would previously treat Void/NearPointer no differently than Void/NearPointer64). Differential Revision: https://reviews.llvm.org/D53957
  233. [PowerPC] Support constraint 'wi' in asm From the gcc manual, we can see that the specific limit of wi inline asm is “FP or VSX register to hold 64-bit integers for VSX insns or NO_REGS”. The link is https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/Machine-Constraints.html#Machine-Constraints. We should accept this constraint. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D53265
  234. [Clang][PowerPC] Support constraint 'wi' in asm From the gcc manual, we can see that the specific limit of wi inline asm is “FP or VSX register to hold 64-bit integers for VSX insns or NO_REGS”. The link is https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/Machine-Constraints.html#Machine-Constraints. We should accept this constraint. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D53265
  235. [COFF, ARM64] Implement llvm.addressofreturnaddress intrinsic
  236. [analyzer] SARIF: Suppress version testing in a more downstream-friendly manner. No functional change intended.
  237. Fix typo in comment.
  238. [WebAssembly] Fix type names in truncation builtins Summary: Use the same convention as all the other WebAssembly builtin names. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D53724
  239. Fix regression in behavior of clang -x c++-header -fmodule-name=XXX -fsyntax-only. The driver accidentally stopped passing the input filenames on to -cc1 in this mode due to confusion over what action was being requested. This change also fixes a couple of crashes I encountered when passing multiple files to such a -cc1 invocation.
  240. [analyzer] pr39348: MallocChecker: Realize that sized delete isn't custom delete. MallocChecker no longer thinks that operator delete() that accepts the size of the object to delete (available since C++14 or under -fsized-deallocation) is some weird user-defined operator. Instead, it handles it like normal delete. Additionally, it exposes a regression in NewDelete-intersections.mm's testStandardPlacementNewAfterDelete() test, where the diagnostic is delayed from before the call of placement new into the code of placement new in the header. This happens because the check for pass-into-function-after-free for placement arguments is located in checkNewAllocator(), which happens after the allocator is inlined, which is too late. Move this use-after-free check into checkPreCall instead, where it works automagically because the guard that prevents it from working is useless and can be removed as well. This commit causes regressions under -analyzer-config c++-allocator-inlining=false but this option is essentially unsupported because the respective feature has been enabled by default quite a while ago. Differential Revision: https://reviews.llvm.org/D53543
  241. X86: Consistently declare pass initializers in X86.h; NFC This avoids declaring them twice: in X86TargetMachine.cpp and the file implementing the pass.
  242. [XRay] Add CPU ID in Custom Event FDR Records Summary: This change cuts across compiler-rt and llvm, to increment the FDR log version number to 4, and include the CPU ID in the custom event records. This is a step towards allowing us to change the `llvm::xray::Trace` object to start representing both custom and typed events in the stream of records. Follow-on changes will allow us to change the kinds of records we're presenting in the stream of traces, to incorporate the data in custom/typed events. A follow-on change will handle the typed event case, where it may not fit within the 15-byte buffer for metadata records. This work is part of the larger effort to enable writing analysis and processing tools using a common in-memory representation of the events found in traces. The work will focus on porting existing tools in LLVM to use the common representation and informing the design of a library/framework for expressing trace event analysis as C++ programs. Reviewers: mboerger, eizan Subscribers: hiraditya, mgrang, llvm-commits Differential Revision: https://reviews.llvm.org/D53920
  243. [WebAssembly] Lower vselect Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53630
  244. Compile and test i128 math builtins for Win64 Summary: Windows has always been LLP64, not LP64, so the macros were incorrect. Check for _WIN64, since AArch64 sets that too. The tests have to be fixed up in two main ways: 1. Use 'ULL' suffixes to avoid sign extension when passing hex literals with the sign bit set to signed 128 arguments. Clang -fms-compatibility makes such hex literals signed, not unsigned. 2. Disable various tests for 80-bit long double interoperation with i128 values. Reviewers: joerg, mstorsjo Subscribers: javed.absar, kristof.beyls, hiraditya, aheejin, llvm-commits Differential Revision: https://reviews.llvm.org/D53918
  245. [WebAssembly] Process p2align operands for SIMD loads and stores Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53886
  246. [WebAssembly] Handle vector IMPLICIT_DEFs. Summary: Also reduce the test case for implicit defs and test it with all register classes. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D53855
  247. [VFS] Add support for "no_push" to VFS recursive iterators. The "regular" file system has a useful feature that makes it possible to stop recursing when using the recursive directory iterators. This functionality was missing for the VFS recursive iterator and this patch adds that. Differential revision: https://reviews.llvm.org/D53465
  248. [COFF, ARM64] Change setjmp for AArch64 Windows to use Intrinsic.sponentry Summary: ARM64 setjmp expects sp on entry instead of framepointer. Reviewers: mgrang, rnk, TomTan, compnerd, mstorsjo, efriedma Reviewed By: mstorsjo Subscribers: javed.absar, kristof.beyls, chrib, cfe-commits Differential Revision: https://reviews.llvm.org/D53684
  249. [COFF, ARM64] Implement Intrinsic.sponentry for AArch64 Summary: This patch adds Intrinsic.sponentry. This intrinsic is required to correctly support setjmp for AArch64 Windows platform. Reviewers: mgrang, TomTan, rnk, compnerd, mstorsjo, efriedma Reviewed By: efriedma Subscribers: majnemer, chrib, javed.absar, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D53673
  250. [IR] Allow increasing the alignment of dso-local globals. I think this is the actual important property; the previous visibility check was an approximation. Differential Revision: https://reviews.llvm.org/D53852
  251. [InlineCost] Remove a dead constant; NFC My `grep`-fu indicates that this hasn't been used for years. It also no longer makes much sense to have this flavor of penalty in general, since a call to a noreturn should mean that we're in a BB that's terminated by `unreachable`. That case is accounted for by CallAnalyzer::allowSizeGrowth.
  252. [compiler-rt] Pass CMake C and C++ flags to the custom libc++ When building the custom libc++ that's used by libFuzzer as well as MSan and TSan tests, passthrough the C and C++ flags that were passed to the compiler-rt CMake build. These may be needed to successfuly compile the library on a particular platform. Differential Revision: https://reviews.llvm.org/D53862
  253. [AArch64] Sort switch cases (NFC)
  254. Revert r345165 "[X86] Bring back the MOV64r0 pseudo instruction" Google is reporting regressions on some benchmarks.
  255. Revert "[ASTImporter][Structural Eq] Check for isBeingDefined" This reverts commit r345760 because it caused an assertion in the lldb test suite. This is the log from the build bot: http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/12003/
  256. [ARM] Add missing pseudo-instruction for Thumb1 RSBS. Shows up rarely for 64-bit arithmetic, more frequently for the compare patterns added in r325323. Differential Revision: https://reviews.llvm.org/D53848
  257. [AArch64] [Windows] Emit unwind tables by default. Unwind tables are necessary even in code that doesn't support exceptions. The tables are used for setjmp(), and by debuggers. Differential Revision: https://reviews.llvm.org/D53618
  258. revert rL345717 : [InstSimplify] fold icmp based on range of abs/nabs This can miscompile as shown in PR39510: https://bugs.llvm.org/show_bug.cgi?id=39510
  259. [ARM64] [Windows] Implement _InterlockedExchangeAdd*_* builtins. These apparently need to be proper builtins to handle the Windows SDK. Differential Revision: https://reviews.llvm.org/D53916
  260. Check shouldReduceLoadWidth from SimplifySetCC SimplifySetCC could shrink a load without checking for profitability or legality of such shink with a target. Added checks to prevent shrinking of aligned scalar loads in AMDGPU below dword as scalar engine does not support it. Differential Revision: https://reviews.llvm.org/D53846
  261. [ValueTracking] add tests for fmin/fmax; NFC
  262. [DWARF][NFC] Refactor a function to return Optional<> instead of bool Minor refactor of DWARFUnit::getStringOffsetSectionItem(). Differential Revision: https://reviews.llvm.org/D53948
  263. Part of PR39508: Emit an @llvm.invariant.start after storing to __tls_guard. __tls_guard can only ever transition from 0 to 1, and only once. This permits LLVM to remove repeated checks for TLS initialization and repeated initialization code in cases like: int g(); thread_local int n = g(); int a = n + n; where we could not prove that __tls_guard was still 'true' when checking it for the second reference to 'n' in the initializer of 'a'.
  264. Remove unused internal template parameter.
  265. [adt] SparseBitVector::test() should be const Summary: Re-worked SparseBitVector's most-recently-used-word caching (CurrElementIter) such that SparseBitVector::test() can be made const. This came up when attempting to test individual bits in a SparseBitVector which was a member of a const object. The cached iterator has no bearing on the externally visible state, it's merely a performance optimization. Therefore it has been made mutable and FindLowerBound() has been split into a const and non-const function (FindLowerBound/FindLowerBoundConst) for the const/non-const interfaces. Reviewers: rtereshin Reviewed By: rtereshin Subscribers: rtereshin, dexonsmith, kristina, llvm-commits Differential Revision: https://reviews.llvm.org/D53447
  266. [InstCombine] add tests for fmin/fmax pattern matching failure; NFC
  267. [SelectionDAG] Handle constant range [0,1) in lowerRangeToAssertZExt lowerRangeToAssertZExt currently relies on something like EarlyCSE having eliminated the constant range [0,1). At -O0 this leads to an assert. Differential Revision: https://reviews.llvm.org/D53888
  268. [globalisel] Add comments indicating the operand order
  269. Removing a reliance on system headers from this test; NFC.
  270. [compiler-rt][Fuzzer] Use the new C++ ABI namespace CMake support libc++ now supports customizing the ABI namespace directly from the CMake build so we no longer need to rely on custom CFLAGS. Differential Revision: https://reviews.llvm.org/D53939
  271. Implement the readability-const-return-type check. This check flags function top-level const-qualified return types and suggests removing the mostly-superfluous const qualifier where possible. Patch by Yitzhak Mandelbaum.
  272. [AMDGPU] Remove FeatureVGPRSpilling This feature is only relevant to shaders, and is no longer used. When disabled, lowering of reserved registers for shaders causes a compiler crash. Remove the feature and add a test for compilation of shaders at OptNone. Differential Revision: https://reviews.llvm.org/D53829
  273. [NFC] Replace C++1y and C++1z by C++14 and C++17, respectively
  274. [SelectionDAGISel] Suppress a -Wunused-but-set-variable warning in release builds. NFC
  275. [ASTImporter][Structural Eq] Check for isBeingDefined Summary: If one definition is currently being defined, we do not compare for equality and we assume that the decls are equal. Reviewers: a_sidorin Subscribers: rnkovacs, dkrupp, Szelethus, cfe-commits Differential Revision: https://reviews.llvm.org/D53697
  276. [NFC] Mark "Splicing Maps and Sets" as done in LLVM 8.0
  277. Fix comment typo. NFCI.
  278. [InstCombine] regenerate test checks; NFC
  279. [SelectionDAG] SelectionDAGLegalize::ExpandBITREVERSE - ensure we use ShiftTy We should be using the getShiftAmountTy value type for shift amounts.
  280. [globalisel][irtranslator] Fix test from r345743 on non-asserts builds.
  281. [clang-format] tweaked another case of lambda formatting Summary: This is done in order to improve cases where the lambda's body is moved too far to the right. Consider the following snippet with column limit set to 79: ``` void f() { leader::MakeThisCallHere(&leader_service_, cq_.get(), [this, liveness](const leader::ReadRecordReq& req, std::function<void()> done) { logger_->HandleReadRecord( req, resp, std::move(done)); }); leader::MakeAnother(&leader_service_, cq_.get(), [this, liveness](const leader::ReadRecordReq& req, std::function<void()> done) { logger_->HandleReadRecord( req, resp, std::move(done), a); }); } ``` The tool favors extra indentation for the lambda body and so the code incurs extra wrapping and adjacent calls are indented to a different level. I find this behavior annoying and I'd like the tool to favor new lines and, thus, use the extra width. The fix, reduced, brings the following formatting. Before: function(1, [] { DoStuff(); // }, 1); After: function( 1, [] { DoStuff(); // }, 1); Refer to the new tests in FormatTest.cpp Contributed by oleg.smolsky! Reviewers: djasper, klimek, krasimir Subscribers: cfe-commits, owenpan Tags: #clang Differential Revision: https://reviews.llvm.org/D52676
  282. [InstCombine] add tests for fcmp with -0.0; NFC From IEEE754: "Comparisons shall ignore the sign of zero (so +0 = −0)."
  283. [InstCombine] Combine nested min/max intrinsics with constants Reviewers: arsenm, spatel Reviewed By: spatel Subscribers: lebedev.ri, wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D53774
  284. [llvm-mca] Remove the verb 'assemble' from a few options in help. NFC. * MCA does not assemble anything. * Ran clang-format.
  285. TableGen: Fix ASAN error Summary: As a bonus, this arguably improves the code by making it simpler. gcc 8 on Ubuntu 18.10 reports the following: ==39667==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fffffff8ae0 at pc 0x555555dbfc68 bp 0x7fffffff8760 sp 0x7fffffff8750 WRITE of size 8 at 0x7fffffff8ae0 thread T0 #0 0x555555dbfc67 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider::_Alloc_hider(char*, std::allocator<char>&&) /usr/include/c++/8/bits/basic_string.h:149 #1 0x555555dbfc67 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) /usr/include/c++/8/bits/basic_string.h:542 #2 0x555555dbfc67 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) /usr/include/c++/8/bits/basic_string.h:6009 #3 0x555555dbfc67 in searchableFieldType /home/nha/amd/build/san/llvm-src/utils/TableGen/SearchableTableEmitter.cpp:168 (...) Address 0x7fffffff8ae0 is located in stack of thread T0 at offset 864 in frame #0 0x555555dbef3f in searchableFieldType /home/nha/amd/build/san/llvm-src/utils/TableGen/SearchableTableEmitter.cpp:148 Reviewers: fhahn, simon_tatham, kparzysz Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53931
  286. Re-land r345676 "[Win64] Handle passing i128 by value" Fix the unintended switch/case fallthrough to avoid changing long double behavior.
  287. [analyzer] Re-add custom OSIterator rule for RetainCountChecker Turns out the rule is quite ubiquitous. Revert of https://reviews.llvm.org/D53628
  288. [analyzer] RetainCountChecker: for now, do not trust the summaries of inlined code Trusting summaries of inlined code would require a more thorough work, as the current approach was causing too many false positives, as the new example in test. The culprit lies in the fact that we currently escape all variables written into a field (but not passed off to unknown functions!), which can result in inconsistent behavior. rdar://45655344 Differential Revision: https://reviews.llvm.org/D53902
  289. [analyzer] Enable retain count checking for OSObject by defa The FP rate seems to be good enough now. Differential Revision: https://reviews.llvm.org/D53849
  290. Second half of C++17's splicing maps and sets This commit adds a merge member function to all the map and set containers, which splices nodes from the source container. This completes support for P0083r3. Differential revision: https://reviews.llvm.org/D48896
  291. [globalisel][irtranslator] Verify that DILocations aren't lost in translation Summary: Also fix a couple bugs where DILocations are lost. EntryBuilder wasn't passing on debug locations for PHI's, constants, GLOBAL_VALUE, etc. Reviewers: aprantl, vsk, bogner, aditya_nandakumar, volkan, rtereshin, aemerson Reviewed By: aemerson Subscribers: aemerson, rovka, kristof.beyls, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D53740
  292. [clang-tidy] add missing '--' in RUN-line, unbreak buildbot
  293. [Lex] Make MacroDirective::findDirectiveAtLoc take const SourceManager I'm currently working on including macro expansions in the Static Analyzer's plist output, where I can only access a const SourceManager. Differential Revision: https://reviews.llvm.org/D53940
  294. MachineModuleInfo: Initialize DbgInfoAvailable depending on debug_cus existing Before this patch DbgInfoAvailable was set to true in DwarfDebug::beginModule() or CodeViewDebug::CodeViewDebug(). This made MIR testing weird since passes would suddenly stop dealing with debug info just because we stopped the pipeline before the debug printers. This patch changes the logic to initialize DbgInfoAvailable based on the fact that debug_compile_units exist in the llvm Module. The debug printers may then override it with false in case of debug printing being disabled. Differential Revision: https://reviews.llvm.org/D53885
  295. [clang-tidy] add -fexceptions to failing unit-test, unbreak buildbot
  296. [clang] try-fix broken documentation builder
  297. [clang-tools-extra] fix broken link in release notes
  298. [clang-tidy] new check 'readability-isolate-declaration' Summary: This patch introduces a new clang-tidy check that matches on all `declStmt` that declare more then one variable and transform them into one statement per declaration if possible. It currently only focusses on variable declarations but should be extended to cover more kinds of declarations in the future. It is related to https://reviews.llvm.org/D27621 and does use it's extensive test-suite. Thank you to firolino for his work! Reviewers: rsmith, aaron.ballman, alexfh, hokein, kbobyrev Reviewed By: aaron.ballman Subscribers: ZaMaZaN4iK, mgehre, nemanjai, kbarton, lebedev.ri, Eugene.Zelenko, mgorny, xazax.hun, cfe-commits Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D51949
  299. [InstCombine] refactor fabs+fcmp fold; NFC Also, remove/replace/minimize/enhance the tests for this fold. The code drops FMF, so it needs more tests and at least 1 fix.
  300. [Hexagon] Make sure not to use GP-relative addressing with PIC Make sure that -relocation-model=pic prevents use of GP-relative addressing modes.
  301. [llvm-mca] Remove namespace prefixes made redundant by r345612. NFC
  302. Delete dependency on config.h Summary: Since llvm/Config/config.h is not available on standalone builds, use __USE_POSIX instead of HAVE_PTHREAD_H and get rid of the include. Reviewers: sammccall Reviewed By: sammccall Subscribers: lebedev.ri, krytarowski, ilya-biryukov, ioeric, jkorous, arphaman, jfb, cfe-commits Differential Revision: https://reviews.llvm.org/D53935
  303. [InstSimplify] fold 'fcmp nnan ult X, 0.0' when X is not negative This is the inverted case for the transform added with D53874 / rL345725.
  304. [InstCombine] add assertion that InstSimplify has folded a fabs+fcmp; NFC The 'OLT' case was updated at rL266175, so I assume it was just an oversight that 'UGE' was not included because that patch handled both predicates in InstSimplify.
  305. Update ioctl(2) operations for NetBSD 8.99.25 Eliminate dropped operations, add new operations. Update included headers for newer need. Add a fallback definition of nvlist_ref_t, becaue this type is internal to libnpf and the kernel, not exported into public headers.
  306. [InstSimplify] fold 'fcmp nnan oge X, 0.0' when X is not negative This re-raises some of the open questions about how to apply and use fast-math-flags in IR from PR38086: https://bugs.llvm.org/show_bug.cgi?id=38086 ...but given the current implementation (no FMF on casts), this is likely the only way to predicate the transform. This is part of solving PR39475: https://bugs.llvm.org/show_bug.cgi?id=39475 Differential Revision: https://reviews.llvm.org/D53874
  307. [analyzer][PlistMacroExpansion] Part 1.: New expand-macros flag This is the first part of the implementation of the inclusion of macro expansions into the plist output. It adds a new flag that adds a new "macro_expansions" entry to each report that has PathDiagnosticPieces that were expanded from a macro. While there's an entry for each macro expansion, both the name of the macro and what it expands to is missing, and will be implemented in followup patches. Differential Revision: https://reviews.llvm.org/D52742
  308. [LoopUnroll] allow customization for new-pass-manager version of LoopUnroll Unlike its legacy counterpart new pass manager's LoopUnrollPass does not provide any means to select which flavors of unroll to run (runtime, peeling, partial), relying on global defaults. In some cases having ability to run a restricted LoopUnroll that does more than LoopFullUnroll is needed. Introduced LoopUnrollOptions to select optional unroll behaviors. Added 'unroll<peeling>' to PassRegistry mainly for the sake of testing. Reviewers: chandlerc, tejohnson Differential Revision: https://reviews.llvm.org/D53440
  309. [InstSimplify] add tests for fcmp and known positive; NFC
  310. [DAGCombiner] Fold 0 div/rem X to 0 Reviewers: RKSimon, spatel, javed.absar, craig.topper, t.p.northover Reviewed By: RKSimon Subscribers: craig.topper, llvm-commits Differential Revision: https://reviews.llvm.org/D52504
  311. AMDGPU: Rewrite SILowerI1Copies to always stay on SALU Summary: Instead of writing boolean values temporarily into 32-bit VGPRs if they are involved in PHIs or are observed from outside a loop, we use bitwise masking operations to combine lane masks in a way that is consistent with wave control flow. Move SIFixSGPRCopies to before this pass, since that pass incorrectly attempts to move SGPR phis to VGPRs. This should recover most of the code quality that was lost with the bug fix in "AMDGPU: Remove PHI loop condition optimization". There are still some relevant cases where code quality could be improved, in particular: - We often introduce redundant masks with EXEC. Ideally, we'd have a generic computeKnownBits-like analysis to determine whether masks are already masked by EXEC, so we can avoid this masking both here and when lowering uniform control flow. - The criterion we use to determine whether a def is observed from outside a loop is conservative: it doesn't check whether (loop) branch conditions are uniform. Change-Id: Ibabdb373a7510e426b90deef00f5e16c5d56e64b Reviewers: arsenm, rampitec, tpr Subscribers: kzhuravl, jvesely, wdng, mgorny, yaxunl, dstuttard, t-tye, eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D53496
  312. AMDGPU: Remove PHI loop condition optimization Summary: The optimization to early break out of loops if all threads are dead was never fully implemented. But the PHI node analyzing is actually causing a number of problems, so remove all the extra code for it. (This does actually regress code quality in a few places because it ends up relying more heavily on phi's of i1, which we don't do a great job with. However, since it fixes real bugs in the wild, we should take this change. I have some prototype changes to improve i1 lowering in general -- not just for control flow -- which should help recover the code quality, I just need to make those changes fit for general consumption. -- Nicolai) Change-Id: I6fc6c6c8961857ac6009fcfb9f7e5e48dc23fbb1 Patch-by: Christian König <christian.koenig@amd.com> Reviewers: arsenm, rampitec, tpr Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D53359
  313. [InstSimplify] fold icmp based on range of abs/nabs This is a fix for PR39475: https://bugs.llvm.org/show_bug.cgi?id=39475 We managed to get some of these patterns using computeKnownBits in D47041, but that can't be used for nabs(). Instead, put in some range-based logic, so we can fold both abs/nabs with icmp with a constant value. Alive proofs: https://rise4fun.com/Alive/21r Name: abs_nsw_is_positive %cmp = icmp slt i32 %x, 0 %negx = sub nsw i32 0, %x %abs = select i1 %cmp, i32 %negx, i32 %x %r = icmp sgt i32 %abs, -1 => %r = i1 true Name: abs_nsw_is_not_negative %cmp = icmp slt i32 %x, 0 %negx = sub nsw i32 0, %x %abs = select i1 %cmp, i32 %negx, i32 %x %r = icmp slt i32 %abs, 0 => %r = i1 false Name: nabs_is_negative_or_0 %cmp = icmp slt i32 %x, 0 %negx = sub i32 0, %x %nabs = select i1 %cmp, i32 %x, i32 %negx %r = icmp slt i32 %nabs, 1 => %r = i1 true Name: nabs_is_not_over_0 %cmp = icmp slt i32 %x, 0 %negx = sub i32 0, %x %nabs = select i1 %cmp, i32 %x, i32 %negx %r = icmp sgt i32 %nabs, 0 => %r = i1 false Differential Revision: https://reviews.llvm.org/D53844
  314. [clang-tidy] Remove false decoupling in ClangTidyContext. NFC These getters/setters don't encapsulate any behavior, and can only be called by friends.
  315. Update generate_netbsd_ioctls.awk for NetBSD 8.99.25 Add dynamic detection of header files in /usr/include. Handle "nvlist_ref_t" needed by npf(4) ioctl(2) operations.
  316. [tblgen][PredicateExpander] Add the ability to describe more complex constraints on instruction operands. Before this patch, class PredicateExpander only knew how to expand simple predicates that performed checks on instruction operands. In particular, the new scheduling predicate syntax was not rich enough to express checks like this one: Foo(MI->getOperand(0).getImm()) == ExpectedVal; Here, the immediate operand value at index zero is passed in input to function Foo, and ExpectedVal is compared against the value returned by function Foo. While this predicate pattern doesn't show up in any X86 model, it shows up in other upstream targets. So, being able to support those predicates is fundamental if we want to be able to modernize all the scheduling models upstream. With this patch, we allow users to specify if a register/immediate operand value needs to be passed in input to a function as part of the predicate check. Now, register/immediate operand checks all derive from base class CheckOperandBase. This patch also changes where TIIPredicate definitions are expanded by the instructon info emitter. Before, definitions were expanded in class XXXGenInstrInfo (where XXX is a target name). With the introduction of this new syntax, we may want to have TIIPredicates expanded directly in XXXInstrInfo. That is because functions used by the new operand predicates may only exist in the derived class (i.e. XXXInstrInfo). This patch is a non functional change for the existing scheduling models. In future, we will be able to use this richer syntax to better describe complex scheduling predicates, and expose them to llvm-mca. Differential Revision: https://reviews.llvm.org/D53880
Revision 346148 by syzaara:
[Power9] Add support for stxvw4x.be and stxvd2x.be intrinsics

On Power9, we don't have patterns to select the following intrinsics:
llvm.ppc.vsx.stxvw4x.be
llvm.ppc.vsx.stxvd2x.be

This patch adds support for these.

Differential Revision: https://reviews.llvm.org/D53581
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCInstrVSX.tdllvm.src/lib/Target/PowerPC/PPCInstrVSX.td
The file was modified/llvm/trunk/test/CodeGen/PowerPC/vsx.llllvm.src/test/CodeGen/PowerPC/vsx.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/vsx_builtins.llllvm.src/test/CodeGen/PowerPC/vsx_builtins.ll
Revision 346147 by spatel:
[InstCombine] canonicalize -0.0 to +0.0 in fcmp

As stated in IEEE-754 and discussed in:
https://bugs.llvm.org/show_bug.cgi?id=38086
...the sign of zero does not affect any FP compare predicate.

Known regressions were fixed with:
rL346097 (D54001)
rL346143

The transform will help reduce pattern-matching complexity to solve:
https://bugs.llvm.org/show_bug.cgi?id=39475
...as well as improve CSE and codegen (a zero constant is almost always
easier to produce than 0x80..00).
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cppllvm.src/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/fcmp-special.llllvm.src/test/Transforms/InstCombine/fcmp-special.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/fcmp.llllvm.src/test/Transforms/InstCombine/fcmp.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/minmax-fp.llllvm.src/test/Transforms/InstCombine/minmax-fp.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/select-binop-cmp.llllvm.src/test/Transforms/InstCombine/select-binop-cmp.ll
Revision 346146 by mattd:
[AST] Get aliased type info from an aliased TemplateSpecialization.

Summary:
Previously the TemplateSpecialization instance for 'template_alias', in the example below, returned the type info of the  canonical type (int).  This ignored the type alias if the template type happen to be aliased.

Before this patch, the assert would trigger with an  alignment of 4:
```
typedef int __attribute__(( aligned( 16 ) )) aligned_int;
template < typename >
using template_alias = aligned_int;
static_assert( alignof( template_alias<void>) == 16, "" );
```

This patch checks if the TemplateSpecialization type has an alias, and if so will return the type information for the aliased type, else the canonical type's info is returned (original behavior).  I believe that this is the desired behavior. 

Reviewers: aaron.ballman, rjmccall

Reviewed By: rjmccall

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D54048
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/Type.hclang.src/include/clang/AST/Type.h
The file was modified/cfe/trunk/test/SemaCXX/alignof.cppclang.src/test/SemaCXX/alignof.cpp
Revision 346145 by David CARLIER:
[UBsan] disable few tests for FreeBSD

Reviewers: krytarowsky, vitalybuka

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D54103
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/ubsan/TestCases/TypeCheck/vptr-virtual-base.cppcompiler-rt.src/test/ubsan/TestCases/TypeCheck/vptr-virtual-base.cpp
The file was modified/compiler-rt/trunk/test/ubsan/TestCases/TypeCheck/vptr.cppcompiler-rt.src/test/ubsan/TestCases/TypeCheck/vptr.cpp
Revision 346144 by benhamilton:
[Format] Add debugging to ObjC language guesser

Summary:
To handle diagnosing bugs where ObjCHeaderStyleGuesser guesses
wrong, this diff adds a bit more debug logging to the Objective-C
language guesser.

Reviewers: krasimir

Reviewed By: krasimir

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D54110
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Format/Format.cppclang.src/lib/Format/Format.cpp
Revision 346143 by spatel:
[InstCombine] loosen FP 0.0 constraint for fcmp+select substitution

It looks like we correctly removed edge cases with 0.0 from D50714,
but we were a bit conservative because getBinOpIdentity() doesn't
distinguish between +0.0 and -0.0 and 'nsz' is effectively always
true for fcmp (see discussion in:
https://bugs.llvm.org/show_bug.cgi?id=38086

Without this change, we would get regressions by canonicalizing
to +0.0 in all fcmp, and that's a step towards solving:
https://bugs.llvm.org/show_bug.cgi?id=39475
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cppllvm.src/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/select-binop-cmp.llllvm.src/test/Transforms/InstCombine/select-binop-cmp.ll
Revision 346142 by spatel:
[InstCombine] adjust tests for select with FP identity op; NFC

These are mislabeled as negative tests.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/select-binop-cmp.llllvm.src/test/Transforms/InstCombine/select-binop-cmp.ll
Revision 346141 by mcinally:
[FPEnv] Add constrained CEIL/FLOOR/ROUND/TRUNC intrinsics

Differential Revision: https://reviews.llvm.org/D53411
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rstllvm.src/docs/LangRef.rst
The file was modified/llvm/trunk/include/llvm/CodeGen/ISDOpcodes.hllvm.src/include/llvm/CodeGen/ISDOpcodes.h
The file was modified/llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.hllvm.src/include/llvm/CodeGen/SelectionDAGNodes.h
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetLowering.hllvm.src/include/llvm/CodeGen/TargetLowering.h
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicInst.hllvm.src/include/llvm/IR/IntrinsicInst.h
The file was modified/llvm/trunk/include/llvm/IR/Intrinsics.tdllvm.src/include/llvm/IR/Intrinsics.td
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modified/llvm/trunk/lib/IR/IntrinsicInst.cppllvm.src/lib/IR/IntrinsicInst.cpp
The file was modified/llvm/trunk/lib/IR/Verifier.cppllvm.src/lib/IR/Verifier.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/vector-constrained-fp-intrinsics.llllvm.src/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
Revision 346140 by trentxintong:
[ThinLTO] Add an option to disable (thin)lto internalization.

Summary:
LTO and ThinLTO optimizes the IR differently.

One source of differences is the amount of internalizations that
can happen.

Add an option to enable/disable internalization so that other
differences can be studied in isolation. e.g. inlining.

There are other things lto and thinlto do differently, I will add
flags to enable/disable them as needed.

Reviewers: tejohnson, pcc, steven_wu

Subscribers: mehdi_amini, inglorion, steven_wu, dexonsmith, dang, llvm-commits

Differential Revision: https://reviews.llvm.org/D53294
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/LTO/legacy/LTOCodeGenerator.hllvm.src/include/llvm/LTO/legacy/LTOCodeGenerator.h
The file was modified/llvm/trunk/lib/LTO/LTO.cppllvm.src/lib/LTO/LTO.cpp
The file was added/llvm/trunk/test/LTO/X86/internalize.llllvm.src/test/LTO/X86/internalize.ll
The file was modified/llvm/trunk/test/ThinLTO/X86/internalize.llllvm.src/test/ThinLTO/X86/internalize.ll
Revision 346139 by rksimon:
[TargetLowering] Begin generalizing TargetLowering::expandFP_TO_SINT support. NFCI.

Prior to initial work to add vector expansion support, remove assumptions that we're working on scalar types.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cppllvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Revision 346138 by spatel:
[InstCombine] add/adjust tests for select with fsub identity op; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/select-binop-cmp.llllvm.src/test/Transforms/InstCombine/select-binop-cmp.ll
Revision 346137 by mcinally:
[NFCI][FPEnv] Split constrained intrinsic tests

The constrained intrinsic tests have grown in number. Split off
the FMA tests into their own file to reduce double coverage.

Differential Revision: https://reviews.llvm.org/D53932
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/X86/vector-constrained-fp-intrinsics-fma.llllvm.src/test/CodeGen/X86/vector-constrained-fp-intrinsics-fma.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-constrained-fp-intrinsics.llllvm.src/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
Revision 346136 by spatel:
[InstCombine] add tests for select with FP identity op; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/select-binop-cmp.llllvm.src/test/Transforms/InstCombine/select-binop-cmp.ll
Revision 346135 by hokein:
[Tooling] Correct the total number of files being processed when `filter` is provided.

Reviewers: ioeric

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D54104
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Tooling/AllTUsExecution.cppclang.src/lib/Tooling/AllTUsExecution.cpp
Revision 346134 by dmgreen:
[Inliner] Penalise inlining of calls with loops at Oz

We currently seem to underestimate the size of functions with loops in them,
both in terms of absolute code size and in the difficulties of dealing with
such code. (Calls, for example, can be tail merged to further reduce
codesize). At -Oz, we can then increase code size by inlining small loops
multiple times.

This attempts to penalise functions with loops at -Oz by adding a CallPenalty
for each top level loop in the function. It uses LI (and hence DT) to calculate
the number of loops. As we are dealing with minsize, the inline threshold is
small and functions at this point should be relatively small, making the
construction of these cheap.

Differential Revision: https://reviews.llvm.org/D52716
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InlineCost.cppllvm.src/lib/Analysis/InlineCost.cpp
The file was added/llvm/trunk/test/Transforms/Inline/ARM/loop-add.llllvm.src/test/Transforms/Inline/ARM/loop-add.ll
The file was added/llvm/trunk/test/Transforms/Inline/ARM/loop-memcpy.llllvm.src/test/Transforms/Inline/ARM/loop-memcpy.ll
The file was added/llvm/trunk/test/Transforms/Inline/ARM/loop-noinline.llllvm.src/test/Transforms/Inline/ARM/loop-noinline.ll
Revision 346133 by smaksimovic:
[Mips] Supplement long branch pseudo instructions

Expand on LONG_BRANCH_LUi and LONG_BRANCH_(D)ADDiu pseudo
instructions by creating variants which support
less operands/accept GPR64Opnds as their operand in order
to appease the machine verifier pass.

Differential Revision: https://reviews.llvm.org/D53977
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/Mips64InstrInfo.tdllvm.src/lib/Target/Mips/Mips64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/Mips/MipsAsmPrinter.cppllvm.src/lib/Target/Mips/MipsAsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsBranchExpansion.cppllvm.src/lib/Target/Mips/MipsBranchExpansion.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsInstrInfo.tdllvm.src/lib/Target/Mips/MipsInstrInfo.td
The file was modified/llvm/trunk/lib/Target/Mips/MipsMCInstLower.cppllvm.src/lib/Target/Mips/MipsMCInstLower.cpp
The file was modified/llvm/trunk/test/CodeGen/Mips/longbranch/long-branch-expansion-3.llllvm.src/test/CodeGen/Mips/longbranch/long-branch-expansion-3.ll
Revision 346132 by sam_parker:
[NFC][ARM] Adding extra test for ARM CGP

Added a reproducer that I received a while ago.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-calls.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-calls.ll
Revision 346131 by hokein:
[Tooling] Add "-filter" option to AllTUsExecution

Summary: We can run the tools on a subset files of compilation database.

Reviewers: ioeric

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D54092
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Tooling/AllTUsExecution.hclang.src/include/clang/Tooling/AllTUsExecution.h
The file was modified/cfe/trunk/lib/Tooling/AllTUsExecution.cppclang.src/lib/Tooling/AllTUsExecution.cpp
The file was modified/cfe/trunk/unittests/Tooling/ExecutionTest.cppclang.src/unittests/Tooling/ExecutionTest.cpp
Revision 346130 by d0k:
Reapply "Fix regression in behavior of clang -x c++-header -fmodule-name=XXX"

This reverts commit r345963. We have a path forward now.

Original commit message:
The driver accidentally stopped passing the input filenames on to -cc1
in this mode due to confusion over what action was being requested.

This change also fixes a couple of crashes I encountered when passing
multiple files to such a -cc1 invocation.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cppclang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInstance.cppclang.src/lib/Frontend/CompilerInstance.cpp
The file was modified/cfe/trunk/lib/Lex/ModuleMap.cppclang.src/lib/Lex/ModuleMap.cpp
The file was modified/cfe/trunk/test/Driver/header-module.cppclang.src/test/Driver/header-module.cpp
The file was added/cfe/trunk/test/Modules/strict-decluse-headers.cppclang.src/test/Modules/strict-decluse-headers.cpp
Revision 346129 by marxin:
Fix build on sparc64-linux-gnu.

Differential Revision: https://reviews.llvm.org/D54030
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cccompiler-rt.src/lib/sanitizer_common/sanitizer_linux.cc
Revision 346128 by sheredom:
[AMDGPU] Fix the new atomic optimizer in pixel shaders.

The new atomic optimizer I previously added in D51969 did not work
correctly when a pixel shader was using derivatives, and had helper
lanes active.

To fix this we add an llvm.amdgcn.ps.live call that guards a branch
around the entire atomic operation - ensuring that all helper lanes are
inactive within the wavefront when we compute our atomic results.

I've added a test case that can cause derivatives, and exposes the
problem.

Differential Revision: https://reviews.llvm.org/D53930
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cppllvm.src/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.llllvm.src/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll
Revision 346127 by thegameg:
[CMake] Expose opt-remark tooling through libOptRemarks.dylib

* Create an install target for it
* Add it under tools/opt-remarks
* Add an export file for the dylib
* Install the llvm-c/OptRemarks.h header
* Add an API to query its version

rdar://45458839
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/AddLLVM.cmakellvm.src/cmake/modules/AddLLVM.cmake
The file was modified/llvm/trunk/include/llvm-c/OptRemarks.hllvm.src/include/llvm-c/OptRemarks.h
The file was added/llvm/trunk/tools/opt-remarksllvm.src/tools/opt-remarks
The file was added/llvm/trunk/tools/opt-remarks/CMakeLists.txtllvm.src/tools/opt-remarks/CMakeLists.txt
The file was added/llvm/trunk/tools/opt-remarks/OptRemarks.exportsllvm.src/tools/opt-remarks/OptRemarks.exports
The file was added/llvm/trunk/tools/opt-remarks/liboptremarks.cppllvm.src/tools/opt-remarks/liboptremarks.cpp
Revision 346126 by sam_parker:
[ARM] Turn assert into condition in ARMCGP

Turn the assert in PrepareConstants into a conditon so that we can
handle mul instructions with negative immediates.

Differential Revision: https://reviews.llvm.org/D54094
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMCodeGenPrepare.cppllvm.src/lib/Target/ARM/ARMCodeGenPrepare.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-icmps.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-icmps.ll
Revision 346125 by sam_parker:
[ARM][ARMCGP] Remove unecessary zexts and truncs

r345840 slightly changed the way promotion happens which could
result in zext and truncs having the same source and destination
types. This fixes that issue.

We can now also remove the zext and trunc in the following case:
(zext (trunc (promoted op)), i32)

This means that we can no longer treat a value, that is only used by
a sink, to be safe to promote.

I've also added in some extra asserts and replaced a cast for a
dyn_cast.

Differential Revision: https://reviews.llvm.org/D54032
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMCodeGenPrepare.cppllvm.src/lib/Target/ARM/ARMCodeGenPrepare.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-calls.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-calls.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-casts.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-casts.ll
Revision 346124 by abeserminji:
[mips][msa] Fix broken test

Test builtins-mips-msa-error.c wasn't reporting errors.
This patch fixes the test, so further test cases can be added.

Differential Revision: https://reviews.llvm.org/D53984
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CodeGen/builtins-mips-msa-error.cclang.src/test/CodeGen/builtins-mips-msa-error.c
Revision 346123 by kadircet:
Fix breakage on FrontendTest by initializing new field on constructor
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.hclang.src/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
Revision 346122 by hans:
Exclude wasm target from Windows packaging due to PR39448
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/release/build_llvm_package.batllvm.src/utils/release/build_llvm_package.bat
Revision 346121 by lebedevri:
[NFC][x86][AArch64] extract-bits.ll: add test with 'ashr'.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AArch64/extract-bits.llllvm.src/test/CodeGen/AArch64/extract-bits.ll
The file was modified/llvm/trunk/test/CodeGen/X86/extract-bits.llllvm.src/test/CodeGen/X86/extract-bits.ll
Revision 346120 by maskray:
[hwasan] Fix stack-uar.c after rCRT345110

Set -fno-discard-value-names so that the frame description string contains the variable name.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/stack-uar.ccompiler-rt.src/test/hwasan/TestCases/stack-uar.c
Revision 346119 by ctopper:
[DAGCombiner] Use tryFoldToZero to simplify some code and make it work correctly between LegalTypes and LegalOperations.

The original code avoided creating a zero vector after type legalization, but if we're after type legalization the type we have is legal. The real hazard we need to avoid is creating a build vector after op legalization. tryFoldToZero takes care of checking for this.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cppllvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 346118 by ctopper:
[DAGCombiner] Remove an unused argument from tryFoldToZero. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cppllvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 346117 by dylanmckay:
[AVR] Fix a backend bug that left extraneous operands after expansion

This patch fixes a bug in the AVR FRMIDX expansion logic.

The expansion would leave a leftover operand from the original FRMIDX,
but now attached to a MOVWRdRr instruction. The MOVWRdRr instruction
did not expect this operand and so LLVM rejected the machine
instruction.

This would trigger an assertion:

    Assertion failed: ((isImpReg || Op.isRegMask() || MCID->isVariadic() ||
                        OpNo < MCID->getNumOperands() || isMetaDataOp) &&
                        "Trying to add an operand to a machine instr that is already done!"),
    function addOperand, file llvm/lib/CodeGen/MachineInstr.cpp

Tim fixed this so that now the FRMIDX is expanded correctly into
a well-formed MOVWRdRr.

Patch by Tim Neumann
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AVR/AVRRegisterInfo.cppllvm.src/lib/Target/AVR/AVRRegisterInfo.cpp
The file was added/llvm/trunk/test/CodeGen/AVR/rust-avr-bug-112.llllvm.src/test/CodeGen/AVR/rust-avr-bug-112.ll
Revision 346116 by dberris:
[XRay] Update TSC math to handle wraparound

Summary:
Prior to this change, we can run into situations where the TSC we're
getting when exiting a function is less than the TSC we got when
entering it. This would sometimes cause the counter for cumulative call
times overflow, which was erroneously also being stored as a signed
64-bit integer.

This change addresses both these issues while adding provisions for
tracking CPU migrations. We do this because moving from one CPU to
another doesn't guarantee that the timestamp counter for some
architectures aren't guaranteed to be synchronised. For the moment, we
leave the provisions there until we can update the data format to
include the counting of CPU migrations we can catch.

We update the necessary tests as well, ensuring that our expectations
for the cycle accounting to be met in case of counter wraparound.

Reviewers: mboerger

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D54088
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/xray/tests/unit/function_call_trie_test.cccompiler-rt.src/lib/xray/tests/unit/function_call_trie_test.cc
The file was modified/compiler-rt/trunk/lib/xray/tests/unit/profile_collector_test.cccompiler-rt.src/lib/xray/tests/unit/profile_collector_test.cc
The file was modified/compiler-rt/trunk/lib/xray/xray_function_call_trie.hcompiler-rt.src/lib/xray/xray_function_call_trie.h
The file was modified/compiler-rt/trunk/lib/xray/xray_profiling.cccompiler-rt.src/lib/xray/xray_profiling.cc
Revision 346115 by ctopper:
[X86] Custom type legalize v2i8/v2i16/v2i32 mul to use to pmuludq.

v2i8/v2i16/v2i32 are promoted to v2i64. pmuludq takes a v2i64 input and produces a v2i64 output. Since we don't about the upper bits of the type legalized multiply we can use the pmuludq to produce the multiply result for the bits we do care about.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/mmx-arith.llllvm.src/test/CodeGen/X86/mmx-arith.ll
The file was modified/llvm/trunk/test/CodeGen/X86/mulvi32.llllvm.src/test/CodeGen/X86/mulvi32.ll
Revision 346114 by dylanmckay:
[AVR] Disallow the LDDWRdPtrQ instruction with Z as the destination

This is an AVR-specific workaround for a limitation of the register
allocator that only exposes itself on targets with high register
contention like AVR, which only has three pointer registers.

The three pointer registers are X, Y, and Z.
In most nontrivial functions, Y is reserved for the frame pointer,
as per the calling convention. This leaves X and Z. Some instructions,
such as LPM ("load program memory"), are only defined for the Z
register. Sometimes this just leaves X.

When the backend generates a LDDWRdPtrQ instruction with Z as the
destination pointer, it usually trips up the register allocator
with this error message:

  LLVM ERROR: ran out of registers during register allocation

This patch is a hacky workaround. We ban the LDDWRdPtrQ instruction
from ever using the Z register as an operand. This gives the
register allocator a bit more space to allocate, fixing the
regalloc exhaustion error.

Here is a description from the patch author Peter Nimmervoll

  As far as I understand the problem occurs when LDDWRdPtrQ uses
  the ptrdispregs register class as target register. This should work, but
  the allocator can't deal with this for some reason. So from my testing,
  it seams like (and I might be totally wrong on this) the allocator reserves
  the Z register for the ICALL instruction and then the register class
  ptrdispregs only has 1 register left and we can't use Y for source and
  destination. Removing the Z register from DREGS fixes the problem but
  removing Y register does not.

More information about the bug can be found on the avr-rust issue
tracker at https://github.com/avr-rust/rust/issues/37.

A bug has raised to track the removal of this workaround and a proper
fix; PR39553 at https://bugs.llvm.org/show_bug.cgi?id=39553.

Patch by Peter Nimmervoll
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AVR/AVRInstrInfo.tdllvm.src/lib/Target/AVR/AVRInstrInfo.td
The file was modified/llvm/trunk/lib/Target/AVR/AVRRegisterInfo.tdllvm.src/lib/Target/AVR/AVRRegisterInfo.td
The file was modified/llvm/trunk/test/CodeGen/AVR/pseudo/LDDWRdPtrQ-same-src-dst.mirllvm.src/test/CodeGen/AVR/pseudo/LDDWRdPtrQ-same-src-dst.mir
The file was modified/llvm/trunk/test/CodeGen/AVR/pseudo/LDDWRdPtrQ.mirllvm.src/test/CodeGen/AVR/pseudo/LDDWRdPtrQ.mir
The file was added/llvm/trunk/test/CodeGen/AVR/rust-avr-bug-37.llllvm.src/test/CodeGen/AVR/rust-avr-bug-37.ll
The file was added/llvm/trunk/test/CodeGen/AVR/rust-avr-bug-95.llllvm.src/test/CodeGen/AVR/rust-avr-bug-95.ll
Revision 346113 by szelethus:
[analyzer] Restrict AnalyzerOptions' interface so that non-checker objects have to be registered

One of the reasons why AnalyzerOptions is so chaotic is that options can be
retrieved from the command line whenever and wherever. This allowed for some
options to be forgotten for a looooooong time. Have you ever heard of
"region-store-small-struct-limit"? In order to prevent this in the future, I'm
proposing to restrict AnalyzerOptions' interface so that only checker options
can be retrieved without special getters. I would like to make every option be
accessible only through a getter, but checkers from plugins are a thing, so I'll
have to figure something out for that.

This also forces developers who'd like to add a new option to register it
properly in the .def file.

This is done by

* making the third checker pointer parameter non-optional, and checked by an
  assert to be non-null.
* I added new, but private non-checkers option initializers, meant only for
  internal use,
* Renamed these methods accordingly (mind the consistent name for once with
  getBooleanOption!):
  - getOptionAsString -> getCheckerStringOption,
  - getOptionAsInteger -> getCheckerIntegerOption
* The 3 functions meant for initializing data members (with the not very
  descriptive getBooleanOption, getOptionAsString and getOptionAsUInt names)
  were renamed to be overloads of the getAndInitOption function name.
* All options were in some way retrieved via getCheckerOption. I removed it, and
  moved the logic to getStringOption and getCheckerStringOption. This did cause
  some code duplication, but that's the only way I could do it, now that checker
  and non-checker options are separated. Note that the non-checker version
  inserts the new option to the ConfigTable with the default value, but the
  checker version only attempts to find already existing entries. This is how
  it always worked, but this is clunky and I might end reworking that too, so we
  can eventually get a ConfigTable that contains the entire configuration of the
  analyzer.

Differential Revision: https://reviews.llvm.org/D53483
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.hclang.src/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cppclang.src/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/CloneChecker.cppclang.src/lib/StaticAnalyzer/Checkers/CloneChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/LocalizationChecker.cppclang.src/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cppclang.src/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cppclang.src/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/NullabilityChecker.cppclang.src/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cppclang.src/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cppclang.src/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cppclang.src/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cppclang.src/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cppclang.src/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/AnalyzerOptions.cppclang.src/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
The file was modified/cfe/trunk/unittests/StaticAnalyzer/AnalyzerOptionsTest.cppclang.src/unittests/StaticAnalyzer/AnalyzerOptionsTest.cpp
Revision 346112 by szelethus:
Ensure the correct order of evaluation in part 2. of PlistMacroExpansion

Windows buildbots break with the previous commit '[analyzer][PlistMacroExpansion]
Part 2.: Retrieving the macro name and primitive expansion'. This patch attempts
to solve this issue.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cppclang.src/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
Revision 346111 by szelethus:
Reland '[analyzer][PlistMacroExpansion] Part 2.: Retrieving the macro name and primitive expansion'
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cppclang.src/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was modified/cfe/trunk/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plistclang.src/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plist
The file was modified/cfe/trunk/test/Analysis/plist-macros-with-expansion.cppclang.src/test/Analysis/plist-macros-with-expansion.cpp
Revision 346110 by ctopper:
[X86] Fix typo in test comment. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/combine-64bit-vec-binop.llllvm.src/test/CodeGen/X86/combine-64bit-vec-binop.ll
Revision 346108 by Vedant Kumar:
[HotColdSplitting] Use TTI to inform outlining threshold

Using TargetTransformInfo allows the splitting pass to factor in the
code size cost of instructions as it decides whether or not outlining is
profitable.

This did not regress the overall amount of outlining seen on the handful
of internal frameworks I tested.

Thanks to Jun Bum Lim for suggesting this!

Differential Revision: https://reviews.llvm.org/D53835
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/IPO/HotColdSplitting.cppllvm.src/lib/Transforms/IPO/HotColdSplitting.cpp
The file was added/llvm/trunk/test/Transforms/HotColdSplit/X86llvm.src/test/Transforms/HotColdSplit/X86
The file was added/llvm/trunk/test/Transforms/HotColdSplit/X86/lit.local.cfgllvm.src/test/Transforms/HotColdSplit/X86/lit.local.cfg
The file was added/llvm/trunk/test/Transforms/HotColdSplit/X86/outline-expensive.llllvm.src/test/Transforms/HotColdSplit/X86/outline-expensive.ll
The file was modified/llvm/trunk/test/Transforms/HotColdSplit/do-not-split.llllvm.src/test/Transforms/HotColdSplit/do-not-split.ll
The file was modified/llvm/trunk/test/Transforms/HotColdSplit/minsize.llllvm.src/test/Transforms/HotColdSplit/minsize.ll
The file was modified/llvm/trunk/test/Transforms/HotColdSplit/split-out-dbg-val-of-arg.llllvm.src/test/Transforms/HotColdSplit/split-out-dbg-val-of-arg.ll
Revision 346107 by phosek:
[Driver] Use -Bstatic/dynamic for libc++ on Fuchsia

-static relies on lld's behavior, but -Bstatic/dynamic is supported
across all linkers.

Differential Revision: https://reviews.llvm.org/D54082
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Fuchsia.cppclang.src/lib/Driver/ToolChains/Fuchsia.cpp
The file was modified/cfe/trunk/test/Driver/fuchsia.cppclang.src/test/Driver/fuchsia.cpp
Revision 346106 by ctopper:
[X86] Add nounwind to some tests to remove cfi directives from checks. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/shrink_vmul.llllvm.src/test/CodeGen/X86/shrink_vmul.ll
Revision 346105 by ctopper:
[X86] Regenerate test checks to merge 32 and 64 bit. Remove stale check prefixes. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/avx2-intrinsics-x86-upgrade.llllvm.src/test/CodeGen/X86/avx2-intrinsics-x86-upgrade.ll
Revision 346104 by marshall:
Fix the test for partition_copy so it is not ridiculously slow. Also, detab.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/fuzzing/fuzzing.cpplibcxx.src/fuzzing/fuzzing.cpp
Revision 346103 by sylvestre:
Add support of the next Ubuntu (Ubuntu 19.04 - Disco Dingo)
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/Distro.hclang.src/include/clang/Driver/Distro.h
The file was modified/cfe/trunk/lib/Driver/Distro.cppclang.src/lib/Driver/Distro.cpp
Revision 346102 by ctopper:
[X86] Add vector shift by immediate to SimplifyDemandedBitsForTargetNode.

Summary: This also enables some constant folding from KnownBits propagation. This helps on some cases vXi64 case in 32-bit mode where constant vectors appear as vXi32 and a bitcast. This can prevent getNode from constant folding sra/shl/srl.

Reviewers: RKSimon, spatel

Reviewed By: spatel

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D54069
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/combine-srl.llllvm.src/test/CodeGen/X86/combine-srl.ll
The file was modified/llvm/trunk/test/CodeGen/X86/combine-udiv.llllvm.src/test/CodeGen/X86/combine-udiv.ll
The file was modified/llvm/trunk/test/CodeGen/X86/known-signbits-vector.llllvm.src/test/CodeGen/X86/known-signbits-vector.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr35918.llllvm.src/test/CodeGen/X86/pr35918.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shift-ashr-128.llllvm.src/test/CodeGen/X86/vector-shift-ashr-128.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shift-ashr-256.llllvm.src/test/CodeGen/X86/vector-shift-ashr-256.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-usat.llllvm.src/test/CodeGen/X86/vector-trunc-usat.ll
Revision 346101 by sylvestre:
Update our URLs in clang doc to use https
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/AddressSanitizer.rstclang.src/docs/AddressSanitizer.rst
The file was modified/cfe/trunk/docs/Block-ABI-Apple.txtclang.src/docs/Block-ABI-Apple.txt
The file was modified/cfe/trunk/docs/ClangFormat.rstclang.src/docs/ClangFormat.rst
The file was modified/cfe/trunk/docs/ClangFormatStyleOptions.rstclang.src/docs/ClangFormatStyleOptions.rst
The file was modified/cfe/trunk/docs/ClangPlugins.rstclang.src/docs/ClangPlugins.rst
The file was modified/cfe/trunk/docs/ClangTools.rstclang.src/docs/ClangTools.rst
The file was modified/cfe/trunk/docs/CommandGuide/clang.rstclang.src/docs/CommandGuide/clang.rst
The file was modified/cfe/trunk/docs/ControlFlowIntegrity.rstclang.src/docs/ControlFlowIntegrity.rst
The file was modified/cfe/trunk/docs/ControlFlowIntegrityDesign.rstclang.src/docs/ControlFlowIntegrityDesign.rst
The file was modified/cfe/trunk/docs/CrossCompilation.rstclang.src/docs/CrossCompilation.rst
The file was modified/cfe/trunk/docs/InternalsManual.rstclang.src/docs/InternalsManual.rst
The file was modified/cfe/trunk/docs/IntroductionToTheClangAST.rstclang.src/docs/IntroductionToTheClangAST.rst
The file was modified/cfe/trunk/docs/LanguageExtensions.rstclang.src/docs/LanguageExtensions.rst
The file was modified/cfe/trunk/docs/LibASTMatchers.rstclang.src/docs/LibASTMatchers.rst
The file was modified/cfe/trunk/docs/LibASTMatchersReference.htmlclang.src/docs/LibASTMatchersReference.html
The file was modified/cfe/trunk/docs/LibASTMatchersTutorial.rstclang.src/docs/LibASTMatchersTutorial.rst
The file was modified/cfe/trunk/docs/LibFormat.rstclang.src/docs/LibFormat.rst
The file was modified/cfe/trunk/docs/LibTooling.rstclang.src/docs/LibTooling.rst
The file was modified/cfe/trunk/docs/MSVCCompatibility.rstclang.src/docs/MSVCCompatibility.rst
The file was modified/cfe/trunk/docs/MemorySanitizer.rstclang.src/docs/MemorySanitizer.rst
The file was modified/cfe/trunk/docs/PCHInternals.rstclang.src/docs/PCHInternals.rst
The file was modified/cfe/trunk/docs/SanitizerCoverage.rstclang.src/docs/SanitizerCoverage.rst
The file was modified/cfe/trunk/docs/SourceBasedCodeCoverage.rstclang.src/docs/SourceBasedCodeCoverage.rst
The file was modified/cfe/trunk/docs/ThinLTO.rstclang.src/docs/ThinLTO.rst
The file was modified/cfe/trunk/docs/ThreadSanitizer.rstclang.src/docs/ThreadSanitizer.rst
The file was modified/cfe/trunk/docs/Toolchain.rstclang.src/docs/Toolchain.rst
The file was modified/cfe/trunk/docs/Tooling.rstclang.src/docs/Tooling.rst
The file was modified/cfe/trunk/docs/UndefinedBehaviorSanitizer.rstclang.src/docs/UndefinedBehaviorSanitizer.rst
The file was modified/cfe/trunk/docs/UsersManual.rstclang.src/docs/UsersManual.rst
The file was modified/cfe/trunk/docs/tools/dump_ast_matchers.pyclang.src/docs/tools/dump_ast_matchers.py
Revision 346098 by kamil:
Disable recursive interception for tzset in MSan

This fixes sanitization of this library call on NetBSD.
Extracted as a part of D42050.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/msan/msan_interceptors.cccompiler-rt.src/lib/msan/msan_interceptors.cc
Revision 346097 by spatel:
[ValueTracking] determine sign of 0.0 from select when matching min/max FP

In PR39475:
https://bugs.llvm.org/show_bug.cgi?id=39475
..we may fail to recognize/simplify fabs() in some cases because we do not
canonicalize fcmp with a -0.0 operand.

Adding that canonicalization can cause regressions on min/max FP tests, so
that's this patch: for the purpose of determining whether something is min/max,
let the value returned by the select determine how we treat a 0.0 operand in the fcmp.

This patch doesn't actually change the -0.0 to +0.0. It just changes the analysis, so
we don't fail to recognize equivalent min/max patterns that only differ in the
signbit of 0.0.

Differential Revision: https://reviews.llvm.org/D54001
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/ValueTracking.cppllvm.src/lib/Analysis/ValueTracking.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/minmax-fp.llllvm.src/test/Transforms/InstCombine/minmax-fp.ll
The file was modified/llvm/trunk/unittests/Analysis/ValueTrackingTest.cppllvm.src/unittests/Analysis/ValueTrackingTest.cpp
Revision 346096 by szelethus:
Revert '[analyzer][PlistMacroExpansion] Part 2.: Retrieving the macro name and primitive expansion'
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cppclang.src/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was modified/cfe/trunk/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plistclang.src/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plist
The file was modified/cfe/trunk/test/Analysis/plist-macros-with-expansion.cppclang.src/test/Analysis/plist-macros-with-expansion.cpp
Revision 346095 by szelethus:
[analyzer][PlistMacroExpansion] Part 2.: Retrieving the macro name and primitive expansion

This patch adds a couple new functions to acquire the macro's name, and also
expands it, although it doesn't expand the arguments, as seen from the test files

Differential Revision: https://reviews.llvm.org/D52794
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cppclang.src/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was modified/cfe/trunk/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plistclang.src/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plist
The file was modified/cfe/trunk/test/Analysis/plist-macros-with-expansion.cppclang.src/test/Analysis/plist-macros-with-expansion.cpp
Revision 346090 by ctopper:
[DAGCombiner] Remove 'else' after return. NFC

This makes this code consistent with the nearly identical code in visitZERO_EXTEND.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cppllvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 346088 by phosek:
[Driver] Always match resource dir in Fuchsia driver tests

This makes the tests stricter by not only matching the runtime file
name, but the entire path into the resource directory.

Differential Revision: https://reviews.llvm.org/D54064
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Driver/fuchsia.cclang.src/test/Driver/fuchsia.c
The file was modified/cfe/trunk/test/Driver/fuchsia.cppclang.src/test/Driver/fuchsia.cpp
Revision 346087 by ctopper:
[SelectionDAG] Remove special methods for creating *_EXTEND_VECTOR_INREG nodes. Move asserts into getNode.

These methods were just wrappers around getNode with additional asserts (identical and repeated 3 times). But getNode already has a switch that can be used to hold these asserts that allows them to be shared for all 3 opcodes. This also enables checking on the places that create these nodes without using the wrappers.

The rest of the patch is just changing all callers to use getNode directly.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/SelectionDAG.hllvm.src/include/llvm/CodeGen/SelectionDAG.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cppllvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonISelLoweringHVX.cppllvm.src/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/unittests/CodeGen/AArch64SelectionDAGTest.cppllvm.src/unittests/CodeGen/AArch64SelectionDAGTest.cpp
Revision 346074 by modocache:
[coroutines] Fix fallthrough warning on try/catch

Summary:
The test case added in this diff would incorrectly warn that control
flow may fall through without returning. Here's a standalone example:
https://godbolt.org/z/dCwXEi

The same program, but using `return` instead of `co_return`, does not
produce a warning: https://godbolt.org/z/mVldqQ

The issue was in how Clang analysis would structure its representation
of the control-flow graph. Specifically, when constructing the CFG,
`CFGBuilder::Visit` had special handling of a `ReturnStmt`, in which it
would place object destructors in the same CFG block as a `return` statement,
immediately after it. Doing so would allow the logic in
`lib/Sema/AnalysisBasedWarning.cpp` `CheckFallThrough` to work properly in the
program that used `return`, correctly determining that no "plain edges" preceded
the exit block of the function.

Because a `co_return` statement would not enjoy the same treatment when
it was being built into the control-flow graph, object destructors
would not be placed in the same CFG block as the `co_return`, thus
resulting in a "plain edge" preceding the exit block of the function,
and so the warning logic would be triggered.

Add special casing for `co_return` to Clang analysis, thereby
remedying the mistaken warning.

Test Plan: `check-clang`

Reviewers: GorNishanov, tks2103, rsmith

Reviewed By: GorNishanov

Subscribers: EricWF, lewissbaker, cfe-commits

Differential Revision: https://reviews.llvm.org/D54075
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Analysis/CFG.cppclang.src/lib/Analysis/CFG.cpp
The file was added/cfe/trunk/test/SemaCXX/coreturn-eh.cppclang.src/test/SemaCXX/coreturn-eh.cpp
Revision 346073 by ctopper:
[X86] Update comment I forgot to change in r346043. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 346072 by Louis Dionne:
[NFC] Fix incorrect comment in std::list
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/listlibcxx.src/include/list
Revision 346071 by spatel:
[ValueTracking] peek through 2-input shuffles in ComputeNumSignBits

This patch gives the IR ComputeNumSignBits the same functionality as the
DAG version (the code is derived from the existing code).

This an extension of the single input shuffle analysis added with D53659.

Differential Revision: https://reviews.llvm.org/D53987
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/ValueTracking.cppllvm.src/lib/Analysis/ValueTracking.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/logical-select.llllvm.src/test/Transforms/InstCombine/logical-select.ll
The file was modified/llvm/trunk/unittests/Analysis/ValueTrackingTest.cppllvm.src/unittests/Analysis/ValueTrackingTest.cpp
Revision 346070 by dyung:
Fix test on Windows.

This test checks the entire output of a help option, the problem
is that on Windows, the line break occurs in a different place
causing the CHECK to fail because it is not expecting a line break.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Analysis/analyzer-list-configs.cclang.src/test/Analysis/analyzer-list-configs.c
Revision 346069 by tikuta:
Add /Zc:DllexportInlines option to clang-cl

Summary:
This CL adds /Zc:DllexportInlines flag to clang-cl.
When Zc:DllexportInlines- is specified, inline class member function is not exported if the function does not have local static variables.

By not exporting inline function, code for those functions are not generated and that reduces both compile time and obj size. Also this flag does not import inline functions from dllimported class if the function does not have local static variables.

On my 24C48T windows10 machine, build performance of chrome target in chromium repository is like below.
These stats are come with 'target_cpu="x86" enable_nacl = false is_component_build=true dcheck_always_on=true` build config and applied
* https://chromium-review.googlesource.com/c/chromium/src/+/1212379
* https://chromium-review.googlesource.com/c/v8/v8/+/1186017

Below stats were taken with this patch applied on https://github.com/llvm-project/llvm-project-20170507/commit/a05115cd4c57ff76b0f529e38118765b58ed7f2e

| config                          | build time | speedup | build dir size |
| with patch, PCH on, debug       | 1h10m0s    | x1.13   | 35.6GB         |
| without patch, PCH on, debug    | 1h19m17s   |         | 49.0GB         |
| with patch, PCH off, debug      | 1h15m45s   | x1.16   | 33.7GB         |
| without patch, PCH off, debug   | 1h28m10s   |         | 52.3GB         |
| with patch, PCH on, release     | 1h13m13s   | x1.22   | 26.2GB         |
| without patch, PCH on, release  | 1h29m57s   |         | 37.5GB         |
| with patch, PCH off, release    | 1h23m38s   | x1.32   | 23.7GB         |
| without patch, PCH off, release | 1h50m50s   |         | 38.7GB         |

This patch reduced obj size and the number of exported symbols largely, that improved link time too.
e.g. link time stats of blink_core.dll become like below
|                              | cold disk cache | warm disk cache |
| with patch, PCH on, debug    | 71s             | 30s             |
| without patch, PCH on, debug | 111s            | 48s             |

This patch's implementation is based on Nico Weber's patch. I modified to support static local variable, added tests and took stats.

Bug: https://bugs.llvm.org/show_bug.cgi?id=33628

Reviewers: hans, thakis, rnk, javed.absar

Reviewed By: hans

Subscribers: kristof.beyls, smeenai, dschuff, probinson, cfe-commits, eraman

Differential Revision: https://reviews.llvm.org/D51340
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/Attr.tdclang.src/include/clang/Basic/Attr.td
The file was modified/cfe/trunk/include/clang/Basic/LangOptions.defclang.src/include/clang/Basic/LangOptions.def
The file was modified/cfe/trunk/include/clang/Driver/CC1Options.tdclang.src/include/clang/Driver/CC1Options.td
The file was modified/cfe/trunk/include/clang/Driver/CLCompatOptions.tdclang.src/include/clang/Driver/CLCompatOptions.td
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cppclang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cppclang.src/lib/Frontend/CompilerInvocation.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDecl.cppclang.src/lib/Sema/SemaDecl.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDeclCXX.cppclang.src/lib/Sema/SemaDeclCXX.cpp
The file was added/cfe/trunk/test/CodeGenCXX/dllexport-no-dllexport-inlines.cppclang.src/test/CodeGenCXX/dllexport-no-dllexport-inlines.cpp
The file was modified/cfe/trunk/test/Driver/cl-options.cclang.src/test/Driver/cl-options.c
Revision 346066 by maskray:
[debuginfo-tests] commands.getoutput -> subprocess.check_output

We should also make Darwin Python3 happy after r346059
The output has an extra newline but it is fine in this particular case.
Change TypePath in RepositoryPath in Workspace
The file was modified/debuginfo-tests/trunk/lit.cfg.pydebuginfo-tests.src/lit.cfg.py
Revision 346065 by rsmith:
Revert r345562: "PR23833, DR2140: an lvalue-to-rvalue conversion on a glvalue of type"

This exposes a (known) CodeGen bug: it can't cope with emitting lvalue
expressions that denote non-odr-used but usable-in-constant-expression
variables. See PR39528 for a testcase.

Reverted for now until that issue can be fixed.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/Expr.cppclang.src/lib/AST/Expr.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGExprAgg.cppclang.src/lib/CodeGen/CGExprAgg.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGExprScalar.cppclang.src/lib/CodeGen/CGExprScalar.cpp
The file was modified/cfe/trunk/lib/Sema/SemaExpr.cppclang.src/lib/Sema/SemaExpr.cpp
The file was modified/cfe/trunk/lib/Sema/SemaInit.cppclang.src/lib/Sema/SemaInit.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineC.cppclang.src/lib/StaticAnalyzer/Core/ExprEngineC.cpp
The file was modified/cfe/trunk/test/Analysis/nullptr.cppclang.src/test/Analysis/nullptr.cpp
The file was modified/cfe/trunk/test/CXX/drs/dr21xx.cppclang.src/test/CXX/drs/dr21xx.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/nullptr.cppclang.src/test/CodeGenCXX/nullptr.cpp
The file was modified/cfe/trunk/www/cxx_dr_status.htmlclang.src/www/cxx_dr_status.html
Revision 346064 by phosek:
[Driver] Use -push-/-pop-state and -as-needed for libc++ on Fuchsia

This avoids introducing unnecessary DT_NEEDED entries when using
C++ driver for linking C code or C++ code that doesn't use C++
standard library.

Differential Revision: https://reviews.llvm.org/D53854
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Fuchsia.cppclang.src/lib/Driver/ToolChains/Fuchsia.cpp
The file was modified/cfe/trunk/test/Driver/fuchsia.cppclang.src/test/Driver/fuchsia.cpp
Revision 346063 by phosek:
[compiler-rt] Support for passing through linker flags to libc++ build

This may be needed when cross-compiling to certain platforms.

Differential Revision: https://reviews.llvm.org/D54027
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/cmake/Modules/AddCompilerRT.cmakecompiler-rt.src/cmake/Modules/AddCompilerRT.cmake
Revision 346062 by rnk:
[codeview] Let the X86 backend tell us the VFRAME offset adjustment

Use MachineFrameInfo's OffsetAdjustment field to pass this information
from the target to CodeViewDebug.cpp. The X86 backend doesn't use it for
any other purpose.

This fixes PR38857 in the case where there is a non-aligned quantity of
CSRs and a non-aligned quantity of locals.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cppllvm.src/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.hllvm.src/lib/CodeGen/AsmPrinter/CodeViewDebug.h
The file was modified/llvm/trunk/lib/Target/X86/X86FrameLowering.cppllvm.src/lib/Target/X86/X86FrameLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/MIR/X86/diexpr-win32.mirllvm.src/test/CodeGen/MIR/X86/diexpr-win32.mir
The file was modified/llvm/trunk/test/DebugInfo/COFF/fpo-realign-vframe.llllvm.src/test/DebugInfo/COFF/fpo-realign-vframe.ll
The file was added/llvm/trunk/test/DebugInfo/COFF/vframe-csr.llllvm.src/test/DebugInfo/COFF/vframe-csr.ll
Revision 346061 by wolfgangp:
[DWARF v5] Verifier: Add checks for DW_FORM_strx* forms.

Adding functionality to the DWARF verifier for DWARF v5 strx* forms which
index into the string offsets table.

Differential Revision: https://reviews.llvm.org/D54049
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cppllvm.src/lib/DebugInfo/DWARF/DWARFVerifier.cpp
The file was modified/llvm/trunk/test/DebugInfo/X86/dwarfdump-str-offsets.sllvm.src/test/DebugInfo/X86/dwarfdump-str-offsets.s
The file was modified/llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_debug_info.sllvm.src/test/tools/llvm-dwarfdump/X86/verify_debug_info.s
The file was added/llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_strings.sllvm.src/test/tools/llvm-dwarfdump/X86/verify_strings.s
Revision 346060 by rnk:
Update debuginfo tests lit for r341135
Change TypePath in RepositoryPath in Workspace
The file was modified/debuginfo-tests/trunk/lit.site.cfg.py.indebuginfo-tests.src/lit.site.cfg.py.in
Revision 346059 by rnk:
[debuginfo-tests] Avoid "import commands" which was deprecated in Py3
Change TypePath in RepositoryPath in Workspace
The file was modified/debuginfo-tests/trunk/lit.cfg.pydebuginfo-tests.src/lit.cfg.py
Revision 346056 by phosek:
[CMake][Fuchsia] Set -fuse-ld=lld explicitly for Linux runtimes

We set lld as the default linker on non-Darwin platforms, but we still
need to set -fuse-ld=lld explicitly in to support cross-compiling Linux
runtimes on Darwin.

Differential Revision: https://reviews.llvm.org/D54026
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/cmake/caches/Fuchsia-stage2.cmakeclang.src/cmake/caches/Fuchsia-stage2.cmake
Revision 346055 by tejohnson:
[LTO] Fix a crash caused by accessing an empty ValueInfo

ModuleSummaryIndex::exportToDot crashes when linking the Linux kernel
under ThinLTO using LLVMgold.so. This is due to the exportToDot
function trying to get the GUID of an empty ValueInfo. The root cause
related to the fact that we attempt to get the GUID of an aliasee
via its OriginalGUID recorded in the aliasee summary, and that is not
always possible. Specifically, we cannot do this mapping when the value
is internal linkage and there were other internal linkage symbols with
the same name.

There are 2 fixes for the problem included here.

1) In all cases where we can currently print the dot file from the
command line (which is only via save-temps), we have a valid AliaseeGUID
in the AliasSummary. Use that when it is available, so that we can get
the correct aliasee GUID whenever possible.

2) However, if we were to invoke exportToDot from the debugger right
after it is built during the initial analysis step (i.e. the per-module
summary), we won't have the AliaseeGUID field populated. In that case,
we have a fallback fix that will simply print "@"+GUID when we aren't
able to get the GUID from the OriginalGUID. It simply checks if the VI
is valid or not before attempting to get the name. Additionally, since
getAliaseeGUID will assert that the AliaseeGUID is non-zero, guard the
earlier fix #1 by a new function hasAliaseeGUID().

Reviewers: pcc, tmroeder

Subscribers: evgeny777, mehdi_amini, inglorion, dexonsmith, arphaman, llvm-commits

Differential Revision: https://reviews.llvm.org/D53986
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/ModuleSummaryIndex.hllvm.src/include/llvm/IR/ModuleSummaryIndex.h
The file was modified/llvm/trunk/lib/IR/ModuleSummaryIndex.cppllvm.src/lib/IR/ModuleSummaryIndex.cpp
The file was added/llvm/trunk/test/ThinLTO/X86/Inputs/alias_internal.llllvm.src/test/ThinLTO/X86/Inputs/alias_internal.ll
The file was added/llvm/trunk/test/ThinLTO/X86/alias_internal.llllvm.src/test/ThinLTO/X86/alias_internal.ll
Revision 346054 by sammccall:
[clangd] don't buffer the input-mirror stream, it's used to diagnose crashes
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/tool/ClangdMain.cppclang-tools-extra.src/clangd/tool/ClangdMain.cpp
Revision 346052 by phosek:
[compiler-rt][Fuzzer] Fix the fuzzer test build

This fixes the issue introduced in r345765 which changed the way in
which the embedded libc++ is being built but omitted tests.

Differential Revision: https://reviews.llvm.org/D54058
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/tests/CMakeLists.txtcompiler-rt.src/lib/fuzzer/tests/CMakeLists.txt
Revision 346051 by danalbert:
Workaround using new Clang with an old NDK.

We're using an old NDK and a new Clang. New Clangs default to
`-stdlib=libc++` for Android, but those libraries cannot be found by
default with an old NDK. Use an explicit `-stdlib=libstdc++` in the
cxx_mode_flags.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/lit.common.cfgcompiler-rt.src/test/lit.common.cfg
Revision 346050 by ctopper:
[X86] In LowerEXTEND_VECTOR_INREG, emit a vector shuffle instead of directly using X86ISD::UNPCKL

The majority of the changes are because the rest of shuffle lowering/combining prefers to replace the undef input with the other operand. Using UNPCKL directly seemed to avoid this and just grabbed a randomish register for the undef which can create false dependencies.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/madd.llllvm.src/test/CodeGen/X86/madd.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vec_int_to_fp.llllvm.src/test/CodeGen/X86/vec_int_to_fp.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-sext.llllvm.src/test/CodeGen/X86/vector-sext.ll
Revision 346048 by Adrian Prantl:
Add an explicit -std=c++14 to this test.

rdar://problem/45642490
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Modules/lsv-debuginfo.cppclang.src/test/Modules/lsv-debuginfo.cpp
Revision 346047 by aardappel:
[WebAssembly] Parsing missing directives to produce valid .o

Summary:
The assembler was able to assemble and then dump back to .s, but
was failing to parse certain directives necessary for valid .o
output:
- .type directives are now recognized to distinguish function symbols
  and others.
- .size is now parsed to provide function size.
- .globaltype (introduced in https://reviews.llvm.org/D54012) is now
  recognized to ensure symbols like __stack_pointer have a proper type
  set for both .s and .o output.

Also added tests for the above.

Reviewers: sbc100, dschuff

Subscribers: jgravelle-google, aheejin, dexonsmith, kristina, llvm-commits, sunfish

Differential Revision: https://reviews.llvm.org/D53842
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/MCWasmStreamer.cppllvm.src/lib/MC/MCWasmStreamer.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cppllvm.src/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
The file was modified/llvm/trunk/test/MC/WebAssembly/basic-assembly.sllvm.src/test/MC/WebAssembly/basic-assembly.s
Revision 346044 by mgrang:
[COFF, ARM64] Implement InterlockedExchange*_* builtins

Summary: Windows SDK needs these intrinsics to be proper builtins.  This is second in a series of patches to move intrinsic defintions out of intrin.h.

Reviewers: rnk, mstorsjo, efriedma, TomTan

Reviewed By: rnk, efriedma

Subscribers: javed.absar, kristof.beyls, chrib, jfb, kristina, cfe-commits

Differential Revision: https://reviews.llvm.org/D54046
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsAArch64.defclang.src/include/clang/Basic/BuiltinsAArch64.def
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsARM.defclang.src/include/clang/Basic/BuiltinsARM.def
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/lib/Headers/intrin.hclang.src/lib/Headers/intrin.h
The file was modified/cfe/trunk/test/CodeGen/ms-intrinsics.cclang.src/test/CodeGen/ms-intrinsics.c
Revision 346043 by ctopper:
[X86] Don't emit *_extend_vector_inreg nodes when both the input and output types are legal with AVX1

We already have custom lowering for the AVX case in LegalizeVectorOps. So its better to keep the regular extend op around as long as possible.

I had to qualify one place in DAG combine that created illegal vector extending load operations. This change by itself had no effect on any tests which is why its included here.

I've made a few cleanups to the custom lowering. The sign extend code no longer creates an identity shuffle with undef elements. The zero extend code now emits a zero_extend_vector_inreg instead of an unpckl with a zero vector.

For the high half of the custom lowering of zero_extend/any_extend, we're now using an unpckh with a zero vector or undef. Previously we used used a pshufd to move the upper 64-bits to the lower 64-bits and then used a zero_extend_vector_inreg. I think the zero vector should require less execution resources and be smaller code size.

Differential Revision: https://reviews.llvm.org/D54024
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cppllvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/avg.llllvm.src/test/CodeGen/X86/avg.ll
The file was modified/llvm/trunk/test/CodeGen/X86/cast-vsel.llllvm.src/test/CodeGen/X86/cast-vsel.ll
The file was modified/llvm/trunk/test/CodeGen/X86/madd.llllvm.src/test/CodeGen/X86/madd.ll
The file was modified/llvm/trunk/test/CodeGen/X86/psubus.llllvm.src/test/CodeGen/X86/psubus.ll
The file was modified/llvm/trunk/test/CodeGen/X86/shrink_vmul.llllvm.src/test/CodeGen/X86/shrink_vmul.ll
The file was modified/llvm/trunk/test/CodeGen/X86/v8i1-masks.llllvm.src/test/CodeGen/X86/v8i1-masks.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vec_cast2.llllvm.src/test/CodeGen/X86/vec_cast2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vec_int_to_fp.llllvm.src/test/CodeGen/X86/vec_int_to_fp.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-pcmp.llllvm.src/test/CodeGen/X86/vector-pcmp.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-zext.llllvm.src/test/CodeGen/X86/vector-zext.ll
Revision 346042 by kamil:
Try to unbreak the build of sanitizers on !NetBSD

Include the build of unpoison_passwd() and unpoison_group() for
SANITIZER_INTERCEPT_FGETPWENT_R and SANITIZER_INTERCEPT_FGETGRENT_R.
static void unpoison_passwd(
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inccompiler-rt.src/lib/sanitizer_common/sanitizer_common_interceptors.inc
Revision 346041 by aaronballman:
Diagnose parameter names that shadow the names of inherited fields under -Wshadow-field.

This addresses PR34120. Note, unlike GCC, we take into account the accessibility of the field when deciding whether to warn or not.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.tdclang.src/include/clang/Basic/DiagnosticSemaKinds.td
The file was modified/cfe/trunk/include/clang/Sema/Sema.hclang.src/include/clang/Sema/Sema.h
The file was modified/cfe/trunk/lib/Sema/SemaDecl.cppclang.src/lib/Sema/SemaDecl.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDeclCXX.cppclang.src/lib/Sema/SemaDeclCXX.cpp
The file was modified/cfe/trunk/test/SemaCXX/warn-shadow.cppclang.src/test/SemaCXX/warn-shadow.cpp
Revision 346039 by maskray:
[DWARF] Fix typo, .gnu_index -> .gdb_index
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cppllvm.src/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modified/llvm/trunk/test/DebugInfo/dwarfdump-dump-gdbindex.testllvm.src/test/DebugInfo/dwarfdump-dump-gdbindex.test
Revision 346038 by kamil:
Split getpwent and fgetgrent functions in interceptors

Summary:
NetBSD does not ship with fgetpwent_r() and fgetgrent_r().
Split their interceptors from getpwent_r() and getgrent_r()
and disable for this OS.

Installation of supernumerary interceptors causes leaking of
errors to dlsym(3)-like operations.

No functional change for other OSes.

Reviewers: vitalybuka, joerg

Reviewed By: vitalybuka

Subscribers: srhines, kubamracek, fedor.sergeev, llvm-commits, #sanitizers, mgorny

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D54041
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inccompiler-rt.src/lib/sanitizer_common/sanitizer_common_interceptors.inc
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.hcompiler-rt.src/lib/sanitizer_common/sanitizer_platform_interceptors.h
Revision 346037 by gkistanova:
Removed dead builder/slave lldb-amd64-ninja-netbsd7.
Change TypePath in RepositoryPath in Workspace
The file was modified/zorg/trunk/buildbot/osuosl/master/config/builders.pyzorg/buildbot/osuosl/master/config/builders.py
The file was modified/zorg/trunk/buildbot/osuosl/master/config/slaves.pyzorg/buildbot/osuosl/master/config/slaves.py
Revision 346036 by efriedma:
[AArch64] [Windows] Misc fixes for llvm-readobj -unwind.

Use getImageBase() helper to compute the image base. Fix various
offsets/addresses/masks so they're actually correct.

This allows decoding unwind info from DLLs, and unwind info from object
files containing multiple functions.

Differential Revision: https://reviews.llvm.org/D54015
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/ARMWinEH.hllvm.src/include/llvm/Support/ARMWinEH.h
The file was modified/llvm/trunk/test/tools/llvm-readobj/arm64-win-error1.sllvm.src/test/tools/llvm-readobj/arm64-win-error1.s
The file was modified/llvm/trunk/tools/llvm-readobj/ARMWinEHPrinter.cppllvm.src/tools/llvm-readobj/ARMWinEHPrinter.cpp
Revision 346034 by asb:
[RISCV] Add some missing expansions for floating-point intrinsics

A number of intrinsics, such as llvm.sin.f32, would result in a failure to
select. This patch adds expansions for the relevant selection DAG nodes, as
well as exhaustive testing for all f32 and f64 intrinsics.

The codegen for FMA remains a TODO item, pending support for the various
RISC-V FMA instruction variants.

The llvm.minimum.f32.* and llvm.maximum.* tests are commented-out, pending
upstream support for target-independent expansion, as discussed in
http://lists.llvm.org/pipermail/llvm-dev/2018-November/127408.html.

Differential Revision: https://reviews.llvm.org/D54034
Patch by Luís Marques.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVISelLowering.cppllvm.src/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/RISCV/double-intrinsics.llllvm.src/test/CodeGen/RISCV/double-intrinsics.ll
The file was added/llvm/trunk/test/CodeGen/RISCV/float-intrinsics.llllvm.src/test/CodeGen/RISCV/float-intrinsics.ll
Revision 346033 by szelethus:
Attempt to fix 'logical operation on address of string constant'

Caused a lot of warnings for Windows:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/21178/steps/build/logs/warnings%20%2867%29
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Frontend/CheckerRegistration.cppclang.src/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp
Revision 346032 by rksimon:
[X86][AVX512] Change mask ops on vpermi2var tests to not use zeroinitializer.

This is necessary as I'm wanting to remove the 'Constant Pool' shuffle decoding from getTargetShuffleMask - but using getTargetShuffleMaskIndices allows the shuffle combiner to realize that these calls are really broadcasts.....

As with a lot of the X86ISD::VPERMV3 code this causes some vperm2i/vperm2t shuffles to flip depending on optimal commutation.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/avx512vbmi-intrinsics.llllvm.src/test/CodeGen/X86/avx512vbmi-intrinsics.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512vbmivl-intrinsics.llllvm.src/test/CodeGen/X86/avx512vbmivl-intrinsics.ll
Revision 346031 by aheejin:
[WebAssembly] Change indices types to unsined int (NFC)

Summary:
This changes int types to unsigned int in a few places: function indices
and `wasm::Valtype` (which is unsigend int enum).  Currently these
values cannot have negative values anyway, so this should not be a
functional change for now.

Reviewers: sbc100

Subscribers: dschuff, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D54044
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/WasmObjectWriter.cppllvm.src/lib/MC/WasmObjectWriter.cpp
Revision 346030 by lei:
[PowerPC]Disable randomized address space on Linux ppc64le

Recent versions of Ubuntu (17.04 and 18.04) on PowerPC have introduced changes
to Address Space Layout Randomization (ASLR) that is causing 500+ sanitizer
failures. This patch disables ASLR when running the sanitizers on PowerPC 64bit
LE.

Differential Revision: https://reviews.llvm.org/D52900
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cccompiler-rt.src/lib/sanitizer_common/sanitizer_linux.cc
Revision 346029 by aheejin:
[WebAssembly] Fix bugs in rethrow depth counting and InstPrinter

Summary:
EH stack depth is incremented at `try` and decremented at `catch`. When
there are more than two catch instructions for a try instruction, we
shouldn't count non-first catches when calculating EH stack depths.

This patch fixes two bugs:
- CFGStackify: Exclude `catch_all` in the terminate catch pad when
  calculating EH pad stack, because when we have multiple catches for a
  try we should count only the first catch instruction when calculating
  EH pad stack.
- InstPrinter: The initial intention was also to exclude non-first
  catches, but it didn't account nested try-catches, so it failed on
  this case:
```
try
  try
  catch
  end
catch    <-- (1)
end
```
In the example, when we are at the catch (1), the last seen EH
instruction is not `try` but `end_try`, violating the wrong assumption.

We don't need these after we switch to the second proposal because there
is gonna be only one `catch` instruction. But anyway before then these
bugfixes are necessary for keep trunk in working state.

Reviewers: dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D53819
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cppllvm.src/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyCFGStackify.cppllvm.src/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/exception.llllvm.src/test/CodeGen/WebAssembly/exception.ll
Revision 346028 by George Karpenkov:
[analyzer] Fixup of the module build after https://reviews.llvm.org/D53277

Adds AnalyzerOptions.def to the list of textual headers.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/module.modulemapclang.src/include/clang/module.modulemap
Revision 346027 by rupprecht:
[DebugInfo][InstMerge] Fix -debugify for phi node created by -mldst-motion

Summary:
-mldst-motion creates a new phi node without any debug info. Use the merged debug location from the incoming stores to fix this.

Fixes PR38177. The test case here is (somewhat) simplified from:

```
struct S {
  int foo;
  void fn(int bar);
};
void S::fn(int bar) {
  if (bar)
    foo = 1;
  else
    foo = 0;
}
```

Reviewers: dblaikie, gbedwell, aprantl, vsk

Reviewed By: vsk

Subscribers: vsk, JDevlieghere, llvm-commits

Tags: #debug-info

Differential Revision: https://reviews.llvm.org/D54019
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/MergedLoadStoreMotion.cppllvm.src/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
The file was added/llvm/trunk/test/Transforms/InstMerge/st_sink_check_debug.llllvm.src/test/Transforms/InstMerge/st_sink_check_debug.ll
Revision 346026 by matze:
ARMExpandPseudoInsts: Fix CMP_SWAP expansion adding a kill flag to a def
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMExpandPseudoInsts.cppllvm.src/lib/Target/ARM/ARMExpandPseudoInsts.cpp
The file was added/llvm/trunk/test/CodeGen/ARM/cmpxchg.mirllvm.src/test/CodeGen/ARM/cmpxchg.mir
Revision 346025 by spatel:
[ValueTracking] add test for non-canonical shuffle; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/Analysis/ValueTrackingTest.cppllvm.src/unittests/Analysis/ValueTrackingTest.cpp
Revision 346024 by mgrang:
[COFF, ARM64] Change setjmp for AArch64 Windows to use Intrinsic.sponentry

Summary: ARM64 setjmp expects sp on entry instead of framepointer.

Patch by: Yin Ma (yinma@codeaurora.org)

Reviewers: mgrang, eli.friedman, ssijaric, mstorsjo, rnk, compnerd

Reviewed By: mgrang

Subscribers: efriedma, javed.absar, kristof.beyls, chrib, cfe-commits

Differential Revision: https://reviews.llvm.org/D53998
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/ms-setjmp.cclang.src/test/CodeGen/ms-setjmp.c
Revision 346010 by lemo:
Fix a few small issues in llvm-pdbutil

Running "llvm-pdbutil dump -all" on linux (using the native PDB reader),
over a few PDBs pulled from the Microsoft public symbol store uncovered
a few small issues:

- stripped PDBs might not have the strings stream (/names)
- stripped PDBs might not have the "module info" stream

Differential Revision: https://reviews.llvm.org/D54006
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-pdbdump/Inputs/Stripped.pdbllvm.src/test/tools/llvm-pdbdump/Inputs/Stripped.pdb
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/checksum-string.testllvm.src/test/tools/llvm-pdbdump/checksum-string.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/class-layout.testllvm.src/test/tools/llvm-pdbdump/class-layout.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/complex-padding-graphical.testllvm.src/test/tools/llvm-pdbdump/complex-padding-graphical.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/enum-layout.testllvm.src/test/tools/llvm-pdbdump/enum-layout.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/explain-dbi-stream.testllvm.src/test/tools/llvm-pdbdump/explain-dbi-stream.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/explain-pdb-stream.testllvm.src/test/tools/llvm-pdbdump/explain-pdb-stream.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/explain.testllvm.src/test/tools/llvm-pdbdump/explain.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/injected-sources.testllvm.src/test/tools/llvm-pdbdump/injected-sources.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/lit.local.cfgllvm.src/test/tools/llvm-pdbdump/lit.local.cfg
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/load-address.testllvm.src/test/tools/llvm-pdbdump/load-address.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/pretty-func-dumper.testllvm.src/test/tools/llvm-pdbdump/pretty-func-dumper.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/regex-filter.testllvm.src/test/tools/llvm-pdbdump/regex-filter.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/simple-padding-graphical.testllvm.src/test/tools/llvm-pdbdump/simple-padding-graphical.test
The file was added/llvm/trunk/test/tools/llvm-pdbdump/stripped.testllvm.src/test/tools/llvm-pdbdump/stripped.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/symbol-filters.testllvm.src/test/tools/llvm-pdbdump/symbol-filters.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/type-qualifiers.testllvm.src/test/tools/llvm-pdbdump/type-qualifiers.test
The file was modified/llvm/trunk/test/tools/llvm-pdbdump/usingnamespace.testllvm.src/test/tools/llvm-pdbdump/usingnamespace.test
The file was modified/llvm/trunk/tools/llvm-pdbutil/DumpOutputStyle.cppllvm.src/tools/llvm-pdbutil/DumpOutputStyle.cpp
The file was modified/llvm/trunk/tools/llvm-pdbutil/InputFile.cppllvm.src/tools/llvm-pdbutil/InputFile.cpp
The file was modified/llvm/trunk/tools/llvm-pdbutil/InputFile.hllvm.src/tools/llvm-pdbutil/InputFile.h
Revision 346009 by jonpa:
[SystemZ::TTI]  Improve cost handling of uint/sint to fp conversions.

Let i8/i16 uint/sint to fp conversions cost 1 if operand is a load.

Since the load already does the extension, there is no extra cost (previously
returned 2).

Review: Ulrich Weigand
https://reviews.llvm.org/D54028
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZTargetTransformInfo.cppllvm.src/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
The file was modified/llvm/trunk/test/Analysis/CostModel/SystemZ/fp-cast.llllvm.src/test/Analysis/CostModel/SystemZ/fp-cast.ll
Revision 346008 by zturner:
Refactor the lit configuration files

A year or so ago, I re-wrote most of the lit infrastructure in LLVM so
that it wasn't so boilerplate-y. I added lots of common helper type
stuff, simplifed usage patterns, and made the code more elegant and
maintainable.

We migrated to this in LLVM, clang, and lld's lit files, but not in
LLDBs. This started to bite me recently, as the 4 most recent times I
tried to run the lit test suite in LLDB on a fresh checkout the first
thing that would happen is that python would just start crashing with
unhelpful backtraces and I would have to spend time investigating.

You can reproduce this today by doing a fresh cmake generation, doing
ninja lldb and then python bin/llvm-lit.py -sv ~/lldb/lit/SymbolFile at
which point you'll get a segfault that tells you nothing about what your
problem is.

I started trying to fix the issues with bandaids, but it became clear
that the proper solution was to just bring in the work I did in the rest
of the projects. The side benefit of this is that the lit configuration
files become much cleaner and more understandable as a result.

Differential Revision: https://reviews.llvm.org/D54009
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/lit/Breakpoint/case-insensitive.testN/A
The file was removed/lldb/trunk/lit/Breakpoint/lit.local.cfgN/A
The file was modified/lldb/trunk/lit/CMakeLists.txtN/A
The file was modified/lldb/trunk/lit/Expr/TestIRMemoryMapWindows.testN/A
The file was removed/lldb/trunk/lit/Expr/lit.local.cfgN/A
The file was removed/lldb/trunk/lit/Quit/lit.local.cfgN/A
The file was removed/lldb/trunk/lit/Settings/lit.local.cfgN/A
The file was removed/lldb/trunk/lit/SymbolFile/NativePDB/lit.local.cfgN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/ast-restore.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/calling-conventions.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/class-layout.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/compilands.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/enums-layout.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/func-symbols.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/function-level-linking.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/function-nested-block.testN/A
The file was removed/lldb/trunk/lit/SymbolFile/PDB/lit.local.cfgN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/pointers.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/type-quals.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/typedefs.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/udt-layout.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/variables-locations.testN/A
The file was modified/lldb/trunk/lit/SymbolFile/PDB/variables.testN/A
The file was removed/lldb/trunk/lit/Unit/lit.cfgN/A
The file was added/lldb/trunk/lit/Unit/lit.cfg.pyN/A
The file was removed/lldb/trunk/lit/Unit/lit.site.cfg.inN/A
The file was added/lldb/trunk/lit/Unit/lit.site.cfg.py.inN/A
The file was removed/lldb/trunk/lit/lit.cfgN/A
The file was added/lldb/trunk/lit/lit.cfg.pyN/A
The file was removed/lldb/trunk/lit/lit.site.cfg.inN/A
The file was added/lldb/trunk/lit/lit.site.cfg.py.inN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/breakpoint/break-insert-enable-pending.testN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/breakpoint/break-insert.testN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/data/data-info-line.testN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/exec/exec-continue.testN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/exec/exec-finish.testN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/exec/exec-interrupt.testN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/exec/exec-next-instruction.testN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/exec/exec-next.testN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/exec/exec-step-instruction.testN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/exec/exec-step.testN/A
The file was modified/lldb/trunk/lit/tools/lldb-mi/symbol/symbol-list-lines.testN/A
The file was modified/llvm/trunk/utils/lit/lit/llvm/config.pyllvm.src/utils/lit/lit/llvm/config.py
Revision 346005 by eraman:
[ProfileSummary] Add options to override hot and cold count thresholds.

Summary:
The hot and cold count thresholds are derived from the summary, but for
debugging purposes it is convenient to provide the actual thresholds.

Reviewers: davidxl

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D54040
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/ProfileSummaryInfo.cppllvm.src/lib/Analysis/ProfileSummaryInfo.cpp
The file was modified/llvm/trunk/test/Analysis/ProfileSummary/basic.llllvm.src/test/Analysis/ProfileSummary/basic.ll
Revision 346004 by epilk:
[CodeGen] Fix a crash when updating a designated initializer

We need to handle the ConstantAggregateZero case here too.

rdar://45691981

Differential revision: https://reviews.llvm.org/D54010
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGExprConstant.cppclang.src/lib/CodeGen/CGExprConstant.cpp
The file was modified/cfe/trunk/test/CodeGen/designated-initializers.cclang.src/test/CodeGen/designated-initializers.c
Revision 346001 by filcab:
Change -fsanitize-address-poison-class-member-array-new-cookie to -fsanitize-address-poison-custom-array-cookie

Handle it in the driver and propagate it to cc1

Reviewers: rjmccall, kcc, rsmith

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D52615
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/ClangCommandLineReference.rstclang.src/docs/ClangCommandLineReference.rst
The file was modified/cfe/trunk/docs/UsersManual.rstclang.src/docs/UsersManual.rst
The file was modified/cfe/trunk/include/clang/Driver/Options.tdclang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/include/clang/Driver/SanitizerArgs.hclang.src/include/clang/Driver/SanitizerArgs.h
The file was modified/cfe/trunk/include/clang/Frontend/CodeGenOptions.defclang.src/include/clang/Frontend/CodeGenOptions.def
The file was modified/cfe/trunk/lib/CodeGen/ItaniumCXXABI.cppclang.src/lib/CodeGen/ItaniumCXXABI.cpp
The file was modified/cfe/trunk/lib/Driver/SanitizerArgs.cppclang.src/lib/Driver/SanitizerArgs.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cppclang.src/lib/Frontend/CompilerInvocation.cpp
The file was modified/cfe/trunk/test/CodeGen/address-sanitizer-and-array-cookie.cppclang.src/test/CodeGen/address-sanitizer-and-array-cookie.cpp
The file was modified/cfe/trunk/test/Driver/fsanitize.cclang.src/test/Driver/fsanitize.c
Revision 346000 by sylvestre:
Fixed inclusion of M_PI fow MinGW-w64

Patch by KOLANICH
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cppllvm.src/lib/Target/AMDGPU/SIISelLowering.cpp
Revision 345998 by jonpa:
[SystemZ] Rework getInterleavedMemoryOpCost()

Model this function more closely after the BasicTTIImpl version, with
separate handling of loads and stores. For loads, the set of actually loaded
vectors is checked.

This makes it more readable and just slightly more accurate generally.

Review: Ulrich Weigand
https://reviews.llvm.org/D53071
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZTargetTransformInfo.cppllvm.src/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
The file was added/llvm/trunk/test/Transforms/LoopVectorize/SystemZ/mem-interleaving-costs-02.llllvm.src/test/Transforms/LoopVectorize/SystemZ/mem-interleaving-costs-02.ll
Revision 345997 by szelethus:
Remove the duplicated definition of size_t

So hopefully windows won't complain.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Analysis/llvm-conventions.cppclang.src/test/Analysis/llvm-conventions.cpp
Revision 345996 by jmorse:
[MachineSink][DebugInfo] Correctly sink DBG_VALUEs

As reported in PR38952, postra-machine-sink relies on DBG_VALUE insns being
adjacent to the def of the register that they reference. This is not always
true, leading to register copies being sunk but not the associated DBG_VALUEs,
which gives the debugger a bad variable location.

This patch collects DBG_VALUEs as we walk through a BB looking for copies to
sink, then passes them down to performSink. Compile-time impact should be
negligable.

Differential Revision: https://reviews.llvm.org/D53992
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/MachineSink.cppllvm.src/lib/CodeGen/MachineSink.cpp
The file was added/llvm/trunk/test/CodeGen/X86/pr38952.mirllvm.src/test/CodeGen/X86/pr38952.mir
Revision 345995 by jonastoth:
[fix][clang-tidy] fix for r345961 that introduced a test failure on Windows builds

r345961 introduced a path check in
.\tools\clang\tools\extra\test\clang-tidy\clang-tidy-run-with-database.cpp.

r345961 added a check line for a path that only handled / on unix
machines and not \ on windows machines.

This patch handles both cases.

Patch by TWeaver.

Differential Revision: https://reviews.llvm.org/D54036
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/test/clang-tidy/clang-tidy-run-with-database.cppclang-tools-extra.src/test/clang-tidy/clang-tidy-run-with-database.cpp
Revision 345993 by szelethus:
Didn't -> didnt, because #errors complains about untermianted '
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.defclang.src/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
Revision 345992 by maskray:
[analyzer] Fix diagnostics/explicit-suppression.cpp

*OI++ = *II++ is on line 670, not 668
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Analysis/diagnostics/explicit-suppression.cppclang.src/test/Analysis/diagnostics/explicit-suppression.cpp
Revision 345991 by abataev:
[OPENMP][NVPTX]Use __kmpc_data_sharing_coalesced_push_stack function.

Coalesced memory access requires use of the new function
`__kmpc_data_sharing_coalesced_push_stack` instead of the
`__kmpc_data_sharing_push_stack`.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.cppclang.src/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
The file was modified/cfe/trunk/test/OpenMP/declare_target_codegen_globalization.cppclang.src/test/OpenMP/declare_target_codegen_globalization.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_target_codegen.cppclang.src/test/OpenMP/nvptx_target_codegen.cpp
Revision 345990 by szelethus:
[analyzer] Put llvm.Conventions back in alpha

Interestingly, this many year old (when I last looked I remember 2010ish)
checker was committed without any tests, so I thought I'd implement them, but I
was shocked to see how I barely managed to get it working. The code is severely
outdated, I'm not even sure it has ever been used, so I'd propose to move it
back into alpha, and possibly even remove it.

Differential Revision: https://reviews.llvm.org/D53856
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Checkers/Checkers.tdclang.src/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cppclang.src/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp
The file was modified/cfe/trunk/test/Analysis/Inputs/system-header-simulator-cxx.hclang.src/test/Analysis/Inputs/system-header-simulator-cxx.h
The file was modified/cfe/trunk/test/Analysis/diagnostics/explicit-suppression.cppclang.src/test/Analysis/diagnostics/explicit-suppression.cpp
The file was modified/cfe/trunk/test/Analysis/inner-pointer.cppclang.src/test/Analysis/inner-pointer.cpp
The file was added/cfe/trunk/test/Analysis/llvm-conventions.cppclang.src/test/Analysis/llvm-conventions.cpp
The file was modified/cfe/trunk/test/Analysis/temporaries.cppclang.src/test/Analysis/temporaries.cpp
The file was modified/cfe/trunk/www/analyzer/alpha_checks.htmlclang.src/www/analyzer/alpha_checks.html
Revision 345989 by szelethus:
[analyzer] New flag to print all -analyzer-config options

A new -cc1 flag is avaible for the said purpose: -analyzer-config-help

Differential Revision: https://reviews.llvm.org/D53296
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/CC1Options.tdclang.src/include/clang/Driver/CC1Options.td
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.hclang.src/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Frontend/FrontendActions.hclang.src/include/clang/StaticAnalyzer/Frontend/FrontendActions.h
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cppclang.src/lib/Frontend/CompilerInvocation.cpp
The file was modified/cfe/trunk/lib/FrontendTool/ExecuteCompilerInvocation.cppclang.src/lib/FrontendTool/ExecuteCompilerInvocation.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Frontend/CheckerRegistration.cppclang.src/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp
The file was added/cfe/trunk/test/Analysis/analyzer-list-configs.cclang.src/test/Analysis/analyzer-list-configs.c
Revision 345988 by spatel:
[ValueTracking] allow non-canonical shuffles when computing signbits

This possibility is noted in D53987 for a different case,
so we need to adjust the existing code.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/ValueTracking.cppllvm.src/lib/Analysis/ValueTracking.cpp
The file was modified/llvm/trunk/unittests/Analysis/ValueTrackingTest.cppllvm.src/unittests/Analysis/ValueTrackingTest.cpp
Revision 345987 by mcinally:
[NFC] Remove some extra characters from docs/LangRef.rst
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rstllvm.src/docs/LangRef.rst
Revision 345986 by szelethus:
[analyzer][NFC] Collect all -analyzer-config options in a .def file

I'm in the process of refactoring AnalyzerOptions. The main motivation behind
here is to emit warnings if an invalid -analyzer-config option is given from the
command line, and be able to list them all.

In this patch, I'm moving all analyzer options to a def file, and move 2 enums
to global namespace.

Differential Revision: https://reviews.llvm.org/D53277
Change TypePath in RepositoryPath in Workspace
The file was added/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.defclang.src/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.hclang.src/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/AnalyzerOptions.cppclang.src/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/CoreEngine.cppclang.src/lib/StaticAnalyzer/Core/CoreEngine.cpp
Revision 345985 by szelethus:
[analyzer][NFC] Fix some incorrect uses of -analyzer-config options

I'm in the process of refactoring AnalyzerOptions. The main motivation behind
here is to emit warnings if an invalid -analyzer-config option is given from
the command line, and be able to list them all.

In this patch, I found some flags that should've been used as checker options,
or have absolutely no mention of in AnalyzerOptions, or are nonexistent.

- NonLocalizedStringChecker now uses its "AggressiveReport" flag as a checker
    option
- lib/StaticAnalyzer/Frontend/ModelInjector.cpp now accesses the "model-path"
    option through a getter in AnalyzerOptions
- -analyzer-config path-diagnostics-alternate=false is not a thing, I removed it,
- lib/StaticAnalyzer/Checkers/AllocationDiagnostics.cpp and
    lib/StaticAnalyzer/Checkers/AllocationDiagnostics.h are weird, they actually
    only contain an option getter. I deleted them, and fixed RetainCountChecker
    to get it's "leak-diagnostics-reference-allocation" option as a checker option,
- "region-store-small-struct-limit" has a proper getter now.

Differential Revision: https://reviews.llvm.org/D53276
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.hclang.src/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was removed/cfe/trunk/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.cppclang.src/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.cpp
The file was removed/cfe/trunk/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.hclang.src/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.h
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/CMakeLists.txtclang.src/lib/StaticAnalyzer/Checkers/CMakeLists.txt
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/LocalizationChecker.cppclang.src/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cppclang.src/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.hclang.src/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/AnalyzerOptions.cppclang.src/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cppclang.src/lib/StaticAnalyzer/Core/RegionStore.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Frontend/ModelInjector.cppclang.src/lib/StaticAnalyzer/Frontend/ModelInjector.cpp
The file was modified/cfe/trunk/test/Analysis/analyzer-config.cclang.src/test/Analysis/analyzer-config.c
The file was modified/cfe/trunk/test/Analysis/analyzer-config.cppclang.src/test/Analysis/analyzer-config.cpp
The file was modified/cfe/trunk/test/Analysis/cstring-plist.cclang.src/test/Analysis/cstring-plist.c
The file was modified/cfe/trunk/test/Analysis/localization-aggressive.mclang.src/test/Analysis/localization-aggressive.m
Revision 345984 by alexfh:
[clang-tidy] Fixed code sample in a comment. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/utils/IncludeInserter.hclang-tools-extra.src/clang-tidy/utils/IncludeInserter.h
Revision 345983 by delcypher:
[NFC] Refactor initialisation of Darwin malloc zone fields into separate function called `InitMallocZoneFields()` which is now called from `ReplaceSystemMalloc()`.

Summary:
The motivation here is to be able support initialisation of the
malloc zone on other code paths.

rdar://problem/45284065

Reviewers: kubamracek, george.karpenkov

Subscribers: llvm-commits, #sanitizers

Differential Revision: https://reviews.llvm.org/D54037
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_malloc_mac.inccompiler-rt.src/lib/sanitizer_common/sanitizer_malloc_mac.inc
Revision 345982 by abataev:
[OPENMP]Change the mapping type for lambda captures.

The previously used combination `PTR_AND_OBJ | PRIVATE` could be used for mapping of some data in Fortran. Changed it to `PTR_AND_OBJ | LITERAL`.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cppclang.src/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_lambda_capturing.cppclang.src/test/OpenMP/nvptx_lambda_capturing.cpp
Revision 345979 by alexfh:
[clang-tidy] .reset(new X) -> make_unique<X>() in a comment. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/utils/IncludeInserter.hclang-tools-extra.src/clang-tidy/utils/IncludeInserter.h
Revision 345978 by abataev:
[OPENMP][NVPTX]Improve emission of the globalized variables for
target/teams/distribute regions.

Target/teams/distribute regions exist for all the time the kernel is
executed. Thus, if the variable is declared in their context and then
escape it, we can allocate global memory statically instead of
allocating it dynamically.
Patch captures all the globalized variables in target/teams/distribute
contexts, merges them into the records, one per each target region.
Those records are then joined into the union, one per compilation unit
(to save the global memory). Those units are organized into
2 x dimensional arrays, where the first dimension is
the number of blocks per SM and the second one is the number of SMs.
Runtime functions manage this global memory space between the executing
teams.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/LangOptions.defclang.src/include/clang/Basic/LangOptions.def
The file was modified/cfe/trunk/include/clang/Driver/Options.tdclang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.cppclang.src/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.hclang.src/lib/CodeGen/CGOpenMPRuntimeNVPTX.h
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cppclang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cppclang.src/lib/Frontend/CompilerInvocation.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_data_sharing.cppclang.src/test/OpenMP/nvptx_data_sharing.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_distribute_parallel_generic_mode_codegen.cppclang.src/test/OpenMP/nvptx_distribute_parallel_generic_mode_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_parallel_codegen.cppclang.src/test/OpenMP/nvptx_parallel_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_parallel_for_codegen.cppclang.src/test/OpenMP/nvptx_parallel_for_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_target_teams_distribute_parallel_for_codegen.cppclang.src/test/OpenMP/nvptx_target_teams_distribute_parallel_for_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_target_teams_distribute_parallel_for_simd_codegen.cppclang.src/test/OpenMP/nvptx_target_teams_distribute_parallel_for_simd_codegen.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_teams_codegen.cppclang.src/test/OpenMP/nvptx_teams_codegen.cpp
Revision 345975 by kparzysz:
[Hexagon] Do not reduce load size for globals in small-data

Small-data (i.e. GP-relative) loads and stores allow 16-bit scaled
offset. For a load of a value of type T, the small-data area is
equivalent to an array "T sdata[65536]". This implies that objects
of smaller sizes need to be closer to the beginning of sdata,
while larger objects may be farther away, or otherwise the offset
may be insufficient to reach it. Similarly, an object of a larger
size should not be accessed via a load of a smaller size.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonISelLowering.cppllvm.src/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonISelLowering.hllvm.src/lib/Target/Hexagon/HexagonISelLowering.h
The file was added/llvm/trunk/test/CodeGen/Hexagon/sdata-load-size.llllvm.src/test/CodeGen/Hexagon/sdata-load-size.ll
Revision 345973 by sammccall:
[clangd] Add fallbackFlags initialization extension.

Summary:
This allows customizing the flags used when no compile database is
available. It addresses some uses of the old extraFlags extension.

Reviewers: ilya-biryukov

Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Differential Revision: https://reviews.llvm.org/D53688
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.cppclang-tools-extra.src/clangd/ClangdLSPServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/Protocol.cppclang-tools-extra.src/clangd/Protocol.cpp
The file was modified/clang-tools-extra/trunk/clangd/Protocol.hclang-tools-extra.src/clangd/Protocol.h
Revision 345972 by abataev:
[DEBUGINFO, NVPTX]DO not emit ',debug' option if no debug info or only debug directives are requested.

Summary:
If the output of debug directives only is requested, we should drop
emission of ',debug' option from the target directive. Required for
supporting of nvprof profiler.

Reviewers: probinson, echristo, dblaikie

Subscribers: Hahnfeld, jholewinski, llvm-commits, JDevlieghere, aprantl

Differential Revision: https://reviews.llvm.org/D46061
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cppllvm.src/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp
The file was modified/llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.hllvm.src/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h
The file was modified/llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cppllvm.src/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
The file was added/llvm/trunk/test/DebugInfo/NVPTX/debug-file-loc-only.llllvm.src/test/DebugInfo/NVPTX/debug-file-loc-only.ll
Revision 345971 by Tim Northover:
Reapply Logging: make os_log buffer size an integer constant expression.

The size of an os_log buffer is known at any stage of compilation, so making it
a constant expression means that the common idiom of declaring a buffer for it
won't result in a VLA. That allows the compiler to skip saving and restoring
the stack pointer around such buffers.

This also moves the OSLog and other FormatString helpers from
libclangAnalysis to libclangAST to avoid a circular dependency.
Change TypePath in RepositoryPath in Workspace
The file was added/cfe/trunk/include/clang/AST/FormatString.hclang.src/include/clang/AST/FormatString.h
The file was added/cfe/trunk/include/clang/AST/OSLog.hclang.src/include/clang/AST/OSLog.h
The file was removed/cfe/trunk/include/clang/Analysis/Analyses/FormatString.hclang.src/include/clang/Analysis/Analyses/FormatString.h
The file was removed/cfe/trunk/include/clang/Analysis/Analyses/OSLog.hclang.src/include/clang/Analysis/Analyses/OSLog.h
The file was modified/cfe/trunk/lib/AST/CMakeLists.txtclang.src/lib/AST/CMakeLists.txt
The file was modified/cfe/trunk/lib/AST/ExprConstant.cppclang.src/lib/AST/ExprConstant.cpp
The file was added/cfe/trunk/lib/AST/FormatString.cppclang.src/lib/AST/FormatString.cpp
The file was added/cfe/trunk/lib/AST/FormatStringParsing.hclang.src/lib/AST/FormatStringParsing.h
The file was added/cfe/trunk/lib/AST/OSLog.cppclang.src/lib/AST/OSLog.cpp
The file was added/cfe/trunk/lib/AST/PrintfFormatString.cppclang.src/lib/AST/PrintfFormatString.cpp
The file was added/cfe/trunk/lib/AST/ScanfFormatString.cppclang.src/lib/AST/ScanfFormatString.cpp
The file was modified/cfe/trunk/lib/Analysis/CMakeLists.txtclang.src/lib/Analysis/CMakeLists.txt
The file was removed/cfe/trunk/lib/Analysis/FormatString.cppclang.src/lib/Analysis/FormatString.cpp
The file was removed/cfe/trunk/lib/Analysis/FormatStringParsing.hclang.src/lib/Analysis/FormatStringParsing.h
The file was removed/cfe/trunk/lib/Analysis/OSLog.cppclang.src/lib/Analysis/OSLog.cpp
The file was removed/cfe/trunk/lib/Analysis/PrintfFormatString.cppclang.src/lib/Analysis/PrintfFormatString.cpp
The file was removed/cfe/trunk/lib/Analysis/ScanfFormatString.cppclang.src/lib/Analysis/ScanfFormatString.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/lib/Sema/SemaChecking.cppclang.src/lib/Sema/SemaChecking.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins.cclang.src/test/CodeGen/builtins.c
The file was modified/clang-tools-extra/trunk/clang-tidy/cert/CMakeLists.txtclang-tools-extra.src/clang-tidy/cert/CMakeLists.txt
The file was modified/clang-tools-extra/trunk/clang-tidy/cert/StrToNumCheck.cppclang-tools-extra.src/clang-tidy/cert/StrToNumCheck.cpp
Revision 345970 by sammccall:
[clangd] Make in-memory CDB always available as an overlay, refactor.

Summary:
The new implementation is a GlobalCompilationDatabase that overlays a base.
Normally this is the directory-based CDB.
To preserve the behavior of compile_args_from=LSP, the base may be null.

The OverlayCDB is always present, and so the extensions to populate it
are always supported.

It also allows overriding the flags of the fallback command. This is
just unit-tested for now, but the plan is to expose this as an extension
on the initialize message. This addresses use cases like
https://github.com/thomasjo/atom-ide-cpp/issues/16

Reviewers: ilya-biryukov

Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Differential Revision: https://reviews.llvm.org/D53687
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.cppclang-tools-extra.src/clangd/ClangdLSPServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.hclang-tools-extra.src/clangd/ClangdLSPServer.h
The file was modified/clang-tools-extra/trunk/clangd/GlobalCompilationDatabase.cppclang-tools-extra.src/clangd/GlobalCompilationDatabase.cpp
The file was modified/clang-tools-extra/trunk/clangd/GlobalCompilationDatabase.hclang-tools-extra.src/clangd/GlobalCompilationDatabase.h
The file was modified/clang-tools-extra/trunk/clangd/tool/ClangdMain.cppclang-tools-extra.src/clangd/tool/ClangdMain.cpp
The file was modified/clang-tools-extra/trunk/unittests/clangd/GlobalCompilationDatabaseTests.cppclang-tools-extra.src/unittests/clangd/GlobalCompilationDatabaseTests.cpp
Revision 345969 by sammccall:
[clangd] Remove didOpen extraFlags extension.

Summary:
This was added in D34947 to support YCM, but YCM actually provides *all* args,
and this was never actually used.
Meanwhile, we grew another extension that allows specifying all args.

I did find one user of this extension: https://github.com/thomasjo/atom-ide-cpp.
I'll reach out, there are multiple good alternatives:
- compile_commands.txt can serve the same purpose as .clang_complete there
- we can add an extension to support setting the fallback command

Reviewers: ilya-biryukov

Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Differential Revision: https://reviews.llvm.org/D53641
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.cppclang-tools-extra.src/clangd/ClangdLSPServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.hclang-tools-extra.src/clangd/ClangdLSPServer.h
The file was modified/clang-tools-extra/trunk/clangd/GlobalCompilationDatabase.cppclang-tools-extra.src/clangd/GlobalCompilationDatabase.cpp
The file was modified/clang-tools-extra/trunk/clangd/GlobalCompilationDatabase.hclang-tools-extra.src/clangd/GlobalCompilationDatabase.h
The file was modified/clang-tools-extra/trunk/clangd/Protocol.cppclang-tools-extra.src/clangd/Protocol.cpp
The file was modified/clang-tools-extra/trunk/clangd/Protocol.hclang-tools-extra.src/clangd/Protocol.h
The file was removed/clang-tools-extra/trunk/test/clangd/extra-flags.testclang-tools-extra.src/test/clangd/extra-flags.test
Revision 345968 by sammccall:
[clangd] Only log ignored diagnostics with -log=verbose.

Reviewers: ilya-biryukov

Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Differential Revision: https://reviews.llvm.org/D53648
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/Compiler.cppclang-tools-extra.src/clangd/Compiler.cpp
Revision 345967 by plyster:
Add support for 'atomic_default_mem_order' clause on 'requires' directive. Also renamed test files relating to 'requires'. Differntial review: https://reviews.llvm.org/D53513
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/OpenMPClause.hclang.src/include/clang/AST/OpenMPClause.h
The file was modified/cfe/trunk/include/clang/AST/RecursiveASTVisitor.hclang.src/include/clang/AST/RecursiveASTVisitor.h
The file was modified/cfe/trunk/include/clang/Basic/OpenMPKinds.defclang.src/include/clang/Basic/OpenMPKinds.def
The file was modified/cfe/trunk/include/clang/Basic/OpenMPKinds.hclang.src/include/clang/Basic/OpenMPKinds.h
The file was modified/cfe/trunk/include/clang/Sema/Sema.hclang.src/include/clang/Sema/Sema.h
The file was modified/cfe/trunk/lib/AST/DeclPrinter.cppclang.src/lib/AST/DeclPrinter.cpp
The file was modified/cfe/trunk/lib/AST/OpenMPClause.cppclang.src/lib/AST/OpenMPClause.cpp
The file was modified/cfe/trunk/lib/AST/StmtProfile.cppclang.src/lib/AST/StmtProfile.cpp
The file was modified/cfe/trunk/lib/Basic/OpenMPKinds.cppclang.src/lib/Basic/OpenMPKinds.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGStmtOpenMP.cppclang.src/lib/CodeGen/CGStmtOpenMP.cpp
The file was modified/cfe/trunk/lib/Parse/ParseOpenMP.cppclang.src/lib/Parse/ParseOpenMP.cpp
The file was modified/cfe/trunk/lib/Sema/SemaOpenMP.cppclang.src/lib/Sema/SemaOpenMP.cpp
The file was modified/cfe/trunk/lib/Sema/TreeTransform.hclang.src/lib/Sema/TreeTransform.h
The file was modified/cfe/trunk/lib/Serialization/ASTReader.cppclang.src/lib/Serialization/ASTReader.cpp
The file was modified/cfe/trunk/lib/Serialization/ASTWriter.cppclang.src/lib/Serialization/ASTWriter.cpp
The file was added/cfe/trunk/test/OpenMP/requires_acq_rel_print.cppclang.src/test/OpenMP/requires_acq_rel_print.cpp
The file was added/cfe/trunk/test/OpenMP/requires_ast_print.cppclang.src/test/OpenMP/requires_ast_print.cpp
The file was added/cfe/trunk/test/OpenMP/requires_messages.cppclang.src/test/OpenMP/requires_messages.cpp
The file was added/cfe/trunk/test/OpenMP/requires_relaxed_print.cppclang.src/test/OpenMP/requires_relaxed_print.cpp
The file was removed/cfe/trunk/test/OpenMP/requires_unified_address_ast_print.cppclang.src/test/OpenMP/requires_unified_address_ast_print.cpp
The file was removed/cfe/trunk/test/OpenMP/requires_unified_address_messages.cppclang.src/test/OpenMP/requires_unified_address_messages.cpp
The file was modified/cfe/trunk/tools/libclang/CIndex.cppclang.src/tools/libclang/CIndex.cpp
Revision 345966 by dstenb:
Allow null-valued function operands in getCalledFunction()

Summary:
Change the dynamic cast in CallBase::getCalledFunction() to allow
null-valued function operands.

This patch fixes a crash that occurred when a funtion operand of a
call instruction was dropped, and later on a metadata-carrying
instruction was printed out. When allocating the metadata slot numbers,
getCalledFunction() would be invoked on the call with the dropped
operand, resulting in a failed non-null assertion in isa<>.

This fixes PR38924, in which a printout in DBCE crashed due to this.

This aligns getCalledFunction() with getCalledValue(), as the latter
allows the operand to be null.

Reviewers: vsk, dexonsmith, hfinkel

Reviewed By: dexonsmith

Subscribers: hfinkel, llvm-commits

Differential Revision: https://reviews.llvm.org/D52537
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/Instructions.hllvm.src/include/llvm/IR/Instructions.h
The file was modified/llvm/trunk/unittests/IR/MetadataTest.cppllvm.src/unittests/IR/MetadataTest.cpp
Revision 345965 by xazax:
[analyzer][CTU] Correctly signal in the function index generation tool if there was an error

Differential Revision: https://reviews.llvm.org/D53979
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/tools/clang-func-mapping/CMakeLists.txtclang.src/tools/clang-func-mapping/CMakeLists.txt
The file was modified/cfe/trunk/tools/clang-func-mapping/ClangFnMapGen.cppclang.src/tools/clang-func-mapping/ClangFnMapGen.cpp
Revision 345964 by rksimon:
[DAGCombiner] Remove reduceBuildVecConvertToConvertBuildVec and rely on the vectorizers instead (PR35732)

reduceBuildVecConvertToConvertBuildVec vectorizes int2float in the DAGCombiner, which means that even if the LV/SLP has decided to keep scalar code using the cost models, this will override this.

While there are cases where vectorization is necessary in the DAG (mainly due to legalization artefacts), I don't think this is the case here, we should assume that the vectorizers know what they are doing.

Differential Revision: https://reviews.llvm.org/D53712
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cppllvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/vdup.llllvm.src/test/CodeGen/ARM/vdup.ll
The file was modified/llvm/trunk/test/CodeGen/Mips/cconv/vector.llllvm.src/test/CodeGen/Mips/cconv/vector.ll
The file was modified/llvm/trunk/test/CodeGen/X86/2009-02-26-MachineLICMBug.llllvm.src/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll
The file was modified/llvm/trunk/test/CodeGen/X86/cvtv2f32.llllvm.src/test/CodeGen/X86/cvtv2f32.ll
Revision 345963 by ibiryukov:
Revert "Fix regression in behavior of clang -x c++-header -fmodule-name=XXX"

This reverts commit r345803 and r345915 (a follow-up fix to r345803).

Reason: r345803 blocks our internal integrate because of the new
warnings showing up in too many places. The fix is actually correct,
we will reland it after figuring out how to integrate properly.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cppclang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInstance.cppclang.src/lib/Frontend/CompilerInstance.cpp
The file was modified/cfe/trunk/lib/Lex/ModuleMap.cppclang.src/lib/Lex/ModuleMap.cpp
The file was modified/cfe/trunk/test/Driver/header-module.cppclang.src/test/Driver/header-module.cpp
The file was removed/cfe/trunk/test/Modules/strict-decluse-headers.cppclang.src/test/Modules/strict-decluse-headers.cpp
Revision 345962 by sheredom:
[AMDGPU] UBSan bug fix for r345710

UBSan detected an error in our ISelLowering that is exposed only when
you have a dmask == 0x1. Fix this by adding in an explicit check to
ensure we don't do the UBSan detected shl << 32.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cppllvm.src/lib/Target/AMDGPU/SIISelLowering.cpp
Revision 345961 by sammccall:
[clang-tidy] Get ClangTidyContext out of the business of storing diagnostics. NFC

Summary:
Currently ClangTidyContext::diag() sends the diagnostics to a
DiagnosticsEngine, which probably delegates to a ClangTidyDiagnosticsConsumer,
which is supposed to go back and populate ClangTidyContext::Errors.

After this patch, the diagnostics are stored in the ClangTidyDiagnosticsConsumer
itself and can be retrieved from there.

Why?
- the round-trip from context -> engine -> consumer -> context is confusing
   and makes it harder to establish layering between these things.
- context does too many things, and makes it hard to use clang-tidy as a library
- everyone who actually wants the diagnostics has access to the ClangTidyDiagnosticsConsumer

The most natural implementation (ClangTidyDiagnosticsConsumer::take()
finalizes diagnostics) causes a test failure: clang-tidy-run-with-database.cpp
asserts that clang-tidy exits successfully when trying to process a file
that doesn't exist.
In clang-tidy today, this happens because finish() is never called, so the
diagnostic is never flushed. This looks like a bug to me.
For now, this patch carefully preserves that behavior, but I'll ping the
authors to see whether it's deliberate and worth preserving.

Reviewers: hokein

Subscribers: xazax.hun, cfe-commits, alexfh

Differential Revision: https://reviews.llvm.org/D53953
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/ClangTidy.cppclang-tools-extra.src/clang-tidy/ClangTidy.cpp
The file was modified/clang-tools-extra/trunk/clang-tidy/ClangTidy.hclang-tools-extra.src/clang-tidy/ClangTidy.h
The file was modified/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cppclang-tools-extra.src/clang-tidy/ClangTidyDiagnosticConsumer.cpp
The file was modified/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.hclang-tools-extra.src/clang-tidy/ClangTidyDiagnosticConsumer.h
The file was modified/clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cppclang-tools-extra.src/clang-tidy/tool/ClangTidyMain.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/clang-tidy-run-with-database.cppclang-tools-extra.src/test/clang-tidy/clang-tidy-run-with-database.cpp
The file was modified/clang-tools-extra/trunk/unittests/clang-tidy/ClangTidyTest.hclang-tools-extra.src/unittests/clang-tidy/ClangTidyTest.h
Revision 345960 by alexdenisov:
Fix a typo in a function name

Declaration and definition have slightly different names with a typo in the
declaration, which leads to a link error.
See the following bug report for more details: https://bugs.llvm.org/show_bug.cgi?id=39523
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm-c/ExecutionEngine.hllvm.src/include/llvm-c/ExecutionEngine.h
Revision 345959 by ayalz:
[LV] Avoid vectorizing loops under opt for size that involve SCEV checks

Fix PR39417, PR39497

The loop vectorizer may generate runtime SCEV checks for overflow and stride==1
cases, leading to execution of original scalar loop. The latter is forbidden
when optimizing for size. An assert introduced in r344743 triggered the above
PR's showing it does happen. This patch fixes this behavior by preventing
vectorization in such cases.

Differential Revision: https://reviews.llvm.org/D53612
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cppllvm.src/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/X86/optsize.llllvm.src/test/Transforms/LoopVectorize/X86/optsize.ll
The file was added/llvm/trunk/test/Transforms/LoopVectorize/pr39417-optsize-scevchecks.llllvm.src/test/Transforms/LoopVectorize/pr39417-optsize-scevchecks.ll
Revision 345955 by dberris:
[XRay] Fix tests with updated fdr-dump

Follow-up to D54022.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-xray/X86/fdr-dump-arg1-version-3.txtllvm.src/test/tools/llvm-xray/X86/fdr-dump-arg1-version-3.txt
The file was modified/llvm/trunk/test/tools/llvm-xray/X86/fdr-dump-arg1.txtllvm.src/test/tools/llvm-xray/X86/fdr-dump-arg1.txt
The file was modified/llvm/trunk/unittests/XRay/FDRRecordPrinterTest.cppllvm.src/unittests/XRay/FDRRecordPrinterTest.cpp
Revision 345954 by dberris:
[XRay] Update delta computations in runtime

Summary:
Fix some issues discovered from mostly manual inspection of outputs from
the `llvm-xray fdr-dump` tool.

It turns out we haven't been writing the deltas properly, and have been
writing down zeros for deltas of some records. This change fixes this
oversight born by the recent refactoring.

Reviewers: mboerger

Subscribers: llvm-commits, hiraditya

Differential Revision: https://reviews.llvm.org/D54022
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/xray/tests/unit/fdr_controller_test.cccompiler-rt.src/lib/xray/tests/unit/fdr_controller_test.cc
The file was modified/compiler-rt/trunk/lib/xray/xray_fdr_controller.hcompiler-rt.src/lib/xray/xray_fdr_controller.h
The file was modified/llvm/trunk/lib/XRay/RecordPrinter.cppllvm.src/lib/XRay/RecordPrinter.cpp
Revision 345953 by maskray:
[clangd] Really fix clang -Wimplicit-fallthrough

The intention was to fall through to Function case in LLVM_ENABLE_ASSERTIONS=Off builds.

Use #ifndef NDEBUG to fix -Wimplicit-fallthrough
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/CodeComplete.cppclang-tools-extra.src/clangd/CodeComplete.cpp
Revision 345952 by maskray:
[clangd] Fix clang -Wimplicit-fallthrough
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/CodeComplete.cppclang-tools-extra.src/clangd/CodeComplete.cpp
Revision 345951 by maskray:
Fix -Wimplicit-fallthrough warning in LLVM_ENABLE_ASSERTIONS=Off builds
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/cert/StrToNumCheck.cppclang-tools-extra.src/clang-tidy/cert/StrToNumCheck.cpp
Revision 345950 by maskray:
Fix -Wimplicit-fallthrough warning in LLVM_ENABLE_ASSERTIONS=Off builds
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/BasicValueFactory.cppclang.src/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
Revision 345922 by arsenm:
AMDGPU: Fix assertion with bitcast from i64 constant to v4i16
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cppllvm.src/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/bitcast-constant-to-vector.llllvm.src/test/CodeGen/AMDGPU/bitcast-constant-to-vector.ll
Revision 345919 by matze:
test/DebugInfo: Convert some tests to MIR

These tests are meant to test dwarf emission (or prolog/epilogue
generation) so we can convert them to .mir and only run the relevant
part of the pipeline.
This way they become independent of changes in earlier passes such as my
planned changes to RegAllocFast.
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.llllvm.src/test/DebugInfo/AArch64/asan-stack-vars.ll
The file was added/llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.mirllvm.src/test/DebugInfo/AArch64/asan-stack-vars.mir
The file was removed/llvm/trunk/test/DebugInfo/AArch64/compiler-gen-bbs-livedebugvalues.llllvm.src/test/DebugInfo/AArch64/compiler-gen-bbs-livedebugvalues.ll
The file was added/llvm/trunk/test/DebugInfo/AArch64/compiler-gen-bbs-livedebugvalues.mirllvm.src/test/DebugInfo/AArch64/compiler-gen-bbs-livedebugvalues.mir
The file was removed/llvm/trunk/test/DebugInfo/ARM/cfi-eof-prologue.llllvm.src/test/DebugInfo/ARM/cfi-eof-prologue.ll
The file was added/llvm/trunk/test/DebugInfo/ARM/cfi-eof-prologue.mirllvm.src/test/DebugInfo/ARM/cfi-eof-prologue.mir
The file was removed/llvm/trunk/test/DebugInfo/X86/debug-loc-asan.llllvm.src/test/DebugInfo/X86/debug-loc-asan.ll
The file was added/llvm/trunk/test/DebugInfo/X86/debug-loc-asan.mirllvm.src/test/DebugInfo/X86/debug-loc-asan.mir
The file was removed/llvm/trunk/test/DebugInfo/X86/debug-loc-offset.llllvm.src/test/DebugInfo/X86/debug-loc-offset.ll
The file was added/llvm/trunk/test/DebugInfo/X86/debug-loc-offset.mirllvm.src/test/DebugInfo/X86/debug-loc-offset.mir
The file was removed/llvm/trunk/test/DebugInfo/X86/dw_op_minus.llllvm.src/test/DebugInfo/X86/dw_op_minus.ll
The file was added/llvm/trunk/test/DebugInfo/X86/dw_op_minus.mirllvm.src/test/DebugInfo/X86/dw_op_minus.mir
The file was removed/llvm/trunk/test/DebugInfo/X86/pr19307.llllvm.src/test/DebugInfo/X86/pr19307.ll
The file was added/llvm/trunk/test/DebugInfo/X86/pr19307.mirllvm.src/test/DebugInfo/X86/pr19307.mir
Revision 345918 by matze:
LLVMTargetMachine/TargetPassConfig: Simplify handling of start/stop options; NFC

- Make some TargetPassConfig methods that just check whether options have
  been set static.
- Shuffle code in LLVMTargetMachine around so addPassesToGenerateCode
  only deals with TargetPassConfig now (but not with MCContext or the
  creation of MachineModuleInfo)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetPassConfig.hllvm.src/include/llvm/CodeGen/TargetPassConfig.h
The file was modified/llvm/trunk/lib/CodeGen/LLVMTargetMachine.cppllvm.src/lib/CodeGen/LLVMTargetMachine.cpp
The file was modified/llvm/trunk/lib/CodeGen/TargetPassConfig.cppllvm.src/lib/CodeGen/TargetPassConfig.cpp
Revision 345917 by aardappel:
[WebAssembly] Added a .globaltype directive to .s output.

Summary:
Assembly output can use globals like __stack_pointer implicitly,
but has no way of indicating the type of such a global, which makes
it hard for tools processing it (such as the MC Assembler) to
reconstruct this information.

The improved assembler directives parsing (in progress in
https://reviews.llvm.org/D53842) will make use of this information.

Also deleted code for the .import_global directive which was unused.

New test case in userstack.ll

Reviewers: dschuff, sbc100

Subscribers: jgravelle-google, aheejin, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D54012
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cppllvm.src/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.hllvm.src/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cppllvm.src/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/userstack.llllvm.src/test/CodeGen/WebAssembly/userstack.ll
Revision 345916 by tlively:
[WebAssembly] General vector shift lowering

Summary: Adds support for lowering non-splat shifts.

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D53625
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cppllvm.src/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/simd-arith.llllvm.src/test/CodeGen/WebAssembly/simd-arith.ll
Revision 345915 by rsmith:
When building a header module, treat inputs as headers rather than
source files.

This suppresses certain warnings (eg, '#include_next in main source
file').
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cppclang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/test/Driver/header-module.cppclang.src/test/Driver/header-module.cpp
Revision 345914 by mkazantsev:
[NFC][LICM] Factor out instruction erasing logic

This patch factors out a function that makes all required updates
whenever an instruction gets erased.

Differential Revision: https://reviews.llvm.org/D54011
Reviewed By: apilipenko
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LICM.cppllvm.src/lib/Transforms/Scalar/LICM.cpp
Revision 345913 by tlively:
[WebAssembly] Expand inserts and extracts with variable indices

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D53964
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cppllvm.src/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.hllvm.src/lib/Target/WebAssembly/WebAssemblyISelLowering.h
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/simd.llllvm.src/test/CodeGen/WebAssembly/simd.ll
Revision 345911 by asbirlea:
[AliasSetTracker] Misc cleanup (NFCI)

Summary: Remove two redundant checks, add one in the unit test. Remove an unused method. Fix computation of TotalMayAliasSetSize.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/AliasSetTracker.hllvm.src/include/llvm/Analysis/AliasSetTracker.h
The file was modified/llvm/trunk/lib/Analysis/AliasSetTracker.cppllvm.src/lib/Analysis/AliasSetTracker.cpp
The file was modified/llvm/trunk/unittests/Analysis/AliasSetTrackerTest.cppllvm.src/unittests/Analysis/AliasSetTrackerTest.cpp
Revision 345910 by mgrang:
[gold-plugin] Fix a bunch of build warnings

Phabricator: https://reviews.llvm.org/D53997
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/gold/gold-plugin.cppllvm.src/tools/gold/gold-plugin.cpp
Revision 345909 by mgrang:
[COFF, ARM64] Implement Intrinsic.sponentry for AArch64

Summary: This patch adds Intrinsic.sponentry. This intrinsic is required to correctly support setjmp for AArch64 Windows platform.

Patch by: Yin Ma (yinma@codeaurora.org)

Reviewers: mgrang, ssijaric, eli.friedman, TomTan, mstorsjo, rnk, compnerd, efriedma

Reviewed By: efriedma

Subscribers: efriedma, javed.absar, kristof.beyls, chrib, llvm-commits

Differential Revision: https://reviews.llvm.org/D53996
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rstllvm.src/docs/LangRef.rst
The file was modified/llvm/trunk/include/llvm/CodeGen/ISDOpcodes.hllvm.src/include/llvm/CodeGen/ISDOpcodes.h
The file was modified/llvm/trunk/include/llvm/IR/Intrinsics.tdllvm.src/include/llvm/IR/Intrinsics.td
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64FastISel.cppllvm.src/lib/Target/AArch64/AArch64FastISel.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cppllvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.hllvm.src/lib/Target/AArch64/AArch64ISelLowering.h
The file was added/llvm/trunk/test/CodeGen/AArch64/sponentry.llllvm.src/test/CodeGen/AArch64/sponentry.ll
Revision 345908 by ctopper:
[DAGCombiner] Make the isTruncateOf call from visitZERO_EXTEND work for vectors. Remove FIXME.

I'm having trouble creating a test case for the ISD::TRUNCATE part of this that shows any codegen differences. But I was able to test the setcc path which is what the test changes here cover.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cppllvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/vector-pcmp.llllvm.src/test/CodeGen/X86/vector-pcmp.ll
Revision 345907 by ctopper:
[X86] Add test cases for adding vector support to isTruncateOf in DAGCombiner::visitZERO_EXTEND
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/vector-pcmp.llllvm.src/test/CodeGen/X86/vector-pcmp.ll
Revision 345906 by paquette:
[MachineOutliner][NFC] Remember when you map something illegal across MBBs

Instruction mapping in the outliner uses "illegal numbers" to signify that
something can't ever be part of an outlining candidate. This means that the
number is unique and can't be part of any repeated substring.

Because each of these is unique, we can use a single unique number to represent
a range of things we can't outline.

The outliner tries to leverage this using a flag which is set in an MBB when
the previous instruction we tried to map was "illegal". This patch improves
that logic to work across MBBs. As a bonus, this also simplifies the mapping
logic somewhat.

This also updates the machine-outliner-remarks test, which was impacted by the
order of Candidates on an OutlinedFunction changing. This order isn't
guaranteed, so I added a FIXME to fix that in a follow-up. The order of
Candidates on an OutlinedFunction isn't important, so this still is NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/MachineOutliner.cppllvm.src/lib/CodeGen/MachineOutliner.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/machine-outliner-remarks.llllvm.src/test/CodeGen/AArch64/machine-outliner-remarks.ll
Revision 345905 by dberris:
[XRay] Fix TSC and atomic custom/typed event accounting

Summary:
This is a follow-on change to D53858 which turns out to have had a TSC
accounting bug when writing out function exit records in FDR mode.

This change adds a number of tests to ensure that:

- We are handling the delta between the exit TSC and the last TSC we've
  seen.

- We are writing the custom event and typed event records as a single
  update to the buffer extents.

- We are able to catch boundary conditions when loading FDR logs.

We introduce a TSC matcher to the test helpers, which we use in the
testing/verification of the TSC accounting change.

Reviewers: mboerger

Subscribers: mgorny, hiraditya, jfb, llvm-commits

Differential Revision: https://reviews.llvm.org/D53967
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/xray/tests/CMakeLists.txtcompiler-rt.src/lib/xray/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/xray/tests/unit/fdr_controller_test.cccompiler-rt.src/lib/xray/tests/unit/fdr_controller_test.cc
The file was modified/compiler-rt/trunk/lib/xray/tests/unit/fdr_log_writer_test.cccompiler-rt.src/lib/xray/tests/unit/fdr_log_writer_test.cc
The file was modified/compiler-rt/trunk/lib/xray/tests/unit/test_helpers.hcompiler-rt.src/lib/xray/tests/unit/test_helpers.h
The file was modified/compiler-rt/trunk/lib/xray/xray_fdr_controller.hcompiler-rt.src/lib/xray/xray_fdr_controller.h
The file was modified/compiler-rt/trunk/lib/xray/xray_fdr_log_writer.hcompiler-rt.src/lib/xray/xray_fdr_log_writer.h
The file was modified/llvm/trunk/lib/XRay/FDRRecordProducer.cppllvm.src/lib/XRay/FDRRecordProducer.cpp
Revision 345904 by spatel:
[IR] remove fake binop query for fneg

We want to remove this fneg API because it would silently fail
if we add an actual fneg instruction to IR (as proposed in
D53877 ).

We have a newer 'match' API that makes checking for
these patterns simpler. It also works with vectors
that may include undef elements in constants.

If any out-of-tree users need updating, they can model
their code changes on this commit:
https://reviews.llvm.org/rL345295
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/InstrTypes.hllvm.src/include/llvm/IR/InstrTypes.h
The file was modified/llvm/trunk/lib/IR/Instructions.cppllvm.src/lib/IR/Instructions.cpp
Revision 345903 by vsapsai:
[CodeGen] Fix assertion on referencing constexpr Obj-C object with ARC.

Failed assertion is
> Assertion failed: ((ND->isUsed(false) || !isa<VarDecl>(ND) || !E->getLocation().isValid()) && "Should not use decl without marking it used!"), function EmitDeclRefLValue, file llvm-project/clang/lib/CodeGen/CGExpr.cpp, line 2437.

`EmitDeclRefLValue` mentions
> // A DeclRefExpr for a reference initialized by a constant expression can
> // appear without being odr-used. Directly emit the constant initializer.

The fix is to use the similar approach for non-references as for references. It
is achieved by trying to emit a constant before we attempt to load non-odr-used
variable as LValue.

rdar://problem/40650504

Reviewers: ahatanak, rjmccall

Reviewed By: rjmccall

Subscribers: dexonsmith, erik.pilkington, cfe-commits

Differential Revision: https://reviews.llvm.org/D53674
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGObjC.cppclang.src/lib/CodeGen/CGObjC.cpp
The file was modified/cfe/trunk/test/CodeGenObjCXX/arc-constexpr.mmclang.src/test/CodeGenObjCXX/arc-constexpr.mm
Revision 345902 by faaleen:
[AMDGPU] Handle the idot8 pattern generated by FE.

Summary: Different variants of idot8 codegen dag patterns are not generated by llvm-tablegen due to a huge
         increase in the compile time. Support the pattern that clang FE generates after reordering the
         additions in integer-dot8 source language pattern.

Author: FarhanaAleen

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D53937
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP3PInstructions.tdllvm.src/lib/Target/AMDGPU/VOP3PInstructions.td
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/idot8.llllvm.src/test/CodeGen/AMDGPU/idot8.ll
Revision 345900 by danalbert:
Fix test assumption that Linux implies glibc.

Summary:
This fixes an regression when using bionic introduced in r345173.

I need to follow up and figure out what exactly is implied by
TEST_HAS_C11_FEATURES and see what the correct configuration is for
bionic (new versions should have everything the tests care about,
versions that predate C11 certainly don't), but this gets the tests
back to the old behavior.

Reviewers: EricWF

Reviewed By: EricWF

Subscribers: mclow.lists, christof, ldionne, libcxx-commits, cfe-commits

Differential Revision: https://reviews.llvm.org/D53956
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/test/support/test_macros.hlibcxx.src/test/support/test_macros.h
Revision 345897 by vsapsai:
[CodeGen] Move `emitConstant` from ScalarExprEmitter to CodeGenFunction. NFC.

The goal is to use `emitConstant` in more places. Didn't move
`ComplexExprEmitter::emitConstant` because it returns a different type.

Reviewers: rjmccall, ahatanak

Reviewed By: rjmccall

Subscribers: dexonsmith, erik.pilkington, cfe-commits

Differential Revision: https://reviews.llvm.org/D53725
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGExpr.cppclang.src/lib/CodeGen/CGExpr.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGExprScalar.cppclang.src/lib/CodeGen/CGExprScalar.cpp
The file was modified/cfe/trunk/lib/CodeGen/CodeGenFunction.hclang.src/lib/CodeGen/CodeGenFunction.h
Revision 345896 by rupprecht:
[llvm-objcopy/strip] [NFC] Clean up tablegen opts (clang-format + reorganizing things).
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.tdllvm.src/tools/llvm-objcopy/ObjcopyOpts.td
The file was modified/llvm/trunk/tools/llvm-objcopy/StripOpts.tdllvm.src/tools/llvm-objcopy/StripOpts.td
Revision 345894 by rnk:
Silence -Wimplicit-fallthrough in gold plugin

Fatal errors are likely fatal, but in case they aren't, return instead
of printing a second warning.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/gold/gold-plugin.cppllvm.src/tools/gold/gold-plugin.cpp
Revision 345893 by Louis Dionne:
Revert "Bug 39129: Speeding up partition_point/lower_bound/upper_bound/ by using unsigned division by 2 when possible."

This reverts r345525. I'm reverting because that patch apparently caused
a regression on certain platforms (see https://reviews.llvm.org/D53994).
Since we don't fully understand the reasons for the regression, I'm
reverting until we can provide a fix we understand.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/benchmarks/algorithms.bench.cpplibcxx.src/benchmarks/algorithms.bench.cpp
The file was modified/libcxx/trunk/include/algorithmlibcxx.src/include/algorithm
The file was removed/libcxx/trunk/test/libcxx/algorithms/half_positive.pass.cpplibcxx.src/test/libcxx/algorithms/half_positive.pass.cpp
Revision 345892 by mgrang:
[COFF, ARM64] Implement llvm.addressofreturnaddress intrinsic

Reviewers: rnk, mstorsjo, efriedma, TomTan

Reviewed By: efriedma

Subscribers: javed.absar, kristof.beyls, chrib, llvm-commits

Differential Revision: https://reviews.llvm.org/D53962
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rstllvm.src/docs/LangRef.rst
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cppllvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/addr-of-ret-addr.llllvm.src/test/CodeGen/AArch64/addr-of-ret-addr.ll
Revision 345889 by phosek:
[CMake][Fuchsia] Don't restrict Linux runtimes to UNIX

This allows building Linux runtimes on any platform if the correct
sysroot is provided via CMake option.

Differential Revision: https://reviews.llvm.org/D53970
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/cmake/caches/Fuchsia-stage2.cmakeclang.src/cmake/caches/Fuchsia-stage2.cmake
Revision 345888 by aheejin:
[WebAssembly] Fix signature parsing for 'try' in AsmParser

Summary:
Like `block` or `loop`, `try` can take an optional signature which can
be omitted. This patch allows `try`'s signature to be omitted. Also
added some tests for EH instructions.

Reviewers: aardappel

Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D53873
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cppllvm.src/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
The file was modified/llvm/trunk/test/MC/WebAssembly/basic-assembly.sllvm.src/test/MC/WebAssembly/basic-assembly.s
Revision 345887 by rnk:
Enable -Wimplicit-fallthrough for clang as well as GCC

All instances of this warning should already be fixed across all LLVM
subprojects, at least on Linux.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/HandleLLVMOptions.cmakellvm.src/cmake/modules/HandleLLVMOptions.cmake
Revision 345883 by rnk:
[Hexagon] Remove unintended fallthrough from MC duplex code

I added these annotations in r345878 because I wasn't sure if the
fallthrough was intended. Krzysztof Parzyszek confirmed that they should
be breaks, so that's what this patch does.

Reviewers: kparzysz

Differential Revision: https://reviews.llvm.org/D53991
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cppllvm.src/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp
Revision 345882 by rnk:
Fix clang -Wimplicit-fallthrough warnings across llvm, NFC

This patch should not introduce any behavior changes. It consists of
mostly one of two changes:
1. Replacing fall through comments with the LLVM_FALLTHROUGH macro
2. Inserting 'break' before falling through into a case block consisting
   of only 'break'.

We were already using this warning with GCC, but its warning behaves
slightly differently. In this patch, the following differences are
relevant:
1. GCC recognizes comments that say "fall through" as annotations, clang
   doesn't
2. GCC doesn't warn on "case N: foo(); default: break;", clang does
3. GCC doesn't warn when the case contains a switch, but falls through
   the outer case.

I will enable the warning separately in a follow-up patch so that it can
be cleanly reverted if necessary.

Reviewers: alexfh, rsmith, lattner, rtrieu, EricWF, bollu

Differential Revision: https://reviews.llvm.org/D53950
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/ARCMigrate/TransRetainReleaseDealloc.cppclang.src/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
The file was modified/cfe/trunk/lib/Analysis/CFG.cppclang.src/lib/Analysis/CFG.cpp
The file was modified/cfe/trunk/lib/Analysis/FormatString.cppclang.src/lib/Analysis/FormatString.cpp
The file was modified/cfe/trunk/lib/Analysis/ReachableCode.cppclang.src/lib/Analysis/ReachableCode.cpp
The file was modified/cfe/trunk/lib/Basic/IdentifierTable.cppclang.src/lib/Basic/IdentifierTable.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/OSTargets.hclang.src/lib/Basic/Targets/OSTargets.h
The file was modified/cfe/trunk/lib/Basic/Targets/X86.hclang.src/lib/Basic/Targets/X86.h
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGExprScalar.cppclang.src/lib/CodeGen/CGExprScalar.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGObjCRuntime.cppclang.src/lib/CodeGen/CGObjCRuntime.cpp
The file was modified/cfe/trunk/lib/CodeGen/ItaniumCXXABI.cppclang.src/lib/CodeGen/ItaniumCXXABI.cpp
The file was modified/cfe/trunk/lib/CodeGen/VarBypassDetector.cppclang.src/lib/CodeGen/VarBypassDetector.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInstance.cppclang.src/lib/Frontend/CompilerInstance.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cppclang.src/lib/Frontend/CompilerInvocation.cpp
The file was modified/cfe/trunk/lib/Frontend/Rewrite/InclusionRewriter.cppclang.src/lib/Frontend/Rewrite/InclusionRewriter.cpp
The file was modified/cfe/trunk/lib/Index/CommentToXML.cppclang.src/lib/Index/CommentToXML.cpp
The file was modified/cfe/trunk/lib/Index/USRGeneration.cppclang.src/lib/Index/USRGeneration.cpp
The file was modified/cfe/trunk/lib/Lex/LiteralSupport.cppclang.src/lib/Lex/LiteralSupport.cpp
The file was modified/cfe/trunk/lib/Parse/ParseCXXInlineMethods.cppclang.src/lib/Parse/ParseCXXInlineMethods.cpp
The file was modified/cfe/trunk/lib/Parse/ParseDecl.cppclang.src/lib/Parse/ParseDecl.cpp
The file was modified/cfe/trunk/lib/Parse/ParseDeclCXX.cppclang.src/lib/Parse/ParseDeclCXX.cpp
The file was modified/cfe/trunk/lib/Parse/ParseExpr.cppclang.src/lib/Parse/ParseExpr.cpp
The file was modified/cfe/trunk/lib/Parse/ParseTentative.cppclang.src/lib/Parse/ParseTentative.cpp
The file was modified/cfe/trunk/lib/Parse/Parser.cppclang.src/lib/Parse/Parser.cpp
The file was modified/cfe/trunk/lib/Rewrite/HTMLRewrite.cppclang.src/lib/Rewrite/HTMLRewrite.cpp
The file was modified/cfe/trunk/lib/Sema/SemaTemplateInstantiate.cppclang.src/lib/Sema/SemaTemplateInstantiate.cpp
The file was modified/cfe/trunk/lib/Sema/SemaTemplateVariadic.cppclang.src/lib/Sema/SemaTemplateVariadic.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cppclang.src/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cppclang.src/lib/StaticAnalyzer/Core/BugReporter.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineC.cppclang.src/lib/StaticAnalyzer/Core/ExprEngineC.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCXX.cppclang.src/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cppclang.src/lib/StaticAnalyzer/Core/RegionStore.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/SimpleSValBuilder.cppclang.src/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
The file was modified/cfe/trunk/tools/clang-func-mapping/ClangFnMapGen.cppclang.src/tools/clang-func-mapping/ClangFnMapGen.cpp
The file was modified/clang-tools-extra/trunk/clang-tidy/google/AvoidCStyleCastsCheck.cppclang-tools-extra.src/clang-tidy/google/AvoidCStyleCastsCheck.cpp
The file was modified/lld/trunk/lib/ReaderWriter/MachO/ArchHandler_x86_64.cppN/A
The file was modified/lld/trunk/lib/ReaderWriter/MachO/MachOLinkingContext.cppN/A
The file was modified/lldb/trunk/source/Plugins/SymbolFile/PDB/PDBASTParser.cppN/A
The file was modified/lldb/trunk/tools/lldb-test/lldb-test.cppN/A
The file was modified/llvm/trunk/include/llvm/Demangle/ItaniumDemangle.hllvm.src/include/llvm/Demangle/ItaniumDemangle.h
The file was modified/llvm/trunk/lib/Analysis/InlineCost.cppllvm.src/lib/Analysis/InlineCost.cpp
The file was modified/llvm/trunk/lib/Demangle/MicrosoftDemangleNodes.cppllvm.src/lib/Demangle/MicrosoftDemangleNodes.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cppllvm.src/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/R600MachineScheduler.cppllvm.src/lib/Target/AMDGPU/R600MachineScheduler.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cppllvm.src/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/BPF/AsmParser/BPFAsmParser.cppllvm.src/lib/Target/BPF/AsmParser/BPFAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonConstExtenders.cppllvm.src/lib/Target/Hexagon/HexagonConstExtenders.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonConstPropagation.cppllvm.src/lib/Target/Hexagon/HexagonConstPropagation.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonISelDAGToDAG.cppllvm.src/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonMachineScheduler.cppllvm.src/lib/Target/Hexagon/HexagonMachineScheduler.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonVLIWPacketizer.cppllvm.src/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
The file was modified/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cppllvm.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsAsmPrinter.cppllvm.src/lib/Target/Mips/MipsAsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsSEISelDAGToDAG.cppllvm.src/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCFastISel.cppllvm.src/lib/Target/PowerPC/PPCFastISel.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cppllvm.src/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelDAGToDAG.cppllvm.src/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyFastISel.cppllvm.src/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
The file was modified/llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cppllvm.src/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
The file was modified/polly/trunk/lib/Analysis/ScopBuilder.cppN/A
The file was modified/polly/trunk/lib/Analysis/ScopDetection.cppN/A
Revision 345881 by fhahn:
[LoopInterchange] Fix unused variables in release build
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopInterchange.cppllvm.src/lib/Transforms/Scalar/LoopInterchange.cpp
Revision 345880 by sbc:
[WebAssembly] Fixup `main` signature by default

Differential Revision: https://reviews.llvm.org/D53396
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cppllvm.src/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/call.llllvm.src/test/CodeGen/WebAssembly/call.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/function-bitcasts-varargs.llllvm.src/test/CodeGen/WebAssembly/function-bitcasts-varargs.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/function-bitcasts.llllvm.src/test/CodeGen/WebAssembly/function-bitcasts.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/main-declaration.llllvm.src/test/CodeGen/WebAssembly/main-declaration.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/main-no-args.llllvm.src/test/CodeGen/WebAssembly/main-no-args.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/main-with-args.llllvm.src/test/CodeGen/WebAssembly/main-with-args.ll
Revision 345879 by rnk:
[codeview] Add breaks to fix -Wimplicit-fallthrough

This is a minor bug fix. Previously, if you tried to encode the RSP
register on the x86 platform, that might have succeeded and been encoded
incorrectly. However, no existing producer or consumer passes the x86_64
registers when targeting x86_32.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/SymbolRecordMapping.cppllvm.src/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
Revision 345878 by rnk:
Annotate possibly unintended fallthroughs in Hexagon MC code, NFC

Clang's -Wimplicit-fallthrough check fires on these switch cases. GCC
does not warn when a case body that ends in a switch falls through to a
case label of an outer switch.

It's not clear if these fall throughs are truly intended.  The Hexagon
tests pass regardless of whether these case blocks fall through or
break.

For now, I have applied the intended fallthrough annotation macro with a
FIXME comment to unblock enabling the warning. I will send a follow-up
patch that converts them to breaks to the Hexagon maintainers.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cppllvm.src/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp
Revision 345877 by fhahn:
[LoopInterchange] Remove support for inner-only reductions.

Inner-loop only reductions require additional checks to make sure they
form a load-phi-store cycle across inner and outer loop. Otherwise the
reduction value is not properly preserved. This patch disables
interchanging such loops for now, as it causes miscompiles in some
cases and it seems to apply only for a tiny amount of loops. Across the
test-suite, SPEC2000 and SPEC2006, 61 instead of 62 loops are
interchange with inner loop reduction support disabled. With
-loop-interchange-threshold=-1000, 3256 instead of 3267.

See the discussion and history of D53027 for an outline of how such legality
checks could look like.

Reviewers: efriedma, mcrosier, davide

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D53027
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopInterchange.cppllvm.src/lib/Transforms/Scalar/LoopInterchange.cpp
The file was added/llvm/trunk/test/Transforms/LoopInterchange/inner-only-reductions.llllvm.src/test/Transforms/LoopInterchange/inner-only-reductions.ll
The file was modified/llvm/trunk/test/Transforms/LoopInterchange/lcssa.llllvm.src/test/Transforms/LoopInterchange/lcssa.ll
The file was modified/llvm/trunk/test/Transforms/LoopInterchange/phi-ordering.llllvm.src/test/Transforms/LoopInterchange/phi-ordering.ll
The file was removed/llvm/trunk/test/Transforms/LoopInterchange/reductions.llllvm.src/test/Transforms/LoopInterchange/reductions.ll
Revision 345876 by rnk:
Remove unnecessary fallthrough annotation after unreachable

Clang's -Wimplicit-fallthrough implementation warns on this. I built
clang with GCC 7.3 in +asserts and -asserts mode, and GCC doesn't warn
on this in either configuration. I think it is unnecessary. I separated
it from the large mechanical patch (https://reviews.llvm.org/D53950) in
case I am wrong and it has to be reverted.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/FunctionComparator.cppllvm.src/lib/Transforms/Utils/FunctionComparator.cpp
Revision 345875 by volkan:
[GlobalISel] Fix a bug in LegalizeRuleSet::clampMaxNumElements

Summary:
This function was causing a crash when `MaxElements == 1` because
it was trying to create a single element vector type.

Reviewers: dsanders, aemerson, aditya_nandakumar

Reviewed By: dsanders

Subscribers: rovka, kristof.beyls, javed.absar, llvm-commits

Differential Revision: https://reviews.llvm.org/D53734
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/LegalizerInfo.hllvm.src/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64LegalizerInfo.cppllvm.src/lib/Target/AArch64/AArch64LegalizerInfo.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-load-fewerElts.mirllvm.src/test/CodeGen/AArch64/GlobalISel/legalize-load-fewerElts.mir
The file was removed/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-load-v4s32.mirllvm.src/test/CodeGen/AArch64/GlobalISel/legalize-load-v4s32.mir
Revision 345874 by aaronballman:
Output "rule" information in SARIF exports.

SARIF allows you to export descriptions about rules that are present in the SARIF log. Expose the help text table generated into Checkers.inc as the rule's "full description" and export all of the rules present in the analysis output. This information is useful for analysis result viewers like CodeSonar.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/SarifDiagnostics.cppclang.src/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
The file was modified/cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarifclang.src/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif
The file was added/cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarifclang.src/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif
The file was modified/cfe/trunk/test/Analysis/diagnostics/sarif-diagnostics-taint-test.cclang.src/test/Analysis/diagnostics/sarif-diagnostics-taint-test.c
The file was added/cfe/trunk/test/Analysis/diagnostics/sarif-multi-diagnostic-test.cclang.src/test/Analysis/diagnostics/sarif-multi-diagnostic-test.c
The file was modified/cfe/trunk/test/Analysis/lit.local.cfgclang.src/test/Analysis/lit.local.cfg
Revision 345873 by rnk:
Add LLVM_FALLTHROUGH annotation after switch

This silences a -Wimplicit-fallthrough warning from clang. GCC does not
appear to warn when the case body ends in a switch.

This is a somewhat surprising but intended fallthrough that I pulled out
from my mechanical patch. The code intends to handle 'Yi' and related
constraints as the 'x' constraint.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/X86.cppclang.src/lib/Basic/Targets/X86.cpp
Revision 345872 by mgrang:
Revert "[COFF, ARM64] Change setjmp for AArch64 Windows to use Intrinsic.sponentry"

This reverts commit 619111f5ccf349b635e4987ec02d15777c571495.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/ms-setjmp.cclang.src/test/CodeGen/ms-setjmp.c
Revision 345871 by Tim Northover:
Revert "Reapply Logging: make os_log buffer size an integer constant expression."

Still more dependency hell.
Change TypePath in RepositoryPath in Workspace
The file was removed/cfe/trunk/include/clang/AST/OSLog.hclang.src/include/clang/AST/OSLog.h
The file was added/cfe/trunk/include/clang/Analysis/Analyses/OSLog.hclang.src/include/clang/Analysis/Analyses/OSLog.h
The file was modified/cfe/trunk/lib/AST/CMakeLists.txtclang.src/lib/AST/CMakeLists.txt
The file was modified/cfe/trunk/lib/AST/ExprConstant.cppclang.src/lib/AST/ExprConstant.cpp
The file was removed/cfe/trunk/lib/AST/OSLog.cppclang.src/lib/AST/OSLog.cpp
The file was modified/cfe/trunk/lib/Analysis/CMakeLists.txtclang.src/lib/Analysis/CMakeLists.txt
The file was added/cfe/trunk/lib/Analysis/OSLog.cppclang.src/lib/Analysis/OSLog.cpp
The file was modified/cfe/trunk/lib/Analysis/PrintfFormatString.cppclang.src/lib/Analysis/PrintfFormatString.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins.cclang.src/test/CodeGen/builtins.c
Revision 345870 by rnk:
Use C++11 fallthrough attribute syntax when available and add a break

Summary:
This silences the two -Wimplicit-fallthrough warnings clang finds in
ItaniumDemangle.h in libc++abi.

Clang does not have a GNU attribute spelling for this attribute, so this
is necessary.

I will commit the same change to the LLVM demangler soon.

Reviewers: EricWF, ldionne

Subscribers: christof, erik.pilkington, cfe-commits

Differential Revision: https://reviews.llvm.org/D53985
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/__configlibcxx.src/include/__config
The file was modified/libcxxabi/trunk/src/demangle/ItaniumDemangle.hN/A
Revision 345869 by rksimon:
[LegalizeDAG] Add generic vector CTPOP expansion (PR32655)

This patch adds support for expanding vector CTPOP instructions and removes the x86 'bitmath' lowering which replicates the same expansion.

Differential Revision: https://reviews.llvm.org/D53258
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cppllvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 345868 by rnk:
[Hexagon] Fix MO_JumpTable const extender conversion

Previously this case fell through to unreachable, so it is clearly not
covered by any test case in LLVM. It may be dynamically unreachable, in
fact. However, if it were to run, this is what it would logically do.
The assert suggests that the intended behavior was not to allow folding
offsets from jump table indices, which makes sense.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonConstExtenders.cppllvm.src/lib/Target/Hexagon/HexagonConstExtenders.cpp
Revision 345866 by Tim Northover:
Reapply Logging: make os_log buffer size an integer constant expression.

The size of an os_log buffer is known at any stage of compilation, so making it
a constant expression means that the common idiom of declaring a buffer for it
won't result in a VLA. That allows the compiler to skip saving and restoring
the stack pointer around such buffers.

This also moves the OSLog helpers from libclangAnalysis to libclangAST
to avoid a circular dependency.
Change TypePath in RepositoryPath in Workspace
The file was added/cfe/trunk/include/clang/AST/OSLog.hclang.src/include/clang/AST/OSLog.h
The file was removed/cfe/trunk/include/clang/Analysis/Analyses/OSLog.hclang.src/include/clang/Analysis/Analyses/OSLog.h
The file was modified/cfe/trunk/lib/AST/CMakeLists.txtclang.src/lib/AST/CMakeLists.txt
The file was modified/cfe/trunk/lib/AST/ExprConstant.cppclang.src/lib/AST/ExprConstant.cpp
The file was added/cfe/trunk/lib/AST/OSLog.cppclang.src/lib/AST/OSLog.cpp
The file was modified/cfe/trunk/lib/Analysis/CMakeLists.txtclang.src/lib/Analysis/CMakeLists.txt
The file was removed/cfe/trunk/lib/Analysis/OSLog.cppclang.src/lib/Analysis/OSLog.cpp
The file was modified/cfe/trunk/lib/Analysis/PrintfFormatString.cppclang.src/lib/Analysis/PrintfFormatString.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins.cclang.src/test/CodeGen/builtins.c
Revision 345865 by adibiagio:
[llvm-mca] Add extra counters for move elimination in view RegisterFileStatistics.

This patch teaches view RegisterFileStatistics how to report events for
optimizable register moves.

For each processor register file, view RegisterFileStatistics reports the
following extra information:
- Number of optimizable register moves
- Number of register moves eliminated
- Number of zero moves (i.e. register moves that propagate a zero)
- Max Number of moves eliminated per cycle.

Differential Revision: https://reviews.llvm.org/D53976
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-1.sllvm.src/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-1.s
The file was modified/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-2.sllvm.src/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-2.s
The file was modified/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-3.sllvm.src/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-3.s
The file was modified/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-4.sllvm.src/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-4.s
The file was modified/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-5.sllvm.src/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-5.s
The file was modified/llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.cppllvm.src/tools/llvm-mca/Views/RegisterFileStatistics.cpp
The file was modified/llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.hllvm.src/tools/llvm-mca/Views/RegisterFileStatistics.h
The file was modified/llvm/trunk/tools/llvm-mca/include/HardwareUnits/RegisterFile.hllvm.src/tools/llvm-mca/include/HardwareUnits/RegisterFile.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Instruction.hllvm.src/tools/llvm-mca/include/Instruction.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Stages/DispatchStage.hllvm.src/tools/llvm-mca/include/Stages/DispatchStage.h
The file was modified/llvm/trunk/tools/llvm-mca/lib/HardwareUnits/RegisterFile.cppllvm.src/tools/llvm-mca/lib/HardwareUnits/RegisterFile.cpp
The file was modified/llvm/trunk/tools/llvm-mca/lib/Stages/DispatchStage.cppllvm.src/tools/llvm-mca/lib/Stages/DispatchStage.cpp
Revision 345864 by rnk:
[AArch64] Fix unintended fallthrough and strengthen cast

This was added in r330630. GCC's -Wimplicit-fallthrough seems to not
fire when the previous case contains a switch itself.

This fallthrough was bening because the helper function implementing the
case used dyn_cast to re-check the type of the node in question. After
fixing the fallthrough, we can strengthen the cast.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cppllvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp
Revision 345863 by mgrang:
Revert "[COFF, ARM64] Implement Intrinsic.sponentry for AArch64"

This reverts commit 585b6667b4712e3c7f32401e929855b3313b4ff2.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rstllvm.src/docs/LangRef.rst
The file was modified/llvm/trunk/include/llvm/CodeGen/ISDOpcodes.hllvm.src/include/llvm/CodeGen/ISDOpcodes.h
The file was modified/llvm/trunk/include/llvm/IR/Intrinsics.tdllvm.src/include/llvm/IR/Intrinsics.td
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64FastISel.cppllvm.src/lib/Target/AArch64/AArch64FastISel.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cppllvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.hllvm.src/lib/Target/AArch64/AArch64ISelLowering.h
The file was removed/llvm/trunk/test/CodeGen/AArch64/sponentry.llllvm.src/test/CodeGen/AArch64/sponentry.ll
Revision 345862 by rnk:
Replace two fallthrough annotations after covered switch with unreachable

Both preceding switches handle all possible enumerators, so the
fallthrough is actually unreachable. This strengthens that to an
assertion.

The first instance had a comment from 2010 indicating that fallthrough
was possible, but that was back when we had a unary operator for
offsetof. Now it is its own expression kind, so the annotation was
stale.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ExprConstant.cppclang.src/lib/AST/ExprConstant.cpp
Revision 345861 by rupprecht:
[llvm-strip] Support --keep and --strip-all-gnu from llvm-objcopy

Summary: Add --keep and --strip-all-gnu from llvm-objcopy into llvm-strip.

Reviewers: jakehehrlich, jhenderson, alexshap

Reviewed By: jhenderson, alexshap

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D53954
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/basic-keep.testllvm.src/test/tools/llvm-objcopy/basic-keep.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/strip-all-gnu.testllvm.src/test/tools/llvm-objcopy/strip-all-gnu.test
The file was modified/llvm/trunk/tools/llvm-objcopy/CopyConfig.cppllvm.src/tools/llvm-objcopy/CopyConfig.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.tdllvm.src/tools/llvm-objcopy/ObjcopyOpts.td
The file was modified/llvm/trunk/tools/llvm-objcopy/StripOpts.tdllvm.src/tools/llvm-objcopy/StripOpts.td
Revision 345859 by rupprecht:
[llvm-objcopy] Support --{enable,disable}-deterministic-archives

Summary: ar and objcopy/strip all support configuring whether archives are written deterministically (timestamps/UIDs/GIDs/etc zero'd). This has been ported to llvm-ar (the U/D modifiers) but not yet to llvm-objcopy/strip.

Reviewers: jakehehrlich, jhenderson, alexshap

Reviewed By: jhenderson

Subscribers: ruiu, mgrang, llvm-commits

Differential Revision: https://reviews.llvm.org/D53913
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-objcopy/deterministic-archive.testllvm.src/test/tools/llvm-objcopy/deterministic-archive.test
The file was modified/llvm/trunk/tools/llvm-objcopy/CopyConfig.cppllvm.src/tools/llvm-objcopy/CopyConfig.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/CopyConfig.hllvm.src/tools/llvm-objcopy/CopyConfig.h
The file was modified/llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.tdllvm.src/tools/llvm-objcopy/ObjcopyOpts.td
The file was modified/llvm/trunk/tools/llvm-objcopy/StripOpts.tdllvm.src/tools/llvm-objcopy/StripOpts.td
The file was modified/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cppllvm.src/tools/llvm-objcopy/llvm-objcopy.cpp
Revision 345858 by wizard:
Fix the issue that not recognizing single acronym with prefix as ObjC property name.

Summary: This will make clang-tidy accept property names like xyz_URL (URL is a common acronym).

Reviewers: benhamilton, hokein

Reviewed By: benhamilton

Subscribers: jfb, cfe-commits

Differential Revision: https://reviews.llvm.org/D53955
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cppclang-tools-extra.src/clang-tidy/objc/PropertyDeclarationCheck.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.mclang-tools-extra.src/test/clang-tidy/objc-property-declaration.m
Revision 345856 by rupprecht:
[llvm-objcopy] Don't apply --localize flags to common symbols

Summary:
--localize-symbol and --localize-hidden will currently localize common symbols. GNU objcopy will not localize these symbols even when explicitly requested, which seems reasonable; common symbols should always be global so they can be merged during linking.

See PR39461

Reviewers: jakehehrlich, jhenderson, alexshap, MaskRay, espindola

Reviewed By: jakehehrlich, jhenderson, alexshap, MaskRay

Subscribers: emaste, arichardson, alexshap, MaskRay, llvm-commits

Differential Revision: https://reviews.llvm.org/D53782
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/localize-hidden.testllvm.src/test/tools/llvm-objcopy/localize-hidden.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/localize.testllvm.src/test/tools/llvm-objcopy/localize.test
The file was modified/llvm/trunk/tools/llvm-objcopy/ELF/ELFObjcopy.cppllvm.src/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/ELF/Object.cppllvm.src/tools/llvm-objcopy/ELF/Object.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/ELF/Object.hllvm.src/tools/llvm-objcopy/ELF/Object.h
Revision 345855 by maskray:
[llvm-objcopy] For multiclass Eq, associate help text with --name= , not with --name

Summary:
Before:
% llvm-objcopy -help
...
--weaken-symbol=symbol  Mark <symbol> as weak
--weaken-symbol symbol  Mark <symbol> as weak

After:
% llvm-objcopy -help
...
--weaken-symbol=symbol  Mark <symbol> as weak

Reviewers: jhenderson, rupprecht, alexshap, jakehehrlich

Reviewed By: jhenderson

Subscribers: llvm-commits, kristina

Differential Revision: https://reviews.llvm.org/D53983
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.tdllvm.src/tools/llvm-objcopy/ObjcopyOpts.td
The file was modified/llvm/trunk/tools/llvm-objcopy/StripOpts.tdllvm.src/tools/llvm-objcopy/StripOpts.td
Revision 345852 by spatel:
[InstCombine] add test for ComputeNumSignBits on 2-input shuffle; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/logical-select.llllvm.src/test/Transforms/InstCombine/logical-select.ll
Revision 345851 by mcinally:
Fix whitespace in test/Assembler/fast-math-flags.ll

Differential Revision: https://reviews.llvm.org/D53981
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Assembler/fast-math-flags.llllvm.src/test/Assembler/fast-math-flags.ll
Revision 345850 by sam_parker:
[ARM] Attempt to fix ppc64be buildbot
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMCodeGenPrepare.cppllvm.src/lib/Target/ARM/ARMCodeGenPrepare.cpp
Revision 345848 by zturner:
[NativePDB] Get LLDB types from PDB function types.

This adds basic support for getting function signature types
into LLDB's type system, including into clang's AST.  There are
a few edge cases which are not correctly handled, mostly dealing
with nested classes, but this isn't specific to functions and
apply equally to variable types.  Note that no attempt has been
made yet to deal with member function types, which will happen
in subsequent patches.

Differential Revision: https://reviews.llvm.org/D53951
Change TypePath in RepositoryPath in Workspace
The file was added/lldb/trunk/lit/SymbolFile/NativePDB/Inputs/function-types-builtins.lldbinitN/A
The file was added/lldb/trunk/lit/SymbolFile/NativePDB/Inputs/function-types-calling-conv.lldbinitN/A
The file was added/lldb/trunk/lit/SymbolFile/NativePDB/Inputs/function-types-classes.lldbinitN/A
The file was added/lldb/trunk/lit/SymbolFile/NativePDB/function-types-builtins.cppN/A
The file was added/lldb/trunk/lit/SymbolFile/NativePDB/function-types-calling-conv.cppN/A
The file was added/lldb/trunk/lit/SymbolFile/NativePDB/function-types-classes.cppN/A
The file was modified/lldb/trunk/source/Plugins/SymbolFile/NativePDB/PdbUtil.cppN/A
The file was modified/lldb/trunk/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cppN/A
The file was modified/lldb/trunk/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.hN/A
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/SymbolDeserializer.hllvm.src/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h
Revision 345847 by xbolva00:
[Diagnostics] Implement -Wsizeof-pointer-div

Summary:
void test(int *arr) {
    int arr_len = sizeof(arr) / sizeof(*arr);  // warn, incorrect way to compute number of array elements
}

Enabled under -Wall (same behaviour as GCC)

Reviewers: rsmith, MTC, aaron.ballman

Reviewed By: aaron.ballman

Subscribers: MTC, thakis, jfb, cfe-commits

Differential Revision: https://reviews.llvm.org/D52949
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.tdclang.src/include/clang/Basic/DiagnosticSemaKinds.td
The file was modified/cfe/trunk/lib/Sema/SemaExpr.cppclang.src/lib/Sema/SemaExpr.cpp
The file was added/cfe/trunk/test/Sema/div-sizeof-ptr.cppclang.src/test/Sema/div-sizeof-ptr.cpp
Revision 345846 by Tim Northover:
Revert "Logging: make os_log buffer size an integer constant expression.

This also reverts a couple of follow-up commits trying to fix the
dependency issues. Latest revision added a cyclic dependency that can't
just be patched up in 5 minutes.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/CMakeLists.txtclang.src/lib/AST/CMakeLists.txt
The file was modified/cfe/trunk/lib/AST/ExprConstant.cppclang.src/lib/AST/ExprConstant.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins.cclang.src/test/CodeGen/builtins.c
Revision 345845 by maskray:
[llvm-objcopy] Use proper cases

Reviewers: jhenderson, alexshap, jakehehrlich, espindola, rupprecht

Reviewed By: jhenderson, rupprecht

Subscribers: emaste, arichardson, rupprecht, llvm-commits

Differential Revision: https://reviews.llvm.org/D53971
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-objcopy/ELF/Object.cppllvm.src/tools/llvm-objcopy/ELF/Object.cpp
Revision 345844 by kadircet:
[clang] Improve ctor initializer completions.

Summary:
Instead of providing generic "args" for member and base class
initializers, tries to fetch relevant constructors and show their signatures.

Reviewers: ilya-biryukov

Reviewed By: ilya-biryukov

Subscribers: ZaMaZaN4iK, eraman, arphaman, cfe-commits

Differential Revision: https://reviews.llvm.org/D53654
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaCodeComplete.cppclang.src/lib/Sema/SemaCodeComplete.cpp
The file was modified/cfe/trunk/test/CodeCompletion/ctor-initializer.cppclang.src/test/CodeCompletion/ctor-initializer.cpp
The file was modified/cfe/trunk/test/Index/complete-ctor-inits.cppclang.src/test/Index/complete-ctor-inits.cpp
The file was modified/cfe/trunk/test/Index/complete-cxx-inline-methods.cppclang.src/test/Index/complete-cxx-inline-methods.cpp
Revision 345842 by spatel:
[DAGCombiner] make sure we have a whole-number extract before trying to narrow a vector op (PR39511)

The test causes a crash because we were trying to extract v4f32 to v3f32, and the
narrowing factor was then 4/3 = 1 producing a bogus narrow type.

This should fix:
https://bugs.llvm.org/show_bug.cgi?id=39511
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cppllvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/vector-narrow-binop.llllvm.src/test/CodeGen/X86/vector-narrow-binop.ll
Revision 345841 by dsanders:
[MC] Implement EmitRawText in MCNullStreamer

Summary:
This adds dummy implementation of `EmitRawText` in `MCNullStreamer`.

This fixes the behavior of `AsmPrinter` with `MCNullStreamer` on targets
on which no integrated assembler is used. An attempt to emit inline asm
on such a target would previously lead to a crash, since `AsmPrinter` does not
check for `hasRawTextSupport` in `EmitInlineAsm` and calls `EmitRawText`
anyway if integrated assembler is disabled (the behavior has changed
in D2686).

Error message printed by MCStreamer:

> EmitRawText called on an MCStreamer that doesn't support it, something
> must not be fully mc'ized

Patch by Eugene Sharygin

Reviewers: dsanders, echristo

Reviewed By: dsanders

Subscribers: eraman, llvm-commits

Differential Revision: https://reviews.llvm.org/D53938
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/MCNullStreamer.cppllvm.src/lib/MC/MCNullStreamer.cpp
The file was added/llvm/trunk/test/CodeGen/Hexagon/inline-asm-filetype-null.llllvm.src/test/CodeGen/Hexagon/inline-asm-filetype-null.ll
Revision 345840 by sam_parker:
[ARM][CGP] Negative constant operand handling

While mutating instructions, we sign extended negative constant
operands for binary operators that can safely overflow. This was to
allow instructions, such as add nuw i8 %a, -2, to still be able to
perform a subtraction. However, the code to handle constants doesn't
take into consideration that instructions, such as sub nuw i8 -2, %a,
require the i8 -2 to be converted into i32 254.

This is a relatively simple fix, but I've taken the time to
reorganise the code a bit - mainly that instructions that can be
promoted are cached and splitting up the Mutate function.

Differential Revision: https://reviews.llvm.org/D53972
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMCodeGenPrepare.cppllvm.src/lib/Target/ARM/ARMCodeGenPrepare.cpp
The file was added/llvm/trunk/test/CodeGen/ARM/CGPllvm.src/test/CodeGen/ARM/CGP
The file was added/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-calls.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-calls.ll
The file was added/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-casts.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-casts.ll
The file was added/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-icmps.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-icmps.ll
The file was added/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-overflow.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-overflow.ll
The file was added/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-phis-ret.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-phis-ret.ll
The file was added/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-pointers.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-pointers.ll
The file was added/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-signed-icmps.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-signed-icmps.ll
The file was added/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-signed.llllvm.src/test/CodeGen/ARM/CGP/arm-cgp-signed.ll
The file was removed/llvm/trunk/test/CodeGen/ARM/arm-cgp-calls.llllvm.src/test/CodeGen/ARM/arm-cgp-calls.ll
The file was removed/llvm/trunk/test/CodeGen/ARM/arm-cgp-casts.llllvm.src/test/CodeGen/ARM/arm-cgp-casts.ll
The file was removed/llvm/trunk/test/CodeGen/ARM/arm-cgp-icmps.llllvm.src/test/CodeGen/ARM/arm-cgp-icmps.ll
The file was removed/llvm/trunk/test/CodeGen/ARM/arm-cgp-overflow.llllvm.src/test/CodeGen/ARM/arm-cgp-overflow.ll
The file was removed/llvm/trunk/test/CodeGen/ARM/arm-cgp-phis-ret.llllvm.src/test/CodeGen/ARM/arm-cgp-phis-ret.ll
The file was removed/llvm/trunk/test/CodeGen/ARM/arm-cgp-pointers.llllvm.src/test/CodeGen/ARM/arm-cgp-pointers.ll
The file was removed/llvm/trunk/test/CodeGen/ARM/arm-cgp-signed-icmps.llllvm.src/test/CodeGen/ARM/arm-cgp-signed-icmps.ll
The file was removed/llvm/trunk/test/CodeGen/ARM/arm-cgp-signed.llllvm.src/test/CodeGen/ARM/arm-cgp-signed.ll
Revision 345839 by erichkeane:
Multiversioning- Ensure all MV functions are emitted.

Multiverson function versions are always used (by the resolver), so ensure that
they are always emitted.

Change-Id: I5d2e0841fddf0d18918b3fb92ae76814add7ee96
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTContext.cppclang.src/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/test/CodeGen/attr-target-mv.cclang.src/test/CodeGen/attr-target-mv.c
The file was modified/cfe/trunk/test/CodeGenCXX/attr-cpuspecific.cppclang.src/test/CodeGenCXX/attr-cpuspecific.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/attr-target-mv-member-funcs.cppclang.src/test/CodeGenCXX/attr-target-mv-member-funcs.cpp
Revision 345838 by erichkeane:
CPU-Dispatch- Fix type of a member function, prevent deferrals

The member type creation for a cpu-dispatch function was not correctly
including the 'this' parameter, so ensure that the type is properly
determined. Also, disable defer in the cases of emitting the functoins,
as it can end up resulting in the wrong version being emitted.

Change-Id: I0b8fc5e0b0d1ae1a9d98fd54f35f27f6e5d5d083
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CodeGenModule.cppclang.src/lib/CodeGen/CodeGenModule.cpp
The file was added/cfe/trunk/test/CodeGenCXX/attr-cpuspecific.cppclang.src/test/CodeGenCXX/attr-cpuspecific.cpp
Revision 345837 by zturner:
[MS Demangler] Expose the Demangler AST publicly.

LLDB would like to use this in order to build a clang AST from
a mangled name.

This is NFC otherwise.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/include/llvm/Demangle/MicrosoftDemangle.hllvm.src/include/llvm/Demangle/MicrosoftDemangle.h
The file was added/llvm/trunk/include/llvm/Demangle/MicrosoftDemangleNodes.hllvm.src/include/llvm/Demangle/MicrosoftDemangleNodes.h
The file was modified/llvm/trunk/lib/Demangle/MicrosoftDemangle.cppllvm.src/lib/Demangle/MicrosoftDemangle.cpp
The file was modified/llvm/trunk/lib/Demangle/MicrosoftDemangleNodes.cppllvm.src/lib/Demangle/MicrosoftDemangleNodes.cpp
The file was removed/llvm/trunk/lib/Demangle/MicrosoftDemangleNodes.hllvm.src/lib/Demangle/MicrosoftDemangleNodes.h
Revision 345836 by rksimon:
[X86][X86FixupLEA] Rename processInstructionForSLM to processInstructionForSlowLEA (NFCI)

The function isn't SLM specific (its driven by the FeatureSlowLEA flag).

Minor tidyup prior to PR38225.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86FixupLEAs.cppllvm.src/lib/Target/X86/X86FixupLEAs.cpp
Revision 345835 by Tim Northover:
Logging: put link against libclangAnalysis rather than libLLVMAnalysis for os_log
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/CMakeLists.txtclang.src/lib/AST/CMakeLists.txt
Revision 345834 by Louis Dionne:
[libcxx] Fix usage of _C2, which is a "nasty macro" in some environments

The problem was pointed out in https://reviews.llvm.org/D48896#inline-475775.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/maplibcxx.src/include/map
The file was modified/libcxx/trunk/include/setlibcxx.src/include/set
The file was modified/libcxx/trunk/test/support/nasty_macros.hpplibcxx.src/test/support/nasty_macros.hpp
Revision 345833 by Tim Northover:
Logging: add CMake dependency so libAST can use OSLog analysis.

Should fix bots on platforms with slightly different symbol resolution
semantics.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/CMakeLists.txtclang.src/lib/AST/CMakeLists.txt
Revision 345832 by spatel:
[InstSimplify] fold icmp based on range of abs/nabs (2nd try)

This is retrying the fold from rL345717
(reverted at rL347780)
...with a fix for the miscompile
demonstrated by PR39510:
https://bugs.llvm.org/show_bug.cgi?id=39510

Original commit message:

This is a fix for PR39475:
https://bugs.llvm.org/show_bug.cgi?id=39475

We managed to get some of these patterns using computeKnownBits in https://reviews.llvm.org/D47041, but that
can't be used for nabs(). Instead, put in some range-based logic, so we can fold
both abs/nabs with icmp with a constant value.

Alive proofs:
https://rise4fun.com/Alive/21r

Name: abs_nsw_is_positive

  %cmp = icmp slt i32 %x, 0
  %negx = sub nsw i32 0, %x
  %abs = select i1 %cmp, i32 %negx, i32 %x
  %r = icmp sgt i32 %abs, -1
    =>
  %r = i1 true


Name: abs_nsw_is_not_negative

  %cmp = icmp slt i32 %x, 0
  %negx = sub nsw i32 0, %x
  %abs = select i1 %cmp, i32 %negx, i32 %x
  %r = icmp slt i32 %abs, 0
    =>
  %r = i1 false


Name: nabs_is_negative_or_0

  %cmp = icmp slt i32 %x, 0
  %negx = sub i32 0, %x
  %nabs = select i1 %cmp, i32 %x, i32 %negx
  %r = icmp slt i32 %nabs, 1
    =>
  %r = i1 true

Name: nabs_is_not_over_0

  %cmp = icmp slt i32 %x, 0
  %negx = sub i32 0, %x
  %nabs = select i1 %cmp, i32 %x, i32 %negx
  %r = icmp sgt i32 %nabs, 0
    =>
  %r = i1 false

Differential Revision: https://reviews.llvm.org/D53844
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cppllvm.src/lib/Analysis/InstructionSimplify.cpp
The file was modified/llvm/trunk/test/Transforms/InstSimplify/icmp-abs-nabs.llllvm.src/test/Transforms/InstSimplify/icmp-abs-nabs.ll
Revision 345831 by spatel:
[InstSimplify] add tests for icmp fold bug (PR39510); NFC

Verify that set intersection/subset are not confused.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstSimplify/icmp-abs-nabs.llllvm.src/test/Transforms/InstSimplify/icmp-abs-nabs.ll
Revision 345830 by abeserminji:
[mips][micromips] Fix JmpLink to TargetExternalSymbol

When matching MipsISD::JmpLink t9, TargetExternalSymbol:i32'...',
wrong JALR16_MM is selected. This patch adds missing pattern for
JmpLink, so that JAL instruction is selected.

Differential Revision: https://reviews.llvm.org/D53366
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/MicroMipsInstrInfo.tdllvm.src/lib/Target/Mips/MicroMipsInstrInfo.td
The file was added/llvm/trunk/test/CodeGen/Mips/micromips-target-external-symbol-reloc.llllvm.src/test/CodeGen/Mips/micromips-target-external-symbol-reloc.ll
Revision 345829 by d0k:
[ADT] Clean up SparseBitVector copying and make it moveable
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/SparseBitVector.hllvm.src/include/llvm/ADT/SparseBitVector.h
The file was modified/llvm/trunk/unittests/ADT/SparseBitVectorTest.cppllvm.src/unittests/ADT/SparseBitVectorTest.cpp
Revision 345828 by Tim Northover:
Logging: make os_log buffer size an integer constant expression.

The size of an os_log buffer is known at any stage of compilation, so making it
a constant expression means that the common idiom of declaring a buffer for it
won't result in a VLA. That allows the compiler to skip saving and restoring
the stack pointer around such buffers.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ExprConstant.cppclang.src/lib/AST/ExprConstant.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins.cclang.src/test/CodeGen/builtins.c
Revision 345827 by mcrosier:
[AArch64] Add support for ARMv8.4 in Saphira.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64.tdllvm.src/lib/Target/AArch64/AArch64.td
Revision 345826 by erichkeane:
CPU-Dispatch-- Fix conflict between 'generic' and 'pentium'

When a dispatch function was being emitted that had both a generic and a
pentium configuration listed, we would assert.  This is because neither
configuration has any 'features' associated with it so they were both
considered the 'default' version.  'pentium' lacks any features because
we implement it in terms of __builtin_cpu_supports (instead of Intel
proprietary checks), which is unable to decern between the two.

The fix for this is to omit the 'generic' version from the dispatcher if
both are present. This permits existing code to compile, and still will
choose the 'best' version available (since 'pentium' is technically
better than 'generic').

Change-Id: I4b69f3e0344e74cbdbb04497845d5895dd05fda0
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CodeGenModule.cppclang.src/lib/CodeGen/CodeGenModule.cpp
The file was modified/cfe/trunk/test/CodeGen/attr-cpuspecific.cclang.src/test/CodeGen/attr-cpuspecific.c
Revision 345825 by svenvh:
Allow clk_event_t comparisons

Also rename `invalid-clk-events-cl2.0.cl` to `clk_event_t.cl` and
repurpose it to include both positive and negative clk_event_t tests.

Differential Revision: https://reviews.llvm.org/D53871
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaExpr.cppclang.src/lib/Sema/SemaExpr.cpp
The file was added/cfe/trunk/test/SemaOpenCL/clk_event_t.clclang.src/test/SemaOpenCL/clk_event_t.cl
The file was removed/cfe/trunk/test/SemaOpenCL/invalid-clk-events-cl2.0.clclang.src/test/SemaOpenCL/invalid-clk-events-cl2.0.cl
Revision 345824 by rksimon:
[X86][SSE] Move 2-input limit up from getFauxShuffleMask to resolveTargetShuffleInputs (reapplied)

Reapplying an updated version of rL345395 (reverted in rL345451), now the issues noticed in PR39483 have been fixed.

This patch allows resolveTargetShuffleInputs to remove UNDEF inputs from cases where we have more than 2 inputs.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-shuffles/partial_permute.llllvm.src/test/CodeGen/X86/avx512-shuffles/partial_permute.ll
Revision 345823 by aaronballman:
Update to the 10-10 SARIF spec.

This removes the Step property (which can be calculated by consumers trivially), and updates the schema and version numbers accordingly.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/SarifDiagnostics.cppclang.src/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
The file was modified/cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarifclang.src/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif
The file was modified/cfe/trunk/test/Analysis/diagnostics/sarif-diagnostics-taint-test.cclang.src/test/Analysis/diagnostics/sarif-diagnostics-taint-test.c
Revision 345822 by mkazantsev:
[NFC] Specialize public API of ICFLoopSafetyInfo for insertions and removals
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/MustExecute.hllvm.src/include/llvm/Analysis/MustExecute.h
The file was modified/llvm/trunk/lib/Analysis/MustExecute.cppllvm.src/lib/Analysis/MustExecute.cpp
Revision 345821 by smaksimovic:
[Mips] Conditionally remove successor block

In MipsBranchExpansion::splitMBB, upon splitting
a block with two direct branches, remove the successor
of the newly created block (which inherits successors from
the original block) which is pointed to by the last
branch in the original block only if the targets of two
branches differ.

This is to fix the failing test when ran with
-verify-machineinstrs enabled.

Differential Revision: https://reviews.llvm.org/D53756
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/MipsBranchExpansion.cppllvm.src/lib/Target/Mips/MipsBranchExpansion.cpp
The file was modified/llvm/trunk/test/CodeGen/Mips/micromips-mtc-mfc.llllvm.src/test/CodeGen/Mips/micromips-mtc-mfc.ll
Revision 345820 by mkazantsev:
[NFC] Reorganize code to prepare it for more transforms
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cppllvm.src/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
Revision 345818 by jonpa:
[SystemZ::TTI]  Recognize the higher cost of scalar i1 -> fp conversion

Scalar i1 to fp conversions are done with a branch sequence, so it should
have a higher cost.

Review: Ulrich Weigand
https://reviews.llvm.org/D53924
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZTargetTransformInfo.cppllvm.src/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
The file was added/llvm/trunk/test/Analysis/CostModel/SystemZ/cmp-tofp-scalar.llllvm.src/test/Analysis/CostModel/SystemZ/cmp-tofp-scalar.ll
Revision 345817 by jonpa:
[SystemZ::TTI]  Accurate costs for i1->double vector conversions

This factors out a new method getBoolVecToIntConversionCost() containing the
code for vector sext/zext of i1, in order to reuse it for i1 to double vector
conversions.

Review: Ulrich Weigand
https://reviews.llvm.org/D53923
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZTargetTransformInfo.cppllvm.src/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZTargetTransformInfo.hllvm.src/lib/Target/SystemZ/SystemZTargetTransformInfo.h
The file was added/llvm/trunk/test/Analysis/CostModel/SystemZ/cmp-tofp.llllvm.src/test/Analysis/CostModel/SystemZ/cmp-tofp.ll
Revision 345816 by lebedevri:
[clang][CodeGen] ImplicitIntegerSignChangeSanitizer: actually ignore NOP casts.

I fully expected for that to be handled by the canonical type check,
but it clearly wasn't. Sadly, somehow it hide until now.

Reported by Eli Friedman.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGExprScalar.cppclang.src/lib/CodeGen/CGExprScalar.cpp
The file was modified/cfe/trunk/test/CodeGen/catch-implicit-integer-sign-changes-true-negatives.cclang.src/test/CodeGen/catch-implicit-integer-sign-changes-true-negatives.c
Revision 345814 by mkazantsev:
[IndVars] Smart hard uses detection

When rewriting loop exit values, IndVars considers this transform not profitable if
the loop instruction has a loop user which it believes cannot be optimized away.
In current implementation only calls that immediately use the instruction are considered
as such.

This patch extends the definition of "hard" users to any side-effecting instructions
(which usually cannot be optimized away from the loop) and also allows handling
of not just immediate users, but use chains.

Differentlai Revision: https://reviews.llvm.org/D51584
Reviewed By: etherzhhb
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cppllvm.src/lib/Transforms/Scalar/IndVarSimplify.cpp
The file was modified/llvm/trunk/test/Analysis/ScalarEvolution/pr28705.llllvm.src/test/Analysis/ScalarEvolution/pr28705.ll
The file was modified/llvm/trunk/test/Transforms/IndVarSimplify/dont-recompute.llllvm.src/test/Transforms/IndVarSimplify/dont-recompute.ll
The file was modified/llvm/trunk/test/Transforms/IndVarSimplify/lrev-existing-umin.llllvm.src/test/Transforms/IndVarSimplify/lrev-existing-umin.ll
Revision 345813 by mkazantsev:
[SCEV] Avoid redundant computations when doing AddRec merge

When we calculate a product of 2 AddRecs, we end up making quite massive
computations to deduce the operands of resulting AddRec. This process can
be optimized by computing all args of intermediate sum and then calling
`getAddExpr` once rather than calling `getAddExpr` with intermediate
result every time a new argument is computed.

Differential Revision: https://reviews.llvm.org/D53189
Reviewed By: rtereshin
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/ScalarEvolution.cppllvm.src/lib/Analysis/ScalarEvolution.cpp
The file was modified/llvm/trunk/test/Analysis/ScalarEvolution/binomial-explision.llllvm.src/test/Analysis/ScalarEvolution/binomial-explision.ll
Revision 345811 by zturner:
[CodeView] Emit the correct TypeIndex for std::nullptr_t.

The TypeIndex used by cl.exe is 0x103, which indicates a SimpleTypeMode
of NearPointer (note the absence of the bitness, normally pointers use a
mode of NearPointer32 or NearPointer64) and a SimpleTypeKind of void.
So this is basically a void*, but without a specified size, which makes
sense given how std::nullptr_t is defined.

clang-cl was actually not emitting *anything* for this. Instead, when we
encountered std::nullptr_t in a DIType, we would actually just emit a
TypeIndex of 0, which is obviously wrong.

std::nullptr_t in DWARF is represented as a DW_TAG_unspecified_type with
a name of "decltype(nullptr)", so we add that logic along with a test,
as well as an update to the dumping code so that we no longer print
void* when dumping 0x103 (which would previously treat Void/NearPointer
no differently than Void/NearPointer64).

Differential Revision: https://reviews.llvm.org/D53957
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/TypeIndex.hllvm.src/include/llvm/DebugInfo/CodeView/TypeIndex.h
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cppllvm.src/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/TypeIndex.cppllvm.src/lib/DebugInfo/CodeView/TypeIndex.cpp
The file was added/llvm/trunk/test/DebugInfo/COFF/types-std-nullptr-t.llllvm.src/test/DebugInfo/COFF/types-std-nullptr-t.ll
Revision 345810 by helijia:
[PowerPC] Support constraint 'wi' in asm
  From the gcc manual, we can see that the specific limit of wi inline asm is “FP or VSX register to hold 64-bit integers for VSX insns or NO_REGS”. The link is https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/Machine-Constraints.html#Machine-Constraints. We should accept this constraint.

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D53265
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cppllvm.src/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/PowerPC/inlineasm-vsx-reg.llllvm.src/test/CodeGen/PowerPC/inlineasm-vsx-reg.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/vec-asm-disabled.llllvm.src/test/CodeGen/PowerPC/vec-asm-disabled.ll
Revision 345809 by helijia:
[Clang][PowerPC] Support constraint 'wi' in asm
  From the gcc manual, we can see that the specific limit of wi inline asm is “FP or VSX register to hold 64-bit integers for VSX insns or NO_REGS”. The link is https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/Machine-Constraints.html#Machine-Constraints. We should accept this constraint.

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D53265
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/PPC.hclang.src/lib/Basic/Targets/PPC.h
Revision 345808 by mgrang:
[COFF, ARM64] Implement llvm.addressofreturnaddress intrinsic
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsAArch64.defclang.src/include/clang/Basic/BuiltinsAArch64.def
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/ms-intrinsics.cclang.src/test/CodeGen/ms-intrinsics.c
Revision 345807 by dergachev:
[analyzer] SARIF: Suppress version testing in a more downstream-friendly manner.

No functional change intended.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarifclang.src/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif
The file was modified/cfe/trunk/test/Analysis/diagnostics/sarif-diagnostics-taint-test.cclang.src/test/Analysis/diagnostics/sarif-diagnostics-taint-test.c
Revision 345805 by rsmith:
Fix typo in comment.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Frontend/CompilerInstance.cppclang.src/lib/Frontend/CompilerInstance.cpp
Revision 345804 by tlively:
[WebAssembly] Fix type names in truncation builtins

Summary: Use the same convention as all the other WebAssembly builtin names.

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, kristina, cfe-commits

Differential Revision: https://reviews.llvm.org/D53724
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.defclang.src/include/clang/Basic/BuiltinsWebAssembly.def
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins-wasm.cclang.src/test/CodeGen/builtins-wasm.c
Revision 345803 by rsmith:
Fix regression in behavior of clang -x c++-header -fmodule-name=XXX
-fsyntax-only.

The driver accidentally stopped passing the input filenames on to -cc1
in this mode due to confusion over what action was being requested.

This change also fixes a couple of crashes I encountered when passing
multiple files to such a -cc1 invocation.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cppclang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInstance.cppclang.src/lib/Frontend/CompilerInstance.cpp
The file was modified/cfe/trunk/lib/Lex/ModuleMap.cppclang.src/lib/Lex/ModuleMap.cpp
The file was modified/cfe/trunk/test/Driver/header-module.cppclang.src/test/Driver/header-module.cpp
The file was added/cfe/trunk/test/Modules/strict-decluse-headers.cppclang.src/test/Modules/strict-decluse-headers.cpp
Revision 345802 by dergachev:
[analyzer] pr39348: MallocChecker: Realize that sized delete isn't custom delete.

MallocChecker no longer thinks that operator delete() that accepts the size of
the object to delete (available since C++14 or under -fsized-deallocation)
is some weird user-defined operator. Instead, it handles it like normal delete.

Additionally, it exposes a regression in NewDelete-intersections.mm's
testStandardPlacementNewAfterDelete() test, where the diagnostic is delayed
from before the call of placement new into the code of placement new
in the header. This happens because the check for pass-into-function-after-free
for placement arguments is located in checkNewAllocator(), which happens after
the allocator is inlined, which is too late. Move this use-after-free check
into checkPreCall instead, where it works automagically because the guard
that prevents it from working is useless and can be removed as well.

This commit causes regressions under -analyzer-config
c++-allocator-inlining=false but this option is essentially unsupported
because the respective feature has been enabled by default quite a while ago.

Differential Revision: https://reviews.llvm.org/D53543
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cppclang.src/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
The file was modified/cfe/trunk/test/Analysis/NewDelete-custom.cppclang.src/test/Analysis/NewDelete-custom.cpp
The file was added/cfe/trunk/test/Analysis/NewDelete-sized-deallocation.cppclang.src/test/Analysis/NewDelete-sized-deallocation.cpp
Revision 345801 by matze:
X86: Consistently declare pass initializers in X86.h; NFC

This avoids declaring them twice: in X86TargetMachine.cpp and the file
implementing the pass.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/ShadowCallStack.cppllvm.src/lib/Target/X86/ShadowCallStack.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86.hllvm.src/lib/Target/X86/X86.h
The file was modified/llvm/trunk/lib/Target/X86/X86AvoidStoreForwardingBlocks.cppllvm.src/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86CallFrameOptimization.cppllvm.src/lib/Target/X86/X86CallFrameOptimization.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86CmovConversion.cppllvm.src/lib/Target/X86/X86CmovConversion.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86DomainReassignment.cppllvm.src/lib/Target/X86/X86DomainReassignment.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86FixupLEAs.cppllvm.src/lib/Target/X86/X86FixupLEAs.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86SpeculativeLoadHardening.cppllvm.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86TargetMachine.cppllvm.src/lib/Target/X86/X86TargetMachine.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86WinEHState.cppllvm.src/lib/Target/X86/X86WinEHState.cpp
Revision 345798 by dberris:
[XRay] Add CPU ID in Custom Event FDR Records

Summary:
This change cuts across compiler-rt and llvm, to increment the FDR log
version number to 4, and include the CPU ID in the custom event records.

This is a step towards allowing us to change the `llvm::xray::Trace`
object to start representing both custom and typed events in the stream
of records. Follow-on changes will allow us to change the kinds of
records we're presenting in the stream of traces, to incorporate the
data in custom/typed events.

A follow-on change will handle the typed event case, where it may not
fit within the 15-byte buffer for metadata records.

This work is part of the larger effort to enable writing analysis and
processing tools using a common in-memory representation of the events
found in traces. The work will focus on porting existing tools in LLVM
to use the common representation and informing the design of a
library/framework for expressing trace event analysis as C++ programs.

Reviewers: mboerger, eizan

Subscribers: hiraditya, mgrang, llvm-commits

Differential Revision: https://reviews.llvm.org/D53920
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/xray/xray_fdr_controller.hcompiler-rt.src/lib/xray/xray_fdr_controller.h
The file was modified/compiler-rt/trunk/lib/xray/xray_fdr_log_writer.hcompiler-rt.src/lib/xray/xray_fdr_log_writer.h
The file was modified/compiler-rt/trunk/lib/xray/xray_fdr_logging.cccompiler-rt.src/lib/xray/xray_fdr_logging.cc
The file was modified/llvm/trunk/include/llvm/XRay/FDRRecords.hllvm.src/include/llvm/XRay/FDRRecords.h
The file was modified/llvm/trunk/lib/XRay/FDRTraceWriter.cppllvm.src/lib/XRay/FDRTraceWriter.cpp
The file was modified/llvm/trunk/lib/XRay/FileHeaderReader.cppllvm.src/lib/XRay/FileHeaderReader.cpp
The file was modified/llvm/trunk/lib/XRay/RecordInitializer.cppllvm.src/lib/XRay/RecordInitializer.cpp
The file was modified/llvm/trunk/lib/XRay/RecordPrinter.cppllvm.src/lib/XRay/RecordPrinter.cpp
The file was modified/llvm/trunk/lib/XRay/Trace.cppllvm.src/lib/XRay/Trace.cpp
The file was modified/llvm/trunk/unittests/XRay/FDRProducerConsumerTest.cppllvm.src/unittests/XRay/FDRProducerConsumerTest.cpp
The file was modified/llvm/trunk/unittests/XRay/FDRRecordPrinterTest.cppllvm.src/unittests/XRay/FDRRecordPrinterTest.cpp
Revision 345797 by tlively:
[WebAssembly] Lower vselect

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D53630
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cppllvm.src/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was added/llvm/trunk/test/CodeGen/WebAssembly/simd-vselect.llllvm.src/test/CodeGen/WebAssembly/simd-vselect.ll
Revision 345796 by rnk:
Compile and test i128 math builtins for Win64

Summary:
Windows has always been LLP64, not LP64, so the macros were incorrect.
Check for _WIN64, since AArch64 sets that too.

The tests have to be fixed up in two main ways:
1. Use 'ULL' suffixes to avoid sign extension when passing hex literals
   with the sign bit set to signed 128 arguments. Clang
   -fms-compatibility makes such hex literals signed, not unsigned.
2. Disable various tests for 80-bit long double interoperation with i128
   values.

Reviewers: joerg, mstorsjo

Subscribers: javed.absar, kristof.beyls, hiraditya, aheejin, llvm-commits

Differential Revision: https://reviews.llvm.org/D53918
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/builtins/int_types.hcompiler-rt.src/lib/builtins/int_types.h
The file was modified/compiler-rt/trunk/test/builtins/CMakeLists.txtcompiler-rt.src/test/builtins/CMakeLists.txt
The file was modified/compiler-rt/trunk/test/builtins/Unit/absvti2_test.ccompiler-rt.src/test/builtins/Unit/absvti2_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/addvti3_test.ccompiler-rt.src/test/builtins/Unit/addvti3_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/ashlti3_test.ccompiler-rt.src/test/builtins/Unit/ashlti3_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/ashrti3_test.ccompiler-rt.src/test/builtins/Unit/ashrti3_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/clzti2_test.ccompiler-rt.src/test/builtins/Unit/clzti2_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/cmpti2_test.ccompiler-rt.src/test/builtins/Unit/cmpti2_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/ctzti2_test.ccompiler-rt.src/test/builtins/Unit/ctzti2_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/divti3_test.ccompiler-rt.src/test/builtins/Unit/divti3_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/ffsti2_test.ccompiler-rt.src/test/builtins/Unit/ffsti2_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/fixdfti_test.ccompiler-rt.src/test/builtins/Unit/fixdfti_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/fixsfti_test.ccompiler-rt.src/test/builtins/Unit/fixsfti_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/fixunsdfti_test.ccompiler-rt.src/test/builtins/Unit/fixunsdfti_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/fixunssfti_test.ccompiler-rt.src/test/builtins/Unit/fixunssfti_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.ccompiler-rt.src/test/builtins/Unit/fixunsxfti_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/fixxfti_test.ccompiler-rt.src/test/builtins/Unit/fixxfti_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/floattidf_test.ccompiler-rt.src/test/builtins/Unit/floattidf_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/floattisf_test.ccompiler-rt.src/test/builtins/Unit/floattisf_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/floattixf_test.ccompiler-rt.src/test/builtins/Unit/floattixf_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/floatuntidf_test.ccompiler-rt.src/test/builtins/Unit/floatuntidf_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/floatuntisf_test.ccompiler-rt.src/test/builtins/Unit/floatuntisf_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.ccompiler-rt.src/test/builtins/Unit/floatuntixf_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/lit.cfgcompiler-rt.src/test/builtins/Unit/lit.cfg
The file was modified/compiler-rt/trunk/test/builtins/Unit/lit.site.cfg.incompiler-rt.src/test/builtins/Unit/lit.site.cfg.in
The file was modified/compiler-rt/trunk/test/builtins/Unit/lshrti3_test.ccompiler-rt.src/test/builtins/Unit/lshrti3_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/modti3_test.ccompiler-rt.src/test/builtins/Unit/modti3_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/muloti4_test.ccompiler-rt.src/test/builtins/Unit/muloti4_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/multi3_test.ccompiler-rt.src/test/builtins/Unit/multi3_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/mulvti3_test.ccompiler-rt.src/test/builtins/Unit/mulvti3_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/negti2_test.ccompiler-rt.src/test/builtins/Unit/negti2_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/negvti2_test.ccompiler-rt.src/test/builtins/Unit/negvti2_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/parityti2_test.ccompiler-rt.src/test/builtins/Unit/parityti2_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/popcountti2_test.ccompiler-rt.src/test/builtins/Unit/popcountti2_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/subvti3_test.ccompiler-rt.src/test/builtins/Unit/subvti3_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/ucmpti2_test.ccompiler-rt.src/test/builtins/Unit/ucmpti2_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/udivmodti4_test.ccompiler-rt.src/test/builtins/Unit/udivmodti4_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/udivti3_test.ccompiler-rt.src/test/builtins/Unit/udivti3_test.c
The file was modified/compiler-rt/trunk/test/builtins/Unit/umodti3_test.ccompiler-rt.src/test/builtins/Unit/umodti3_test.c
Revision 345795 by tlively:
[WebAssembly] Process p2align operands for SIMD loads and stores

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D53886
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cppllvm.src/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp
The file was added/llvm/trunk/test/CodeGen/WebAssembly/simd-load-store-alignment.llllvm.src/test/CodeGen/WebAssembly/simd-load-store-alignment.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/simd-offset.llllvm.src/test/CodeGen/WebAssembly/simd-offset.ll
Revision 345794 by tlively:
[WebAssembly] Handle vector IMPLICIT_DEFs.

Summary:
Also reduce the test case for implicit defs and test it with all
register classes.

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D53855
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyRegStackify.cppllvm.src/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/implicit-def.llllvm.src/test/CodeGen/WebAssembly/implicit-def.ll
Revision 345793 by Jonas Devlieghere:
[VFS] Add support for "no_push" to VFS recursive iterators.

The "regular" file system has a useful feature that makes it possible to
stop recursing when using the recursive directory iterators. This
functionality was missing for the VFS recursive iterator and this patch
adds that.

Differential revision: https://reviews.llvm.org/D53465
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/VirtualFileSystem.hllvm.src/include/llvm/Support/VirtualFileSystem.h
The file was modified/llvm/trunk/lib/Support/VirtualFileSystem.cppllvm.src/lib/Support/VirtualFileSystem.cpp
The file was modified/llvm/trunk/unittests/Support/VirtualFileSystemTest.cppllvm.src/unittests/Support/VirtualFileSystemTest.cpp
Revision 345792 by mgrang:
[COFF, ARM64] Change setjmp for AArch64 Windows to use Intrinsic.sponentry

Summary: ARM64 setjmp expects sp on entry instead of framepointer.

Reviewers: mgrang, rnk, TomTan, compnerd, mstorsjo, efriedma

Reviewed By: mstorsjo

Subscribers: javed.absar, kristof.beyls, chrib, cfe-commits

Differential Revision: https://reviews.llvm.org/D53684
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/ms-setjmp.cclang.src/test/CodeGen/ms-setjmp.c
Revision 345791 by mgrang:
[COFF, ARM64] Implement Intrinsic.sponentry for AArch64

Summary: This patch adds Intrinsic.sponentry. This intrinsic is required to correctly support setjmp for AArch64 Windows platform.

Reviewers: mgrang, TomTan, rnk, compnerd, mstorsjo, efriedma

Reviewed By: efriedma

Subscribers: majnemer, chrib, javed.absar, kristof.beyls, llvm-commits

Differential Revision: https://reviews.llvm.org/D53673
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rstllvm.src/docs/LangRef.rst
The file was modified/llvm/trunk/include/llvm/CodeGen/ISDOpcodes.hllvm.src/include/llvm/CodeGen/ISDOpcodes.h
The file was modified/llvm/trunk/include/llvm/IR/Intrinsics.tdllvm.src/include/llvm/IR/Intrinsics.td
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64FastISel.cppllvm.src/lib/Target/AArch64/AArch64FastISel.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cppllvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.hllvm.src/lib/Target/AArch64/AArch64ISelLowering.h
The file was added/llvm/trunk/test/CodeGen/AArch64/sponentry.llllvm.src/test/CodeGen/AArch64/sponentry.ll
Revision 345790 by efriedma:
[IR] Allow increasing the alignment of dso-local globals.

I think this is the actual important property; the previous visibility
check was an approximation.

Differential Revision: https://reviews.llvm.org/D53852
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/IR/Globals.cppllvm.src/lib/IR/Globals.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/memfunc.llllvm.src/test/CodeGen/ARM/memfunc.ll
Revision 345789 by George Burgess IV:
[InlineCost] Remove a dead constant; NFC

My `grep`-fu indicates that this hasn't been used for years. It also no
longer makes much sense to have this flavor of penalty in general, since
a call to a noreturn should mean that we're in a BB that's terminated by
`unreachable`. That case is accounted for by
CallAnalyzer::allowSizeGrowth.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/InlineCost.hllvm.src/include/llvm/Analysis/InlineCost.h
Revision 345788 by phosek:
[compiler-rt] Pass CMake C and C++ flags to the custom libc++

When building the custom libc++ that's used by libFuzzer as well as
MSan and TSan tests, passthrough the C and C++ flags that were passed
to the compiler-rt CMake build. These may be needed to successfuly
compile the library on a particular platform.

Differential Revision: https://reviews.llvm.org/D53862
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/cmake/Modules/AddCompilerRT.cmakecompiler-rt.src/cmake/Modules/AddCompilerRT.cmake
Revision 345786 by evandro:
[AArch64] Sort switch cases (NFC)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cppllvm.src/lib/Target/AArch64/AArch64Subtarget.cpp
Revision 345785 by ctopper:
Revert r345165 "[X86] Bring back the MOV64r0 pseudo instruction"

Google is reporting regressions on some benchmarks.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86FastISel.cppllvm.src/lib/Target/X86/X86FastISel.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cppllvm.src/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86InstrCompiler.tdllvm.src/lib/Target/X86/X86InstrCompiler.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.cppllvm.src/lib/Target/X86/X86InstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86SpeculativeLoadHardening.cppllvm.src/lib/Target/X86/X86SpeculativeLoadHardening.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/GlobalISel/constant.llllvm.src/test/CodeGen/X86/GlobalISel/constant.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avg.llllvm.src/test/CodeGen/X86/avg.ll
The file was modified/llvm/trunk/test/CodeGen/X86/crash-O0.llllvm.src/test/CodeGen/X86/crash-O0.ll
The file was modified/llvm/trunk/test/CodeGen/X86/hoist-spill.llllvm.src/test/CodeGen/X86/hoist-spill.ll
The file was modified/llvm/trunk/test/CodeGen/X86/machine-cse.llllvm.src/test/CodeGen/X86/machine-cse.ll
The file was modified/llvm/trunk/test/CodeGen/X86/madd.llllvm.src/test/CodeGen/X86/madd.ll
The file was modified/llvm/trunk/test/CodeGen/X86/mmx-arith.llllvm.src/test/CodeGen/X86/mmx-arith.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr32284.llllvm.src/test/CodeGen/X86/pr32284.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr32340.llllvm.src/test/CodeGen/X86/pr32340.ll
The file was modified/llvm/trunk/test/CodeGen/X86/scheduler-backtracking.llllvm.src/test/CodeGen/X86/scheduler-backtracking.ll
The file was removed/llvm/trunk/test/CodeGen/X86/spill-zero-x86_64.llllvm.src/test/CodeGen/X86/spill-zero-x86_64.ll
The file was modified/llvm/trunk/test/CodeGen/X86/swifterror.llllvm.src/test/CodeGen/X86/swifterror.ll
Revision 345784 by shafik:
Revert "[ASTImporter][Structural Eq] Check for isBeingDefined"

This reverts commit r345760

because it caused an assertion in the lldb test suite. This is the log from the build bot: http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/12003/
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTStructuralEquivalence.cppclang.src/lib/AST/ASTStructuralEquivalence.cpp
The file was modified/cfe/trunk/unittests/AST/ASTImporterTest.cppclang.src/unittests/AST/ASTImporterTest.cpp
Revision 345782 by efriedma:
[ARM] Add missing pseudo-instruction for Thumb1 RSBS.

Shows up rarely for 64-bit arithmetic, more frequently for the compare
patterns added in r325323.

Differential Revision: https://reviews.llvm.org/D53848
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMBaseInstrInfo.cppllvm.src/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrThumb.tdllvm.src/lib/Target/ARM/ARMInstrThumb.td
The file was modified/llvm/trunk/test/CodeGen/ARM/and-load-combine.llllvm.src/test/CodeGen/ARM/and-load-combine.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/atomic-cmpxchg.llllvm.src/test/CodeGen/ARM/atomic-cmpxchg.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/select-imm.llllvm.src/test/CodeGen/ARM/select-imm.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/smml.llllvm.src/test/CodeGen/ARM/smml.ll
The file was modified/llvm/trunk/test/CodeGen/Thumb/branchless-cmp.llllvm.src/test/CodeGen/Thumb/branchless-cmp.ll
The file was modified/llvm/trunk/test/CodeGen/Thumb/long-setcc.llllvm.src/test/CodeGen/Thumb/long-setcc.ll
Revision 345781 by efriedma:
[AArch64] [Windows] Emit unwind tables by default.

Unwind tables are necessary even in code that doesn't support
exceptions.  The tables are used for setjmp(), and by debuggers.

Differential Revision: https://reviews.llvm.org/D53618
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/MSVC.cppclang.src/lib/Driver/ToolChains/MSVC.cpp
Revision 345780 by spatel:
revert rL345717 : [InstSimplify] fold icmp based on range of abs/nabs

This can miscompile as shown in PR39510:
https://bugs.llvm.org/show_bug.cgi?id=39510
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cppllvm.src/lib/Analysis/InstructionSimplify.cpp
The file was modified/llvm/trunk/test/Transforms/InstSimplify/icmp-abs-nabs.llllvm.src/test/Transforms/InstSimplify/icmp-abs-nabs.ll
Revision 345779 by efriedma:
[ARM64] [Windows] Implement _InterlockedExchangeAdd*_* builtins.

These apparently need to be proper builtins to handle the Windows
SDK.

Differential Revision: https://reviews.llvm.org/D53916
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsAArch64.defclang.src/include/clang/Basic/BuiltinsAArch64.def
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsARM.defclang.src/include/clang/Basic/BuiltinsARM.def
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cppclang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/lib/Headers/intrin.hclang.src/lib/Headers/intrin.h
The file was modified/cfe/trunk/test/CodeGen/ms-intrinsics.cclang.src/test/CodeGen/ms-intrinsics.c
Revision 345778 by rampitec:
Check shouldReduceLoadWidth from SimplifySetCC

SimplifySetCC could shrink a load without checking for
profitability or legality of such shink with a target.

Added checks to prevent shrinking of aligned scalar loads
in AMDGPU below dword as scalar engine does not support it.

Differential Revision: https://reviews.llvm.org/D53846
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cppllvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cppllvm.src/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/setcc-limit-load-shrink.llllvm.src/test/CodeGen/AMDGPU/setcc-limit-load-shrink.ll
Revision 345777 by spatel:
[ValueTracking] add tests for fmin/fmax; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/Analysis/ValueTrackingTest.cppllvm.src/unittests/Analysis/ValueTrackingTest.cpp
Revision 345776 by wolfgangp:
[DWARF][NFC] Refactor a function to return Optional<> instead of bool

Minor refactor of DWARFUnit::getStringOffsetSectionItem().

Differential Revision: https://reviews.llvm.org/D53948
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFUnit.hllvm.src/include/llvm/DebugInfo/DWARF/DWARFUnit.h
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFFormValue.cppllvm.src/lib/DebugInfo/DWARF/DWARFFormValue.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFUnit.cppllvm.src/lib/DebugInfo/DWARF/DWARFUnit.cpp
Revision 345774 by rsmith:
Part of PR39508: Emit an @llvm.invariant.start after storing to
__tls_guard.

__tls_guard can only ever transition from 0 to 1, and only once. This
permits LLVM to remove repeated checks for TLS initialization and
repeated initialization code in cases like:

  int g();
  thread_local int n = g();
  int a = n + n;

where we could not prove that __tls_guard was still 'true' when checking
it for the second reference to 'n' in the initializer of 'a'.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGDeclCXX.cppclang.src/lib/CodeGen/CGDeclCXX.cpp
The file was modified/cfe/trunk/lib/CodeGen/CodeGenFunction.hclang.src/lib/CodeGen/CodeGenFunction.h
The file was modified/cfe/trunk/lib/CodeGen/ItaniumCXXABI.cppclang.src/lib/CodeGen/ItaniumCXXABI.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/cxx11-thread-local.cppclang.src/test/CodeGenCXX/cxx11-thread-local.cpp
Revision 345773 by rsmith:
Remove unused internal template parameter.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/iterator.hllvm.src/include/llvm/ADT/iterator.h
Revision 345772 by dsanders:
[adt] SparseBitVector::test() should be const

Summary:
Re-worked SparseBitVector's most-recently-used-word caching (CurrElementIter)
such that SparseBitVector::test() can be made const. This came up when
attempting to test individual bits in a SparseBitVector which was a member of a
const object.

The cached iterator has no bearing on the externally visible state, it's merely
a performance optimization. Therefore it has been made mutable and
FindLowerBound() has been split into a const and non-const function
(FindLowerBound/FindLowerBoundConst) for the const/non-const
interfaces.

Reviewers: rtereshin

Reviewed By: rtereshin

Subscribers: rtereshin, dexonsmith, kristina, llvm-commits

Differential Revision: https://reviews.llvm.org/D53447
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/SparseBitVector.hllvm.src/include/llvm/ADT/SparseBitVector.h
The file was modified/llvm/trunk/unittests/ADT/SparseBitVectorTest.cppllvm.src/unittests/ADT/SparseBitVectorTest.cpp
Revision 345771 by spatel:
[InstCombine] add tests for fmin/fmax pattern matching failure; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/minmax-fp.llllvm.src/test/Transforms/InstCombine/minmax-fp.ll
Revision 345770 by scott.linder:
[SelectionDAG] Handle constant range [0,1) in lowerRangeToAssertZExt

lowerRangeToAssertZExt currently relies on something like EarlyCSE having
eliminated the constant range [0,1). At -O0 this leads to an assert.

Differential Revision: https://reviews.llvm.org/D53888
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/zext-lid.llllvm.src/test/CodeGen/AMDGPU/zext-lid.ll
Revision 345769 by dsanders:
[globalisel] Add comments indicating the operand order
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Target/GenericOpcodes.tdllvm.src/include/llvm/Target/GenericOpcodes.td
Revision 345766 by aaronballman:
Removing a reliance on system headers from this test; NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/test/clang-tidy/readability-const-return-type.cppclang-tools-extra.src/test/clang-tidy/readability-const-return-type.cpp
Revision 345765 by phosek:
[compiler-rt][Fuzzer] Use the new C++ ABI namespace CMake support

libc++ now supports customizing the ABI namespace directly from the
CMake build so we no longer need to rely on custom CFLAGS.

Differential Revision: https://reviews.llvm.org/D53939
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/CMakeLists.txtcompiler-rt.src/lib/fuzzer/CMakeLists.txt
Revision 345764 by aaronballman:
Implement the readability-const-return-type check.

This check flags function top-level const-qualified return types and suggests removing the mostly-superfluous const qualifier where possible.

Patch by Yitzhak Mandelbaum.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/readability/CMakeLists.txtclang-tools-extra.src/clang-tidy/readability/CMakeLists.txt
The file was added/clang-tools-extra/trunk/clang-tidy/readability/ConstReturnTypeCheck.cppclang-tools-extra.src/clang-tidy/readability/ConstReturnTypeCheck.cpp
The file was added/clang-tools-extra/trunk/clang-tidy/readability/ConstReturnTypeCheck.hclang-tools-extra.src/clang-tidy/readability/ConstReturnTypeCheck.h
The file was modified/clang-tools-extra/trunk/clang-tidy/readability/ReadabilityTidyModule.cppclang-tools-extra.src/clang-tidy/readability/ReadabilityTidyModule.cpp
The file was modified/clang-tools-extra/trunk/clang-tidy/utils/LexerUtils.cppclang-tools-extra.src/clang-tidy/utils/LexerUtils.cpp
The file was modified/clang-tools-extra/trunk/clang-tidy/utils/LexerUtils.hclang-tools-extra.src/clang-tidy/utils/LexerUtils.h
The file was modified/clang-tools-extra/trunk/docs/ReleaseNotes.rstclang-tools-extra.src/docs/ReleaseNotes.rst
The file was modified/clang-tools-extra/trunk/docs/clang-tidy/checks/list.rstclang-tools-extra.src/docs/clang-tidy/checks/list.rst
The file was added/clang-tools-extra/trunk/docs/clang-tidy/checks/readability-const-return-type.rstclang-tools-extra.src/docs/clang-tidy/checks/readability-const-return-type.rst
The file was added/clang-tools-extra/trunk/test/clang-tidy/readability-const-return-type.cppclang-tools-extra.src/test/clang-tidy/readability-const-return-type.cpp
Revision 345763 by scott.linder:
[AMDGPU] Remove FeatureVGPRSpilling

This feature is only relevant to shaders, and is no longer used. When disabled,
lowering of reserved registers for shaders causes a compiler crash.

Remove the feature and add a test for compilation of shaders at OptNone.

Differential Revision: https://reviews.llvm.org/D53829
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPU.tdllvm.src/lib/Target/AMDGPU/AMDGPU.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cppllvm.src/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cppllvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.hllvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cppllvm.src/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIMachineFunctionInfo.cppllvm.src/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/local-stack-slot-offset.llllvm.src/test/CodeGen/AMDGPU/local-stack-slot-offset.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/noop-shader-O0.llllvm.src/test/CodeGen/AMDGPU/noop-shader-O0.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/schedule-vs-if-nested-loop-failure.llllvm.src/test/CodeGen/AMDGPU/schedule-vs-if-nested-loop-failure.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/scratch-simple.llllvm.src/test/CodeGen/AMDGPU/scratch-simple.ll
The file was removed/llvm/trunk/test/CodeGen/AMDGPU/selected-stack-object.llllvm.src/test/CodeGen/AMDGPU/selected-stack-object.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/si-sgpr-spill.llllvm.src/test/CodeGen/AMDGPU/si-sgpr-spill.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/spill-m0.llllvm.src/test/CodeGen/AMDGPU/spill-m0.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot-compute.llllvm.src/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot-compute.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot.llllvm.src/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot.ll
Revision 345762 by Louis Dionne:
[NFC] Replace C++1y and C++1z by C++14 and C++17, respectively
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/www/cxx1y_status.htmllibcxx.src/www/cxx1y_status.html
The file was modified/libcxx/trunk/www/cxx1z_status.htmllibcxx.src/www/cxx1z_status.html
Revision 345761 by ctopper:
[SelectionDAGISel] Suppress a -Wunused-but-set-variable warning in release builds. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cppllvm.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Revision 345760 by martong:
[ASTImporter][Structural Eq] Check for isBeingDefined

Summary:
If one definition is currently being defined, we do not compare for
equality and we assume that the decls are equal.

Reviewers: a_sidorin

Subscribers: rnkovacs, dkrupp, Szelethus, cfe-commits

Differential Revision: https://reviews.llvm.org/D53697
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTStructuralEquivalence.cppclang.src/lib/AST/ASTStructuralEquivalence.cpp
The file was modified/cfe/trunk/unittests/AST/ASTImporterTest.cppclang.src/unittests/AST/ASTImporterTest.cpp
Revision 345759 by Louis Dionne:
[NFC] Mark "Splicing Maps and Sets" as done in LLVM 8.0
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/www/cxx1z_status.htmllibcxx.src/www/cxx1z_status.html
Revision 345758 by rksimon:
Fix comment typo. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Revision 345757 by spatel:
[InstCombine] regenerate test checks; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/minmax-fp.llllvm.src/test/Transforms/InstCombine/minmax-fp.ll
Revision 345756 by rksimon:
[SelectionDAG] SelectionDAGLegalize::ExpandBITREVERSE - ensure we use ShiftTy

We should be using the getShiftAmountTy value type for shift amounts.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cppllvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Revision 345754 by dsanders:
[globalisel][irtranslator] Fix test from r345743 on non-asserts builds.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/irtranslator-dilocation.llllvm.src/test/CodeGen/AArch64/GlobalISel/irtranslator-dilocation.ll
Revision 345753 by krasimir:
[clang-format] tweaked another case of lambda formatting

Summary:
This is done in order to improve cases where the lambda's body is moved too far to the right. Consider the following snippet with column limit set to 79:

```
void f() {
  leader::MakeThisCallHere(&leader_service_,
                           cq_.get(),
                           [this, liveness](const leader::ReadRecordReq& req,
                                            std::function<void()> done) {
                             logger_->HandleReadRecord(
                                 req, resp, std::move(done));
                           });

  leader::MakeAnother(&leader_service_,
                      cq_.get(),
                      [this, liveness](const leader::ReadRecordReq& req,
                                       std::function<void()> done) {
                        logger_->HandleReadRecord(
                            req, resp, std::move(done), a);
                      });
}
```

The tool favors extra indentation for the lambda body and so the code incurs extra wrapping and adjacent calls are indented to a different level. I find this behavior annoying and I'd like the tool to favor new lines and, thus, use the extra width.

The fix, reduced, brings the following formatting.

Before:

    function(1,
             [] {
               DoStuff();
               //
             },
             1);

After:

    function(
        1,
        [] {
          DoStuff();
          //
        },
        1);

Refer to the new tests in FormatTest.cpp

Contributed by oleg.smolsky!

Reviewers: djasper, klimek, krasimir

Subscribers: cfe-commits, owenpan

Tags: #clang

Differential Revision: https://reviews.llvm.org/D52676
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Format/ContinuationIndenter.cppclang.src/lib/Format/ContinuationIndenter.cpp
The file was modified/cfe/trunk/lib/Format/FormatToken.hclang.src/lib/Format/FormatToken.h
The file was modified/cfe/trunk/lib/Format/TokenAnnotator.cppclang.src/lib/Format/TokenAnnotator.cpp
The file was modified/cfe/trunk/lib/Format/UnwrappedLineFormatter.cppclang.src/lib/Format/UnwrappedLineFormatter.cpp
The file was modified/cfe/trunk/unittests/Format/FormatTest.cppclang.src/unittests/Format/FormatTest.cpp
Revision 345752 by spatel:
[InstCombine] add tests for fcmp with -0.0; NFC

From IEEE754: "Comparisons shall ignore the sign of zero (so +0 = −0)."
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/fcmp-special.llllvm.src/test/Transforms/InstCombine/fcmp-special.ll
Revision 345751 by volkan:
[InstCombine] Combine nested min/max intrinsics with constants

Reviewers: arsenm, spatel

Reviewed By: spatel

Subscribers: lebedev.ri, wdng, llvm-commits

Differential Revision: https://reviews.llvm.org/D53774
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cppllvm.src/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/maximum.llllvm.src/test/Transforms/InstCombine/maximum.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/maxnum.llllvm.src/test/Transforms/InstCombine/maxnum.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/minimum.llllvm.src/test/Transforms/InstCombine/minimum.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/minnum.llllvm.src/test/Transforms/InstCombine/minnum.ll
Revision 345750 by mattd:
[llvm-mca] Remove the verb 'assemble' from a few options in help. NFC.

* MCA does not assemble anything.
* Ran clang-format.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-mca/llvm-mca.cppllvm.src/tools/llvm-mca/llvm-mca.cpp
Revision 345749 by nha:
TableGen: Fix ASAN error

Summary:
As a bonus, this arguably improves the code by making it simpler.

gcc 8 on Ubuntu 18.10 reports the following:

==39667==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fffffff8ae0 at pc 0x555555dbfc68 bp 0x7fffffff8760 sp 0x7fffffff8750
WRITE of size 8 at 0x7fffffff8ae0 thread T0
    #0 0x555555dbfc67 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider::_Alloc_hider(char*, std::allocator<char>&&) /usr/include/c++/8/bits/basic_string.h:149
    #1 0x555555dbfc67 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) /usr/include/c++/8/bits/basic_string.h:542
    #2 0x555555dbfc67 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) /usr/include/c++/8/bits/basic_string.h:6009
    #3 0x555555dbfc67 in searchableFieldType /home/nha/amd/build/san/llvm-src/utils/TableGen/SearchableTableEmitter.cpp:168
    (...)

Address 0x7fffffff8ae0 is located in stack of thread T0 at offset 864 in frame
    #0 0x555555dbef3f in searchableFieldType /home/nha/amd/build/san/llvm-src/utils/TableGen/SearchableTableEmitter.cpp:148

Reviewers: fhahn, simon_tatham, kparzysz

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D53931
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/TableGen/SearchableTableEmitter.cppllvm.src/utils/TableGen/SearchableTableEmitter.cpp
Revision 345748 by rnk:
Re-land r345676 "[Win64] Handle passing i128 by value"

Fix the unintended switch/case fallthrough to avoid changing long double
behavior.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/TargetInfo.cppclang.src/lib/CodeGen/TargetInfo.cpp
The file was added/cfe/trunk/test/CodeGen/win64-i128.cclang.src/test/CodeGen/win64-i128.c
Revision 345747 by George Karpenkov:
[analyzer] Re-add custom OSIterator rule for RetainCountChecker

Turns out the rule is quite ubiquitous.

Revert of https://reviews.llvm.org/D53628
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/RetainSummaryManager.cppclang.src/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp
The file was modified/cfe/trunk/test/Analysis/osobject-retain-release.cppclang.src/test/Analysis/osobject-retain-release.cpp
Revision 345746 by George Karpenkov:
[analyzer] RetainCountChecker: for now, do not trust the summaries of inlined code

Trusting summaries of inlined code would require a more thorough work,
as the current approach was causing too many false positives, as the new
example in test.  The culprit lies in the fact that we currently escape
all variables written into a field (but not passed off to unknown
functions!), which can result in inconsistent behavior.

rdar://45655344

Differential Revision: https://reviews.llvm.org/D53902
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cppclang.src/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/RetainSummaryManager.cppclang.src/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp
The file was modified/cfe/trunk/test/Analysis/osobject-retain-release.cppclang.src/test/Analysis/osobject-retain-release.cpp
Revision 345745 by George Karpenkov:
[analyzer] Enable retain count checking for OSObject by defa

The FP rate seems to be good enough now.

Differential Revision: https://reviews.llvm.org/D53849
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.hclang.src/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h
The file was modified/cfe/trunk/test/Analysis/osobject-retain-release.cppclang.src/test/Analysis/osobject-retain-release.cpp
Revision 345744 by epilk:
Second half of C++17's splicing maps and sets

This commit adds a merge member function to all the map and set containers,
which splices nodes from the source container. This completes support for
P0083r3.

Differential revision: https://reviews.llvm.org/D48896
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/__hash_tablelibcxx.src/include/__hash_table
The file was modified/libcxx/trunk/include/__node_handlelibcxx.src/include/__node_handle
The file was modified/libcxx/trunk/include/__treelibcxx.src/include/__tree
The file was modified/libcxx/trunk/include/maplibcxx.src/include/map
The file was modified/libcxx/trunk/include/setlibcxx.src/include/set
The file was modified/libcxx/trunk/include/unordered_maplibcxx.src/include/unordered_map
The file was modified/libcxx/trunk/include/unordered_setlibcxx.src/include/unordered_set
The file was modified/libcxx/trunk/include/versionlibcxx.src/include/version
The file was added/libcxx/trunk/test/std/containers/associative/map/map.modifiers/merge.pass.cpplibcxx.src/test/std/containers/associative/map/map.modifiers/merge.pass.cpp
The file was added/libcxx/trunk/test/std/containers/associative/multimap/multimap.modifiers/merge.pass.cpplibcxx.src/test/std/containers/associative/multimap/multimap.modifiers/merge.pass.cpp
The file was added/libcxx/trunk/test/std/containers/associative/multiset/merge.pass.cpplibcxx.src/test/std/containers/associative/multiset/merge.pass.cpp
The file was added/libcxx/trunk/test/std/containers/associative/set/merge.pass.cpplibcxx.src/test/std/containers/associative/set/merge.pass.cpp
The file was added/libcxx/trunk/test/std/containers/unord/unord.map/unord.map.modifiers/merge.pass.cpplibcxx.src/test/std/containers/unord/unord.map/unord.map.modifiers/merge.pass.cpp
The file was added/libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/merge.pass.cpplibcxx.src/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/merge.pass.cpp
The file was added/libcxx/trunk/test/std/containers/unord/unord.multiset/merge.pass.cpplibcxx.src/test/std/containers/unord/unord.multiset/merge.pass.cpp
The file was added/libcxx/trunk/test/std/containers/unord/unord.set/merge.pass.cpplibcxx.src/test/std/containers/unord/unord.set/merge.pass.cpp
Revision 345743 by dsanders:
[globalisel][irtranslator] Verify that DILocations aren't lost in translation

Summary:
Also fix a couple bugs where DILocations are lost. EntryBuilder wasn't passing
on debug locations for PHI's, constants, GLOBAL_VALUE, etc.

Reviewers: aprantl, vsk, bogner, aditya_nandakumar, volkan, rtereshin, aemerson

Reviewed By: aemerson

Subscribers: aemerson, rovka, kristof.beyls, javed.absar, llvm-commits

Differential Revision: https://reviews.llvm.org/D53740
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cppllvm.src/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/irtranslator-dilocation.llllvm.src/test/CodeGen/AArch64/GlobalISel/irtranslator-dilocation.ll
Revision 345742 by jonastoth:
[clang-tidy] add missing '--' in RUN-line, unbreak buildbot
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/test/clang-tidy/readability-isolate-declaration.cppclang-tools-extra.src/test/clang-tidy/readability-isolate-declaration.cpp
Revision 345741 by szelethus:
[Lex] Make MacroDirective::findDirectiveAtLoc take const SourceManager

I'm currently working on including macro expansions in the Static Analyzer's
plist output, where I can only access a const SourceManager.

Differential Revision: https://reviews.llvm.org/D53940
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Lex/MacroInfo.hclang.src/include/clang/Lex/MacroInfo.h
The file was modified/cfe/trunk/lib/Lex/MacroInfo.cppclang.src/lib/Lex/MacroInfo.cpp
Revision 345740 by matze:
MachineModuleInfo: Initialize DbgInfoAvailable depending on debug_cus existing

Before this patch DbgInfoAvailable was set to true in
DwarfDebug::beginModule() or CodeViewDebug::CodeViewDebug(). This made
MIR testing weird since passes would suddenly stop dealing with debug
info just because we stopped the pipeline before the debug printers.

This patch changes the logic to initialize DbgInfoAvailable based on the
fact that debug_compile_units exist in the llvm Module. The debug
printers may then override it with false in case of debug printing being
disabled.

Differential Revision: https://reviews.llvm.org/D53885
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cppllvm.src/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cppllvm.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was modified/llvm/trunk/lib/CodeGen/MachineModuleInfo.cppllvm.src/lib/CodeGen/MachineModuleInfo.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/fast-isel-dbg.llllvm.src/test/CodeGen/AArch64/fast-isel-dbg.ll
Revision 345738 by jonastoth:
[clang-tidy] add -fexceptions to failing unit-test, unbreak buildbot
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/test/clang-tidy/readability-isolate-declaration.cppclang-tools-extra.src/test/clang-tidy/readability-isolate-declaration.cpp
Revision 345737 by jonastoth:
[clang] try-fix broken documentation builder
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/ReleaseNotes.rstclang.src/docs/ReleaseNotes.rst
Revision 345736 by jonastoth:
[clang-tools-extra] fix broken link in release notes
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/docs/ReleaseNotes.rstclang-tools-extra.src/docs/ReleaseNotes.rst
Revision 345735 by jonastoth:
[clang-tidy] new check 'readability-isolate-declaration'

Summary:
This patch introduces a new clang-tidy check that matches on all `declStmt` that declare more then one variable
and transform them into one statement per declaration if possible.

It currently only focusses on variable declarations but should be extended to cover more kinds of declarations in the future.
It is related to https://reviews.llvm.org/D27621 and does use it's extensive test-suite. Thank you to firolino for his work!

Reviewers: rsmith, aaron.ballman, alexfh, hokein, kbobyrev

Reviewed By: aaron.ballman

Subscribers: ZaMaZaN4iK, mgehre, nemanjai, kbarton, lebedev.ri, Eugene.Zelenko, mgorny, xazax.hun, cfe-commits

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D51949
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/readability/CMakeLists.txtclang-tools-extra.src/clang-tidy/readability/CMakeLists.txt
The file was added/clang-tools-extra/trunk/clang-tidy/readability/IsolateDeclarationCheck.cppclang-tools-extra.src/clang-tidy/readability/IsolateDeclarationCheck.cpp
The file was added/clang-tools-extra/trunk/clang-tidy/readability/IsolateDeclarationCheck.hclang-tools-extra.src/clang-tidy/readability/IsolateDeclarationCheck.h
The file was modified/clang-tools-extra/trunk/clang-tidy/readability/ReadabilityTidyModule.cppclang-tools-extra.src/clang-tidy/readability/ReadabilityTidyModule.cpp
The file was modified/clang-tools-extra/trunk/clang-tidy/utils/LexerUtils.cppclang-tools-extra.src/clang-tidy/utils/LexerUtils.cpp
The file was modified/clang-tools-extra/trunk/clang-tidy/utils/LexerUtils.hclang-tools-extra.src/clang-tidy/utils/LexerUtils.h
The file was modified/clang-tools-extra/trunk/docs/ReleaseNotes.rstclang-tools-extra.src/docs/ReleaseNotes.rst
The file was modified/clang-tools-extra/trunk/docs/clang-tidy/checks/list.rstclang-tools-extra.src/docs/clang-tidy/checks/list.rst
The file was added/clang-tools-extra/trunk/docs/clang-tidy/checks/readability-isolate-declaration.rstclang-tools-extra.src/docs/clang-tidy/checks/readability-isolate-declaration.rst
The file was added/clang-tools-extra/trunk/test/clang-tidy/readability-isolate-declaration-cxx17.cppclang-tools-extra.src/test/clang-tidy/readability-isolate-declaration-cxx17.cpp
The file was added/clang-tools-extra/trunk/test/clang-tidy/readability-isolate-declaration-fixing.cppclang-tools-extra.src/test/clang-tidy/readability-isolate-declaration-fixing.cpp
The file was added/clang-tools-extra/trunk/test/clang-tidy/readability-isolate-declaration.cclang-tools-extra.src/test/clang-tidy/readability-isolate-declaration.c
The file was added/clang-tools-extra/trunk/test/clang-tidy/readability-isolate-declaration.cppclang-tools-extra.src/test/clang-tidy/readability-isolate-declaration.cpp
Revision 345734 by spatel:
[InstCombine] refactor fabs+fcmp fold; NFC

Also, remove/replace/minimize/enhance the tests for this fold.
The code drops FMF, so it needs more tests and at least 1 fix.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cppllvm.src/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/fcmp.llllvm.src/test/Transforms/InstCombine/fcmp.ll
Revision 345731 by kparzysz:
[Hexagon] Make sure not to use GP-relative addressing with PIC

Make sure that -relocation-model=pic prevents use of GP-relative
addressing modes.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cppllvm.src/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.cppllvm.src/lib/Target/Hexagon/HexagonTargetObjectFile.cpp
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.hllvm.src/lib/Target/Hexagon/HexagonTargetObjectFile.h
The file was added/llvm/trunk/test/CodeGen/Hexagon/pic-sdata.llllvm.src/test/CodeGen/Hexagon/pic-sdata.ll
Revision 345730 by adibiagio:
[llvm-mca] Remove namespace prefixes made redundant by r345612. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-mca/include/Context.hllvm.src/tools/llvm-mca/include/Context.h
The file was modified/llvm/trunk/tools/llvm-mca/include/HWEventListener.hllvm.src/tools/llvm-mca/include/HWEventListener.h
The file was modified/llvm/trunk/tools/llvm-mca/include/HardwareUnits/LSUnit.hllvm.src/tools/llvm-mca/include/HardwareUnits/LSUnit.h
The file was modified/llvm/trunk/tools/llvm-mca/include/HardwareUnits/RegisterFile.hllvm.src/tools/llvm-mca/include/HardwareUnits/RegisterFile.h
The file was modified/llvm/trunk/tools/llvm-mca/include/HardwareUnits/ResourceManager.hllvm.src/tools/llvm-mca/include/HardwareUnits/ResourceManager.h
The file was modified/llvm/trunk/tools/llvm-mca/include/HardwareUnits/RetireControlUnit.hllvm.src/tools/llvm-mca/include/HardwareUnits/RetireControlUnit.h
The file was modified/llvm/trunk/tools/llvm-mca/include/HardwareUnits/Scheduler.hllvm.src/tools/llvm-mca/include/HardwareUnits/Scheduler.h
The file was modified/llvm/trunk/tools/llvm-mca/include/InstrBuilder.hllvm.src/tools/llvm-mca/include/InstrBuilder.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Instruction.hllvm.src/tools/llvm-mca/include/Instruction.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Pipeline.hllvm.src/tools/llvm-mca/include/Pipeline.h
The file was modified/llvm/trunk/tools/llvm-mca/include/SourceMgr.hllvm.src/tools/llvm-mca/include/SourceMgr.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Stages/DispatchStage.hllvm.src/tools/llvm-mca/include/Stages/DispatchStage.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Stages/ExecuteStage.hllvm.src/tools/llvm-mca/include/Stages/ExecuteStage.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Stages/FetchStage.hllvm.src/tools/llvm-mca/include/Stages/FetchStage.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Stages/InstructionTables.hllvm.src/tools/llvm-mca/include/Stages/InstructionTables.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Stages/RetireStage.hllvm.src/tools/llvm-mca/include/Stages/RetireStage.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Stages/Stage.hllvm.src/tools/llvm-mca/include/Stages/Stage.h
The file was modified/llvm/trunk/tools/llvm-mca/include/Support.hllvm.src/tools/llvm-mca/include/Support.h
Revision 345729 by kadircet:
Delete dependency on config.h

Summary:
Since llvm/Config/config.h is not available on standalone builds,
use __USE_POSIX instead of HAVE_PTHREAD_H and get rid of the include.

Reviewers: sammccall

Reviewed By: sammccall

Subscribers: lebedev.ri, krytarowski, ilya-biryukov, ioeric, jkorous, arphaman, jfb, cfe-commits

Differential Revision: https://reviews.llvm.org/D53935
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/Threading.cppclang-tools-extra.src/clangd/Threading.cpp
Revision 345728 by spatel:
[InstSimplify] fold 'fcmp nnan ult X, 0.0' when X is not negative

This is the inverted case for the transform added with D53874 / rL345725.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cppllvm.src/lib/Analysis/InstructionSimplify.cpp
The file was modified/llvm/trunk/test/Transforms/InstSimplify/floating-point-compare.llllvm.src/test/Transforms/InstSimplify/floating-point-compare.ll
Revision 345727 by spatel:
[InstCombine] add assertion that InstSimplify has folded a fabs+fcmp; NFC

The 'OLT' case was updated at rL266175, so I assume it was just an
oversight that 'UGE' was not included because that patch handled
both predicates in InstSimplify.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cppllvm.src/lib/Transforms/InstCombine/InstCombineCompares.cpp
Revision 345726 by kamil:
Update ioctl(2) operations for NetBSD 8.99.25

Eliminate dropped operations, add new operations.

Update included headers for newer need.

Add a fallback definition of nvlist_ref_t, becaue this type
is internal to libnpf and the kernel, not exported into public
headers.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inccompiler-rt.src/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cccompiler-rt.src/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_netbsd.hcompiler-rt.src/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h
Revision 345725 by spatel:
[InstSimplify] fold 'fcmp nnan oge X, 0.0' when X is not negative

This re-raises some of the open questions about how to apply and use fast-math-flags in IR from PR38086:
https://bugs.llvm.org/show_bug.cgi?id=38086
...but given the current implementation (no FMF on casts), this is likely the only way to predicate the
transform.

This is part of solving PR39475:
https://bugs.llvm.org/show_bug.cgi?id=39475

Differential Revision: https://reviews.llvm.org/D53874
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cppllvm.src/lib/Analysis/InstructionSimplify.cpp
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cppllvm.src/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modified/llvm/trunk/test/Transforms/InstSimplify/floating-point-compare.llllvm.src/test/Transforms/InstSimplify/floating-point-compare.ll
Revision 345724 by szelethus:
[analyzer][PlistMacroExpansion] Part 1.: New expand-macros flag

This is the first part of the implementation of the inclusion of macro
expansions into the plist output. It adds a new flag that adds a new
"macro_expansions" entry to each report that has PathDiagnosticPieces that were
expanded from a macro. While there's an entry for each macro expansion, both
the name of the macro and what it expands to is missing, and will be implemented
in followup patches.

Differential Revision: https://reviews.llvm.org/D52742
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.hclang.src/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/AnalyzerOptions.cppclang.src/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cppclang.src/lib/StaticAnalyzer/Core/BugReporter.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/PlistDiagnostics.cppclang.src/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was added/cfe/trunk/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plistclang.src/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plist
The file was added/cfe/trunk/test/Analysis/plist-macros-with-expansion.cppclang.src/test/Analysis/plist-macros-with-expansion.cpp
Revision 345723 by fedor.sergeev:
[LoopUnroll] allow customization for new-pass-manager version of LoopUnroll

Unlike its legacy counterpart new pass manager's LoopUnrollPass does
not provide any means to select which flavors of unroll to run
(runtime, peeling, partial), relying on global defaults.

In some cases having ability to run a restricted LoopUnroll that
does more than LoopFullUnroll is needed.

Introduced LoopUnrollOptions to select optional unroll behaviors.
Added 'unroll<peeling>' to PassRegistry mainly for the sake of testing.

Reviewers: chandlerc, tejohnson
Differential Revision: https://reviews.llvm.org/D53440
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/Scalar/LoopUnrollPass.hllvm.src/include/llvm/Transforms/Scalar/LoopUnrollPass.h
The file was modified/llvm/trunk/lib/Passes/PassBuilder.cppllvm.src/lib/Passes/PassBuilder.cpp
The file was modified/llvm/trunk/lib/Passes/PassRegistry.defllvm.src/lib/Passes/PassRegistry.def
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cppllvm.src/lib/Transforms/Scalar/LoopUnrollPass.cpp
The file was modified/llvm/trunk/test/Transforms/LoopUnroll/peel-loop.llllvm.src/test/Transforms/LoopUnroll/peel-loop.ll
The file was modified/llvm/trunk/test/Transforms/LoopUnroll/runtime-loop.llllvm.src/test/Transforms/LoopUnroll/runtime-loop.ll
Revision 345722 by spatel:
[InstSimplify] add tests for fcmp and known positive; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstSimplify/floating-point-compare.llllvm.src/test/Transforms/InstSimplify/floating-point-compare.ll
Revision 345721 by xbolva00:
[DAGCombiner] Fold 0 div/rem X to 0

Reviewers: RKSimon, spatel, javed.absar, craig.topper, t.p.northover

Reviewed By: RKSimon

Subscribers: craig.topper, llvm-commits

Differential Revision: https://reviews.llvm.org/D52504
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cppllvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/combine-sdiv.llllvm.src/test/CodeGen/X86/combine-sdiv.ll
The file was modified/llvm/trunk/test/CodeGen/X86/combine-srem.llllvm.src/test/CodeGen/X86/combine-srem.ll
The file was modified/llvm/trunk/test/CodeGen/X86/combine-udiv.llllvm.src/test/CodeGen/X86/combine-udiv.ll
The file was modified/llvm/trunk/test/CodeGen/X86/combine-urem.llllvm.src/test/CodeGen/X86/combine-urem.ll
Revision 345719 by nha:
AMDGPU: Rewrite SILowerI1Copies to always stay on SALU

Summary:
Instead of writing boolean values temporarily into 32-bit VGPRs
if they are involved in PHIs or are observed from outside a loop,
we use bitwise masking operations to combine lane masks in a way
that is consistent with wave control flow.

Move SIFixSGPRCopies to before this pass, since that pass
incorrectly attempts to move SGPR phis to VGPRs.

This should recover most of the code quality that was lost with
the bug fix in "AMDGPU: Remove PHI loop condition optimization".

There are still some relevant cases where code quality could be
improved, in particular:

- We often introduce redundant masks with EXEC. Ideally, we'd
  have a generic computeKnownBits-like analysis to determine
  whether masks are already masked by EXEC, so we can avoid this
  masking both here and when lowering uniform control flow.

- The criterion we use to determine whether a def is observed
  from outside a loop is conservative: it doesn't check whether
  (loop) branch conditions are uniform.

Change-Id: Ibabdb373a7510e426b90deef00f5e16c5d56e64b

Reviewers: arsenm, rampitec, tpr

Subscribers: kzhuravl, jvesely, wdng, mgorny, yaxunl, dstuttard, t-tye, eraman, llvm-commits

Differential Revision: https://reviews.llvm.org/D53496
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetMachine.cppllvm.src/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIFixSGPRCopies.cppllvm.src/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SILowerI1Copies.cppllvm.src/lib/Target/AMDGPU/SILowerI1Copies.cpp
The file was removed/llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.cppllvm.src/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.cpp
The file was removed/llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.hllvm.src/lib/Target/AMDGPU/Utils/AMDGPULaneDominator.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/Utils/CMakeLists.txtllvm.src/lib/Target/AMDGPU/Utils/CMakeLists.txt
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/add_i1.llllvm.src/test/CodeGen/AMDGPU/add_i1.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/i1-copy-from-loop.llllvm.src/test/CodeGen/AMDGPU/i1-copy-from-loop.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/i1-copy-phi-uniform-branch.llllvm.src/test/CodeGen/AMDGPU/i1-copy-phi-uniform-branch.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/i1-copy-phi.llllvm.src/test/CodeGen/AMDGPU/i1-copy-phi.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/inline-asm.llllvm.src/test/CodeGen/AMDGPU/inline-asm.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.div.fmas.llllvm.src/test/CodeGen/AMDGPU/llvm.amdgcn.div.fmas.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/loop_break.llllvm.src/test/CodeGen/AMDGPU/loop_break.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/multi-divergent-exit-region.llllvm.src/test/CodeGen/AMDGPU/multi-divergent-exit-region.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/multilevel-break.llllvm.src/test/CodeGen/AMDGPU/multilevel-break.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/select-opt.llllvm.src/test/CodeGen/AMDGPU/select-opt.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/sgpr-control-flow.llllvm.src/test/CodeGen/AMDGPU/sgpr-control-flow.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/si-annotate-cf.llllvm.src/test/CodeGen/AMDGPU/si-annotate-cf.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/sub_i1.llllvm.src/test/CodeGen/AMDGPU/sub_i1.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/valu-i1.llllvm.src/test/CodeGen/AMDGPU/valu-i1.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/waitcnt-looptest.llllvm.src/test/CodeGen/AMDGPU/waitcnt-looptest.ll
Revision 345718 by nha:
AMDGPU: Remove PHI loop condition optimization

Summary:
The optimization to early break out of loops if all threads are dead was
never fully implemented.

But the PHI node analyzing is actually causing a number of problems, so
remove all the extra code for it.

(This does actually regress code quality in a few places because it
ends up relying more heavily on phi's of i1, which we don't do a
great job with. However, since it fixes real bugs in the wild, we
should take this change. I have some prototype changes to improve
i1 lowering in general -- not just for control flow -- which should
help recover the code quality, I just need to make those changes
fit for general consumption. -- Nicolai)

Change-Id: I6fc6c6c8961857ac6009fcfb9f7e5e48dc23fbb1
Patch-by: Christian König <christian.koenig@amd.com>

Reviewers: arsenm, rampitec, tpr

Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, t-tye, llvm-commits

Differential Revision: https://reviews.llvm.org/D53359
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsAMDGPU.tdllvm.src/include/llvm/IR/IntrinsicsAMDGPU.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstrInfo.tdllvm.src/lib/Target/AMDGPU/AMDGPUInstrInfo.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIAnnotateControlFlow.cppllvm.src/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIFixSGPRCopies.cppllvm.src/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstructions.tdllvm.src/lib/Target/AMDGPU/SIInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SILowerControlFlow.cppllvm.src/lib/Target/AMDGPU/SILowerControlFlow.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/loop_break.llllvm.src/test/CodeGen/AMDGPU/loop_break.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/multilevel-break.llllvm.src/test/CodeGen/AMDGPU/multilevel-break.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/nested-loop-conditions.llllvm.src/test/CodeGen/AMDGPU/nested-loop-conditions.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/valu-i1.llllvm.src/test/CodeGen/AMDGPU/valu-i1.ll
Revision 345717 by spatel:
[InstSimplify] fold icmp based on range of abs/nabs

This is a fix for PR39475:
https://bugs.llvm.org/show_bug.cgi?id=39475

We managed to get some of these patterns using computeKnownBits in D47041, but that
can't be used for nabs(). Instead, put in some range-based logic, so we can fold
both abs/nabs with icmp with a constant value.

Alive proofs:
https://rise4fun.com/Alive/21r

Name: abs_nsw_is_positive
  %cmp = icmp slt i32 %x, 0
  %negx = sub nsw i32 0, %x
  %abs = select i1 %cmp, i32 %negx, i32 %x
  %r = icmp sgt i32 %abs, -1
    =>
  %r = i1 true

Name: abs_nsw_is_not_negative
  %cmp = icmp slt i32 %x, 0
  %negx = sub nsw i32 0, %x
  %abs = select i1 %cmp, i32 %negx, i32 %x
  %r = icmp slt i32 %abs, 0
    =>
  %r = i1 false

Name: nabs_is_negative_or_0
  %cmp = icmp slt i32 %x, 0
  %negx = sub i32 0, %x
  %nabs = select i1 %cmp, i32 %x, i32 %negx
  %r = icmp slt i32 %nabs, 1
    =>
  %r = i1 true

Name: nabs_is_not_over_0
  %cmp = icmp slt i32 %x, 0
  %negx = sub i32 0, %x
  %nabs = select i1 %cmp, i32 %x, i32 %negx
  %r = icmp sgt i32 %nabs, 0
    =>
  %r = i1 false

Differential Revision: https://reviews.llvm.org/D53844
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cppllvm.src/lib/Analysis/InstructionSimplify.cpp
The file was modified/llvm/trunk/test/Transforms/InstSimplify/icmp-abs-nabs.llllvm.src/test/Transforms/InstSimplify/icmp-abs-nabs.ll
Revision 345716 by sammccall:
[clang-tidy] Remove false decoupling in ClangTidyContext. NFC

These getters/setters don't encapsulate any behavior, and can only be
called by friends.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cppclang-tools-extra.src/clang-tidy/ClangTidyDiagnosticConsumer.cpp
The file was modified/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.hclang-tools-extra.src/clang-tidy/ClangTidyDiagnosticConsumer.h
The file was modified/clang-tools-extra/trunk/clang-tidy/plugin/ClangTidyPlugin.cppclang-tools-extra.src/clang-tidy/plugin/ClangTidyPlugin.cpp
Revision 345715 by kamil:
Update generate_netbsd_ioctls.awk for NetBSD 8.99.25

Add dynamic detection of header files in /usr/include.
Handle "nvlist_ref_t" needed by npf(4) ioctl(2) operations.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/utils/generate_netbsd_ioctls.awkcompiler-rt.src/utils/generate_netbsd_ioctls.awk
Revision 345714 by adibiagio:
[tblgen][PredicateExpander] Add the ability to describe more complex constraints on instruction operands.

Before this patch, class PredicateExpander only knew how to expand simple
predicates that performed checks on instruction operands.
In particular, the new scheduling predicate syntax was not rich enough to
express checks like this one:

  Foo(MI->getOperand(0).getImm()) == ExpectedVal;

Here, the immediate operand value at index zero is passed in input to function
Foo, and ExpectedVal is compared against the value returned by function Foo.

While this predicate pattern doesn't show up in any X86 model, it shows up in
other upstream targets. So, being able to support those predicates is
fundamental if we want to be able to modernize all the scheduling models
upstream.

With this patch, we allow users to specify if a register/immediate operand value
needs to be passed in input to a function as part of the predicate check. Now,
register/immediate operand checks all derive from base class CheckOperandBase.

This patch also changes where TIIPredicate definitions are expanded by the
instructon info emitter. Before, definitions were expanded in class
XXXGenInstrInfo (where XXX is a target name).
With the introduction of this new syntax, we may want to have TIIPredicates
expanded directly in XXXInstrInfo. That is because functions used by the new
operand predicates may only exist in the derived class (i.e. XXXInstrInfo).

This patch is a non functional change for the existing scheduling models.
In future, we will be able to use this richer syntax to better describe complex
scheduling predicates, and expose them to llvm-mca.

Differential Revision: https://reviews.llvm.org/D53880
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Target/TargetInstrPredicate.tdllvm.src/include/llvm/Target/TargetInstrPredicate.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.cppllvm.src/lib/Target/X86/X86InstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.hllvm.src/lib/Target/X86/X86InstrInfo.h
The file was modified/llvm/trunk/utils/TableGen/InstrInfoEmitter.cppllvm.src/utils/TableGen/InstrInfoEmitter.cpp
The file was modified/llvm/trunk/utils/TableGen/PredicateExpander.cppllvm.src/utils/TableGen/PredicateExpander.cpp
The file was modified/llvm/trunk/utils/TableGen/PredicateExpander.hllvm.src/utils/TableGen/PredicateExpander.h