new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.VARIABLE_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationVariableCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.ARITHMETIC_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationArithmeticCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.CAST_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationCastCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.FIELD_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationFieldCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.BRANCH_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationBranchCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.OBJECT_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationObjectCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.STRING_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationStringCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS,
/** * Creates a new InstructionSequenceReplacer. * @param constants any constants referenced by the pattern * instructions and replacement instructions. * @param instructionSequences the instruction sequences to be replaced, * with subsequently the sequence pair index, * the patten/replacement index (0 or 1), * and the instruction index in the sequence. * @param branchTargetFinder a branch target finder that has been * initialized to indicate branch targets * in the visited code. * @param codeAttributeEditor a code editor that can be used for * accumulating changes to the code. * @param extraInstructionVisitor an optional extra visitor for all deleted * load instructions. */ public InstructionSequencesReplacer(Constant[] constants, Instruction[][][] instructionSequences, BranchTargetFinder branchTargetFinder, CodeAttributeEditor codeAttributeEditor, InstructionVisitor extraInstructionVisitor) { super(createInstructionSequenceReplacers(constants, instructionSequences, branchTargetFinder, codeAttributeEditor, extraInstructionVisitor)); }
new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.VARIABLE_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationVariableCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.ARITHMETIC_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationArithmeticCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.CAST_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationCastCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.FIELD_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationFieldCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.BRANCH_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationBranchCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.OBJECT_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationObjectCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.STRING_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationStringCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS,
/** * Creates a new InstructionSequenceReplacer. * @param constants any constants referenced by the pattern * instructions and replacement instructions. * @param instructionSequences the instruction sequences to be replaced, * with subsequently the sequence pair index, * the patten/replacement index (0 or 1), * and the instruction index in the sequence. * @param branchTargetFinder a branch target finder that has been * initialized to indicate branch targets * in the visited code. * @param codeAttributeEditor a code editor that can be used for * accumulating changes to the code. * @param extraInstructionVisitor an optional extra visitor for all deleted * load instructions. */ public InstructionSequencesReplacer(Constant[] constants, Instruction[][][] instructionSequences, BranchTargetFinder branchTargetFinder, CodeAttributeEditor codeAttributeEditor, InstructionVisitor extraInstructionVisitor) { super(createInstructionSequenceReplacers(constants, instructionSequences, branchTargetFinder, codeAttributeEditor, extraInstructionVisitor)); }
new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.VARIABLE_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationVariableCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.ARITHMETIC_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationArithmeticCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.CAST_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationCastCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.FIELD_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationFieldCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.BRANCH_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationBranchCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.OBJECT_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationObjectCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS, sequences.STRING_SEQUENCES, branchTargetFinder, codeAttributeEditor, codeSimplificationStringCounter)); new InstructionSequencesReplacer(sequences.CONSTANTS,
/** * Creates a new InstructionSequenceReplacer. * @param patternConstants any constants referenced by the pattern * instruction. * @param instructionSequences the instruction sequences to be replaced, * with subsequently the sequence pair index, * the patten/replacement index (0 or 1), * and the instruction index in the sequence. * @param branchTargetFinder a branch target finder that has been * initialized to indicate branch targets * in the visited code. * @param codeAttributeEditor a code editor that can be used for * accumulating changes to the code. * @param extraInstructionVisitor an optional extra visitor for all deleted * load instructions. */ public InstructionSequencesReplacer(Constant[] patternConstants, Instruction[][][] instructionSequences, BranchTargetFinder branchTargetFinder, CodeAttributeEditor codeAttributeEditor, InstructionVisitor extraInstructionVisitor) { super(createInstructionSequenceReplacers(patternConstants, instructionSequences, branchTargetFinder, codeAttributeEditor, extraInstructionVisitor)); }
new AllAttributeVisitor( new PeepholeOptimizer(codeAttributeEditor, new InstructionSequencesReplacer(____.constants(), instructions, null,
/** * Creates a new InstructionSequenceReplacer. * @param constants any constants referenced by the pattern * instructions and replacement instructions. * @param instructionSequences the instruction sequences to be replaced, * with subsequently the sequence pair index, * the patten/replacement index (0 or 1), * and the instruction index in the sequence. * @param branchTargetFinder a branch target finder that has been * initialized to indicate branch targets * in the visited code. * @param codeAttributeEditor a code editor that can be used for * accumulating changes to the code. * @param extraInstructionVisitor an optional extra visitor for all deleted * load instructions. */ public InstructionSequencesReplacer(Constant[] constants, Instruction[][][] instructionSequences, BranchTargetFinder branchTargetFinder, CodeAttributeEditor codeAttributeEditor, InstructionVisitor extraInstructionVisitor) { super(createInstructionSequenceReplacers(constants, instructionSequences, branchTargetFinder, codeAttributeEditor, extraInstructionVisitor)); }
new AllAttributeVisitor( new PeepholeOptimizer(codeAttributeEditor, new InstructionSequencesReplacer(____.constants(), instructions, null,
new AllAttributeVisitor( new PeepholeOptimizer(codeAttributeEditor, new InstructionSequencesReplacer(____.constants(), instructions, null,
new AllAttributeVisitor( new PeepholeOptimizer(null, codeAttributeEditor, new InstructionSequencesReplacer(constants, instructions, null,
new AllAttributeVisitor( new PeepholeOptimizer(null, codeAttributeEditor, new InstructionSequencesReplacer(constants, instructions, null,
new AllAttributeVisitor( new PeepholeOptimizer(null, codeAttributeEditor, new InstructionSequencesReplacer(constants, instructions, null,
new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS, InstructionSequenceConstants.VARIABLE, branchTargetFinder, codeAttributeEditor, codeSimplificationVariableCounter)); new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS, InstructionSequenceConstants.ARITHMETIC, branchTargetFinder, codeAttributeEditor, codeSimplificationArithmeticCounter)); new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS, InstructionSequenceConstants.CAST, branchTargetFinder, codeAttributeEditor, codeSimplificationCastCounter)); new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS, InstructionSequenceConstants.FIELD, branchTargetFinder, codeAttributeEditor, codeSimplificationFieldCounter)); new InstructionSequencesReplacer(InstructionSequenceConstants.CONSTANTS, InstructionSequenceConstants.BRANCH, branchTargetFinder, codeAttributeEditor, codeSimplificationBranchCounter));