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]

Re: [PATCH] Add cgraph edge for early fixup_cfg inserted __builtin_unreachable (PR target/71910)


On 08/08/2016 01:00 PM, Jakub Jelinek wrote:
Hi!

In cross to mingw we ICE on the following testcase, because fixup_cfg pass
adds __builtin_unreachable call without adding corresponding cgraph_edge
(the body of the parallel region doesn't return, so while GOMP_parallel
isn't a noreturn function, it will actually never return).

Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

Or is there a better check on when we care about the cgraph edges being
maintained?

2016-08-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/71910
	* tree-cfg.c (execute_fixup_cfg): Add node variable, use it.  Before inlining,
	add cgraph edge for the added __builtin_unreachable call.

	* g++.dg/gomp/pr71910.C: New test.
I don't particularly like intertwining the control-flow-graph bits with the call-graph bits, it seems wrong from a modularity standpoint.

But we need to examine the CFG to know when the call graph needs fixing. So, I guess this is OK. If we find more call graph stuff bleeding in here we'll probably want to look at some kind of refactoring.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]