[llvm-dev] RFC: cleanup in Transforms/Utils
Alina Sbirlea via llvm-dev
llvm-dev at lists.llvm.org
Thu Jun 14 17:10:39 PDT 2018
Sent out: https://reviews.llvm.org/D48202
On Wed, Jun 13, 2018 at 2:19 PM, Alina Sbirlea <alina.sbirlea at gmail.com>
> Let me add one more specific question.
> One method returns (does nothing) if BB.hasAddressTaken, while the other
> replaces the block address with constant 1? I have zero background of the
> usecase for the latter, so comments welcome.
> I do agree with having a general version, they each have some
> functionality the other does not, so the merge would be a superset of the
> two updating all analyses when available.
> On Wed, Jun 13, 2018 at 2:09 PM, Davide Italiano <dccitaliano at gmail.com>
>> On Wed, Jun 13, 2018 at 2:04 PM, Alina Sbirlea <alina.sbirlea at gmail.com>
>>> I'm looking to see what's the best way to solve the fact that these two
>>> utils mostly do the same thing:
>>> 1. lib/Transforms/Utils/Local.cpp : MergeBasicBlockIntoOnlyPred
>>> 2. lib/Transforms/Utils/BasicBlockUtils.cpp : MergeBlockIntoPredecessor
>>> (+cc some of the folks who touched at least one of these either
>>> originally or recently)
>>> Brief overview:
>>> 1. MergeBasicBlockIntoOnlyPred 2. MergeBlockIntoPredecessor
>>> Update DT Update DT
>>> Update either DT or DDT Updates LI and MemoryDependenceResults
>>> Move all instructions from Pred to BB, delete Pred Move all instruction
>>> from BB to Pred, delete BB
>>> assert BB has single predecessor return if BB doesn't have a single
>>> Can I get some background on why there are two methods with such similar
>> I can't comment on whether there are two methods, but I wanted to merge
>> them myself at some point (although other priorities showed up).
>> I think we should keep the more general version and it should preserve
>> the analyses.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev