[webkit-dev] Unnecessary instructions in bytecode

Oliver Hunt oliver at apple.com
Fri May 23 05:05:57 PDT 2008

Hi Gabor,
   Without actually know which instructions you think are unnecessary  
this is difficult to answer, but i'll see if i can guess which you're  
interested in

> 9 instructions; 224 bytes at 0x69ca30; 2 locals (0 parameters); 2  
> temporaries
> [   0] load		 lr6, undefined(@k0)		
> [   3] load		 lr7, undefined(@k0)

Technically we should be able to determine which of these loads are  
actually necessary (eg. neither of them), but we currently don't  
perform any data flow analysis so can't.
> [   6] load		 tr0, undefined(@k0)

> ...
> [  12] mov		 tr0, lr6
> ...
> [  23] mov		 tr0, lr7
> [  26] end		 tr0
These repeated moves into tr0 are to handle the implied return value  
of global (and eval) code.  Once again we should be able to remove  
these, but currently do not perform enough analysis to work that out
> These instructions are unnecessary, aren't they?
> Or is there a technical explanation of them?

Not all of them are necessary, it's just easier for global/eval code  
to be less efficient at the moment -- with sufficient work we could  
get rid of the redundant stores, but currently there are other much  
lower hanging fruit to work on (there are still optimisations that we  
had added to the ast interpreter that aren't in squirrelfish) :D

Hope this helps,

> --Gabor
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.webkit.org/pipermail/webkit-dev/attachments/20080523/4181b365/attachment.htm 

More information about the webkit-dev mailing list