[Vm-dev] inlining constant with branch elimination is aggressive

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Sat Oct 24 00:09:34 UTC 2015


Example in shortPrintContext:

(self isMachineCodeFrame: (theFP := self frameOfMarriedContext: aContext))
                            ifTrue: [self print: ' M (']
                            ifFalse: [self print: ' I ('].
                         self printHex: theFP asUnsignedInteger; print: ') '

in a stack vm, isMachineCodeFrame: is unconditionnally false, so theFP
never gets a chance to be initialized...

It's potentially dagerous... Either we change the generator to generate the
side effects, or we manually change the code.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20151024/f237fb45/attachment.htm


More information about the Vm-dev mailing list