llvm-project/clang/test/Profile
Chandler Carruth 93786da2cb Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'.
Much to my surprise, '-disable-llvm-optzns' which I thought was the
magical flag I wanted to get at the raw LLVM IR coming out of Clang
deosn't do that. It still runs some passes over the IR. I don't want
that, I really want the *raw* IR coming out of Clang and I strongly
suspect everyone else using it is in the same camp.

There is actually a flag that does what I want that I didn't know about
called '-disable-llvm-passes'. I suspect many others don't know about it
either. It both does what I want and is much simpler.

This removes the confusing version and makes that spelling of the flag
an alias for '-disable-llvm-passes'. I've also moved everything in Clang
to use the 'passes' spelling as it seems both more accurate (*all* LLVM
passes are disabled, not just optimizations) and much easier to remember
and spell correctly.

This is part of simplifying how Clang drives LLVM to make it cleaner to
wire up to the new pass manager.

Differential Revision: https://reviews.llvm.org/D28047

llvm-svn: 290392
2016-12-23 00:23:01 +00:00
..
Inputs Attach profile summary information to Module. 2016-03-24 21:32:25 +00:00
README PGO: Clarify the testing README 2014-03-11 18:18:12 +00:00
c-avoid-direct-call.c [PGO] Avoid instrumenting constants at value sites 2016-03-31 18:41:34 +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 [profile] update test case with interface change. 2016-07-21 23:19:39 +00:00
c-indirect-call.c Add test for D21736. 2016-11-22 20:03:40 +00:00
c-linkage-available_externally.c [Profile] Update testcase for r283948 (NFC) 2016-10-11 21:56:05 +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 [profile] Use cc1 in these tests instead of the driver. 2016-04-23 02:11:16 +00:00
cxx-implicit.cpp [PGO] Cover more cases of implicitly generated C++ methods 2016-02-08 22:41:37 +00:00
cxx-indirect-call.cpp Add test for D21736. 2016-11-22 20:03:40 +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-stmt-initializers.cpp [Coverage] Support for C++17 if initializers 2016-10-14 23:38:16 +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 [profile] Use cc1 in these tests instead of the driver. 2016-04-23 02:11:16 +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 Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
gcc-flag-compatibility.c Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +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
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.