Displaying 9 results from an estimated 9 matches for "pre'd".
2016 Jul 16
2
RFC: Strong GC References in LLVM
The call does not have to be read only, it just has to no alias the load
being pre'd.
The call may in fact be read/ write of some other memory
On Fri, Jul 15, 2016, 5:32 PM Andrew Trick <atrick at apple.com> wrote:
>
> On Jul 15, 2016, at 5:24 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
>
>
>> LLVM's design decision is one where every...
2016 Aug 25
2
CFLAA
...es a GEP is decomposed
11,154 26 basicaa # times the limit to decompose GEPs is reached
153,613 324 bdce # instructions removed (unused)
198,495 2 bdce # instructions trivialized (dead bits)
298,621 0 cfl-od-aa Maximum compressed graph
58,462,719 0 cfl-od-aa Number Search Steps
48,401 0 cfl-od-aa # NoAlias results absed on address roots
61,936 0 cfl-od-aa # NoAlias results on compressed search path
3,768,131 0 cfl-od-aa # NoAlias results on fast path
47,0...
2008 Aug 12
1
[LLVMdev] Ideas for representing vector gather/scatter and masks in LLVM IR
...ould easily have more if
> branches, nested loops, early exits, and so on, but the main
> idea is that there are blocks of instructions grouped together
> under the same mask, cross-block optimization opportunities
> exist but are limited, and that this is assumed to be
> basically representative.
I think that's right.
> There are some interesting cross-block cases here.
> If you can prove that something in B and/or C can be run
> unmasked, it could be CSE'd/LICM'd/PRE'd/etc.
> If D has a PHI merging a value from B and C, it might be
> nice to do a...
2016 Aug 25
4
CFLAA
...limit to decompose GEPs
>> is reached
>>
>> 153,613 324 bdce # instructions removed (unused)
>>
>> 198,495 2 bdce # instructions trivialized (dead
>> bits)
>>
>> 298,621 0 cfl-od-aa Maximum compressed graph
>>
>> 58,462,719 0 cfl-od-aa Number Search Steps
>>
>> 48,401 0 cfl-od-aa # NoAlias results absed on address
>> roots
>>
>> 61,936 0 cfl-od-aa # NoAlias results on compressed
>> search path
&...
2008 Aug 08
0
[LLVMdev] Ideas for representing vector gather/scatter and masks in LLVM IR
...took my own advice and thought about CSE and instcombine a
> bit.
> I wrote the code by hand in a sort of pseudo-llvm language, so don't
> crucify me for mistakes. :)
>
> CSE is an optimization that needs to pay attention to masks. You
> can't
> (easily) CSE an expression with different masks.
>
> Using a mask-per-operation setup, code might look like this:
>
> CSE Mask Example
>
> Mask-per-operation:
> %m1 = ...
> %m2 = ...
> %r1 = add %r2, %r3, %m1
> %r4 = add %r2, %r3, %m2
>
> We can only CSE the adds if %m1 == %m2. I'...
2016 Aug 25
2
CFLAA
...ite a bit of refactoring done, yeah. The original CFLAA is now called CFLSteens, and graph construction was moved to its own bit. We also have CFLAnders, which is based more heavily on the paper by Zheng and Rugina (e.g. no stratifiedsets magic).
> I have a variant of it where I reworked how compression was done to be less conservative, reworked the interprocedural to do simulated but bounded inlining, and added code to do on-demand testing of CFL paths on both compressed and full graphs.
Awesome!
> Happy to share the patch with you if you are interested as well as some data collected
Y...
2016 Jul 16
3
RFC: Strong GC References in LLVM
...g has to explicitly care
> about implicit early exits to get correct answers (and not to harp too
> much, but "not everything does", years later). If they don't, they will
> get wrong answers.
>
>
So, ironically, while looking at this, i noticed it turns out LLVM's PRE in
GVN is another place that does not do this correctly either.
It will insert and hoist loads past may-throw calls depending on whether it
thinks the call aliases the pointer or not (IE depending on what memdep
tells it, and memdep only cares about aliasing here when coming up with
deps), regardl...
2008 Aug 07
6
[LLVMdev] Ideas for representing vector gather/scatter and masks in LLVM IR
...e examples would be helpful.
Ok, so I took my own advice and thought about CSE and instcombine a bit.
I wrote the code by hand in a sort of pseudo-llvm language, so don't
crucify me for mistakes. :)
CSE is an optimization that needs to pay attention to masks. You can't
(easily) CSE an expression with different masks.
Using a mask-per-operation setup, code might look like this:
CSE Mask Example
Mask-per-operation:
%m1 = ...
%m2 = ...
%r1 = add %r2, %r3, %m1
%r4 = add %r2, %r3, %m2
We can only CSE the adds if %m1 == %m2. I'd think it would be
sufficient to just check whether th...
2020 Jun 18
4
[RFC] A value-tracking LiveDebugValues implementation
...ng work (I've got a working prototype, but not production-quality).
On the other hand, this new LiveDebugValues implementation is probably ready
for review now, works independently, and is very much the hardest part of
instruction referencing, so it'd be nice to get it under-way earlier. My
preferred outcome would be adding it as a parallel implementation to the
current LiveDebugValues, enabled by a runtime switch, then start to land
the rest of the instruction referencing work around it. This reduces the
scope for further bit-rot, and as Vedant mentioned [2] this would all need
to sit un...