[Vm-dev] Interpreter>>isContextHeader: optimization
David T. Lewis
lewis at mail.msen.com
Mon Feb 23 12:43:53 UTC 2009
On Mon, Feb 23, 2009 at 08:28:14AM +0200, Igor Stasenko wrote:
>
> Some more observations:
>
> #include <stdio.h>
>
> int main(int argc , char** argv)
> {
> int i;
>
> i = 1;
> i = ({ int y=i; int i=6; printf("foo"); 10+y+i; });
> printf("%d", i);
>
> }
>
> prints:
> foo17
>
> so, to generate a proper inlined code, we should care only about name clashing
> for method arguments.
> In above code, suppose 'y' is an argument var,
> and 'i', declared in inner scope - a temporary var.
There is a bug in the inliner that produces name clashes like this. The fix is
in http://bugs.squeak.org/view.php?id=7155
Related issues:
Mantis 0007183: Various Slang problems masked by CPP macros.
Mantis 0007189: CCodeGenerator>>doInlining: fix.
Mantis 0007186: Interpreter>>loadFloatOrIntFrom: inlining broken.
Mantis 0007155: Bug in TMethod>>renameVariablesUsing:
Mantis 0007154: Interpreter main loop case generation fix.
Dave
More information about the Vm-dev
mailing list