File: gen_mod_ref_test.py

package info (click to toggle)
llvm-toolchain-20 1%3A20.1.8-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 2,111,696 kB
  • sloc: cpp: 7,438,781; ansic: 1,393,871; asm: 1,012,926; python: 241,771; f90: 86,635; objc: 75,411; lisp: 42,144; pascal: 17,286; sh: 8,596; ml: 5,082; perl: 4,730; makefile: 3,591; awk: 3,523; javascript: 2,251; xml: 892; fortran: 672
file content (26 lines) | stat: -rwxr-xr-x 674 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python3

"""
 Add attributes hook in an HLFIR code to test fir.call ModRef effects
 with the test-fir-alias-analysis-modref pass.

 This will insert mod ref test hook:
   - to any fir.call to a function which name starts with "test_effect_"
   - to any hlfir.declare for variable which name starts with "test_var_"
"""

import sys
import re

for line in sys.stdin:
    line = re.sub(
        r"(fir.call @_\w*P)(test_effect_\w*)(\(.*) : ",
        r'\1\2\3 {test.ptr ="\2"} : ',
        line,
    )
    line = re.sub(
        r'(hlfir.declare .*uniq_name =.*E)(test_var_\w*)"',
        r'\1\2", test.ptr ="\2"',
        line,
    )
    sys.stdout.write(line)