On 11/8/18 5:48 AM, Richard Biener wrote: > Err, that looks very much like a hack that manages to hide the issue.
It's true we do not want to hide the issue by adding unneeded conflicts, since that can lead to unnecessary spills. However, ... > Esp. adding conflicts in a loop that says "See which defined values die here." > is quite fishy. ..the original loop is dealing with some of the gory details you never read about in academic RA papers. This code is used to catch the case where an insn defines a register(s) that is never used. Because it is never used, it never ends up in the "live" (ie, live and available) set, which can cause us to miss some required conflicts. That said, I still need to look at the RTL from the bad program before determining whether the patch is correct or not. Computing accurate conflict information is a delicate thing. Peter