comparison src/especialize.sml @ 520:3f20c22098af

Untangle and shake within Especialize loop
author Adam Chlipala <adamc@hcoop.net>
date Thu, 27 Nov 2008 12:04:54 -0500
parents 5521bb0b4014
children 31aba58a5b5b
comparison
equal deleted inserted replaced
519:23a88d81a1b5 520:3f20c22098af
347 end 347 end
348 348
349 fun specialize file = 349 fun specialize file =
350 let 350 let
351 (*val () = Print.prefaces "Intermediate" [("file", CorePrint.p_file CoreEnv.empty file)];*) 351 (*val () = Print.prefaces "Intermediate" [("file", CorePrint.p_file CoreEnv.empty file)];*)
352 val file = ReduceLocal.reduce file 352 (*val file = ReduceLocal.reduce file*)
353 val (changed, file) = specialize' file 353 val (changed, file) = specialize' file
354 val file = ReduceLocal.reduce file 354 (*val file = ReduceLocal.reduce file
355 (*val file = CoreUntangle.untangle file 355 val file = CoreUntangle.untangle file
356 val file = Shake.shake file*) 356 val file = Shake.shake file*)
357 in 357 in
358 (*print "Round over\n";*) 358 (*print "Round over\n";*)
359 if changed then 359 if changed then
360 specialize file 360 let
361 val file = ReduceLocal.reduce file
362 val file = CoreUntangle.untangle file
363 val file = Shake.shake file
364 in
365 (*print "Again!\n";*)
366 specialize file
367 end
361 else 368 else
362 file 369 file
363 end 370 end
364 371
365 end 372 end