From d29e870a5d3db3909bc1fcc6ac087cbd24d7a253 Mon Sep 17 00:00:00 2001
From: Kaushik Kulkarni <kaushikcfd@gmail.com>
Date: Mon, 6 Aug 2018 05:05:41 -0500
Subject: [PATCH] basic inlining works.

---
 loopy/program.py            | 2 +-
 loopy/transform/callable.py | 7 +++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/loopy/program.py b/loopy/program.py
index 510f9ec86..4428e9823 100644
--- a/loopy/program.py
+++ b/loopy/program.py
@@ -563,7 +563,7 @@ class ProgramCallablesInfo(ImmutableRecord):
 
         num_times_callables_called[func_id] -= instances
 
-        if num_times_callables_called == 0:
+        if num_times_callables_called[func_id] == 0:
             num_times_callables_called.pop(func_id)
             history.pop(func_id)
             resolved_functions.pop(func_id)
diff --git a/loopy/transform/callable.py b/loopy/transform/callable.py
index 0edf5697a..3549d1b75 100644
--- a/loopy/transform/callable.py
+++ b/loopy/transform/callable.py
@@ -570,11 +570,12 @@ def inline_callable_kernel(program, function_name):
     from loopy.preprocess import infer_arg_descr
     program = infer_arg_descr(program)
     program_callables_info = program.program_callables_info
+    old_program_callables_info = program_callables_info.copy()
 
     edited_callable_kernels = {}
 
-    for func_id, in_knl_callable in program.program_callables_info.items():
-        if function_name not in program_callables_info.history[func_id] and (
+    for func_id, in_knl_callable in old_program_callables_info.items():
+        if function_name not in old_program_callables_info.history[func_id] and (
                 isinstance(in_knl_callable, CallableKernel)):
             caller_kernel = in_knl_callable.subkernel
             caller_kernel, program_callables_info = (
@@ -594,6 +595,8 @@ def inline_callable_kernel(program, function_name):
     program_callables_info = program_callables_info.copy(
             resolved_functions=new_resolved_functions)
 
+    return program.copy(program_callables_info=program_callables_info)
+
 # }}}
 
 
-- 
GitLab