Displaying 16 results from an estimated 16 matches for "gvnhoist".
2018 Oct 02
2
Reordering of load/stores using MemorySSA
...ransformation would look like this:
USE(M0) // corresponding to `v = load q`
M1 = DEF(M0) // corresponding to `store 10, p`
Reordering these two nodes does not break syntactic dependency,
hence additional flow-sensitive analysis is needed to check whether
reordering is valid.
To my understanding, GVNHoist seems to do that:
Memory operations in basic blocks are checked by
GVNHoist::hasMemoryUse().
If USE nodes of MemorySSA also have left-hand side, we can correctly
represent this kind of reorderability IMHO.
For the example above:
U1 = USE(M0) // corresponding to `v = load q`
M1 = DEF(M0, U1) //...
2017 Apr 28
2
[MemorySSA] A question about how to update the MemorySSA when we call RecursivelyDeleteTriviallyDeadInstructions
When we erase a memory access instruction, existing passes using
memory ssa like GVN, NewGVN, GVNHoist and EarlyCSE uses
MemorySSAUpdater to do the update before the instruction is erased.
However, if we call llvm::RecursivelyDeleteTriviallyDeadInstructions
to find out dead instruction recursively and memory access
instructions may be erased inside the recursive process, we need a way
to update Mem...
2017 Jun 28
2
Enabling EarlyCSE w/ MemorySSA by default
Can you share you compile-time and memory footprint measurements at least for CTMark? For a new pass/feature it would be great to share this with the community before you commit. Or did I miss them?
Thanks
Gerolf
> On Jun 27, 2017, at 3:26 PM, Geoff Berry via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> EarlyCSE w/ MemorySSA has been enabled by default as of r306477
>
2017 Jun 10
2
Enabling EarlyCSE w/ MemorySSA by default
...ion
> '-enable-earlycse-memssa'
> > (or '-enable-npm-gvn-hoist' if you're using the new pass manager) that
> you
> > can be used to test this change out.
> >
>
> Not that I don't trust your self-hosting test strategy, but other
> passes (e.g. GVNHoist or NewGVN) showed us that's not quite enough to
> declare victory. I'll be much more confident if we can do at least a
> round of fuzzing.
>
> Thanks,
>
> --
> Davide
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at...
2018 Oct 02
0
Reordering of load/stores using MemorySSA
...break syntactic dependency,
>> This is true in regular SSA as well :)
>> It just happens that memory is different due to aliasing.
>>
>> > hence additional flow-sensitive analysis is needed to check whether reordering is valid.
>>
>> > To my understanding, GVNHoist seems to do that:
>> > Memory operations in basic blocks are checked by
>> > GVNHoist::hasMemoryUse().
>> >
>> Correct.
>>
>> >
>> > If USE nodes of MemorySSA also have left-hand side, we can correctly
>> > represent this kind of reo...
2017 Jun 10
2
Enabling EarlyCSE w/ MemorySSA by default
Hi All,
I'd like to switch the function simplification run of EarlyCSE to use
MemorySSA by default. This change has been in tree for a while and I've
done benchmark and self-hosting testing on both aarch64 and x86, but I
wanted to give other folks with different tests/targets a chance to try
this out before I flip the switch. I've added an option
2017 Feb 28
3
[Proposal][RFC] Epilog loop vectorization
I have tried running both gvn and newgvn but it did not helped in hoisting the alias checks:
Please check, maybe I have missed something.
<TestCase>
void foo (char *A, char *B, char *C, int len) {
int i = 0;
for (i=0 ; i< len; i++)
A[i] = B[i] + C[i];
}
<Command>
$ opt –O3 –gvn test.ll –o test.opt.ll
$ opt –O3 –newgvn test.ll –o test.opt.ll
“test.ll” is attached, it
2016 Jul 21
2
RFC: Strong GC References in LLVM
...fects.
>>
>
> While I agree it can be lazy, and should be an analysis, i'm, again,
> really not sure which passes you are thinking about here that do code
> sinking/speculation that won't need it.
>
> Here's the list definitely needing it right now:
> GVN
> GVNHoist
> LICM
> LoadCombine
> LoopReroll
> LoopUnswitch
> LoopVersioningLICM
> MemCpyOptimizer
> MergedLoadStoreMotion
> Sink
>
> The list is almost certainly larger than this, this was a pretty trivial
> grep and examination.
> (and doesn't take into account bugs,...
2016 Jul 21
3
RFC: Strong GC References in LLVM
> On Jul 21, 2016, at 7:45 AM, Philip Reames <listmail at philipreames.com> wrote:
>
> Joining in very late, but the tangent here has been interesting (if rather OT for the original thread).
>
> I agree with Danny that we might want to take a close look at how we model things like maythrow calls, no return, and other implicit control flow. I'm not convinced that moving
2017 Mar 14
10
[Proposal][RFC] Epilog loop vectorization
...Ayal <ayal.zaks at intel.com>; Renato Golin <renato.golin at linaro.org>; mkuper at google.com; Mehdi Amini <mehdi.amini at apple.com>; llvm-dev <llvm-dev at lists.llvm.org>
Subject: RE: [llvm-dev] [Proposal][RFC] Epilog loop vectorization
Sorry I misunderstood, gvn/newgvn/gvnhoist cannot help here as these checks are not dominated by all paths.
Regards,
Ashutosh
From: Daniel Berlin [mailto:dberlin at dberlin.org]
Sent: Tuesday, February 28, 2017 6:58 PM
To: Nema, Ashutosh <Ashutosh.Nema at amd.com<mailto:Ashutosh.Nema at amd.com>>
Cc: anemet at apple.com<mai...
2017 Mar 14
2
[Proposal][RFC] Epilog loop vectorization
...; <mehdi.amini at apple.com <mailto:mehdi.amini at apple.com>>; llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>>
> *Subject:* RE: [llvm-dev] [Proposal][RFC] Epilog loop vectorization
>
> Sorry I misunderstood, gvn/newgvn/gvnhoist cannot help here as
> these checks are not dominated by all paths.
>
> Regards,
>
> Ashutosh
>
> *From:*Daniel Berlin [mailto:dberlin at dberlin.org]
> *Sent:* Tuesday, February 28, 2017 6:58 PM
> *To:* Nema, Ashutosh <Ashutosh.Nema at amd.com
&...
2016 Jul 21
4
RFC: Strong GC References in LLVM
...; While I agree it can be lazy, and should be an analysis, i'm, again,
>> really not sure which passes you are thinking about here that do code
>> sinking/speculation that won't need it.
>>
>> Here's the list definitely needing it right now:
>> GVN
>> GVNHoist
>> LICM
>> LoadCombine
>> LoopReroll
>> LoopUnswitch
>> LoopVersioningLICM
>> MemCpyOptimizer
>> MergedLoadStoreMotion
>> Sink
>>
>> The list is almost certainly larger than this, this was a pretty trivial
>> grep and examination.
&g...
2018 Jan 17
0
[RFC] [TargetTransformInfo] Introduce hook to tell middle-end to not worry about register pressure
Hi all,
Currently in the llvm middle-end, we disable some optimizations because we
worry about the register pressure, (e.g. GVNHoist and ArgumentPromotion).
However, in the architecture that are register-rich, e.g. FPGAs, we do not
need to worry about the register pressure at all. For these architecures,
we may want to optimization the LLVM IR without worrying about the register
pressure.
I suggest that we introduce a hook in...
2017 Mar 14
2
[Proposal][RFC] Epilog loop vectorization
...<mehdi.amini at apple.com
>> <mailto:mehdi.amini at apple.com>>; llvm-dev <llvm-dev at lists.llvm.org
>> <mailto:llvm-dev at lists.llvm.org>>
>> *Subject:*RE: [llvm-dev] [Proposal][RFC] Epilog loop vectorization
>> Sorry I misunderstood, gvn/newgvn/gvnhoist cannot help here as these
>> checks are not dominated by all paths.
>> Regards,
>> Ashutosh
>> *From:*Daniel Berlin [mailto:dberlin at dberlin.org]
>> *Sent:*Tuesday, February 28, 2017 6:58 PM
>> *To:*Nema, Ashutosh <Ashutosh.Nema at amd.com
>> <mai...
2017 Jun 19
2
Enabling EarlyCSE w/ MemorySSA by default
...> (or '-enable-npm-gvn-hoist' if you're using the new pass manager) that
>>> you
>>> > can be used to test this change out.
>>> >
>>>
>>> Not that I don't trust your self-hosting test strategy, but other
>>> passes (e.g. GVNHoist or NewGVN) showed us that's not quite enough to
>>> declare victory. I'll be much more confident if we can do at least a
>>> round of fuzzing.
>>>
>>> Thanks,
>>>
>>> --
>>> Davide
>>> __________________________________...
2017 Mar 14
1
[Proposal][RFC] Epilog loop vectorization
...pple.com>>;
>> llvm-dev <llvm-dev at lists.llvm.org
>> <mailto:llvm-dev at lists.llvm.org>>
>> *Subject:* RE: [llvm-dev] [Proposal][RFC] Epilog loop
>> vectorization
>>
>> Sorry I misunderstood, gvn/newgvn/gvnhoist cannot help here
>> as these checks are not dominated by all paths.
>>
>> Regards,
>>
>> Ashutosh
>>
>> *From:*Daniel Berlin [mailto:dberlin at dberlin.org]
>> *Sent:* Tuesday, February 28, 2017 6:58 PM
>>...