kumofs ftbfs on armhf (gcc ICE)

Bug #1065122 reported by Matthias Klose on 2012-10-10
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro GCC
Fix Released
Medium
Matthew Gretton-Dann
gcc
Fix Released
Medium
gcc-4.7 (Ubuntu)
Undecided
Unassigned
Quantal
Medium
Unassigned
kumofs (Ubuntu)
High
Unassigned
Quantal
Undecided
Unassigned

Bug Description

see https://launchpad.net/ubuntu/+archive/test-rebuild-20120922/+build/3821082

works with 4.6, fails with 4.7 (both fsf and linaro)

$ g++-4.7 -c -g cluster.ii cluster.cc: In member function 'bool rpc::node::set_role(rpc::role_type)':
cluster.cc:88:1: error: unrecognizable insn:
(insn 16 15 17 3 (parallel [
            (set (reg:CC_Z 24 cc)
                (unspec_volatile:CC_Z [
                        (const_int 0 [0])
                    ] VUNSPEC_ATOMIC_CAS))
            (set (reg:SI 146)
                (zero_extend:SI (mem/v:HI (reg/f:SI 134 [ D.146641 ]) [-1 S2 A16])))
            (set (mem/v:HI (reg/f:SI 134 [ D.146641 ]) [-1 S2 A16])
                (unspec_volatile:HI [
                        (reg:HI 147)
                        (subreg/s/u:HI (reg:SI 135 [ D.146642 ]) 0)
                        (const_int 0 [0])
                        (const_int 5 [0x5])
                        (const_int 5 [0x5])
                    ] VUNSPEC_ATOMIC_CAS))
            (clobber (scratch:SI))
        ]) cluster.cc:87 -1
     (nil))
cluster.cc:88:1: internal compiler error: in extract_insn, at recog.c:2123
Please submit a full bug report,
with preprocessed source if appropriate.

In , Doko-v (doko-v) wrote :

Created attachment 28414
preprocessed source

seen on arm-linux-gnueabi, works with the 4.6 branch, fails with the 4.7 branch:

$ g++-4.7 -c -g cluster.ii cluster.cc: In member function 'bool rpc::node::set_role(rpc::role_type)':
cluster.cc:88:1: error: unrecognizable insn:
(insn 16 15 17 3 (parallel [
            (set (reg:CC_Z 24 cc)
                (unspec_volatile:CC_Z [
                        (const_int 0 [0])
                    ] VUNSPEC_ATOMIC_CAS))
            (set (reg:SI 146)
                (zero_extend:SI (mem/v:HI (reg/f:SI 134 [ D.146641 ]) [-1 S2 A16])))
            (set (mem/v:HI (reg/f:SI 134 [ D.146641 ]) [-1 S2 A16])
                (unspec_volatile:HI [
                        (reg:HI 147)
                        (subreg/s/u:HI (reg:SI 135 [ D.146642 ]) 0)
                        (const_int 0 [0])
                        (const_int 5 [0x5])
                        (const_int 5 [0x5])
                    ] VUNSPEC_ATOMIC_CAS))
            (clobber (scratch:SI))
        ]) cluster.cc:87 -1
     (nil))
cluster.cc:88:1: internal compiler error: in extract_insn, at recog.c:2123
Please submit a full bug report,

Matthias Klose (doko) wrote :
Changed in kumofs (Ubuntu):
status: New → Confirmed
importance: Undecided → High
Changed in gcc:
importance: Unknown → Medium
status: Unknown → New
In , Mikpe (mikpe) wrote :

I can reproduce the ICE with g++ 4.8-20121007 and 4.7-20121006, on arm-linux-gnueabi with -march=armv7-a; with -march=armv6 or armv5te it doesn't ICE. The preprocessed source doesn't compile with g++ 4.6 so I can't check there.

In , Mikpe (mikpe) wrote :

The ICE started with Richard Henderson's "[ARM] Convert to atomic optabs" patch in r183050:
http://gcc.gnu.org/ml/gcc-patches/2012-01/msg00288.html
http://gcc.gnu.org/ml/gcc-cvs/2012-01/msg00290.html

Zhenqiang Chen (zhenqiang-chen) wrote :

Thank you for the bug report. I've confirmed this with gcc-linaro-4.7-2012.09 on ARM:

arm-linux-gnueabihf-gcc -c -g cluster.ii
cluster.cc: In member function ‘bool rpc::node::set_role(rpc::role_type)’:
cluster.cc:88:1: error: unrecognizable insn:
(insn 16 15 17 3 (parallel [
            (set (reg:CC_Z 24 cc)
                (unspec_volatile:CC_Z [
                        (const_int 0 [0])
                    ] VUNSPEC_ATOMIC_CAS))
            (set (reg:SI 146)
                (zero_extend:SI (mem/v:HI (reg/f:SI 134 [ D.146641 ]) [-1 S2 A16])))
            (set (mem/v:HI (reg/f:SI 134 [ D.146641 ]) [-1 S2 A16])
                (unspec_volatile:HI [
                        (reg:HI 147)
                        (subreg/s/u:HI (reg:SI 135 [ D.146642 ]) 0)
                        (const_int 0 [0])
                        (const_int 5 [0x5])
                        (const_int 5 [0x5])
                    ] VUNSPEC_ATOMIC_CAS))
            (clobber (scratch:SI))
        ]) cluster.cc:87 -1
     (nil))
cluster.cc:88:1: internal compiler error: in extract_insn, at recog.c:2123
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.launchpad.net/gcc-linaro> for instructions.

Changed in gcc-linaro:
status: New → Confirmed
Changed in gcc-linaro:
status: Confirmed → Triaged
importance: Undecided → Medium
assignee: nobody → Zhenqiang Chen (zhenqiang-chen)
In , Xguo (xguo) wrote :

Author: xguo
Date: Fri Oct 19 09:24:39 2012
New Revision: 192609

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=192609
Log:
 gcc/ChangeLog
 PR target/54892
 * config/arm/arm.c (arm_expand_compare_and_swap): Use SImode to make
 sure the mode is correct when falling through from above cases.

 gcc/testsuite/ChangeLog
 PR target/54892
 * gcc.target/arm/pr54892.c: New.

Added:
    trunk/gcc/testsuite/gcc.target/arm/pr54892.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm.c
    trunk/gcc/testsuite/ChangeLog

In , Xguo (xguo) wrote :

Author: xguo
Date: Fri Oct 19 09:39:13 2012
New Revision: 192610

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=192610
Log:
 gcc/ChangeLog
 Backported from mainline
 2012-10-19 Zhenqiang Chen <email address hidden>

 PR target/54892
 * config/arm/arm.c (arm_expand_compare_and_swap): Use SImode to make
 sure the mode is correct when falling through from above cases.

 gcc/testsuite/ChangeLog
 Backported from mainline
 2012-10-19 Zhenqiang Chen <email address hidden>

 PR target/54892
 * gcc.target/arm/pr54892.c: New.

Added:
    branches/gcc-4_7-branch/gcc/testsuite/gcc.target/arm/pr54892.c
Modified:
    branches/gcc-4_7-branch/gcc/ChangeLog
    branches/gcc-4_7-branch/gcc/config/arm/arm.c
    branches/gcc-4_7-branch/gcc/testsuite/ChangeLog

Matthias Klose (doko) on 2012-10-19
Changed in gcc-4.7 (Ubuntu Quantal):
importance: Undecided → Medium
milestone: none → quantal-updates
status: New → Triaged
Changed in gcc-4.7 (Ubuntu):
status: New → Fix Committed
Michael Hope (michaelh1) wrote :

Assigned to Matt as this will get picked up with the 2012.11 release branch merge.

Changed in gcc-linaro:
status: Triaged → In Progress
assignee: Zhenqiang Chen (zhenqiang-chen) → Matthew Gretton-Dann (matthew-gretton-dann)

Assuming fixed.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gcc-4.7 - 4.7.2-5ubuntu2

---------------
gcc-4.7 (4.7.2-5ubuntu2) raring; urgency=low

  * Merge with Debian.

gcc-4.7 (4.7.2-5) UNRELEASED; urgency=low

  * Update to SVN 20121025 (r192803) from the gcc-4_7-branch.
    - Fix PR target/54892 (ARM, LP: #1065122), PR rtl-optimization/54870,
      PR rtl-optimization/53701, PR target/53975 (ia64),
      PR tree-optimization/54902 (LP: #1065559), PR middle-end/54945.

  [ Matthias Klose ]
  * Update the Linaro support to the 4.7-2012.10 release.
  * Define MULTIARCH_DIRNAME for arm64 (Wookey).
  * Let the lib*objc-dev packages depend on the lib*gcc-dev packages.
  * Let the libstdc++-dev package depend on the libgcc-dev package.
  * Drop the dependency of the libstdc++-dev package on g++, make
    libstdc++-dev and libstdc++-pic Multi-Arch: same. Closes: #678623.
  * Install override files before calling dh_fixperms.
  * Backport the libffi arm64 port.
  * Build libx32gcc-dev, libx32objc-dev and libx32gfortran-dev packages.
  * Allow conditional building of the x32 multilibs.
  * Fix libmudflap build failure for x32 multilibs.
  * Fix dependency on glibc for triarch builds.
  * Add build-{arch,indep} targets.
  * Fix libquadmath x32 multilib builds on kernels which don't support x32.
  * Fix location of x32 specific C++ header files.

  [ Thibaut Girka ]
  * Split out lib*gcc-dev packages.
  * Split out lib*objc-dev packages.
  * Split out lib*gfortran-dev packages.

  [ Daniel Schepler ]
  * Add support for x32. Closes: #667005.
  * New patch hjl-x32-gcc-4_7-branch.diff to incorporate changes from
    that branch, including --with-abi=mx32 option.

  [ Marcin Juszkiewicz ]
  * lib*-dev packages for cross builds are not Multi-Arch: same. LP: #1070694.
 -- Matthias Klose <email address hidden> Thu, 25 Oct 2012 13:31:07 +0200

Changed in gcc-4.7 (Ubuntu):
status: Fix Committed → Fix Released
Changed in gcc:
status: New → Fix Released
Michael Hope (michaelh1) on 2012-11-07
Changed in gcc-linaro:
milestone: none → 4.7-2012.11
Changed in gcc-linaro:
status: In Progress → Fix Committed
Changed in gcc-linaro:
status: Fix Committed → Fix Released
Rolf Leggewie (r0lf) wrote :

quantal has seen the end of its life and is no longer receiving any updates. Marking the quantal task for this ticket as "Won't Fix".

Changed in gcc-4.7 (Ubuntu Quantal):
status: Triaged → Won't Fix
Rolf Leggewie (r0lf) on 2014-12-05
Changed in kumofs (Ubuntu Quantal):
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.