mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-07 16:42:34 +00:00
9c6f1538cc
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
27 lines
1005 B
C
27 lines
1005 B
C
// Test that unprofiled files are recognized. Here, we have two functions in the
|
|
// profile, main() and function_in_header, but we use the profile on a file that
|
|
// has the profile-less some_unprofiled_function so that the only profiled code
|
|
// in #included in a header.
|
|
|
|
// FIXME: It would be nice to use -verify here instead of FileCheck, but -verify
|
|
// doesn't play well with warnings that have no line number.
|
|
|
|
// RUN: llvm-profdata merge %S/Inputs/c-unprofiled.proftext -o %t.profdata
|
|
// RUN: %clang_cc1 -triple x86_64-apple-macosx10.9 -main-file-name c-unprofiled.c -I %S/Inputs/ %s -o /dev/null -emit-llvm -fprofile-instrument-use-path=%t.profdata -Wprofile-instr-unprofiled 2>&1 | FileCheck %s
|
|
|
|
// CHECK: warning: no profile data available for file "c-unprofiled.c"
|
|
|
|
#include "profiled_header.h"
|
|
|
|
#ifdef GENERATE_OUTDATED_DATA
|
|
int main(int argc, const char *argv[]) {
|
|
function_in_header(0);
|
|
return 0;
|
|
}
|
|
#else
|
|
void some_unprofiled_function(int i) {
|
|
if (i)
|
|
function_in_header(i);
|
|
}
|
|
#endif
|