[llvm] f7347e9 - [utils] Add a script to update regclass numbers in MIR tests (#142761)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 21 10:47:20 PDT 2025


Author: Jay Foad
Date: 2025-07-21T18:47:16+01:00
New Revision: f7347e9f784860d9482ad8fe757761514cceff31

URL: https://github.com/llvm/llvm-project/commit/f7347e9f784860d9482ad8fe757761514cceff31
DIFF: https://github.com/llvm/llvm-project/commit/f7347e9f784860d9482ad8fe757761514cceff31.diff

LOG: [utils] Add a script to update regclass numbers in MIR tests (#142761)

Added: 
    llvm/utils/update_mir_regclass_numbers

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/utils/update_mir_regclass_numbers b/llvm/utils/update_mir_regclass_numbers
new file mode 100755
index 0000000000000..21a8ae2f7817a
--- /dev/null
+++ b/llvm/utils/update_mir_regclass_numbers
@@ -0,0 +1,27 @@
+#!/bin/sh
+set -e
+
+# Update operands like "1966090 /* regdef:VGPR_32 */" in MIR tests when register
+# class numbers change.
+
+if [ $# -eq 0 ] ; then
+    echo "usage: ${0##*/} /path/to/<Target>GenRegisterInfo.inc test/CodeGen/<Target>/testfile.mir..." >&2
+    exit 1
+fi
+
+reginfo="$1"
+shift
+
+files=$(grep -El ' [0-9]+ /\* [a-z-]+:\w+ \*/' "$@")
+[ "$files" ] || exit 0
+
+grep -Eho ' [0-9]+ /\* [a-z-]+:\w+ \*/' $files | sed -E 's/.*:(\w+).*/\1/' | sort -u | while read -r class ; do
+    id=$(grep -E "^  ${class}RegClassID = " "$reginfo" | sed -E 's/.* = ([0-9]+).*/\1/')
+    if [ "$id" ] ; then
+        echo "$class..."
+        sed -Ei -e 's| [0-9]+ (/\* reguse:'"$class"' \*/)| '"$(((id + 1) << 16 | 9))"' \1|g' \
+            -e 's| [0-9]+ (/\* regdef:'"$class"' \*/)| '"$(((id + 1) << 16 | 10))"' \1|g' \
+            -e 's| [0-9]+ (/\* regdef-ec:'"$class"' \*/)| '"$(((id + 1) << 16 | 11))"' \1|g' \
+            $files
+    fi
+done


        


More information about the llvm-commits mailing list