Re: [PATCH] Enhance ASAN_CHECK optimization

2014-11-26 Thread Jakub Jelinek
On Wed, Nov 26, 2014 at 11:42:57AM -0700, ygribov wrote: > > Testing SANITIZE_ADDRESS bit in flag_sanitize_recover doesn't make sense, > > testing it in flag_sanitize of course does, but for recover you care > > whether > > the SANITIZE_{KERNEL,USER}_ADDRESS bit in flag_sanitize_recover is set >

Re: [PATCH] Enhance ASAN_CHECK optimization

2014-11-26 Thread ygribov
> Testing SANITIZE_ADDRESS bit in flag_sanitize_recover doesn't make sense, > testing it in flag_sanitize of course does, but for recover you care > whether > the SANITIZE_{KERNEL,USER}_ADDRESS bit in flag_sanitize_recover is set > depending on if SANITIZE_{KERNEL,USER}_ADDRESS is set in > flag

Re: [PATCH] Enhance ASAN_CHECK optimization

2014-11-26 Thread Jakub Jelinek
On Wed, Nov 26, 2014 at 11:21:06AM -0700, ygribov wrote: > > Formatting. The {} should be indented like static > > and return 2 columns to the right of that. > > Right. > > > For base_addr computation, you don't really need g or ptr_checks, > > do you? So why not move the: > > auto_vec *ptr

Re: [PATCH] Enhance ASAN_CHECK optimization

2014-11-26 Thread ygribov
> Formatting. The {} should be indented like static > and return 2 columns to the right of that. Right. > For base_addr computation, you don't really need g or ptr_checks, > do you? So why not move the: > auto_vec *ptr_checks = &ctx->asan_check_map.get_or_insert (ptr); > gimple g = maybe

Re: [PATCH] Enhance ASAN_CHECK optimization

2014-11-26 Thread Jakub Jelinek
On Tue, Nov 25, 2014 at 08:06:00PM +0300, Yury Gribov wrote: > +/* Traits class for tree hash maps below. */ > + > +struct tree_map_traits : default_hashmap_traits > +{ > + static inline hashval_t hash (const_tree ref) > +{ > + return iterative_hash_expr (ref, 0); > +} > + > + stati

[PATCH] Enhance ASAN_CHECK optimization

2014-11-25 Thread Yury Gribov
Hi all, This patch improves current optimization of ASAN_CHECKS performed by sanopt pass. In addition to searching the sanitized pointer in asan_check_map, it also tries to search for definition of this pointer. This allows more checks to be dropped when definition is not a gimple value (e.