abstract class com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode extends com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode
  super_class: com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode this
         0: .line 89
            aload 0 /* this */
            invokespecial com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode.<init>:()V
            return
        end local 0 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeWrapper$CallbackHelperNode;

  abstract java.lang.Object execute(com.oracle.truffle.llvm.runtime.LLVMFunction, com.oracle.truffle.llvm.runtime.LLVMFunctionCode, java.lang.Object[]);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMFunction;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      function  
      code      
      args      

  java.lang.Object doCached(com.oracle.truffle.llvm.runtime.LLVMFunction, com.oracle.truffle.llvm.runtime.LLVMFunctionCode, java.lang.Object[], com.oracle.truffle.llvm.runtime.LLVMFunction, com.oracle.truffle.llvm.runtime.LLVMFunctionCode, com.oracle.truffle.llvm.runtime.LLVMGetStackFromThreadNode, com.oracle.truffle.llvm.runtime.LLVMContext, com.oracle.truffle.api.nodes.DirectCallNode, com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode[], com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMFunction;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;[Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/LLVMFunction;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;Lcom/oracle/truffle/llvm/runtime/LLVMGetStackFromThreadNode;Lcom/oracle/truffle/llvm/runtime/LLVMContext;Lcom/oracle/truffle/api/nodes/DirectCallNode;[Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeConvertNode;Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeConvertNode;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=3, locals=14, args_size=11
        start local 0 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode this
        start local 1 // com.oracle.truffle.llvm.runtime.LLVMFunction function
        start local 2 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode code
        start local 3 // java.lang.Object[] args
        start local 4 // com.oracle.truffle.llvm.runtime.LLVMFunction cachedFunction
        start local 5 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode cachedCode
        start local 6 // com.oracle.truffle.llvm.runtime.LLVMGetStackFromThreadNode getStack
        start local 7 // com.oracle.truffle.llvm.runtime.LLVMContext ctx
        start local 8 // com.oracle.truffle.api.nodes.DirectCallNode call
        start local 9 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode[] convertArgs
        start local 10 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode convertRet
         0: .line 102
            aload 6 /* getStack */
            aload 7 /* ctx */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMContext.getThreadingStack:()Lcom/oracle/truffle/llvm/runtime/memory/LLVMThreadingStack;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMGetStackFromThreadNode.executeWithTarget:(Lcom/oracle/truffle/llvm/runtime/memory/LLVMThreadingStack;Ljava/lang/Thread;)Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack;
            astore 11 /* stack */
        start local 11 // com.oracle.truffle.llvm.runtime.memory.LLVMStack stack
         1: .line 103
            aload 11 /* stack */
            aload 3 /* args */
            aload 9 /* convertArgs */
            invokestatic com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode.prepareCallbackArguments:(Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack;[Ljava/lang/Object;[Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeConvertNode;)[Ljava/lang/Object;
            astore 12 /* preparedArgs */
        start local 12 // java.lang.Object[] preparedArgs
         2: .line 104
            aload 8 /* call */
            aload 12 /* preparedArgs */
            invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 13 /* ret */
        start local 13 // java.lang.Object ret
         3: .line 105
            aload 10 /* convertRet */
            aload 13 /* ret */
            invokevirtual com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode.executeConvert:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 13 // java.lang.Object ret
        end local 12 // java.lang.Object[] preparedArgs
        end local 11 // com.oracle.truffle.llvm.runtime.memory.LLVMStack stack
        end local 10 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode convertRet
        end local 9 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode[] convertArgs
        end local 8 // com.oracle.truffle.api.nodes.DirectCallNode call
        end local 7 // com.oracle.truffle.llvm.runtime.LLVMContext ctx
        end local 6 // com.oracle.truffle.llvm.runtime.LLVMGetStackFromThreadNode getStack
        end local 5 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode cachedCode
        end local 4 // com.oracle.truffle.llvm.runtime.LLVMFunction cachedFunction
        end local 3 // java.lang.Object[] args
        end local 2 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode code
        end local 1 // com.oracle.truffle.llvm.runtime.LLVMFunction function
        end local 0 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeWrapper$CallbackHelperNode;
            0    4     1        function  Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
            0    4     2            code  Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;
            0    4     3            args  [Ljava/lang/Object;
            0    4     4  cachedFunction  Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
            0    4     5      cachedCode  Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;
            0    4     6        getStack  Lcom/oracle/truffle/llvm/runtime/LLVMGetStackFromThreadNode;
            0    4     7             ctx  Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            0    4     8            call  Lcom/oracle/truffle/api/nodes/DirectCallNode;
            0    4     9     convertArgs  [Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeConvertNode;
            0    4    10      convertRet  Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeConvertNode;
            1    4    11           stack  Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack;
            2    4    12    preparedArgs  [Ljava/lang/Object;
            3    4    13             ret  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"code == cachedCode"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.dsl.Cached(value = "function")
      4:
        com.oracle.truffle.api.dsl.Cached(value = "code")
      5:
        com.oracle.truffle.api.dsl.Cached()
      6:
        com.oracle.truffle.api.dsl.CachedContext(value = Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;)
      7:
        com.oracle.truffle.api.dsl.Cached(value = "createCallNode(cachedFunction, cachedCode)")
      8:
        com.oracle.truffle.api.dsl.Cached(value = "createFromNativeNodes(cachedFunction.getType())")
      9:
        com.oracle.truffle.api.dsl.Cached(value = "createToNative(cachedFunction.getType().getReturnType())")
    MethodParameters:
                Name  Flags
      function        
      code            
      args            
      cachedFunction  
      cachedCode      
      getStack        
      ctx             
      call            
      convertArgs     
      convertRet      

  java.lang.Object doGeneric(com.oracle.truffle.llvm.runtime.LLVMFunction, com.oracle.truffle.llvm.runtime.LLVMFunctionCode, java.lang.Object[]);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMFunction;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode this
        start local 1 // com.oracle.truffle.llvm.runtime.LLVMFunction function
        start local 2 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode code
        start local 3 // java.lang.Object[] args
         0: .line 121
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         1: .line 122
            new java.lang.IllegalStateException
            dup
            ldc "unexpected generic case in LLVMNativeCallback"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.Object[] args
        end local 2 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode code
        end local 1 // com.oracle.truffle.llvm.runtime.LLVMFunction function
        end local 0 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeWrapper$CallbackHelperNode;
            0    2     1  function  Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
            0    2     2      code  Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;
            0    2     3      args  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(replaces = {"doCached"})
    MethodParameters:
          Name  Flags
      function  
      code      
      args      

  com.oracle.truffle.api.nodes.DirectCallNode createCallNode(com.oracle.truffle.llvm.runtime.LLVMFunction, com.oracle.truffle.llvm.runtime.LLVMFunctionCode);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMFunction;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode this
        start local 1 // com.oracle.truffle.llvm.runtime.LLVMFunction function
        start local 2 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode code
         0: .line 127
            aload 2 /* code */
            astore 4 /* functionCode */
        start local 4 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode functionCode
         1: .line 128
            aload 4 /* functionCode */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunctionCode.isLLVMIRFunction:()Z
            ifeq 4
         2: .line 129
            aload 4 /* functionCode */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunctionCode.getLLVMIRFunctionSlowPath:()Lcom/oracle/truffle/api/RootCallTarget;
            astore 3 /* callTarget */
        start local 3 // com.oracle.truffle.api.CallTarget callTarget
         3: .line 130
            goto 8
        end local 3 // com.oracle.truffle.api.CallTarget callTarget
      StackMap locals: com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode com.oracle.truffle.llvm.runtime.LLVMFunction com.oracle.truffle.llvm.runtime.LLVMFunctionCode top com.oracle.truffle.llvm.runtime.LLVMFunctionCode
      StackMap stack:
         4: aload 4 /* functionCode */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunctionCode.isIntrinsicFunctionSlowPath:()Z
            ifeq 7
         5: .line 131
            aload 4 /* functionCode */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunctionCode.getIntrinsicSlowPath:()Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode$Intrinsic;
            aload 1 /* function */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunction.getType:()Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunctionCode$Intrinsic.cachedCallTarget:(Lcom/oracle/truffle/llvm/runtime/types/FunctionType;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 3 /* callTarget */
        start local 3 // com.oracle.truffle.api.CallTarget callTarget
         6: .line 132
            goto 8
        end local 3 // com.oracle.truffle.api.CallTarget callTarget
         7: .line 133
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected function: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* function */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        start local 3 // com.oracle.truffle.api.CallTarget callTarget
         8: .line 135
      StackMap locals: com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode com.oracle.truffle.llvm.runtime.LLVMFunction com.oracle.truffle.llvm.runtime.LLVMFunctionCode com.oracle.truffle.api.CallTarget com.oracle.truffle.llvm.runtime.LLVMFunctionCode
      StackMap stack:
            aload 3 /* callTarget */
            invokestatic com.oracle.truffle.api.nodes.DirectCallNode.create:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
            areturn
        end local 4 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode functionCode
        end local 3 // com.oracle.truffle.api.CallTarget callTarget
        end local 2 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode code
        end local 1 // com.oracle.truffle.llvm.runtime.LLVMFunction function
        end local 0 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeWrapper$CallbackHelperNode;
            0    9     1      function  Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
            0    9     2          code  Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;
            3    4     3    callTarget  Lcom/oracle/truffle/api/CallTarget;
            6    7     3    callTarget  Lcom/oracle/truffle/api/CallTarget;
            8    9     3    callTarget  Lcom/oracle/truffle/api/CallTarget;
            1    9     4  functionCode  Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;
    MethodParameters:
          Name  Flags
      function  
      code      

  protected static com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode[] createFromNativeNodes(com.oracle.truffle.llvm.runtime.types.FunctionType);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/types/FunctionType;)[Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeConvertNode;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.types.FunctionType type
         0: .line 139
            aload 0 /* type */
            invokevirtual com.oracle.truffle.llvm.runtime.types.FunctionType.getNumberOfArguments:()I
            anewarray com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode
            astore 1 /* ret */
        start local 1 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode[] ret
         1: .line 140
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 141
      StackMap locals: com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode[] int
      StackMap stack:
            aload 1 /* ret */
            iload 2 /* i */
            aload 0 /* type */
            iload 2 /* i */
            invokevirtual com.oracle.truffle.llvm.runtime.types.FunctionType.getArgumentType:(I)Lcom/oracle/truffle/llvm/runtime/types/Type;
            invokestatic com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode.createFromNative:(Lcom/oracle/truffle/llvm/runtime/types/Type;)Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeConvertNode;
            aastore
         4: .line 140
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* type */
            invokevirtual com.oracle.truffle.llvm.runtime.types.FunctionType.getNumberOfArguments:()I
            if_icmplt 3
        end local 2 // int i
         6: .line 143
            aload 1 /* ret */
            areturn
        end local 1 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode[] ret
        end local 0 // com.oracle.truffle.llvm.runtime.types.FunctionType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  type  Lcom/oracle/truffle/llvm/runtime/types/FunctionType;
            1    7     1   ret  [Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeConvertNode;
            2    6     2     i  I
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.Object[] prepareCallbackArguments(com.oracle.truffle.llvm.runtime.memory.LLVMStack, java.lang.Object[], com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode[]);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack;[Ljava/lang/Object;[Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeConvertNode;)[Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.memory.LLVMStack stack
        start local 1 // java.lang.Object[] arguments
        start local 2 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode[] fromNative
         0: .line 148
            aload 2 /* fromNative */
            arraylength
            iconst_1
            iadd
            anewarray java.lang.Object
            astore 3 /* callbackArgs */
        start local 3 // java.lang.Object[] callbackArgs
         1: .line 149
            aload 3 /* callbackArgs */
            iconst_0
            aload 0 /* stack */
            aastore
         2: .line 150
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 151
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 3 /* callbackArgs */
            iload 4 /* i */
            iconst_1
            iadd
            aload 2 /* fromNative */
            iload 4 /* i */
            aaload
            aload 1 /* arguments */
            iload 4 /* i */
            aaload
            invokevirtual com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode.executeConvert:(Ljava/lang/Object;)Ljava/lang/Object;
            aastore
         5: .line 150
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            aload 2 /* fromNative */
            arraylength
            if_icmplt 4
        end local 4 // int i
         7: .line 153
            aload 3 /* callbackArgs */
            areturn
        end local 3 // java.lang.Object[] callbackArgs
        end local 2 // com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeConvertNode[] fromNative
        end local 1 // java.lang.Object[] arguments
        end local 0 // com.oracle.truffle.llvm.runtime.memory.LLVMStack stack
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0         stack  Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack;
            0    8     1     arguments  [Ljava/lang/Object;
            0    8     2    fromNative  [Lcom/oracle/truffle/llvm/runtime/interop/nfi/LLVMNativeConvertNode;
            1    8     3  callbackArgs  [Ljava/lang/Object;
            3    7     4             i  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
            Name  Flags
      stack       
      arguments   
      fromNative  
}
SourceFile: "LLVMNativeWrapper.java"
NestHost: com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper
InnerClasses:
  public final Intrinsic = com.oracle.truffle.llvm.runtime.LLVMFunctionCode$Intrinsic of com.oracle.truffle.llvm.runtime.LLVMFunctionCode
  abstract CallbackHelperNode = com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper$CallbackHelperNode of com.oracle.truffle.llvm.runtime.interop.nfi.LLVMNativeWrapper
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.GenerateUncached()
      com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;})