JVM Language Summit Examples

Curt Albert falbert9 at vt.edu
Thu Dec 12 11:49:50 PST 2013


Thank you for pointing me to the example. I got it working and am now
trying to adapt it to substitute methods for a class of my own. I tried to
import the package containing the class but I don't know where to add it to
the classpath when it compiles. Whenever I compile I keep getting error
package does not exist. Is there something in mx.py that I need to change
to add to the classpath?

Thanks,
Curt Albert


On Wed, Dec 11, 2013 at 1:54 AM, Doug Simon <doug.simon at oracle.com> wrote:

>
> On Dec 11, 2013, at 2:17 AM, Christian Thalinger <
> christian.thalinger at oracle.com> wrote:
>
> > Not everyone has read your paper, Doug ;-)
>
> … which doesn’t even mention this feature ;-)
>
> I was about to add some javadoc to MethodSubstitution but see it’s already
> there:
>
> /**
>  * Denotes a substitute method. A substitute method can call the
> original/substituted method by
>  * making a recursive call to itself.
>  */
> @Retention(RetentionPolicy.RUNTIME)
> @Target(ElementType.METHOD)
> public @interface MethodSubstitution {
>
> -Doug
>
> > On Dec 10, 2013, at 2:14 PM, Doug Simon <doug.simon at oracle.com> wrote:
> >
> >> Yes, it’s certainly looks like a bug doesn’t it!
> >>
> >> However, this is the (not so well documented) mechanism to do a partial
> intrinsification. That is, sometimes (as in this example) you only want to
> optimize for a subset of the potential arguments that can be passed to a
> method. A recursive call in such an intrinsification will be translated as
> a call to the original method.
> >>
> >> -Doug
> >>
> >> On Dec 10, 2013, at 10:53 PM, Doychin Bondzhev <doychin at dsoft-bg.com>
> wrote:
> >>
> >>> Looking at code for pow I think there is something wrong here.
> >>>
> >>> It could be my mistake but this looks like recursive call of pow from
> pow. So in case of x and y not in any of the special cases this will result
> in stack overflow. Probably on the last line of call to pow should be
> Math.pow instead of just pow.
> >>>
> >>>
> >>> On Tue, Dec 10, 2013 at 11:05 PM, Doug Simon <doug.simon at oracle.com>
> wrote:
> >>> Hi Curt,
> >>>
> >>> Have a look at MathSubstitutionsX86.pow(double, double)[1] for an
> example of how intrinsification is done now.
> >>>
> >>> -Doug
> >>>
> >>> [1]
> http://hg.openjdk.java.net/graal/graal/file/4eacfd0767ed/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/MathSubstitutionsX86.java
> >>>
> >>> On Dec 10, 2013, at 8:33 PM, Curt Albert <falbert9 at vt.edu> wrote:
> >>>
> >>>>              I have been trying to look at using graal for compiler
> >>>> optimizations in my java code and found the presentation given at JVM
> >>>> Language Summit 2011. In that presentation there was an example of
> >>>> intrinsificiation called SafeAddNode. I was trying to reproduce this
> >>>> example, but it seems the intrinsification code has moved. Is it still
> >>>> possible to run this same example? If so how?
> >>>>
> >>>>
> >>>>
> >>>> Thanks,
> >>>>
> >>>> Curt Albert
> >>>>
> >>>> Systems Software Research Group
> >>>>
> >>>> Bradley Department of Electrical and Compuer Engineering
> >>>>
> >>>> Virginia Tech
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >
>
>


More information about the graal-dev mailing list