PGO: Statically generate data structures
In instrumentation-based profiling, we need a set of data structures to represent the counters. Previously, these were built up during static initialization. Now, they're shoved into a specially-named section so that they show up as an array. As a consequence of the reorganizing symbols, instrumentation data structures for linkonce functions are now correctly coalesced. This is the first step in a larger project to minimize runtime overhead and dependencies in instrumentation-based profilng. The larger picture includes removing all initialization overhead and making the dependency on libc optional. <rdar://problem/15943240> llvm-svn: 204080
Showing
- clang/lib/CodeGen/CGBlocks.cpp 1 addition, 1 deletionclang/lib/CodeGen/CGBlocks.cpp
- clang/lib/CodeGen/CGObjC.cpp 1 addition, 1 deletionclang/lib/CodeGen/CGObjC.cpp
- clang/lib/CodeGen/CodeGenFunction.cpp 1 addition, 1 deletionclang/lib/CodeGen/CodeGenFunction.cpp
- clang/lib/CodeGen/CodeGenPGO.cpp 148 additions, 84 deletionsclang/lib/CodeGen/CodeGenPGO.cpp
- clang/lib/CodeGen/CodeGenPGO.h 13 additions, 8 deletionsclang/lib/CodeGen/CodeGenPGO.h
- clang/test/Profile/c-counter-overflows.c 0 additions, 1 deletionclang/test/Profile/c-counter-overflows.c
- clang/test/Profile/c-general.c 10 additions, 10 deletionsclang/test/Profile/c-general.c
- clang/test/Profile/c-linkage.c 31 additions, 0 deletionsclang/test/Profile/c-linkage.c
- clang/test/Profile/cxx-class.cpp 4 additions, 4 deletionsclang/test/Profile/cxx-class.cpp
- clang/test/Profile/cxx-linkage.cpp 30 additions, 0 deletionsclang/test/Profile/cxx-linkage.cpp
- clang/test/Profile/cxx-throws.cpp 2 additions, 2 deletionsclang/test/Profile/cxx-throws.cpp
- clang/test/Profile/objc-general.m 3 additions, 3 deletionsclang/test/Profile/objc-general.m
Loading
Please register or sign in to comment