summaryrefslogtreecommitdiff
path: root/scripts/log_get_last_function.py
blob: 3a54d9c566632f8a1018cd38f7135625d1819371 (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
27
28
29
30
31
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 'evaluate_constant: ' 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()