This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Optimize UBSAN_NULL checks, add sanopt.c


On 11/05/2014 12:33 PM, Jakub Jelinek wrote:
On Wed, Nov 05, 2014 at 12:19:22PM +0300, Yury Gribov wrote:
On 11/03/2014 05:27 PM, Marek Polacek wrote:
Another shot at optimizing redundant UBSAN_NULL statements.

This time we walk the dominator tree - that should result in
more effective optimization - and keep a list of UBSAN_NULL
statements that dominate the current block, see the comment
before sanopt_optimize_walker.

Marek,

A general question - have you considered coding this as a dataflow loop
instead of dominator walk?  That would allow to also remove checks for
variables defined via PHI nodes provided that all arguments of PHI have
already been checked.

I'd be afraid that we'd turn sanopt into another var-tracking that way,
with possibly huge hash tables being copied on write, merging of the tables
etc., with big memory and time requirements, having to add --param limits
to give up if the sum size of the tables go over certain limit.

Sure, that would be slower. I was just curious whether you considered alternatives (looks like you did).

The way Marek has coded it up is pretty cheap optimization.

Right.

BTW, as discussed privately with Marek last time, we probably want to
optimize UBSAN_NULL (etc.) only if -fno-sanitize-recover=null (etc.)
or if location_t is the same, otherwise such optimizations lead to only
one problem being reported instead of all of them.

Are you going to work on ASan soon? I could rebase my patches on top of Marek's infrastructure.

-Y


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]