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