[llvm] da59873 - [MetaRenamer] Rename only unnamed instructions in mode renaming instructions
Anna Thomas via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 4 08:12:13 PDT 2023
Author: Anna Thomas
Date: 2023-07-04T11:11:14-04:00
New Revision: da598733544a4e299aebb3552a2c83f680cbd42d
URL: https://github.com/llvm/llvm-project/commit/da598733544a4e299aebb3552a2c83f680cbd42d
DIFF: https://github.com/llvm/llvm-project/commit/da598733544a4e299aebb3552a2c83f680cbd42d.diff
LOG: [MetaRenamer] Rename only unnamed instructions in mode renaming instructions
6f9e743b91ad6ac1f333c introduced a mode which renames only instructions in
the function. This change updates that mode to skip instructions that are already named.
This serves the original purpose of the mode (rename-only-inst) which is:
1. Modify IR without failing verifier with serially ordered number
requirement (%1, %2, %3 required in order).
2. Give meaningful names to instructions.
Added:
Modified:
llvm/lib/Transforms/Utils/MetaRenamer.cpp
llvm/test/Transforms/MetaRenamer/only-inst.ll
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Utils/MetaRenamer.cpp b/llvm/lib/Transforms/Utils/MetaRenamer.cpp
index 4053e78c604e64..44ac65f265f0a2 100644
--- a/llvm/lib/Transforms/Utils/MetaRenamer.cpp
+++ b/llvm/lib/Transforms/Utils/MetaRenamer.cpp
@@ -110,7 +110,7 @@ parseExcludedPrefixes(StringRef PrefixesStr,
void MetaRenameOnlyInstructions(Function &F) {
for (auto &I : instructions(F))
- if (!I.getType()->isVoidTy())
+ if (!I.getType()->isVoidTy() && I.getName().empty())
I.setName(I.getOpcodeName());
}
diff --git a/llvm/test/Transforms/MetaRenamer/only-inst.ll b/llvm/test/Transforms/MetaRenamer/only-inst.ll
index 8df7e1a0bc5db4..f13371519682ff 100644
--- a/llvm/test/Transforms/MetaRenamer/only-inst.ll
+++ b/llvm/test/Transforms/MetaRenamer/only-inst.ll
@@ -14,6 +14,7 @@ target triple = "x86_64-pc-linux-gnu"
; CHECK-NOT: %2
; CHECK-NOT: %3
; CHECK-NOT: %4
+; CHECK: %.int_arg = call i64 @len()
define void @func_4_xxx(ptr sret(%struct.foo_xxx) %agg.result) nounwind uwtable ssp {
%1 = alloca %struct.foo_xxx, align 8
store i32 1, ptr %1, align 4
@@ -23,8 +24,10 @@ define void @func_4_xxx(ptr sret(%struct.foo_xxx) %agg.result) nounwind uwtable
store i32 3, ptr %3, align 4
%4 = getelementptr inbounds %struct.bar_xxx, ptr %3, i32 0, i32 1
store double 4.000000e+00, ptr %4, align 8
- call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.result, ptr align 8 %1, i64 24, i1 false)
+ %.int_arg = call i64 @len()
+ call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.result, ptr align 8 %1, i64 %.int_arg, i1 false)
ret void
}
+declare i64 @len()
declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1) nounwind
More information about the llvm-commits
mailing list