Package harpoon.Analysis.Quads.DeepInliner

This package contains code that perform inlining.

See:
          Description

Class Summary
DeepInliner DeepInliner contains the code responsible with inlining a set of InlineChains.
InlineChain InlineChain models an arbitrary-length call path that needs to be inlined.
OneLevelInliner OneLevelInliner contains the code that inlines a single CALL instruction.
 

Package harpoon.Analysis.Quads.DeepInliner Description

This package contains code that perform inlining. There are two classes that contain static methods that perform inlining:

Both classes perform inlining by mutating the caller code from a caching code factory. A more elegant alternative would have been to construct an HCodeFactory that produces the transformed code on demand. Still, the complications attached to the arbitrary-length inlining prevented us from such an elegant solution; the current, simple solution also has the advantage of being easier to debug.

Author:
Alex Salcianu - salcianu@alum.mit.edu