On Tue, Sep 27, 2011 at 12:39:36AM +0200, Bernd Schmidt wrote: > On 09/27/11 00:32, Alan Modra wrote: > > On Mon, Sep 26, 2011 at 11:22:54PM +0930, Alan Modra wrote: > >> Two regressions appeared due to a problem in the shrink-wrap code. > > > > These two. > > +FAIL: g++.dg/torture/pr46111.C -O1 (internal compiler error) > > +FAIL: gcc.dg/autopar/pr46099.c (internal compiler error) > > > > Both "internal compiler error: in maybe_record_trace_start, at > > dwarf2cfi.c:2243", caused by disjoint blocks in the set of blocks that > > needs no prologue. ie. thread_prologue_and_epilogue_insns gives > > > > ==== > > code needing no prologue > > ==== <- prologue inserted here > > code needing prologue > > ==== > > more no prologue code > > ==== > > more code needing prologue > > ==== > > epilogue > > > > That second block needing no prologue now wrongly tries to use unwind > > info from the prologue. > > What's the actual CFG structure here?
Immediately after thread_prologue_and_epilogue_insns bb2 -> simple_ret | bb3 /\ / \ bb4 bb5 (pro) | | |<--| bb7 | | (epi) bb6--| | | bb8<-| | (s ret)| | |-bb9 -- Alan Modra Australia Development Lab, IBM