aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar gregce <gregce@google.com>2017-04-20 22:26:38 +0200
committerGravatar Vladimir Moskva <vladmos@google.com>2017-04-24 16:50:15 +0200
commit3da1d729ed09f9046ed21a5546a671de3a70e3fe (patch)
treee7afb304feee0b35a4aea538e5bd8330f1fe56c8 /src/main
parentf15dc43c481c99749de404712f776d91808333c7 (diff)
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
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java10
2 files changed, 5 insertions, 11 deletions
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<Artifact> 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<Artifact> 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();