Truffle compilation problem

Chris Seaton chris at chrisseaton.com
Wed May 28 07:59:20 UTC 2014


You're calling HashMap containsKey - can you try wrapping that call in
SlowPath?

I've had trouble in the past compiling some of the hash map methods. I put
them all under SlowPath at the moment - also because they're generally very
big to inline each time.

Chris

On Wednesday, 28 May 2014, Michael Haupt <michael.haupt at oracle.com> wrote:

> Hi,
>
> in FastR, we're facing the problem shown below. The stack trace doesn't
> give away a particular location in the FastR sources - we're nevertheless
> looking at uses of HashMap. Still, it is somewhat odd that the trace ends
> with an R function (usually we were given traces that ended up somewhere in
> FastR node classes, which made it much easier to track the issue down).
>
> Best,
>
> Michael
>
>
>
> Exception occurred in scope:
> Truffle.CreateGraph.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.TruffleCache.InterceptException
>                                                        Context obj
> com.oracle.graal.nodes.util.GraphUtil$2: Found illegal recursive call to
> HotSpotMethod<SignatureParser.parseFieldTypeSignature()>, must annotate
> such calls with @CompilerDirectives.SlowPath!
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<SignatureParser.parseTypeSignature()>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<SignatureParser.parseArrayTypeSignature()>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<SignatureParser.parseFieldTypeSignature(boolean)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<SignatureParser.parseFieldTypeSignature()>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<SignatureParser.parseBounds()>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<SignatureParser.parseFormalTypeParameter()>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<SignatureParser.parseFormalTypeParameters()>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<SignatureParser.parseZeroOrMoreFormalTypeParameters()>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<SignatureParser.parseClassSignature()>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<SignatureParser.parseClassSig(String)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<ClassRepository.parse(String)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<ClassRepository.parse(String)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<AbstractRepository.<init>(String, GenericsFactory)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<GenericDeclRepository.<init>(String, GenericsFactory)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<ClassRepository.<init>(String, GenericsFactory)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<ClassRepository.make(String, GenericsFactory)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<Class.getGenericInfo()>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<Class.getGenericInterfaces()>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<HashMap.comparableClassFor(Object)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<HashMap$TreeNode.find(int, Object, Class)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<HashMap$TreeNode.getTreeNode(int, Object)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<HashMap.getNode(int, Object)>
>                                                        Context obj
> com.oracle.graal.hotspot.meta.HotSpotMetaAccessProvider at 3a708380
>                                                        Context obj
> HotSpotMethod<HashMap.containsKey(Object)>
>                                                        Context obj
> StructuredGraph:43{function(g1, g2, op = euclidean)
> {
> ans <- matrix(0, HotSpotMethod<OptimizedCallTarget.callRoot(Object[])>}
>                                                        Use -G:+DumpOnError
> to enable dumping of graphs on this error
>                                                        Context obj
> Truffle<function(g1,_g2,_op_=_euclidean)
> {
> ans_<-_matrix(0()>
> [truffle] opt fail         function(g1, g2, op = euclidean)
> {
> ans <- matrix(0          |Reason Found illegal recursive call to
> HotSpotMethod<SignatureParser.parseFieldTypeSignature()>, must annotate
> such calls with @CompilerDirectives.SlowPath!
>
>
>
> --
>
>
> Dr. Michael Haupt | Principal Member of Technical Staff
> Phone: +49 331 200 7277 | Fax: +49 331 200 7561
> Oracle Labs
> Oracle Deutschland B.V. & Co. KG, Schiffbauergasse 14 | 14467 Potsdam,
> Germany
>         Oracle is committed to developing practices and products that help
> protect the environment
>
>


More information about the graal-dev mailing list