llvm-6502/lib/IR
Yuchen Wu cbbd20879e Fixed llvm-cov to count edges instead of blocks.
This was a fundamental flaw in llvm-cov where it treated the values in
the GCDA files as block counts instead of edge counts. This created
incorrect line counts when branching was present. Instead, the edge
counts should be summed to obtain the correct block count.

The fix was tested using custom test files as well as single source
files from the test-suite directory. The behaviour can be verified by
reading the GCOV documentation that describes the GCDA spec ("ARC_COUNTS
gives the counter values for those arcs that are instrumented") and the
header description provided by GCOVProfiling.cpp ("instruments the code
that runs to records (sic) the edges between blocks that run and emit a
complementary "gcda" file on exit").

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193299 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-24 01:51:04 +00:00
..
AsmWriter.cpp Use address-taken to disambiguate global variable and indirect memops. 2013-10-23 17:28:19 +00:00
AsmWriter.h
AttributeImpl.h
Attributes.cpp
AutoUpgrade.cpp Remove x86_sse42_crc32_64_8 intrinsic. It has no functional difference from x86_sse42_crc32_32_8 and was not mapped to a clang builtin. I'm not even sure why this form of the instruction is even called out explicitly in the docs. Also add AutoUpgrade support to convert it into the other intrinsic with appropriate trunc and zext. 2013-10-15 05:20:47 +00:00
BasicBlock.cpp
CMakeLists.txt
ConstantFold.cpp
ConstantFold.h
Constants.cpp
ConstantsContext.h
Core.cpp llvm-c: Add LLVMPrintTypeToString 2013-10-22 06:58:34 +00:00
DataLayout.cpp
DebugInfo.cpp Changing DebugInfoFinder to iterate over all the compile units. 2013-10-17 10:27:12 +00:00
DebugLoc.cpp
DIBuilder.cpp Add an assert that we have a scope that matters for methods 2013-10-15 23:31:36 +00:00
Dominators.cpp
Function.cpp
GCOV.cpp Fixed llvm-cov to count edges instead of blocks. 2013-10-24 01:51:04 +00:00
Globals.cpp Use address-taken to disambiguate global variable and indirect memops. 2013-10-23 17:28:19 +00:00
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp
Instructions.cpp
IntrinsicInst.cpp
IRBuilder.cpp
LeakDetector.cpp
LeaksContext.h
LLVMBuild.txt
LLVMContext.cpp
LLVMContextImpl.cpp
LLVMContextImpl.h
Makefile
Metadata.cpp
Module.cpp
Pass.cpp
PassManager.cpp
PassRegistry.cpp
PrintModulePass.cpp
SymbolTableListTraitsImpl.h
Type.cpp
TypeFinder.cpp TypeFinder: prefer iterative algorithm to keep stack usage low. 2013-10-16 04:10:06 +00:00
Use.cpp
User.cpp
Value.cpp
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp Add support for metadata representing .ident directives. 2013-10-16 01:49:05 +00:00