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]

Re: [PATCH,RFC] CSE path following on basic blocks


On 11/26/06, Steven Bosscher <stevenb.gcc@gmail.com> wrote:
On 11/26/06, Eric Botcazou <ebotcazou@libertysurf.fr> wrote:
> > I will when I ask for a review.  This was just RFC.  As you can see in
> > the subject btw.
>
> IMHO this distinction is irrelevant, patches should always come with ChangeLog
> entries to help readers get the big picture.

Fine, fine. I'll add a ChangeLog entry next time.

Yippaah.


       * cse.c: Include cfglayout.h.
       (struct cse_basic_block_data): Remove LAST field.
       (struct branch_path): Remove BRANCH and TAKEN fields. Add new
       BB field.
       (cse_visited_basic_blocks): New static bitmap.
       (cse_end_of_basic_block, cse_basic_block): Remove.
       (cse_find_path, cse_dump_path, cse_prescan_path,
       cse_extended_basic_block): New static functions.
       (cse_insn): Don't CSE over setjmp calls.  Use the CFG to find
       basic block boundaries.  Don't record jump equivalences here.
       (cse_main): Rewrite.  Look for extended basic block headers
       and call cse_extended_basic_block on them until all paths that
       start at this header are exhausted.
       (rest_of_handle_cse): Initialize cfglayout mode.  Verify that
       the CFG is incrementally updated and correct after cse_main.
       Don't call delete_trivially_dead_insns, let cfgcleanup do that.
       (rest_of_handle_cse2): Verify the CFG here, too, after cse_main.
       (pass_cse): Add TODO_verify_flow.
       (pass_cse2): Likewise.


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