[llvm] b17f036 - [Hexagon] Consider HVX reg aliases for .cur warning
Krzysztof Parzyszek via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 6 09:06:30 PST 2022
Author: Brian Cain
Date: 2022-01-06T08:59:08-08:00
New Revision: b17f036a99eba19194b81a6d56e7f08fa5e0e92c
URL: https://github.com/llvm/llvm-project/commit/b17f036a99eba19194b81a6d56e7f08fa5e0e92c
DIFF: https://github.com/llvm/llvm-project/commit/b17f036a99eba19194b81a6d56e7f08fa5e0e92c.diff
LOG: [Hexagon] Consider HVX reg aliases for .cur warning
Added:
llvm/test/MC/Hexagon/hvx_cur_alias.s
Modified:
llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp
index 5f094dfeb95c9..0d43de140ca94 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp
+++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp
@@ -597,9 +597,15 @@ void HexagonMCChecker::checkRegisterCurDefs() {
for (auto const &I : HexagonMCInstrInfo::bundleInstructions(MCII, MCB)) {
if (HexagonMCInstrInfo::isCVINew(MCII, I) &&
HexagonMCInstrInfo::getDesc(MCII, I).mayLoad()) {
- unsigned Register = I.getOperand(0).getReg();
- if (!registerUsed(Register))
- reportWarning("Register `" + Twine(RI.getName(Register)) +
+ const unsigned RegDef = I.getOperand(0).getReg();
+
+ bool HasRegDefUse = false;
+ for (MCRegAliasIterator Alias(RegDef, &RI, true); Alias.isValid();
+ ++Alias)
+ HasRegDefUse = HasRegDefUse || registerUsed(*Alias);
+
+ if (!HasRegDefUse)
+ reportWarning("Register `" + Twine(RI.getName(RegDef)) +
"' used with `.cur' "
"but not used in the same packet");
}
diff --git a/llvm/test/MC/Hexagon/hvx_cur_alias.s b/llvm/test/MC/Hexagon/hvx_cur_alias.s
new file mode 100644
index 0000000000000..ed16659d4522f
--- /dev/null
+++ b/llvm/test/MC/Hexagon/hvx_cur_alias.s
@@ -0,0 +1,9 @@
+# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv60 -mhvx -filetype=obj %s 2>&1 | llvm-objdump --mattr=+hvx -d - | FileCheck %s
+
+{ v2.cur = vmem(r11++m0)
+ v5:4.h = vmpa(v3:2.ub,v5:4.ub)
+}
+
+# CHECK-NOT: warning: register `{{.+}}' used with `.cur' but not used in the same packet
+# CHECK: vmpa
+# CHECK: vmem
More information about the llvm-commits
mailing list