Skip to content

[DebugInfo][InstrRef] Index DebugVariables and some DILocations #99318

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 18, 2024

Conversation

jmorse
Copy link
Member

@jmorse jmorse commented Jul 17, 2024

A lot of time in LiveDebugValues is spent computing DenseMap keys for DebugVariables, and they're made up of three pointers, so are large. This patch installs an index for them: for the SSA and value-to-location mapping parts of InstrRefBasedLDV we don't need to access things like the variable declaration or the inlining site, so just use a uint32_t identifier for each variable fragment that's tracked. The compile-time performance improvements are substantial (almost 0.4% on the tracker).

About 80% of this patch is just replacing DebugVariable references with DebugVariableIDs instead, however there are some larger consequences. We spend lots of time fetching DILocations when emitting DBG_VALUE instructions, so index those with the DebugVariables: this means all DILocations on all new DBG_VALUE instructions will normalise to the first-seen DILocation for the variable (which should be fine).

We also used to keep an ordering of when each variable was seen first in a DBG_* instruction, in the AllVarsNumbering collection, so that we can emit new DBG_* instructions in a stable order. We can hang this off the DebugVariable index instead, so AllVarsNumbering is deleted.

As a consequence of deleting AllVarsNumbering, the order that DBG_* instructions are outputted in can change: we now produce a total order based on RPO exploration of the function, not exploring in normal block-order. That causes the DBG_* instructions in live-debug-values-fragments.mir to change order. These differences don't affect the meaning of the debug-info, but will cause slightly different ordered output, hence this isn't an NFC patch. Downstream tests that fail because of ordering changes /should/ be able to just update the order with no ill effects.

Finally, rather than ordering by AllVarsNumbering just before DBG_* instructions are linked into the output MIR, store instructions along with their DebugVariableID, so that they can be sorted by that instead.

(I thought about trying to split this patch up into something smaller, but there's no convenient half-way point without having to generate some dodgy code splicing bits and pieces together, sorry).

A lot of time in LiveDebugValues is spent computing DenseMap keys for
DebugVariables, and they're made up of three pointers, so are large. This
patch installs an index for them: for the SSA and value-to-location mapping
parts of InstrRefBasedLDV we don't need to access things like the variable
declaration or the inlining site, so just use a uint32_t identifier for
each variable fragment that's tracked. The compile-time performance
improvements are substantial (almost 0.4% on the tracker).

About 80% of this patch is just replacing DebugVariable references with
DebugVariableIDs instead, however there are some larger consequences. We
spend lots of time fetching DILocations when emitting DBG_VALUE
instructions, so index those with the DebugVariables: this means all
DILocations on all DBG_VALUE instructions will normalise to the first-seen
DILocation for the variable (which should be fine).

We also used to keep an ordering of when each variable was seen first in a
DBG_* instruction, in the AllVarsNumbering collection, so that we can emit
new DBG_* instructions in a stable order. We can hang this off the
DebugVariable index instead, so AllVarsNumbering is deleted.

As a consequence of deleting AllVarsNumbering, the order that DBG_*
instructions are outputted in can change: we now produce a total order
based on RPO exploration of the function, not exploring in normal
block-order. That causes the DBG_* instructions in
live-debug-values-fragments.mir to change order. These differences don't
affect the meaning of the debug-info, but will cause slightly different
ordered output, hence this isn't an NFC patch. Downstream tests that fail
because of ordering changes /should/ be able to just update the order with
no ill effects.

Finally, rather than ordering by AllVarsNumbering just before DBG_*
instructions are linked into the output MIR, store instructions along with
their DebugVariableID, so that they can be sorted by that instead.
@jmorse jmorse requested review from SLTozer and OCHyams July 17, 2024 12:55
@llvmbot
Copy link
Member

llvmbot commented Jul 17, 2024

@llvm/pr-subscribers-debuginfo

Author: Jeremy Morse (jmorse)

Changes

A lot of time in LiveDebugValues is spent computing DenseMap keys for DebugVariables, and they're made up of three pointers, so are large. This patch installs an index for them: for the SSA and value-to-location mapping parts of InstrRefBasedLDV we don't need to access things like the variable declaration or the inlining site, so just use a uint32_t identifier for each variable fragment that's tracked. The compile-time performance improvements are substantial (almost 0.4% on the tracker).

About 80% of this patch is just replacing DebugVariable references with DebugVariableIDs instead, however there are some larger consequences. We spend lots of time fetching DILocations when emitting DBG_VALUE instructions, so index those with the DebugVariables: this means all DILocations on all new DBG_VALUE instructions will normalise to the first-seen DILocation for the variable (which should be fine).

We also used to keep an ordering of when each variable was seen first in a DBG_* instruction, in the AllVarsNumbering collection, so that we can emit new DBG_* instructions in a stable order. We can hang this off the DebugVariable index instead, so AllVarsNumbering is deleted.

As a consequence of deleting AllVarsNumbering, the order that DBG_* instructions are outputted in can change: we now produce a total order based on RPO exploration of the function, not exploring in normal block-order. That causes the DBG_* instructions in live-debug-values-fragments.mir to change order. These differences don't affect the meaning of the debug-info, but will cause slightly different ordered output, hence this isn't an NFC patch. Downstream tests that fail because of ordering changes /should/ be able to just update the order with no ill effects.

Finally, rather than ordering by AllVarsNumbering just before DBG_* instructions are linked into the output MIR, store instructions along with their DebugVariableID, so that they can be sorted by that instead.

(I thought about trying to split this patch up into something smaller, but there's no convenient half-way point without having to generate some dodgy code splicing bits and pieces together, sorry).


Patch is 38.51 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/99318.diff

4 Files Affected:

  • (modified) llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp (+103-98)
  • (modified) llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h (+78-27)
  • (modified) llvm/test/DebugInfo/MIR/X86/live-debug-values-fragments.mir (+6-6)
  • (modified) llvm/unittests/CodeGen/InstrRefLDVTest.cpp (+2-1)
diff --git a/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp b/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
index 555cbb7a507f4..dbb21344c72d0 100644
--- a/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
+++ b/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
@@ -183,6 +183,7 @@ class TransferTracker {
   /// information from it. (XXX make it const?)
   MLocTracker *MTracker;
   MachineFunction &MF;
+  const DebugVariableMap &DVMap;
   bool ShouldEmitDebugEntryValues;
 
   /// Record of all changes in variable locations at a block position. Awkwardly
@@ -191,7 +192,9 @@ class TransferTracker {
   struct Transfer {
     MachineBasicBlock::instr_iterator Pos; /// Position to insert DBG_VALUes
     MachineBasicBlock *MBB; /// non-null if we should insert after.
-    SmallVector<MachineInstr *, 4> Insts; /// Vector of DBG_VALUEs to insert.
+    /// Vector of DBG_VALUEs to insert. Store with their DebugVariableID so that
+    /// they can be sorted into a stable order for emission at a later time.
+    SmallVector<std::pair<DebugVariableID, MachineInstr *>, 4> Insts;
   };
 
   /// Stores the resolved operands (machine locations and constants) and
@@ -227,15 +230,15 @@ class TransferTracker {
   /// Map from LocIdxes to which DebugVariables are based that location.
   /// Mantained while stepping through the block. Not accurate if
   /// VarLocs[Idx] != MTracker->LocIdxToIDNum[Idx].
-  DenseMap<LocIdx, SmallSet<DebugVariable, 4>> ActiveMLocs;
+  DenseMap<LocIdx, SmallSet<DebugVariableID, 4>> ActiveMLocs;
 
   /// Map from DebugVariable to it's current location and qualifying meta
   /// information. To be used in conjunction with ActiveMLocs to construct
   /// enough information for the DBG_VALUEs for a particular LocIdx.
-  DenseMap<DebugVariable, ResolvedDbgValue> ActiveVLocs;
+  DenseMap<DebugVariableID, ResolvedDbgValue> ActiveVLocs;
 
   /// Temporary cache of DBG_VALUEs to be entered into the Transfers collection.
-  SmallVector<MachineInstr *, 4> PendingDbgValues;
+  SmallVector<std::pair<DebugVariableID, MachineInstr *>, 4> PendingDbgValues;
 
   /// Record of a use-before-def: created when a value that's live-in to the
   /// current block isn't available in any machine location, but it will be
@@ -244,12 +247,12 @@ class TransferTracker {
     /// Value of this variable, def'd in block.
     SmallVector<DbgOp> Values;
     /// Identity of this variable.
-    DebugVariable Var;
+    DebugVariableID VarID;
     /// Additional variable properties.
     DbgValueProperties Properties;
-    UseBeforeDef(ArrayRef<DbgOp> Values, const DebugVariable &Var,
+    UseBeforeDef(ArrayRef<DbgOp> Values, DebugVariableID VarID,
                  const DbgValueProperties &Properties)
-        : Values(Values.begin(), Values.end()), Var(Var),
+        : Values(Values.begin(), Values.end()), VarID(VarID),
           Properties(Properties) {}
   };
 
@@ -260,15 +263,16 @@ class TransferTracker {
   /// The set of variables that are in UseBeforeDefs and can become a location
   /// once the relevant value is defined. An element being erased from this
   /// collection prevents the use-before-def materializing.
-  DenseSet<DebugVariable> UseBeforeDefVariables;
+  DenseSet<DebugVariableID> UseBeforeDefVariables;
 
   const TargetRegisterInfo &TRI;
   const BitVector &CalleeSavedRegs;
 
   TransferTracker(const TargetInstrInfo *TII, MLocTracker *MTracker,
-                  MachineFunction &MF, const TargetRegisterInfo &TRI,
+                  MachineFunction &MF, const DebugVariableMap &DVMap,
+                  const TargetRegisterInfo &TRI,
                   const BitVector &CalleeSavedRegs, const TargetPassConfig &TPC)
-      : TII(TII), MTracker(MTracker), MF(MF), TRI(TRI),
+      : TII(TII), MTracker(MTracker), MF(MF), DVMap(DVMap), TRI(TRI),
         CalleeSavedRegs(CalleeSavedRegs) {
     TLI = MF.getSubtarget().getTargetLowering();
     auto &TM = TPC.getTM<TargetMachine>();
@@ -345,7 +349,7 @@ class TransferTracker {
   ///    determine the values used by Value.
   void loadVarInloc(MachineBasicBlock &MBB, DbgOpIDMap &DbgOpStore,
                     const DenseMap<ValueIDNum, LocationAndQuality> &ValueToLoc,
-                    DebugVariable Var, DbgValue Value) {
+                    DebugVariableID VarID, DbgValue Value) {
     SmallVector<DbgOp> DbgOps;
     SmallVector<ResolvedDbgOp> ResolvedDbgOps;
     bool IsValueValid = true;
@@ -386,7 +390,7 @@ class TransferTracker {
                                       static_cast<unsigned>(Num.getInst()));
           continue;
         }
-        recoverAsEntryValue(Var, Value.Properties, Num);
+        recoverAsEntryValue(VarID, Value.Properties, Num);
         IsValueValid = false;
         break;
       }
@@ -404,8 +408,7 @@ class TransferTracker {
 
     // Add UseBeforeDef entry for the last value to be defined in this block.
     if (LastUseBeforeDef) {
-      addUseBeforeDef(Var, Value.Properties, DbgOps,
-                      LastUseBeforeDef);
+      addUseBeforeDef(VarID, Value.Properties, DbgOps, LastUseBeforeDef);
       return;
     }
 
@@ -413,13 +416,15 @@ class TransferTracker {
     // the transfer.
     for (const ResolvedDbgOp &Op : ResolvedDbgOps)
       if (!Op.IsConst)
-        ActiveMLocs[Op.Loc].insert(Var);
+        ActiveMLocs[Op.Loc].insert(VarID);
     auto NewValue = ResolvedDbgValue{ResolvedDbgOps, Value.Properties};
-    auto Result = ActiveVLocs.insert(std::make_pair(Var, NewValue));
+    auto Result = ActiveVLocs.insert(std::make_pair(VarID, NewValue));
     if (!Result.second)
       Result.first->second = NewValue;
+    auto &[Var, DILoc] = DVMap.lookupDVID(VarID);
     PendingDbgValues.push_back(
-        MTracker->emitLoc(ResolvedDbgOps, Var, Value.Properties));
+        std::make_pair(VarID, &*MTracker->emitLoc(ResolvedDbgOps, Var, DILoc,
+                                                  Value.Properties)));
   }
 
   /// Load object with live-in variable values. \p mlocs contains the live-in
@@ -430,7 +435,7 @@ class TransferTracker {
   /// FIXME: could just examine mloctracker instead of passing in \p mlocs?
   void
   loadInlocs(MachineBasicBlock &MBB, ValueTable &MLocs, DbgOpIDMap &DbgOpStore,
-             const SmallVectorImpl<std::pair<DebugVariable, DbgValue>> &VLocs,
+             const SmallVectorImpl<std::pair<DebugVariableID, DbgValue>> &VLocs,
              unsigned NumLocs) {
     ActiveMLocs.clear();
     ActiveVLocs.clear();
@@ -486,11 +491,11 @@ class TransferTracker {
 
   /// Record that \p Var has value \p ID, a value that becomes available
   /// later in the function.
-  void addUseBeforeDef(const DebugVariable &Var,
+  void addUseBeforeDef(DebugVariableID VarID,
                        const DbgValueProperties &Properties,
                        const SmallVectorImpl<DbgOp> &DbgOps, unsigned Inst) {
-    UseBeforeDefs[Inst].emplace_back(DbgOps, Var, Properties);
-    UseBeforeDefVariables.insert(Var);
+    UseBeforeDefs[Inst].emplace_back(DbgOps, VarID, Properties);
+    UseBeforeDefVariables.insert(VarID);
   }
 
   /// After the instruction at index \p Inst and position \p pos has been
@@ -509,7 +514,7 @@ class TransferTracker {
     // Populate ValueToLoc with illegal default mappings for every value used by
     // any UseBeforeDef variables for this instruction.
     for (auto &Use : MIt->second) {
-      if (!UseBeforeDefVariables.count(Use.Var))
+      if (!UseBeforeDefVariables.count(Use.VarID))
         continue;
 
       for (DbgOp &Op : Use.Values) {
@@ -548,7 +553,7 @@ class TransferTracker {
     // Using the map of values to locations, produce a final set of values for
     // this variable.
     for (auto &Use : MIt->second) {
-      if (!UseBeforeDefVariables.count(Use.Var))
+      if (!UseBeforeDefVariables.count(Use.VarID))
         continue;
 
       SmallVector<ResolvedDbgOp> DbgOps;
@@ -571,8 +576,9 @@ class TransferTracker {
         continue;
 
       // Otherwise, we're good to go.
-      PendingDbgValues.push_back(
-          MTracker->emitLoc(DbgOps, Use.Var, Use.Properties));
+      auto &[Var, DILoc] = DVMap.lookupDVID(Use.VarID);
+      PendingDbgValues.push_back(std::make_pair(
+          Use.VarID, MTracker->emitLoc(DbgOps, Var, DILoc, Use.Properties)));
     }
     flushDbgValues(pos, nullptr);
   }
@@ -622,7 +628,7 @@ class TransferTracker {
     return Reg != SP && Reg != FP;
   }
 
-  bool recoverAsEntryValue(const DebugVariable &Var,
+  bool recoverAsEntryValue(DebugVariableID VarID,
                            const DbgValueProperties &Prop,
                            const ValueIDNum &Num) {
     // Is this variable location a candidate to be an entry value. First,
@@ -643,6 +649,8 @@ class TransferTracker {
       DIExpr = *NonVariadicExpression;
     }
 
+    auto &[Var, DILoc] = DVMap.lookupDVID(VarID);
+
     // Is the variable appropriate for entry values (i.e., is a parameter).
     if (!isEntryValueVariable(Var, DIExpr))
       return false;
@@ -656,9 +664,8 @@ class TransferTracker {
         DIExpression::prepend(DIExpr, DIExpression::EntryValue);
     Register Reg = MTracker->LocIdxToLocID[Num.getLoc()];
     MachineOperand MO = MachineOperand::CreateReg(Reg, false);
-
-    PendingDbgValues.push_back(
-        emitMOLoc(MO, Var, {NewExpr, Prop.Indirect, false}));
+    PendingDbgValues.push_back(std::make_pair(
+        VarID, &*emitMOLoc(MO, Var, {NewExpr, Prop.Indirect, false})));
     return true;
   }
 
@@ -667,19 +674,20 @@ class TransferTracker {
     DebugVariable Var(MI.getDebugVariable(), MI.getDebugExpression(),
                       MI.getDebugLoc()->getInlinedAt());
     DbgValueProperties Properties(MI);
+    DebugVariableID VarID = DVMap.getDVID(Var);
 
     // Ignore non-register locations, we don't transfer those.
     if (MI.isUndefDebugValue() ||
         all_of(MI.debug_operands(),
                [](const MachineOperand &MO) { return !MO.isReg(); })) {
-      auto It = ActiveVLocs.find(Var);
+      auto It = ActiveVLocs.find(VarID);
       if (It != ActiveVLocs.end()) {
         for (LocIdx Loc : It->second.loc_indices())
-          ActiveMLocs[Loc].erase(Var);
+          ActiveMLocs[Loc].erase(VarID);
         ActiveVLocs.erase(It);
       }
       // Any use-before-defs no longer apply.
-      UseBeforeDefVariables.erase(Var);
+      UseBeforeDefVariables.erase(VarID);
       return;
     }
 
@@ -705,14 +713,15 @@ class TransferTracker {
                 SmallVectorImpl<ResolvedDbgOp> &NewLocs) {
     DebugVariable Var(MI.getDebugVariable(), MI.getDebugExpression(),
                       MI.getDebugLoc()->getInlinedAt());
+    DebugVariableID VarID = DVMap.getDVID(Var);
     // Any use-before-defs no longer apply.
-    UseBeforeDefVariables.erase(Var);
+    UseBeforeDefVariables.erase(VarID);
 
     // Erase any previous location.
-    auto It = ActiveVLocs.find(Var);
+    auto It = ActiveVLocs.find(VarID);
     if (It != ActiveVLocs.end()) {
       for (LocIdx Loc : It->second.loc_indices())
-        ActiveMLocs[Loc].erase(Var);
+        ActiveMLocs[Loc].erase(VarID);
     }
 
     // If there _is_ no new location, all we had to do was erase.
@@ -722,7 +731,7 @@ class TransferTracker {
       return;
     }
 
-    SmallVector<std::pair<LocIdx, DebugVariable>> LostMLocs;
+    SmallVector<std::pair<LocIdx, DebugVariableID>> LostMLocs;
     for (ResolvedDbgOp &Op : NewLocs) {
       if (Op.IsConst)
         continue;
@@ -749,17 +758,17 @@ class TransferTracker {
         for (const auto &LostMLoc : LostMLocs)
           ActiveMLocs[LostMLoc.first].erase(LostMLoc.second);
         LostMLocs.clear();
-        It = ActiveVLocs.find(Var);
+        It = ActiveVLocs.find(VarID);
         ActiveMLocs[NewLoc.asU64()].clear();
         VarLocs[NewLoc.asU64()] = MTracker->readMLoc(NewLoc);
       }
 
-      ActiveMLocs[NewLoc].insert(Var);
+      ActiveMLocs[NewLoc].insert(VarID);
     }
 
     if (It == ActiveVLocs.end()) {
       ActiveVLocs.insert(
-          std::make_pair(Var, ResolvedDbgValue(NewLocs, Properties)));
+          std::make_pair(VarID, ResolvedDbgValue(NewLocs, Properties)));
     } else {
       It->second.Ops.assign(NewLocs);
       It->second.Properties = Properties;
@@ -802,21 +811,21 @@ class TransferTracker {
     // explicitly undef, then stop here.
     if (!NewLoc && !MakeUndef) {
       // Try and recover a few more locations with entry values.
-      for (const auto &Var : ActiveMLocIt->second) {
-        auto &Prop = ActiveVLocs.find(Var)->second.Properties;
-        recoverAsEntryValue(Var, Prop, OldValue);
+      for (DebugVariableID VarID : ActiveMLocIt->second) {
+        auto &Prop = ActiveVLocs.find(VarID)->second.Properties;
+        recoverAsEntryValue(VarID, Prop, OldValue);
       }
       flushDbgValues(Pos, nullptr);
       return;
     }
 
     // Examine all the variables based on this location.
-    DenseSet<DebugVariable> NewMLocs;
+    DenseSet<DebugVariableID> NewMLocs;
     // If no new location has been found, every variable that depends on this
     // MLoc is dead, so end their existing MLoc->Var mappings as well.
-    SmallVector<std::pair<LocIdx, DebugVariable>> LostMLocs;
-    for (const auto &Var : ActiveMLocIt->second) {
-      auto ActiveVLocIt = ActiveVLocs.find(Var);
+    SmallVector<std::pair<LocIdx, DebugVariableID>> LostMLocs;
+    for (DebugVariableID VarID : ActiveMLocIt->second) {
+      auto ActiveVLocIt = ActiveVLocs.find(VarID);
       // Re-state the variable location: if there's no replacement then NewLoc
       // is std::nullopt and a $noreg DBG_VALUE will be created. Otherwise, a
       // DBG_VALUE identifying the alternative location will be emitted.
@@ -835,19 +844,21 @@ class TransferTracker {
         replace_copy(ActiveVLocIt->second.Ops, DbgOps.begin(), OldOp, NewOp);
       }
 
-      PendingDbgValues.push_back(MTracker->emitLoc(DbgOps, Var, Properties));
+      auto &[Var, DILoc] = DVMap.lookupDVID(VarID);
+      PendingDbgValues.push_back(std::make_pair(
+          VarID, &*MTracker->emitLoc(DbgOps, Var, DILoc, Properties)));
 
       // Update machine locations <=> variable locations maps. Defer updating
       // ActiveMLocs to avoid invalidating the ActiveMLocIt iterator.
       if (!NewLoc) {
         for (LocIdx Loc : ActiveVLocIt->second.loc_indices()) {
           if (Loc != MLoc)
-            LostMLocs.emplace_back(Loc, Var);
+            LostMLocs.emplace_back(Loc, VarID);
         }
         ActiveVLocs.erase(ActiveVLocIt);
       } else {
         ActiveVLocIt->second.Ops = DbgOps;
-        NewMLocs.insert(Var);
+        NewMLocs.insert(VarID);
       }
     }
 
@@ -871,8 +882,8 @@ class TransferTracker {
     // Commit ActiveMLoc changes.
     ActiveMLocIt->second.clear();
     if (!NewMLocs.empty())
-      for (auto &Var : NewMLocs)
-        ActiveMLocs[*NewLoc].insert(Var);
+      for (DebugVariableID VarID : NewMLocs)
+        ActiveMLocs[*NewLoc].insert(VarID);
   }
 
   /// Transfer variables based on \p Src to be based on \p Dst. This handles
@@ -895,17 +906,18 @@ class TransferTracker {
     // For each variable based on Src; create a location at Dst.
     ResolvedDbgOp SrcOp(Src);
     ResolvedDbgOp DstOp(Dst);
-    for (const auto &Var : MovingVars) {
-      auto ActiveVLocIt = ActiveVLocs.find(Var);
+    for (DebugVariableID VarID : MovingVars) {
+      auto ActiveVLocIt = ActiveVLocs.find(VarID);
       assert(ActiveVLocIt != ActiveVLocs.end());
 
       // Update all instances of Src in the variable's tracked values to Dst.
       std::replace(ActiveVLocIt->second.Ops.begin(),
                    ActiveVLocIt->second.Ops.end(), SrcOp, DstOp);
 
-      MachineInstr *MI = MTracker->emitLoc(ActiveVLocIt->second.Ops, Var,
+      auto &[Var, DILoc] = DVMap.lookupDVID(VarID);
+      MachineInstr *MI = MTracker->emitLoc(ActiveVLocIt->second.Ops, Var, DILoc,
                                            ActiveVLocIt->second.Properties);
-      PendingDbgValues.push_back(MI);
+      PendingDbgValues.push_back(std::make_pair(VarID, MI));
     }
     ActiveMLocs[Src].clear();
     flushDbgValues(Pos, nullptr);
@@ -1156,11 +1168,9 @@ LLVM_DUMP_METHOD void MLocTracker::dump_mloc_map() {
 
 MachineInstrBuilder
 MLocTracker::emitLoc(const SmallVectorImpl<ResolvedDbgOp> &DbgOps,
-                     const DebugVariable &Var,
+                     const DebugVariable &Var, const DILocation *DILoc,
                      const DbgValueProperties &Properties) {
-  DebugLoc DL = DILocation::get(Var.getVariable()->getContext(), 0, 0,
-                                Var.getVariable()->getScope(),
-                                const_cast<DILocation *>(Var.getInlinedAt()));
+  DebugLoc DL = DebugLoc(DILoc);
 
   const MCInstrDesc &Desc = Properties.IsVariadic
                                 ? TII.get(TargetOpcode::DBG_VALUE_LIST)
@@ -1706,7 +1716,8 @@ bool InstrRefBasedLDV::transferDebugInstrRef(MachineInstr &MI,
       LastUseBeforeDef = std::max(LastUseBeforeDef, NewID.getInst());
     }
     if (IsValidUseBeforeDef) {
-      TTracker->addUseBeforeDef(V, {MI.getDebugExpression(), false, true},
+      DebugVariableID VID = DVMap.insertDVID(V, MI.getDebugLoc().get());
+      TTracker->addUseBeforeDef(VID, {MI.getDebugExpression(), false, true},
                                 DbgOps, LastUseBeforeDef);
     }
   }
@@ -1715,9 +1726,11 @@ bool InstrRefBasedLDV::transferDebugInstrRef(MachineInstr &MI,
   // This DBG_VALUE is potentially a $noreg / undefined location, if
   // FoundLoc is illegal.
   // (XXX -- could morph the DBG_INSTR_REF in the future).
-  MachineInstr *DbgMI = MTracker->emitLoc(NewLocs, V, Properties);
+  MachineInstr *DbgMI =
+      MTracker->emitLoc(NewLocs, V, MI.getDebugLoc().get(), Properties);
+  DebugVariableID ID = DVMap.getDVID(V);
 
-  TTracker->PendingDbgValues.push_back(DbgMI);
+  TTracker->PendingDbgValues.push_back(std::make_pair(ID, DbgMI));
   TTracker->flushDbgValues(MI.getIterator(), nullptr);
   return true;
 }
@@ -3092,7 +3105,8 @@ void InstrRefBasedLDV::getBlocksForScope(
 }
 
 void InstrRefBasedLDV::buildVLocValueMap(
-    const DILocation *DILoc, const SmallSet<DebugVariable, 4> &VarsWeCareAbout,
+    const DILocation *DILoc,
+    const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
     SmallPtrSetImpl<MachineBasicBlock *> &AssignBlocks, LiveInsT &Output,
     FuncValueTable &MOutLocs, FuncValueTable &MInLocs,
     SmallVectorImpl<VLocTracker> &AllTheVLocs) {
@@ -3167,7 +3181,7 @@ void InstrRefBasedLDV::buildVLocValueMap(
   // between blocks. This keeps the locality of working on one lexical scope at
   // at time, but avoids re-processing variable values because some other
   // variable has been assigned.
-  for (const auto &Var : VarsWeCareAbout) {
+  for (DebugVariableID VarID : VarsWeCareAbout) {
     // Re-initialize live-ins and live-outs, to clear the remains of previous
     // variables live-ins / live-outs.
     for (unsigned int I = 0; I < NumBlocks; ++I) {
@@ -3181,7 +3195,7 @@ void InstrRefBasedLDV::buildVLocValueMap(
     SmallPtrSet<MachineBasicBlock *, 32> DefBlocks;
     for (const MachineBasicBlock *ExpMBB : BlocksToExplore) {
       auto &TransferFunc = AllTheVLocs[ExpMBB->getNumber()].Vars;
-      if (TransferFunc.contains(Var))
+      if (TransferFunc.contains(VarID))
         DefBlocks.insert(const_cast<MachineBasicBlock *>(ExpMBB));
     }
 
@@ -3191,7 +3205,7 @@ void InstrRefBasedLDV::buildVLocValueMap(
     // only one value definition, things are very simple.
     if (DefBlocks.size() == 1) {
       placePHIsForSingleVarDefinition(MutBlocksToExplore, *DefBlocks.begin(),
-                                      AllTheVLocs, Var, Output);
+                                      AllTheVLocs, VarID, Output);
       continue;
     }
 
@@ -3264,7 +3278,7 @@ void InstrRefBasedLDV::buildVLocValueMap(
 
         // Do transfer function.
         auto &VTracker = AllTheVLocs[MBB->getNumber()];
-        auto TransferIt = VTracker.Vars.find(Var);
+        auto TransferIt = VTracker.Vars.find(VarID);
         if (TransferIt != VTracker.Vars.end()) {
           // Erase on empty transfer (DBG_VALUE $noreg).
           if (TransferIt->second.Kind == DbgValue::Undef) {
@@ -3326,9 +3340,11 @@ void InstrRefBasedLDV::buildVLocValueMap(
         continue;
       if (BlockLiveIn->Kind == DbgValue::VPHI)
         BlockLiveIn->Kind = DbgValue::Def;
+      auto &[Var, DILoc] = DVMap.lookupDVID(VarID);
       assert(BlockLiveIn->Properties.DIExpr->getFragmentInfo()...
[truncated]

Copy link
Contributor

@OCHyams OCHyams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

/// Map DebugVariable to the latest Value it's defined to have.
/// Needs to be a MapVector because we determine order-in-the-input-MIR from
/// the order in this container.
/// the order in this container. (FIXME: this is less true now).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Imo it could be helpful to future developers if you explained why it's less true now here?

jmorse added 3 commits July 18, 2024 13:00
…bles-pls

Conflicts:
	llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp

Combination of the ordering-of-a-vector change with the DebugVaraibleID change
@jmorse
Copy link
Member Author

jmorse commented Jul 18, 2024

/me squints -- so after merging with 2 weeks of master I see the test-change has undone itself. Furthermore, my earlier analysis about it changing to RPO order is wrong because that test function (foo) contains straight line code. Not sure what happened there, but it's even more correct now.

@jmorse
Copy link
Member Author

jmorse commented Jul 18, 2024

Ah, actually, it's going to be because of obscure dependencies between the other speedup patches I've got -- they were all one massive diff, which I've separated into reviewable patches. Panic over.

@jmorse jmorse merged commit 078198f into llvm:main Jul 18, 2024
4 of 6 checks passed
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-gcc-ubuntu running on sie-linux-worker3 while building llvm at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/174/builds/1878

Here is the relevant piece of the build log for the reference:

Step 5 (build-unified-tree) failure: build (failure)
...
7.995 [103/13/124] Linking CXX executable tools/clang/unittests/ASTMatchers/ASTMatchersTests
8.112 [103/12/125] Linking CXX executable tools/clang/unittests/Rewrite/RewriteTests
8.126 [103/11/126] Linking CXX executable tools/clang/unittests/Sema/SemaTests
8.207 [103/10/127] Linking CXX executable tools/clang/unittests/Support/ClangSupportTests
8.247 [103/9/128] Linking CXX executable tools/clang/unittests/Rename/ClangRenameTests
8.299 [103/8/129] Linking CXX executable tools/clang/unittests/Tooling/Syntax/SyntaxTests
8.303 [103/7/130] Linking CXX executable tools/clang/unittests/AST/ASTTests
8.327 [103/6/131] Linking CXX executable tools/clang/unittests/Serialization/SerializationTests
9.262 [103/5/132] Linking CXX executable bin/clang-tidy
10.057 [103/4/133] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
/opt/ccache/bin/g++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/unittests/CodeGen -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/unittests/CodeGen -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/include -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/third-party/unittest/googletest/include -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/third-party/unittest/googlemock/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of ‘void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)’
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)’
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)’
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:64: error: no matching function for call to ‘llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)’
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |                                                                ^
In file included from /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/llvm/MC/MCContext.h:21,
                 from /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: ‘std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::pair<unsigned int, LiveDebugValues::DbgValue>&’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-sie-ubuntu-fast running on sie-linux-worker while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/144/builds/2608

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
...
4.006 [2/10/76] Linking CXX executable unittests/Passes/PassBuilderBindings/PassesBindingsTests
4.046 [2/9/77] Linking CXX executable tools/clang/unittests/Frontend/FrontendTests
4.059 [2/8/78] Linking CXX executable unittests/tools/llvm-mca/LLVMMCATests
4.150 [2/7/79] Linking CXX executable unittests/Transforms/Scalar/ScalarTests
4.169 [2/6/80] Linking CXX executable unittests/Passes/Plugins/PluginsTests
4.188 [2/5/81] Linking CXX executable tools/clang/unittests/Tooling/ToolingTests
4.309 [2/4/82] Linking CXX executable unittests/ExecutionEngine/MCJIT/MCJITTests
4.850 [2/3/83] Linking CXX executable tools/clang/unittests/Interpreter/ClangReplInterpreterTests
5.120 [2/2/84] Linking CXX executable tools/clang/unittests/Interpreter/ExceptionTests/ClangReplInterpreterExceptionTests
9.151 [2/1/85] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/g++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/unittests/CodeGen -I/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/unittests/CodeGen -I/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/build/include -I/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include -I/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/third-party/unittest/googletest/include -I/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/third-party/unittest/googlemock/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of ‘void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)’
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)’
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)’
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:23: error: no matching function for call to ‘llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)’
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/llvm/MC/MCContext.h:21,
                 from /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: ‘std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/home/buildbot/buildbot-root/llvm-clang-x86_64-sie-ubuntu-fast/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::pair<unsigned int, LiveDebugValues::DbgValue>&’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder arc-builder running on arc-worker while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/3/builds/1688

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
...
18.400 [2/15/61] Linking CXX executable unittests/Target/TargetMachineCTests
18.529 [2/14/62] Linking CXX executable unittests/ExecutionEngine/MCJIT/MCJITTests
18.745 [2/13/63] Linking CXX executable unittests/Transforms/Coroutines/CoroTests
18.969 [2/12/64] Linking CXX executable unittests/tools/llvm-cfi-verify/CFIVerifyTests
19.009 [2/11/65] Linking CXX executable unittests/Transforms/Instrumentation/InstrumentationTests
19.133 [2/10/66] Linking CXX executable unittests/Passes/PassBuilderBindings/PassesBindingsTests
19.651 [2/9/67] Linking CXX executable unittests/Transforms/Utils/UtilsTests
19.754 [2/8/68] Linking CXX executable unittests/Target/X86/X86Tests
19.816 [2/7/69] Linking CXX executable unittests/Passes/Plugins/PluginsTests
20.323 [2/6/70] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
/usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iunittests/CodeGen -I/buildbot/worker/arc-folder/llvm-project/llvm/unittests/CodeGen -Iinclude -I/buildbot/worker/arc-folder/llvm-project/llvm/include -I/buildbot/worker/arc-folder/llvm-project/third-party/unittest/googletest/include -I/buildbot/worker/arc-folder/llvm-project/third-party/unittest/googlemock/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /buildbot/worker/arc-folder/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/buildbot/worker/arc-folder/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function 'void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)':
/buildbot/worker/arc-folder/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert 'const llvm::SmallSet<llvm::DebugVariable, 4>' to 'const llvm::SmallSet<unsigned int, 4>&'
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /buildbot/worker/arc-folder/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/buildbot/worker/arc-folder/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of 'void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)'
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/buildbot/worker/arc-folder/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function 'virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()':
/buildbot/worker/arc-folder/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to 'LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)'
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /buildbot/worker/arc-folder/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/buildbot/worker/arc-folder/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: 'LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)'
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/buildbot/worker/arc-folder/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/buildbot/worker/arc-folder/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: 'LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)'
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/buildbot/worker/arc-folder/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/buildbot/worker/arc-folder/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: 'LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)'
/buildbot/worker/arc-folder/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/buildbot/worker/arc-folder/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:64: error: no matching function for call to 'llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)'
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |                                                                ^
In file included from /buildbot/worker/arc-folder/llvm-project/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /buildbot/worker/arc-folder/llvm-project/llvm/include/llvm/MC/MCContext.h:21,
                 from /buildbot/worker/arc-folder/llvm-project/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /buildbot/worker/arc-folder/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/buildbot/worker/arc-folder/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: 'std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]'
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/buildbot/worker/arc-folder/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const std::pair<unsigned int, LiveDebugValues::DbgValue>&'
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder llvm-nvptx64-nvidia-ubuntu running on as-builder-7 while building llvm at step 6 "test-build-unified-tree-check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/160/builds/1894

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-llvm) failure: test (failure)
...
0.909 [2/10/642] Linking CXX executable unittests/ProfileData/ProfileDataTests
0.915 [2/9/643] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
0.956 [2/8/644] Linking CXX executable unittests/ExecutionEngine/Orc/OrcJITTests
0.982 [2/7/645] Linking CXX executable unittests/tools/llvm-exegesis/LLVMExegesisTests
1.011 [2/6/646] Linking CXX executable unittests/Frontend/LLVMFrontendTests
1.101 [2/5/647] Linking CXX executable unittests/Analysis/AnalysisTests
1.149 [2/4/648] Linking CXX executable unittests/IR/IRTests
1.267 [2/3/649] Linking CXX executable unittests/ADT/ADTTests
1.269 [2/2/650] Linking CXX executable unittests/Support/SupportTests
9.008 [2/1/651] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/build/unittests/CodeGen -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/build/include -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/third-party/unittest/googletest/include -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/third-party/unittest/googlemock/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of ‘void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)’
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)’
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)’
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:23: error: no matching function for call to ‘llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)’
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/llvm/MC/MCContext.h:21,
                 from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: ‘std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::pair<unsigned int, LiveDebugValues::DbgValue>&’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

jmorse added a commit that referenced this pull request Jul 18, 2024
…ns (#99318)"

This reverts commit 078198f.

Buildbots unhappy, I must have fluffed it
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder premerge-monolithic-linux running on premerge-linux-1 while building llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/153/builds/3403

Here is the relevant piece of the build log for the reference:

Step 7 (test-build-unified-tree-check-all) failure: test (failure)
...
-- Configuring done
-- Generating done
-- Build files have been written to: /build/buildbot/premerge-monolithic-linux/build/runtimes/runtimes-bins
3.403 [6/46/99] cd /build/buildbot/premerge-monolithic-linux/llvm-project/clang/bindings/python && /etc/cmake/bin/cmake -E env CLANG_NO_DEFAULT_CONFIG=1 CLANG_LIBRARY_PATH=/build/buildbot/premerge-monolithic-linux/build/lib /usr/bin/python3.10 -m unittest discover
......................................................................................................................................
----------------------------------------------------------------------
Ran 134 tests in 2.680s

OK
7.945 [6/2/143] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/clang++ -DBUILD_EXAMPLES -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/build/buildbot/premerge-monolithic-linux/build/unittests/CodeGen -I/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/unittests/CodeGen -I/build/buildbot/premerge-monolithic-linux/build/include -I/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include -I/build/buildbot/premerge-monolithic-linux/llvm-project/third-party/unittest/googletest/include -I/build/buildbot/premerge-monolithic-linux/llvm-project/third-party/unittest/googlemock/include -gmlt -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /build/buildbot/premerge-monolithic-linux/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: no viable conversion from 'const SmallSet<DebugVariable, [...]>' to 'const SmallSet<DebugVariableID, [...]>'
    LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
                                  ^~~~~~~~~~~~~~~
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const SmallSet<DebugVariable, 4>' to 'const SmallSet<unsigned int, 4> &' for 1st argument
class SmallSet {
      ^
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'const SmallSet<DebugVariable, 4>' to 'SmallSet<unsigned int, 4> &&' for 1st argument
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note: passing argument to parameter 'VarsWeCareAbout' here
                         const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
                                                             ^
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:19: error: no matching constructor for initialization of 'VLocTracker'
  VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
  ^
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:17: error: no matching member function for call to 'insert'
  VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
  ~~~~~~~~~~~~~~^~~~~~
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate function not viable: cannot convert initializer list argument to 'const std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
                            ^
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/llvm/ADT/MapVector.h:144:29: note: candidate function not viable: cannot convert initializer list argument to 'std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
                            ^
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2714:19: error: no matching constructor for initialization of 'VLocTracker'
  VLocs.resize(4, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder ml-opt-devrel-x86-64 running on ml-opt-devrel-x86-64-b1 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/175/builds/1935

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
...
6.114 [2/10/682] Linking CXX executable unittests/Transforms/Scalar/ScalarTests
6.126 [2/9/683] Linking CXX executable unittests/Transforms/Utils/UtilsTests
6.369 [2/8/684] Linking CXX executable unittests/CodeGen/GlobalISel/GlobalISelTests
6.530 [2/7/685] Linking CXX executable unittests/MIR/MIRTests
6.629 [2/6/686] Linking CXX executable unittests/tools/llvm-mca/LLVMMCATests
6.766 [2/5/687] Linking CXX executable unittests/MI/MITests
6.786 [2/4/688] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
6.833 [2/3/689] Linking CXX executable unittests/Target/TargetMachineCTests
7.379 [2/2/690] Linking CXX executable unittests/tools/llvm-exegesis/LLVMExegesisTests
11.882 [2/1/691] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
ccache /usr/bin/c++ -DCPUINFO_SUPPORTED_PLATFORM=1 -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/ml-opt-devrel-x86-64-b1/build/unittests/CodeGen -I/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/unittests/CodeGen -I/var/lib/buildbot/.local/lib/python3.7/site-packages/tensorflow/include -I/b/ml-opt-devrel-x86-64-b1/build/include -I/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include -I/b/ml-opt-devrel-x86-64-b1/llvm-project/third-party/unittest/googletest/include -I/b/ml-opt-devrel-x86-64-b1/llvm-project/third-party/unittest/googlemock/include -isystem /tmp/tflitebuild/tensorflow/include -isystem /tmp/tflitebuild/eigen/include/eigen3 -isystem /tmp/tflitebuild/abseil-cpp/include -isystem /tmp/tflitebuild/flatbuffers/include -isystem /tmp/tflitebuild/gemmlowp/include/gemmlowp -isystem /tmp/tflitebuild/ml_dtypes/src/ml_dtypes -isystem /tmp/tflitebuild/ml_dtypes/src/ml_dtypes/ml_dtypes -isystem /tmp/tflitebuild/ruy/include -isystem /tmp/tflitebuild/cpuinfo/include -isystem /tmp/tflitebuild/ARM_NEON_2_x86_SSE/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -DEIGEN_NEON_GEBP_NR=4 -DTFL_STATIC_LIBRARY_BUILD -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of ‘void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)’
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)’
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)’
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:64: error: no matching function for call to ‘llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)’
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |                                                                ^
In file included from /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/llvm/MC/MCContext.h:21,
                 from /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: ‘std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::pair<unsigned int, LiveDebugValues::DbgValue>&’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder clang-x86_64-debian-fast running on gribozavr4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/56/builds/2729

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
...
4.559 [2/12/1160] Linking CXX executable tools/clang/unittests/CodeGen/ClangCodeGenTests
4.676 [2/11/1161] Linking CXX executable unittests/Target/TargetMachineCTests
4.719 [2/10/1162] Linking CXX executable unittests/MIR/MIRTests
4.748 [2/9/1163] Linking CXX executable unittests/CodeGen/GlobalISel/GlobalISelTests
4.832 [2/8/1164] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
4.926 [2/7/1165] Linking CXX executable unittests/MI/MITests
5.294 [2/6/1166] Linking CXX executable tools/clang/unittests/Frontend/FrontendTests
5.661 [2/5/1167] Linking CXX executable tools/clang/unittests/Interpreter/ExceptionTests/ClangReplInterpreterExceptionTests
6.823 [2/4/1168] Linking CXX executable tools/clang/unittests/Tooling/ToolingTests
7.218 [2/3/1169] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/clang++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/1/clang-x86_64-debian-fast/llvm.obj/unittests/CodeGen -I/b/1/clang-x86_64-debian-fast/llvm.src/llvm/unittests/CodeGen -I/b/1/clang-x86_64-debian-fast/llvm.obj/include -I/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include -I/b/1/clang-x86_64-debian-fast/llvm.src/third-party/unittest/googletest/include -I/b/1/clang-x86_64-debian-fast/llvm.src/third-party/unittest/googlemock/include -std=c++11 -Wdocumentation -Wno-documentation-deprecated-sync -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /b/1/clang-x86_64-debian-fast/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:14:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/TargetLowering.h:35:
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/SelectionDAG.h:33:
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:2189:10: warning: HTML start tag prematurely ended, expected attribute name or '>' [-Wdocumentation]
  /// "<a, a+n, a+2n, a+3n, ...>" where a is integer and n is a non-zero integer,
         ^
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:2190:20: warning: HTML start tag prematurely ended, expected attribute name or '>' [-Wdocumentation]
  /// the value "<a,n>" is returned.
                   ^
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:2190:19: warning: HTML tag 'a' requires an end tag [-Wdocumentation-html]
  /// the value "<a,n>" is returned.
                  ^
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:2189:9: warning: HTML tag 'a' requires an end tag [-Wdocumentation-html]
  /// "<a, a+n, a+2n, a+3n, ...>" where a is integer and n is a non-zero integer,
        ^
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:14:
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/CodeGen/TargetLowering.h:5279:14: warning: parameter 'N' not found in the function declaration [-Wdocumentation]
  /// \param N Node to expand
             ^
In file included from /b/1/clang-x86_64-debian-fast/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:21:
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/MC/TargetRegistry.h:558:14: warning: parameter 'RelaxAll' not found in the function declaration [-Wdocumentation]
  /// \param RelaxAll Relax all fixups?
             ^~~~~~~~
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: no viable conversion from 'const SmallSet<llvm::DebugVariable, [...]>' to 'const SmallSet<LiveDebugValues::DebugVariableID, [...]>'
    LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
                                  ^~~~~~~~~~~~~~~
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const SmallSet<llvm::DebugVariable, 4>' to 'const llvm::SmallSet<unsigned int, 4, std::less<unsigned int>> &' for 1st argument
class SmallSet {
      ^
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'const SmallSet<llvm::DebugVariable, 4>' to 'llvm::SmallSet<unsigned int, 4, std::less<unsigned int>> &&' for 1st argument
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note: passing argument to parameter 'VarsWeCareAbout' here
                         const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
                                                             ^
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:19: error: no matching constructor for initialization of 'LiveDebugValues::VLocTracker'
  VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/b/1/clang-x86_64-debian-fast/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder ml-opt-dev-x86-64 running on ml-opt-dev-x86-64-b2 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/137/builds/1969

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder clang-x86_64-linux-abi-test running on sie-linux-worker2 while building llvm at step 6 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/8/builds/1768

Here is the relevant piece of the build log for the reference:

Step 6 (build-unified-tree) failure: build (failure)
...
-- Performing Test HAS_THREAD_LOCAL
-- Performing Test HAS_THREAD_LOCAL - Success
-- Generated Sanitizer SUPPORTED_TOOLS list on "Linux" is "asan;lsan;hwasan;msan;tsan;ubsan"
-- sanitizer_common tests on "Linux" will run against "asan;lsan;hwasan;msan;tsan;ubsan"
-- check-nsan does nothing.
-- check-shadowcallstack does nothing.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/buildbot/buildbot-root/abi-test/build/runtimes/runtimes-bins
172.460 [4/2/6817] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
/opt/ccache/bin/g++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/buildbot-root/abi-test/build/unittests/CodeGen -I/home/buildbot/buildbot-root/abi-test/llvm/llvm/unittests/CodeGen -I/home/buildbot/buildbot-root/abi-test/build/include -I/home/buildbot/buildbot-root/abi-test/llvm/llvm/include -I/home/buildbot/buildbot-root/abi-test/llvm/third-party/unittest/googletest/include -I/home/buildbot/buildbot-root/abi-test/llvm/third-party/unittest/googlemock/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /home/buildbot/buildbot-root/abi-test/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/home/buildbot/buildbot-root/abi-test/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/home/buildbot/buildbot-root/abi-test/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /home/buildbot/buildbot-root/abi-test/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/buildbot-root/abi-test/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of ‘void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/buildbot/buildbot-root/abi-test/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/home/buildbot/buildbot-root/abi-test/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /home/buildbot/buildbot-root/abi-test/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/buildbot-root/abi-test/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)’
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/home/buildbot/buildbot-root/abi-test/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/home/buildbot/buildbot-root/abi-test/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)’
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/home/buildbot/buildbot-root/abi-test/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/buildbot-root/abi-test/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)’
/home/buildbot/buildbot-root/abi-test/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/buildbot-root/abi-test/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:23: error: no matching function for call to ‘llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)’
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/MC/MCContext.h:21,
                 from /home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /home/buildbot/buildbot-root/abi-test/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: ‘std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::pair<unsigned int, LiveDebugValues::DbgValue>&’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder clang-debian-cpp20 running on clang-debian-cpp20 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/108/builds/1409

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
...
34.146 [2/11/1146] Linking CXX executable unittests/Transforms/Vectorize/VectorizeTests
34.432 [2/10/1147] Linking CXX executable unittests/Target/X86/X86Tests
34.514 [2/9/1148] Linking CXX executable unittests/Transforms/Coroutines/CoroTests
34.515 [2/8/1149] Linking CXX executable unittests/Transforms/Instrumentation/InstrumentationTests
34.760 [2/7/1150] Linking CXX executable unittests/tools/llvm-cfi-verify/CFIVerifyTests
34.776 [2/6/1151] Linking CXX executable unittests/Transforms/Utils/UtilsTests
35.025 [2/5/1152] Linking CXX executable unittests/Transforms/Scalar/ScalarTests
35.147 [2/4/1153] Linking CXX executable unittests/tools/llvm-mca/LLVMMCATests
35.270 [2/3/1154] Linking CXX executable unittests/Target/TargetMachineCTests
35.689 [2/2/1155] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
ccache /usr/bin/clang++-17 -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/vol/worker/clang-debian-cpp20/clang-debian-cpp20/build/unittests/CodeGen -I/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/unittests/CodeGen -I/vol/worker/clang-debian-cpp20/clang-debian-cpp20/build/include -I/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/include -I/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/third-party/unittest/googletest/include -I/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/third-party/unittest/googlemock/include -Wno-deprecated-enum-enum-conversion -Wno-deprecated-declarations -Wno-deprecated-anon-enum-enum-conversion -Wno-ambiguous-reversed-operator -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++20  -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: no viable conversion from 'const SmallSet<DebugVariable, [...]>' to 'const SmallSet<DebugVariableID, [...]>'
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const SmallSet<DebugVariable, 4>' to 'const SmallSet<unsigned int, 4> &' for 1st argument
  135 | class SmallSet {
      |       ^~~~~~~~
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'const SmallSet<DebugVariable, 4>' to 'SmallSet<unsigned int, 4> &&' for 1st argument
  135 | class SmallSet {
      |       ^~~~~~~~
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note: passing argument to parameter 'VarsWeCareAbout' here
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                                                              ^
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:19: error: no matching constructor for initialization of 'VLocTracker'
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                   ^           ~~~~~~~~~~~~~~~~~~~
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1063 |               const DIExpression *EmptyExpr)
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:17: error: no matching member function for call to 'insert'
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |   ~~~~~~~~~~~~~~^~~~~~
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate function not viable: cannot convert initializer list argument to 'const std::pair<unsigned int, DbgValue>'
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/include/llvm/ADT/MapVector.h:144:29: note: candidate function not viable: cannot convert initializer list argument to 'std::pair<unsigned int, DbgValue>'
  144 |   std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
      |                             ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/vol/worker/clang-debian-cpp20/clang-debian-cpp20/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2714:19: error: no matching constructor for initialization of 'VLocTracker'
 2714 |   VLocs.resize(4, VLocTracker(Overlaps, EmptyExpr));

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-win-fast running on as-builder-3 while building llvm at step 7 "test-build-unified-tree-check-llvm-unit".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/2/builds/2502

Here is the relevant piece of the build log for the reference:

Step 7 (test-build-unified-tree-check-llvm-unit) failure: test (failure)
...
[678/689] Linking CXX executable unittests\Transforms\IPO\IPOTests.exe
[679/689] Linking CXX executable unittests\Passes\PassBuilderBindings\PassesBindingsTests.exe
[680/689] Linking CXX executable unittests\Target\TargetMachineCTests.exe
[681/689] Linking CXX executable unittests\Target\ARM\ARMTests.exe
[682/689] Linking CXX executable unittests\IR\IRTests.exe
[683/689] Linking CXX executable unittests\Transforms\Coroutines\CoroTests.exe
[684/689] Linking CXX executable unittests\Transforms\Instrumentation\InstrumentationTests.exe
[685/689] Linking CXX executable unittests\Transforms\Utils\UtilsTests.exe
[686/689] Linking CXX executable unittests\Transforms\Scalar\ScalarTests.exe
[687/689] Building CXX object unittests\CodeGen\CMakeFiles\CodeGenTests.dir\InstrRefLDVTest.cpp.obj
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.obj 
C:\ninja\ccache.exe C:\PROGRA~1\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1438~1.331\bin\Hostx64\x64\cl.exe  /nologo /TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\unittests\CodeGen -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\unittests\CodeGen -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\include -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\include -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\third-party\unittest\googletest\include -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\third-party\unittest\googlemock\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -w14062 -we4238 /Gw /O2 /Ob2 /DNDEBUG -MD  /EHs-c- /GR- -std:c++17 /showIncludes /Founittests\CodeGen\CMakeFiles\CodeGenTests.dir\InstrRefLDVTest.cpp.obj /Fdunittests\CodeGen\CMakeFiles\CodeGenTests.dir\ /FS -c C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(224): error C2664: 'void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation *,const llvm::SmallSet<LiveDebugValues::DebugVariableID,4,std::less<unsigned int>> &,llvm::SmallPtrSetImpl<PtrType> &,LiveDebugValues::InstrRefBasedLDV::LiveInsT &,LiveDebugValues::FuncValueTable &,LiveDebugValues::FuncValueTable &,llvm::SmallVectorImpl<LiveDebugValues::VLocTracker> &)': cannot convert argument 2 from 'const llvm::SmallSet<llvm::DebugVariable,4,std::less<T>>' to 'const llvm::SmallSet<LiveDebugValues::DebugVariableID,4,std::less<unsigned int>> &'
        with
        [
            PtrType=llvm::MachineBasicBlock *
        ]
        and
        [
            T=llvm::DebugVariable
        ]
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(224): note: Reason: cannot convert from 'const llvm::SmallSet<llvm::DebugVariable,4,std::less<T>>' to 'const llvm::SmallSet<LiveDebugValues::DebugVariableID,4,std::less<unsigned int>>'
        with
        [
            T=llvm::DebugVariable
        ]
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(224): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\include\../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h(1436): note: see declaration of 'LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(224): note: while trying to match the argument list '(const llvm::DILocation *, const llvm::SmallSet<llvm::DebugVariable,4,std::less<T>>, llvm::SmallPtrSetImpl<PtrType>, LiveDebugValues::InstrRefBasedLDV::LiveInsT, LiveDebugValues::FuncValueTable, LiveDebugValues::FuncValueTable, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>)'
        with
        [
            T=llvm::DebugVariable
        ]
        and
        [
            PtrType=llvm::MachineBasicBlock *
        ]
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(2649): error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'LiveDebugValues::VLocTracker'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(2649): note: 'LiveDebugValues::VLocTracker::VLocTracker': function does not take 2 arguments
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(2649): note: while trying to match the argument list '(LiveDebugValues::OverlapMap, llvm::DIExpression *)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(2661): error C2665: 'llvm::MapVector<LiveDebugValues::DebugVariableID,LiveDebugValues::DbgValue,llvm::DenseMap<unsigned int,unsigned int,llvm::DenseMapInfo<unsigned int,void>,llvm::detail::DenseMapPair<KeyT,ValueT>>,llvm::SmallVector<std::pair<KeyT,LiveDebugValues::DbgValue>,0>>::insert': no overloaded function could convert all the argument types
        with
        [
            KeyT=unsigned int,
            ValueT=unsigned int
        ]
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\include\llvm/ADT/MapVector.h(144): note: could be 'std::pair<std::pair<KeyT,ValueT> *,bool> llvm::MapVector<KeyT,ValueT,llvm::DenseMap<KeyT,unsigned int,llvm::DenseMapInfo<unsigned int,void>,llvm::detail::DenseMapPair<KeyT,unsigned int>>,llvm::SmallVector<std::pair<KeyT,ValueT>,0>>::insert(std::pair<KeyT,ValueT> &&)'
        with
        [

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-sie-win running on sie-win-worker while building llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/46/builds/1868

Here is the relevant piece of the build log for the reference:

Step 7 (test-build-unified-tree-check-all) failure: test (failure)
...
[1088/1106] Linking CXX executable unittests\ExecutionEngine\MCJIT\MCJITTests.exe
[1089/1106] Linking CXX executable unittests\IR\IRTests.exe
[1090/1106] Linking CXX executable unittests\Passes\PassBuilderBindings\PassesBindingsTests.exe
[1091/1106] Linking CXX executable unittests\tools\llvm-cfi-verify\CFIVerifyTests.exe
[1092/1106] Linking CXX executable tools\clang\unittests\CodeGen\ClangCodeGenTests.exe
[1093/1106] Linking CXX executable unittests\Target\TargetMachineCTests.exe
[1094/1106] Linking CXX executable unittests\Transforms\Coroutines\CoroTests.exe
[1095/1106] Linking CXX executable unittests\Transforms\Instrumentation\InstrumentationTests.exe
[1096/1106] Linking CXX executable tools\clang\unittests\Frontend\FrontendTests.exe
[1097/1106] Building CXX object unittests\CodeGen\CMakeFiles\CodeGenTests.dir\InstrRefLDVTest.cpp.obj
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.obj 
C:\bin\ccache.exe C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\HostX64\x64\cl.exe  /nologo /TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iunittests\CodeGen -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\CodeGen -Iinclude -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\include -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googletest\include -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googlemock\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -w14062 -we4238 /Gw /O2 /Ob2  -MD  /EHs-c- /GR- -UNDEBUG -std:c++17 /showIncludes /Founittests\CodeGen\CMakeFiles\CodeGenTests.dir\InstrRefLDVTest.cpp.obj /Fdunittests\CodeGen\CMakeFiles\CodeGenTests.dir\ /FS -c Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(224): error C2664: 'void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation *,const llvm::SmallSet<LiveDebugValues::DebugVariableID,4,std::less<unsigned int>> &,llvm::SmallPtrSetImpl<PtrType> &,LiveDebugValues::InstrRefBasedLDV::LiveInsT &,LiveDebugValues::FuncValueTable &,LiveDebugValues::FuncValueTable &,llvm::SmallVectorImpl<LiveDebugValues::VLocTracker> &)': cannot convert argument 2 from 'const llvm::SmallSet<llvm::DebugVariable,4,std::less<T>>' to 'const llvm::SmallSet<LiveDebugValues::DebugVariableID,4,std::less<unsigned int>> &'
        with
        [
            PtrType=llvm::MachineBasicBlock *
        ]
        and
        [
            T=llvm::DebugVariable
        ]
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(225): note: Reason: cannot convert from 'const llvm::SmallSet<llvm::DebugVariable,4,std::less<T>>' to 'const llvm::SmallSet<LiveDebugValues::DebugVariableID,4,std::less<unsigned int>>'
        with
        [
            T=llvm::DebugVariable
        ]
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(224): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\include\../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h(1436): note: see declaration of 'LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap'
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(2649): error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'LiveDebugValues::VLocTracker'
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(2649): note: No constructor could take the source type, or constructor overload resolution was ambiguous
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(2661): error C2664: 'std::pair<std::pair<KeyT,ValueT> *,bool> llvm::MapVector<KeyT,ValueT,llvm::DenseMap<KeyT,unsigned int,llvm::DenseMapInfo<unsigned int,void>,llvm::detail::DenseMapPair<KeyT,unsigned int>>,llvm::SmallVector<std::pair<KeyT,ValueT>,0>>::insert(const std::pair<KeyT,ValueT> &)': cannot convert argument 1 from 'initializer list' to 'const std::pair<KeyT,ValueT> &'
        with
        [
            KeyT=LiveDebugValues::DebugVariableID,
            ValueT=LiveDebugValues::DbgValue
        ]
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(2661): note: Reason: cannot convert from 'initializer list' to 'const std::pair<KeyT,ValueT>'
        with
        [
            KeyT=LiveDebugValues::DebugVariableID,
            ValueT=LiveDebugValues::DbgValue
        ]
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\CodeGen\InstrRefLDVTest.cpp(2661): note: No constructor could take the source type, or constructor overload resolution was ambiguous
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\include\llvm/ADT/MapVector.h(141): note: see declaration of 'llvm::MapVector<LiveDebugValues::DebugVariableID,LiveDebugValues::DbgValue,llvm::DenseMap<unsigned int,unsigned int,llvm::DenseMapInfo<unsigned int,void>,llvm::detail::DenseMapPair<KeyT,ValueT>>,llvm::SmallVector<std::pair<KeyT,LiveDebugValues::DbgValue>,0>>::insert'
        with
        [
            KeyT=unsigned int,
            ValueT=unsigned int
        ]

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder ml-opt-rel-x86-64 running on ml-opt-rel-x86-64-b1 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/185/builds/1944

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
...
6.539 [2/10/681] Linking CXX executable unittests/Transforms/Scalar/ScalarTests
6.794 [2/9/682] Linking CXX executable unittests/Transforms/Utils/UtilsTests
7.324 [2/8/683] Linking CXX executable unittests/tools/llvm-mca/LLVMMCATests
7.379 [2/7/684] Linking CXX executable unittests/CodeGen/GlobalISel/GlobalISelTests
7.492 [2/6/685] Linking CXX executable unittests/MIR/MIRTests
7.698 [2/5/686] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
7.812 [2/4/687] Linking CXX executable unittests/MI/MITests
7.853 [2/3/688] Linking CXX executable unittests/Target/TargetMachineCTests
8.179 [2/2/689] Linking CXX executable unittests/tools/llvm-exegesis/LLVMExegesisTests
13.965 [2/1/690] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
ccache /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/ml-opt-rel-x86-64-b1/build/unittests/CodeGen -I/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/unittests/CodeGen -I/var/lib/buildbot/.local/lib/python3.7/site-packages/tensorflow/include -I/b/ml-opt-rel-x86-64-b1/build/include -I/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include -I/b/ml-opt-rel-x86-64-b1/llvm-project/third-party/unittest/googletest/include -I/b/ml-opt-rel-x86-64-b1/llvm-project/third-party/unittest/googlemock/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of ‘void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)’
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)’
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)’
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:64: error: no matching function for call to ‘llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)’
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |                                                                ^
In file included from /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/llvm/MC/MCContext.h:21,
                 from /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /b/ml-opt-rel-x86-64-b1/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: ‘std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/b/ml-opt-rel-x86-64-b1/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::pair<unsigned int, LiveDebugValues::DbgValue>&’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder llvm-nvptx-nvidia-ubuntu running on as-builder-7 while building llvm at step 6 "test-build-unified-tree-check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/180/builds/1893

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-llvm) failure: test (failure)
...
0.847 [2/10/642] Linking CXX executable unittests/tools/llvm-mca/LLVMMCATests
0.857 [2/9/643] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
0.871 [2/8/644] Linking CXX executable unittests/ExecutionEngine/Orc/OrcJITTests
0.892 [2/7/645] Linking CXX executable unittests/tools/llvm-exegesis/LLVMExegesisTests
0.948 [2/6/646] Linking CXX executable unittests/Frontend/LLVMFrontendTests
0.994 [2/5/647] Linking CXX executable unittests/Analysis/AnalysisTests
1.075 [2/4/648] Linking CXX executable unittests/IR/IRTests
1.204 [2/3/649] Linking CXX executable unittests/ADT/ADTTests
1.237 [2/2/650] Linking CXX executable unittests/Support/SupportTests
9.617 [2/1/651] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/build/unittests/CodeGen -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/build/include -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/third-party/unittest/googletest/include -I/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/third-party/unittest/googlemock/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of ‘void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)’
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)’
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)’
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:23: error: no matching function for call to ‘llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)’
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/llvm/MC/MCContext.h:21,
                 from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: ‘std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx-nvidia-ubuntu/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::pair<unsigned int, LiveDebugValues::DbgValue>&’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder openmp-offload-sles-build-only running on rocm-worker-hw-04-sles while building llvm at step 8 "Add check check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/140/builds/2417

Here is the relevant piece of the build log for the reference:

Step 8 (Add check check-llvm) failure: test (failure)
...
[636/647] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
[637/647] Linking CXX executable unittests/Transforms/Utils/UtilsTests
[638/647] Linking CXX executable unittests/MIR/MIRTests
[639/647] Linking CXX executable unittests/Target/X86/X86Tests
[640/647] Linking CXX executable unittests/Transforms/Scalar/ScalarTests
[641/647] Linking CXX executable unittests/Target/TargetMachineCTests
[642/647] Linking CXX executable unittests/Target/AMDGPU/AMDGPUTests
[643/647] Linking CXX executable unittests/tools/llvm-mca/LLVMMCATests
[644/647] Linking CXX executable unittests/tools/llvm-exegesis/LLVMExegesisTests
[645/647] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
ccache /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iunittests/CodeGen -I/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen -Iinclude -I/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include -I/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/third-party/unittest/googletest/include -I/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/third-party/unittest/googlemock/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++1z -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:225:58: error: no matching function for call to ‘LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*&, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
                            MOutLocs, MInLocs, AllTheVLocs);
                                                          ^
In file included from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:0:
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1436:8: note: candidate: void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)
   void buildVLocValueMap(const DILocation *DILoc,
        ^~~~~~~~~~~~~~~~~
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1436:8: note:   no known conversion for argument 2 from ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_MLocDiamondSpills_Test::TestBody()’:
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:1139:26: warning: unused variable ‘MOutLocs’ [-Wunused-variable]
   auto [MInLocs, MOutLocs] = allocValueTables(4, 11);
                          ^
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_pickVPHILocDiamond_Test::TestBody()’:
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:1786:26: warning: unused variable ‘MInLocs’ [-Wunused-variable]
   auto [MInLocs, MOutLocs] = allocValueTables(4, 2);
                          ^
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_pickVPHILocLoops_Test::TestBody()’:
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:1982:26: warning: unused variable ‘MInLocs’ [-Wunused-variable]
   auto [MInLocs, MOutLocs] = allocValueTables(3, 2);
                          ^
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_pickVPHILocBadlyNestedLoops_Test::TestBody()’:
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2112:26: warning: unused variable ‘MInLocs’ [-Wunused-variable]
   auto [MInLocs, MOutLocs] = allocValueTables(5, 3);
                          ^
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
                                                  ^
In file included from /home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:0:
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)
   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
   ^~~~~~~~~~~
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)
 class VLocTracker {
       ^~~~~~~~~~~

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder openmp-offload-libc-amdgpu-runtime running on omp-vega20-1 while building llvm at step 8 "Add check check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/73/builds/2106

Here is the relevant piece of the build log for the reference:

Step 8 (Add check check-llvm) failure: test (failure)
...
[636/647] Linking CXX executable unittests/Target/X86/X86Tests
[637/647] Linking CXX executable unittests/Transforms/Scalar/ScalarTests
[638/647] Linking CXX executable unittests/MC/AMDGPU/AMDGPUMCTests
[639/647] Linking CXX executable unittests/tools/llvm-exegesis/LLVMExegesisTests
[640/647] Linking CXX executable unittests/CodeGen/GlobalISel/GlobalISelTests
[641/647] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
[642/647] Linking CXX executable unittests/MIR/MIRTests
[643/647] Linking CXX executable unittests/Target/AMDGPU/AMDGPUTests
[644/647] Linking CXX executable unittests/Target/TargetMachineCTests
[645/647] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
ccache /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.build/unittests/CodeGen -I/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/unittests/CodeGen -I/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.build/include -I/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include -I/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/third-party/unittest/googletest/include -I/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/third-party/unittest/googlemock/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of ‘void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)’
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)’
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)’
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:64: error: no matching function for call to ‘llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)’
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |                                                                ^
In file included from /home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/llvm/MC/MCContext.h:21,
                 from /home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: ‘std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/home/ompworker/bbot/openmp-offload-libc-amdgpu-runtime/llvm.src/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::pair<unsigned int, LiveDebugValues::DbgValue>&’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-darwin running on doug-worker-3 while building llvm at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/23/builds/1128

Here is the relevant piece of the build log for the reference:

Step 5 (build-unified-tree) failure: build (failure)
...
235.956 [2/9/5815] Linking CXX executable unittests/Transforms/Vectorize/VectorizeTests
235.998 [2/8/5816] Linking CXX static library lib/libbenchmark.a
236.018 [1/8/5817] Linking CXX static library lib/libbenchmark_main.a
236.057 [1/7/5818] Linking CXX executable unittests/Target/X86/X86Tests
236.097 [1/6/5819] Linking CXX executable unittests/Transforms/Utils/UtilsTests
236.143 [1/5/5820] Linking CXX executable unittests/Transforms/Scalar/ScalarTests
236.315 [1/4/5821] Linking CXX executable unittests/tools/llvm-profdata/LLVMProfdataTests
236.679 [1/3/5822] Linking CXX executable unittests/tools/llvm-exegesis/LLVMExegesisTests
236.785 [1/2/5823] Linking CXX executable unittests/tools/llvm-mca/LLVMMCATests
238.787 [1/1/5824] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/local/bin/ccache /usr/bin/clang++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/Users/buildbot/buildbot-root/x86_64-darwin/build/unittests/CodeGen -I/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/unittests/CodeGen -I/Users/buildbot/buildbot-root/x86_64-darwin/build/include -I/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include -I/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/third-party/unittest/googletest/include -I/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/third-party/unittest/googlemock/include -isystem /usr/local/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -O3 -DNDEBUG -std=c++17 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk  -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: no viable conversion from 'const SmallSet<DebugVariable, [...]>' to 'const SmallSet<DebugVariableID, [...]>'
    LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
                                  ^~~~~~~~~~~~~~~
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const SmallSet<DebugVariable, 4>' to 'const llvm::SmallSet<unsigned int, 4> &' for 1st argument
class SmallSet {
      ^
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'const SmallSet<DebugVariable, 4>' to 'llvm::SmallSet<unsigned int, 4> &&' for 1st argument
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note: passing argument to parameter 'VarsWeCareAbout' here
                         const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
                                                             ^
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:19: error: no matching constructor for initialization of 'VLocTracker'
  VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
  ^
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:17: error: no matching member function for call to 'insert'
  VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
  ~~~~~~~~~~~~~~^~~~~~
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate function not viable: cannot convert initializer list argument to 'const std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
                            ^
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/llvm/ADT/MapVector.h:144:29: note: candidate function not viable: cannot convert initializer list argument to 'std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
                            ^
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2714:19: error: no matching constructor for initialization of 'VLocTracker'
  VLocs.resize(4, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/Users/buildbot/buildbot-root/x86_64-darwin/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder clang-cmake-x86_64-avx512-linux running on avx512-intel64 while building llvm at step 7 "ninja check 1".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/133/builds/1789

Here is the relevant piece of the build log for the reference:

Step 7 (ninja check 1) failure: stage 1 checked (failure)
...
[75/90] Linking CXX executable tools/clang/unittests/AST/Interp/InterpTests
[76/90] Linking CXX executable tools/clang/unittests/CrossTU/CrossTUTests
[77/90] Linking CXX executable tools/clang/unittests/ASTMatchers/ASTMatchersTests
[78/90] Linking CXX executable tools/clang/unittests/Analysis/FlowSensitive/ClangAnalysisFlowSensitiveTests
[79/90] Linking CXX executable tools/clang/unittests/Driver/ClangDriverTests
[80/90] Linking CXX executable unittests/ExecutionEngine/MCJIT/MCJITTests
[81/90] Linking CXX executable tools/clang/unittests/AST/ASTTests
[82/90] Linking CXX executable tools/clang/unittests/CodeGen/ClangCodeGenTests
[83/90] Linking CXX executable tools/clang/unittests/StaticAnalyzer/StaticAnalysisTests
[84/90] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
/usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iunittests/CodeGen -I/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/unittests/CodeGen -Iinclude -I/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include -I/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/third-party/unittest/googletest/include -I/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/third-party/unittest/googlemock/include -march=cascadelake -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of ‘void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)’
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)’
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)’
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:23: error: no matching function for call to ‘llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)’
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/llvm/MC/MCContext.h:21,
                 from /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: ‘std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/localdisk2/buildbot/llvm-worker/clang-cmake-x86_64-avx512-linux/llvm/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::pair<unsigned int, LiveDebugValues::DbgValue>&’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder clang-ve-ninja running on hpce-ve-main while building llvm at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/12/builds/2141

Here is the relevant piece of the build log for the reference:

Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/ve-linux.py ...' (failure)
...
[610/641] Linking CXX executable unittests/Object/ObjectTests
[611/641] Linking CXX executable unittests/ObjCopy/ObjCopyTests
[612/641] Linking CXX executable unittests/tools/llvm-cfi-verify/CFIVerifyTests
[613/641] Linking CXX executable unittests/Bitcode/BitcodeTests
[614/641] Linking CXX executable unittests/ProfileData/ProfileDataTests
[615/641] Linking CXX executable unittests/FuzzMutate/FuzzMutateTests
[616/641] Linking CXX executable unittests/Transforms/Vectorize/VectorizeTests
[617/641] Linking CXX executable unittests/DebugInfo/LogicalView/DebugInfoLogicalViewTests
[618/641] Linking CXX executable unittests/Transforms/IPO/IPOTests
[619/641] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
/usr/bin/ccache  /home/buildbot/install/bin/clang++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/unittests/CodeGen -I/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen -I/scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/include -I/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include -I/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/third-party/unittest/googletest/include -I/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/third-party/unittest/googlemock/include -O2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O2 -g -DNDEBUG  -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: no viable conversion from 'const SmallSet<llvm::DebugVariable, [...]>' to 'const SmallSet<LiveDebugValues::DebugVariableID, [...]>'
    LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
                                  ^~~~~~~~~~~~~~~
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const SmallSet<llvm::DebugVariable, 4>' to 'const llvm::SmallSet<unsigned int, 4> &' for 1st argument
class SmallSet {
      ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'const SmallSet<llvm::DebugVariable, 4>' to 'llvm::SmallSet<unsigned int, 4> &&' for 1st argument
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note: passing argument to parameter 'VarsWeCareAbout' here
                         const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
                                                             ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:19: error: no matching constructor for initialization of 'LiveDebugValues::VLocTracker'
  VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
  ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:17: error: no matching member function for call to 'insert'
  VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
  ~~~~~~~~~~~~~~^~~~~~
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate function not viable: cannot convert initializer list argument to 'const std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
                            ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/llvm/ADT/MapVector.h:144:29: note: candidate function not viable: cannot convert initializer list argument to 'std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
                            ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2714:19: error: no matching constructor for initialization of 'LiveDebugValues::VLocTracker'
  VLocs.resize(4, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
Step 8 (check-llvm) failure: check-llvm (failure)
...
[610/641] Linking CXX executable unittests/Object/ObjectTests
[611/641] Linking CXX executable unittests/ObjCopy/ObjCopyTests
[612/641] Linking CXX executable unittests/tools/llvm-cfi-verify/CFIVerifyTests
[613/641] Linking CXX executable unittests/Bitcode/BitcodeTests
[614/641] Linking CXX executable unittests/ProfileData/ProfileDataTests
[615/641] Linking CXX executable unittests/FuzzMutate/FuzzMutateTests
[616/641] Linking CXX executable unittests/Transforms/Vectorize/VectorizeTests
[617/641] Linking CXX executable unittests/DebugInfo/LogicalView/DebugInfoLogicalViewTests
[618/641] Linking CXX executable unittests/Transforms/IPO/IPOTests
[619/641] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
/usr/bin/ccache  /home/buildbot/install/bin/clang++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/unittests/CodeGen -I/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen -I/scratch/buildbot/bothome/clang-ve-ninja/build/build_llvm/include -I/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include -I/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/third-party/unittest/googletest/include -I/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/third-party/unittest/googlemock/include -O2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O2 -g -DNDEBUG  -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: no viable conversion from 'const SmallSet<llvm::DebugVariable, [...]>' to 'const SmallSet<LiveDebugValues::DebugVariableID, [...]>'
    LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
                                  ^~~~~~~~~~~~~~~
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const SmallSet<llvm::DebugVariable, 4>' to 'const llvm::SmallSet<unsigned int, 4> &' for 1st argument
class SmallSet {
      ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'const SmallSet<llvm::DebugVariable, 4>' to 'llvm::SmallSet<unsigned int, 4> &&' for 1st argument
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note: passing argument to parameter 'VarsWeCareAbout' here
                         const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
                                                             ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:19: error: no matching constructor for initialization of 'LiveDebugValues::VLocTracker'
  VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
  ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:17: error: no matching member function for call to 'insert'
  VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
  ~~~~~~~~~~~~~~^~~~~~
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate function not viable: cannot convert initializer list argument to 'const std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
                            ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/llvm/ADT/MapVector.h:144:29: note: candidate function not viable: cannot convert initializer list argument to 'std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
                            ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2714:19: error: no matching constructor for initialization of 'LiveDebugValues::VLocTracker'
  VLocs.resize(4, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/scratch/buildbot/bothome/clang-ve-ninja/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided

@jmorse
Copy link
Member Author

jmorse commented Jul 18, 2024

Oh yeah. The unit tests. That I've built up a habit of ignoring while iterating. Whoops.

jmorse added a commit that referenced this pull request Jul 18, 2024
Now revised to actually make the unit test compile, which I'd been
ignoring. No actual functional change, it's a type difference.
Original commit message follows.

[DebugInfo][InstrRef] Index DebugVariables and some DILocations (#99318)

A lot of time in LiveDebugValues is spent computing DenseMap keys for
DebugVariables, and they're made up of three pointers, so are large.
This patch installs an index for them: for the SSA and value-to-location
mapping parts of InstrRefBasedLDV we don't need to access things like
the variable declaration or the inlining site, so just use a uint32_t
identifier for each variable fragment that's tracked. The compile-time
performance improvements are substantial (almost 0.4% on the tracker).

About 80% of this patch is just replacing DebugVariable references with
DebugVariableIDs instead, however there are some larger consequences. We
spend lots of time fetching DILocations when emitting DBG_VALUE
instructions, so index those with the DebugVariables: this means all
DILocations on all new DBG_VALUE instructions will normalise to the
first-seen DILocation for the variable (which should be fine).

We also used to keep an ordering of when each variable was seen first in
a DBG_* instruction, in the AllVarsNumbering collection, so that we can
emit new DBG_* instructions in a stable order. We can hang this off the
DebugVariable index instead, so AllVarsNumbering is deleted.

Finally, rather than ordering by AllVarsNumbering just before DBG_*
instructions are linked into the output MIR, store instructions along
with their DebugVariableID, so that they can be sorted by that instead.
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2024

LLVM Buildbot has detected a new failure on builder lld-x86_64-ubuntu-fast running on as-builder-4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/33/builds/959

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
...
6.816 [2/17/679] Linking CXX executable unittests/ExecutionEngine/Orc/OrcJITTests
6.843 [2/16/680] Linking CXX executable unittests/Passes/Plugins/PluginsTests
6.856 [2/15/681] Linking CXX executable unittests/Target/X86/X86Tests
7.109 [2/14/682] Linking CXX executable unittests/Analysis/AnalysisTests
7.109 [2/13/683] Linking CXX executable unittests/MC/AMDGPU/AMDGPUMCTests
7.121 [2/12/684] Linking CXX executable unittests/IR/IRTests
7.682 [2/11/685] Linking CXX executable unittests/Target/AMDGPU/AMDGPUTests
7.807 [2/10/686] Linking CXX executable unittests/tools/llvm-exegesis/LLVMExegesisTests
8.223 [2/9/687] Linking CXX executable unittests/ExecutionEngine/MCJIT/MCJITTests
10.118 [2/8/688] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/unittests/CodeGen -I/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/unittests/CodeGen -I/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/build/include -I/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include -I/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/third-party/unittest/googletest/include -I/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/third-party/unittest/googlemock/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘void InstrRefLDVTest::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<llvm::DebugVariable, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’:
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: cannot convert ‘const llvm::SmallSet<llvm::DebugVariable, 4>’ to ‘const llvm::SmallSet<unsigned int, 4>&’
  224 |     LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
      |                                   ^~~~~~~~~~~~~~~
      |                                   |
      |                                   const llvm::SmallSet<llvm::DebugVariable, 4>
In file included from /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note:   initializing argument 2 of ‘void LiveDebugValues::InstrRefBasedLDV::buildVLocValueMap(const llvm::DILocation*, const llvm::SmallSet<unsigned int, 4>&, llvm::SmallPtrSetImpl<llvm::MachineBasicBlock*>&, LiveDebugValues::InstrRefBasedLDV::LiveInsT&, LiveDebugValues::FuncValueTable&, LiveDebugValues::FuncValueTable&, llvm::SmallVectorImpl<LiveDebugValues::VLocTracker>&)’
 1437 |                          const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp: In member function ‘virtual void InstrRefLDVTest_VLocSingleBlock_Test::TestBody()’:
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:50: error: no matching function for call to ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::OverlapMap&, llvm::DIExpression*&)’
 2649 |   VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
      |                                                  ^
In file included from /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:27:
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::DebugVariableMap&, const OverlapMap&, const llvm::DIExpression*)’
 1062 |   VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
      |   ^~~~~~~~~~~
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note:   candidate expects 3 arguments, 2 provided
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(const LiveDebugValues::VLocTracker&)’
 1042 | class VLocTracker {
      |       ^~~~~~~~~~~
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate: ‘LiveDebugValues::VLocTracker::VLocTracker(LiveDebugValues::VLocTracker&&)’
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note:   candidate expects 1 argument, 2 provided
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:23: error: no matching function for call to ‘llvm::MapVector<unsigned int, LiveDebugValues::DbgValue>::insert(<brace-enclosed initializer list>)’
 2661 |   VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/llvm/MC/MCDwarf.h:17,
                 from /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/llvm/MC/MCContext.h:21,
                 from /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/llvm/CodeGen/MachineModuleInfo.h:36,
                 from /home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:11:
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate: ‘std::pair<typename VectorType::iterator, bool> llvm::MapVector<KeyT, ValueT, MapType, VectorType>::insert(const std::pair<_T1, _T2>&) [with KeyT = unsigned int; ValueT = LiveDebugValues::DbgValue; MapType = llvm::DenseMap<unsigned int, unsigned int>; VectorType = llvm::SmallVector<std::pair<unsigned int, LiveDebugValues::DbgValue>, 0>; typename VectorType::iterator = std::pair<unsigned int, LiveDebugValues::DbgValue>*]’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
      |                             ^~~~~~
/home/buildbot/worker/as-builder-4/ramdisk/lld-x86_64/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:67: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const std::pair<unsigned int, LiveDebugValues::DbgValue>&’
  141 |   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 19, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-expensive-checks-debian running on gribozavr4 while building llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/16/builds/1980

Here is the relevant piece of the build log for the reference:

Step 6 (test-build-unified-tree-check-all) failure: test (failure)
...
2.143 [2/10/698] Linking CXX executable unittests/ExecutionEngine/MCJIT/MCJITTests
2.223 [2/9/699] Linking CXX executable unittests/tools/llvm-exegesis/LLVMExegesisTests
2.808 [2/8/700] Linking CXX executable unittests/MIR/MIRTests
2.904 [2/7/701] Linking CXX executable unittests/Target/TargetMachineCTests
2.942 [2/6/702] Linking CXX executable unittests/CodeGen/GlobalISel/GlobalISelTests
2.982 [2/5/703] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
3.010 [2/4/704] Linking CXX executable unittests/MI/MITests
3.423 [2/3/705] Linking CXX executable tools/lld/unittests/AsLibAll/LLDAsLibAllTests
3.447 [2/2/706] Linking CXX executable tools/lld/unittests/AsLibELF/LLDAsLibELFTests
5.403 [2/1/707] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/clang++ -DEXPENSIVE_CHECKS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/1/llvm-clang-x86_64-expensive-checks-debian/build/unittests/CodeGen -I/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/unittests/CodeGen -I/b/1/llvm-clang-x86_64-expensive-checks-debian/build/include -I/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include -I/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/third-party/unittest/googletest/include -I/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/third-party/unittest/googlemock/include -U_GLIBCXX_DEBUG -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: no viable conversion from 'const SmallSet<llvm::DebugVariable, [...]>' to 'const SmallSet<LiveDebugValues::DebugVariableID, [...]>'
    LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
                                  ^~~~~~~~~~~~~~~
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const SmallSet<llvm::DebugVariable, 4>' to 'const llvm::SmallSet<unsigned int, 4, std::less<unsigned int>> &' for 1st argument
class SmallSet {
      ^
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'const SmallSet<llvm::DebugVariable, 4>' to 'llvm::SmallSet<unsigned int, 4, std::less<unsigned int>> &&' for 1st argument
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note: passing argument to parameter 'VarsWeCareAbout' here
                         const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
                                                             ^
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:19: error: no matching constructor for initialization of 'LiveDebugValues::VLocTracker'
  VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
  ^
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:17: error: no matching member function for call to 'insert'
  VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
  ~~~~~~~~~~~~~~^~~~~~
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate function not viable: cannot convert initializer list argument to 'const std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
                            ^
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/llvm/ADT/MapVector.h:144:29: note: candidate function not viable: cannot convert initializer list argument to 'std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
                            ^
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2714:19: error: no matching constructor for initialization of 'LiveDebugValues::VLocTracker'
  VLocs.resize(4, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/b/1/llvm-clang-x86_64-expensive-checks-debian/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 19, 2024

LLVM Buildbot has detected a new failure on builder llvm-x86_64-debian-dylib running on gribozavr4 while building llvm at step 7 "test-build-unified-tree-check-llvm".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/60/builds/2816

Here is the relevant piece of the build log for the reference:

Step 7 (test-build-unified-tree-check-llvm) failure: test (failure)
...
1.211 [2/10/670] Linking CXX executable unittests/Target/VE/VETests
1.223 [2/9/671] Linking CXX executable unittests/Target/WebAssembly/WebAssemblyTests
1.224 [2/8/672] Linking CXX executable unittests/Target/LoongArch/LoongArchTests
1.342 [2/7/673] Linking CXX executable unittests/Target/RISCV/RISCVTests
1.392 [2/6/674] Linking CXX executable unittests/Target/AArch64/AArch64Tests
1.468 [2/5/675] Linking CXX executable unittests/Target/ARM/ARMTests
1.476 [2/4/676] Linking CXX executable unittests/tools/llvm-mca/LLVMMCATests
1.868 [2/3/677] Linking CXX executable unittests/tools/llvm-exegesis/LLVMExegesisTests
1.882 [2/2/678] Linking CXX executable unittests/Target/AMDGPU/AMDGPUTests
5.192 [2/1/679] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o
FAILED: unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/clang++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/1/llvm-x86_64-debian-dylib/build/unittests/CodeGen -I/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/unittests/CodeGen -I/b/1/llvm-x86_64-debian-dylib/build/include -I/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include -I/b/1/llvm-x86_64-debian-dylib/llvm-project/third-party/unittest/googletest/include -I/b/1/llvm-x86_64-debian-dylib/llvm-project/third-party/unittest/googlemock/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -MF unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o.d -o unittests/CodeGen/CMakeFiles/CodeGenTests.dir/InstrRefLDVTest.cpp.o -c /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:224:35: error: no viable conversion from 'const SmallSet<llvm::DebugVariable, [...]>' to 'const SmallSet<LiveDebugValues::DebugVariableID, [...]>'
    LDV->buildVLocValueMap(DILoc, VarsWeCareAbout, AssignBlocks, Output,
                                  ^~~~~~~~~~~~~~~
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const SmallSet<llvm::DebugVariable, 4>' to 'const llvm::SmallSet<unsigned int, 4, std::less<unsigned int>> &' for 1st argument
class SmallSet {
      ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/llvm/ADT/SmallSet.h:135:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'const SmallSet<llvm::DebugVariable, 4>' to 'llvm::SmallSet<unsigned int, 4, std::less<unsigned int>> &&' for 1st argument
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1437:62: note: passing argument to parameter 'VarsWeCareAbout' here
                         const SmallSet<DebugVariableID, 4> &VarsWeCareAbout,
                                                             ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2649:19: error: no matching constructor for initialization of 'LiveDebugValues::VLocTracker'
  VLocs.resize(1, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  VLocTracker(DebugVariableMap &DVMap, const OverlapMap &O,
  ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2661:17: error: no matching member function for call to 'insert'
  VLocs[0].Vars.insert({Var, DbgValue(LiveInRspID, EmptyProps)});
  ~~~~~~~~~~~~~~^~~~~~
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/llvm/ADT/MapVector.h:141:29: note: candidate function not viable: cannot convert initializer list argument to 'const std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
                            ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/llvm/ADT/MapVector.h:144:29: note: candidate function not viable: cannot convert initializer list argument to 'std::pair<unsigned int, DbgValue>'
  std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
                            ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/unittests/CodeGen/InstrRefLDVTest.cpp:2714:19: error: no matching constructor for initialization of 'LiveDebugValues::VLocTracker'
  VLocs.resize(4, VLocTracker(Overlaps, EmptyExpr));
                  ^           ~~~~~~~~~~~~~~~~~~~
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class VLocTracker {
      ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1042:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/../lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h:1062:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided

yuxuanchen1997 pushed a commit that referenced this pull request Jul 25, 2024
Summary:
A lot of time in LiveDebugValues is spent computing DenseMap keys for
DebugVariables, and they're made up of three pointers, so are large.
This patch installs an index for them: for the SSA and value-to-location
mapping parts of InstrRefBasedLDV we don't need to access things like
the variable declaration or the inlining site, so just use a uint32_t
identifier for each variable fragment that's tracked. The compile-time
performance improvements are substantial (almost 0.4% on the tracker).

About 80% of this patch is just replacing DebugVariable references with
DebugVariableIDs instead, however there are some larger consequences. We
spend lots of time fetching DILocations when emitting DBG_VALUE
instructions, so index those with the DebugVariables: this means all
DILocations on all new DBG_VALUE instructions will normalise to the
first-seen DILocation for the variable (which should be fine).

We also used to keep an ordering of when each variable was seen first in
a DBG_* instruction, in the AllVarsNumbering collection, so that we can
emit new DBG_* instructions in a stable order. We can hang this off the
DebugVariable index instead, so AllVarsNumbering is deleted.

Finally, rather than ordering by AllVarsNumbering just before DBG_*
instructions are linked into the output MIR, store instructions along
with their DebugVariableID, so that they can be sorted by that instead.

Test Plan: 

Reviewers: 

Subscribers: 

Tasks: 

Tags: 


Differential Revision: https://phabricator.intern.facebook.com/D60250779
yuxuanchen1997 pushed a commit that referenced this pull request Jul 25, 2024
…ns (#99318)"

This reverts commit 078198f.

Buildbots unhappy, I must have fluffed it
yuxuanchen1997 pushed a commit that referenced this pull request Jul 25, 2024
Now revised to actually make the unit test compile, which I'd been
ignoring. No actual functional change, it's a type difference.
Original commit message follows.

[DebugInfo][InstrRef] Index DebugVariables and some DILocations (#99318)

A lot of time in LiveDebugValues is spent computing DenseMap keys for
DebugVariables, and they're made up of three pointers, so are large.
This patch installs an index for them: for the SSA and value-to-location
mapping parts of InstrRefBasedLDV we don't need to access things like
the variable declaration or the inlining site, so just use a uint32_t
identifier for each variable fragment that's tracked. The compile-time
performance improvements are substantial (almost 0.4% on the tracker).

About 80% of this patch is just replacing DebugVariable references with
DebugVariableIDs instead, however there are some larger consequences. We
spend lots of time fetching DILocations when emitting DBG_VALUE
instructions, so index those with the DebugVariables: this means all
DILocations on all new DBG_VALUE instructions will normalise to the
first-seen DILocation for the variable (which should be fine).

We also used to keep an ordering of when each variable was seen first in
a DBG_* instruction, in the AllVarsNumbering collection, so that we can
emit new DBG_* instructions in a stable order. We can hang this off the
DebugVariable index instead, so AllVarsNumbering is deleted.

Finally, rather than ordering by AllVarsNumbering just before DBG_*
instructions are linked into the output MIR, store instructions along
with their DebugVariableID, so that they can be sorted by that instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants