My understanding is that the problematic situation is when we create
speculation,
insert it to the priority queue and then decide it is useless.
This is done by speculation_useful_p and that checks more than just the
fact whether
function is inlinable (it accepts targets declared as PURE/CONST b
Hi.
This is rebased version of the patch that Martin J. wrote.
Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
Thanks,
Martin
>From 17290dd6dc4412aee6c6484844f9edb149129d36 Mon Sep 17 00:00:00 2001
From: Martin Jambor
Date: Wed, 5 Jun 2019 16:11:44 +0200
Subject: [PATCH]
Hi,
Martin discovered that inliner was adding deleted call graph edges to
its heap when supposedly processing newly discovered direct edges. The
problem is that a new edge created in the speculation part of the
indirect inlining machinery created speculative edges that were
immediately afterwards