Message ID | CAKdteOa4iGEX_+hQFSdZehC3S1KR5KevNktwc492=YkZTDp0Mw@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | [ARM] PR 67591 ARM v8 Thumb IT blocks are deprecated part 2 | expand |
On 13/10/17 08:41, Christophe Lyon wrote: > Hi, > > The attached small patch solves PR 67591 and removes occurrences of > "IT blocks containing 32-bit Thumb instructions are deprecated in > ARMv8". It is similar to the patch I committed recently and updates > the 3 remaining patterns that can generate such instructions. I > checked gcc.log, g++.log, libstdc++.log and gfortran.log and found no > occurrence of the warning with this patch applied. > > Cross-tested on arm-none-linux-gnueabihf with -mthumb/-march=armv8-a > and --with-cpu=cortex-a57 --with-mode=thumb, and also bootstrapped > successfully on armv8 HW in thumb mode. > > Benchmarking shows no noticeable difference. > > OK for trunk? > OK. R. > Thanks, > > Christophe > > > depr-it-2.chlog.txt > > > 2017-10-13 Christophe Lyon <christophe.lyon@linaro.org> > > PR target/67591 > * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it > attribute. > (*cmp_ite0): Add enabled_for_depr_it attribute. > (*cmp_ite1): Likewise. > > > depr-it-2.patch.txt > > > diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md > index f241f9d..093db74 100644 > --- a/gcc/config/arm/arm.md > +++ b/gcc/config/arm/arm.md > @@ -8960,6 +8960,7 @@ > "TARGET_32BIT" > "sub%?\\t%0, %1, %3%S2" > [(set_attr "predicable" "yes") > + (set_attr "predicable_short_it" "no") > (set_attr "shift" "3") > (set_attr "arch" "32,a") > (set_attr "type" "alus_shift_imm,alus_shift_reg")]) > @@ -9398,6 +9399,7 @@ > }" > [(set_attr "conds" "set") > (set_attr "arch" "t2,t2,t2,t2,t2,any,any,any,any") > + (set_attr "enabled_for_depr_it" "yes,no,no,no,no,no,no,no,no") > (set_attr "type" "multiple") > (set_attr_alternative "length" > [(const_int 6) > @@ -9481,6 +9483,7 @@ > }" > [(set_attr "conds" "set") > (set_attr "arch" "t2,t2,t2,t2,t2,any,any,any,any") > + (set_attr "enabled_for_depr_it" "yes,no,no,no,no,no,no,no,no") > (set_attr_alternative "length" > [(const_int 6) > (const_int 8) >
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index f241f9d..093db74 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -8960,6 +8960,7 @@ "TARGET_32BIT" "sub%?\\t%0, %1, %3%S2" [(set_attr "predicable" "yes") + (set_attr "predicable_short_it" "no") (set_attr "shift" "3") (set_attr "arch" "32,a") (set_attr "type" "alus_shift_imm,alus_shift_reg")]) @@ -9398,6 +9399,7 @@ }" [(set_attr "conds" "set") (set_attr "arch" "t2,t2,t2,t2,t2,any,any,any,any") + (set_attr "enabled_for_depr_it" "yes,no,no,no,no,no,no,no,no") (set_attr "type" "multiple") (set_attr_alternative "length" [(const_int 6) @@ -9481,6 +9483,7 @@ }" [(set_attr "conds" "set") (set_attr "arch" "t2,t2,t2,t2,t2,any,any,any,any") + (set_attr "enabled_for_depr_it" "yes,no,no,no,no,no,no,no,no") (set_attr_alternative "length" [(const_int 6) (const_int 8)