Hi Douglas,

Sorry I forgot to reply to this last week. There's definitely a few
research projects we'd be interested in. If you have any of your own,
please bring them up too, I'd be glad to hear them.

 (1) Escape analysis. We don't have any data yet on where this could
help in benchmarks, but even getting the data would be very useful. The
goal would be to avoid unnecessary heap allocations, for example take
this contrived benchmark:

   function Vector(x, y) {
       this.x = x;
       thix.y = y;
   }
   function length(v) {
       return Math.sqrt(v.x * v.x + v.y * v.y);
   }
   for (var i = 0; i < 10000000; i++)
       length(new Vector(0, i));

   If we inline the calls to |new Vector| and |length|, escape analysis
could transform it to:

   for (var i = 0; i < 10000000; i+=+)
       Math.sqrt(0 * 0 + i * i);

 (2) Better alias analysis. Right now,
    v.y = 5;
    return v.x + v.y + v.z;

    Right now the store to |v.y| aliases |v.x| and |v.z|, even though it
is impossible for these properties to overlap. This could be preventing
code elimination or hoisting.

 (3) Register allocator improvements. Writing a full new register
allocator is a big task, but there may be changes to how and where we
spill that could benefit the existing allocator.

 (4) Control-flow elimination. Right now we can eliminate individual
instructions, but if we determine that a branch is always-taken, we
can't delete blocks from the CFG. If we had that, we could then start
performing additional experiments, like: if we profile that a block is
rarely taken, we could eagerly guard and eliminate it, and maybe improve
register allocation.

-David


On 11/08/2012 03:37 PM, Douglas do Couto Teixeira wrote:
> Hi, guys,
> 
> I'm a fourth year Computer Science undergraduate student in Brazil.
> I'm looking for possible research projects using IonMonkey, to do
> during my MsC, which I have plans to start in the beginning of the
> next year.
> 
> I've worked with compilers before (I worked with LLVM for more than a
> year), but I'm new to IonMonkey's code base. I was wondering if you
> guys could give some directions of what need to be done and what
> possible research projects could arise from that.
> 
> Thanks in advance,
> Douglas Teixeira
> _______________________________________________
> dev-tech-js-engine-internals mailing list
> dev-tech-js-engine-internals@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
> 

_______________________________________________
dev-tech-js-engine-internals mailing list
dev-tech-js-engine-internals@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to