brintos

brintos / llvm-project-archived public Read only

0
0
Text · 928 B · 21a8ae2 Raw
28 lines · plain
1#!/bin/sh2set -e3 4# Update operands like "1966090 /* regdef:VGPR_32 */" in MIR tests when register5# class numbers change.6 7if [ $# -eq 0 ] ; then8    echo "usage: ${0##*/} /path/to/<Target>GenRegisterInfo.inc test/CodeGen/<Target>/testfile.mir..." >&29    exit 110fi11 12reginfo="$1"13shift14 15files=$(grep -El ' [0-9]+ /\* [a-z-]+:\w+ \*/' "$@")16[ "$files" ] || exit 017 18grep -Eho ' [0-9]+ /\* [a-z-]+:\w+ \*/' $files | sed -E 's/.*:(\w+).*/\1/' | sort -u | while read -r class ; do19    id=$(grep -E "^  ${class}RegClassID = " "$reginfo" | sed -E 's/.* = ([0-9]+).*/\1/')20    if [ "$id" ] ; then21        echo "$class..."22        sed -Ei -e 's| [0-9]+ (/\* reguse:'"$class"' \*/)| '"$(((id + 1) << 16 | 9))"' \1|g' \23            -e 's| [0-9]+ (/\* regdef:'"$class"' \*/)| '"$(((id + 1) << 16 | 10))"' \1|g' \24            -e 's| [0-9]+ (/\* regdef-ec:'"$class"' \*/)| '"$(((id + 1) << 16 | 11))"' \1|g' \25            $files26    fi27done28