public void visitLocalVariableTypeInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeInfo localVariableTypeInfo) { // Trim the local variable type to the instructions at which it is alive. int variable = localVariableTypeInfo.u2index; int startPC = localVariableTypeInfo.u2startPC; int endPC = startPC + localVariableTypeInfo.u2length; startPC = firstLiveness(startPC, endPC, variable); endPC = lastLiveness(startPC, endPC, variable); // Leave the start address of unused variables unchanged. int length = endPC - startPC; if (length > 0) { localVariableTypeInfo.u2startPC = startPC; } localVariableTypeInfo.u2length = length; }
initializeArrays(codeAttribute); if (areNonOverlapping(oldIndex, newIndex, codeLength)) updateLiveness(oldIndex, newIndex, codeLength);
public ClassVisitor createClassVisitor() { return new AllMethodVisitor( new AllAttributeVisitor( new DebugAttributeVisitor("Variable optimizations", new OptimizationCodeAttributeFilter( new VariableOptimizer(false, codeAllocationVariableCounter))))); } };
initializeArrays(codeAttribute); if (areNonOverlapping(oldIndex, newIndex, codeLength)) updateLiveness(oldIndex, newIndex, codeLength);
public ClassVisitor createClassVisitor() { return new AllMethodVisitor( new AllAttributeVisitor( new DebugAttributeVisitor("Variable optimizations", new OptimizationCodeAttributeFilter( new VariableOptimizer(false, codeAllocationVariableCounter))))); } };
initializeArrays(codeAttribute); if (areNonOverlapping(oldIndex, newIndex, codeLength)) updateLiveness(oldIndex, newIndex, codeLength);
public void visitLocalVariableTypeInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeInfo localVariableTypeInfo) { // Trim the local variable type to the instructions at which it is alive. int variable = localVariableTypeInfo.u2index; int startPC = localVariableTypeInfo.u2startPC; int endPC = startPC + localVariableTypeInfo.u2length; startPC = firstLiveness(startPC, endPC, variable); endPC = lastLiveness(startPC, endPC, variable); // Leave the start address of unused variables unchanged. int length = endPC - startPC; if (length > 0) { localVariableTypeInfo.u2startPC = startPC; } localVariableTypeInfo.u2length = length; }
public ClassVisitor createClassVisitor() { return new AllMethodVisitor( new AllAttributeVisitor( new DebugAttributeVisitor("Variable optimizations", new OptimizationCodeAttributeFilter( new VariableOptimizer(false, codeAllocationVariableCounter))))); } };
initializeArrays(codeAttribute); if (areNonOverlapping(oldIndex, newIndex, codeLength)) updateLiveness(oldIndex, newIndex, codeLength);
public void visitLocalVariableInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableInfo localVariableInfo) { // Trim the local variable to the instructions at which it is alive. int variable = localVariableInfo.u2index; int startPC = localVariableInfo.u2startPC; int endPC = startPC + localVariableInfo.u2length; startPC = firstLiveness(startPC, endPC, variable); endPC = lastLiveness(startPC, endPC, variable); // Leave the start address of unused variables unchanged. int length = endPC - startPC; if (length > 0) { localVariableInfo.u2startPC = startPC; } localVariableInfo.u2length = length; }
new AllMethodVisitor( new AllAttributeVisitor( new VariableOptimizer(false, codeAllocationVariableCounter))));
public void visitLocalVariableTypeInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeInfo localVariableTypeInfo) { // Trim the local variable type to the instructions at which it is alive. int variable = localVariableTypeInfo.u2index; int startPC = localVariableTypeInfo.u2startPC; int endPC = startPC + localVariableTypeInfo.u2length; startPC = firstLiveness(startPC, endPC, variable); endPC = lastLiveness(startPC, endPC, variable); // Leave the start address of unused variables unchanged. int length = endPC - startPC; if (length > 0) { localVariableTypeInfo.u2startPC = startPC; } localVariableTypeInfo.u2length = length; }
public void visitLocalVariableInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableInfo localVariableInfo) { // Trim the local variable to the instructions at which it is alive. int variable = localVariableInfo.u2index; int startPC = localVariableInfo.u2startPC; int endPC = startPC + localVariableInfo.u2length; startPC = firstLiveness(startPC, endPC, variable); endPC = lastLiveness(startPC, endPC, variable); // Leave the start address of unused variables unchanged. int length = endPC - startPC; if (length > 0) { localVariableInfo.u2startPC = startPC; } localVariableInfo.u2length = length; }
public void visitLocalVariableInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableInfo localVariableInfo) { // Trim the local variable to the instructions at which it is alive. int variable = localVariableInfo.u2index; int startPC = localVariableInfo.u2startPC; int endPC = startPC + localVariableInfo.u2length; startPC = firstLiveness(startPC, endPC, variable); endPC = lastLiveness(startPC, endPC, variable); // Leave the start address of unused variables unchanged. int length = endPC - startPC; if (length > 0) { localVariableInfo.u2startPC = startPC; } localVariableInfo.u2length = length; }