Package jadx.core.dex.visitors.ssa
Class SSATransform
java.lang.Object
jadx.core.dex.visitors.AbstractVisitor
jadx.core.dex.visitors.ssa.SSATransform
- All Implemented Interfaces:
IDexTreeVisitor
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic PhiInsnaddPhi(MethodNode mth, BlockNode block, int regNum) private static voidbindPhiArg(RenameState state, PhiInsn phiInsn) private static voidFix last try/catch assign instructionprivate static voidfixPhiInTryCatch(MethodNode mth, PhiInsn phi, ExcHandlerAttr handlerAttr) private static booleanfixPhiWithSameArgs(MethodNode mth, BlockNode block, PhiInsn phi) private static booleanfixUselessPhi(MethodNode mth) private static voidhidePhiInsns(MethodNode mth) private static voidinitPhiInEnterBlock(RenameState initState) private static booleaninlinePhiInsn(MethodNode mth, BlockNode block, PhiInsn phi, RegisterArg inlineArg) private static booleanisSameArgs(PhiInsn phi) private static SSAVarisSameMove(PhiInsn phi) private static voidprivate static voidmarkThisArgs(RegisterArg thisArg) private static voidplacePhi(MethodNode mth, int regNum, LiveVarAnalysis la) private static voidprocess(MethodNode mth) private static booleanprivate static booleanremovePhiList(MethodNode mth, List<PhiInsn> insnToRemove) private static voidprivate static voidprivate static voidrenameVarsInBlock(MethodNode mth, RenameState state) private static booleanreplacePhiWithMove(MethodNode mth, BlockNode block, PhiInsn phi, RegisterArg arg) private static booleanshouldSkipInsnResult(MethodNode mth, InsnNode insn, ExcHandlerAttr handlerAttr) private static voidvoidvisit(MethodNode mth) Visit methodMethods inherited from class jadx.core.dex.visitors.AbstractVisitor
getName, init, toString, visit
-
Constructor Details
-
SSATransform
public SSATransform()
-
-
Method Details
-
visit
Description copied from interface:IDexTreeVisitorVisit method- Specified by:
visitin interfaceIDexTreeVisitor- Overrides:
visitin classAbstractVisitor- Throws:
JadxException
-
process
-
placePhi
-
addPhi
-
renameVariables
-
initPhiInEnterBlock
-
renameVarsInBlock
-
bindPhiArg
-
fixLastAssignInTry
Fix last try/catch assign instruction -
fixPhiInTryCatch
-
shouldSkipInsnResult
private static boolean shouldSkipInsnResult(MethodNode mth, InsnNode insn, ExcHandlerAttr handlerAttr) -
removeBlockerInsns
-
tryToFixUselessPhi
-
fixUselessPhi
-
fixPhiWithSameArgs
-
isSameArgs
-
isSameMove
-
removePhiList
-
replacePhiWithMove
private static boolean replacePhiWithMove(MethodNode mth, BlockNode block, PhiInsn phi, RegisterArg arg) -
inlinePhiInsn
private static boolean inlinePhiInsn(MethodNode mth, BlockNode block, PhiInsn phi, RegisterArg inlineArg) -
markThisArgs
-
markOneArgAsThis
-
hidePhiInsns
-
removeUnusedInvokeResults
-