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]

[google] Limit unrolling and peeling under LIPO estimates of large code size/icache pressure


This patch is for google-main only.
Tested with bootstrap and regression tests.
Under LIPO, estimate the code size footprint from the partial call
graph, and if it is large limit unrolling and peeling to avoid
increasing icache pressure.
Teresa

2011-11-21   Teresa Johnson  <tejohnson@google.com>

        * loop-unroll.c (loop_has_FP_comp): New function.
        (limit_code_size): New function.
        (unroll_and_peel_loops): Check if unrolling and/or peeling
        should be disabled due to large code size estimates.
        * common.opt (fripa-peel-size-limit): New option.
        (fripa-unroll-size-limit): New option.
        * tree-optimize.c (compute_codesize_estimate): New function.
        (execute_cleanup_cfg_post_optimizing): Invoke
        compute_codesize_estimate at the end of tree optimization.
        * params.def (codesize-hotness-threshold): New parameter.
        (unrollpeel-codesize-threshold): New parameter.
        * doc/invoke.texi: Document the new options and parameters.


-- 
Teresa Johnson?|?Software Engineer?|?tejohnson@google.com?|?408-460-2413

Attachment: patch.txt
Description: Text document


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