[Bug target/71607] New: [ARM] ice due to forbidden enabled attribute dependency on instruction operands
mickael.guene at st dot com
gcc-bugzilla@gcc.gnu.org
Tue Jun 21 10:40:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71607
Bug ID: 71607
Summary: [ARM] ice due to forbidden enabled attribute
dependency on instruction operands
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: mickael.guene at st dot com
Target Milestone: ---
Created attachment 38738
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38738&action=edit
reduce test case that ice
There is a rule in the 'gcc internals' document that states that 'enabled'
attribute must not depend on the current insn operands.
But unfortunately such a dependency exists due to 'use_literal_pool' attribute
dependency on operands[1] and 'use_literal_pool' usage in 'enabled'
attribute definition (see arm.md).
This leads to ice on check_bool_attrs() assertion in recog.c that exactly
checks that 'enabled', 'preferred_for_size' or 'preferred_for_speed'
are static properties of the subtarget (as stated in gcc internals document
and in check_bool_attrs() comment).
Find attached a test case that triggers this ice.
>> arm-none-eabi-gcc -c simple.c -mslow-flash-data -O0 -mfloat-abi=hard -march=armv7-m -mthumb -mfpu=vfpv3
will trigger an ice whereas
>> arm-none-eabi-gcc -c simple.c -mno-slow-flash-data -O0 -mfloat-abi=hard -march=armv7-m -mthumb -mfpu=vfpv3
will not.
Mickael
More information about the Gcc-bugs
mailing list