Tcl Source Code

Check-in [6a87d68046]
Login
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:discouraging the compiler from re-reading *pc in the peephole loop, part2 (any diff?)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | ISC-peephole
Files: files | file ages | folders
SHA1: 6a87d68046140a146917859962c1c8de9fb09c64
User & Date: mig 2013-01-12 10:53:23
Context
2013-01-15
19:35
merge trunk Closed-Leaf check-in: 9842555cd9 user: mig tags: ISC-peephole
2013-01-12
10:53
discouraging the compiler from re-reading *pc in the peephole loop, part2 (any diff?) check-in: 6a87d68046 user: mig tags: ISC-peephole
10:49
discouraging the compiler from re-reading *pc in the peephole loop check-in: aca39f9669 user: mig tags: ISC-peephole
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tclExecute.c.

2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
    }
#endif /* TCL_COMPILE_DEBUG */

    TCL_DTRACE_INST_NEXT();
    
    if (inst == INST_LOAD_SCALAR1) {
	goto instLoadScalar1;
    }

    if (inst == INST_PUSH1) {
	PUSH_OBJECT(codePtr->objArrayPtr[TclGetUInt1AtPtr(pc+1)]);
	TRACE_WITH_OBJ(("%u => ", TclGetInt1AtPtr(pc+1)), OBJ_AT_TOS);
	inst = *(pc += 2);
	goto peepholeStart;
    }

    if (inst == INST_START_CMD) {
	/*
	 * Peephole: do not run INST_START_CMD, just skip it
	 */
	
	iPtr->cmdCount += TclGetUInt4AtPtr(pc+5);
	if (checkInterp) {
	    checkInterp = 0;






<
<
|




<
<
|







2311
2312
2313
2314
2315
2316
2317


2318
2319
2320
2321
2322


2323
2324
2325
2326
2327
2328
2329
2330
    }
#endif /* TCL_COMPILE_DEBUG */

    TCL_DTRACE_INST_NEXT();
    
    if (inst == INST_LOAD_SCALAR1) {
	goto instLoadScalar1;


    } else if (inst == INST_PUSH1) {
	PUSH_OBJECT(codePtr->objArrayPtr[TclGetUInt1AtPtr(pc+1)]);
	TRACE_WITH_OBJ(("%u => ", TclGetInt1AtPtr(pc+1)), OBJ_AT_TOS);
	inst = *(pc += 2);
	goto peepholeStart;


    } else if (inst == INST_START_CMD) {
	/*
	 * Peephole: do not run INST_START_CMD, just skip it
	 */
	
	iPtr->cmdCount += TclGetUInt4AtPtr(pc+5);
	if (checkInterp) {
	    checkInterp = 0;