[llvm-dev] Skip redundant checks in AliasSet::aliasesUnknownInst

Daniel Berlin via llvm-dev llvm-dev at lists.llvm.org
Sun Jan 24 09:44:53 PST 2016


It sounds like UnknownInsts should really be a SmallSet, SmallPtrSet, or
DenseSet (if you can't do the others).

Otherwise, even with your patch, we are still wasting time traversing and
copying and .... the unknown instructions.

If that doesn't work, I suspect the way you get dupes is through
mergeSetIn, so you also could probably just change:

00061   } else if (ASHadUnknownInsts) {00062
UnknownInsts.insert(UnknownInsts.end(), AS.UnknownInsts.begin(),
AS.UnknownInsts.end());00063     AS.UnknownInsts.clear();00064   }



You could insert the current unknown insts into a smallptrset, and then
only append them to UnknownInsts if they aren't in the set.

This should remove your dupes.



On Sun, Jan 24, 2016 at 5:28 AM, Roman Gareev via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Dear llvm contributors,
>
> Could you please advise me how to skip
> checks, which are performed in AliasSet::aliasesUnknownInst, of
> unknown instructions from different alias sets of an alias set tracker
> that is a parameter of ‘AliasSetTracker::add(const AliasSetTracker
> &AST)’?
>
> If this wasn’t available at the moment and someone could review me, I
> would try to implement it. A temporary patch can be found attached
> (for example, ViewedInst can become a second parameter of
> AliasSetTracker::addUnknown ). It
> passes the LLVM regression tests and helps to reduce the runtime of
> 'opt -basicaa -licm out.opt.ll’ from 130ms to 67ms and the runtime of
> 'opt -basicaa -licm out.opt2.ll’ from 117ms to 62ms (out.opt.ll and
> out.opt2.ll can be found on the following link
> https://llvm.org/bugs/show_bug.cgi?id=23077).
>
> Thank you for the attention!
>
> --
>                                     Cheers, Roman Gareev.
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160124/ee635011/attachment.html>


More information about the llvm-dev mailing list