Uses of Class
org.aspectj.org.eclipse.jdt.internal.compiler.codegen.BranchLabel
Packages that use BranchLabel
Package
Description
-
Uses of BranchLabel in org.aspectj.org.eclipse.jdt.internal.compiler.ast
Fields in org.aspectj.org.eclipse.jdt.internal.compiler.ast declared as BranchLabelModifier and TypeFieldDescriptionSwitchStatement.breakLabelBranchStatement.targetLabelCaseStatement.targetLabelLabeledStatement.targetLabelCaseStatement.targetLabelsMethods in org.aspectj.org.eclipse.jdt.internal.compiler.ast with parameters of type BranchLabelModifier and TypeMethodDescriptionvoidBlock.branchChainTo(BranchLabel label)Dispatch the call on its last statement.voidStatement.branchChainTo(BranchLabel label)INTERNAL USE ONLY.voidSwitchStatement.branchChainTo(BranchLabel label)Dispatch the call on its last statement.voidAND_AND_Expression.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean operator code generation Optimized operations are: &&voidBinaryExpression.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean operator code generation Optimized operations are: <, <=, >, >=, &, |, ^voidConditionalExpression.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Optimized boolean code generation for the conditional operator ?:voidEqualExpression.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean operator code generation Optimized operations are: == and !=voidExpression.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Default generation of a boolean valuevoidFalseLiteral.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)voidInstanceOfExpression.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)voidOR_OR_Expression.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean operator code generation Optimized operations are: ||voidTrueLiteral.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)voidUnaryExpression.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean operator code generation Optimized operations are: &&, ||, <, <=, >, >=, &, |, ^voidEqualExpression.generateOptimizedBooleanEqual(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean generation for == with boolean operands Note this code does not optimize conditional constants !!!!voidBinaryExpression.generateOptimizedGreaterThan(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean generation for >voidBinaryExpression.generateOptimizedGreaterThanOrEqual(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean generation for >=voidBinaryExpression.generateOptimizedLessThan(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean generation for <voidBinaryExpression.generateOptimizedLessThanOrEqual(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean generation for <=voidBinaryExpression.generateOptimizedLogicalAnd(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean generation for &voidBinaryExpression.generateOptimizedLogicalOr(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean generation for |voidBinaryExpression.generateOptimizedLogicalXor(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean generation for ^voidEqualExpression.generateOptimizedNonBooleanEqual(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)Boolean generation for == with non-boolean operands -
Uses of BranchLabel in org.aspectj.org.eclipse.jdt.internal.compiler.codegen
Subclasses of BranchLabel in org.aspectj.org.eclipse.jdt.internal.compiler.codegenFields in org.aspectj.org.eclipse.jdt.internal.compiler.codegen declared as BranchLabelMethods in org.aspectj.org.eclipse.jdt.internal.compiler.codegen with parameters of type BranchLabelModifier and TypeMethodDescriptionvoidCodeStream.addLabel(BranchLabel aLabel)voidBranchLabel.becomeDelegateFor(BranchLabel otherLabel)Makes the current label inline all references to the other labelvoidCodeStream.generateWideRevertedConditionalBranch(byte revertedOpcode, BranchLabel wideTarget)voidCodeStream.goto_(BranchLabel label)We didn't call it goto, because there is a conflit with the goto keywordvoidStackMapFrameCodeStream.goto_(BranchLabel label)voidCodeStream.goto_w(BranchLabel label)voidStackMapFrameCodeStream.goto_w(BranchLabel label)voidCodeStream.if_acmpeq(BranchLabel lbl)voidCodeStream.if_acmpne(BranchLabel lbl)voidCodeStream.if_icmpeq(BranchLabel lbl)voidCodeStream.if_icmpge(BranchLabel lbl)voidCodeStream.if_icmpgt(BranchLabel lbl)voidCodeStream.if_icmple(BranchLabel lbl)voidCodeStream.if_icmplt(BranchLabel lbl)voidCodeStream.if_icmpne(BranchLabel lbl)voidCodeStream.ifeq(BranchLabel lbl)voidCodeStream.ifge(BranchLabel lbl)voidCodeStream.ifgt(BranchLabel lbl)voidCodeStream.ifle(BranchLabel lbl)voidCodeStream.iflt(BranchLabel lbl)voidCodeStream.ifne(BranchLabel lbl)voidCodeStream.ifnonnull(BranchLabel lbl)voidCodeStream.ifnull(BranchLabel lbl)booleanCodeStream.inlineForwardReferencesFromLabelsTargeting(BranchLabel targetLabel, int gotoLocation)Some placed labels might be branching to a goto bytecode which we can optimize better.voidCodeStream.jsr(BranchLabel lbl)voidCodeStream.jsr_w(BranchLabel lbl)voidCodeStream.optimizeBranch(int oldPosition, BranchLabel lbl)voidStackMapFrameCodeStream.optimizeBranch(int oldPosition, BranchLabel lbl)protected voidCodeStream.writePosition(BranchLabel label)protected voidCodeStream.writePosition(BranchLabel label, int forwardReference)protected voidStackMapFrameCodeStream.writePosition(BranchLabel label)protected voidStackMapFrameCodeStream.writePosition(BranchLabel label, int forwardReference)protected voidCodeStream.writeWidePosition(BranchLabel label)protected voidStackMapFrameCodeStream.writeWidePosition(BranchLabel label) -
Uses of BranchLabel in org.aspectj.org.eclipse.jdt.internal.compiler.flow
Fields in org.aspectj.org.eclipse.jdt.internal.compiler.flow declared as BranchLabelMethods in org.aspectj.org.eclipse.jdt.internal.compiler.flow that return BranchLabelModifier and TypeMethodDescriptionFlowContext.breakLabel()SwitchFlowContext.breakLabel()FlowContext.continueLabel()LoopingFlowContext.continueLabel()Constructors in org.aspectj.org.eclipse.jdt.internal.compiler.flow with parameters of type BranchLabelModifierConstructorDescriptionLabelFlowContext(FlowContext parent, ASTNode associatedNode, char[] labelName, BranchLabel breakLabel, BlockScope scope)LoopingFlowContext(FlowContext parent, FlowInfo upstreamNullFlowInfo, ASTNode associatedNode, BranchLabel breakLabel, BranchLabel continueLabel, Scope associatedScope, boolean isPreTest)SwitchFlowContext(FlowContext parent, ASTNode associatedNode, BranchLabel breakLabel, boolean isPreTest, boolean inheritNullFieldChecks)