mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-01 04:29:57 +00:00
Allow multiple raw profiles to coexist in a single .profraw file, given the following conditions: - Zero padding at the end of or between profiles will be skipped. - Each profile must start with a valid header. - Mixing endianness or pointer sizes in concatenated profiles files is not allowed. This is needed to handle cases where a program's shared libraries are profiled as well as the main executable itself, as we'll need to emit each executable's counters. Combining the tables in the runtime would be expensive for the instrumented program. rdar://16918688 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208938 91177308-0d34-0410-b5e6-96231b3b80d8
65 lines
2.4 KiB
Plaintext
65 lines
2.4 KiB
Plaintext
RUN: printf '\201rforpl\377' > %t-foo.profraw
|
|
RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw
|
|
RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw
|
|
RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw
|
|
RUN: printf '\3\0\0\0\0\0\0\0' >> %t-foo.profraw
|
|
RUN: printf '\0\0\4\0\1\0\0\0' >> %t-foo.profraw
|
|
RUN: printf '\0\0\4\0\2\0\0\0' >> %t-foo.profraw
|
|
|
|
RUN: printf '\3\0\0\0' >> %t-foo.profraw
|
|
RUN: printf '\1\0\0\0' >> %t-foo.profraw
|
|
RUN: printf '\1\0\0\0\0\0\0\0' >> %t-foo.profraw
|
|
RUN: printf '\0\0\4\0\2\0\0\0' >> %t-foo.profraw
|
|
RUN: printf '\0\0\4\0\1\0\0\0' >> %t-foo.profraw
|
|
|
|
RUN: printf '\023\0\0\0\0\0\0\0' >> %t-foo.profraw
|
|
RUN: printf 'foo' >> %t-foo.profraw
|
|
|
|
RUN: printf '\201rforpl\377' > %t-bar.profraw
|
|
RUN: printf '\1\0\0\0\0\0\0\0' >> %t-bar.profraw
|
|
RUN: printf '\1\0\0\0\0\0\0\0' >> %t-bar.profraw
|
|
RUN: printf '\2\0\0\0\0\0\0\0' >> %t-bar.profraw
|
|
RUN: printf '\3\0\0\0\0\0\0\0' >> %t-bar.profraw
|
|
RUN: printf '\0\0\6\0\1\0\0\0' >> %t-bar.profraw
|
|
RUN: printf '\0\0\6\0\2\0\0\0' >> %t-bar.profraw
|
|
|
|
RUN: printf '\3\0\0\0' >> %t-bar.profraw
|
|
RUN: printf '\2\0\0\0' >> %t-bar.profraw
|
|
RUN: printf '\2\0\0\0\0\0\0\0' >> %t-bar.profraw
|
|
RUN: printf '\0\0\6\0\2\0\0\0' >> %t-bar.profraw
|
|
RUN: printf '\0\0\6\0\1\0\0\0' >> %t-bar.profraw
|
|
|
|
RUN: printf '\067\0\0\0\0\0\0\0' >> %t-bar.profraw
|
|
RUN: printf '\101\0\0\0\0\0\0\0' >> %t-bar.profraw
|
|
RUN: printf 'bar' >> %t-bar.profraw
|
|
|
|
Versions of the profiles that are padded to eight byte alignment.
|
|
RUN: cat %t-foo.profraw > %t-foo-padded.profraw
|
|
RUN: printf '\0\0\0\0\0' >> %t-foo-padded.profraw
|
|
RUN: cat %t-bar.profraw > %t-bar-padded.profraw
|
|
RUN: printf '\0\0\0\0\0' >> %t-bar-padded.profraw
|
|
|
|
RUN: cat %t-foo.profraw %t-bar.profraw > %t-nopad.profraw
|
|
RUN: cat %t-foo-padded.profraw %t-bar.profraw > %t-pad-between.profraw
|
|
RUN: cat %t-foo-padded.profraw %t-bar-padded.profraw > %t-pad.profraw
|
|
|
|
RUN: llvm-profdata show %t-nopad.profraw -all-functions -counts | FileCheck %s
|
|
RUN: llvm-profdata show %t-pad-between.profraw -all-functions -counts | FileCheck %s
|
|
RUN: llvm-profdata show %t-pad.profraw -all-functions -counts | FileCheck %s
|
|
|
|
CHECK: Counters:
|
|
CHECK: foo:
|
|
CHECK: Hash: 0x0000000000000001
|
|
CHECK: Counters: 1
|
|
CHECK: Function count: 19
|
|
CHECK: Block counts: []
|
|
CHECK: bar:
|
|
CHECK: Hash: 0x0000000000000002
|
|
CHECK: Counters: 2
|
|
CHECK: Function count: 55
|
|
CHECK: Block counts: [65]
|
|
CHECK: Functions shown: 2
|
|
CHECK: Total functions: 2
|
|
CHECK: Maximum function count: 55
|
|
CHECK: Maximum internal block count: 65
|