llvm-project/clang/test/Profile
Rong Xu 9c6f1538cc [PGO] Change profile use cc1 option to handle IR level profiles
This patch changes cc1 option for PGO profile use from
-fprofile-instr-use=<path> to -fprofile-instrument-use-path=<path>.
-fprofile-instr-use=<path> is now a driver only option.

In addition to decouple the cc1 option from the driver level option, this patch
also enables IR level profile use. cc1 option handling now reads the profile
header and sets CodeGenOpt ProfileUse (valid values are {None, Clang, LLVM}
-- this is a common enum for -fprofile-instrument={}, for the profile
instrumentation), and invoke the pipeline to enable the respective PGO use pass.

Reviewers: silvas, davidxl

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

llvm-svn: 262515
2016-03-02 20:59:36 +00:00
..
Inputs Attach maximum function count to Module when using PGO mode. 2015-12-17 19:14:27 +00:00
README PGO: Clarify the testing README 2014-03-11 18:18:12 +00:00
c-captured.c [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +00:00
c-counter-overflows.c [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +00:00
c-general.c [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +00:00
c-generate.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
c-indirect-call.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
c-linkage-available_externally.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
c-linkage.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
c-outdated-data.c [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +00:00
c-unprofiled-blocks.c [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +00:00
c-unprofiled.c [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +00:00
c-unreachable-after-switch.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
cxx-class.cpp [PGO] make profile prefix even shorter and more readable 2015-12-15 00:33:12 +00:00
cxx-implicit.cpp [PGO] Cover more cases of implicitly generated C++ methods 2016-02-08 22:41:37 +00:00
cxx-lambda.cpp [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +00:00
cxx-linkage.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
cxx-rangefor.cpp [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +00:00
cxx-structors.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
cxx-templates.cpp [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +00:00
cxx-throws.cpp [PGO] make profile prefix even shorter and more readable 2015-12-15 00:33:12 +00:00
cxx-virtual-destructor-calls.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
def-assignop.cpp Test simplification 2016-02-17 00:59:01 +00:00
def-ctors.cpp Simplify test cases 2016-02-08 19:14:14 +00:00
def-dtors.cpp Simplify test cases 2016-02-08 19:14:14 +00:00
func-entry.c Remove setting of inlinehint and cold attributes based on profile data 2016-01-04 23:32:28 +00:00
gcc-flag-compatibility.c Fix a soon to be invalid test 2015-10-29 04:04:07 +00:00
max-function-count.c Attach maximum function count to Module when using PGO mode. 2015-12-17 19:14:27 +00:00
objc-general.m [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +00:00
profile-does-not-exist.c [PGO] Change profile use cc1 option to handle IR level profiles 2016-03-02 20:59:36 +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.