X-Git-Url: https://code.kerkeslager.com/?p=fur;a=blobdiff_plain;f=optimization.py;h=833ffdd1aee7e9fd63e31ec65b043cbc4ebdb44f;hp=7beef773d6d82ecf84da6a04763c2f7367e78fe2;hb=93ca0209c0daf4988ee1ceb509b043a80a8ac40e;hpb=e60f2b20f17609da9b093ac1e08d688bf87bfb4a diff --git a/optimization.py b/optimization.py index 7beef77..833ffdd 100644 --- a/optimization.py +++ b/optimization.py @@ -4,6 +4,7 @@ PUSHING_INSTRUCTIONS_WITHOUT_SIDE_EFFECTS = set( ('push',), ) +# TODO Some instructions may not touch the stack, so if these occur between a push and a drop we could still optimize def push_drop_optimization(ir): ir = tuple(ir) @@ -20,7 +21,7 @@ def push_drop_optimization(ir): yield ir[i] i += 1 -# TODO This can be smarter +# TODO We might be able to trace program flow to eliminate usages even if variables have the same name def unused_pop_optimization(ir): ir = tuple(ir)