Dear Martin,

Thanks for the kind reply. I don't have a strong preference between `asan0`
vs. `sanopt`. But I note that I am primarily working on sanitizer enabled
code, where I can only find some .ASAN_CHECK function calls in `asan0`, but
those function calls seem have been inlined in `sanopt`. In other words, I
can constantly find the following pattern:

 *if (_44 != 0)*
    goto <bb 9>; [0.05%]
  else
    goto <bb 8>; [99.95%]

  <bb 9> :
  __builtin___asan_report_load4 (_34);

The marked if condition is where my analysis and instrumentation starts
from. If I go with `asan0`, then I just cannot find it (it's somewhat
wrapped within .ASAN_CHECK).

Best,
Shuai

On Wed, Jun 17, 2020 at 2:49 PM Martin Liška <mli...@suse.cz> wrote:

> On 6/17/20 4:10 AM, Shuai Wang via Gcc wrote:
> > Hello,
> >
> > Suppose I have changed certain if condition in the GIMPLE code (generated
> > by the `sanopt` pass) into the following format:
>
> Hello.
>
> What kind of instrumentation are you doing? Can you make the
> instrumentation
> in a ASAN pass? Then you'll go through DCE.
>
> Martin
>
> >
> > if (0 == 1)
> > {
> >     xxxx
> > }
> >
> > Then, in order to completely remove this unnecessary if condition and the
> > guarded true branch, I want to leverage the dead code elimination
> > optimization of gcc. However, I just cannot figure out a way of doing
> so. I
> > use the following command to output the instrumented GIMPLE code:
> >
> > gcc -fdump-tree-all -fplugin=./instrumentor.so -g -fsanitize=address
> test.c
> >
> > And notice that the instrumented gimple code is right there in the
> > outputs: test.c.322t.instrumentor. Everything seems fine.
> >
> > Anyone could shed some light on how to re-optimize (e.g., with deadcode
> > elimination or just use -O3 if possible) the instrumented GIMPLE code?
> > Thank you very much.
> >
> > Shuai
> >
>
>

Reply via email to