[PATCH] D106989: [IRSim] Finding Branch Similarity

Andrew Litteken via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 3 16:04:14 PDT 2021


AndrewLitteken added inline comments.


================
Comment at: llvm/lib/Transforms/IPO/IROutliner.cpp:1361
+  IRInstructionDataList::iterator NextIDIt = std::next(ID.getIterator());
+  Instruction *NextIDLInst = NextIDIt->Inst;
+  Instruction *NextModuleInst = nullptr;
----------------
paquette wrote:
> Can NextIDIt be the end/one past the end? Is this accessible in those cases?
It shouldn’t be. This is looking from the start of the candidate to the end of the candidate, which should only ever include actual instructions. So it could be the end of the function, in which case there is a buffer IRInstructionData which is the nullptr, which is what we are checking here.


================
Comment at: llvm/test/Transforms/IROutliner/region-end-of-module.ll:3
+; RUN: opt -S -verify -iroutliner -ir-outlining-no-cost < %s | FileCheck %s
+
+; This test checks that we do not fail when there is a similarity group with
----------------
paquette wrote:
> each of the cases here end in a `br`.
> 
> What about `unreachable` and `ret`?
Those are into checked for similarity right now, and are excluded from the candidates as a result.

But I can add a function that ends in both for potential future developments.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106989/new/

https://reviews.llvm.org/D106989



More information about the llvm-commits mailing list