[squeak-dev] storePop followed by push is inefficient?
Craig Latta
craig at blackpagedigital.com
Mon Jun 6 02:31:44 UTC 2022
Hi--
Apologies if this is obvious, or I misunderstood. I notice many
compiled methods with storePop instructions followed by push
instructions for the same location. E.g., in the Sista version of
Parser>>method:context:
305 <D7> popIntoTemp: 7
306 <47> pushTemp: 7
Aren't those two instructions the same as a single storeTemp
instruction? Even if that optimization were made, would it result in the
same machine code from cogit anyway, and is that why the optimization
isn't made at the Smalltalk compiler level? If so, where in cogit can I
find the optimization? Wouldn't there be less work for cogit to do if it
could expect this optimization from the Smalltalk compiler?
If cogit doesn't make this optimization, would system performance
improve if the Smalltalk compiler did it? I see that well over 10% of
the methods in the upcoming release would be affected. Is there some
reason why doing this optimization isn't a good idea? I'm writing a new
Smalltalk compiler (based on a more straightforward parser) and I'd like
to try this optimization.
thanks!
-C
--
Craig Latta :: research computer scientist
Black Page Digital :: Berkeley, California
663137D7940BF5C0AFC :: 1349FB2ADA32C4D5314CE
More information about the Squeak-dev
mailing list
|