Displaying 20 results from an estimated 29 matches for "memssa".
2018 Mar 23
1
stack dump at -early-cse-memssa twice
Hello,
while invoking opt with all possible optimization pairs I stumbled over
a stack dump when doing -early-cse-memssa twice:
$ clang -Xclang -disable-O0-optnone -S -o fannkuch7.ll -emit-llvm fannkuch7.c
$ opt -S -o fannkuch7.ll -early-cse-memssa -early-cse-memssa fannkuch7.ll
Questions:
Is it illegal to call -early-cse-memssa twice?
Are there any other incompatible optimization orders?
Best,
HwJ
---
$ c...
2016 Dec 23
2
[canonicalization] GEP 0, 0
...will find GEP 0, 0.
> > If I understand it correctly getelementptr with zeros is just bitcast. Is
> > there any good reason why it is not canonicalized into bitcast?
> >
>
> Hi,
> is there any particular reason why you're trying to fix this in MemDep
> (and not in MemSSA?)
>
> GVN uses MemDep and MemSSA doesn't handle invariant.group. I was told
that MemDep won't go out soon and it is easier for me right now to fix my
stuff there than in MemSSA. I have plans to write support for MemSSA, but
probably not in near future.
> --
> Davide
>
>...
2016 Dec 23
0
[canonicalization] GEP 0, 0
...I understand it correctly getelementptr with zeros is just bitcast.
>> Is
>> > there any good reason why it is not canonicalized into bitcast?
>> >
>>
>> Hi,
>> is there any particular reason why you're trying to fix this in MemDep
>> (and not in MemSSA?)
>>
>> GVN uses MemDep and MemSSA doesn't handle invariant.group. I was told
> that MemDep won't go out soon and it is easier for me right now to fix my
> stuff there than in MemSSA. I have plans to write support for MemSSA, but
> probably not in near future.
>
>...
2017 Oct 14
2
IR Pass Ordering Sensitivity
...t program can be found here: https://gist.github.com/kavon/92d153cdd54ce9b77162af3af47d4c95
Here's what happens:
kavon at cronus:~/m/autotune|master⚡*?
➤ /Users/kavon/msr/llvm5/bin/opt -inline -mem2reg -inferattrs -ipconstprop -gvn -simplifycfg -bdce -sink -dse -adce -instcombine -early-cse-memssa -early-cse-memssa -dse -adce -simplifycfg -sink -ipconstprop -gvn -bdce -instcombine -jump-threading -inline -sroa ./src/apps/raytracer.bc -o ./out/raytracer_opt1043.bc
0 opt 0x000000010ebd4498 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1 opt...
2016 Dec 23
0
[canonicalization] GEP 0, 0
...#39;t handle invariant.group if it will find GEP 0, 0.
> If I understand it correctly getelementptr with zeros is just bitcast. Is
> there any good reason why it is not canonicalized into bitcast?
>
Hi,
is there any particular reason why you're trying to fix this in MemDep
(and not in MemSSA?)
--
Davide
"There are no solved problems; there are only problems that are more
or less solved" -- Henri Poincare
2016 Dec 23
3
[canonicalization] GEP 0, 0
...I understand it correctly getelementptr with zeros is just bitcast.
>> Is
>> > there any good reason why it is not canonicalized into bitcast?
>> >
>>
>> Hi,
>> is there any particular reason why you're trying to fix this in MemDep
>> (and not in MemSSA?)
>>
>> GVN uses MemDep and MemSSA doesn't handle invariant.group. I was told
> that MemDep won't go out soon and it is easier for me right now to fix my
> stuff there than in MemSSA. I have plans to write support for MemSSA, but
> probably not in near future.
>
>...
2018 Aug 17
2
Replication -O3 optimizations manually
Hi Zide,
I think I found the right way to reach my goal.
I used the following command:
clang -O3 -Xclang -disable-llvm-optzns main.c -S -emit-llvm -o main.ll
to generate an IR file enriched by all the metadata that otherwise wouldn't be generated with -O0. Moreover, -disable-llvm-optzns flag ensures that none of the optimization passes has been applied yet to the IR.
In this way, I can
2017 Jun 10
2
Enabling EarlyCSE w/ MemorySSA by default
...SSA 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
'-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.
Thanks,
--
Geoff Berry
Employee of Qualcomm Datacenter Technologies, Inc.
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qua...
2016 Dec 23
0
[canonicalization] GEP 0, 0
...That's good. Anyway I already have a patch that is doing invariant group
> dependence across BBs, so I guess it make sense to push it upstream to push
> the bar higher.
> But I think we are getting a little bit of topic - should gep 0 be
> canonicalized to bitcast?
>
Are memdep/memssa the only possible passes that could benefit from
such a canonicalization or you can think of other cases when this can
be useful?
2017 Jun 10
2
Enabling EarlyCSE w/ MemorySSA by default
...n 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
> '-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...
2016 Dec 23
2
[canonicalization] GEP 0, 0
...a patch that is doing invariant group
> > dependence across BBs, so I guess it make sense to push it upstream to
> push
> > the bar higher.
> > But I think we are getting a little bit of topic - should gep 0 be
> > canonicalized to bitcast?
> >
>
> Are memdep/memssa the only possible passes that could benefit from
> such a canonicalization or you can think of other cases when this can
> be useful?
>
We already canonicalize. We canonicalize in the other direction:
https://github.com/llvm-mirror/llvm/blob/master/lib/Transforms/InstCombine/InstCombineC...
2016 Dec 23
0
[canonicalization] GEP 0, 0
...group
>> > dependence across BBs, so I guess it make sense to push it upstream to
>> push
>> > the bar higher.
>> > But I think we are getting a little bit of topic - should gep 0 be
>> > canonicalized to bitcast?
>> >
>>
>> Are memdep/memssa the only possible passes that could benefit from
>> such a canonicalization or you can think of other cases when this can
>> be useful?
>>
>
> We already canonicalize. We canonicalize in the other direction:
> https://github.com/llvm-mirror/llvm/blob/master/
> lib/Tra...
2016 Dec 23
2
[canonicalization] GEP 0, 0
...nce across BBs, so I guess it make sense to push it upstream to
>>> push
>>> > the bar higher.
>>> > But I think we are getting a little bit of topic - should gep 0 be
>>> > canonicalized to bitcast?
>>> >
>>>
>>> Are memdep/memssa the only possible passes that could benefit from
>>> such a canonicalization or you can think of other cases when this can
>>> be useful?
>>>
>>
>> We already canonicalize. We canonicalize in the other direction:
>> https://github.com/llvm-mirror/llvm/b...
2016 Dec 24
0
[canonicalization] GEP 0, 0
...a patch that is doing invariant group
> > dependence across BBs, so I guess it make sense to push it upstream to
> push
> > the bar higher.
> > But I think we are getting a little bit of topic - should gep 0 be
> > canonicalized to bitcast?
> >
>
> Are memdep/memssa the only possible passes that could benefit from
> such a canonicalization or you can think of other cases when this can
> be useful?
>
>
> We already canonicalize. We canonicalize in the other direction:
> https://github.com/llvm-mirror/llvm/blob/master/lib/Transforms/InstCombin...
2019 Jun 17
2
[IDF][analyzer] Generalizing IDFCalculator to be used for Clang's CFG
...tion that replaces all uses of a basic block with another basic
> block in one operation, and yet you want to have a way to perform some
> analysis as if the transformation happened one change at a time. This was,
> at least originally, used for the incremental domtree updater and for
> memssa. (+cc Alina, as she is most familiar with GraphDiff)
>
This is used because the CFG used in LLVM changes all the time, right? If
so, I don't see this being useful for us, since we don't mess with Clang's
CFG much once it's built.
> I'd separate out a base of IDFCalculat...
2016 Nov 16
7
[RFC] NewGVN
...lately (I found it up to
50% faster in compile time on some internal benchmarks). There are
some places were we can improve. For example, we spend a lot of time
inside Simplify* functions. Another considerable chunk of the time is
spent inside MemorySSA, but this is going to change once we preserve
MemSSA more aggressively.
* The code is easier to understand (at least to me)
[...]
Some current limitations of NewGVN:
* NewGVN doesn't do everything that the current GVN does. There are
plans to implement missing features and more.
* On small testcases NewGVN may be slower as it does some work upfr...
2016 Apr 20
2
[LICM][MemorySSA] Converting LICM pass to use MemorySSA to avoid AliasSet collapse issue
Hi Daniel,
Thanks for the info. I’ve started looking into converting EarlyCSE to use MemorySSA first since 1) I don’t think it needs any additional MemorySSA update API and 2) the particular case I’m looking at needs EarlyCSE to catch more load cases before LICM to be profitable.
I have a prototype working, but have run into two issues:
1) readonly calls are treated as clobbers by
2016 Dec 23
2
[canonicalization] GEP 0, 0
Hi everyone,
I started digging into MemDep to enhance devirtualization and I found out
that it doesn't handle invariant.group if it will find GEP 0, 0.
If I understand it correctly getelementptr with zeros is just bitcast. Is
there any good reason why it is not canonicalized into bitcast?
Example:
define void @_Z5testGv() local_unnamed_addr #0 {
entry:
* %a* = alloca %struct.A, align 8
2019 Jun 16
2
[IDF][analyzer] Generalizing IDFCalculator to be used for Clang's CFG
A polite ping, could someone please share a thought about this?
On Sat, 8 Jun 2019 at 21:21, Kristóf Umann <dkszelethus at gmail.com> wrote:
> A polite ping on this matter :)
>
> On Tue, 4 Jun 2019 at 01:51, Kristóf Umann <dkszelethus at gmail.com> wrote:
>
>> Hi!
>>
>> As the title suggests, I'd like to generalize llvm::IDFCalculator to be
>>
2016 Dec 24
2
[canonicalization] GEP 0, 0
...group
>> > dependence across BBs, so I guess it make sense to push it upstream to
>> push
>> > the bar higher.
>> > But I think we are getting a little bit of topic - should gep 0 be
>> > canonicalized to bitcast?
>> >
>>
>> Are memdep/memssa the only possible passes that could benefit from
>> such a canonicalization or you can think of other cases when this can
>> be useful?
>>
>>
>> We already canonicalize. We canonicalize in the other direction:
>> https://github.com/llvm-mirror/llvm/blob/master/...