-
- Downloads
re PR rtl-optimization/44374 (Hoist same instructions in different branches)
PR rtl-optimization/44374 * basic-block.h (enum bb_flags): Add BB_MODIFIED. * df-core.c (df_set_bb_dirty): Set it. * ifcvt.c (find_memory): Remove function. (dead_or_predicable): Use can_move_insns_across. * df.h (can_move_insns_across): Declare function. * cfgcleanup.c (block_was_dirty): New static variable. (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather than df_get_bb_dirty. (try_head_merge_bb): New static function. (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty is set. * df-problems.c: Include "target.h" (df_simulate_find_uses): New static function. (MEMREF_NORMAL, MEMREF_VOLATILE): New macros. (find_memory, find_memory_store): New static functions. (can_move_insns_across): New function. * Makefile.in (df-problems.o): Update dependencies. testsuite/ PR rtl-optimization/44374 * gcc.target/arm/headmerge-1.c: New test. * gcc.target/arm/headmerge-2.c: New test. * gcc.target/i386/headmerge-1.c: New test. * gcc.target/i386/headmerge-2.c: New test. From-SVN: r164552
Showing
- gcc/ChangeLog 21 additions, 0 deletionsgcc/ChangeLog
- gcc/Makefile.in 1 addition, 1 deletiongcc/Makefile.in
- gcc/basic-block.h 7 additions, 1 deletiongcc/basic-block.h
- gcc/cfgcleanup.c 285 additions, 8 deletionsgcc/cfgcleanup.c
- gcc/config/i386/core2.md 0 additions, 0 deletionsgcc/config/i386/core2.md
- gcc/df-core.c 1 addition, 0 deletionsgcc/df-core.c
- gcc/df-problems.c 316 additions, 0 deletionsgcc/df-problems.c
- gcc/df.h 3 additions, 1 deletiongcc/df.h
- gcc/ifcvt.c 19 additions, 122 deletionsgcc/ifcvt.c
- gcc/testsuite/ChangeLog 8 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.target/arm/headmerge-1.c 14 additions, 0 deletionsgcc/testsuite/gcc.target/arm/headmerge-1.c
- gcc/testsuite/gcc.target/arm/headmerge-2.c 35 additions, 0 deletionsgcc/testsuite/gcc.target/arm/headmerge-2.c
- gcc/testsuite/gcc.target/i386/headmerge-1.c 14 additions, 0 deletionsgcc/testsuite/gcc.target/i386/headmerge-1.c
- gcc/testsuite/gcc.target/i386/headmerge-2.c 35 additions, 0 deletionsgcc/testsuite/gcc.target/i386/headmerge-2.c
Loading
Please register or sign in to comment