code: def _simplify_function(self):
          
  
          # Computing reaching definitions
          rd = self.project.analyses.ReachingDefinitions(func=self.function, func_graph=self.graph, observe_all=True)
  
          simp = self.project.analyses.AILSimplifier(self.function, func_graph=self.graph, reaching_definitions=rd)
  
          for key in list(self._blocks.keys()):
              old_block = self._blocks[key]
              if old_block in simp.blocks:
                  self._blocks[key] = simp.blocks[old_block]
  
          self._update_graph()
docs: Simplify the entire function.
  
          :return:    None