This patch results in reduction of few PassModel classes. I have checked these
changes with existing test cases.
As per my understanding, runImpl will be statically resolved and inlined and will
not cause any function call overhead. In case, run methods changes to take more
arguments, though possibility is rare, this will be easy to extend.
Are these changes ok?