1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
From 9be3363c1f9f97627566d88a56e6e612a74691b3 Mon Sep 17 00:00:00 2001
From: Igor Gorban <igor.gorban@intel.com>
Date: Mon, 9 Oct 2023 13:13:57 +0000
Subject: [PATCH] Fix regression in release-build
Thanks @frantisekz for point and triage problem
---
.../lib/GenXCodeGen/GenXSimdCFConformance.cpp | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFConformance.cpp b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFConformance.cpp
index ade15972379d..c5572e758833 100644
--- a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFConformance.cpp
+++ b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFConformance.cpp
@@ -1867,11 +1867,12 @@ void GenXSimdCFConformance::ensureConformance() {
IID != GenXIntrinsic::genx_simdcf_unmask &&
IID != GenXIntrinsic::genx_simdcf_remask) {
EMValsStack.insert(*i);
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
LLVM_DEBUG(if (auto *Inst = dyn_cast<Instruction>(i->getValue())) {
auto FuncName = Inst->getFunction()->getName();
- dbgs() << "Entry EMVals " << FuncName << " - ";
- i->getValue()->dump();
+ dbgs() << "Entry EMVals " << FuncName << " - " << *Inst << "\n";
});
+#endif
}
}
for (auto i = EMVals.begin(), e = EMVals.end(); i != e; ++i) {
@@ -1919,6 +1920,7 @@ void GenXSimdCFConformance::ensureConformance() {
// been identified in the early pass, unless passes in between have
// transformed the code in an unexpected way that has made the simd CF
// non-conformant. Give an error here if this has happened.
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
if (!GotosToLower.empty()) {
dbgs() << "Not empty GotosToLower:";
for (auto *Dump : GotosToLower)
@@ -1929,6 +1931,7 @@ void GenXSimdCFConformance::ensureConformance() {
for (auto *Dump : JoinsToLower)
Dump->dump();
}
+#endif
IGC_ASSERT_EXIT_MESSAGE(
GotosToLower.empty(),
"unexpected non-conformant SIMD CF in late SIMD CF conformance pass");
@@ -2460,9 +2463,9 @@ static bool checkAllUsesAreSelectOrWrRegion(Value *V) {
auto User2 = cast<Instruction>(ui2->getUser());
unsigned OpNum = ui2->getOperandNo();
++ui2;
- LLVM_DEBUG(dbgs() << "checkAllUsesAreSelectOrWrRegion: for user ";
- User2->dump());
-
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
+ LLVM_DEBUG(dbgs() << "checkAllUsesAreSelectOrWrRegion: for user " << *User2 << "\n");
+#endif
if (isa<SelectInst>(User2))
continue;
@@ -3006,12 +3009,14 @@ bool GenXSimdCFConformance::getConnectedVals(
}
} else {
if (!UsersToLower.empty()) {
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
LLVM_DEBUG(dbgs() << "getConnectedVals: find bad users:\n";
for (auto &BadUser
: UsersToLower) {
dbgs() << " ";
BadUser.dump();
});
+#endif
return false;
}
}
|