aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-02-22 16:16:52 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-22 16:18:33 -0800
commit93beba12298937b4b5d4d2273f7489d0ead7a68f (patch)
tree8a6055faa4be90783d214d025c64a86fec01b7e0 /src/main/java
parentc4f1df5b05e6b39c7c3d6538e702e4d7ff041cfb (diff)
Add more codecs to execution phase.
PiperOrigin-RevId: 186691973
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupportValue.java28
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsValue.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionValue.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java3
4 files changed, 41 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupportValue.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupportValue.java
index 6cd722f8e4..da8c79d761 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupportValue.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupportValue.java
@@ -13,12 +13,15 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.cpp;
+import com.google.common.collect.Interner;
+import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.cpp.FdoSupport.FdoMode;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.LipoMode;
-import com.google.devtools.build.skyframe.LegacySkyKey;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
@@ -37,11 +40,13 @@ import java.util.Objects;
public class FdoSupportValue implements SkyValue {
public static final SkyFunctionName SKYFUNCTION = SkyFunctionName.create("FDO_SUPPORT");
- /**
- * {@link SkyKey} for {@link FdoSupportValue}.
- */
+ /** {@link SkyKey} for {@link FdoSupportValue}. */
@Immutable
- public static class Key {
+ @AutoCodec
+ public static class Key implements SkyKey {
+ private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
+ public static final ObjectCodec<Key> CODEC = new FdoSupportValue_Key_AutoCodec();
+
private final LipoMode lipoMode;
private final Path fdoZip;
private final PathFragment fdoInstrument;
@@ -54,6 +59,12 @@ public class FdoSupportValue implements SkyValue {
this.fdoMode = fdoMode;
}
+ @AutoCodec.Instantiator
+ @AutoCodec.VisibleForSerialization
+ static Key of(LipoMode lipoMode, Path fdoZip, PathFragment fdoInstrument, FdoMode fdoMode) {
+ return interner.intern(new Key(lipoMode, fdoZip, fdoInstrument, fdoMode));
+ }
+
public LipoMode getLipoMode() {
return lipoMode;
}
@@ -91,6 +102,11 @@ public class FdoSupportValue implements SkyValue {
public int hashCode() {
return Objects.hash(lipoMode, fdoZip, fdoInstrument);
}
+
+ @Override
+ public SkyFunctionName functionName() {
+ return SKYFUNCTION;
+ }
}
private final FdoSupport fdoSupport;
@@ -105,6 +121,6 @@ public class FdoSupportValue implements SkyValue {
public static SkyKey key(
LipoMode lipoMode, Path fdoZip, PathFragment fdoInstrument, FdoMode fdoMode) {
- return LegacySkyKey.create(SKYFUNCTION, new Key(lipoMode, fdoZip, fdoInstrument, fdoMode));
+ return Key.of(lipoMode, fdoZip, fdoInstrument, fdoMode);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsValue.java
index 1fb6d11c5f..538a99059a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsValue.java
@@ -19,6 +19,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Interner;
import com.google.devtools.build.lib.analysis.platform.DeclaredToolchainInfo;
import com.google.devtools.build.lib.concurrent.BlazeInterners;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
@@ -36,9 +37,14 @@ public abstract class RegisteredToolchainsValue implements SkyValue {
return Key.of(configurationKey);
}
+ /** A {@link SkyKey} for {@code RegisteredToolchainsValue}. */
@AutoCodec
- static class Key implements SkyKey {
+ @AutoCodec.VisibleForSerialization
+ // TODO(shahan): Reduce visibility and remove CODEC field once unneeded.
+ public static class Key implements SkyKey {
private static final Interner<Key> interners = BlazeInterners.newWeakInterner();
+ public static final ObjectCodec<Key> CODEC = new RegisteredToolchainsValue_Key_AutoCodec();
+
private final BuildConfigurationValue.Key configurationKey;
private Key(BuildConfigurationValue.Key configurationKey) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionValue.java
index 69ab59926c..2ee27e9de8 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionValue.java
@@ -19,6 +19,8 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.platform.PlatformInfo;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
@@ -44,8 +46,12 @@ public abstract class ToolchainResolutionValue implements SkyValue {
}
/** {@link SkyKey} implementation used for {@link ToolchainResolutionFunction}. */
+ @AutoCodec
@AutoValue
public abstract static class ToolchainResolutionKey implements SkyKey {
+ public static final ObjectCodec<ToolchainResolutionKey> CODEC =
+ new ToolchainResolutionValue_ToolchainResolutionKey_AutoCodec();
+
@Override
public SkyFunctionName functionName() {
return SkyFunctions.TOOLCHAIN_RESOLUTION;
@@ -59,13 +65,14 @@ public abstract class ToolchainResolutionValue implements SkyValue {
abstract ImmutableList<ConfiguredTargetKey> availableExecutionPlatformKeys();
+ @AutoCodec.Instantiator
static ToolchainResolutionKey create(
- BuildConfigurationValue.Key configuration,
+ BuildConfigurationValue.Key configurationKey,
Label toolchainType,
ConfiguredTargetKey targetPlatformKey,
List<ConfiguredTargetKey> availableExecutionPlatformKeys) {
return new AutoValue_ToolchainResolutionValue_ToolchainResolutionKey(
- configuration,
+ configurationKey,
toolchainType,
targetPlatformKey,
ImmutableList.copyOf(availableExecutionPlatformKeys));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java
index 777dcbab4a..a628fb653b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java
@@ -17,6 +17,7 @@ import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionLookupValue;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.WorkspaceStatusAction;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
@@ -57,6 +58,8 @@ public class WorkspaceStatusValue extends ActionLookupValue {
@AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
public static class BuildInfoKey extends ActionLookupKey {
@AutoCodec.VisibleForSerialization static final BuildInfoKey INSTANCE = new BuildInfoKey();
+ public static final ObjectCodec<BuildInfoKey> CODEC =
+ new WorkspaceStatusValue_BuildInfoKey_AutoCodec();
private BuildInfoKey() {}