llvm-project/clang/test/Profile
Reid Kleckner 4fb3502bc9 [InstrProf] Use separate comdat group for data and counters
Summary:
I hadn't realized that instrumentation runs before inlining, so we can't
use the function as the comdat group. Doing so can create relocations
against discarded sections when references to discarded __profc_
variables are inlined into functions outside the function's comdat
group.

In the future, perhaps we should consider standardizing the comdat group
names that ELF and COFF use. It will save object file size, since
__profv_$sym won't appear in the symbol table again.

Reviewers: xur, vsk

Subscribers: eraman, hiraditya, cfe-commits, #sanitizers, llvm-commits

Tags: #clang, #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D58737

llvm-svn: 355044
2019-02-27 23:38:44 +00:00
..
Inputs
README
c-avoid-direct-call.c
c-captured.c [FileCheck] Add -allow-deprecated-dag-overlap to failing clang tests 2018-07-11 20:26:20 +00:00
c-counter-overflows.c
c-general.c [FileCheck] Add -allow-deprecated-dag-overlap to failing clang tests 2018-07-11 20:26:20 +00:00
c-generate.c
c-indirect-call.c
c-linkage-available_externally.c
c-linkage.c
c-outdated-data.c
c-ternary.c
c-unprofiled-blocks.c
c-unprofiled.c
c-unreachable-after-switch.c
cxx-abc-deleting-dtor.cpp [MS] Don't emit coverage for deleting dtors 2019-02-26 20:42:52 +00:00
cxx-class.cpp
cxx-hash-v2.cpp
cxx-implicit.cpp
cxx-indirect-call.cpp
cxx-lambda.cpp Fix clang tests broken by r353547 that depend on InstrProf 2019-02-10 20:17:07 +00:00
cxx-linkage.cpp
cxx-missing-bodies.cpp
cxx-rangefor.cpp Fix clang tests broken by r353547 that depend on InstrProf 2019-02-10 20:17:07 +00:00
cxx-stmt-initializers.cpp Fix clang tests broken by r353547 that depend on InstrProf 2019-02-10 20:17:07 +00:00
cxx-structors.cpp
cxx-templates.cpp [InstrProf] Use separate comdat group for data and counters 2019-02-27 23:38:44 +00:00
cxx-throws.cpp Fix clang tests broken by r353547 that depend on InstrProf 2019-02-10 20:17:07 +00:00
cxx-virtual-destructor-calls.cpp Fix clang tests broken by r353547 that depend on InstrProf 2019-02-10 20:17:07 +00:00
def-assignop.cpp
def-ctors.cpp
def-dtors.cpp
func-entry.c
gcc-flag-compatibility.c
objc-general.m
profile-does-not-exist.c
profile-summary.c

README

These are tests for instrumentation based profiling.  This specifically means
the -fprofile-instr-generate and -fprofile-instr-use driver flags.

Tests in this directory should usually test both:

  - the generation of instrumentation (-fprofile-instr-generate), and
  - the use of profile data from instrumented runs (-fprofile-instr-use).

In order to test -fprofile-instr-use without actually running an instrumented
program, .profdata files are checked into Inputs/.

The input source files must include a main function such that building with
-fprofile-instr-generate and running the resulting program generates the same
.profdata file that is consumed by the tests for -fprofile-instr-use.  Even
tests that only check -fprofile-instr-use should include such a main function,
so that profile data can be regenerated as the .profdata file format evolves.