public LiveCopyInserter(Procedure proc, SsaIdentifierCollection ssaIds)
		{
			this.proc = proc;
			this.ssaIds = ssaIds;
			this.sla = new SsaLivenessAnalysis(proc, ssaIds);
			this.doms = proc.CreateBlockDominatorGraph();
		}
Exemple #2
0
 public LiveCopyInserter(Procedure proc, SsaIdentifierCollection ssaIds)
 {
     this.proc   = proc;
     this.ssaIds = ssaIds;
     this.sla    = new SsaLivenessAnalysis(proc, ssaIds);
     this.doms   = proc.CreateBlockDominatorGraph();
 }
Exemple #3
0
 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>();
 }
Exemple #4
0
 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>();
 }
Exemple #5
0
 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>();
 }
Exemple #6
0
        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();
        }
Exemple #7
0
 public LiveCopyInserter(SsaState ssa)
 {
     this.ssaIds = ssa.Identifiers;
     this.sla    = new SsaLivenessAnalysis(ssa);
     this.doms   = ssa.Procedure.CreateBlockDominatorGraph();
 }