am 6837ac67
: Merge "Refactor FDO support code to ensure arm64 can also be built with FDO."
* commit '6837ac67035518f5c36c91ae07ec95010c7071bd': Refactor FDO support code to ensure arm64 can also be built with FDO.
This commit is contained in:
commit
ebe0bacc80
8 changed files with 47 additions and 146 deletions
|
@ -177,7 +177,6 @@ my_compiler_dependencies :=
|
||||||
ifneq ($(strip $(LOCAL_FDO_SUPPORT)),)
|
ifneq ($(strip $(LOCAL_FDO_SUPPORT)),)
|
||||||
ifeq ($(strip $(LOCAL_IS_HOST_MODULE)),)
|
ifeq ($(strip $(LOCAL_IS_HOST_MODULE)),)
|
||||||
my_cflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
|
my_cflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
|
||||||
my_cppflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
|
|
||||||
my_ldflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
|
my_ldflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -49,6 +49,7 @@ $(error Unknown ARM architecture version: $(TARGET_$(combo_2nd_arch_prefix)ARCH_
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
||||||
|
include $(BUILD_SYSTEM)/combo/fdo.mk
|
||||||
|
|
||||||
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
||||||
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
|
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
|
||||||
|
@ -168,35 +169,6 @@ target_libgcov := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) $($(combo_2nd_arc
|
||||||
-print-file-name=libgcov.a)
|
-print-file-name=libgcov.a)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Define FDO (Feedback Directed Optimization) options.
|
|
||||||
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS:=
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB:=
|
|
||||||
|
|
||||||
ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
|
|
||||||
# Set BUILD_FDO_INSTRUMENT=true to turn on FDO instrumentation.
|
|
||||||
# The profile will be generated on /data/local/tmp/profile on the device.
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-generate=/data/local/tmp/profile -DANDROID_FDO
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
|
||||||
else
|
|
||||||
# If BUILD_FDO_INSTRUMENT is turned off, then consider doing the FDO optimizations.
|
|
||||||
# Set TARGET_FDO_PROFILE_PATH to set a custom profile directory for your build.
|
|
||||||
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH)),)
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH := fdo/profiles/$(TARGET_$(combo_2nd_arch_prefix)ARCH)/$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)
|
|
||||||
else
|
|
||||||
ifeq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
|
||||||
$(warning Custom $(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH supplied, but directory does not exist. Turn off FDO.)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# If the FDO profile directory can't be found, then FDO is off.
|
|
||||||
ifneq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-use=$($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH) -DANDROID_FDO
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
||||||
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-$(TARGET_$(combo_2nd_arch_prefix)ARCH)
|
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-$(TARGET_$(combo_2nd_arch_prefix)ARCH)
|
||||||
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
|
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
|
||||||
|
|
|
@ -49,6 +49,7 @@ $(error Unknown ARM architecture version: $(TARGET_ARCH_VARIANT))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
||||||
|
include $(BUILD_SYSTEM)/combo/fdo.mk
|
||||||
|
|
||||||
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
||||||
ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
|
ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
|
||||||
|
|
|
@ -49,6 +49,7 @@ $(error Unknown MIPS architecture variant: $(TARGET_$(combo_2nd_arch_prefix)ARCH
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
||||||
|
include $(BUILD_SYSTEM)/combo/fdo.mk
|
||||||
|
|
||||||
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
||||||
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
|
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
|
||||||
|
@ -159,35 +160,6 @@ target_libgcov := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) $($(combo_2nd_arc
|
||||||
--print-file-name=libgcov.a)
|
--print-file-name=libgcov.a)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Define FDO (Feedback Directed Optimization) options.
|
|
||||||
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS:=
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB:=
|
|
||||||
|
|
||||||
ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
|
|
||||||
# Set BUILD_FDO_INSTRUMENT=true to turn on FDO instrumentation.
|
|
||||||
# The profile will be generated on /data/local/tmp/profile on the device.
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-generate=/data/local/tmp/profile -DANDROID_FDO
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
|
||||||
else
|
|
||||||
# If BUILD_FDO_INSTRUMENT is turned off, then consider doing the FDO optimizations.
|
|
||||||
# Set TARGET_FDO_PROFILE_PATH to set a custom profile directory for your build.
|
|
||||||
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH)),)
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH := fdo/profiles/$(TARGET_$(combo_2nd_arch_prefix)ARCH)/$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)
|
|
||||||
else
|
|
||||||
ifeq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
|
||||||
$(warning Custom $(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH supplied, but directory does not exist. Turn off FDO.)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# If the FDO profile directory can't be found, then FDO is off.
|
|
||||||
ifneq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-use=$($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH) -DANDROID_FDO
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
||||||
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-mips # mips covers both mips and mips64.
|
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-mips # mips covers both mips and mips64.
|
||||||
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
|
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
|
||||||
|
|
|
@ -52,6 +52,7 @@ endif
|
||||||
WITHOUT_TARGET_CLANG := true
|
WITHOUT_TARGET_CLANG := true
|
||||||
|
|
||||||
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
||||||
|
include $(BUILD_SYSTEM)/combo/fdo.mk
|
||||||
|
|
||||||
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
||||||
ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
|
ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
|
||||||
|
@ -163,35 +164,6 @@ target_libgcov := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) \
|
||||||
--print-file-name=libgcov.a)
|
--print-file-name=libgcov.a)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Define FDO (Feedback Directed Optimization) options.
|
|
||||||
|
|
||||||
TARGET_FDO_CFLAGS:=
|
|
||||||
TARGET_FDO_LIB:=
|
|
||||||
|
|
||||||
ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
|
|
||||||
# Set BUILD_FDO_INSTRUMENT=true to turn on FDO instrumentation.
|
|
||||||
# The profile will be generated on /data/local/tmp/profile on the device.
|
|
||||||
TARGET_FDO_CFLAGS := -fprofile-generate=/data/local/tmp/profile -DANDROID_FDO
|
|
||||||
TARGET_FDO_LIB := $(target_libgcov)
|
|
||||||
else
|
|
||||||
# If BUILD_FDO_INSTRUMENT is turned off, then consider doing the FDO optimizations.
|
|
||||||
# Set TARGET_FDO_PROFILE_PATH to set a custom profile directory for your build.
|
|
||||||
ifeq ($(strip $(TARGET_FDO_PROFILE_PATH)),)
|
|
||||||
TARGET_FDO_PROFILE_PATH := fdo/profiles/$(TARGET_ARCH)/$(TARGET_ARCH_VARIANT)
|
|
||||||
else
|
|
||||||
ifeq ($(strip $(wildcard $(TARGET_FDO_PROFILE_PATH))),)
|
|
||||||
$(warning Custom TARGET_FDO_PROFILE_PATH supplied, but directory does not exist. Turn off FDO.)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# If the FDO profile directory can't be found, then FDO is off.
|
|
||||||
ifneq ($(strip $(wildcard $(TARGET_FDO_PROFILE_PATH))),)
|
|
||||||
TARGET_FDO_CFLAGS := -fprofile-use=$(TARGET_FDO_PROFILE_PATH) -DANDROID_FDO
|
|
||||||
TARGET_FDO_LIB := $(target_libgcov)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
||||||
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-mips
|
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-mips
|
||||||
# TODO: perhaps use $(libc_root)/kernel/uapi/asm-$(TARGET_ARCH) instead of asm-mips ?
|
# TODO: perhaps use $(libc_root)/kernel/uapi/asm-$(TARGET_ARCH) instead of asm-mips ?
|
||||||
|
|
|
@ -41,7 +41,7 @@ $(error Unknown $(TARGET_$(combo_2nd_arch_prefix)ARCH) architecture version: $(T
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
||||||
|
include $(BUILD_SYSTEM)/combo/fdo.mk
|
||||||
|
|
||||||
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
||||||
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
|
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
|
||||||
|
@ -72,34 +72,6 @@ libc_root := bionic/libc
|
||||||
libm_root := bionic/libm
|
libm_root := bionic/libm
|
||||||
libstdc++_root := bionic/libstdc++
|
libstdc++_root := bionic/libstdc++
|
||||||
|
|
||||||
# Define FDO (Feedback Directed Optimization) options.
|
|
||||||
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS:=
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB:=
|
|
||||||
|
|
||||||
ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
|
|
||||||
# Set BUILD_FDO_INSTRUMENT=true to turn on FDO instrumentation.
|
|
||||||
# The profile will be generated on /data/local/tmp/profile on the device.
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-generate=/data/local/tmp/profile -DANDROID_FDO
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
|
||||||
else
|
|
||||||
# If BUILD_FDO_INSTRUMENT is turned off, then consider doing the FDO optimizations.
|
|
||||||
# Set TARGET_FDO_PROFILE_PATH to set a custom profile directory for your build.
|
|
||||||
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH)),)
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH := fdo/profiles/$(TARGET_$(combo_2nd_arch_prefix)ARCH)/$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)
|
|
||||||
else
|
|
||||||
ifeq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
|
||||||
$(warning Custom $(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH supplied, but directory does not exist. Turn off FDO.)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# If the FDO profile directory can't be found, then FDO is off.
|
|
||||||
ifneq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-use=$($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH) -DANDROID_FDO
|
|
||||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
||||||
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-x86 # x86 covers both x86 and x86_64.
|
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-x86 # x86 covers both x86 and x86_64.
|
||||||
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
|
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
|
||||||
|
|
|
@ -41,7 +41,7 @@ $(error Unknown $(TARGET_ARCH) architecture version: $(TARGET_ARCH_VARIANT))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
||||||
|
include $(BUILD_SYSTEM)/combo/fdo.mk
|
||||||
|
|
||||||
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
||||||
ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
|
ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
|
||||||
|
@ -72,34 +72,6 @@ libc_root := bionic/libc
|
||||||
libm_root := bionic/libm
|
libm_root := bionic/libm
|
||||||
libstdc++_root := bionic/libstdc++
|
libstdc++_root := bionic/libstdc++
|
||||||
|
|
||||||
# Define FDO (Feedback Directed Optimization) options.
|
|
||||||
|
|
||||||
TARGET_FDO_CFLAGS:=
|
|
||||||
TARGET_FDO_LIB:=
|
|
||||||
|
|
||||||
ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
|
|
||||||
# Set BUILD_FDO_INSTRUMENT=true to turn on FDO instrumentation.
|
|
||||||
# The profile will be generated on /data/local/tmp/profile on the device.
|
|
||||||
TARGET_FDO_CFLAGS := -fprofile-generate=/data/local/tmp/profile -DANDROID_FDO
|
|
||||||
TARGET_FDO_LIB := $(target_libgcov)
|
|
||||||
else
|
|
||||||
# If BUILD_FDO_INSTRUMENT is turned off, then consider doing the FDO optimizations.
|
|
||||||
# Set TARGET_FDO_PROFILE_PATH to set a custom profile directory for your build.
|
|
||||||
ifeq ($(strip $(TARGET_FDO_PROFILE_PATH)),)
|
|
||||||
TARGET_FDO_PROFILE_PATH := fdo/profiles/$(TARGET_ARCH)/$(TARGET_ARCH_VARIANT)
|
|
||||||
else
|
|
||||||
ifeq ($(strip $(wildcard $(TARGET_FDO_PROFILE_PATH))),)
|
|
||||||
$(warning Custom TARGET_FDO_PROFILE_PATH supplied, but directory does not exist. Turn off FDO.)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# If the FDO profile directory can't be found, then FDO is off.
|
|
||||||
ifneq ($(strip $(wildcard $(TARGET_FDO_PROFILE_PATH))),)
|
|
||||||
TARGET_FDO_CFLAGS := -fprofile-use=$(TARGET_FDO_PROFILE_PATH) -DANDROID_FDO
|
|
||||||
TARGET_FDO_LIB := $(target_libgcov)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
||||||
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-x86 # x86 covers both x86 and x86_64.
|
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-x86 # x86 covers both x86 and x86_64.
|
||||||
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
|
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
|
||||||
|
|
41
core/combo/fdo.mk
Normal file
41
core/combo/fdo.mk
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006 The Android Open Source Project
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Setup FDO related flags.
|
||||||
|
|
||||||
|
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS:=
|
||||||
|
$(combo_2nd_arch_prefix)TARGET_FDO_LIB:=
|
||||||
|
|
||||||
|
ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
|
||||||
|
# Set BUILD_FDO_INSTRUMENT=true to turn on FDO instrumentation.
|
||||||
|
# The profile will be generated on /data/local/tmp/profile on the device.
|
||||||
|
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-generate=/data/local/tmp/fdo_profile -DANDROID_FDO
|
||||||
|
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
||||||
|
else
|
||||||
|
ifneq ($(strip $(BUILD_FDO_OPTIMIZE)),)
|
||||||
|
# Set TARGET_FDO_PROFILE_PATH to set a custom profile directory for your build.
|
||||||
|
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH)),)
|
||||||
|
$(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH := fdo_profiles
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
||||||
|
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-use=$($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH) -DANDROID_FDO -fprofile-correction -Wcoverage-mismatch -Wno-error
|
||||||
|
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
||||||
|
else
|
||||||
|
$(warning Profile directory $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH) does not exist. Turn off FDO.)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
Loading…
Reference in a new issue