hanchenye-llvm-project/clang/test/Profile
Vedant Kumar 33d0a1ccd3 [Profile] Do not assign counters to functions without bodies
The root cause of the issues reported in D32406 and D34680 is that clang
instruments functions without bodies. Make it stop doing that, and also
teach it how to use old (incorrectly generated) profiles without
crashing.

llvm-svn: 306883
2017-06-30 21:02:14 +00:00
..
Inputs [Profile] Do not assign counters to functions without bodies 2017-06-30 21:02:14 +00:00
README
c-avoid-direct-call.c
c-captured.c
c-counter-overflows.c
c-general.c
c-generate.c [profiling] Tighten test cases which refer to "profn" vars. NFC. 2017-02-18 01:50:14 +00:00
c-indirect-call.c Add test for D21736. 2016-11-22 20:03:40 +00:00
c-linkage-available_externally.c
c-linkage.c
c-outdated-data.c [Profile] Add off-by-default -Wprofile-instr-missing warning 2017-04-27 17:30:58 +00:00
c-ternary.c Weaken test/Profile/c-ternary.c 2017-02-25 07:21:23 +00:00
c-unprofiled-blocks.c
c-unprofiled.c
c-unreachable-after-switch.c
cxx-class.cpp [profiling] PR31992: Don't skip interesting non-base constructors 2017-02-24 01:15:19 +00:00
cxx-implicit.cpp
cxx-indirect-call.cpp Add test for D21736. 2016-11-22 20:03:40 +00:00
cxx-lambda.cpp
cxx-linkage.cpp
cxx-missing-bodies.cpp [Profile] Do not assign counters to functions without bodies 2017-06-30 21:02:14 +00:00
cxx-rangefor.cpp
cxx-stmt-initializers.cpp [Coverage] Support for C++17 if initializers 2016-10-14 23:38:16 +00:00
cxx-structors.cpp Fix a typo. NFC. 2017-06-30 21:02:14 +00:00
cxx-templates.cpp
cxx-throws.cpp
cxx-virtual-destructor-calls.cpp [profiling] Update test cases to deal with name variable change (NFC) 2017-02-14 20:03:56 +00:00
def-assignop.cpp
def-ctors.cpp
def-dtors.cpp
func-entry.c Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
gcc-flag-compatibility.c Fix two test cases I missed updating in r291850. Sorry for the noise. 2017-01-12 22:48:28 +00:00
objc-general.m
profile-does-not-exist.c
profile-summary.c Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +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.