]> Repositorios git - scryer-prolog.git/commitdiff
remove add_term_to_free_list from AddToList (#1684)
authorMark Thom <[email protected]>
Wed, 11 Jan 2023 01:24:38 +0000 (18:24 -0700)
committerMark Thom <[email protected]>
Wed, 11 Jan 2023 01:24:48 +0000 (18:24 -0700)
src/codegen.rs
src/debray_allocator.rs

index dc03a19a4d705fe479709f53b2e56d5544063205..79574005318e829024a6abe35dd03879c2189ff2 100644 (file)
@@ -243,22 +243,14 @@ fn trim_structure_by_last_arg(instr: &mut Instruction, last_arg: &Term) {
 }
 
 trait AddToFreeList<'a, Target: CompilationTarget<'a>> {
-    fn add_term_to_free_list(&mut self, r: RegType);
     fn add_subterm_to_free_list(&mut self, term: &Term);
 }
 
 impl<'a, 'b> AddToFreeList<'a, FactInstruction> for CodeGenerator<'b> {
-    #[inline(always)]
-    fn add_term_to_free_list(&mut self, r: RegType) {
-        self.marker.add_to_free_list(r);
-    }
-
     fn add_subterm_to_free_list(&mut self, _term: &Term) {}
 }
 
 impl<'a, 'b> AddToFreeList<'a, QueryInstruction> for CodeGenerator<'b> {
-    fn add_term_to_free_list(&mut self, _r: RegType) {}
-
     #[inline(always)]
     fn add_subterm_to_free_list(&mut self, term: &Term) {
         if let Some(cell) = structure_cell(term) {
@@ -382,8 +374,6 @@ impl<'b> CodeGenerator<'b> {
                     self.marker.mark_non_var::<Target>(lvl, term_loc, cell, &mut target);
                     target.push(Target::to_structure(name, terms.len(), cell.get()));
 
-                    <CodeGenerator<'b> as AddToFreeList<'a, Target>>::add_term_to_free_list(self, cell.get());
-
                     if let Some(instr) = target.last_mut() {
                         if let Some(term) = terms.last() {
                             trim_structure_by_last_arg(instr, term);
@@ -402,8 +392,6 @@ impl<'b> CodeGenerator<'b> {
                     self.marker.mark_non_var::<Target>(lvl, term_loc, cell, &mut target);
                     target.push(Target::to_list(lvl, cell.get()));
 
-                    <CodeGenerator<'b> as AddToFreeList<'a, Target>>::add_term_to_free_list(self, cell.get());
-
                     self.subterm_to_instr::<Target>(head, term_loc, &mut target);
                     self.subterm_to_instr::<Target>(tail, term_loc, &mut target);
 
index 98c1bd6e5b16aa653fcde8557e887984770ff20e..51ac8f70a5328714ada6501dfe7444b6c04c5fff 100644 (file)
@@ -214,10 +214,8 @@ impl DebrayAllocator {
 
     pub fn add_to_free_list(&mut self, r: RegType) {
         if let RegType::Temp(r) = r {
-            if r > self.arity {
-                self.in_use.remove(&r);
-                self.free_list.push(r);
-            }
+            self.in_use.remove(&r);
+            self.free_list.push(r);
         }
     }
 }