public LiveCopyInserter(Procedure proc, SsaIdentifierCollection ssaIds) { this.proc = proc; this.ssaIds = ssaIds; this.sla = new SsaLivenessAnalysis(proc, ssaIds); this.doms = proc.CreateBlockDominatorGraph(); }
public LiveCopyInserter(Procedure proc, SsaIdentifierCollection ssaIds) { this.proc = proc; this.ssaIds = ssaIds; this.sla = new SsaLivenessAnalysis(proc, ssaIds); this.doms = proc.CreateBlockDominatorGraph(); }
public WebBuilder(Procedure proc, SsaIdentifierCollection ssaIds, Dictionary <Identifier, LinearInductionVariable> ivs) { this.proc = proc; this.ssaIds = ssaIds; this.ivs = ivs; this.sla = new SsaLivenessAnalysis(proc, ssaIds); this.doms = proc.CreateBlockDominatorGraph(); this.webs = new List <Web>(); }
public WebBuilder(Procedure proc, SsaIdentifierCollection ssaIds, Dictionary<Identifier,LinearInductionVariable> ivs) { this.proc = proc; this.ssaIds = ssaIds; this.ivs = ivs; this.sla = new SsaLivenessAnalysis(proc, ssaIds); this.doms = proc.CreateBlockDominatorGraph(); this.webs = new List<Web>(); }
public WebBuilder(Program program, SsaState ssa, Dictionary <Identifier, LinearInductionVariable> ivs, DecompilerEventListener listener) { this.program = program; this.ssa = ssa; this.ssaIds = ssa.Identifiers; this.ivs = ivs; this.listener = listener; this.sla = new SsaLivenessAnalysis(ssa); this.doms = ssa.Procedure.CreateBlockDominatorGraph(); this.webs = new List <Web>(); }
private void Build(Procedure proc, IProcessorArchitecture arch) { var platform = new DefaultPlatform(null, arch); this.proc = proc; Aliases alias = new Aliases(proc, arch); alias.Transform(); SsaTransform sst = new SsaTransform(new ProgramDataFlow(), proc, proc.CreateBlockDominatorGraph()); ssa = sst.SsaState; ConditionCodeEliminator cce = new ConditionCodeEliminator(ssa.Identifiers, platform); cce.Transform(); ValuePropagator vp = new ValuePropagator(arch, ssa.Identifiers, proc); vp.Transform(); DeadCode.Eliminate(proc, ssa); Coalescer coa = new Coalescer(proc, ssa); coa.Transform(); DeadCode.Eliminate(proc, ssa); sla = new SsaLivenessAnalysis(proc, ssa.Identifiers); sla2 = new SsaLivenessAnalysis2(proc, ssa.Identifiers); sla2.Analyze(); }
public LiveCopyInserter(SsaState ssa) { this.ssaIds = ssa.Identifiers; this.sla = new SsaLivenessAnalysis(ssa); this.doms = ssa.Procedure.CreateBlockDominatorGraph(); }