Search in sources :

Example 1 with LLVMFunctionRootNode

use of com.oracle.truffle.llvm.runtime.nodes.control.LLVMFunctionRootNode in project graal by oracle.

the class BasicNodeFactory method createFunction.

@Override
public RootNode createFunction(int exceptionValueSlot, LLVMBasicBlockNode[] allFunctionNodes, UniquesRegion uniquesRegion, LLVMStatementNode[] copyArgumentsToFrame, FrameDescriptor frameDescriptor, int loopSuccessorSlot, LocalVariableDebugInfo debugInfo, String name, String originalName, int argumentCount, Source bcSource, LLVMSourceLocation location, LLVMFunction rootFunction) {
    LLVMUniquesRegionAllocNode uniquesRegionAllocNode = uniquesRegion.isEmpty() ? null : LLVMUniquesRegionAllocNodeGen.create(createAlloca(uniquesRegion.getSize(), uniquesRegion.getAlignment()));
    LLVMDispatchBasicBlockNode body = LLVMDispatchBasicBlockNodeGen.create(exceptionValueSlot, allFunctionNodes, loopSuccessorSlot, debugInfo);
    body.setSourceLocation(LLVMSourceLocation.orDefault(location));
    LLVMStackAccess stackAccess = createStackAccess();
    LLVMFunctionRootNode functionRoot = LLVMFunctionRootNodeGen.create(uniquesRegionAllocNode, stackAccess, copyArgumentsToFrame, body, frameDescriptor);
    functionRoot.setSourceLocation(LLVMSourceLocation.orDefault(location));
    return new LLVMFunctionStartNode(language, stackAccess, functionRoot, frameDescriptor, name, argumentCount, originalName, bcSource, location, dataLayout, rootFunction);
}
Also used : LLVMStackAccess(com.oracle.truffle.llvm.runtime.memory.LLVMStack.LLVMStackAccess) LLVMFunctionStartNode(com.oracle.truffle.llvm.runtime.nodes.func.LLVMFunctionStartNode) LLVMUniquesRegionAllocNode(com.oracle.truffle.llvm.runtime.memory.LLVMUniquesRegionAllocNode) LLVMFunctionRootNode(com.oracle.truffle.llvm.runtime.nodes.control.LLVMFunctionRootNode) LLVMDispatchBasicBlockNode(com.oracle.truffle.llvm.runtime.nodes.control.LLVMDispatchBasicBlockNode)

Aggregations

LLVMStackAccess (com.oracle.truffle.llvm.runtime.memory.LLVMStack.LLVMStackAccess)1 LLVMUniquesRegionAllocNode (com.oracle.truffle.llvm.runtime.memory.LLVMUniquesRegionAllocNode)1 LLVMDispatchBasicBlockNode (com.oracle.truffle.llvm.runtime.nodes.control.LLVMDispatchBasicBlockNode)1 LLVMFunctionRootNode (com.oracle.truffle.llvm.runtime.nodes.control.LLVMFunctionRootNode)1 LLVMFunctionStartNode (com.oracle.truffle.llvm.runtime.nodes.func.LLVMFunctionStartNode)1