[lldb] [llvm] [NFC][DebugInfo] Make some block-start-position methods return iterators (PR #124287)

Orlando Cazalet-Hyams via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 27 06:43:19 PST 2025


================
@@ -383,20 +383,24 @@ BasicBlock::const_iterator BasicBlock::getFirstNonPHIIt() const {
   return It;
 }
 
-const Instruction *BasicBlock::getFirstNonPHIOrDbg(bool SkipPseudoOp) const {
+BasicBlock::const_iterator
+BasicBlock::getFirstNonPHIOrDbg(bool SkipPseudoOp) const {
   for (const Instruction &I : *this) {
     if (isa<PHINode>(I) || isa<DbgInfoIntrinsic>(I))
       continue;
 
     if (SkipPseudoOp && isa<PseudoProbeInst>(I))
       continue;
 
-    return &I;
+    BasicBlock::const_iterator It = I.getIterator();
+    // Signal that this comes after any debug records.
+    It.setHeadBit(false);
----------------
OCHyams wrote:

When does `Instruction::getIterator` return an iterator with head bit set? Can this be an assert (that it's not set) instead? 

https://github.com/llvm/llvm-project/pull/124287


More information about the llvm-commits mailing list