This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [cfg-branch]: Software Trace Cache
> Hi,
>
> I'm sending again the Software Trace Cache. It now finds traces "exactly" like described in http://citeseer.nj.nec.com/15361.html
Thanks, lets use it as base for future experimenting.
I was thinking a bit about the reverse tracing idea. I can see how it works
differently and I can bring testcases for both heuristics to perform better, so
I really don't know which one is the proper one.
> +/* Compute the key (for the heap) of the basic block BB. */
> +#define BB_TO_KEY(bb) ((BB_FREQ_MAX)-((bb)->frequency))
I guess you can use negative keys dirrectly.
The frequencies can exceed the BB_FREQ_MAX macro, quite surprisingly, when
crossjumping manages to merge two frequent paths together.
> + int branch_threshold[] = {400, 200, 100, 0};
> + int exec_threshold[] = {500, 200, 50, 0};
Shouldn't this be normalized to REG_BB_FREQ_BASE and MAX_BB_FREQ so we can
change the constants later w/o affecting the behaviour of algorithm?
> + /* make_reorder_chain (); */
Remove the comment and make_reorder_chain function.
Otherwise OK.
Honza
> + find_traces ();
>
> if (rtl_dump_file)
> dump_flow_info (rtl_dump_file);