Refactor the AutoFDO implementation.
commit8c4def1038f55419a795cc52b402945f03817a0c
authordehao <dehao@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Aug 2013 03:14:37 +0000 (9 03:14 +0000)
committerdehao <dehao@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Aug 2013 03:14:37 +0000 (9 03:14 +0000)
tree6a6a4f16fb273dc4605040fb688de172a6a5b220
parent544fe9ffa8f5eeb831cb0cdc2aa8cfdd2080c82d
Refactor the AutoFDO implementation.

1. Use new profile format (tree based).
2. Rewrite autofdo-profile.c using C++.
3. Remove dependencies in other modules.

The new profile format has the following benefits:

1. More space efficient: profile size is usually 30%~40% as the original format.
2. Make iterative indirect call promotion possible.
3. Does not depend on file name any more. (more tolerant to source change)

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/google@201615 138bc75d-0d04-0410-961f-82ee72b054a4
gcc-4_8/gcc/Makefile.in
gcc-4_8/gcc/auto-profile.c
gcc-4_8/gcc/auto-profile.h
gcc-4_8/gcc/cgraphbuild.c
gcc-4_8/gcc/cgraphclones.c
gcc-4_8/gcc/cgraphunit.c
gcc-4_8/gcc/predict.c
gcc-4_8/gcc/value-prof.c