platform_build_soong/cc
Pirama Arumuga Nainar ada83ec0a6 Add PGO support to soong
Bug: http://b/63768402
Bug: http://b/65598278

Add support for the 'pgo' property to specify how a module is processed
under PGO.  A sample property is below:

pgo: {
    instrumentation: true, // could be "sampling: true" when supported
    profile_file: "pgo_simple.profdata",
    benchmarks: ["pgo_simple"],
}

1. Runtime profiles can be gathered using "sampling" or
"instrumentation".  Sampling is not supported initially.

2. If 'toolchain/pgo-profiles' project is found,
'toolchain/pgo-profiles/${profile_file}' is passed to the compiler and
linker when building this module.

3. If ANDROID_PGO_INSTRUMENT environment variable is set, and includes a
benchmark in the 'benchmarks' list, appropriate flags (for e.g.
-fprofile-generate for instrumentation) are passed to the compiler and
linker when building this module.

Test: Add example modules that specify the pgo property and verify
appropriate flags and dependencies in the Ninja file.  Some
tests/examples are in https://android-review.googlesource.com/474805

Change-Id: I6242e0c904497a115e367dea6927ba1c4b906355
2017-09-21 12:37:19 -07:00
..
config Fix ToolchainClangCflags for host bionic 2017-09-20 13:16:13 -07:00
androidmk.go Add cc_genrule 2017-09-18 23:33:25 -07:00
binary.go Add PGO support to soong 2017-09-21 12:37:19 -07:00
builder.go Add support for Windows Message Compiler 2017-09-09 13:06:25 -07:00
cc.go Add PGO support to soong 2017-09-21 12:37:19 -07:00
cc_test.go Dedup exported flags from dependencies 2017-05-17 14:22:22 -07:00
check.go Ban --coverage now that we have native coverage 2017-02-14 13:05:48 -08:00
cmakelists.go Run gofmt 2017-05-09 13:44:49 -07:00
compiler.go Refactor proto in preparation for java proto support 2017-09-11 12:41:58 -07:00
coverage.go Refactor factories 2017-06-30 21:08:36 +00:00
gen.go Refactor proto in preparation for java proto support 2017-09-11 12:41:58 -07:00
gen_stub_libs.py Add support for weak symbols in the NDK stubs. 2017-07-28 11:00:22 -07:00
genrule.go Add cc_genrule 2017-09-18 23:33:25 -07:00
installer.go Make binaries executable 2017-08-31 13:48:52 -07:00
kernel_headers.go Fix kernel_headers module registration 2017-07-10 12:30:35 -07:00
library.go Add PGO support to soong 2017-09-21 12:37:19 -07:00
linker.go Don't add a rpath to the linker 2017-09-20 13:16:13 -07:00
llndk_library.go Add to cflags in compilerFlags() 2017-07-19 11:53:54 -07:00
lto.go Add support for thin LTO 2017-09-01 14:21:44 +08:00
makevars.go List of VNDK-related libs are exported to make 2017-08-10 14:15:39 +09:00
ndk_headers.go Make binaries executable 2017-08-31 13:48:52 -07:00
ndk_library.go Make binaries executable 2017-08-31 13:48:52 -07:00
ndk_prebuilt.go Refactor factories 2017-06-30 21:08:36 +00:00
ndk_sysroot.go Prettify soong ninja build descriptions 2017-05-10 11:04:16 -07:00
object.go Add prefix_symbols support to cc_object 2017-09-20 13:16:13 -07:00
pgo.go Add PGO support to soong 2017-09-21 12:37:19 -07:00
prebuilt.go Make binaries executable 2017-08-31 13:48:52 -07:00
proto.go Refactor proto in preparation for java proto support 2017-09-11 12:41:58 -07:00
pylintrc Don't warn for TODOish comments. 2016-08-01 14:36:22 -07:00
relocation_packer.go Prettify soong ninja build descriptions 2017-05-10 11:04:16 -07:00
rs.go Prettify soong ninja build descriptions 2017-05-10 11:04:16 -07:00
sabi.go Dump abi for vendor variants of VNDK libraries. 2017-09-11 17:36:46 -07:00
sanitize.go Enhance coverage options to include those needed by Honggfuzz for coverage-driven fuzzing 2017-08-24 19:25:05 +00:00
stl.go Make libdl.so be loaded after libc.so 2017-08-23 12:54:54 +09:00
strip.go Separate cc.go 2016-07-29 15:17:58 -07:00
test.go Make test_suites arch_variant 2017-09-18 16:51:35 -07:00
test_data_test.go Add integration testing infrastructure 2017-07-14 14:19:51 -07:00
test_gen_stub_libs.py Add support for weak symbols in the NDK stubs. 2017-07-28 11:00:22 -07:00
tidy.go soong: add __clang_analyzer__ to clang-tidy 2017-05-04 01:19:02 +00:00
toolchain_library.go Refactor factories 2017-06-30 21:08:36 +00:00
util.go List of VNDK-related libs are exported to make 2017-08-10 14:15:39 +09:00
vndk.go Keep vndk library lists sorted 2017-08-17 14:57:12 -07:00