From 3da1d729ed09f9046ed21a5546a671de3a70e3fe Mon Sep 17 00:00:00 2001 From: gregce Date: Thu, 20 Apr 2017 22:26:38 +0200 Subject: Don't create the LIPO context collector subgraph for instrumentation builds. The consumers of ":lipo_context_collector" only do anything with it in optimization builds. Also remove an outdated comment in FdoSupport. PiperOrigin-RevId: 153748937 --- .../google/devtools/build/lib/rules/cpp/CppRuleClasses.java | 6 +----- .../com/google/devtools/build/lib/rules/cpp/FdoSupport.java | 10 ++++------ 2 files changed, 5 insertions(+), 11 deletions(-) (limited to 'src/main') diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java index 6cad3decee..502ed9ffea 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java @@ -40,7 +40,6 @@ import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SafeImplic import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.rules.test.InstrumentedFilesCollector.InstrumentationSpec; import com.google.devtools.build.lib.util.FileTypeSet; -import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.LipoMode; /** * Rule class definitions for C++ rules. @@ -56,10 +55,7 @@ public class CppRuleClasses { // This attribute connects a target to the LIPO context target configured with the // lipo input collector configuration. CppConfiguration cppConfiguration = configuration.getFragment(CppConfiguration.class); - return !cppConfiguration.isLipoContextCollector() - && (cppConfiguration.getLipoMode() == LipoMode.BINARY) - ? cppConfiguration.getLipoContextLabel() - : null; + return cppConfiguration.isLipoOptimization() ? cppConfiguration.getLipoContextLabel() : null; } }; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java index ca0ab31cf7..04b998498d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java @@ -510,10 +510,6 @@ public class FdoSupport { CcToolchainFeatures.Variables.Builder buildVariables, RuleContext ruleContext, PathFragment sourceName, PathFragment sourceExecPath, boolean usePic, FeatureConfiguration featureConfiguration, FdoSupportProvider fdoSupportProvider) { - // It is a bug if this method is called with useLipo if lipo is disabled. However, it is legal - // if is is called with !useLipo, even though lipo is enabled. - LipoContextProvider lipoInputProvider = CppHelper.getLipoContextProvider(ruleContext); - Preconditions.checkArgument(lipoInputProvider == null || lipoMode != LipoMode.OFF); // FDO is disabled -> do nothing. if ((fdoInstrument == null) && (fdoRoot == null)) { @@ -532,7 +528,7 @@ public class FdoSupport { return; } Iterable auxiliaryInputs = getAuxiliaryInputs( - ruleContext, sourceName, sourceExecPath, usePic, lipoInputProvider, fdoSupportProvider); + ruleContext, sourceName, sourceExecPath, usePic, fdoSupportProvider); builder.addMandatoryInputs(auxiliaryInputs); if (!Iterables.isEmpty(auxiliaryInputs)) { if (featureConfiguration.isEnabled(CppRuleClasses.AUTOFDO)) { @@ -557,7 +553,9 @@ public class FdoSupport { */ private Iterable getAuxiliaryInputs( RuleContext ruleContext, PathFragment sourceName, PathFragment sourceExecPath, boolean usePic, - LipoContextProvider lipoContextProvider, FdoSupportProvider fdoSupportProvider) { + FdoSupportProvider fdoSupportProvider) { + LipoContextProvider lipoContextProvider = CppHelper.getLipoContextProvider(ruleContext); + // If --fdo_optimize was not specified, we don't have any additional inputs. if (fdoProfile == null) { return ImmutableSet.of(); -- cgit v1.2.3