[PR89862] Fix ARM lto bootstrap

Message ID CAELXzTM8M_hEz3djoRb64VOOvnreXQF-ARPVmrGzRMujXmiXmA@mail.gmail.com
State New
Headers show
Series
  • [PR89862] Fix ARM lto bootstrap
Related show

Commit Message

Kugan Vivekanandarajah March 29, 2019, 2:39 a.m.
Hi All,
LTO bootstrap for ARM fails with the commit

commit 67c18bce7054934528ff5930cca283b4ac967dca
* combine.c (record_dead_and_set_regs_1): Record the source unmodified
for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target.

It fails with an  internal compiler error: in operator+=, at
profile-count.h:792.

With the commit now we are not  generating gen_lowpart for CONST_INT as in
(set (subreg:SI (reg:QI 1434) 0)
    (const_int 224 [0xe0])) and likes.

As discussed in the PR, attached patch fixes this and fixes the
bootstrap failure. I am not able to create a reduced testcase for
this. However, it is being tested with LTO bootstrap for ARM. I
therefore believe that it is OK.
I have also tested the patch with x86_64-linux-gnu with no new regressions.
Is this OK for trunk?

Thanks,
Kugan

Comments

Eric Botcazou March 29, 2019, 8:04 a.m. | #1
> I have also tested the patch with x86_64-linux-gnu with no new regressions.

> Is this OK for trunk?


Yes, but please put it on all active branches.

-- 
Eric Botcazou

Patch

diff --git a/gcc/rtl.h b/gcc/rtl.h
index f991919..52ecd5a 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -4401,6 +4401,7 @@  word_register_operation_p (const_rtx x)
 {
   switch (GET_CODE (x))
     {
+    case CONST_INT:
     case ROTATE:
     case ROTATERT:
     case SIGN_EXTRACT: