[llvm] 9aa2c91 - [mlgo][regalloc] Factor live interval feature calculation

Mircea Trofin via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 31 15:19:24 PST 2022


Author: Mircea Trofin
Date: 2022-01-31T15:19:15-08:00
New Revision: 9aa2c914b9710f97a9362c10c08aa11cf2df6ce1

URL: https://github.com/llvm/llvm-project/commit/9aa2c914b9710f97a9362c10c08aa11cf2df6ce1
DIFF: https://github.com/llvm/llvm-project/commit/9aa2c914b9710f97a9362c10c08aa11cf2df6ce1.diff

LOG: [mlgo][regalloc] Factor live interval feature calculation

Factoring it out so we can subsequently cache it. This should be a NFC,
however, for the float quantities, we see small errors in the least
significant digits. This is because, before, we were summing up one by
one. Now, we sum up results of sums.

This shouldn't matter for ML, and will require rework when we do
quantization (avoiding floats altogether), but meanwhile, it did require
an update to the reference file used for testing.

The patch also bumps the precision of the variables involved in this, to
reduce the error (note they are casted back to float at the end by the
SET macro, since we only work with float and not double in TF)

Differential Revision: https://reviews.llvm.org/D118659

Added: 
    

Modified: 
    llvm/lib/CodeGen/MLRegallocEvictAdvisor.cpp
    llvm/test/CodeGen/MLRegalloc/Inputs/reference-log-noml.txt

Removed: 
    


################################################################################
diff  --git a/llvm/lib/CodeGen/MLRegallocEvictAdvisor.cpp b/llvm/lib/CodeGen/MLRegallocEvictAdvisor.cpp
index 061066b64a2d..4e69b9ed82ea 100644
--- a/llvm/lib/CodeGen/MLRegallocEvictAdvisor.cpp
+++ b/llvm/lib/CodeGen/MLRegallocEvictAdvisor.cpp
@@ -220,6 +220,20 @@ void resetInputs(MLModelRunner &Runner) {
 #undef _RESET
 }
 
+// Per-live interval components that get aggregated into the feature values that
+// will be passed to the evaluator.
+struct LIFeatureComponents {
+  double R = 0;
+  double W = 0;
+  double RW = 0;
+  double IndVarUpdates = 0;
+  double HintWeights = 0.0;
+  int64_t NrDefsAndUses = 0;
+  float HottestBlockFreq = 0.0;
+  bool HasPreferredReg = false;
+  bool IsRemat = false;
+};
+
 using CandidateRegList =
     std::array<std::pair<MCRegister, bool>, NumberOfInterferences>;
 using FeaturesListNormalizer = std::array<float, FeatureIDs::FeatureCount>;
@@ -277,6 +291,9 @@ class MLEvictAdvisor : public RegAllocEvictionAdvisor {
                                                         FixedRegisters);
   }
 
+  const LIFeatureComponents
+  getLIFeatureComponents(const LiveInterval &LI) const;
+
   // Hold on to a default advisor for:
   // 1) the implementation of canEvictHintInterference, because we didn't learn
   // that nuance yet;
@@ -670,6 +687,51 @@ MCRegister MLEvictAdvisor::tryFindEvictionCandidate(
   return Regs[CandidatePos].first;
 }
 
+const LIFeatureComponents
+MLEvictAdvisor::getLIFeatureComponents(const LiveInterval &LI) const {
+  LIFeatureComponents Ret;
+  SmallPtrSet<MachineInstr *, 8> Visited;
+  const TargetRegisterInfo &TRI = *MF.getSubtarget().getRegisterInfo();
+  Ret.HasPreferredReg = VRM->hasPreferredPhys(LI.reg());
+
+  for (MachineRegisterInfo::reg_instr_nodbg_iterator
+           I = MRI->reg_instr_nodbg_begin(LI.reg()),
+           E = MRI->reg_instr_nodbg_end();
+       I != E;) {
+    MachineInstr *MI = &*(I++);
+
+    ++Ret.NrDefsAndUses;
+    if (!Visited.insert(MI).second)
+      continue;
+
+    if (MI->isIdentityCopy() || MI->isImplicitDef())
+      continue;
+
+    bool Reads, Writes;
+    std::tie(Reads, Writes) = MI->readsWritesVirtualRegister(LI.reg());
+
+    float Freq = MBFI.getBlockFreqRelativeToEntryBlock(MI->getParent());
+    Ret.HottestBlockFreq = std::max(Freq, Ret.HottestBlockFreq);
+
+    Ret.R += (Reads && !Writes) * Freq;
+    Ret.W += (!Reads && Writes) * Freq;
+    Ret.RW += (Reads && Writes) * Freq;
+
+    auto *MBB = MI->getParent();
+    auto *Loop = Loops.getLoopFor(MBB);
+    bool IsExiting = Loop ? Loop->isLoopExiting(MBB) : false;
+
+    if (Writes && IsExiting && LIS->isLiveOutOfMBB(LI, MBB))
+      Ret.IndVarUpdates += Freq;
+
+    if (MI->isCopy() && VirtRegAuxInfo::copyHint(MI, LI.reg(), TRI, *MRI))
+      Ret.HintWeights += Freq;
+  }
+  Ret.IsRemat = VirtRegAuxInfo::isRematerializable(
+      LI, *LIS, *VRM, *MF.getSubtarget().getInstrInfo());
+  return Ret;
+}
+
 // Overall, this currently mimics what we do for weight calculation, but instead
 // of accummulating the various features, we keep them separate.
 void MLEvictAdvisor::extractFeatures(
@@ -678,11 +740,11 @@ void MLEvictAdvisor::extractFeatures(
     int64_t IsHint, int64_t LocalIntfsCount, float NrUrgent) const {
   int64_t NrDefsAndUses = 0;
   int64_t NrBrokenHints = 0;
-  float R = 0;
-  float W = 0;
-  float RW = 0;
-  float IndVarUpdates = 0;
-  float HintWeights = 0.0;
+  double R = 0.0;
+  double W = 0.0;
+  double RW = 0.0;
+  double IndVarUpdates = 0.0;
+  double HintWeights = 0.0;
   float StartBBFreq = 0.0;
   float EndBBFreq = 0.0;
   float HottestBlockFreq = 0.0;
@@ -709,46 +771,19 @@ void MLEvictAdvisor::extractFeatures(
 
     if (LI.endIndex() > EndSI)
       EndSI = LI.endIndex();
+    const LIFeatureComponents LIFC = getLIFeatureComponents(LI);
+    NrBrokenHints += LIFC.HasPreferredReg;
 
-    SmallPtrSet<MachineInstr *, 8> Visited;
-    const TargetRegisterInfo &TRI = *MF.getSubtarget().getRegisterInfo();
-    NrBrokenHints += VRM->hasPreferredPhys(LI.reg());
-
-    for (MachineRegisterInfo::reg_instr_nodbg_iterator
-             I = MRI->reg_instr_nodbg_begin(LI.reg()),
-             E = MRI->reg_instr_nodbg_end();
-         I != E;) {
-      MachineInstr *MI = &*(I++);
+    NrDefsAndUses += LIFC.NrDefsAndUses;
+    HottestBlockFreq = std::max(HottestBlockFreq, LIFC.HottestBlockFreq);
+    R += LIFC.R;
+    W += LIFC.W;
+    RW += LIFC.RW;
 
-      ++NrDefsAndUses;
-      if (!Visited.insert(MI).second)
-        continue;
+    IndVarUpdates += LIFC.IndVarUpdates;
 
-      if (MI->isIdentityCopy() || MI->isImplicitDef())
-        continue;
-
-      bool Reads, Writes;
-      std::tie(Reads, Writes) = MI->readsWritesVirtualRegister(LI.reg());
-
-      float Freq = MBFI.getBlockFreqRelativeToEntryBlock(MI->getParent());
-      if (Freq > HottestBlockFreq)
-        HottestBlockFreq = Freq;
-      R += (Reads && !Writes) * Freq;
-      W += (!Reads && Writes) * Freq;
-      RW += (Reads && Writes) * Freq;
-
-      auto *MBB = MI->getParent();
-      auto *Loop = Loops.getLoopFor(MBB);
-      bool IsExiting = Loop ? Loop->isLoopExiting(MBB) : false;
-
-      if (Writes && IsExiting && LIS->isLiveOutOfMBB(LI, MBB))
-        IndVarUpdates += Freq;
-
-      if (MI->isCopy() && VirtRegAuxInfo::copyHint(MI, LI.reg(), TRI, *MRI))
-        HintWeights += Freq;
-    }
-    NrRematerializable += VirtRegAuxInfo::isRematerializable(
-        LI, *LIS, *VRM, *MF.getSubtarget().getInstrInfo());
+    HintWeights += LIFC.HintWeights;
+    NrRematerializable += LIFC.IsRemat;
   }
   size_t Size = 0;
   if (!Intervals.empty()) {

diff  --git a/llvm/test/CodeGen/MLRegalloc/Inputs/reference-log-noml.txt b/llvm/test/CodeGen/MLRegalloc/Inputs/reference-log-noml.txt
index e1f7d9ab1d36..d49b86112b79 100644
--- a/llvm/test/CodeGen/MLRegalloc/Inputs/reference-log-noml.txt
+++ b/llvm/test/CodeGen/MLRegalloc/Inputs/reference-log-noml.txt
@@ -41,17 +41,17 @@ fields {
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.420772523  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.992761  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  }  }
- feature {  float_list {  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.140257508  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333373  }  }
+ feature {  float_list {  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.140257493  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333313  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.420772523  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.999999821  value: 0.140257493  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.182143316  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0.877776504  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0410382412  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.479216278  value: 0  value: 0  value: 0.876994908  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0259402078  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.140257493  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.182143345  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0.877776504  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.041038245  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.479216307  value: 0  value: 0  value: 0.876994908  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0259402096  }  }
  feature {  float_list {  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.999999821  value: 0.546429932  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0154713513  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.479643375  value: 0  value: 0  value: 0.877776504  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0135803893  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.479643375  value: 0  value: 0  value: 0.877776504  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0135803893  }  }  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.54643  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0154713532  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.479643404  value: 0  value: 0  value: 0.877776504  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0135803903  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.479643404  value: 0  value: 0  value: 0.877776504  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0135803903  }  }  }  }
  feature_list {
  key: \"hottest_bb_freq_by_max\"  value {
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
@@ -530,51 +530,51 @@ fields {
  feature_list {
  key: \"weighed_reads_by_max\"  value {
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.700275123  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 5.47332839e-11  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.115817033  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.115817033  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 5.47332908e-11  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.115817048  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.115817048  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.213957906  value: 0.213957906  value: 0.224476278  value: 1.93036823e-10  value: 0.408470869  value: 0.408470869  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.190942705  value: 0  value: 0.347451121  value: 0.347451121  value: 0.181995615  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 5.47332839e-11  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0337726921  value: 0.0337726921  value: 0.0354329869  value: 0.473542124  value: 0.0644760504  value: 0.0644760504  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.391873717  value: 0.074825421  value: 1  value: 0  value: 0.136156946  value: 0.0713193  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0453856513  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0112575646  value: 0.0118109975  value: 0.15784739  value: 1  value: 0.0214920193  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.000982483383  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0112575646  value: 0.0118109975  value: 0.15784739  value: 1  value: 0.0214920193  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00343869184  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0112575646  value: 0.0118109975  value: 0.15784739  value: 1  value: 0.0214920193  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0709281564  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.06185624  value: 0.0118109975  value: 0.15784739  value: 1  value: 0  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00716400659  }  }
- feature {  float_list {  value: 0.212784484  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0112575646  value: 0.0118109975  value: 0.15784739  value: 1  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.109056346  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0112575646  value: 0.0118109975  value: 0.15784739  value: 1  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0709281564  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0118109975  value: 0.15784739  value: 1  value: 0  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0037525217  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.212784484  value: 0.0118109975  value: 0.15784739  value: 1  value: 0.32716912  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0547605269  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.26338315  value: 0  value: 0.15784739  value: 1  value: 0.32716912  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00393699901  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.274917394  value: 0.164281562  value: 0.15784739  value: 1  value: 0.32716912  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00384476036  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.19094272  value: 0  value: 0.34745115  value: 0.34745115  value: 0.18199563  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 5.47332908e-11  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0337726921  value: 0.0337726921  value: 0.0354329906  value: 0.473542154  value: 0.0644760579  value: 0.0644760579  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.391873658  value: 0.074825421  value: 1  value: 0  value: 0.136156946  value: 0.0713193  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0453856513  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0112575637  value: 0.0118109966  value: 0.157847375  value: 1  value: 0.0214920174  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.000982483267  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0112575637  value: 0.0118109966  value: 0.157847375  value: 1  value: 0.0214920174  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00343869138  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0112575637  value: 0.0118109966  value: 0.157847375  value: 1  value: 0.0214920174  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0709281489  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0618562289  value: 0.0118109966  value: 0.157847375  value: 1  value: 0  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00716400566  }  }
+ feature {  float_list {  value: 0.212784439  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0112575637  value: 0.0118109966  value: 0.157847375  value: 1  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.109056324  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0112575637  value: 0.0118109966  value: 0.157847375  value: 1  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0709281489  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0118109966  value: 0.157847375  value: 1  value: 0  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00375252124  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.212784439  value: 0.0118109966  value: 0.157847375  value: 1  value: 0.327169  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0547605231  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.26338312  value: 0  value: 0.157847375  value: 1  value: 0.327169  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00393699855  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.274917394  value: 0.164281547  value: 0.157847375  value: 1  value: 0.327169  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00384476  }  }
  feature {  float_list {  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.34133026  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.212784484  value: 0.164281562  value: 0.15784739  value: 1  value: 0.32716912  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1.63819121e-12  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.26338315  value: 0.164281562  value: 0.15784739  value: 1  value: 0.32716912  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00294745015  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.26338315  value: 0.164281562  value: 0.15784739  value: 1  value: 0.32716912  value: 0.0112575646  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00294745015  }  }  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.212784439  value: 0.164281547  value: 0.157847375  value: 1  value: 0.327169  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1.6381911e-12  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.26338312  value: 0.164281547  value: 0.157847375  value: 1  value: 0.327169  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00294745  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.26338312  value: 0.164281547  value: 0.157847375  value: 1  value: 0.327169  value: 0.0112575637  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.00294745  }  }  }  }
  feature_list {
  key: \"weighed_writes_by_max\"  value {
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0833333358  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0833333358  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0833333358  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  value: 0.862989366  value: 1  value: 0.333333343  value: 0.333333343  value: 0.333333343  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.111111112  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.75  value: 0  value: 0.25  value: 0.25  value: 0.647242  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0833333358  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  value: 0.862989366  value: 1  value: 0.333333343  value: 0.333333343  value: 0.333333343  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.055555556  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.75  value: 0.25  value: 0  value: 0.25  value: 0.647242  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0833333358  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  value: 1  value: 0.333333343  value: 0.166666672  value: 0.333333343  value: 0.862989366  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.055555556  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  value: 1  value: 0.333333343  value: 0.166666672  value: 0.333333343  value: 0.862989366  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.055555556  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.191130862  value: 0.57339257  value: 0.191130862  value: 0.0955654308  value: 0.191130862  value: 0.494831681  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.75  value: 0.25  value: 0.125  value: 0  value: 0.647242  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0833333358  }  }
- feature {  float_list {  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0637102947  value: 0.191130877  value: 0.0637102947  value: 0.0318551473  value: 0.164943919  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.28623724  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.191130862  value: 0.57339257  value: 0.191130862  value: 0.0955654308  value: 0.494831681  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.333333343  value: 0.166666672  value: 0  value: 0.862989366  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.111111112  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.191130877  value: 0.0637102947  value: 0.0318551473  value: 0.85871166  value: 0.164943919  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.250019193  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  value: 0.862989247  value: 1  value: 0.333333343  value: 0.333333343  value: 0.333333343  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.111111112  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.75  value: 0  value: 0.25  value: 0.25  value: 0.64724195  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0833333358  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  value: 0.862989247  value: 1  value: 0.333333343  value: 0.333333343  value: 0.333333343  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.055555556  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.75  value: 0.25  value: 0  value: 0.25  value: 0.64724195  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0833333358  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  value: 1  value: 0.333333343  value: 0.166666672  value: 0.333333343  value: 0.862989247  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.055555556  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  value: 1  value: 0.333333343  value: 0.166666672  value: 0.333333343  value: 0.862989247  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.055555556  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.191130847  value: 0.57339251  value: 0.191130847  value: 0.0955654234  value: 0.191130847  value: 0.494831592  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.75  value: 0.25  value: 0.125  value: 0  value: 0.64724195  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0833333358  }  }
+ feature {  float_list {  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0637102798  value: 0.191130847  value: 0.0637102798  value: 0.0318551399  value: 0.164943874  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.28623718  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.191130847  value: 0.57339251  value: 0.191130847  value: 0.0955654234  value: 0.494831592  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.333333343  value: 0.166666672  value: 0  value: 0.862989247  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.111111112  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.191130847  value: 0.0637102798  value: 0.0318551399  value: 0.858711541  value: 0.164943874  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.250019163  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0  value: 0.0534872264  value: 0.0267436132  value: 0.720921278  value: 0.138476714  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0534872264  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.600418925  value: 0.0509999059  value: 0.025499953  value: 0.687396228  value: 0.132037118  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0169999693  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.600419  value: 0.0509999096  value: 0.0254999548  value: 0.687396288  value: 0.132037118  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0169999711  }  }
  feature {  float_list {  value: 1  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.333333343  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  }  }
- feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.750057578  value: 0.0637102947  value: 0.0318551473  value: 0.85871166  value: 0.164943919  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0212367661  }  }
+ feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.750057459  value: 0.0637102798  value: 0.0318551399  value: 0.858711541  value: 0.164943874  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0212367605  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.629702  value: 0.0534872264  value: 0.0267436132  value: 0.720921278  value: 0.138476714  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0178290755  }  }
  feature {  float_list {  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 1  value: 0.629702  value: 0.0534872264  value: 0.0267436132  value: 0.720921278  value: 0.138476714  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0  value: 0.0178290755  }  }  }  } } "
  }


        


More information about the llvm-commits mailing list