On Wed, Jun 25, 2014 at 04:02:49PM +0200, Richard Biener wrote:
> >   That might be a consequence of difference in aliasing I wrote about.  I
> > looked at the code generated by LLVM and GCC of an interpreter and saw
> > bigger code generated by GCC too.
> >
> >   A sequence of bytecodes execution and each bytecode checks types of
> > variables (small structure in memory) and set up values and types of results
> > variables.  So GCC was worse to propagate the variable type info (e.g. int)
> > in the bytecode sequence execution where it would be possible and remove
> > unnecessary code (cases where other types, e.g. fp, is processed).  LLVM was
> > more successful with this task.
> 
> Maybe LLVM is just too aggressive here (but is lucky to not miscompile
> this case).

Or just doesn't consider all stores as possibly changing the effective type,
only real placement new and first store to newly allocated heap memory?

Guess it would be nice to try a few simple testcases...

        Jakub

Reply via email to