SuccessChanges

Summary

  1. Force the LibcxxAndABIBuilder to use libc++abi when building libc++ (unless otherwise specified)
Revision 365252 by ericwf:
Force the LibcxxAndABIBuilder to use libc++abi when building libc++

(unless otherwise specified)
Change TypePath in RepositoryPath in Workspace
The file was modified/zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.pyzorg/buildbot/builders/LibcxxAndAbiBuilder.py

Summary

  1. [ARM] Relax constraints on operands of VQxDMLxDH instructions Summary: According to a recently updated Armv8-M spec (https://static.docs.arm.com/ddi0553/bh/DDI0553B_h_armv8m_arm.pdf) the 32-bit width versions of the following instructions: * VQDMLADH * VQDMLADHX * VQRDMLADH * VQRDMLADHX * VQDMLSDH * VQDMLSDHX * VQRDMLSDH * VQRDMLSDHX are no longer unpredictable when their output register is the same as one of the input registers. This patch updates the assembler parser and the corresponding tests and also removes @earlyclobber from the instruction constraints. Reviewers: simon_tatham, ostannard, dmgreen, SjoerdMeijer, samparker Reviewed By: simon_tatham Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64250
  2. [RISCV] Specify registers used in DWARF exception handling Defines RISCV registers for getExceptionPointerRegister() and getExceptionSelectorRegister(). Differential Revision: https://reviews.llvm.org/D63411 Patch by Edward Jones. Modified by Alex Bradbury to add CHECK lines to exception-pointer-register.ll.
  3. [ARM] Fix null pointer dereference in CodeGen/ARM/Windows/stack-protector-msvc.ll.test after D64292/r365283 CLI.CS may not be set.
  4. [UpdateTestChecks] Skip over .Lfunc_begin for RISC-V This mirrors the change made for X86 in rL336987. Without this patch, update_llc_test_checks will completely skip functions with personality functions.
  5. [AMDGPU] Use a named predicate instead of a magic number. Reviewers: arsenm Reviewed By: arsenm Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64201
  6. [X86] Allow execution domain fixing to turn SHUFPD into SHUFPS. This can help with code size on SSE targets where SHUFPD requires a 0x66 prefix and SHUFPS doesn't.
  7. [X86] Make movsd commutable to shufpd with a 0x02 immediate on pre-SSE4.1 targets. This can help avoid a copy or enable load folding. On SSE4.1 targets we can commute it to blendi instead. I had to make shufpd with a 0x02 immediate commutable as well since we expect commuting to be reversible.
  8. [RISCV] Support z and i operand modifiers Differential Revision: https://reviews.llvm.org/D57792 Patch by James Clarke.
  9. [X86] Add MOVSDrr->MOVLPDrm entry to load folding table. Add custom handling to turn UNPCKLPDrr->MOVHPDrm when load is under aligned. If the load is aligned we can turn UNPCKLPDrr into UNPCKLPDrm.
  10. [llvm-bcanalyzer] Refactor and move to libLLVMBitReader This allows us to use the analyzer from unit tests. * Refactor the interface to use proper error handling for most functions after JF's work. * Move everything into a BitstreamAnalyzer class. * Move that to Bitcode/BitcodeAnalyzer.h. Differential Revision: https://reviews.llvm.org/D64116
  11. [NFC][PowerPC] Add the test add_cmp.ll
  12. Revert "[IRBuilder] Fold consistently for or/and whether constant is LHS or RHS" This reverts commit r365260 which broke the following tests: Clang :: CodeGenCXX/cfi-mfcall.cpp Clang :: CodeGenObjC/ubsan-nullability.m LLVM :: Transforms/LoopVectorize/AArch64/pr36032.ll
  13. [ARM] Add support for MSVC stack cookie checking Heavily based on the same for AArch64, from SVN r346469. Differential Revision: https://reviews.llvm.org/D64292
  14. gn build: Merge r355546 Found by inspection; the sync script doesn't sync .ipp files.
  15. gn build: Merge r365273
  16. gn build: Sort sync script output
  17. gn build: Sort cxx_sources in libcxx build file Since these are in a custom list, `gn format` doesn't automatically sort them. Now their order matches the CMake build. No additions or deletions, this just sorts the files that are there.
  18. gn build: Merge r365258 and follow-ups r365263, r365264
  19. [X86] Make sure load isn't volatile before shrinking it in MOVDDUP isel patterns.
  20. [CodeGen] Add larger vector types for i32 and f32 Some out of tree backend require larger vector type. Since maintaining the changes out of tree is difficult due to the many manual changes needed when adding a new type we are adding it even if no backend currently use it. Differential Revision: https://reviews.llvm.org/D64141 Patch by Thomas Raoux!
  21. [X86] SimplifyDemandedVectorEltsForTargetNode - fix shadow variable warning. NFCI. Fixes cppcheck warning.
  22. [X86] LowerBuildVectorv16i8 - pull out repeated getOperand() call. NFCI.
  23. [DAGCombine] convertBuildVecZextToZext - remove duplicate getOpcode() call. NFCI.
  24. [X86] Add PS<->PD domain changing support for MOVH/MOVL load instructions and MOVH store instructions. These instructions don't have an integer domain equivalent, but we can at least change between the two floating point domains. This allows a smaller encoding on SSE targets if we can turn PD into PS.
  25. [X86] Remove patterns from MOVLPSmr and MOVHPSmr instructions. These patterns are the same as the MOVLPDmr and MOVHPDmr patterns, but with a bitcast at the end. We can just select the PD instruction and let execution domain fixing switch to PS.
  26. [X86] Add patterns to select MOVLPDrm from MOVSD+load and MOVHPD from UNPCKL+load. These narrow the load so we can only do it if the load isn't volatile. There also tests in vector-shuffle-128-v4.ll that this should support, but we don't seem to fold bitcast+load on pre-sse4.2 targets due to the slow unaligned mem 16 flag.
  27. [X86] Copy some test cases from vector-shuffle-sse1.ll to vector-shuffle-128-v4.ll and v8 where sse1 did better load folding. NFC
  28. [LFTR] Regenerate test checks; NFC
  29. [IRBuilder] Fold consistently for or/and whether constant is LHS or RHS Without this, we have the unfortunate property that tests are dependent on the order of operads passed the CreateOr and CreateAnd functions. In actual usage, we'd promptly optimize them away, but it made tests slightly more verbose than they should have been.
  30. [IRBuilder] Introduce helpers for and/or of multiple values at once We had versions of this code scattered around, so consolidate into one location. Not strictly NFC since the order of intermediate results may change in some places, but since these operations are associatives, should not change results.
  31. [RegisterCoalescer] Fix an overzealous assert Although removeCopyByCommutingDef deals with full copies, it is still possible to copy undef lanes and thus, we wouldn't have any a value number for these lanes. This fixes PR40215.
  32. RegUsageInfoCollector: Skip AMDGPU entry point functions I'm not sure if it's worth it or not to add a hook to disable the pass for an arbitrary function. This pass is taking up to 5% of compile time in tiny programs by iterating through all of the physical registers in every register class. This pass should be rewritten in terms of regunits. For now, skip doing anything for entry point functions. The vast majority of functions in the real world aren't callable, so just not running this will give the majority of the benefit.
  33. Revert "[FileCheck] Simplify numeric variable interface" This reverts commit 096600a4b073dd94a366cc8e57bff93c34ff6966.
  34. [FileCheck] Simplify numeric variable interface Summary: This patch simplifies 2 aspects in the FileCheckNumericVariable code. First, setValue() method is turned into a void function since being called only on undefined variable is an invariant and is now asserted rather than returned. This remove the assert from the callers. Second, clearValue() method is also turned into a void function since the only caller does not check its return value since it may be trying to clear the value of variable that is already cleared without this being noteworthy. Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D64231
  35. AMDGPU: Fix assert in clang test
  36. [SystemZ] Fix addcarry of usubo (PR42512) Only custom lower uaddo+addcarry or usubo+subcarry chains and leave mixtures like usubo+addcarry or uaddo+subcarry to the generic legalizer. Otherwise we run into issues because SystemZ uses different CC values for carries and borrows. Fixes https://bugs.llvm.org/show_bug.cgi?id=42512. Differential Revision: https://reviews.llvm.org/D64213
  37. AMDGPU: Make AMDGPUPerfHintAnalysis an SCC pass Add a string attribute instead of directly setting MachineFunctionInfo. This avoids trying to get the analysis in the MachineFunctionInfo in a way that doesn't work with the new pass manager. This will also avoid re-visiting the call graph for every single function.
  38. [CodeGen] Enhance `MachineInstrSpan` to allow the end of MBB to be used. Summary: - Explicitly specify the parent MBB to allow the end iterator to be used. Reviewers: aprantl, MatzeB, craig.topper, qcolombet Subscribers: arsenm, jvesely, nhaehnle, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64261
  39. [PowerPC] Fold another unused variable into assertion. NFC.
  40. [PowerPC] Fold variable into assert. NFC. Avoids a warning in Release builds.
  41. [PowerPC] Remove unused variable. NFC.
  42. [X86] Correct the size check in foldMemoryOperandCustom. The Size either needs to be 0 meaning we aren't folding a stack reload. Or the stack slot needs to be at least 16 bytes. I've also added a paranoia check ensure the RCSize is at leat 16 bytes as well. This avoids any FR32/FR64 surprises, but I think we already filtered those earlier. All of our test case have Size as either 0 or 16 and RCSize == 16. So the Size <= 16 check worked for those cases.
  43. [PowerPC] Move TOC save to prologue when profitable The indirect call sequence on PPC requires that the TOC base register be saved prior to the indirect call and restored after the call since the indirect call may branch to a global entry point in another DSO which will update the TOC base. Over the last couple of years, we have improved this to: - be able to hoist TOC saves from loops (with changes to MachineLICM) - avoid multiple saves when one dominates the other[s] However, it is still possible to have multiple TOC saves dynamically in the execution path if there is no dominance relationship between them. This patch moves the TOC save to the prologue when one of the TOC saves is in a block that post-dominates entry (i.e. it cannot be avoided) or if it is in a block that is hotter than entry. Differential revision: https://reviews.llvm.org/D63803
  44. Add lldb-mi deprecation to the release notes Differential revision: https://reviews.llvm.org/D64254
  45. Add LLDB section to the release notes
  46. [InferFunctionAttrs] add tests for 'dereferenceable' argument attribute; NFC
  47. [X86] Update SSE1 MOVLPSrm and MOVHPSrm isel patterns to ensure loads are non-volatile before folding. These patterns use 128-bit loads, but the instructions only load 64-bits. We shouldn't narrow the load if its volatile. Fixes another variant of PR42079
  48. [X86] Remove unnecessary isel pattern for MOVLPSmr. This was identical to a pattern for MOVPQI2QImr with a bitcast as an input. But we should be able to turn MOVPQI2QImr into MOVLPSmr in the execution domain fixup pass so we shouldn't need this.
  49. [NFC] A test commit to check the access permission. Removed a blank line.
  50. [docs][llvm-readobj] Add a note to options that do nothing in GNU output --section-data, --section-relocations and --section-symbols have no effect for GNU style ouput. This patch changes the docs to point this out, as it has caught me out on a couple of occasions. See also https://bugs.llvm.org/show_bug.cgi?id=42522.
  51. [FileCheck] Share variable instance among uses Summary: This patch changes expression support to use one instance of FileCheckNumericVariable per numeric variable rather than one per variable and per definition. The current system was only necessary for the last patch of the numeric expression support patch series in order to handle a line using a variable defined earlier on the same line from the input text. However this can be dealt more efficiently. Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D64229
  52. [FileCheck] Don't diagnose undef vars at parse time Summary: Diagnosing use of undefined variables takes place in parseNumericVariableUse() and printSubstitutions() for numeric variables but only takes place in printSubstitutions() for string variables. The reason for the split location of diagnostics is that parsing is not aware of the clearing of variables due to --enable-var-scope and thus use of variables cleared in this way can only be catched by printSubstitutions(). Beyond the code level inconsistency, there is also a user facing inconsistency since diagnostics look different between the two functions. While the diagnostic in printSubstitutions is more verbose, doing the diagnostic there allows to diagnose all undefined variables rather than just the first one and error out. This patch create dummy variable definition when encountering a use of undefined variable so that parsing can proceed and be diagnosed by printSubstitutions() later. Tests that were testing whether parsing fails in such case are thus modified accordingly. Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D64228
  53. [AMDGPU] Added a new metadata for multi grid sync implicit argument Patch by Christudasan Devadasan. Differential Revision: https://reviews.llvm.org/D63886
  54. ScheduleDAG: Fix incorrectly killing registers in bundles When looking for uses/defs to add kill flags, the iterator was double incremented, skipping the first instruction in the bundle. The use register in the first bundle instruction was then incorrectly killed. The "First" instruction should be the BUNDLE itself as the proper reverse iterator endpoint.
  55. [ThinLTO] Attempt to recommit r365188 after alignment fix
  56. [ARM] MVE patterns for VMVN, VORR and VBIC This add simple Q register forms of bitwise not instructions. Differential Revision: https://reviews.llvm.org/D63983
  57. gn build: Merge r365203
  58. [AMDGPU] DPP combiner: recognize identities for more opcodes Summary: This allows the DPP combiner to kick in more often. For example the exclusive scan generated by the atomic optimizer for a divergent atomic add used to look like this: v_mov_b32_e32 v3, v1 v_mov_b32_e32 v5, v1 v_mov_b32_e32 v6, v1 v_mov_b32_dpp v3, v2 wave_shr:1 row_mask:0xf bank_mask:0xf s_nop 1 v_add_u32_dpp v4, v3, v3 row_shr:1 row_mask:0xf bank_mask:0xf bound_ctrl:0 v_mov_b32_dpp v5, v3 row_shr:2 row_mask:0xf bank_mask:0xf v_mov_b32_dpp v6, v3 row_shr:3 row_mask:0xf bank_mask:0xf v_add3_u32 v3, v4, v5, v6 v_mov_b32_e32 v4, v1 s_nop 1 v_mov_b32_dpp v4, v3 row_shr:4 row_mask:0xf bank_mask:0xe v_add_u32_e32 v3, v3, v4 v_mov_b32_e32 v4, v1 s_nop 1 v_mov_b32_dpp v4, v3 row_shr:8 row_mask:0xf bank_mask:0xc v_add_u32_e32 v3, v3, v4 v_mov_b32_e32 v4, v1 s_nop 1 v_mov_b32_dpp v4, v3 row_bcast:15 row_mask:0xa bank_mask:0xf v_add_u32_e32 v3, v3, v4 s_nop 1 v_mov_b32_dpp v1, v3 row_bcast:31 row_mask:0xc bank_mask:0xf v_add_u32_e32 v1, v3, v1 v_add_u32_e32 v1, v2, v1 v_readlane_b32 s0, v1, 63 But now most of the dpp movs are combined into adds: v_mov_b32_e32 v3, v1 v_mov_b32_e32 v5, v1 s_nop 0 v_mov_b32_dpp v3, v2 wave_shr:1 row_mask:0xf bank_mask:0xf s_nop 1 v_add_u32_dpp v4, v3, v3 row_shr:1 row_mask:0xf bank_mask:0xf bound_ctrl:0 v_mov_b32_dpp v5, v3 row_shr:2 row_mask:0xf bank_mask:0xf v_mov_b32_dpp v1, v3 row_shr:3 row_mask:0xf bank_mask:0xf v_add3_u32 v1, v4, v5, v1 s_nop 1 v_add_u32_dpp v1, v1, v1 row_shr:4 row_mask:0xf bank_mask:0xe s_nop 1 v_add_u32_dpp v1, v1, v1 row_shr:8 row_mask:0xf bank_mask:0xc s_nop 1 v_add_u32_dpp v1, v1, v1 row_bcast:15 row_mask:0xa bank_mask:0xf s_nop 1 v_add_u32_dpp v1, v1, v1 row_bcast:31 row_mask:0xc bank_mask:0xf v_add_u32_e32 v1, v2, v1 v_readlane_b32 s0, v1, 63 Reviewers: arsenm, vpykhtin Subscribers: kzhuravl, nemanjai, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kbarton, MaskRay, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64207
  59. Reverted r365188 due to alignment problems on i686-android
  60. Scalable Vector IR Type with further LTO fixes Reintroduces the scalable vector IR type from D32530, after it was reverted a couple of times due to increasing chromium LTO build times. This latest incarnation removes the walk over aggregate types from the verifier entirely, in favor of rejecting scalable vectors in the isValidElementType methods in ArrayType and StructType. This removes the 70% degradation observed with the second repro tarball from PR42210. Reviewers: thakis, hans, rengolin, sdesmalen Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D64079
  61. This reverts r365061 and r365062 (test update) Revision r365061 changed a skip of debug instructions for a skip of meta instructions. This is not safe, as IMPLICIT_DEF is classed as a meta instruction.
  62. [RISCV] Support @llvm.readcyclecounter() Intrinsic On RISC-V, the `cycle` CSR holds a 64-bit count of the number of clock cycles executed by the core, from an arbitrary point in the past. This matches the intended semantics of `@llvm.readcyclecounter()`, which we currently leave to the default lowering (to the constant 0). With this patch, we will now correctly lower this intrinsic to the intended semantics, using the user-space instruction `rdcycle`. On 64-bit targets, we can directly lower to this instruction. On 32-bit targets, we need to do more, as `rdcycle` only returns the low 32-bits of the `cycle` CSR. In this case, we perform a custom lowering, based on the PowerPC lowering, using `rdcycleh` to obtain the high 32-bits of the `cycle` CSR. This custom lowering inserts a new basic block which detects overflow in the high 32-bits of the `cycle` CSR during reading (because multiple instructions are required to read). The emitted assembly matches the suggested assembly in the RISC-V specification. Differential Revision: https://reviews.llvm.org/D64125
  63. lld, llvm-dlltool, llvm-lib: Use getAsString() instead of getSpelling() for printing unknown args Since OPT_UNKNOWN args never have any values and consist only of spelling (and are never aliased), this doesn't make any difference in practice, but it's more consistent with Arg's guidance to use getAsString() for diagnostics, and it matches what clang does. Also tweak two tests to use an unknown option that contains '=' for additional coverage while here. (The new tests pass fine with the old code too though.)
  64. Revert r365198 as this accidentally commited something that should not have been added.
  65. This reverts r365061 and r365062 (test update) Revision r365061 changed a skip of debug instructions for a skip of meta instructions. This is not safe, as IMPLICIT_DEF is classed as a meta instruction.
  66. [RISCV][NFC] Replace hard-coded CSR duplication with symbolic references Reviewers: asb, lenary Reviewed By: asb, lenary Subscribers: MaskRay, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64139 Patch by James Clarke (jrtc27)
  67. Fix MSVC/cppcheck Use::Next isn't initialized warning. NFCI.
  68. [llvm-objcopy] Allow strip symtab from executables and DSOs Differential revision: https://reviews.llvm.org/D61672
  69. [FileCheck] Fix comment in parseNumericVariableUse Summary: Comment explaining the interaction between parsing of numeric variable definition and uses in parseNumericVariableUse is stale since it suggests both use and definition parsing is done in the same function. This was the case in a previous version of the patch committed as 71d3f227a790d6cf39d8c6267940e0dc0c237e11 but is no longer the case. This patch updates the comment accordingly. Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D64227
  70. [FileCheck] Factor some parsing checks out Summary: Both callers of parseNumericVariableDefinition() perform the same extra check that no character is found after the variable name. This patch factors out this check into parseNumericVariableDefinition(). Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D64226
  71. [FileCheck] Add missing final dot in comment
  72. [ThinLTO] Attempt to recommit r365040 after caching fix It's possible that some function can load and store the same variable using the same constant expression: store %Derived* @foo, %Derived** bitcast (%Base** @bar to %Derived**) %42 = load %Derived*, %Derived** bitcast (%Base** @bar to %Derived**) The bitcast expression was mistakenly cached while processing loads, and never examined later when processing store. This caused @bar to be mistakenly treated as read-only variable. See load-store-caching.ll.
  73. [docs][llvm-objcopy] Improve some wording.
  74. Make joined instances of JoinedOrSeparate flags point to the unaliased args, like all other arg types do This fixes an 8-year-old regression. r105763 made it so that aliases always refer to the unaliased option – but it missed the "joined" branch of JoinedOrSeparate flags. (r162231 then made the Args classes non-virtual, and r169344 moved them from clang to llvm.) Back then, there was no JoinedOrSeparate flag that was an alias, so it wasn't observable. Now /U in CLCompatOptions is a JoinedOrSeparate alias in clang, and warn_slash_u_filename incorrectly used the aliased arg id (using the unaliased one isn't really a regression since that warning checks if the undefined macro contains slash or backslash and only then emits the warning – and no valid use will pass "-Ufoo/bar" or similar). Also, lld has many JoinedOrSeparate aliases, and due to this bug it had to explicitly call `getUnaliasedOption()` in a bunch of places, even though that shouldn't be necessary by design. After this fix in Option, these calls really don't have an effect any more, so remove them. No intended behavior change. (I accidentally fixed this bug while working on PR29106 but then wondered why the warn_slash_u_filename broke. When I figured it out, I thought it would make sense to land this in a separate commit.) Differential Revision: https://reviews.llvm.org/D64156
  75. gn build: Merge r365179
  76. [Object/ELF.h] - Improve error reporting. The errors coming from ELF.h are usually not very useful because they are uninformative. This patch is a first step to improve the situation. I tested this patch with a run of check-llvm and found that few messages are untested. In this patch, I did not add more tests but marked all such cases with a "TODO" comment. For all tested messages I extended the error text to provide more details (see test cases changed). Differential revision: https://reviews.llvm.org/D64014
  77. lld-link: Make /debugtype: option work better - The code tried to pass false to split()'s KeepEmpty parameter, but instead passed it to MaxSplit. As a result, it would never split on commas. This has been broken since the flag was added in r278056. - The code used getSpelling() for getting the argument's values, but getSpelling() always returns the `/debugtype:` prefix without any values. So if any /debugtype: flag was passed, it always resulted in an "unknown option:" warning. (The warning code then used the correct getValue() for printing the invalid option, so the warning looked kind of like it made sense.) This regressed in r342894. Slightly improve the test coverage of this feature (but since I don't know what this flag actually does, there's still no test for the correct semantics), and add a comment to getSpelling() explaining what it does.
  78. [X86][SSE] LowerINSERT_VECTOR_ELT - early out for out of range indices Fixes OSS-Fuzz #15662
  79. [ARM] MVE VMOV immediate handling This adds some handling for VMOVimm, using the same method that NEON uses. We create VMOVIMM/VMVNIMM/VMOVFPIMM nodes based on the immediate, and select them using the now renamed ARMvmovImm/etc. There is also an extra 64bit immediate mode that I have not yet added here. Code by David Sherwood Differential Revision: https://reviews.llvm.org/D63884
  80. [ARM] MVE fp to int conversions This adds the patterns needed for fptosi and sitofp. Differential Revision: https://reviews.llvm.org/D63729
  81. [RISCV] Delete a ctor that is commented out. NFC
  82. [llvm-objcopy][NFC] Refactor output target parsing v2 Summary: Use an enum instead of string to hold the output file format in Config.InputFormat and Config.OutputFormat. It's essential to support other output file formats other than ELF. This patch originally has been submitted as D63239. However, there was an use-of-uninitialized-value bug and reverted in r364379 (git commit 4ee933c). This patch includes the fix for the bug by setting Config.InputFormat/Config.OutputFormat in parseStripOptions. Reviewers: espindola, alexshap, rupprecht, jhenderson Reviewed By: jhenderson Subscribers: emaste, arichardson, jakehehrlich, MaskRay, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64170
  83. [llvm-objcopy][test] Fix respect-umask.test after D62718/r365162
  84. Fix patch not passing test cases
  85. Temporarily stop failing test case
  86. gn build: Merge r365130.
  87. gn build: Merge r365103.
  88. gn build: Merge r365007.
  89. gn build: Merge r365091.
  90. [X86] Add custom isel to select ADD/SUB/OR/XOR/AND to their non-immediate forms under optsize when the immediate has additional users. Summary: We attempt to prevent folding immediates with multiple users under optsize. But we only do this from store nodes and X86ISD::ADD/SUB/XOR/OR/AND patterns. We don't do it for ISD::ADD/SUB/XOR/OR/AND even though we count them as users when deciding whether to fold into other nodes. This leads to situations where we block folding to a compare for example, but still fold into an AND or OR as seen in PR27202. Unfortunately touching the isel patterns in tablegen for the ISD::ADD/SUB/XOR/OR/AND opcodes will cause the patterns to be unusable for fast isel. And we don't have a way to make a fast isel only pattern. To workaround this, this patch adds custom isel in front of the isel table that will select the non-immediate forms if the immediate has additional users. This may create some issues for ANDN and NOT matching. And there's room for improvement with unsigned 32 immediates on 64-bit AND. This patch needs more thorough test cases, but I wanted to get feedback on the direction. Please send me any other test cases you've seen in the wild. I think we probably have the same issue with the immediate matching when we fold RMW from X86ISD::ADD/SUB/XOR/OR/AND. And our TEST immedaite shrinking logic. Our cost modeling for immediates that can fit in a sign extended 8-bit immediate on a 16/32/64 bit operation is completely wrong. I also wonder if we should update the ConstantHoisting cost model and block folding for "opaque" constants. But of course constants can still be created by DAG combine and lowering optimizations. Fixes PR27202 Reviewers: spatel, RKSimon, andreadb Reviewed By: RKSimon Subscribers: jsji, hiraditya, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59909
  91. [llvm-objcopy] Change handling of output file permissions Summary: Address bug [[ https://bugs.llvm.org/show_bug.cgi?id=42082 | 42082 ]] where files were always outputted with 0775 permissions. Now, the output file is given either 0666 or 0777 if the object is executable. Reviewers: espindola, alexshap, rupprecht, jhenderson, jakehehrlich, MaskRay Reviewed By: rupprecht, jhenderson, jakehehrlich, MaskRay Subscribers: emaste, arichardson, jakehehrlich, MaskRay, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62718
  92. [mips] Refactor expandSeq and expandSeqI methods. NFC
  93. [NFC] Make some ObjectFormatType switches covering Summary: This patch removes the `default` case from some switches on `llvm::Triple::ObjectFormatType`, and cases for the missing enumerators are then added. For `UnknownObjectFormat`, the action (`llvm_unreachable`) for the `default` case is kept. For the other unhandled cases, `report_fatal_error` is used instead. Reviewers: sfertile, jasonliu, daltenty Reviewed By: sfertile Subscribers: wuzish, aheejin, jsji, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D63767
  94. [docs] [tools] Fix see also links Summary: Changes "see also" links to use :manpage: instead of plain text or the form `name|name` which was being treated literally, not as a link. Reviewers: jhenderson, rupprecht Reviewed By: jhenderson Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63970
  95. [DAGCombiner] Don't combine (addcarry (uaddo X, Y), 0, Carry) -> (addcarry X, Y, Carry) if the Carry comes from the uaddo. Summary: The uaddo won't be removed and the addcarry will still be dependent on the uaddo. So we'll just increase the use count of X and Y and potentially require a COPY. Reviewers: spatel, RKSimon, deadalnix Reviewed By: RKSimon Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64190
  96. [AMDGPU] Custom lower INSERT_SUBVECTOR v3, v4, v5, v8 Summary: Since the changes to introduce vec3 and vec5, INSERT_VECTOR for these sizes has been marked "expand", which made LegalizeDAG lower it to loads and stores via a stack slot. The code got optimized a bit later, but the now-unused stack slot was never deleted. This commit avoids that problem by custom lowering INSERT_SUBVECTOR into an EXTRACT_VECTOR_ELT and INSERT_VECTOR_ELT for each element in the subvector to insert. V2: Addressed review comments re test. Differential Revision: https://reviews.llvm.org/D63160 Change-Id: I9e3c13e36f68cfa3431bb9814851cc1f673274e1
  97. [InstCombine] allow undef elements when forming splat from chain of insertelements We allow forming a splat (broadcast) shuffle, but we were conservatively limiting that to cases where all elements of the vector are specified. It should be safe from a codegen perspective to allow undefined lanes of the vector because the expansion of a splat shuffle would become the chain of inserts again. Forming splat shuffles can reduce IR and help enable further IR transforms. Motivating bugs: https://bugs.llvm.org/show_bug.cgi?id=42174 https://bugs.llvm.org/show_bug.cgi?id=16739 Differential Revision: https://reviews.llvm.org/D63848
Revision 365306 by miyuki:
[ARM] Relax constraints on operands of VQxDMLxDH instructions

Summary:
According to a recently updated Armv8-M spec
(https://static.docs.arm.com/ddi0553/bh/DDI0553B_h_armv8m_arm.pdf) the
32-bit width versions of the following instructions:
* VQDMLADH
* VQDMLADHX
* VQRDMLADH
* VQRDMLADHX
* VQDMLSDH
* VQDMLSDHX
* VQRDMLSDH
* VQRDMLSDHX
are no longer unpredictable when their output register is the same as
one of the input registers.

This patch updates the assembler parser and the corresponding tests
and also removes @earlyclobber from the instruction constraints.

Reviewers: simon_tatham, ostannard, dmgreen, SjoerdMeijer, samparker

Reviewed By: simon_tatham

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64250
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrMVE.tdtrunk/lib/Target/ARM/ARMInstrMVE.td
The file was modified/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpptrunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
The file was modified/llvm/trunk/test/MC/ARM/mve-qdest-qsrc.strunk/test/MC/ARM/mve-qdest-qsrc.s
Revision 365301 by asb:
[RISCV] Specify registers used in DWARF exception handling

Defines RISCV registers for getExceptionPointerRegister() and
getExceptionSelectorRegister().

Differential Revision: https://reviews.llvm.org/D63411
Patch by Edward Jones.
Modified by Alex Bradbury to add CHECK lines to exception-pointer-register.ll.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVISelLowering.cpptrunk/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVISelLowering.htrunk/lib/Target/RISCV/RISCVISelLowering.h
The file was added/llvm/trunk/test/CodeGen/RISCV/exception-pointer-register.lltrunk/test/CodeGen/RISCV/exception-pointer-register.ll
Revision 365299 by maskray:
[ARM] Fix null pointer dereference in CodeGen/ARM/Windows/stack-protector-msvc.ll.test after D64292/r365283

CLI.CS may not be set.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpptrunk/lib/Target/ARM/ARMISelLowering.cpp
Revision 365297 by asb:
[UpdateTestChecks] Skip over .Lfunc_begin for RISC-V

This mirrors the change made for X86 in rL336987. Without this patch,
update_llc_test_checks will completely skip functions with personality
functions.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/UpdateTestChecks/asm.pytrunk/utils/UpdateTestChecks/asm.py
Revision 365294 by foad:
[AMDGPU] Use a named predicate instead of a magic number.

Reviewers: arsenm

Reviewed By: arsenm

Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64201
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpptrunk/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
Revision 365293 by ctopper:
[X86] Allow execution domain fixing to turn SHUFPD into SHUFPS.

This can help with code size on SSE targets where SHUFPD requires
a 0x66 prefix and SHUFPS doesn't.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.cpptrunk/lib/Target/X86/X86InstrInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/coalesce_commute_movsd.lltrunk/test/CodeGen/X86/coalesce_commute_movsd.ll
The file was modified/llvm/trunk/test/CodeGen/X86/combine-sdiv.lltrunk/test/CodeGen/X86/combine-sdiv.ll
The file was modified/llvm/trunk/test/CodeGen/X86/palignr.lltrunk/test/CodeGen/X86/palignr.ll
The file was modified/llvm/trunk/test/CodeGen/X86/psubus.lltrunk/test/CodeGen/X86/psubus.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sdiv-exact.lltrunk/test/CodeGen/X86/sdiv-exact.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse-align-12.lltrunk/test/CodeGen/X86/sse-align-12.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.lltrunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll
The file was modified/llvm/trunk/test/CodeGen/X86/swizzle-2.lltrunk/test/CodeGen/X86/swizzle-2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/trunc-subvector.lltrunk/test/CodeGen/X86/trunc-subvector.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-blend.lltrunk/test/CodeGen/X86/vector-blend.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v2.lltrunk/test/CodeGen/X86/vector-shuffle-128-v2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v4.lltrunk/test/CodeGen/X86/vector-shuffle-128-v4.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v8.lltrunk/test/CodeGen/X86/vector-shuffle-128-v8.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-ssse3.lltrunk/test/CodeGen/X86/vector-shuffle-combining-ssse3.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining.lltrunk/test/CodeGen/X86/vector-shuffle-combining.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vselect-2.lltrunk/test/CodeGen/X86/vselect-2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vselect.lltrunk/test/CodeGen/X86/vselect.ll
The file was modified/llvm/trunk/test/CodeGen/X86/x86-shifts.lltrunk/test/CodeGen/X86/x86-shifts.ll
Revision 365292 by ctopper:
[X86] Make movsd commutable to shufpd with a 0x02 immediate on pre-SSE4.1 targets.

This can help avoid a copy or enable load folding.

On SSE4.1 targets we can commute it to blendi instead.

I had to make shufpd with a 0x02 immediate commutable as well
since we expect commuting to be reversible.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.cpptrunk/lib/Target/X86/X86InstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86InstrSSE.tdtrunk/lib/Target/X86/X86InstrSSE.td
The file was modified/llvm/trunk/test/CodeGen/X86/buildvec-insertvec.lltrunk/test/CodeGen/X86/buildvec-insertvec.ll
The file was modified/llvm/trunk/test/CodeGen/X86/coalesce_commute_movsd.lltrunk/test/CodeGen/X86/coalesce_commute_movsd.ll
The file was modified/llvm/trunk/test/CodeGen/X86/combine-sdiv.lltrunk/test/CodeGen/X86/combine-sdiv.ll
The file was modified/llvm/trunk/test/CodeGen/X86/psubus.lltrunk/test/CodeGen/X86/psubus.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sdiv-exact.lltrunk/test/CodeGen/X86/sdiv-exact.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse2.lltrunk/test/CodeGen/X86/sse2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-blend.lltrunk/test/CodeGen/X86/vector-blend.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shift-ashr-sub128.lltrunk/test/CodeGen/X86/vector-shift-ashr-sub128.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v2.lltrunk/test/CodeGen/X86/vector-shuffle-128-v2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v4.lltrunk/test/CodeGen/X86/vector-shuffle-128-v4.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v8.lltrunk/test/CodeGen/X86/vector-shuffle-128-v8.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-ssse3.lltrunk/test/CodeGen/X86/vector-shuffle-combining-ssse3.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining.lltrunk/test/CodeGen/X86/vector-shuffle-combining.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vselect-2.lltrunk/test/CodeGen/X86/vselect-2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vselect.lltrunk/test/CodeGen/X86/vselect.ll
The file was modified/llvm/trunk/test/CodeGen/X86/x86-shifts.lltrunk/test/CodeGen/X86/x86-shifts.ll
Revision 365291 by asb:
[RISCV] Support z and i operand modifiers

Differential Revision: https://reviews.llvm.org/D57792
Patch by James Clarke.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVAsmPrinter.cpptrunk/lib/Target/RISCV/RISCVAsmPrinter.cpp
The file was modified/llvm/trunk/test/CodeGen/RISCV/inline-asm.lltrunk/test/CodeGen/RISCV/inline-asm.ll
Revision 365287 by ctopper:
[X86] Add MOVSDrr->MOVLPDrm entry to load folding table. Add custom handling to turn UNPCKLPDrr->MOVHPDrm when load is under aligned.

If the load is aligned we can turn UNPCKLPDrr into UNPCKLPDrm.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrFoldTables.cpptrunk/lib/Target/X86/X86InstrFoldTables.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.cpptrunk/lib/Target/X86/X86InstrInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v4.lltrunk/test/CodeGen/X86/vector-shuffle-128-v4.ll
Revision 365286 by thegameg:
[llvm-bcanalyzer] Refactor and move to libLLVMBitReader

This allows us to use the analyzer from unit tests.

* Refactor the interface to use proper error handling for most functions
  after JF's work.
* Move everything into a BitstreamAnalyzer class.
* Move that to Bitcode/BitcodeAnalyzer.h.

Differential Revision: https://reviews.llvm.org/D64116
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/include/llvm/Bitcode/BitcodeAnalyzer.htrunk/include/llvm/Bitcode/BitcodeAnalyzer.h
The file was added/llvm/trunk/lib/Bitcode/Reader/BitcodeAnalyzer.cpptrunk/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
The file was modified/llvm/trunk/lib/Bitcode/Reader/CMakeLists.txttrunk/lib/Bitcode/Reader/CMakeLists.txt
The file was modified/llvm/trunk/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpptrunk/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
Revision 365285 by zhangkang:
[NFC][PowerPC] Add the test add_cmp.ll
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/PowerPC/add_cmp.lltrunk/test/CodeGen/PowerPC/add_cmp.ll
Revision 365284 by phosek:
Revert "[IRBuilder] Fold consistently for or/and whether constant is LHS or RHS"

This reverts commit r365260 which broke the following tests:

    Clang :: CodeGenCXX/cfi-mfcall.cpp
    Clang :: CodeGenObjC/ubsan-nullability.m
    LLVM :: Transforms/LoopVectorize/AArch64/pr36032.ll
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IRBuilder.htrunk/include/llvm/IR/IRBuilder.h
The file was modified/llvm/trunk/test/Analysis/LoopAccessAnalysis/wrapping-pointer-versioning.lltrunk/test/Analysis/LoopAccessAnalysis/wrapping-pointer-versioning.ll
The file was modified/llvm/trunk/test/Instrumentation/BoundsChecking/opt.lltrunk/test/Instrumentation/BoundsChecking/opt.ll
The file was modified/llvm/trunk/test/Transforms/LoopDistribute/scev-inserted-runtime-check.lltrunk/test/Transforms/LoopDistribute/scev-inserted-runtime-check.ll
The file was modified/llvm/trunk/test/Transforms/LoopPredication/basic.lltrunk/test/Transforms/LoopPredication/basic.ll
The file was modified/llvm/trunk/test/Transforms/LoopPredication/basic_widenable_branch_guards.lltrunk/test/Transforms/LoopPredication/basic_widenable_branch_guards.ll
The file was modified/llvm/trunk/test/Transforms/LoopPredication/invariant_load.lltrunk/test/Transforms/LoopPredication/invariant_load.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.lltrunk/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/X86/pr35432.lltrunk/test/Transforms/LoopVectorize/X86/pr35432.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/pr30654-phiscev-sext-trunc.lltrunk/test/Transforms/LoopVectorize/pr30654-phiscev-sext-trunc.ll
Revision 365283 by mstorsjo:
[ARM] Add support for MSVC stack cookie checking

Heavily based on the same for AArch64, from SVN r346469.

Differential Revision: https://reviews.llvm.org/D64292
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpptrunk/lib/Target/ARM/ARMISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.htrunk/lib/Target/ARM/ARMISelLowering.h
The file was added/llvm/trunk/test/CodeGen/ARM/Windows/stack-protector-msvc.lltrunk/test/CodeGen/ARM/Windows/stack-protector-msvc.ll
Revision 365280 by nico:
gn build: Merge r355546

Found by inspection; the sync script doesn't sync .ipp files.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/libcxx/src/BUILD.gntrunk/utils/gn/secondary/libcxx/src/BUILD.gn
Revision 365279 by nico:
gn build: Merge r365273
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/libcxx/src/BUILD.gntrunk/utils/gn/secondary/libcxx/src/BUILD.gn
Revision 365278 by nico:
gn build: Sort sync script output
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/build/sync_source_lists_from_cmake.pytrunk/utils/gn/build/sync_source_lists_from_cmake.py
Revision 365277 by nico:
gn build: Sort cxx_sources in libcxx build file

Since these are in a custom list, `gn format` doesn't automatically sort
them.

Now their order matches the CMake build.

No additions or deletions, this just sorts the files that are there.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/libcxx/src/BUILD.gntrunk/utils/gn/secondary/libcxx/src/BUILD.gn
Revision 365276 by nico:
gn build: Merge r365258 and follow-ups r365263, r365264
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang/unittests/Rewrite/BUILD.gntrunk/utils/gn/secondary/clang/unittests/Rewrite/BUILD.gn
Revision 365275 by ctopper:
[X86] Make sure load isn't volatile before shrinking it in MOVDDUP isel patterns.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrAVX512.tdtrunk/lib/Target/X86/X86InstrAVX512.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrSSE.tdtrunk/lib/Target/X86/X86InstrSSE.td
Revision 365274 by majnemer:
[CodeGen] Add larger vector types for i32 and f32

Some out of tree backend require larger vector type. Since maintaining the changes out of tree is difficult due to the many manual changes needed when adding a new type we are adding it even if no backend currently use it.

Differential Revision: https://reviews.llvm.org/D64141

Patch by Thomas Raoux!
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/ValueTypes.tdtrunk/include/llvm/CodeGen/ValueTypes.td
The file was modified/llvm/trunk/include/llvm/Support/MachineValueType.htrunk/include/llvm/Support/MachineValueType.h
The file was modified/llvm/trunk/lib/CodeGen/ValueTypes.cpptrunk/lib/CodeGen/ValueTypes.cpp
The file was modified/llvm/trunk/test/TableGen/intrinsic-varargs.tdtrunk/test/TableGen/intrinsic-varargs.td
The file was modified/llvm/trunk/utils/TableGen/CodeGenTarget.cpptrunk/utils/TableGen/CodeGenTarget.cpp
Revision 365271 by rksimon:
[X86] SimplifyDemandedVectorEltsForTargetNode - fix shadow variable warning. NFCI.

Fixes cppcheck warning.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpptrunk/lib/Target/X86/X86ISelLowering.cpp
Revision 365270 by rksimon:
[X86] LowerBuildVectorv16i8 - pull out repeated getOperand() call. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpptrunk/lib/Target/X86/X86ISelLowering.cpp
Revision 365269 by rksimon:
[DAGCombine] convertBuildVecZextToZext - remove duplicate getOpcode() call. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpptrunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 365268 by ctopper:
[X86] Add PS<->PD domain changing support for MOVH/MOVL load instructions and MOVH store instructions.

These instructions don't have an integer domain equivalent, but
we can at least change between the two floating point domains.

This allows a smaller encoding on SSE targets if we can turn
PD into PS.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/merge-consecutive-loads-128.lltrunk/test/CodeGen/X86/merge-consecutive-loads-128.ll
The file was modified/llvm/trunk/test/CodeGen/X86/merge-consecutive-loads-256.lltrunk/test/CodeGen/X86/merge-consecutive-loads-256.ll
The file was modified/llvm/trunk/test/CodeGen/X86/merge-consecutive-loads-512.lltrunk/test/CodeGen/X86/merge-consecutive-loads-512.ll
The file was modified/llvm/trunk/test/CodeGen/X86/nontemporal-2.lltrunk/test/CodeGen/X86/nontemporal-2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/oddshuffles.lltrunk/test/CodeGen/X86/oddshuffles.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr11334.lltrunk/test/CodeGen/X86/pr11334.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse-intrinsics-fast-isel.lltrunk/test/CodeGen/X86/sse-intrinsics-fast-isel.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse-only.lltrunk/test/CodeGen/X86/sse-only.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.lltrunk/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse2.lltrunk/test/CodeGen/X86/sse2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse3.lltrunk/test/CodeGen/X86/sse3.ll
The file was modified/llvm/trunk/test/CodeGen/X86/var-permute-128.lltrunk/test/CodeGen/X86/var-permute-128.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vec_insert-2.lltrunk/test/CodeGen/X86/vec_insert-2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v2.lltrunk/test/CodeGen/X86/vector-shuffle-128-v2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v4.lltrunk/test/CodeGen/X86/vector-shuffle-128-v4.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-256-v8.lltrunk/test/CodeGen/X86/vector-shuffle-256-v8.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining.lltrunk/test/CodeGen/X86/vector-shuffle-combining.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-variable-128.lltrunk/test/CodeGen/X86/vector-shuffle-variable-128.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-variable-256.lltrunk/test/CodeGen/X86/vector-shuffle-variable-256.ll
Revision 365267 by ctopper:
[X86] Remove patterns from MOVLPSmr and MOVHPSmr instructions.

These patterns are the same as the MOVLPDmr and MOVHPDmr patterns,
but with a bitcast at the end. We can just select the PD instruction
and let execution domain fixing switch to PS.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrAVX512.tdtrunk/lib/Target/X86/X86InstrAVX512.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.cpptrunk/lib/Target/X86/X86InstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86InstrSSE.tdtrunk/lib/Target/X86/X86InstrSSE.td
The file was modified/llvm/trunk/test/CodeGen/X86/avx2-masked-gather.lltrunk/test/CodeGen/X86/avx2-masked-gather.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-insert-extract.lltrunk/test/CodeGen/X86/avx512-insert-extract.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-masked-memop-64-32.lltrunk/test/CodeGen/X86/avx512-masked-memop-64-32.ll
The file was modified/llvm/trunk/test/CodeGen/X86/dag-merge-fast-accesses.lltrunk/test/CodeGen/X86/dag-merge-fast-accesses.ll
The file was modified/llvm/trunk/test/CodeGen/X86/extract-store.lltrunk/test/CodeGen/X86/extract-store.ll
The file was modified/llvm/trunk/test/CodeGen/X86/extractelement-load.lltrunk/test/CodeGen/X86/extractelement-load.ll
The file was modified/llvm/trunk/test/CodeGen/X86/fma.lltrunk/test/CodeGen/X86/fma.ll
The file was modified/llvm/trunk/test/CodeGen/X86/gather-addresses.lltrunk/test/CodeGen/X86/gather-addresses.ll
The file was modified/llvm/trunk/test/CodeGen/X86/half.lltrunk/test/CodeGen/X86/half.ll
The file was modified/llvm/trunk/test/CodeGen/X86/insert-into-constant-vector.lltrunk/test/CodeGen/X86/insert-into-constant-vector.ll
The file was modified/llvm/trunk/test/CodeGen/X86/insertelement-ones.lltrunk/test/CodeGen/X86/insertelement-ones.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_compressstore.lltrunk/test/CodeGen/X86/masked_compressstore.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_expandload.lltrunk/test/CodeGen/X86/masked_expandload.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_gather_scatter_widen.lltrunk/test/CodeGen/X86/masked_gather_scatter_widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_load.lltrunk/test/CodeGen/X86/masked_load.ll
The file was modified/llvm/trunk/test/CodeGen/X86/masked_store.lltrunk/test/CodeGen/X86/masked_store.ll
Revision 365266 by ctopper:
[X86] Add patterns to select MOVLPDrm from MOVSD+load and MOVHPD from UNPCKL+load.

These narrow the load so we can only do it if the load isn't
volatile.

There also tests in vector-shuffle-128-v4.ll that this should
support, but we don't seem to fold bitcast+load on pre-sse4.2
targets due to the slow unaligned mem 16 flag.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrSSE.tdtrunk/lib/Target/X86/X86InstrSSE.td
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v2.lltrunk/test/CodeGen/X86/vector-shuffle-128-v2.ll
Revision 365265 by ctopper:
[X86] Copy some test cases from vector-shuffle-sse1.ll to vector-shuffle-128-v4.ll and v8 where sse1 did better load folding. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v2.lltrunk/test/CodeGen/X86/vector-shuffle-128-v2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v4.lltrunk/test/CodeGen/X86/vector-shuffle-128-v4.ll
Revision 365262 by nikic:
[LFTR] Regenerate test checks; NFC
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/IndVarSimplify/lftr-pr20680.lltrunk/test/Transforms/IndVarSimplify/lftr-pr20680.ll
The file was removed/llvm/trunk/test/Transforms/IndVarSimplify/pr20680.lltrunk/test/Transforms/IndVarSimplify/pr20680.ll
Revision 365260 by reames:
[IRBuilder] Fold consistently for or/and whether constant is LHS or RHS

Without this, we have the unfortunate property that tests are dependent on the order of operads passed the CreateOr and CreateAnd functions.  In actual usage, we'd promptly optimize them away, but it made tests slightly more verbose than they should have been.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IRBuilder.htrunk/include/llvm/IR/IRBuilder.h
The file was modified/llvm/trunk/test/Analysis/LoopAccessAnalysis/wrapping-pointer-versioning.lltrunk/test/Analysis/LoopAccessAnalysis/wrapping-pointer-versioning.ll
The file was modified/llvm/trunk/test/Instrumentation/BoundsChecking/opt.lltrunk/test/Instrumentation/BoundsChecking/opt.ll
The file was modified/llvm/trunk/test/Transforms/LoopDistribute/scev-inserted-runtime-check.lltrunk/test/Transforms/LoopDistribute/scev-inserted-runtime-check.ll
The file was modified/llvm/trunk/test/Transforms/LoopPredication/basic.lltrunk/test/Transforms/LoopPredication/basic.ll
The file was modified/llvm/trunk/test/Transforms/LoopPredication/basic_widenable_branch_guards.lltrunk/test/Transforms/LoopPredication/basic_widenable_branch_guards.ll
The file was modified/llvm/trunk/test/Transforms/LoopPredication/invariant_load.lltrunk/test/Transforms/LoopPredication/invariant_load.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.lltrunk/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/X86/pr35432.lltrunk/test/Transforms/LoopVectorize/X86/pr35432.ll
The file was modified/llvm/trunk/test/Transforms/LoopVectorize/pr30654-phiscev-sext-trunc.lltrunk/test/Transforms/LoopVectorize/pr30654-phiscev-sext-trunc.ll
Revision 365259 by reames:
[IRBuilder] Introduce helpers for and/or of multiple values at once

We had versions of this code scattered around, so consolidate into one location.

Not strictly NFC since the order of intermediate results may change in some places, but since these operations are associatives, should not change results.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IRBuilder.htrunk/include/llvm/IR/IRBuilder.h
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpptrunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopPredication.cpptrunk/lib/Transforms/Scalar/LoopPredication.cpp
The file was modified/llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpptrunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
Revision 365256 by qcolombet:
[RegisterCoalescer] Fix an overzealous assert

Although removeCopyByCommutingDef deals with full copies, it is still
possible to copy undef lanes and thus, we wouldn't have any a value
number for these lanes.

This fixes PR40215.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/RegisterCoalescer.cpptrunk/lib/CodeGen/RegisterCoalescer.cpp
The file was added/llvm/trunk/test/CodeGen/SystemZ/regcoal-undef-lane-4-rm-cp-commuting-def.mirtrunk/test/CodeGen/SystemZ/regcoal-undef-lane-4-rm-cp-commuting-def.mir
Revision 365255 by arsenm:
RegUsageInfoCollector: Skip AMDGPU entry point functions

I'm not sure if it's worth it or not to add a hook to disable the pass
for an arbitrary function.

This pass is taking up to 5% of compile time in tiny programs by
iterating through all of the physical registers in every register
class. This pass should be rewritten in terms of regunits. For now,
skip doing anything for entry point functions. The vast majority of
functions in the real world aren't callable, so just not running this
will give the majority of the benefit.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/RegUsageInfoCollector.cpptrunk/lib/CodeGen/RegUsageInfoCollector.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/ipra-reg-usage.lltrunk/test/CodeGen/ARM/ipra-reg-usage.ll
The file was modified/llvm/trunk/test/CodeGen/X86/ipra-inline-asm.lltrunk/test/CodeGen/X86/ipra-inline-asm.ll
The file was modified/llvm/trunk/test/CodeGen/X86/ipra-reg-usage.lltrunk/test/CodeGen/X86/ipra-reg-usage.ll
Revision 365251 by hliao:
Revert "[FileCheck] Simplify numeric variable interface"

This reverts commit 096600a4b073dd94a366cc8e57bff93c34ff6966.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/FileCheck.htrunk/include/llvm/Support/FileCheck.h
The file was modified/llvm/trunk/lib/Support/FileCheck.cpptrunk/lib/Support/FileCheck.cpp
The file was modified/llvm/trunk/unittests/Support/FileCheckTest.cpptrunk/unittests/Support/FileCheckTest.cpp
Revision 365249 by thopre:
[FileCheck] Simplify numeric variable interface

Summary:
This patch simplifies 2 aspects in the FileCheckNumericVariable code.

First, setValue() method is turned into a void function since being
called only on undefined variable is an invariant and is now asserted
rather than returned. This remove the assert from the callers.

Second, clearValue() method is also turned into a void function since
the only caller does not check its return value since it may be trying
to clear the value of variable that is already cleared without this
being noteworthy.

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64231
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/FileCheck.htrunk/include/llvm/Support/FileCheck.h
The file was modified/llvm/trunk/lib/Support/FileCheck.cpptrunk/lib/Support/FileCheck.cpp
The file was modified/llvm/trunk/unittests/Support/FileCheckTest.cpptrunk/unittests/Support/FileCheckTest.cpp
Revision 365245 by arsenm:
AMDGPU: Fix assert in clang test
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpptrunk/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp
Revision 365242 by nikic:
[SystemZ] Fix addcarry of usubo (PR42512)

Only custom lower uaddo+addcarry or usubo+subcarry chains and leave
mixtures like usubo+addcarry or uaddo+subcarry to the generic
legalizer. Otherwise we run into issues because SystemZ uses
different CC values for carries and borrows.

Fixes https://bugs.llvm.org/show_bug.cgi?id=42512.

Differential Revision: https://reviews.llvm.org/D64213
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.cpptrunk/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was added/llvm/trunk/test/CodeGen/SystemZ/pr42512.lltrunk/test/CodeGen/SystemZ/pr42512.ll
Revision 365241 by arsenm:
AMDGPU: Make AMDGPUPerfHintAnalysis an SCC pass

Add a string attribute instead of directly setting
MachineFunctionInfo. This avoids trying to get the analysis in the
MachineFunctionInfo in a way that doesn't work with the new pass
manager.

This will also avoid re-visiting the call graph for every single
function.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpptrunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUMachineFunction.cpptrunk/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpptrunk/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.htrunk/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetMachine.cpptrunk/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
Revision 365240 by hliao:
[CodeGen] Enhance `MachineInstrSpan` to allow the end of MBB to be used.

Summary:
- Explicitly specify the parent MBB to allow the end iterator to be
  used.

Reviewers: aprantl, MatzeB, craig.topper, qcolombet

Subscribers: arsenm, jvesely, nhaehnle, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64261
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.htrunk/include/llvm/CodeGen/MachineBasicBlock.h
The file was modified/llvm/trunk/lib/CodeGen/InlineSpiller.cpptrunk/lib/CodeGen/InlineSpiller.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SILowerSGPRSpills.cpptrunk/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
The file was modified/llvm/trunk/unittests/CodeGen/MachineInstrTest.cpptrunk/unittests/CodeGen/MachineInstrTest.cpp
Revision 365237 by d0k:
[PowerPC] Fold another unused variable into assertion. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCFrameLowering.cpptrunk/lib/Target/PowerPC/PPCFrameLowering.cpp
Revision 365236 by d0k:
[PowerPC] Fold variable into assert. NFC.

Avoids a warning in Release builds.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCFrameLowering.cpptrunk/lib/Target/PowerPC/PPCFrameLowering.cpp
Revision 365235 by d0k:
[PowerPC] Remove unused variable. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCMIPeephole.cpptrunk/lib/Target/PowerPC/PPCMIPeephole.cpp
Revision 365234 by ctopper:
[X86] Correct the size check in foldMemoryOperandCustom.

The Size either needs to be 0 meaning we aren't folding
a stack reload. Or the stack slot needs to be at least
16 bytes. I've also added a paranoia check ensure the
RCSize is at leat 16 bytes as well. This avoids any
FR32/FR64 surprises, but I think we already filtered
those earlier.

All of our test case have Size as either 0 or 16 and
RCSize == 16. So the Size <= 16 check worked for those
cases.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrInfo.cpptrunk/lib/Target/X86/X86InstrInfo.cpp
Revision 365232 by nemanjai:
[PowerPC] Move TOC save to prologue when profitable

The indirect call sequence on PPC requires that the TOC base register be saved
prior to the indirect call and restored after the call since the indirect call
may branch to a global entry point in another DSO which will update the TOC
base. Over the last couple of years, we have improved this to:

- be able to hoist TOC saves from loops (with changes to MachineLICM)
- avoid multiple saves when one dominates the other[s]

However, it is still possible to have multiple TOC saves dynamically in the
execution path if there is no dominance relationship between them.

This patch moves the TOC save to the prologue when one of the TOC saves is in a
block that post-dominates entry (i.e. it cannot be avoided) or if it is in a
block that is hotter than entry.

Differential revision: https://reviews.llvm.org/D63803
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCFrameLowering.cpptrunk/lib/Target/PowerPC/PPCFrameLowering.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCMIPeephole.cpptrunk/lib/Target/PowerPC/PPCMIPeephole.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCMachineFunctionInfo.htrunk/lib/Target/PowerPC/PPCMachineFunctionInfo.h
The file was modified/llvm/trunk/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.lltrunk/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/remove-redundant-toc-saves.lltrunk/test/CodeGen/PowerPC/remove-redundant-toc-saves.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/tocSaveInPrologue.lltrunk/test/CodeGen/PowerPC/tocSaveInPrologue.ll
Revision 365231 by Jonas Devlieghere:
Add lldb-mi deprecation to the release notes

Differential revision: https://reviews.llvm.org/D64254
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/ReleaseNotes.rsttrunk/docs/ReleaseNotes.rst
Revision 365228 by Jonas Devlieghere:
Add LLDB section to the release notes
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/ReleaseNotes.rsttrunk/docs/ReleaseNotes.rst
Revision 365227 by spatel:
[InferFunctionAttrs] add tests for 'dereferenceable' argument attribute; NFC
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/InferFunctionAttrs/dereferenceable.lltrunk/test/Transforms/InferFunctionAttrs/dereferenceable.ll
Revision 365225 by ctopper:
[X86] Update SSE1 MOVLPSrm and MOVHPSrm isel patterns to ensure loads are non-volatile before folding.

These patterns use 128-bit loads, but the instructions only load
64-bits. We shouldn't narrow the load if its volatile.

Fixes another variant of PR42079
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrSSE.tdtrunk/lib/Target/X86/X86InstrSSE.td
Revision 365224 by ctopper:
[X86] Remove unnecessary isel pattern for MOVLPSmr.

This was identical to a pattern for MOVPQI2QImr with a bitcast
as an input. But we should be able to turn MOVPQI2QImr into
MOVLPSmr in the execution domain fixup pass so we shouldn't
need this.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrSSE.tdtrunk/lib/Target/X86/X86InstrSSE.td
Revision 365223 by cdevadas:
[NFC] A test commit to check the access permission. Removed a blank line.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIFrameLowering.cpptrunk/lib/Target/AMDGPU/SIFrameLowering.cpp
Revision 365221 by jhenderson:
[docs][llvm-readobj] Add a note to options that do nothing in GNU output

--section-data, --section-relocations and --section-symbols have no
effect for GNU style ouput. This patch changes the docs to point this
out, as it has caught me out on a couple of occasions.

See also https://bugs.llvm.org/show_bug.cgi?id=42522.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/CommandGuide/llvm-readelf.rsttrunk/docs/CommandGuide/llvm-readelf.rst
The file was modified/llvm/trunk/docs/CommandGuide/llvm-readobj.rsttrunk/docs/CommandGuide/llvm-readobj.rst
Revision 365220 by thopre:
[FileCheck] Share variable instance among uses

Summary:
This patch changes expression support to use one instance of
FileCheckNumericVariable per numeric variable rather than one per
variable and per definition. The current system was only necessary for
the last patch of the numeric expression support patch series in order
to handle a line using a variable defined earlier on the same line from
the input text. However this can be dealt more efficiently.

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64229
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/FileCheck.htrunk/include/llvm/Support/FileCheck.h
The file was modified/llvm/trunk/lib/Support/FileCheck.cpptrunk/lib/Support/FileCheck.cpp
The file was modified/llvm/trunk/unittests/Support/FileCheckTest.cpptrunk/unittests/Support/FileCheckTest.cpp
Revision 365219 by thopre:
[FileCheck] Don't diagnose undef vars at parse time

Summary:
Diagnosing use of undefined variables takes place in
parseNumericVariableUse() and printSubstitutions() for numeric variables
but only takes place in printSubstitutions() for string variables. The
reason for the split location of diagnostics is that parsing is not
aware of the clearing of variables due to --enable-var-scope and thus
use of variables cleared in this way can only be catched by
printSubstitutions().

Beyond the code level inconsistency, there is also a user facing
inconsistency since diagnostics look different between the two
functions. While the diagnostic in printSubstitutions is more verbose,
doing the diagnostic there allows to diagnose all undefined variables
rather than just the first one and error out.

This patch create dummy variable definition when encountering a use of
undefined variable so that parsing can proceed and be diagnosed by
printSubstitutions() later. Tests that were testing whether parsing
fails in such case are thus modified accordingly.

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64228
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Support/FileCheck.cpptrunk/lib/Support/FileCheck.cpp
The file was modified/llvm/trunk/test/FileCheck/numeric-expression.txttrunk/test/FileCheck/numeric-expression.txt
The file was modified/llvm/trunk/unittests/Support/FileCheckTest.cpptrunk/unittests/Support/FileCheckTest.cpp
Revision 365217 by yaxunl:
[AMDGPU] Added a new metadata for multi grid sync implicit argument

Patch by Christudasan Devadasan.

Differential Revision: https://reviews.llvm.org/D63886
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/AMDGPUUsage.rsttrunk/docs/AMDGPUUsage.rst
The file was modified/llvm/trunk/include/llvm/Support/AMDGPUMetadata.htrunk/include/llvm/Support/AMDGPUMetadata.h
The file was modified/llvm/trunk/lib/BinaryFormat/AMDGPUMetadataVerifier.cpptrunk/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp
The file was modified/llvm/trunk/lib/Support/AMDGPUMetadata.cpptrunk/lib/Support/AMDGPUMetadata.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpptrunk/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full-v3.lltrunk/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full-v3.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full.lltrunk/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/hsa-metadata-hidden-args-v3.lltrunk/test/CodeGen/AMDGPU/hsa-metadata-hidden-args-v3.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/hsa-metadata-hidden-args.lltrunk/test/CodeGen/AMDGPU/hsa-metadata-hidden-args.ll
Revision 365216 by arsenm:
ScheduleDAG: Fix incorrectly killing registers in bundles

When looking for uses/defs to add kill flags, the iterator was double
incremented, skipping the first instruction in the bundle. The use
register in the first bundle instruction was then incorrectly killed.
The "First" instruction should be the BUNDLE itself as the proper
reverse iterator endpoint.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpptrunk/lib/CodeGen/ScheduleDAGInstrs.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/post-ra-sched-kill-bundle-use-inst.mirtrunk/test/CodeGen/AMDGPU/post-ra-sched-kill-bundle-use-inst.mir
Revision 365215 by evgeny777:
[ThinLTO] Attempt to recommit r365188 after alignment fix
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/ModuleSummaryIndex.htrunk/include/llvm/IR/ModuleSummaryIndex.h
The file was modified/llvm/trunk/lib/Analysis/ModuleSummaryAnalysis.cpptrunk/lib/Analysis/ModuleSummaryAnalysis.cpp
The file was modified/llvm/trunk/lib/AsmParser/LLParser.cpptrunk/lib/AsmParser/LLParser.cpp
The file was modified/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpptrunk/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modified/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpptrunk/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modified/llvm/trunk/lib/IR/AsmWriter.cpptrunk/lib/IR/AsmWriter.cpp
The file was modified/llvm/trunk/lib/IR/ModuleSummaryIndex.cpptrunk/lib/IR/ModuleSummaryIndex.cpp
The file was modified/llvm/trunk/lib/LTO/LTO.cpptrunk/lib/LTO/LTO.cpp
The file was modified/llvm/trunk/lib/Transforms/IPO/FunctionImport.cpptrunk/lib/Transforms/IPO/FunctionImport.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/FunctionImportUtils.cpptrunk/lib/Transforms/Utils/FunctionImportUtils.cpp
The file was modified/llvm/trunk/test/Assembler/thinlto-summary.lltrunk/test/Assembler/thinlto-summary.ll
The file was modified/llvm/trunk/test/Assembler/thinlto-vtable-summary.lltrunk/test/Assembler/thinlto-vtable-summary.ll
The file was modified/llvm/trunk/test/Bitcode/summary_version.lltrunk/test/Bitcode/summary_version.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-alias.lltrunk/test/Bitcode/thinlto-alias.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-alias2.lltrunk/test/Bitcode/thinlto-alias2.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-cast.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-cast.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-pgo.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-pgo.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-relbf.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-relbf.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-sample-profile-summary.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-sample-profile-summary.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph.lltrunk/test/Bitcode/thinlto-function-summary-callgraph.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-refgraph.lltrunk/test/Bitcode/thinlto-function-summary-refgraph.ll
The file was added/llvm/trunk/test/ThinLTO/X86/Inputs/dot-dumper2.lltrunk/test/ThinLTO/X86/Inputs/dot-dumper2.ll
The file was added/llvm/trunk/test/ThinLTO/X86/dot-dumper2.lltrunk/test/ThinLTO/X86/dot-dumper2.ll
The file was modified/llvm/trunk/test/ThinLTO/X86/index-const-prop2.lltrunk/test/ThinLTO/X86/index-const-prop2.ll
The file was added/llvm/trunk/test/ThinLTO/X86/load-store-caching.lltrunk/test/ThinLTO/X86/load-store-caching.ll
The file was added/llvm/trunk/test/ThinLTO/X86/writeonly.lltrunk/test/ThinLTO/X86/writeonly.ll
The file was added/llvm/trunk/test/ThinLTO/X86/writeonly2.lltrunk/test/ThinLTO/X86/writeonly2.ll
Revision 365214 by dmgreen:
[ARM] MVE patterns for VMVN, VORR and VBIC

This add simple Q register forms of bitwise not instructions.

Differential Revision: https://reviews.llvm.org/D63983
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrMVE.tdtrunk/lib/Target/ARM/ARMInstrMVE.td
The file was modified/llvm/trunk/test/CodeGen/Thumb2/mve-bitarith.lltrunk/test/CodeGen/Thumb2/mve-bitarith.ll
Revision 365213 by nico:
gn build: Merge r365203
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/IR/BUILD.gntrunk/utils/gn/secondary/llvm/unittests/IR/BUILD.gn
Revision 365211 by foad:
[AMDGPU] DPP combiner: recognize identities for more opcodes

Summary:
This allows the DPP combiner to kick in more often. For example the
exclusive scan generated by the atomic optimizer for a divergent atomic
add used to look like this:

        v_mov_b32_e32 v3, v1
        v_mov_b32_e32 v5, v1
        v_mov_b32_e32 v6, v1
        v_mov_b32_dpp v3, v2  wave_shr:1 row_mask:0xf bank_mask:0xf
        s_nop 1
        v_add_u32_dpp v4, v3, v3  row_shr:1 row_mask:0xf bank_mask:0xf bound_ctrl:0
        v_mov_b32_dpp v5, v3  row_shr:2 row_mask:0xf bank_mask:0xf
        v_mov_b32_dpp v6, v3  row_shr:3 row_mask:0xf bank_mask:0xf
        v_add3_u32 v3, v4, v5, v6
        v_mov_b32_e32 v4, v1
        s_nop 1
        v_mov_b32_dpp v4, v3  row_shr:4 row_mask:0xf bank_mask:0xe
        v_add_u32_e32 v3, v3, v4
        v_mov_b32_e32 v4, v1
        s_nop 1
        v_mov_b32_dpp v4, v3  row_shr:8 row_mask:0xf bank_mask:0xc
        v_add_u32_e32 v3, v3, v4
        v_mov_b32_e32 v4, v1
        s_nop 1
        v_mov_b32_dpp v4, v3  row_bcast:15 row_mask:0xa bank_mask:0xf
        v_add_u32_e32 v3, v3, v4
        s_nop 1
        v_mov_b32_dpp v1, v3  row_bcast:31 row_mask:0xc bank_mask:0xf
        v_add_u32_e32 v1, v3, v1
        v_add_u32_e32 v1, v2, v1
        v_readlane_b32 s0, v1, 63

But now most of the dpp movs are combined into adds:

        v_mov_b32_e32 v3, v1
        v_mov_b32_e32 v5, v1
        s_nop 0
        v_mov_b32_dpp v3, v2  wave_shr:1 row_mask:0xf bank_mask:0xf
        s_nop 1
        v_add_u32_dpp v4, v3, v3  row_shr:1 row_mask:0xf bank_mask:0xf bound_ctrl:0
        v_mov_b32_dpp v5, v3  row_shr:2 row_mask:0xf bank_mask:0xf
        v_mov_b32_dpp v1, v3  row_shr:3 row_mask:0xf bank_mask:0xf
        v_add3_u32 v1, v4, v5, v1
        s_nop 1
        v_add_u32_dpp v1, v1, v1  row_shr:4 row_mask:0xf bank_mask:0xe
        s_nop 1
        v_add_u32_dpp v1, v1, v1  row_shr:8 row_mask:0xf bank_mask:0xc
        s_nop 1
        v_add_u32_dpp v1, v1, v1  row_bcast:15 row_mask:0xa bank_mask:0xf
        s_nop 1
        v_add_u32_dpp v1, v1, v1  row_bcast:31 row_mask:0xc bank_mask:0xf
        v_add_u32_e32 v1, v2, v1
        v_readlane_b32 s0, v1, 63

Reviewers: arsenm, vpykhtin

Subscribers: kzhuravl, nemanjai, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kbarton, MaskRay, jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64207
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/GCNDPPCombine.cpptrunk/lib/Target/AMDGPU/GCNDPPCombine.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/dpp_combine.mirtrunk/test/CodeGen/AMDGPU/dpp_combine.mir
Revision 365206 by evgeny777:
Reverted r365188 due to alignment problems on i686-android
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/ModuleSummaryIndex.htrunk/include/llvm/IR/ModuleSummaryIndex.h
The file was modified/llvm/trunk/lib/Analysis/ModuleSummaryAnalysis.cpptrunk/lib/Analysis/ModuleSummaryAnalysis.cpp
The file was modified/llvm/trunk/lib/AsmParser/LLParser.cpptrunk/lib/AsmParser/LLParser.cpp
The file was modified/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpptrunk/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modified/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpptrunk/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modified/llvm/trunk/lib/IR/AsmWriter.cpptrunk/lib/IR/AsmWriter.cpp
The file was modified/llvm/trunk/lib/IR/ModuleSummaryIndex.cpptrunk/lib/IR/ModuleSummaryIndex.cpp
The file was modified/llvm/trunk/lib/LTO/LTO.cpptrunk/lib/LTO/LTO.cpp
The file was modified/llvm/trunk/lib/Transforms/IPO/FunctionImport.cpptrunk/lib/Transforms/IPO/FunctionImport.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/FunctionImportUtils.cpptrunk/lib/Transforms/Utils/FunctionImportUtils.cpp
The file was modified/llvm/trunk/test/Assembler/thinlto-summary.lltrunk/test/Assembler/thinlto-summary.ll
The file was modified/llvm/trunk/test/Assembler/thinlto-vtable-summary.lltrunk/test/Assembler/thinlto-vtable-summary.ll
The file was modified/llvm/trunk/test/Bitcode/summary_version.lltrunk/test/Bitcode/summary_version.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-alias.lltrunk/test/Bitcode/thinlto-alias.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-alias2.lltrunk/test/Bitcode/thinlto-alias2.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-cast.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-cast.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-pgo.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-pgo.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-relbf.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-relbf.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-sample-profile-summary.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-sample-profile-summary.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph.lltrunk/test/Bitcode/thinlto-function-summary-callgraph.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-refgraph.lltrunk/test/Bitcode/thinlto-function-summary-refgraph.ll
The file was removed/llvm/trunk/test/ThinLTO/X86/Inputs/dot-dumper2.lltrunk/test/ThinLTO/X86/Inputs/dot-dumper2.ll
The file was removed/llvm/trunk/test/ThinLTO/X86/dot-dumper2.lltrunk/test/ThinLTO/X86/dot-dumper2.ll
The file was modified/llvm/trunk/test/ThinLTO/X86/index-const-prop2.lltrunk/test/ThinLTO/X86/index-const-prop2.ll
The file was removed/llvm/trunk/test/ThinLTO/X86/load-store-caching.lltrunk/test/ThinLTO/X86/load-store-caching.ll
The file was removed/llvm/trunk/test/ThinLTO/X86/writeonly.lltrunk/test/ThinLTO/X86/writeonly.ll
The file was removed/llvm/trunk/test/ThinLTO/X86/writeonly2.lltrunk/test/ThinLTO/X86/writeonly2.ll
Revision 365203 by huntergr:
Scalable Vector IR Type with further LTO fixes

Reintroduces the scalable vector IR type from D32530, after it was reverted
a couple of times due to increasing chromium LTO build times. This latest
incarnation removes the walk over aggregate types from the verifier entirely,
in favor of rejecting scalable vectors in the isValidElementType methods in
ArrayType and StructType. This removes the 70% degradation observed with
the second repro tarball from PR42210.

Reviewers: thakis, hans, rengolin, sdesmalen

Reviewed By: sdesmalen

Differential Revision: https://reviews.llvm.org/D64079
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rsttrunk/docs/LangRef.rst
The file was modified/llvm/trunk/include/llvm/ADT/DenseMapInfo.htrunk/include/llvm/ADT/DenseMapInfo.h
The file was modified/llvm/trunk/include/llvm/IR/DerivedTypes.htrunk/include/llvm/IR/DerivedTypes.h
The file was modified/llvm/trunk/include/llvm/IR/Type.htrunk/include/llvm/IR/Type.h
The file was added/llvm/trunk/include/llvm/Support/ScalableSize.htrunk/include/llvm/Support/ScalableSize.h
The file was modified/llvm/trunk/lib/AsmParser/LLLexer.cpptrunk/lib/AsmParser/LLLexer.cpp
The file was modified/llvm/trunk/lib/AsmParser/LLParser.cpptrunk/lib/AsmParser/LLParser.cpp
The file was modified/llvm/trunk/lib/AsmParser/LLToken.htrunk/lib/AsmParser/LLToken.h
The file was modified/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpptrunk/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modified/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpptrunk/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modified/llvm/trunk/lib/IR/AsmWriter.cpptrunk/lib/IR/AsmWriter.cpp
The file was modified/llvm/trunk/lib/IR/LLVMContextImpl.htrunk/lib/IR/LLVMContextImpl.h
The file was modified/llvm/trunk/lib/IR/Type.cpptrunk/lib/IR/Type.cpp
The file was modified/llvm/trunk/lib/IR/Verifier.cpptrunk/lib/IR/Verifier.cpp
The file was modified/llvm/trunk/test/Bitcode/compatibility.lltrunk/test/Bitcode/compatibility.ll
The file was added/llvm/trunk/test/Other/scalable-vector-array.lltrunk/test/Other/scalable-vector-array.ll
The file was added/llvm/trunk/test/Other/scalable-vector-struct.lltrunk/test/Other/scalable-vector-struct.ll
The file was added/llvm/trunk/test/Verifier/scalable-global-vars.lltrunk/test/Verifier/scalable-global-vars.ll
The file was modified/llvm/trunk/unittests/IR/CMakeLists.txttrunk/unittests/IR/CMakeLists.txt
The file was added/llvm/trunk/unittests/IR/VectorTypesTest.cpptrunk/unittests/IR/VectorTypesTest.cpp
Revision 365202 by rlougher:
This reverts r365061 and r365062 (test update)

Revision r365061 changed a skip of debug instructions for a skip
of meta instructions. This is not safe, as IMPLICIT_DEF is classed
as a meta instruction.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.htrunk/include/llvm/CodeGen/MachineBasicBlock.h
The file was modified/llvm/trunk/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpptrunk/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
The file was removed/llvm/trunk/test/CodeGen/X86/avoid-sfb-ignore-meta.mirtrunk/test/CodeGen/X86/avoid-sfb-ignore-meta.mir
The file was modified/llvm/trunk/test/CodeGen/X86/pr38743.lltrunk/test/CodeGen/X86/pr38743.ll
Revision 365201 by lenary:
[RISCV] Support @llvm.readcyclecounter() Intrinsic

On RISC-V, the `cycle` CSR holds a 64-bit count of the number of clock
cycles executed by the core, from an arbitrary point in the past. This
matches the intended semantics of `@llvm.readcyclecounter()`, which we
currently leave to the default lowering (to the constant 0).

With this patch, we will now correctly lower this intrinsic to the
intended semantics, using the user-space instruction `rdcycle`. On
64-bit targets, we can directly lower to this instruction.

On 32-bit targets, we need to do more, as `rdcycle` only returns the low
32-bits of the `cycle` CSR. In this case, we perform a custom lowering,
based on the PowerPC lowering, using `rdcycleh` to obtain the high
32-bits of the `cycle` CSR. This custom lowering inserts a new basic
block which detects overflow in the high 32-bits of the `cycle` CSR
during reading (because multiple instructions are required to read). The
emitted assembly matches the suggested assembly in the RISC-V
specification.

Differential Revision: https://reviews.llvm.org/D64125
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVISelDAGToDAG.cpptrunk/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVISelLowering.cpptrunk/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVISelLowering.htrunk/lib/Target/RISCV/RISCVISelLowering.h
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVInstrInfo.tdtrunk/lib/Target/RISCV/RISCVInstrInfo.td
The file was added/llvm/trunk/test/CodeGen/RISCV/readcyclecounter.lltrunk/test/CodeGen/RISCV/readcyclecounter.ll
Revision 365200 by nico:
lld, llvm-dlltool, llvm-lib: Use getAsString() instead of getSpelling() for printing unknown args

Since OPT_UNKNOWN args never have any values and consist only of
spelling (and are never aliased), this doesn't make any difference in
practice, but it's more consistent with Arg's guidance to use
getAsString() for diagnostics, and it matches what clang does.

Also tweak two tests to use an unknown option that contains '=' for
additional coverage while here. (The new tests pass fine with the old
code too though.)
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/COFF/DriverUtils.cppN/A
The file was modified/lld/trunk/ELF/DriverUtils.cppN/A
The file was modified/lld/trunk/MinGW/Driver.cppN/A
The file was modified/lld/trunk/test/COFF/wx.sN/A
The file was modified/lld/trunk/test/ELF/driver.testN/A
The file was modified/lld/trunk/wasm/Driver.cppN/A
The file was modified/llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpptrunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
The file was modified/llvm/trunk/lib/ToolDrivers/llvm-lib/LibDriver.cpptrunk/lib/ToolDrivers/llvm-lib/LibDriver.cpp
Revision 365199 by rlougher:
Revert r365198 as this accidentally commited something that
should not have been added.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.htrunk/include/llvm/CodeGen/MachineBasicBlock.h
The file was modified/llvm/trunk/lib/CodeGen/MachineBasicBlock.cpptrunk/lib/CodeGen/MachineBasicBlock.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpptrunk/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
The file was added/llvm/trunk/test/CodeGen/X86/avoid-sfb-ignore-meta.mirtrunk/test/CodeGen/X86/avoid-sfb-ignore-meta.mir
The file was removed/llvm/trunk/test/CodeGen/X86/fixup-lea-g-no-change.mirtrunk/test/CodeGen/X86/fixup-lea-g-no-change.mir
The file was modified/llvm/trunk/test/CodeGen/X86/pr38743.lltrunk/test/CodeGen/X86/pr38743.ll
Revision 365198 by rlougher:
This reverts r365061 and r365062 (test update)

Revision r365061 changed a skip of debug instructions for a skip
of meta instructions. This is not safe, as IMPLICIT_DEF is classed
as a meta instruction.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.htrunk/include/llvm/CodeGen/MachineBasicBlock.h
The file was modified/llvm/trunk/lib/CodeGen/MachineBasicBlock.cpptrunk/lib/CodeGen/MachineBasicBlock.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpptrunk/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
The file was removed/llvm/trunk/test/CodeGen/X86/avoid-sfb-ignore-meta.mirtrunk/test/CodeGen/X86/avoid-sfb-ignore-meta.mir
The file was added/llvm/trunk/test/CodeGen/X86/fixup-lea-g-no-change.mirtrunk/test/CodeGen/X86/fixup-lea-g-no-change.mir
The file was modified/llvm/trunk/test/CodeGen/X86/pr38743.lltrunk/test/CodeGen/X86/pr38743.ll
Revision 365195 by lenary:
[RISCV][NFC] Replace hard-coded CSR duplication with symbolic references

Reviewers: asb, lenary

Reviewed By: asb, lenary

Subscribers: MaskRay, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64139

Patch by James Clarke (jrtc27)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/RISCV.tdtrunk/lib/Target/RISCV/RISCV.td
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVInstrInfo.tdtrunk/lib/Target/RISCV/RISCVInstrInfo.td
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVInstrInfoF.tdtrunk/lib/Target/RISCV/RISCVInstrInfoF.td
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVSystemOperands.tdtrunk/lib/Target/RISCV/RISCVSystemOperands.td
Revision 365194 by rksimon:
Fix MSVC/cppcheck Use::Next isn't initialized warning. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/Use.htrunk/include/llvm/IR/Use.h
Revision 365193 by evgeny777:
[llvm-objcopy] Allow strip symtab from executables and DSOs

Differential revision: https://reviews.llvm.org/D61672
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/no-symbol-relocation.testtrunk/test/tools/llvm-objcopy/ELF/no-symbol-relocation.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/preserve-segment-contents-ehdr-phdrs.testtrunk/test/tools/llvm-objcopy/ELF/preserve-segment-contents-ehdr-phdrs.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/remove-multiple-sections.testtrunk/test/tools/llvm-objcopy/ELF/remove-multiple-sections.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/segment-shift-section-remove.testtrunk/test/tools/llvm-objcopy/ELF/segment-shift-section-remove.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/segment-test-remove-section.testtrunk/test/tools/llvm-objcopy/ELF/segment-test-remove-section.test
The file was added/llvm/trunk/test/tools/llvm-objcopy/ELF/strip-unneeded-all-symbols.testtrunk/test/tools/llvm-objcopy/ELF/strip-unneeded-all-symbols.test
The file was modified/llvm/trunk/tools/llvm-objcopy/ELF/ELFObjcopy.cpptrunk/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/ELF/Object.cpptrunk/tools/llvm-objcopy/ELF/Object.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/ELF/Object.htrunk/tools/llvm-objcopy/ELF/Object.h
Revision 365192 by thopre:
[FileCheck] Fix comment in parseNumericVariableUse

Summary:
Comment explaining the interaction between parsing of numeric variable
definition and uses in parseNumericVariableUse is stale since it
suggests both use and definition parsing is done in the same function.
This was the case in a previous version of the patch committed as
71d3f227a790d6cf39d8c6267940e0dc0c237e11 but is no longer the case. This
patch updates the comment accordingly.

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64227
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Support/FileCheck.cpptrunk/lib/Support/FileCheck.cpp
Revision 365191 by thopre:
[FileCheck] Factor some parsing checks out

Summary:
Both callers of parseNumericVariableDefinition() perform the same extra
check that no character is found after the variable name. This patch
factors out this check into parseNumericVariableDefinition().

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64226
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Support/FileCheck.cpptrunk/lib/Support/FileCheck.cpp
The file was modified/llvm/trunk/test/FileCheck/numeric-defines-diagnostics.txttrunk/test/FileCheck/numeric-defines-diagnostics.txt
Revision 365190 by thopre:
[FileCheck] Add missing final dot in comment
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Support/FileCheck.cpptrunk/lib/Support/FileCheck.cpp
Revision 365188 by evgeny777:
[ThinLTO] Attempt to recommit r365040 after caching fix

It's possible that some function can load and store the same
variable using the same constant expression:

store %Derived* @foo, %Derived** bitcast (%Base** @bar to %Derived**)
%42 = load %Derived*, %Derived** bitcast (%Base** @bar to %Derived**)

The bitcast expression was mistakenly cached while processing loads,
and never examined later when processing store. This caused @bar to
be mistakenly treated as read-only variable. See load-store-caching.ll.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/ModuleSummaryIndex.htrunk/include/llvm/IR/ModuleSummaryIndex.h
The file was modified/llvm/trunk/lib/Analysis/ModuleSummaryAnalysis.cpptrunk/lib/Analysis/ModuleSummaryAnalysis.cpp
The file was modified/llvm/trunk/lib/AsmParser/LLParser.cpptrunk/lib/AsmParser/LLParser.cpp
The file was modified/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpptrunk/lib/Bitcode/Reader/BitcodeReader.cpp
The file was modified/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpptrunk/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was modified/llvm/trunk/lib/IR/AsmWriter.cpptrunk/lib/IR/AsmWriter.cpp
The file was modified/llvm/trunk/lib/IR/ModuleSummaryIndex.cpptrunk/lib/IR/ModuleSummaryIndex.cpp
The file was modified/llvm/trunk/lib/LTO/LTO.cpptrunk/lib/LTO/LTO.cpp
The file was modified/llvm/trunk/lib/Transforms/IPO/FunctionImport.cpptrunk/lib/Transforms/IPO/FunctionImport.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/FunctionImportUtils.cpptrunk/lib/Transforms/Utils/FunctionImportUtils.cpp
The file was modified/llvm/trunk/test/Assembler/thinlto-summary.lltrunk/test/Assembler/thinlto-summary.ll
The file was modified/llvm/trunk/test/Assembler/thinlto-vtable-summary.lltrunk/test/Assembler/thinlto-vtable-summary.ll
The file was modified/llvm/trunk/test/Bitcode/summary_version.lltrunk/test/Bitcode/summary_version.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-alias.lltrunk/test/Bitcode/thinlto-alias.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-alias2.lltrunk/test/Bitcode/thinlto-alias2.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-cast.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-cast.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-pgo.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-pgo.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-relbf.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-relbf.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph-sample-profile-summary.lltrunk/test/Bitcode/thinlto-function-summary-callgraph-sample-profile-summary.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-callgraph.lltrunk/test/Bitcode/thinlto-function-summary-callgraph.ll
The file was modified/llvm/trunk/test/Bitcode/thinlto-function-summary-refgraph.lltrunk/test/Bitcode/thinlto-function-summary-refgraph.ll
The file was added/llvm/trunk/test/ThinLTO/X86/Inputs/dot-dumper2.lltrunk/test/ThinLTO/X86/Inputs/dot-dumper2.ll
The file was added/llvm/trunk/test/ThinLTO/X86/dot-dumper2.lltrunk/test/ThinLTO/X86/dot-dumper2.ll
The file was modified/llvm/trunk/test/ThinLTO/X86/index-const-prop2.lltrunk/test/ThinLTO/X86/index-const-prop2.ll
The file was added/llvm/trunk/test/ThinLTO/X86/load-store-caching.lltrunk/test/ThinLTO/X86/load-store-caching.ll
The file was added/llvm/trunk/test/ThinLTO/X86/writeonly.lltrunk/test/ThinLTO/X86/writeonly.ll
The file was added/llvm/trunk/test/ThinLTO/X86/writeonly2.lltrunk/test/ThinLTO/X86/writeonly2.ll
Revision 365187 by jhenderson:
[docs][llvm-objcopy] Improve some wording.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/CommandGuide/llvm-objcopy.rsttrunk/docs/CommandGuide/llvm-objcopy.rst
Revision 365186 by nico:
Make joined instances of JoinedOrSeparate flags point to the unaliased args, like all other arg types do

This fixes an 8-year-old regression. r105763 made it so that aliases
always refer to the unaliased option – but it missed the "joined" branch
of JoinedOrSeparate flags. (r162231 then made the Args classes
non-virtual, and r169344 moved them from clang to llvm.)

Back then, there was no JoinedOrSeparate flag that was an alias, so it
wasn't observable. Now /U in CLCompatOptions is a JoinedOrSeparate alias
in clang, and warn_slash_u_filename incorrectly used the aliased arg id
(using the unaliased one isn't really a regression since that warning
checks if the undefined macro contains slash or backslash and only then
emits the warning – and no valid use will pass "-Ufoo/bar" or similar).

Also, lld has many JoinedOrSeparate aliases, and due to this bug it had
to explicitly call `getUnaliasedOption()` in a bunch of places, even
though that shouldn't be necessary by design. After this fix in Option,
these calls really don't have an effect any more, so remove them.

No intended behavior change.

(I accidentally fixed this bug while working on PR29106 but then
wondered why the warn_slash_u_filename broke. When I figured it out, I
thought it would make sense to land this in a separate commit.)

Differential Revision: https://reviews.llvm.org/D64156
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/Driver.cppN/A
The file was modified/lld/trunk/COFF/Driver.cppN/A
The file was modified/lld/trunk/ELF/Driver.cppN/A
The file was modified/lld/trunk/ELF/DriverUtils.cppN/A
The file was modified/lld/trunk/MinGW/Driver.cppN/A
The file was modified/lld/trunk/wasm/Driver.cppN/A
The file was modified/llvm/trunk/lib/Option/Option.cpptrunk/lib/Option/Option.cpp
Revision 365185 by nico:
gn build: Merge r365179
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang/unittests/Analysis/BUILD.gntrunk/utils/gn/secondary/clang/unittests/Analysis/BUILD.gn
Revision 365183 by grimar:
[Object/ELF.h] - Improve error reporting.

The errors coming from ELF.h are usually not very
useful because they are uninformative. This patch is a
first step to improve the situation.

I tested this patch with a run of check-llvm and found
that few messages are untested. In this patch, I did not
add more tests but marked all such cases with a "TODO" comment.

For all tested messages I extended the error text to
provide more details (see test cases changed).

Differential revision: https://reviews.llvm.org/D64014
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Object/ELF.htrunk/include/llvm/Object/ELF.h
The file was modified/llvm/trunk/lib/Object/ELF.cpptrunk/lib/Object/ELF.cpp
The file was modified/llvm/trunk/test/Object/elf-invalid-phdr.testtrunk/test/Object/elf-invalid-phdr.test
The file was modified/llvm/trunk/test/Object/invalid.testtrunk/test/Object/invalid.test
The file was modified/llvm/trunk/test/tools/llvm-elfabi/binary-read-bad-vaddr.testtrunk/test/tools/llvm-elfabi/binary-read-bad-vaddr.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/invalid-e_phoff.testtrunk/test/tools/llvm-objcopy/ELF/invalid-e_phoff.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/invalid-e_shoff.testtrunk/test/tools/llvm-objcopy/ELF/invalid-e_shoff.test
The file was modified/llvm/trunk/test/tools/llvm-readobj/elf-broken-dynsym-link.testtrunk/test/tools/llvm-readobj/elf-broken-dynsym-link.test
The file was modified/llvm/trunk/test/tools/llvm-readobj/elf-dynamic-malformed.testtrunk/test/tools/llvm-readobj/elf-dynamic-malformed.test
Revision 365182 by nico:
lld-link: Make /debugtype: option work better

- The code tried to pass false to split()'s KeepEmpty parameter, but
  instead passed it to MaxSplit. As a result, it would never split on
  commas. This has been broken since the flag was added in r278056.

- The code used getSpelling() for getting the argument's values, but
  getSpelling() always returns the `/debugtype:` prefix without any
  values. So if any /debugtype: flag was passed, it always resulted in
  an "unknown option:" warning. (The warning code then used the correct
  getValue() for printing the invalid option, so the warning looked
  kind of like it made sense.) This regressed in r342894.

Slightly improve the test coverage of this feature (but since I don't
know what this flag actually does, there's still no test for the correct
semantics), and add a comment to getSpelling() explaining what it does.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/COFF/Driver.cppN/A
The file was modified/lld/trunk/test/COFF/invalid-debug-type.testN/A
The file was modified/llvm/trunk/include/llvm/Option/Arg.htrunk/include/llvm/Option/Arg.h
Revision 365180 by rksimon:
[X86][SSE] LowerINSERT_VECTOR_ELT - early out for out of range indices

Fixes OSS-Fuzz #15662
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpptrunk/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/vec_extract.lltrunk/test/CodeGen/X86/vec_extract.ll
Revision 365178 by dmgreen:
[ARM] MVE VMOV immediate handling

This adds some handling for VMOVimm, using the same method that NEON uses. We
create VMOVIMM/VMVNIMM/VMOVFPIMM nodes based on the immediate, and select them
using the now renamed ARMvmovImm/etc. There is also an extra 64bit immediate
mode that I have not yet added here.

Code by David Sherwood

Differential Revision: https://reviews.llvm.org/D63884
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpptrunk/lib/Target/ARM/ARMISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.htrunk/lib/Target/ARM/ARMISelLowering.h
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrInfo.tdtrunk/lib/Target/ARM/ARMInstrInfo.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrMVE.tdtrunk/lib/Target/ARM/ARMInstrMVE.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrNEON.tdtrunk/lib/Target/ARM/ARMInstrNEON.td
The file was modified/llvm/trunk/test/CodeGen/Thumb2/mve-loadstore.lltrunk/test/CodeGen/Thumb2/mve-loadstore.ll
The file was added/llvm/trunk/test/CodeGen/Thumb2/mve-vmovimm.lltrunk/test/CodeGen/Thumb2/mve-vmovimm.ll
The file was added/llvm/trunk/test/CodeGen/Thumb2/mve-vmvnimm.lltrunk/test/CodeGen/Thumb2/mve-vmvnimm.ll
Revision 365176 by dmgreen:
[ARM] MVE fp to int conversions

This adds the patterns needed for fptosi and sitofp.

Differential Revision: https://reviews.llvm.org/D63729
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpptrunk/lib/Target/ARM/ARMISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrMVE.tdtrunk/lib/Target/ARM/ARMInstrMVE.td
The file was added/llvm/trunk/test/CodeGen/Thumb2/mve-vcvt.lltrunk/test/CodeGen/Thumb2/mve-vcvt.ll
Revision 365175 by maskray:
[RISCV] Delete a ctor that is commented out. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVMachineFunctionInfo.htrunk/lib/Target/RISCV/RISCVMachineFunctionInfo.h
Revision 365173 by seiya:
[llvm-objcopy][NFC] Refactor output target parsing v2

Summary:
Use an enum instead of string to hold the output file format in Config.InputFormat and Config.OutputFormat. It's essential to support other output file formats other than ELF.

This patch originally has been submitted as D63239. However, there was an use-of-uninitialized-value bug and reverted in r364379 (git commit 4ee933c).

This patch includes the fix for the bug by setting Config.InputFormat/Config.OutputFormat in parseStripOptions.

Reviewers: espindola, alexshap, rupprecht, jhenderson

Reviewed By: jhenderson

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64170
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-objcopy/CopyConfig.cpptrunk/tools/llvm-objcopy/CopyConfig.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/CopyConfig.htrunk/tools/llvm-objcopy/CopyConfig.h
The file was modified/llvm/trunk/tools/llvm-objcopy/ELF/ELFObjcopy.cpptrunk/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpptrunk/tools/llvm-objcopy/llvm-objcopy.cpp
Revision 365172 by maskray:
[llvm-objcopy][test] Fix respect-umask.test after D62718/r365162
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/respect-umask.testtrunk/test/tools/llvm-objcopy/ELF/respect-umask.test
Revision 365170 by abrachet:
Fix patch not passing test cases
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/respect-umask.testtrunk/test/tools/llvm-objcopy/ELF/respect-umask.test
The file was modified/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpptrunk/tools/llvm-objcopy/llvm-objcopy.cpp
Revision 365168 by abrachet:
Temporarily stop failing test case
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/respect-umask.testtrunk/test/tools/llvm-objcopy/ELF/respect-umask.test
Revision 365167 by pcc:
gn build: Merge r365130.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang-tools-extra/clangd/refactor/tweaks/BUILD.gntrunk/utils/gn/secondary/clang-tools-extra/clangd/refactor/tweaks/BUILD.gn
Revision 365166 by pcc:
gn build: Merge r365103.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gntrunk/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn
Revision 365165 by pcc:
gn build: Merge r365007.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang-tools-extra/clang-tidy/bugprone/BUILD.gntrunk/utils/gn/secondary/clang-tools-extra/clang-tidy/bugprone/BUILD.gn
Revision 365164 by pcc:
gn build: Merge r365091.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Bitcode/Reader/BUILD.gntrunk/utils/gn/secondary/llvm/lib/Bitcode/Reader/BUILD.gn
The file was added/llvm/trunk/utils/gn/secondary/llvm/lib/Bitstreamtrunk/utils/gn/secondary/llvm/lib/Bitstream
The file was added/llvm/trunk/utils/gn/secondary/llvm/lib/Bitstream/Readertrunk/utils/gn/secondary/llvm/lib/Bitstream/Reader
The file was added/llvm/trunk/utils/gn/secondary/llvm/lib/Bitstream/Reader/BUILD.gntrunk/utils/gn/secondary/llvm/lib/Bitstream/Reader/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/BUILD.gntrunk/utils/gn/secondary/llvm/unittests/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/Bitcode/BUILD.gntrunk/utils/gn/secondary/llvm/unittests/Bitcode/BUILD.gn
The file was added/llvm/trunk/utils/gn/secondary/llvm/unittests/Bitstreamtrunk/utils/gn/secondary/llvm/unittests/Bitstream
The file was added/llvm/trunk/utils/gn/secondary/llvm/unittests/Bitstream/BUILD.gntrunk/utils/gn/secondary/llvm/unittests/Bitstream/BUILD.gn
Revision 365163 by ctopper:
[X86] Add custom isel to select ADD/SUB/OR/XOR/AND to their non-immediate forms under optsize when the immediate has additional users.

Summary:
We attempt to prevent folding immediates with multiple users under optsize. But we only do this from store nodes and X86ISD::ADD/SUB/XOR/OR/AND patterns. We don't do it for ISD::ADD/SUB/XOR/OR/AND even though we count them as users when deciding whether to fold into other nodes. This leads to situations where we block folding to a compare for example, but still fold into an AND or OR as seen in PR27202.

Unfortunately touching the isel patterns in tablegen for the ISD::ADD/SUB/XOR/OR/AND opcodes will cause the patterns to be unusable for fast isel. And we don't have a way to make a fast isel only pattern.

To workaround this, this patch adds custom isel in front of the isel table that will select the non-immediate forms if the immediate has additional users. This may create some issues for ANDN and NOT matching. And there's room for improvement with unsigned 32 immediates on 64-bit AND.

This patch needs more thorough test cases, but I wanted to get feedback on the direction. Please send me any other test cases you've seen in the wild.

I think we probably have the same issue with the immediate matching when we fold RMW from X86ISD::ADD/SUB/XOR/OR/AND. And our TEST immedaite shrinking logic. Our cost modeling for immediates that can fit in a sign extended 8-bit immediate on a 16/32/64 bit operation is completely wrong.

I also wonder if we should update the ConstantHoisting cost model and block folding for "opaque" constants. But of course constants can still be created by DAG combine and lowering optimizations.

Fixes PR27202

Reviewers: spatel, RKSimon, andreadb

Reviewed By: RKSimon

Subscribers: jsji, hiraditya, jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D59909
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpptrunk/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/popcnt.lltrunk/test/CodeGen/X86/popcnt.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr27202.lltrunk/test/CodeGen/X86/pr27202.ll
Revision 365162 by abrachet:
[llvm-objcopy] Change handling of output file permissions

Summary: Address bug [[ https://bugs.llvm.org/show_bug.cgi?id=42082 | 42082 ]] where files were always outputted with 0775 permissions. Now, the output file is given either 0666 or 0777 if the object is executable.

Reviewers: espindola, alexshap, rupprecht, jhenderson, jakehehrlich, MaskRay

Reviewed By: rupprecht, jhenderson, jakehehrlich, MaskRay

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62718
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-objcopy/ELF/mirror-permissions-unix.testtrunk/test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test
The file was added/llvm/trunk/test/tools/llvm-objcopy/ELF/mirror-permissions-win.testtrunk/test/tools/llvm-objcopy/ELF/mirror-permissions-win.test
The file was added/llvm/trunk/test/tools/llvm-objcopy/ELF/respect-umask.testtrunk/test/tools/llvm-objcopy/ELF/respect-umask.test
The file was modified/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpptrunk/tools/llvm-objcopy/llvm-objcopy.cpp
Revision 365161 by atanasyan:
[mips] Refactor expandSeq and expandSeqI methods. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpptrunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
Revision 365160 by hubert.reinterpretcast:
[NFC] Make some ObjectFormatType switches covering

Summary:
This patch removes the `default` case from some switches on
`llvm::Triple::ObjectFormatType`, and cases for the missing enumerators
are then added.

For `UnknownObjectFormat`, the action (`llvm_unreachable`) for the
`default` case is kept.

For the other unhandled cases, `report_fatal_error` is used instead.

Reviewers: sfertile, jasonliu, daltenty

Reviewed By: sfertile

Subscribers: wuzish, aheejin, jsji, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D63767
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGObjCMac.cppN/A
The file was modified/llvm/trunk/include/llvm/Support/TargetRegistry.htrunk/include/llvm/Support/TargetRegistry.h
Revision 365159 by abrachet:
[docs] [tools] Fix see also links

Summary: Changes "see also" links to use :manpage: instead of plain text or the form `name|name` which was being treated literally, not as a link.

Reviewers: jhenderson, rupprecht

Reviewed By: jhenderson

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63970
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/CommandGuide/bugpoint.rsttrunk/docs/CommandGuide/bugpoint.rst
The file was modified/llvm/trunk/docs/CommandGuide/llc.rsttrunk/docs/CommandGuide/llc.rst
The file was modified/llvm/trunk/docs/CommandGuide/lli.rsttrunk/docs/CommandGuide/lli.rst
The file was modified/llvm/trunk/docs/CommandGuide/llvm-as.rsttrunk/docs/CommandGuide/llvm-as.rst
The file was modified/llvm/trunk/docs/CommandGuide/llvm-bcanalyzer.rsttrunk/docs/CommandGuide/llvm-bcanalyzer.rst
The file was modified/llvm/trunk/docs/CommandGuide/llvm-dis.rsttrunk/docs/CommandGuide/llvm-dis.rst
The file was modified/llvm/trunk/docs/CommandGuide/llvm-extract.rsttrunk/docs/CommandGuide/llvm-extract.rst
Revision 365149 by ctopper:
[DAGCombiner] Don't combine (addcarry (uaddo X, Y), 0, Carry) -> (addcarry X, Y, Carry) if the Carry comes from the uaddo.

Summary:
The uaddo won't be removed and the addcarry will still be
dependent on the uaddo. So we'll just increase the use count
of X and Y and potentially require a COPY.

Reviewers: spatel, RKSimon, deadalnix

Reviewed By: RKSimon

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64190
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpptrunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/add-of-carry.lltrunk/test/CodeGen/X86/add-of-carry.ll
Revision 365148 by tpr:
[AMDGPU] Custom lower INSERT_SUBVECTOR v3, v4, v5, v8

Summary:
Since the changes to introduce vec3 and vec5, INSERT_VECTOR for these
sizes has been marked "expand", which made LegalizeDAG lower it to loads
and stores via a stack slot. The code got optimized a bit later, but the
now-unused stack slot was never deleted.

This commit avoids that problem by custom lowering INSERT_SUBVECTOR into
an EXTRACT_VECTOR_ELT and INSERT_VECTOR_ELT for each element in the
subvector to insert.

V2: Addressed review comments re test.

Differential Revision: https://reviews.llvm.org/D63160

Change-Id: I9e3c13e36f68cfa3431bb9814851cc1f673274e1
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpptrunk/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.htrunk/lib/Target/AMDGPU/SIISelLowering.h
The file was added/llvm/trunk/test/CodeGen/AMDGPU/insert-subvector-unused-scratch.lltrunk/test/CodeGen/AMDGPU/insert-subvector-unused-scratch.ll
Revision 365147 by spatel:
[InstCombine] allow undef elements when forming splat from chain of insertelements

We allow forming a splat (broadcast) shuffle, but we were conservatively limiting
that to cases where all elements of the vector are specified. It should be safe
from a codegen perspective to allow undefined lanes of the vector because the
expansion of a splat shuffle would become the chain of inserts again.

Forming splat shuffles can reduce IR and help enable further IR transforms.
Motivating bugs:
https://bugs.llvm.org/show_bug.cgi?id=42174
https://bugs.llvm.org/show_bug.cgi?id=16739

Differential Revision: https://reviews.llvm.org/D63848
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineVectorOps.cpptrunk/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/broadcast.lltrunk/test/Transforms/InstCombine/broadcast.ll

Summary

  1. [RISCV] Specify registers used for exception handling Implements the handling of __builtin_eh_return_regno(). Differential Revision: https://reviews.llvm.org/D63417 Patch by Edward Jones.
  2. [AArch64] Fix scalar vuqadd intrinsics operands Summary: Change the vuqadd scalar instrinsics to have the second argument as unsigned values, not signed, accordingly to https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics So now the compiler correctly warns that a undefined negative float conversion is being done. Reviewers: LukeCheeseman, john.brawn Reviewed By: john.brawn Subscribers: john.brawn, javed.absar, kristof.beyls, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64242
  3. [AArch64] Fix vsqadd scalar intrinsics operands Summary: Change the vsqadd scalar instrinsics to have the second argument as signed values, not unsigned, accordingly to https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics The existing unsigned argument can cause faulty code as negative float to unsigned conversion is undefined, which llvm/clang optimizes away. Reviewers: LukeCheeseman, john.brawn Reviewed By: john.brawn Subscribers: john.brawn, javed.absar, kristof.beyls, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64239
  4. Treat the range of representable values of floating-point types as [-inf, +inf] not as [-max, +max]. Summary: Prior to r329065, we used [-max, max] as the range of representable values because LLVM's `fptrunc` did not guarantee defined behavior when truncating from a larger floating-point type to a smaller one. Now that has been fixed, we can make clang follow normal IEEE 754 semantics in this regard and take the larger range [-inf, +inf] as the range of representable values. In practice, this affects two parts of the frontend: * the constant evaluator no longer treats floating-point evaluations that result in +-inf as being undefined (because they no longer leave the range of representable values of the type) * UBSan no longer treats conversions to floating-point type that are outside the [-max, +max] range as being undefined In passing, also remove the float-divide-by-zero sanitizer from -fsanitize=undefined, on the basis that while it's undefined per C++ rules (and we disallow it in constant expressions for that reason), it is defined by Clang / LLVM / IEEE 754. Reviewers: rnk, BillyONeal Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D63793
  5. [Rewrite] Try to fix buildbot link fail left by r365263 http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/10272
  6. [Rewrite] Try to fix buildbot link fail caused by r365258 http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/10270
  7. [Rewrite] Extend to further accept CharSourceRange Some Rewrite functions are already overloaded to accept CharSourceRange, and this extends others in the same manner. I'm calling these in code that's not ready to upstream, but I figure they might be useful to others in the meantime. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D61467
  8. Improve MSVC visualization of annot_template_id tokens Now shows the actual annotated template. E.g., {annot_template_id (A<int, double>)} Also a few miscellaneous fixes to visualizers of other types
  9. Bitstream reader: Fix undefined behavior seen after rL364464 Summary: After rL364464 the following tests started to fail when running the clang-doc tests with an ubsan instrumented build of clang-doc: Clang Tools :: clang-doc/single-file-public.cpp Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitEnumInfoBitcode Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitMethodInfoBitcode Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitRecordInfoBitcode Extra Tools Unit Tests :: clang-doc/./ClangDocTests/SerializeTest.emitInfoWithCommentBitcode We need to check that the read value is in range for being casted to the llvm::bitc::FixedAbbrevIDs enum, before the cast in ClangDocBitcodeReader::skipUntilRecordOrBlock. SerializedDiagnosticReader::skipUntilRecordOrBlock was updated in the same way. Reviewers: jfb Reviewed By: jfb Subscribers: Bigcheese, vsapsai, bruno, ilya-biryukov, dexonsmith, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64262
  10. Add a comment explaining why a function exists
  11. NFC: Add an explicit return for safety and consistency This case implicitly falls-through, which is fine now as it's at the end of the function, but it seems like an accident waiting to happen.
  12. Removed the test case added in D63538 due to windows buildbot failures
  13. [analyzer] Add a debug analyzer config to place an event for each tracked condition Differential Revision: https://reviews.llvm.org/D63642
  14. [analyzer] Track terminator conditions on which a tracked expression depends This patch is a major part of my GSoC project, aimed to improve the bug reports of the analyzer. TL;DR: Help the analyzer understand that some conditions are important, and should be explained better. If an CFGBlock is a control dependency of a block where an expression value is tracked, explain the condition expression better by tracking it. if (A) // let's explain why we believe A to be true 10 / x; // division by zero This is an experimental feature, and can be enabled by the off-by-default analyzer configuration "track-conditions". In detail: This idea was inspired by the program slicing algorithm. Essentially, two things are used to produce a program slice (a subset of the program relevant to a (statement, variable) pair): data and control dependencies. The bug path (the linear path in the ExplodedGraph that leads from the beginning of the analysis to the error node) enables to analyzer to argue about data dependencies with relative ease. Control dependencies are a different slice of the cake entirely. Just because we reached a branch during symbolic execution, it doesn't mean that that particular branch has any effect on whether the bug would've occured. This means that we can't simply rely on the bug path to gather control dependencies. In previous patches, LLVM's IDFCalculator, which works on a control flow graph rather than the ExplodedGraph was generalized to solve this issue. We use this information to heuristically guess that the value of a tracked expression depends greatly on it's control dependencies, and start tracking them as well. After plenty of evaluations this was seen as great idea, but still lacking refinements (we should have different descriptions about a conditions value), hence it's off-by-default. Differential Revision: https://reviews.llvm.org/D62883
  15. [analyzer][IDF] Add a control dependency calculator + a new debug checker I intend to improve the analyzer's bug reports by tracking condition expressions. 01 bool b = messyComputation(); 02 int i = 0; 03 if (b) // control dependency of the bug site, let's explain why we assume val 04 // to be true 05 10 / i; // warn: division by zero I'll detail this heuristic in the followup patch, strictly related to this one however: * Create the new ControlDependencyCalculator class that uses llvm::IDFCalculator to (lazily) calculate control dependencies for Clang's CFG. * A new debug checker debug.DumpControlDependencies is added for lit tests * Add unittests Differential Revision: https://reviews.llvm.org/D62619
  16. [NFC] Test commit access
  17. Make joined instances of JoinedOrSeparate flags point to the unaliased args, like all other arg types do This fixes an 8-year-old regression. r105763 made it so that aliases always refer to the unaliased option – but it missed the "joined" branch of JoinedOrSeparate flags. (r162231 then made the Args classes non-virtual, and r169344 moved them from clang to llvm.) Back then, there was no JoinedOrSeparate flag that was an alias, so it wasn't observable. Now /U in CLCompatOptions is a JoinedOrSeparate alias in clang, and warn_slash_u_filename incorrectly used the aliased arg id (using the unaliased one isn't really a regression since that warning checks if the undefined macro contains slash or backslash and only then emits the warning – and no valid use will pass "-Ufoo/bar" or similar). Also, lld has many JoinedOrSeparate aliases, and due to this bug it had to explicitly call `getUnaliasedOption()` in a bunch of places, even though that shouldn't be necessary by design. After this fix in Option, these calls really don't have an effect any more, so remove them. No intended behavior change. (I accidentally fixed this bug while working on PR29106 but then wondered why the warn_slash_u_filename broke. When I figured it out, I thought it would make sense to land this in a separate commit.) Differential Revision: https://reviews.llvm.org/D64156
  18. Fix a buildbot failure due to the AST's lifetime ending before the test
  19. [analyzer][Dominators][NFC] Add unit tests Differential Revision: https://reviews.llvm.org/D62611
  20. [CFG] Add a new function to get the proper condition of a CFGBlock getTerminatorCondition() returned a condition that may be outside of the block, while the new function returns the proper one: if (A && B && C) {} Return C instead of A && B && C. Differential Revision: https://reviews.llvm.org/D63538
  21. Silence gcc warning "control reaches end of non-void function" [NFCI] Without this fix gcc (7.4) complains with /data/repo/master/clang/lib/CodeGen/CGObjCMac.cpp: In member function 'std::__cxx11::string {anonymous}::CGObjCCommonMac::GetSectionName(llvm::StringRef, llvm::StringRef)': /data/repo/master/clang/lib/CodeGen/CGObjCMac.cpp:4944:1: error: control reaches end of non-void function [-Werror=return-type] } ^ All values in the ObjectFormatType enum are currently handled in the switch but gcc complains anyway.
  22. [NFC] Make some ObjectFormatType switches covering Summary: This patch removes the `default` case from some switches on `llvm::Triple::ObjectFormatType`, and cases for the missing enumerators are then added. For `UnknownObjectFormat`, the action (`llvm_unreachable`) for the `default` case is kept. For the other unhandled cases, `report_fatal_error` is used instead. Reviewers: sfertile, jasonliu, daltenty Reviewed By: sfertile Subscribers: wuzish, aheejin, jsji, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D63767
  23. [modules] Add PP callbacks for entering and leaving a submodule.
Revision 365305 by asb:
[RISCV] Specify registers used for exception handling

Implements the handling of __builtin_eh_return_regno().

Differential Revision: https://reviews.llvm.org/D63417
Patch by Edward Jones.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/RISCV.htrunk/lib/Basic/Targets/RISCV.h
The file was added/cfe/trunk/test/CodeGen/builtins-riscv.ctrunk/test/CodeGen/builtins-riscv.c
Revision 365300 by dnsampaio:
[AArch64] Fix scalar vuqadd intrinsics operands

Summary:
Change the vuqadd scalar instrinsics to have the second argument as unsigned values, not signed,
accordingly to https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics

So now the compiler correctly warns that a undefined negative float conversion is being done.

Reviewers: LukeCheeseman, john.brawn

Reviewed By: john.brawn

Subscribers: john.brawn, javed.absar, kristof.beyls, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64242
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/arm_neon.tdtrunk/include/clang/Basic/arm_neon.td
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-intrinsics.ctrunk/test/CodeGen/aarch64-neon-intrinsics.c
The file was added/cfe/trunk/test/CodeGen/aarch64-neon-vuqadd-float-conversion-warning.ctrunk/test/CodeGen/aarch64-neon-vuqadd-float-conversion-warning.c
Revision 365298 by dnsampaio:
[AArch64] Fix vsqadd scalar intrinsics operands

Summary:
Change the vsqadd scalar instrinsics to have the second argument as signed values, not unsigned,
accordingly to https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics

The existing unsigned argument can cause faulty code as negative float to unsigned conversion is
undefined, which llvm/clang optimizes away.

Reviewers: LukeCheeseman, john.brawn

Reviewed By: john.brawn

Subscribers: john.brawn, javed.absar, kristof.beyls, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64239
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/arm_neon.tdtrunk/include/clang/Basic/arm_neon.td
The file was modified/cfe/trunk/test/CodeGen/aarch64-neon-intrinsics.ctrunk/test/CodeGen/aarch64-neon-intrinsics.c
The file was added/cfe/trunk/test/CodeGen/aarch64-neon-vsqadd-float-conversion.ctrunk/test/CodeGen/aarch64-neon-vsqadd-float-conversion.c
Revision 365272 by rsmith:
Treat the range of representable values of floating-point types as [-inf, +inf] not as [-max, +max].

Summary:
Prior to r329065, we used [-max, max] as the range of representable
values because LLVM's `fptrunc` did not guarantee defined behavior when
truncating from a larger floating-point type to a smaller one. Now that
has been fixed, we can make clang follow normal IEEE 754 semantics in this
regard and take the larger range [-inf, +inf] as the range of representable
values.

In practice, this affects two parts of the frontend:
* the constant evaluator no longer treats floating-point evaluations
   that result in +-inf as being undefined (because they no longer leave
   the range of representable values of the type)
* UBSan no longer treats conversions to floating-point type that are
   outside the [-max, +max] range as being undefined

In passing, also remove the float-divide-by-zero sanitizer from
-fsanitize=undefined, on the basis that while it's undefined per C++
rules (and we disallow it in constant expressions for that reason), it
is defined by Clang / LLVM / IEEE 754.

Reviewers: rnk, BillyONeal

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D63793
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/UndefinedBehaviorSanitizer.rsttrunk/docs/UndefinedBehaviorSanitizer.rst
The file was modified/cfe/trunk/include/clang/Basic/Sanitizers.deftrunk/include/clang/Basic/Sanitizers.def
The file was modified/cfe/trunk/lib/AST/ExprConstant.cpptrunk/lib/AST/ExprConstant.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGExprScalar.cpptrunk/lib/CodeGen/CGExprScalar.cpp
The file was modified/cfe/trunk/test/CXX/expr/expr.const/p2-0x.cpptrunk/test/CXX/expr/expr.const/p2-0x.cpp
The file was modified/cfe/trunk/test/CodeGen/catch-undef-behavior.ctrunk/test/CodeGen/catch-undef-behavior.c
The file was modified/cfe/trunk/test/Driver/fsanitize.ctrunk/test/Driver/fsanitize.c
The file was modified/cfe/trunk/test/SemaCXX/constant-expression-cxx1y.cpptrunk/test/SemaCXX/constant-expression-cxx1y.cpp
Revision 365264 by jdenny:
[Rewrite] Try to fix buildbot link fail left by r365263

http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/10272
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/Rewrite/CMakeLists.txttrunk/unittests/Rewrite/CMakeLists.txt
Revision 365263 by jdenny:
[Rewrite] Try to fix buildbot link fail caused by r365258

http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/10270
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/Rewrite/CMakeLists.txttrunk/unittests/Rewrite/CMakeLists.txt
Revision 365258 by jdenny:
[Rewrite] Extend to further accept CharSourceRange

Some Rewrite functions are already overloaded to accept
CharSourceRange, and this extends others in the same manner.  I'm
calling these in code that's not ready to upstream, but I figure they
might be useful to others in the meantime.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D61467
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Rewrite/Core/Rewriter.htrunk/include/clang/Rewrite/Core/Rewriter.h
The file was modified/cfe/trunk/lib/Rewrite/Rewriter.cpptrunk/lib/Rewrite/Rewriter.cpp
The file was modified/cfe/trunk/unittests/Rewrite/CMakeLists.txttrunk/unittests/Rewrite/CMakeLists.txt
The file was added/cfe/trunk/unittests/Rewrite/RewriterTest.cpptrunk/unittests/Rewrite/RewriterTest.cpp
Revision 365248 by mps:
Improve MSVC visualization of annot_template_id tokens

Now shows the actual annotated template. E.g.,
{annot_template_id (A<int, double>)}

Also a few miscellaneous fixes to visualizers of other types
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/utils/ClangVisualizers/clang.natvistrunk/utils/ClangVisualizers/clang.natvis
Revision 365239 by bjope:
Bitstream reader: Fix undefined behavior seen after rL364464

Summary:
After rL364464 the following tests started to fail when
running the clang-doc tests with an ubsan instrumented
build of clang-doc:
    Clang Tools :: clang-doc/single-file-public.cpp
    Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitEnumInfoBitcode
    Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitMethodInfoBitcode
    Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitRecordInfoBitcode
    Extra Tools Unit Tests :: clang-doc/./ClangDocTests/SerializeTest.emitInfoWithCommentBitcode

We need to check that the read value is in range for being
casted to the llvm::bitc::FixedAbbrevIDs enum, before the
cast in ClangDocBitcodeReader::skipUntilRecordOrBlock.

SerializedDiagnosticReader::skipUntilRecordOrBlock was updated
in the same way.

Reviewers: jfb

Reviewed By: jfb

Subscribers: Bigcheese, vsapsai, bruno, ilya-biryukov, dexonsmith, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64262
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Frontend/SerializedDiagnosticReader.cpptrunk/lib/Frontend/SerializedDiagnosticReader.cpp
The file was modified/clang-tools-extra/trunk/clang-doc/BitcodeReader.cppN/A
Revision 365212 by nico:
Add a comment explaining why a function exists
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/Driver.cpptrunk/lib/Driver/Driver.cpp
Revision 365210 by hamzasood:
NFC: Add an explicit return for safety and consistency

This case implicitly falls-through, which is fine now as it's at the end of the
function, but it seems like an accident waiting to happen.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGDecl.cpptrunk/lib/CodeGen/CGDecl.cpp
Revision 365209 by szelethus:
Removed the test case added in D63538 due to windows buildbot failures
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/Analysis/CFGTest.cpptrunk/unittests/Analysis/CFGTest.cpp
Revision 365208 by szelethus:
[analyzer] Add a debug analyzer config to place an event for each tracked condition

Differential Revision: https://reviews.llvm.org/D63642
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.deftrunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cpptrunk/lib/Frontend/CompilerInvocation.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/BugReporterVisitors.cpptrunk/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
The file was modified/cfe/trunk/test/Analysis/analyzer-config.ctrunk/test/Analysis/analyzer-config.c
The file was modified/cfe/trunk/test/Analysis/track-control-dependency-conditions.cpptrunk/test/Analysis/track-control-dependency-conditions.cpp
Revision 365207 by szelethus:
[analyzer] Track terminator conditions on which a tracked expression depends

This patch is a major part of my GSoC project, aimed to improve the bug
reports of the analyzer.

TL;DR: Help the analyzer understand that some conditions are important,
and should be explained better. If an CFGBlock is a control dependency
of a block where an expression value is tracked, explain the condition
expression better by tracking it.

if (A) // let's explain why we believe A to be true
  10 / x; // division by zero

This is an experimental feature, and can be enabled by the
off-by-default analyzer configuration "track-conditions".

In detail:

This idea was inspired by the program slicing algorithm. Essentially,
two things are used to produce a program slice (a subset of the program
relevant to a (statement, variable) pair): data and control
dependencies. The bug path (the linear path in the ExplodedGraph that leads
from the beginning of the analysis to the error node) enables to
analyzer to argue about data dependencies with relative ease.

Control dependencies are a different slice of the cake entirely.

Just because we reached a branch during symbolic execution, it
doesn't mean that that particular branch has any effect on whether the
bug would've occured. This means that we can't simply rely on the bug
path to gather control dependencies.

In previous patches, LLVM's IDFCalculator, which works on a control flow
graph rather than the ExplodedGraph was generalized to solve this issue.
We use this information to heuristically guess that the value of a tracked
expression depends greatly on it's control dependencies, and start
tracking them as well.

After plenty of evaluations this was seen as great idea, but still
lacking refinements (we should have different descriptions about a
conditions value), hence it's off-by-default.

Differential Revision: https://reviews.llvm.org/D62883
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.deftrunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.htrunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/BugReporterVisitors.cpptrunk/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
The file was modified/cfe/trunk/test/Analysis/analyzer-config.ctrunk/test/Analysis/analyzer-config.c
The file was added/cfe/trunk/test/Analysis/track-control-dependency-conditions.cpptrunk/test/Analysis/track-control-dependency-conditions.cpp
Revision 365197 by szelethus:
[analyzer][IDF] Add a control dependency calculator + a new debug checker

I intend to improve the analyzer's bug reports by tracking condition
expressions.

01 bool b = messyComputation();
02 int i = 0;
03 if (b) // control dependency of the bug site, let's explain why we assume val
04        // to be true
05   10 / i; // warn: division by zero

I'll detail this heuristic in the followup patch, strictly related to this one
however:

* Create the new ControlDependencyCalculator class that uses llvm::IDFCalculator
  to (lazily) calculate control dependencies for Clang's CFG.
* A new debug checker debug.DumpControlDependencies is added for lit tests
* Add unittests

Differential Revision: https://reviews.llvm.org/D62619
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Analysis/Analyses/Dominators.htrunk/include/clang/Analysis/Analyses/Dominators.h
The file was modified/cfe/trunk/include/clang/Analysis/CFG.htrunk/include/clang/Analysis/CFG.h
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Checkers/Checkers.tdtrunk/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/DebugCheckers.cpptrunk/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp
The file was modified/cfe/trunk/test/Analysis/domtest.ctrunk/test/Analysis/domtest.c
The file was modified/cfe/trunk/test/Analysis/domtest.cpptrunk/test/Analysis/domtest.cpp
The file was modified/cfe/trunk/unittests/Analysis/CFGDominatorTree.cpptrunk/unittests/Analysis/CFGDominatorTree.cpp
Revision 365189 by gamesh411:
[NFC] Test commit access
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/ASTImporter.htrunk/include/clang/AST/ASTImporter.h
Revision 365186 by nico:
Make joined instances of JoinedOrSeparate flags point to the unaliased args, like all other arg types do

This fixes an 8-year-old regression. r105763 made it so that aliases
always refer to the unaliased option – but it missed the "joined" branch
of JoinedOrSeparate flags. (r162231 then made the Args classes
non-virtual, and r169344 moved them from clang to llvm.)

Back then, there was no JoinedOrSeparate flag that was an alias, so it
wasn't observable. Now /U in CLCompatOptions is a JoinedOrSeparate alias
in clang, and warn_slash_u_filename incorrectly used the aliased arg id
(using the unaliased one isn't really a regression since that warning
checks if the undefined macro contains slash or backslash and only then
emits the warning – and no valid use will pass "-Ufoo/bar" or similar).

Also, lld has many JoinedOrSeparate aliases, and due to this bug it had
to explicitly call `getUnaliasedOption()` in a bunch of places, even
though that shouldn't be necessary by design. After this fix in Option,
these calls really don't have an effect any more, so remove them.

No intended behavior change.

(I accidentally fixed this bug while working on PR29106 but then
wondered why the warn_slash_u_filename broke. When I figured it out, I
thought it would make sense to land this in a separate commit.)

Differential Revision: https://reviews.llvm.org/D64156
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/Driver.cpptrunk/lib/Driver/Driver.cpp
The file was modified/lld/trunk/COFF/Driver.cppN/A
The file was modified/lld/trunk/ELF/Driver.cppN/A
The file was modified/lld/trunk/ELF/DriverUtils.cppN/A
The file was modified/lld/trunk/MinGW/Driver.cppN/A
The file was modified/lld/trunk/wasm/Driver.cppN/A
The file was modified/llvm/trunk/lib/Option/Option.cppN/A
Revision 365181 by szelethus:
Fix a buildbot failure due to the AST's lifetime ending before the test
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/Analysis/CFGTest.cpptrunk/unittests/Analysis/CFGTest.cpp
Revision 365179 by szelethus:
[analyzer][Dominators][NFC] Add unit tests

Differential Revision: https://reviews.llvm.org/D62611
Change TypePath in RepositoryPath in Workspace
The file was added/cfe/trunk/unittests/Analysis/CFGBuildResult.htrunk/unittests/Analysis/CFGBuildResult.h
The file was added/cfe/trunk/unittests/Analysis/CFGDominatorTree.cpptrunk/unittests/Analysis/CFGDominatorTree.cpp
The file was modified/cfe/trunk/unittests/Analysis/CFGTest.cpptrunk/unittests/Analysis/CFGTest.cpp
The file was modified/cfe/trunk/unittests/Analysis/CMakeLists.txttrunk/unittests/Analysis/CMakeLists.txt
Revision 365177 by szelethus:
[CFG] Add a new function to get the proper condition of a CFGBlock

getTerminatorCondition() returned a condition that may be outside of the
block, while the new function returns the proper one:

if (A && B && C) {}

Return C instead of A && B && C.

Differential Revision: https://reviews.llvm.org/D63538
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Analysis/CFG.htrunk/include/clang/Analysis/CFG.h
The file was modified/cfe/trunk/lib/Analysis/CFG.cpptrunk/lib/Analysis/CFG.cpp
The file was modified/cfe/trunk/unittests/Analysis/CFGTest.cpptrunk/unittests/Analysis/CFGTest.cpp
Revision 365174 by uabelho:
Silence gcc warning "control reaches end of non-void function" [NFCI]

Without this fix gcc (7.4) complains with

/data/repo/master/clang/lib/CodeGen/CGObjCMac.cpp: In member function 'std::__cxx11::string {anonymous}::CGObjCCommonMac::GetSectionName(llvm::StringRef, llvm::StringRef)':
/data/repo/master/clang/lib/CodeGen/CGObjCMac.cpp:4944:1: error: control reaches end of non-void function [-Werror=return-type]
  }
  ^

All values in the ObjectFormatType enum are currently handled in the switch
but gcc complains anyway.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGObjCMac.cpptrunk/lib/CodeGen/CGObjCMac.cpp
Revision 365160 by hubert.reinterpretcast:
[NFC] Make some ObjectFormatType switches covering

Summary:
This patch removes the `default` case from some switches on
`llvm::Triple::ObjectFormatType`, and cases for the missing enumerators
are then added.

For `UnknownObjectFormat`, the action (`llvm_unreachable`) for the
`default` case is kept.

For the other unhandled cases, `report_fatal_error` is used instead.

Reviewers: sfertile, jasonliu, daltenty

Reviewed By: sfertile

Subscribers: wuzish, aheejin, jsji, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D63767
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGObjCMac.cpptrunk/lib/CodeGen/CGObjCMac.cpp
The file was modified/llvm/trunk/include/llvm/Support/TargetRegistry.hN/A
Revision 365153 by vvassilev:
[modules] Add PP callbacks for entering and leaving a submodule.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Lex/PPCallbacks.htrunk/include/clang/Lex/PPCallbacks.h
The file was modified/cfe/trunk/lib/Lex/PPLexerChange.cpptrunk/lib/Lex/PPLexerChange.cpp

Summary

  1. [clangd] Avoid slow ostreams in URI conversion. This speeds up some hot paths significantly (e.g. dex::generateProximityURIs by a third or so)
  2. [clangd] Encapsulate fields in dex token. NFC
  3. Bitstream reader: Fix undefined behavior seen after rL364464 Summary: After rL364464 the following tests started to fail when running the clang-doc tests with an ubsan instrumented build of clang-doc: Clang Tools :: clang-doc/single-file-public.cpp Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitEnumInfoBitcode Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitMethodInfoBitcode Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitRecordInfoBitcode Extra Tools Unit Tests :: clang-doc/./ClangDocTests/SerializeTest.emitInfoWithCommentBitcode We need to check that the read value is in range for being casted to the llvm::bitc::FixedAbbrevIDs enum, before the cast in ClangDocBitcodeReader::skipUntilRecordOrBlock. SerializedDiagnosticReader::skipUntilRecordOrBlock was updated in the same way. Reviewers: jfb Reviewed By: jfb Subscribers: Bigcheese, vsapsai, bruno, ilya-biryukov, dexonsmith, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64262
  4. [clangd] Added highlighting for variable references (declrefs) Summary: Added highlighting for variable references using VisitDeclRefExpr. Reviewers: hokein, sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64199
  5. [clangd] Deduplicate clang-tidy diagnostic messages. Summary: Clang-tidy checks may emit duplicated messages (clang-tidy tool deduplicate them in its custom diagnostic consumer), and we may show multiple duplicated diagnostics in the UI, which is really bad. This patch makes clangd do the deduplication, and revert the change rL363889. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64127
  6. [clangd] Mark a couple of unimportant flags as hidden. NFC
Revision 365289 by sammccall:
[clangd] Avoid slow ostreams in URI conversion.

This speeds up some hot paths significantly (e.g.  dex::generateProximityURIs
by a third or so)
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/URI.cpptrunk/clangd/URI.cpp
Revision 365288 by sammccall:
[clangd] Encapsulate fields in dex token. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/index/dex/PostingList.htrunk/clangd/index/dex/PostingList.h
The file was modified/clang-tools-extra/trunk/clangd/index/dex/Token.htrunk/clangd/index/dex/Token.h
Revision 365239 by bjope:
Bitstream reader: Fix undefined behavior seen after rL364464

Summary:
After rL364464 the following tests started to fail when
running the clang-doc tests with an ubsan instrumented
build of clang-doc:
    Clang Tools :: clang-doc/single-file-public.cpp
    Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitEnumInfoBitcode
    Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitMethodInfoBitcode
    Extra Tools Unit Tests :: clang-doc/./ClangDocTests/BitcodeTest.emitRecordInfoBitcode
    Extra Tools Unit Tests :: clang-doc/./ClangDocTests/SerializeTest.emitInfoWithCommentBitcode

We need to check that the read value is in range for being
casted to the llvm::bitc::FixedAbbrevIDs enum, before the
cast in ClangDocBitcodeReader::skipUntilRecordOrBlock.

SerializedDiagnosticReader::skipUntilRecordOrBlock was updated
in the same way.

Reviewers: jfb

Reviewed By: jfb

Subscribers: Bigcheese, vsapsai, bruno, ilya-biryukov, dexonsmith, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64262
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Frontend/SerializedDiagnosticReader.cppN/A
The file was modified/clang-tools-extra/trunk/clang-doc/BitcodeReader.cpptrunk/clang-doc/BitcodeReader.cpp
Revision 365205 by jvikstrom:
[clangd] Added highlighting for variable references (declrefs)

Summary: Added highlighting for variable references using VisitDeclRefExpr.

Reviewers: hokein, sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64199
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/SemanticHighlighting.cpptrunk/clangd/SemanticHighlighting.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/SemanticHighlightingTests.cpptrunk/clangd/unittests/SemanticHighlightingTests.cpp
Revision 365204 by hokein:
[clangd] Deduplicate clang-tidy diagnostic messages.

Summary:
Clang-tidy checks may emit duplicated messages (clang-tidy tool
deduplicate them in its custom diagnostic consumer), and we may show
multiple duplicated diagnostics in the UI, which is really bad.

This patch makes clangd do the deduplication, and revert the change
rL363889.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64127
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/Diagnostics.cpptrunk/clangd/Diagnostics.cpp
The file was modified/clang-tools-extra/trunk/clangd/Protocol.htrunk/clangd/Protocol.h
The file was removed/clang-tools-extra/trunk/clangd/test/fixits-duplication.testtrunk/clangd/test/fixits-duplication.test
The file was modified/clang-tools-extra/trunk/clangd/unittests/DiagnosticsTests.cpptrunk/clangd/unittests/DiagnosticsTests.cpp
Revision 365151 by sammccall:
[clangd] Mark a couple of unimportant flags as hidden. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/tool/ClangdMain.cpptrunk/clangd/tool/ClangdMain.cpp

Summary

  1. [ubsan][test] Fix several UBSan-* :: TestCases/ImplicitConversion tests on Solaris A couple of UBSan-* :: TestCases/ImplicitConversion testcases FAIL on Solaris/x86 (and Solaris/SPARC with https://reviews.llvm.org/D40900): FAIL: UBSan-AddressSanitizer-i386 :: TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c (49187 of 49849) ******************** TEST 'UBSan-AddressSanitizer-i386 :: TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c' FAILED ******************** [...] Command Output (stderr): -- /vol/llvm/src/compiler-rt/local/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c:53:11: error: CHECK: expected string not found in input // CHECK: {{.*}}signed-integer-truncation-or-sign-change-blacklist.c:[[@LINE-1]]:10: runtime error: implicit conversion from type '{{.*}}' (aka 'unsigned int') of value 4294967295 (32-bit, unsigned) to type '{{.*}}' (aka 'signed char') changed the value to -1 (8-bit, signed) ^ <stdin>:1:1: note: scanning from here /vol/llvm/src/compiler-rt/local/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c:52:10: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 4294967295 (32-bit, unsigned) to type 'int8_t' (aka 'char') changed the value to -1 (8-bit, signed) ^ <stdin>:1:1: note: with "@LINE-1" equal to "52" /vol/llvm/src/compiler-rt/local/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c:52:10: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 4294967295 (32-bit, unsigned) to type 'int8_t' (aka 'char') changed the value to -1 (8-bit, signed) ^ <stdin>:1:69: note: possible intended match here /vol/llvm/src/compiler-rt/local/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c:52:10: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 4294967295 (32-bit, unsigned) to type 'int8_t' (aka 'char') changed the value to -1 (8-bit, signed) ^ This is always a difference for int8_t where signed char is expected, but only char seen. I could trace this to <sys/int_types.h> which has /* * Basic / Extended integer types * * The following defines the basic fixed-size integer types. * * Implementations are free to typedef them to Standard C integer types or * extensions that they support. If an implementation does not support one * of the particular integer data types below, then it should not define the * typedefs and macros corresponding to that data type. Note that int8_t * is not defined in -Xs mode on ISAs for which the ABI specifies "char" * as an unsigned entity because there is no way to define an eight bit * signed integral. */ #if defined(_CHAR_IS_SIGNED) typedef char int8_t; #else #if defined(__STDC__) typedef signed char int8_t; #endif #endif _CHAR_IS_SIGNED is always defined on both sparc and x86. Since it seems ok to have either form, I've changed the affected tests to use '{{(signed )?}}char' instead of 'signed char'. Tested on x86_64-pc-solaris2.11, sparcv9-sun-solaris2.11, and x86_64-pc-linux-gnu. Differential Revision: https://reviews.llvm.org/D63984
  2. [ubsan][test] Don't disable ubsan testing on 64-bit Solaris/x86 Unlike asan, which isn't supported yet on 64-bit Solaris/x86, there's no reason to disable ubsan. This patch does that, but keeps the 64-bit ubsan-with-asan tests disabled. Tested on x86_64-pc-solaris2.11. Differential Revision: https://reviews.llvm.org/D63982
  3. [TSan] Attempt to fix iOS on-device test
  4. XFAIL a few failing TSan-fiber tests for iOS
  5. Remove `XFAIL: ios` from test that passes in CI
  6. Revert "[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.4" This reverts commit 6bb13da7c16f2a677cc285bb6ffeb79dfb0cfe64.
  7. [TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.5 Remove unnecessary computation of mangled SP for ARM64 architecture. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D64022
  8. [TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.4 For x86_64, since we don't clobber %rsi (2nd argument) anymore, we don't have to save/restore it. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D63946
Revision 365303 by ro:
[ubsan][test] Fix several UBSan-* :: TestCases/ImplicitConversion tests on Solaris

A couple of UBSan-*  :: TestCases/ImplicitConversion testcases FAIL on Solaris/x86
(and Solaris/SPARC with https://reviews.llvm.org/D40900):

  FAIL: UBSan-AddressSanitizer-i386 :: TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c (49187 of 49849)
  ******************** TEST 'UBSan-AddressSanitizer-i386 :: TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c' FAILED ********************
  [...]
  Command Output (stderr):
  --
  /vol/llvm/src/compiler-rt/local/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c:53:11: error: CHECK: expected string not found in input
  // CHECK: {{.*}}signed-integer-truncation-or-sign-change-blacklist.c:[[@LINE-1]]:10: runtime error: implicit conversion from type '{{.*}}' (aka 'unsigned int') of value 4294967295 (32-bit, unsigned) to type '{{.*}}' (aka 'signed char') changed the value to -1 (8-bit, signed)
            ^
  <stdin>:1:1: note: scanning from here
  /vol/llvm/src/compiler-rt/local/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c:52:10: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 4294967295 (32-bit, unsigned) to type 'int8_t' (aka 'char') changed the value to -1 (8-bit, signed)
  ^
  <stdin>:1:1: note: with "@LINE-1" equal to "52"
  /vol/llvm/src/compiler-rt/local/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c:52:10: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 4294967295 (32-bit, unsigned) to type 'int8_t' (aka 'char') changed the value to -1 (8-bit, signed)
  ^
  <stdin>:1:69: note: possible intended match here
  /vol/llvm/src/compiler-rt/local/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c:52:10: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 4294967295 (32-bit, unsigned) to type 'int8_t' (aka 'char') changed the value to -1 (8-bit, signed)
                                                                      ^

This is always a difference for int8_t where signed char is expected, but only
char seen.

I could trace this to <sys/int_types.h> which has

  /*
   * Basic / Extended integer types
   *
   * The following defines the basic fixed-size integer types.
   *
   * Implementations are free to typedef them to Standard C integer types or
   * extensions that they support. If an implementation does not support one
   * of the particular integer data types below, then it should not define the
   * typedefs and macros corresponding to that data type.  Note that int8_t
   * is not defined in -Xs mode on ISAs for which the ABI specifies "char"
   * as an unsigned entity because there is no way to define an eight bit
   * signed integral.
   */
  #if defined(_CHAR_IS_SIGNED)
  typedef char int8_t;
  #else
  #if defined(__STDC__)
  typedef signed char int8_t;
  #endif
  #endif

_CHAR_IS_SIGNED is always defined on both sparc and x86.  Since it seems ok
to have either form, I've changed the affected tests to use
'{{(signed )?}}char' instead of 'signed char'.

Tested on x86_64-pc-solaris2.11, sparcv9-sun-solaris2.11, and x86_64-pc-linux-gnu.

Differential Revision: https://reviews.llvm.org/D63984
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/ubsan/TestCases/ImplicitConversion/integer-arithmetic-value-change.ctrunk/test/ubsan/TestCases/ImplicitConversion/integer-arithmetic-value-change.c
The file was modified/compiler-rt/trunk/test/ubsan/TestCases/ImplicitConversion/integer-conversion.ctrunk/test/ubsan/TestCases/ImplicitConversion/integer-conversion.c
The file was modified/compiler-rt/trunk/test/ubsan/TestCases/ImplicitConversion/integer-sign-change.ctrunk/test/ubsan/TestCases/ImplicitConversion/integer-sign-change.c
The file was modified/compiler-rt/trunk/test/ubsan/TestCases/ImplicitConversion/integer-truncation.ctrunk/test/ubsan/TestCases/ImplicitConversion/integer-truncation.c
The file was modified/compiler-rt/trunk/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.ctrunk/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-or-sign-change-blacklist.c
The file was modified/compiler-rt/trunk/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation.ctrunk/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation.c
Revision 365302 by ro:
[ubsan][test] Don't disable ubsan testing on 64-bit Solaris/x86

Unlike asan, which isn't supported yet on 64-bit Solaris/x86, there's no reason to disable
ubsan.  This patch does that, but keeps the 64-bit ubsan-with-asan tests disabled.

Tested on x86_64-pc-solaris2.11.

Differential Revision: https://reviews.llvm.org/D63982
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/ubsan/CMakeLists.txttrunk/test/ubsan/CMakeLists.txt
The file was modified/compiler-rt/trunk/test/ubsan_minimal/CMakeLists.txttrunk/test/ubsan_minimal/CMakeLists.txt
Revision 365257 by yln:
[TSan] Attempt to fix iOS on-device test
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/fuzzer/seed_inputs.testtrunk/test/fuzzer/seed_inputs.test
Revision 365254 by yln:
XFAIL a few failing TSan-fiber tests for iOS
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/tsan/fiber_from_thread.cctrunk/test/tsan/fiber_from_thread.cc
The file was modified/compiler-rt/trunk/test/tsan/fiber_longjmp.cctrunk/test/tsan/fiber_longjmp.cc
The file was modified/compiler-rt/trunk/test/tsan/fiber_race.cctrunk/test/tsan/fiber_race.cc
The file was modified/compiler-rt/trunk/test/tsan/fiber_simple.cctrunk/test/tsan/fiber_simple.cc
The file was modified/compiler-rt/trunk/test/tsan/fiber_two_threads.cctrunk/test/tsan/fiber_two_threads.cc
Revision 365253 by yln:
Remove `XFAIL: ios` from test that passes in CI
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/fuzzer/fuzzer-printcovpcs.testtrunk/test/fuzzer/fuzzer-printcovpcs.test
Revision 365244 by yln:
Revert "[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.4"

This reverts commit 6bb13da7c16f2a677cc285bb6ffeb79dfb0cfe64.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_amd64.Strunk/lib/tsan/rtl/tsan_rtl_amd64.S
Revision 365230 by yln:
[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.5

Remove unnecessary computation of mangled SP for ARM64 architecture.

Reviewed By: dvyukov

Differential Revision: https://reviews.llvm.org/D64022
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_aarch64.Strunk/lib/tsan/rtl/tsan_rtl_aarch64.S
Revision 365229 by yln:
[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.4

For x86_64, since we don't clobber %rsi (2nd argument) anymore, we don't
have to save/restore it.

Reviewed By: dvyukov

Differential Revision: https://reviews.llvm.org/D63946
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_amd64.Strunk/lib/tsan/rtl/tsan_rtl_amd64.S

Summary

  1. Make forward_list::remove/remove_if/unique all return void before C++20; undoes that bit of D58332. Thanks to Mikhail Maltsev for pointing this out
  2. Make ~mutex and ~condition_variable trivial on Windows. The implementations of __libcpp_mutex_destroy and __libcpp_condvar_destroy are already NOPs, so this optimization is safe to perform. See r365273 and PR27658 for more information.
  3. Fix PR27658 - Make ~mutex trivial when possible. Currently std::mutex has a constexpr constructor, but a non-trivial destruction. The constexpr constructor is required to ensure the construction of a mutex with static storage duration happens at compile time, during constant initialization, and not during dynamic initialization. This means that static mutex's are always initialized and can be used safely during dynamic initialization without the "static initialization order fiasco". A trivial destructor is important for similar reasons. If a mutex is used during dynamic initialization it might also be used during program termination. If a static mutex has a non-trivial destructor it will be invoked during termination. This can introduce the "static deinitialization order fiasco". Additionally, function-local statics emit a guard variable around non-trivially destructible types. This results in horrible codegen and adds a runtime cost to every call to that function. non-local static's also result in slightly worse codegen but it's not as big of a problem. Example codegen can be found here: https://goo.gl/3CSzbM Note: This optimization is not safe with every pthread implementation. Some implementations allocate on the first call to pthread_mutex_lock and free the allocation in pthread_mutex_destroy. Also, changing the triviality of the destructor is not an ABI break. At least to the best of my knowledge :-)
  4. Make list::remove/remove_if/unique all return void before C++20; undoes that bit of D58332. Thanks to Mikhail Maltsev for pointing this out
  5. This patch makes swap functions constexpr. Both swap overloads, swap_ranges and iter_swap are updated (with tests).
  6. Revert "[libc++] Do not cleverly link against libc++abi just because it happens to be there" This reverts r365222, which broke the libc++ build bots.
  7. [libc++] Do not cleverly link against libc++abi just because it happens to be there Summary: Otherwise, when libcxxabi is not an enabled project in the monorepo, we get a link error because we try to link against non-existent cxxabi_shared. More generally, we shouldn't change the behavior of the build based on implicit things like whether a file happens to be at a specific path or not. Reviewers: EricWF Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D63883
  8. docs: add documentation for `LIBCXX_INCLUDE_TESTS` Add some missing documentation for the `LIBCXX_INCLUDE_TESTS` option. Patch by Jean Heyd Meneide!
Revision 365290 by marshall:
Make forward_list::remove/remove_if/unique all return void before C++20; undoes that bit of D58332. Thanks to Mikhail Maltsev for pointing this out
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/forward_listtrunk/include/forward_list
The file was modified/libcxx/trunk/include/listtrunk/include/list
The file was modified/libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpptrunk/test/std/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpptrunk/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpptrunk/test/std/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpptrunk/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp
Revision 365281 by ericwf:
Make ~mutex and ~condition_variable trivial on Windows.

The implementations of __libcpp_mutex_destroy and __libcpp_condvar_destroy
are already NOPs, so this optimization is safe to perform.

See r365273 and PR27658 for more information.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/__configtrunk/include/__config
The file was modified/libcxx/trunk/include/__mutex_basetrunk/include/__mutex_base
The file was modified/libcxx/trunk/src/CMakeLists.txttrunk/src/CMakeLists.txt
The file was modified/libcxx/trunk/src/condition_variable.cpptrunk/src/condition_variable.cpp
The file was added/libcxx/trunk/src/condition_variable_destructor.cpptrunk/src/condition_variable_destructor.cpp
Revision 365273 by ericwf:
Fix PR27658 - Make ~mutex trivial when possible.

Currently std::mutex has a constexpr constructor, but a non-trivial
destruction.

The constexpr constructor is required to ensure the construction of a
mutex with static storage duration happens at compile time, during
constant initialization, and not during dynamic initialization.
This means that static mutex's are always initialized and can be used
safely during dynamic initialization without the "static initialization
order fiasco".

A trivial destructor is important for similar reasons. If a mutex is
used during dynamic initialization it might also be used during program
termination. If a static mutex has a non-trivial destructor it will be
invoked during termination. This can introduce the "static
deinitialization order fiasco".

Additionally, function-local statics emit a guard variable around
non-trivially destructible types. This results in horrible codegen and
adds a runtime cost to every call to that function. non-local static's
also result in slightly worse codegen but it's not as big of a problem.

Example codegen can be found here: https://goo.gl/3CSzbM

Note: This optimization is not safe with every pthread implementation.
Some implementations allocate on the first call to pthread_mutex_lock
and free the allocation in pthread_mutex_destroy.

Also, changing the triviality of the destructor is not an ABI break.
At least to the best of my knowledge :-)
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/__configtrunk/include/__config
The file was modified/libcxx/trunk/include/__mutex_basetrunk/include/__mutex_base
The file was modified/libcxx/trunk/src/CMakeLists.txttrunk/src/CMakeLists.txt
The file was modified/libcxx/trunk/src/mutex.cpptrunk/src/mutex.cpp
The file was added/libcxx/trunk/src/mutex_destructor.cpptrunk/src/mutex_destructor.cpp
The file was modified/libcxx/trunk/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/default.pass.cpptrunk/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/default.pass.cpp
Revision 365261 by marshall:
Make list::remove/remove_if/unique all return void before C++20; undoes that bit of D58332. Thanks to Mikhail Maltsev for pointing this out
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/listtrunk/include/list
The file was modified/libcxx/trunk/test/std/containers/sequences/list/list.ops/remove.pass.cpptrunk/test/std/containers/sequences/list/list.ops/remove.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/sequences/list/list.ops/remove_if.pass.cpptrunk/test/std/containers/sequences/list/list.ops/remove_if.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/sequences/list/list.ops/unique.pass.cpptrunk/test/std/containers/sequences/list/list.ops/unique.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/sequences/list/list.ops/unique_pred.pass.cpptrunk/test/std/containers/sequences/list/list.ops/unique_pred.pass.cpp
Revision 365238 by zoecarver:
This patch makes swap functions constexpr. Both swap overloads, swap_ranges and iter_swap are updated (with tests).
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/type_traitstrunk/include/type_traits
The file was modified/libcxx/trunk/include/utilitytrunk/include/utility
The file was modified/libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.swap/iter_swap.pass.cpptrunk/test/std/algorithms/alg.modifying.operations/alg.swap/iter_swap.pass.cpp
The file was modified/libcxx/trunk/test/std/algorithms/alg.modifying.operations/alg.swap/swap_ranges.pass.cpptrunk/test/std/algorithms/alg.modifying.operations/alg.swap/swap_ranges.pass.cpp
The file was modified/libcxx/trunk/test/std/utilities/utility/utility.swap/swap.pass.cpptrunk/test/std/utilities/utility/utility.swap/swap.pass.cpp
The file was modified/libcxx/trunk/test/std/utilities/utility/utility.swap/swap_array.pass.cpptrunk/test/std/utilities/utility/utility.swap/swap_array.pass.cpp
Revision 365233 by Louis Dionne:
Revert "[libc++] Do not cleverly link against libc++abi just because it happens to be there"

This reverts r365222, which broke the libc++ build bots.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/CMakeLists.txttrunk/CMakeLists.txt
The file was modified/libcxx/trunk/cmake/Modules/HandleLibCXXABI.cmaketrunk/cmake/Modules/HandleLibCXXABI.cmake
Revision 365222 by Louis Dionne:
[libc++] Do not cleverly link against libc++abi just because it happens to be there

Summary:
Otherwise, when libcxxabi is not an enabled project in the monorepo, we
get a link error because we try to link against non-existent cxxabi_shared.

More generally, we shouldn't change the behavior of the build based on
implicit things like whether a file happens to be at a specific path or
not.

Reviewers: EricWF

Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D63883
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/CMakeLists.txttrunk/CMakeLists.txt
The file was modified/libcxx/trunk/cmake/Modules/HandleLibCXXABI.cmaketrunk/cmake/Modules/HandleLibCXXABI.cmake
Revision 365154 by Saleem Abdulrasool:
docs: add documentation for `LIBCXX_INCLUDE_TESTS`

Add some missing documentation for the `LIBCXX_INCLUDE_TESTS` option.

Patch by Jean Heyd Meneide!
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/docs/BuildingLibcxx.rsttrunk/docs/BuildingLibcxx.rst

Summary

  1. Fix runtest test-suite pgo + multisampling. There were are at least 3 issues when combining --pgo with --exec-multisample: * Make clean was not called between a measurement run and the next profiling run. * Make all was only called on the first measurement run. * Cmake variable TEST_SUITE_PROFILE_USE=OFF was not set on the second and later profiling runs. These 3 issues are fixed by this patch. It is also questionable whether we need to run profile collection multiple times. With the instrumentation-based profile collection, the profiles should be deterministic between different runs, and hence there is no value in collecting profiles multiple times. However, if in the future there would also be support for collecting profiles e.g. based on performance counter sampling, the profiles might be non-deterministic in such a scenario and having multiple profiling runs could make a lot more sense. I'm leaving that discussion for another time.
Revision 365196 by kbeyls:
Fix runtest test-suite pgo + multisampling.

There were are at least 3 issues when combining --pgo with
--exec-multisample:

* Make clean was not called between a measurement run and the next
   profiling run.
* Make all was only called on the first measurement run.
* Cmake variable TEST_SUITE_PROFILE_USE=OFF was not set on the
   second and later profiling runs.

These 3 issues are fixed by this patch.

It is also questionable whether we need to run profile collection
multiple times. With the instrumentation-based profile collection, the
profiles should be deterministic between different runs, and hence there
is no value in collecting profiles multiple times.
However, if in the future there would also be support for collecting
profiles e.g. based on performance counter sampling, the profiles might
be non-deterministic in such a scenario and having multiple profiling
runs could make a lot more sense. I'm leaving that discussion for
another time.
Change TypePath in RepositoryPath in Workspace
The file was modified/lnt/trunk/lnt/tests/test_suite.pylnt/tests/test_suite.py
The file was modified/lnt/trunk/tests/runtest/test_suite-pgo.shtesttests/runtest/test_suite-pgo.shtest