[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