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] |
Hi, After control flow graph change made by http://gcc.gnu.org/ml/gcc-patches/2014-02/msg01492.html, case gcc.dg/tree-ssa/ssa-dom-thread-4.c is broken on logical_op_short_circuit targets including cortex-m3/cortex-m0. The regression reveals a missed opportunity in jump threading, which causes a forward basic block doesn't get removed in cfgcleanup after jump threading in VRP1. Root cause is stated at the corresponding PR: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60363, please refer to it for detailed report. This patch fixes the issue by adding constant value instead of ssa_name as the new phi argument. Bootstrap and test on x86_64, also test on cortex-m3 and the regression is gone. I think this should wait for stage1, but would like to hear some comments now. So does it look reasonable? 2014-03-18 Bin Cheng <bin.cheng@arm.com> PR regression/60363 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New. (copy_phi_args): New parameters. Call get_value_locus_in_path. (update_destination_phis): New parameter. (create_edge_and_update_destination_phis): Ditto. (ssa_fix_duplicate_block_edges): Pass new arguments. (thread_single_edge): Ditto.
Attachment:
pr60363-20140318.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |