| Package | Description |
|---|---|
| org.eclipse.jdt.internal.compiler.ast | |
| org.eclipse.jdt.internal.compiler.codegen | |
| org.eclipse.jdt.internal.compiler.flow |
| Modifier and Type | Field and Description |
|---|---|
BranchLabel |
SwitchStatement.breakLabel |
BranchLabel |
CaseStatement.targetLabel |
BranchLabel |
BranchStatement.targetLabel |
BranchLabel |
LabeledStatement.targetLabel |
| Modifier and Type | Method and Description |
|---|---|
void |
Block.branchChainTo(BranchLabel label)
Dispatch the call on its last statement.
|
void |
SwitchStatement.branchChainTo(BranchLabel label)
Dispatch the call on its last statement.
|
void |
Statement.branchChainTo(BranchLabel label)
INTERNAL USE ONLY.
|
void |
EqualExpression.generateOptimizedBoolean(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean operator code generation
Optimized operations are: == and !=
|
void |
BinaryExpression.generateOptimizedBoolean(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean operator code generation
Optimized operations are: <, <=, >, >=, &, |, ^
|
void |
TrueLiteral.generateOptimizedBoolean(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired) |
void |
Expression.generateOptimizedBoolean(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Default generation of a boolean value
|
void |
UnaryExpression.generateOptimizedBoolean(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean operator code generation
Optimized operations are: &&, ||, <, <=, >, >=, &, |, ^
|
void |
OR_OR_Expression.generateOptimizedBoolean(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean operator code generation Optimized operations are: ||
|
void |
ConditionalExpression.generateOptimizedBoolean(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Optimized boolean code generation for the conditional operator ?:
|
void |
AND_AND_Expression.generateOptimizedBoolean(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean operator code generation Optimized operations are: &&
|
void |
FalseLiteral.generateOptimizedBoolean(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired) |
void |
EqualExpression.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 !!!!
|
void |
BinaryExpression.generateOptimizedGreaterThan(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for >
|
void |
BinaryExpression.generateOptimizedGreaterThanOrEqual(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for >=
|
void |
BinaryExpression.generateOptimizedLessThan(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for <
|
void |
BinaryExpression.generateOptimizedLessThanOrEqual(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for <=
|
void |
BinaryExpression.generateOptimizedLogicalAnd(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for &
|
void |
BinaryExpression.generateOptimizedLogicalOr(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for |
|
void |
BinaryExpression.generateOptimizedLogicalXor(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for ^
|
void |
EqualExpression.generateOptimizedNonBooleanEqual(BlockScope currentScope,
CodeStream codeStream,
BranchLabel trueLabel,
BranchLabel falseLabel,
boolean valueRequired)
Boolean generation for == with non-boolean operands
|
| Modifier and Type | Class and Description |
|---|---|
class |
CaseLabel |
| Modifier and Type | Field and Description |
|---|---|
BranchLabel[] |
CodeStream.labels |
| Modifier and Type | Method and Description |
|---|---|
void |
CodeStream.addLabel(BranchLabel aLabel) |
void |
BranchLabel.becomeDelegateFor(BranchLabel otherLabel)
Makes the current label inline all references to the other label
|
void |
CodeStream.generateWideRevertedConditionalBranch(byte revertedOpcode,
BranchLabel wideTarget) |
void |
CodeStream.goto_(BranchLabel label)
We didn't call it goto, because there is a conflit with the goto keyword
|
void |
StackMapFrameCodeStream.goto_(BranchLabel label) |
void |
CodeStream.goto_w(BranchLabel label) |
void |
StackMapFrameCodeStream.goto_w(BranchLabel label) |
void |
CodeStream.if_acmpeq(BranchLabel lbl) |
void |
CodeStream.if_acmpne(BranchLabel lbl) |
void |
CodeStream.if_icmpeq(BranchLabel lbl) |
void |
CodeStream.if_icmpge(BranchLabel lbl) |
void |
CodeStream.if_icmpgt(BranchLabel lbl) |
void |
CodeStream.if_icmple(BranchLabel lbl) |
void |
CodeStream.if_icmplt(BranchLabel lbl) |
void |
CodeStream.if_icmpne(BranchLabel lbl) |
void |
CodeStream.ifeq(BranchLabel lbl) |
void |
CodeStream.ifge(BranchLabel lbl) |
void |
CodeStream.ifgt(BranchLabel lbl) |
void |
CodeStream.ifle(BranchLabel lbl) |
void |
CodeStream.iflt(BranchLabel lbl) |
void |
CodeStream.ifne(BranchLabel lbl) |
void |
CodeStream.ifnonnull(BranchLabel lbl) |
void |
CodeStream.ifnull(BranchLabel lbl) |
boolean |
CodeStream.inlineForwardReferencesFromLabelsTargeting(BranchLabel targetLabel,
int gotoLocation)
Some placed labels might be branching to a goto bytecode which we can optimize better.
|
void |
CodeStream.jsr_w(BranchLabel lbl) |
void |
CodeStream.jsr(BranchLabel lbl) |
void |
CodeStream.optimizeBranch(int oldPosition,
BranchLabel lbl) |
void |
StackMapFrameCodeStream.optimizeBranch(int oldPosition,
BranchLabel lbl) |
protected void |
CodeStream.writePosition(BranchLabel label) |
protected void |
StackMapFrameCodeStream.writePosition(BranchLabel label) |
protected void |
CodeStream.writePosition(BranchLabel label,
int forwardReference) |
protected void |
StackMapFrameCodeStream.writePosition(BranchLabel label,
int forwardReference) |
protected void |
CodeStream.writeWidePosition(BranchLabel label) |
protected void |
StackMapFrameCodeStream.writeWidePosition(BranchLabel label) |
| Modifier and Type | Field and Description |
|---|---|
BranchLabel |
SwitchFlowContext.breakLabel |
BranchLabel |
LoopingFlowContext.continueLabel |
| Modifier and Type | Method and Description |
|---|---|
BranchLabel |
FlowContext.breakLabel() |
BranchLabel |
SwitchFlowContext.breakLabel() |
BranchLabel |
LoopingFlowContext.continueLabel() |
BranchLabel |
FlowContext.continueLabel() |
| Constructor and Description |
|---|
LabelFlowContext(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) |
Copyright © 2013. All rights reserved.