llvm-cov: Split entry blocks in GCNOProfiling.cpp.
authorYuchen Wu <yuchenericwu@hotmail.com>
Fri, 22 Nov 2013 23:07:45 +0000 (23:07 +0000)
committerYuchen Wu <yuchenericwu@hotmail.com>
Fri, 22 Nov 2013 23:07:45 +0000 (23:07 +0000)
commit695de7692c26f5cb57eb67edb6b9ccf6d0ddafa2
tree62841e95639d90165e0d3caf985d5f5266826e11
parente6c749a3ec4ac77f1384834d4871bb5a588d40df
llvm-cov: Split entry blocks in GCNOProfiling.cpp.

gcov expects every function to contain an entry block that
unconditionally branches into the next block. clang does not implement
basic blocks in this manner, so gcov did not output correct branch info
if the entry block branched to multiple blocks.

This change splits every function's entry block into an empty block and
a block with the rest of the instructions. The instrumentation code will
take care of the rest.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195513 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Instrumentation/GCOVProfiling.cpp