summaryrefslogtreecommitdiffstats
path: root/llvm/docs/CoverageMappingFormat.rst
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/docs/CoverageMappingFormat.rst')
-rw-r--r--llvm/docs/CoverageMappingFormat.rst28
1 files changed, 19 insertions, 9 deletions
diff --git a/llvm/docs/CoverageMappingFormat.rst b/llvm/docs/CoverageMappingFormat.rst
index 97809d56290..47d84e37619 100644
--- a/llvm/docs/CoverageMappingFormat.rst
+++ b/llvm/docs/CoverageMappingFormat.rst
@@ -260,20 +260,31 @@ The coverage mapping variable generated by Clang has 3 fields:
i32 20, ; The length of the string that contains the encoded coverage mapping data
i32 0, ; Coverage mapping format version
},
- [2 x { i8*, i32, i32, i64 }] [ ; Function records
- { i8*, i32, i32, i64 } { i8* getelementptr inbounds ([3 x i8]* @__profn_foo, i32 0, i32 0), ; Function's name
- i32 3, ; Function's name length
+ [2 x { i64, i32, i64 }] [ ; Function records
+ { i64, i32, i64 } {
+ i64 0x5cf8c24cdb18bdac, ; Function's name MD5
i32 9, ; Function's encoded coverage mapping data string length
i64 0 ; Function's structural hash
},
- { i8*, i32, i32, i64 } { i8* getelementptr inbounds ([3 x i8]* @__profn_bar, i32 0, i32 0), ; Function's name
- i32 3, ; Function's name length
+ { i64, i32, i64 } {
+ i64 0xe413754a191db537, ; Function's name MD5
i32 9, ; Function's encoded coverage mapping data string length
i64 0 ; Function's structural hash
}],
[40 x i8] c"..." ; Encoded data (dissected later)
}, section "__llvm_covmap", align 8
+The function record layout has evolved since version 1. In version 1, the function record for *foo* is defined as follows:
+
+.. code-block:: llvm
+
+ { i8*, i32, i32, i64 } { i8* getelementptr inbounds ([3 x i8]* @__profn_foo, i32 0, i32 0), ; Function's name
+ i32 3, ; Function's name length
+ i32 9, ; Function's encoded coverage mapping data string length
+ i64 0 ; Function's structural hash
+ }
+
+
Coverage Mapping Header:
------------------------
@@ -296,11 +307,10 @@ A function record is a structure of the following type:
.. code-block:: llvm
- { i8*, i32, i32, i64 }
+ { i64, i32, i64 }
-It contains the pointer to the function's name, function's name length,
-the length of the encoded mapping data for that function, and function's
-hash value.
+It contains function name's MD5, the length of the encoded mapping data for that function, and function's
+structural hash value.
Encoded data:
-------------
OpenPOWER on IntegriCloud