[Bug target/89399] [7/8/9 Regression] ICE: RTL check: expected code 'set', 'clobber' or 'clobber_high', have 'parallel' in combine_reaching_defs, at ree.c:783
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Feb 19 15:01:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89399
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org,
| |law at gcc dot gnu.org
Target Milestone|--- |7.5
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Seems there is a great inconsistency in ree.c, some spots use single_set,
others use *get_sub_rtx, and others use PATTERN directly.
Here we have cand->insn
(insn 7 6 20 2 (parallel [
(set (reg:SI 0 r0 [orig:111 _2 ] [111])
(sign_extend:SI (reg:HI 0 r0 [116])))
(clobber (scratch:SI))
]) "pr89399.c":7:5 828 {thumb1_extendhisi2}
(nil))
and use
782 bool copy_needed
783 = (REGNO (SET_DEST (PATTERN (cand->insn)))
784 != REGNO (get_extended_src_reg (SET_SRC (PATTERN
(cand->insn)))));
find_removable_extensions which adds the candidates seems to be the most
permissive one though (uses single_set). So, shall we use e.g. get_sub_rtx in
all cases?
More information about the Gcc-bugs
mailing list