SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [MLIR] NFC - Fix indentation in examples in LoopOps.td (details)
  2. [ms] [llvm-ml] Improve data support, adding names and complex initializers. (details)
  3. [lldb/Debugger] Remove macros formerly used by property definitions (details)
  4. [lldb] Color the current PC marker (details)
  5. Revert "[ms] [llvm-ml] Improve data support, adding names and complex initializers." (details)
  6. [Hexagon] Lower bitcast of a vector predicate (details)
  7. [MachineVerifier] Doing ::calcRegsPassed in RPO: ~35% faster MV, NFC (details)
  8. Reland "[ms] [llvm-ml] Improve data support, adding names and complex initializers." (details)
  9. [Hexagon] Lower vector predicate store (details)
  10. [lldb/Test] Update TestDisassemblyFormat for new format (details)
  11. Add methods to data extractor for extracting bytes and fixed length C strings. (details)
  12. Validate argument passed to __builtin_frame_address and __builtin_return_address (details)
  13. [NFC] [DA] Refactoring getIndexExpressionsFromGEP (details)
  14. Revert "Validate argument passed to __builtin_frame_address and __builtin_return_address" (details)
  15. [lldb/Plugins] Move SBTarget::GetExtendedCrashInformation to SBProcess (details)
  16. [libc] [UnitTest] Create death tests (details)
  17. AMDGPU/GlobalISel: Lower 64-bit uaddo/usubo (details)
  18. [LegalizeTypes] Scalarize non-byte sized loads in WidenRecRes_Load and SplitVecResLoad (details)
  19. [lldb] Color the line marker (details)
  20. [docs] dump_ast_matchers strips internal::(Bindable)?Matcher from Result_type (details)
  21. Unwind past an interrupt handler correctly on arm or at pc==0 (details)
  22. [arcconfig] Default base to previous revision (details)
  23. [arcconfig] Delete subproject arcconfigs (details)
  24. Adjust max_align_t handling (details)
  25. Prefer PATH_MAX to MAXPATHLEN (details)
  26. [MLIR] Add std.atomic_rmw op (details)
  27. [polly] Don't count scops in a global variable. (details)
  28. My prevous commit to RegisterContextLLDB is causing a test fail (details)
  29. [AArch64] SVE implies fullfp16 (details)
  30. [NFC] Cleaned up ASTMatchersInternal Code (details)
  31. GlobalISel: Reimplement fewerElementsVectorBasic (details)
  32. AMDGPU/GlobalISel: Fix incorrect VOP3P fneg folding (details)
  33. [DebugInfo]: Refactored Macinfo section consumption part to allow future (details)
  34. Allow "callbr" to return non-void values (details)
  35. Support output constraints on "asm goto" (details)
  36. [MachineVerifier] Doing ::calcRegsPassed over faster sets: ~15-20% faster MV, NFC (details)
  37. Revert "My prevous commit to RegisterContextLLDB is causing a test fail" (details)
  38. Revert "Unwind past an interrupt handler correctly on arm or at pc==0" (details)
  39. AMDGPU/GlobalISel: Introduce post-legalize combiner (details)
  40. GlobalISel: Remove unneeded initialiation (details)
  41. [Attributor] Use AssumptionCache in AANonNullFloating::initialize (details)
  42. [lldb/Utility] Fix unspecified behavior. (details)
  43. [Sparc][NFC] Remove trailing space (details)
  44. [lldb] Mark ObjectFileBreakpad test inputs as non-text (details)
  45. [lldb] Fix that a crashing test is marked as unsupported when it prints UNSUPPORTED before crashing (details)
  46. [ASTMatchers] Matcher macros with params move params instead of copying (details)
  47. [ASTMatchers] Adds a matcher called `hasAnyOperatorName` (details)
  48. [X86] Remove mask output from X86 gather/scatter ISD opcodes. (details)
  49. [X86] Pass parameters into selectVectorAddr to remove dependency on X86MaskedGatherScatterSDNode. (details)
  50. [libc] [UnitTest] Give UnitTest gtest like colors (details)
  51. [lldb][NFC] Make ArrayRef initialization more obvious in lldb-test.cpp (details)
  52. [lldb] s/CHECK-NEXT/CHECK-DAG in dwp-debug-types.s (details)
  53. [NFC][PowerPC] Add a new test case scalar_cmp.ll (details)
  54. [lldb][NFC] Move namespace lookup in ClangASTSource to own function. (details)
  55. libclc: cmake configure should depend on file list (details)
  56. AMDGPU/GlobalISel: add legalize tests for s64 max/min (details)
  57. GlobalISel: NFC minor cleanup to avoid a couple of fixed size local arrays (details)
  58. [profile] gcov_mutex must be static (details)
  59. Add llvm-cov to LLVM_TOOLCHAIN_TOOLS (details)
  60. [DebugInfo] Fix printing CIE offsets in EH FDEs. (details)
  61. [analyzer][MallocChecker][NFC] Communicate the allocation family to auxiliary functions with parameters (details)
  62. [AArch64][SVE] Add predicate reinterpret intrinsics (details)
  63. [yaml2obj] - Address post commit comments for D74764 (details)
  64. [MLIR][GPU] Implement a simple greedy loop mapper. (details)
  65. Don't generate libcalls for wide shift on Windows ARM (PR42711) (details)
  66. [mlir] Generalize intrinsic builders in the LLVM dialect definition (details)
  67. [mlir] Intrinsics generator: use TableGen-defined builder function (details)
  68. [mlir] simplify affine maps and operands in affine.min/max (details)
  69. [lldb][NFC] Modernize logging in ClangASTSource/ExpressionDeclMap (details)
  70. [AArch64][SVE] Update names and comments for gathers/scatters (NFC) (details)
  71. [MLIR][GPU] Fix forward declaration of Region class. (details)
  72. build_llvm_package.bat: Produce zip files in addition to the installers (details)
  73. [clangd] Disable ExtractVariable for C (details)
  74. [lldb][NFC] Move NameSearchContext to own header/source files (details)
  75. [lldb][NFC] Make NameSearchContext::m_found members bools instead of bitfields (details)
  76. Remove myself from CODE_OWNERS. (details)
  77. [gn build] (manually) merge fee41517fe0f (details)
  78. [lldb] Initialize NameSearchContext::m_namespace_map in constructor (details)
  79. [lldb][NFC] Move filling namespace map in ClangASTSource to own function (details)
  80. [debuginfo-tests] Warn, not error, if we can't delete working directory (details)
  81. [mlir] NFC: move AffineOps tests from test/ to test/Dialect (details)
  82. [MLIR][GPU] Properly model step in parallel loop to gpu conversion. (details)
  83. [DSE,MSSA] Do not attempt to remove un-removable memdefs. (details)
  84. [VectorCombine] make cost calc consistent for binops and cmps (details)
  85. [VectorCombine] add tests for possible extract->shuffle; NFC (details)
  86. [ASTImporter] Improved variable template redecl chain handling. (details)
  87. [Analyzer] Fix for iterator modeling and checkers: handle negative numbers correctly (details)
  88. [PhaseOrdering] add test for missing vector/CSE transforms (PR45015); NFC (details)
  89. [CodeGen] fix clang test that runs the optimizer pipeline; NFC (details)
  90. [mlir] NFC: update documentation in ConvertLinalgToLLVM (details)
  91. [RISCV] Fix sysroot tests without GCC on RISC-V hosts with GCC (details)
  92. Fix DfaEmitter::visitDfaState() crash in MSVC x86 debug builds (PR44945) (details)
  93. [clang-format]  Wrap lines for C# property accessors (details)
  94. [OpenMP][cmake] ignore warning on unknown CUDA version (details)
  95. Stop including sys/param.h from Unix.h (details)
  96. [clangd] Migrate Lexer usages in TypeHierarchy to TokenBuffers (details)
  97. [analyzer][MallocChecker][NFC] Change the use of IdentifierInfo* to CallDescription (details)
  98. clang-cl: Add a `/showIncludes:user` flag. (details)
  99. [AMDGPU] Precommit some test updates for D68338 "Remove dubious logic in bidirectional list scheduler" (details)
  100. Make test not write to the source directory (details)
  101. [NFC][InstCombine] Add shift amount reassociation miscompile example from PR44802 (details)
  102. [InstCombine] reassociateShiftAmtsOfTwoSameDirectionShifts(): fix miscompile (PR44802) (details)
  103. [NFC][InstCombine] Add shift amount reassociation in bittest miscompile example from PR44802 (details)
  104. [InstCombine] foldShiftIntoShiftInAnotherHandOfAndInICmp(): fix miscompile (PR44802) (details)
  105. [LLDB] Let DataExtractor deal with two-byte addresses (details)
  106. [DWARFDebugLine] Avoid dumping prologue members we did not parse (details)
  107. [analyzer] Add support for CXXInheritedCtorInitExpr. (details)
  108. [clang-rename] Add the USR of incomplete decl to the USRSet. (details)
  109. [ELF] Support archive:file syntax in input section descriptions (details)
  110. AMDGPU/GlobalISel: Legalize s64 min/max by lowering (details)
  111. Make builtbot happy. (details)
  112. [Sema][C++] Propagate conversion kind to specialize the diagnostics (details)
  113. [remark][diagnostics] [codegen] Fix PR44896 (details)
  114. AMDGPU/GlobalISel: Use packed for G_ADD/G_SUB/G_MUL v2s16 (details)
  115. [libc++] Proper fix for libc++'s modulemap after D68480 (details)
  116. [libc++] Revert 03dd205c151 "Adjust max_align_t handling" (details)
  117. AMDGPU/GlobalISel: Un-XFAIL a test (details)
  118. Revert "[DWARFDebugLine] Avoid dumping prologue members we did not parse" (details)
  119. Revert "[LICM] Support hosting of dynamic allocas out of loops" (details)
  120. [libc++] Remove incorrect XFAIL in modules test (details)
  121. [NFC][Codegen] Add miscompile test for constant store merging from PR43446 (details)
  122. [Codegen] Revert rL354676/rL354677 and followups - introduced PR43446 miscompile (details)
  123. [PowerPC][NFC] Remove comments mentioning Darwin and VRSAVE from lit test. (details)
  124. [MachineInstr] Add a dumpr method (details)
  125. [X86MCTargetDesc.h] Speculative fix for macro collision with sys/param.h (details)
  126. Make __builtin_amdgcn_dispatch_ptr dereferenceable and align at 4 (details)
  127. Emit register names in cfi assembly directives (details)
  128. Support emitting .cfi_undefined in CodeGen (details)
  129. [AMDGPU] Implement wave64 DWARF register mapping (details)
  130. Fix a race between lldb's packet timeout and the profile thread's usleep. (details)
  131. [PhaseOrdering] add tests for missed CSE; NFC (details)
  132. [libcxx] Fix building for windows after 54fa9ecd3088508 (details)
  133. Add 'l' constraint to goto label reference (details)
  134. [NFC][SCEV] Piping to pass TTI into SCEVExpander::isHighCostExpansionHelper() (details)
  135. [NFC][SCEV] Piping to pass new SCEVCheapExpansionBudget option into SCEVExpander::isHighCostExpansionHelper() (details)
  136. [NFC][SCEV] SCEVExpander::isHighCostExpansionHelper(): check that we processed expression first (details)
  137. [SCEV] SCEVExpander::isHighCostExpansion(): assert if TTI is not provided (details)
  138. [SCEV] SCEVExpander::isHighCostExpansionHelper(): begin cost modelling - model cast cost (details)
  139. [SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model UDiv by power-of-two as LShr (details)
  140. [NFC][IndVarSimplify] Adjust value names in IndVarSimplify/exit_value_test2.ll (details)
  141. [SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model plain UDiv (details)
  142. [SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model add/mul (details)
  143. [SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model polynomial recurrence (details)
  144. [SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model min/max (PR44668) (details)
  145. [SCEV] rewriteLoopExitValues(): even if have hard uses, still rewrite if cheap (PR44668) (details)
  146. [SCEV][IndVars] Always provide insertion point to the SCEVExpander::isHighCostExpansion() (details)
  147. Use "nop" to avoid size warnings. (details)
  148. Check args passed to __builtin_frame_address and __builtin_return_address. (details)
  149. [X86] Add test to show incorrect ordering of flt.rounds intrinsic relative to calls to fesetround. (details)
  150. [LIBOMPTARGET]Fix PR44933: fix crash because of the too early deinitialization of libomptarget. (details)
  151. [ObjC][ARC] Don't move a retain call living outside a loop into the loop (details)
  152. [libTooling] Add function to determine associated text of a declaration. (details)
  153. [WebAssembly] Simplify extract_vector lowering (details)
  154. [OpenMP][Opt] Combine `struct ident_t*` during deduplication (details)
  155. [llvm][TextAPI] rename test vars, NFC (details)
  156. [Sema] Perform call checking when building CXXNewExpr (details)
  157. [clang] Annotating C++'s `operator new` with more attributes (details)
  158. Revert "[X86MCTargetDesc.h] Speculative fix for macro collision with sys/param.h" (details)
  159. [libc++] Avoid including <semaphore.h> on Apple (details)
  160. Re-land Unwind past an interrupt handler correctly on arm or at pc==0 (details)
  161. [mlir][DenseElementsAttr] Fix storage size for bfloat16 when parsing from hex. (details)
Commit 28e8695785083926b97e2f99aa12241954b46f06 by nagy.h.mostafa
[MLIR] NFC - Fix indentation in examples in LoopOps.td
The file was modifiedmlir/include/mlir/Dialect/LoopOps/LoopOps.td
Commit c2e272f8cf76ec97f675e0dfdada75445bbee5c5 by epastor
[ms] [llvm-ml] Improve data support, adding names and complex initializers.

Summary: Add support for ?, DUP, and string initializers, as well as MASM syntax for named data locations.

Reviewers: rnk, thakis

Reviewed By: thakis

Subscribers: merge_guards_bot, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73226
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was addedllvm/test/tools/llvm-ml/basic_data.test
Commit 77a2744fa50b80c73d68356af010a002cc2a3d7f by Jonas Devlieghere
[lldb/Debugger] Remove macros formerly used by property definitions

The DEFAULT_ were used in property definitions which have since been
moved to CoreProperties.td.
The file was modifiedlldb/source/Core/Debugger.cpp
Commit c4093db3dac4ef09fb175f4aa79c8a422da70771 by Jonas Devlieghere
[lldb] Color the current PC marker

Differential revision: https://reviews.llvm.org/D75073
The file was modifiedlldb/source/Core/CoreProperties.td
Commit 9fe769a961dc8e3ce7d967ea0e07a4f0e5fac6e9 by epastor
Revert "[ms] [llvm-ml] Improve data support, adding names and complex initializers."

This reverts commit c2e272f8cf76ec97f675e0dfdada75445bbee5c5, which broke builds.
The file was removedllvm/test/tools/llvm-ml/basic_data.test
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
Commit a8a4f99afb7c1f527ae9d1b274a67d0d3f2c3c4c by kparzysz
[Hexagon] Lower bitcast of a vector predicate

This patch lowers bitcast of vector predicate of type v32i1/v64i1
to i32/i64 type.
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was addedllvm/test/CodeGen/Hexagon/hvx-bitcast-v64i1.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.h
The file was addedllvm/test/CodeGen/Hexagon/autohvx/isel-hvx-pred-bitcast.ll
Commit 6f87b162e636b0cfe590758621a606d2bc68424f by rtereshin
[MachineVerifier] Doing ::calcRegsPassed in RPO: ~35% faster MV, NFC

Depending on the target, test suite, pipeline config and perhaps other
factors machine verifier when forced on with -verify-machineinstrs can
increase compile time 2-2.5 times over (Release, Asserts On), taking up
~60% of the time. An invaluable tool, it significantly slows down
machine verifier-enabled testing.

Nearly 75% of its time MachineVerifier spends in the calcRegsPassed
method. It's a classic forward dataflow analysis executed over sets, but
visiting MBBs in arbitrary order. We switch that to RPO here.

This speeds up MachineVerifier by about 35%, decreasing the overall
compile time with -verify-machineinstrs by 20-25% or so.

calcRegsPassed itself gets 2x faster here.

All measured on a large suite of shaders targeting a number of GPUs.

Reviewers: bogner, stoklund, rudkx, qcolombet

Reviewed By: bogner

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D75032
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
Commit 95291a0e34c74d9be0ad216465a2a2e9db9610d4 by epastor
Reland "[ms] [llvm-ml] Improve data support, adding names and complex initializers."

This reverts commit 9fe769a961dc8e3ce7d967ea0e07a4f0e5fac6e9, and re-lands commit c2e272f8cf76ec97f675e0dfdada75445bbee5c5.

Summary: Add support for ?, DUP, and string initializers, as well as MASM syntax for named data locations.

This version avoids the use of a C++17-only feature, if-statements with initializer.

Reviewers: rnk, thakis

Reviewed By: thakis

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73226
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was addedllvm/test/tools/llvm-ml/basic_data.test
Commit 820df6e679143786d41808b7bfc9ad023ed217d2 by kparzysz
[Hexagon] Lower vector predicate store

This patch lowers store of vector predicate of type v128i1.
The file was addedllvm/test/CodeGen/Hexagon/store-vector-pred.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
Commit 7f9f027c62623bff79730cd30d1a8a534e2ddb06 by Jonas Devlieghere
[lldb/Test] Update TestDisassemblyFormat for new format
The file was modifiedlldb/test/Shell/Settings/TestDisassemblyFormat.test
Commit df8dda67ed03f7d7ba3d9475556ab01946386852 by gclayton
Add methods to data extractor for extracting bytes and fixed length C strings.

Summary:
These modificaitons will be used in D74883.

Fixed length C strings can have trailing NULLs or sometimes spaces (BSD archive files), so the fixed length C string defaults to stripping trailing NULLs, but can have the arguments specify to remove one or more kinds of spaces if needed. This is used to extract fixed length C strings from ELF NOTEs in D74883.

Reviewers: labath, dblaikie, aprantl

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D74991
The file was modifiedllvm/unittests/Support/DataExtractorTest.cpp
The file was modifiedllvm/include/llvm/Support/DataExtractor.h
The file was modifiedllvm/lib/Support/DataExtractor.cpp
Commit c93112dc4f745b0455addb54bfe1c2f79b827c6d by zoecarver
Validate argument passed to __builtin_frame_address and __builtin_return_address

Verifies that the argument passed to __builtin_frame_address and __builtin_return_address is within the range [0, 0xFFFF].
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/test/Sema/builtin-stackaddress.c
Commit cf9dae122e04f015424aff6e7706430161b5e396 by bmahjour
[NFC] [DA] Refactoring getIndexExpressionsFromGEP

Summary:
This patch moves the getIndexExpressionsFromGEP function from polly
into ScalarEvolution so that both polly and DependenceAnalysis can
use it for the purpose of subscript delinearization when the array
sizes are not parametric.

Authored By: bmahjour

Reviewer: Meinersbur, sebpop, fhahn, dmgreen, grosser, etiotto, bollu

Reviewed By: Meinersbur

Subscribers: hiraditya, arphaman, Whitney, ppc-slack, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73995
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedpolly/include/polly/Support/ScopHelper.h
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedpolly/lib/Support/ScopHelper.cpp
The file was modifiedpolly/lib/Analysis/ScopBuilder.cpp
Commit 698078257285a044110620d7dab2fb4451a3fa29 by zoecarver
Revert "Validate argument passed to __builtin_frame_address and __builtin_return_address"

This reverts commit c93112dc4f745b0455addb54bfe1c2f79b827c6d.
The file was modifiedclang/test/Sema/builtin-stackaddress.c
The file was modifiedclang/lib/Sema/SemaChecking.cpp
Commit eefda18227a2faeacbd5420cb482fa8b5836283b by medismail.bennani
[lldb/Plugins] Move SBTarget::GetExtendedCrashInformation to SBProcess

This patch moves the SB API method GetExtendedCrashInformation from
SBTarget to SBProcess since it only makes sense to call this method on a
sane process which might not be the case on a SBTarget object.

It also addresses some feedbacks received after landing the first patch
for the 'crash-info' feature.

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

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/include/lldb/API/SBProcess.h
The file was modifiedlldb/include/lldb/API/SBStructuredData.h
The file was modifiedlldb/include/lldb/Target/Platform.h
The file was modifiedlldb/bindings/interface/SBTarget.i
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
The file was modifiedlldb/test/API/functionalities/process_crash_info/main.c
The file was modifiedlldb/test/API/functionalities/process_crash_info/TestProcessCrashInfo.py
The file was modifiedlldb/source/API/SBProcess.cpp
The file was modifiedlldb/bindings/interface/SBProcess.i
The file was modifiedlldb/source/API/SBTarget.cpp
The file was modifiedlldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
The file was modifiedlldb/include/lldb/API/SBTarget.h
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp
Commit 0368997402ae5f62efc83ec7b6f9052e01916943 by alexbrachetmialot
[libc] [UnitTest] Create death tests

Summary: This patch adds `EXPECT_EXITS` and `EXPECT_DEATH` macros for testing exit codes and deadly signals. They are less convoluted than their analogs in GTEST and don't have matchers but just take an int for either the exit code or the signal respectively. Nor do they have any regex match against the stdout/stderr of the child process.

Reviewers: sivachandra, gchatelet

Reviewed By: sivachandra

Subscribers: mgorny, MaskRay, tschuett, libc-commits

Differential Revision: https://reviews.llvm.org/D74665
The file was modifiedlibc/utils/CMakeLists.txt
The file was addedlibc/utils/testutils/CMakeLists.txt
The file was addedlibc/utils/testutils/ExecuteFunction.h
The file was modifiedlibc/utils/UnitTest/Test.h
The file was addedlibc/utils/testutils/ExecuteFunctionUnix.cpp
The file was modifiedlibc/utils/UnitTest/Test.cpp
The file was modifiedlibc/test/src/signal/raise_test.cpp
The file was modifiedlibc/cmake/modules/LLVMLibCRules.cmake
Commit 0ed4744bb511baea08652491aaba4131bc3d676f by jay.foad
AMDGPU/GlobalISel: Lower 64-bit uaddo/usubo

Summary: Add more test cases for signed and unsigned add/sub with overflow.

Reviewers: arsenm, rampitec, kerbowa

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D75051
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubo.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-saddo.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-uaddo.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-usubo.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
Commit a5fa77888243beede98959ced17596b380e8de59 by craig.topper
[LegalizeTypes] Scalarize non-byte sized loads in WidenRecRes_Load and SplitVecResLoad

Should fix PR42803 and PR44902

Differential Revision: https://reviews.llvm.org/D74590
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll
The file was modifiedllvm/test/CodeGen/X86/load-local-v3i1.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit 841be9854c496adb1944fbf33af055814366ec86 by Jonas Devlieghere
[lldb] Color the line marker

Highlight the color marker similar to what we do for the column marker.
The default color matches the color of the current PC marker (->) in the
default disassembly format.

Differential revision: https://reviews.llvm.org/D75070
The file was addedlldb/test/Shell/Settings/TestLineMarkerColor.test
The file was modifiedlldb/source/Core/CoreProperties.td
The file was modifiedlldb/source/Core/Debugger.cpp
The file was modifiedlldb/source/Core/SourceManager.cpp
The file was modifiedlldb/test/API/source-manager/TestSourceManager.py
The file was modifiedlldb/include/lldb/Core/Debugger.h
Commit e6f9cb025cd765f422b51d01f4a5714db788b3a7 by n.james93
[docs] dump_ast_matchers strips internal::(Bindable)?Matcher from Result_type

Summary: Remove `internal::Matcher` and `internal::BindableMatcher` from Result Type when dumping AST Matchers

Reviewers: joerg, gribozavr2, aaron.ballman

Reviewed By: aaron.ballman

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D75046
The file was modifiedclang/docs/LibASTMatchersReference.html
The file was modifiedclang/docs/tools/dump_ast_matchers.py
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h
Commit edc4f4c9c9d90b2a4f8831ba4c873f08eaa5395a by Jason Molenda
Unwind past an interrupt handler correctly on arm or at pc==0

Fix RegisterContextLLDB::InitializeNonZerothFrame so that it
will fetch a FullUnwindPlan instead of falling back to the
architectural default unwind plan -- GetFullUnwindPlan knows
how to spot a jmp 0x0 that results in a fault, which may be
the case when we see a trap handler on the stack.

Fix RegisterContextLLDB::SavedLocationForRegister so that when
the pc value is requested from a trap handler frame, where we
have a complete register context available to us, don't provide
the Return Address register (lr) instead of the pc.  We have
an actual pc value here, and it's pointing to the instruction
that faulted.

Differential revision: https://reviews.llvm.org/D75007
<rdar://problem/59416588>
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
Commit 915e7699243726d001f9ab4e8fa2380a5e57de56 by smeenai
[arcconfig] Default base to previous revision

When you run `arc diff`, arc defaults to uploading all the changes you
have against the upstream branch into a single patch. This is almost
never what you want for stacked commits (patch series); you only want to
submit the changes done by the current patch. It's also come up as a
point of confusion in the Phabricator vs. GitHub PRs discussion, for
example. Configure arc to only upload your current patch by default,
which I think is a much more suitable default for LLVM developers.

Differential Revision: https://reviews.llvm.org/D74990
The file was modified.arcconfig
Commit e34ddc09f464667b5f3a49bf60255e89041ddf44 by smeenai
[arcconfig] Delete subproject arcconfigs

From https://secure.phabricator.com/book/phabricator/article/arcanist_new_project/:

> An .arcconfig file is a JSON file which you check into your project's root.

I've done some experimentation, and it looks like the subproject
.arcconfigs just get ignored, as the documentation says. Given that
we're fully on the monorepo now, it's safe to remove them.

Differential Revision: https://reviews.llvm.org/D74996
The file was removedlibunwind/.arcconfig
The file was removedlibcxxabi/.arcconfig
The file was removeddebuginfo-tests/.arcconfig
The file was removedlibcxx/.arcconfig
The file was removedclang-tools-extra/.arcconfig
The file was removedlld/.arcconfig
The file was removedparallel-libs/.arcconfig
The file was removedpolly/.arcconfig
The file was removedopenmp/.arcconfig
The file was removedlldb/.arcconfig
The file was removedcompiler-rt/.arcconfig
The file was removedpstl/.arcconfig
The file was removedllvm/.arcconfig
The file was removedclang/.arcconfig
Commit 03dd205c1516d9930a80101a7e0a6793af47ec9e by joerg
Adjust max_align_t handling

Depend on the compiler to provide a correct implementation of
max_align_t. If __STDCPP_NEW_ALIGNMENT__ is missing and C++03 mode has
been explicitly enabled, provide a minimal fallback in <new> as
alignment of the largest primitive types.
The file was modifiedlibcxx/include/cstddef
The file was modifiedlibcxx/include/stddef.h
The file was modifiedlibcxx/include/new
Commit 4e45ef4d77b74350ea5a64a216b046ea6be1b96f by joerg
Prefer PATH_MAX to MAXPATHLEN

The former is part of POSIX and requires less heavy headers. They are
practically functionally equivalent.
The file was modifiedllvm/lib/Support/Unix/Path.inc
Commit fe210a1ff2e90093e210bcbcc1184308903c7bdb by frank.laub
[MLIR] Add std.atomic_rmw op

Summary:
The RFC for this op is here: https://llvm.discourse.group/t/rfc-add-std-atomic-rmw-op/489

The std.atmomic_rmw op provides a way to support read-modify-write
sequences with data race freedom. It is intended to be used in the lowering
of an upcoming affine.atomic_rmw op which can be used for reductions.

A lowering to LLVM is provided with 2 paths:
- Simple patterns: llvm.atomicrmw
- Everything else: llvm.cmpxchg

Differential Revision: https://reviews.llvm.org/D74401
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
The file was modifiedmlir/test/IR/core-ops.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp
The file was modifiedmlir/test/IR/invalid-ops.mlir
Commit 888b12b270f3fb7b2e4030fec792e24321998c5b by efriedma
[polly] Don't count scops in a global variable.

This can cause issues with thread safety.

Differential Revision: https://reviews.llvm.org/D75089
The file was modifiedpolly/include/polly/ScopDetection.h
The file was modifiedpolly/lib/Analysis/ScopInfo.cpp
The file was modifiedpolly/lib/Analysis/ScopBuilder.cpp
The file was modifiedpolly/include/polly/ScopInfo.h
Commit 082f1a3b15999c803265fabcb555ad253a00d477 by Jason Molenda
My prevous commit to RegisterContextLLDB is causing a test fail
on aarch64-ubuntu - collect a little information about what
is happening on this target before I revert my change; I don't
have access to this target.
The file was modifiedlldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py
Commit 248eaff823725fd35816b3486526a4515fb7c885 by efriedma
[AArch64] SVE implies fullfp16

This is explicitly guaranteed in ARMARM. And it makes reasoning about
vectors easier: we can assume that if a vector operation is legal, the
corresponding scalar operation is also legal.

Differential Revision: https://reviews.llvm.org/D74993
The file was modifiedllvm/test/CodeGen/AArch64/sve-vector-splat.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64.td
Commit 5522e8296fc5a082ebfc2cd1904099b1ba0570d9 by n.james93
[NFC] Cleaned up ASTMatchersInternal Code
The file was modifiedclang/lib/ASTMatchers/ASTMatchersInternal.cpp
Commit 11e3dde6252f481238dccd14956350ff328c4087 by arsenm2
GlobalISel: Reimplement fewerElementsVectorBasic

Changes the handling of odd breakdowns, and avoids using
G_EXTRACT/G_INSERT. Pad with undef to a wider size, and unmerge. Also
avoid introducing instructions for the fully undef components.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-and.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-xor.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-or.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-xor.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fcanonicalize.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-bswap.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fneg.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-zext.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir
Commit 0b46b078b656eacaf8fb0b550825189a051f0744 by arsenm2
AMDGPU/GlobalISel: Fix incorrect VOP3P fneg folding

We use some s32 values in VOP3P operands, and won't see any
intervening casts from a 32-bit fneg. Make sure it's really a packed
fneg before folding.
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fdot2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot4.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot8.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot4.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot8.ll
Commit 226bddce458b8648a16d49e6415be2ccf9592c0e by SourabhSingh.Tomar
[DebugInfo]: Refactored Macinfo section consumption part to allow future
macro section dumping.

Summary: Previously macinfo infrastructure was using functions
names that were ambiguous i.e `getMacro/getMacroDWO` in a sense
of conveying stated intentions. This patch refactored them into more
reasonable `getDebugMacinfo/getDebugMacinfoDWO` names thus making
room for macro implementation.

Reviewers: aprantl, probinson, jini.susan.george, dblaikie

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D75037
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp
Commit 23c2a5ce33f0f05e4cc43c2cbb9009e9b549839c by isanbard
Allow "callbr" to return non-void values

Summary:
Terminators in LLVM aren't prohibited from returning values. This means that
the "callbr" instruction, which is used for "asm goto", can support "asm goto
with outputs."

This patch removes all restrictions against "callbr" returning values. The
heavy lifting is done by the code generator. The "INLINEASM_BR" instruction's
a terminator, and the code generator doesn't allow non-terminator instructions
after a terminator. In order to correctly model the feature, we need to copy
outputs from "INLINEASM_BR" into virtual registers. Of course, those copies
aren't terminators.

To get around this issue, we split the block containing the "INLINEASM_BR"
right before the "COPY" instructions. This results in two cheats:

  - Any physical registers defined by "INLINEASM_BR" need to be marked as
    live-in into the block with the "COPY" instructions. This violates an
    assumption that physical registers aren't marked as "live-in" until after
    register allocation. But it seems as if the live-in information only
    needs to be correct after register allocation. So we're able to get away
    with this.

  - The indirect branches from the "INLINEASM_BR" are moved to the "COPY"
    block. This is to satisfy PHI nodes.

I've been told that MLIR can support this handily, but until we're able to
use it, we'll have to stick with the above.

Reviewers: jyknight, nickdesaulniers, hfinkel, MaskRay, lattner

Reviewed By: nickdesaulniers, MaskRay, lattner

Subscribers: rriddle, qcolombet, jdoerfert, MatzeB, echristo, MaskRay, xbolva00, aaron.ballman, cfe-commits, JonChesterfield, hiraditya, llvm-commits, rnk, craig.topper

Tags: #llvm, #clang

Differential Revision: https://reviews.llvm.org/D69868
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-outputs.ll
The file was modifiedllvm/include/llvm/CodeGen/MachineBasicBlock.h
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/test/CodeGen/X86/callbr-asm.ll
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
Commit 50cac248773c3a023e8f6ceb9938bdd5e9f15da2 by isanbard
Support output constraints on "asm goto"

Summary:
Clang's "asm goto" feature didn't initially support outputs constraints. That
was the same behavior as gcc's implementation. The decision by gcc not to
support outputs was based on a restriction in their IR regarding terminators.
LLVM doesn't restrict terminators from returning values (e.g. 'invoke'), so
it made sense to support this feature.

Output values are valid only on the 'fallthrough' path. If an output value's used
on an indirect branch, then it's 'poisoned'.

In theory, outputs *could* be valid on the 'indirect' paths, but it's very
difficult to guarantee that the original semantics would be retained. E.g.
because indirect labels could be used as data, we wouldn't be able to split
critical edges in situations where two 'callbr' instructions have the same
indirect label, because the indirect branch's destination would no longer be
the same.

Reviewers: jyknight, nickdesaulniers, hfinkel

Reviewed By: jyknight, nickdesaulniers

Subscribers: MaskRay, rsmith, hiraditya, llvm-commits, cfe-commits, craig.topper, rnk

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D69876
The file was modifiedclang/test/Sema/asm-goto.cpp
The file was modifiedclang/docs/LanguageExtensions.rst
The file was modifiedclang/lib/Analysis/UninitializedValues.cpp
The file was modifiedclang/lib/Parse/ParseStmtAsm.cpp
The file was modifiedclang/test/CodeGen/asm-goto.c
The file was modifiedclang/lib/CodeGen/CGStmt.cpp
The file was modifiedclang/include/clang/AST/Stmt.h
The file was modifiedclang/include/clang/Basic/Features.def
The file was modifiedclang/test/Parser/asm-goto.c
The file was modifiedclang/lib/AST/Stmt.cpp
The file was modifiedclang/lib/Sema/SemaStmtAsm.cpp
The file was addedclang/test/Analysis/uninit-asm-goto.cpp
The file was modifiedclang/test/Parser/asm-goto.cpp
Commit b3bce6a3ddb77a6c6b55ec9de3e36c8de608384c by rtereshin
[MachineVerifier] Doing ::calcRegsPassed over faster sets: ~15-20% faster MV, NFC

MachineVerifier still takes 45-50% of total compile time with
-verify-machineinstrs, with calcRegsPassed dataflow taking ~50-60% of
MachineVerifier.

The majority of that time is spent in BBInfo::addPassed, mostly within
DenseSet implementing the sets the dataflow is operating over.

In particular, 1/4 of that DenseSet time is spent just iterating over it
(operator++), 40-50% on insertions, and most of the rest in ::count.

Given that, we're implementing custom sets just for this analysis here,
focusing on cheap insertions and O(n) iteration time (as opposed to
O(U), where U is the universe).

As it's based _mostly_ on BitVector for sparse and SmallVector for
dense, it may remotely resemble SparseSet. The difference is, our
solution is a lot less clever, doesn't have constant time `clear` that
we won't use anyway as reusing these sets across analyses is cumbersome,
and thus more space efficient and safer (got a resizable Universe and a
fallback to DenseSet for sparse if it gets too big).

With this patch MachineVerifier gets ~15-20% faster, its contribution to
total compile time drops from 45-50% to ~35%, while contribution of
calcRegsPassed to MachineVerifier drops from 50-60% to ~35% as well.

calcRegsPassed itself gets another 2x faster here.

All measured on a large suite of shaders targeting a number of GPUs.

Reviewers: bogner, stoklund, rudkx, qcolombet

Reviewed By: rudkx

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D75033
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
Commit d5a4fa05146fe290735e2a38adb50d76052c4313 by Jason Molenda
Revert "My prevous commit to RegisterContextLLDB is causing a test fail"

This reverts commit 082f1a3b15999c803265fabcb555ad253a00d477.
The file was modifiedlldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py
Commit 4fdd2edbdb4bfe6a95df0fac12e8beffcbe33b86 by Jason Molenda
Revert "Unwind past an interrupt handler correctly on arm or at pc==0"

The aarcht64-ubuntu bot is showing a test failure in TestHandleAbort.py
with this patch.  Adding some logging to that file, it looks like
the saved register context above the trap handler does not have
save state for $pc, but it does have it for $lr on that platform.
I need to fall back to looking for $lr if the $pc cannot be retrieved.
I'll update the patch and re-commit once that's fixed.

This reverts commit edc4f4c9c9d90b2a4f8831ba4c873f08eaa5395a.
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
Commit fee41517fe0f7ff9f0e204dd9200ebf32ca03cb8 by arsenm2
AMDGPU/GlobalISel: Introduce post-legalize combiner

The current set of custom combines are only really useful after
legalization, so move them there. There is a lot of overlap in the
boilerplate here, but I think we do want a pretty different set of
combines before and after legalize. I think we will want a lot of
overlap between the post-legalize and a post-regbankselect combiner.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/urem.i32.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCombine.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/fmax_legacy.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/fmin_legacy.ll
The file was modifiedllvm/lib/Target/AMDGPU/CMakeLists.txt
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-shl-narrow.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.h
The file was addedllvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-ashr-narrow.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i32.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.kernarg.segment.ptr.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-lshr-narrow.mir
Commit 1612d382418c767729b582c7b3daf52f18348461 by arsenm2
GlobalISel: Remove unneeded initialiation

Removes implicit unsigned->Register conversion.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
Commit 2c0edbf19c1b0115b944cd017201eaf1f6a832ee by uenoku.tokotoko
[Attributor] Use AssumptionCache in AANonNullFloating::initialize
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/Attributor/nonnull.ll
Commit 35a061453579f623aca1edc7f6f23dd969c21395 by Jonas Devlieghere
[lldb/Utility] Fix unspecified behavior.

Order of evaluation of the operands of any C++ operator [...] is
unspecified. This patch fixes the issue in Stream::Indent by calling the
function consecutively.

On my Windows setup, TestSettings.py fails because the function prints
the value first, followed by the indentation.

Expected result:
  MY_FILE=this is a file name with spaces.txt

Actual result:
MY_FILE  =this is a file name with spaces.txt
The file was modifiedlldb/source/Utility/Stream.cpp
Commit 84c3d3f37a24d9c4835d5c9cd449083845ba8bcd by tclin914
[Sparc][NFC] Remove trailing space
The file was modifiedllvm/lib/Target/Sparc/SparcInstrFormats.td
The file was modifiedllvm/lib/Target/Sparc/SparcInstrAliases.td
The file was modifiedllvm/lib/Target/Sparc/SparcInstrInfo.td
The file was modifiedllvm/lib/Target/Sparc/SparcRegisterInfo.td
The file was modifiedllvm/lib/Target/Sparc/LeonFeatures.td
The file was modifiedllvm/lib/Target/Sparc/Sparc.td
Commit c08a1c7071c43b7bd0384e71c486ad5e5546b08f by pavel
[lldb] Mark ObjectFileBreakpad test inputs as non-text

These are technically text files, but the object file layer treats them
as binary, and the relevant tests verify the parsed contents byte for
byte. Git's crlf conversion can make those tests fail. Marking the files
as non-text disables that.
The file was addedlldb/test/Shell/ObjectFile/Breakpad/Inputs/.gitattributes
Commit 55d4b0d7dd70d5ecc9e641d93fbf234bb7104d1a by Raphael Isemann
[lldb] Fix that a crashing test is marked as unsupported when it prints UNSUPPORTED before crashing

Summary:
I added an `abort()` call to some code and noticed that the test suite was still passing and it just marked my test as "UNSUPPORTED".

It seems the reason for that is that we expect failing tests to print "FAIL:" which doesn't happen when we crash. If we then also
have an unsupported because we skipped some debug information in the output, we just mark the test passing because it is unsupported
on the current platform.

This patch marks any test that has a non-zero exit code as failing even if it doesn't print "FAIL:" (e.g., because it crashed).

Reviewers: labath, JDevlieghere

Reviewed By: labath, JDevlieghere

Subscribers: aprantl, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D75031
The file was modifiedlldb/test/API/lldbtest.py
Commit 3e9a7b2ba470bbe9cf3de3e4b15ba09dcfd206aa by n.james93
[ASTMatchers] Matcher macros with params move params instead of copying

Summary: Use move semantics instead of copying for AST Matchers with parameters

Reviewers: aaron.ballman, gribozavr2

Reviewed By: gribozavr2

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D75096
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchersMacros.h
Commit 6a0c066c6102cd463e8ad48881e91e596547507a by n.james93
[ASTMatchers] Adds a matcher called `hasAnyOperatorName`

Summary:
Acts on `BinaryOperator` and `UnaryOperator` and functions the same as `anyOf(hasOperatorName(...), hasOperatorName(...), ...)`

Documentation generation isn't perfect but I feel that the python doc script needs updating for that

Reviewers: aaron.ballman, gribozavr2

Reviewed By: aaron.ballman, gribozavr2

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D75040
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchersInternal.h
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
The file was modifiedclang/docs/tools/dump_ast_matchers.py
The file was modifiedclang/docs/LibASTMatchersReference.html
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h
The file was modifiedclang/lib/ASTMatchers/ASTMatchersInternal.cpp
The file was modifiedclang/lib/ASTMatchers/Dynamic/Registry.cpp
Commit 9238dfb4d80dc93a3187a2d3b030c6f7867afd50 by craig.topper
[X86] Remove mask output from X86 gather/scatter ISD opcodes.

Instead add it when we make the machine nodes during instruction
selections.

This makes this ISD node closer to ISD::MGATHER. Trying to see
if we remove the X86 specific ones.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
Commit 89ba4acad6ccc1ba6e1044ea929c4dcc1e92f6a3 by craig.topper
[X86] Pass parameters into selectVectorAddr to remove dependency on X86MaskedGatherScatterSDNode.

Might be able to get rid of X86ISD::SCATTER and some uses of
X86ISD::GATHER. Which require isel to use ISD::SCATTER and
ISD::GATHER as well.
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
Commit 29e2cb87491cfc3690f7467acfef8a0323eba8b4 by alexbrachetmialot
[libc] [UnitTest] Give UnitTest gtest like colors

Summary:
This is a quality of life change to make it a little nicer to look at, NFC.
This patch makes the RUN and OK lines green and FAILED lines red to match gtest's output.

Reviewers: sivachandra, gchatelet, PaulkaToast

Reviewed By: gchatelet

Subscribers: MaskRay, tschuett, libc-commits

Differential Revision: https://reviews.llvm.org/D75103
The file was modifiedlibc/utils/UnitTest/Test.cpp
Commit ea6b95dc2f68e7f3f06abc47fae44c91ceebef93 by Raphael Isemann
[lldb][NFC] Make ArrayRef initialization more obvious in lldb-test.cpp

Seems like this code raised some alarm bells as it looks like an ArrayRef
to a temporary initializer list, but it's actually just calling the ArrayRef(T*, T*)
constructor. Let's clarify this and directly call the right ArrayRef constructor here.

Fixes rdar://problem/59176052
The file was modifiedlldb/tools/lldb-test/lldb-test.cpp
Commit eefbff0082c5228e01611f7e6987695d0b1c6d32 by pavel
[lldb] s/CHECK-NEXT/CHECK-DAG in dwp-debug-types.s

These can come out nondeterministically for two reasons:
- sorting based on ConstStringified pointer values
- different relative speeds of the indexing threads

Making these nondeterministic without incurring performance penalties is
hard, so I just make the test expect them in any order (the order is not
important in this test anyway.
The file was modifiedlldb/test/Shell/SymbolFile/DWARF/dwp-debug-types.s
Commit 27c89ced811986d473b0562f313f2bc5e0cbbe4b by shkzhang
[NFC][PowerPC] Add a new test case scalar_cmp.ll
The file was addedllvm/test/CodeGen/PowerPC/scalar_cmp.ll
Commit 05d174d30159579ae19e90899736d98e2544c0e3 by Raphael Isemann
[lldb][NFC] Move namespace lookup in ClangASTSource to own function.

Beside being cleaner we can probably reuse that logic elsewhere.
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
Commit 814fb658ca262f5c2df47f11d47f91fac188e0d6 by jano.vesely
libclc: cmake configure should depend on file list

This makes sure targets are rebuilt if a file is added or removed.
Reviewer: tstellar
Differential Revision: https://reviews.llvm.org/D74662
The file was modifiedlibclc/CMakeLists.txt
Commit dc78190811b5f678c8a1ac07a6d46f68b8f2e865 by jay.foad
AMDGPU/GlobalISel: add legalize tests for s64 max/min
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir
Commit ccee390767ca963d541e0b1c7c8587d1fbde505f by jay.foad
GlobalISel: NFC minor cleanup to avoid a couple of fixed size local arrays
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit 62c7d8402651a0704602e73c90da92248bbad6d5 by calixte.denizet
[profile] gcov_mutex must be static

Summary: Forget static keyword for gcov_mutex in https://reviews.llvm.org/D74953 and that causes test failure on mac.

Reviewers: erik.pilkington, vsk

Reviewed By: vsk

Subscribers: vsk, dexonsmith, #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D75080
The file was modifiedcompiler-rt/lib/profile/GCDAProfiling.c
Commit dcd89b3de6de891bfcc59189cda1ea059fbdcdb5 by hans
Add llvm-cov to LLVM_TOOLCHAIN_TOOLS

See https://github.com/llvm/llvm-project/issues/141
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
Commit bd2df13ee0f972ac386fd2d8edf5a9205ace04bb by ikudrin
[DebugInfo] Fix printing CIE offsets in EH FDEs.

While the value of the CIE pointer field in a DWARF FDE record is
an offset to the corresponding CIE record from the beginning of
the section, for EH FDE records it is relative to the current offset.
Previously, we did not make that distinction when dumped both kinds
of FDE records and just printed the same value for the CIE pointer
field and the CIE offset; that was acceptable for DWARF FDEs but was
wrong for EH FDEs.

This patch fixes the issue by explicitly printing the offset of the
linked CIE object.

Differential Revision: https://reviews.llvm.org/D74613
The file was modifiedllvm/test/tools/llvm-objdump/eh_frame-mipsel.test
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
The file was modifiedllvm/test/DebugInfo/RISCV/eh-frame.s
The file was modifiedllvm/test/tools/llvm-objdump/eh_frame-coff.test
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug_frame_offset.test
The file was modifiedllvm/test/tools/llvm-objdump/eh_frame-arm64.test
The file was addedllvm/test/DebugInfo/X86/debug_frame-invalid-cie-offset.s
The file was modifiedllvm/test/MC/Mips/eh-frame.s
The file was modifiedlld/test/ELF/eh-frame-hdr-augmentation.s
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug_frame_GNU_args_size.s
Commit 9fd7ce7f4449619bc85ab4d2643e656836a2d5e2 by dkszelethus
[analyzer][MallocChecker][NFC] Communicate the allocation family to auxiliary functions with parameters

The following series of refactoring patches aim to fix the horrible mess that MallocChecker.cpp is.

I genuinely hate this file. It goes completely against how most of the checkers
are implemented, its by far the biggest headache regarding checker dependencies,
checker options, or anything you can imagine. On top of all that, its just bad
code. Its seriously everything that you shouldn't do in C++, or any other
language really. Bad variable/class names, in/out parameters... Apologies, rant
over.

So: there are a variety of memory manipulating function this checker models. One
aspect of these functions is their AllocationFamily, which we use to distinguish
between allocation kinds, like using free() on an object allocated by operator
new. However, since we always know which function we're actually modeling, in
fact we know it compile time, there is no need to use tricks to retrieve this
information out of thin air n+1 function calls down the line. This patch changes
many methods of MallocChecker to take a non-optional AllocationFamily template
parameter (which also makes stack dumps a bit nicer!), and removes some no
longer needed auxiliary functions.

Differential Revision: https://reviews.llvm.org/D68162
The file was modifiedclang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h
Commit 72848f26b434624f612834443e8a7c0239026340 by cullen.rhodes
[AArch64][SVE] Add predicate reinterpret intrinsics

Summary:
Implements the following intrinsics:

    * llvm.aarch64.sve.convert.to.svbool
    * llvm.aarch64.sve.convert.from.svbool

For converting the ACLE svbool_t type (<n x 16 x i1>) to and from the
other predicate types: <n x 8 x i1>, <n x 4 x i1> and <n x 2 x i1>.

Reviewers: sdesmalen, kmclaughlin, efriedma, dancgr, rengolin

Reviewed By: sdesmalen, efriedma

Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D74471
The file was addedllvm/test/CodeGen/AArch64/sve-intrinsics-reinterpret.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
Commit 157b3d505f612460a109ac7d5325d81540b3eade by grimar
[yaml2obj] - Address post commit comments for D74764

It removes a stale comment and fixes the comment in the test
and section names related accordingly.
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/section-address-assign.yaml
Commit 7a7eacc797f7cc603d50987883ea95aee99d6b22 by herhut
[MLIR][GPU] Implement a simple greedy loop mapper.

Summary:
The mapper assigns annotations to loop.parallel operations that
are compatible with the loop to gpu mapping pass. The outermost
loop uses the grid dimensions, followed by block dimensions. All
remaining loops are mapped to sequential loops.

Differential Revision: https://reviews.llvm.org/D74963
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/GPU/ParallelLoopMapper.h
The file was addedmlir/test/lib/Transforms/TestGpuParallelLoopMapping.cpp
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was modifiedmlir/lib/Dialect/GPU/CMakeLists.txt
The file was addedmlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp
The file was addedmlir/test/Dialect/GPU/mapping.mlir
The file was modifiedmlir/include/mlir/Dialect/LoopOps/LoopOps.td
The file was modifiedmlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp
Commit decd021facba804b57e8d80b6159c987d3261ab8 by hans
Don't generate libcalls for wide shift on Windows ARM (PR42711)

The previous patch (cff90f07cb5cc3c3bc58277926103af31caef308) didn't
cover ARM.
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/ARM/shift_minsize.ll
Commit 00d4814f499fd09f8cf326c1c1a219175268b970 by zinenko
[mlir] Generalize intrinsic builders in the LLVM dialect definition

All LLVM IR intrinsics are constructed in a similar way. The ODS definition of
the LLVM dialect in MLIR also lists multiple intrinsics, many of which
reproduce the same (or similar enough) code stanza to translate the MLIR
operation into the LLVM IR intrinsic. Provide a single base class containing
parameterizable code to build LLVM IR intrinsics given their name and the lists
of overloadable operands and results. Use this class to remove (almost)
duplicate translations for intrinsics defined in LLVMOps.td.

Differential Revision: https://reviews.llvm.org/D74889
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
Commit 3a1b34ff69be5d1cbd218bfe81fc66edb8fa15f1 by zinenko
[mlir] Intrinsics generator: use TableGen-defined builder function

Originally, intrinsics generator for the LLVM dialect has been producing
customized code fragments for the translation of MLIR operations to LLVM IR
intrinsics. LLVM dialect ODS now provides a generalized version of the
translation code, parameterizable with the properties of the operation.
Generate ODS that uses this version of the translation code instead of
generating a new version of it for each intrinsic.

Differential Revision: https://reviews.llvm.org/D74893
The file was modifiedmlir/tools/mlir-tblgen/LLVMIRIntrinsicGen.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/test/mlir-tblgen/llvm-intrinsics.td
Commit 5f9b543e8e305630c9d133e4ac6366d836d75a59 by zinenko
[mlir] simplify affine maps and operands in affine.min/max

Affine dialect already has a map+operand simplification infrastructure in
place. Plug the recently added affine.min/max operations into this
infrastructure and add a simple test. More complex behavior of the simplifier
is already tested by other ops.

Addresses https://bugs.llvm.org/show_bug.cgi?id=45008.

Differential Revision: https://reviews.llvm.org/D75058
The file was modifiedmlir/lib/Dialect/AffineOps/AffineOps.cpp
The file was modifiedmlir/test/AffineOps/canonicalize.mlir
The file was modifiedmlir/include/mlir/Dialect/AffineOps/AffineOps.td
Commit fc0d11c90420acfcaa5424f5df979a63f5ab4123 by Raphael Isemann
[lldb][NFC] Modernize logging in ClangASTSource/ExpressionDeclMap
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
Commit cff90c938b7be43de482ffb7a8a7fdbdf57c32a3 by andrzej.warzynski
[AArch64][SVE] Update names and comments for gathers/scatters (NFC)

Summary:
This patch renames functions and TableGen classes for SVE gathers and
scatters. The original names implied that the corresponding
methods/classes are only suited for regular gathers/scatters (i.e. LD1
and ST1), which is not the case. Indeed, we will be re-using them for
non-temporal and first-faulting gathers/scatters in the forthcoming
patches. The new names also highlight the split into Vector-Scalar (VS)
and Scalar-Vector (SV) cases.

List of changes:
* `performLD1GatherCombine` and `performST1ScatterCombine` are renamed
  as `performGatherLoadCombine` and `performScatterStoreCombine`,
  respectively.
* Selection DAG types for scatters and gathers from
  AArch64SVEInstrInfo.td are renamed. For example, `SDT_AArch64_GLD1` is
  renamed as `SDT_AArch64_GATHER_SV`. SV stands for Scalar-Vector, as
  opposed to Vector-Scalar (VS).
* The intrinsic classes from IntrinsicsAArch64.td are renamed. For
  example, `AdvSIMD_GatherLoad_64bitOffset_Intrinsic` is renamed as
  `AdvSIMD_GatherLoad_SV_64b_Offsets_Intrinsic`.
* Updated comments in `performGatherLoadCombine` and
  `performScatterStoreCombine`.

Reviewers: sdesmalen, rengolin, efriedma

Reviewed By: sdesmalen

Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D75035
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit e4e122aa1d59bdc1e15b414479d574952223b512 by herhut
[MLIR][GPU] Fix forward declaration of Region class.

I forward declared mlir::Region as a struct by mistake :(
The file was modifiedmlir/include/mlir/Dialect/GPU/ParallelLoopMapper.h
Commit 4486aa03c5f431ba33a1d1ac9991da912e3decd9 by hans
build_llvm_package.bat: Produce zip files in addition to the installers

Now that the Windows installer no longer does anything besides
self-extract, maybe it would make sense to distribute the toolchain as a
plain zip file in addition to the current installer.

Differential revision: https://reviews.llvm.org/D74896
The file was modifiedllvm/utils/release/build_llvm_package.bat
Commit 555d5ad85a4986d003040eb94109c72579021423 by kadircet
[clangd] Disable ExtractVariable for C

Summary:
Currently extract variable doesn't spell the type explicitly and just
uses an `auto` instead, which is not available in C.

Reviewers: usaxena95

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D75053
The file was modifiedclang-tools-extra/clangd/unittests/TweakTests.cpp
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp
Commit defd0e24aa054aed583d5272e2cc64ae7b0fdc7d by Raphael Isemann
[lldb][NFC] Move NameSearchContext to own header/source files

The class is large enough to be in its own file. This patch also removes the cyclic
dependency between ClangASTSource <-> NameSearchContext.
The file was modifiedlldb/unittests/Expression/ClangExpressionDeclMapTest.cpp
The file was addedlldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.cpp
The file was addedlldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
The file was modifiedlldb/include/lldb/lldb-forward.h
Commit 2ad7b6fba0e3a9e71df64bd1a51a14f9c5930eb3 by Raphael Isemann
[lldb][NFC] Make NameSearchContext::m_found members bools instead of bitfields

The size of NameSearchContext isn't important as we never store it and rarely
allocate more than a few. This way we also don't have to use the memset to
initialize these fields to zero.
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
Commit 60a2db5986a84ef3e930818b6b86dc0d5c361e4a by whitequark
Remove myself from CODE_OWNERS.
The file was modifiedllvm/CODE_OWNERS.TXT
Commit 3950093951f49314f2c61157be96aa72f9a0e2e0 by thakis
[gn build] (manually) merge fee41517fe0f
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
Commit 93b6e1924081874039e6c88828db8e0ab7bbba04 by Raphael Isemann
[lldb] Initialize NameSearchContext::m_namespace_map in constructor

This member is for some reason initialized in ClangASTSource::FindExternalVisibleDecls
so all other functions using this member dereference a nullptr unless we
call this function before that. Let's just initialize this in the constructor.

This should be NFC as the only side effect is that we don't reset the namespace map
when calling ClangASTSource::FindExternalVisibleDecls multiple times (and we never
call this function multiple times for one NameSearchContext from what I can see).
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h
Commit bdb24faa2af4b989e757bc0a220224df9fe4d874 by Raphael Isemann
[lldb][NFC] Move filling namespace map in ClangASTSource to own function
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
Commit 0a3b0837915e9796ae4279fe704efa663b89d815 by jeremy.morse
[debuginfo-tests] Warn, not error, if we can't delete working directory

On Windows, an error running the debugger typically leaves a process
hanging around in the working directory. When Dexter exits, it can't then
delete the working directory and produces an exception, masking the problem
in the debugger. (This can be worked around by specifying --save-temps).
Rather than hard-erroring, print a warning when we can't delete the working
directory instead.

It'd be much better to improve our error handling, and make the
WorkingDirectory class aware that something's wrong when it enters exit.
However, this is something that's going to mask genuine errors and make
everyones lives harder right now, so I think this non-ideal fix is
important to get in first.

Differential Revision: https://reviews.llvm.org/D74548
The file was modifieddebuginfo-tests/dexter/dex/utils/WorkingDirectory.py
Commit 305320b0057924ef78978e9df8a0e1f591990a06 by zinenko
[mlir] NFC: move AffineOps tests from test/ to test/Dialect

AffineOps dialect lives under lib/Dialect/AffineOps and so should its
tests.
The file was removedmlir/test/AffineOps/memref-stride-calculation.mlir
The file was removedmlir/test/AffineOps/canonicalize.mlir
The file was addedmlir/test/Dialect/AffineOps/dma.mlir
The file was addedmlir/test/Dialect/AffineOps/load-store.mlir
The file was addedmlir/test/Dialect/AffineOps/ops.mlir
The file was addedmlir/test/Dialect/AffineOps/canonicalize.mlir
The file was removedmlir/test/AffineOps/load-store-invalid.mlir
The file was addedmlir/test/Dialect/AffineOps/memref-stride-calculation.mlir
The file was addedmlir/test/Dialect/AffineOps/invalid.mlir
The file was addedmlir/test/Dialect/AffineOps/load-store-invalid.mlir
The file was removedmlir/test/AffineOps/dma.mlir
The file was removedmlir/test/AffineOps/ops.mlir
The file was removedmlir/test/AffineOps/invalid.mlir
The file was addedmlir/test/Dialect/AffineOps/inlining.mlir
The file was removedmlir/test/AffineOps/inlining.mlir
The file was removedmlir/test/AffineOps/load-store.mlir
Commit 5e6d7246335dc4aa0145bdbd5cea70b886a34133 by herhut
[MLIR][GPU] Properly model step in parallel loop to gpu conversion.

Summary:
The original patch had TODOs to add support for step computations,
which this commit addresses. The computations are expressed using
affine expressions so that the affine canonicalizers can simplify
the full bound and index computations.

Also cleans up the code a little and exposes the pass in the
header file.

Differential Revision: https://reviews.llvm.org/D75052
The file was modifiedmlir/lib/Conversion/LoopsToGPU/LoopsToGPU.cpp
The file was modifiedmlir/test/Conversion/LoopsToGPU/parallel_loop.mlir
The file was modifiedmlir/lib/Conversion/LoopsToGPU/LoopsToGPUPass.cpp
The file was modifiedmlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h
Commit b8d638d337e76a632d07d61f4cef59e243b961a8 by flo
[DSE,MSSA] Do not attempt to remove un-removable memdefs.

We have to skip MemoryDefs that cannot be removed. This fixes a crash in
the newly added test case and fixes a wrong case in
memset-and-memcpy.ll.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-and-memcpy.ll
The file was addedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-overlapping.ll
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was addedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-todo.ll
Commit 10ea01d80d6fb81d01856271dbcd6205911d451d by spatel
[VectorCombine] make cost calc consistent for binops and cmps

Code duplication (subsequently removed by refactoring) allowed
a logic discrepancy to creep in here.

We were being conservative about creating a vector binop -- but
not a vector cmp -- in the case where a vector op has the same
estimated cost as the scalar op. We want to be more aggressive
here because that can allow other combines based on reduced
instruction count/uses.

We can reverse the transform in DAGCombiner (potentially with a
more accurate cost model) if this causes regressions.

AFAIK, this does not conflict with InstCombine. We have a
scalarize transform there, but it relies on finding a constant
operand or a matching insertelement, so that means it eliminates
an extractelement from the sequence (so we won't have 2 extracts
by the time we get here if InstCombine succeeds).

Differential Revision: https://reviews.llvm.org/D75062
The file was modifiedllvm/test/Transforms/VectorCombine/X86/extract-binop.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp
Commit e0568ef2c5c2e949ccfd5b66cc749fab8fa38e03 by spatel
[VectorCombine] add tests for possible extract->shuffle; NFC
The file was modifiedllvm/test/Transforms/VectorCombine/X86/extract-binop.ll
The file was modifiedllvm/test/Transforms/VectorCombine/X86/extract-cmp.ll
Commit 7b6168e7bef1cdc355fd28572bd69ea4057c57f8 by 1.int32
[ASTImporter] Improved variable template redecl chain handling.

Reviewers: martong, a.sidorin, shafik

Reviewed By: martong

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, teemperor, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D74720
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/unittests/AST/ASTImporterGenericRedeclTest.cpp
Commit 770ad9f55e660e0ec89f61d5579dfafad17ab5f5 by adam.balogh
[Analyzer] Fix for iterator modeling and checkers: handle negative numbers correctly

Currently, using negative numbers in iterator operations (additions and
subractions) results in advancements with huge positive numbers due to
an error. This patch fixes it.

Differential Revision: https://reviews.llvm.org/D74760
The file was modifiedclang/lib/StaticAnalyzer/Checkers/Iterator.cpp
The file was modifiedclang/test/Analysis/iterator-modelling.cpp
Commit f452f7b95a8c20f187f67dc57dd4778ba09090b3 by spatel
[PhaseOrdering] add test for missing vector/CSE transforms (PR45015); NFC
The file was addedllvm/test/Transforms/PhaseOrdering/X86/addsub.ll
The file was addedllvm/test/Transforms/PhaseOrdering/X86/lit.local.cfg
Commit 83f4372f3a708ceaa800feff8b1bd92ae2c3be5f by spatel
[CodeGen] fix clang test that runs the optimizer pipeline; NFC

There's already a FIXME note on this file; it can break when the
underlying LLVM behavior changes independently of anything in clang.
The file was modifiedclang/test/CodeGen/complex-math.c
Commit 7d91fd23dfa8ad33b3d270b6a2b8f6cf6a589a38 by zinenko
[mlir] NFC: update documentation in ConvertLinalgToLLVM

The documentation was describing an obsolete version of the
transformation.
The file was modifiedmlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
Commit 91f7f0d8e3ef2b6be07bc9621de075ff11c730c9 by luismarques
[RISCV] Fix sysroot tests without GCC on RISC-V hosts with GCC

D68391 added tests that check scenarios where no RISC-V GCC toolchain is
supposed to be detected. When running the tests on RISC-V hosts the system's
GCC toolchain will be detected, and the tests will fail. This patch adds a
`--gcc-toolchain` option pointing to a path where no GCC toolchain is
present, ensuring that the tests are run under the expected conditions, and
therefore are able to pass in all test environments.

Differential Revision: https://reviews.llvm.org/D75061
The file was modifiedclang/test/Driver/riscv64-toolchain-extra.c
The file was modifiedclang/test/Driver/riscv32-toolchain-extra.c
Commit edae4be8e21c5deb9a8ffc24a8c17e70b878bf39 by hans
Fix DfaEmitter::visitDfaState() crash in MSVC x86 debug builds (PR44945)

No functionality change (intended), but this seems to make the code a
bit clearer for the compiler and maybe for human readers too.
The file was modifiedllvm/utils/TableGen/DFAEmitter.cpp
The file was modifiedllvm/utils/TableGen/DFAEmitter.h
Commit 2bd6974aaa664f01e8822514295425fee380b131 by jbcoe
[clang-format]  Wrap lines for C# property accessors

Summary: Ensure that auto-implemented properties `{ get; private set }` are wrapped on to one line for C# code.

Reviewers: MyDeveloperDay, krasimir

Reviewed By: MyDeveloperDay, krasimir

Subscribers: cfe-commits

Tags: #clang-format, #clang

Differential Revision: https://reviews.llvm.org/D75006
The file was modifiedclang/lib/Format/UnwrappedLineFormatter.cpp
The file was modifiedclang/unittests/Format/FormatTestCSharp.cpp
Commit e16e267bb6ee8dd923bf328fd277d8e637eb34c6 by kkwli0
[OpenMP][cmake] ignore warning on unknown CUDA version

Differential Revision: https://reviews.llvm.org/D75001
The file was modifiedopenmp/runtime/cmake/LibompCheckLinkerFlag.cmake
Commit dc383f07b080aa3a5725628691163850bc50ae89 by joerg
Stop including sys/param.h from Unix.h
The file was modifiedllvm/lib/Support/Unix/Unix.h
Commit e09754ccefc8cff7ae5fa18ce73db76339b559f5 by kadircet
[clangd] Migrate Lexer usages in TypeHierarchy to TokenBuffers

Summary:
Also fixes a bug, resulting from directly using ND.getEndLoc() for end
location of the range. As ND.getEndLoc() points to the begining of the last
token, whereas it should point one past the end, since LSP ranges are half open
(exclusive on the end).

Reviewers: sammccall

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D74850
The file was modifiedclang-tools-extra/clangd/XRefs.cpp
The file was modifiedclang-tools-extra/clangd/test/type-hierarchy.test
Commit e5513336aee4a9b10cb98f234145aeb4763fdd69 by dkszelethus
[analyzer][MallocChecker][NFC] Change the use of IdentifierInfo* to CallDescription

Exactly what it says on the tin! I decided not to merge this with the patch that
changes all these to a CallDescriptionMap object, so the patch is that much more
trivial.

Differential Revision: https://reviews.llvm.org/D68163
The file was modifiedclang/test/Analysis/kmalloc-linux.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
The file was addedclang/test/Analysis/malloc-annotations.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
Commit bcda1269c4c4d5d19d2be425c0a52d19fe09f146 by thakis
clang-cl: Add a `/showIncludes:user` flag.

This flag is like /showIncludes, but it only includes user headers and
omits system headers (similar to MD and MMD). The motivation is that
projects that already track system includes though other means can use
this flag to get consistent behavior on Windows and non-Windows, and it
saves tools that output /showIncludes output (e.g. ninja) some work.

implementation-wise, this makes `HeaderIncludesCallback` honor the
existing `IncludeSystemHeaders` bit, and changes the three clients of
`HeaderIncludesCallback` (`/showIncludes`, `-H`, `CC_PRINT_HEADERS=1`)
to pass `-sys-header-deps` to set that bit -- except for
`/showIncludes:user`, which doesn't pass it.

Differential Revision: https://reviews.llvm.org/D75093
The file was modifiedclang/test/Preprocessor/headermap-rel2.c
The file was modifiedclang/test/Driver/cl-options.c
The file was modifiedclang/lib/Frontend/HeaderIncludeGen.cpp
The file was modifiedclang/include/clang/Driver/CLCompatOptions.td
The file was modifiedclang/test/Frontend/print-header-includes.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/Frontend/DependencyFile.cpp
Commit ab96ec41ead8fadbbaae4c31ef5096a478772aa6 by jay.foad
[AMDGPU] Precommit some test updates for D68338 "Remove dubious logic in bidirectional list scheduler"
The file was modifiedllvm/test/CodeGen/AMDGPU/load-hi16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/sminmax.v2i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/global_smrd.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fcanonicalize.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/mad_64_32.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fneg-fabs.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fneg-combines.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/add.v2i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/select-fabs-fneg-extract.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.icmp.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.barrier.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/sad.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/smrd-vccz-bug.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/wave32.ll
Commit fc466f87804f97b322394ef3b9db43ea3febcc15 by benny.kra
Make test not write to the source directory
The file was modifiedclang/test/CodeGen/static-init.cpp
Commit 425ef999385058143bb927aefe81daddcd43f623 by lebedev.ri
[NFC][InstCombine] Add shift amount reassociation miscompile example from PR44802

https://bugs.llvm.org/show_bug.cgi?id=44802
The file was modifiedllvm/test/Transforms/InstCombine/shift-amount-reassociation.ll
Commit 781d077afb0ed9771c513d064c40170c1ccd21c9 by lebedev.ri
[InstCombine] reassociateShiftAmtsOfTwoSameDirectionShifts(): fix miscompile (PR44802)

As input, we have the following pattern:
  Sh0 (Sh1 X, Q), K
We want to rewrite that as:
  Sh x, (Q+K)  iff (Q+K) u< bitwidth(x)
While we know that originally (Q+K) would not overflow
(because  2 * (N-1) u<= iN -1), we may have looked past extensions of
shift amounts. so it may now overflow in smaller bitwidth.

To ensure that does not happen, we need to ensure that the total maximal
shift amount is still representable in that smaller bitwidth.
If the overflow would happen, (Q+K) u< bitwidth(x) check would be bogus.

https://bugs.llvm.org/show_bug.cgi?id=44802
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/shift-amount-reassociation.ll
Commit 6f807ca00d951d3e74f7ea4fe1daa8e3560f4c0d by lebedev.ri
[NFC][InstCombine] Add shift amount reassociation in bittest miscompile example from PR44802

https://bugs.llvm.org/show_bug.cgi?id=44802
The file was modifiedllvm/test/Transforms/InstCombine/shift-amount-reassociation-in-bittest.ll
Commit 2855c8fed9326ec44526767f1596a4fe4e55dc70 by lebedev.ri
[InstCombine] foldShiftIntoShiftInAnotherHandOfAndInICmp(): fix miscompile (PR44802)

Much like with reassociateShiftAmtsOfTwoSameDirectionShifts(),
as input, we have the following pattern:
  icmp eq/ne (and ((x shift Q), (y oppositeshift K))), 0
We want to rewrite that as:
  icmp eq/ne (and (x shift (Q+K)), y), 0  iff (Q+K) u< bitwidth(x)

While we know that originally (Q+K) would not overflow
(because  2 * (N-1) u<= iN -1), we may have looked past extensions of
shift amounts. so it may now overflow in smaller bitwidth.

To ensure that does not happen, we need to ensure that the total maximal
shift amount is still representable in that smaller bitwidth.
If the overflow would happen, (Q+K) u< bitwidth(x) check would be bogus.

https://bugs.llvm.org/show_bug.cgi?id=44802
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/shift-amount-reassociation-in-bittest.ll
Commit ec1efe71130f5b049e53828281204b50d89d4cf6 by aykevanlaethem
[LLDB] Let DataExtractor deal with two-byte addresses

AVR usually uses two byte addresses. By making DataExtractor deal with
this, it is possible to load AVR binaries that don't have debug info
associated with them.

Differential Revision: https://reviews.llvm.org/D73969
The file was modifiedlldb/unittests/Utility/DataExtractorTest.cpp
The file was modifiedlldb/source/Utility/DataExtractor.cpp
Commit deb116ee0a5b80f61bc341ed68606dc5ad093569 by pavel
[DWARFDebugLine] Avoid dumping prologue members we did not parse

Summary:
This patch if motivated by D74560, specifically the subthread about what
to print upon encountering reserved initial length values.

If the debug_line prologue has an unsupported version, we skip parsing
the rest of the data. If we encounter an reserved initial length field,
we don't even parse the version. However, we still print out all members
(with value 0) in the dump function.

This patch introduces early exits in the Prologue::dump function so that
we print only the fields that were parsed successfully. In case of an
unsupported version, we skip printing all subsequent prologue fields --
because we don't even know if this version has those fields. In case of a
reserved unit length, we don't print anything -- if the very first field
of the prologue is invalid, it's hard to say if we even have a prologue
to begin with.

Note that the user will still be able to see the invalid/reserved
initial length value in the error message. I've modified (reordered)
debug_line_invalid.test to show that the error message comes straight
after the debug_line offset. I've also added some flush() calls to the
dumping code to ensure this is the case in all situations (without that,
the warnings could get out of sync if the output was not a terminal -- I
guess this is why std::iostreams have the tie() function).

Reviewers: jhenderson, ikudrin, dblaikie

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D75043
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug_line_invalid.test
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp
Commit a82ffe9d93a24abf30bcf63081096ea18baf78dc by Artem Dergachev
[analyzer] Add support for CXXInheritedCtorInitExpr.

So far we've been dropping coverage every time we've encountered
a CXXInheritedCtorInitExpr. This patch attempts to add some
initial support for it.

Constructors for arguments of a CXXInheritedCtorInitExpr are still
not fully supported.

Differential Revision: https://reviews.llvm.org/D74735
The file was modifiedclang/include/clang/Analysis/AnyCall.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
The file was modifiedclang/lib/StaticAnalyzer/Core/CallEvent.cpp
The file was modifiedclang/test/Analysis/osobject-retain-release.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngine.cpp
The file was modifiedclang/lib/Analysis/RetainSummaryManager.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
The file was addedclang/test/Analysis/cxx-inherited-ctor-init-expr.cpp
The file was modifiedclang/include/clang/Analysis/ConstructionContext.h
The file was modifiedclang/lib/StaticAnalyzer/Core/SymbolManager.cpp
Commit e6d0bad843c4c84bb762cf93a56c5bdd5cc535c0 by hokein.wu
[clang-rename] Add the USR of incomplete decl to the USRSet.

Summary:
This fixes a clangd rename issue, which is missing the reference of
an incomplete specialization.

Unfortunately, I didn't reproduce this issue in clang-rename, I guess
the input `FoundDecl` of AdditionalUSRFinder is different in clangd vs
clang-rename, clang-rename uses the underlying CXXRecordDecl of the
ClassTemplateDecl, which is fixed in https://github.com/llvm/llvm-project/commit/5d862c042b52ae2aad37471d0b83b6c678a520e3;
while clangd-rename uses the ClassTemplateDecl.

Reviewers: kbobyrev

Reviewed By: kbobyrev

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D74829
The file was modifiedclang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp
The file was modifiedclang-tools-extra/clangd/unittests/RenameTests.cpp
Commit 93331a17e8b3d6205efc8f1d4e7a74523f3b7035 by maskray
[ELF] Support archive:file syntax in input section descriptions

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

https://sourceware.org/binutils/docs/ld/Input-Section-Basics.html#Input-Section-Basics
The following two rules are not implemented.

* `archive:` matches every file in the archive.
* `:file` matches a file not in an archive.

Reviewed By: grimar, ruiu

Differential Revision: https://reviews.llvm.org/D75100
The file was modifiedlld/ELF/LinkerScript.cpp
The file was addedlld/test/ELF/linkerscript/input-archive.s
Commit 33cbd5ee080ecbc1775751d7f5d930ae9b83c8ec by jay.foad
AMDGPU/GlobalISel: Legalize s64 min/max by lowering

Reviewers: arsenm, rampitec

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D75108
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir
Commit 7b65886ec2d0de431959f6b1d1801ef43a958f55 by hokein.wu
Make builtbot happy.

Disable the failing rename test, it should not be failed, needs further
investigation.
The file was modifiedclang/unittests/Rename/RenameClassTest.cpp
Commit fa755d3e71ed590ac5c62f0e1eff09435c9593fe by anastasia.stulova
[Sema][C++] Propagate conversion kind to specialize the diagnostics

Compute and propagate conversion kind to diagnostics helper in C++
to provide more specific diagnostics about incorrect implicit
conversions in assignments, initializations, params, etc...

Duplicated some diagnostics as errors because C++ is more strict.

Tags: #clang

Differential Revision: https://reviews.llvm.org/D74116
The file was modifiedclang/test/SemaObjCXX/objc-container-subscripting.mm
The file was modifiedclang/test/CXX/temp/temp.spec/temp.expl.spec/p19.cpp
The file was modifiedclang/test/SemaCXX/addr-of-overloaded-function.cpp
The file was modifiedclang/test/Sema/pass-object-size.c
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/SemaTemplate/extern-templates.cpp
The file was modifiedclang/test/CXX/temp/temp.spec/temp.explicit/p10.cpp
The file was modifiedclang/test/CXX/temp/temp.spec/temp.explicit/p9.cpp
The file was modifiedclang/test/Sema/overloadable.c
The file was modifiedclang/test/SemaCXX/decl-microsoft-call-conv.cpp
The file was modifiedclang/test/SemaOpenCL/address-spaces.cl
The file was modifiedclang/test/SemaObjCXX/noescape.mm
The file was modifiedclang/test/SemaObjC/comptypes-legal.m
The file was modifiedclang/test/OpenMP/allocate_allocator_messages.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/SemaObjCXX/instantiate-stmt.mm
The file was modifiedclang/test/Sema/callingconv.c
The file was modifiedclang/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/SemaTemplate/temp_arg_nontype.cpp
The file was modifiedclang/test/Sema/callingconv-ms_abi.c
The file was modifiedclang/test/SemaObjCXX/property-invalid-type.mm
The file was modifiedclang/test/Sema/callingconv-sysv_abi.c
The file was modifiedclang/test/SemaTemplate/instantiate-member-class.cpp
The file was modifiedclang/test/CXX/conv/conv.fctptr/p1.cpp
The file was modifiedclang/test/SemaCXX/int-ptr-cast-SFINAE.cpp
The file was modifiedclang/test/SemaObjC/arc.m
The file was modifiedclang/test/CXX/expr/p13.cpp
The file was modifiedclang/test/Sema/preserve-call-conv.c
The file was modifiedclang/test/SemaObjCXX/arc-type-conversion.mm
The file was modifiedclang/test/SemaObjCXX/comptypes-1.mm
The file was modifiedclang/test/CXX/except/except.handle/p16.cpp
The file was modifiedclang/test/Sema/block-return.c
The file was modifiedclang/test/SemaCXX/goto.cpp
The file was modifiedclang/test/SemaCXX/ms-property-error.cpp
The file was modifiedclang/test/SemaTemplate/member-access-expr.cpp
The file was modifiedclang/test/CXX/drs/dr3xx.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/SemaObjCXX/comptypes-7.mm
The file was modifiedclang/test/SemaObjCXX/parameterized_classes_subst.mm
The file was modifiedclang/test/SemaObjCXX/nullability-pragmas.mm
The file was modifiedclang/test/Sema/block-call.c
The file was modifiedclang/test/SemaObjCXX/instantiate-expr.mm
Commit 11857d49948b845dcfd7c7f78595095e3add012d by xur
[remark][diagnostics] [codegen] Fix PR44896

This patch fixes PR44896. For IR input files, option fdiscard-value-names
should be ignored as we need named values in loadModule().
Commit 60d3947922 sets this option after loadModule() where valued names
already created. This creates an inconsistent state in setNameImpl()
that leads to a seg fault.
This patch forces fdiscard-value-names to be false for IR input files.

This patch also emits a warning of "ignoring -fdiscard-value-names" if
option fdiscard-value-names is explictly enabled in the commandline for
IR input files.

Differential Revision: https://reviews.llvm.org/D74878
The file was modifiedclang/lib/CodeGen/CodeGenAction.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was addedclang/test/CodeGen/PR44896.ll
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
Commit 86e13ec194a01744822606f4473d577cbc2c211a by arsenm2
AMDGPU/GlobalISel: Use packed for G_ADD/G_SUB/G_MUL v2s16
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sub.mir
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/mul.v2i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-add.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-mul.mir
Commit ab41129b1ee1f20d772f9eed346c10edcd70396a by Louis Dionne
[libc++] Proper fix for libc++'s modulemap after D68480

Summary:
In libc++, we normally #ifdef out header content instead of #erroring
out when the Standard in use is insufficient for the requirements of
the header.

Reviewers: EricWF

Subscribers: jkorous, dexonsmith, libcxx-commits, teemperor

Tags: #libc

Differential Revision: https://reviews.llvm.org/D75074
The file was modifiedlibcxx/include/semaphore
The file was addedlibcxx/test/libcxx/modules/stds_include.sh.cpp
The file was modifiedlibcxx/include/barrier
The file was modifiedlibcxx/include/latch
Commit 7c2f4a8370829aae5a96b7353fb0727d4e47e8fd by Louis Dionne
[libc++] Revert 03dd205c151 "Adjust max_align_t handling"

That commit was made without approval from a libc++ reviewer, and it
also broke the build in C++03 mode.
The file was modifiedlibcxx/include/new
The file was modifiedlibcxx/include/cstddef
The file was modifiedlibcxx/include/stddef.h
Commit c66db2116507d56818c11b28f838d686c5ae4600 by jay.foad
AMDGPU/GlobalISel: Un-XFAIL a test

This was missed in 12fe9b26ec88bb2dd40d574a644edca302e804b2
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.ll
Commit 69da40033106aadbb452c473ec99c002ff801b12 by pavel
Revert "[DWARFDebugLine] Avoid dumping prologue members we did not parse"

The changed test started failing on the windows bots. Reverting while I
investigate.

This reverts commit deb116ee0a5b80f61bc341ed68606dc5ad093569.
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug_line_invalid.test
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
Commit 14845b2c459021e3dbf2ead52d707d4a7db40cbb by listmail
Revert "[LICM] Support hosting of dynamic allocas out of loops"

This reverts commit 8d22100f66c4170510c6ff028c60672acfe1cff9.

There was a functional regression reported (https://bugs.llvm.org/show_bug.cgi?id=44996).  I'm not actually sure the patch is wrong, but I don't have time to investigate currently, and this line of work isn't something I'm likely to get back to quickly.
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
The file was removedllvm/test/Transforms/LICM/hoist-alloca.ll
Commit bf6d94f15981dcffe2bd77a35423e25344ecd47d by Louis Dionne
[libc++] Remove incorrect XFAIL in modules test

Apparently, the test still works on single-threaded systems.
The file was modifiedlibcxx/test/libcxx/modules/stds_include.sh.cpp
Commit 342eca29749e3169cd9bb3ca0953519a41a7ca0f by lebedev.ri
[NFC][Codegen] Add miscompile test for constant store merging from PR43446

This miscompile was introduced by rL354676 / https://reviews.llvm.org/D58468

https://bugs.llvm.org/show_bug.cgi?id=43446
The file was modifiedllvm/test/CodeGen/X86/stores-merging.ll
Commit d20907d1de89bf63b589fadd8c096d4895e47fba by lebedev.ri
[Codegen] Revert rL354676/rL354677 and followups - introduced PR43446 miscompile

This reverts https://reviews.llvm.org/D58468
(rL354676, 44037d7a6377ec8e5542cced73583283334b516b),
and all and any follow-ups to that code block.

https://bugs.llvm.org/show_bug.cgi?id=43446
The file was modifiedllvm/test/CodeGen/PowerPC/constant-combines.ll
The file was modifiedllvm/test/CodeGen/X86/constant-combines.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/AArch64/ldst-paired-aliasing.ll
The file was modifiedllvm/test/CodeGen/X86/pr40631_deadstore_elision.ll
The file was modifiedllvm/test/CodeGen/X86/lifetime-alias.ll
The file was modifiedllvm/test/CodeGen/X86/stores-merging.ll
Commit eb1c040b413a3542a7a6db2cae0d0d7bc2728a95 by sd.fertile
[PowerPC][NFC] Remove comments mentioning Darwin and VRSAVE from lit test.
The file was modifiedllvm/test/CodeGen/PowerPC/sjlj.ll
Commit a12f1d6a52a195831da8f38eece08f271e2aa31b by qcolombet
[MachineInstr] Add a dumpr method

Add a dump method that recursively prints an instruction and all
the instructions defining its operands and so on.

This is helpful when looking at combiner issue.

NFC

Differential Revision: https://reviews.llvm.org/D75094
The file was modifiedllvm/include/llvm/CodeGen/MachineInstr.h
The file was modifiedllvm/lib/CodeGen/MachineInstr.cpp
Commit eee22ec3c3712a1089cbdbe66ccf36dd89be507a by Vedant Kumar
[X86MCTargetDesc.h] Speculative fix for macro collision with sys/param.h

See discussion on https://reviews.llvm.org/D75091 for information about
the build failure and alternatives considered.
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
Commit a57d9652a0dcc823921f2d4bac29680db5dbef64 by Yaxun.Liu
Make __builtin_amdgcn_dispatch_ptr dereferenceable and align at 4

Differential Revision: https://reviews.llvm.org/D75028
The file was modifiedllvm/include/llvm/IR/IntrinsicsAMDGPU.td
The file was modifiedclang/test/CodeGenOpenCL/builtins-amdgcn.cl
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/test/CodeGenCUDA/builtins-amdgcn.cu
Commit 7f3afd480d95e77fb89565455b65b3ebd716aba1 by scott.linder
Emit register names in cfi assembly directives

Update .cfi_undefined, .cfi_register, and .cfi_return_column to
print symbolic register arguments.

Differential Revision: https://reviews.llvm.org/D74914
The file was modifiedllvm/test/CodeGen/SPARC/exception.ll
The file was modifiedllvm/lib/MC/MCAsmStreamer.cpp
The file was modifiedllvm/test/MC/X86/return-column.s
The file was modifiedllvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll
The file was modifiedllvm/test/CodeGen/SPARC/reserved-regs.ll
The file was modifiedllvm/test/CodeGen/SPARC/umulo-128-legalisation-lowering.ll
Commit 915b4aa1392fc865de9139696780ad5107f6cdc8 by scott.linder
Support emitting .cfi_undefined in CodeGen

This will be used by AMDGPU.

Differential Revision: https://reviews.llvm.org/D74914
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
Commit 481b1c83802f730df5876d01ede2054a738ee37e by scott.linder
[AMDGPU] Implement wave64 DWARF register mapping

Summary:
Implement the DWARF register mapping described in
llvm/docs/AMDGPUUsage.rst

This is currently limited to wave64 VGPRs/AGPRs.

This also includes some minor changes in AMDGPUInstPrinter,
AMDGPUMCTargetDesc, and AMDGPUAsmParser to make generating CFI assembly
text and ELF sections possible to ease testing, although complete CFI
support is not yet implemented.

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D74915
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.td
The file was addedllvm/test/DebugInfo/AMDGPU/print-reg-name.s
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
The file was addedllvm/test/DebugInfo/AMDGPU/register-mapping.s
The file was modifiedllvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
The file was modifiedllvm/test/DebugInfo/AMDGPU/variable-locations.ll
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
Commit 3cd13c4624b5900c884b691b72d0ca053433f6fe by jingham
Fix a race between lldb's packet timeout and the profile thread's usleep.

The debugserver profile thread used to suspend itself between samples with
a usleep.  When you detach or kill, MachProcess::Clear would delay replying
to the incoming packet until pthread_join of the profile thread returned.
If you are unlucky or the suspend delay is long, it could take longer than
the packet timeout for pthread_join to return.  Then you would get an error
about detach not succeeding from lldb - even though in fact the detach was
successful...

I replaced the usleep with PThreadEvents entity.  Then we just call a timed
WaitForEventBits, and when debugserver wants to stop the profile thread, it
can set the event bit, and the sleep will exit immediately.

Differential Revision: https://reviews.llvm.org/D75004
The file was addedlldb/test/API/macosx/profile_vrs_detach/Makefile
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.mm
The file was addedlldb/test/API/macosx/profile_vrs_detach/main.c
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.h
The file was addedlldb/test/API/macosx/profile_vrs_detach/TestDetachVrsProfile.py
Commit 922558be9ecb24f51fbe879bf6e55d6aad9f4619 by spatel
[PhaseOrdering] add tests for missed CSE; NFC

Also add a RUN line for the new pass manager.
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/addsub.ll
Commit e3add3e5a192ec7f73922a4278f52d335d1f9be5 by martin
[libcxx] Fix building for windows after 54fa9ecd3088508

Move the implementation of __libcpp_thread_poll_with_backoff
and __libcpp_timed_backoff_policy::operator() out of the
_LIBCPP_HAS_THREAD_API_PTHREAD block. None of the code in these
methods is pthreads specific.

Also add "inline _LIBCPP_INLINE_VISIBILITY" to
__libcpp_timed_backoff_policy::operator(), to avoid errors due to
multiple definitions of the operator. Contrary to
__libcpp_thread_poll_with_backoff (which is a template function),
this is a normal non-templated method.

Differential Revision: https://reviews.llvm.org/D75102
The file was modifiedlibcxx/include/__threading_support
Commit e11f9fb4508534d31b09d2ba6cd22428ccc75f65 by isanbard
Add 'l' constraint to goto label reference

A goto label uses the 'l' constraint, skipping it can cause unexpected
warnings.
The file was modifiedclang/test/Analysis/uninit-asm-goto.cpp
Commit 0789f280483e315d8bcb5e7005e04e7118983b21 by lebedev.ri
[NFC][SCEV] Piping to pass TTI into SCEVExpander::isHighCostExpansionHelper()

Summary:
Future patches will make use of TTI to perform cost-model-driven `SCEVExpander::isHighCostExpansionHelper()`
This is a fully NFC patch to make things reviewable.

Reviewers: reames, mkazantsev, wmi, sanjoy

Reviewed By: mkazantsev

Subscribers: hiraditya, zzheng, javed.absar, dmgreen, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73704
The file was modifiedllvm/unittests/Transforms/Utils/UnrollLoopTest.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/LoopUtils.h
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/SimplifyIndVar.h
The file was modifiedllvm/lib/Transforms/Utils/SimplifyIndVar.cpp
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolutionExpander.h
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/UnrollLoop.h
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
The file was modifiedllvm/lib/Transforms/Utils/LoopUtils.cpp
Commit b99c91a0872f4b7b7e482c40818bbdda4c967bd5 by lebedev.ri
[NFC][SCEV] Piping to pass new SCEVCheapExpansionBudget option into SCEVExpander::isHighCostExpansionHelper()

Summary:
In future patches`SCEVExpander::isHighCostExpansionHelper()` will respect the budget allocated by performing TTI cost modelling.
This is a fully NFC patch to make things reviewable.

Reviewers: reames, mkazantsev, wmi, sanjoy

Reviewed By: mkazantsev

Subscribers: hiraditya, zzheng, javed.absar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73705
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
The file was modifiedllvm/lib/Transforms/Utils/LoopUtils.cpp
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
The file was modifiedllvm/lib/Transforms/Utils/SimplifyIndVar.cpp
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolutionExpander.h
Commit 1622f3e074cb72feadd6f9d32f21d2030d3bdc47 by lebedev.ri
[NFC][SCEV] SCEVExpander::isHighCostExpansionHelper(): check that we processed expression first

Summary:
As far as i can tell this is still NFC.
Initially in rL146438 it was added at the top of the function,
later rL238507 dethroned it, and rL244474 did it again.

I'm not sure if we have already checked the cost of this expansion, we should be doing that again.

Reviewers: reames, mkazantsev, wmi, sanjoy, atrick, igor-laevsky

Reviewed By: mkazantsev

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73706
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
Commit 2d8275d72e1602a1869e6286b0ffbf9034ab102b by lebedev.ri
[SCEV] SCEVExpander::isHighCostExpansion(): assert if TTI is not provided

Summary:
Currently, as per `check-llvm`, we never call `SCEVExpander::isHighCostExpansion()` with null TTI,
so this appears to be a safe restriction.

Reviewers: reames, mkazantsev, wmi, sanjoy

Reviewed By: mkazantsev

Subscribers: javed.absar, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73712
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolutionExpander.h
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
Commit f90973f48645d1d1799d7bdb81cd6873e3a8ab71 by lebedev.ri
[SCEV] SCEVExpander::isHighCostExpansionHelper(): begin cost modelling - model cast cost

Summary:
This is not a NFC, although it does not change any of the existing tests.
I'm not really sure if we should have specific tests for the cost modelling itself.

This is the first patch that actually makes `SCEVExpander::isHighCostExpansionHelper()`
account for the cost of the SCEV expression, and consider the budget available,
by modelling cast expressions.

I believe the logic itself is "pretty obviously correct" - from budget,
we need to subtract the cost of the cast expression from inner type `Op->getType()`
to the `S->getType()` type, and recurse into the expression we are casting.

Reviewers: reames, mkazantsev, wmi, sanjoy

Reviewed By: mkazantsev

Subscribers: xbolva00, hiraditya, javed.absar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73716
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolutionExpander.h
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
Commit b8793f0dabc974aec74ce09362d8790d77c6acba by lebedev.ri
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model UDiv by power-of-two as LShr

Summary:
Like with casts, we need to subtract the cost of `lshr` instruction
from budget, and recurse into LHS operand.
Seems "pretty obviously correct" to me?

To be noted, there is a number of other shortcuts we //could// cost-model:
* `... + (-1 * ...)` -> `... - ...` <-  likely very frequent case
* `x - (rem x, power-of-2)`, which is currently `(x udiv power-of-2) * power-of-2` -> `x & -log2(power-of-2)`
* `rem x, power-of-2`, which is currently `x - ((x udiv power-of-2) * power-of-2)` -> `x & log2(power-of-2)-1`
* `... * power-of-2` -> `... << log2(power-of-2)` <- likely not very beneficial

Reviewers: reames, mkazantsev, wmi, sanjoy

Reviewed By: mkazantsev

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73718
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
Commit b8abdf9a176116271ed121ebd9c6b2194930e5e7 by lebedev.ri
[NFC][IndVarSimplify] Adjust value names in IndVarSimplify/exit_value_test2.ll

%tmp prefix confuses auto-update scripts
The file was modifiedllvm/test/Transforms/IndVarSimplify/exit_value_test2.ll
Commit cc29600b908ba3aefb41e53398922319841fdb37 by lebedev.ri
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model plain UDiv

Summary:
If we don't believe this UDiv is actually a LShr in disguise, things are much worse.
First, we try to see if this UDiv actually originates from user code,
by looking for `S + 1`, and if found considering this UDiv to be free.
But otherwise, we always considered this UDiv to be high-cost.

However that is no longer the case with TTI-driven cost model:
our default budget is 4, which matches the default cost of UDiv,
so now we allow a single UDiv to not be counted as high-cost.

While that is the case, it is evident this is actually a regression
due to the fact that cost-modelling is incomplete - we did not account
for the `add`, `mul` costs yet. That is being addressed in D73728.

Cost-modelling for UDiv also seems pretty straight-forward:
subtract cost of the UDiv itself, and recurse into both the LHS and RHS.

Reviewers: reames, mkazantsev, wmi, sanjoy

Reviewed By: mkazantsev

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73722
The file was modifiedllvm/test/Transforms/IndVarSimplify/exit_value_test2.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
Commit 756af2f88bda16a70df200283f833227f336822a by lebedev.ri
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model add/mul

Summary:
While this resolves the regression from D73722 in `llvm/test/Transforms/IndVarSimplify/exit_value_test2.ll`,
this now regresses `llvm/test/Transforms/IndVarSimplify/elim-extend.ll` `@nestedIV` test,
we no longer can perform that expansion within default budget of `4`, but require budget of `6`.
That regression is being addressed by D73777.

The basic idea here is simple.
```
Op0,  Op1, Op2 ...
|     |    |
\--+--/    |
    |       |
    \---+---/
```
I.e. given N operands, we will have N-1 operations,
so we have to add cost of an add (mul) for **every** Op processed,
**except** the first one, plus we need to recurse into *every* Op.

I'm guessing there's already canonicalization that ensures we won't
have `1` operand in `scMulExpr`, and no `0` in `scAddExpr`/`scMulExpr`.

Reviewers: reames, mkazantsev, wmi, sanjoy

Reviewed By: mkazantsev

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73728
The file was modifiedllvm/test/Transforms/IndVarSimplify/exit_value_test2.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/elim-extend.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
Commit 0f3c9b54e60b384728c0c24518b8f2645719275e by lebedev.ri
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model polynomial recurrence

Summary:
So, i wouldn't call this *obviously* correct,
but i think i got it right this time :)

Roughly, we have
```
Op0*x^0 + Op1*x^1 + Op2*x^2 ...
```
where `Op_{n} * x^{n}` is called term, and `n` the degree of term.

Due to the way they are stored internally in `SCEVAddRecExpr`,
i believe we can have `Op_{n}` to be `0`, so we should not charge for those.

I think it is most straight-forward to count the cost in 4 steps:
1. First, count it the same way we counted `scAddExpr`, but be sure to skip terms with zero constants.
   Much like with `add` expr we will have one less addition than number of terms.
2. Each non-constant term (term degree >= 1) requires a multiplication between the `Op_{n}` and `x^{n}`.
   But again, only charge for it if it is required - `Op_{n}` must not be 0 (no term) or 1 (no multiplication needed),
   and obviously don't charge constant terms (`x^0 == 1`).
3. We must charge for all the `x^0`..`x^{poly_degree}` themselves.
   Since `x^{poly_degree}` is `x * x * ...  * x`, i.e. `poly_degree` `x`'es multiplied,
   for final `poly_degree` term we again require `poly_degree-1` multiplications.
   Note that all the `x^{0}`..`x^{poly_degree-1}` will be computed for the free along the way there.
4. And finally, the operands themselves.

Here, much like with add/mul exprs, we really don't look for preexisting instructions..

Reviewers: reames, mkazantsev, wmi, sanjoy

Reviewed By: mkazantsev

Subscribers: hiraditya, javed.absar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73741
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
Commit d6f47aeb5198b142072d8ce2bbf2fdd30d116db0 by lebedev.ri
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model min/max (PR44668)

Summary:
Previosly we simply always said that `SCEVMinMaxExpr` is too costly to expand.
But this isn't really true, it expands into just a comparison+swap pair.
And again much like with add/mul, there will be one less such pair
than the number of operands. And we need to count the cost of operands themselves.

This does change a number of testcases, and as far as i can tell,
all of these changes are improvements, in the sense that
we fixed up more latches to do the [in]equality comparison.

This concludes cost-modelling changes, no other SCEV expressions exist as of now.

This is a part of addressing [[ https://bugs.llvm.org/show_bug.cgi?id=44668 | PR44668 ]].

Reviewers: reames, mkazantsev, wmi, sanjoy

Reviewed By: mkazantsev

Subscribers: hiraditya, javed.absar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73744
The file was modifiedllvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/loop-invariant-conditions.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/elim-extend.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
The file was modifiedllvm/test/Transforms/IndVarSimplify/lftr-reuse.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/full_widening.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/iv-widen.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/lftr-multi-exit.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/eliminate-trunc.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/widen-loop-comp.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/float-induction-x86.ll
Commit 44edc6fd2c63b7db43e13cc8caf1fee79bebdb5f by lebedev.ri
[SCEV] rewriteLoopExitValues(): even if have hard uses, still rewrite if cheap (PR44668)

Summary:
Replacing uses of IV outside of the loop is likely generally useful,
but `rewriteLoopExitValues()` is cautious, and if it isn't told to always
perform the replacement, and there are hard uses of IV in loop,
it doesn't replace.

In [[ https://bugs.llvm.org/show_bug.cgi?id=44668 | PR44668 ]],
that prevents `-indvars` from replacing uses of induction variable
after the loop, which might be one of the optimization failures
preventing that code from being vectorized.

Instead, now that the cost model is fixed, i believe we should be
a little bit more optimistic, and also perform replacement
if we believe it is within our budget.

Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=44668 | PR44668 ]].

Reviewers: reames, mkazantsev, asbirlea, fhahn, skatkov

Reviewed By: mkazantsev

Subscribers: nikic, hiraditya, zzheng, javed.absar, dmgreen, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73501
The file was modifiedllvm/lib/Transforms/Utils/LoopUtils.cpp
The file was modifiedllvm/test/Transforms/IndVarSimplify/elim-extend.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/pr28705.ll
The file was removedllvm/test/Transforms/IndVarSimplify/dont-recompute.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/lrev-existing-umin.ll
The file was addedllvm/test/Transforms/IndVarSimplify/do-recompute-if-cheap.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/pr39673.ll
Commit 400ceda425ab392096ff2800acad41a4322974d2 by lebedev.ri
[SCEV][IndVars] Always provide insertion point to the SCEVExpander::isHighCostExpansion()

Summary: This addresses the `llvm/test/Transforms/IndVarSimplify/elim-extend.ll` `@nestedIV` regression from D73728

Reviewers: reames, mkazantsev, wmi, sanjoy

Reviewed By: mkazantsev

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73777
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
The file was modifiedllvm/lib/Analysis/ScalarEvolutionExpander.cpp
The file was modifiedllvm/test/Transforms/IndVarSimplify/elim-extend.ll
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolutionExpander.h
Commit 6d0d1a63f2a6c120f206a83e7c1ddae9fa5a569a by isanbard
Use "nop" to avoid size warnings.
The file was modifiedclang/test/Analysis/uninit-asm-goto.cpp
Commit 6201f6601dec03e44424ad2d5cc04a9766f194b1 by zoecarver
Check args passed to __builtin_frame_address and __builtin_return_address.

Verifies that an argument passed to __builtin_frame_address or __builtin_return_address is within the range [0, 0xFFFF]

Differential revision: https://reviews.llvm.org/D66839

Re-committed after fixed: c93112dc4f745b0455addb54bfe1c2f79b827c6d
The file was modifiedclang/test/Sema/builtin-stackaddress.c
The file was modifiedclang/lib/Sema/SemaChecking.cpp
Commit c5ce6d8b561a5b2790a56803df24f800df7a76a8 by craig.topper
[X86] Add test to show incorrect ordering of flt.rounds intrinsic relative to calls to fesetround.

We don't order flt.rounds intrinsics relative to side effecting
operations in SelectionDAG. And we CSE multiple calls because of
this.
The file was modifiedllvm/test/CodeGen/X86/flt-rounds.ll
Commit 63cef621f954eb87c494021725f4eeac89132d16 by a.bataev
[LIBOMPTARGET]Fix PR44933: fix crash because of the too early deinitialization of libomptarget.

Summary:
Instead of using global variables with unpredicted time of
deinitialization, use dynamically allocated variables with functions
explicitly marked as global constructor/destructor and priority. This
allows to prevent the crash because of the incorrect order of dynamic
libraries deinitialization.

Reviewers: grokos, hfinkel

Subscribers: caomhin, kkwli0, openmp-commits

Tags: #openmp

Differential Revision: https://reviews.llvm.org/D74837
The file was modifiedopenmp/libomptarget/src/omptarget.cpp
The file was modifiedopenmp/libomptarget/src/device.cpp
The file was modifiedopenmp/libomptarget/src/api.cpp
The file was addedopenmp/libomptarget/test/offloading/dynamic_module_load.c
The file was modifiedopenmp/libomptarget/src/rtl.cpp
The file was modifiedopenmp/libomptarget/src/interface.cpp
The file was modifiedopenmp/libomptarget/src/rtl.h
Commit 430512ed7d7b5e1052fb3b671d8e54fc3afcf490 by Akira
[ObjC][ARC] Don't move a retain call living outside a loop into the loop
body

We started seeing cases where ARC optimizer would move retain calls into
loop bodies, causing imbalance in the number of retain and release
calls, after changes were made to delete inert ARC calls since the inert
calls that used to block code motion are gone.

Fix the bug by setting the CFG hazard flag when visiting a loop header.

rdar://problem/56908836
The file was modifiedllvm/test/Transforms/ObjCARC/cfg-hazards.ll
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
Commit 9c54f6154f748e707ad2385ddf6d66e812890c6a by yitzhakm
[libTooling] Add function to determine associated text of a declaration.

Summary:
This patch adds `getAssociatedRange` which, for a given decl, computes preceding
and trailing text that would conceptually be associated with the decl by the
reader. This includes comments, whitespace, and separators like ';'.

Reviewers: gribozavr

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D72153
The file was modifiedclang/include/clang/Tooling/Transformer/SourceCode.h
The file was modifiedclang/lib/Tooling/Transformer/SourceCode.cpp
The file was modifiedclang/unittests/Tooling/SourceCodeTest.cpp
Commit 0906dca493b3cec36d7fc3fe9f079c0a5288515d by tlively
[WebAssembly] Simplify extract_vector lowering

Summary:
Removes patterns that were not doing useful work, changes the
default extract instructions to be the unsigned versions now that
they are enabled by default, fixes PR44988, and adds tests for
sext_inreg lowering.

Reviewers: aheejin

Reviewed By: aheejin

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D75005
The file was modifiedllvm/test/CodeGen/WebAssembly/simd.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-sext-inreg.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-arith.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
Commit 396b7253944e927878dff2f6321efabb3aaa0f45 by johannes
[OpenMP][Opt] Combine `struct ident_t*` during deduplication

If we deduplicate OpenMP runtime calls we have multiple `ident_t*` that
represent information like source location. So far, we simply kept the
one used by the replacement call. However, as exposed by PR44893, that
can cause problems if we have stack allocated `ident_t` objects. While
we need to revisit the use of these as well, it is clear that we
eventually want to merge source location information in some way. With
this patch we add the infrastructure to do so but without doing the
actual merge. Instead we pick a global `ident_t` from the replaced
calls, if possible, or create a new one with an unknown location
instead.

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D74925
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
The file was addedclang/test/OpenMP/PR44893.c
The file was addedllvm/test/Transforms/OpenMP/deduplication.ll
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
The file was removedllvm/test/Transforms/OpenMP/gtid.ll
Commit 6d2372ce584f0fd26575e31d63278b98be2cfa1c by cyndy_ishida
[llvm][TextAPI] rename test vars, NFC

* Conforms to clang tidy
The file was modifiedllvm/unittests/TextAPI/TextStubV2Tests.cpp
The file was modifiedllvm/unittests/TextAPI/TextStubV3Tests.cpp
The file was modifiedllvm/unittests/TextAPI/TextStubV1Tests.cpp
Commit b8fdafe68ce25b7ff4d31720548622e28db87ebf by lebedev.ri
[Sema] Perform call checking when building CXXNewExpr

Summary:
There was even a TODO for this.
The main motivation is to make use of call-site based
`__attribute__((alloc_align(param_idx)))` validation (D72996).

Reviewers: rsmith, erichkeane, aaron.ballman, jdoerfert

Reviewed By: rsmith

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D73020
The file was modifiedclang/test/SemaCXX/std-align-val-t-in-operator-new.cpp
The file was addedclang/test/SemaCXX/operator-new-size-diagnose_if.cpp
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/test/SemaCXX/diagnose_if.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
Commit 3dd5a298bfff48c0939448c9b4bc987cf6bb5385 by lebedev.ri
[clang] Annotating C++'s `operator new` with more attributes

Summary:
Right now we annotate C++'s `operator new` with `noalias` attribute,
which very much is healthy for optimizations.

However as per [[ http://eel.is/c++draft/basic.stc.dynamic.allocation | `[basic.stc.dynamic.allocation]` ]],
there are more promises on global `operator new`, namely:
* non-`std::nothrow_t` `operator new` *never* returns `nullptr`
* If `std::align_val_t align` parameter is taken, the pointer will also be `align`-aligned
* ~~global `operator new`-returned pointer is `__STDCPP_DEFAULT_NEW_ALIGNMENT__`-aligned ~~ It's more caveated than that.

Supplying this information may not cause immediate landslide effects
on any specific benchmarks, but it for sure will be healthy for optimizer
in the sense that the IR will better reflect the guarantees provided in the source code.

The caveat is `-fno-assume-sane-operator-new`, which currently prevents emitting `noalias`
attribute, and is automatically passed by Sanitizers ([[ https://bugs.llvm.org/show_bug.cgi?id=16386 | PR16386 ]]) - should it also cover these attributes?
The problem is that the flag is back-end-specific, as seen in `test/Modules/explicit-build-flags.cpp`.
But while it is okay to add `noalias` metadata in backend, we really should be adding at least
the alignment metadata to the AST, since that allows us to perform sema checks on it.

Reviewers: erichkeane, rjmccall, jdoerfert, eugenis, rsmith

Reviewed By: rsmith

Subscribers: xbolva00, jrtc27, atanasyan, nlopes, cfe-commits

Tags: #llvm, #clang

Differential Revision: https://reviews.llvm.org/D73380
The file was modifiedclang/test/CodeGenCoroutines/coro-gro.cpp
The file was modifiedclang/test/CodeGenObjCXX/copy.mm
The file was modifiedclang/test/AST/ast-dump-stmt-json.cpp
The file was modifiedclang/test/CodeGenCXX/delete-two-arg.cpp
The file was modifiedclang/test/CodeGenCXX/mips-size_t-ptrdiff_t.cpp
The file was modifiedclang/test/SemaCXX/new-delete.cpp
The file was modifiedclang/test/Analysis/new-ctor-malloc.cpp
The file was modifiedclang/test/CodeGenCoroutines/coro-alloc.cpp
The file was modifiedclang/test/CodeGenCXX/dllimport.cpp
The file was modifiedclang/test/CodeGenCXX/static-init.cpp
The file was modifiedclang/test/CodeGenCXX/goto.cpp
The file was modifiedclang/test/CodeGenCoroutines/coro-cleanup.cpp
The file was modifiedclang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
The file was modifiedclang/test/CodeGenCXX/new-alias.cpp
The file was modifiedclang/test/SemaCXX/builtin-operator-new-delete.cpp
The file was modifiedclang/test/CodeGenCoroutines/coro-return.cpp
The file was modifiedclang/test/CodeGenCXX/operator-new.cpp
The file was modifiedclang/test/Analysis/new-ctor-null.cpp
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/test/CodeGenObjCXX/arc-new-delete.mm
The file was modifiedclang/test/CodeGenCXX/dllexport.cpp
The file was modifiedclang/test/CodeGenCXX/exceptions.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/CodeGenCXX/multi-dim-operator-new.cpp
The file was modifiedclang/test/CodeGenCXX/arm.cpp
The file was modifiedclang/test/CodeGenCXX/cxx1z-aligned-allocation.cpp
The file was modifiedclang/test/CodeGenCXX/cxx11-initializer-array-new.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/CodeGenCXX/builtin-is-constant-evaluated.cpp
The file was modifiedclang/test/CodeGenCoroutines/coro-gro-nrvo.cpp
The file was modifiedclang/test/CodeGenCXX/align-avx-complete-objects.cpp
The file was modifiedclang/test/CodeGenCXX/builtin-calling-conv.cpp
The file was modifiedclang/test/CodeGenCXX/new-overflow.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-array-cookies.cpp
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/test/CodeGenCXX/new.cpp
The file was modifiedclang/test/CodeGenCXX/new-array-init.cpp
The file was modifiedclang/test/CodeGenCXX/runtime-dllstorage.cpp
The file was modifiedclang/include/clang/AST/Decl.h
The file was modifiedclang/test/Analysis/new-ctor-null-throw.cpp
The file was modifiedclang/test/CodeGenCXX/builtin-operator-new-delete.cpp
Commit 8594f3d8990960f062b8ed5184f7d7cc9337e78f by Vedant Kumar
Revert "[X86MCTargetDesc.h] Speculative fix for macro collision with sys/param.h"

This reverts commit eee22ec3c3712a1089cbdbe66ccf36dd89be507a.

This is not the correct fix, the root cause seems to be a bug in the
stage1 host clang compiler. See https://reviews.llvm.org/D75091 for more
discussion.
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
Commit 3b5530cf9647cf79ee45aef42c4f5fa7cc9acfd9 by Louis Dionne
[libc++] Avoid including <semaphore.h> on Apple

It turns out that <semaphore.h> is not well-behaved, as it transitively
includes <sys/param.h>, and that one defines several non-reserved macros
that clash with some downstream projects in modular builds. For the time
being, using <sys/semaphore.h> instead gives us the declarations we need
without the macros.

rdar://59744472
The file was modifiedlibcxx/include/__threading_support
Commit 4b2b8b96db2837a95e8c3ceca3f31ac5641ca001 by Jason Molenda
Re-land Unwind past an interrupt handler correctly on arm or at pc==0

Updated the patch to only fetch $pc on a Return Address-using
target only if we're in a trap frame *and* if there is a saved
location for $pc in the trap frame's unwind rules.  If not,
we fall back to fetching the Return Address register (eg $lr).

Original commit msg:

    Unwind past an interrupt handler correctly on arm or at pc==0

    Fix RegisterContextLLDB::InitializeNonZerothFrame so that it
    will fetch a FullUnwindPlan instead of falling back to the
    architectural default unwind plan -- GetFullUnwindPlan knows
    how to spot a jmp 0x0 that results in a fault, which may be
    the case when we see a trap handler on the stack.

    Fix RegisterContextLLDB::SavedLocationForRegister so that when
    the pc value is requested from a trap handler frame, where we
    have a complete register context available to us, don't provide
    the Return Address register (lr) instead of the pc.  We have
    an actual pc value here, and it's pointing to the instruction
    that faulted.

    Differential revision: https://reviews.llvm.org/D75007
    <rdar://problem/59416588>
The file was modifiedlldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
Commit b3e6487f02ac98b6c4a501f5da10c867bd98f769 by riddleriver
[mlir][DenseElementsAttr] Fix storage size for bfloat16 when parsing from hex.

Summary: bfloat16 is stored internally as a double, so we can't direct use Type::getIntOrFloatBitWidth.

Differential Revision: https://reviews.llvm.org/D75133
The file was modifiedmlir/test/IR/dense-elements-hex.mlir
The file was modifiedmlir/lib/Parser/Parser.cpp

Changes from Git (git http://labmaster3.local/git/llvm-test-suite.git)

Summary

  1. Experimental support for spec 2017 on Apple platforms (details)
  2. This was missing the import (details)
  3. Revert "This was missing the import" (details)
  4. Revert "Experimental support for spec 2017 on Apple platforms" (details)
Commit 7114cae7cb79b3a20c165bef3a94883155332546 by Chris Matthews
Experimental support for spec 2017 on Apple platforms
The file was modifiedExternal/SPEC/SpecCPU2017.cmake
The file was modifiedExternal/SPEC/CINT2017rate/500.perlbench_r/CMakeLists.txt
Commit ea9b83ebfa2d009d1836fff2398f67bb58717d06 by Chris Matthews
This was missing the import
The file was modifiedExternal/SPEC/SpecCPU2017.cmake
Commit 1bb90d9973bd6f16188b933792448053b644aae2 by Chris Matthews
Revert "This was missing the import"

I accidentally pushed this before review.

This reverts commit ea9b83ebfa2d009d1836fff2398f67bb58717d06.
The file was modifiedExternal/SPEC/SpecCPU2017.cmake
Commit 0305e56e7bf5cf4be75b1a557fa72b37fe063572 by Chris Matthews
Revert "Experimental support for spec 2017 on Apple platforms"

I accidentally pushed this before review.

This reverts commit 7114cae7cb79b3a20c165bef3a94883155332546.
The file was modifiedExternal/SPEC/CINT2017rate/500.perlbench_r/CMakeLists.txt
The file was modifiedExternal/SPEC/SpecCPU2017.cmake