- Pre-inliner emit hoisting added
This commit is contained in:
Tristan B. Velloza Kildaire 2023-08-17 09:02:49 +02:00
parent 7d553518e7
commit 85a0712941
1 changed files with 14 additions and 7 deletions

View File

@ -198,12 +198,6 @@ public final class DCodeEmitter : CodeEmitter
// At any return decrement the depth
scope(exit)
{
if(isStatementLevel(cast(Instruction)instruction))
{
gprintln("Yanked: "~yankPreinline());
}
transformDepth--;
}
@ -461,7 +455,7 @@ public final class DCodeEmitter : CodeEmitter
}
// Tack on the preinline emit at the head
emit = preinlineEmit~emit;
// emit = preinlineEmit~emit;
emmmmit = emit;
}
@ -892,6 +886,19 @@ public final class DCodeEmitter : CodeEmitter
emmmmit = "<TODO: Base emit: "~to!(string)(instruction)~">";
}
if(isStatementLevel(cast(Instruction)instruction))
{
string preinlinerEmmmmit = yankPreinline();
gprintln("Yanked: "~preinlinerEmmmmit);
Context ctx = (cast(Instruction)instruction).getContext();
gprintln("Exiting with Context: "~to!(string)(ctx));
gprintln("Exiting for: "~to!(string)(typeid(instruction)));
emmmmit = preinlinerEmmmmit ~ "\n" ~ emmmmit;
}
return emmmmit;
}