UnstableChanges

Summary

  1. [mlir] Change ConvertOpToLLVMPattern::matchAndRewrite argument to concrete operand type. (details)
  2. [mlir] Fix bad rebase landed in acb69f3b7c83. (details)
  3. [clangd] Add symbol origin for remote index (details)
  4. [libc++] P1645 constexpr for <numeric> (details)
  5. [Timer] Add a command option to enable/disable timer sorting. (details)
  6. [X86] Have indirect calls take 64-bit operands in 64-bit modes (details)
  7. [ConstantFold] Fold operations to poison if possible (details)
  8. [X86] Do not allow FixupSetCC to relax constraints (details)
  9. [X86] Add -verify-machineinstrs to pic.ll (details)
  10. [BasicAA] Add tests for suboptimal speculation results (NFC) (details)
  11. [libc++] Disable some tests using gcc 9. (details)
  12. [ARMAttributeParser] Correctly parse and print Tag_THUMB_ISA_use=3 (details)
  13. Implement computeHostNumHardwareThreads() for FreeBSD (details)
  14. [mlir] Add a shape function library op (details)
  15. Revert "[mlir] Add a shape function library op" (details)
  16. [BasicAA] Generalize recursive phi alias analysis (details)
  17. [LangRef] minor fixes to poison examples and well-defined values section (NFC) (details)
  18. [ConstantFold] Fold more operations to poison (details)
  19. [clangd] Cache .clang-tidy files again. (details)
  20. [clangd] Fix path edge-case condition. (details)
  21. [libc++] hash<long double>: adjust for x86-64 ILP32 (details)
  22. [IR] remove redundant code comments; NFC (details)
  23. [IR] simplify code in removePredecessor(); NFCI (details)
  24. [VPlan] Manage stored values of interleave groups using VPUser (NFC) (details)
  25. [OpenMP][OMPT][NFC] Fix flaky test (details)
  26. [OpenMP][OMPT][NFC] Fix failing test (details)
  27. Use `const` for array pointers in `StandardTypes.h` (details)
  28. [VPlan] Use VPValue and VPUser ops to print VPReplicateRecipe. (details)
  29. [VPlan] Fix -Wunused-variable after a813090072c0527eb6ed51dd2ea4f54cb6bc72a0 (details)
  30. [mlir] Add a shape function library op (details)
  31. [RISCV] Change predicate on InstAliases for GORCI/GREVI/SHFLI/UNSHFLI to HasStdExtZbp instead of HasStdExtZbbOrZbp. (details)
  32. [ELF] Check --orphan-handling=place (default value) early (details)
  33. [DL] Optimize address space zero lookup (NFC) (details)
  34. [ELF] Improve 2 SmallVector<*, N> usage (details)
  35. [clang-tidy] [clangd] Avoid multi-line diagnostic range for else-after-return diagnostic (details)
  36. Use bool in place of int for boolean things in the C API (details)
  37. [MC] Copy visibility for .symver created symbols (details)
  38. [mlir][Python] Python API cleanups and additions found during code audit. (details)
  39. [mlir][Python] Add an Operation.result property. (details)
  40. [RISCV] Remove unused Addend parameter from classifySymbolRef. NFC (details)
  41. Remove redundant check for access in the conversion from the naming (details)
  42. [IndVars] ICmpInst should not prevent IV widening (details)
  43. [mlir][CAPI] Convert the rest of the API int -> bool. (details)
  44. [lldb/test] Avoid the socket "pump" thread (details)
  45. [clang] Improve diagnostics for auto-return-type function if the return expr had an error. (details)
  46. [libc] Improve memcpy copy loop (details)
  47. [AST][RecoveryAST] Preseve more invalid return stmt. (details)
  48. [mlir][LLVMIR] Add support for InlineAsmOp (details)
  49. [TableGen][SchedModels] Fix read/write variant substitution (details)
  50. [ARM] Constant predicate tests. NFC (details)
  51. [NFC][SimplifyCFG] Add STATISTIC() to the FoldValueComparisonIntoPredecessors() fold (details)
  52. [clang-tidy] add concurrency module (details)
  53. [clang-tidy] implement concurrency-mt-unsafe (details)
  54. Fix test case (details)
  55. [clang-format] State where clang-format-diff.py should be run from (details)
  56. [lldb] Error when there are no ports to launch a gdbserver on (details)
  57. [NFC][clang-tidy] Do link FrontendOpenMP into concurrency module after all (details)
  58. [LegacyPM] Simplify PMTopLevelManager::collectLastUses. NFC. (details)
  59. Add `using ConvertToLLVMPattern::match/matchAndRewrite` to avoid 'hiding overload' warning. (details)
  60. [X86][AVX512] Only lower to VPALIGNR if we have BWI (PR48322) (details)
  61. [lldb] Use llvm::Optional for port in LaunchGDBServer (details)
  62. [AArch64][CostModel] Fix cost for mul <2 x i64> (details)
  63. Support custom expedited register set in gdb-remote (details)
  64. Send SVE vg register in custom expedited registerset (details)
  65. [gn build] Manually sync 8da7efb and cac5be4 (details)
  66. [llvm-objdump] Document --mattr=help in --help output (details)
  67. [VE] Specify vector alignments (details)
  68. [VPlan] Use VPUser to manage VPPredInstPHIRecipe operand (NFC). (details)
  69. [VE] Change the behaviour of truncate (details)
  70. Try to fix bots after 112b3cb by removing cortex-a57-misched-mla.s (details)
  71. [VE] Optimize prologue/epilogue instructions (details)
  72. [mac/lld] Add support for response files (details)
  73. Try harder to get rid off cortex-a57-misched-mla.s (details)
  74. [lld/mac] Add --reproduce option (details)
  75. [InstCombine][X86] Add addsub tests showing failure to simplify demandedelts (PR46277) (details)
  76. [llvm-objdump] Require x86 target for mcpu/attr test (details)
  77. [ConstantFold] Don't fold and/or i1 poison to poison (NFC) (details)
  78. [LangRef] missing link, minor fix (details)
  79. [LLDB/Lua] add support for one-liner breakpoint callback (details)
  80. Add 'asserts' requiremnt to test/CodeGen/ARM/cortex-a57-misched-mla.mir (details)
  81. [IR][LoopRotate] avoid leaving phi with no operands (PR48296) (details)
  82. [lld-macho] Implement -fatal_warnings (details)
  83. [windows-itanium] handle dllimport/export code paths separately and share with PS4 (details)
  84. [mlir] Make mlir-cpu-runner depend on native instead of X86 (details)
  85. Revert "[IR][LoopRotate] avoid leaving phi with no operands (PR48296)" (details)
  86. [lldb] Always include template arguments that have their default value in the internal type name (details)
  87. [IR] improve code comment/logic in removePredecessor(); NFC (details)
  88. [X86] Add vbmi2 test coverage for vector rotations (details)
  89. [ConstraintElimination] Add additional GEP decomposition tests. (details)
  90. [RISCV] Only combine (or (GREVI x, shamt), x) -> GORCI if shamt is a power of 2. (details)
  91. [X86] Don't emit R_X86_64_[REX_]GOTPCRELX for a GOT load with an offset (details)
  92. [ELF] Don't relax R_X86_64_GOTPCRELX if addend != -4 (details)
  93. [RISCV] Custom legalize bswap/bitreverse to GREVI with Zbp extension to enable them to combine with other GREVI instructions (details)
  94. [IR][LoopRotate] remove assertion that phi must have at least one operand (details)
  95. [RISCV] Combine (GORCI (GORCI x, C2), C1) -> (GORCI x, C1|C2). (details)
  96. [sanitizer] Disable use_tls_dynamic on on-Android x86 Linux. (details)
  97. [Flang][OpenMP] Add semantic checks for OpenMP Private clause. (details)
  98. [ASTImporter] Support import of CXXDeductionGuideDecl (details)
  99. [FPEnv] clang should get from the AST the metadata for constrained FP builtins (details)
  100. [analyzer][StdLibraryFunctionsChecker] Fix typos in summaries of mmap and mmap64 (details)
  101. Add -fintegrated-as to second invocation of clang in test case. (details)
  102. [VE] Clean check routines of branch types (details)
  103. [VE] Optimize prologue/epilogue instructions about GOT (details)
  104. [SelectionDAGBuilder] Update signature of `getRegsAndSizes()`. (details)
  105. [VE][NFC] Update comments (details)
  106. [InstCombine][X86] Add addsub PR46277 test case (details)
  107. [PowerPC] Delete remnant Darwin code in PPCAsmParser (details)
  108. [CSSPGO] Pseudo probe instrumentation pass (details)
  109. [CSSPGO] A Clang switch -fpseudo-probe-for-profiling for pseudo-probe instrumentation. (details)
  110. [gn build] Port 64fa8cce225 (details)
  111. [InstCombine][X86] Add basic addsub intrinsic SimplifyDemandedVectorElts support (PR46277) (details)
  112. [libcxxabi] Add macro for changing functions to support the relative vtables ABI (details)
  113. [X86] Zero-extend pointers to i64 for x86_64 (details)
  114. [FastISel] NFC: Remove obsolete -fast-isel-sink-local-values option (details)
  115. [CSSPGO] Disabling a pseudo probe test on non-x86 platforms. (details)
  116. [AArch64] Enable Cortex-A55 schedmodel (details)
  117. [x86] add tests for maxnum/minnum with nnan; NFC (details)
  118. [ms] [llvm-ml] Implement the statement expansion operator (details)
  119. Creating a named struct requires only a Context and a name, but looking up a struct by name requires a Module. The method on Module merely accesses the LLVMContextImpl and no data from the module itself, so this patch moves getTypeByName to a static method on StructType that takes a Context and a name. (details)
  120. [DL] Inline getAlignmentInfo() implementation (NFC) (details)
  121. [llvm][inliner] Reuse the inliner pass to implement 'always inliner' (details)
  122. SplitKit: Use Register (details)
  123. [ms] [llvm-ml] Test macro function invocations in arbitrary positions (details)
  124. [libTooling] Remove deprecated Clang Transformer declarations (details)
  125. github actions: Use correct credentials for pushing (details)
  126. [FastISel] NFC: Clean up unnecessary bookkeeping (details)
  127. [ConstraintElimination] Expand GEP decomposition tests. (details)
  128. [CodeGen] -fno-delete-null-pointer-checks: change dereferenceable to dereferenceable_or_null (details)
  129. [HIP] Fix HIP test on windows due to lld suffix (details)
  130. [lld-macho] Don't warn on non-existent system libraries (details)
  131. [lld/mac] Don't warn on -bundle and -execute flags (details)
  132. [OpenMP] libomp: fix mutexinoutset dependence for proxy tasks (details)
  133. [OpenMP] libomp: change shm name to include UID, call unregister_lib on SIGTERM (details)
  134. Serialization: Change InputFile to use FileEntryRef and add getVirtualFileRef, NFC (details)
  135. [OpenMP][Tests][NFC] Use FileCheck from cmake config (details)
  136. [llvm-symbolizer] Fix native symbolization on windows for inline sites. (details)
  137. [lldb] Give TestDefaultTemplateArgs a unique class name (details)
  138. FileManager: Add FileEntryRef::getDir, returning DirectoryEntryRef (details)
  139. Remove dead code added in ac49500cd0484e1b2dcf37fa4c0dade6f113c2c9, NFC (details)
  140. [llvm-symbolizer] Fix typo in llvm-symbolizer test from a previous commit. (details)
  141. [clang][RelativeVTablesABI] Use dso_local_equivalent rather than emitting stubs (details)
  142. [InlineCost] prefer range-for. NFC (details)
  143. Fix GCC 5.3 compile error in ASTImporter code (details)
  144. [libcxx] remove checks for __STDCPP_THREADS__ as it is defined by compiler (details)
  145. [AArch64][GlobalISel] Fix crash during legalization of a vector G_SELECT with scalar mask. (details)
  146. [WinASan] Improve exception reporting accuracy (details)
  147. clang/test: Remove platform-linker feature (details)
  148. [mlir] Small cleanups to func-bufferize/finalizing-bufferize (details)
  149. Lex: Update Module::findHeader to return FileEntryRef, NFC (details)
  150. Don't count attributes when addressing operands. (details)
  151. [llvm] Fix for failing test from cf8ff75bade763b054476321dcb82dcb2e7744c7 (details)
  152. Recommit "[llvm-symbolizer] Switch to using native symbolizer by default on Windows" (details)
  153. [clang][Fuchsia] Add relative-vtables multilib (details)
  154. Revert "[clang][Fuchsia] Add relative-vtables multilib" (details)
  155. [clang][Fuchsia] Add relative-vtables multilib (details)
  156. [GlobalISel] Fix -Wunused-variable (details)
  157. [GlobalISel] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds (details)
  158. Revert "[clang][Fuchsia] Add relative-vtables multilib" (details)
  159. Add help text for -nogpuinc (details)
  160. [lldb] Refactor GetDeviceSupportDirectoryNames and GetPlatformName (NFC) (details)
  161. Add MachineModuleInfo constructor with external MCContext (details)
  162. [RISCV] Rename RISCVGenSystemOperands.inc to RISCVGenSearchableTables.inc to prepare for more tables. NFC (details)
  163. Initial commit of mktime. (details)
  164. [DSE] Remove a redundant call to getLocForWriteEx() (details)
  165. [Remarks][1/2] Expand remarks hotness threshold option support in more tools (details)
  166. [Remarks][2/2] Expand remarks hotness threshold option support in more tools (details)
  167. [CodeView] Remove unused declaration collectInlineSiteChildren (NFC) (details)
  168. [llvm-readelf/obj] - Move unique warning handling logic to the `ObjDumper`. (details)
  169. [compiler-rt] [emutls] Handle unused parameters in a compiler agnostic way (details)
  170. [llvm-readelf] - Switch to using from `reportWarning` to `reportUniqueWarning` in `DynRegionInfo`. (details)
  171. collect_and_build_with_pgo.py: adapt to monorepo (details)
  172. [clang][cli] Factor out call to EXTRACTOR in generateCC1CommandLine (NFC) (details)
  173. [clang][cli] Split DefaultAnyOf into a default value and ImpliedByAnyOf (details)
  174. [clang][cli] Port Frontend option flags to new option parsing system (details)
  175. [mlir] AsyncRuntime: disable threading until test flakiness is fixed (details)
Commit acb69f3b7c83f411c08b77d75f2e812faf3cb83f by csigg
[mlir] Change ConvertOpToLLVMPattern::matchAndRewrite argument to concrete operand type.

Reviewed By: herhut, ftynse

Differential Revision: https://reviews.llvm.org/D92111
The file was modifiedmlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
The file was modifiedmlir/test/lib/Transforms/TestConvertCallOp.cpp
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
Commit e9e45b3887ca343e90fe91fe77b98d47e66ca312 by csigg
[mlir] Fix bad rebase landed in acb69f3b7c83.

Differential Revision: https://reviews.llvm.org/D92265
The file was modifiedmlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp
Commit 4169c520f6d7029d87098997e9f256a0170aa8cf by kbobyrev
[clangd] Add symbol origin for remote index

Makes it easier to diagnose remote index issues with --debug-origins flag.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D92202
The file was modifiedclang-tools-extra/clangd/unittests/remote/MarshallingTests.cpp
The file was modifiedclang-tools-extra/clangd/index/SymbolOrigin.cpp
The file was modifiedclang-tools-extra/clangd/index/SymbolOrigin.h
The file was modifiedclang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp
Commit 67c88e47bdba2578150a9034a717d6ddcace4e13 by koraq
[libc++] P1645 constexpr for <numeric>

Implements P1645: constexpr for <numeric> algorithms

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D90569
The file was modifiedlibcxx/docs/Cxx2aStatusPaperStatus.csv
The file was modifiedlibcxx/docs/FeatureTestMacroTable.rst
The file was modifiedlibcxx/test/std/numerics/numeric.ops/numeric.iota/iota.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.reduce/transform_reduce_iter_iter_iter_init.pass.cpp
The file was modifiedlibcxx/utils/generate_feature_test_macro_components.py
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.reduce/transform_reduce_iter_iter_init_bop_uop.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.inclusive.scan/transform_inclusive_scan_bop_uop.pass.cpp
The file was modifiedlibcxx/include/numeric
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.reduce/transform_reduce_iter_iter_iter_init_op_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_init_bop_uop.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/partial.sum/partial_sum.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/inner.product/inner_product.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/reduce/reduce_init_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/partial.sum/partial_sum_op.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/accumulate/accumulate.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.inclusive.scan/transform_inclusive_scan_bop_uop_init.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan_op_init.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/reduce/reduce.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/adjacent.difference/adjacent_difference.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/accumulate/accumulate_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_init_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/inner.product/inner_product_comp.pass.cpp
The file was modifiedlibcxx/include/version
The file was modifiedlibcxx/test/std/numerics/numeric.ops/reduce/reduce_init.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/adjacent.difference/adjacent_difference_op.pass.cpp
Commit 0aeaec13e76a9b268cafd9b3cd3f24eb922777b0 by paul
[Timer] Add a command option to enable/disable timer sorting.

Add one more timer to DAGISelEmitter to test the option.

Differential Revision: https://reviews.llvm.org/D92146
The file was modifiedllvm/lib/Support/Timer.cpp
The file was modifiedllvm/utils/TableGen/DAGISelEmitter.cpp
The file was modifiedllvm/include/llvm/TableGen/Record.h
Commit 47c902ba8479fc1faed73b86f59d58830df06644 by harald
[X86] Have indirect calls take 64-bit operands in 64-bit modes

The build bots caught two additional pre-existing problems exposed by the test change part of my change https://reviews.llvm.org/D91339, when expensive checks are enabled. This fixes one of them.

X86 has CALL64r and CALL32r opcodes, where CALL64r takes a 64-bit register, and CALL32r takes a 32-bit register. CALL64r can only be used in 64-bit mode, CALL32r can only be used in 32-bit mode. LLVM would assume that after picking the appropriate CALLr opcode, a pointer-sized register would be a valid operand, but in x32 mode, a 64-bit mode, pointers are 32 bits. In this mode, it is invalid to directly pass a pointer to CALL64r, it needs to be extended to 64 bits first.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D91924
The file was modifiedllvm/lib/Target/X86/X86FastISel.cpp
Commit c6b62efb9103466b6cefca1bd99a5b04b4ced044 by aqjune
[ConstantFold] Fold operations to poison if possible

This patch updates ConstantFold, so operations are folded into poison if possible.

<alive2 proofs>
casts: https://alive2.llvm.org/ce/z/WSj7rw
binary operations (arithmetic): https://alive2.llvm.org/ce/z/_7dEyJ
binary operations (bitwise): https://alive2.llvm.org/ce/z/cezjVN
vector/aggregate operations: https://alive2.llvm.org/ce/z/BQ7hWz
unary ops: https://alive2.llvm.org/ce/z/yBRs4q
other ops: https://alive2.llvm.org/ce/z/iXbcFD

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D92203
The file was modifiedllvm/unittests/IR/ConstantsTest.cpp
The file was addedllvm/test/Transforms/InstSimplify/ConstProp/poison.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/InsertElement.ll
The file was modifiedllvm/lib/IR/Constants.cpp
The file was modifiedllvm/lib/IR/ConstantFold.cpp
Commit 47e2fafbf3d933532f46ef6e8515e7005df52758 by harald
[X86] Do not allow FixupSetCC to relax constraints

The build bots caught two additional pre-existing problems exposed by the test change part of my change https://reviews.llvm.org/D91339, when expensive checks are enabled. https://reviews.llvm.org/D91924 fixes one of them, this fixes the other.

FixupSetCC will change code in the form of

  %setcc = SETCCr ...
  %ext1 = MOVZX32rr8 %setcc

to

  %zero = MOV32r0
  %setcc = SETCCr ...
  %ext2 = INSERT_SUBREG %zero, %setcc, %subreg.sub_8bit

and replace uses of %ext1 with %ext2.

The register class for %ext2 did not take into account any constraints on %ext1, which may have been required by its uses. This change ensures that the original constraints are honoured, by instead of creating a new %ext2 register, reusing %ext1 and further constraining it as needed. This requires a slight reorganisation to account for the fact that it is possible for the constraining to fail, in which case no changes should be made.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D91933
The file was modifiedllvm/lib/Target/X86/X86FixupSetCC.cpp
Commit 78a30c830b53dcce399992e8d20a966448862106 by harald
[X86] Add -verify-machineinstrs to pic.ll

This ensures that failures show up in regular builds, rather than only
when expensive checks are enabled.

Differential Revision: https://reviews.llvm.org/D91339
The file was modifiedllvm/test/CodeGen/X86/pic.ll
Commit b5e8de9c7903d458b098a8af03939384270c1a5e by nikita.ppv
[BasicAA] Add tests for suboptimal speculation results (NFC)

While we determine that (phi1, phi2) is noalias, we don't
determine that (gep phi1 + 1, gep phi2 + 1) are also noalias.
The file was modifiedllvm/test/Analysis/BasicAA/phi-speculation.ll
Commit ae5f792002d8885c091e3e2de6fcebf9b26085f8 by koraq
[libc++] Disable some tests using gcc 9.

This should fix running the libc++ unit tests.
They failed due to the changes introduced in 67c88e.
The file was modifiedlibcxx/test/std/numerics/numeric.ops/partial.sum/partial_sum.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/partial.sum/partial_sum_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/adjacent.difference/adjacent_difference_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.reduce/transform_reduce_iter_iter_iter_init_op_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/accumulate/accumulate_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/inner.product/inner_product_comp.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/numeric.iota/iota.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.reduce/transform_reduce_iter_iter_init_bop_uop.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.inclusive.scan/transform_inclusive_scan_bop_uop_init.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_init_bop_uop.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/exclusive.scan/exclusive_scan_init_op.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.inclusive.scan/transform_inclusive_scan_bop_uop.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/accumulate/accumulate.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan_op_init.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/reduce/reduce.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/reduce/reduce_init.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/transform.reduce/transform_reduce_iter_iter_iter_init.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/adjacent.difference/adjacent_difference.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/inner.product/inner_product.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numeric.ops/reduce/reduce_init_op.pass.cpp
Commit f502b14d40e751fe00afc493ef0d08f196524886 by i
[ARMAttributeParser] Correctly parse and print Tag_THUMB_ISA_use=3

I took the "Permitted"/"Not Permitted" combo from the `Tag_ARM_ISA_use` case (GNU tools print "Yes").

Reviewed By: compnerd, MaskRay, simon_tatham

Differential Revision: https://reviews.llvm.org/D90305
The file was modifiedllvm/lib/Support/ARMAttributeParser.cpp
The file was modifiedllvm/unittests/Support/ARMAttributeParser.cpp
The file was addedllvm/test/MC/ARM/directive-arch-armv8m.s
The file was modifiedllvm/test/MC/ARM/assembly-default-build-attributes.s
Commit d989ffd109b2b5e7fd7c577ea549f4d1c5f5492c by dimitry
Implement computeHostNumHardwareThreads() for FreeBSD

This retrieves CPU affinity via FreeBSD's cpuset(2) API, and makes LLVM
respect affinity settings configured by the user via the cpuset(1)
command.

In particular, this allows to reduce the number of threads used on
machines with high core counts, which can interact badly with
parallelized build systems. This is particularly noticable with lld,
which spawns lots of threads even for linking e.g. hello_world!

This fix is related to PR48193, but does not adress the more fundamental
problem, which is that LLVM by default grabs as many CPUs and/or threads
as possible.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D92271
The file was modifiedllvm/lib/Support/Unix/Threading.inc
Commit 6dd9596b19d7679c562f8e866be6d0c3d7c21994 by jpienaar
[mlir] Add a shape function library op

Op with mapping from ops to corresponding shape functions for those op
in the library and mechanism to associate shape functions to functions.
The mapping of operand to shape function is kept separate from the shape
functions themselves as the operation is associated to the shape
function and not vice versa, and one could have a common library of
shape functions that can be used in different contexts.

Use fully qualified names and require a name for shape fn lib ops for
now and an explicit print/parse (based around the generated one & GPU
module op ones).

Differential Revision: https://reviews.llvm.org/D91672
The file was addedmlir/test/Analysis/test-shape-fn-report.mlir
The file was modifiedmlir/tools/mlir-opt/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
The file was addedmlir/test/lib/Dialect/Shape/CMakeLists.txt
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was addedmlir/test/lib/Dialect/Shape/TestShapeFunctions.cpp
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/Shape.h
The file was modifiedmlir/test/lib/Dialect/CMakeLists.txt
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
Commit d9da4c3e73720badfcac5c0dc63c0285bb690770 by joker.eph
Revert "[mlir] Add a shape function library op"

This reverts commit 6dd9596b19d7679c562f8e866be6d0c3d7c21994.

Build is broken.
The file was modifiedmlir/test/lib/Dialect/CMakeLists.txt
The file was removedmlir/test/lib/Dialect/Shape/CMakeLists.txt
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was removedmlir/test/lib/Dialect/Shape/TestShapeFunctions.cpp
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/Shape.h
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
The file was removedmlir/test/Analysis/test-shape-fn-report.mlir
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/tools/mlir-opt/CMakeLists.txt
Commit e987fbdd85d6bb5964d9db7a729d6ec8b1dc2322 by nikita.ppv
[BasicAA] Generalize recursive phi alias analysis

For recursive phis, we skip the recursive operands and check that
the remaining operands are NoAlias with an unknown size. Currently,
this is limited to inbounds GEPs with positive offsets, to
guarantee that the recursion only ever increases the pointer.

Make this more general by only requiring that the underlying object
of the phi operand is the phi itself, i.e. it it based on itself in
some way. To compensate, we need to use a beforeOrAfterPointer()
location size, as we no longer have the guarantee that the pointer
is strictly increasing.

This allows us to handle some additional cases like negative geps,
geps with dynamic offsets or geps that aren't inbounds.

Differential Revision: https://reviews.llvm.org/D91914
The file was modifiedllvm/test/Analysis/BasicAA/recphi.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-float32regloops.ll
The file was modifiedllvm/lib/Analysis/BasicAliasAnalysis.cpp
Commit 1856e22eeb2de6e6d4325e3eed1e718abd89ea4b by aqjune
[LangRef] minor fixes to poison examples and well-defined values section (NFC)
The file was modifiedllvm/docs/LangRef.rst
Commit 53040a968dc2ff20931661e55f05da2ef8b964a0 by aqjune
[ConstantFold] Fold more operations to poison

This patch folds more operations to poison.

Alive2 proof: https://alive2.llvm.org/ce/z/mxcb9G (it does not contain tests about div/rem because they fold to poison when raising UB)

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D92270
The file was modifiedllvm/test/Transforms/InstCombine/shift-add.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/poison.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-c.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fold-binop-select.ll
The file was modifiedllvm/test/Transforms/InstCombine/canonicalize-ashr-shl-to-masking.ll
The file was modifiedllvm/test/Transforms/InstSimplify/undef.ll
The file was modifiedllvm/test/Transforms/SROA/phi-gep.ll
The file was modifiedclang/test/Frontend/fixed_point_unary.c
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop-with-constant.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/shift.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-e.ll
The file was modifiedllvm/test/Transforms/InstCombine/apint-shift.ll
The file was modifiedllvm/test/Transforms/InstCombine/canonicalize-shl-lshr-to-masking.ll
The file was modifiedllvm/test/Transforms/InstSimplify/div.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-e.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/insert-binop.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-b.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/cast.ll
The file was modifiedllvm/test/Transforms/InstSimplify/rem.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/InsertElement.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-d.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-a.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/vector-undef-elts.ll
The file was modifiedllvm/test/Transforms/SROA/select-gep.ll
The file was modifiedllvm/test/Transforms/InstCombine/canonicalize-lshr-shl-to-masking.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-variant-d.ll
The file was modifiedllvm/test/Transforms/InstCombine/select-of-bittest.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-a.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/vscale.ll
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-c.ll
The file was modifiedllvm/unittests/IR/ConstantsTest.cpp
The file was modifiedllvm/test/Transforms/InstCombine/partally-redundant-left-shift-input-masking-after-truncation-variant-b.ll
The file was modifiedllvm/lib/IR/ConstantFold.cpp
Commit 67d16b6da4bef1ee174514148854e77151a62605 by sam.mccall
[clangd] Cache .clang-tidy files again.

This cache went away in 73fdd998701cce3aa6c4d8d2a73ab97351a0313b

This time, the cache is periodically validated against disk, so config
is still mostly "live".

The per-file cache reuses FileCache, but the tree-of-file-caches is
duplicated from ConfigProvider. .clangd, .clang-tidy, .clang-format, and
compile_commands.json all have this pattern, we should extract it at some point.
TODO for now though.

Differential Revision: https://reviews.llvm.org/D92133
The file was modifiedclang-tools-extra/clangd/TidyProvider.cpp
Commit d99da80841cb4d9734db4a48cd49e37b623176bc by sam.mccall
[clangd] Fix path edge-case condition.
The file was modifiedclang-tools-extra/clangd/ConfigProvider.cpp
Commit fba0b65f727134e8d05c785b04b7b574f852d49e by harald
[libc++] hash<long double>: adjust for x86-64 ILP32

x86-64 ILP32 mode (x32) uses 32-bit size_t, so share the code with ix86 to zero out padding bits, not with x86-64 LP64 mode.

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D91349
The file was modifiedlibcxx/include/utility
Commit 2cebad702cdff8c320c8afa748626e8cc1b3b2f3 by spatel
[IR] remove redundant code comments; NFC

As noted in D92247 (and independent of that patch):

http://llvm.org/docs/CodingStandards.html#doxygen-use-in-documentation-comments

"Don’t duplicate the documentation comment in the header file and in the
implementation file. Put the documentation comments for public APIs into
the header file."
The file was modifiedllvm/lib/IR/BasicBlock.cpp
Commit ce134da4b18c27bbeba4e32f5813b1a3b043066e by spatel
[IR] simplify code in removePredecessor(); NFCI

As suggested in D92247 (and independent of whatever we decide to do there),
this code is confusing as-is. Hopefully, this is at least mildly better.

We might be able to do better still, but we have a function called
"removePredecessor" with this behavior:
"Note that this function does not actually remove the predecessor." (!)
The file was modifiedllvm/lib/IR/BasicBlock.cpp
Commit a813090072c0527eb6ed51dd2ea4f54cb6bc72a0 by flo
[VPlan] Manage stored values of interleave groups using VPUser (NFC)

Interleave groups also depend on the values they store. Manage the
stored values as VPUser operands. This is currently a NFC, but is
required to allow VPlan transforms and to manage generated vector values
exclusively in VPTransformState.
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanTest.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
Commit cdf9401df84ef382467d1ca1c1c458c11fd6043a by protze
[OpenMP][OMPT][NFC] Fix flaky test

The test had a chance to finish the first task before the second task is
created. In this case, the dependences-pair event would not trigger.
The file was modifiedopenmp/runtime/test/ompt/tasks/dependences.c
Commit 723be4042a3aa38523c60b1dd96b20448053c41e by protze
[OpenMP][OMPT][NFC] Fix failing test

The test would fail for gcc, when built with debug flag.
The file was modifiedopenmp/runtime/test/ompt/tasks/serialized.c
Commit 7f521318e4f7d9e64907fad8c4bd83ddc037f8c6 by 989903+GeorgeLyon
Use `const` for array pointers in `StandardTypes.h`

This mirrors the underlying C++ api.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D92252
The file was modifiedmlir/lib/CAPI/IR/StandardTypes.cpp
The file was modifiedmlir/include/mlir-c/StandardTypes.h
Commit 4bc9b909d715157a2d04f32c32b828c23c1d4359 by flo
[VPlan] Use VPValue and VPUser ops to print VPReplicateRecipe.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-printing.ll
Commit 5408fdcd78ad4783a39c0c18d5a18a7d926514b7 by i
[VPlan] Fix -Wunused-variable after a813090072c0527eb6ed51dd2ea4f54cb6bc72a0
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit e534cee26ae3626ced20438ea82e11291cc768e8 by jpienaar
[mlir] Add a shape function library op

Op with mapping from ops to corresponding shape functions for those op
in the library and mechanism to associate shape functions to functions.
The mapping of operand to shape function is kept separate from the shape
functions themselves as the operation is associated to the shape
function and not vice versa, and one could have a common library of
shape functions that can be used in different contexts.

Use fully qualified names and require a name for shape fn lib ops for
now and an explicit print/parse (based around the generated one & GPU
module op ones).

This commit reverts d9da4c3e73720badfcac5c0dc63c0285bb690770. Fixes
missing headers (don't know how that was working locally).

Differential Revision: https://reviews.llvm.org/D91672
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was addedmlir/test/lib/Dialect/Shape/TestShapeFunctions.cpp
The file was addedmlir/test/Analysis/test-shape-fn-report.mlir
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
The file was addedmlir/test/lib/Dialect/Shape/CMakeLists.txt
The file was modifiedmlir/test/lib/Dialect/CMakeLists.txt
The file was modifiedmlir/tools/mlir-opt/CMakeLists.txt
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/Shape.h
Commit 84aad9b5da96ca2fe47c9db46c3a6b1bb09c070b by craig.topper
[RISCV] Change predicate on InstAliases for GORCI/GREVI/SHFLI/UNSHFLI to HasStdExtZbp instead of HasStdExtZbbOrZbp.

This matches the predicate on the instructions. Though I think
some specific encodings are valid in Zbb, but not all of them.
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td
Commit 048b16f7fbb745635b48d31ee957bb8865597606 by i
[ELF] Check --orphan-handling=place (default value) early

The function took 1% (161MiB clang) to 1.7% (an 4.9GiB executable) time.
The file was modifiedlld/ELF/LinkerScript.cpp
Commit 891170e8636b312092486dee7c9117db7def8836 by nikita.ppv
[DL] Optimize address space zero lookup (NFC)

Information for pointer size/alignment/etc is queried a lot, but
the binary search based implementation makes this fairly slow.

Add an explicit check for address space zero and skip the search
in that case -- we need to specially handle the zero address space
anyway, as it serves as the fallback for all address spaces that
were not explicitly defined.

I initially wanted to simply replace the binary search with a
linear search, which would handle both address space zero and the
general case efficiently, but I was not sure whether there are
any degenerate targets that use more than a handful of declared
address spaces (in-tree, even AMDGPU only declares six).
The file was modifiedllvm/lib/IR/DataLayout.cpp
The file was modifiedllvm/include/llvm/IR/DataLayout.h
Commit dfcf1acf13226be0f599a7ab6b395b66dc9545d6 by i
[ELF] Improve 2 SmallVector<*, N> usage

For --gc-sections, SmallVector<InputSection *, 256> -> SmallVector<InputSection *, 0> because the code bloat (1296 bytes) is not worthwhile (the saved reallocation is negligible).
For OutputSection::compressedData, N=1 is useless (for a compressed .debug_*, the size is always larger than 1).
The file was modifiedlld/ELF/MarkLive.cpp
The file was modifiedlld/ELF/OutputSections.h
Commit f15b7869e5afbd6c24ef440b0b62593e80fbd24f by zeratul976
[clang-tidy] [clangd] Avoid multi-line diagnostic range for else-after-return diagnostic

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

Differential Revision: https://reviews.llvm.org/D92272
The file was modifiedclang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
The file was modifiedclang-tools-extra/clang-tidy/readability/ElseAfterReturnCheck.cpp
Commit 8b6bea9bff80a80d3cdbceb6d2218e6bac819696 by 989903+GeorgeLyon
Use bool in place of int for boolean things in the C API

`bool` is pretty well supported by now in C, and using it in place of `int` is not only more semantically accurate, but also improves automatic bindings for languages like Swift.

There is more discussion here: https://llvm.discourse.group/t/adding-mlirbool-to-c-bindings/2280/5

Reviewed By: ftynse, mehdi_amini

Differential Revision: https://reviews.llvm.org/D92193
The file was modifiedmlir/include/mlir-c/IR.h
The file was modifiedmlir/lib/CAPI/IR/IR.cpp
Commit e6c17776858d9ec5c2ce15447b384da2141bbbad by i
[MC] Copy visibility for .symver created symbols
The file was addedllvm/test/MC/ELF/symver-visibility.s
The file was modifiedllvm/lib/MC/ELFObjectWriter.cpp
Commit bd2083c2fa7bb8769ca997a0303da54432e08519 by stellaraccident
[mlir][Python] Python API cleanups and additions found during code audit.

* Add capsule get/create for Attribute and Type, which already had capsule interop defined.
* Add capsule interop and get/create for Location.
* Add Location __eq__.
* Use get() and implicit cast to go from PyAttribute, PyType, PyLocation to MlirAttribute, MlirType, MlirLocation (bundled with this change because I didn't want to continue the pattern one more time).

Differential Revision: https://reviews.llvm.org/D92283
The file was modifiedmlir/test/Bindings/Python/ir_location.py
The file was modifiedmlir/test/Bindings/Python/ir_types.py
The file was modifiedmlir/lib/Bindings/Python/IRModules.h
The file was modifiedmlir/lib/CAPI/IR/IR.cpp
The file was modifiedmlir/include/mlir-c/Bindings/Python/Interop.h
The file was modifiedmlir/lib/Bindings/Python/PybindUtils.h
The file was modifiedmlir/include/mlir-c/IR.h
The file was modifiedmlir/lib/Bindings/Python/IRModules.cpp
The file was modifiedmlir/test/Bindings/Python/ir_attributes.py
Commit ba0fe76b7eb87f91499931e76317ddd1cb493aa1 by stellaraccident
[mlir][Python] Add an Operation.result property.

* If ODS redefines this, it is fine, but I have found this accessor to be universally useful in the old npcomp bindings and I'm closing gaps that will let me switch.

Differential Revision: https://reviews.llvm.org/D92287
The file was modifiedmlir/lib/Bindings/Python/IRModules.cpp
The file was modifiedmlir/lib/Bindings/Python/IRModules.h
The file was modifiedmlir/test/Bindings/Python/ir_operation.py
Commit e6db1416aebf44bdd33a5aab4db1fec58af79590 by i
[RISCV] Remove unused Addend parameter from classifySymbolRef. NFC

It is confusing as well since in the case of A - B + Cst, the returned Addend is not Cst.
The file was modifiedllvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
Commit 1db60c1307ac2e24796047c39d09bf400c22e531 by richard
Remove redundant check for access in the conversion from the naming
class to the declaring class in a class member access.

This check does not appear to be backed by any rule in the standard (the
rule in question was likely removed over the years), and only ever
produces duplicate diagnostics. (It's also not meaningful because there
isn't a unique declaring class after the resolution of core issue 39.)
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/CXX/class.access/class.access.base/p5.cpp
The file was modifiedclang/test/CXX/drs/dr2xx.cpp
The file was modifiedclang/test/SemaCXX/anonymous-union.cpp
The file was modifiedclang/test/CXX/class.access/p4.cpp
The file was modifiedclang/test/CXX/class.access/class.protected/p1.cpp
The file was modifiedclang/test/CXX/class.access/class.access.base/p1.cpp
The file was modifiedclang/test/CXX/class.access/class.friend/p1.cpp
The file was modifiedclang/test/CXX/drs/dr0xx.cpp
The file was modifiedclang/test/SemaCXX/conversion-function.cpp
The file was modifiedclang/test/CXX/drs/dr1xx.cpp
The file was modifiedclang/test/CXX/drs/dr3xx.cpp
Commit 0c9c6ddf17bb01ae350a899b3395bb078aa0c62e by mkazantsev
[IndVars] ICmpInst should not prevent IV widening

If we decided to widen IV with zext, then unsigned comparisons
should not prevent widening (same for sext/sign comparisons).
The result of comparison in wider type does not change in this case.

Differential Revision: https://reviews.llvm.org/D92207
Reviewed By: nikic
The file was modifiedllvm/test/Transforms/IndVarSimplify/widen-loop-comp.ll
The file was modifiedllvm/lib/Transforms/Utils/SimplifyIndVar.cpp
Commit 62195b75481890f3d86422710338a15bfbc57bcf by stellaraccident
[mlir][CAPI] Convert the rest of the API int -> bool.

* Follows on https://reviews.llvm.org/D92193
* I had a mid-air collision with some additional occurrences and then noticed that there were a lot more. Think I got them all.

Differential Revision: https://reviews.llvm.org/D92292
The file was modifiedmlir/include/mlir-c/StandardAttributes.h
The file was modifiedmlir/include/mlir-c/AffineExpr.h
The file was modifiedmlir/lib/CAPI/IR/IR.cpp
The file was modifiedmlir/test/Bindings/Python/ir_attributes.py
The file was modifiedmlir/include/mlir-c/StandardTypes.h
The file was modifiedmlir/include/mlir-c/AffineMap.h
The file was modifiedmlir/lib/CAPI/IR/AffineExpr.cpp
The file was modifiedmlir/lib/CAPI/IR/AffineMap.cpp
The file was modifiedmlir/include/mlir-c/Pass.h
The file was modifiedmlir/lib/Bindings/Python/IRModules.cpp
The file was modifiedmlir/lib/CAPI/IR/StandardTypes.cpp
The file was modifiedmlir/include/mlir-c/Support.h
The file was modifiedmlir/lib/CAPI/IR/StandardAttributes.cpp
The file was modifiedmlir/include/mlir-c/IR.h
Commit b6e04ac5aa881c1fbb66da884b04e48dfb102474 by pavel
[lldb/test] Avoid the socket "pump" thread

A separate thread is not necessary, as we can do its work on the main
thread, while waiting for the packet to arrive. This makes the code
easier to understand and debug (other simplifications are possible too,
but I'll leave that for separate patches). The new implementation also
avoids busy waiting.
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-server/socket_packet_pump.py
Commit ec6c5e920a89db0e1c5f73b8349ee0b84192072d by hokein.wu
[clang] Improve diagnostics for auto-return-type function if the return expr had an error.

Given the following case:

```
auto k() {
  return undef();
  return 1;
}
```

Prior to the patch, clang emits an `cannot initialize return object of type
'auto' with an rvalue of type 'int'` diagnostic on the second return
(because the return type of the function cannot be deduced from the first contain-errors return).

This patch suppresses this error.

Differential Revision: https://reviews.llvm.org/D92211
The file was modifiedclang/test/SemaCXX/attr-target-mv.cpp
The file was modifiedclang/test/SemaCXX/cxx1y-deduced-return-type.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/test/SemaCXX/lambda-expressions.cpp
Commit 699d17d4d64e9b1cf6db0443e87a700104e94aca by gchatelet
[libc] Improve memcpy copy loop

Rewriting loop so the terminating condition does not depend on the loop body

Differential Revision: https://reviews.llvm.org/D91976
The file was modifiedlibc/src/string/memory_utils/memcpy_utils.h
The file was modifiedlibc/test/src/string/memory_utils/memcpy_utils_test.cpp
Commit c21928285430cc25905f774a89cb948867ae55b6 by hokein.wu
[AST][RecoveryAST] Preseve more invalid return stmt.

suppress the diagnostics for missing return stmt in constexpr func.

Differential Revision: https://reviews.llvm.org/D82284
The file was modifiedclang/test/SemaCXX/constant-expression-cxx11.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/test/SemaCXX/typo-correction-crash.cpp
Commit 047400ed8204ebcc0b361ca9285b34ea91479b69 by nicolas.vasilache
[mlir][LLVMIR] Add support for InlineAsmOp

The InlineAsmOp mirrors the underlying LLVM semantics with a notable
exception: the embedded `asm_string` is not allowed to define or reference
any symbol or any global variable: only the operands of the op may be read,
written, or referenced.
Attempting to define or reference any symbol or any global behavior is
considered undefined behavior at this time.

The asm dialect syntax is currently specified with an integer (0 [default] for the "att dialect", 1 for the intel dialect) to circumvent the ODS limitation on string enums.

Translation to LLVM is provided and raises the fact that the asm constraints string must be well-formed with respect to in/out operands. No check is performed on the asm_string.

An InlineAsm instruction in LLVM is a special call operation to a function that is constructed on the fly.
It does not fit the current model of MLIR calls with symbols.
As a consequence, the current implementation constructs the function type in ModuleTranslation.cpp.
This should be refactored in the future.

The mlir-cpu-runner is augmented with the global initialization of the X86 asm parser to allow proper execution in JIT mode. Previously, only the X86 asm printer was initialized.

Differential revision: https://reviews.llvm.org/D92166
The file was modifiedmlir/tools/mlir-cpu-runner/CMakeLists.txt
The file was modifiedmlir/test/Dialect/LLVMIR/roundtrip.mlir
The file was addedmlir/integration_test/Dialect/LLVMIR/CPU/X86/test-inline-asm.mlir
The file was modifiedmlir/test/Target/llvmir.mlir
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was addedmlir/integration_test/Dialect/LLVMIR/CPU/X86/lit.local.cfg
The file was modifiedmlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
The file was modifiedmlir/tools/mlir-cpu-runner/mlir-cpu-runner.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
Commit 112b3cb6ba49aacd821440d0913f15b32131480e by eleviant
[TableGen][SchedModels] Fix read/write variant substitution

Patch fixes multiple issues related to expansion of variant sched reads and
writes.

Differential revision: https://reviews.llvm.org/D90844
The file was modifiedllvm/lib/Target/ARM/ARMScheduleA57.td
The file was modifiedllvm/utils/TableGen/CodeGenSchedule.cpp
The file was addedllvm/test/CodeGen/ARM/cortex-a57-misched-mla.mir
The file was modifiedllvm/utils/TableGen/CodeGenSchedule.h
Commit d5387c044d96cda70701fcb7fb3ad06955957ed4 by david.green
[ARM] Constant predicate tests. NFC
The file was addedllvm/test/CodeGen/Thumb2/mve-pred-constfold.ll
Commit b0e9b7c59fc49559e78b58a84e45f0ea2d931761 by lebedev.ri
[NFC][SimplifyCFG] Add STATISTIC() to the FoldValueComparisonIntoPredecessors() fold
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
Commit 8da7efbb0d5ec315a27b7b5286dbdd25694905ad by lebedev.ri
[clang-tidy] add concurrency module

The module will contain checks related to concurrent programming (including threads, fibers, coroutines, etc.).

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D91656
The file was modifiedclang-tools-extra/docs/clang-tidy/index.rst
The file was addedclang-tools-extra/clang-tidy/concurrency/ConcurrencyTidyModule.cpp
The file was addedclang-tools-extra/clang-tidy/concurrency/CMakeLists.txt
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyForceLinker.h
The file was modifiedclang-tools-extra/clang-tidy/CMakeLists.txt
Commit cac5be495ed88b269ad7a3000305e714cce60e63 by lebedev.ri
[clang-tidy] implement concurrency-mt-unsafe

Checks for some thread-unsafe functions against a black list
of known-to-be-unsafe functions. Usually they access static variables
without synchronization (e.g. gmtime(3)) or utilize signals
in a racy way (e.g. sleep(3)).

The patch adds a check instead of auto-fix as thread-safe alternatives
usually have API with an additional argument
(e.g. gmtime(3) v.s. gmtime_r(3)) or have a different semantics
(e.g. exit(3) v.s. __exit(3)), so it is a rather tricky
or non-expected fix.

An option specifies which functions in libc should be considered
thread-safe, possible values are `posix`, `glibc`,
or `any` (the most strict check). It defaults to 'any' as it is
unknown what target libc type is - clang-tidy may be run
on linux but check sources compiled for other *NIX.

The check is used in Yandex Taxi backend and has caught
many unpleasant bugs. A similar patch for coroutine-unsafe API
is coming next.

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D90944
The file was addedclang-tools-extra/test/clang-tidy/checkers/concurrency-mt-unsafe-posix.cpp
The file was addedclang-tools-extra/clang-tidy/concurrency/MtUnsafeCheck.h
The file was addedclang-tools-extra/docs/clang-tidy/checks/concurrency-mt-unsafe.rst
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/clang-tidy/concurrency/ConcurrencyTidyModule.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
The file was modifiedclang-tools-extra/clang-tidy/concurrency/CMakeLists.txt
The file was addedclang-tools-extra/clang-tidy/concurrency/MtUnsafeCheck.cpp
The file was addedclang-tools-extra/test/clang-tidy/checkers/concurrency-mt-unsafe-glibc.cpp
The file was addedclang-tools-extra/test/clang-tidy/checkers/concurrency-mt-unsafe-any.cpp
Commit 129523588f2715cb5d2f8852c949b3669a3c1b6b by eleviant
Fix test case
The file was modifiedllvm/test/CodeGen/ARM/cortex-a57-misched-mla.mir
Commit b5fbc60e4de45f2b56331281a706b78ff52bd286 by david.spickett
[clang-format] State where clang-format-diff.py should be run from

At least with git, file paths in a diff will be relative
to the repo root. So if you are in "llvm-project/lldb"
and the diff shows "clang/foo" modified you get:
No such file or directory

From clang-format-diff.py, since clang-format was
asked to read:
llvm-project/lldb/clang/foo

Add a note to the docs to explain this.

(there is `git diff --relative` but that excludes
changes outside of the current dir)

Reviewed By: sylvestre.ledru

Differential Revision: https://reviews.llvm.org/D91799
The file was modifiedclang/docs/ClangFormat.rst
Commit 98e87f76d0f486122d76b334232102e0d7a9254d by david.spickett
[lldb] Error when there are no ports to launch a gdbserver on

Previously if you did:
$ lldb-server platform --server <...> --min-gdbserver-port 12346
--max-gdbserver-port 12347
(meaning only use port 12346 for gdbservers)

Then tried to launch two gdbservers on the same connection,
the second one would return port 65535. Which is a real port
number but it actually means lldb-server didn't find one it was
allowed to use.

send packet: $qLaunchGDBServer;<...>
read packet: $pid:1919;port:12346;#c0
<...>
send packet: $qLaunchGDBServer;<...>
read packet: $pid:1927;port:65535;#c7

This situation should be an error even if port 65535 does happen
to be available on the current machine.

To fix this make PortMap it's own class within
GDBRemoteCommunicationServerPlatform.

This almost the same as the old typedef but for
GetNextAvailablePort() returning an llvm::Expected.
This means we have to handle not finding a port,
by returning an error packet.

Also add unit tests for this new PortMap class.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D91634
The file was addedlldb/unittests/Process/gdb-remote/PortMapTest.cpp
The file was modifiedlldb/unittests/Process/gdb-remote/CMakeLists.txt
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
The file was modifiedlldb/tools/lldb-server/lldb-platform.cpp
Commit 317ca3ecf8244cabb4ca9d45e626ad3cf0f8e4b2 by lebedev.ri
[NFC][clang-tidy] Do link FrontendOpenMP into concurrency module after all

It seems that while clangASTMatchers does add FrontendOpenMP into
it's LLVM_LINK_COMPONENTS, it's still not being propagated transitively.
The file was modifiedclang-tools-extra/clang-tidy/concurrency/CMakeLists.txt
Commit e20efa3dd5c75a79a47d40335aee0f63261f9c5b by jay.foad
[LegacyPM] Simplify PMTopLevelManager::collectLastUses. NFC.
The file was modifiedllvm/lib/IR/LegacyPassManager.cpp
Commit ffaba24c75edc274ec651915a0f2f500b8f6b341 by csigg
Add `using ConvertToLLVMPattern::match/matchAndRewrite` to avoid 'hiding overload' warning.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D92303
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
Commit 83d79ca5bf13ca37f4ab69f24004ca83c1d03ea4 by llvm-dev
[X86][AVX512] Only lower to VPALIGNR if we have BWI (PR48322)
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-512-v16.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit a7f8d96b16a394a87230d592c727906f67a4ba07 by david.spickett
[lldb] Use llvm::Optional for port in LaunchGDBServer

Previously we used UINT16_MAX to mean no port/no specifc
port. This leads to confusion because 65535 is a valid
port number.

Instead use an optional. If you want a specific port call
LaunchGDBServer as normal, otherwise pass an empty optional
and it will be set to the port that gets chosen.
(or left empty in the case where we fail to find a port)

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D92035
The file was modifiedlldb/tools/lldb-server/lldb-platform.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
Commit 5110ff08176f29eefd7638e328d65dfd1c1ad042 by sjoerd.meijer
[AArch64][CostModel] Fix cost for mul <2 x i64>

This was modeled to have a cost of 1, but since we do not have a MUL.2d this is
scalarized into vector inserts/extracts and scalar muls.

Motivating precommitted test is test/Transforms/SLPVectorizer/AArch64/mul.ll,
which we don't want to SLP vectorize.

Test Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
unfortunately needed changing, but the reason is documented in
LoopVectorize.cpp:6855:

  // The cost of executing VF copies of the scalar instruction. This opcode
  // is unknown. Assume that it is the same as 'mul'.

which I will address next as a follow up of this.

Differential Revision: https://reviews.llvm.org/D92208
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/mul.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/AArch64/mul.ll
Commit b69c09bf43527e79a770efd9886b79e611f8fd59 by omair.javaid
Support custom expedited register set in gdb-remote

This patch adds capability to introduce a custom expedited register set
in gdb remote. Currently we send register set 0 as expedited register set
but for the case of AArch64 SVE we intend to send additional information
about SVE registers size/offset configuration which can be calculated
from vg register. Therefore we will expedited Vg register in case of
AArch64 is in SVE mode to speedup register configuration calculations.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D82853
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
The file was modifiedlldb/include/lldb/Host/common/NativeRegisterContext.h
The file was modifiedlldb/source/Host/common/NativeRegisterContext.cpp
Commit 4e8aeb97ca41eb202c9c90a9c640a630903c769b by omair.javaid
Send SVE vg register in custom expedited registerset

This patch ovverides GetExpeditedRegisterSet for
NativeRegisterContextLinux_arm64 to send vector granule register in
expedited register set if SVE mode is selected.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D82855
The file was modifiedlldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
The file was modifiedlldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
The file was modifiedlldb/test/API/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
Commit 13c42f4ca7fbe36257d192da02ec46a2c880d938 by hans
[gn build] Manually sync 8da7efb and cac5be4

This adds the clang-tidy concurrency module to the gn build.
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/BUILD.gn
The file was addedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/concurrency/BUILD.gn
Commit c2ead57ccf74900901fdda1cd0fbe9a7a0d1297a by david.spickett
[llvm-objdump] Document --mattr=help in --help output

This does the same as `--mcpu=help` but was only
documented in the user guide.

* Added a test for both options.
* Corrected the single dash in `-mcpu=help` text.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D92305
The file was modifiedllvm/docs/CommandGuide/llvm-objdump.rst
The file was addedllvm/test/tools/llvm-objdump/mattr-mcpu-help.test
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.cpp
Commit 33eac0f2830ee3f362ec0207a3d0e5f0861de8f1 by marukawa
[VE] Specify vector alignments

Specify alignments for all vector types.  Update a regression test also.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D92256
The file was modifiedclang/test/CodeGen/target-data.c
The file was modifiedclang/lib/Basic/Targets/VE.h
The file was modifiedllvm/lib/Target/VE/VETargetMachine.cpp
Commit fe83adb05a8a35835ccc5645fe41c4c82a439cba by flo
[VPlan] Use VPUser to manage VPPredInstPHIRecipe operand (NFC).

VPPredInstPHIRecipe is one of the recipes that was missed during the
initial conversion. This patch adjusts the recipe to also manage its
operand using VPUser.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanValue.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-printing.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
Commit 44a679eaa40cf234c79c241012607ed5f7bada77 by marukawa
[VE] Change the behaviour of truncate

Change the way to truncate i64 to i32 in I64 registers.  VE assumed
sext values previously.  Change it to zext values this time to make
it match to the LLVM behaviour.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D92226
The file was modifiedllvm/test/CodeGen/VE/Scalar/select.ll
The file was modifiedllvm/test/CodeGen/VE/VELIntrinsics/lvlgen.ll
The file was modifiedllvm/lib/Target/VE/VEInstrInfo.td
The file was modifiedllvm/test/CodeGen/VE/VELIntrinsics/lsv.ll
The file was modifiedllvm/test/CodeGen/VE/VELIntrinsics/vbrd.ll
The file was modifiedllvm/test/CodeGen/VE/Vector/vec_add.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/br_jt.ll
The file was modifiedllvm/test/CodeGen/VE/Vector/vec_broadcast.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/select_cc.ll
Commit 273641fedc528c3d7ea96020c104a4131e179c62 by hans
Try to fix bots after 112b3cb by removing cortex-a57-misched-mla.s
The file was modifiedllvm/test/CodeGen/ARM/cortex-a57-misched-mla.mir
Commit 686988a50f5009df5a7f184b7debfe012b29bbf8 by marukawa
[VE] Optimize prologue/epilogue instructions

Optimize eliminate FP mechanism.  This time optimize a function which has
no call but fixed stack objects.  LLVM eliminates FP on such functions now.
Also, optimize GOT/PLT registers save/restore instructions if a given
function doesn't uses them.  In addition, remove generating mechanism of
`.cfi` instructions since those are taken from other architectures and not
inspected yet.  Update regression tests, also.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D92251
The file was modifiedllvm/test/CodeGen/VE/Scalar/loadrri.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/store-align8.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/fcopysign.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/load-align8.ll
The file was modifiedllvm/lib/Target/VE/VEFrameLowering.h
The file was modifiedllvm/test/CodeGen/VE/Scalar/fp_fneg.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/function_prologue_epilogue.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/sext_zext_load.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/callee.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/stackframe_call.ll
The file was modifiedllvm/test/CodeGen/VE/Vector/fastcc_callee.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/stackframe_nocall.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/store.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/load-align2.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/load.ll
The file was modifiedllvm/lib/Target/VE/VEFrameLowering.cpp
The file was modifiedllvm/test/CodeGen/VE/Scalar/load-align4.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/store-align4.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/stackframe_size.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/store-align1.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/load-align1.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/fabs.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/stackframe_align.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/store-align2.ll
Commit d20abb1ec3b6ff90cc4221e6a5865ae22fa2f5e9 by thakis
[mac/lld] Add support for response files

ld64 learned about them in Xcode 12, so we should too.

Differential Revision: https://reviews.llvm.org/D92149
The file was modifiedlld/MachO/DriverUtils.cpp
The file was addedlld/test/MachO/responsefile.test
Commit 25d54abca59bcfb6f11e895d744240f09a344018 by hans
Try harder to get rid off cortex-a57-misched-mla.s
The file was modifiedllvm/test/CodeGen/ARM/cortex-a57-misched-mla.mir
Commit 83e60f5a554d2f531b17875e835eab0cbb487211 by thakis
[lld/mac] Add --reproduce option

This adds support for ld.lld's --reproduce / lld-link's /reproduce:
flag to the MachO port. This flag can be added to a link command
to make the link write a tar file containing all inputs to the link
and a response file containing the link command. This can be used
to reproduce the link on another machine, which is useful for sharing
bug report inputs or performance test loads.

Since the linker is usually called through the clang driver and
adding linker flags can be a bit cumbersome, setting the env var
`LLD_REPRODUCE=foo.tar` triggers the feature as well.

The file response.txt in the archive can be used with
`ld64.lld.darwinnew $(cat response.txt)` as long as the contents are
smaller than the command-line limit, or with `ld64.lld.darwinnew
@response.txt` once D92149 is in.

The support in this patch is sufficient to create a tar file for
Chromium's base_unittests that can link after unpacking on a different
machine.

Differential Revision: https://reviews.llvm.org/D92274
The file was modifiedlld/MachO/Options.td
The file was addedlld/test/MachO/reproduce.s
The file was modifiedlld/MachO/Driver.h
The file was modifiedlld/MachO/DriverUtils.cpp
The file was modifiedlld/ELF/DriverUtils.cpp
The file was modifiedlld/Common/Reproduce.cpp
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/InputFiles.h
The file was modifiedlld/MachO/Driver.cpp
Commit 9c2b2952e422ba71c2afa9f6bb63ebf69fa5b702 by llvm-dev
[InstCombine][X86] Add addsub tests showing failure to simplify demandedelts (PR46277)
The file was addedllvm/test/Transforms/InstCombine/X86/x86-addsub.ll
Commit c3d484673fa70bb4b2284689db76d36bbdf12f38 by david.spickett
[llvm-objdump] Require x86 target for mcpu/attr test

This fixes test failure on clang-cmake-armv7-quick bot
with change c2ead57ccf74900901fdda1cd0fbe9a7a0d1297a.

This bot only builds Arm/AArch64 targets.
The file was modifiedllvm/test/tools/llvm-objdump/mattr-mcpu-help.test
Commit 9c49dcc356eb4c59fc1353bbbaae6d3a56a656c1 by aqjune
[ConstantFold] Don't fold and/or i1 poison to poison (NFC)

.. because it causes miscompilation when combined with select i1 -> and/or.

It is the select fold which is incorrect; but it is costly to disable the fold, so hack this one.

D92270
The file was modifiedllvm/lib/IR/ConstantFold.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/poison.ll
Commit 8e504615e9f1b27c06237a56ee786a16568851f1 by aqjune
[LangRef] missing link, minor fix
The file was modifiedllvm/docs/LangRef.rst
Commit a0d7406ae800c45dd9cb438c7ae1f55329d198e2 by pctammela
[LLDB/Lua] add support for one-liner breakpoint callback

These callbacks are set using the following:
   breakpoint command add -s lua -o "print('hello world!')"

The user supplied script is executed as:
   function (frame, bp_loc, ...)
      <body>
   end

So the local variables 'frame', 'bp_loc' and vararg are all accessible.
Any global variables declared will persist in the Lua interpreter.
A user should never hold 'frame' and 'bp_loc' in a global variable as
these userdatas are context dependent.

Differential Revision: https://reviews.llvm.org/D91508
The file was addedlldb/bindings/lua/lua-wrapper.swig
The file was modifiedlldb/unittests/ScriptInterpreter/Lua/LuaTests.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/Lua.h
The file was addedlldb/bindings/lua/lua-swigsafecast.swig
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/Lua.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.h
The file was modifiedlldb/bindings/lua/lua.swig
The file was addedlldb/test/Shell/ScriptInterpreter/Lua/breakpoint_oneline_callback.test
Commit 234a5297aa00648cba00347f24e9e9b99abde289 by gribozavr
Add 'asserts' requiremnt to test/CodeGen/ARM/cortex-a57-misched-mla.mir

'-debug-only=machine-scheduler' only works when asserts are enabled.
The file was modifiedllvm/test/CodeGen/ARM/cortex-a57-misched-mla.mir
Commit bfd2c216ea8ef09f8fb1f755ca2b89f86f74acbb by spatel
[IR][LoopRotate] avoid leaving phi with no operands (PR48296)

https://llvm.org/PR48296 shows an example where we delete all of the operands
of a phi without actually deleting the phi, and that is currently considered
invalid IR. The reduced test included here would crash for that reason.

A suggested follow-up is to loosen the assert to allow 0-operand phis
in unreachable blocks.

Differential Revision: https://reviews.llvm.org/D92247
The file was addedllvm/test/Transforms/LoopRotate/phi-empty.ll
The file was modifiedllvm/include/llvm/IR/BasicBlock.h
The file was modifiedllvm/lib/IR/BasicBlock.cpp
Commit c0e4020c927134b1dfe4181f54147af95f482558 by thakis
[lld-macho] Implement -fatal_warnings

Differential Revision: https://reviews.llvm.org/D91894
The file was modifiedlld/MachO/DriverUtils.cpp
The file was modifiedlld/MachO/Options.td
The file was addedlld/test/MachO/fatal-warnings.s
Commit d5aaf6021476243de73f8eb8a7479a2288582225 by Ben.Dunbobbin
[windows-itanium] handle dllimport/export code paths separately and share with PS4

Similar to Windows Itanium, PS4 is also an Itanium C++ ABI variant
which shares the goal of semantic compatibility with Microsoft C++
code that uses dllimport/export.

This change introduces a new function to determine from the triple
if an environment aims for compatibility with MS C++ code w.r.t to
these attributes and guards the relevant code paths using that
function.

Differential Revision: https://reviews.llvm.org/D90299
The file was modifiedclang/include/clang/Basic/TargetInfo.h
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/test/CodeGenCXX/dllexport-vtable-thunks.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/test/CodeGenCXX/windows-implicit-dllexport-template-specialization.cpp
The file was modifiedclang/test/SemaCXX/dllimport.cpp
The file was modifiedclang/test/SemaCXX/dllexport.cpp
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/test/CodeGenCXX/windows-itanium-dllexport.cpp
The file was modifiedclang/test/Sema/dllimport.c
Commit 78c71187465a8e877d2e07d462b45a19363fb782 by nicolas.vasilache
[mlir] Make mlir-cpu-runner depend on native instead of X86
The file was modifiedmlir/tools/mlir-cpu-runner/CMakeLists.txt
Commit 355aee3dcd441461a6da6e56c43dc1bd81c79f31 by spatel
Revert "[IR][LoopRotate] avoid leaving phi with no operands (PR48296)"

This reverts commit bfd2c216ea8ef09f8fb1f755ca2b89f86f74acbb.
This appears to be causing stage2 msan failures on buildbots:
  FAIL: LLVM :: Transforms/SimplifyCFG/X86/bug-25299.ll (65872 of 71835)
  ******************** TEST 'LLVM :: Transforms/SimplifyCFG/X86/bug-25299.ll' FAILED ********************
  Script:
  --
  : 'RUN: at line 1';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/opt < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SimplifyCFG/X86/bug-25299.ll -simplifycfg -S | /b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/SimplifyCFG/X86/bug-25299.ll
  --
  Exit Code: 2
  Command Output (stderr):
  --
  ==87374==WARNING: MemorySanitizer: use-of-uninitialized-value
      #0 0x9de47b6 in getBasicBlockIndex /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/IR/Instructions.h:2749:5
      #1 0x9de47b6 in simplifyCommonResume /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/Utils/SimplifyCFG.cpp:4112:23
      #2 0x9de47b6 in simplifyResume /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/Utils/SimplifyCFG.cpp:4039:12
      #3 0x9de47b6 in (anonymous namespace)::SimplifyCFGOpt::simplifyOnce(llvm::BasicBlock*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/Utils/SimplifyCFG.cpp:6330:16
      #4 0x9dcca13 in run /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/Utils/SimplifyCFG.cpp:6358:16
      #5 0x9dcca13 in llvm::simplifyCFG(llvm::BasicBlock*, llvm::TargetTransformInfo const&, llvm::SimplifyCFGOptions const&, llvm::SmallPtrSetImpl<llvm::BasicBlock*>*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/Utils/SimplifyCFG.cpp:6369:8
      #6 0x974643d in iterativelySimplifyCFG(
The file was modifiedllvm/lib/IR/BasicBlock.cpp
The file was removedllvm/test/Transforms/LoopRotate/phi-empty.ll
The file was modifiedllvm/include/llvm/IR/BasicBlock.h
Commit e0e7bbeb545516c50a0354efc34d329453558c9c by Raphael Isemann
[lldb] Always include template arguments that have their default value in the internal type name

Our type formatters/summaries match on the internal type name we generate in LLDB for Clang types.

These names were generated using Clang's default printing policy. However Clang's
default printing policy got tweaked over the last month to make the generated type
names more readable (by for example excluding inline/anonymous namespaces and
removing template arguments that have their default value). This broke the formatter
system where LLDB's matching logic now no longer can format certain types as
the new type names generated by Clang's default printing policy no longer match
the type names that LLDB/the user specified.

I already introduced LLDB's own type printing policy and fixed the inline/anonymous
namespaces in da121fff1184267a405f81a87f7314df2d474e1c (just to get the
test suite passing again).

This patch is restoring the old type printing behaviour where always include the template
arguments in the internal type name (even if they match the default args). This should get
template type formatters/summaries working again in the rare situation where we do
know template default arguments within LLDB. This can only happen when either having
a template that was parsed in the expression parser or when we get type information from a C++ module.

The Clang change that removed defaulted template arguments from Clang's printing policy was
e7f3e2103cdb567dda4fd52f81bf4bc07179f5a8

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D92311
The file was modifiedlldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
The file was addedlldb/test/API/lang/cpp/default-template-args/TestDefaultTemplateArgs.py
The file was addedlldb/test/API/lang/cpp/default-template-args/main.cpp
The file was addedlldb/test/API/lang/cpp/default-template-args/Makefile
Commit 1dc38f8cfbbc4cce12f8416a1e51d38285e6872f by spatel
[IR] improve code comment/logic in removePredecessor(); NFC

This was suggested in the post-commit review of ce134da4b1.
The file was modifiedllvm/lib/IR/BasicBlock.cpp
Commit 8fcc8c3148d087e9190cf6858c80f6306b3a93e5 by llvm-dev
[X86] Add vbmi2 test coverage for vector rotations

We should be using the funnel shift instructions for vXi16 types.
The file was modifiedllvm/test/CodeGen/X86/vector-rotate-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-rot-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-rotate-128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-rot-sub128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-rot-sub128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-rot-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-rot-128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-rotate-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-rot-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshr-rot-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-fshl-rot-128.ll
Commit 4db1de3a77939c0ec409e4e2c01f27be639f20a3 by flo
[ConstraintElimination] Add additional GEP decomposition tests.
The file was modifiedllvm/test/Transforms/ConstraintElimination/geps.ll
Commit cbbd7021f176d1344fb4d71d492ccc6017f98151 by craig.topper
[RISCV] Only combine (or (GREVI x, shamt), x) -> GORCI if shamt is a power of 2.

GORCI performs an OR between each stage. So we need to ensure only
one stage is active before doing this combine.

Initial attempts at finding a test case for this failed due to
the order things get combined. It's most likely that we'll form
one stage of GREVI then combine to GORCI before the two stages of
GREVI are able to be formed and combined with each other to form
a multi stage GREVI.

Differential Revision: https://reviews.llvm.org/D92289
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
Commit 25c8fbb3d92fd8321af59bb370e901f0e229b1c9 by i
[X86] Don't emit R_X86_64_[REX_]GOTPCRELX for a GOT load with an offset

clang may produce `movl x@GOTPCREL+4(%rip), %eax` when loading the high
32 bits of the address of a global variable in -fpic/-fpie mode.

If assembled by GNU as, the fixup emits R_X86_64_GOTPCRELX with an addend != -4.
The instruction loads from the GOT entry with an offset and thus it is incorrect
to relax the instruction.

This patch does not emit a relaxable relocation for a GOT load with an offset
because R_X86_64_[REX_]GOTPCRELX do not make sense for instructions which cannot
be relaxed.  The result is good enough for LLD to work. GNU ld relaxes
mov+GOTPCREL as well, but it suppresses the relaxation if addend != -4.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D92114
The file was modifiedllvm/test/MC/ELF/got-relaxed-rex.s
The file was modifiedllvm/test/MC/X86/gotpcrelx.s
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
Commit 589e10f8586e45ebe9b6409dd29d62f2f40ab52f by i
[ELF] Don't relax R_X86_64_GOTPCRELX if addend != -4

clang may produce `movl x@GOTPCREL+4(%rip), %eax` when loading the high 32 bits
of the address of a global variable in -fpic/-fpie mode.

If assembled by GNU as, the fixup emits an R_X86_64_GOTPCRELX with an
addend != -4. The instruction loads from the GOT entry with an offset
and thus it is incorrect to relax the instruction.

If assembled by the integrated assembler, we emit R_X86_64_GOTPCREL for
relocations that definitely cannot be relaxed (D92114), so this patch is not
needed.

This patch disables the relaxation, which is compatible with the implementation in GNU ld
("Add R_X86_64_[REX_]GOTPCRELX support to gas and ld").

Reviewed By: grimar, jhenderson

Differential Revision: https://reviews.llvm.org/D91993
The file was modifiedlld/ELF/Arch/X86_64.cpp
The file was addedlld/test/ELF/x86-64-gotpc-offset.s
Commit 76d1026b59bd04bd31645ab37dd82d1d89daa6d9 by craig.topper
[RISCV] Custom legalize bswap/bitreverse to GREVI with Zbp extension to enable them to combine with other GREVI instructions

This enables bswap/bitreverse to combine with other GREVI patterns or each other without needing to add more special cases to the DAG combine or new DAG combines.

I've also enabled the existing GREVI combine for GREVIW so that it can pick up the i32 bswap/bitreverse on RV64 after they've been type legalized to GREVIW.

Differential Revision: https://reviews.llvm.org/D92253
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoB.td
The file was modifiedllvm/test/CodeGen/RISCV/rv64Zbp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rv32Zbp.ll
Commit 9eb2c0113dfe2c1054e524122ca0e17ad552bb01 by spatel
[IR][LoopRotate] remove assertion that phi must have at least one operand

This was suggested in D92247 - I initially committed an alternate
fix ( bfd2c216ea ) to avoid the crash/assert shown in
https://llvm.org/PR48296 ,
but that was reverted because it caused msan failures on other
tests. We can try to revive that patch using the test included
here, but I do not have an immediate plan to isolate that problem.
The file was addedllvm/test/Transforms/LoopRotate/phi-empty.ll
The file was modifiedllvm/lib/IR/Verifier.cpp
Commit bfc4f29f46b4961c0532cf734f5d15015b4f7120 by craig.topper
[RISCV] Combine (GORCI (GORCI x, C2), C1) -> (GORCI x, C1|C2).

Unlike GREVI, GORCI stages can't be undone, but they are
redundant if done more than once.

Differential Revision: https://reviews.llvm.org/D92295
The file was modifiedllvm/test/CodeGen/RISCV/rv64Zbp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rv32Zbp.ll
Commit 1b723a955da04d5a4fc7953c86045b8ef6da2881 by vyng
[sanitizer] Disable use_tls_dynamic on on-Android x86 Linux.

https://bugs.chromium.org/p/chromium/issues/detail?id=1153421

Differential Revision: https://reviews.llvm.org/D92273
The file was modifiedcompiler-rt/test/lsan/TestCases/Linux/use_tls_dynamic.cpp
Commit 7a91794d5b261bc87991d5acce9fa503e9a4f269 by praveen
[Flang][OpenMP] Add semantic checks for OpenMP Private clause.

Add the semantic checks for the OpenMP 4.5 - 2.15.3.3 Private clause.

1. Pointers with the INTENT(IN) attribute may not appear in a private clause.
2. Variables that appear in namelist statements may not appear in a private clause.
   A flag 'InNamelist' is added to the Symbol::Flag to identify the symbols
   in Namelist statemnts.

Test cases : omp-private01.f90, omp-private02.f90

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D90210
The file was modifiedflang/include/flang/Semantics/symbol.h
The file was modifiedflang/lib/Semantics/check-omp-structure.h
The file was modifiedflang/lib/Semantics/check-omp-structure.cpp
The file was addedflang/test/Semantics/omp-private01.f90
The file was modifiedflang/lib/Semantics/resolve-directives.cpp
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was addedflang/test/Semantics/omp-private02.f90
Commit 70eb2ce395be1fe39ceede6719aa667658d1e5a3 by gabor.marton
[ASTImporter] Support import of CXXDeductionGuideDecl

CXXDeductionGuideDecl is a FunctionDecl, but its constructor should be called
appropriately, at least to set the kind variable properly.

Differential Revision: https://reviews.llvm.org/D92109
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
Commit abfbc5579bd4507ae286d4f29f8a157de0629372 by kevin.neal
[FPEnv] clang should get from the AST the metadata for constrained FP builtins

Currently clang is not correctly retrieving from the AST the metadata for
constrained FP builtins. This patch fixes that for the non-target specific
builtins.

Differential Revision: https://reviews.llvm.org/D92122
The file was modifiedclang/test/CodeGen/builtin_float_strictfp.c
The file was modifiedclang/test/CodeGen/constrained-math-builtins.c
The file was addedclang/test/CodeGen/strictfp_fpclassify.c
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
Commit ee073c798515e56b23463391a7b40d5ee6527337 by benicsbalazs
[analyzer][StdLibraryFunctionsChecker] Fix typos in summaries of mmap and mmap64

The fd parameter of
```
void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset)
```
should be constrained to the range [0, IntMax] as that is of type int.
Constraining to the range [0, Off_tMax] would result in a crash as that is
of a signed type with the value of 0xff..f (-1).

The crash would happen when we try to apply the arg constraints.
At line 583: assert(Min <= Max), as 0 <= -1 is not satisfied

The mmap64 is fixed for the same reason.

Reviewed By: martong, vsavchenko

Differential Revision: https://reviews.llvm.org/D92307
The file was addedclang/test/Analysis/std-c-library-posix-crash.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
Commit bc7b2688d6762687ab4ec103d214ce5bb5d4210f by zarko
Add -fintegrated-as to second invocation of clang in test case.
The file was modifiedclang/test/Driver/report-stat.c
Commit 6fe610535f4e0654766a1ace6acafc22150c951d by marukawa
[VE] Clean check routines of branch types

Previously, these check routines accepted non-generatble instructions.
This time, I clean them and add assert for those non-generatable
instructions.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D92254
The file was addedllvm/test/CodeGen/VE/Scalar/br_analyze.ll
The file was modifiedllvm/lib/Target/VE/VEInstrInfo.cpp
Commit 6834b3d6d52a4083113eea52e2afb4d2c915602c by marukawa
[VE] Optimize prologue/epilogue instructions about GOT

Optimize prologue/epilogue instructions if a given function use GOT but
do not call other functions by eliminating FP.  Previously, we had wrong
implementations taken from other architectures.  Update regression tests
also.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D92313
The file was modifiedllvm/lib/Target/VE/VEISelLowering.cpp
The file was modifiedllvm/test/CodeGen/VE/Scalar/br_jt.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/function_prologue_epilogue.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/stackframe_nocall.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/pic_access_data.ll
The file was modifiedllvm/test/CodeGen/VE/Scalar/pic_access_static_data.ll
Commit f6150aa41a48ac8b5372fe4d6ccdfff96e432431 by joe.ellis
[SelectionDAGBuilder] Update signature of `getRegsAndSizes()`.

The mapping between registers and relative size has been updated to
use TypeSize to account for the size of scalable EVTs.

The patch is a NFCI, if not for the fact that with this change the
function `getUnderlyingArgRegs` does not raise a warning for implicit
conversion of `TypeSize` to `unsigned` when generating machine code
from the test added to the patch.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D92096
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was addedllvm/test/CodeGen/AArch64/sdag-no-typesize-warnings-regandsizes.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
Commit 3d872cbc2fd3d7ff43b1058da03a91bea51414c7 by marukawa
[VE][NFC] Update comments

Update comments.  I forgot to update it previously when I modified code.
The file was modifiedllvm/lib/Target/VE/VEFrameLowering.cpp
Commit 8ca484b94680a2b379722c6e7a62350b12c969c6 by llvm-dev
[InstCombine][X86] Add addsub PR46277 test case

Also fix a copy+paste typo in the elts_addsub_v4f32 demanded elts test from the godbolt reference
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-addsub.ll
Commit 7c4555f60d96d8a3ed35d74dab7e591dacc24b8d by i
[PowerPC] Delete remnant Darwin code in PPCAsmParser

Continue the work started at D50989.
The code has been long dead since the triple has been removed (D75494).

Reviewed By: nickdesaulniers, void

Differential Revision: https://reviews.llvm.org/D91836
The file was modifiedllvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
Commit 64fa8cce225f7d8bd499e3a99caa850b764ff109 by hoy
[CSSPGO] Pseudo probe instrumentation pass

This change introduces a pseudo probe instrumentation pass for block instrumentation. Please refer to https://reviews.llvm.org/D86193 for the whole story.

Given the following LLVM IR:

```
define internal void @foo2(i32 %x, void (i32)* %f) !dbg !4 {
bb0:
  %cmp = icmp eq i32 %x, 0
   br i1 %cmp, label %bb1, label %bb2
bb1:
   br label %bb3
bb2:
   br label %bb3
bb3:
   ret void
}
```

The instrumented IR will look like below. Note that each llvm.pseudoprobe intrinsic call represents a pseudo probe at a block, of which the first parameter is the GUID of the probe’s owner function and the second parameter is the probe’s ID.

```
define internal void @foo2(i32 %x, void (i32)* %f) !dbg !4 {
bb0:
   %cmp = icmp eq i32 %x, 0
   call void @llvm.pseudoprobe(i64 837061429793323041, i64 1)
   br i1 %cmp, label %bb1, label %bb2
bb1:
   call void @llvm.pseudoprobe(i64 837061429793323041, i64 2)
   br label %bb3
bb2:
   call void @llvm.pseudoprobe(i64 837061429793323041, i64 3)
   br label %bb3
bb3:
   call void @llvm.pseudoprobe(i64 837061429793323041, i64 4)
   ret void
}
```

Reviewed By: wmi

Differential Revision: https://reviews.llvm.org/D86499
The file was addedllvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was addedllvm/test/Transforms/SampleProfile/pseudo-probe-emit.ll
The file was modifiedllvm/lib/Transforms/IPO/CMakeLists.txt
The file was addedllvm/lib/Transforms/IPO/SampleProfileProbe.cpp
Commit c083fededfa63df6e1a560334bdb78797da9ee57 by hoy
[CSSPGO] A Clang switch -fpseudo-probe-for-profiling for pseudo-probe instrumentation.

This change introduces a new clang switch `-fpseudo-probe-for-profiling` to enable AutoFDO with pseudo instrumentation. Please refer to https://reviews.llvm.org/D86193 for the whole story.

One implication from pseudo-probe instrumentation is that the profile is now sensitive to CFG changes. We perform the pseudo instrumentation very early in the pre-LTO pipeline, before any CFG transformation. This ensures that the CFG instrumented and annotated is stable and optimization-resilient.

The early instrumentation also allows the inliner to duplicate probes for inlined instances. When a probe along with the other instructions of a callee function are inlined into its caller function, the GUID of the callee function goes with the probe. This allows samples collected on inlined probes to be reported for the original callee function.

Reviewed By: wmi

Differential Revision: https://reviews.llvm.org/D86502
The file was modifiedllvm/include/llvm/Passes/PassBuilder.h
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was addedclang/test/CodeGen/pseudo-probe-emit.c
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
Commit a4064cbf32eb3f9de5f1d8cc679712c2f81937e3 by llvmgnsyncbot
[gn build] Port 64fa8cce225
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/IPO/BUILD.gn
Commit e425d0b92a1df69e5e41e6b23801fabeaaef7937 by llvm-dev
[InstCombine][X86] Add basic addsub intrinsic SimplifyDemandedVectorElts support (PR46277)

Pass through the demanded elts mask to the source operands.

The next step will be to add support for folding to add/sub if we only demand odd/even elements.
The file was modifiedllvm/lib/Target/X86/X86InstCombineIntrinsic.cpp
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-addsub.ll
Commit 61aec69a65dec949f3d2556c4d0efaa87869e1ee by leonardchan
[libcxxabi] Add macro for changing functions to support the relative vtables ABI

Under the relative vtables ABI, __dynamic_cast will not work since it assumes
the vtable pointer is 2 ptrdiff_ts away from the start of the vtable (8-byte
offset to top + 8-byte pointer to typeinfo) when it is actually 8 bytes away
(4-byte offset to top + 4-byte offset to typeinfo). This adjusts the logic under
__dynamic_cast and other areas vtable calculations are done to support this ABI
when it's used.

Differential Revision: https://reviews.llvm.org/D77606
The file was modifiedlibcxxabi/src/private_typeinfo.cpp
Commit cdac34bd47a34337579e50dedc119548b379f20e by harald
[X86] Zero-extend pointers to i64 for x86_64

For LP64 mode, this has no effect as pointers are already 64 bits.
For ILP32 mode (x32), this extension is specified by the ABI.

Reviewed By: pengfei

Differential Revision: https://reviews.llvm.org/D91338
The file was modifiedllvm/test/CodeGen/X86/pr38865.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/sibcall.ll
The file was modifiedllvm/test/CodeGen/X86/musttail-varargs.ll
The file was modifiedllvm/lib/Target/X86/X86CallingConv.td
The file was modifiedllvm/test/CodeGen/X86/pr38865-2.ll
The file was modifiedllvm/test/CodeGen/X86/x86-64-sret-return.ll
The file was modifiedllvm/lib/Target/X86/X86CallingConv.cpp
The file was modifiedllvm/test/CodeGen/X86/x32-function_pointer-2.ll
The file was modifiedllvm/test/CodeGen/X86/pr38865-3.ll
Commit a474657e30edccd9e175d92bddeefcfa544751b2 by paul.robinson
[FastISel] NFC: Remove obsolete -fast-isel-sink-local-values option

This option is not used for anything after #dc35368 (D91734).
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fast-isel-gv.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-patchpoint-webkit_jscc.ll
The file was modifiedllvm/test/CodeGen/ARM/fast-isel-vararg.ll
The file was modifiedllvm/test/CodeGen/X86/avx512-mask-zext-bugfix.ll
The file was modifiedllvm/test/CodeGen/Mips/Fast-ISel/simplestore.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-abi_align.ll
The file was modifiedllvm/test/CodeGen/X86/pr32340.ll
The file was modifiedllvm/test/CodeGen/AArch64/swifterror.ll
The file was modifiedllvm/test/CodeGen/Mips/Fast-ISel/simplestorei.ll
The file was modifiedllvm/test/DebugInfo/X86/prologue-stack.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fast-isel-intrinsic.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fast-isel.ll
The file was modifiedllvm/test/CodeGen/X86/inreg.ll
The file was modifiedllvm/test/CodeGen/Mips/Fast-ISel/callabi.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedllvm/test/CodeGen/X86/pr32241.ll
The file was modifiedllvm/test/CodeGen/ARM/fast-isel-call.ll
The file was modifiedllvm/test/CodeGen/X86/sse-intrinsics-fast-isel.ll
The file was modifiedllvm/test/CodeGen/X86/sink-local-value.ll
The file was modifiedllvm/test/CodeGen/ARM/fast-isel-select.ll
The file was modifiedllvm/test/DebugInfo/Mips/delay-slot.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
The file was modifiedllvm/test/CodeGen/X86/pr32284.ll
The file was modifiedllvm/test/CodeGen/ARM/fast-isel-intrinsic.ll
The file was modifiedllvm/test/CodeGen/X86/bmi-intrinsics-fast-isel.ll
The file was modifiedllvm/test/CodeGen/X86/fast-isel-call-cleanup.ll
The file was modifiedllvm/test/CodeGen/ARM/swifterror.ll
The file was modifiedllvm/test/CodeGen/X86/pr32345.ll
The file was modifiedllvm/test/CodeGen/X86/pr32484.ll
Commit 750049d78b7421344882948cdf98fd233a557615 by hoy
[CSSPGO] Disabling a pseudo probe test on non-x86 platforms.

Disabling a pseudo probe test on non-x86 platforms since it's not fully tested there.
The file was modifiedllvm/test/Transforms/SampleProfile/pseudo-probe-emit.ll
Commit 630d37dc1be1ff179a5c85f41070358d4706b907 by sjoerd.meijer
[AArch64] Enable Cortex-A55 schedmodel

The model was committed in 4b8ade837e36b7f0181ce86fc23f33851d0fdd35
but not yet enabled to allow for a few fix ups. This adds a few
of these fixes, and also a LLVM MCA test to check most instructions.
While I do have plans to look into some more tuning, it's time to
enable this as it better than using the A53 schedule.

Differential Revision: https://reviews.llvm.org/D88017
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedA55.td
The file was modifiedllvm/lib/Target/AArch64/AArch64.td
The file was addedllvm/test/tools/llvm-mca/AArch64/Cortex/A55-basic-instructions.s
Commit 40dc535b5afffb1d309e44ca636219c1b8a6873b by spatel
[x86] add tests for maxnum/minnum with nnan; NFC
The file was modifiedllvm/test/Analysis/CostModel/X86/fmaxnum.ll
The file was modifiedllvm/test/Analysis/CostModel/X86/fminnum.ll
Commit abef659a45fff4147f8f0ffd1d0f6600185e4a4e by epastor
[ms] [llvm-ml] Implement the statement expansion operator

If prefaced with a %, expand text macros and macro functions in any statement.

Also, prevent expanding text macros in the message of an ECHO directive unless expanded explicitly by the statement expansion operator.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D89740
The file was modifiedllvm/include/llvm/MC/MCAsmMacro.h
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was addedllvm/test/tools/llvm-ml/expansion.test
Commit fe431683484a3041e024ab2373bb707b1ca8d1cf by nicholas
Creating a named struct requires only a Context and a name, but looking up a struct by name requires a Module. The method on Module merely accesses the LLVMContextImpl and no data from the module itself, so this patch moves getTypeByName to a static method on StructType that takes a Context and a name.

There's a small number of users of this function, they are all updated.

This updates the C API adding a new method LLVMGetTypeByName2 that takes a context and a name.

Differential Revision: https://reviews.llvm.org/D78793
The file was modifiedllvm/include/llvm-c/Core.h
The file was modifiedllvm/lib/IR/Type.cpp
The file was modifiedllvm/tools/llvm-c-test/echo.cpp
The file was modifiedllvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
The file was modifiedllvm/lib/IR/Core.cpp
The file was modifiedllvm/lib/Linker/IRMover.cpp
The file was modifiedllvm/unittests/Analysis/TargetLibraryInfoTest.cpp
The file was modifiedpolly/lib/CodeGen/LoopGeneratorsKMP.cpp
The file was modifiedllvm/include/llvm/IR/Module.h
The file was modifiedllvm/include/llvm/IR/DerivedTypes.h
Commit b5f23189fb051e720d43f8a80c09038d4860b8a1 by nikita.ppv
[DL] Inline getAlignmentInfo() implementation (NFC)

Apart from getting the entry in the table (which is already a
separate function), the remaining logic is different for all
alignment types and is better combined with getAlignment().

This is a minor efficiency improvement, and should make further
improvements like using separate storage for different alignment
types simpler.
The file was modifiedllvm/include/llvm/IR/DataLayout.h
The file was modifiedllvm/lib/IR/DataLayout.cpp
Commit 5fe10263ab39be96e316f37272b85a72596a7928 by mtrofin
[llvm][inliner] Reuse the inliner pass to implement 'always inliner'

Enable performing mandatory inlinings upfront, by reusing the same logic
as the full inliner, instead of the AlwaysInliner. This has the
following benefits:
- reduce code duplication - one inliner codebase
- open the opportunity to help the full inliner by performing additional
function passes after the mandatory inlinings, but before th full
inliner. Performing the mandatory inlinings first simplifies the problem
the full inliner needs to solve: less call sites, more contextualization, and,
depending on the additional function optimization passes run between the
2 inliners, higher accuracy of cost models / decision policies.

Note that this patch does not yet enable much in terms of post-always
inline function optimization.

Differential Revision: https://reviews.llvm.org/D91567
The file was modifiedclang/test/Frontend/optimization-remark-with-hotness-new-pm.c
The file was modifiedllvm/include/llvm/Analysis/InlineAdvisor.h
The file was modifiedclang/test/Frontend/optimization-remark-new-pm.c
The file was modifiedllvm/lib/Analysis/MLInlineAdvisor.cpp
The file was modifiedclang/test/Frontend/optimization-remark.c
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedclang/test/Frontend/optimization-remark-line-directive.c
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp
The file was modifiedllvm/lib/Analysis/InlineAdvisor.cpp
The file was modifiedllvm/test/Transforms/Inline/ML/bounds-checks-rewards.ll
The file was modifiedllvm/test/Transforms/Inline/ML/bounds-checks.ll
The file was modifiedllvm/test/Other/new-pm-module-inliner-wrapper.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
The file was modifiedllvm/test/Transforms/Inline/inline_stats.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
The file was modifiedllvm/include/llvm/Passes/PassBuilder.h
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
The file was modifiedllvm/test/Transforms/Inline/pr46945.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
Commit 29bd6519d2e220f6a0ab27efd0adbe16ac01a7ef by Matthew.Arsenault
SplitKit: Use Register
The file was modifiedllvm/lib/CodeGen/SplitKit.cpp
The file was modifiedllvm/lib/CodeGen/SplitKit.h
Commit e5c17b2deea5620dcc736a9dad5def219f86e4da by epastor
[ms] [llvm-ml] Test macro function invocations in arbitrary positions

Differential Revision: https://reviews.llvm.org/D89741
The file was modifiedllvm/test/tools/llvm-ml/macro_function.test
Commit fdff677a955730b3e85b870ff1b30d7f8ea5719c by yitzhakm
[libTooling] Remove deprecated Clang Transformer declarations

A number of declarations were leftover after the move from `clang::tooling` to
`clang::transformer`. This patch removes those declarations and upgrades the
handful of references to the deprecated declarations.

Differential Revision: https://reviews.llvm.org/D92340
The file was modifiedclang/include/clang/Tooling/Transformer/RangeSelector.h
The file was modifiedclang-tools-extra/unittests/clang-tidy/TransformerClangTidyCheckTest.cpp
The file was modifiedclang/include/clang/Tooling/Transformer/RewriteRule.h
The file was modifiedclang/lib/Tooling/Transformer/RewriteRule.cpp
The file was modifiedclang/unittests/Tooling/TransformerTest.cpp
The file was modifiedclang-tools-extra/clang-tidy/abseil/StringFindStrContainsCheck.cpp
Commit 4e85e0ca904d154b1ee30b213e8d7bfb8afaa25d by noreply
github actions: Use correct credentials for pushing
The file was modified.github/workflows/main-branch-sync.yml
Commit 3fd39d3694d32efa44242c099e923a7f4d982095 by paul.robinson
[FastISel] NFC: Clean up unnecessary bookkeeping

Now that we flush the local value map for every instruction, we don't
need any extra flushes for specific cases.  Also, LastFlushPoint is
not used for anything.  Follow-ups to #dc35368 (D91734).

Differential Revision: https://reviews.llvm.org/D92338
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedllvm/include/llvm/CodeGen/FastISel.h
Commit 66124098a88a564143a36869f495708502a35c50 by flo
[ConstraintElimination] Expand GEP decomposition tests.

This adjusts the tests to cover more scenarios.
The file was modifiedllvm/test/Transforms/ConstraintElimination/geps.ll
Commit 164410324d8bf3b5a99e39f7dfe3c6d6972dab30 by i
[CodeGen] -fno-delete-null-pointer-checks: change dereferenceable to dereferenceable_or_null

After D17993, with -fno-delete-null-pointer-checks we add the dereferenceable attribute to the `this` pointer.

We have observed that one internal target which worked before fails even with -fno-delete-null-pointer-checks.
Switching to dereferenceable_or_null fixes the problem.

dereferenceable currently does not always respect NullPointerIsValid and may
imply nonnull and lead to aggressive optimization. The optimization may be
related to `CallBase::isReturnNonNull`, `Argument::hasNonNullAttr`, or
`Value::getPointerDereferenceableBytes`. See D66664 and D66618 for some discussions.

Reviewed By: bkramer, rsmith

Differential Revision: https://reviews.llvm.org/D92297
The file was modifiedclang/test/CodeGenCXX/this-nonnull.cpp
The file was modifiedclang/lib/CodeGen/CGCall.cpp
Commit f89e9c8201ea5a5b63af854c92ed26bc7ab4b8db by enye.shi
[HIP] Fix HIP test on windows due to lld suffix

On Windows, lld is instead named lld.exe, therefore
a few HIP tests are failing. Instead the wildcard should
be modified to .*lld.* to handle .exe. This fixes the
bug: https://bugs.llvm.org/show_bug.cgi?id=48289.

Differential Revision: https://reviews.llvm.org/D92342
The file was modifiedclang/test/Driver/hip-toolchain-rdc-static-lib.hip
The file was modifiedclang/test/Driver/hip-toolchain-rdc.hip
Commit ebac7100090a914e6a4dd0fdf2a5a196423cbaec by thakis
[lld-macho] Don't warn on non-existent system libraries

Now, new mach-o lld no longer warns if the isysroot has just
usr/lib and System/Library/Frameworks but is missing usr/local/lib
and System/Frameworks.

This matches ld64 and old mach-o lld and fixes a regression from D85992.

It also fixes the only test failure in `check-lld` when running it
on an M1 Mac.

Differential Revision: https://reviews.llvm.org/D91891
The file was modifiedlld/test/MachO/syslibroot.test
The file was modifiedlld/MachO/Driver.cpp
Commit 78c04fe99ec0013c53cd5d165543200009116c85 by thakis
[lld/mac] Don't warn on -bundle and -execute flags

They've been implemented since D87856 but since they still were
HelpHidden, the driver still warned claiming they were implemented.
Remove HelpHidden.

Use -fatal_warnings to test that the flags now don't warn. The
test depends on D91894 and D91891 to pass.

Differential Revision: https://reviews.llvm.org/D91971
The file was modifiedlld/MachO/Options.td
The file was modifiedlld/test/MachO/load-commands.s
Commit f6f28b44ad48e35d1300693d9c34f47782b519a4 by Andrey.Churbanov
[OpenMP] libomp: fix mutexinoutset dependence for proxy tasks

Once __kmp_task_finish is not executed for proxy tasks,
move mutexinoutset dependency code to __kmp_release_deps
which is executed for all task kinds.

Differential Revision: https://reviews.llvm.org/D92326
The file was modifiedopenmp/runtime/src/kmp_tasking.cpp
The file was modifiedopenmp/runtime/src/kmp_taskdeps.h
Commit 9615890db576721fbd73ae77d81d39435e83b4b4 by Andrey.Churbanov
[OpenMP] libomp: change shm name to include UID, call unregister_lib on SIGTERM

With the change to using shared memory, there were a few problems that need to be fixed.
- The previous filename that was used for SHM only used process id. Given that process is
  usually based on 16bit number, this was causing some conflicts on machines. Thus we add
  UID to the name to prevent this.
- It appears under some conditions (SIGTERM, etc) the shared memory files were not getting
  cleaned up. Added a call to clean up the shm files under those conditions. For this user
  needs to set envirable KMP_HANDLE_SIGNALS to true.

Patch by Erdner, Todd <todd.erdner@intel.com>

Differential Revision: https://reviews.llvm.org/D91869
The file was modifiedopenmp/runtime/src/kmp_runtime.cpp
The file was modifiedopenmp/runtime/src/kmp.h
The file was modifiedopenmp/runtime/src/z_Linux_util.cpp
Commit ac40a2d8f16b8a8c68fc811d67f647740e965cb8 by Duncan P. N. Exon Smith
Serialization: Change InputFile to use FileEntryRef and add getVirtualFileRef, NFC

Change the `InputFile` class to store `Optional<FileEntryRef>` instead
of `FileEntry*`. This paged in a few API changes:

- Added `FileManager::getVirtualFileRef`, and converted `getVirtualFile`
  to a wrapper of it.
- Updated `SourceManager::bypassFileContentsOverride` to take
  `FileEntryRef` and return `Optional<FileEntryRef>`
  (`ASTReader::getInputFile` is the only caller).

Differential Revision: https://reviews.llvm.org/D90053
The file was modifiedclang/lib/Basic/SourceManager.cpp
The file was modifiedclang/lib/Serialization/ASTReader.cpp
The file was modifiedclang/lib/Basic/FileManager.cpp
The file was modifiedclang/include/clang/Basic/FileManager.h
The file was modifiedclang/include/clang/Basic/SourceManager.h
The file was modifiedclang/include/clang/Serialization/ModuleFile.h
Commit fd3d1b09c12f1419292172627dbca9929f0daf39 by protze
[OpenMP][Tests][NFC] Use FileCheck from cmake config
The file was modifiedopenmp/runtime/test/lit.cfg
Commit 00bbef2bb20cf212722de282e4eb9afd09ab50db by akhuang
[llvm-symbolizer] Fix native symbolization on windows for inline sites.

The existing code handles this correctly and I checked that the code
in NativeInlineSiteSymbol also handles this correctly, but it was
wrong in the NativeFunctionSymbol code.

Differential Revision: https://reviews.llvm.org/D92134
The file was modifiedlld/test/COFF/symbolizer-inline.s
The file was modifiedllvm/lib/DebugInfo/PDB/Native/NativeFunctionSymbol.cpp
Commit 1b9f214efca7d5855f4e3dd1969c4cbe77078f97 by Jonas Devlieghere
[lldb] Give TestDefaultTemplateArgs a unique class name

Multiple tests cannot share the same test class name.
The file was modifiedlldb/test/API/lang/cpp/default-template-args/TestDefaultTemplateArgs.py
Commit 1b042de5b29af4869a77ecbc632029fba0313dec by Duncan P. N. Exon Smith
FileManager: Add FileEntryRef::getDir, returning DirectoryEntryRef

Add `FileEntryRef::getDir`, which returns a `DirectoryEntryRef`. This
includes a few changes:

- Customize `OptionalStorage` so that `Optional<DirectoryEntryRef>` is
  pointer-sized (like the change made to `Optional<FileEntryRef>`).
  Factored out a common class, `FileMgr::MapEntryOptionalStorage`, to
  reduce the code duplication.
- Store an `Optional<DirectoryEntryRef>` in `FileEntryRef::MapValue`.
  This is set if and only if `MapValue` has a real `FileEntry`.
- Change `FileManager::getFileRef` and `getVirtualFileRef` to use
  `getDirectoryRef` and store it in the `StringMap` for `FileEntryRef`.

Differential Revision: https://reviews.llvm.org/D90484
The file was modifiedclang/lib/Basic/FileManager.cpp
The file was modifiedclang/include/clang/Basic/DirectoryEntry.h
The file was modifiedclang/unittests/Basic/FileEntryTest.cpp
The file was modifiedclang/include/clang/Basic/FileEntry.h
Commit 94f537c6b2bb55c8e058a9989d02ab0d68a0c61a by Duncan P. N. Exon Smith
Remove dead code added in ac49500cd0484e1b2dcf37fa4c0dade6f113c2c9, NFC

This was a copy/paste bug; `M0` is never referenced later.
The file was modifiedclang/unittests/Basic/FileEntryTest.cpp
Commit 8cdf4920c47ddd3d60bdc3298f525512d483ce65 by akhuang
[llvm-symbolizer] Fix typo in llvm-symbolizer test from a previous commit.

(Commit was 00bbef2bb20cf212722de282e4eb9afd09ab50db)
The file was modifiedlld/test/COFF/symbolizer-inline.s
Commit cf8ff75bade763b054476321dcb82dcb2e7744c7 by leonardchan
[clang][RelativeVTablesABI] Use dso_local_equivalent rather than emitting stubs

Thanks to D77248, we can bypass the use of stubs altogether and use PLT
relocations if they are available for the target. LLVM and LLD support the
R_AARCH64_PLT32 relocation, so we can also guarantee a static PLT relocation on AArch64.
Not emitting these stubs saves a lot of extra binary size.

Differential Revision: https://reviews.llvm.org/D83812
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/multiple-inheritance.cpp
The file was removedclang/test/CodeGenCXX/RelativeVTablesABI/stub-linkages.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/inlined-key-function.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/diamond-virtual-inheritance.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-1.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/simple-vtable-definition.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/diamond-inheritance.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/parent-vtable-in-comdat.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/inline-virtual-function.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/type-info.cpp
The file was removedclang/test/CodeGenCXX/RelativeVTablesABI/pass-byval-attributes.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/child-vtable-in-comdat.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/child-inheritted-from-parent-in-comdat.cpp
The file was modifiedclang/lib/CodeGen/CGVTables.cpp
The file was removedclang/test/CodeGenCXX/RelativeVTablesABI/no-stub-when-dso-local.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/overriden-virtual-function.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-2.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/inheritted-virtual-function.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/parent-and-child-in-comdats.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/override-pure-virtual-method.cpp
The file was modifiedclang/test/CodeGenCXX/RelativeVTablesABI/relative-vtables-flag.cpp
Commit 91aff1d8bae02fc65970b52895f05d3574cbb481 by ndesaulniers
[InlineCost] prefer range-for. NFC

Prefer range-for over iterators when such methods exist. Precommitted
from https://reviews.llvm.org/D91816.

Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D92350
The file was modifiedllvm/lib/Analysis/InlineCost.cpp
Commit 43b5b485a203f190ee4d5d3cab19c44ca865d316 by rnk
Fix GCC 5.3 compile error in ASTImporter code

Try to simplify this code a different way: use less Expected, more
outparams.
The file was modifiedclang/lib/AST/ASTImporter.cpp
Commit 871f96eed3797061c8b1c82fb77d077d110a2da7 by zequanwu
[libcxx] remove checks for __STDCPP_THREADS__ as it is defined by compiler

Differential Revision: https://reviews.llvm.org/D92349
The file was modifiedlibcxx/include/__config
Commit 87ff156414370043cf149e0c77513c5227b336b1 by Amara Emerson
[AArch64][GlobalISel] Fix crash during legalization of a vector G_SELECT with scalar mask.

The lowering of vector selects needs to first splat the scalar mask into a vector
first.

This was causing a crash when building oggenc in the test suite.

Differential Revision: https://reviews.llvm.org/D91655
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-select.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit b5af5787b367198f8b87626431cb3f66fef460c1 by rnk
[WinASan] Improve exception reporting accuracy

Previously, ASan would produce reports like this:
ERROR: AddressSanitizer: breakpoint on unknown address 0x000000000000 (pc 0x7fffdd7c5e86 ...)

This is unhelpful, because the developer may think this is a null
pointer dereference, and not a breakpoint exception on some PC.

The cause was that SignalContext::GetAddress would read the
ExceptionInformation array to retreive an address for any kind of
exception. That data is only available for access violation exceptions.
This changes it to be conditional on the exception type, and to use the
PC otherwise.

I added a variety of tests for common exception types:
- int div zero
- breakpoint
- ud2a / illegal instruction
- SSE misalignment

I also tightened up IsMemoryAccess and GetWriteFlag to check the
ExceptionCode rather than looking at ExceptionInformation[1] directly.

Differential Revision: https://reviews.llvm.org/D92344
The file was addedcompiler-rt/test/asan/TestCases/Windows/illegal_instruction.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_win.cpp
The file was addedcompiler-rt/test/asan/TestCases/Windows/integer_divide_by_zero.cpp
The file was addedcompiler-rt/test/asan/TestCases/Windows/breakpoint.cpp
The file was addedcompiler-rt/test/asan/TestCases/Windows/sse_misalignment.cpp
Commit 61da501b6a1bf845c3da9a7e761a3c6a3b6cf21a by thakis
clang/test: Remove platform-linker feature

By explicitly requesting the system linker with `-fuse-ld=`, the
tests are able to CHECK for the system linker even with
CLANG_DEFAULT_LINKER=lld.

Alternative to D74704.

Differential Revision: https://reviews.llvm.org/D92291
The file was modifiedclang/test/Driver/riscv64-toolchain-extra.c
The file was modifiedclang/test/lit.site.cfg.py.in
The file was modifiedclang/test/Driver/riscv32-toolchain-extra.c
The file was modifiedclang/test/Driver/riscv64-toolchain.c
The file was modifiedclang/test/Driver/riscv32-toolchain.c
The file was modifiedllvm/utils/gn/secondary/clang/test/BUILD.gn
Commit 774f1d3ffd458d6cb82d5039758ef1cf6370957f by silvasean
[mlir] Small cleanups to func-bufferize/finalizing-bufferize

- Address TODO in scf-bufferize: the argument materialization issue is
  now fixed and the code is now in Transforms/Bufferize.cpp
- Tighten up finalizing-bufferize to avoid creating invalid IR when
  operand types potentially change
- Tidy up the testing of func-bufferize, and move appropriate tests
  to a new finalizing-bufferize.mlir
- The new stricter checking in finalizing-bufferize revealed that we
  needed a DimOp conversion pattern (found when integrating into npcomp).
  Previously, the converion infrastructure was blindly changing the
  operand type during finalization, which happened to work due to
  DimOp's tensor/memref polymorphism, but is generally not encouraged
  (the new pattern is the way to tell the conversion infrastructure that
  it is legal to change that type).
The file was modifiedmlir/lib/Dialect/SCF/Transforms/Bufferize.cpp
The file was addedmlir/test/Transforms/finalizing-bufferize.mlir
The file was modifiedmlir/lib/Transforms/Bufferize.cpp
The file was removedmlir/test/Dialect/Standard/func-bufferize-partial.mlir
The file was modifiedmlir/test/Dialect/Standard/bufferize.mlir
The file was modifiedmlir/test/Dialect/Standard/func-bufferize.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/Bufferize.cpp
Commit f85db7f7ba683b2450892fde247311d7a48adbd0 by Duncan P. N. Exon Smith
Lex: Update Module::findHeader to return FileEntryRef, NFC

Update `Module::findHeader` to return `Optional<FileEntryRef>` and
fix its one caller.

Differential Revision: https://reviews.llvm.org/D90485
The file was modifiedclang/lib/Lex/ModuleMap.cpp
The file was modifiedclang/include/clang/Lex/ModuleMap.h
Commit ff2e22853f8d8145cc7c27bb11e44155a124ecec by joker.eph
Don't count attributes when addressing operands.

Fixes out-of-bound access in generated nested DAG rewriter matching code.

Reviewed By: tpopp

Differential Revision: https://reviews.llvm.org/D92075
The file was modifiedmlir/tools/mlir-tblgen/RewriterGen.cpp
The file was addedmlir/test/mlir-tblgen/rewriter-indexing.td
Commit 4d7f3d68f1735ad343a15604559e7d55ac14bfb5 by leonardchan
[llvm] Fix for failing test from cf8ff75bade763b054476321dcb82dcb2e7744c7

Handle null values when handling operand changes for DSOLocalEquivalent.
The file was modifiedllvm/lib/IR/Constants.cpp
Commit efd1ec0dec149c4b99ab30d96edd0ef16a72380f by akhuang
Recommit "[llvm-symbolizer] Switch to using native symbolizer by default on Windows"

This reverts commit 1b63177a56e8cd6196778d2b90295f03e96b5800.
The file was modifiedllvm/test/tools/llvm-symbolizer/pdb/pdb-columns.test
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
The file was modifiedllvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
The file was modifiedllvm/test/tools/llvm-symbolizer/pdb/pdb.test
The file was modifiedllvm/tools/llvm-symbolizer/Opts.td
The file was modifiedllvm/docs/CommandGuide/llvm-symbolizer.rst
The file was modifiedlld/test/COFF/symbolizer-inline.s
The file was modifiedllvm/lib/DebugInfo/Symbolize/Symbolize.cpp
Commit 7c2bc3b71dc072987d43a2a86609871bd01f981f by leonardchan
[clang][Fuchsia] Add relative-vtables multilib

This adds a multilib for Fuchsia that is built with the relative vtables
ABI.
The file was modifiedclang/test/Driver/fuchsia.cpp
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
The file was modifiedclang/lib/Driver/ToolChains/Fuchsia.cpp
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables/libc++.so
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables/libc++.so
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables+noexcept/libc++.so
Commit a160189c5dfaa6b3d7c3db71991e50eebea9a63d by leonardchan
Revert "[clang][Fuchsia] Add relative-vtables multilib"

This reverts commit 7c2bc3b71dc072987d43a2a86609871bd01f981f.

Forgot to add the ifferential revision.
The file was modifiedclang/test/Driver/fuchsia.cpp
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was modifiedclang/lib/Driver/ToolChains/Fuchsia.cpp
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables/libc++.so
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables/libc++.so
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables+noexcept/libc++.so
Commit fdbd84c6c819d4462546961f6086c1524d5d5ae8 by leonardchan
[clang][Fuchsia] Add relative-vtables multilib

This adds multilibs for Fuchsia that is built with the relative vtables ABI,
one with and another without exceptions.

Differential Revision: https://reviews.llvm.org/D85576
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables/libc++.so
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables/libc++.so
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
The file was modifiedclang/test/Driver/fuchsia.cpp
The file was modifiedclang/lib/Driver/ToolChains/Fuchsia.cpp
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was addedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables+noexcept/libc++.so
Commit 36fe1a9dea94ad2babfec3acdf366dabd19db550 by i
[GlobalISel] Fix -Wunused-variable
The file was modifiedllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
Commit d928dfc6f924f7e8436dcb5bcc51285fd03e869c by i
[GlobalISel] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds
The file was modifiedllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
Commit 7bc944c102c2bdb009da4fe7d53dda15ea19ee71 by leonardchan
Revert "[clang][Fuchsia] Add relative-vtables multilib"

This reverts commit fdbd84c6c819d4462546961f6086c1524d5d5ae8.

Reverting due to failing CI builders for Fuchsia's toolchain:
https://luci-milo.appspot.com/p/fuchsia/builders/ci/clang-linux-x64/b8862150211240186992?
The file was modifiedclang/lib/Driver/ToolChains/Fuchsia.cpp
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/x86_64-fuchsia/c++/relative-vtables/libc++.so
The file was modifiedclang/test/Driver/fuchsia.cpp
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables+noexcept/libc++.so
The file was removedclang/test/Driver/Inputs/basic_fuchsia_tree/lib/aarch64-fuchsia/c++/relative-vtables/libc++.so
Commit 011bf4f55630858111e5f0504b3f7390eaf41e09 by Yaxun.Liu
Add help text for -nogpuinc

Differential Revision: https://reviews.llvm.org/D92339
The file was modifiedclang/include/clang/Driver/Options.td
Commit 173bb3c2eb094920708ab8f61dae2fe22d331773 by Jonas Devlieghere
[lldb] Refactor GetDeviceSupportDirectoryNames and GetPlatformName (NFC)

Both functions are effectively returning a single string literal. Change
the interface to return a llvm::StringRef instead of populating a vector
of std::strings or returning a std::string respectively.
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteDarwinDevice.cpp
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteDarwinDevice.h
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleBridge.cpp
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleBridge.h
Commit d4ba5e15f4f2f41f13625cc10e4df74b44620803 by hgreving
Add MachineModuleInfo constructor with external MCContext

Adds a constructor to MachineModuleInfo and MachineModuleInfoWapperPass that
takes an external MCContext. If provided, the external context will be used
throughout codegen instead of MMI's default one.

This enables external drivers to take ownership of data put on the MMI's context
during codegen. The internal context is used otherwise and destroyed upon
finish.

Differential Revision: https://reviews.llvm.org/D91313
The file was modifiedllvm/lib/CodeGen/MachineModuleInfo.cpp
The file was modifiedllvm/include/llvm/CodeGen/MachineModuleInfo.h
Commit 40659cd2c6f4347650d477a16e0cf60ce4401fa6 by craig.topper
[RISCV] Rename RISCVGenSystemOperands.inc to RISCVGenSearchableTables.inc to prepare for more tables. NFC

D89449 adds more tables so renaming as a pre-commit for that.
The file was modifiedllvm/lib/Target/RISCV/Utils/RISCVBaseInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/CMakeLists.txt
The file was modifiedllvm/lib/Target/RISCV/Utils/RISCVBaseInfo.h
Commit 6f0f844e9af98dc935f80d8149f6e4fcebddf8f1 by rtenneti
Initial commit of mktime.

This introduces mktime to LLVM libc, based on C99/C2X/Single Unix Spec.

Co-authored-by: Jeff Bailey <jeffbailey@google.com>

This change doesn't handle TIMEZONE,  tm_isdst and leap seconds.  It returns -1 for invalid dates. I have verified the return results for all the possible dates with glibc's mktime.

TODO:
+ Handle leap seconds.
+ Handle out of range time and date values that don't overflow or underflow.
+ Implement the following suggestion Siva - As we start accumulating the seconds, we should be able to check if the next amount of seconds to be added can lead to an overflow. If it does, return the overflow value.  If not keep accumulating. The benefit is that, we don't have to validate every input, and also do not need the special cases for sizeof(time_t) == 4.
+ Handle timezone and update of tm_isdst

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D91551
The file was modifiedlibc/test/src/CMakeLists.txt
The file was modifiedlibc/spec/spec.td
The file was modifiedlibc/config/linux/api.td
The file was modifiedlibc/spec/stdc.td
The file was addedlibc/src/time/mktime.h
The file was modifiedlibc/config/linux/x86_64/headers.txt
The file was modifiedlibc/include/CMakeLists.txt
The file was modifiedlibc/src/CMakeLists.txt
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was addedlibc/include/time.h.def
The file was addedlibc/src/time/CMakeLists.txt
The file was addedlibc/test/src/time/CMakeLists.txt
The file was addedlibc/src/time/mktime.cpp
The file was addedlibc/test/src/time/mktime_test.cpp
Commit bcc802fa3624ac8cc98b8a11f5315b07fc7bffc4 by gparker-github
[DSE] Remove a redundant call to getLocForWriteEx()

Differential Revision: https://reviews.llvm.org/D92263
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
Commit 3acda91742b7e995af87f1afaca5e0fa78669819 by apollo.mobility
[Remarks][1/2] Expand remarks hotness threshold option support in more tools

This is the #1 of 2 changes that make remarks hotness threshold option
available in more tools. The changes also allow the threshold to sync with
hotness threshold from profile summary with special value 'auto'.

This change modifies the interface of lto::setupLLVMOptimizationRemarks() to
accept remarks hotness threshold. Update all the tools that use it with remarks
hotness threshold options:

* lld: '--opt-remarks-hotness-threshold='
* llvm-lto2: '--pass-remarks-hotness-threshold='
* llvm-lto: '--lto-pass-remarks-hotness-threshold='
* gold plugin: '-plugin-opt=opt-remarks-hotness-threshold='

Differential Revision: https://reviews.llvm.org/D85809
The file was modifiedllvm/tools/llc/llc.cpp
The file was modifiedllvm/include/llvm/IR/LLVMRemarkStreamer.h
The file was modifiedllvm/tools/opt/opt.cpp
The file was modifiedllvm/lib/IR/LLVMContext.cpp
The file was modifiedllvm/lib/LTO/LTOBackend.cpp
The file was modifiedlld/ELF/Config.h
The file was modifiedllvm/lib/LTO/LTOCodeGenerator.cpp
The file was modifiedllvm/test/LTO/Resolution/X86/diagnostic-handler-remarks-with-hotness.ll
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/ELF/Options.td
The file was modifiedllvm/test/LTO/X86/diagnostic-handler-remarks-with-hotness.ll
The file was addedllvm/include/llvm/Remarks/HotnessThresholdParser.h
The file was modifiedllvm/include/llvm/IR/LLVMContext.h
The file was modifiedlld/test/ELF/lto/opt-remarks.ll
The file was modifiedllvm/include/llvm/LTO/Config.h
The file was modifiedllvm/lib/LTO/LTO.cpp
The file was modifiedllvm/test/tools/gold/X86/opt-remarks.ll
The file was modifiedlld/ELF/LTO.cpp
The file was modifiedllvm/tools/llvm-lto2/llvm-lto2.cpp
The file was modifiedllvm/lib/IR/LLVMContextImpl.h
The file was modifiedllvm/tools/gold/gold-plugin.cpp
The file was modifiedllvm/include/llvm/LTO/LTO.h
The file was modifiedllvm/include/llvm/Support/CommandLine.h
The file was modifiedllvm/lib/LTO/ThinLTOCodeGenerator.cpp
The file was modifiedllvm/lib/IR/LLVMRemarkStreamer.cpp
Commit 93dc1b5b8cb2f85d0d347f39e49a7150accd4e70 by apollo.mobility
[Remarks][2/2] Expand remarks hotness threshold option support in more tools

This is the #2 of 2 changes that make remarks hotness threshold option
available in more tools. The changes also allow the threshold to sync with
hotness threshold from profile summary with special value 'auto'.

This change expands remarks hotness threshold option
-fdiagnostics-hotness-threshold in clang and *-remarks-hotness-threshold in
other tools to utilize hotness threshold from profile summary.

Remarks hotness filtering relies on several driver options. Table below lists
how different options are correlated and affect final remarks outputs:

| profile | hotness | threshold | remarks printed |
|---------|---------|-----------|-----------------|
| No      | No      | No        | All             |
| No      | No      | Yes       | None            |
| No      | Yes     | No        | All             |
| No      | Yes     | Yes       | None            |
| Yes     | No      | No        | All             |
| Yes     | No      | Yes       | None            |
| Yes     | Yes     | No        | All             |
| Yes     | Yes     | Yes       | >=threshold     |

In the presence of profile summary, it is often more desirable to directly use
the hotness threshold from profile summary. The new argument value 'auto'
indicates threshold will be synced with hotness threshold from profile summary
during compilation. The "auto" threshold relies on the availability of profile
summary. In case of missing such information, no remarks will be generated.

Differential Revision: https://reviews.llvm.org/D85808
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedllvm/lib/IR/LLVMContext.cpp
The file was addedllvm/test/Transforms/SampleProfile/remarks-hotness.ll
The file was modifiedllvm/lib/Analysis/OptimizationRemarkEmitter.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedllvm/include/llvm/IR/Module.h
The file was modifiedllvm/lib/IR/LLVMRemarkStreamer.cpp
The file was addedllvm/test/Other/optimization-remarks-auto.ll
The file was modifiedllvm/lib/IR/Module.cpp
The file was modifiedclang/test/Driver/opt-record.c
The file was addedclang/test/Frontend/remarks-hotness.cpp
The file was addedllvm/test/Transforms/SampleProfile/Inputs/remarks-hotness.prof
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was modifiedllvm/include/llvm/Analysis/ProfileSummaryInfo.h
The file was modifiedllvm/include/llvm/IR/LLVMContext.h
The file was addedclang/test/Frontend/Inputs/remarks-hotness.prof
The file was modifiedclang/include/clang/Driver/Options.td
Commit e785379afff8dc256fc72a0f74677b43defa2059 by kazu
[CodeView] Remove unused declaration collectInlineSiteChildren (NFC)

The function definition was removed on Sep 7, 2016 in commit
a9f4cc9510546f5728258524d344a3e03e43500b.  The declaration seems to be
unused since then.
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
Commit 31eeac915a0a25c2690b956931c77684bc34da0b by grimar
[llvm-readelf/obj] - Move unique warning handling logic to the `ObjDumper`.

This moves the `reportUniqueWarning` method to the base class.

My motivation is the following:
I've experimented with replacing `reportWarning` calls with `reportUniqueWarning`
in ELF dumper. I've found that for example for removing them from `DynRegionInfo` helper
class, it is worth to pass a dumper instance to it (to be able to call dumper()->reportUniqueWarning()).
The problem was that `ELFDumper<ELFT>` is a template class. I had to make `DynRegionInfo` to be templated
and do lots of minor changes everywhere what did not look reasonable/nice.

At the same time I guess one day other dumpers like COFF/MachO/Wasm etc might want to
start using `reportUniqueWarning` API too. Then it looks reasonable to move the logic to the
base class.

With that the problem of passing the dumper instance will be gone.

Differential revision: https://reviews.llvm.org/D92218
The file was modifiedllvm/tools/llvm-readobj/MachODumper.cpp
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/tools/llvm-readobj/ObjDumper.h
The file was modifiedllvm/tools/llvm-readobj/WasmDumper.cpp
The file was modifiedllvm/tools/llvm-readobj/ObjDumper.cpp
The file was modifiedllvm/tools/llvm-readobj/COFFDumper.cpp
The file was modifiedllvm/tools/llvm-readobj/XCOFFDumper.cpp
Commit 2e5aaf65a344ae804343bfed6326ef33f61586b0 by martin
[compiler-rt] [emutls] Handle unused parameters in a compiler agnostic way

The MSVC specific pragmas disable this warning, but the pragmas themselves
(when not guarded by any _MSC_VER ifdef) cause warnings for other targets,
e.g. when targeting mingw.

Instead silence the MSVC warnings about unused parameters by casting
the parameters to void.

Differential Revision: https://reviews.llvm.org/D91851
The file was modifiedcompiler-rt/lib/builtins/emutls.c
Commit 87481068fddf29e913b129b9c962ba761ae478c8 by grimar
[llvm-readelf] - Switch to using from `reportWarning` to `reportUniqueWarning` in `DynRegionInfo`.

This is a part of the plan we had previously to convert all calls to
`reportUniqueWarning` and then rename it to just `reportWarning`.

I was a bit unsure about this particular change at first, because it doesn't add a
new functionality: seems it is impossible to trigger a warning duplication currently.

At the same time I find the idea of the plan mentioned very reasonable.
And with that we will be sure that `DynRegionInfo` can't report duplicate
warnings, what looks like a nice feature for possible refactorings and further tool development.

Differential revision: https://reviews.llvm.org/D92224
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit 424fdbc3dedadf882fda107aa5638b39e7036c4d by kristof.beyls
collect_and_build_with_pgo.py: adapt to monorepo

Differential Revision: https://reviews.llvm.org/D92328
The file was modifiedllvm/utils/collect_and_build_with_pgo.py
Commit 973843681b9df4ba9303e98f7b4531ba31c2b1bf by jan_svoboda
[clang][cli] Factor out call to EXTRACTOR in generateCC1CommandLine (NFC)

Reviewed By: Bigcheese, dexonsmith

Original patch by Daniel Grumberg.

Differential Revision: https://reviews.llvm.org/D83211
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
Commit 88ab38449b49bf002ed7794d1b81d362aa9f9df2 by jan_svoboda
[clang][cli] Split DefaultAnyOf into a default value and ImpliedByAnyOf

This makes the options API composable, allows boolean flags to imply non-boolean values and makes the code more logical (IMO).

Differential Revision: https://reviews.llvm.org/D91861
The file was modifiedllvm/utils/TableGen/OptParserEmitter.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedllvm/include/llvm/Option/OptParser.td
The file was modifiedllvm/unittests/Option/OptionMarshallingTest.cpp
The file was modifiedllvm/unittests/Option/Opts.td
The file was modifiedclang/unittests/Frontend/CompilerInvocationTest.cpp
Commit 2b84efa00040410d97aff403788ee5d96b1046e2 by jan_svoboda
[clang][cli] Port Frontend option flags to new option parsing system

Depends on D91861.

Reviewed By: dexonsmith

Original patch by Daniel Grumberg.

Differential Revision: https://reviews.llvm.org/D83697
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedllvm/include/llvm/Option/OptParser.td
The file was modifiedclang/unittests/Frontend/CompilerInvocationTest.cpp
Commit 9edcedf7f222ce7c893d1e3bf19b3a7a1f0f2218 by ezhulenev
[mlir] AsyncRuntime: disable threading until test flakiness is fixed

ExecutionEngine/LLJIT do not run globals destructors in loaded dynamic libraries when destroyed, and threads managed by ThreadPool can race with program termination, and it leads to segfaults.

TODO: Re-enable threading after fixing a problem with destructors, or removing static globals from dynamic library.

Differential Revision: https://reviews.llvm.org/D92368
The file was modifiedmlir/lib/ExecutionEngine/AsyncRuntime.cpp