llvm-project/clang/test/Profile
Serge Pavlov 3a5614599a [PGO] Instrument only base constructors and destructors.
Constructors and destructors may be represented by several functions
in IR. Only base structors correspond to source code, others are
small pieces of code and eventually call the base variant. In this
case instrumentation of non-base structors has little sense, this
fix remove it. Now profile data of a declaration corresponds to
exactly one function in IR, it agrees with the current logic of the
profile data loading.

This change fixes PR24996.

Differential Revision: http://reviews.llvm.org/D15158

llvm-svn: 254876
2015-12-06 14:32:39 +00:00
..
Inputs Add GCC-compatible flags -fprofile-generate and -fprofile-use. 2015-07-09 17:23:53 +00:00
README PGO: Clarify the testing README 2014-03-11 18:18:12 +00:00
c-attributes.c test: Use llvm-profdata merge in Profile tests 2014-04-17 22:49:06 +00:00
c-captured.c Changed renaming of local symbols by inserting a dot vefore the numeric suffix 2015-05-12 16:48:43 +00:00
c-counter-overflows.c IR: Make metadata typeless in assembly, clang side 2014-12-15 19:10:08 +00:00
c-general.c InstrProf: Add a couple of checks to this test 2015-05-01 22:52:48 +00:00
c-generate.c InstrProf: Update name of compiler-rt routine for setting filename 2015-05-12 21:23:16 +00:00
c-linkage-available_externally.c [PGO] Test update for revision 253484. 2015-11-18 18:15:55 +00:00
c-linkage.c InstrProf: Make profile variables private to reduce binary size overhead 2015-03-20 06:34:38 +00:00
c-outdated-data.c test: Use llvm-profdata merge in Profile tests 2014-04-17 22:49:06 +00:00
c-unprofiled-blocks.c test: Use llvm-profdata merge in Profile tests 2014-04-17 22:49:06 +00:00
c-unprofiled.c CodeGen: Improve warnings about uninstrumented files when profiling 2014-06-26 01:45:07 +00:00
c-unreachable-after-switch.c InstrProf: Make profile variables private to reduce binary size overhead 2015-03-20 06:34:38 +00:00
cxx-class.cpp IR: Make metadata typeless in assembly, clang side 2014-12-15 19:10:08 +00:00
cxx-implicit.cpp CodeGen: Avoid instrumenting implicit Decls more effectively 2014-04-25 07:20:05 +00:00
cxx-lambda.cpp Fix a couple of tests in clang/test to match "x86_thiscallcc" introduced in r240971. 2015-06-30 08:02:26 +00:00
cxx-linkage.cpp InstrProf: Make profile variables private to reduce binary size overhead 2015-03-20 06:34:38 +00:00
cxx-rangefor.cpp Account for calling convention specifiers in function definitions in IR test cases 2015-06-29 17:29:50 +00:00
cxx-structors.cpp [PGO] Instrument only base constructors and destructors. 2015-12-06 14:32:39 +00:00
cxx-templates.cpp Account for calling convention specifiers in function definitions in IR test cases 2015-06-29 17:29:50 +00:00
cxx-throws.cpp InstrProf: Match a bit less strictly - some targets may add signext 2015-04-28 06:55:23 +00:00
cxx-virtual-destructor-calls.cpp [PGO] Instrument only base constructors and destructors. 2015-12-06 14:32:39 +00:00
func-entry.c Fix PPC failure. Adjust CHECK pattern. 2015-05-28 11:25:52 +00:00
gcc-flag-compatibility.c Fix a soon to be invalid test 2015-10-29 04:04:07 +00:00
objc-general.m InstrProf: Make profile variables private to reduce binary size overhead 2015-03-20 06:34:38 +00:00
profile-does-not-exist.c Display profile file name when emitting a file not found diagnostic. 2015-06-25 22:56:00 +00:00

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.