Jeff Law wrote:
> On 11/23/14 15:22, Sebastian Pop wrote:
> >Jeff Law wrote:
> >>>PS: I have run some perf analysis with the patch:
> >>>- on a bootstrap of GCC I see 3209 FSM jump threads
> >>>- libpng and libjpeg contain FSM jump threads, the perf increase is in the 
> >>>1%
> >>>   (measured on simulators and reduced data sets)
> >>>- coremark gets jump threaded (as expected)
> >>>- I'm setting up the llvm test-suite and I will report perf differences
> >>So that's *far* more jump threads than I would expect this to find
> >>in a bootstrap of GCC -- like 3 orders of magnitude more than I'd
> >>expect to find.
> >
> >The second patch attached limits the search for FSM jump threads to loops.  
> >With
> >that patch, we are now down to 470 jump threads in an x86_64-linux bootstrap
> >(and 424 jump threads on powerpc64-linux bootstrap.)
> [ ... ]
> 
> So why are we returning -1 (block should not be duplicated and not
> suitable for a joiner) at the end of thread_through_normal_block?
> 
> 
>       /* When COND cannot be simplified, try to find paths from a control
>          statement back through the PHI nodes which would affect
> that control
>          statement.  */
>       vec<basic_block, va_gc> *bb_path;
>       vec_alloc (bb_path, n_basic_blocks_for_fn (cfun));
>       vec_safe_push (bb_path, e->dest);
>       hash_set<gimple> *visited_phis = new hash_set<gimple>;
> 
>       max_threaded_paths = PARAM_VALUE (PARAM_MAX_FSM_THREAD_PATHS);
>       fsm_find_control_statement_thread_paths (cond, visited_phis,
> bb_path);
> 
>       delete visited_phis;
>       vec_free (bb_path);
> 
>       return -1;
> 
> Returning -1 (instead of 0) says stop, there's no possibility to
> threading something on that path.   I think that's suppressing some
> profitable jump threads.  

Thanks for spotting this.

> I haven't done  more than verify the
> bitmap code returns to its prior state with that change.

I removed the return -1 and started a bootstrap on powerpc64-linux.
I will report the valgrind output.

Thanks,
Sebastian

Reply via email to