[llvm-dev] Expose aliasing information in getModRefInfo (or viceversa?)
Hal Finkel via llvm-dev
llvm-dev at lists.llvm.org
Mon Oct 9 14:33:28 PDT 2017
On 10/09/2017 03:57 PM, Daniel Berlin wrote:
> FWIW: Bootstrap is probably not a good test of this, there are bugs
> filed where we end up with tons of loads and stores to test against
> each other. That's actually fairly rare in bootstrap, as you can see.
> Let me get you some test cases.
>
> My guess is that we should go with mustmod.
I agree.
-Hal
>
>
> As for callsites, adding mustmod works for call, memloc and call, call
> testing.
>
>
> On Mon, Oct 9, 2017, 4:48 PM Alina Sbirlea <alina.sbirlea at gmail.com
> <mailto:alina.sbirlea at gmail.com>> wrote:
>
> Hi,
>
> This came up in https://reviews.llvm.org/D38569, and I'd like some
> input on what's the best way to get alias and mod-ref info without
> having two alias calls.
>
> A couple of ideas:
> (a) Extend the getModRefInfo interface (+getModRefBehavior,
> +gerArgModRefInfo) to return a pair {ModRefInfo, AliasResult}.
>
> The AliasResult can be optional based on an argument
> e.g.:
> struct MRI_AR { ModRefInfo MRI, AliasResult AR };
> MRI_AR getModRefInfoAlias (LoadInst *LI, MemoryLocation Loc,
> bool SetAliasResultField);
>
> Add wrapper APIs to preserve current calls.
> e.g.:
> ModRefInfo getModRefInfo (LoadInst *LI, MemoryLocation Loc) {
> return getModRefInfoAlias (LI, Loc, false).MRI;
> }
>
> (b) From talking offline with George, introducing a MRI_MustMod in
> ModRefInfo.
>
>
> Open question: How to handle callsites.
>
>
> In terms of whether this is worth doing, as a preliminary timing
> test I timed the llvm bootstrap build with 1 vs 2 alias calls in
> D38569: instructionClobbersQuery:296, and got the following:
> 2 alias calls:
> real 62m52.627s
> user 2769m46.964s
> sys 17m48.072s
> 1 alias call:
> real 62m56.659s
> user 2766m40.452s
> sys 17m46.312s
>
> Thoughts?
>
>
> Thanks,
> Alina
>
>
>
--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171009/939adbb4/attachment.html>
More information about the llvm-dev
mailing list