[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-09 Thread Lucas Ramirez via llvm-branch-commits

https://github.com/lucas-rami updated 
https://github.com/llvm/llvm-project/pull/196099

>From b5abaa6a97827f041d493cf33b0ef4e0dbfc52f9 Mon Sep 17 00:00:00 2001
From: Lucas Ramirez 
Date: Wed, 6 May 2026 15:31:12 +
Subject: [PATCH 1/2] [AMDGPU] Fix inconsistencies in RP tracking
 `advance`/`reset` behavior

Some of the variants of `advance` and `reset` in the `GCNRPTracker` and
`GCNDownwardRPTracker` had unclear/inconsistent semantics on their
return value. This aims to clarify that through improved documentation
and light functional changes.

These inconsistencies ultimately triggered an assert in
`GCNRPTaget::saveRP` on a complex kernel during scheduling.
`GCNScheduleDAGMILive::getRealRegPressure` would incorrectly return a
null pressure for a non-empty region which only had debug values. Such
regions can arise if the `PreRARematStage` rematerializes all non-debug
instructions out of their original region, leaving only debug values.
Attempting to rematerialize registers across that same region afterwards
would trigger the assert.
---
 llvm/lib/Target/AMDGPU/GCNRegPressure.cpp | 10 +++--
 llvm/lib/Target/AMDGPU/GCNRegPressure.h   | 28 ++---
 llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp   | 12 --
 .../Target/AMDGPU/GCNRegPressureTest.cpp  | 41 ++-
 4 files changed, 49 insertions(+), 42 deletions(-)

diff --git a/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp 
b/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
index 683e658aa4fb4..9b8e63a39fab8 100644
--- a/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
+++ b/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
@@ -621,13 +621,14 @@ void GCNUpwardRPTracker::recede(const MachineInstr &MI) {
 // GCNDownwardRPTracker
 
 bool GCNDownwardRPTracker::reset(const MachineInstr &MI,
- const LiveRegSet *LiveRegsCopy) {
+ MachineBasicBlock::const_iterator End,
+ const LiveRegSet *LiveRegsCopy) { 

   MRI = &MI.getMF()->getRegInfo();
   LastTrackedMI = nullptr;
   MBBEnd = MI.getParent()->end();
   NextMI = &MI;
-  NextMI = skipDebugInstructionsForward(NextMI, MBBEnd);
-  if (NextMI == MBBEnd)
+  NextMI = skipDebugInstructionsForward(NextMI, End);
+  if (NextMI == End)
 return false;
   GCNRPTracker::reset(*NextMI, LiveRegsCopy, false);
   return true;
@@ -746,7 +747,8 @@ bool 
GCNDownwardRPTracker::advance(MachineBasicBlock::const_iterator End) {
 bool GCNDownwardRPTracker::advance(MachineBasicBlock::const_iterator Begin,
MachineBasicBlock::const_iterator End,
const LiveRegSet *LiveRegsCopy) {
-  reset(*Begin, LiveRegsCopy);
+  if (!reset(*Begin, End, LiveRegsCopy))
+return false;
   return advance(End);
 }
 
diff --git a/llvm/lib/Target/AMDGPU/GCNRegPressure.h 
b/llvm/lib/Target/AMDGPU/GCNRegPressure.h
index 00cb617a55fa7..97d2f5ad59278 100644
--- a/llvm/lib/Target/AMDGPU/GCNRegPressure.h
+++ b/llvm/lib/Target/AMDGPU/GCNRegPressure.h
@@ -428,10 +428,20 @@ class GCNDownwardRPTracker : public GCNRPTracker {
 return Res;
   }
 
-  /// Reset tracker to the point before the \p MI
-  /// filling \p LiveRegs upon this point using LIS.
-  /// \p returns false if block is empty except debug values.
-  bool reset(const MachineInstr &MI, const LiveRegSet *LiveRegs = nullptr);
+  /// Reset tracker to the point before the \p MI filling \p LiveRegs upon this
+  /// point using LIS. \p End must be between the MI and the end of its parent
+  /// block (inclusive). \p returns false if the range [MI, End) is empty 
except
+  /// debug values, in which case the current/maximum pressure are not changed.
+  bool reset(const MachineInstr &MI, MachineBasicBlock::const_iterator End,
+ const LiveRegSet *LiveRegs = nullptr);
+
+  /// Reset tracker to the point before the \p MI filling \p LiveRegs upon this
+  /// point using LIS. \p returns false if there are only debug values between
+  /// \p MI (inclusive) and end of its parent block, in which case the
+  /// current/maximum pressure are not changed.
+  bool reset(const MachineInstr &MI, const LiveRegSet *LiveRegs = nullptr) {
+return reset(MI, MI.getParent()->end(), LiveRegs);
+  }
 
   /// Move to the state right before the next MI or after the end of MBB.
   /// \p returns false if reached end of the block.
@@ -462,10 +472,16 @@ class GCNDownwardRPTracker : public GCNRPTracker {
   /// \p MI and use LIS for RP calculations.
   bool advance(MachineInstr *MI = nullptr, bool UseInternalIterator = true);
 
-  /// Advance instructions until before \p End.
+  /// Advance instructions until before \p End using internal iterators to
+  /// process instructions in program order. Returns whether iterators actually
+  /// had to advance to reach \p End.
   bool advance(MachineBasicBlock::const_iterator End);
 
-  /// Reset to \p Begin and advance to \p End.
+  /// Reset tracker to \p Begin (filling \p LiveReg

[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-09 Thread Lucas Ramirez via llvm-branch-commits

https://github.com/lucas-rami closed 
https://github.com/llvm/llvm-project/pull/196099
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-09 Thread Lucas Ramirez via llvm-branch-commits

lucas-rami wrote:

I have no idea why but this got closed automatically when I landed #196098 (the 
previous PR in the stack).

https://github.com/llvm/llvm-project/pull/196099
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-08 Thread Lucas Ramirez via llvm-branch-commits


@@ -1029,8 +1029,13 @@ GCNScheduleDAGMILive::getRealRegPressure(unsigned 
RegionIdx) const {
   if (Regions[RegionIdx].first == Regions[RegionIdx].second)
 return llvm::getRegPressure(MRI, LiveIns[RegionIdx]);
   GCNDownwardRPTracker RPTracker(*LIS);
-  RPTracker.advance(Regions[RegionIdx].first, Regions[RegionIdx].second,
-&LiveIns[RegionIdx]);
+  if (!RPTracker.advance(Regions[RegionIdx].first, Regions[RegionIdx].second,
+ &LiveIns[RegionIdx])) {
+// Advance can produce false on a non-empty region if all MIs in the region
+// are debug values; in such cases the maintained max pressure is invalid
+// and the only source of pressure are the region's live-ins.

lucas-rami wrote:

It's possible for the RP tracker to compute the correct pressure when a 
`LiveRegSet` is provided to advance/reset, since it can just call 
`llvm::getRegPressure`. When a `LiveRegSet` is not provided however, the 
tracker must look for a `SlotIndex` at which to estimate pressure. When there 
are no non-debug MIs in the block, I don't see a way to derive such an index 
and therefore to compute the correct pressure. It felt weird to me to have this 
dependency on `LiveRegSet` to be able to compute the correct pressure in such 
cases.

https://github.com/llvm/llvm-project/pull/196099
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-08 Thread Lucas Ramirez via llvm-branch-commits


@@ -2025,8 +2030,7 @@ GCNSchedStage::getScheduleMetrics(const 
std::vector &InputSchedule) {
 #ifndef NDEBUG
   LLVM_DEBUG(
   printScheduleModel(ReadyCyclesSorted);
-  dbgs() << "\n\t"
- << "Metric: "
+  dbgs() << "\n\t" << "Metric: "

lucas-rami wrote:

Thanks for the catch, yes this is a spurious whole file clang-format :)

https://github.com/llvm/llvm-project/pull/196099
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-08 Thread Diana Picus via llvm-branch-commits


@@ -119,25 +119,15 @@ body: |
 // which would return false in this case.
 //
 // There aren't any non-debug instruction between the beginning of bb1 and
-// Dbg1 (exclusive). However, the call to reset takes the end of the MBB as
-// the limit, so it pushes the beginning of the block up to %2's def and
-// considers the reset successful.
-EXPECT_TRUE(RPTracker.reset(*MBB1.begin(), &MBB1LiveIns));
-EXPECT_TRUE(RPTrackerNoLiveIns.reset(*MBB1.begin(), nullptr));
-// advance then unnecessarily processes instructions in order until the end
-// of the block, even though it is already past Dbg1. It still returns 
false
-// because it is stopped by the end of block delimiter, not the end
-// iterator.
-EXPECT_FALSE(RPTracker.advance(Dbg1));

rovka wrote:

I think you should still test advance (just change the comment).

https://github.com/llvm/llvm-project/pull/196099
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-08 Thread Diana Picus via llvm-branch-commits


@@ -1029,8 +1029,13 @@ GCNScheduleDAGMILive::getRealRegPressure(unsigned 
RegionIdx) const {
   if (Regions[RegionIdx].first == Regions[RegionIdx].second)
 return llvm::getRegPressure(MRI, LiveIns[RegionIdx]);
   GCNDownwardRPTracker RPTracker(*LIS);
-  RPTracker.advance(Regions[RegionIdx].first, Regions[RegionIdx].second,
-&LiveIns[RegionIdx]);
+  if (!RPTracker.advance(Regions[RegionIdx].first, Regions[RegionIdx].second,
+ &LiveIns[RegionIdx])) {
+// Advance can produce false on a non-empty region if all MIs in the region
+// are debug values; in such cases the maintained max pressure is invalid
+// and the only source of pressure are the region's live-ins.

rovka wrote:

Could we maybe teach it to return the correct pressure instead? Or would that 
be too complicated?

https://github.com/llvm/llvm-project/pull/196099
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-08 Thread Diana Picus via llvm-branch-commits


@@ -2025,8 +2030,7 @@ GCNSchedStage::getScheduleMetrics(const 
std::vector &InputSchedule) {
 #ifndef NDEBUG
   LLVM_DEBUG(
   printScheduleModel(ReadyCyclesSorted);
-  dbgs() << "\n\t"
- << "Metric: "
+  dbgs() << "\n\t" << "Metric: "

rovka wrote:

```suggestion
  dbgs() << "\n\tMetric: "
```

https://github.com/llvm/llvm-project/pull/196099
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-08 Thread Diana Picus via llvm-branch-commits


@@ -2025,8 +2030,7 @@ GCNSchedStage::getScheduleMetrics(const 
std::vector &InputSchedule) {
 #ifndef NDEBUG
   LLVM_DEBUG(
   printScheduleModel(ReadyCyclesSorted);
-  dbgs() << "\n\t"
- << "Metric: "
+  dbgs() << "\n\t" << "Metric: "

rovka wrote:

(Or just remove this change completely, since it's unrelated)

https://github.com/llvm/llvm-project/pull/196099
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-06 Thread via llvm-branch-commits

github-actions[bot] wrote:


# :penguin: Linux x64 Test Results

* 100695 tests passed
* 2217 tests skipped

All executed tests passed, but another part of the build **failed**. Click on a 
failure below to see the details.


unittests/Target/AMDGPU/CMakeFiles/AMDGPUTests.dir/AMDGPUUnitTests.cpp.o

```
FAILED: unittests/Target/AMDGPU/CMakeFiles/AMDGPUTests.dir/AMDGPUUnitTests.cpp.o
sccache /opt/llvm/bin/clang++ -DLLVM_BUILD_STATIC -D_DEBUG 
-D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE 
-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE 
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS 
-I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/unittests/Target/AMDGPU
 
-I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU
 -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include 
-I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include 
-I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Target/AMDGPU
 
-I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/Target/AMDGPU
 
-I/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include
 
-I/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include
 -gmlt -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror 
-Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra 
-Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers 
-pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough 
-Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor 
-Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion 
-Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported 
-fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 
-UNDEBUG -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments 
-fno-exceptions -funwind-tables -fno-rtti -Wno-suggest-override -MD -MT 
unittests/Target/AMDGPU/CMakeFiles/AMDGPUTests.dir/AMDGPUUnitTests.cpp.o -MF 
unittests/Target/AMDGPU/CMakeFiles/AMDGPUTests.dir/AMDGPUUnitTests.cpp.o.d -o 
unittests/Target/AMDGPU/CMakeFiles/AMDGPUTests.dir/AMDGPUUnitTests.cpp.o -c 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.cpp
In file included from 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.cpp:9:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.h:22:33:
 error: no type named 'once_flag' in namespace 'std'; did you mean 
'__once_flag'?
22 | void initializeAMDGPUTargetOnce(std::once_flag &Flag);
| ^~
| __once_flag
/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:111:3: note: 
'__once_flag' declared here
111 | } __once_flag;
|   ^
In file included from 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.cpp:9:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.h:27:17:
 error: use of undeclared identifier 'Module'
27 | std::unique_ptr parseMIR(LLVMContext &Context, const TargetMachine 
&TM,
| ^~
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.h:27:34:
 error: unknown type name 'LLVMContext'
27 | std::unique_ptr parseMIR(LLVMContext &Context, const TargetMachine 
&TM,
|  ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.h:27:62:
 error: unknown type name 'TargetMachine'; did you mean 'GCNTargetMachine'?
27 | std::unique_ptr parseMIR(LLVMContext &Context, const TargetMachine 
&TM,
|  ^
|  GCNTargetMachine
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.h:17:7:
 note: 'GCNTargetMachine' declared here
17 | class GCNTargetMachine;
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.h:28:53:
 error: unknown type name 'MachineModuleInfo'
28 |  StringRef MIRCode, MachineModuleInfo 
&MMI);
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.cpp:30:12:
 error: out-of-line definition of 'initializeAMDGPUTargetOnce' does not match 
any declaration in namespace 'llvm'
30 | void llvm::initializeAMDGPUTargetOnce(std::once_flag& Flag) {
|^~
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/Target/AMDGPU/AMDGPUU

[llvm-branch-commits] [llvm] [AMDGPU] Fix inconsistencies in RP tracking `advance`/`reset` behavior (PR #196099)

2026-05-06 Thread via llvm-branch-commits

github-actions[bot] wrote:


# :window: Windows x64 Test Results

* 61771 tests passed
* 1666 tests skipped

All executed tests passed, but another part of the build **failed**. Click on a 
failure below to see the details.


[code=1] 
unittests/Target/AMDGPU/CMakeFiles/AMDGPUTests.dir/AMDGPUUnitTests.cpp.obj

```
FAILED: [code=1] 
unittests/Target/AMDGPU/CMakeFiles/AMDGPUTests.dir/AMDGPUUnitTests.cpp.obj
sccache C:\clang\clang-msvc\bin\clang-cl.exe  /nologo -TP -DLLVM_BUILD_STATIC 
-DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS 
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS 
-D_HAS_EXCEPTIONS=0 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE 
-D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE 
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS 
-IC:\_work\llvm-project\llvm-project\build\unittests\Target\AMDGPU 
-IC:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU 
-IC:\_work\llvm-project\llvm-project\build\include 
-IC:\_work\llvm-project\llvm-project\llvm\include 
-IC:\_work\llvm-project\llvm-project\llvm\lib\Target\AMDGPU 
-IC:\_work\llvm-project\llvm-project\build\lib\Target\AMDGPU 
-IC:\_work\llvm-project\llvm-project\third-party\unittest\googletest\include 
-IC:\_work\llvm-project\llvm-project\third-party\unittest\googlemock\include 
/DWIN32 /D_WINDOWS   /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj 
/permissive- -Werror=unguarded-availability-new /W4  -Wextra 
-Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers 
-Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type 
-Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override 
-Wstring-conversion -Wno-pass-failed -Wmisleading-indentation 
-Wctad-maybe-unsupported /Gw /O2 /Ob2  -std:c++17 -MD -UNDEBUG 
-Wno-gnu-zero-variadic-macro-arguments /EHs-c- /GR- -Wno-suggest-override 
/showIncludes 
/Founittests\Target\AMDGPU\CMakeFiles\AMDGPUTests.dir\AMDGPUUnitTests.cpp.obj 
/Fdunittests\Target\AMDGPU\CMakeFiles\AMDGPUTests.dir\ -c -- 
C:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU\AMDGPUUnitTests.cpp
In file included from 
C:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU\AMDGPUUnitTests.cpp:9:
C:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU\AMDGPUUnitTests.h(22,38):
 error: no type named 'once_flag' in namespace 'std'
22 | void initializeAMDGPUTargetOnce(std::once_flag &Flag);
| ~^
C:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU\AMDGPUUnitTests.h(27,17):
 error: use of undeclared identifier 'Module'
27 | std::unique_ptr parseMIR(LLVMContext &Context, const TargetMachine 
&TM,
| ^~
C:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU\AMDGPUUnitTests.h(27,34):
 error: unknown type name 'LLVMContext'
27 | std::unique_ptr parseMIR(LLVMContext &Context, const TargetMachine 
&TM,
|  ^
C:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU\AMDGPUUnitTests.h(27,62):
 error: unknown type name 'TargetMachine'; did you mean 'GCNTargetMachine'?
27 | std::unique_ptr parseMIR(LLVMContext &Context, const TargetMachine 
&TM,
|  ^
|  GCNTargetMachine
C:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU\AMDGPUUnitTests.h(17,7):
 note: 'GCNTargetMachine' declared here
17 | class GCNTargetMachine;
|   ^
C:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU\AMDGPUUnitTests.h(28,53):
 error: unknown type name 'MachineModuleInfo'
28 |  StringRef MIRCode, MachineModuleInfo 
&MMI);
| ^
C:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU\AMDGPUUnitTests.cpp(30,12):
 error: out-of-line definition of 'initializeAMDGPUTargetOnce' does not match 
any declaration in namespace 'llvm'
30 | void llvm::initializeAMDGPUTargetOnce(std::once_flag& Flag) {
|^~
C:\_work\llvm-project\llvm-project\llvm\unittests\Target\AMDGPU\AMDGPUUnitTests.cpp(50,31):
 error: out-of-line definition of 'parseMIR' does not match any declaration in 
namespace 'llvm'
50 | std::unique_ptr llvm::parseMIR(LLVMContext &Context,
|   ^~~~
7 errors generated.
```


If these failures are unrelated to your changes (for example tests are broken 
or flaky at HEAD), please open an issue at 
https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/196099
___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits