Displaying 4 results from an estimated 4 matches for "acpar".
Did you mean:
achar
2019 Aug 07
2
Dead store elimination in the backend for -ftrivial-auto-var-init
There are two problems:
1. padding after union and call to q(), without LTO we can't remove that
store.
2. shortcut which I have which ignores all instructions q() . this assume
that memset to acpar.match, acpar.matchinfo also useful which is not true. I
should be able to improve this case.
On Thu, Aug 1, 2019 at 11:29 PM Vitaly Buka <vitalybuka at google.com> wrote:
> On a first look case like this should nor be a problem. The tail of the
> memset here is unused because it's...
2019 Aug 01
2
Dead store elimination in the backend for -ftrivial-auto-var-init
...-ftrivial-auto-var-init=zero:
$ clang -no-integrated-as -mno-sse -m64 -mstack-alignment=8 -O2
-ftrivial-auto-var-init=zero
-enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
-g -o ipt.ll -c ipt.i -w -S -emit-llvm
, Clang generates an initialization memset() call for |acpar| in the IR:
%0 = bitcast %struct.xt_action_param* %acpar to i8*, !dbg !27
call void @llvm.memset.p0i8.i64(i8* nonnull align 8 %0, i8 0, i64
40, i1 false), !dbg !28
Clang only splits memsets into series of stores under certain
conditions, so it's hard to remove redundant stores on the...
2019 Aug 01
2
Dead store elimination in the backend for -ftrivial-auto-var-init
On Thu, Aug 1, 2019 at 6:09 PM JF Bastien <jfbastien at apple.com> wrote:
>
> Hi Alexander,
>
> The code doesn’t compile. Could you send a godbolt.org link that shows the issue?
Sorry about that, here's the link: https://godbolt.org/z/-PinQP
Lines 4 to 8 are initializing |acpar|.
If I'm understanding correctly, the store to 8(%rsp) at line 7 can be
removed because of the store at line 35.
Same for store to 24(%rsp), which is later overwritten at lines 11 and 16.
> Thanks,
>
> JF
>
> > On Aug 1, 2019, at 7:21 AM, Alexander Potapenko <glider at goog...
2019 Aug 01
2
Dead store elimination in the backend for -ftrivial-auto-var-init
...ple.com> wrote:
> >>
> >> Hi Alexander,
> >>
> >> The code doesn’t compile. Could you send a godbolt.org link that shows the issue?
> > Sorry about that, here's the link: https://godbolt.org/z/-PinQP
> >
> > Lines 4 to 8 are initializing |acpar|.
> > If I'm understanding correctly, the store to 8(%rsp) at line 7 can be
> > removed because of the store at line 35.
>
> These are in different basic blocks. IIRC there are a bunch of cases where DCE just fails when there’s any control flow. I think this is what you’re see...