Uses of Class
org.jruby.ir.representations.BasicBlock
Packages that use BasicBlock
Package
Description
-
Uses of BasicBlock in org.jruby.ir
Methods in org.jruby.ir that return BasicBlockModifier and TypeMethodDescriptionIRMethod.prepareForCompilation()IRScope.prepareForCompilation()Run any necessary passes to get the IR ready for compilation (AOT and/or JIT)Methods in org.jruby.ir that return types with arguments of type BasicBlock -
Uses of BasicBlock in org.jruby.ir.dataflow
Fields in org.jruby.ir.dataflow declared as BasicBlockModifier and TypeFieldDescriptionprotected final BasicBlockFlowGraphNode.basicBlockprivate final BasicBlockFlowGraphNode.rescuerFields in org.jruby.ir.dataflow with type parameters of type BasicBlockMethods in org.jruby.ir.dataflow that return BasicBlockMethods in org.jruby.ir.dataflow with parameters of type BasicBlockModifier and TypeMethodDescriptionabstract UDataFlowProblem.buildFlowGraphNode(BasicBlock bb) DataFlowProblem.getFlowGraphNode(BasicBlock bb) private voidFlowGraphNode.processDestBB(List<U> workList, BitSet bbSet, BasicBlock d) Constructors in org.jruby.ir.dataflow with parameters of type BasicBlock -
Uses of BasicBlock in org.jruby.ir.dataflow.analyses
Methods in org.jruby.ir.dataflow.analyses with parameters of type BasicBlockModifier and TypeMethodDescriptionDefinedVariablesProblem.buildFlowGraphNode(BasicBlock bb) LiveVariablesProblem.buildFlowGraphNode(BasicBlock bb) LoadLocalVarPlacementProblem.buildFlowGraphNode(BasicBlock bb) StoreLocalVarPlacementProblem.buildFlowGraphNode(BasicBlock bb) UnboxableOpsAnalysisProblem.buildFlowGraphNode(BasicBlock bb) Constructors in org.jruby.ir.dataflow.analyses with parameters of type BasicBlockModifierConstructorDescription -
Uses of BasicBlock in org.jruby.ir.interpreter
Fields in org.jruby.ir.interpreter declared as BasicBlockMethods in org.jruby.ir.interpreter that return BasicBlockModifier and TypeMethodDescriptionFullInterpreterContext.findBasicBlockOf(long callsiteId) FullInterpreterContext.getLinearizedBBList()FullInterpreterContext.linearizeBasicBlocks()Constructors in org.jruby.ir.interpreter with parameters of type BasicBlockModifierConstructorDescriptionFullInterpreterContext(IRScope scope, CFG cfg, BasicBlock[] linearizedBBList, int temporaryVariableCount, EnumSet<IRFlags> flags) -
Uses of BasicBlock in org.jruby.ir.listeners
Fields in org.jruby.ir.listeners declared as BasicBlockModifier and TypeFieldDescriptionprivate final BasicBlockInstructionsListenerDecorator.basicBlockMethods in org.jruby.ir.listeners with parameters of type BasicBlockModifier and TypeMethodDescriptionvoidInstructionsListener.instrChanged(BasicBlock basicBlock, Instr oldInstr, Instr newInstr, int index, InstructionsListener.OperationType op) listen to a change of a list of instructions, right before the change going to take placeConstructors in org.jruby.ir.listeners with parameters of type BasicBlockModifierConstructorDescriptionInstructionsListenerDecorator(BasicBlock basicBlock, List<Instr> instrs, InstructionsListener listener) -
Uses of BasicBlock in org.jruby.ir.passes
Methods in org.jruby.ir.passes that return BasicBlockModifier and TypeMethodDescriptionprivate BasicBlockAddCallProtocolInstructions.createPrologueBlock(CFG cfg) Methods in org.jruby.ir.passes with parameters of type BasicBlockModifier and TypeMethodDescriptionstatic booleanLocalOptimizationPass.runLocalOptsOnBasicBlock(FullInterpreterContext fic, BasicBlock b) Method parameters in org.jruby.ir.passes with type arguments of type BasicBlockModifier and TypeMethodDescriptionvoidDominatorTreeBuilder.buildDominatorTree(CFG cfg, LinkedList<BasicBlock> postOrderList, int maxNodeId) -
Uses of BasicBlock in org.jruby.ir.representations
Fields in org.jruby.ir.representations declared as BasicBlockModifier and TypeFieldDescriptionprivate BasicBlockExceptionRegion.endBBprivate BasicBlockCFG.entryBBEntry BBprivate BasicBlockCFG.exitBBExit BBprivate BasicBlockCFG.globalEnsureBBBB that traps all exception-edges out of the cfg where we could add any cleanup/ensure code (ex: pop frames, etc.)private final BasicBlockExceptionRegion.startBBFields in org.jruby.ir.representations with type parameters of type BasicBlockModifier and TypeFieldDescriptionprivate final Map<Label,BasicBlock> CFG.bbMapprivate final List<BasicBlock>ExceptionRegion.exclusiveBBsprivate final org.jruby.dirgra.DirectedGraph<BasicBlock>CFG.graphThe graph itself(package private) final Map<BasicBlock,Integer> IGVCFGVisitor.indexOffsets(package private) LinkedList<BasicBlock>CFG.postOrderListprivate final Map<BasicBlock,BasicBlock> CFG.rescuerMapprivate final Map<BasicBlock,BasicBlock> CFG.rescuerMap(package private) List<BasicBlock>CFG.returnBBsList of bbs that have a 'return' instructionMethods in org.jruby.ir.representations that return BasicBlockModifier and TypeMethodDescriptionprivate BasicBlockCFG.buildExitBasicBlock(Stack<ExceptionRegion> nestedExceptionRegions, BasicBlock firstBB, List<BasicBlock> returnBBs, List<BasicBlock> exceptionBBs, boolean nextIsFallThrough, BasicBlock currBB, BasicBlock entryBB) Create special empty exit BasicBlock that all BasicBlocks will eventually flow into.BasicBlock.cloneForInlining(InlineCloneInfo ii) private BasicBlockCFG.createBB(Stack<ExceptionRegion> nestedExceptionRegions) private BasicBlockCFG.createBB(Label label, Stack<ExceptionRegion> nestedExceptionRegions) BasicBlock.exceptionBB()On an exception occurring in this block which BB should we go to?CFG.getBBForLabel(Label label) ExceptionRegion.getEndBB()CFG.getEntryBB()CFG.getExitBB()CFG.getGlobalEnsureBB()CFG.getIncomingSourceOfType(BasicBlock block, Object type) CFG.getOutgoingDestinationOfType(BasicBlock block, Object type) CFG.getRescuerBBFor(BasicBlock block) ExceptionRegion.getStartBB()static BasicBlock[]BasicBlock.splitAtInstruction(Site splitPoint, Label newLabel, boolean includeSplitPointInstr) Methods in org.jruby.ir.representations that return types with arguments of type BasicBlockModifier and TypeMethodDescriptionorg.jruby.dirgra.DirectedGraph<BasicBlock>Build the Control Flow Graphprivate LinkedList<BasicBlock>CFG.buildPostOrderList()CFG.getBasicBlocks()ExceptionRegion.getExclusiveBBs()Iterable<org.jruby.dirgra.Edge<BasicBlock>>CFG.getIncomingEdges(BasicBlock block) CFG.getIncomingSources(BasicBlock block) CFG.getOutgoingDestinations(BasicBlock block) CFG.getOutgoingDestinationsNotOfType(BasicBlock block, Object type) CFG.getOutgoingDestinationsOfType(BasicBlock block, Object type) Collection<org.jruby.dirgra.Edge<BasicBlock>>CFG.getOutgoingEdges(BasicBlock block) CFG.getPostOrderTraverser()CFG.getSortedBasicBlocks()CFG.postOrderList()Methods in org.jruby.ir.representations with parameters of type BasicBlockModifier and TypeMethodDescriptionvoidCFG.addBasicBlock(BasicBlock bb) voidExceptionRegion.addBB(BasicBlock bb) private voidCFG.addEdge(BasicBlock src, Label targetLabel, Map<Label, List<BasicBlock>> forwardRefs) voidCFG.addEdge(BasicBlock source, BasicBlock destination, Object type) voidCFG.addGlobalEnsureBB(BasicBlock geb) private static voidCFGLinearizer.addJumpIfNextNotDestination(CFG cfg, BasicBlock next, Instr lastInstr, BasicBlock current) voidIGVCFGVisitor.BasicBlock(BasicBlock basicBlock) booleanCFG.bbIsProtected(BasicBlock b) private BasicBlockCFG.buildExitBasicBlock(Stack<ExceptionRegion> nestedExceptionRegions, BasicBlock firstBB, List<BasicBlock> returnBBs, List<BasicBlock> exceptionBBs, boolean nextIsFallThrough, BasicBlock currBB, BasicBlock entryBB) Create special empty exit BasicBlock that all BasicBlocks will eventually flow into.voidCFG.fixupEdges(BasicBlock bb) private static voidCFGLinearizer.fixupList(CFG cfg, BasicBlock[] list, int listSize) Process (fixup) list of instruction and add or remove jumps.Iterable<org.jruby.dirgra.Edge<BasicBlock>>CFG.getIncomingEdges(BasicBlock block) CFG.getIncomingSourceOfType(BasicBlock block, Object type) CFG.getIncomingSources(BasicBlock block) CFG.getOutgoingDestinationOfType(BasicBlock block, Object type) CFG.getOutgoingDestinations(BasicBlock block) CFG.getOutgoingDestinationsNotOfType(BasicBlock block, Object type) CFG.getOutgoingDestinationsOfType(BasicBlock block, Object type) Collection<org.jruby.dirgra.Edge<BasicBlock>>CFG.getOutgoingEdges(BasicBlock block) CFG.getRescuerBBFor(BasicBlock block) intCFG.inDegree(BasicBlock b) private static intCFGLinearizer.linearizeInner(CFG cfg, BasicBlock[] list, int listSize, BitSet processed, BasicBlock current) private booleanCFG.mergeBBs(BasicBlock a, BasicBlock b) intCFG.outDegree(BasicBlock b) voidvoidCFG.removeBB(BasicBlock b) voidCFG.removeEdge(BasicBlock a, BasicBlock b) private voidCFG.removeNestedScopesFromBB(BasicBlock bb) Wrapped IRClosures in dead BB are lexically rooted to that dead BB so they can be removed from the parent scope if the BB they live in died.voidExceptionRegion.setEndBB(BasicBlock bb) voidCFG.setRescuerBB(BasicBlock block, BasicBlock rescuerBlock) voidBasicBlock.swallowBB(BasicBlock foodBB) private static voidCFGLinearizer.tryAndRemoveUnneededJump(BasicBlock next, CFG cfg, Instr lastInstr, BasicBlock current) protected voidIGVCFGVisitor.visitInstrs(BasicBlock basicBlock) Method parameters in org.jruby.ir.representations with type arguments of type BasicBlockModifier and TypeMethodDescriptionprivate voidCFG.addEdge(BasicBlock src, Label targetLabel, Map<Label, List<BasicBlock>> forwardRefs) private BasicBlockCFG.buildExitBasicBlock(Stack<ExceptionRegion> nestedExceptionRegions, BasicBlock firstBB, List<BasicBlock> returnBBs, List<BasicBlock> exceptionBBs, boolean nextIsFallThrough, BasicBlock currBB, BasicBlock entryBB) Create special empty exit BasicBlock that all BasicBlocks will eventually flow into.private voidCFG.deleteOrphanedBlocks(org.jruby.dirgra.DirectedGraph<BasicBlock> graph) Constructors in org.jruby.ir.representations with parameters of type BasicBlock -
Uses of BasicBlock in org.jruby.ir.transformations.inlining
Fields in org.jruby.ir.transformations.inlining with type parameters of type BasicBlockModifier and TypeFieldDescriptionprivate final Map<BasicBlock,BasicBlock> InlineCloneInfo.bbRenameMapprivate final Map<BasicBlock,BasicBlock> InlineCloneInfo.bbRenameMapMethods in org.jruby.ir.transformations.inlining that return BasicBlockModifier and TypeMethodDescriptionCFGInliner.findCallsiteBB(CallBase call) InlineCloneInfo.getOrCreateRenamedBB(BasicBlock bb) InlineCloneInfo.getRenamedBB(BasicBlock bb) Methods in org.jruby.ir.transformations.inlining with parameters of type BasicBlockModifier and TypeMethodDescriptionprivate voidCFGInliner.connectOuterEdges(BasicBlock beforeInlineBB, BasicBlock afterInlineBB) InlineCloneInfo.getOrCreateRenamedBB(BasicBlock bb) InlineCloneInfo.getRenamedBB(BasicBlock bb) private voidCFGInliner.inlineClosureAtYieldSite(InlineCloneInfo ii, IRClosure cl, BasicBlock yieldBB, YieldInstr yield) CFGInliner.inlineMethod(IRScope scopeToInline, RubyModule implClass, int classToken, BasicBlock callBB, CallBase call, boolean cloneHost) private voidCFGInliner.printInlineFoundBB(BasicBlock bb) private voidCFGInliner.printInlineSplitBBs(BasicBlock beforeBB, BasicBlock afterBB) voidInlineCloneInfo.recordYieldSite(BasicBlock bb, YieldInstr i) voidInlineCloneInfo.setupYieldArgsAndYieldResult(YieldInstr yi, BasicBlock yieldBB, int blockArityValue) -
Uses of BasicBlock in org.jruby.ir.util
Fields in org.jruby.ir.util with type parameters of type BasicBlockModifier and TypeFieldDescriptionprivate Map<BasicBlock,List<Instr>> IGVInstrListener.removedInstrsMethods in org.jruby.ir.util with parameters of type BasicBlockModifier and TypeMethodDescriptionvoidIGVInstrListener.instrChanged(BasicBlock basicBlock, Instr oldInstr, Instr newInstr, int index, InstructionsListener.OperationType op) IGVInstrListener.removedList(BasicBlock basicBlock)