summaryrefslogtreecommitdiff
path: root/scripts/log_get_last_function.py
blob: 9e21d7cf6f499b367c051ea669b0778f3b2b885b (plain)
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
import argparse
import sys

def main():
    argp = argparse.ArgumentParser()
    argp.add_argument("-o", "--output", type=lambda v: open(v, 'w'), default=sys.stdout)
    argp.add_argument("logfile", type=open)
    argp.add_argument("fcn_name", type=str, nargs='?')
    args = argp.parse_args()

    fcn_lines = []
    found_fcn = False
    for line in args.logfile:
        if 'visit_function: ' in line or 'Trans_Monomorphise_List: ' in line or 'Trans_Codegen: FUNCTION CODE' in line or 'Trans_Codegen- emit_' in line:
            if found_fcn:
                break
            fcn_lines = []
            if args.fcn_name is not None and args.fcn_name in line:
                found_fcn = True
        fcn_lines.append(line.strip())

    for l in fcn_lines:
        args.output.write(l)
        args.output.write("\n")

main()