Check-in [caf952b7b6]

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

Overview
Comment:Add cleanup optimization, the lack of which was causing 'eliminateCallFrame' not to find a fair number of opportunities.
Timelines: family | ancestors | descendants | both | namespace-variables
Files: files | file ages | folders
SHA1: caf952b7b66daa93353843ef19ccb44306324468
User & Date: kbk 2017-09-15 03:10:20.044
Context
2017-09-15
03:36
Make sure that variables that are created in pass-by-name have callframe slots in advance check-in: 46dd653d5e user: kbk tags: namespace-variables
03:12
Merge namespace-variables: more aggressive detection that a proc doesn't touch the callframe at all. check-in: 7a6695ff7e user: kbk tags: trunk
03:10
Add cleanup optimization, the lack of which was causing 'eliminateCallFrame' not to find a fair number of opportunities. check-in: caf952b7b6 user: kbk tags: namespace-variables
01:59
merge trunk check-in: edbdde5e70 user: kbk tags: namespace-variables
Changes
Unified Diff Ignore Whitespace Patch
Changes to quadcode/transformer.tcl.
359
360
361
362
363
364
365

366
367
368
369
370
371
372
    method getFlattenedQuads {} {

	# Remove the split markers that were used to constrain node splitting
	my removeSplitMarkers

	# Remove any callframeNops that remain
	my removeCallFrameNop


	# Remove the callframe usage if possible
	# TODO - Can we do this earlier?
	my eliminateCallFrame

	# Insert instructions to widen types at phis.
	my widen







>







359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
    method getFlattenedQuads {} {

	# Remove the split markers that were used to constrain node splitting
	my removeSplitMarkers

	# Remove any callframeNops that remain
	my removeCallFrameNop
	my uselessphis

	# Remove the callframe usage if possible
	# TODO - Can we do this earlier?
	my eliminateCallFrame

	# Insert instructions to widen types at phis.
	my widen