Attached is callgrind output from trying to compile rakudo with this patch.
As you can see, the most-called functions by far are:
/home/sweeks/src/parrot/compilers/imcc/sets.c:set_add
/home/sweeks/src/parrot/compilers/imcc/cfg.c:compute_dominance_frontiers
--------------------------------------------------------------------------------
Profile data file 'callgrind.out.10513' (creator: callgrind-3.3.0)
--------------------------------------------------------------------------------
I1 cache:
D1 cache:
L2 cache:
Timerange: Basic block 0 - 2411000000
Trigger: Program termination
Profiled target: ../../parrot -o perl6.pbc perl6.pir (PID 10513, part 1)
Events recorded: Ir
Events shown: Ir
Event sort order: Ir
Thresholds: 99
Include dirs:
User annotated:
Auto-annotation: off
--------------------------------------------------------------------------------
Ir
--------------------------------------------------------------------------------
25,725,945,395 PROGRAM TOTALS
--------------------------------------------------------------------------------
Ir file:function
--------------------------------------------------------------------------------
13,455,028,108 /home/sweeks/src/parrot/compilers/imcc/sets.c:set_add
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
11,209,537,812
/home/sweeks/src/parrot/compilers/imcc/cfg.c:compute_dominance_frontiers
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
135,234,114 /home/sweeks/src/parrot/compilers/imcc/imclexer.c:yylex
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
128,962,606 /home/sweeks/src/parrot/compilers/imcc/sets.c:set_contains
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
88,825,729 /home/sweeks/src/parrot/compilers/imcc/imcparser.c:yyparse
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
70,349,560
/home/sweeks/src/parrot/compilers/imcc/instructions.c:instruction_reads
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
65,814,257 /home/sweeks/src/parrot/compilers/imcc/cfg.c:compute_dominators
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
56,483,518
/home/sweeks/src/parrot/compilers/imcc/instructions.c:instruction_writes
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
48,013,979 ???:_int_malloc [/lib64/libc-2.8.so]
46,419,350 /home/sweeks/src/parrot/compilers/imcc/pbc.c:constant_folding
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
33,201,086
/home/sweeks/src/parrot/compilers/imcc/sets.c:set_intersec_inplace
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
29,624,696 /home/sweeks/src/parrot/compilers/imcc/symreg.c:hash_str
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
20,719,320 ???:calloc [/lib64/ld-2.8.so]
18,291,953 /home/sweeks/src/parrot/compilers/imcc/cfg.c:bb_check_set_addr
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
17,404,418
/home/sweeks/src/parrot/compilers/imcc/reg_alloc.c:compute_one_du_chain
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
13,809,278 /home/sweeks/src/parrot/compilers/imcc/imcc.l:yylex
12,337,246 /home/sweeks/src/parrot/src/ops/core_ops.c:hash_str
[/home/sweeks/src/parrot/blib/lib/libparrot.so.0.7.1]
12,162,840 ???:memcpy [/lib64/ld-2.8.so]
11,450,969 ???:strcmp'2 [/lib64/ld-2.8.so]