On 10/11/2017 05:11 PM, Jakub Jelinek wrote:
On Wed, Oct 11, 2017 at 03:39:21PM -0400, Vladimir Makarov wrote:
The following patch fixes

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82353

LRA did not update hard reg liveness on bb borders for hard regs which are
part of insn patterns like CFLAGS reg.  It was ok for inheritance in EBB
which creates only moves and they usually have no embedded hard regs in the
patterns.  But LRA rematerialization needs this.  So this patch implements
such hard reg liveness updates.

The patch was successfully bootstrapped and tested on x86-64.

Committed as rev. 253656.
Thanks for the fix, however I believe we do not want C++ tests in
gcc.target/*/, those are historically handled in g++.dg/ (and if we wanted
to have them, we'd introduce g++.target/*/), furthermore the test requires
working -fsanitize=undefined and such tests belog into g++.dg/ubsan/
if they are in C++.  And finally, the test fails on i386, where we
rematerialize something else, so I think we should just limit it to lp64.
I just followed arch64 which has C++ tests in gcc.target/arch64.

I think we will have more and more target tests on C++ in the future, so probably having g++.target is a good idea.
Tested on x86_64-linux -m32/-m64, and verified with cc1plus before your
change, ok for trunk?


Sure, Jakub.

Reply via email to