From: Filip P. <pi...@pu...> - 2011-02-02 21:33:38
|
The main problem with using @Uninterruptible is that it generally precludes you from using things like synchronized (monitorenter/monitorexit), any kind of object allocation, and a large subset of other VM services as well as libraries. I'm not aware of any other built-in pragmas that would give you what you want. My gut feeling is that if you wanted to make such a pragma, you should focus on two things: 1) reducing prologue/epilogue overhead, which should be possible if at the time that the code for the method is generated you know exactly which thread it will execute in. 2) gaining one extra register. we currently pin one register to always point to the RVMThread. if you know at code generation time which RVMThread the method will execute in, then it could use that register for other purposes. All of this runs into danger whenever your single-threaded method calls into a method that isn't single-threaded. So the profitability of these optimizations is predicated on the frequency calls to non-single-threaded methods. -F On 2/2/2011 12:42 PM, Christoph Angerer wrote: > Hi, > > I'm pretty new to Jikes RVM so forgive me if not everything makes sense:) > > I have a bunch of methods of which I *know* that they will be only executed by one thread at a time. What I want to do is to optimize them as much as possible (allowing code motion around volatile variables, reducing overhead in method prologues/epilogues etc). My question is essentially: is there an easy way to allow those optimizations on a set of known methods? > > I saw the @Uninterruptible pragma which seems to be at least close to what I need. Can I simply put @Uninterruptible to my user-code methods? And does this pragma (possibly) result in a better optimization? Am I destroying all kinds of things then (like races with the GC)? If @Uninterruptible should not be used for user-code, is there any other built-in flag/optimization-level that would make the compiler produce better code for single-threaded methods? > > Thanks so much in advance, > Christoph > > > ------------------------------------------------------------------------------ > Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > Finally, a world-class log management solution at an even better price-free! > Download using promo code Free_Logger_4_Dev2Dev. Offer expires > February 28th, so secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsight-sfd2d > > > _______________________________________________ > Jikesrvm-researchers mailing list > Jik...@li... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |