I'm sorry I forgot about this bug but I finally remembered to have a
look today. Unfortunately, on i686 host I was able to reproduce the
ICE also with revisions 164134 and 164135 and so I assumed that Mikael
made a mistake when he tracked the cause of the ICE to my commit in
comment #3. When verifying that on an x86_64 host, I realized that
the ICE indeed started happening with my commit but it re-appeared
quickly with previous revisions when I added -fno-tree-sra to the
command line options. Therefore I believe my patch did not cause any
bug but uncovered some other issue elsewhere.
In order to help at least a little, I did my own bisecting, this time
with -fno-tree-sra, and to me it appears the ICE (still present on the
4.6 branch) is introduced by revision 163935:
2010-09-07 Bernd Schmidt <email address hidden>
PR target/43137
* config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
New define_mode_attrs.
* config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2, arm_exxtendsidi2, arm_extendsidi2): Delete patterns. (zero_extend<mode>di2, extend<mode>di2 and related splits): New. (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
Remove pool_range attribute. (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2, arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
pool_range and neg_pool_range attributes.
* config/arm/thumb2.md (thumb2_zero_extendsidi2, thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2, thumb2_extendhidi2, thumb2_extendqidi2): Delete.
I'm sorry I forgot about this bug but I finally remembered to have a
look today. Unfortunately, on i686 host I was able to reproduce the
ICE also with revisions 164134 and 164135 and so I assumed that Mikael
made a mistake when he tracked the cause of the ICE to my commit in
comment #3. When verifying that on an x86_64 host, I realized that
the ICE indeed started happening with my commit but it re-appeared
quickly with previous revisions when I added -fno-tree-sra to the
command line options. Therefore I believe my patch did not cause any
bug but uncovered some other issue elsewhere.
In order to help at least a little, I did my own bisecting, this time
with -fno-tree-sra, and to me it appears the ICE (still present on the
4.6 branch) is introduced by revision 163935:
2010-09-07 Bernd Schmidt <email address hidden>
PR target/43137 arm/iterators. md (qhs_zextenddi_ cond, qhs_sextenddi_ cond): extendsidi2,
arm_exxtendsid i2, arm_extendsidi2): Delete patterns.
(zero_ extend< mode>di2, extend<mode>di2 and related splits): New.
(thumb1_ zero_extendhisi 2): Remove code to handle LABEL_REFs.
(arm_zero_ extendhisi2, arm_zero_ extendhisi2_ v6, arm_zero_ extendqisi2,
arm_zero_ extendqisi2_ v6, thumb1_ zero_extendqisi 2_v6): Remove arm/thumb2. md (thumb2_ zero_extendsidi 2,
thumb2_ zero_extendhidi 2, thumb2_ zero_extendqidi 2, thumb2_extendsidi2,
thumb2_ extendhidi2, thumb2_ extendqidi2) : Delete.
* config/
New define_mode_attrs.
* config/arm/arm.md (zero_extendsidi2, arm_zero_
Remove pool_range attribute.
pool_range and neg_pool_range attributes.
* config/