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] |
On 12/14/2016 08:46 AM, Bernd Schmidt wrote:
This is OK. I also re-tested ppc64le-linux since it's been about 3 weeks since this patch was submitted.On 12/12/2016 03:21 PM, Bernd Schmidt wrote:On 12/10/2016 08:58 PM, Segher Boessenkool wrote:On Thu, Dec 08, 2016 at 01:21:04PM +0100, Bernd Schmidt wrote:This is another case where an optimization turns a trap_if unconditional. We have to defer changing the CFG, since the rest of cprop seems to blow up when we modify things while scanning.The problem for PR78727 is that we also need to do this for insns that already are the last insn in the block:+ while (!uncond_traps.is_empty ()) + { + rtx_insn *insn = uncond_traps.pop (); + basic_block to_split = BLOCK_FOR_INSN (insn); + remove_edge (split_block (to_split, insn)); + emit_barrier_after_bb (to_split); + }We need that barrier, and we also need the successor edges removed (which split_block+remove_edge does). (PR78727 works fine with just that BB_END test deleted).Ah, ok. In that case I'll probably also add a test to make sure this is only done for insns that weren't an unconditional trap before. Retesting...That would be this patch. Tested as before. The two new testcases seem to pass with a ppc cross (but I would appreciate if someone were to run full tests on ppc). Bernd cprop-v2.diff PR rtl-optimization/78626 PR rtl-optimization/78727 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle of a block, and split such blocks after everything else is finished. PR rtl-optimization/78626 PR rtl-optimization/78727 * gcc.dg/torture/pr78626.c: New test. * gcc.dg/torture/pr78727.c: New test.
I went ahead and committed the patch since you're on PTO and it kills stuff on the regression hit list.
jeff
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |