llvm-project/clang/test/Profile
Duncan P. N. Exon Smith d971cd1b18 InstrProf: Emit runtime hook directly in IRGen
-u behaviour is apparently not portable between linkers (see cfe-commits
discussions for r204379 and r205012).  I've moved the logic to IRGen,
where it should have been in the first place.

I don't have a Linux system to test this on, so it's possible this logic
*still* doesn't pull in the instrumented profiling runtime on Linux.

I'm in the process of getting tests going on the compiler-rt side
(llvm-commits "[PATCH] InstrProf: Add initial compiler-rt test").  Once
we have tests for the full flow there, the runtime logic should get a
whole lot less brittle.

<rdar://problem/16458307>

llvm-svn: 205023
2014-03-28 17:53:22 +00:00
..
Inputs CodeGen: Include a function hash in instrumentation based profiling 2014-03-18 21:58:06 +00:00
README PGO: Clarify the testing README 2014-03-11 18:18:12 +00:00
c-attributes.c
c-counter-overflows.c PGO: Statically generate data structures 2014-03-17 21:18:30 +00:00
c-general.c PGO: Change runtime prefix from pgo to profile 2014-03-20 20:00:41 +00:00
c-linkage-available_externally.c PGO: Don't define instrumentation data available_externally 2014-03-20 22:50:08 +00:00
c-linkage.c InstrProf: Emit runtime hook directly in IRGen 2014-03-28 17:53:22 +00:00
c-outdated-data.c
cxx-class.cpp PGO: Change runtime prefix from pgo to profile 2014-03-20 20:00:41 +00:00
cxx-linkage.cpp InstrProf: Emit runtime hook directly in IRGen 2014-03-28 17:53:22 +00:00
cxx-throws.cpp PGO: Change runtime prefix from pgo to profile 2014-03-20 20:00:41 +00:00
objc-general.m [PGO] Add simplified branch weights for Objective-C for-collection loops. 2014-03-25 23:26:31 +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.