llvm-project/clang/test/Profile
Justin Bogner 203f91e311 InstrProf: Don't emit counter increments in dead code
We were previously emitting counter increments even if we didn't have
an insertion point, which would result in a CallInst with no
parent. This leads to a crash, as in pr22166, if we try to do
GlobalDCE.

llvm-svn: 225495
2015-01-09 01:46:40 +00:00
..
Inputs InstrProf: Update for LLVM API change 2014-08-01 22:50:16 +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 IR: Make metadata typeless in assembly, clang side 2014-12-15 19:10:08 +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 IR: Make metadata typeless in assembly, clang side 2014-12-15 19:10:08 +00:00
c-linkage-available_externally.c InstrProf: Use LLVM's -instrprof pass for profiling 2014-12-08 19:04:51 +00:00
c-linkage.c InstrProf: Use LLVM's -instrprof pass for profiling 2014-12-08 19:04:51 +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: Don't emit counter increments in dead code 2015-01-09 01:46:40 +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 IR: Make metadata typeless in assembly, clang side 2014-12-15 19:10:08 +00:00
cxx-linkage.cpp InstrProf: Use LLVM's -instrprof pass for profiling 2014-12-08 19:04:51 +00:00
cxx-templates.cpp IR: Make metadata typeless in assembly, clang side 2014-12-15 19:10:08 +00:00
cxx-throws.cpp IR: Make metadata typeless in assembly, clang side 2014-12-15 19:10:08 +00:00
objc-general.m IR: Make metadata typeless in assembly, clang side 2014-12-15 19:10:08 +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.