In "Efficient Path Profiling", a fast method is given to do path
profiling. The overhead is around 30%.
Although path profiling can provide more information than edge
profiling, edge profiling is still used for compiler optimization
because it is easier to collect, provides accurate information about
the
behavior of branches. In "Edge Profiling versus Path Profiling",
a
method is given to select hot paths according to edge profiling. Also,
the method can judge if an edge profiling is enough.
According to these papers, I think the concept of path becomes more
and
more important to both architeture and compiler. It can improve the
accuracy of branch prediction, and trace cache can improve the
utilization of instruction cache. It also offers compiler more
opportunities of optimization.
Zhijie SHI