This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/80210] ICE in in extract_insn, at recog.c:2311 on ppc64 for with __builtin_pow
- From: "bergner at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 17 Aug 2017 23:38:48 +0000
- Subject: [Bug target/80210] ICE in in extract_insn, at recog.c:2311 on ppc64 for with __builtin_pow
- Auto-submitted: auto-generated
- References: <bug-80210-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80210
Peter Bergner <bergner at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |bergner at gcc dot gnu.org
--- Comment #6 from Peter Bergner <bergner at gcc dot gnu.org> ---
I have a patch I'm testing. The problem is that rs6000_set_current_function()
is not clearing the rs6000_previous_fndecl cache correctly when it needs to.
With the test case, we notice that rs6000_previous_fndecl is set (when it
shouldn't be) and we end up restoring options from it which incorrectly disable
HW sqrt leading to the ICE.
The current code is also a rats nest and hard to read/understand, so the patch
I'm testing is modeled on s390's version of the same function which is much
cleaner and correctly clears out the rs6000_previous_fndecl when it needs to.