diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java index 71a05ab92c..e169c4fbb2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java @@ -897,6 +897,7 @@ public final class CcCommon { boolean isFdo = fdoMode != FdoMode.OFF && toolchain.getCompilationMode() == CompilationMode.OPT; if (isFdo && fdoMode != FdoMode.AUTO_FDO + && fdoMode != FdoMode.XBINARY_FDO && !allUnsupportedFeatures.contains(CppRuleClasses.FDO_OPTIMIZE)) { allFeatures.add(CppRuleClasses.FDO_OPTIMIZE); // For LLVM, support implicit enabling of ThinLTO for FDO unless it has been @@ -913,6 +914,9 @@ public final class CcCommon { allFeatures.add(CppRuleClasses.ENABLE_AFDO_THINLTO); } } + if (isFdo && fdoMode == FdoMode.XBINARY_FDO) { + allFeatures.add(CppRuleClasses.XBINARYFDO); + } if (cppConfiguration.getFdoPrefetchHintsLabel() != null) { allRequestedFeaturesBuilder.add(CppRuleClasses.FDO_PREFETCH_HINTS); } |