summaryrefslogtreecommitdiffstats
path: root/core/binary.mk
diff options
context:
space:
mode:
authorYing Wang <wangying@google.com>2014-10-28 14:50:59 -0700
committerDan Albert <danalbert@google.com>2015-03-13 11:36:15 -0700
commitd79146351102e41a508361aebf390bde3316e3d4 (patch)
tree95325ece9df861e0a8d4b7cec90350410596fc59 /core/binary.mk
parent95a543c987c4c8fb2416579f083030dd98a13295 (diff)
downloadbuild-d79146351102e41a508361aebf390bde3316e3d4.zip
build-d79146351102e41a508361aebf390bde3316e3d4.tar.gz
build-d79146351102e41a508361aebf390bde3316e3d4.tar.bz2
Support "LOCAL_FDO_SUPPORT := always".
"LOCAL_FDO_SUPPORT := always" enables FDO without user specifying "BUILD_FDO_OPTIMIZE := true", i.e. it turns on FDO for a module in any build configuration. Change-Id: I05d8db2edb2b3f5db073fa14d5bf1083a04571c0 (cherry picked from commit 45d0143ab1155ff33c3ad63ca19a64d7f69086f4)
Diffstat (limited to 'core/binary.mk')
-rw-r--r--core/binary.mk30
1 files changed, 13 insertions, 17 deletions
diff --git a/core/binary.mk b/core/binary.mk
index 9fa968d..92b08fa 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -213,10 +213,15 @@ endif
## Please note that we will do option filtering during FDO build.
## i.e. Os->O2, remove -fno-early-inline and -finline-limit.
##################################################################
-ifeq ($(strip $(LOCAL_FDO_SUPPORT)), true)
- ifeq ($(strip $(LOCAL_IS_HOST_MODULE)),)
- my_cflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
- my_ldflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_LDFLAGS)
+my_fdo_build :=
+ifneq ($(filter true always, $(LOCAL_FDO_SUPPORT)),)
+ ifeq ($(BUILD_FDO_INSTRUMENT),true)
+ my_cflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_INSTRUMENT_CFLAGS)
+ my_ldflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_INSTRUMENT_LDFLAGS)
+ my_fdo_build := true
+ else ifneq ($(filter true,$(BUILD_FDO_OPTIMIZE))$(filter always,$(LOCAL_FDO_SUPPORT)),)
+ my_cflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_OPTIMIZE_CFLAGS)
+ my_fdo_build := true
endif
endif
@@ -1045,19 +1050,10 @@ my_asflags := $(call $(LOCAL_2ND_ARCH_VAR_PREFIX)convert-to-$(my_host)clang-flag
my_ldflags := $(call $(LOCAL_2ND_ARCH_VAR_PREFIX)convert-to-$(my_host)clang-flags,$(my_ldflags))
endif
-ifeq ($(LOCAL_FDO_SUPPORT), true)
- build_with_fdo := false
- ifeq ($(BUILD_FDO_INSTRUMENT), true)
- build_with_fdo := true
- endif
- ifeq ($(BUILD_FDO_OPTIMIZE), true)
- build_with_fdo := true
- endif
- ifeq ($(build_with_fdo), true)
- my_cflags := $(patsubst -Os,-O2,$(my_cflags))
- fdo_incompatible_flags=-fno-early-inlining -finline-limit=%
- my_cflags := $(filter-out $(fdo_incompatible_flags),$(my_cflags))
- endif
+ifeq ($(my_fdo_build), true)
+ my_cflags := $(patsubst -Os,-O2,$(my_cflags))
+ fdo_incompatible_flags := -fno-early-inlining -finline-limit=%
+ my_cflags := $(filter-out $(fdo_incompatible_flags),$(my_cflags))
endif
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_YACCFLAGS := $(LOCAL_YACCFLAGS)