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]

[PATCH, SMS 3/4] Optimize stage count


Hello,

The attach patch tries to achieve optimised SC by normalizing the partial
schedule (having the cycles start from cycle zero). The branch location
must be placed in row ii-1 in the final scheduling.  If that's not the
case after the normalization then it tries to move the branch to that
row if possible, while preserving the scheduling of the rest of the
instructions.

The patch was tested together with the rest of the patches in this series.
On ppc64-redhat-linux regtest as well as bootstrap with SMS flags
enabling SMS also on loops with stage count 1.  Regtested on SPU.
On arm-linux-gnueabi regtseted on c,c++. Bootstrap c language with SMS
flags enabling SMS also on loops with stage count 1.

OK for mainline?

Thanks,
Revital

Changelog:

       * modulo-sched.c (calculate_stage_count,
        calculate_must_precede_follow, get_sched_window,
        try_scheduling_node_in_cycle, remove_node_from_ps): Add
        declaration.
        (update_node_sched_params, set_must_precede_follow, optimize_sc):
        New functions.
        (reset_sched_times): Call update_node_sched_params.
        (sms_schedule): Call optimize_sc.
        (get_sched_window): Change function arguments.
        (sms_schedule_by_order): Update call to get_sched_window.
        all set_must_precede_follow.
        (calculate_stage_count): Add function argument.

Attachment: patch_opt_sc_18_5.txt
Description: Text document


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