summaryrefslogtreecommitdiffstats
path: root/llvm/docs/CoverageMappingFormat.rst
diff options
context:
space:
mode:
authorXinliang David Li <davidxl@google.com>2016-02-08 18:13:49 +0000
committerXinliang David Li <davidxl@google.com>2016-02-08 18:13:49 +0000
commita82d6c0a4b95177289d0d79d28382ad874b073c2 (patch)
tree05dad5b9812d035c123c2b2db3a25ab13c2f3eb5 /llvm/docs/CoverageMappingFormat.rst
parentcbeb8b24305044e727d1a2c5cb30c9a7148aa495 (diff)
downloadbcm5719-llvm-a82d6c0a4b95177289d0d79d28382ad874b073c2.tar.gz
bcm5719-llvm-a82d6c0a4b95177289d0d79d28382ad874b073c2.zip
[PGO] Enable compression in pgo instrumentation
This reduces sizes of instrumented object files, final binaries, process images, and raw profile data. The format of the indexed profile data remain the same. Differential Revision: http://reviews.llvm.org/D16388 llvm-svn: 260117
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