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

2025-01-27 Thread Orlando Cazalet-Hyams via lldb-commits


@@ -408,9 +412,13 @@ BasicBlock::getFirstNonPHIOrDbgOrLifetime(bool 
SkipPseudoOp) const {
 if (SkipPseudoOp && isa(I))
   continue;
 
-return &I;
+BasicBlock::const_iterator It = I.getIterator();
+// Signal that this comes after any debug records.
+It.setHeadBit(false);

OCHyams wrote:

Same question again

https://github.com/llvm/llvm-project/pull/124287
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


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

2025-01-27 Thread Orlando Cazalet-Hyams via lldb-commits


@@ -1656,7 +1656,8 @@ static Value 
*emitSetAndGetSwiftErrorValueAround(Instruction *Call,
 Builder.SetInsertPoint(Call->getNextNode());
   } else {
 auto Invoke = cast(Call);
-Builder.SetInsertPoint(Invoke->getNormalDest()->getFirstNonPHIOrDbg());
+BasicBlock::iterator It = Invoke->getNormalDest()->getFirstNonPHIOrDbg();
+Builder.SetInsertPoint(It);

OCHyams wrote:

Why is this change necessary?

https://github.com/llvm/llvm-project/pull/124287
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


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

2025-01-27 Thread Orlando Cazalet-Hyams via lldb-commits

https://github.com/OCHyams edited 
https://github.com/llvm/llvm-project/pull/124287
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


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

2025-01-27 Thread Orlando Cazalet-Hyams via lldb-commits

https://github.com/OCHyams approved this pull request.

LGTM + nits

https://github.com/llvm/llvm-project/pull/124287
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


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

2025-01-27 Thread Orlando Cazalet-Hyams via lldb-commits


@@ -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(I) || isa(I))
   continue;
 
 if (SkipPseudoOp && isa(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
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


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

2025-01-27 Thread Orlando Cazalet-Hyams via lldb-commits


@@ -448,6 +455,9 @@ BasicBlock::const_iterator 
BasicBlock::getFirstNonPHIOrDbgOrAlloca() const {
   ++InsertPt;
 }
   }
+
+  // Signal that this comes after any debug records.
+  InsertPt.setHeadBit(false);

OCHyams wrote:

And again

https://github.com/llvm/llvm-project/pull/124287
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


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

2025-01-27 Thread Orlando Cazalet-Hyams via lldb-commits

https://github.com/OCHyams approved this pull request.

Thanks, still LGTM

https://github.com/llvm/llvm-project/pull/124287
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits