Function pass manager objects were being created, but never destroyed.
When a function pass manager object is destroyed, it destroys all pass objects that have been registered. Previously pass objects were being reused, which is why the pass managers were never being freed, but this results in a large memory leak. This commit shuffles things around so the pass managers can be freed.
Function pass manager objects were being created, but never destroyed.
When a function pass manager object is destroyed, it destroys all pass objects that have been registered. Previously pass objects were being reused, which is why the pass managers were never being freed, but this results in a large memory leak. This commit shuffles things around so the pass managers can be freed.
a891