Check-in [94358b53ea]
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:result, returnCode, returnOptions must be split into FAIL and non-FAIL paths because the backend isn't prepared to deal with all combinations of FAIL + someOtherType.
Timelines: family | ancestors | descendants | both | kbk-jumpthread
Files: files | file ages | folders
SHA3-256: 94358b53eab4a0250aaba24cb7878e08c7618d9a6d84d7d488f9385642457b0d
User & Date: kbk 2018-12-17 23:13:20
Context
2018-12-17
23:19
Integrate kbk-jumpthread: replace the node-by-node splitting with a single pass that identifies many threading opportunities and also reduces the number of splits. Eliminate the old nodesplit pass, and the renameTemps pass, which is no longer required. check-in: a934a75e1f user: kbk tags: trunk
23:13
result, returnCode, returnOptions must be split into FAIL and non-FAIL paths because the backend isn't prepared to deal with all combinations of FAIL + someOtherType. Closed-Leaf check-in: 94358b53ea user: kbk tags: kbk-jumpthread
22:08
Finish jump threading - actually do the block duplication and redirection of jumps. Add the logic for SSA deconstruction (required by jump threading) and make SSA construction work with the deconstructed result. check-in: a41b93130e user: kbk tags: notworking, kbk-jumpthread
Changes

Changes to quadcode/jumpthread.tcl.

108
109
110
111
112
113
114









115
116
117
118
119
120
121
        dict set jt_removable "jumpTrue" \
            [dict get $jt_removable "jumpFalse"]

        dict set jt_removable "purify" \
            [list [list isnot $IMPURE]]










        rename init {}
    }

    init
}
 
# quadcode::transformer method jumpthread --






>
>
>
>
>
>
>
>
>







108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
        dict set jt_removable "jumpTrue" \
            [dict get $jt_removable "jumpFalse"]

        dict set jt_removable "purify" \
            [list [list isnot $IMPURE]]

        dict set jt_removable "result" \
            [list [list is $FAIL] [list isnot $FAIL]]

        dict set jt_removable "returnCode" \
            [list [list is $FAIL] [list isnot $FAIL]]

        dict set jt_removable "returnOptions" \
            [list [list is $FAIL] [list isnot $FAIL]]

        rename init {}
    }

    init
}
 
# quadcode::transformer method jumpthread --