SuccessChanges

Summary

  1. Fix regex in test. (details)
  2. [OpenMP] OpenMPOpt Support for Globalization Remarks (details)
  3. [llvm] Add -bbsections-cold-text-prefix to emit cold clusters to a different section. (details)
  4. [RISCV] Merge the pipeline models for Rocket (details)
  5. [AMDGPU] Fixes typo in the test. NFC. (details)
  6. [MS] Simplify rules for passing C++ records (details)
  7. [MS] For unknown ISAs, pass non-trivially copyable arguments indirectly (details)
  8. [intel-pt] Refactor the JSON parsing (details)
Commit c9b53b3bf20d20d5752876be32a9e5887c702e53 by isanbard
Fix regex in test.
The file was modifiedclang/test/Modules/asm-goto.c
Commit a22814194e8ea8d581a26992bb27f808e53bbbde by jhuber6
[OpenMP] OpenMPOpt Support for Globalization Remarks

Summary:
This patch add support for printing analysis messages relating to data
globalization on the GPU. This occurs when data is shared between the
threads in a GPU context and must be pushed to global or shared memory.

Reviewers: jdoerfert

Subscribers: guansong hiraditya llvm-commits ormris sstefan1 yaxunl

Tags: #OpenMP #LLVM

Differential Revision: https://reviews.llvm.org/D88243
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPKinds.def
The file was addedllvm/test/Transforms/OpenMP/globalization_remarks.ll
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit d2696dec45cdcff791cd53b8b8288d33a0d8dddb by snehasishk
[llvm] Add -bbsections-cold-text-prefix to emit cold clusters to a different section.

This change adds an option to basic block sections to allow cold
clusters to be assigned a custom text prefix. With a custom prefix such
as ".text.split." (D87840), lld can place them in a separate output section.
The benefits are -

* Empirically shown to improve icache and itlb metrics by 3-5%
(absolute) compared to placing split parts in .text.unlikely.
* Mitigates against poor profiles, eg samplePGO profiles used with the
machine function splitter. Optimizations such as hugepage remapping can
make different decisions at the section granularity.
* Enables section granularity hotness monitoring (checking on the
decisions made during compilation vs sample data from production).

Differential Revision: https://reviews.llvm.org/D87813
The file was modifiedllvm/lib/CodeGen/BasicBlockSections.cpp
The file was modifiedllvm/include/llvm/CodeGen/BasicBlockSectionUtils.h
The file was modifiedllvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modifiedllvm/test/CodeGen/X86/basic-block-sections-cold.ll
Commit 1e66e723eb66c19080f259ca7b4c165bfc1f8d08 by ebahapo
[RISCV] Merge the pipeline models for Rocket

Merge the 32 and 64 bit pipeline models for Rocket into a single file.

Differential Revision: https://reviews.llvm.org/D87873
The file was addedllvm/lib/Target/RISCV/RISCVSchedRocket.td
The file was removedllvm/lib/Target/RISCV/RISCVSchedRocket32.td
The file was removedllvm/lib/Target/RISCV/RISCVSchedRocket64.td
The file was modifiedllvm/lib/Target/RISCV/RISCV.td
Commit 43804364e2bc2bd586740dbb0b7aae2137c130cc by Stanislav.Mekhanoshin
[AMDGPU] Fixes typo in the test. NFC.

denormal-fp-math-fp32 -> denormal-fp-math-f32
The file was modifiedllvm/test/CodeGen/AMDGPU/global-atomics-fp.ll
Commit b8a50e920704436ddcbe0cc9d2020935d7e37095 by rnk
[MS] Simplify rules for passing C++ records

Regardless of the target architecture, we should always use the C rules
(RAA_Default) for records that "canBePassedInRegisters". Those are
trivially copyable things, and things marked with [[trivial_abi]].

This should be NFC, although it changes where the final decision about
x86_32 overaligned records is made. The current x86_32 C rules say that
overaligned things are passed indirectly, so there is no functional
difference.
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
The file was modifiedclang/test/CodeGenCXX/inalloca-overaligned.cpp
Commit ecfc9b971269a86b101cddf1fd9f0976be4096d0 by rnk
[MS] For unknown ISAs, pass non-trivially copyable arguments indirectly

Passing them directly is likely to be non-conforming, since it usually
involves copying the bytes of the record. For unknown architectures, we
don't know what MSVC does or will do, but we should at least try to
conform as well as we can.
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
The file was addedclang/test/CodeGenCXX/microsoft-abi-unknown-arch.cpp
Commit bddebca61ea73d45d5eafc38aaf9fe7605f5a9b3 by walter erquinigo
[intel-pt] Refactor the JSON parsing

Recently https://reviews.llvm.org/D88103 introduced a nice API for
converting a JSON object into C++ types, which include nice error
messaging.

I'm using that new functioniality to perform the parsing in a much more
elegant way. As a result, the code looks simpler and more maintainable,
as we aren't parsing anymore individual fields manually.

I updated the test cases accordingly.

Differential Revision: https://reviews.llvm.org/D88264
The file was modifiedlldb/include/lldb/Target/TraceSettingsParser.h
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSettingsParser.h
The file was modifiedlldb/test/API/commands/trace/TestTraceLoad.py
The file was addedlldb/test/API/commands/trace/intelpt-trace/trace_bad5.json
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSettingsParser.cpp
The file was modifiedlldb/source/Target/TraceSettingsParser.cpp
The file was addedlldb/test/API/commands/trace/intelpt-trace/trace_bad4.json
The file was modifiedlldb/source/Target/Trace.cpp
The file was modifiedlldb/include/lldb/Target/Trace.h