Commit e237f9f3 by Uros Bizjak

re PR c++/58372 (internal compiler error: ix86_compute_frame_layout)

	PR middle-end/58372
	* cfgexpand.c (pass_expand::execute): Move the call to
	finish_eh_generation in front of the call to expand_stack_alignment.

testsuite/ChangeLog:

	PR middle-end/58372
	* g++.target/i386/pr58372.C: New test.

From-SVN: r265776
parent 2901f42f
2018-11-04 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/58372
* cfgexpand.c (pass_expand::execute): Move the call to
finish_eh_generation in front of the call to expand_stack_alignment.
2018-11-04 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 2018-11-04 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
* common/config/i386/i386-common.c (processor_alias_table): Add * common/config/i386/i386-common.c (processor_alias_table): Add
...@@ -6510,6 +6510,14 @@ pass_expand::execute (function *fun) ...@@ -6510,6 +6510,14 @@ pass_expand::execute (function *fun)
find_many_sub_basic_blocks (blocks); find_many_sub_basic_blocks (blocks);
purge_all_dead_edges (); purge_all_dead_edges ();
/* After initial rtl generation, call back to finish generating
exception support code. We need to do this before cleaning up
the CFG as the code does not expect dead landing pads. */
if (fun->eh->region_tree != NULL)
finish_eh_generation ();
/* Call expand_stack_alignment after finishing all
updates to crtl->preferred_stack_boundary. */
expand_stack_alignment (); expand_stack_alignment ();
/* Fixup REG_EQUIV notes in the prologue if there are tailcalls in this /* Fixup REG_EQUIV notes in the prologue if there are tailcalls in this
...@@ -6517,12 +6525,6 @@ pass_expand::execute (function *fun) ...@@ -6517,12 +6525,6 @@ pass_expand::execute (function *fun)
if (crtl->tail_call_emit) if (crtl->tail_call_emit)
fixup_tail_calls (); fixup_tail_calls ();
/* After initial rtl generation, call back to finish generating
exception support code. We need to do this before cleaning up
the CFG as the code does not expect dead landing pads. */
if (fun->eh->region_tree != NULL)
finish_eh_generation ();
/* BB subdivision may have created basic blocks that are are only reachable /* BB subdivision may have created basic blocks that are are only reachable
from unlikely bbs but not marked as such in the profile. */ from unlikely bbs but not marked as such in the profile. */
if (optimize) if (optimize)
......
2018-11-04 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/58372
* g++.target/i386/pr58372.C: New test.
2018-11-03 Sandra Loosemore <sandra@codesourcery.com> 2018-11-03 Sandra Loosemore <sandra@codesourcery.com>
PR target/87079 PR target/87079
* gcc.target/nios2/pr87079-1.c: New.
* gcc.target/nios2/pr87079-1.c: New. * gcc.target/nios2/pr87079-2.c: New.
* gcc.target/nios2/pr87079-2.c: New.
2018-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2018-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
......
/* PR target/58372 */
/* { dg-do compile { target c++14 } } */
/* { dg-options "-O2" } */
__attribute__ ((__target__ ("rdrnd")))
void f (unsigned int *b) noexcept
{
__builtin_ia32_rdrand32_step (b);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment