The biggest change for Inter-procedural Analysis is scalability. For parallelism, we want a stable and compact intermediate representation. Then we can do transformations. Some of these transformations are local, and some are global.
local:
-
Devirtualization
-
Dead store elimination
-
Field reordering global:
-
cross-module inlining
-
Virtual function inlining
-
Inter-procedural constant propagation