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.voidEitherOrMultiPattern.generateCode(BlockScope currentScope, CodeStream codeStream, BranchLabel patternMatchLabel, BranchLabel matchFailLabel) voidGuardedPattern.generateCode(BlockScope currentScope, CodeStream codeStream, BranchLabel patternMatchLabel, BranchLabel matchFailLabel) abstract voidPattern.generateCode(BlockScope currentScope, CodeStream codeStream, BranchLabel patternMatchLabel, BranchLabel matchFailLabel) voidRecordPattern.generateCode(BlockScope currentScope, CodeStream codeStream, BranchLabel patternMatchLabel, BranchLabel matchFailLabel) voidTypePattern.generateCode(BlockScope currentScope, CodeStream codeStream, BranchLabel patternMatchLabel, BranchLabel matchFailLabel) 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) 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.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)