public void TvrReplaceInMem() { var id1 = new Identifier("pptr", PrimitiveType.Word32, null); var id2 = new Identifier("ptr", PrimitiveType.Word32, null); var id3 = new Identifier("v", PrimitiveType.Word32, null); var ass1 = new Assignment(id2, MemLoad(id1, 0, PrimitiveType.Word32)); var ass2 = new Assignment(id3, MemLoad(id2, 0, PrimitiveType.Word32)); eqb.VisitAssignment(ass1); eqb.VisitAssignment(ass2); var prog = new Program(); prog.Architecture = new FakeArchitecture(); prog.Platform = new DefaultPlatform(null, prog.Architecture); trco = new TraitCollector(factory, store, dtb, prog); trco.VisitAssignment(ass1); trco.VisitAssignment(ass2); dtb.BuildEquivalenceClassDataTypes(); var tvr = new TypeVariableReplacer(store); tvr.ReplaceTypeVariables(); Verify("Typing/TvrReplaceInMem.txt"); }
public void DtbRepeatedLoads() { Identifier pfoo = new Identifier("pfoo", PrimitiveType.Word32, null); Identifier x = new Identifier("x", PrimitiveType.Word32, null); Assignment ass1 = new Assignment(x, MemLoad(pfoo, 4, PrimitiveType.Word32)); Assignment ass2 = new Assignment(x, MemLoad(pfoo, 4, PrimitiveType.Word32)); ass1.Accept(eqb); ass2.Accept(eqb); TraitCollector trco = new TraitCollector(factory, store, dtb, program); trco.VisitAssignment(ass1); trco.VisitAssignment(ass2); dtb.BuildEquivalenceClassDataTypes(); Verify("Typing/DtbRepeatedLoads.txt"); }
public void DtbSameMemFetch() { Identifier foo = new Identifier("foo", PrimitiveType.Word32, null); Identifier bar = new Identifier("bar", PrimitiveType.Word16, null); Identifier baz = new Identifier("baz", PrimitiveType.Word16, null); Assignment ass1 = new Assignment(bar, MemLoad(foo, 4, PrimitiveType.Word16)); Assignment ass2 = new Assignment(baz, MemLoad(foo, 4, PrimitiveType.Word16)); ass1.Accept(eqb); ass2.Accept(eqb); TraitCollector trco = new TraitCollector(factory, store, dtb, program); trco.VisitAssignment(ass1); trco.VisitAssignment(ass2); dtb.BuildEquivalenceClassDataTypes(); Verify("Typing/DtbSameMemFetch.txt"); }
public void DtbSameMemFetch() { Identifier foo = new Identifier("foo", PrimitiveType.Word32, null); Identifier bar = new Identifier("bar", PrimitiveType.Word16, null); Identifier baz = new Identifier("baz", PrimitiveType.Word16, null); Assignment ass1 = new Assignment(bar, MemLoad(foo, 4, PrimitiveType.Word16)); Assignment ass2 = new Assignment(baz, MemLoad(foo, 4, PrimitiveType.Word16)); ass1.Accept(eqb); ass2.Accept(eqb); TraitCollector trco = new TraitCollector(factory, store, dtb, prog); trco.VisitAssignment(ass1); trco.VisitAssignment(ass2); dtb.BuildEquivalenceClassDataTypes(); Verify("Typing/DtbSameMemFetch.txt"); }
public void DtbRepeatedLoads() { Identifier pfoo = new Identifier("pfoo", PrimitiveType.Word32, null); Identifier x = new Identifier("x", PrimitiveType.Word32, null); Assignment ass1 = new Assignment(x, MemLoad(pfoo, 4, PrimitiveType.Word32)); Assignment ass2 = new Assignment(x, MemLoad(pfoo, 4, PrimitiveType.Word32)); ass1.Accept(eqb); ass2.Accept(eqb); TraitCollector trco = new TraitCollector(factory, store, dtb, prog); trco.VisitAssignment(ass1); trco.VisitAssignment(ass2); dtb.BuildEquivalenceClassDataTypes(); Verify("Typing/DtbRepeatedLoads.txt"); }