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.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) voidGuardedPattern.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel) 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: ||abstract voidPattern.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel) voidRecordPattern.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel) voidTrueLiteral.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired) voidTypePattern.generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel) 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.final voidCodeStream.jsr(BranchLabel lbl) final 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)