Unfolding Function Calls
Pt04
After
ConstantRecordPropagation and
CopyPropagation, the next step is to unfold function calls, in order to propagate constants inside the bodies of functions as well. For this purpose the
CopyPropagation transformation should be extended along the way of the function inliner described in the
chapter on dynamic rules. This requires
declaring dynamic inlining rules at the declaration site of functions, and
applying these rules at
the call sites. Extend the
CopyPropagation traversal appropriately.
What criteria do you apply to decide whether to unfold a call or not? Given these criteria can you guarantee that the partial evaluator always
terminates, or that it evaluates as much as possible?
--
EelcoVisser - 11 Feb 2003
Testsuite
--
MartinBravenboer - 23 Feb 2003