IPA Scalability Analysis
From Open64 Wiki
Contents |
Introduction
This work mainly focuses on the scalability of IPA framework. It's made up of two parts:
- Total Memory Consumption
- Compiled Binary Size
Total Memory Consumption
We will take 483.Xalan for example, which is the largest application in Spec2006. The peak memory consumption is 700M:
- Heap: 449M
- Stack: 5M
- MMap: 239M
- Unknown: 24M
Heap
The Heap is constituted by the following parts:
- Before IPA: 101M
- IPAA: 160M
- IPA other phases: 18M
- IPO Nodes (Symbol Table & WN): Up to 52M
- IPO Alias Classification: 125M
The total heap memory consumption of IPO phases:
According to the statistics, IPAA and IPO alias classification consume most of the memory. And the symbol tables of IPA_NODES, only consumes a small amount, because the memory will be released after all its in-edges and out-edges are processed.
Stack
It only consumes a little amount of memory, and won't change throughout the who IPO process.
MMap
TBD
Compiled Binary Size
TBD