This is the mail archive of the 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][autovect] SMS improvements

I have checked in several improvements of SMS into the autovect branch,
that includes:
1. Make SMS work in cfg-layout mode and use loop information.
2. Use the loop versioning to handle loops with unknown count at compile
3. Use backtracking- If at some point we cannot find a cycle to
   schedule a node we used to increase the II and start over again the
   whole scheduling process.  Now we start unscheduling dependant nodes
   until we can schedule the desired node; after that we schedule again
   all the unscheduled nodes.
4. Ignore register anti dependencies, use register copies instead.
5. Undo the SMSed kernel if it is not profitable.
6. Make clear_bb_flags not clear the BB_DISABLE_SCHEDULE so the second
   scheduling pass doesn't mess up schedule the SMSed loops.
7. Add loop-header-copying at RTL level, to make SMS applicable to more
   loops.  This is provisional until is fixed.

2005-01-11 Mostafa Hagog <>

      * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
      * cfgloop.h (doloop_valid_p): Make external.
      (rtl_loop_copy_header): New.
      * common.opt (frtl-loop-hc): New.
      * ddg.c (create_ddg_dependence): Ignore register ANTI_DEP.
      * loop-doloop.c (doloop_valid_p): Make external.
      * loop-unroll.c (SIMPLE_LOOP_P, rtl_loop_single_full_bb_p,
      rtl_loop_ch_appropriate_p, cfg_duplicate_sese_region,
      rtl_loop_copy_header) : New.
      * modulo-sched.c: Many changes to use loop info and work in
      cfg-layout mode and updates to the scheduling algorithm.
      * params.def (PARAM_LOOP_CH_MAX_SIZE): New.
      * params.h (LOOP_CH_MAX_SIZE): New.
      * passes.c (rest_of_handle_sms): Call cfg_layout_initialize and
      (rest_of_handle_loop2): Call rtl_loop_copy_header.

(See attached file: sms_autovect2.patch)

Attachment: sms_autovect2.patch
Description: Binary data

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