Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Start with the most basic framework for invoking the jump threading pass. |
---|---|
Timelines: | family | ancestors | descendants | both | kbk-jumpthread |
Files: | files | file ages | folders |
SHA3-256: |
6bdc33061b2eb28d1a229d297ac5a085 |
User & Date: | kbk 2018-12-09 21:52:20.085 |
Context
2018-12-10
| ||
01:34 | Calculation of anticipable tests for jump threading check-in: f138663832 user: kbk tags: notworking, kbk-jumpthread | |
2018-12-09
| ||
21:52 | Start with the most basic framework for invoking the jump threading pass. check-in: 6bdc33061b user: kbk tags: kbk-jumpthread | |
20:55 | Open a branch for experiments with more accurate and faster jump threading. check-in: 67902a50a2 user: kbk tags: kbk-jumpthread | |
Changes
Changes to quadcode/specializer.tcl.
︙ | ︙ | |||
1100 1101 1102 1103 1104 1105 1106 | } set inf [dict get $typeInf $instance] my debug-specializer { puts "SPLIT $procName ($argTypeNames):" } | | | 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 | } set inf [dict get $typeInf $instance] my debug-specializer { puts "SPLIT $procName ($argTypeNames):" } if {[$inf jumpthread]} { my AddToWorklist 0 $procName $argTypes } else { my AddToWorklist 3 $procName $argTypes } } # quadcode::specializer method DoneNodeSplitting -- |
︙ | ︙ |
Changes to quadcode/transformer.tcl.
︙ | ︙ | |||
326 327 328 329 330 331 332 | fqcmd varargs deadbb bbidom bblevel rewriteParamChecks narrow | < | 326 327 328 329 330 331 332 333 334 335 336 337 338 339 | fqcmd varargs deadbb bbidom bblevel rewriteParamChecks narrow } { lappend timings $pass [lindex [time [list my $pass]] 0] my debug-audit { my audit-duchain $pass my audit-phis $pass } } |
︙ | ︙ | |||
667 668 669 670 671 672 673 | # TODO: It is very likely that removeCallFrameNop and eliminateCallFrame # can appear much earlier in optimization than this. It might be # profitable to investigate this. oo::define quadcode::transformer method doneWithNodeSplitting {} { foreach pass { | < | 666 667 668 669 670 671 672 673 674 675 676 677 678 679 | # TODO: It is very likely that removeCallFrameNop and eliminateCallFrame # can appear much earlier in optimization than this. It might be # profitable to investigate this. oo::define quadcode::transformer method doneWithNodeSplitting {} { foreach pass { removeCallFrameNop uselessphis eliminateCallFrame } { set cmd [string map [list @pass $pass] { set result [my @pass] }] |
︙ | ︙ | |||
775 776 777 778 779 780 781 782 783 784 | source [file join $quadcode::libdir dbginfo.tcl] source [file join $quadcode::libdir deadcode.tcl] source [file join $quadcode::libdir duchain.tcl] source [file join $quadcode::libdir flatten.tcl] source [file join $quadcode::libdir fqcmd.tcl] source [file join $quadcode::libdir inline.tcl] source [file join $quadcode::libdir invoke.tcl] source [file join $quadcode::libdir liveranges.tcl] source [file join $quadcode::libdir loopinv.tcl] source [file join $quadcode::libdir narrow.tcl] | > < | 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 | source [file join $quadcode::libdir dbginfo.tcl] source [file join $quadcode::libdir deadcode.tcl] source [file join $quadcode::libdir duchain.tcl] source [file join $quadcode::libdir flatten.tcl] source [file join $quadcode::libdir fqcmd.tcl] source [file join $quadcode::libdir inline.tcl] source [file join $quadcode::libdir invoke.tcl] source [file join $quadcode::libdir jumpthread.tcl] source [file join $quadcode::libdir liveranges.tcl] source [file join $quadcode::libdir loopinv.tcl] source [file join $quadcode::libdir narrow.tcl] source [file join $quadcode::libdir pre.tcl] source [file join $quadcode::libdir renameTemps.tcl] source [file join $quadcode::libdir ssa.tcl] source [file join $quadcode::libdir translate.tcl] source [file join $quadcode::libdir typecheck.tcl] source [file join $quadcode::libdir types.tcl] source [file join $quadcode::libdir upvar.tcl] source [file join $quadcode::libdir varargs.tcl] source [file join $quadcode::libdir widen.tcl] #source [file join $quadcode::libdir exists.tcl] #source [file join $quadcode::libdir interval.tcl] |