[llvm-dev] Multi-Threading Compilers

Chris Lattner via llvm-dev llvm-dev at lists.llvm.org
Wed Mar 25 21:33:11 PDT 2020



> On Mar 25, 2020, at 5:14 PM, Doerfert, Johannes <jdoerfert at anl.gov> wrote:
> 
>>> Let's assume you
>>> walk the uses and we "removed" the use list so there are none, what does
>>> that mean. I'd say, nothing much. If you inspect the Value and see it's
>>> a Constant you have to assume it has Aliases that denote the same value
>>> so direct uses are not really interesting anyway. If you inspect further
>>> and see ConstantInt/Float/... you can deal with the missing use list. If
>>> you don't inspect the Value you cannot really make much of an empty use
>>> list, or can you? I doubt we ever call RAUW on a ConstantInt/Float/...
>>> 
>>> Feel free to elaborate on your concerns.
>> 
>> 
>> Have you tested your thesis that no one walks the use-def chains?  You
>> could just add an assertion to the compiler (the methods like
>> use_begin() hasOneUse() etc), that aborts on constants, then run the
>> test suite.
> 
> That is what I suggested a few emails back. However, I never said it is
> safe because no one walks it but what I suggested is that it will
> actually not impact much if we don't remember the uses of Constants
> (except globals).

Sure, I was just curious what you base that opinion on.  Have you done an experiment?

-Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200325/45c17b14/attachment-0001.html>


More information about the llvm-dev mailing list