12020-12-31 Richard Sandiford <richard.sandiford@arm.com> 2 3 * tree-vect-stmts.c (vectorizable_condition): Only nullify cond_expr 4 if we've created a new condition. Don't nullify it if we've decided 5 to keep it and then invert the result. 6 72020-12-31 Richard Sandiford <richard.sandiford@arm.com> 8 9 * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Return 10 the incoming virtual operand definition. 11 (vect_do_peeling): When vectorizing an epilogue loop, handle the 12 case in which the main loop has a virtual phi and the epilogue 13 and scalar loops don't. Restore an earlier comment about the 14 update_ssa call. 15 162019-12-30 Olivier Hainque <hainque@adacore.com> 17 18 * config/vxworks/stdint.h: New file. Include _yvals.h 19 then stdint-gcc.h. 20 * config/t-vxworks: Arrange to install the stdint.h wrapper. 21 * config.gcc (*-*-vxworks*): Add stdint-gcc.h to $extra_headers 22 so it gets copied. Set use_gcc_stdint to request _not_ crafting 23 stdint.h through the common Makefile rules. 24 252019-12-30 Olivier Hainque <hainque@adacore.com> 26 27 * config/vxworks/_yvals.h: New file. 28 * config/vxworks/_yvals-wrapper.h: New file. 29 * gcc/config/vxworks/math.h: Use it to wrap the VxWorks 30 math.h header. 31 * gcc/config/vxworks/complex.h: Likewise. 32 * gcc/config/vxworks/setjmp.h: Likewise. 33 * gcc/config/vxworks/inttypes.h: Likewise. 34 * config.gcc (*-*-vxworks*): Add system header wrappers 35 to extra_headers. 36 (powerpc-*-vxworks*): Reuse the common extra_headers. 37 382019-12-30 Olivier Hainque <hainque@adacore.com> 39 40 * config/vxworks/_vxworks-versions.h: New file. 41 * config.gcc (*-*-vxworks*): Add it to extra_headers. 42 432019-12-30 Olivier Hainque <hainque@adacore.com> 44 45 * config/t-vxworks: Rework the vxworks.o compilation 46 rules to use $(COMPILE). 47 482019-12-30 Joel Brobecker <brobecker@adacore.com> 49 50 * config.gcc <*-*-vxworks*>: Add vxworks-c.o to c_target_objs 51 and cxx_target_objs. Set target_has_targetcm to "yes". Add 52 vxworks-predef.h to extra_headers. 53 * config/t-vxworks (vxworks-c.o): New target. 54 * config/vxworks-c.c: New file. 55 * config/vxworks/vxworks-predef.h: New file. 56 572019-12-30 Alexandre Oliva <oliva@adacore.com> 58 Olivier Hainque <hainque@adacore.com> 59 60 * config/vx-common.h (WCHAR_TYPE_SIZE): 32 on VxWorks 7. 61 (WCHAR_TYPE): Pick accordingly. 62 (WINT_TYPE_SIZE): Define in terms of WCHAR_TYPE_SIZE. 63 (WINT_TYPE): Define in terms of WCHAR_TYPE. 64 652019-12-30 Olivier Hainque <hainque@adacore.com> 66 67 * config/vx-common.h: Minor reorganization and add 68 sectioning comments. 69 702019-12-30 Doug Rupp <rupp@adacore.com> 71 72 * config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Define. 73 742019-12-30 Olivier Hainque <hainque@adacore.com> 75 Jerome Lambourg <labourg@adacore.com> 76 77 * config/t-vxworks: Arrange to alter/restore glimits.h 78 before/after stmp-int-hdrs, so it uses a different macro 79 name to protect itself against recursive inclusions. 80 812019-12-30 Peter Bergner <bergner@linux.ibm.com> 82 83 PR target/92923 84 * config/rs6000/rs6000-builtin.def (VAND, VANDC, VNOR, VOR, VXOR): 85 Delete. 86 (EQV_V16QI_UNS, EQV_V8HI_UNS, EQV_V4SI_UNS, EQV_V2DI_UNS, EQV_V1TI_UNS, 87 NAND_V16QI_UNS, NAND_V8HI_UNS, NAND_V4SI_UNS, NAND_V2DI_UNS, 88 NAND_V1TI_UNS, ORC_V16QI_UNS, ORC_V8HI_UNS, ORC_V4SI_UNS, ORC_V2DI_UNS, 89 ORC_V1TI_UNS, VAND_V16QI_UNS, VAND_V16QI, VAND_V8HI_UNS, VAND_V8HI, 90 VAND_V4SI_UNS, VAND_V4SI, VAND_V2DI_UNS, VAND_V2DI, VAND_V4SF, 91 VAND_V2DF, VANDC_V16QI_UNS, VANDC_V16QI, VANDC_V8HI_UNS, VANDC_V8HI, 92 VANDC_V4SI_UNS, VANDC_V4SI, VANDC_V2DI_UNS, VANDC_V2DI, VANDC_V4SF, 93 VANDC_V2DF, VNOR_V16QI_UNS, VNOR_V16QI, VNOR_V8HI_UNS, VNOR_V8HI, 94 VNOR_V4SI_UNS, VNOR_V4SI, VNOR_V2DI_UNS, VNOR_V2DI, VNOR_V4SF, 95 VNOR_V2DF, VOR_V16QI_UNS, VOR_V16QI, VOR_V8HI_UNS, VOR_V8HI, 96 VOR_V4SI_UNS, VOR_V4SI, VOR_V2DI_UNS, VOR_V2DI, VOR_V4SF, VOR_V2DF, 97 VXOR_V16QI_UNS, VXOR_V16QI, VXOR_V8HI_UNS, VXOR_V8HI, 98 VXOR_V4SI_UNS, VXOR_V4SI, VXOR_V2DI_UNS, VXOR_V2DI, VXOR_V4SF, 99 VXOR_V2DF): Add definitions. 100 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins) 101 <ALTIVEC_BUILTIN_VAND, ALTIVEC_BUILTIN_VANDC, ALTIVEC_BUILTIN_VNOR, 102 ALTIVEC_BUILTIN_VOR, ALTIVEC_BUILTIN_VXOR>: Remove. 103 <ALTIVEC_BUILTIN_VAND_V4SF, ALTIVEC_BUILTIN_VAND_V2DF, 104 ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V2DI_UNS, 105 ALTIVEC_BUILTIN_VAND_V4SI_UNS, ALTIVEC_BUILTIN_VAND_V4SI, 106 ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V8HI, 107 ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V16QI_UNS, 108 ALTIVEC_BUILTIN_VANDC_V4SF, ALTIVEC_BUILTIN_VANDC_V2DF, 109 ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS, 110 ALTIVEC_BUILTIN_VANDC_V4SI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI, 111 ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V8HI, 112 ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V16QI_UNS, 113 ALTIVEC_BUILTIN_VNOR_V4SF, ALTIVEC_BUILTIN_VNOR_V2DF, 114 ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS, 115 ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS, 116 ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS, 117 ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V16QI_UNS, 118 ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF, 119 ALTIVEC_BUILTIN_VOR_V2DI, ALTIVEC_BUILTIN_VOR_V2DI_UNS, 120 ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI, 121 ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI, 122 ALTIVEC_BUILTIN_VOR_V16QI, ALTIVEC_BUILTIN_VOR_V16QI_UNS, 123 ALTIVEC_BUILTIN_VXOR_V4SF, ALTIVEC_BUILTIN_VXOR_V2DF, 124 ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS, 125 ALTIVEC_BUILTIN_VXOR_V4SI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI, 126 ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS, 127 ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS>: Add 128 definitions. 129 <P8V_BUILTIN_EQV_V16QI, P8V_BUILTIN_EQV_V8HI, P8V_BUILTIN_EQV_V4SI, 130 P8V_BUILTIN_EQV_V2DI, P8V_BUILTIN_NAND_V16QI, P8V_BUILTIN_NAND_V8HI, 131 P8V_BUILTIN_NAND_V4SI, P8V_BUILTIN_NAND_V2DI, P8V_BUILTIN_ORC_V16QI, 132 P8V_BUILTIN_ORC_V8HI, P8V_BUILTIN_ORC_V4SI, 133 P8V_BUILTIN_ORC_V2DI>: Change unsigned usages to use the new *_UNS 134 definition names. 135 (rs6000_gimple_fold_builtin) <ALTIVEC_BUILTIN_VAND_V16QI_UNS, 136 ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V8HI_UNS, 137 ALTIVEC_BUILTIN_VAND_V8HI, ALTIVEC_BUILTIN_VAND_V4SI_UNS, 138 ALTIVEC_BUILTIN_VAND_V4SI, ALTIVEC_BUILTIN_VAND_V2DI_UNS, 139 ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V4SF, 140 ALTIVEC_BUILTIN_VAND_V2DF, ALTIVEC_BUILTIN_VANDC_V16QI_UNS, 141 ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V8HI_UNS, 142 ALTIVEC_BUILTIN_VANDC_V8HI, ALTIVEC_BUILTIN_VANDC_V4SI_UNS, 143 ALTIVEC_BUILTIN_VANDC_V4SI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS, 144 ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V4SF, 145 ALTIVEC_BUILTIN_VANDC_V2DF, P8V_BUILTIN_NAND_V16QI_UNS, 146 P8V_BUILTIN_NAND_V8HI_UNS, P8V_BUILTIN_NAND_V4SI_UNS, 147 P8V_BUILTIN_NAND_V2DI_UNS, P8V_BUILTIN_NAND_V2DI, 148 ALTIVEC_BUILTIN_VOR_V16QI_UNS, ALTIVEC_BUILTIN_VOR_V16QI, 149 ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI, 150 ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI, 151 ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V2DI, 152 ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF, 153 P8V_BUILTIN_ORC_V16QI_UNS, P8V_BUILTIN_ORC_V8HI_UNS, 154 P8V_BUILTIN_ORC_V4SI_UNS, P8V_BUILTIN_ORC_V2DI_UNS, 155 P8V_BUILTIN_ORC_V2DI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS, 156 ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS, 157 ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V4SI_UNS, 158 ALTIVEC_BUILTIN_VXOR_V4SI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS, 159 ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V4SF, 160 ALTIVEC_BUILTIN_VXOR_V2DF, ALTIVEC_BUILTIN_VNOR_V16QI_UNS, 161 ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS, 162 ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS, 163 ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS, 164 ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V4SF, 165 ALTIVEC_BUILTIN_VNOR_V2DF>: Use new definition names. 166 (builtin_function_type) <ALTIVEC_BUILTIN_VAND_V16QI_UNS, 167 ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V4SI_UNS, 168 ALTIVEC_BUILTIN_VAND_V2DI_UNS, ALTIVEC_BUILTIN_VANDC_V16QI_UNS, 169 ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI_UNS, 170 ALTIVEC_BUILTIN_VANDC_V2DI_UNS, ALTIVEC_BUILTIN_VNOR_V16QI_UNS, 171 ALTIVEC_BUILTIN_VNOR_V8HI_UNS, ALTIVEC_BUILTIN_VNOR_V4SI_UNS, 172 ALTIVEC_BUILTIN_VNOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V16QI_UNS, 173 ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V4SI_UNS, 174 ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VXOR_V16QI_UNS, 175 ALTIVEC_BUILTIN_VXOR_V8HI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI_UNS, 176 ALTIVEC_BUILTIN_VXOR_V2DI_UNS, P8V_BUILTIN_EQV_V16QI_UNS, 177 P8V_BUILTIN_EQV_V8HI_UNS, P8V_BUILTIN_EQV_V4SI_UNS, 178 P8V_BUILTIN_EQV_V2DI_UNS, P8V_BUILTIN_EQV_V1TI_UNS, 179 P8V_BUILTIN_NAND_V16QI_UNS, P8V_BUILTIN_NAND_V8HI_UNS, 180 P8V_BUILTIN_NAND_V4SI_UNS, P8V_BUILTIN_NAND_V2DI_UNS, 181 P8V_BUILTIN_NAND_V1TI_UNS, P8V_BUILTIN_ORC_V16QI_UNS, 182 P8V_BUILTIN_ORC_V8HI_UNS, P8V_BUILTIN_ORC_V4SI_UNS, 183 P8V_BUILTIN_ORC_V2DI_UNS, P8V_BUILTIN_ORC_V1TI_UNS>: Handle unsigned 184 builtins. 185 1862019-12-29 Jakub Jelinek <jakub@redhat.com> 187 188 PR target/93078 189 * config/i386/i386-builtins.c (ix86_builtin_vectorized_function): 190 Remove CASE_CFN_RINT handling. 191 * config/i386/i386-builtin.def (IX86_BUILTIN_RINTPD, 192 IX86_BUILTIN_RINTPS, IX86_BUILTIN_RINTPD256, IX86_BUILTIN_RINTPS256): 193 Remove. 194 * config/i386/sse.md (nearbyint<mode>2, rint<mode>2): New expanders 195 with VF iterator. 196 1972019-12-29 Richard Sandiford <richard.sandiford@arm.com> 198 199 * tree-vect-stmts.c (vect_get_strided_load_store_ops): Copy 200 DR_STEP before gimplifying it. 201 2022019-12-29 Richard Sandiford <richard.sandiford@arm.com> 203 204 * tree-vect-stmts.c (vectorizable_condition): For extract-last 205 reductions, check that the target supports the required comparison 206 operation. 207 2082019-12-27 Richard Sandiford <richard.sandiford@arm.com> 209 210 * config/aarch64/iterators.md (V_INT_CONTAINER): Fix VNx2SF entry. 211 2122019-12-27 Richard Sandiford <richard.sandiford@arm.com> 213 214 * tree-vect-loop.c (vectorizable_reduction): Check whether the 215 target supports the required VEC_COND_EXPR operation before 216 allowing the fallback handling of masked fold-left reductions. 217 2182019-12-24 Jiufu Guo <guojiufu@linux.ibm.com> 219 220 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable 221 -fweb and -frename-registers with -funroll-loops 222 2232019-12-22 Gerald Pfeifer <gerald@pfeifer.com> 224 225 * doc/invoke.texi (-flto): Use "compile time" as a noun. 226 2272019-12-21 Martin Jambor <mjambor@suse.cz> 228 229 PR ipa/93015 230 * ipa-cp.c (ipcp_store_vr_results): Check that info exists 231 2322019-12-20 Michael Meissner <meissner@linux.ibm.com> 233 234 * config/rs6000/predicates.md (cint34_operand): Use 235 SIGNED_INTEGER_34BIT_P macro. 236 * config/rs6000/rs6000.c (num_insns_constant_gpr): Use the 237 SIGNED_INTEGER_16BIT_P and SIGNED_INTEGER_34BIT_P macros. 238 (address_to_insn_form): Use the SIGNED_INTEGER_16BIT_P and 239 SIGNED_INTEGER_34BIT_P macros. 240 * config/rs6000/rs6000.h (SIGNED_INTEGER_NBIT_P): New macro. 241 (SIGNED_INTEGER_16BIT_P): Rename SIGNED_16BIT_OFFSET_P to be 242 SIGNED_INTEGER_34BIT_P. 243 (SIGNED_INTEGER_34BIT_P): Rename SIGNED_34BIT_OFFSET_P to be 244 SIGNED_INTEGER_34BIT_P. 245 2462019-12-20 Stam Markianos-Wright <stam.markianos-wright@arm.com> 247 248 * doc/sourcebuild.texi 249 (arm_v8_2a_bf16_neon_ok): Document new target supports option. 250 (arm_v8_2a_i8mm_ok): Likewise. 251 2522019-12-20 Jakub Jelinek <jakub@redhat.com> 253 254 PR target/92841 255 * config/i386/i386.md (*stack_protect_set_3): For pic_32bit_operand 256 always use lea{q}, no matter what value which_alternative has. 257 258 PR target/93002 259 * config/i386/i386.md (dec reg; cmp $-1, reg; jne lab): New 260 define_peephole2. 261 2622019-12-19 Julian Brown <julian@codesourcery.com> 263 264 * gimplify.c (gimplify_omp_var_data): Add GOVD_MAP_HAS_ATTACHMENTS. 265 (insert_struct_comp_map): Support derived-type member mappings 266 for arrays with descriptors which use GOMP_MAP_TO_PSET. Support 267 GOMP_MAP_ATTACH_DETACH. 268 (gimplify_scan_omp_clauses): Tidy up OACC_ENTER_DATA/OACC_EXIT_DATA 269 mappings. Handle attach/detach clauses and component references. 270 (gimplify_adjust_omp_clauses_1): Skip adjustments for explicit 271 attach/detach clauses. 272 (gimplify_omp_target_update): Handle struct mappings and finalize for 273 detach operations. 274 * omp-low.c (lower_omp_target): Support GOMP_MAP_ATTACH, 275 GOMP_MAP_DETACH, GOMP_MAP_FORCE_DETACH. 276 * tree-pretty-print.c (dump_omp_clause): Likewise, plus 277 GOMP_MAP_ATTACH_DETACH. 278 2792019-12-19 Julian Brown <julian@codesourcery.com> 280 281 * gimplify.c (insert_struct_comp_map, extract_base_bit_offset): New. 282 (gimplify_scan_omp_clauses): Outline duplicated code into calls to 283 above two functions. 284 2852019-12-19 Vladimir Makarov <vmakarov@redhat.com> 286 287 PR target/92905 288 * lra-constraints.c (process_alt_operands): Check offmemok when 289 processing preferred_reload_class. 290 2912019-12-19 Andrew Stubbs <ams@codesourcery.com> 292 293 * config/gcn/gcn-valu.md 294 (<convop><VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>): 295 Change input predcate to gcn_alu_operand. 296 (extend<VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>): 297 Likewise. 298 (truncv64di<mode>2): Likewise. 299 (truncv64di<mode>2_exec): Likewise. 300 (<convop><mode>v64di2): Likewise. 301 (<convop><mode>v64di2_exec): Likewise. 302 3032019-12-19 Andrew Stubbs <ams@codesourcery.com> 304 305 * config/gcn/gcn-valu.md (*plus_carry_dpp_shr_<mode>): Rename to ... 306 (*plus_carry_dpp_shr_v64si): ... this, and replace all 307 VEC_1REG_INT_MODE with V64SI. 308 3092019-12-19 David Malcolm <dmalcolm@redhat.com> 310 311 * hash-map-tests.c (selftest::test_map_of_int_to_strings): New 312 selftest. 313 (selftest::hash_map_tests_c_tests): Call it. 314 3152019-12-19 David Malcolm <dmalcolm@redhat.com> 316 317 * gimple-predict.h (gimple_predict_predictor): Make "gs" param 318 const. 319 (gimple_predict_outcome): Likewise. 320 * gimple-pretty-print.c (do_niy): Likewise. 321 (dump_unary_rhs): Likewise. 322 (dump_binary_rhs): Likewise. 323 (dump_ternary_rhs): Likewise. 324 (dump_gimple_assign): Likewise. 325 (dump_gimple_return): Likewise. 326 (dump_gimple_call_args): Likewise. 327 (pp_points_to_solution): Make "pt" param const. 328 (dump_gimple_call): Make "gs" param const. 329 (dump_gimple_switch): Likewise. 330 (dump_gimple_cond): Likewise. 331 (dump_gimple_label): Likewise. 332 (dump_gimple_goto): Likewise. 333 (dump_gimple_bind): Likewise. 334 (dump_gimple_try): Likewise. 335 (dump_gimple_catch): Likewise. 336 (dump_gimple_eh_filter): Likewise. 337 (dump_gimple_eh_must_not_throw): Likewise. 338 (dump_gimple_eh_else): Likewise. 339 (dump_gimple_resx): Likewise. 340 (dump_gimple_eh_dispatch): Likewise. 341 (dump_gimple_debug): Likewise. 342 (dump_gimple_omp_for): Likewise. 343 (dump_gimple_omp_continue): Likewise. 344 (dump_gimple_omp_single): Likewise. 345 (dump_gimple_omp_taskgroup): Likewise. 346 (dump_gimple_omp_target): Likewise. 347 (dump_gimple_omp_teams): Likewise. 348 (dump_gimple_omp_sections): Likewise. 349 (dump_gimple_omp_block): Likewise. 350 (dump_gimple_omp_critical): Likewise. 351 (dump_gimple_omp_ordered): Likewise. 352 (dump_gimple_omp_scan): Likewise. 353 (dump_gimple_omp_return): Likewise. 354 (dump_gimple_transaction): Likewise. 355 (dump_gimple_asm): Likewise. 356 (dump_gimple_phi): Make "phi" param const. 357 (dump_gimple_omp_parallel): Make "gs" param const. 358 (dump_gimple_omp_task): Likewise. 359 (dump_gimple_omp_atomic_load): Likewise. 360 (dump_gimple_omp_atomic_store): Likewise. 361 (dump_gimple_mem_ops): Likewise. 362 (pp_gimple_stmt_1): Likewise. Add "const" to the various as_a <> 363 casts throughout. 364 * gimple-pretty-print.h (gimple_stmt_1): Make gimple * param const. 365 * gimple.h (is_a_helper <const gdebug *>::test): New. 366 (is_a_helper <const ggoto *>::test): New. 367 (is_a_helper <const glabel *>::test): New. 368 (is_a_helper <const geh_else *>::test): New. 369 (is_a_helper <const geh_mnt *>::test): New. 370 (is_a_helper <const gswitch *>::test): New. 371 (is_a_helper <const gtry *>::test): New. 372 (is_a_helper <const greturn *>::test): New. 373 (gimple_call_tail_p): Make param const. 374 (gimple_call_return_slot_opt_p): Likewise. 375 (gimple_call_va_arg_pack_p): Likewise. 376 (gimple_call_use_set): Add const overload. 377 (gimple_call_clobber_set): Likewise. 378 (gimple_has_lhs): Make param const. 379 (gimple_bind_body): Likewise. 380 (gimple_catch_handler): Likewise. 381 (gimple_eh_filter_failure): Likewise. 382 (gimple_eh_must_not_throw_fndecl): Likewise. 383 (gimple_eh_else_n_body): Likewise. 384 (gimple_eh_else_e_body): Likewise. 385 (gimple_try_eval): Likewise. 386 (gimple_try_cleanup): Likewise. 387 (gimple_phi_arg): Add const overload. 388 (gimple_phi_arg_def): Make param const. 389 (gimple_phi_arg_edge): Likewise. 390 (gimple_phi_arg_location): Likewise. 391 (gimple_phi_arg_has_location): Likewise. 392 (gimple_debug_bind_get_var): Likewise. 393 (gimple_debug_bind_get_value): Likewise. 394 (gimple_debug_source_bind_get_var): Likewise. 395 (gimple_debug_source_bind_get_value): Likewise. 396 (gimple_omp_body): Likewise. 397 (gimple_omp_for_collapse): Likewise. 398 (gimple_omp_for_pre_body): Likewise. 399 (gimple_transaction_body): Likewise. 400 * tree-eh.c (lookup_stmt_eh_lp_fn): Make param "t" const. 401 (lookup_stmt_eh_lp): Likewise. 402 * tree-eh.h (lookup_stmt_eh_lp_fn): Make param const. 403 (lookup_stmt_eh_lp): Likewise. 404 * tree-ssa-alias.h (pt_solution_empty_p): Make param const. 405 * tree-ssa-structalias.c (pt_solution_empty_p): Likewise. 406 4072019-12-19 Richard Sandiford <richard.sandiford@arm.com> 408 409 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): When 410 handling partial SVE vectors, use the container mode rather than 411 the element mode if the constant isn't a single-element duplicate. 412 * config/aarch64/aarch64-sve.md (@aarch64_sve_reinterpret<mode>): 413 Check targetm.can_change_mode_class instead of BYTES_BIG_ENDIAN. 414 4152019-12-19 Andrew Stubbs <ams@codesourcery.com> 416 417 * config/gcn/gcn-valu.md (addv64si3<exec_clobber>): Rename to ... 418 (add<mode>3<exec_clobber>): ... this, and use VEC_ALL1REG_INT_MODE. 419 (addv64si3_dup<exec_clobber>): Rename to ... 420 (add<mode>3_dup<exec_clobber>): ... this, and use VEC_ALL1REG_INT_MODE. 421 (subv64si3<exec_clobber>): Rename to ... 422 (sub<mode>3<exec_clobber>): ... this, and use VEC_ALL1REG_INT_MODE. 423 4242019-12-19 Richard Sandiford <richard.sandiford@arm.com> 425 426 * config/aarch64/aarch64.c (aarch64_can_change_mode_class): 427 Don't allow changes between partial SVE modes and other kinds 428 of mode. Don't allow changes between two partial SVE modes 429 if they have different container or element sizes. 430 4312019-12-19 Richard Sandiford <richard.sandiford@arm.com> 432 433 * config/aarch64/aarch64.c (aarch64_function_value_1): New function, 434 split out from... 435 (aarch64_function_value): ...here. Handle partial SVE modes by 436 pretending that they have the associated/traditional integer mode, 437 then wrap the result in the real mode. 438 (aarch64_layout_arg): Take an orig_mode argument and pass it to 439 aarch64_function_arg_alignment. Handle partial SVE modes analogously 440 to aarch64_function_value. 441 (aarch64_function_arg): Update call accordingly. 442 (aarch64_function_arg_advance): Likewise. 443 4442019-12-19 Jan Hubicka <hubicka@ucw.cz> 445 Xi Ruoyao <xry111@mengyan1223.wang> 446 447 * cgraph.c (cgraph_node_cannot_be_local_p_1): Prevent targets of 448 symver attributes to be localized. 449 * ipa-visibility.c (cgraph_externally_visible_p, 450 varpool_node::externally_visible_p): Likewise. 451 * symtab.c (symtab_node::verify_base): Check visibility of symbol 452 versions. 453 4542019-12-19 Jan Hubicka <hubicka@ucw.cz> 455 Luo Xiong Hu <luoxhu@linux.ibm.com 456 457 * ipa-fnsummary.h (ipa_size_summary): Remove copy consturctor. 458 (ipa_size_summary_t): Add duplicate method; move to heap. 459 * ipa-fnsumary.c (ipa_fn_summary_alloc): Fix allocation. 460 4612019-12-19 Feng Xue <fxue@os.amperecomputing.com> 462 463 PR ipa/92794 464 * ipa-cp.c (self_recursive_agg_pass_through_p): New function. 465 (intersect_with_plats): Use error_mark_node as place holder 466 when aggregate jump function is simple pass-through for 467 self-recursive call. 468 (intersect_with_agg_replacements): Likewise. 469 (intersect_aggregates_with_edge): Likewise. 470 (find_aggregate_values_for_callers_subset): Likewise. 471 4722019-12-18 David Malcolm <dmalcolm@redhat.com> 473 474 * common.opt (fdiagnostics-show-cwe): Add. 475 * diagnostic-core.h (class diagnostic_metadata): New forward decl. 476 (warning_at): Add overload taking a const diagnostic_metadata &. 477 (emit_diagnostic_valist): Add overload taking a 478 const diagnostic_metadata *. 479 * diagnostic-format-json.cc: Include "diagnostic-metadata.h". 480 (json_from_metadata): New function. 481 (json_end_diagnostic): Call it to add "metadata" child for 482 diagnostics with metadata. 483 (diagnostic_output_format_init): Clear context->show_cwe. 484 * diagnostic-metadata.h: New file. 485 * diagnostic.c: Include "diagnostic-metadata.h". 486 (diagnostic_impl): Add const diagnostic_metadata * param. 487 (diagnostic_n_impl): Likewise. 488 (diagnostic_initialize): Initialize context->show_cwe. 489 (diagnostic_set_info_translated): Initialize diagnostic->metadata. 490 (get_cwe_url): New function. 491 (print_any_cwe): New function. 492 (diagnostic_report_diagnostic): Call print_any_cwe if the 493 diagnostic has non-NULL metadata. 494 (emit_diagnostic): Pass NULL as the metadata in the call to 495 diagnostic_impl. 496 (emit_diagnostic_valist): Likewise. 497 (emit_diagnostic_valist): New overload taking a 498 const diagnostic_metadata *. 499 (inform): Pass NULL as the metadata in the call to 500 diagnostic_impl. 501 (inform_n): Likewise for diagnostic_n_impl. 502 (warning): Likewise. 503 (warning_at): Likewise. Add overload that takes a 504 const diagnostic_metadata &. 505 (warning_n): Pass NULL as the metadata in the call to 506 diagnostic_n_impl. 507 (pedwarn): Likewise for diagnostic_impl. 508 (permerror): Likewise. 509 (error): Likewise. 510 (error_n): Likewise. 511 (error_at): Likewise. 512 (sorry): Likewise. 513 (sorry_at): Likewise. 514 (fatal_error): Likewise. 515 (internal_error): Likewise. 516 (internal_error_no_backtrace): Likewise. 517 * diagnostic.h (diagnostic_info::metadata): New field. 518 (diagnostic_context::show_cwe): New field. 519 * doc/invoke.texi (-fno-diagnostics-show-cwe): New option. 520 * opts.c (common_handle_option): Handle OPT_fdiagnostics_show_cwe. 521 * toplev.c (general_init): Initialize global_dc->show_cwe. 522 5232019-12-19 Julian Brown <julian@codesourcery.com> 524 Maciej W. Rozycki <macro@codesourcery.com> 525 Tobias Burnus <tobias@codesourcery.com> 526 Thomas Schwinge <thomas@codesourcery.com> 527 528 * omp-low.c (lower_omp_target): Support GOMP_MAP_NO_ALLOC. 529 * tree-pretty-print.c (dump_omp_clause): Likewise. 530 5312019-12-18 Eric Botcazou <ebotcazou@adacore.com> 532 533 * ira.c (ira): Use simple LRA algorithm when not optimizing. 534 5352019-12-18 Thomas Schwinge <thomas@codesourcery.com> 536 537 * gimplify.c (gimplify_omp_target_update): Elaborate 'exit data' 538 'finalize' handling. 539 5402019-12-18 Tobias Burnus <tobias@codesourcery.com> 541 542 PR middle-end/86416 543 * Makefile.in (CFLAGS-lto-streamer-in.o): Pass target_noncanonical on. 544 * lto-streamer-in.c (lto_input_mode_table): Improve unsupported-mode 545 diagnostic. 546 5472019-12-18 Wilco Dijkstra <wdijkstr@arm.com> 548 549 * config/aarch64/aarch64-cores.def: 550 ("cortex-a76ae"): Use neoversen1 tuning. 551 ("cortex-a77"): Likewise. 552 ("cortex-a65"): Use cortexa53 scheduler. 553 ("cortex-a65ae"): Likewise. 554 ("neoverse-e1"): Use cortexa73 tuning. 555 5562019-12-18 Martin Jambor <mjambor@suse.cz> 557 558 PR ipa/92971 559 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix 560 definition of values, release memory on exit. 561 5622019-12-17 Jan Hubicka <hubicka@ucw.cz> 563 Martin Jambor <mjambor@suse.cz> 564 565 * ipa-param-manipulation.h (get_original_index): Declare. 566 * ipa-param-manipulation.c (ipa_param_adjustments::get_original_index): 567 New member function. 568 * ipa-prop.c (ipcp_get_parm_bits): New function. 569 * ipa-prop.h (ipcp_get_parm_bits): Declare. 570 * tree-ssa-ccp.c: Include cgraph.h, alloc-pool.h, symbol-summary.h, 571 ipa-utils.h and ipa-prop.h 572 (get_default_value): Use ipcp_get_parm_bits. 573 5742019-12-18 Jakub Jelinek <jakub@redhat.com> 575 576 PR lto/92972 577 * lto-wrapper.c (merge_and_complain): Use just "-fno-pie" instead of 578 big ? "-fno-pie" : "-fno-pie". Formatting fixes. Fix comment typo. 579 5802019-12-17 Martin Sebor <msebor@redhat.com> 581 582 PR c++/61339 583 * doc/invoke.texi (-Wmismatched-tags, -Wredundant-tags): Document 584 new C++ options. 585 5862019-12-17 Michael Meissner <meissner@linux.ibm.com> 587 588 * config/rs6000/rs6000.c (num_insns_constant_gpr): Return 1 if the 589 constant can be loaded with PLI if -mcpu=future. 590 * config/rs6000/rs6000.md (add<mode>3): Add alternative to 591 generate PADDI for 34-bit constants if -mcpu=future. 592 (movdi_internal64): Add alternative to use PLI to load up 34-bit 593 constants if -mcpu=future. 594 (movsi_internal1): Add alternative to use PLI to load up 32-bit 595 constants if -mcpu=future. 596 * config/rs6000/predicates.md (add_operand): Allow eI constants. 597 5982019-12-17 Jakub Jelinek <jakub@redhat.com> 599 600 PR target/92841 601 * config/i386/i386.md (@stack_protect_set_1_<mode>, 602 @stack_protect_test_1_<mode>): Use output_asm_insn. 603 (*stack_protect_set_2_<mode>, *stack_protect_set_3): New define_insns 604 and corresponding define_peephole2s. 605 6062019-12-17 Jan Hubicka <hubicka@ucw.cz> 607 608 * symtab.c (symtab_node::get_partitioning_class): Aliases of external 609 symbols are external. 610 6112019-12-17 Christophe Lyon <christophe.lyon@linaro.org> 612 613 * config/arm/arm-protos.h (thumb1_gen_const_int): Add new prototype. 614 * config/arm/arm.c (arm_option_check_internal): Remove restriction 615 on MOVT for -mpure-code. 616 (thumb1_gen_const_int): New function. 617 (thumb1_legitimate_address_p): Support -mpure-code. 618 (thumb1_rtx_costs): Likewise. 619 (thumb1_size_rtx_costs): Likewise. 620 (arm_thumb1_mi_thunk): Likewise. 621 * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Likewise. 622 * config/arm/thumb1.md (thumb1_movsi_symbol_ref): New. 623 (*thumb1_movhf): Support -mpure-code. 624 * doc/invoke.texi (-mpure-code): Remove restriction on MOVT. 625 6262019-12-17 Andrew Stubbs <ams@codesourcery.com> 627 628 * tree-vect-loop.c (vect_create_epilog_for_reduction): Mention pr92772 629 in the comments. 630 6312019-12-17 Andrew Stubbs <ams@codesourcery.com> 632 633 * config/gcn/gcn-valu.md (extract_last_<mode>): New expander. 634 (fold_extract_last_<mode>): New expander. 635 6362019-12-17 Andrew Stubbs <ams@codesourcery.com> 637 638 * config/gcn/gcn.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. 639 (CTZ_DEFINED_VALUE_AT_ZERO): Define. 640 * config/gcn/gcn.md (s_mnemonic): Add clz and ctz. 641 (expander): Likewise. 642 (countzeros): New code iterator. 643 (<expander>si2): New insn pattern. 644 (<expander>di2): New insn pattern. 645 6462019-12-17 Jakub Jelinek <jakub@redhat.com> 647 648 PR target/92962 649 * common/config/i386/i386-common.c (processor_alias_table): Formatting 650 fixes. 651 * doc/invoke.texi (bdver3, bdver4, znver1): Add missing closing paren. 652 (znver2): Likewise. Add RDPID and WBNOINVD, remove spurious comma 653 before CLWB. 654 6552019-12-17 Hongyu Wang <hongyu.wang@intel.com> 656 657 PR target/92651 658 * config/i386/i386.h (TARGET_EXPAND_ABS): New macro. 659 * config/i386/x86-tune.def (X86_TUNE_EXPAND_ABS): New. 660 * config/i386/i386.md (abs<SWI48x>2): New define_expand. 661 6622019-12-17 H.J. Lu <hjl.tools@gmail.com> 663 664 PR target/92807 665 * config/i386/i386.c (ix86_lea_outperforms): Check !TARGET_BONNELL. 666 (ix86_avoid_lea_for_addr): When not optimizing for Bonnell, use add 667 for a = a + b and a = b + a. 668 6692019-12-16 Martin Sebor <msebor@redhat.com> 670 671 PR middle-end/92952 672 * builtins.c (compute_objsize): Adjust offset by the array low bound. 673 6742019-12-16 David Malcolm <dmalcolm@redhat.com> 675 676 * pretty-print.c (pp_write_text_as_html_like_dot_to_stream): New 677 function. 678 * pretty-print.h (pp_write_text_as_html_like_dot_to_stream): New decl. 679 6802019-12-16 Segher Boessenkool <segher@kernel.crashing.org> 681 682 * config/rs6000/rs6000.md (movsi_to_cr_one): Use CR0_REGNO instead of 683 hardcoding the (old, expired) register number. 684 (*mtcrfsi): Ditto. 685 6862019-12-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> 687 688 * config.gcc: s/msp430*-*-*/msp430-*-*. 689 Handle msp430-*-elfbare. 690 * config/msp430/msp430-devices.c (TARGET_SUBDIR): Define. 691 (_MSPMKSTR): Define. 692 (__MSPMKSTR): Define. 693 (rest_of_devices_path): Use TARGET_SUBDIR value in string. 694 * config/msp430/msp430.c (msp430_option_override): Error if 695 -fuse-cxa-atexit is used when it has been disabled at configure time. 696 * config/msp430/t-msp430: Define TARGET_SUBDIR when building 697 msp430-devices.o. 698 * doc/install.texi: Document msp430-*-elf and msp430-*-elfbare. 699 * doc/invoke.texi: Update documentation about which path devices.csv is 700 searched for. 701 7022019-12-16 Andreas Krebbel <krebbel@linux.ibm.com> 703 704 PR target/92950 705 * config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy, 706 and lhrl with llc. 707 7082019-12-14 Martin Sebor <msebor@redhat.com> 709 710 * doc/extend.texi (attribute access): Correct typos. 711 7122019-12-14 Jakub Jelinek <jakub@redhat.com> 713 714 PR ipa/92357 715 * ipa-fnsummary.c (ipa_fn_summary_write): Use 716 lto_symtab_encoder_iterator with lsei_start_function_in_partition and 717 lsei_next_function_in_partition instead of walking all cgraph nodes 718 in encoder. 719 720 PR tree-optimization/92930 721 * ipa-pure-const.c (special_builtin_state): Don't handle 722 BUILT_IN_APPLY. Formatting fixes. 723 (check_call): Formatting fixes. 724 7252019-12-14 Iain Sandoe <iain@sandoe.co.uk> 726 727 * config/darwin.h (DARWIN_EXTRA_SPECS): Add new 728 bundle spec. (DARWIN_BUNDLE1_SPEC): New. 729 (STARTFILE_SPEC): Use darwin bundle spec. 730 * config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New. 731 (DARWIN_DYLIB1_SPEC): Delete duplicate. 732 7332019-12-13 Martin Sebor <msebor@redhat.com> 734 735 PR middle-end/91582 736 PR middle-end/92868 737 * builtins.c (addr_decl_size): New function. 738 (gimple_call_alloc_size): Add arguments. 739 (compute_objsize): Add an argument. Set *PDECL even for allocated 740 objects. 741 Correct checking for negative wide_int. 742 Correct handling of negative outer offsets into unknown regions 743 or with unknown inner offsets. 744 Extend offsets to at most sizetype precision. 745 Only handle constant subobject sizes. 746 * builtins.h (gimple_call_alloc_size): Add arguments. 747 * tree.c (component_ref_size): Always return sizetype. 748 * tree-ssa-strlen.c (strinfo::alloc): New member. 749 (get_addr_stridx): Add argument. 750 (get_stridx): Use ptrdiff_t. Add argument. 751 (new_strinfo): Set new member. 752 (get_string_length): Handle alloca and VLA. 753 (dump_strlen_info): Dump more state. 754 (maybe_invalidate): Print more info. Decrease indentation. 755 (unshare_strinfo): Set new member. 756 (valid_builtin_call): Handle alloca and VLA. 757 (maybe_warn_overflow): Check and set no-warning bit. Improve 758 handling of offsets. Print allocated objects. 759 (handle_builtin_strlen): Handle strinfo records with null lengths. 760 (handle_builtin_strcpy): Add argument. Call maybe_warn_overflow. 761 (is_strlen_related_p): Handle dynamically allocated objects. 762 (get_range): Add argument. 763 (handle_builtin_malloc): Rename... 764 (handle_alloc): ...to this and handle all allocation functions. 765 (handle_builtin_memset): Call maybe_warn_overflow. 766 (count_nonzero_bytes): Handle more MEM_REF forms. 767 (strlen_check_and_optimize_call): Call handle_alloc_call. Pass 768 arguments to more callees. 769 (handle_integral_assign): Add argument. Create strinfo entries 770 for MEM_REF assignments. 771 (check_and_optimize_stmt): Handle more MEM_REF forms. 772 7732019-12-13 Iain Sandoe <iain@sandoe.co.uk> 774 775 * config/rs6000/darwin.h (DARWIN_DYLIB1_SPEC): New. 776 7772019-12-13 Jan Hubicka <hubicka@ucw.cz> 778 779 * lto-streamer-in.c (input_function): Add node parameter. 780 (lto_read_body_or_constructor): Use it. 781 7822019-12-13 Roman Zhuykov <zhroma@ispras.ru> 783 784 PR rtl-optimization/92591 785 * modulo-sched.c (ps_add_node_check_conflicts): Improve checking 786 for history > 0 case. 787 7882019-12-13 Roman Zhuykov <zhroma@ispras.ru> 789 790 * modulo-sched.c (sms_schedule): Use param_sms_max_ii_factor 791 value instead of macro. Adjust comment. 792 (sms_schedule_by_order): Use parameter value without macro. 793 * params.opt: Add ranges for modulo scheduler parameters, 794 set param_sms_max_ii_factor = 2 by default. 795 7962019-12-13 Roman Zhuykov <zhroma@ispras.ru> 797 798 PR rtl-optimization/90001 799 * ddg.c (create_ddg): Init max_dist array for each node. 800 (free_ddg): Free max_dist array. 801 (create_ddg_edge): Use bool field instead of aux union. 802 (set_recurrence_length): Use prepared max_dist information instead 803 of calling longest_simple_path. 804 (create_scc): Remove graph argument, fill node's aux.count with 805 SCC id, and move set_recurrence_length call to... 806 (create_ddg_all_sccs): ...here, after filling all max_dist arrays 807 using Floyd–Warshall-like algorithm. 808 (update_dist_to_successors): Remove the whole function. 809 (longest_simple_path): Likewise. 810 * ddg.h (struct ddg_node): Add max_dist pointer. 811 (struct ddg_edge): Use bool field instead of unused aux union. 812 8132019-12-13 Andrew Stubbs <ams@codesourcery.com> 814 815 * config/gcn/gcn-valu.md (mulv64si3<exec>): Rename to ... 816 (mul<mode>3<exec>): ... this, and implement sub-dword patterns. 817 (mulv64si3_dup<exec>): Rename to ... 818 (mul<mode>3_dup<exec>): ... this, and implement sub-dword patterns. 819 8202019-12-13 Jan Hubicka <hubicka@ucw.cz> 821 822 * ipa-utils.c (ipa_merge_profiles): Improve dumping; merge common 823 targets. 824 8252019-12-13 Andrew Stubbs <ams@codesourcery.com> 826 827 * config/gcn/gcn-valu.md (sdwa): New mode attribute. 828 (VCVT_FROM_MODE): Rename to ... 829 (VCVT_MODE): ... this. 830 (VCVT_TO_MODE): Delete mode iterator. 831 (VCVT_FMODE): New mode iterator. 832 (VCVT_IMODE): Likewise. 833 (<cvt_name><VCVT_FROM_MODE:mode><VCVT_TO_MODE:mode>2<exec>): Change ... 834 (<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): ... to this. 835 (<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): New. 836 (zero_convert): New code iterator. 837 (convop): New code attribute. 838 (<convop><VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>) 839 : New. 840 (extend<VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>) 841 : New. 842 (vec_truncatev64div64si): Rename to ... 843 (truncv64di<mode>2): ... this and implement sub-dword patterns. 844 (vec_truncatev64div64si_exec): Rename to ... 845 (truncv64di<mode>2_exec): ... this and implement sub-dword patterns. 846 (<convop><mode>v64di2): New insn_and_split. 847 (<convop><mode>v64di2_exec): Likewise. 848 (mask_gather_load<mode>): Update truncate names. 849 (mask_scatter_store<mode>): Likewise. 850 * config/gcn/gcn.c (gcn_expand_scaled_offsets): Update truncate names. 851 8522019-12-13 Dennis Zhang <dennis.zhang@arm.com> 853 854 * config/aarch64/aarch64-arches.def (armv8.6-a): New. 855 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define 856 __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC and 857 __ARM_FEATURE_BF16_SCALAR_ARITHMETIC when enabled. 858 * config/aarch64/aarch64-option-extensions.def (i8mm, bf16): New. 859 (fp): Disabling fp also disables i8mm and bf16. 860 (simd): Disabling simd also disables i8mm. 861 * config/aarch64/aarch64.h (AARCH64_FL_V8_6): New macro. 862 (AARCH64_FL_I8MM, AARCH64_FL_BF16, AARCH64_FL_FOR_ARCH8_6): Likewise. 863 (AARCH64_ISA_V8_6, AARCH64_ISA_I8MM, AARCH64_ISA_BF16): Likewise. 864 (TARGET_I8MM, TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise. 865 * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options 866 and add a new table to list permissible values for ARCH. 867 8682019-12-13 Jakub Jelinek <jakub@redhat.com> 869 870 PR target/92908 871 * simplify-rtx.c (simplify_relational_operation): Punt for vector 872 cmp_mode and scalar mode, if simplify_relational_operation returned 873 const_true_rtx. 874 (simplify_const_relational_operation): Change VOID_mode in function 875 comment to VOIDmode. 876 8772019-12-13 Kewen Lin <linkw@gcc.gnu.org> 878 879 * config/rs6000/rs6000.c (adjust_vectorization_cost): New function. 880 (rs6000_add_stmt_cost): Call adjust_vectorization_cost and update 881 stmt_cost. 882 8832019-12-12 Jakub Jelinek <jakub@redhat.com> 884 885 PR target/92904 886 * config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and 887 not need_temp, decrease alignment of the read because the GPR save 888 area only guarantees 8-byte alignment. 889 8902019-12-12 Georg-Johann Lay <avr@gjlay.de> 891 892 Add support for some more AVR devices from avrxmega3 family. 893 894 * config/avr/avr-mcus.def (attiny1604, attiny1606, attiny1607) 895 (attiny402, attiny404, attiny406) 896 (attiny804, attiny806, attiny807) 897 (attiny202, attiny204): Add AVR_MCU lines to support them. 898 * doc/avr-mmcu.texi: Regenerate. 899 9002019-12-12 Jan Hubicka <hubicka@ucw.cz> 901 902 * ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering 903 of execution of function call parameters. 904 9052019-12-12 Vineet Gupta <vgupta@synopsys.com> 906 907 * config/arc/arc-modes.def (CC_FPUE): New Mode CC_FPUE which 908 helps codegen generate exceptions even for quiet NaN. 909 * config/arc/arc.c (arc_init_reg_tables): Handle New CC_FPUE mode. 910 (get_arc_condition_code): Likewise. 911 (arc_select_cc_mode): LT, LE, GT, GE to use the New CC_FPUE mode. 912 * config/arc/arc.h (REVERSE_CONDITION): Handle New CC_FPUE mode. 913 * config/arc/predicates.md (proper_comparison_operator): Likewise. 914 * config/arc/fpu.md (cmpsf_fpu_trap): New Pattern for CC_FPUE. 915 (cmpdf_fpu_trap): Likewise. 916 9172019-12-12 Claudiu Zissulescu <claziss@synopsys.com> 918 919 * config/arc/arc.md (iterator SDF): Check TARGET_FP_DP_BASE. 920 (cstoredi4): Use TARGET_HARD_FLOAT. 921 9222019-12-11 Jakub Jelinek <jakub@redhat.com> 923 924 * opts.c (default_options_table): Move -ftree-loop-distribute-patterns 925 entry from -O3 or later section to -O2 or later section. 926 * doc/invoke.texi (-ftree-loop-distribute-patterns): Mention the 927 option is enabled by default at -O2+ rather than just at -O3. 928 929 PR target/92723 930 * tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not 931 vect_internal_def, use oprnd1 as is, without trying to cast it. 932 Formatting fix. 933 9342019-12-11 Martin Sebor <msebor@redhat.com> 935 936 * builtins.c (compute_objsize): Add an argument and set it to offset 937 into destination. 938 * builtins.h (compute_objsize): Add an argument. 939 * tree-object-size.c (addr_object_size): Add an argument and set it 940 to offset into destination. 941 (compute_builtin_object_size): Same. 942 * tree-object-size.h (compute_builtin_object_size): Add an argument. 943 * tree-ssa-strlen.c (get_addr_stridx): Add an argument and set it 944 to offset into destination. 945 (maybe_warn_overflow): New function. 946 (handle_store): Call maybe_warn_overflow to issue warnings. 947 9482019-12-11 Jozef Lawrynowicz <jozef.l@mittosystems.com> 949 950 * config/msp430/msp430.h (STARTFILE_SPEC) [!fexceptions]: Use 951 crtbegin_no_eh.o if building for the C language. 952 [fno-exceptions]: Use crtbegin_no_eh.o if building for any language 953 except C. 954 (ENDFILE_SPEC) [!fexceptions]: Use crtend_no_eh.o if building for 955 the C language. 956 [fno-exceptions]: Use crtend_no_eh.o if building for any language 957 except C. 958 * config/msp430/t-msp430: Add -fno-exceptions multilib. 959 * doc/install.texi: Document --disable-no-exceptions multilib configure 960 option. 961 * doc/sourcebuild.texi: Document exceptions_enabled effective target. 962 9632019-12-11 David Malcolm <dmalcolm@redhat.com> 964 965 * pretty-print.c (pretty_printer::pretty_printer): New copy-ctor. 966 (pretty_printer::clone): New vfunc implementation. 967 * pretty-print.h (format_postprocessor::clone): New pure vfunc 968 decl. 969 (pretty_printer::pretty_printer): New copy-ctor decl. 970 (pretty_printer::clone): New vfunc decl. 971 9722019-12-11 David Malcolm <dmalcolm@redhat.com> 973 974 * function-tests.c (selftest::make_fndecl): Make non-static. 975 * selftest.h (selftest::make_fndecl): New decl. 976 9772019-12-11 Lewis Hyatt <lhyatt@gmail.com> 978 979 PR 91853 980 * pretty-print.c (pp_quoted_string): Avoid hex-escaping valid 981 multibyte input. Fix off-by-one-bug printing the last byte before a 982 hex-escaped output. 983 (pp_character): Don't apply line wrapping in the middle of multibyte 984 characters. 985 (test_utf8): New test. 986 (pretty_print_c_tests): Call the new test. 987 9882019-12-11 Richard Earnshaw <rearnsha@arm.com> 989 990 * config/arm/arm-cpus.in (ALL_SIMD_EXTERNAL): New fgroup. 991 (ALL_SIMD): Use it. 992 (ALL_FPU_EXTERNAL): New fgroup. 993 (ALL_FP): Use it. 994 (cortex-a55, cortex-a75, cortex-a76, cortex-a76ae): Remove redundant 995 +simd from architecture specification. 996 (cortex-a77, neoverse-n1, cortex-a75.cortex-a55): Likewise. 997 * config/arm/arm.c (isa_all_fpubits, fpu_bitlist): Rename to ... 998 (isa_all_fpubits_internal, fpu_bitlist_internal): ... these. 999 (isa_all_fpbits): New bitmap. 1000 (arm_option_override): Initialize it. 1001 (arm_configure_build_target): If the target isa does not have any 1002 FP enabled, do not warn about mismatches in FP-related feature bits. 1003 10042019-12-11 Stam Markianos-Wright <stam.markianos-wright@arm.com> 1005 1006 * real.c (struct arm_bfloat_half_format, 1007 encode_arm_bfloat_half, decode_arm_bfloat_half): New. 1008 * real.h (arm_bfloat_half_format): New. 1009 10102019-12-11 Hongtao Liu <hongtao.liu@intel.com> 1011 1012 PR target/92865 1013 * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): Enable 1014 integer mask cmov when available even with TARGET_XOP. 1015 10162019-12-10 Jakub Jelinek <jakub@redhat.com> 1017 1018 PR tree-optimization/92891 1019 * builtins.c (gimple_call_alloc_size): Convert size to sizetype 1020 before returning it. 1021 10222019-12-10 Vladimir Makarov <vmakarov@redhat.com> 1023 1024 PR rtl-optimization/92796 1025 * lra-int.h (lra_risky_transformations_p): Rename to 1026 check_and_force_assignment_correctness_p. 1027 * lra-assigns.c: Ditto. 1028 (lra_assign): Reset check_and_force_assignment_correctness_p. 1029 * lra-constraints.c (lra_risky_transformations_p): Rename to 1030 check_and_force_assignment_correctness_p. 1031 (lra_constraints): Set up check_and_force_assignment_correctness_p 1032 only for the 1st sub-pass. 1033 * lra-eliminations.c (process_insn_for_elimination): Set up 1034 check_and_force_assignment_correctness_p if the insn chnaged its 1035 code. 1036 10372019-12-10 Jakub Jelinek <jakub@redhat.com> 1038 1039 PR rtl-optimization/92882 1040 * regstat.c (regstat_bb_compute_calls_crossed): Don't check 1041 INSN_UID against DF_INSN_SIZE or use DF_INSN_INFO_GET unless 1042 NONDEBUG_INSN_P. 1043 1044 PR ipa/92883 1045 * ipa-cp.c (propagate_vr_across_jump_function): Pass jvr rather 1046 than *jfunc->m_vr to intersect. Formatting fix. 1047 1048 PR middle-end/92825 1049 * cfgexpand.c (add_stack_protection_conflicts): Change return type 1050 from void to bool, return true if at least one stack_vars[i].decl 1051 is addressable. 1052 (record_or_union_type_has_array_p, stack_protect_decl_p): Remove. 1053 (expand_used_vars): Don't call stack_protect_decl_p, instead for 1054 -fstack-protector-strong set gen_stack_protect_signal to true 1055 if add_stack_protection_conflicts returned true. Formatting fixes. 1056 * doc/invoke.texi (-fstack-protector-strong): Clarify that optimized 1057 out variables or variables not living on the stack don't count. 1058 (-fstack-protector): Likewise. Clarify it affects >= 8 byte arrays 1059 rather than > 8 byte. 1060 1061 * ipa-param-manipulation.c 1062 (ipa_param_body_adjustments::register_replacement): Fix comment typo 1063 - accross -> across. 1064 * ipa-sra.c (propagate_used_across_scc_edge, ipa_sra_analysis): 1065 Likewise. 1066 (param_splitting_across_edge): Fix typo in dump message - accross 1067 -> across. 1068 10692019-12-10 Jan Hubicka <hubicka@ucw.cz> 1070 1071 * cgraph.c (cgraph_node::verify_node): Verify tp_first_run. 1072 * cgraph.h (cgrpah_node): Turn tp_first_run back to int. 1073 * cgraphunit.c (tp_first_run_node_cmp): Do not watch for overflows. 1074 (expand_all_functions): First expand ordered section and then 1075 unordered. 1076 * profile.c (compute_value_histograms): Error on out of range 1077 tp_first_runs. 1078 10792019-12-10 Jan Hubicka <hubicka@ucw.cz> 1080 1081 * predict.c (compute_function_frequency): Check for presence of IPA 1082 profile. 1083 10842019-12-10 Jan Hubicka <hubicka@ucw.cz> 1085 1086 * varasm.c (default_function_section): Fix confused tests for 1087 tp_first_run reordering. 1088 10892019-12-10 Richard Sandiford <richard.sandiford@arm.com> 1090 1091 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Don't 1092 allow SVE modes in GPRs. 1093 10942019-12-10 Richard Sandiford <richard.sandiford@arm.com> 1095 1096 * config/aarch64/iterators.md (vccore): New iterator. 1097 * config/aarch64/aarch64-sve.md (vec_series<mode>): Use it instead 1098 of vwcore. 1099 (*vec_series<mode>_plus): Likewise. 1100 11012019-12-10 Frederik Harwath <frederik@codesourcery.com> 1102 1103 * omp-low.c (scan_omp_for): Use clause location in warning. 1104 11052019-12-10 Richard Sandiford <richard.sandiford@arm.com> 1106 1107 * dwarf2out.c (loc_descriptor): Punt for MODE_VECTOR_BOOL. 1108 (add_const_value_attribute): Likewise. 1109 11102019-12-10 Richard Sandiford <richard.sandiford@arm.com> 1111 1112 * tree-vect-loop.c (vect_create_epilog_for_reduction): When 1113 handling direct_slp_reduc, allow the PHI arguments to have 1114 a different type from the vector elements. 1115 11162019-12-10 Richard Sandiford <richard.sandiford@arm.com> 1117 1118 * tree-vect-stmts.c (vectorizable_condition): Record the loop 1119 masks required for extract-last reductions. 1120 11212019-12-10 Richard Sandiford <richard.sandiford@arm.com> 1122 1123 * tree-vect-stmts.c (vect_finish_replace_stmt): Always use the 1124 original scalar statement rather than a pattern statement. 1125 (vectorizable_condition): Likewise, in the handling of extract-last 1126 reductions. 1127 11282019-12-10 Richard Sandiford <richard.sandiford@arm.com> 1129 1130 * tree-vect-loop.c (vectorizable_reduction): Don't use 1131 EXTRACT_LAST_REDUCTION for chained reductions. 1132 11332019-12-10 Richard Sandiford <richard.sandiford@arm.com> 1134 1135 * ipa-utils.h (get_odr_name_for_type): Check for a TYPE_DECL. 1136 * ipa-devirt.c (warn_types_mismatch): Don't call xstrdup for the 1137 second demangled name. 1138 11392019-12-10 Jakub Jelinek <jakub@redhat.com> 1140 1141 * config/i386/i386.c (IX86_LEA_PRIORITY): Fix comment typos. 1142 11432019-12-10 Martin Liska <mliska@suse.cz> 1144 1145 PR tree-optimization/92862 1146 * predict.c (predict_paths_leading_to_edge): Fix typo from e to e2. 1147 * tree-ssa-loop-niter.c (loop_only_exit_p): Return false 1148 instead of true; 1149 11502019-12-09 David Malcolm <dmalcolm@redhat.com> 1151 1152 * gcc-rich-location.c 1153 (maybe_range_label_for_tree_type_mismatch::get_text): Replace 1154 label_text ctor call with label_text::borrow. 1155 * gcc-rich-location.h (text_range_label::get_text): Replace 1156 label_text ctor called with false with label_text::borrow. 1157 11582019-12-09 David Malcolm <dmalcolm@redhat.com> 1159 1160 * diagnostic-show-locus.c (diagnostic_show_locus): Remove initial 1161 newline. 1162 (selftest::test_diagnostic_show_locus_unknown_location): Remove 1163 initial newline from expected outputs. 1164 (selftest::test_one_liner_simple_caret): Likewise. 1165 (selftest::test_one_liner_caret_and_range): Likewise. 1166 (selftest::test_one_liner_multiple_carets_and_ranges): Likewise. 1167 (selftest::test_one_liner_fixit_insert_before): Likewise. 1168 (selftest::test_one_liner_fixit_insert_after): Likewise. 1169 (selftest::test_one_liner_fixit_remove): Likewise. 1170 (selftest::test_one_liner_fixit_replace): Likewise. 1171 (selftest::test_one_liner_fixit_replace_non_equal_range): 1172 Likewise. 1173 (selftest::test_one_liner_fixit_replace_equal_secondary_range): 1174 Likewise. 1175 (selftest::test_one_liner_fixit_validation_adhoc_locations): 1176 Likewise. 1177 (selftest::test_one_liner_many_fixits_1): Likewise. 1178 (selftest::test_one_liner_many_fixits_2): Likewise. 1179 (selftest::test_one_liner_labels): Likewise. 1180 (selftest::test_one_liner_simple_caret_utf8): Likewise. 1181 (selftest::test_one_liner_caret_and_range_utf8): Likewise. 1182 (selftest::test_one_liner_multiple_carets_and_ranges_utf8): 1183 Likewise. 1184 (selftest::test_one_liner_fixit_insert_before_utf8): Likewise. 1185 (selftest::test_one_liner_fixit_insert_after_utf8): Likewise. 1186 (selftest::test_one_liner_fixit_remove_utf8): Likewise. 1187 (selftest::test_one_liner_fixit_replace_utf8): Likewise. 1188 (selftest::test_one_liner_fixit_replace_non_equal_range_utf8): 1189 Likewise. 1190 (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8): 1191 Likewise. 1192 (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8): 1193 Likewise. 1194 (selftest::test_one_liner_many_fixits_1_utf8): Likewise. 1195 (selftest::test_one_liner_many_fixits_2_utf8): Likewise. 1196 (selftest::test_one_liner_labels_utf8): Likewise. 1197 (selftest::test_add_location_if_nearby): Likewise. 1198 (selftest::test_diagnostic_show_locus_fixit_lines): Likewise. 1199 (selftest::test_overlapped_fixit_printing): Likewise. 1200 (selftest::test_overlapped_fixit_printing_utf8): Likewise. 1201 (selftest::test_overlapped_fixit_printing_2): Likewise. 1202 (selftest::test_fixit_insert_containing_newline): Likewise. 1203 (selftest::test_fixit_insert_containing_newline_2): Likewise. 1204 (selftest::test_fixit_replace_containing_newline): Likewise. 1205 (selftest::test_fixit_deletion_affecting_newline): Likewise. 1206 (selftest::test_line_numbers_multiline_range): Likewise. 1207 * diagnostic.c (default_diagnostic_finalizer): Add pp_newline call 1208 before call to diagnostic_show_locus. 1209 (diagnostic_append_note): Likewise. 1210 12112019-12-09 Martin Sebor <msebor@redhat.com> 1212 1213 PR middle-end/92761 1214 PR middle-end/92762 1215 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): Tighten 1216 up tests. 1217 * hash-table.h (hash_table::expand): Use placement new to copy 1218 construct objects in uninitialized storage. 1219 (hash_table::empty_slow): Avoid invoking copy assignment on 1220 uninitialized objects. 1221 12222019-12-09 Lewis Hyatt <lhyatt@gmail.com> 1223 1224 PR preprocessor/49973 1225 * input.c (location_compute_display_column): New function to help with 1226 multibyte awareness in diagnostics. 1227 (test_cpp_utf8): New self-test. 1228 (input_c_tests): Call the new test. 1229 * input.h (location_compute_display_column): Declare. 1230 * diagnostic-show-locus.c: Pervasive changes to add multibyte awareness 1231 to all classes and functions. 1232 (enum column_unit): New enum. 1233 (class exploc_with_display_col): New class. 1234 (class layout_point): Convert m_column member to array m_columns[2]. 1235 (layout_range::contains_point): Add col_unit argument. 1236 (test_layout_range_for_single_point): Pass new argument. 1237 (test_layout_range_for_single_line): Likewise. 1238 (test_layout_range_for_multiple_lines): Likewise. 1239 (line_bounds::convert_to_display_cols): New function. 1240 (layout::get_state_at_point): Add col_unit argument. 1241 (make_range): Use empty filename rather than dummy filename. 1242 (get_line_width_without_trailing_whitespace): Rename to... 1243 (get_line_bytes_without_trailing_whitespace): ...this. 1244 (test_get_line_width_without_trailing_whitespace): Rename to... 1245 (test_get_line_bytes_without_trailing_whitespace): ...this. 1246 (class layout): m_exploc changed to exploc_with_display_col from 1247 plain expanded_location. 1248 (layout::get_linenum_width): New accessor member function. 1249 (layout::get_x_offset_display): Likewise. 1250 (layout::calculate_linenum_width): New subroutine for the constuctor. 1251 (layout::calculate_x_offset_display): Likewise. 1252 (layout::layout): Use the new subroutines. Add multibyte awareness. 1253 (layout::print_source_line): Add multibyte awareness. 1254 (layout::print_line): Likewise. 1255 (layout::print_annotation_line): Likewise. 1256 (line_label::line_label): Likewise. 1257 (layout::print_any_labels): Likewise. 1258 (layout::annotation_line_showed_range_p): Likewise. 1259 (get_printed_columns): Likewise. 1260 (class line_label): Rename m_length to m_display_width. 1261 (get_affected_columns): Rename to... 1262 (get_affected_range): ...this; add col_unit argument and multibyte 1263 awareness. 1264 (class correction): Add m_affected_bytes and m_display_cols 1265 members. Rename m_len to m_byte_length for clarity. Add multibyte 1266 awareness throughout. 1267 (correction::insertion_p): Add multibyte awareness. 1268 (correction::compute_display_cols): New function. 1269 (correction::ensure_terminated): Use new member name m_byte_length. 1270 (line_corrections::add_hint): Add multibyte awareness. 1271 (layout::print_trailing_fixits): Likewise. 1272 (layout::get_x_bound_for_row): Likewise. 1273 (test_one_liner_simple_caret_utf8): New self-test analogous to the one 1274 with _utf8 suffix removed, testing multibyte awareness. 1275 (test_one_liner_caret_and_range_utf8): Likewise. 1276 (test_one_liner_multiple_carets_and_ranges_utf8): Likewise. 1277 (test_one_liner_fixit_insert_before_utf8): Likewise. 1278 (test_one_liner_fixit_insert_after_utf8): Likewise. 1279 (test_one_liner_fixit_remove_utf8): Likewise. 1280 (test_one_liner_fixit_replace_utf8): Likewise. 1281 (test_one_liner_fixit_replace_non_equal_range_utf8): Likewise. 1282 (test_one_liner_fixit_replace_equal_secondary_range_utf8): Likewise. 1283 (test_one_liner_fixit_validation_adhoc_locations_utf8): Likewise. 1284 (test_one_liner_many_fixits_1_utf8): Likewise. 1285 (test_one_liner_many_fixits_2_utf8): Likewise. 1286 (test_one_liner_labels_utf8): Likewise. 1287 (test_diagnostic_show_locus_one_liner_utf8): Likewise. 1288 (test_overlapped_fixit_printing_utf8): Likewise. 1289 (test_overlapped_fixit_printing): Adapt for changes to 1290 get_affected_columns, get_printed_columns and class corrections. 1291 (test_overlapped_fixit_printing_2): Likewise. 1292 (test_linenum_sep): New constant. 1293 (test_left_margin): Likewise. 1294 (test_offset_impl): Helper function for new test. 1295 (test_layout_x_offset_display_utf8): New test. 1296 (diagnostic_show_locus_c_tests): Call new tests. 1297 12982019-12-09 Eric Botcazou <ebotcazou@adacore.com> 1299 1300 * tree.c (build_array_type_1): Add SET_CANONICAL parameter and compute 1301 TYPE_CANONICAL from the element type only if it is true. Remove a few 1302 obsolete lines and adjust recursive call. 1303 (fld_process_array_type): Adjust call to build_array_type_1. 1304 (build_array_type): Likewise. 1305 (build_nonshared_array_type): Likewise. 1306 13072019-12-09 Andrew Stubbs <ams@codesourcery.com> 1308 1309 * config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Change 1310 %s to %o in asm output. 1311 (gather<mode>_insn_2offsets<exec>): Likewise. 1312 13132019-12-09 Richard Earnshaw <rearnsha@arm.com> 1314 1315 * config/arm/t-multilib: Use arm->thumb multilib reuse rules 1316 on a-profile. 1317 13182019-12-09 Segher Boessenkool <segher@kernel.crashing.org> 1319 1320 * config/rs6000/rs6000.md (unnamed mfcr define_insn): Name this 1321 set<mode>_cc. 1322 (unnamed define_insn_and_split): Delete. 1323 (unnamed define_insn): Delete. 1324 (unnamed define_insn): Delete. 1325 (unnamed define_split): Delete. 1326 13272019-12-09 Matthew Malcomson <matthew.malcomson@arm.com> 1328 1329 * regstat.c (regstat_bb_compute_calls_crossed): Add a cast to 1330 avoid a warning. 1331 13322019-12-09 Matthew Malcomson <matthew.malcomson@arm.com> 1333 1334 PR middle-end/92410 1335 * bb-reorder.c (pass_reorder_blocks::execute): Recompute 1336 dataflow luids once basic blocks have been reordered. 1337 * haifa-sched.c (reemit_notes): Create df insn record for each 1338 new note. 1339 * regstat.c (regstat_bb_compute_calls_crossed): Assert every 1340 insn has an insn record before trying to use it. 1341 13422019-12-09 Hongtao Liu <hongtao.liu@intel.com> 1343 1344 * common/config/i386/i386-common.c 1345 (OPTION_MASK_ISA_AVX5124FMAPS_SET): Rename to 1346 OPTION_MASK_ISA2_AVX5124FMAPS_SET. 1347 (OPTION_MASK_ISA_AVX5124VNNIW_SET, OPTION_MASK_ISA_AVX512BF16_SET, 1348 OPTION_MASK_ISA_AVX512VP2INTERSECT_SET, 1349 OPTION_MASK_ISA_PCONFIG_SET, OPTION_MASK_ISA_WBNOINVD_SET, 1350 OPTION_MASK_ISA_SGX_SET, OPTION_MASK_ISA_CX16_SET, 1351 OPTION_MASK_ISA_MOVBE_SET, OPTION_MASK_ISA_PTWRITE_SET, 1352 OPTION_MASK_ISA_MWAITX_SET, OPTION_MASK_ISA_CLZERO_SET, 1353 OPTION_MASK_ISA_RDPID_SET, OPTION_MASK_ISA_VAES_SET, 1354 OPTION_MASK_ISA_MOVDIR64B_SET, OPTION_MASK_ISA_WAITPKG_SET, 1355 OPTION_MASK_ISA_CLDEMOTE_SET, OPTION_MASK_ISA_ENQCMD_SET, 1356 OPTION_MASK_ISA_AVX5124FMAPS_UNSET, 1357 OPTION_MASK_ISA_AVX5124VNNIW_UNSET, 1358 OPTION_MASK_ISA_AVX512BF16_UNSET, 1359 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET, 1360 OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_UNSET, 1361 OPTION_MASK_ISA_SGX_UNSET, OPTION_MASK_ISA_CX16_UNSET, 1362 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_PTWRITE_UNSET, 1363 OPTION_MASK_ISA_MWAITX_UNSET, OPTION_MASK_ISA_CLZERO_UNSET, 1364 OPTION_MASK_ISA_RDPID_UNSET, OPTION_MASK_ISA_VAES_UNSET, 1365 OPTION_MASK_ISA_MOVDIR64B_UNSET, OPTION_MASK_ISA_WAITPKG_UNSET, 1366 OPTION_MASK_ISA_CLDEMOTE_UNSET, OPTION_MASK_ISA_ENQCMD_UNSET, 1367 OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW, 1368 OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT, 1369 OPTION_MASK_ISA_PCONFIG, OPTION_MASK_ISA_WBNOINVD, 1370 OPTION_MASK_ISA_SGX, OPTION_MASK_ISA_CX16, OPTION_MASK_ISA_MOVBE, 1371 OPTION_MASK_ISA_PTWRITE, OPTION_MASK_ISA_MWAITX, 1372 OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_RDPID, 1373 OPTION_MASK_ISA_VAES, OPTION_MASK_ISA_MOVDIR64B, 1374 OPTION_MASK_ISA_WAITPKG, OPTION_MASK_ISA_CLDEMOTE, 1375 OPTION_MASK_ISA_ENQCMD): Ditto. 1376 * config/i386/i386-builtin.def 1377 (OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW, 1378 OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT, 1379 OPTION_MASK_ISA_WBNOINVD, OPTION_MASK_ISA_PTWRITE, 1380 OPTION_MASK_ISA_RDPID, OPTION_MASK_ISA_VAES, 1381 OPTION_MASK_ISA_MOVDIR64B, OPTION_MASK_ISA_ENQCMD): Ditto. 1382 * config/i386/i386-builtins.c (OPTION_MASK_ISA_MWAITX, 1383 OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_WAITPKG, 1384 OPTION_MASK_ISA_CLDEMOTE, OPTION_MASK_ISA_WBNOINVD): Ditto. 1385 * config/i386/i386-c.c 1386 (OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW, 1387 OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT, 1388 OPTION_MASK_ISA_PCONFIG, OPTION_MASK_ISA_WBNOINVD, 1389 OPTION_MASK_ISA_SGX, OPTION_MASK_ISA_CX16, OPTION_MASK_ISA_MOVBE, 1390 OPTION_MASK_ISA_PTWRITE, OPTION_MASK_ISA_MWAITX, 1391 OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_RDPID, 1392 OPTION_MASK_ISA_VAES, OPTION_MASK_ISA_MOVDIR64B, 1393 OPTION_MASK_ISA_WAITPKG, OPTION_MASK_ISA_CLDEMOTE, 1394 OPTION_MASK_ISA_ENQCMD): Ditto. 1395 * config/i386/i386-option.c: Ditto 1396 * config/i386/i386.opt: Ditto.. 1397 * config/i386/i386.h: (TARGET_ISA_AVX5124FMAPS, 1398 TARGET_ISA_AVX5124VNNIW, TARGET_ISA_AVX512BF16, 1399 TARGET_ISA_AVX512VP2INTERSECT, TARGET_ISA_PCONFIG, 1400 TARGET_ISA_WBNOINVD, TARGET_ISA_SGX, TARGET_ISA_CX16, 1401 TARGET_ISA_MOVBE, TARGET_ISA_PTWRITE, TARGET_ISA_MWAITX, 1402 TARGET_ISA_CLZERO, TARGET_ISA_RDPID, TARGET_ISA_VAES, 1403 TARGET_ISA_MOVDIR64B, TARGET_ISA_WAITPKG, TARGET_ISA_CLDEMOTE) 1404 TARGET_ISA_ENQCMD): Ditto. 1405 14062019-12-09 Sudakshina Das <sudi.das@arm.com> 1407 Richard Sandiford <richard.sandiford@arm.com> 1408 1409 * tree-vect-stmt.c (vectorizable_shift): Condition ndts for 1410 vect_model_simple_cost call on scalar_shift_arg. 1411 14122019-12-09 Jakub Jelinek <jakub@redhat.com> 1413 1414 PR tree-optimization/92834 1415 * match.pd (A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A, 1416 A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): New simplifications. 1417 14182019-12-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 1419 1420 PR tree-optimization/89007 1421 * tree-vect-patterns.c (vect_recog_average_pattern): If there is no 1422 target support available, generate code to distribute rshift over plus 1423 and add a carry. 1424 14252019-12-09 Martin Liska <mliska@suse.cz> 1426 1427 PR ipa/92737 1428 * cgraph.c (symbol_table_test::symbol_table_test): Fix 1429 coding style. 1430 * cgraph.h (symtab_node::symtab_node): New constructor. 1431 (cgraph_node::cgraph_node): Likewise. 1432 (varpool_node::varpool_node): Likewise. 1433 (symbol_table::allocate_cgraph_symbol): Use newly 1434 created constructor. 1435 (symbol_table::allocate_cgraph_symbol): Remove. 1436 * cgraphunit.c (symtab_terminator): Likewise. 1437 * varpool.c (varpool_node::create_empty): Use newly 1438 created constructor. 1439 14402019-12-09 Hongtao Liu <hongtao.liu@intel.com> 1441 1442 PR target/92686 1443 * config/i386/sse.md 1444 (*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>, 1445 *<avx512>_cmp<mode>3<mask_scalar_merge_name>, 1446 *<avx512>_ucmp<mode>3<mask_scalar_merge_name>, 1447 *<avx512>_ucmp<mode>3<mask_scalar_merge_name>): New. 1448 * config/i386/i386.c (ix86_print_operand): New operand substitution. 1449 * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): 1450 New function. 1451 (ix86_expand_sse_cmp): Relax condition for integer mask from 1452 512-bit vector to all 128/256/512-bit vector. Delete code gen 1453 for avx512f compare patterns since we have generic pattern now. 1454 (ix86_expand_sse_movcc): Adjust condition and codegen for 1455 maskcmp. 1456 (ix86_expand_int_sse_cmp): Don't canonicalize the comparison 1457 when corresponding vector compare is available. 1458 14592019-12-08 Sandra Loosemore <sandra@codesourcery.com> 1460 1461 Revert: 1462 2019-12-05 Sandra Loosemore <sandra@codesourcery.com> 1463 1464 * config/nios2/linux.h (LINK_EH_SPEC): Define. 1465 14662019-12-07 Jan Hubicka <hubicka@ucw.cz> 1467 1468 * cgraph.c (cgraph_node::dump): Make tp_first_run 64bit. 1469 * cgraph.h (cgrpah_node): Likewise. 1470 (tp_first_run_node_cmp): Deeclare. 1471 * cgraphunit.c (node_cmp): Rename to ... 1472 (tp_first_run_node_cmp): ... this; export; watch for 64bit overflows; 1473 clear tp_first_run for no_reorder and !flag_profile_reorder_functions. 1474 (expand_all_functions): Collect tp_first_run and normal functions to 1475 two vectors so the other functions remain sorted. Do not check for 1476 flag_profile_reorder_functions it is function local flag. 1477 * profile.c (compute_value_histograms): Update tp_first_run printing. 1478 14792019-12-07 Jan Hubicka <hubicka@ucw.cz> 1480 1481 * opts.c (common_handle_option): Do not clear ipa_reference for 1482 -fprofile-use. 1483 14842019-12-07 Jan Hubicka <hubicka@ucw.cz> 1485 1486 * ipa-split.c (split_function): Preserve 0 tp_first_run. 1487 14882019-12-07 Jan Hubicka <hubicka@ucw.cz> 1489 1490 * ipa-inline-analysis.c (do_estimate_edge_time): Silence overactive 1491 sanity check. 1492 14932019-12-07 Jan Hubicka <hubicka@ucw.cz> 1494 1495 PR tree-optimization/92860 1496 * common.opt (fprofile-reorder-functions, ftoplevel-reorder): Add 1497 Optimization flag. 1498 14992019-12-07 Marek Polacek <polacek@redhat.com> 1500 1501 PR c++/91678 - wrong error with decltype and location wrapper. 1502 * fold-const.c (maybe_lvalue_p): Handle VIEW_CONVERT_EXPR. 1503 15042019-12-07 Eric Botcazou <ebotcazou@adacore.com> 1505 1506 PR middle-end/90840 1507 * expr.c (expand_assignment): In the case of a CONCAT on the LHS, make 1508 sure to pass a valid inner mode in calls to simplify_gen_subreg. 1509 15102019-12-07 Tobias Burnus <tobias@codesourcery.com> 1511 David Malcolm <dmalcolm@redhat.com> 1512 Jakub Jelinek <jakub@redhat.com> 1513 1514 PR c/87488 1515 * pretty-print.c (pp_begin_url, pp_end_url, test_urls): Use BEL 1516 instead of ST sequence to terminate OSC 8 strings. 1517 15182019-12-06 Andreas Krebbel <krebbel@linux.ibm.com> 1519 Vladimir Makarov <vmakarov@redhat.com> 1520 1521 PR rtl-optimization/92176 1522 * lra.c (simplify_subreg_regno): Don't permit unconditional 1523 changing mode for LRA too. 1524 15252019-12-06 Richard Sandiford <richard.sandiford@arm.com> 1526 1527 * target.h (TCTX_ALLOCATION, TCTX_DEALLOCATION, TCTX_EXCEPTIONS) 1528 (TCTX_CAPTURE_BY_COPY): New type_context_kinds. 1529 * config/aarch64/aarch64-sve-builtins.cc (verify_type_context): 1530 Handle them. 1531 15322019-12-06 Andrew Stubbs <ams@codesourcery.com> 1533 1534 * config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Use %o 1535 in the asm output. 1536 15372019-12-06 Andrew Stubbs <ams@codesourcery.com> 1538 1539 * config/gcn/gcn-valu.md (VEC_1REG_MODE): Remove V64QI and V64HI. 1540 (VEC_1REG_ALT): Likewise. 1541 (VEC_ALL1REG_MODE): New mode iterator. 1542 (VEC_1REG_INT_MODE): Remove V64QI and V64HI. 1543 (VEC_1REG_INT_ALT): Likewise. 1544 (VEC_ALL1REG_INT_MODE): New mode interator. 1545 (VEC_ALL1REG_INT_ALT): Likewise. 1546 (VEC_REG_MODE): Remove V64QI and V64HI. 1547 (VEC_ALLREG_MODE): New mode interator. 1548 (vec_merge): Change to VEC_ALLREG_MODE. 1549 (vec_merge_with_clobber): Likewise. 1550 (vec_merge_with_vcc): Likewise. 1551 (mov<mode>): Likewise. 1552 (mov<mode>_unspec): Likewise. 1553 (*mov<mode>): Change to VEC_ALL1REG_MODE. 1554 (mov<mode>_exec): Likewise. 1555 (*mov<mode>_exec_match): Likewise. 1556 (mov<mode>_sgprbase): Likewise. 1557 (reload_in<mode>): Change to VEC_ALLREG_MODE. 1558 (reload_out<mode>): Likewise. 1559 (scalar address splits): Likewise. 1560 (*vec_set<mode>): Change to VEC_ALL1REG_MODE. 1561 (vec_set<mode>): Change to VEC_ALLREG_MODE. 1562 (*vec_set<mode>_1): Change to VEC_ALL1REG_MODE. 1563 (vec_duplicate<mode><exec>): Likewise. 1564 (vec_extract<mode><scalar_mode>): Likewise. 1565 (vec_init<mode><scalar_mode>): Change to VEC_ALLREG_MODE. 1566 (gather_load<mode>): Likewise. 1567 (gather<mode>_exec): Likewise. 1568 (gather<mode>_expr<exec>): Likewise. 1569 (gather<mode>_insn_1offset<exec>): Likewise. 1570 (gather<mode>_insn_1offset_ds<exec>): Likewise. 1571 (gather<mode>_insn_2offsets<exec>): Likewise. 1572 (ds_bpermute<mode>): Change to VEC_ALL1REG_MODE. 1573 (VEC_INT_MODE): Remove V64QI and V64HI. 1574 (vcond_mask_<mode>di): Change to VEC_ALLREG_MODE. 1575 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Change to 1576 VEC_ALL1REG_MODE. 1577 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise. 1578 (vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Likewise. 1579 (vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise. 1580 (maskload<mode>di): Change to VEC_ALL1REG_MODE. 1581 (maskstore<mode>di): Likewise. 1582 (mask_gather_load<mode>): Likewise. 1583 (mov_from_lane63_<mode>): Likewise. 1584 * config/gcn/gcn.c (gcn_vector_mode_supported_p): Renable V64QImode 1585 and V64HImode vectorization. 1586 (gcn_related_vector_mode): New function. 1587 (TARGET_VECTORIZE_RELATED_MODE): New define. 1588 15892019-12-06 Tobias Burnus <tobias@codesourcery.com> 1590 Kwok Cheung Yeung <kcy@codesourcery.com> 1591 1592 * omp-low.c (lower_omp_target): For optional arguments, deref once 1593 more to obtain the type. 1594 15952019-12-06 Richard Biener <rguenther@suse.de> 1596 1597 * match.pd (nop_convert): Remove empty match. Use nop_convert? 1598 everywhere. 1599 16002019-12-06 Richard Sandiford <richard.sandiford@arm.com> 1601 1602 * tree-data-ref.c (prune_runtime_alias_test_list): Exit early 1603 for empty vectors. Avoid using ordered_remove and instead 1604 shuffle the vector as we go. 1605 16062019-12-06 Richard Biener <rguenther@suse.de> 1607 1608 * genmatch.c (enum tree_code): Remove CONVERT{0,1,2} and 1609 VIEW_CONVERT{0,1,2}. 1610 (expr::opt_grp): Add and initialize. 1611 (lower_opt_convert): Rename to ... 1612 (lower_opt): ... and work on opt_grp, simply switching operations 1613 from being optional to being present or not. 1614 (has_opt_convert): Rename to ... 1615 (has_opt): ... and adjust. 1616 (parser::parse_operation): Return the optional opt_grp, 1617 remove special-casing of conditional operations and more generally 1618 parse [digit]'?'. 1619 (parser::parse_expr): Stick on the parsed opt_grp and perform 1620 rough verification. 1621 (parser::parse_for): Remove now unnecessary code. 1622 (main): Likewise. 1623 * doc/match-and-simplify.texi: Mention ? now works on all 1624 unary operations and also match predicates. 1625 16262019-12-06 Jan Hubicka <hubicka@ucw.cz> 1627 1628 * cgraphclones.c (cgraph_node::create_clone): Only localize toplevel 1629 functions, not inline clones. 1630 16312019-12-06 Jan Hubicka <hubicka@ucw.cz> 1632 1633 * cfgexpand.c (expand_debug_expr): Do not ICE on SAD_EXPR. 1634 16352019-12-06 Richard Biener <rguenther@suse.de> 1636 1637 * genmatch.c (c_expr::gen_transform): Emit newlines from line 1638 number changes rather than after every semicolon. 1639 16402019-12-06 Richard Biener <rguenther@suse.de> 1641 1642 PR tree-optimization/92819 1643 * match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Handle inserts 1644 into the last lane. For two-element vectors try inserting 1645 into the last lane when inserting into the first fails. 1646 16472019-12-06 Jakub Jelinek <jakub@redhat.com> 1648 1649 * common.opt (fprofile-partial-training): Terminate description with 1650 full stop. 1651 16522019-12-05 Martin Sebor <msebor@redhat.com> 1653 1654 PR middle-end/92622 1655 * tree-vrp.c (vrp_prop::check_array_ref): Avoid using a variable 1656 left uninitialized by get_addr_base_and_unit_offset on failure. 1657 16582019-12-05 Jan Hubicka <hubicka@ucw.cz> 1659 1660 * ipa-prop.c (ipa_set_jf_unknown): Do not clear bits and m_vr. 1661 (detect_type_change_from_memory_writes): Remoe parameter JFUNC. 1662 (detect_type_change): Likewise. 1663 (detect_type_change_ssa): Likewise. 1664 (ipa_analyze_virtual_call_uses): Update. 1665 16662019-12-05 Sandra Loosemore <sandra@codesourcery.com> 1667 1668 * config/nios2/linux.h (LINK_EH_SPEC): Define. 1669 16702019-12-05 Jan Hubicka <hubicka@ucw.cz> 1671 1672 * ipa-inline-transform.c (inline_call): Fix maintenatnce of comdat_local 1673 16742019-12-05 Jan Hubicka <hubicka@ucw.cz> 1675 1676 * cgraphclones.c (localize_profile): New function. 1677 (cgraph_node::create_clone): Use it for partial profiles. 1678 * common.opt (fprofile-partial-training): New flag. 1679 * doc/invoke.texi (-fprofile-partial-training): Document. 1680 * ipa-cp.c (update_profiling_info): For partial profiles do not 1681 set function profile to zero. 1682 * profile.c (compute_branch_probabilities): With partial profile 1683 watch if edge count is zero and turn all probabilities to guessed. 1684 (compute_branch_probabilities): For partial profiles do not apply 1685 profile when entry count is zero. 1686 * tree-profile.c (tree_profiling): Only do value_profile_transformations 1687 when profile is read. 1688 16892019-12-05 Sudakshina Das <sudi.das@arm.com> 1690 1691 * tree-vect-loop.c (vect_model_reduction_cost): Remove reduction_type 1692 check from if condition. 1693 16942019-12-05 Tobias Burnus <tobias@codesourcery.com> 1695 1696 * omp-low.c (lower_omp_target): For use_device_ptr/use_derice_addr 1697 and Fortran's optional arguments, unconditionally add the is-present 1698 condition before the libgomp call. 1699 17002019-12-05 Richard Sandiford <richard.sandiford@arm.com> 1701 1702 PR middle-end/92768 1703 * tree-core.h (OEP_BITWISE): New flag. 1704 * fold-const.c (operand_compare::operand_equal_p): Handle it. 1705 * tree-vector-builder.h (tree_vector_builder::equal_p): Pass it. 1706 17072019-12-05 Richard Biener <rguenther@suse.de> 1708 1709 PR middle-end/92818 1710 * tree-ssa-forwprop.c (simplify_vector_constructor): Improve 1711 heuristics on what don't care element to choose. 1712 * match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Fix typo. 1713 17142019-12-05 Martin Liska <mliska@suse.cz> 1715 1716 PR gcov-profile/92817 1717 * coverage.c (build_gcov_exit_decl): Remove superfluous 1718 void_type_node. 1719 17202019-12-05 Jozef Lawrynowicz <jozef.l@mittosystems.com> 1721 1722 * config/msp430/msp430.md (cbranch<mode>4): Use 1723 msp430_general_dst_nonv_operand instead of nonimmediate_operand for 1724 dest operand of CMP instruction. 1725 (cbranchpsi4_real): Likewise. 1726 (cbranchqi4_real): Likewise. 1727 (cbranchhi4_real): Likewise. 1728 (cbranchpsi4_reversed): Likewise. 1729 (cbranchqi4_reversed): Likewise. 1730 (cbranchhi4_reversed): Likewise. 1731 17322019-12-05 Richard Biener <rguenther@suse.de> 1733 1734 PR tree-optimization/92803 1735 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix 1736 invariant vector construction. 1737 17382019-12-05 Martin Liska <mliska@suse.cz> 1739 1740 PR gcov-profile/91971 1741 * coverage.c (coverage_init): Mangle full path 1742 only when -fprofile-dir is used. 1743 17442019-12-05 Jakub Jelinek <jakub@redhat.com> 1745 1746 PR target/92791 1747 * config/i386/i386.md (movstrict<mode>): Move test for 1748 TARGET_PARTIAL_REG_STALL and not optimizing for size from 1749 expander's condition to the body - FAIL; in that case. 1750 17512019-12-03 Martin Sebor <msebor@redhat.com> 1752 1753 PR middle-end/91582 1754 * builtins.c (gimple_call_alloc_size): New function. 1755 (compute_objsize): Add argument. Call gimple_call_alloc_size. 1756 Handle variable offsets and indices. 1757 * builtins.h (gimple_call_alloc_size): Declare. 1758 (compute_objsize): Add argument. 1759 * gimple-ssa-warn-restrict.c: Remove assertions. 1760 * tree-ssa-strlen.c (handle_store): Handle calls to allocated objects. 1761 17622019-12-04 Julian Brown <julian@codesourcery.com> 1763 1764 * config/gcn/gcn.h (FIXED_REGISTERS): Make s6/s7 fixed registers. 1765 17662019-12-04 Peter Bergner <bergner@linux.ibm.com> 1767 1768 PR bootstrap/92661 1769 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Move to 1770 rs6000.h. 1771 (altivec_overloaded_builtins): Move to rs6000-call.c. 1772 * config/rs6000/rs6000.h (struct altivec_builtin_types): Moved from 1773 rs6000-c.c. 1774 * config/rs6000/rs6000-call.c (rs6000_builtin_info): Make static. 1775 (altivec_overloaded_builtins): Moved from rs6000-c.c. 1776 (rs6000_common_init_builtins): Do no define builtins that overload 1777 builtins that have been disabled. 1778 17792019-12-04 Wilco Dijkstra <wdijkstr@arm.com> 1780 1781 * config/arm/arm.c (arm_option_override_internal): 1782 Use max_cond_insns from CPU tuning unless -mrestrict-it is used. 1783 17842019-12-04 Wilco Dijkstra <wdijkstr@arm.com> 1785 1786 * config/aarch64/aarch64.c 1787 (thunderxt88_tunings): Use AARCH64_FUSE_ALU_BRANCH. 1788 (thunderx_tunings): Likewise. 1789 (tsv110_tunings): Use AARCH64_FUSE_ALU_BRANCH and AARCH64_FUSE_ALU_CBZ. 1790 (thunderx2t99_tunings): Likewise. 1791 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_CMP_BRANCH. 1792 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_CBZ fusion. 1793 17942019-12-04 Richard Biener <rguenther@suse.de> 1795 1796 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard 1797 empty CTOR and memset partial-def registering. Take advantage 1798 of fancy offset analysis in memset handling. 1799 18002019-12-04 Richard Sandiford <richard.sandiford@arm.com> 1801 1802 * fold-const.c (native_encode_vector_part): Handle 1803 VECTOR_BOOLEAN_TYPE_Ps that have subbyte precision. 1804 (native_decode_vector_tree): Delete, moving the bulk of the code to... 1805 (native_interpret_vector_part): ...this new function. Use a pointer 1806 and length instead of a vec<> and start index. 1807 (native_interpret_vector): Use native_interpret_vector_part. 1808 (fold_view_convert_vector_encoding): Likewise. 1809 18102019-12-04 Richard Biener <rguenther@suse.de> 1811 1812 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Handle 1813 non-constant defs in the most trivial way. 1814 (vn_reference_lookup_3): Also push down SSA partial defs. 1815 18162019-12-04 Martin Liska <mliska@suse.cz> 1817 1818 * tree-switch-conversion.c (switch_decision_tree::try_switch_expansion): 1819 Initialize count of newly created BB. 1820 18212019-12-04 Jakub Jelinek <jakub@redhat.com> 1822 1823 PR tree-optimization/92734 1824 * match.pd ((A +- B) - A -> +- B, (A +- B) -+ B -> A, 1825 A - (A +- B) -> -+ B, A +- (B -+ A) -> +- B): Handle nop_convert. 1826 18272019-12-04 Kewen Lin <linkw@gcc.gnu.org> 1828 1829 PR target/92760 1830 * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Use 1831 VECTOR_MEM_NONE_P instead of VECTOR_UNIT_NONE_P. 1832 18332019-12-03 Jan Hubicka <hubicka@ucw.cz> 1834 1835 * ipa-fnsummary.c: Include tree-into-ssa.h. 1836 (compute_fn_summary): Call update_ssa. 1837 18382019-12-03 Jan Hubicka <hubicka@ucw.cz> 1839 1840 * cgraph.c (cgraph_node::verify_node): Check that calls_comdat_local 1841 is set only for symbol in comdat group. 1842 * symtab.c (symtab_node::dissolve_same_comdat_group_1): Clear it. 1843 18442019-12-03 Jan Hubicka <hubicka@ucw.cz> 1845 1846 * cgraph.c: Include tree-into-ssa.h 1847 (cgraph_node::get_body): Call update_ssa. 1848 * cgraphunit.c (cgraph_node::expand): Likewise. 1849 * lto-streamer-in.c (input_function): Do not call update_ssa. 1850 18512019-12-03 Richard Sandiford <richard.sandiford@arm.com> 1852 1853 * gimplify.c (gimplify_compound_lval): Don't gimplify and install 1854 an array element size if array_element_size is already an invariant. 1855 Similarly don't gimplify and install a field offset if 1856 component_ref_field_offset is already an invariant. 1857 18582019-12-03 Richard Sandiford <richard.sandiford@arm.com> 1859 1860 * cfgexpand.c (discover_nonconstant_array_refs_r): If an access 1861 with POLY_INT_CST size is made to a fixed-size object, force the 1862 object to live in memory. 1863 18642019-12-03 Andrew Stubbs <ams@codesourcery.com> 1865 1866 * config/gcn/gcn-valu.md: Change "vcondu" patterns to use VEC_1REG_MODE 1867 for the data mode. 1868 18692019-12-03 Richard Biener <rguenther@suse.de> 1870 1871 PR tree-optimization/92758 1872 * tree-ssa-forwprop.c (simplify_vector_constructor): Restore 1873 operation on uniform vectors. 1874 18752019-12-03 Richard Biener <rguenther@suse.de> 1876 1877 PR tree-optimization/92645 1878 * gimple-fold.c (gimple_fold_builtin_memory_op): Fold memcpy 1879 from or to a properly aligned register variable. 1880 18812019-12-03 Matthias Klose <doko@ubuntu.com> 1882 1883 * Makefile.in (SOURCES): Add doc/lto-dump.1. 1884 (install-man): Add $(LTO_DUMP_INSTALL_NAME)$(man1ext). 1885 ($(LTO_DUMP_INSTALL_NAME)$(man1ext): New. 1886 18872019-12-03 Richard Biener <rguenther@suse.de> 1888 1889 PR tree-optimization/92751 1890 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fail 1891 when a clobber ends up in the partial-def vector. 1892 (vn_reference_lookup_3): Let clobbers be handled by the 1893 assignment from CTOR handling. 1894 18952019-12-03 Jakub Jelinek <jakub@redhat.com> 1896 1897 PR tree-optimization/92734 1898 * match.pd ((CST1 - A) +- CST2 -> CST3 - A, 1899 CST1 - (CST2 - A) -> CST3 + A): Handle nop casts around 1900 inner subtraction. 1901 19022019-12-03 Uroš Bizjak <ubizjak@gmail.com> 1903 Jakub Jelinek <jakub@redhat.com> 1904 1905 PR target/92744 1906 * config/i386/i386.md (peephole2 for *swap<mode>): Use 1907 general_reg_operand predicates instead of register_operand. 1908 19092019-12-03 Richard Biener <rguenther@suse.de> 1910 1911 PR tree-optimization/92645 1912 * tree-ssa.c (execute_update_addresses_taken): Avoid representing 1913 a full def of a vector via a BIT_INSERT_EXPR. 1914 19152019-12-02 Bill Schmidt <wschmidt@linux.ibm.com> 1916 1917 * config/rs6000/rs6000-call.c (rs6000_invalid_builtin): Make 1918 static. 1919 * config/rs6000/rs6000-internal.h (rs6000_invalid_builtin): Remove 1920 decl. 1921 19222019-12-02 Richard Sandiford <richard.sandiford@arm.com> 1923 1924 PR middle-end/92741 1925 * fold-const.c (fold_convertible_p): Check vector types more 1926 thoroughly. 1927 19282019-12-02 Richard Sandiford <richard.sandiford@arm.com> 1929 1930 * config/aarch64/aarch64.c (aarch64_report_sve_required): New function. 1931 (aarch64_expand_mov_immediate): Use it when attempting to measure 1932 the length of an SVE vector. 1933 (aarch64_mov_operand_p): Only allow SVE CNT immediates when 1934 SVE is enabled. 1935 19362019-12-02 Richard Sandiford <richard.sandiford@arm.com> 1937 1938 * config/aarch64/aarch64-sve-builtins.h 1939 (gimple_folder::force_vector): Declare. 1940 * config/aarch64/aarch64-sve-builtins.cc 1941 (gimple_folder::force_vector): New function. 1942 * config/aarch64/aarch64-sve-builtins-base.cc 1943 (svcmp_impl::fold): Likewise. 1944 (svdup_impl::fold): Handle svdup_z too. 1945 19462019-12-02 Martin Liska <mliska@suse.cz> 1947 1948 * ipa-devirt.c (warn_types_mismatch): Use get_odr_name_for_type 1949 function. 1950 (debug_tree_odr_name): New. 1951 * ipa-utils.h (get_odr_name_for_type): New. 1952 19532019-12-02 Richard Biener <rguenther@suse.de> 1954 1955 PR tree-optimization/92742 1956 * tree-vect-loop.c (vect_fixup_reduc_chain): Do not 1957 touch the def-type but verify it is consistent with the 1958 original stmts. 1959 19602019-12-02 Jakub Jelinek <jakub@redhat.com> 1961 1962 PR tree-optimization/92712 1963 * match.pd ((A * B) +- A -> (B +- 1) * A, 1964 A +- (A * B) -> (1 +- B) * A): Allow optimizing signed integers 1965 even when we don't know anything about range of A, but do know 1966 something about range of B and the simplification won't introduce 1967 new UB. 1968 19692019-12-02 Feng Xue <fxue@os.amperecomputing.com> 1970 1971 PR ipa/92133 1972 * doc/invoke.texi (ipa-cp-max-recursive-depth): Document new option. 1973 (ipa-cp-min-recursive-probability): Likewise. 1974 * params.opt (ipa-cp-max-recursive-depth): New. 1975 (ipa-cp-min-recursive-probability): Likewise. 1976 * ipa-cp.c (ipcp_lattice<valtype>::add_value): Add two new parameters 1977 val_p and unlimited. 1978 (self_recursively_generated_p): New function. 1979 (get_val_across_arith_op): Likewise. 1980 (propagate_vals_across_arith_jfunc): Add constant propagation for 1981 self-recursive function. 1982 (incorporate_penalties): Do not penalize pure self-recursive function. 1983 (good_cloning_opportunity_p): Dump node_is_self_scc flag. 1984 (propagate_constants_topo): Set node_is_self_scc flag for cgraph node. 1985 (get_info_about_necessary_edges): Relax hotness check for edge to 1986 self-recursive function. 1987 * ipa-prop.h (ipa_node_params): Add new field node_is_self_scc. 1988 19892019-12-01 Sandra Loosemore <sandra@codesourcery.com> 1990 1991 PR target/92499 1992 1993 * config/nios2/nios2.c (nios2_in_small_data_p): Do not consider 1994 objects of flexible types to be small if they have internal linkage 1995 or are declared extern. 1996 * config/nios2/nios2.h (ASM_OUTPUT_ALIGNED_LOCAL): Replace with... 1997 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ...this. Use targetm.in_small_data_p 1998 instead of the size of the object initializer. 1999 * tree.c (flexible_array_type_p): Move from C front end, and 2000 generalize to handle fields in non-C structures. 2001 * tree.h (flexible_array_type_p): Declare. 2002 20032019-11-30 Jan Hubicka <hubicka@ucw.cz> 2004 2005 * profile-count.h (profile_count::operator<): Use IPA value for 2006 comparsion. 2007 (profile_count::operator>): Likewise. 2008 (profile_count::operator<=): Likewise. 2009 (profile_count::operator>=): Likewise. 2010 * predict.c (maybe_hot_count_p): Do not convert to gcov_type. 2011 20122019-11-30 Jan Hubicka <hubicka@ucw.cz> 2013 2014 * ipa-inline.c (compute_max_insns): Return int64_t. 2015 (inline_small_functions): Simplify. 2016 20172019-11-30 Jan Hubicka <hubicka@ucw.cz> 2018 2019 * tree-cfg.c (execute_fixup_cfg): Update also max_bb_count when 2020 scaling happen. 2021 20222019-11-30 Jan Hubicka <hubicka@ucw.cz> 2023 2024 * cgraph.h (symtab_node): Add symver flag. 2025 * cgraphunit.c (process_symver_attribute): New. 2026 (process_common_attributes): Use process_symver_attribute. 2027 * lto-cgraph.c (lto_output_node): Stream symver. 2028 (lto_output_varpool_node): Stream symver. 2029 (input_overwrite_node): Stream symver. 2030 (input_varpool_node): Stream symver. 2031 * output.h (do_assemble_symver): Decalre. 2032 * symtab.c (symtab_node::dump_base): Dump symver. 2033 (symtab_node::verify_base): Verify symver. 2034 (symtab_node::resolve_alias): Handle symver. 2035 * varasm.c (do_assemble_symver): New function. 2036 * varpool.c (varpool_node::assemble_aliases): Use it. 2037 * doc/extend.texi: (symver attribute): Document. 2038 * config/elfos.h (ASM_OUTPUT_SYMVER_DIRECTIVE): New. 2039 20402019-11-30 Richard Sandiford <richard.sandiford@arm.com> 2041 2042 * target.h (type_context_kind): New enum. 2043 (verify_type_context): Declare. 2044 * target.def (verify_type_context): New target hook. 2045 * doc/tm.texi.in (TARGET_VERIFY_TYPE_CONTEXT): Likewise. 2046 * doc/tm.texi: Regenerate. 2047 * tree.c (verify_type_context): New function. 2048 * config/aarch64/aarch64-protos.h (aarch64_sve::verify_type_context): 2049 Declare. 2050 * config/aarch64/aarch64-sve-builtins.cc (verify_type_context): 2051 New function. 2052 * config/aarch64/aarch64.c (aarch64_verify_type_context): Likewise. 2053 (TARGET_VERIFY_TYPE_CONTEXT): Define. 2054 20552019-11-30 Jan Hubicka <hubicka@ucw.cz> 2056 2057 * cgraph.c (cgraph_node::dump): Dump unit_id and merged_extern_inline. 2058 * cgraph.h (cgraph_node): Add unit_id and 2059 merged_extern_inline. 2060 (symbol_table): Add max_unit. 2061 (symbol_table::symbol_table): Initialize it. 2062 * cgraphclones.c (duplicate_thunk_for_node): Copy unit_id. 2063 merged_comdat, merged_extern_inline. 2064 (cgraph_node::create_clone): Likewise. 2065 (cgraph_node::create_version_clone): Likewise. 2066 * ipa-fnsummary.c (dump_ipa_call_summary): Dump info about cross module 2067 calls. 2068 * ipa-fnsummary.h (cross_module_call_p): New inline function. 2069 * ipa-inline-analyssi.c (simple_edge_hints): Use it. 2070 * ipa-inline.c (inline_small_functions): Likewise. 2071 * lto-symtab.c (lto_cgraph_replace_node): Record merged_extern_inline; 2072 copy merged_comdat and merged_extern_inline. 2073 * lto-cgraph.c (lto_output_node): Stream out merged_comdat, 2074 merged_extern_inline and unit_id. 2075 (input_overwrite_node): Stream in these. 2076 (input_cgraph_1): Set unit_base. 2077 * lto-streamer.h (lto_file_decl_data): Add unit_base. 2078 * symtab.c (symtab_node::make_decl_local): Record former_comdat. 2079 20802019-11-30 Maciej W. Rozycki <macro@wdc.com> 2081 2082 * gcc.c (process_command): Only warn about an ineffective `-x' 2083 option if any input files have actually been supplied. 2084 20852019-11-30 Maciej W. Rozycki <macro@wdc.com> 2086 2087 * doc/install.texi (Options specification): Remove the list of 2088 target library subdirectories supporting 2089 `--enable-version-specific-runtime-libs'. Document defaults for 2090 the option. 2091 20922019-11-29 Vladimir Makarov <vmakarov@redhat.com> 2093 2094 PR rtl-optimization/92283 2095 * lra.c (lra): Update reg notes after inheritance sub-pass and 2096 before constraint sub-pass. 2097 20982019-11-29 Richard Biener <rguenther@suse.de> 2099 2100 PR tree-optimization/91003 2101 * tree-vect-slp.c (vect_mask_constant_operand_p): Pass in the 2102 operand number, avoid handling the non-condition operands of 2103 COND_EXPRs as comparisons. 2104 (vect_get_constant_vectors): Pass down the operand number. 2105 (vect_get_slp_defs): Likewise. 2106 21072019-11-29 Frederik Harwath <frederik@codesourcery.com> 2108 2109 * gimple-match-head.c (maybe_resimplify_conditional_op): Use 2110 generic_expr_could_trap_p to check if the condition of COND_EXPR or 2111 VEC_COND_EXPR can trap. 2112 21132019-11-29 Richard Sandiford <richard.sandiford@arm.com> 2114 2115 PR tree-optimization/92677 2116 * tree-vect-loop.c (vect_dissolve_slp_only_groups): Set the gap 2117 to zero when dissolving a group of strided accesses. 2118 21192019-11-29 Richard Sandiford <richard.sandiford@arm.com> 2120 2121 PR tree-optimization/92596 2122 * tree-vect-stmts.c (vectorizable_call): Punt on hybrid mask/nonmask 2123 operations. 2124 (vectorizable_operation): Likewise, instead of relying on 2125 vect_get_mask_type_for_stmt to do this. 2126 (vect_get_vector_types_for_stmt): Always return a vector type 2127 immediately, rather than deferring the choice for boolean results. 2128 Use a vector mask type instead of a normal vector if 2129 vect_use_mask_type_p. 2130 (vect_get_mask_type_for_stmt): Delete. 2131 * tree-vect-loop.c (vect_determine_vf_for_stmt_1): Remove 2132 mask_producers argument and special boolean_type_node handling. 2133 (vect_determine_vf_for_stmt): Remove mask_producers argument and 2134 update calls to vect_determine_vf_for_stmt_1. Remove doubled call. 2135 (vect_determine_vectorization_factor): Update call accordingly. 2136 * tree-vect-slp.c (vect_build_slp_tree_1): Remove special 2137 boolean_type_node handling. 2138 (vect_slp_analyze_node_operations_1): Likewise. 2139 21402019-11-29 Richard Sandiford <richard.sandiford@arm.com> 2141 2142 * tree-vectorizer.h (stmt_vec_info::mask_precision): New field. 2143 (vect_use_mask_type_p): New function. 2144 * tree-vect-patterns.c (vect_init_pattern_stmt): Copy the 2145 mask precision to the pattern statement. 2146 (append_pattern_def_seq): Add a scalar_type_for_mask parameter 2147 and use it to initialize the new stmt's mask precision. 2148 (search_type_for_mask_1): Delete. 2149 (search_type_for_mask): Replace with... 2150 (integer_type_for_mask): ...this new function. Use the information 2151 cached in the stmt_vec_info. 2152 (vect_recog_bool_pattern): Update accordingly. 2153 (build_mask_conversion): Pass the scalar type associated with the 2154 mask type to append_pattern_def_seq. 2155 (vect_recog_mask_conversion_pattern): Likewise. Call 2156 integer_type_for_mask instead of search_type_for_mask. 2157 (vect_convert_mask_for_vectype): Call integer_type_for_mask instead 2158 of search_type_for_mask. 2159 (possible_vector_mask_operation_p): New function. 2160 (vect_determine_mask_precision): Likewise. 2161 (vect_determine_stmt_precisions): Call it. 2162 21632019-11-29 Richard Sandiford <richard.sandiford@arm.com> 2164 2165 * tree-vectorizer.h (get_mask_type_for_scalar_type): Replace 2166 the slp_tree parameter with a group size parameter. 2167 (vect_get_mask_type_for_stmt): Likewise. 2168 * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise. 2169 (vect_get_mask_type_for_stmt): Likewise. 2170 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Update 2171 call accordingly. 2172 21732019-11-29 Richard Sandiford <richard.sandiford@arm.com> 2174 2175 * tree-vect-stmts.c (vectorizable_operation): Punt early 2176 on codes that are handled elsewhere. 2177 21782019-11-29 Richard Sandiford <richard.sandiford@arm.com> 2179 2180 * doc/sourcebuild.texi (vect_bool_cmp): Document. 2181 * tree-vect-patterns.c (search_type_for_mask_1): If neither 2182 operand to a boolean comparison is a natural vector mask, 2183 handle both operands like normal integers instead. 2184 21852019-11-29 Richard Biener <rguenther@suse.de> 2186 2187 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Bail 2188 out early for too large objects. 2189 21902019-11-29 Martin Jambor <mjambor@suse.cz> 2191 2192 PR ipa/92476 2193 * ipa-cp.c (set_single_call_flag): Set node_calling_single_call in 2194 the summary only if the summary exists. 2195 (find_more_scalar_values_for_callers_subset): Check node_dead in 2196 the summary only if the summary exists. 2197 (ipcp_store_bits_results): Ignore nodes without lattices. 2198 (ipcp_store_vr_results): Likewise. 2199 * cgraphclones.c: Include ipa-fnsummary.h and ipa-prop.h and the 2200 header files required by them. 2201 (cgraph_node::expand_all_artificial_thunks): Analyze expanded thunks. 2202 22032019-11-29 Richard Sandiford <richard.sandiford@arm.com> 2204 2205 PR tree-optimization/92710 2206 * tree-vect-stmts.c (vectorizable_simd_clone_call): Reject 2207 vector mask arguments. 2208 22092019-11-29 Jan Hubicka <hubicka@ucw.cz> 2210 2211 * profile-count.c (profile_count::to_cgraph_frequency, 2212 profile_count::to_sreal_scale): Check for compaibility of counts. 2213 * profile-count.h (compatible_p): Make public; add checking for 2214 global0 versus global types. 2215 * cgraph.c (cgraph_node::verify_node): Verify count compatibility. 2216 22172019-11-29 Richard Biener <rguenther@suse.de> 2218 2219 PR tree-optimization/92715 2220 * tree-ssa-forwprop.c (simplify_vector_constructor): Bail 2221 out for uniform vectors and source vectors with less elements 2222 than the destination. 2223 22242019-11-29 Martin Liska <mliska@suse.cz> 2225 2226 PR lto/91574 2227 * ipa-devirt.c (types_same_for_odr): Check for existence 2228 of TYPE_NAMEs first. 2229 22302019-11-29 Richard Biener <rguenther@suse.de> 2231 2232 PR tree-optimization/92704 2233 * tree-if-conv.c (combine_blocks): Deal with virtual PHIs 2234 in loops performing only loads. 2235 22362019-11-29 Julian Brown <julian@codesourcery.com> 2237 2238 * builtin-types.def (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, 2239 BT_DFLOAT128_PTR) Remove. 2240 * tree-core.h (TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, 2241 TI_DFLOAT128_PTR_TYPE): Remove. 2242 * tree.c (build_common_type_nodes): Remove dfloat32_ptr_type_node, 2243 dfloat64_ptr_type_node and dfloat128_ptr_type_node initialisation. 2244 * tree.h (dfloat32_ptr_type_node, dfloat64_ptr_type_node, 2245 dfloat128_ptr_type_node): Remove macros. 2246 22472019-11-28 Segher Boessenkool <segher@kernel.crashing.org> 2248 2249 * config/rs6000/rs6000.md (*movsi_internal1): Fix formatting. Improve 2250 formatting. 2251 (*movdi_internal64): Ditto. 2252 22532019-11-28 Segher Boessenkool <segher@kernel.crashing.org> 2254 2255 PR target/92602 2256 * config/rs6000/rs6000.md (bswap<mode>2_load for HSI): Change the 2257 indexed_or_indirect_operand to be memory_operand. 2258 (bswap<mode>2_store for HSI): Ditto. 2259 (bswapdi2_load): Ditto. 2260 (bswapdi2_store): Ditto. 2261 22622019-11-28 Martin Liska <mliska@suse.cz> 2263 2264 PR debug/46558 2265 * dbgcnt.c (dbg_cnt_list_all_counters): Mark table 2266 headers for translation. 2267 22682019-11-28 Martin Liska <mliska@suse.cz> 2269 2270 PR lto/92609 2271 * ipa-devirt.c (warn_types_mismatch): Use TYPE_MAIN_VARIANT 2272 consistently. 2273 22742019-11-28 Jan Hubicka <hubicka@ucw.cz> 2275 2276 * ipa-inline.c (want_early_inline_function_p): Remove leftover optimize 2277 checks. 2278 22792019-11-28 Jan Hubicka <hubicka@ucw.cz> 2280 2281 * profile-count.c (profile_count::combine_with_ipa_count): Return 2282 uninitialized count if called on ininitialized count. 2283 22842019-11-28 Jan Hubicka <hubicka@ucw.cz> 2285 2286 * ipa-inline-transform.c (inline_transform): Scale profile before 2287 redirecting. 2288 22892019-11-28 Jan Hubicka <hubicka@ucw.cz> 2290 2291 * profile-count.h (profile_count::max): Work on profiles of different 2292 type. 2293 (profile_count::apply_scale): Be sure that ret is not local or global0 2294 type if num is global. 2295 22962019-11-28 Jan Hubicka <hubicka@ucw.cz> 2297 2298 * profile-count.h (profile_count::max): Work on profiles of different 2299 type. 2300 (profile_count::apply_scale): Be sure that ret is not local or global0 2301 type if num is global. 2302 23032019-11-28 Martin Jambor <mjambor@suse.cz> 2304 2305 PR ipa/92697 2306 * cgraph.c (cgraph_node_cannot_be_local_p_1): Return true for 2307 ifunc_resolvers. 2308 * symtab.c (symtab_node::dump_base): Dump ifunc_resolver flag. 2309 Removed trailig whitespace. 2310 23112019-11-28 Jan Hubicka <hubicka@ucw.cz> 2312 2313 * profile-count.h (profile_count::combine_with_ipa_count_within): 2314 Declare. 2315 * profile-count.c (profile_count::combine_with_ipa_count_within): 2316 New. 2317 * cgraphclones.c (cgraph_edge::clone, cgraph_node::create_clone): Use 2318 it. 2319 23202019-11-28 Jan Hubicka <hubicka@ucw.cz> 2321 2322 * ipa-utils.c (ipa_merge_profiles): Be sure that all type transtions 2323 of counters are done same way. 2324 23252019-11-28 Jan Hubicka <hubicka@ucw.cz> 2326 2327 * ipa-cp.c (update_profiling_info): Fix scaling. 2328 23292019-11-28 Richard Biener <rguenther@suse.de> 2330 2331 PR tree-optimization/92645 2332 * tree-inline.c (remap_gimple_stmt): When the return value 2333 is not wanted, elide GIMPLE_RETURN. 2334 23352019-11-28 Richard Biener <rguenther@suse.de> 2336 2337 PR tree-optimization/92645 2338 * tree-ssa-forwprop.c (get_bit_field_ref_def): Also handle 2339 conversions inside a mode class. Remove restriction on 2340 preserving the element size. 2341 (simplify_vector_constructor): Deal with the above and for 2342 identity permutes also try using VEC_UNPACK_[FLOAT_]LO_EXPR 2343 and VEC_PACK_TRUNC_EXPR. 2344 23452019-11-28 Georg-Johann Lay <avr@gjlay.de> 2346 2347 Must use push insn to pass varargs arguments of DFmode because 2348 otherwise the middle-end generates wrong code. 2349 2350 PR target/92055 2351 * config/avr/avr.md (MPUSH) [DF, DC]: Add modes to mode iterator. 2352 23532019-11-28 Jakub Jelinek <jakub@redhat.com> 2354 2355 PR tree-optimization/92691 2356 * tree-ssa-strlen.c (handle_store): Clarify return value meaning 2357 in function comment. 2358 (strlen_check_and_optimize_call): Likewise. For handle_printf_call 2359 calls, return !handle_printf_call rather than always returning true. 2360 (check_and_optimize_stmt): Describe return value meaning in function 2361 comment. Formatting fix. 2362 23632019-11-28 Jan Hubicka <hubicka@ucw.cz> 2364 2365 * profile-count.c (profile_count::to_sreal_scale): Handle correctly 2366 combination of globa0 and global counters.. 2367 23682019-11-28 Kewen Lin <linkw@gcc.gnu.org> 2369 2370 PR target/92566 2371 * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Check 2372 by VECTOR_UNIT_NONE_P instead. 2373 23742019-11-28 Hongtao Liu <hongtao.liu@inte.com> 2375 2376 * config/i386/sse.md (avx512f_maskcmp<mode>3): 2377 Refine VF to VF_AVX512VL. 2378 23792019-11-27 Michael Meissner <meissner@linux.ibm.com> 2380 2381 * config/rs6000/rs6000.md (movsi_internal): Reformat. 2382 (movdi_internal64): Reformat. 2383 23842019-11-27 Peter Bergner <bergner@linux.ibm.com> 2385 2386 PR bootstrap/92661 2387 * config/rs6000/rs6000-call.c: (def_builtin): Do not define the 2388 builtin if we don't have an actual type. 2389 (builtin_function_type): If the builtin function uses a DFP type 2390 and decimal float has been disabled, then return NULL_TREE. 2391 23922019-11-27 Jakub Jelinek <jakub@redhat.com> 2393 2394 PR rtl-optimization/92510 2395 * combine.c (gen_lowpart_for_combine): Only transform lowpart subreg 2396 of comparison into a comparison with different mode if both imode and 2397 omode are scalar integral modes. 2398 23992019-11-27 Vladimir Makarov <vmakarov@redhat.com> 2400 2401 PR rtl-optimization/90007 2402 * recog.c (constrain_operands): Permit hard registers too for 2403 memory when LRA is used. 2404 24052019-11-27 Bernd Schmidt <bernds_cb1@t-online.de> 2406 2407 * config/m68k/m68k.c (m68k_output_compare_fp): Restore differences 2408 between Coldfire and regular m68k. 2409 * config/m68k/m68k.md (cmp1_cf_constraints): Disallow constants. 2410 24112019-11-27 Richard Biener <rguenther@suse.de> 2412 2413 * target.def (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. 2414 * targhooks.c (default_builtin_vectorized_conversion): Likewise. 2415 * targhooks.h (default_builtin_vectorized_conversion): Likewise. 2416 * optabs-tree.c (supportable_convert_operation): Do not call 2417 targetm.vectorize.builtin_conversion. Remove unused decl parameter. 2418 * optabs-tree.h (supportable_convert_operation): Adjust. 2419 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. 2420 * doc/tm.texi: Regenerate. 2421 * tree-ssa-forwprop.c (simplify_vector_constructor): Adjust. 2422 * tree-vect-generic.c (expand_vector_conversion): Likewise. 2423 * tree-vect-stmts.c (vect_gen_widened_results_half): Remove 2424 unused decl parameter and adjust. 2425 (vect_create_vectorized_promotion_stmts): Likewise. 2426 (vectorizable_conversion): Adjust. 2427 24282019-11-27 Richard Biener <rguenther@suse.de> 2429 2430 PR tree-optimization/92690 2431 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid 2432 converting elements not originally converted. 2433 24342019-11-27 Tobias Burnus <tobias@codesourcery.com> 2435 2436 PR middle-end/92463 2437 * builtins.c (do_mpfr_ckconv, do_mpc_ckconv, do_mpfr_remquo, 2438 do_mpfr_lgamma_r, do_mpc_arg2): Use MPFR_RNDx instead of GMP_RNDx, 2439 mpfr_rnd_t instead of mp_rnd_t. 2440 * fold-const-call.c (do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_sincos, 2441 do_mpfr_arg2, do_mpfr_arg3, do_mpc_arg1, do_mpc_arg2): Likewise. 2442 * gimple-ssa-sprintf.c (format_floating_max, format_floating): 2443 Use mpfr_exp_t instead of mp_exp_t. 2444 * real.c (real_from_string, dconst_e_ptr, dconst_sqrt2_ptr): Use 2445 MPFR_RNDx instead of GMP_RNDx. 2446 * realmpfr.c (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t and 2447 mpfr_exp_t instead mp_rnd_t and mp_exp_t, respectively. 2448 * realmpfr.h (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t instead 2449 of mp_rnd_t and remove MPFR_RNDx poisoning. 2450 * ubsan.c (ubsan_instrument_float_cast): MPFR_RNDx instead of GMP_RNDx. 2451 24522019-11-27 Kewen Lin <linkw@gcc.gnu.org> 2453 2454 PR tree-optimization/91790 2455 * tree-vect-stmts.c (vectorizable_load): Use the adjusted 2456 DR for vect_setup_realignment when first_stmt_info is different 2457 from first_stmt_info_for_drptr. 2458 24592019-11-27 Richard Biener <rguenther@suse.de> 2460 2461 PR tree-optimization/92645 2462 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle 2463 CTORs with just a subset of the original vectors. 2464 24652019-11-27 Richard Biener <rguenther@suse.de> 2466 2467 PR middle-end/92674 2468 * tree-inline.c (expand_call_inline): Delay purging EH/abnormal 2469 edges and instead record blocks in bitmap. 2470 (gimple_expand_calls_inline): Adjust. 2471 (fold_marked_statements): Delay EH cleanup until all folding is 2472 done. 2473 (optimize_inline_calls): Do EH/abnormal cleanup for calls after 2474 inlining finished. 2475 24762019-11-27 Bernd Schmidt <bernds_cb1@t-online.de> 2477 2478 * auto-inc-dec.c (merge_in_block): Allow autoinc in jumps unless 2479 LRA is enabled. 2480 * combine.c (can_combine_p): Disallow autoinc in jumps unless LRA is 2481 disabled. 2482 24832019-11-27 Jakub Jelinek <jakub@redhat.com> 2484 2485 PR debug/92664 2486 * dwarf2out.c (lookup_filename): Use "<stdin>" instead of "". 2487 24882019-11-26 Martin Sebor <msebor@redhat.com> 2489 2490 PR tree-optimization/92683 2491 * gimple-fold.c (gimple_fold_builtin_string_compare): Restore a test 2492 inadvertently removed in a previous change. Rename local variable 2493 for clarity. 2494 24952019-11-26 Richard Biener <rguenther@suse.de> 2496 2497 PR middle-end/92669 2498 * cfganal.c (pre_and_rev_post_order_compute_fn): Deal with 2499 NULL pre_order. 2500 25012019-11-26 Robin Dapp <rdapp@linux.ibm.com> 2502 2503 * config/s390/linux.h: Add undef for MUSL_DYNAMIC_LINKERxx. 2504 25052019-11-26 Jakub Jelinek <jakub@redhat.com> 2506 2507 PR tree-optimization/92644 2508 * tree-ssa-phiopt.c (minmax_replacement): Add INTEGRAL_TYPE_P check 2509 next to INTEGER_CST checks. 2510 25112019-11-26 Richard Biener <rguenther@suse.de> 2512 2513 PR tree-optimization/92645 2514 * tree-vect-slp.c (vect_build_slp_tree_2): For unary ops 2515 do not build the operation from scalars if the operand is. 2516 25172019-11-25 Tobias Burnus <tobias@codesourcery.com> 2518 2519 * config/gcn/mkoffload.c (COMMENT_PREFIX, struct id_map, 2520 func_ids, funcs_tail, var_ids, vars_tail) Remove unused 2521 definitions. 2522 25232019-11-25 Martin Liska <mliska@suse.cz> 2524 2525 * ipa-icf.c (sem_item_optimizer::dump_cong_classes): Clean 2526 up used dump message. 2527 25282019-11-25 Martin Liska <mliska@suse.cz> 2529 2530 PR bootstrap/92653 2531 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Comment out 2532 too strict checking assert. 2533 25342019-11-25 Joseph Myers <joseph@codesourcery.com> 2535 2536 PR c/91985 2537 * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128) 2538 (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR): Define to 2539 error_mark_node if corresponding global tree node is NULL. 2540 * tree.c (build_common_tree_nodes): Do not initialize 2541 dfloat32_type_node, dfloat64_type_node or dfloat128_type_node if 2542 decimal floating-point not supported. 2543 25442019-11-25 Joseph Myers <joseph@codesourcery.com> 2545 2546 * attribs.c (decl_attributes): Do not ignore C++11 attributes on 2547 types. 2548 25492019-11-25 Bernd Schmidt <bernds_cb1@t-online.de> 2550 2551 * config/m68k/m68k.c (output_move_himode, output_move_qimode): 2552 Replace code for non-CONST_INT constants with gcc_unreachable. 2553 * config/m68k/m68k.md (cbranchdi): Don't generate individual 2554 compare and test. 2555 (CMPMODE): New mode_iterator. 2556 (cbranchsi4, cbranchqi4, cbranchhi4): Replace expanders with 2557 cbranch<mode>4. 2558 (cstoresi4, cstoreqi4, cstorehi4): Replace expanders with 2559 cstore<mode>4. 2560 (cmp<mode>_68881): Remove 'F' constraint from first comparison 2561 operand. 2562 (bit test insns patterns): Use nonimmediate_operand, not 2563 register_operand, for source operands that allow memory in 2564 their constraints. 2565 (divmodsi4, udivmodsi4, divmodhi4 and related unnamed patterns): 2566 Use register_operand, not nonimmediate_operand, for the 2567 destinations. 2568 (DBCC): New mode_iterator. 2569 (dbcc peepholes): Use it to reduce duplication. 2570 (trap): Use const_true_rtx, not const1_rtx. 2571 * config/m68k/predicates.md (m68k_comparison_operand): Renamed 2572 from m68k_subword_comparison_operand and changed to handle 2573 SImode. 2574 2575 PR target/91851 2576 * config/m68k/m68k-protos.h (output-dbcc_and_branch): Adjust 2577 declaration. 2578 (m68k_init_cc): New declaration. 2579 (m68k_output_compare_di, m68k_output_compare_si) 2580 (m68k_output_compare_hi, m68k_output_compare_qi) 2581 (m68k_output_compare_fp, m68k_output_btst, m68k_output_bftst) 2582 (m68k_find_flags_value, m68k_output_scc, m68k_output_scc_float) 2583 (m68k_output_branch_integer, m68k_output_branch_integer_rev. 2584 m68k_output_branch_float, m68k_output_branch_float_rev): 2585 Likewise. 2586 (valid_dbcc_comparison_p_2, flags_in_68881) 2587 (output_btst): Remove declaration. 2588 * config/m68k/m68k.c (INCLDUE_STRING): Define. 2589 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define. 2590 (valid_dbcc_comparison_p_2, flags_in_68881): Delete functions. 2591 (flags_compare_op0, flags_compare_op1, flags_operand1, 2592 flags_operand2, flags_valid): New static variables. 2593 (m68k_find_flags_value, m68k_init_cc): New functions. 2594 (handle_flags_for_move, m68k_asm_final_postscan_insn, 2595 remember_compare_flags): New static functions. 2596 (output_dbcc_and_branch): New argument CODE. Use it, and add 2597 PLUS and MINUS to the possible codes. All callers changed. 2598 (m68k_output_btst): Renamed from output_btst. Remove OPERANDS 2599 and INSN arguments, add CODE arg. Return the comparison code 2600 to use. All callers changed. Use CODE instead of 2601 next_insn_tests_no_inequality, and replace cc_status management 2602 with changing the return code. 2603 (m68k_rtx_costs): Instead of testing for COMPARE, test for 2604 RTX_COMPARE or RTX_COMM_COMPARE. 2605 (output_move_simode, output_move_qimode): Call 2606 handle_flags_for_move. 2607 (notice_update_cc): Delete function. 2608 (m68k_output_bftst, m68k_output_compare_di, m68k_output_compare_si, 2609 m68k_output_compare_hi, m68k_output_compare_qi, 2610 m68k_output_compare_fp, m68k_output_branch_integer, 2611 m68k_output_branch_integer_rev, m68k_output_scc, 2612 m68k_output_branch_float, m68k_output_branch_float_rev, 2613 m68k_output_scc_float): New functions. 2614 (output_andsi3, output_iorsi3, output_xorsi3): Call CC_STATUS_INIT 2615 once at the start, and set flags_valid and flags_operand1 if the 2616 flags are usable. 2617 * config/m68k/m68k.h (CC_IN_68881, NOTICE_UPDATE_CC, 2618 CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, OUTPUT_JUMP): Remove 2619 definitions. 2620 (CC_STATUS_INIT): Define. 2621 * config/m68k/m68k.md (flags_valid): New define_attr. 2622 (tstdi, tstsi_internal_68020_cf, tstsi_internal, tsthi_internal, 2623 tstqi_internal, tst<mode>_68881, tst<mode>_cf, cmpdi_internal, 2624 cmpdi, unnamed cmpsi/cmphi/cmpqi patterns, cmpsi_cf, 2625 cmp<mode>_68881, cmp<mode>_cf, unnamed btst patterns, 2626 tst_bftst_reg, tst_bftst_reg, unnamed scc patterns, scc, 2627 sls, sordered_1, sunordered_1, suneq_1, sunge_1, sungt_1, 2628 sunle_1, sunlt_1, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1, 2629 bge0_di, blt0_di, beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, 2630 ble, bleu, bordered, bunordered, buneq, bunge, bungt, bunle, 2631 bunlt, bltgt, beq_rev, bne_rev, bgt_rev, bgtu_rev, 2632 blt_rev, bltu_rev, bge_rev, bgeu_rev, ble_rev, bleu_rev, 2633 bordered_rev, bunordered_rev, buneq_rev, bunge_rv, bungt_rev, 2634 bunle_rev, bunlt_rev, bltgt_rev, ctrapdi4, ctrapsi4, ctraphi4, 2635 ctrapqi4, conditional_trap): Delete patterns. 2636 (cbranchdi4_insn): New pattern. 2637 (cbranchdi4): Don't generate cc0 patterns. When testing LT or GE, 2638 test high part only. When testing EQ or NE, generate beq0_di 2639 and bne0_di patterns directly. 2640 (cstoredi4): When testing LT or GE, test high part only. 2641 (both sets of cbranch<mode>4, cstore<mode>4): Don't generate cc0 2642 patterns. 2643 (scc0_constraints, cmp1_constraints, cmp2_constraints, 2644 scc0_cf_constraints, cmp1_cf_constraints, cmp2_cf_constraints, 2645 cmp2_cf_predicate): New define_mode_attrs. 2646 (cbranch<mode>4_insn, cbranch<mode>4_insn_rev, 2647 cbranch<mode>4_insn_cf, cbranch<mode>4_insn_cf_rev, 2648 cstore<mode>4_insn, cstore<mode>4_insn_cf for integer modes) 2649 New patterns. 2650 (cbranch<mode>4_insn_68881, cbranch<mode>4_insn_rev_68881): 2651 (cbranch<mode>4_insn_cf, cbranch<mode>4_insn_rev_cf, 2652 cstore<mode>4_insn_68881, cstore<mode>4_insn_cf for FP): 2653 New patterns. 2654 (cbranchsi4_btst_mem_insn, cbranchsi4_btst_reg_insn, 2655 cbranchsi4_btst_mem_insn_1, cbranchsi4_btst_reg_insn_1): 2656 Likewise. 2657 (BTST): New define_mode_iterator. 2658 (btst_predicate, btst_constraint, btst_range): New 2659 define_mode_attrs. 2660 (cbranch_bftst<mode>_insn, cstore_bftst<mode>_insn): New 2661 patterns. 2662 (movsi_m68k_movsi_m68k2, movsi_cf, unnamed movstrict patterns, 2663 unnamed movhi and movqi patterns, unnamed movsf, movdf and movxf 2664 patterns): Set attr "flags_valid". 2665 (truncsiqi2, trunchiqi2, truncsihi2): Remove manual CC_STATUS 2666 management. Set attr "flags_valid". 2667 (extendsidi2, extendplussidi, unnamed float_extendsfdf pattern, 2668 extendsfdf2_cf, fix_truncdfsi2, fix_truncdfhi2, fix_truncdfqi2, 2669 addi_sexthishl32, adddi_dilshr32, adddi_dilshr32_cf, 2670 addi_dishl32, subdi_sexthishl32, subdi_dishl32, subdi3): Remove 2671 manual CC_STATUS management. 2672 (addsi3_internal, addhi3, addqi3, subsi3, subhi3, subqi3, 2673 unnamed strict_lowpart subhi and subqi patterns): Set attr 2674 "flags_valid". 2675 (unnamed strict_lowpart addhi3 and addqi3 patterns): Likewise. 2676 Remove code to operate on address regs and assert the case 2677 does not occur. 2678 (unnamed mulsidi patterns, divmodhi4, udivmodhi4): Remove 2679 manual CC_STATUS_INIT. 2680 (andsi3_internal, andhi3, andqi3, iorsi3_internal, iorhi3, iorqi3, 2681 xorsi3_internal, xorhi3, xorqi3, negsi2_internal, 2682 negsi2_5200, neghi2, negqi2, one_cmplsi2_internal, one_cmplhi2, 2683 one_cmplqi2, unnamed strict_lowpart patterns 2684 for andhi, andqi, iorhi, iorqi, xorhi, xorqi, neghi, negqi, 2685 one_cmplhi and one_cmplqi): Set attr "flags_valid". 2686 (iorsi_zext_ashl16, iorsi_zext): Remove manual CC_STATUS_INIT. 2687 (ashldi_sexthi, ashlsi_16, ashlsi_17_24): Remove manual 2688 CC_STATUS_INIT. 2689 (ashlsi3, ashlhi3, ashlqi3, ashrsi3, ashrhi3, ashrqi3, lshrsi3, 2690 lshrhi3, shrqi3, rotlsi3, rotlhi3, rotlhi3_lowpart, rotlqi3, 2691 rotlqi3_lowpart, rotrsi3, rotrhi3, rotrhi_lowpart, rotrqi3, 2692 unnamed strict_low_part patterns for HI and 2693 QI versions): Set attr "flags_valid". 2694 (bsetmemqi, bsetmemqi_ext, bsetdreg, bchgdreg, bclrdreg, 2695 bclrmemqi, extzv_8_16_reg, extzv_bfextu_mem, insv_bfchg_mem, 2696 insv_bfclr_mem, insv_bfset_mem, extv_bfextu_reg, 2697 insv_bfclr_reg, insv_bfset_reg, dbne_hi, dbne_si, dbge_hi, 2698 dbge_si, extendsfxf2, extenddfxf2, ): Remove manual cc_status management. 2699 (various unnamed peepholes): Adjust compare/branch sequences 2700 for new cbranch patterns. 2701 (dbcc peepholes): Likewise, and output the comparison here 2702 as well. 2703 * config/m68k/predicates.md (valid_dbcc_comparison_p): Delete. 2704 (fp_src_operand): Allow constant zero. 2705 (address_reg_operand): New predicate. 2706 2707 * rtl.h (inequality_comparisons_p): Remove declaration. 2708 * recog.h (next_insn_tests_no_inequality): Likewise. 2709 * rtlanal.c (inequality_comparisons_p): Delete function. 2710 * recog.c (next_insn_tests_no_inequality): Likewise. 2711 27122019-11-25 Richard Biener <rguenther@suse.de> 2713 2714 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Add assertion. 2715 (vect_detect_hybrid_slp): Swap lane and instance iteration, 2716 properly re-building the visited hash-map for each lane. 2717 27182019-11-25 Tobias Burnus <tobias@codesourcery.com> 2719 2720 * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address, 2721 gcn_md_reorg): Remove unused variables. 2722 (gcn_emutls_var_init): Add missing (but unreachable) return 2723 to silence warning. 2724 (gcn_hsa_declare_function_name): Add gcc_unreachable to ensure 2725 target != TARGET_GCN3 or TARGET_GCN3 will fail instead of use 2726 an uninitialized variable. 2727 27282019-11-25 Martin Jambor <mjambor@suse.cz> 2729 2730 PR ipa/92109 2731 * cgraph.h (cgraph_node::remove_from_clone_tree): Declare. 2732 * cgraphclones.c (cgraph_node::remove_from_clone_tree): New method. 2733 (cgraph_materialize_clone): Move removel from clone tree to the 2734 the new method and use it instead. 2735 * ipa.c (symbol_table::remove_unreachable_nodes): When removing 2736 bodies of clones, also remove it from the clone tree. 2737 27382019-11-25 Martin Jambor <mjambor@suse.cz> 2739 2740 PR ipa/91956 2741 * ipa-sra.c (process_isra_node_results): Put the new node to the 2742 same comdat group as the original node. 2743 27442019-11-25 Georg-Johann Lay <avr@gjlay.de> 2745 2746 Build double32 / long-double32 multilibs if needed. 2747 2748 PR target/92055 2749 * config/avr/t-avr: 2750 (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): Remove vars. 2751 (HAVE_DOUBLE32, HAVE_LONG_DOUBLE32, WITH_LONG_DOUBLE) 2752 (HAVE_DOUBLE64, HAVE_LONG_DOUBLE64, WITH_DOUBLE): Set from 2753 tm_defines and pass to genmultilib.awk. 2754 * config/avr/genmultilib.awk: Use these variables to add double32 2755 and / or long-double32 multilib(s) as needed. 2756 * config/avr/driver-avr.c (avr_double_lib): Adjust comment. 2757 27582019-11-25 Richard Biener <rguenther@suse.de> 2759 2760 * cfgloop.h (get_loop_exit_edges): Add extra parameter denoting 2761 loop body, defaulted to NULL. 2762 (single_likely_exit): Add exit vector argument 2763 * tree-ssa-loop-niter.h (loop_only_exit_p): Add loop body argument. 2764 (number_of_iterations_exit): Likewise. 2765 (number_of_iterations_exit_assumptions): Likewise. 2766 * cfgloop.c (get_loop_exit_edges): Use passed in loop body 2767 if not NULL. 2768 * cfgloopanal.c (single_likely_exit): Use passed in exit vector. 2769 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): 2770 Compute exit vector around call to single_likely_exit. 2771 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Pass down 2772 loop body to loop_only_exit_p. 2773 * tree-ssa-loop-niter.c (loop_only_exit_p): Get loop body from 2774 caller. 2775 (number_of_iterations_exit_assumptions): Get loop body from caller 2776 if not NULL. 2777 (number_of_iterations_exit): Pass through new loop body arg. 2778 (infer_loop_bounds_from_undefined): Get loop body from caller. 2779 (estimate_numbers_of_iterations): Compute loop body once. 2780 27812019-11-25 Richard Biener <rguenther@suse.de> 2782 2783 * cfganal.c (pre_and_rev_post_order_compute_fn): Use an 2784 auto_bb_flag instead of an sbitmap for visited handling. 2785 27862019-11-25 Kewen Lin <linkw@gcc.gnu.org> 2787 2788 * config/rs6000/vector.md (vector_fp_comparison_simple): New code 2789 iterator. 2790 (vector_fp_comparison_complex): Likewise. 2791 (vector_<code><mode> for VEC_F and vector_fp_comparison_simple): New 2792 define_and_split. 2793 (vector_<code><mode> for VEC_F and vector_fp_comparison_complex): 2794 Likewise. 2795 (vector_lt<mode> for VEC_F): Refactor with 2796 vector_fp_comparison_simple. 2797 (vector_le<mode> for VEC_F): Likewise. 2798 (vector_unge<mode> for VEC_F): Likewise. 2799 (vector_unle<mode> for VEC_F): Likewise. 2800 (vector_ne<mode> for VEC_F): Likewise. 2801 (vector_ungt<mode> for VEC_F): Likewise. 2802 (vector_unlt<mode> for VEC_F): Likewise. 2803 (vector_ltgt<mode> for VEC_F): Refactor with 2804 vector_fp_comparison_complex. 2805 (vector_ordered<mode> for VEC_F): Likewise. 2806 (vector_uneq<mode> for VEC_F): Likewise. 2807 (vector_unordered<mode> for VEC_F): Likewise. 2808 28092019-11-24 Bernd Schmidt <bernds_cb1@t-online.de> 2810 2811 * config/i386/i386.c (ix86_rtx_costs): Handle care of a PLUS in a 2812 COMPARE, representing an overflow detection. 2813 2814 * combine.c (combine_instructions): Record costs for jumps. 2815 2816 * combine.c (can_combine_p): Allow autoinc in jumps. 2817 28182019-11-23 Jan Hubicka <hubicka@ucw.cz> 2819 2820 * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT): Remove. 2821 * doc/invoke.texi (max-inline-insns-single-O2, 2822 inline-heuristics-hint-percent-O2, inline-min-speedup-O2, 2823 early-inlining-insns-O2): Remove documentation. 2824 * ipa-fnsummary.c (analyze_function_body, 2825 compute_fn_summary): Use opt_for_fn when accessing parameters. 2826 * ipa-inline.c (caller_growth_limits, can_inline_edge_p, 2827 inline_insns_auto, can_inline_edge_by_limits_p, 2828 want_early_inline_function_p, big_speedup_p, 2829 want_inline_small_function_p, want_inline_self_recursive_call_p, 2830 recursive_inlining, compute_max_insns, inline_small_functions): 2831 Likewise. 2832 * opts.c (default_options): Add -O3 defaults for 2833 OPT__param_early_inlining_insns_, 2834 OPT__param_inline_heuristics_hint_percent_, 2835 OPT__param_inline_min_speedup_, OPT__param_max_inline_insns_single_. 2836 * params.opt (-param=early-inlining-insns-O2=, 2837 -param=inline-heuristics-hint-percent-O2=, 2838 -param=inline-min-speedup-O2=, -param=max-inline-insns-single-O2= 2839 -param=early-inlining-insns=, -param=inline-heuristics-hint-percent=, 2840 -param=inline-min-speedup=, -param=inline-unit-growth=, 2841 -param=large-function-growth=, -param=large-stack-frame=, 2842 -param=large-stack-frame-growth=, -param=large-unit-insns=, 2843 -param=max-inline-insns-recursive=, 2844 -param=max-inline-insns-recursive-auto=, 2845 -param=max-inline-insns-single=, 2846 -param=max-inline-insns-size=, -param=max-inline-insns-small=, 2847 -param=max-inline-recursive-depth=, 2848 -param=max-inline-recursive-depth-auto=, 2849 -param=min-inline-recursive-probability=, 2850 -param=partial-inlining-entry-probability=, 2851 -param=uninlined-function-insns=, -param=uninlined-function-time=, 2852 -param=uninlined-thunk-insns=, -param=uninlined-thunk-time=): Add 2853 Optimization. 2854 28552019-11-23 Jakub Jelinek <jakub@redhat.com> 2856 2857 * ipa-fnsummary.c: Fix comment typos. 2858 * ipa-ref.h: Likewise. 2859 * ipa-predicate.h: Likewise. 2860 * ipa-split.c: Likewise. 2861 * ipa-inline-analysis.c: Likewise. 2862 * ipa-predicate.c: Likewise. 2863 * ipa-devirt.c: Likewise. 2864 * ipa-icf.h: Likewise. 2865 * profile-count.c: Likewise. 2866 * ipa-icf.c: Likewise. 2867 (sem_function::equals_wpa): Fix typos in dump messages. 2868 * ipa-icf-gimple.h: Fix comment typos. 2869 * ipa-inline-transform.c: Likewise. 2870 * ipa-polymorphic-call.c: Likewise. 2871 * ipa-fnsummary.h: Likewise. 2872 * ipa-inline.c: Likewise. 2873 (dump_inline_stats): Fix typo in debug dump message. 2874 * profile-count.h: Fix comment typos. 2875 2876 PR target/92615 2877 * config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is 2878 GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not 2879 register_operand, force x into register before storing it into dest. 2880 Formatting fix. 2881 2882 PR middle-end/83859 2883 * doc/extend.texi (attribute access): Fix a typo. 2884 2885 PR rtl-optimization/92610 2886 * cse.c (rest_of_handle_cse2): Call cleanup_cfg (0) also if 2887 cse_cfg_altered is set, even when tem is 0. 2888 (rest_of_handle_cse_after_global_opts): Likewise. 2889 28902019-11-22 Jakub Jelinek <jakub@redhat.com> 2891 2892 PR c++/92458 2893 * tree-hash-traits.h (tree_decl_hash, tree_ssa_name_hash, 2894 tree_hash): Move to ... 2895 * tree.h (tree_decl_hash, tree_ssa_name_hash, tree_hash): ... here. 2896 (struct decl_tree_cache_traits, struct type_tree_cache_traits): New 2897 types. 2898 (decl_tree_cache_map, tree_tree_cache_map): New typedefs. 2899 2900 PR tree-optimization/92618 2901 * tree-ssa-reassoc.c (v_info): Change from auto_vec to a struct 2902 containing the auto_vec and a tree. 2903 (undistribute_bitref_for_vector): Handle the case when element type 2904 of vec is not the same as type of the BIT_FIELD_REF. Formatting 2905 fixes. 2906 29072019-11-22 Martin Sebor <msebor@redhat.com> 2908 2909 PR middle-end/83859 2910 * attribs.h (struct attr_access): New. 2911 * attribs.c (decl_attributes): Add an informational note. 2912 * builtins.c (check_access): Make extern. Consistently set no-warning 2913 after issuing a warning. Handle calls through function pointers. Set 2914 no-warning. 2915 * builtins.h (check_access): Declare. 2916 * calls.c (rdwr_access_hash): New type. 2917 (rdwr_map): Same. 2918 (init_attr_rdwr_indices): New function. 2919 (maybe_warn_rdwr_sizes): Same. 2920 (initialize_argument_information): Call init_attr_rdwr_indices. 2921 Call maybe_warn_rdwr_sizes. 2922 (get_size_range): Avoid null argument. 2923 * doc/extend.texi (attribute access): Document new attribute. 2924 29252019-11-22 Andrew Stubbs <ams@codesourcery.com> 2926 2927 * config/gcn/gcn.c (OMP_LDS_SIZE): Define. 2928 (ACC_LDS_SIZE): Define. 2929 (OTHER_LDS_SIZE): Define. 2930 (LDS_SIZE): Redefine using above. 2931 (gcn_expand_prologue): Initialize m0 with LDS_SIZE-1. 2932 29332019-11-22 Martin Sebor <msebor@redhat.com> 2934 2935 PR middle-end/88226 2936 * builtins.c (check_nul_terminated_array): New function. 2937 (fold_builtin_0): Remove declaration. 2938 (fold_builtin_1): Same. 2939 (fold_builtin_2): Same. 2940 (fold_builtin_3): Same. 2941 (fold_builtin_strpbrk): Add argument. 2942 (fold_builtin_strspn): Same. 2943 (fold_builtin_strcspn): Same. 2944 (expand_builtin_strcat): Call it. Remove unused argument. 2945 (expand_builtin_stpncpy): Same. 2946 (expand_builtin_strncat): Same. 2947 (expand_builtin_strncpy): Same. Adjust indentation. 2948 (expand_builtin_strcmp): Same. 2949 (expand_builtin_strncmp): Same. 2950 (expand_builtin_fork_or_exec): Same. 2951 (expand_builtin): Handle more built-ins. 2952 (fold_builtin_2): Add argument. 2953 (fold_builtin_n): Make static. Add argument. 2954 (fold_call_expr): Pass new argument to fold_builtin_n and fold_builtin_2. 2955 (fold_builtin_call_array): Pass new argument to fold_builtin_n. 2956 (fold_builtin_strpbrk): Add argument. Call check_nul_terminated_array. 2957 (fold_call_stmt): Pass new argument to fold_builtin_n. 2958 * builtins.h: Correct a comment. 2959 * gimple-fold.c (gimple_fold_builtin_strchr): Call 2960 check_nul_terminated_array. 2961 * tree-ssa-strlen.c (handle_builtin_strlen): Call 2962 check_nul_terminated_array. 2963 (handle_builtin_strchr): Same. 2964 (handle_builtin_string_cmp): Same. 2965 29662019-11-22 Martin Sebor <msebor@redhat.com> 2967 2968 PR tree-optimization/92501 2969 * gimple-fold.c ((gimple_fold_builtin_string_compare): Let strncmp 2970 handle unterminated arrays. Rename local variables for clarity. 2971 29722019-11-22 Andrew Stubbs <ams@codesourcery.com> 2973 2974 * config/gcn/gcn.c (gcn_hsa_declare_function_name): Calculate 2975 granulated_sgprs according to architecture. 2976 29772019-11-22 Jan Hubicka <jh@suse.cz> 2978 2979 * ggc-page.c (ggc_collect): Call memory_block_pool::trim. 2980 * memory-block.cc (memory_block_pool::clear_free_list): Rename to ... 2981 (memory_block_pool::reduce_free_list): ... this one. 2982 (memory_block_pool::trim): New static function. 2983 * memory-block.h (memory_block_pool::freelist_size): New constant 2984 (memory_block_pool::clear_free_list): Rename to ... 2985 (memory_block_pool::reduce_free_list): ... this one. 2986 (memory_block_pool::trim): Declare. 2987 29882019-11-22 Richard Sandiford <richard.sandiford@arm.com> 2989 2990 * tree-vect-stmts.c (vect_model_simple_cost): Take an optional 2991 vect_cost_for_stmt. 2992 (vectorizable_condition): Calculate the cost of EXTRACT_LAST_REDUCTION 2993 here rather than... 2994 * tree-vect-loop.c (vect_model_reduction_cost): ...here. 2995 29962019-11-22 Claudiu Zissulescu <claziss@synopsys.com> 2997 2998 * config/arc/arc.md (bic_f): Use cc_set_register predicate. 2999 (bic_cmp0_noout): New pattern. 3000 (bic_cmp0): Likewise. 3001 (neg_scc_insn): Remove pattern. 3002 (not_scc_insn): Likewise. 3003 30042019-11-21 Harald van Dijk <harald@gigawatt.nl> 3005 3006 * doc/invoke.texi (-fcommon): Remove claim about ISO C. 3007 30082019-11-21 Joseph Myers <joseph@codesourcery.com> 3009 3010 * gimplify.c (expand_FALLTHROUGH_r, expand_FALLTHROUGH): Use 3011 pedwarn instead of warning_at for fallthrough not preceding a case 3012 or default label. 3013 30142019-11-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 3015 3016 PR tree-optimization/92608 3017 * tree-ssa-loop-unswitch.c (find_loop_guard): Use safe_dyn_cast instead 3018 of dyn_cast. 3019 30202019-11-21 Segher Boessenkool <segher@kernel.crashing.org> 3021 3022 * config/rs6000/predicates.md (extra_insn_branch_comparison_operator): 3023 New predicate. 3024 * config/rs6000/rs6000-protos.h (rs6000_emit_fp_cror): New declaration. 3025 * config/rs6000/rs6000.c (rs6000_generate_compare): Don't do anything 3026 special for FP comparisons that need a cror instruction eventually. 3027 (rs6000_emit_fp_cror): New function. 3028 (rs6000_emit_sCOND): Expand all floating point comparisons to one 3029 instruction, for normal FP modes, with HONOR_NANS. 3030 (rs6000_emit_cbranch): Reformat. 3031 * config/rs6000/rs6000.md (fp_rev): New iterator. 3032 (fp_two): New iterator. 3033 *<code><mode>_cc for fp_rev and GPR: New define_insn_and_split. 3034 *<code><mode>_cc for fp_two and GPR: New define_insn_and_split. 3035 *cbranch_2insn: New define_insn_and_split. 3036 30372019-11-21 Richard Sandiford <richard.sandiford@arm.com> 3038 3039 PR tree-optimization/92526 3040 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Reject 3041 versioning for alignment if the accesses do not have a consistent 3042 mask, rather than asserting that the masks are consistent. 3043 30442019-11-21 Richard Sandiford <richard.sandiford@arm.com> 3045 3046 PR tree-optimization/92595 3047 * tree-vect-stmts.c (get_group_load_store_type): Add a VECTOR_MODE_P 3048 check. 3049 (vectorizable_store, vectorizable_load): Likewise. 3050 30512019-11-21 Jan Hubicka <jh@suse.cz> 3052 3053 * ipa-inline.c (update_callee_keys): Add parameter UPDATE_SINCE. 3054 (resolve_noninline_speculation, inline_small_functions): Avoid 3055 redundant updates. 3056 30572019-11-21 Richard Biener <rguenther@suse.de> 3058 3059 * lra.c (lra_insn_recog_data_pool): New. 3060 (free_insn_recog_data): Adjust. 3061 (finish_insn_recog_data): Release lra_insn_recog_data_pool. 3062 (lra_set_insn_recog_data): Allocate from lra_insn_recog_data_pool. 3063 30642019-11-21 Richard Biener <rguenther@suse.de> 3065 3066 PR tree-optimization/92596 3067 * tree-vect-slp.c (vect_build_slp_tree): Fix pasto. 3068 30692019-11-21 Jan Hubicka <jh@suse.cz> 3070 3071 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Be 3072 ready for some vectors to not be allocated. 3073 (evaluate_properties_for_edge): Document better; make 3074 known_vals and known_aggs caller allocated; avoid determining 3075 values of parameters which are not used. 3076 (ipa_merge_fn_summary_after_inlining): Pre allocate known_vals and 3077 known_aggs. 3078 * ipa-inline-analysis.c (do_estimate_edge_time): Likewise. 3079 (do_estimate_edge_size): Likewise. 3080 (do_estimate_edge_hints): Likewise. 3081 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do not early exit when 3082 values are not known. 3083 (ipa_release_agg_values): Add option to not release vector itself. 3084 * ipa-prop.h (ipa_release_agg_values): Add parameter RELEASE_VECTOR. 3085 30862019-11-21 Richard Biener <rguenther@suse.de> 3087 3088 * cfgloop.h (loop_iterator::~loop_iterator): Remove. 3089 (loop_iterator::to_visit): Use an auto_vec with internal storage. 3090 (loop_iterator::loop_iterator): Adjust. 3091 * cfganal.c (compute_dominance_frontiers_1): Fold into... 3092 (compute_dominance_frontiers): ... this. Hoist invariant 3093 get_immediate_dominator call. 3094 (compute_idf): Use a work-set instead of a work-list for more 3095 optimal iteration order and duplicate avoidance. 3096 * tree-into-ssa.c (mark_phi_for_rewrite): Avoid re-allocating 3097 the vector all the time, instead pre-allocate the vector only 3098 once. 3099 (delete_update_ssa): Simplify. 3100 * vec.h (va_heap::release): Disable -Wfree-nonheap-object around it. 3101 31022019-11-21 Jakub Jelinek <jakub@redhat.com> 3103 3104 PR tree-optimization/91355 3105 * tree-ssa-sink.c (select_best_block): Use >= rather than > 3106 for early_bb scaled count with best_bb count comparison. 3107 3108 * ipa-fnsummary.h (enum ipa_hints_vals): Fix comment typo, 3109 preffer -> prefer. 3110 * ipa-inline.c (edge_badness): Likewise. 3111 * lto-streamer.h (class lto_location_cache): Likewise. 3112 * tree-ssa-sink.c (select_best_block): Likewise. Fix comment typos, 3113 gratutious -> gratuitous. 3114 31152019-11-21 Richard Biener <rguenther@suse.de> 3116 3117 Revert 3118 2019-09-17 Richard Biener <rguenther@suse.de> 3119 3120 PR tree-optimization/91790 3121 * tree-vect-stmts.c (vectorizable_load): For BB vectorization 3122 use the correct DR for setting up realignment. 3123 31242019-11-21 Richard Biener <rguenther@suse.de> 3125 3126 * tree-ssa-structalias.c (equiv_class_hasher): Change to nofree. 3127 (equiv_class_obstack): New. 3128 (equiv_class_lookup_or_add): Allocate from equiv_class_obstack. 3129 (perform_var_substitution): Initialize equiv_class_obstack. 3130 (free_var_substitution_info): Free equiv_class_obstack. 3131 31322019-11-20 Jan Hubicka <jh@suse.cz> 3133 3134 * ipa-inline.c (want_early_inline_function_p): Do not estimate 3135 edge growth when callee function is very large. 3136 * ipa-inline.h (estimate_min_edge_growth): New. 3137 31382019-11-20 Jan Hubicka <jh@suse.cz> 3139 3140 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Allow 3141 negative time in calls summary; correct roundoff errors 3142 leading to negative times. 3143 (ipa_merge_fn_summary_after_inlining): Update calls size time table 3144 if present. 3145 (ipa_update_overall_fn_summary): Add RESET parameter. 3146 * ipa-fnsummary.h (ipa_update_overall_fn_summary): Update prototype. 3147 * ipa-inline-transform.c (inline_call): Enable incremental updates. 3148 31492019-11-20 Richard Sandiford <richard.sandiford@arm.com> 3150 3151 * tree-vect-slp.c (vect_schedule_slp_instance): Restore stmt 3152 def types for two-operation SLP. 3153 31542019-11-20 Richard Sandiford <richard.sandiford@arm.com> 3155 3156 PR testsuite/92366 3157 * doc/sourcebuild.texi (vect_char_add): Document. 3158 31592019-11-20 Alexandre Oliva <oliva@adacore.com> 3160 3161 * function.h (CALLEE_FROM_CGRAPH_P): Remove. 3162 * function.c (record_final_call): Record even calls that might 3163 have been in the cgraph. 3164 * toplev.c (dump_final_node_vcg): Skip iteration over cgraph 3165 callees. 3166 31672019-11-20 Janne Blomqvist <jb@gcc.gnu.org> 3168 3169 * configure.ac: Use https for gcc.gnu.org 3170 * configure: Regenerated. 3171 * doc/install.texi: Use https for gcc.gnu.org. 3172 * doc/sourcebuild.texi: Likewise. 3173 31742019-11-20 Julian Brown <julian@codesourcery.com> 3175 3176 * config/gcn/gcn.c (gcn_asm_output_symbol_ref): Handle null cfun. 3177 31782019-11-20 Jan Hubicka <jh@suse.cz> 3179 3180 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Add CALL 3181 parameter and update call_size_time_table. 3182 (ipa_fn_summary::max_size_time_table_size): New constant. 3183 (estimate_calls_size_and_time_1): Break out from ... 3184 (estimate_calls_size_and_time): ... here; implement summary production. 3185 (summarize_calls_size_and_time): New function. 3186 (ipa_call_context::estimate_size_and_time): Bypass 3187 estimate_calls_size_and_time for leaf functions. 3188 (ipa_update_overall_fn_summary): Likewise. 3189 * ipa-fnsummary.h (call_size_time_table): New. 3190 (ipa_fn_summary::account_size_time): Update prototype. 3191 31922019-11-20 Joseph Myers <joseph@codesourcery.com> 3193 3194 * doc/invoke.texi (-Wc11-c2x-compat): Document. 3195 31962019-11-20 Wilco Dijkstra <wdijkstr@arm.com> 3197 3198 PR85678 3199 * common.opt (fcommon): Change init to 1. 3200 * doc/invoke.texi (-fcommon): Update documentation. 3201 32022019-11-20 Jan Hubicka <jh@suse.cz> 3203 3204 * fibonacci_heap.h (fibonacci_heap<K,V>::consolidate): Turn auto_vec 3205 to ordinary array. 3206 32072019-11-20 Jan Hubicka <jh@suse.cz> 3208 3209 * fibonacci_heap.h (fibonacci_heap<K,V>::fibonacci_heap): 3210 Add allocator parameter. 3211 (fibonacci_heap<K,V>::~fibonacci_heap): Optimize destruction. 3212 (fibonacci_heap<K,V>::m_allocator): New. 3213 (fibonacci_heap<K,V>::m_own_allocator): New. 3214 (fibonacci_heap<K,V>::insert): Use allocator. 3215 (fibonacci_heap<K,V>::extract_min): Likewise. 3216 (fibonacci_heap<K,V>::union_with): Assert that both heaps share 3217 allocator. 3218 (fibonacci_heap<K,V>::consolidate): Allocate constant sized vector 3219 on stack. 3220 * fibonacci_heap.c: Include alloc-pool 3221 (test_empty_heap): Initialize allocator. 3222 (test_union): Likewise. 3223 * bb-reorder.c: Include alloc-pool.h. 3224 * tracer.c: Inlclude alloc-pool.h. 3225 32262019-11-20 Jan Hubicka <jh@suse.cz> 3227 3228 * lto-streamer-out.c (DFS::sccstack): Turn into auto-vec. 3229 Preallocate for 32 entries. 3230 (DFS::worklist): Likewise. 3231 (DFS::DFS): Do not initialize sccstack and worklist. 3232 (DFS::~DFS): Do not release sccstack. 3233 32342019-11-20 Segher Boessenkool <segher@kernel.crashing.org> 3235 3236 PR target/92573 3237 * config/rs6000/dfp.md (dfptstsfi_<code>_<mode> for DFP_TEST and DDTD): 3238 Handle UNORDERED if !HONOR_NANS. 3239 32402019-11-20 Jan Hubicka <jh@suse.cz> 3241 3242 * ipa-inline.c (wrapper_heuristics_may_apply): Break out from ... 3243 (edge_badness): ... here. 3244 (inline_small_functions): Use monotonicity of badness calculation 3245 to avoid redundant updates. 3246 32472019-11-20 Richard Biener <rguenther@suse.de> 3248 3249 * tree-vect-slp.c (vect_analyze_slp_instance): Dump 3250 constructors we are actually analyzing. 3251 (vect_slp_check_for_constructors): Do not vectorize uniform 3252 constuctors, do not dump here. 3253 32542019-11-20 Richard Biener <rguenther@suse.de> 3255 3256 PR tree-optimization/92537 3257 * tree-vect-slp.c (vect_analyze_slp_instance): Move CTOR 3258 vectorization validity check... 3259 (vect_slp_analyze_operations): ... here. 3260 32612019-11-20 Claudiu Zissulescu <claziss@synopsys.com> 3262 3263 * config/arc/arc-protos.h (make_pass_arc_ifcvt): Declare. 3264 (make_pass_arc_predicate_delay_insns): Likewise. 3265 * config/arc/arc.c (class pass_arc_ifcvt): Reformat text, add gate 3266 method, remove clone. 3267 (class pass_arc_predicate_delay_insns): Likewise. 3268 (arc_init): Remove registering of ARC specific passes. 3269 * config/arc/t-arc (PASSES_EXTRA): Add arc-passes.def. 3270 * config/arc/arc-passes.def: New file. 3271 32722019-11-20 Jakub Jelinek <jakub@redhat.com> 3273 3274 PR middle-end/90840 3275 * expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM 3276 and has a mode that doesn't have corresponding integral type. 3277 3278 PR target/90867 3279 * config/i386/i386-options.c (ix86_valid_target_attribute_tree): Don't 3280 clear opts->x_ix86_isa_flags{,2} here... 3281 (ix86_valid_target_attribute_inner_p): ... but here when seeing 3282 arch=. Also clear opts->x_ix86_isa_flags{,2}_explicit. 3283 3284 PR c/90898 3285 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove 3286 assertion. 3287 (insert_clobbers_for_var): Fix a typo in function comment. 3288 32892019-11-20 Jiangning Liu <jiangning.liu@amperecomputing.com> 3290 Jakub Jelinek <jakub@redhat.com> 3291 3292 PR middle-end/91195 3293 * tree-ssa-phiopt.c (cond_store_replacement): Move lhs unsharing 3294 earlier. Set TREE_NO_WARNING on the rhs1 of the artificially added 3295 load. 3296 32972019-11-20 Georg-Johann Lay <avr@gjlay.de> 3298 3299 Make 0-series device specs work with older versions of avr-gcc. 3300 3301 PR target/92545 3302 * config/avr/specs.h (LINK_SPEC) <%(link_pm_base_address)>: Remove. 3303 * config/avr/gen-avr-mmcu-specs.c (print_mcu) 3304 <*link_pm_base_address>: Don't write spec. 3305 <*link_arch>: Add --defsym=__RODATA_PM_OFFSET__= as needed. 3306 33072019-11-20 Richard Biener <rguenther@suse.de> 3308 3309 PR c/92088 3310 * builtins.c (compute_objsize): Deal with VLAs. 3311 33122019-11-19 Pat Haugen <pthaugen@us.ibm.com> 3313 3314 * config/rs6000/rs6000.c (move_to_end_of_ready): New, factored out 3315 from common code. 3316 (power6_sched_reorder2): Factored out from rs6000_sched_reorder2, 3317 call new function. 3318 (power9_sched_reorder2): Call new function. 3319 (rs6000_sched_reorder2): Likewise. 3320 33212019-11-18 Jan Hubicka <jh@suse.cz> 3322 3323 * ipa-fnsummary.c (estimate_edge_size_and_time): Drop parameter PROB. 3324 (estimate_calls_size_and_time): Update. 3325 33262019-11-18 Jan Hubicka <jh@suse.cz> 3327 3328 * ipa-inline.c (inlining_speedup): New function. 3329 (edge_badness): Use it. 3330 33312019-11-19 Zoran Jovanovic <zoran.jovanovic@mips.com> 3332 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 3333 3334 * config/mips/mips-msa.md (msa_<msabr>_<msafmt_f>, msa_<msabr>_v_<msafmt_f>): 3335 Mark as not having "likely" version. 3336 * config/mips/mips.md (insn_count): The simd_div instruction with 3337 TARGET_CHECK_ZERO_DIV consists of 3 instructions. 3338 (can_delay): Exclude simd_branch. 3339 (defile_delay *): Add simd_branch instructions. 3340 They have one regular delay slot. 3341 33422019-11-19 Richard Sandiford <richard.sandiford@arm.com> 3343 3344 Revert: 3345 2019-11-18 Richard Sandiford <richard.sandiford@arm.com> 3346 3347 * cse.c (cse_insn): Delete no-op register moves too. 3348 * simplify-rtx.c (comparison_to_mask): Handle unsigned comparisons. 3349 Take a second comparison to control the value for NE. 3350 (mask_to_comparison): Handle unsigned comparisons. 3351 (simplify_logical_relational_operation): Likewise. Update call 3352 to comparison_to_mask. Handle AND if !HONOR_NANs. 3353 (simplify_binary_operation_1): Call the above for AND too. 3354 33552019-11-19 Martin Liska <mliska@suse.cz> 3356 3357 * toplev.c (general_init): Move the call... 3358 (toplev::main): ... here as we need init_options_struct 3359 being called. 3360 33612019-11-19 Wilco Dijkstra <wdijkstr@arm.com> 3362 3363 PR target/79262 3364 * config/aarch64/aarch64.c (generic_vector_cost): Adjust 3365 vec_to_scalar_cost. 3366 33672019-11-19 Wilco Dijkstra <wdijkstr@arm.com> 3368 3369 * config/arm/arm-cpus.in (armv7): Set tune to Cortex-A53. 3370 (armv7-a): Likewise. 3371 (armv7ve): Likewise. 3372 33732019-11-19 Richard Biener <rguenther@suse.de> 3374 3375 PR tree-optimization/92581 3376 * tree-vect-loop.c (vect_create_epilog_for_reduction): For 3377 condition reduction chains gather all conditions involved 3378 for computing the index reduction vector. 3379 33802019-11-19 Dennis Zhang <dennis.zhang@arm.com> 3381 3382 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add 3383 AARCH64_MEMTAG_BUILTIN_START, AARCH64_MEMTAG_BUILTIN_IRG, 3384 AARCH64_MEMTAG_BUILTIN_GMI, AARCH64_MEMTAG_BUILTIN_SUBP, 3385 AARCH64_MEMTAG_BUILTIN_INC_TAG, AARCH64_MEMTAG_BUILTIN_SET_TAG, 3386 AARCH64_MEMTAG_BUILTIN_GET_TAG, and AARCH64_MEMTAG_BUILTIN_END. 3387 (aarch64_init_memtag_builtins): New. 3388 (AARCH64_INIT_MEMTAG_BUILTINS_DECL): New macro. 3389 (aarch64_general_init_builtins): Call aarch64_init_memtag_builtins. 3390 (aarch64_expand_builtin_memtag): New. 3391 (aarch64_general_expand_builtin): Call aarch64_expand_builtin_memtag. 3392 (AARCH64_BUILTIN_SUBCODE): New macro. 3393 (aarch64_resolve_overloaded_memtag): New. 3394 (aarch64_resolve_overloaded_builtin_general): New. Call 3395 aarch64_resolve_overloaded_memtag to handle overloaded MTE builtins. 3396 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define 3397 __ARM_FEATURE_MEMORY_TAGGING when enabled. 3398 (aarch64_resolve_overloaded_builtin): Call 3399 aarch64_resolve_overloaded_builtin_general. 3400 * config/aarch64/aarch64-protos.h 3401 (aarch64_resolve_overloaded_builtin_general): New declaration. 3402 * config/aarch64/aarch64.h (AARCH64_ISA_MEMTAG): New macro. 3403 (TARGET_MEMTAG): Likewise. 3404 * config/aarch64/aarch64.md (UNSPEC_GEN_TAG): New unspec. 3405 (UNSPEC_GEN_TAG_RND, and UNSPEC_TAG_SPACE): Likewise. 3406 (irg, gmi, subp, addg, ldg, stg): New instructions. 3407 * config/aarch64/arm_acle.h (__arm_mte_create_random_tag): New macro. 3408 (__arm_mte_exclude_tag, __arm_mte_ptrdiff): Likewise. 3409 (__arm_mte_increment_tag, __arm_mte_set_tag): Likewise. 3410 (__arm_mte_get_tag): Likewise. 3411 * config/aarch64/predicates.md (aarch64_memtag_tag_offset): New. 3412 (aarch64_granule16_uimm6, aarch64_granule16_simm9): New. 3413 * config/arm/types.md (memtag): New. 3414 * doc/invoke.texi (-memtag): Update description. 3415 34162019-11-19 Richard Henderson <richard.henderson@linaro.org> 3417 3418 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro 3419 to define __GCC_ASM_FLAG_OUTPUTS__. 3420 * config/arm/arm.c (thumb1_md_asm_adjust): New function. 3421 (arm_option_params_internal): Swap out targetm.md_asm_adjust 3422 depending on TARGET_THUMB1. 3423 * doc/extend.texi (FlagOutputOperands): Document thumb1 restriction. 3424 34252019-11-19 Jakub Jelinek <jakub@redhat.com> 3426 3427 PR target/92549 3428 * config/i386/i386.md (peephole2 for *swap<mode>): New peephole2. 3429 3430 PR middle-end/91450 3431 * internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one 3432 operand is negative and one non-negative, compare the non-negative 3433 one against 0 rather than comparing s1 & s2 against 0. Otherwise, 3434 don't compare (s1 & s2) == 0, but compare separately both s1 == 0 3435 and s2 == 0, unless one of them is known to be negative. Remove 3436 tem2 variable, use tem where tem2 has been used before. 3437 34382019-11-19 Eric Botcazou <ebotcazou@adacore.com> 3439 3440 * doc/invoke.texi (-gno-internal-reset-location-views): Fix typo. 3441 34422019-11-19 Jakub Jelinek <jakub@redhat.com> 3443 3444 PR tree-optimization/92557 3445 * omp-low.c (omp_clause_aligned_alignment): Punt if TYPE_MODE is not 3446 vmode rather than asserting it always is. 3447 34482019-11-19 Richard Biener <rguenther@suse.de> 3449 3450 PR tree-optimization/92554 3451 * tree-vect-loop.c (vect_create_epilog_for_reduction): Look 3452 for the actual condition stmt and deal with sign-changes. 3453 34542019-11-19 Richard Biener <rguenther@suse.de> 3455 3456 PR tree-optimization/92555 3457 * tree-vect-loop.c (vect_update_vf_for_slp): Also scan PHIs 3458 for non-SLP stmts. 3459 34602019-11-19 Martin Liska <mliska@suse.cz> 3461 3462 PR bootstrap/92540 3463 * config/riscv/riscv.c (riscv_address_insns): Initialize 3464 addr in order to remove boostrap -Wmaybe-uninitialized 3465 error. 3466 34672019-11-18 Martin Sebor <msebor@redhat.com> 3468 3469 PR tree-optimization/92493 3470 * gimple-ssa-sprintf.c (get_origin_and_offset): Remove spurious 3471 assignment. 3472 34732019-11-18 Giuliano Belinassi <giuliano.belinassi@usp.br> 3474 3475 * cfgloop.c (get_loop_body_in_custom_order): New. 3476 * cfgloop.h (get_loop_body_in_custom_order): New prototype. 3477 * tree-loop-distribution.c (class loop_distribution): New. 3478 (bb_top_order_cmp): Remove. 3479 (bb_top_order_cmp_r): New. 3480 (create_rdg_vertices): Move into class loop_distribution. 3481 (stmts_from_loop): Same as above. 3482 (update_for_merge): Same as above. 3483 (partition_merge_into): Same as above. 3484 (get_data_dependence): Same as above. 3485 (data_dep_in_cycle_p): Same as above. 3486 (update_type_for_merge): Same as above. 3487 (build_rdg_partition_for-vertex): Same as above. 3488 (classify_builtin_ldst): Same as above. 3489 (classify_partition): Same as above. 3490 (share_memory_accesses): Same as above. 3491 (rdg_build_partitions): Same as above. 3492 (pg_add_dependence_edges): Same as above. 3493 (build_partition_graph): Same as above. 3494 (merge_dep_scc_partitions): Same as above. 3495 (break_alias_scc_partitions): Same as above. 3496 (finalize_partitions): Same as above. 3497 (distribute_loop): Same as above. 3498 (bb_top_order_init): New method 3499 (bb_top_order_destroy): New method. 3500 (get_bb_top_order_index_size): New method. 3501 (get_bb_top_order_index_index): New method. 3502 (get_bb_top_order_index_index): New method. 3503 (loop_distribution::execute): New method. 3504 (pass_loop_distribution::execute): Instantiate loop_distribution. 3505 35062019-11-18 Jan Hubicka <jh@suse.cz> 3507 3508 PR ipa/92508 3509 * ipa-inline.c (inline_small_functions): Add new edges after reseting 3510 caches. 3511 * ipa-inline-analysis.c (do_estimate_edge_time): Fix sanity check. 3512 35132019-11-18 Richard Sandiford <richard.sandiford@arm.com> 3514 3515 * doc/sourcebuild.texi (vect_check_ptrs): Document. 3516 * optabs.def (check_raw_ptrs_optab, check_war_ptrs_optab): New optabs. 3517 * doc/md.texi: Document them. 3518 * internal-fn.def (IFN_CHECK_RAW_PTRS, IFN_CHECK_WAR_PTRS): New 3519 internal functions. 3520 * internal-fn.h (internal_check_ptrs_fn_supported_p): Declare. 3521 * internal-fn.c (check_ptrs_direct): New macro. 3522 (expand_check_ptrs_optab_fn): Likewise. 3523 (direct_check_ptrs_optab_supported_p): Likewise. 3524 (internal_check_ptrs_fn_supported_p): New fuction. 3525 * tree-data-ref.c: Include internal-fn.h. 3526 (create_ifn_alias_checks): New function. 3527 (create_intersect_range_checks): Use it. 3528 * config/aarch64/iterators.md (SVE2_WHILE_PTR): New int iterator. 3529 (optab, cmp_op): Handle it. 3530 (raw_war, unspec): New int attributes. 3531 * config/aarch64/aarch64.md (UNSPEC_WHILERW, UNSPEC_WHILE_WR): New 3532 constants. 3533 * config/aarch64/predicates.md (aarch64_bytes_per_sve_vector_operand): 3534 New predicate. 3535 * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): New 3536 expander. 3537 (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): New 3538 pattern. 3539 35402019-11-18 Richard Sandiford <richard.sandiford@arm.com> 3541 3542 * tree.c (build_vector_from_ctor): Directly return a zero vector for 3543 empty constructors. 3544 35452019-11-18 Richard Sandiford <richard.sandiford@arm.com> 3546 3547 * cse.c (cse_insn): Delete no-op register moves too. 3548 * simplify-rtx.c (comparison_to_mask): Handle unsigned comparisons. 3549 Take a second comparison to control the value for NE. 3550 (mask_to_comparison): Handle unsigned comparisons. 3551 (simplify_logical_relational_operation): Likewise. Update call 3552 to comparison_to_mask. Handle AND if !HONOR_NANs. 3553 (simplify_binary_operation_1): Call the above for AND too. 3554 35552019-11-18 Richard Sandiford <richard.sandiford@arm.com> 3556 3557 * fold-const.c (native_encode_vector): Turn into a wrapper function, 3558 splitting the main code out into... 3559 (native_encode_vector_part): ...this new function. 3560 (native_decode_vector_tree): New function. 3561 (fold_view_convert_vector_encoding): Likewise. 3562 (fold_view_convert_expr): Use it for converting VECTOR_CSTs 3563 to VECTOR_TYPEs. 3564 35652019-11-18 Richard Sandiford <richard.sandiford@arm.com> 3566 3567 * tree-data-ref.c (create_intersect_range_checks_index): If the 3568 alias pair describes simple WAW and WAR dependencies, just check 3569 whether the first B access overlaps later A accesses. 3570 (create_waw_or_war_checks): New function that performs the same 3571 optimization on addresses. 3572 (create_intersect_range_checks): Call it. 3573 35742019-11-18 Richard Sandiford <richard.sandiford@arm.com> 3575 3576 * lra-constraints.c (valid_address_p): Take the operand and a 3577 constraint as argument. If the operand is a MEM and the constraint 3578 is a memory constraint, check whether the eliminated form of the 3579 MEM already satisfies the constraint. 3580 (process_address_1): Update calls accordingly. 3581 35822019-11-18 Tom Tromey <tromey@adacore.com> 3583 3584 * doc/tm.texi: Rebuild. 3585 * doc/tm.texi.in (Misc): Don't document MODIFY_JNI_METHOD_CALL. 3586 * config/i386/cygming.h (MODIFY_JNI_METHOD_CALL): Don't define. 3587 35882019-11-18 Richard Biener <rguenther@suse.de> 3589 3590 PR tree-optimization/92516 3591 * tree-vect-slp.c (vect_analyze_slp_instance): Add bst_map 3592 argument, hoist bst_map creation/destruction to ... 3593 (vect_analyze_slp): ... here, forming a true graph with 3594 SLP instances being the entries. 3595 (vect_detect_hybrid_slp_stmts): Remove wrapper. 3596 (vect_detect_hybrid_slp): Use one visited set for all 3597 graph entries. 3598 (vect_slp_analyze_node_operations): Simplify visited/lvisited 3599 to hash-sets of slp_tree. 3600 (vect_slp_analyze_operations): Likewise. 3601 (vect_bb_slp_scalar_cost): Remove wrapper. 3602 (vect_bb_vectorization_profitable_p): Use one visited set for 3603 all graph entries. 3604 (vect_schedule_slp_instance): Elide bst_map use. 3605 (vect_schedule_slp): Likewise. 3606 36072019-11-18 Richard Biener <rguenther@suse.de> 3608 3609 * tree-vect-slp.c (vect_analyze_slp_instance): When a CTOR 3610 was vectorized with just external refs fail. 3611 36122019-11-18 Martin Liska <mliska@suse.cz> 3613 3614 PR ipa/92525 3615 * ipa-icf.c (sem_function::init): Unset m_checker 3616 at the end of the function. 3617 36182019-11-18 Richard Biener <rguenther@suse.de> 3619 3620 PR tree-optimization/92558 3621 * tree-vect-loop.c (vect_create_epilog_for_reduction): When 3622 reducting the width of a reduction vector def update new_phis. 3623 36242019-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com> 3625 3626 * configure.ac (gcc_cv_target_ldbl128): Set for powerpc*-*-linux-musl* 3627 and s390*-*-linux-musl* targets. 3628 * configure: Regenerate. 3629 36302019-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com> 3631 3632 * config/s390/linux.h (MUSL_DYNAMIC_LINKER32): Define. 3633 (MUSL_DYNAMIC_LINKER64): Define. 3634 36352019-11-18 Martin Liska <mliska@suse.cz> 3636 3637 * dbgcnt.c (dbg_cnt_set_limit_by_name): Provide error 3638 message for an unknown counter. 3639 (dbg_cnt_process_single_pair): Support 0 as minimum value. 3640 (dbg_cnt_process_opt): Remove unreachable code. 3641 36422019-11-18 Martin Liska <mliska@suse.cz> 3643 3644 PR ipa/92529 3645 * ipa-icf-gimple.c (func_checker::compare_gimple_assign): 3646 Compare LHS types of NOP_EXPR. 3647 36482019-11-18 Matthew Malcomson <matthew.malcomson@arm.com> 3649 3650 * run-rtl-passes.c (run_rtl_passes): Accept and handle empty 3651 "initial_pass_name" argument -- by running "*clean_state" pass. 3652 Also free the "initial_pass_name" when done. 3653 36542019-11-18 Richard Biener <rguenther@suse.de> 3655 3656 PR rtl-optimization/92462 3657 * alias.c (find_base_term): Restrict the look through ANDs. 3658 (find_base_value): Likewise. 3659 36602019-11-18 Georg-Johann Lay <avr@gjlay.de> 3661 3662 Add support for AVR devices from the 0-series. 3663 3664 PR target/92545 3665 * config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field. 3666 * config/avr/avr-devices.c (avr_mcu_types): Adjust initializers. 3667 * config/avr/avr-mcus.def (AVR_MCU): Add respective field. 3668 * config/avr/specs.h (LINK_SPEC) <%(link_pm_base_address)>: Add. 3669 * config/avr/gen-avr-mmcu-specs.c (print_mcu) 3670 <*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code 3671 for spec definitions. 3672 * doc/avr-mmcu.texi: Regenerate. 3673 36742019-11-18 Hongtao Liu <hongtao.liu@intel.com> 3675 3676 PR target/92448 3677 * config/i386/i386-expand.c (ix86_expand_set_or_cpymem): 3678 Replace TARGET_AVX128_OPTIMAL with TARGET_AVX256_SPLIT_REGS. 3679 * config/i386/i386-option.c (ix86_vec_cost): Ditto. 3680 (ix86_reassociation_width): Ditto. 3681 * config/i386/i386-options.c (ix86_option_override_internal): 3682 Replace TARGET_AVX128_OPTIAML with 3683 ix86_tune_features[X86_TUNE_AVX128_OPTIMAL] 3684 * config/i386/i386.h (TARGET_AVX256_SPLIT_REGS): New macro. 3685 (TARGET_AVX128_OPTIMAL): Deleted. 3686 * config/i386/x86-tune.def (X86_TUNE_AVX256_SPLIT_REGS): New 3687 DEF_TUNE. 3688 36892019-11-16 Segher Boessenkool <segher@kernel.crashing.org> 3690 3691 * config/rs6000/rs6000.md (cceq_ior_compare): Rename to... 3692 (@cceq_ior_compare_<mode> for GPR): ... this. Allow GPR instead of 3693 just SI. 3694 (cceq_rev_compare): Rename to... 3695 (@cceq_rev_compare_<mode> for GPR): ... this. Allow GPR instead of 3696 just SI. 3697 (define_split for <bd>tf_<mode>): Add SImode first argument to 3698 gen_cceq_ior_compare. 3699 37002019-11-16 Segher Boessenkool <segher@kernel.crashing.org> 3701 3702 * common/config/powerpcspe: Delete. 3703 37042019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3705 3706 * config/aarch64/aarch64-sve.md (aarch64_wrffr): Wrap the FFRT 3707 output in UNSPEC_WRFFR. 3708 37092019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3710 3711 * tree-data-ref.c (create_intersect_range_checks_index): Rewrite 3712 the index tests to have the form (unsigned T) (B - A + bias) <= limit. 3713 37142019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3715 3716 * tree-data-ref.c (create_intersect_range_checks_index) 3717 (create_intersect_range_checks): Print dump messages. 3718 37192019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3720 3721 * tree-data-ref.c (dump_alias_pair): New function. 3722 (prune_runtime_alias_test_list): Use it to dump each merged alias pair. 3723 37242019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3725 3726 * tree-data-ref.h (DR_ALIAS_MIXED_STEPS): New flag. 3727 * tree-data-ref.c (prune_runtime_alias_test_list): Set it when 3728 merging data references with different steps. 3729 (create_intersect_range_checks_index): Take a 3730 dr_with_seg_len_pair_t instead of two dr_with_seg_lens. 3731 Bail out if DR_ALIAS_MIXED_STEPS is set. 3732 (create_intersect_range_checks): Take a dr_with_seg_len_pair_t 3733 instead of two dr_with_seg_lens. Update call to 3734 create_intersect_range_checks_index. 3735 (create_runtime_alias_checks): Update call accordingly. 3736 37372019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3738 3739 * tree-data-ref.h (DR_ALIAS_RAW, DR_ALIAS_WAR, DR_ALIAS_WAW) 3740 (DR_ALIAS_ARBITRARY, DR_ALIAS_SWAPPED, DR_ALIAS_UNSWAPPED): New flags. 3741 (dr_with_seg_len_pair_t::sequencing): New enum. 3742 (dr_with_seg_len_pair_t::flags): New member variable. 3743 (dr_with_seg_len_pair_t::dr_with_seg_len_pair_t): Take a sequencing 3744 parameter and initialize the flags member variable. 3745 * tree-loop-distribution.c (compute_alias_check_pairs): Update 3746 call accordingly. 3747 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise. 3748 Ensure the two data references in an alias pair are in statement 3749 order, if there is a defined order. 3750 * tree-data-ref.c (prune_runtime_alias_test_list): Use 3751 DR_ALIAS_SWAPPED and DR_ALIAS_UNSWAPPED to record whether we've 3752 swapped the references in a dr_with_seg_len_pair_t. OR together 3753 the flags when merging two dr_with_seg_len_pair_ts. After merging, 3754 try to restore the original dr_with_seg_len order, updating the 3755 flags if that fails. 3756 37572019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3758 3759 * tree-data-ref.c (prune_runtime_alias_test_list): Delay 3760 swapping the dr_as based on init values until we've decided 3761 whether to merge them. 3762 37632019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3764 3765 * tree-data-ref.c (prune_runtime_alias_test_list): Sort the 3766 two accesses in each dr_with_seg_len_pair_t before trying to 3767 combine separate dr_with_seg_len_pair_ts. 3768 * tree-loop-distribution.c (compute_alias_check_pairs): Don't do 3769 that here. 3770 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise. 3771 37722019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3773 3774 * config/aarch64/aarch64-sve.md 3775 (scatter_store<SVE_FULL_SD:mode><v_int_equiv>): Extend to... 3776 (scatter_store<SVE_24:mode><v_int_container>): ...this. 3777 (mask_scatter_store<SVE_FULL_S:mode><v_int_equiv>): Extend to... 3778 (mask_scatter_store<SVE_4:mode><v_int_equiv>): ...this. 3779 (mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>): Extend to... 3780 (mask_scatter_store<SVE_2:mode><v_int_equiv>): ...this. 3781 (*mask_scatter_store<mode><v_int_container>_<su>xtw_unpacked): New 3782 pattern. 3783 (*mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>_sxtw): Extend to... 3784 (*mask_scatter_store<SVE_2:mode><v_int_equiv>_sxtw): ...this. 3785 (*mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>_uxtw): Extend to... 3786 (*mask_scatter_store<SVE_2:mode><v_int_equiv>_uxtw): ...this. 3787 37882019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3789 3790 * config/aarch64/iterators.md (SVE_2BHSI, SVE_2HSDI, SVE_4BHI) 3791 (SVE_4HSI): New mode iterators. 3792 (ANY_EXTEND2): New code iterator. 3793 * config/aarch64/aarch64-sve.md 3794 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>): 3795 Extend to... 3796 (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>): 3797 ...this, handling extension to partial modes as well as full modes. 3798 Describe the extension as a predicated rather than unpredicated 3799 extension. 3800 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>): 3801 Likewise extend to... 3802 (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>): 3803 ...this, making the same adjustments. 3804 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw): 3805 Likewise extend to... 3806 (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_sxtw) 3807 ...this, making the same adjustments. 3808 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw): 3809 Likewise extend to... 3810 (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_uxtw) 3811 ...this, making the same adjustments. 3812 (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked): 3813 New pattern. 3814 (*aarch64_ldff1_gather<mode>_sxtw): Canonicalize to a constant 3815 extension predicate. 3816 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) 3817 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>) 3818 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw): 3819 Describe the extension as a predicated rather than unpredicated 3820 extension. 3821 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw): 3822 Likewise. Canonicalize to a constant extension predicate. 3823 * config/aarch64/aarch64-sve-builtins-base.cc 3824 (svld1_gather_extend_impl::expand): Add an extra predicate for 3825 the extension. 3826 (svldff1_gather_extend_impl::expand): Likewise. 3827 38282019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3829 3830 * config/aarch64/iterators.md (SVE_24, SVE_2, SVE_4): New mode 3831 iterators. 3832 * config/aarch64/aarch64-sve.md 3833 (gather_load<SVE_FULL_SD:mode><v_int_equiv>): Extend to... 3834 (gather_load<SVE_24:mode><v_int_container>): ...this. 3835 (mask_gather_load<SVE_FULL_S:mode><v_int_equiv>): Extend to... 3836 (mask_gather_load<SVE_4:mode><v_int_container>): ...this. 3837 (mask_gather_load<SVE_FULL_D:mode><v_int_equiv>): Extend to... 3838 (mask_gather_load<SVE_2:mode><v_int_container>): ...this. 3839 (*mask_gather_load<SVE_2:mode><v_int_container>_<su>xtw_unpacked): 3840 New pattern. 3841 (*mask_gather_load<SVE_FULL_D:mode><v_int_equiv>_sxtw): Extend to... 3842 (*mask_gather_load<SVE_2:mode><v_int_equiv>_sxtw): ...this. 3843 Allow the nominal extension predicate to be different from the 3844 load predicate. 3845 (*mask_gather_load<SVE_FULL_D:mode><v_int_equiv>_uxtw): Extend to... 3846 (*mask_gather_load<SVE_2:mode><v_int_equiv>_uxtw): ...this. 3847 38482019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3849 3850 * config/aarch64/aarch64-sve.md 3851 (trunc<SVE_HSDI:mode><SVE_PARTIAL_I:mode>2): New pattern. 3852 * config/aarch64/aarch64.c (aarch64_integer_truncation_p): New 3853 function. 3854 (aarch64_sve_adjust_stmt_cost): Call it. 3855 38562019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3857 3858 * config/aarch64/aarch64-sve.md 3859 (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>): 3860 (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) 3861 (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>): 3862 Combine into... 3863 (@aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): 3864 ...this new pattern, handling extension to partial modes as well 3865 as full modes. Describe the extension as a predicated rather than 3866 unpredicated extension. 3867 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>) 3868 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) 3869 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>): 3870 Combine into... 3871 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): 3872 ...this new pattern, handling extension to partial modes as well 3873 as full modes. Describe the extension as a predicated rather than 3874 unpredicated extension. 3875 * config/aarch64/aarch64-sve-builtins.cc 3876 (function_expander::use_contiguous_load_insn): Add an extra 3877 predicate for extending loads. 3878 * config/aarch64/aarch64.c (aarch64_extending_load_p): New function. 3879 (aarch64_sve_adjust_stmt_cost): Likewise. 3880 (aarch64_add_stmt_cost): Use aarch64_sve_adjust_stmt_cost to adjust 3881 the cost of SVE vector stmts. 3882 38832019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3884 3885 * config/aarch64/iterators.md (SVE_HSDI): New mode iterator. 3886 (narrower_mask): Handle VNx4HI, VNx2HI and VNx2SI. 3887 * config/aarch64/aarch64-sve.md 3888 (<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): New pattern. 3889 (*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise. 3890 (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Update 3891 comment. Avoid new narrower_mask ambiguity. 3892 (@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise. 3893 (*cond_uxt<mode>_2): Update comment. 3894 (*cond_uxt<mode>_any): Likewise. 3895 38962019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3897 3898 * config/aarch64/aarch64-modes.def: Define partial SVE vector 3899 float modes. 3900 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_mode): New 3901 function. 3902 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle the 3903 new vector float modes. 3904 (aarch64_sve_container_bits): New function. 3905 (aarch64_sve_pred_mode): Likewise. 3906 (aarch64_get_mask_mode): Use it. 3907 (aarch64_sve_element_int_mode): Handle structure modes and partial 3908 modes. 3909 (aarch64_sve_container_int_mode): New function. 3910 (aarch64_vectorize_related_mode): Return SVE modes when given 3911 SVE modes. Handle partial modes, taking the preferred number 3912 of units from the size of the given mode. 3913 (aarch64_hard_regno_mode_ok): Allow partial modes to be stored 3914 in registers. 3915 (aarch64_expand_sve_ld1rq): Use the mode form of aarch64_sve_pred_mode. 3916 (aarch64_expand_sve_const_vector): Handle partial SVE vectors. 3917 (aarch64_split_sve_subreg_move): Use the mode form of 3918 aarch64_sve_pred_mode. 3919 (aarch64_secondary_reload): Handle partial modes in the same way 3920 as full big-endian vectors. 3921 (aarch64_vector_mode_supported_p): Allow partial SVE vectors. 3922 (aarch64_autovectorize_vector_modes): Try unpacked SVE vectors, 3923 merging with the Advanced SIMD modes. If two modes have the 3924 same size, try the Advanced SIMD mode first. 3925 (aarch64_simd_valid_immediate): Use the container rather than 3926 the element mode for INDEX constants. 3927 (aarch64_simd_vector_alignment): Make the alignment of partial 3928 SVE vector modes the same as their minimum size. 3929 (aarch64_evpc_sel): Use the mode form of aarch64_sve_pred_mode. 3930 * config/aarch64/aarch64-sve.md (mov<SVE_FULL:mode>): Extend to... 3931 (mov<SVE_ALL:mode>): ...this. 3932 (movmisalign<SVE_FULL:mode>): Extend to... 3933 (movmisalign<SVE_ALL:mode>): ...this. 3934 (*aarch64_sve_mov<mode>_le): Rename to... 3935 (*aarch64_sve_mov<mode>_ldr_str): ...this. 3936 (*aarch64_sve_mov<SVE_FULL:mode>_be): Rename and extend to... 3937 (*aarch64_sve_mov<SVE_ALL:mode>_no_ldr_str): ...this. Handle 3938 partial modes regardless of endianness. 3939 (aarch64_sve_reload_be): Rename to... 3940 (aarch64_sve_reload_mem): ...this and enable for little-endian. 3941 Use aarch64_sve_pred_mode to get the appropriate predicate mode. 3942 (@aarch64_pred_mov<SVE_FULL:mode>): Extend to... 3943 (@aarch64_pred_mov<SVE_ALL:mode>): ...this. 3944 (*aarch64_sve_mov<SVE_FULL:mode>_subreg_be): Extend to... 3945 (*aarch64_sve_mov<SVE_ALL:mode>_subreg_be): ...this. 3946 (@aarch64_sve_reinterpret<SVE_FULL:mode>): Extend to... 3947 (@aarch64_sve_reinterpret<SVE_ALL:mode>): ...this. 3948 (*aarch64_sve_reinterpret<SVE_FULL:mode>): Extend to... 3949 (*aarch64_sve_reinterpret<SVE_ALL:mode>): ...this. 3950 (maskload<SVE_FULL:mode><vpred>): Extend to... 3951 (maskload<SVE_ALL:mode><vpred>): ...this. 3952 (maskstore<SVE_FULL:mode><vpred>): Extend to... 3953 (maskstore<SVE_ALL:mode><vpred>): ...this. 3954 (vec_duplicate<SVE_FULL:mode>): Extend to... 3955 (vec_duplicate<SVE_ALL:mode>): ...this. 3956 (*vec_duplicate<SVE_FULL:mode>_reg): Extend to... 3957 (*vec_duplicate<SVE_ALL:mode>_reg): ...this. 3958 (sve_ld1r<SVE_FULL:mode>): Extend to... 3959 (sve_ld1r<SVE_ALL:mode>): ...this. 3960 (vec_series<SVE_FULL_I:mode>): Extend to... 3961 (vec_series<SVE_I:mode>): ...this. 3962 (*vec_series<SVE_FULL_I:mode>_plus): Extend to... 3963 (*vec_series<SVE_I:mode>_plus): ...this. 3964 (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Avoid 3965 new VPRED ambiguity. 3966 (@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise. 3967 (add<SVE_FULL_I:mode>3): Extend to... 3968 (add<SVE_I:mode>3): ...this. 3969 * config/aarch64/iterators.md (SVE_ALL, SVE_I): New mode iterators. 3970 (Vetype, Vesize, VEL, Vel, vwcore): Handle partial SVE vector modes. 3971 (VPRED, vpred): Likewise. 3972 (Vctype): New iterator. 3973 (vw): Remove SVE modes. 3974 39752019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3976 3977 * config/aarch64/iterators.md (SVE_PARTIAL): Rename to... 3978 (SVE_PARTIAL_I): ...this. 3979 * config/aarch64/aarch64-sve.md: Apply the above renaming throughout. 3980 39812019-11-16 Richard Sandiford <richard.sandiford@arm.com> 3982 3983 * config/aarch64/iterators.md (SVE_ALL): Rename to... 3984 (SVE_FULL): ...this. 3985 (SVE_I): Rename to... 3986 (SVE_FULL_I): ...this. 3987 (SVE_F): Rename to... 3988 (SVE_FULL_F): ...this. 3989 (SVE_BHSI): Rename to... 3990 (SVE_FULL_BHSI): ...this. 3991 (SVE_HSD): Rename to... 3992 (SVE_FULL_HSD): ...this. 3993 (SVE_HSDI): Rename to... 3994 (SVE_FULL_HSDI): ...this. 3995 (SVE_HSF): Rename to... 3996 (SVE_FULL_HSF): ...this. 3997 (SVE_SD): Rename to... 3998 (SVE_FULL_SD): ...this. 3999 (SVE_SDI): Rename to... 4000 (SVE_FULL_SDI): ...this. 4001 (SVE_SDF): Rename to... 4002 (SVE_FULL_SDF): ...this. 4003 (SVE_S): Rename to... 4004 (SVE_FULL_S): ...this. 4005 (SVE_D): Rename to... 4006 (SVE_FULL_D): ...this. 4007 * config/aarch64/aarch64-sve.md: Apply the above renaming throughout. 4008 * config/aarch64/aarch64-sve2.md: Likewise. 4009 40102019-11-16 Richard Sandiford <richard.sandiford@arm.com> 4011 4012 * config/aarch64/aarch64.opt (--param=aarch64-sve-compare-costs): 4013 New option. 4014 * doc/invoke.texi: Document it. 4015 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_modes): 4016 By default, return VECT_COMPARE_COSTS for SVE. 4017 40182019-11-16 Richard Sandiford <richard.sandiford@arm.com> 4019 4020 * target.h (VECT_COMPARE_COSTS): New constant. 4021 * target.def (autovectorize_vector_modes): Return a bitmask of flags. 4022 * doc/tm.texi: Regenerate. 4023 * targhooks.h (default_autovectorize_vector_modes): Update accordingly. 4024 * targhooks.c (default_autovectorize_vector_modes): Likewise. 4025 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_modes): 4026 Likewise. 4027 * config/arc/arc.c (arc_autovectorize_vector_modes): Likewise. 4028 * config/arm/arm.c (arm_autovectorize_vector_modes): Likewise. 4029 * config/i386/i386.c (ix86_autovectorize_vector_modes): Likewise. 4030 * config/mips/mips.c (mips_autovectorize_vector_modes): Likewise. 4031 * tree-vectorizer.h (_loop_vec_info::vec_outside_cost) 4032 (_loop_vec_info::vec_inside_cost): New member variables. 4033 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize them. 4034 (vect_better_loop_vinfo_p, vect_joust_loop_vinfos): New functions. 4035 (vect_analyze_loop): When autovectorize_vector_modes returns 4036 VECT_COMPARE_COSTS, try vectorizing the loop with each available 4037 vector mode and picking the one with the lowest cost. 4038 (vect_estimate_min_profitable_iters): Record the computed costs 4039 in the loop_vec_info. 4040 40412019-11-16 Richard Sandiford <richard.sandiford@arm.com> 4042 4043 * tree-vectorizer.h (can_duplicate_and_interleave_p): Take an 4044 element type rather than an element mode. 4045 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise. 4046 Use get_vectype_for_scalar_type to query the natural types 4047 for a given element type rather than basing everything on 4048 GET_MODE_SIZE (vinfo->vector_mode). Limit int_mode_for_size 4049 query to MAX_FIXED_MODE_SIZE. 4050 (duplicate_and_interleave): Update call accordingly. 4051 * tree-vect-loop.c (vectorizable_reduction): Likewise. 4052 40532019-11-16 Richard Sandiford <richard.sandiford@arm.com> 4054 4055 * tree-vectorizer.h (vect_get_vector_types_for_stmt): Take an 4056 optional maximum nunits. 4057 (get_vectype_for_scalar_type): Likewise. Also declare a form that 4058 takes an slp_tree. 4059 (get_mask_type_for_scalar_type): Take an optional slp_tree. 4060 (vect_get_mask_type_for_stmt): Likewise. 4061 * tree-vect-data-refs.c (vect_analyze_data_refs): Don't store 4062 the vector type in STMT_VINFO_VECTYPE for BB vectorization. 4063 * tree-vect-patterns.c (vect_recog_bool_pattern): Use 4064 vect_get_vector_types_for_stmt instead of STMT_VINFO_VECTYPE 4065 to get an assumed vector type for data references. 4066 * tree-vect-slp.c (vect_update_shared_vectype): New function. 4067 (vect_update_all_shared_vectypes): Likewise. 4068 (vect_build_slp_tree_1): Pass the group size to 4069 vect_get_vector_types_for_stmt. Use vect_update_shared_vectype 4070 for BB vectorization. 4071 (vect_build_slp_tree_2): Call vect_update_all_shared_vectypes 4072 before building the vectof from scalars. 4073 (vect_analyze_slp_instance): Pass the group size to 4074 get_vectype_for_scalar_type. 4075 (vect_slp_analyze_node_operations_1): Don't recompute the vector 4076 types for BB vectorization here; just handle the case in which 4077 we deferred the choice for booleans. 4078 (vect_get_constant_vectors): Pass the slp_tree to 4079 get_vectype_for_scalar_type. 4080 * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Likewise. 4081 (vectorizable_call): Likewise. 4082 (vectorizable_simd_clone_call): Likewise. 4083 (vectorizable_conversion): Likewise. 4084 (vectorizable_shift): Likewise. 4085 (vectorizable_operation): Likewise. 4086 (vectorizable_comparison): Likewise. 4087 (vect_is_simple_cond): Take the slp_tree as argument and 4088 pass it to get_vectype_for_scalar_type. 4089 (vectorizable_condition): Update call accordingly. 4090 (get_vectype_for_scalar_type): Take a group_size argument. 4091 For BB vectorization, limit the the vector to that number 4092 of elements. Also define an overload that takes an slp_tree. 4093 (get_mask_type_for_scalar_type): Add an slp_tree argument and 4094 pass it to get_vectype_for_scalar_type. 4095 (vect_get_vector_types_for_stmt): Add a group_size argument 4096 and pass it to get_vectype_for_scalar_type. Don't use the 4097 cached vector type for BB vectorization if a group size is given. 4098 Handle data references in that case. 4099 (vect_get_mask_type_for_stmt): Take an slp_tree argument and 4100 pass it to get_mask_type_for_scalar_type. 4101 41022019-11-15 Jan Hubicka <hubicka@ucw.cz> 4103 4104 * ipa-inline.h (do_estimate_edge_time): Add nonspec_time 4105 parameter. 4106 (estimate_edge_time): Use it. 4107 * ipa-inline-analysis.c (do_estimate_edge_time): Add 4108 ret_nonspec_time parameter. 4109 41102019-11-15 Szabolcs Nagy <szabolcs.nagy@arm.com> 4111 4112 * config/m68k/linux.h (MUSL_DYNAMIC_LINKER): Define. 4113 41142019-11-15 Nick Clifton <nickc@redhat.com> 4115 Szabolcs Nagy <szabolcs.nagy@arm.com> 4116 4117 PR target/65649 4118 * config/microblaze/microblaze.c (print_operand): Print value as long. 4119 41202019-11-15 Jan Hubicka <hubicka@ucw.cz> 4121 4122 * ipa-inline.c (edge_badness, inline_small_functions): Revert 4123 accidental commit. 4124 41252019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> 4126 4127 * config/gcn/gcn.h (FIXED_REGISTERS): Unfix frame pointer. 4128 (CALL_USED_REGISTERS): Make frame pointer callee-saved. 4129 41302019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> 4131 4132 * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT, MAX_NORMAL_VGPR_COUNT): New. 4133 (gcn_conditional_register_usage): Use constants in place of hard-coded 4134 values. 4135 (gcn_hsa_declare_function_name): Set lower bound for number of 4136 SGPRs/VGPRs in non-leaf kernels to MAX_NORMAL_SGPR_COUNT and 4137 MAX_NORMAL_VGPR_COUNT. 4138 41392019-11-15 Martin Jambor <mjambor@suse.cz> 4140 4141 * ipa-utils.h (ipa_remove_useless_jump_functions): Remove stray 4142 declaration. 4143 41442019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> 4145 4146 * config/gcn/gcn.c (default_requested_args): New. 4147 (gcn_parse_amdgpu_hsa_kernel_attribute): Initialize requested args 4148 set with default_requested_args. 4149 (gcn_conditional_register_usage): Limit register usage of non-kernel 4150 functions. Reassign fixed registers if a non-standard set of args is 4151 requested. 4152 * config/gcn/gcn.h (FIXED_REGISTERS): Fix registers according to ABI. 4153 41542019-11-15 Feng Xue <fxue@os.amperecomputing.com> 4155 4156 PR ipa/92528 4157 * ipa-prop.c (update_jump_functions_after_inlining): Invalidate 4158 aggregate jump function when inlined-to caller has no edge summary. 4159 41602019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> 4161 4162 * config/gcn/gcn.c (gcn_init_cumulative_args): Call reinit_regs. 4163 41642019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> 4165 4166 * config/gcn/gcn.c (gcn_expand_prologue): Remove initialization and 4167 prologue use of v0. 4168 (print_operand_address): Use v1 for zero vector offset. 4169 41702019-11-15 Richard Sandiford <richard.sandiford@arm.com> 4171 4172 PR tree-optimization/92515 4173 * tree-vect-stmts.c (vectorizable_shift): Record incompatible op1 4174 types when converting a vector/scalar shift into a vector/vector one, 4175 using tree_nop_conversion_p instead of useless_type_conversion_p. 4176 Move the conversion code to the transform block. 4177 41782019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> 4179 4180 * read-rtl-function.c 4181 (function_reader::add_fixup_source_location): Take additional 4182 parameter of a column. 4183 (function_reader::maybe_read_location): Optionally parse column 4184 information and pass to add_fixup_source_location. 4185 41862019-11-15 Richard Biener <rguenther@suse.de> 4187 4188 PR tree-optimization/92512 4189 * tree-vect-loop.c (check_reduction_path): Fix operand index 4190 computability check. Add check for second use in COND_EXPRs. 4191 41922019-11-15 Richard Sandiford <richard.sandiford@arm.com> 4193 4194 PR target/92515 4195 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Use 4196 VIEW_CONVERT_EXPR to reinterpret vectors as different types. 4197 41982019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> 4199 4200 * config/gcn/gcn.c (gcn_regno_reg_class): Return VCC_CONDITIONAL_REG 4201 register class for VCC_LO and VCC_HI. 4202 (gcn_spill_class): Use SGPR_REGS to spill registers in 4203 VCC_CONDITIONAL_REG. 4204 42052019-11-15 Richard Biener <rguenther@suse.de> 4206 4207 PR tree-optimization/92324 4208 * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix 4209 singedness of SLP reduction epilouge operations. Also reduce 4210 the vector width for SLP reductions before doing elementwise 4211 operations if possible. 4212 42132019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> 4214 4215 * passes.c (skip_pass): Set epilogue_completed if skipping the 4216 pro_and_epilogue pass. 4217 42182019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> 4219 4220 * passes.c (should_skip_pass_p): Always run "dfinish". 4221 42222019-11-15 Richard Biener <rguenther@suse.de> 4223 4224 * ipa-inline.c (inline_small_functions): Move assignment 4225 to next before call destroying edge. 4226 42272019-11-15 Richard Biener <rguenther@suse.de> 4228 4229 PR tree-optimization/92039 4230 PR tree-optimization/91975 4231 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Revert 4232 previous change, treat invariants consistently as non-constant. 4233 (tree_estimate_loop_size): Ternary ops with just the first op 4234 constant are not optimized away. 4235 42362019-11-15 Jakub Jelinek <jakub@redhat.com> 4237 4238 * gimplify.c (gimplify_call_expr): Don't call 4239 omp_resolve_declare_variant after gimplification. 4240 * omp-general.c (omp_context_selector_matches): For isa that might 4241 match in some other function, defer if in declare simd function. 4242 (omp_context_compute_score): Don't look for " score" in construct 4243 trait set. Set *score to -1 if it can't ever match. 4244 (omp_resolve_declare_variant): If any variants need to be deferred, 4245 don't punt immediately, but compute scores of all variants and if 4246 ther eis a score winner that doesn't need to be deferred, return that. 4247 42482019-11-15 Luo Xiong Hu <luoxhu@linux.ibm.com> 4249 4250 * ipa-comdats.c: Fix comments typo. 4251 * ipa-profile.c: Fix comments typo. 4252 * tree-profile.c (gimple_gen_ic_profiler): Use the new variable 4253 __gcov_indirect_call.counters and __gcov_indirect_call.callee. 4254 (gimple_gen_ic_func_profiler): Likewise. 4255 (pass_ipa_tree_profile::gate): Fix comments typo. 4256 42572019-11-15 Xiong Hu Luo <luoxhu@linux.ibm.com> 4258 4259 * ipa-inline.c (inline_small_functions): Update iterator of next. 4260 42612019-11-14 Kwok Cheung Yeung <kcy@codesourcery.com> 4262 4263 * lra-spills.c (assign_spill_hard_regs): Check that the spill 4264 register is suitable for the mode. 4265 42662019-11-14 Andrew MacLeod <amacleod@redhat.com> 4267 4268 * range-op.h (range_operator::fold_range): Return a bool. 4269 * range-op.cc (range_operator::wi_fold): Assert supported type. 4270 (range_operator::fold_range): Assert supported type and return true. 4271 (operator_equal::fold_range): Return true. 4272 (operator_not_equal::fold_range): Same. 4273 (operator_lt::fold_range): Same. 4274 (operator_le::fold_range): Same. 4275 (operator_gt::fold_range): Same. 4276 (operator_ge::fold_range): Same. 4277 (operator_plus::op1_range): Adjust call to fold_range. 4278 (operator_plus::op2_range): Same. 4279 (operator_minus::op1_range): Same. 4280 (operator_minus::op2_range): Same. 4281 (operator_exact_divide::op1_range): Same. 4282 (operator_lshift::fold_range): Return true and adjust fold_range call. 4283 (operator_rshift::fold_range): Same. 4284 (operator_cast::fold_range): Return true. 4285 (operator_logical_and::fold_range): Same. 4286 (operator_logical_or::fold_range): Same. 4287 (operator_logical_not::fold_range): Same. 4288 (operator_bitwise_not::fold_range): Adjust call to fold_range. 4289 (operator_bitwise_not::op1_range): Same. 4290 (operator_cst::fold_range): Return true. 4291 (operator_identity::fold_range): Return true. 4292 (operator_negate::fold_range): Return true and adjust fold_range call. 4293 (operator_addr_expr::fold_range): Return true. 4294 (operator_addr_expr::op1_range): Adjust call to fold_range. 4295 (range_cast): Same. 4296 * tree-vrp.c (range_fold_binary_symbolics_p): Adjust call to fold_range. 4297 (range_fold_unary_symbolics_p): Same. 4298 42992019-11-14 Andrew MacLeod <amacleod@redhat.com> 4300 4301 PR tree-optimization/92506 4302 * range-op.cc (range_operator::fold_range): Start with range undefined. 4303 (operator_abs::wi_fold): Fix wrong line copy... With wrapv, abs with 4304 overflow is varying. 4305 43062019-11-14 Aldy Hernandez <aldyh@redhat.com> 4307 4308 * range-op.cc (*operator*::*range): Remove calls to 4309 range_intersect, range_invert, and range_union in favor of calling 4310 the in-place API methods. 4311 (range_tests): Same. 4312 * range.cc (range_intersect): Remove. 4313 (range_union): Remove. 4314 (range_invert): Remove. 4315 * range.h (range_intersect): Remove. 4316 (range_union): Remove. 4317 (range_intersect): Remove. 4318 43192019-11-14 Ilya Leoshkevich <iii@linux.ibm.com> 4320 4321 PR rtl-optimization/92430 4322 * cfgcleanup.c (pass_jump_after_combine::gate): New function. 4323 (pass_jump_after_combine::execute): Perform jump threading 4324 unconditionally. 4325 43262019-11-14 Jerome Lambourg <lambourg@adacore.com> 4327 Doug Rupp <rupp@adacore.com> 4328 Olivier Hainque <hainque@adacore.com> 4329 4330 * config.gcc: Collapse the arm-vxworks entries into 4331 a single arm-wrs-vxworks7* one, bpabi based. Update 4332 the default cpu from arm8 to armv7-a 4333 * config/arm/vxworks.h (CC1_SPEC): Simplify, knowing that 4334 we always use ARM_UNWIND_INFO. 4335 (DWARF2_UNWIND_INFO): Remove redefinition. 4336 (ARM_TARGET2_DWARF_FORMAT): Likewise. 4337 (VXWORKS_PERSONALITY): Define, to "llvm". 4338 (VXWORKS_EXTRA_LIBS_RTP): Define, to "-lllvm". 4339 43402019-11-14 Jerome Lambourg <lambourg@adacore.com> 4341 4342 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Use 4343 _VX_CPU instead of CPU and handle arm_arch8. 4344 43452019-11-14 Doug Rupp <rupp@adacore.com> 4346 Olivier Hainque <hainque@adacore.com> 4347 Jerome Lambourg <lambourg@adacore.com> 4348 4349 * config.gcc: Handle aarch64*-wrs-vxworks7*. 4350 * config/aarch64/aarch64-vxworks.h: New file. 4351 * config/aarch64/t-aarch64-vxworks: New file. 4352 43532019-11-06 Jerome Lambourg <lambourg@adacore.com> 4354 Olivier Hainque <hainque@adacore.com> 4355 4356 * config/vx-common.h (USE_TM_CLONE_REGISTRY): Remove 4357 definition, pointless with a VxWorks specific version 4358 of crtstuff. 4359 (DWARF2_UNWIND_INFO): Conditionalize on !ARM_UNWIND_INFO. 4360 * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): 4361 New local macros, controlling the addition of vxworks specific 4362 crtstuff objects depending on the EH mechanism and kind of 4363 module being linked. 4364 (VXWORKS_STARTFILE_SPEC, VXWORKS_ENDFILE_SPEC): Use them. 4365 43662019-11-06 Pat Bernardi <bernardi@adacore.com> 4367 Jerome Lambourg <lambourg@adacore.com> 4368 Olivier Hainque <hainque@adacore.com> 4369 4370 * config.gcc: Add comment to introduce the TARGET_VXWORKS 4371 common macro definitions, conveying VXWORKS7 or 64bit general 4372 variations. Add a block to set gcc_cv_initfini_array 4373 unconditionally to "yes" for VxWorks7. 4374 config/vx-common.h (VXWORKS_CC1_SPEC): New macro, empty string 4375 by default. Update some comments. 4376 config/vxworks.h (VXWORKS_EXTRA_LIBS_RTP): New macro, empty by 4377 default, to be added the end of VXWORKS_LIBS_RTP. 4378 (VXWORKS_LIBS_RTP): Replace hardcoded part by VXWORKS_BASE_LIBS_RTP 4379 and append VXWORKS_EXTRA_LIBS_RTP, both of which specific ports may 4380 redefine. 4381 (VXWORKS_NET_LIBS_RTP): Account for VxWorks7 specificities. 4382 (VXWORKS_CC1_SPEC): Common base definition, with VxWorks7 variation 4383 to account for the now available TLS abilities. 4384 (TARGET_LIBC_HAS_FUNCTION): Account for VxWorks7 abilities. 4385 (VXWORKS_HAVE_TLS): Likewise. 4386 43872019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4388 4389 * tree-vect-slp.c (vect_contains_pattern_stmt_p): New function. 4390 (vect_slp_convert_to_external): Likewise. 4391 (vect_slp_analyze_node_operations): If analysis fails, try building 4392 the node from scalars instead. 4393 43942019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4395 4396 * tree-cfg.c (verify_gimple_assign_unary): Handle conversions 4397 between vector types. 4398 * tree-vect-stmts.c (vectorizable_conversion): Extend the 4399 non-widening and non-narrowing path to handle standard 4400 conversion codes, if the target supports them. 4401 * expr.c (convert_move): Try using the extend and truncate optabs 4402 for vectors. 4403 * optabs-tree.c (supportable_convert_operation): Likewise. 4404 * config/aarch64/iterators.md (Vnarroqw): New iterator. 4405 * config/aarch64/aarch64-simd.md (<optab><Vnarrowq><mode>2) 4406 (trunc<mode><Vnarrowq>2): New patterns. 4407 44082019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4409 4410 * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Don't 4411 require vectype and nunits_vectype to have the same size; 4412 instead assert that nunits_vectype has at least as many 4413 elements as vectype. Don't compute a separate nunits_vectype 4414 if the scalar type is obviously the same as vectype's. 4415 Tweak dump messages. 4416 44172019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4418 4419 * config/aarch64/aarch64.c (aarch64_vectorize_related_mode): New 4420 function. 4421 (aarch64_autovectorize_vector_modes): Also add V4HImode and V2SImode. 4422 (TARGET_VECTORIZE_RELATED_MODE): Define. 4423 44242019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4425 4426 * tree-vectorizer.h (vec_info::mode_set): New typedef. 4427 (vec_info::used_vector_mode): New member variable. 4428 (vect_chooses_same_modes_p): Declare. 4429 * tree-vect-stmts.c (get_vectype_for_scalar_type): Record each 4430 chosen vector mode in vec_info::used_vector_mode. 4431 (vect_chooses_same_modes_p): New function. 4432 * tree-vect-loop.c (vect_analyze_loop): Use it to avoid trying 4433 the same vector statements multiple times. 4434 * tree-vect-slp.c (vect_slp_bb_region): Likewise. 4435 44362019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4437 4438 * machmode.h (opt_machine_mode::operator==): New function. 4439 (opt_machine_mode::operator!=): Likewise. 4440 * tree-vectorizer.h (vec_info::vector_mode): Update comment. 4441 (get_related_vectype_for_scalar_type): Delete. 4442 (get_vectype_for_scalar_type_and_size): Declare. 4443 * tree-vect-slp.c (vect_slp_bb_region): Print dump messages to say 4444 whether analysis passed or failed, and with what vector modes. 4445 Use related_vector_mode to check whether trying a particular 4446 vector mode would be redundant with the autodetected mode, 4447 and print a dump message if we decide to skip it. 4448 * tree-vect-loop.c (vect_analyze_loop): Likewise. 4449 (vect_create_epilog_for_reduction): Use 4450 get_related_vectype_for_scalar_type instead of 4451 get_vectype_for_scalar_type_and_size. 4452 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Replace 4453 with... 4454 (get_related_vectype_for_scalar_type): ...this new function. 4455 Take a starting/"prevailing" vector mode rather than a vector size. 4456 Take an optional nunits argument, with the same meaning as for 4457 related_vector_mode. Use related_vector_mode when not 4458 auto-detecting a mode, falling back to mode_for_vector if no 4459 target mode exists. 4460 (get_vectype_for_scalar_type): Update accordingly. 4461 (get_same_sized_vectype): Likewise. 4462 * tree-vectorizer.c (get_vec_alignment_for_array_type): Likewise. 4463 44642019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4465 4466 * tree-vect-stmts.c (vectorizable_call): Require the types 4467 to have the same size. 4468 44692019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4470 4471 * tree-vect-stmts.c (vectorizable_call): If an operand is 4472 constant or external, use get_vectype_for_scalar_type 4473 rather than get_same_sized_vectype to get its vector type. 4474 (vectorizable_conversion, vectorizable_shift): Likewise. 4475 (vectorizable_operation): Likewise. 4476 44772019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4478 4479 * tree-vectorizer.h (vec_info::vector_size): Replace with... 4480 (vec_info::vector_mode): ...this new field. 4481 * tree-vect-loop.c (vect_update_vf_for_slp): Update accordingly. 4482 (vect_analyze_loop, vect_transform_loop): Likewise. 4483 * tree-vect-loop-manip.c (vect_do_peeling): Likewise. 4484 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise. 4485 (vect_make_slp_decision, vect_slp_bb_region): Likewise. 4486 * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise. 4487 * tree-vectorizer.c (try_vectorize_loop_1): Likewise. 4488 44892019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4490 4491 * target.h (vector_sizes, auto_vector_sizes): Delete. 4492 (vector_modes, auto_vector_modes): New typedefs. 4493 * target.def (autovectorize_vector_sizes): Replace with... 4494 (autovectorize_vector_modes): ...this new hook. 4495 * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): 4496 Replace with... 4497 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): ...this new hook. 4498 * doc/tm.texi: Regenerate. 4499 * targhooks.h (default_autovectorize_vector_sizes): Delete. 4500 (default_autovectorize_vector_modes): New function. 4501 * targhooks.c (default_autovectorize_vector_sizes): Delete. 4502 (default_autovectorize_vector_modes): New function. 4503 * omp-general.c (omp_max_vf): Use autovectorize_vector_modes instead 4504 of autovectorize_vector_sizes. Use the number of units in the mode 4505 to calculate the maximum VF. 4506 * omp-low.c (omp_clause_aligned_alignment): Use 4507 autovectorize_vector_modes instead of autovectorize_vector_sizes. 4508 Use a loop based on related_mode to iterate through all supported 4509 vector modes for a given scalar mode. 4510 * optabs-query.c (can_vec_mask_load_store_p): Use 4511 autovectorize_vector_modes instead of autovectorize_vector_sizes. 4512 * tree-vect-loop.c (vect_analyze_loop, vect_transform_loop): Likewise. 4513 * tree-vect-slp.c (vect_slp_bb_region): Likewise. 4514 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): 4515 Replace with... 4516 (aarch64_autovectorize_vector_modes): ...this new function. 4517 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete. 4518 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define. 4519 * config/arc/arc.c (arc_autovectorize_vector_sizes): Replace with... 4520 (arc_autovectorize_vector_modes): ...this new function. 4521 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete. 4522 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define. 4523 * config/arm/arm.c (arm_autovectorize_vector_sizes): Replace with... 4524 (arm_autovectorize_vector_modes): ...this new function. 4525 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete. 4526 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define. 4527 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Replace with... 4528 (ix86_autovectorize_vector_modes): ...this new function. 4529 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete. 4530 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define. 4531 * config/mips/mips.c (mips_autovectorize_vector_sizes): Replace with... 4532 (mips_autovectorize_vector_modes): ...this new function. 4533 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete. 4534 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define. 4535 45362019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4537 4538 * tree-vect-stmts.c (vectorizable_shift): Check the number 4539 of vector elements as well as the type mode when deciding 4540 whether an op1_vectype is compatible. Reuse the result of 4541 this check when generating vector statements. 4542 45432019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4544 4545 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): If 4546 targetm.vectorize.preferred_simd_mode returns an integer mode, 4547 use mode_for_vector to decide what the vector type's mode 4548 should actually be. Use build_vector_type_for_mode instead 4549 of build_vector_type. 4550 45512019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4552 4553 * target.def (get_mask_mode): Take a vector mode itself as argument, 4554 instead of properties about the vector mode. 4555 * doc/tm.texi: Regenerate. 4556 * targhooks.h (default_get_mask_mode): Update to reflect new 4557 get_mode_mask interface. 4558 * targhooks.c (default_get_mask_mode): Likewise. Use 4559 related_int_vector_mode. 4560 * optabs-query.c (can_vec_mask_load_store_p): Update call 4561 to get_mask_mode. 4562 * tree-vect-stmts.c (check_load_store_masking): Likewise, checking 4563 first that the original mode really is a vector. 4564 * tree.c (build_truth_vector_type_for): Likewise. 4565 * config/aarch64/aarch64.c (aarch64_get_mask_mode): Update for new 4566 get_mode_mask interface. 4567 (aarch64_expand_sve_vcond): Update call accordingly. 4568 * config/gcn/gcn.c (gcn_vectorize_get_mask_mode): Update for new 4569 get_mode_mask interface. 4570 * config/i386/i386.c (ix86_get_mask_mode): Likewise. 4571 45722019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4573 4574 * tree.h (build_truth_vector_type): Delete. 4575 (build_same_sized_truth_vector_type): Likewise. 4576 * tree.c (build_truth_vector_type): Rename to... 4577 (build_truth_vector_type_for): ...this. Make static and take 4578 a vector type as argument. 4579 (truth_type_for): Update accordingly. 4580 (build_same_sized_truth_vector_type): Delete. 4581 * tree-vect-generic.c (expand_vector_divmod): Use truth_type_for 4582 instead of build_same_sized_truth_vector_type. 4583 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise. 4584 (vect_record_loop_mask, vect_get_loop_mask): Likewise. 4585 * tree-vect-patterns.c (build_mask_conversion): Likeise. 4586 * tree-vect-slp.c (vect_get_constant_vectors): Likewise. 4587 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise. 4588 (vect_build_gather_load_calls, vectorizable_call): Likewise. 4589 (scan_store_can_perm_p, vectorizable_scan_store): Likewise. 4590 (vectorizable_store, vectorizable_condition): Likewise. 4591 (get_mask_type_for_scalar_type, get_same_sized_vectype): Likewise. 4592 (vect_get_mask_type_for_stmt): Use truth_type_for instead of 4593 build_truth_vector_type. 4594 * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred): 4595 Use truth_type_for instead of build_same_sized_truth_vector_type. 4596 * config/rs6000/rs6000-call.c (fold_build_vec_cmp): Likewise. 4597 45982019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4599 4600 * tree.h (build_truth_vector_type_for_mode): Declare. 4601 * tree.c (build_truth_vector_type_for_mode): New function, 4602 split out from... 4603 (build_truth_vector_type): ...here. 4604 (build_opaque_vector_type): Fix head comment. 4605 * tree-vectorizer.h (supportable_narrowing_operation): Remove 4606 vec_info parameter. 4607 (vect_halve_mask_nunits): Replace vec_info parameter with the 4608 mode of the new vector. 4609 (vect_double_mask_nunits): Likewise. 4610 * tree-vect-loop.c (vect_halve_mask_nunits): Likewise. 4611 (vect_double_mask_nunits): Likewise. 4612 * tree-vect-loop-manip.c: Include insn-config.h, rtl.h and recog.h. 4613 (vect_maybe_permute_loop_masks): Remove vinfo parameter. Update call 4614 to vect_halve_mask_nunits, getting the required mode from the unpack 4615 patterns. 4616 (vect_set_loop_condition_masked): Update call accordingly. 4617 * tree-vect-stmts.c (supportable_narrowing_operation): Remove vec_info 4618 parameter and update call to vect_double_mask_nunits. 4619 (vectorizable_conversion): Update call accordingly. 4620 (simple_integer_narrowing): Likewise. Remove vec_info parameter. 4621 (vectorizable_call): Update call accordingly. 4622 (supportable_widening_operation): Update call to 4623 vect_halve_mask_nunits. 4624 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): 4625 Use build_truth_vector_type_mode instead of build_truth_vector_type. 4626 46272019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4628 4629 * machmode.h (mode_for_int_vector): Delete. 4630 (related_int_vector_mode): Declare. 4631 * stor-layout.c (mode_for_int_vector): Delete. 4632 (related_int_vector_mode): New function. 4633 * optabs.c (expand_vec_perm_1): Use related_int_vector_mode 4634 instead of mode_for_int_vector. 4635 (expand_vec_perm_const): Likewise. 4636 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise. 4637 (aarch64_evpc_sve_tbl): Likewise. 4638 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise. 4639 (s390_expand_vcond): Likewise. 4640 46412019-11-14 Richard Sandiford <richard.sandiford@arm.com> 4642 4643 * target.def (related_mode): New hook. 4644 * doc/tm.texi.in (TARGET_VECTORIZE_RELATED_MODE): New hook. 4645 * doc/tm.texi: Regenerate. 4646 * targhooks.h (default_vectorize_related_mode): Declare. 4647 * targhooks.c (default_vectorize_related_mode): New function. 4648 * machmode.h (related_vector_mode): Declare. 4649 * stor-layout.c (related_vector_mode): New function. 4650 * expmed.c (extract_bit_field_1): Use it instead of mode_for_vector. 4651 * optabs-query.c (qimode_for_vec_perm): Likewise. 4652 * tree-vect-stmts.c (get_group_load_store_type): Likewise. 4653 (vectorizable_store, vectorizable_load): Likewise 4654 46552019-11-14 Richard Henderson <richard.henderson@linaro.org> 4656 4657 * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Declare. 4658 * config/arm/aarch-common.c (arm_md_asm_adjust): New. 4659 * config/arm/arm-c.c (arm_cpu_builtins): Define 4660 __GCC_ASM_FLAG_OUTPUTS__. 4661 * config/arm/arm.c (TARGET_MD_ASM_ADJUST): New. 4662 * config/aarch64/aarch64-c.c (aarch64_define_unconditional_macros): 4663 Define __GCC_ASM_FLAG_OUTPUTS__. 4664 * config/aarch64/aarch64.c (TARGET_MD_ASM_ADJUST): New. 4665 * doc/extend.texi (FlagOutputOperands): Add documentation 4666 for ARM and AArch64. 4667 4668 * config/arm/arm-modes.def (CC_NZ): Rename from CC_NOOV. 4669 * config/arm/predicates.md (nz_comparison_operator): Rename 4670 from noov_comparison_operator. 4671 * config/arm/arm.c (arm_select_cc_mode): Use CC_NZmode name. 4672 (arm_gen_dicompare_reg): Likewise. 4673 (maybe_get_arm_condition_code): Likewise. 4674 (thumb1_final_prescan_insn): Likewise. 4675 (arm_emit_coreregs_64bit_shift): Likewise. 4676 * config/arm/arm.md (addsi3_compare0): Likewise. 4677 (*addsi3_compare0_scratch, subsi3_compare0): Likewise. 4678 (*mulsi3_compare0, *mulsi3_compare0_v6): Likewise. 4679 (*mulsi3_compare0_scratch, *mulsi3_compare0_scratch_v6): Likewise. 4680 (*mulsi3addsi_compare0, *mulsi3addsi_compare0_v6): Likewise. 4681 (*mulsi3addsi_compare0_scratch): Likewise. 4682 (*mulsi3addsi_compare0_scratch_v6): Likewise. 4683 (*andsi3_compare0, *andsi3_compare0_scratch): Likewise. 4684 (*zeroextractsi_compare0_scratch): Likewise. 4685 (*ne_zeroextractsi, *ne_zeroextractsi_shifted): Likewise. 4686 (*ite_ne_zeroextractsi, *ite_ne_zeroextractsi_shifted): Likewise. 4687 (andsi_not_shiftsi_si_scc_no_reuse): Likewise. 4688 (andsi_not_shiftsi_si_scc): Likewise. 4689 (*andsi_notsi_si_compare0, *andsi_notsi_si_compare0_scratch): Likewise. 4690 (*iorsi3_compare0, *iorsi3_compare0_scratch): Likewise. 4691 (*xorsi3_compare0, *xorsi3_compare0_scratch): Likewise. 4692 (*shiftsi3_compare0, *shiftsi3_compare0_scratch): Likewise. 4693 (*not_shiftsi_compare0, *not_shiftsi_compare0_scratch): Likewise. 4694 (*notsi_compare0, *notsi_compare0_scratch): Likewise. 4695 (return_addr_mask, *check_arch2): Likewise. 4696 (*arith_shiftsi_compare0, *arith_shiftsi_compare0_scratch): Likewise. 4697 (*sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch): Likewise. 4698 (compare_scc splitters): Likewise. 4699 (movcond_addsi): Likewise. 4700 * config/arm/thumb2.md (thumb2_addsi3_compare0): Likewise. 4701 (*thumb2_addsi3_compare0_scratch): Likewise. 4702 (*thumb2_mulsi_short_compare0): Likewise. 4703 (*thumb2_mulsi_short_compare0_scratch): Likewise. 4704 (compare peephole2s): Likewise. 4705 * config/arm/thumb1.md (thumb1_cbz): Use CC_NZmode and 4706 nz_comparison_operator names. 4707 (cbranchsi4_insn): Likewise. 4708 4709 * config/arm/constraints.md (c): Use cc_register predicate. 4710 4711 * config/aarch64/constraints.md (c): New constraint. 4712 47132019-11-14 Jan Hubicka <hubicka@ucw.cz> 4714 4715 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time, 4716 ipa_merge_fn_summary_after_inlining): Micro optimize. 4717 47182019-11-14 Jan Hubicka <hubicka@ucw.cz> 4719 4720 * params.opt (max-inline-insns-single-O2): Set to 70 (instead of 30). 4721 47222019-11-14 Jan Hubicka <hubicka@ucw.cz> 4723 4724 * ipa-cp.c (ipa_vr_operation_and_type_effects): Move up in file. 4725 (ipa_value_range_from_jfunc): New function. 4726 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Add 4727 known_value_ranges parameter; use it to evalulate conditions. 4728 (evaluate_properties_for_edge): Compute known value ranges. 4729 (ipa_fn_summary_t::duplicate): Update use of 4730 evaluate_conditions_for_known_args. 4731 (estimate_ipcp_clone_size_and_time): Likewise. 4732 (ipa_merge_fn_summary_after_inlining): Likewise. 4733 * ipa-prop.h (ipa_value_range_from_jfunc): Declare. 4734 47352019-11-14 Martin Liska <mliska@suse.cz> 4736 4737 * ipa-inline.c (want_inline_small_function_p): Use 4738 CIF_MAX_INLINE_INSNS_AUTO_LIMIT instead 4739 of CIF_MAX_INLINE_INSNS_SINGLE_O2_LIMIT. 4740 47412019-11-14 Martin Liska <mliska@suse.cz> 4742 4743 * ipa-cp.c (devirtualization_time_bonus): Use opt_for_fn 4744 of a callee to get value of the param. 4745 * ipa-inline.c (inline_insns_auto): Use proper 4746 opt_for_fn. 4747 * opts.c (maybe_default_option): Do not overwrite param 4748 value if optimization level does not match. Note that 4749 params usually have default value set via Init() keyword. 4750 * params.opt: Remove -param=max-inline-insns-auto-O2. 4751 * cif-code.def (MAX_INLINE_INSNS_AUTO_O2_LIMIT): Remove. 4752 * doc/invoke.texi: Remove documentation of 4753 max-inline-insns-auto-O2. 4754 47552019-11-14 Martin Liska <mliska@suse.cz> 4756 4757 * tree-switch-conversion.c (switch_conversion::switch_conversion): 4758 Do not initialize m_other_count. 4759 (switch_conversion::collect): Do not count m_default_count and 4760 m_other_count as we use frequencies for edges. 4761 * tree-switch-conversion.h: Remove m_default_count and m_other_count. 4762 47632019-11-14 Martin Liska <mliska@suse.cz> 4764 4765 PR other/92329 4766 * doc/invoke.texi: Document -fallocation-dce. 4767 47682019-11-14 Martin Liska <mliska@suse.cz> 4769 4770 PR target/92389 4771 * config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to 4772 PTA_ICELAKE_CLIENT which is later interited by 4773 PTA_ICELAKE_SERVER and PTA_TIGERLAKE. 4774 47752019-11-14 Martin Liska <mliska@suse.cz> 4776 4777 * ipa-icf.c (sem_item_optimizer::execute): Save 4778 loaded_symbols. 4779 (sem_item_optimizer::parse_nonsingleton_classes): 4780 Return number of loaded symbols. 4781 (sem_item_optimizer::merge_classes): Print 4782 statistics about totally needed symbols. 4783 * ipa-icf.h (parse_nonsingleton_classes): Change return 4784 type. 4785 (merge_classes): Add one argument. 4786 47872019-11-14 Martin Liska <mliska@suse.cz> 4788 4789 * ipa-icf-gimple.c (func_checker::hash_operand): Improve 4790 func_checker::hash_operand by handling of FIELD_DECLs. 4791 47922019-11-14 Martin Liska <mliska@suse.cz> 4793 4794 * ipa-icf-gimple.h (func_checker::func_checker): Add 4795 default constructor. 4796 * ipa-icf.c (sem_function::init): Make operand_equal_p 4797 and hash_operand public. 4798 (sem_item::add_expr): Remove. 4799 (sem_item::add_type): Remove. 4800 (sem_function::hash_stmt): Use m_checker for hashing 4801 of GIMPLE statements. 4802 (sem_function::parse): Init with checker. 4803 (sem_variable::parse): Pass NULL as checker. 4804 (sem_item_optimizer::parse_funcs_and_vars): 4805 Pass checker to ::parse function. 4806 (sem_item_optimizer::parse_nonsingleton_classes): Likewise. 4807 (sem_variable::parse): New function. 4808 (sem_variable::get_hash): Only return computed hash value. 4809 (sem_variable::init): Initialize hash of a variable. 4810 * ipa-icf.h: Remove add_expr, add_type and add func_checker 4811 to couple of functions as a new argument. 4812 48132019-11-14 Martin Liska <mliska@suse.cz> 4814 4815 * ipa-icf-gimple.c (func_checker::compare_gimple_call): Update 4816 bail out reason. 4817 (func_checker::compare_gimple_assign): Likewise. 4818 48192019-11-14 Jakub Jelinek <jakub@redhat.com> 4820 4821 * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa): Don't 4822 change sse4.2 to sse4_2 and sse4.1 to sse4.1. 4823 * config/i386/t-omp-device (omp-device-properties-i386): Likewise. 4824 4825 * omp-general.c (omp_context_name_list_prop): New function. 4826 (omp_context_selector_matches): Use it. Return 0 if it returns 4827 NULL. 4828 (omp_context_selector_props_compare): Allow equivalency of an 4829 identifier and a string literal containing no embedded zeros. 4830 48312019-11-14 Aldy Hernandez <aldyh@redhat.com> 4832 4833 * range-op.cc (RANGE3): Remove. 4834 (range_tests): Remove all selftest that check for multi-ranges. 4835 Put tests in namespace selftest. 4836 * selftest.h: Move range_tests into namespace selftest. 4837 * value-range.h (class value_range): Unfriend range_tests. 4838 48392019-11-14 Aldy Hernandez <aldyh@redhat.com> 4840 4841 * tree-vrp.c (range_fold_binary_symbolics_p): Adapt for 4842 normalize_symbolics and normalize_addresses working in place. 4843 (range_fold_unary_symbolics_p): Same. 4844 (range_fold_unary_symbolics_p): Same. 4845 * value-range.cc (num_pairs): Same. 4846 (lower_bound): Same. 4847 (upper_bound): Same. 4848 (contains_p): Same. 4849 (normalize_addresses): Same. 4850 (normalize_symbolics): Same. 4851 * value-range.h (normalize_symbolics): Same. 4852 (normalize_addresses): Same. 4853 48542019-11-14 Feng Xue <fxue@os.amperecomputing.com> 4855 4856 PR ipa/91682 4857 * ipa-prop.h (jump_func_type): New value IPA_JF_LOAD_AGG. 4858 (ipa_load_agg_data, ipa_agg_value, ipa_agg_value_set): New structs. 4859 (ipa_agg_jf_item): Add new field jftype and type, redefine field value. 4860 (ipa_agg_jump_function): Remove member function equal_to. 4861 (ipa_agg_jump_function_p): Remove typedef. 4862 (ipa_copy_agg_values, ipa_release_agg_values): New functions. 4863 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump 4864 information for aggregate jump function. 4865 (get_ssa_def_if_simple_copy): Add new parameter rhs_stmt to 4866 record last definition statement. 4867 (load_from_unmodified_param_or_agg): New function. 4868 (ipa_known_agg_contents_list): Add new field type and value, remove 4869 field constant. 4870 (build_agg_jump_func_from_list): Rename parameter const_count to 4871 value_count, build aggregate jump function from ipa_load_agg_data. 4872 (analyze_agg_content_value): New function. 4873 (extract_mem_content): Analyze memory store assignment to prepare 4874 information for aggregate jump function generation. 4875 (determine_known_aggregate_parts): Add new parameter fbi, remove 4876 parameter aa_walk_budeget_p. 4877 (update_jump_functions_after_inlining): Update aggregate jump function. 4878 (ipa_find_agg_cst_for_param): Change type of parameter agg. 4879 (try_make_edge_direct_simple_call): Add new parameter new_root. 4880 (try_make_edge_direct_virtual_call): Add new parameter new_root and 4881 new_root_info. 4882 (update_indirect_edges_after_inlining): Pass new argument to 4883 try_make_edge_direct_simple_call and try_make_edge_direct_virtual_call. 4884 (ipa_write_jump_function): Write aggregate jump function to file. 4885 (ipa_read_jump_function): Read aggregate jump function from file. 4886 (ipa_agg_value::equal_to): Migrate from ipa_agg_jf_item::equal_to. 4887 * ipa-cp.c (ipa_get_jf_arith_result): New function. 4888 (ipa_agg_value_from_node): Likewise. 4889 (ipa_agg_value_set_from_jfunc): Likewise. 4890 (propagate_vals_across_arith_jfunc): Likewise. 4891 (propagate_aggregate_lattice): Likewise. 4892 (ipa_get_jf_pass_through_result): Call ipa_get_jf_arith_result. 4893 (propagate_vals_across_pass_through): Call 4894 propagate_vals_across_arith_jfunc. 4895 (get_clone_agg_value): Move forward. 4896 (propagate_aggs_across_jump_function): Handle value propagation for 4897 aggregate jump function. 4898 (agg_jmp_p_vec_for_t_vec): Remove. 4899 (context_independent_aggregate_values): Replace vec<ipa_agg_jf_item> 4900 with vec<ipa_agg_value>. 4901 (copy_plats_to_inter, intersect_with_plats): Likewise. 4902 (agg_replacements_to_vector, intersect_with_agg_replacements): Likewise. 4903 (intersect_aggregate_with_edge): Likewise. 4904 (find_aggregate_values_for_callers_subset): Likewise. 4905 (cgraph_edge_brings_all_agg_vals_for_node): Likewise. 4906 (estimate_local_effects): Replace vec<ipa_agg_jump_function> and 4907 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>. 4908 (gather_context_independent_values): Likewise. 4909 (perform_estimation_of_a_value, decide_whether_version_node): Likewise. 4910 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Replace 4911 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>. 4912 (evaluate_properties_for_edge): Likewise. 4913 (estimate_edge_devirt_benefit): Likewise. 4914 (estimate_edge_size_and_time): Likewise. 4915 (estimate_calls_size_and_time): Likewise. 4916 (ipa_call_context::ipa_call_context): Likewise. 4917 (estimate_ipcp_clone_size_and_time): Likewise. 4918 * ipa-fnsummary.h (ipa_call_context): Replace 4919 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>. 4920 * ipa-inline-analysis.c (do_estimate_edge_time): Replace 4921 vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>. 4922 (do_estimate_edge_size): Likewise. 4923 (do_estimate_edge_hints): Likewise. 4924 49252019-11-13 Jan Hubicka <hubicka@ucw.cz> 4926 4927 * ipa-cp.c (propagate_vr_across_jump_function): Propagate also across 4928 binary operations. 4929 49302019-11-13 Jan Hubicka <hubicka@ucw.cz> 4931 4932 * ipa-profile.c (check_argument_count): Check properly that e_info 4933 is non-NULL; do not check descriptors. 4934 49352019-11-13 Jan Hubicka <hubicka@ucw.cz> 4936 4937 * ipa-inline-analysis.c (do_estimate_edge_time): Relax 4938 check for ipa profiles. 4939 49402019-11-13 Jan Hubicka <hubicka@ucw.cz> 4941 4942 PR c++/92421 4943 * ipa-prop.c (update_indirect_edges_after_inlining): 4944 Mark parameter as used. 4945 * ipa-inline.c (recursive_inlining): Reset node cache 4946 after inlining. 4947 (inline_small_functions): Remove checking ifdef. 4948 * ipa-inline-analysis.c (do_estimate_edge_time): Verify 4949 cache consistency. 4950 49512019-11-13 Jan Hubicka <hubicka@ucw.cz> 4952 4953 PR ipa/92498 4954 * ipa-profile.c (check_argument_count): Do not ICE when descriptors 4955 is NULL. 4956 (ipa_profile): Fix reversed test. 4957 49582019-11-13 Jan Hubicka <hubicka@ucw.cz> 4959 4960 * ipa-cp.c (ignore_edge_p): Do not check caller flags. 4961 (propagate_constants_topo): Fix typo. 4962 49632019-11-13 Aldy Hernandez <aldyh@redhat.com> 4964 4965 * Makefile.in (OBJS): Add value-range.o. 4966 (GTFILES): Add value-range.h. 4967 * gengtype.c (open_base_files): Add value-range.h to list of 4968 header files. 4969 * tree-vrp.c: Move the following value_range related functions: 4970 ranges_from_anti_range, value_range, check, equal_p, symbolic_p, 4971 constant_p, set_undefined, set_varying, may_contain_p, 4972 singleton_p, type, dump, dump_value_range, debug, vrp_val_max, 4973 vrp_val_min, vrp_val_is_min, vrp_val_is_max, set, set_nonzero, 4974 set_zero, vrp_operand_equal_p, range_has_numeric_bounds_p, 4975 value_inside_range, ranges_from_anti_range, union_ranges, 4976 intersect_ranges, intersect_helper, union_helper, union_, 4977 normalize_addresses, normalize_symbolics, num_pairs, lower_bound, 4978 upper_bound, contains_p, invert, intersect... 4979 * value-range.cc: ...to here. 4980 * tree-vrp.h: Move class value_range, enum_value_range_kind, and 4981 associated inline methods from here... 4982 * value-range.h: ...to here. 4983 49842019-11-13 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 4985 4986 * config/mips/mips.md (rotr<mode>3): Sanitize the constant argument 4987 instead of asserting its value. 4988 4989(2019-11-13 Aldy Hernandez <aldyh@redhat.com> 4990 4991 * gimple-fold.c (size_must_be_zero_p): Rewrite use of value_range 4992 constructors and set methods so value_range_kind is the last 4993 argument and defaults to VR_RANGE. 4994 * gimple-ssa-evrp-analyze.c (record_ranges_from_stmt): Same. 4995 * ipa-cp.c (propagate_vr_across_jump_function): Same. 4996 * ipa-prop.c (ipa_get_value_range): Same. 4997 (ipa_compute_jump_functions_for_edge): Same. 4998 * range-op.cc (value_range_from_overflowed_bounds): Same. 4999 (operator_cast::op1_range): Same. 5000 (range_tests): Same. 5001 * range.cc (range_nonzero): Same. 5002 * tree-ssanames.c (get_range_info): Same. 5003 * tree-vrp.c (value_range_equiv::set): Same. 5004 (value_range::value_range): Same. 5005 (value_range_equiv::value_range_equiv): Same. 5006 (value_range_equiv::update): Same. 5007 (value_range_equiv::deep_copy): Same. 5008 (value_range_equiv::move): Same. 5009 (value_range_equiv::set_undefined): Same. 5010 (value_range::set): Same. 5011 (value_range::set_nonzero): Same. 5012 (ranges_from_anti_range): Same. 5013 (extract_range_from_plus_minus_expr): Same. 5014 (value_range::intersect_helper): Same. 5015 (value_range_equiv::intersect): Same. 5016 (value_range::union_helper): Same. 5017 (value_range_equiv::union_): Same. 5018 (value_range::normalize_symbolics): Same. 5019 (value_range::invert): Same. 5020 (determine_value_range_1): Same. 5021 * tree-vrp.h (class value_range): Same. 5022 (class value_range_equiv): Same. 5023 * vr-values.c (set_value_range_to_nonnegative): Same. 5024 (set_value_range_to_truthvalue): Same. 5025 (vr_values::update_value_range): Same. 5026 (vr_values::extract_range_for_var_from_comparison_expr): Same. 5027 (vr_values::extract_range_from_binary_expr): Same. 5028 (vr_values::extract_range_from_comparison): Same. 5029 (vr_values::extract_range_basic): Same. 5030 (vr_values::adjust_range_with_scev): Same. 5031 (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same. 5032 (vr_values::extract_range_from_phi_node): Same. 5033 50342019-11-13 Ulrich Drepper <drepper@redhat.com> 5035 5036 * tree-dump.c (dequeue_and_dump): Print first tree operand 5037 for VIEW_CONVERT_EXPR. 5038 50392019-11-13 Joseph Myers <joseph@codesourcery.com> 5040 5041 * ginclude/float.c [__STDC_VERSION__ > 201710L] (FLT_NORM_MAX, 5042 DBL_NORM_MAX, LDBL_NORM_MAX): Define. 5043 * real.c (get_max_float): Add norm_max argument. 5044 * real.h (get_max_float): Update prototype. 5045 * builtins.c (fold_builtin_interclass_mathfn): Update calls to 5046 get_max_float. 5047 50482019-11-13 Martin Liska <mliska@suse.cz> 5049 5050 * dbgcnt.c (test_sorted_dbg_counters): New. 5051 (dbgcnt_c_tests): Likewise. 5052 * selftest-run-tests.c (selftest::run_tests): Likewise. 5053 * selftest.h (dbgcnt_c_tests): Likewise. 5054 50552019-11-13 Jan Hubicka <hubicka@ucw.cz> 5056 Martin Jambor <mjambor@suse.cz> 5057 5058 PR ipa/92454 5059 * ipa-cp.c (spread_undeadness): Check that IPA_NODE_REF exists. 5060 (identify_dead_nodes): Likewise. 5061 50622019-11-13 Martin Liska <mliska@suse.cz> 5063 5064 * ipa-icf.c (sem_function::equals_private): Do not overuse 5065 push/pop_cfun functions. 5066 50672019-11-13 Martin Liska <mliska@suse.cz> 5068 5069 * common.opt: Document change of -fdbg-cnt option. 5070 * dbgcnt.c (DEBUG_COUNTER): Remove. 5071 (dbg_cnt_is_enabled): Remove. 5072 (dbg_cnt): Work with new intervals. 5073 (dbg_cnt_set_limit_by_index): Set to new 5074 list of intervals. 5075 (dbg_cnt_set_limit_by_name): Likewise. 5076 (dbg_cnt_process_single_pair): Process new format. 5077 (dbg_cnt_process_opt): Likewise. 5078 (dbg_cnt_list_all_counters): Likewise. 5079 * doc/invoke.texi: Document change of -fdbg-cnt option. 5080 (cmp_tuples): New. 5081 50822019-11-13 Jan Hubicka <hubicka@ucw.cz> 5083 5084 * ipa-inline.c (ipa_inline): Check that function is defined before 5085 flattening. 5086 50872019-11-13 Andrew Stubbs <ams@codesourcery.com> 5088 Julian Brown <julian@codesourcery.com> 5089 5090 * config/gcn/gcn.c (gcn_goacc_validate_dims): Ensure 5091 flag_worker_partitioning is not set. 5092 (TARGET_GOACC_WORKER_PARTITIONING): Remove target hook definition. 5093 * config/gcn/gcn.opt (macc-experimental-workers): Default to off. 5094 50952019-11-13 Andrew Stubbs <ams@codesourcery.com> 5096 5097 * config/gcn/gcn-run.c (heap_region): New global variable. 5098 (struct hsa_runtime_fn_info): Add hsa_memory_assign_agent_fn. 5099 (init_hsa_runtime_functions): Initialize hsa_memory_assign_agent. 5100 (get_kernarg_region): Move contents to .... 5101 (get_memory_region): .... here. 5102 (get_heap_region): New function. 5103 (init_device): Initialize the heap_region. 5104 (device_malloc): Add region parameter. 5105 (struct kernargs): Move heap .... 5106 (heap): ... to global scope. 5107 (main): Allocate heap separate to kernargs. 5108 51092019-11-13 Jan Hubicka <hubicka@ucw.cz> 5110 5111 * ipa-prop.c (ipa_print_node_jump_functions, 5112 ipa_print_node_params): Print info about missing summaries. 5113 51142019-11-13 Richard Sandiford <richard.sandiford@arm.com> 5115 5116 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Include 5117 the cost of generating loop masks. 5118 51192019-11-13 Richard Sandiford <richard.sandiford@arm.com> 5120 5121 * tree-vectorizer.h (vect_apply_runtime_profitability_check_p): 5122 New function. 5123 * tree-vect-loop-manip.c (vect_loop_versioning): Use it. 5124 * tree-vect-loop.c (vect_analyze_loop_2): Likewise. 5125 (vect_transform_loop): Likewise. 5126 (vect_analyze_loop_costing): Don't take the cost of versioning 5127 into account for the static profitability threshold if it turns 5128 out that no versioning is needed. 5129 51302019-11-13 Jan Hubicka <hubicka@ucw.cz> 5131 5132 * ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node 5133 and target_option_default_node to get -fprofile-generate ctors working 5134 right with LTO. 5135 51362019-11-13 Richard Sandiford <richard.sandiford@arm.com> 5137 5138 * tree-vectorizer.h (vect_nop_conversion_p): Declare. 5139 * tree-vect-stmts.c (vect_nop_conversion_p): New function. 5140 (vectorizable_assignment): Don't add a cost for nop conversions. 5141 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): 5142 Likewise. 5143 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise. 5144 51452019-11-13 Richard Sandiford <richard.sandiford@arm.com> 5146 5147 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Take the 5148 number of ncopies as an additional argument. 5149 (vectorizable_conversion): Update call accordingly. Use "modifier" 5150 to check whether a conversion is between vectors with the same 5151 numbers of units. 5152 51532019-11-13 Richard Sandiford <richard.sandiford@arm.com> 5154 5155 * config/aarch64/aarch64-sve-builtins-functions.h 5156 (unary_count::expand): Use aarch64_sve_int_mode instead of 5157 mode_for_int_vector. 5158 51592019-11-13 Martin Liska <mliska@suse.cz> 5160 5161 * opts.c: Update comment about OPT_LEVELS_2_PLUS_SPEED_ONLY. 5162 51632019-11-13 Martin Liska <mliska@suse.cz> 5164 5165 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): 5166 Remove call to finalize_options_struct. 5167 51682019-11-13 Georg-Johann Lay <avr@gjlay.de> 5169 5170 PR target/92055 5171 * config/avr/t-avr (avr-mcus): Do not depend on 5172 $(srcdir)/config/avr/t-multilib. 5173 51742019-11-13 Richard Biener <rguenther@suse.de> 5175 5176 PR tree-optimization/92473 5177 * tree-vect-loop.c (vect_create_epilog_for_reduction): Perform 5178 direct optab reduction in the correct type. 5179 51802019-11-12 Segher Boessenkool <segher@kernel.crashing.org> 5181 5182 * config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big 5183 hexadecimal literal. 5184 51852019-11-12 Segher Boessenkool <segher@kernel.crashing.org> 5186 5187 * config/rs6000/vsx.md (xscmpexpdp_<code> for CMP_TEST): Handle 5188 UNORDERED if !HONOR_NANS (DFmode). 5189 (xscmpexpqp_<code>_<mode> for CMP_TEST and IEEE128): Handle UNORDERED 5190 if !HONOR_NANS (<MODE>mode). 5191 51922019-11-12 Jan Hubicka <hubicka@ucw.cz> 5193 5194 * ipa-cp.c (ignore_edge_p): Also look for optimize flag. 5195 (ipcp_verify_propagated_values): Likewise. 5196 (propagate_constants_across_call): Likewise. 5197 (propagate_constants_topo): Likewise. 5198 (ipcp_propagate_stage): Likewise. 5199 52002019-11-12 Jan Hubicka <hubicka@ucw.cz> 5201 5202 PR ipa/92471 5203 * ipa-profile.c (check_argument_count): Break out from ...; 5204 watch for missing summaries. 5205 (ipa_profile): Here. 5206 52072019-11-12 Martin Sebor <msebor@redhat.com> 5208 5209 PR tree-optimization/92412 5210 * targhooks.c (default_ref_may_alias_errno): Errono can only alias 5211 extern variables. 5212 52132019-11-12 Martin Sebor <msebor@redhat.com> 5214 5215 PR middle-end/83688 5216 * gimple-ssa-sprintf.c (format_result::alias_info): New struct. 5217 (directive::argno): New member. 5218 (format_result::aliases, format_result::alias_count): New data members. 5219 (format_result::append_alias): New member function. 5220 (fmtresult::dst_offset): New data member. 5221 (pass_sprintf_length::call_info::dst_origin): New data member. 5222 (pass_sprintf_length::call_info::dst_field, dst_offset): Same. 5223 (char_type_p, array_elt_at_offset, field_at_offset): New functions. 5224 (get_origin_and_offset): Same. 5225 (format_string): Call it. 5226 (format_directive): Call append_alias and set directive argument 5227 number. 5228 (maybe_warn_overlap): New function. 5229 (pass_sprintf_length::compute_format_length): Call it. 5230 (pass_sprintf_length::handle_gimple_call): Initialize new members. 5231 * tree-ssa-strlen.c (): Also enable when -Wrestrict is on. 5232 52332019-11-12 Ilya Leoshkevich <iii@linux.ibm.com> 5234 5235 PR rtl-optimization/92430 5236 * cfgcleanup.c (pass_jump_after_combine::execute): Free 5237 dominance info at the beginning. 5238 52392019-11-12 Richard Biener <rguenther@suse.de> 5240 5241 PR tree-optimization/92460 5242 * tree-vect-stmts.c (vectorizable_simd_clone_call): Unshare 5243 expression before gimplifying. 5244 52452019-11-12 Richard Biener <rguenther@suse.de> 5246 5247 PR tree-optimization/92461 5248 * tree-vect-loop.c (vect_create_epilog_for_reduction): Update 5249 stmt after propagation. 5250 52512019-11-12 Martin Liska <mliska@suse.cz> 5252 5253 * config/i386/i386-options.c (ix86_recompute_optlev_based_flags): 5254 Use SET_OPTION_IF_UNSET. 5255 (ix86_option_override_internal): Likewise. 5256 * opts.c (default_options_optimization): Likewise. 5257 (finish_options): Likewise. 5258 (enable_fdo_optimizations): Likewise. 5259 (common_handle_option): Likewise. 5260 52612019-11-12 Martin Liska <mliska@suse.cz> 5262 5263 * common/common-target.def: Remove option_validate_param and 5264 option_default_params. 5265 * common/common-targhooks.c (default_option_validate_param): 5266 Remove. 5267 * common/common-targhooks.h (default_option_validate_param): 5268 Remove. 5269 * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAMS): 5270 Remove usage of this. 5271 (TARGET_OPTION_VALIDATE_PARAM): Likewise. 5272 (aarch64_option_validate_param): Likewise. 5273 (aarch64_option_default_params): Likewise 5274 * common/config/bpf/bpf-common.c (bpf_option_default_params): Likewise. 5275 (TARGET_OPTION_DEFAULT_PARAMS): Likewise. 5276 * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise. 5277 (TARGET_OPTION_DEFAULT_PARAMS): Likewise. 5278 * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise. 5279 (TARGET_OPTION_DEFAULT_PARAMS): Likewise. 5280 * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise. 5281 (TARGET_OPTION_DEFAULT_PARAMS): Likewise. 5282 * common/config/sh/sh-common.c (sh_option_default_params): Likewise. 5283 (TARGET_OPTION_DEFAULT_PARAMS): Likewise. 5284 * config/aarch64/aarch64.c (aarch64_override_options_internal): Validate 5285 guard_size here. 5286 * doc/tm.texi: Remove option_default_params and option_validate_param. 5287 * doc/tm.texi.in: Likewise. 5288 52892019-11-12 Martin Liska <mliska@suse.cz> 5290 5291 * common/common-target.def: 5292 Do not mention set_default_param_value 5293 and set_param_value. 5294 * doc/tm.texi: Likewise. 5295 52962019-11-12 Martin Liska <mliska@suse.cz> 5297 5298 * common.opt: Remove param_values. 5299 * config/i386/i386-options.c (ix86_valid_target_attribute_p): 5300 Remove finalize_options_struct. 5301 * gcc.c (driver::decode_argv): Do not call global_init_params 5302 and finish_params. 5303 (driver::finalize): Do not call params_c_finalize 5304 and finalize_options_struct. 5305 * opt-suggestions.c (option_proposer::get_completions): Remove 5306 special casing of params. 5307 (option_proposer::find_param_completions): Remove. 5308 (test_completion_partial_match): Update expected output. 5309 * opt-suggestions.h: Remove find_param_completions. 5310 * opts-common.c (add_misspelling_candidates): Add 5311 --param with a space. 5312 * opts.c (handle_param): Remove. 5313 (init_options_struct):. Remove init_options_struct and 5314 similar calls. 5315 (finalize_options_struct): Remove. 5316 (common_handle_option): Use SET_OPTION_IF_UNSET. 5317 * opts.h (finalize_options_struct): Remove. 5318 * toplev.c (general_init): Do not call global_init_params. 5319 (toplev::finalize): Do not call params_c_finalize and 5320 finalize_options_struct. 5321 53222019-11-12 Martin Liska <mliska@suse.cz> 5323 5324 * Makefile.in: Remove PARAMS_H and params.list 5325 and params.options. 5326 * params-enum.h: Remove. 5327 * params-list.h: Remove. 5328 * params-options.h: Remove. 5329 * params.c: Remove. 5330 * params.def: Remove. 5331 * params.h: Remove. 5332 * asan.c: Do not include params.h. 5333 * auto-profile.c: Likewise. 5334 * bb-reorder.c: Likewise. 5335 * builtins.c: Likewise. 5336 * cfgcleanup.c: Likewise. 5337 * cfgexpand.c: Likewise. 5338 * cfgloopanal.c: Likewise. 5339 * cgraph.c: Likewise. 5340 * combine.c: Likewise. 5341 * common/config/aarch64/aarch64-common.c: Likewise. 5342 * common/config/gcn/gcn-common.c: Likewise. 5343 * common/config/ia64/ia64-common.c: Likewise. 5344 * common/config/powerpcspe/powerpcspe-common.c: Likewise. 5345 * common/config/rs6000/rs6000-common.c: Likewise. 5346 * common/config/sh/sh-common.c: Likewise. 5347 * config/aarch64/aarch64.c: Likewise. 5348 * config/alpha/alpha.c: Likewise. 5349 * config/arm/arm.c: Likewise. 5350 * config/avr/avr.c: Likewise. 5351 * config/csky/csky.c: Likewise. 5352 * config/i386/i386-builtins.c: Likewise. 5353 * config/i386/i386-expand.c: Likewise. 5354 * config/i386/i386-features.c: Likewise. 5355 * config/i386/i386-options.c: Likewise. 5356 * config/i386/i386.c: Likewise. 5357 * config/ia64/ia64.c: Likewise. 5358 * config/rs6000/rs6000-logue.c: Likewise. 5359 * config/rs6000/rs6000.c: Likewise. 5360 * config/s390/s390.c: Likewise. 5361 * config/sparc/sparc.c: Likewise. 5362 * config/visium/visium.c: Likewise. 5363 * coverage.c: Likewise. 5364 * cprop.c: Likewise. 5365 * cse.c: Likewise. 5366 * cselib.c: Likewise. 5367 * dse.c: Likewise. 5368 * emit-rtl.c: Likewise. 5369 * explow.c: Likewise. 5370 * final.c: Likewise. 5371 * fold-const.c: Likewise. 5372 * gcc.c: Likewise. 5373 * gcse.c: Likewise. 5374 * ggc-common.c: Likewise. 5375 * ggc-page.c: Likewise. 5376 * gimple-loop-interchange.cc: Likewise. 5377 * gimple-loop-jam.c: Likewise. 5378 * gimple-loop-versioning.cc: Likewise. 5379 * gimple-ssa-split-paths.c: Likewise. 5380 * gimple-ssa-sprintf.c: Likewise. 5381 * gimple-ssa-store-merging.c: Likewise. 5382 * gimple-ssa-strength-reduction.c: Likewise. 5383 * gimple-ssa-warn-alloca.c: Likewise. 5384 * gimple-ssa-warn-restrict.c: Likewise. 5385 * graphite-isl-ast-to-gimple.c: Likewise. 5386 * graphite-optimize-isl.c: Likewise. 5387 * graphite-scop-detection.c: Likewise. 5388 * graphite-sese-to-poly.c: Likewise. 5389 * graphite.c: Likewise. 5390 * haifa-sched.c: Likewise. 5391 * hsa-gen.c: Likewise. 5392 * ifcvt.c: Likewise. 5393 * ipa-cp.c: Likewise. 5394 * ipa-fnsummary.c: Likewise. 5395 * ipa-inline-analysis.c: Likewise. 5396 * ipa-inline.c: Likewise. 5397 * ipa-polymorphic-call.c: Likewise. 5398 * ipa-profile.c: Likewise. 5399 * ipa-prop.c: Likewise. 5400 * ipa-split.c: Likewise. 5401 * ipa-sra.c: Likewise. 5402 * ira-build.c: Likewise. 5403 * ira-conflicts.c: Likewise. 5404 * loop-doloop.c: Likewise. 5405 * loop-invariant.c: Likewise. 5406 * loop-unroll.c: Likewise. 5407 * lra-assigns.c: Likewise. 5408 * lra-constraints.c: Likewise. 5409 * modulo-sched.c: Likewise. 5410 * opt-suggestions.c: Likewise. 5411 * opts.c: Likewise. 5412 * postreload-gcse.c: Likewise. 5413 * predict.c: Likewise. 5414 * reload.c: Likewise. 5415 * reorg.c: Likewise. 5416 * resource.c: Likewise. 5417 * sanopt.c: Likewise. 5418 * sched-deps.c: Likewise. 5419 * sched-ebb.c: Likewise. 5420 * sched-rgn.c: Likewise. 5421 * sel-sched-ir.c: Likewise. 5422 * sel-sched.c: Likewise. 5423 * shrink-wrap.c: Likewise. 5424 * stmt.c: Likewise. 5425 * targhooks.c: Likewise. 5426 * toplev.c: Likewise. 5427 * tracer.c: Likewise. 5428 * trans-mem.c: Likewise. 5429 * tree-chrec.c: Likewise. 5430 * tree-data-ref.c: Likewise. 5431 * tree-if-conv.c: Likewise. 5432 * tree-inline.c: Likewise. 5433 * tree-loop-distribution.c: Likewise. 5434 * tree-parloops.c: Likewise. 5435 * tree-predcom.c: Likewise. 5436 * tree-profile.c: Likewise. 5437 * tree-scalar-evolution.c: Likewise. 5438 * tree-sra.c: Likewise. 5439 * tree-ssa-ccp.c: Likewise. 5440 * tree-ssa-dom.c: Likewise. 5441 * tree-ssa-dse.c: Likewise. 5442 * tree-ssa-ifcombine.c: Likewise. 5443 * tree-ssa-loop-ch.c: Likewise. 5444 * tree-ssa-loop-im.c: Likewise. 5445 * tree-ssa-loop-ivcanon.c: Likewise. 5446 * tree-ssa-loop-ivopts.c: Likewise. 5447 * tree-ssa-loop-manip.c: Likewise. 5448 * tree-ssa-loop-niter.c: Likewise. 5449 * tree-ssa-loop-prefetch.c: Likewise. 5450 * tree-ssa-loop-unswitch.c: Likewise. 5451 * tree-ssa-math-opts.c: Likewise. 5452 * tree-ssa-phiopt.c: Likewise. 5453 * tree-ssa-pre.c: Likewise. 5454 * tree-ssa-reassoc.c: Likewise. 5455 * tree-ssa-sccvn.c: Likewise. 5456 * tree-ssa-scopedtables.c: Likewise. 5457 * tree-ssa-sink.c: Likewise. 5458 * tree-ssa-strlen.c: Likewise. 5459 * tree-ssa-structalias.c: Likewise. 5460 * tree-ssa-tail-merge.c: Likewise. 5461 * tree-ssa-threadbackward.c: Likewise. 5462 * tree-ssa-threadedge.c: Likewise. 5463 * tree-ssa-uninit.c: Likewise. 5464 * tree-switch-conversion.c: Likewise. 5465 * tree-vect-data-refs.c: Likewise. 5466 * tree-vect-loop.c: Likewise. 5467 * tree-vect-slp.c: Likewise. 5468 * tree-vrp.c: Likewise. 5469 * tree.c: Likewise. 5470 * value-prof.c: Likewise. 5471 * var-tracking.c: Likewise. 5472 54732019-11-12 Martin Liska <mliska@suse.cz> 5474 5475 * asan.c (asan_sanitize_stack_p): Replace old parameter syntax 5476 with the new one, include opts.h if needed. Use SET_OPTION_IF_UNSET 5477 macro. 5478 (asan_sanitize_allocas_p): Likewise. 5479 (asan_emit_stack_protection): Likewise. 5480 (asan_protect_global): Likewise. 5481 (instrument_derefs): Likewise. 5482 (instrument_builtin_call): Likewise. 5483 (asan_expand_mark_ifn): Likewise. 5484 * auto-profile.c (auto_profile): Likewise. 5485 * bb-reorder.c (copy_bb_p): Likewise. 5486 (duplicate_computed_gotos): Likewise. 5487 * builtins.c (inline_expand_builtin_string_cmp): Likewise. 5488 * cfgcleanup.c (try_crossjump_to_edge): Likewise. 5489 (try_crossjump_bb): Likewise. 5490 * cfgexpand.c (defer_stack_allocation): Likewise. 5491 (stack_protect_classify_type): Likewise. 5492 (pass_expand::execute): Likewise. 5493 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise. 5494 (estimate_reg_pressure_cost): Likewise. 5495 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. 5496 * combine.c (combine_instructions): Likewise. 5497 (record_value_for_reg): Likewise. 5498 * common/config/aarch64/aarch64-common.c (aarch64_option_validate_param): Likewise. 5499 (aarch64_option_default_params): Likewise. 5500 * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise. 5501 * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise. 5502 * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise. 5503 * common/config/sh/sh-common.c (sh_option_default_params): Likewise. 5504 * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Likewise. 5505 (aarch64_allocate_and_probe_stack_space): Likewise. 5506 (aarch64_expand_epilogue): Likewise. 5507 (aarch64_override_options_internal): Likewise. 5508 * config/alpha/alpha.c (alpha_option_override): Likewise. 5509 * config/arm/arm.c (arm_option_override): Likewise. 5510 (arm_valid_target_attribute_p): Likewise. 5511 * config/i386/i386-options.c (ix86_option_override_internal): Likewise. 5512 * config/i386/i386.c (get_probe_interval): Likewise. 5513 (ix86_adjust_stack_and_probe_stack_clash): Likewise. 5514 (ix86_max_noce_ifcvt_seq_cost): Likewise. 5515 * config/ia64/ia64.c (ia64_adjust_cost): Likewise. 5516 * config/rs6000/rs6000-logue.c (get_stack_clash_protection_probe_interval): Likewise. 5517 (get_stack_clash_protection_guard_size): Likewise. 5518 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. 5519 * config/s390/s390.c (allocate_stack_space): Likewise. 5520 (s390_emit_prologue): Likewise. 5521 (s390_option_override_internal): Likewise. 5522 * config/sparc/sparc.c (sparc_option_override): Likewise. 5523 * config/visium/visium.c (visium_option_override): Likewise. 5524 * coverage.c (get_coverage_counts): Likewise. 5525 (coverage_compute_profile_id): Likewise. 5526 (coverage_begin_function): Likewise. 5527 (coverage_end_function): Likewise. 5528 * cse.c (cse_find_path): Likewise. 5529 (cse_extended_basic_block): Likewise. 5530 (cse_main): Likewise. 5531 * cselib.c (cselib_invalidate_mem): Likewise. 5532 * dse.c (dse_step1): Likewise. 5533 * emit-rtl.c (set_new_first_and_last_insn): Likewise. 5534 (get_max_insn_count): Likewise. 5535 (make_debug_insn_raw): Likewise. 5536 (init_emit): Likewise. 5537 * explow.c (compute_stack_clash_protection_loop_data): Likewise. 5538 * final.c (compute_alignments): Likewise. 5539 * fold-const.c (fold_range_test): Likewise. 5540 (fold_truth_andor): Likewise. 5541 (tree_single_nonnegative_warnv_p): Likewise. 5542 (integer_valued_real_single_p): Likewise. 5543 * gcse.c (want_to_gcse_p): Likewise. 5544 (prune_insertions_deletions): Likewise. 5545 (hoist_code): Likewise. 5546 (gcse_or_cprop_is_too_expensive): Likewise. 5547 * ggc-common.c: Likewise. 5548 * ggc-page.c (ggc_collect): Likewise. 5549 * gimple-loop-interchange.cc (MAX_NUM_STMT): Likewise. 5550 (MAX_DATAREFS): Likewise. 5551 (OUTER_STRIDE_RATIO): Likewise. 5552 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise. 5553 * gimple-loop-versioning.cc (loop_versioning::max_insns_for_loop): Likewise. 5554 * gimple-ssa-split-paths.c (is_feasible_trace): Likewise. 5555 * gimple-ssa-store-merging.c (imm_store_chain_info::try_coalesce_bswap): Likewise. 5556 (imm_store_chain_info::coalesce_immediate_stores): Likewise. 5557 (imm_store_chain_info::output_merged_store): Likewise. 5558 (pass_store_merging::process_store): Likewise. 5559 * gimple-ssa-strength-reduction.c (find_basis_for_base_expr): Likewise. 5560 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): Likewise. 5561 (scop_to_isl_ast): Likewise. 5562 * graphite-optimize-isl.c (get_schedule_for_node_st): Likewise. 5563 (optimize_isl): Likewise. 5564 * graphite-scop-detection.c (build_scops): Likewise. 5565 * haifa-sched.c (set_modulo_params): Likewise. 5566 (rank_for_schedule): Likewise. 5567 (model_add_to_worklist): Likewise. 5568 (model_promote_insn): Likewise. 5569 (model_choose_insn): Likewise. 5570 (queue_to_ready): Likewise. 5571 (autopref_multipass_dfa_lookahead_guard): Likewise. 5572 (schedule_block): Likewise. 5573 (sched_init): Likewise. 5574 * hsa-gen.c (init_prologue): Likewise. 5575 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Likewise. 5576 (cond_move_process_if_block): Likewise. 5577 * ipa-cp.c (ipcp_lattice::add_value): Likewise. 5578 (merge_agg_lats_step): Likewise. 5579 (devirtualization_time_bonus): Likewise. 5580 (hint_time_bonus): Likewise. 5581 (incorporate_penalties): Likewise. 5582 (good_cloning_opportunity_p): Likewise. 5583 (ipcp_propagate_stage): Likewise. 5584 * ipa-fnsummary.c (decompose_param_expr): Likewise. 5585 (set_switch_stmt_execution_predicate): Likewise. 5586 (analyze_function_body): Likewise. 5587 (compute_fn_summary): Likewise. 5588 * ipa-inline-analysis.c (estimate_growth): Likewise. 5589 * ipa-inline.c (caller_growth_limits): Likewise. 5590 (inline_insns_single): Likewise. 5591 (inline_insns_auto): Likewise. 5592 (can_inline_edge_by_limits_p): Likewise. 5593 (want_early_inline_function_p): Likewise. 5594 (big_speedup_p): Likewise. 5595 (want_inline_small_function_p): Likewise. 5596 (want_inline_self_recursive_call_p): Likewise. 5597 (edge_badness): Likewise. 5598 (recursive_inlining): Likewise. 5599 (compute_max_insns): Likewise. 5600 (early_inliner): Likewise. 5601 * ipa-polymorphic-call.c (csftc_abort_walking_p): Likewise. 5602 * ipa-profile.c (ipa_profile): Likewise. 5603 * ipa-prop.c (determine_known_aggregate_parts): Likewise. 5604 (ipa_analyze_node): Likewise. 5605 (ipcp_transform_function): Likewise. 5606 * ipa-split.c (consider_split): Likewise. 5607 * ipa-sra.c (allocate_access): Likewise. 5608 (process_scan_results): Likewise. 5609 (ipa_sra_summarize_function): Likewise. 5610 (pull_accesses_from_callee): Likewise. 5611 * ira-build.c (loop_compare_func): Likewise. 5612 (mark_loops_for_removal): Likewise. 5613 * ira-conflicts.c (build_conflict_bit_table): Likewise. 5614 * loop-doloop.c (doloop_optimize): Likewise. 5615 * loop-invariant.c (gain_for_invariant): Likewise. 5616 (move_loop_invariants): Likewise. 5617 * loop-unroll.c (decide_unroll_constant_iterations): Likewise. 5618 (decide_unroll_runtime_iterations): Likewise. 5619 (decide_unroll_stupid): Likewise. 5620 (expand_var_during_unrolling): Likewise. 5621 * lra-assigns.c (spill_for): Likewise. 5622 * lra-constraints.c (EBB_PROBABILITY_CUTOFF): Likewise. 5623 * modulo-sched.c (sms_schedule): Likewise. 5624 (DFA_HISTORY): Likewise. 5625 * opts.c (default_options_optimization): Likewise. 5626 (finish_options): Likewise. 5627 (common_handle_option): Likewise. 5628 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. 5629 (if): Likewise. 5630 * predict.c (get_hot_bb_threshold): Likewise. 5631 (maybe_hot_count_p): Likewise. 5632 (probably_never_executed): Likewise. 5633 (predictable_edge_p): Likewise. 5634 (predict_loops): Likewise. 5635 (expr_expected_value_1): Likewise. 5636 (tree_predict_by_opcode): Likewise. 5637 (handle_missing_profiles): Likewise. 5638 * reload.c (find_equiv_reg): Likewise. 5639 * reorg.c (redundant_insn): Likewise. 5640 * resource.c (mark_target_live_regs): Likewise. 5641 (incr_ticks_for_insn): Likewise. 5642 * sanopt.c (pass_sanopt::execute): Likewise. 5643 * sched-deps.c (sched_analyze_1): Likewise. 5644 (sched_analyze_2): Likewise. 5645 (sched_analyze_insn): Likewise. 5646 (deps_analyze_insn): Likewise. 5647 * sched-ebb.c (schedule_ebbs): Likewise. 5648 * sched-rgn.c (find_single_block_region): Likewise. 5649 (too_large): Likewise. 5650 (haifa_find_rgns): Likewise. 5651 (extend_rgns): Likewise. 5652 (new_ready): Likewise. 5653 (schedule_region): Likewise. 5654 (sched_rgn_init): Likewise. 5655 * sel-sched-ir.c (make_region_from_loop): Likewise. 5656 * sel-sched-ir.h (MAX_WS): Likewise. 5657 * sel-sched.c (process_pipelined_exprs): Likewise. 5658 (sel_setup_region_sched_flags): Likewise. 5659 * shrink-wrap.c (try_shrink_wrapping): Likewise. 5660 * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise. 5661 * toplev.c (print_version): Likewise. 5662 (process_options): Likewise. 5663 * tracer.c (tail_duplicate): Likewise. 5664 * trans-mem.c (tm_log_add): Likewise. 5665 * tree-chrec.c (chrec_fold_plus_1): Likewise. 5666 * tree-data-ref.c (split_constant_offset): Likewise. 5667 (compute_all_dependences): Likewise. 5668 * tree-if-conv.c (MAX_PHI_ARG_NUM): Likewise. 5669 * tree-inline.c (remap_gimple_stmt): Likewise. 5670 * tree-loop-distribution.c (MAX_DATAREFS_NUM): Likewise. 5671 * tree-parloops.c (MIN_PER_THREAD): Likewise. 5672 (create_parallel_loop): Likewise. 5673 * tree-predcom.c (determine_unroll_factor): Likewise. 5674 * tree-scalar-evolution.c (instantiate_scev_r): Likewise. 5675 * tree-sra.c (analyze_all_variable_accesses): Likewise. 5676 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise. 5677 * tree-ssa-dse.c (setup_live_bytes_from_ref): Likewise. 5678 (dse_optimize_redundant_stores): Likewise. 5679 (dse_classify_store): Likewise. 5680 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. 5681 * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise. 5682 * tree-ssa-loop-im.c (LIM_EXPENSIVE): Likewise. 5683 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. 5684 (try_peel_loop): Likewise. 5685 (tree_unroll_loops_completely): Likewise. 5686 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise. 5687 (CONSIDER_ALL_CANDIDATES_BOUND): Likewise. 5688 (MAX_CONSIDERED_GROUPS): Likewise. 5689 (ALWAYS_PRUNE_CAND_SET_BOUND): Likewise. 5690 * tree-ssa-loop-manip.c (can_unroll_loop_p): Likewise. 5691 * tree-ssa-loop-niter.c (MAX_ITERATIONS_TO_TRACK): Likewise. 5692 * tree-ssa-loop-prefetch.c (PREFETCH_BLOCK): Likewise. 5693 (L1_CACHE_SIZE_BYTES): Likewise. 5694 (L2_CACHE_SIZE_BYTES): Likewise. 5695 (should_issue_prefetch_p): Likewise. 5696 (schedule_prefetches): Likewise. 5697 (determine_unroll_factor): Likewise. 5698 (volume_of_references): Likewise. 5699 (add_subscript_strides): Likewise. 5700 (self_reuse_distance): Likewise. 5701 (mem_ref_count_reasonable_p): Likewise. 5702 (insn_to_prefetch_ratio_too_small_p): Likewise. 5703 (loop_prefetch_arrays): Likewise. 5704 (tree_ssa_prefetch_arrays): Likewise. 5705 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise. 5706 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. 5707 (convert_mult_to_fma): Likewise. 5708 (math_opts_dom_walker::after_dom_children): Likewise. 5709 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise. 5710 (hoist_adjacent_loads): Likewise. 5711 (gate_hoist_loads): Likewise. 5712 * tree-ssa-pre.c (translate_vuse_through_block): Likewise. 5713 (compute_partial_antic_aux): Likewise. 5714 * tree-ssa-reassoc.c (get_reassociation_width): Likewise. 5715 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Likewise. 5716 (vn_reference_lookup): Likewise. 5717 (do_rpo_vn): Likewise. 5718 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise. 5719 * tree-ssa-sink.c (select_best_block): Likewise. 5720 * tree-ssa-strlen.c (new_stridx): Likewise. 5721 (new_addr_stridx): Likewise. 5722 (get_range_strlen_dynamic): Likewise. 5723 (class ssa_name_limit_t): Likewise. 5724 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise. 5725 (create_variable_info_for_1): Likewise. 5726 (init_alias_vars): Likewise. 5727 * tree-ssa-tail-merge.c (find_clusters_1): Likewise. 5728 (tail_merge_optimize): Likewise. 5729 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): Likewise. 5730 (thread_jumps::fsm_find_control_statement_thread_paths): Likewise. 5731 (thread_jumps::find_jump_threads_backwards): Likewise. 5732 * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest): Likewise. 5733 * tree-ssa-uninit.c (compute_control_dep_chain): Likewise. 5734 * tree-switch-conversion.c (switch_conversion::check_range): Likewise. 5735 (jump_table_cluster::can_be_handled): Likewise. 5736 * tree-switch-conversion.h (jump_table_cluster::case_values_threshold): Likewise. 5737 (SWITCH_CONVERSION_BRANCH_RATIO): Likewise. 5738 (param_switch_conversion_branch_ratio): Likewise. 5739 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Likewise. 5740 (vect_enhance_data_refs_alignment): Likewise. 5741 (vect_prune_runtime_alias_test_list): Likewise. 5742 * tree-vect-loop.c (vect_analyze_loop_costing): Likewise. 5743 (vect_get_datarefs_in_loop): Likewise. 5744 (vect_analyze_loop): Likewise. 5745 * tree-vect-slp.c (vect_slp_bb): Likewise. 5746 * tree-vectorizer.h: Likewise. 5747 * tree-vrp.c (find_switch_asserts): Likewise. 5748 (vrp_prop::check_mem_ref): Likewise. 5749 * tree.c (wide_int_to_tree_1): Likewise. 5750 (cache_integer_cst): Likewise. 5751 * var-tracking.c (EXPR_USE_DEPTH): Likewise. 5752 (reverse_op): Likewise. 5753 (vt_find_locations): Likewise. 5754 57552019-11-12 Martin Liska <mliska@suse.cz> 5756 5757 * Makefile.in: Include params.opt. 5758 * flag-types.h (enum parloops_schedule_type): Add 5759 parloops_schedule_type used in params.opt. 5760 * params.opt: New file. 5761 57622019-11-12 Martin Liska <mliska@suse.cz> 5763 5764 * common.opt: Remove --param and --param= options. 5765 * opt-functions.awk: Mark CL_PARAMS for options 5766 that have Param keyword. 5767 * opts-common.c (decode_cmdline_options_to_array): 5768 Replace --param key=value with --param=key=value. 5769 * opts.c (print_filtered_help): Remove special 5770 printing of params. 5771 (print_specific_help): Update title for params. 5772 (common_handle_option): Do not handle OPT__param. 5773 opts.h (SET_OPTION_IF_UNSET): New macro. 5774 * doc/options.texi: Document Param keyword. 5775 57762019-11-12 Maciej W. Rozycki <macro@codesourcery.com> 5777 Frederik Harwath <frederik@codesourcery.com> 5778 Thomas Schwinge <thomas@codesourcery.com> 5779 5780 * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_SERIAL 5781 enumeration constant. 5782 (is_gimple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_SERIAL. 5783 (is_gimple_omp_offloaded): Likewise. 5784 * gimplify.c (omp_region_type): Add ORT_ACC_SERIAL enumeration 5785 constant. Adjust the value of ORT_NONE accordingly. 5786 (is_gimple_stmt): Handle OACC_SERIAL. 5787 (oacc_default_clause): Handle ORT_ACC_SERIAL. 5788 (gomp_needs_data_present): Likewise. 5789 (gimplify_adjust_omp_clauses): Likewise. 5790 (gimplify_omp_workshare): Handle OACC_SERIAL. 5791 (gimplify_expr): Likewise. 5792 * omp-expand.c (expand_omp_target): 5793 Handle GF_OMP_TARGET_KIND_OACC_SERIAL. 5794 (build_omp_regions_1, omp_make_gimple_edges): Likewise. 5795 * omp-low.c (is_oacc_parallel): Rename function to... 5796 (is_oacc_parallel_or_serial): ... this. 5797 Handle GF_OMP_TARGET_KIND_OACC_SERIAL. 5798 (scan_sharing_clauses): Adjust accordingly. 5799 (scan_omp_for): Likewise. 5800 (lower_oacc_head_mark): Likewise. 5801 (convert_from_firstprivate_int): Likewise. 5802 (lower_omp_target): Likewise. 5803 (check_omp_nesting_restrictions): Handle 5804 GF_OMP_TARGET_KIND_OACC_SERIAL. 5805 (lower_oacc_reductions): Likewise. 5806 (lower_omp_target): Likewise. 5807 * tree.def (OACC_SERIAL): New tree code. 5808 * tree-pretty-print.c (dump_generic_node): Handle OACC_SERIAL. 5809 5810 * doc/generic.texi (OpenACC): Document OACC_SERIAL. 5811 58122019-11-12 Jakub Jelinek <jakub@redhat.com> 5813 5814 PR target/92449 5815 * tree-complex.c (expand_complex_multiplication): If !HONOR_NANS, 5816 don't emit UNORDERED_EXPR guarded libcall. Formatting fixes. 5817 5818 PR tree-optimization/92452 5819 * tree-vrp.c (vrp_prop::check_array_ref): If TRUNC_DIV_EXPR folds 5820 into NULL_TREE, set up_bound to NULL_TREE instead of computing 5821 MINUS_EXPR on it. 5822 58232019-11-12 Andre Vieira <andre.simoesdiasvieira@arm.com> 5824 5825 * tree-vect-loop.c (vect_transform_loop): Don't overwrite epilogues 5826 safelen with 0. 5827 58282019-11-12 Alan Modra <amodra@gmail.com> 5829 5830 * config/rs6000/predicates.md (unspec_tls): Allow const0_rtx for got 5831 element of unspec vec. 5832 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Support 5833 PC-relative TLS. 5834 * config/rs6000/rs6000.md (UNSPEC_TLSTLS_PCREL): New unspec. 5835 (tls_gd_pcrel, tls_ld_pcrel): New insns. 5836 (tls_dtprel, tls_tprel): Set attr prefixed when tls_size is not 16. 5837 (tls_got_tprel_pcrel, tls_tls_pcrel): New insns. 5838 58392019-11-12 Alan Modra <amodra@gmail.com> 5840 5841 * config/rs6000/rs6000.opt (mtls-markers): Delete. 5842 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Don't define. 5843 (IS_NOMARK_TLSGETADDR): Likewise. 5844 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Delete. 5845 * config/rs6000/rs6000.c (rs6000_output_tlsargs): Delete. 5846 (rs6000_legitimize_tls_address): Remove !TARGET_TLS_MARKERS code. 5847 (rs6000_call_template_1): Delete TARGET_TLS_MARKERS test and 5848 allow other UNSPECs besides UNSPEC_TLSGD and UNSPEC_TLSLD. 5849 (rs6000_indirect_call_template_1): Likewise. 5850 (rs6000_pltseq_template): Likewise. 5851 (rs6000_opt_vars): Remove "tls-markers" entry. 5852 * config/rs6000/rs6000.md (tls_gd<bits>): Replace TARGET_TLS_MARKERS 5853 with TARGET_ELF. 5854 (tls_gd_high<bits>, tls_gd_low<bits>): Likewise. 5855 (tls_ld<bits>, tls_ld_high<bits>, tls_ld_low<bits>): Likewise. 5856 (pltseq_plt_pcrel<mode>): Likewise. 5857 (call_value_local32): Remove IS_NOMARK_TLSGETADDR predicate test. 5858 (call_value_local64): Likewise. 5859 (call_value_indirect_nonlocal_sysv<mode>): Remove IS_NOMARK_TLSGETADDR 5860 output and length attribute sub-expression. 5861 (call_value_nonlocal_sysv<mode>), 5862 (call_value_nonlocal_sysv_secure<mode>), 5863 (call_value_local_aix<mode>, call_value_nonlocal_aix<mode>), 5864 (call_value_indirect_aix<mode>, call_value_indirect_elfv2<mode>), 5865 (call_value_indirect_pcrel<mode>): Likewise. 5866 * doc/install.texi (powerpc-*-*): Require binutils-2.20. 5867 * configure.ac (HAVE_AS_TLS_MARKERS): Delete test. 5868 * configure: Regenerate. 5869 * config.in: Regenerate. 5870 58712019-11-11 Michael Meissner <meissner@linux.ibm.com> 5872 5873 * config/rs6000/predicates.md (prefixed_memory): New predicate. 5874 * config/rs6000/rs6000.md (stack_protect_setdi): Deal with either 5875 address being a prefixed load/store. 5876 (stack_protect_testdi): Deal with either address being a prefixed 5877 load. 5878 58792019-11-11 Jakub Jelinek <jakub@redhat.com> 5880 5881 PR bootstrap/92433 5882 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard 5883 ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check. Use 5884 std::swap. 5885 58862019-11-11 Richard Sandiford <richard.sandiford@arm.com> 5887 5888 PR tree-optimization/92420 5889 * tree-vect-stmts.c (get_negative_load_store_type): Move further 5890 up file. 5891 (get_group_load_store_type): Use it for reversed SLP accesses. 5892 58932019-11-11 Jan Hubicka <hubcika@ucw.cz> 5894 5895 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp 5896 summary. 5897 (ipcp_transformation_t::duplicate): Break out from ... 5898 (ipa_node_params_t::duplicate): ... here; add copying of agg 5899 replacements. 5900 * ipa-prop.h (ipcp_transformation): Add constructor and destructor. 5901 (ipcp_transformation_t): Add duplicate. 5902 59032019-11-11 Janne Blomqvist <jb@gcc.gnu.org> 5904 5905 PR fortran/91828 5906 * doc/install.texi: Document that the minimum MPFR version is 5907 3.1.0. 5908 59092019-11-11 Claudiu Zissulescu <claziss@gmail.com> 5910 5911 * config/arc/arc.md (movsi_ne): Reorder instruction variants and 5912 use new register constraint letters. 5913 59142019-11-11 Claudiu Zissulescu <claziss@gmail.com> 5915 5916 * config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs 5917 as well, if interesting recover the symbol and re-legitimize the 5918 pic address. 5919 59202019-11-11 Martin Liska <mliska@suse.cz> 5921 5922 * dbgcnt.def (DEBUG_COUNTER): Sort counters 5923 alphabetically. 5924 59252019-11-11 Andre Vieira <andre.simoesdiasvieira@arm.com> 5926 5927 * tree-vect-loop-manip.c (vect_do_peeling): Take epilogue gaps into 5928 account when checking if there are enough iterations to vectorize 5929 epilogue. 5930 59312019-11-11 Tobias Burnus <tobias@codesourcery.com> 5932 Kwok Cheung Yeung <kcy@codesourcery.com> 5933 5934 * langhooks-def.h (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT): 5935 Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; update define. 5936 (LANG_HOOKS_DECLS): Rename also here. 5937 * langhooks.h (lang_hooks_for_decls): Rename 5938 omp_is_optional_argument to omp_check_optional_argument; take 5939 additional bool argument. 5940 * omp-general.h (omp_check_optional_argument): Likewise. 5941 * omp-general.h (omp_check_optional_argument): Likewise. 5942 * omp-low.c (lower_omp_target): Update calls; handle absent 5943 Fortran optional arguments with USE_DEVICE_ADDR/USE_DEVICE_PTR. 5944 59452019-11-11 H.J. Lu <hjl.tools@gmail.com> 5946 5947 PR target/87833 5948 * config/i386/intelmic-mkoffload.c (prepare_target_image): Put 5949 -fPIC and -shared the last to create offload image. 5950 59512019-11-11 Thomas Schwinge <thomas@codesourcery.com> 5952 5953 * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead 5954 of 'offset'. 5955 5956 * Makefile.in (LANG_CONFIGUREFRAGS): Define. 5957 (config.status): Use/depend on it. 5958 * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'. 5959 * configure: Regenerate. 5960 59612019-11-11 Jiufu Guo <guojiufu@linux.ibm.com> 5962 5963 PR tree-optimization/88760 5964 * config/rs6000/rs6000.opt (-munroll-only-small-loops): New option. 5965 * common/config/rs6000/rs6000-common.c 5966 (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]: 5967 Turn on -funroll-loops and -munroll-only-small-loops. 5968 [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers. 5969 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove 5970 set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS. 5971 Turn off -munroll-only-small-loops for explicit -funroll-loops. 5972 (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook. 5973 (rs6000_loop_unroll_adjust): Define it. Use -munroll-only-small-loops. 5974 59752019-11-11 Kewen Lin <linkw@gcc.gnu.org> 5976 5977 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): 5978 Make scalar_load, vector_load, unaligned_load and 5979 vector_gather_load cost more to conform hardware latency and 5980 insn cost settings. 5981 59822019-11-10 Iain Sandoe <iain@sandoe.co.uk> 5983 5984 * config/darwin.h (MACHO_SYMBOL_FLAG_LINKER_VIS): New. 5985 (MACHO_SYMBOL_LINKER_VIS_P): New. 5986 59872019-11-10 Kwok Cheung Yeung <kcy@codesourcery.com> 5988 5989 * lra-spills.c (assign_spill_hard_regs): Do not spill into 5990 registers in eliminable_regset. 5991 59922019-11-10 Jan Hubicka <hubicka@ucw.cz> 5993 5994 * ipa-inline.c (compute_uninlined_call_time, 5995 compute_inlined_call_time): Take edge frequency as 5996 parameter rather than computing it by itself. 5997 (big_speedup_p, edge_badness): Manually CSE sreal 5998 frequency calculations. 5999 60002019-11-10 Jan Hubicka <hubicka@ucw.cz> 6001 6002 * profile-count.c (profile_count::to_sreal_scale): Short circuit 6003 case where profiles are same. 6004 60052019-11-10 Jan Hubicka <hubicka@ucw.cz> 6006 6007 * cgraph.c (cgraph_edge::maybe_hot_p): Do not use sreal_frequency. 6008 60092019-11-10 Jan Hubicka <hubicka@ucw.cz> 6010 6011 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipa edge 6012 args summaries of inlined edge unless it holds info about 6013 described reference. 6014 60152019-11-10 Segher Boessenkool <segher@kernel.crashing.org> 6016 6017 * config/rs6000/rs6000.md (CC_any): New mode iterator. 6018 (*movcc_internal1): Rename to... 6019 (*movcc_<mode> for CC_any): ... this. Support moves of all CC modes. 6020 60212019-11-09 Jan Hubicka <hubicka@ucw.cz> 6022 6023 * cgraph.h (struct cgraph_node): Add ipcp_clone flag. 6024 (cgraph_node::create_virtual_clone): Copy it. 6025 * ipa-cp.c (ipcp_versionable_function_p): Watch for missing 6026 summaries. 6027 (ignore_edge_p): If caller has ipa-cp disabled, skip the edge, too. 6028 (ipcp_verify_propagated_values): Do not verify nodes where ipcp 6029 is disabled. 6030 (propagate_constants_across_call): If callee is not analyzed, give up. 6031 (propagate_constants_topo): Lower to bottom latties of all callees of 6032 functions with ipa-cp disabled. 6033 (ipcp_propagate_stage): Skip functions with ipa-cp disabled. 6034 (cgraph_edge_brings_value_p): Check for availability first. 6035 (create_specialized_node): Set ipcp_clone. 6036 (ipcp_store_bits_results): Check that info is present. 6037 * ipa-fnsummary.c (evaluate_properties_for_edge): Do not analyze 6038 thunks. 6039 (ipa_call_context::duplicate_from, ipa_call_context::equal_to): Be 6040 conservative when callee summary is missing. 6041 (remap_edge_summaries): Lookup call summary only when needed. 6042 * ipa-icf.c (sem_function::param_used_p): Be ready for missing summary. 6043 * ipa-prpo.c (ipa_alloc_node_params, ipa_initialize_node_params): 6044 Use get_create. 6045 (ipa_analyze_node): Use get_create. 6046 (propagate_controlled_uses): Do not propagate when function is not 6047 analyzed. 6048 (ipa_propagate_indirect_call_infos): Remove summary of inline clone. 6049 (ipa_read_node_info): Use get_create. 6050 * ipa-prop.h (IPA_NODE_REF): Use get. 6051 (IPA_NODE_REF_GET_CREATE): New. 6052 60532019-11-09 Jan Hubicka <hubicka@ucw.cz> 6054 6055 * ipa-fnsummary.c (evaluate_properties_for_edge): Call IPA_NODE_REF 6056 on function symbol. 6057 60582019-11-09 Jan Hubicka <hubicka@ucw.cz> 6059 6060 * tree.c (fld_incomplete_type_of): Clear TYPE_FINAL_P, TYPE_EMPTY_P, 6061 ENUM_IS_OPAQUE and ENUM_IS_SCOPED. 6062 (free_lang_data_in_binfo): Clear TREE_PUBLIC in BINFO 6063 (free_lang_data_in_type): Clear ENUM_IS_OPAQUE and ENUM_IS_SCOPED. 6064 60652019-11-09 Jan Hubicka <hubicka@ucw.cz> 6066 6067 * ipa-inline-analysis.c (do_estimate_growth_1): Add support for 6068 capping the growth cumulated. 6069 (offline_size): Break out from ... 6070 (estimate_growth): ... here. 6071 (check_callers): Add N, OFFLINE and MIN_SIZE and KNOWN_EDGE 6072 parameters. 6073 (growth_likely_positive): Turn to ... 6074 (growth_positive_p): Re-implement. 6075 * ipa-inline.h (growth_likely_positive): Remove. 6076 (growth_positive_p): Declare. 6077 * ipa-inline.c (want_inline_small_function_p): Use 6078 growth_positive_p. 6079 (want_inline_function_to_all_callers_p): Likewise. 6080 60812019-11-09 Jan Hubicka <hubicka@ucw.cz> 6082 6083 * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Fix 6084 calculation of min_size. 6085 (ipa_update_overall_fn_summary): Likewise. 6086 60872019-11-09 Jan Hubicka <hubicka@ucw.cz> 6088 6089 * ipa-fnsummary.c (estimate_edge_size_and_time): Do not call 6090 estimate_edge_devirt_benefit when not computing hints; 6091 do not compute time when not asked for. 6092 (estimate_calls_size_and_time): Pass NULL hints and time when 6093 these are not computed; do not evaluate hint predicates when these are 6094 not computed. 6095 (ipa_merge_fn_summary_after_inlining): Do not re-evaluate edge 6096 frequency. 6097 60982019-11-09 Jakub Jelinek <jakub@redhat.com> 6099 6100 PR tree-optimization/92401 6101 * gimple-match-head.c (gimple_resimplify1): Call const_unop only 6102 if res_op->code is an expression with code length 1. 6103 * gimple-match-head.c (gimple_resimplify2): Call const_binop only 6104 if res_op->code is an expression with code length 2. 6105 * gimple-match-head.c (gimple_resimplify3): Call fold_ternary only 6106 if res_op->code is an expression with code length 3. 6107 61082019-11-09 Iain Sandoe <iain@sandoe.co.uk> 6109 6110 * config/darwin.c (machopic_mcount_stub_name): Validate the 6111 symbol stub name when it is created. 6112 * config/i386/darwin.h (FUNCTION_PROFILER): Remove the symbol 6113 stub validation. 6114 61152019-11-09 Jakub Jelinek <jakub@redhat.com> 6116 6117 * symtab.c: Fix comment typos. 6118 * cgraphunit.c: Likewise. 6119 * cgraph.h: Likewise. 6120 * cgraphclones.c: Likewise. 6121 * cgraph.c: Likewise. 6122 * varpool.c: Likewise. 6123 * tree-ssa-strlen.c: Likewise. 6124 * ipa-sra.c: Likewise. 6125 (scan_expr_access, check_all_callers_for_issues): Fix typo 6126 in a dump message. 6127 61282019-11-08 Iain Sandoe <iain@sandoe.co.uk> 6129 6130 * config/darwin-protos.h: Add include quard. 6131 61322019-11-08 Andrew MacLeod <amacleod@redhat.com> 6133 6134 * range-op.h (range_operator::fold_range): Return result in a 6135 reference parameter instead of by value. 6136 (range_operator::wi_fold): Same. 6137 * range-op.cc (range_operator::wi_fold): Return result in a reference 6138 parameter instead of by value. 6139 (range_operator::fold_range): Same. 6140 (value_range_from_overflowed_bounds): Same. 6141 (value_range_with_overflow): Same 6142 (create_possibly_reversed_range): Same. 6143 (operator_equal::fold_range): Same. 6144 (operator_not_equal::fold_range): Same. 6145 (operator_lt::fold_range): Same. 6146 (operator_le::fold_range): Same. 6147 (operator_gt::fold_range): Same. 6148 (operator_ge::fold_range): Same. 6149 (operator_plus::wi_fold): Same. 6150 (operator_plus::op1_range): Change call to fold_range. 6151 (operator_plus::op2_range): Change call to fold_range. 6152 (operator_minus::wi_fold): Return result via reference parameter. 6153 (operator_minus::op1_range): Change call to fold_range. 6154 (operator_minus::op2_range): Change call to fold_range. 6155 (operator_min::wi_fold): Return result via reference parameter. 6156 (operator_max::wi_fold): Same. 6157 (cross_product_operator::wi_cross_product): Same. 6158 (operator_mult::wi_fold): Same. 6159 (operator_div::wi_fold): Same. 6160 (operator_div op_floor_div): Fix whitespace. 6161 (operator_exact_divide::op1_range): Change call to fold_range. 6162 (operator_lshift::fold_range): Return result via reference parameter. 6163 (operator_lshift::wi_fold): Same. 6164 (operator_rshift::fold_range): Same. 6165 (operator_rshift::wi_fold): Same. 6166 (operator_cast::fold_range): Same. 6167 (operator_cast::op1_range): Change calls to fold_range. 6168 (operator_logical_and::fold_range): Return result via reference. 6169 (wi_optimize_and_or): Adjust call to value_range_with_overflow. 6170 (operator_bitwise_and::wi_fold): Return result via reference. 6171 (operator_logical_or::fold_range): Same. 6172 (operator_bitwise_or::wi_fold): Same. 6173 (operator_bitwise_xor::wi_fold): Same. 6174 (operator_trunc_mod::wi_fold): Same. 6175 (operator_logical_not::fold_range): Same. 6176 (operator_bitwise_not::fold_range): Same. 6177 (operator_bitwise_not::op1_range): Change call to fold_range. 6178 (operator_cst::fold_range): Return result via reference. 6179 (operator_identity::fold_range): Same. 6180 (operator_abs::wi_fold): Same. 6181 (operator_absu::wi_fold): Same. 6182 (operator_negate::fold_range): Same. 6183 (operator_negate::op1_range): Change call to fold_range. 6184 (operator_addr_expr::fold_range): Return result via reference. 6185 (operator_addr_expr::op1_range): Change call to fold_range. 6186 (operator_pointer_plus::wi_fold): Return result via reference. 6187 (operator_pointer_min_max::wi_fold): Same. 6188 (operator_pointer_and::wi_fold): Same. 6189 (operator_pointer_or::wi_fold): Same. 6190 (range_op_handler): Change call to fold_range. 6191 (range_cast): Same. 6192 * tree-vrp.c (range_fold_binary_symbolics_p): Change call to 6193 fold_range. 6194 (range_fold_unary_symbolics_p): Same. 6195 (range_fold_binary_expr): Same. 6196 (range_fold_unary_expr): Same. 6197 61982019-11-08 Richard Sandiford <richard.sandiford@arm.com> 6199 6200 * tree-vect-loop.c (neutral_op_for_slp_reduction): Take the 6201 vector type as an argument rather than reading it from the 6202 stmt_vec_info. 6203 (vect_create_epilog_for_reduction): Update accordingly. 6204 (vectorizable_reduction): Likewise. 6205 (vect_transform_cycle_phi): Likewise. 6206 62072019-11-08 Segher Boessenkool <segher@kernel.crashing.org> 6208 6209 * config/rs6000/predicates.md (branch_comparison_operator): Allow only 6210 the comparison codes that make sense for the mode used, and only the 6211 codes that can be done with a single branch instruction. 6212 62132019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com> 6214 6215 PR tree-optimization/92351 6216 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): When we are 6217 peeling the main loop for alignment, make sure to set the misalignment 6218 of the epilogue's data references to DR_MISALIGNMENT_UNKNOWN. 6219 62202019-11-08 Richard Biener <rguenther@suse.de> 6221 6222 * dbgcnt.def (ivopts_loop): Add. 6223 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Check 6224 ivopts_loop before optimizing a loop. 6225 62262019-11-08 Richard Biener <rguenther@suse.de> 6227 6228 PR ipa/92409 6229 * tree-inline.c (declare_return_variable): Properly handle 6230 type mismatches for the return slot. 6231 62322019-11-08 Eric Botcazou <ebotcazou@adacore.com> 6233 6234 PR target/92095 6235 * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare. 6236 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest 6237 change. 6238 (got_helper_needed): New static variable. 6239 (output_load_pcrel_sym): New function. 6240 (get_pc_thunk_name): Remove after inlining... 6241 (load_got_register): ...here. Rework the initialization of the GOT 6242 register and of the GOT helper. 6243 (save_local_or_in_reg_p): Test the REGNO of the GOT register. 6244 (sparc_file_end): Test got_helper_needed to decide whether the GOT 6245 helper must be emitted. Use output_asm_insn instead of fprintf. 6246 (sparc_init_pic_reg): In PIC mode, always initialize the PIC register 6247 if optimization is enabled. 6248 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly 6249 by calling output_load_pcrel_sym. 6250 62512019-11-08 Richard Sandiford <richard.sandiford@arm.com> 6252 6253 * tree-sra.c (create_access): Delay disqualifying the base 6254 for poly_int values until we know we have a base. 6255 62562019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com> 6257 6258 * tree-vect-loop.c (vect_analyze_loop): Disable epilogue vectorization 6259 for loops with SIMDUID set. Enable epilogue vectorization for loops 6260 with SIMDLEN set after finding a main loop with a VF that matches it. 6261 62622019-11-08 Jakub Jelinek <jakub@redhat.com> 6263 6264 PR target/92038 6265 * gimple-ssa-store-merging.c (find_constituent_stores): For return 6266 value only, return non-NULL if there is a single non-clobber 6267 constituent store even if there are constituent clobbers and return 6268 one of clobber constituent stores if all constituent stores are 6269 clobbers. 6270 (split_group): Handle clobbers. 6271 (imm_store_chain_info::output_merged_store): When computing 6272 bzero_first, look after all clobbers at the start. Don't count 6273 clobber stmts in orig_num_stmts, except if the first orig store is 6274 a clobber covering the whole area and split_stores cover the whole 6275 area, consider equal number of stmts ok. Punt if split_stores 6276 contains only ->orig stores and their number plus number of original 6277 clobbers is equal to original number of stmts. For ->orig, look past 6278 clobbers in the constituent stores. 6279 (imm_store_chain_info::output_merged_stores): Don't remove clobber 6280 stmts. 6281 (rhs_valid_for_store_merging_p): Don't return false for clobber stmt 6282 rhs. 6283 (store_valid_for_store_merging_p): Allow clobber stmts. 6284 (verify_clear_bit_region_be): Fix up a thinko in function comment. 6285 6286 PR c++/92384 6287 * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't 6288 copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm 6289 slot. 6290 (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type 6291 force creation of a unique data.stack_parm slot. 6292 62932019-11-08 Richard Biener <rguenther@suse.de> 6294 6295 * genmatch.c (expr::gen_transform): Use the resimplify 6296 member function instead of hard-coding the gimple_resimplifyN variant. 6297 (dt_simplify::gen_1): Likewise. 6298 62992019-11-08 Richard Sandiford <richard.sandiford@arm.com> 6300 6301 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle 6302 POLY_INT_CST. 6303 63042019-11-08 Richard Sandiford <richard.sandiford@arm.com> 6305 6306 * tree-inline.c (declare_return_variable): Check for poly_int_tree_p 6307 instead of INTEGER_CST. 6308 63092019-11-08 Richard Biener <rguenther@suse.de> 6310 6311 PR tree-optimization/92324 6312 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use 6313 STMT_VINFO_REDUC_VECTYPE for all computations, inserting 6314 sign-conversions as necessary. 6315 (vectorizable_reduction): Reject conversions in the chain 6316 that are not sign-conversions, base analysis on a non-converting 6317 stmt and its operation sign. Set STMT_VINFO_REDUC_VECTYPE. 6318 * tree-vect-stmts.c (vect_stmt_relevant_p): Don't dump anything 6319 for debug stmts. 6320 * tree-vectorizer.h (_stmt_vec_info::reduc_vectype): New. 6321 (STMT_VINFO_REDUC_VECTYPE): Likewise. 6322 63232019-11-08 Georg-Johann Lay <avr@gjlay.de> 6324 6325 PR target/92055 6326 * config/avr/avr.opt (-mdouble=, -mlong-double=): 6327 Fix a missing '-' when displaying these options in the 6328 help screen. 6329 63302019-11-08 Richard Sandiford <richard.sandiford@arm.com> 6331 6332 * config/aarch64/iterators.md (SVE_BH, SVE_BHS): Delete. 6333 63342019-11-08 Richard Sandiford <richard.sandiford@arm.com> 6335 6336 * config/aarch64/aarch64-builtins.c 6337 (aarch64_builtin_vectorized_function): Remove bswap handling. 6338 63392019-11-08 Richard Sandiford <richard.sandiford@arm.com> 6340 6341 * tree-core.h (tree_type_common::indivisible_p): New member variable. 6342 * tree.h (TYPE_INDIVISIBLE_P): New macro. 6343 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): 6344 Treat the vector types as indivisible. 6345 63462019-11-08 Richard Sandiford <richard.sandiford@arm.com> 6347 6348 * optabs.def (gather_load_optab, mask_gather_load_optab) 6349 (scatter_store_optab, mask_scatter_store_optab): Turn into 6350 conversion optabs, with the offset mode given explicitly. 6351 * doc/md.texi: Update accordingly. 6352 * config/aarch64/aarch64-sve-builtins-base.cc 6353 (svld1_gather_impl::expand): Likewise. 6354 (svst1_scatter_impl::expand): Likewise. 6355 * internal-fn.c (gather_load_direct, scatter_store_direct): Likewise. 6356 (expand_scatter_store_optab_fn): Likewise. 6357 (direct_gather_load_optab_supported_p): Likewise. 6358 (direct_scatter_store_optab_supported_p): Likewise. 6359 (expand_gather_load_optab_fn): Likewise. Expect the mask argument 6360 to be argument 4. 6361 (internal_fn_mask_index): Return 4 for IFN_MASK_GATHER_LOAD. 6362 (internal_gather_scatter_fn_supported_p): Replace the offset sign 6363 argument with the offset vector type. Require the two vector 6364 types to have the same number of elements but allow their element 6365 sizes to be different. Treat the optabs as conversion optabs. 6366 * internal-fn.h (internal_gather_scatter_fn_supported_p): Update 6367 prototype accordingly. 6368 * optabs-query.c (supports_at_least_one_mode_p): Replace with... 6369 (supports_vec_convert_optab_p): ...this new function. 6370 (supports_vec_gather_load_p): Update accordingly. 6371 (supports_vec_scatter_store_p): Likewise. 6372 * tree-vectorizer.h (vect_gather_scatter_fn_p): Take a vec_info. 6373 Replace the offset sign and bits parameters with a scalar type tree. 6374 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise. 6375 Pass back the offset vector type instead of the scalar element type. 6376 Allow the offset to be wider than the memory elements. Search for 6377 an offset type that the target supports, stopping once we've 6378 reached the maximum of the element size and pointer size. 6379 Update call to internal_gather_scatter_fn_supported_p. 6380 (vect_check_gather_scatter): Update calls accordingly. 6381 When testing a new scale before knowing the final offset type, 6382 check whether the scale is supported for any signed or unsigned 6383 offset type. Check whether the target supports the source and 6384 target types of a conversion before deciding whether to look 6385 through the conversion. Record the chosen offset_vectype. 6386 * tree-vect-patterns.c (vect_get_gather_scatter_offset_type): Delete. 6387 (vect_recog_gather_scatter_pattern): Get the scalar offset type 6388 directly from the gs_info's offset_vectype instead. Pass a zero 6389 of the result type to IFN_GATHER_LOAD and IFN_MASK_GATHER_LOAD. 6390 * tree-vect-stmts.c (check_load_store_masking): Update call to 6391 internal_gather_scatter_fn_supported_p, passing the offset vector 6392 type recorded in the gs_info. 6393 (vect_truncate_gather_scatter_offset): Update call to 6394 vect_check_gather_scatter, leaving it to search for a valid 6395 offset vector type. 6396 (vect_use_strided_gather_scatters_p): Convert the offset to the 6397 element type of the gs_info's offset_vectype. 6398 (vect_get_gather_scatter_ops): Get the offset vector type directly 6399 from the gs_info. 6400 (vect_get_strided_load_store_ops): Likewise. 6401 (vectorizable_load): Pass a zero of the result type to IFN_GATHER_LOAD 6402 and IFN_MASK_GATHER_LOAD. 6403 * config/aarch64/aarch64-sve.md (gather_load<mode>): Rename to... 6404 (gather_load<mode><v_int_equiv>): ...this. 6405 (mask_gather_load<mode>): Rename to... 6406 (mask_gather_load<mode><v_int_equiv>): ...this. 6407 (scatter_store<mode>): Rename to... 6408 (scatter_store<mode><v_int_equiv>): ...this. 6409 (mask_scatter_store<mode>): Rename to... 6410 (mask_scatter_store<mode><v_int_equiv>): ...this. 6411 64122019-11-08 Kewen Lin <linkw@gcc.gnu.org> 6413 6414 PR target/92132 6415 * config/rs6000/predicates.md 6416 (signed_or_equality_comparison_operator): New predicate. 6417 (unsigned_or_equality_comparison_operator): Likewise. 6418 * config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand. 6419 (one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2. 6420 * config/rs6000/vector.md 6421 (vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand. 6422 (vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise. 6423 (vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise. 6424 (vcond_mask_<mode><VEC_int> for VEC_F): New expand for float 6425 vector modes and same-size integer vector modes. 6426 (vec_cmp<mode><VEC_int> for VEC_F): Likewise. 6427 (vector_lt<mode> for VEC_F): New expand. 6428 (vector_le<mode> for VEC_F): Likewise. 6429 (vector_ne<mode> for VEC_F): Likewise. 6430 (vector_unge<mode> for VEC_F): Likewise. 6431 (vector_ungt<mode> for VEC_F): Likewise. 6432 (vector_unle<mode> for VEC_F): Likewise. 6433 (vector_unlt<mode> for VEC_F): Likewise. 6434 (vector_uneq<mode>): Expose name. 6435 (vector_ltgt<mode>): Likewise. 6436 (vector_unordered<mode>): Likewise. 6437 (vector_ordered<mode>): Likewise. 6438 64392019-11-08 Hongtao Liu <Hongtao.liu@intel.com> 6440 6441 PR target/92295 6442 * config/i386/i386-expand.c (ix86_expand_vector_init_concat) 6443 Enhance ix86_expand_vector_init_concat. 6444 64452019-11-08 Joseph Myers <joseph@codesourcery.com> 6446 6447 * doc/invoke.texi (-Wold-style-definition): Document () not being 6448 considered an old-style definition for C2x. 6449 64502019-11-07 John David Anglin <danglin@gcc.gnu.org> 6451 6452 * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers. 6453 Enhance comment. 6454 (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New 6455 insn patterns using ldcw instruction. 6456 (memory_barrier): Remove insn pattern using sync instruction. 6457 * config/pa/pa.opt (coherent-ldcw): New option. 6458 (ordered): New option. 6459 64602019-11-07 Segher Boessenkool <segher@kernel.crashing.org> 6461 6462 * config/rs6000/rs6000.c (validate_condition_mode): Don't assert for 6463 valid conditions. 6464 64652019-11-07 Jakub Jelinek <jakub@redhat.com> 6466 6467 * ipa-utils.c (ipa_merge_profiles): Fix fprintf format string 6468 typo - mistmatch -> mismatch. 6469 * ipa-profile.c (ipa_profile): Likewise. 6470 * ipa-devirt.c (compare_virtual_tables): Fix a comment typo 6471 - mistmatch -> mismatch. 6472 64732018-11-07 Segher Boessenkool <segher@kernel.crashing.org> 6474 6475 * simplify-rtx.c (comparison_to_mask): New function. 6476 (mask_to_comparison): New function. 6477 (simplify_logical_relational_operation): New function. 6478 (simplify_binary_operation_1): Call 6479 simplify_logical_relational_operation. 6480 64812019-11-07 Peter Bergner <bergner@linux.ibm.com> 6482 6483 PR other/92090 6484 * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT 6485 modes for integer constants. 6486 64872019-11-07 Jan Hubicka <jh@suse.cz> 6488 6489 PR ipa/92406 6490 * ipa-fnsummary.c (analyze_function_body): Use get_create to copy 6491 summary. 6492 64932019-11-07 Jan Hubicka <jh@suse.cz> 6494 6495 * optc-save-gen.awk: Generate cl_target_option_free 6496 and cl_optimization_option_free. 6497 * opth-en.awk: Declare cl_target_option_free 6498 and cl_optimization_option_free. 6499 * tree.c (free_node): Use it. 6500 65012019-11-06 Jan Hubicka <jh@suse.cz> 6502 6503 * lto-streamer-in.c: Include alloc-pool.h. 6504 (freeing_string_slot_hasher): Remove. 6505 (string_slot_allocator): New object allocator. 6506 (file_name_hash_table): Turn to hash_table<string_slot_hasher>. 6507 (file_name_obstack): New obstack. 6508 (canon_file_name): Allocate in obstack and allocator. 6509 (lto_reader_init): Initialize obstack and allocator. 6510 (lto_free_file_name_hash): New function. 6511 * lto-streamer.h (lto_free_file_name_hash): New. 6512 65132019-11-07 Feng Xue <fxue@os.amperecomputing.com> 6514 6515 PR tree-optimization/89134 6516 * doc/invoke.texi (min-loop-cond-split-prob): Document new --params. 6517 * params.def: Add min-loop-cond-split-prob. 6518 * tree-ssa-loop-split.c (split_loop): Remove niter parameter, move some 6519 outside checks on loop into the function. 6520 (split_info): New class. 6521 (find_vdef_in_loop, get_control_equiv_head_block): New functions. 6522 (find_control_dep_blocks, vuse_semi_invariant_p): Likewise. 6523 (ssa_semi_invariant_p, loop_iter_phi_semi_invariant_p): Likewise. 6524 (control_dep_semi_invariant_p, stmt_semi_invariant_p_1): Likewise. 6525 (stmt_semi_invariant_p, branch_removable_p): Likewise. 6526 (get_cond_invariant_branch, compute_added_num_insns): Likewise. 6527 (get_cond_branch_to_split_loop, do_split_loop_on_cond): Likewise. 6528 (split_loop_on_cond): Likewise. 6529 (tree_ssa_split_loops): Add loop split on conditional statement. 6530 65312019-11-07 Andreas Krebbel <krebbel@linux.ibm.com> 6532 6533 * config/s390/s390.md ("*cstorecc<mode>_z13"): New insn_and_split 6534 pattern. 6535 65362019-11-07 Richard Biener <rguenther@suse.de> 6537 6538 PR tree-optimization/92405 6539 * tree-vect-loop.c (vectorizable_reduction): Appropriately 6540 restrict lane-reducing ops to single stmt chains. 6541 65422019-11-07 Martin Jambor <mjambor@suse.cz> 6543 6544 PR lto/70929 6545 * cif-code.def (MISMATCHED_ARGUMENTS): Removed. 6546 * cgraph.h (gimple_check_call_matching_types): Remove 6547 * cgraph.c (gimple_check_call_args): Likewise. 6548 (gimple_check_call_matching_types): Likewise. 6549 (symbol_table::create_edge): Do not call 6550 gimple_check_call_matching_types. 6551 (cgraph_edge::make_direct): Likewise. 6552 (cgraph_edge::redirect_call_stmt_to_callee): Likewise. 6553 * value-prof.h (check_ic_target): Remove. 6554 * value-prof.c (check_ic_target): Remove. 6555 (gimple_ic_transform): Do nat call check_ic_target. 6556 * auto-profile.c (function_instance::find_icall_target_map): Likewise. 6557 (afdo_indirect_call): Likewise. 6558 * ipa-prop.c (update_indirect_edges_after_inlining): Do not call 6559 gimple_check_call_matching_types. 6560 * ipa-inline.c (early_inliner): Likewise. 6561 65622019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6563 6564 * config/arm/arm.md (arm_<simd32_op>): New define_expand. 6565 (arm_<simd32_op><add_clobber_q_name>_insn): New define_insn. 6566 * config/arm/arm_acle.h (__ssat16, __usat16): Define. 6567 * config/arm/arm_acle_builtins.def: Define builtins for the above. 6568 * config/arm/iterators.md (USSAT16): New int_iterator. 6569 (simd32_op): Handle UNSPEC_SSAT16, UNSPEC_USAT16. 6570 (sup): Likewise. 6571 * config/arm/predicates.md (ssat16_imm): New predicate. 6572 (usat16_imm): Likewise. 6573 * config/arm/unspecs.md (UNSPEC_SSAT16, UNSPEC_USAT16): Define. 6574 65752019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6576 6577 * config/arm/arm.md (arm_<simd32_op><add_clobber_q_name>_insn): 6578 New define_insns. 6579 (arm_<simd32_op>): New define_expands. 6580 * config/arm/arm_acle.h (__smlad, __smladx, __smlsd, __smlsdx, 6581 __smuad, __smuadx): Define. 6582 * config/arm/arm_acle_builtins.def: Define builtins for the above. 6583 * config/arm/iterators.md (SIMD32_TERNOP_Q): New int_iterator. 6584 (SIMD32_BINOP_Q): Likewise. 6585 (simd32_op): Handle the above. 6586 * config/arm/unspecs.md: Define unspecs for the above. 6587 65882019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6589 6590 * config/arm/aout.h (REGISTER_NAMES): Add apsrge. 6591 * config/arm/arm.md (APSRGE_REGNUM): Define. 6592 (arm_<simd32_op>): New define_insn. 6593 (arm_sel): Likewise. 6594 * config/arm/arm.h (FIXED_REGISTERS): Add entry for apsrge. 6595 (CALL_USED_REGISTERS): Likewise. 6596 (REG_ALLOC_ORDER): Likewise. 6597 (FIRST_PSEUDO_REGISTER): Update value. 6598 (ARM_GE_BITS_READ): Define. 6599 * config/arm/arm.c (arm_conditional_register_usage): Clear 6600 APSRGE_REGNUM from operand_reg_set. 6601 (arm_ge_bits_access): Define. 6602 * config/arm/arm-builtins.c (arm_check_builtin_call): Handle 6603 ARM_BUIILTIN_sel. 6604 * config/arm/arm-protos.h (arm_ge_bits_access): Declare prototype. 6605 * config/arm/arm-fixed.md (add<mode>3): Convert to define_expand. 6606 FAIL if ARM_GE_BITS_READ. 6607 (*arm_add<mode>3): New define_insn. 6608 (sub<mode>3): Convert to define_expand. FAIL if ARM_GE_BITS_READ. 6609 (*arm_sub<mode>3): New define_insn. 6610 * config/arm/arm_acle.h (__sel, __sadd8, __ssub8, __uadd8, __usub8, 6611 __sadd16, __sasx, __ssax, __ssub16, __uadd16, __uasx, __usax, 6612 __usub16): Define. 6613 * config/arm/arm_acle_builtins.def: Define builtins for the above. 6614 * config/arm/iterators.md (SIMD32_GE): New int_iterator. 6615 (simd32_op): Handle the above. 6616 * config/arm/unspecs.md (UNSPEC_GE_SET): Define. 6617 (UNSPEC_SEL, UNSPEC_SADD8, UNSPEC_SSUB8, UNSPEC_UADD8, UNSPEC_USUB8, 6618 UNSPEC_SADD16, UNSPEC_SASX, UNSPEC_SSAX, UNSPEC_SSUB16, UNSPEC_UADD16, 6619 UNSPEC_UASX, UNSPEC_USAX, UNSPEC_USUB16): Define. 6620 66212019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6622 6623 * config/arm/arm.md (arm_smlabb_setq): New define_insn. 6624 (arm_smlabb): New define_expand. 6625 (*maddhisi4tb): Rename to... 6626 (maddhisi4tb): ... This. 6627 (*maddhisi4tt): Rename to... 6628 (maddhisi4tt): ... This. 6629 (arm_smlatb_setq): New define_insn. 6630 (arm_smlatb): New define_expand. 6631 (arm_smlatt_setq): New define_insn. 6632 (arm_smlatt): New define_expand. 6633 (arm_<smlaw_op><add_clobber_name>_insn): New define_insn. 6634 (arm_<smlaw_op>): New define_expand. 6635 * config/arm/arm_acle.h (__smlabb, __smlatb, __smlabt, __smlatt, 6636 __smlawb, __smlawt): Define. 6637 * config/arm_acle_builtins.def: Define builtins for the above. 6638 * config/arm/iterators.md (SMLAWBT): New int_iterator. 6639 (slaw_op): New int_attribute. 6640 * config/arm/unspecs.md (UNSPEC_SMLAWB, UNSPEC_SMLAWT): Define. 6641 66422019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6643 6644 * config/arm/arm.md (arm_<ss_op>): New define_expand. 6645 (arm_<ss_op><add_clobber_q_name>_insn): New define_insn. 6646 * config/arm/arm_acle.h (__qadd, __qsub, __qdbl): Define. 6647 * config/arm/arm_acle_builtins.def: Add builtins for qadd, qsub. 6648 * config/arm/iterators.md (SSPLUSMINUS): New code iterator. 6649 (ss_op): New code_attr. 6650 66512019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6652 6653 * config/arm/aout.h (REGISTER_NAMES): Add apsrq. 6654 * config/arm/arm.md (APSRQ_REGNUM): Define. 6655 (add_setq): New define_subst. 6656 (add_clobber_q_name): New define_subst_attr. 6657 (add_clobber_q_pred): Likewise. 6658 (maddhisi4): Change to define_expand. Split into mult and add if 6659 ARM_Q_BIT_READ. 6660 (arm_maddhisi4): New define_insn. 6661 (*maddhisi4tb): Disable for ARM_Q_BIT_READ. 6662 (*maddhisi4tt): Likewise. 6663 (arm_ssat): New define_expand. 6664 (arm_usat): Likewise. 6665 (arm_get_apsr): New define_insn. 6666 (arm_set_apsr): Likewise. 6667 (arm_saturation_occurred): New define_expand. 6668 (arm_set_saturation): Likewise. 6669 (*satsi_<SAT:code>): Rename to... 6670 (satsi_<SAT:code><add_clobber_q_name>): ... This. 6671 (*satsi_<SAT:code>_shift): Disable for ARM_Q_BIT_READ. 6672 * config/arm/arm.h (FIXED_REGISTERS): Mark apsrq as fixed. 6673 (CALL_USED_REGISTERS): Mark apsrq. 6674 (FIRST_PSEUDO_REGISTER): Update value. 6675 (REG_ALLOC_ORDER): Add APSRQ_REGNUM. 6676 (machine_function): Add q_bit_access. 6677 (ARM_Q_BIT_READ): Define. 6678 * config/arm/arm.c (TARGET_CHECK_BUILTIN_CALL): Define. 6679 (arm_conditional_register_usage): Clear APSRQ_REGNUM from 6680 operand_reg_set. 6681 (arm_q_bit_access): Define. 6682 * config/arm/arm-builtins.c: Include stringpool.h. 6683 (arm_sat_binop_imm_qualifiers, 6684 arm_unsigned_sat_binop_unsigned_imm_qualifiers, 6685 arm_sat_occurred_qualifiers, arm_set_sat_qualifiers): Define. 6686 (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS, 6687 UNSIGNED_SAT_BINOP_UNSIGNED_IMM_QUALIFIERS, SAT_OCCURRED_QUALIFIERS, 6688 SET_SAT_QUALIFIERS): Likewise. 6689 (arm_builtins): Define ARM_BUILTIN_SAT_IMM_CHECK. 6690 (arm_init_acle_builtins): Initialize __builtin_sat_imm_check. 6691 Handle 0 argument expander. 6692 (arm_expand_acle_builtin): Handle ARM_BUILTIN_SAT_IMM_CHECK. 6693 (arm_check_builtin_call): Define. 6694 * config/arm/arm.md (ssmulsa3, usmulusa3, usmuluha3, 6695 arm_ssatsihi_shift, arm_usatsihi): Disable when ARM_Q_BIT_READ. 6696 * config/arm/arm-protos.h (arm_check_builtin_call): Declare prototype. 6697 (arm_q_bit_access): Likewise. 6698 * config/arm/arm_acle.h (__ssat, __usat, __ignore_saturation, 6699 __saturation_occurred, __set_saturation_occurred): Define. 6700 * config/arm/arm_acle_builtins.def: Define builtins for ssat, usat, 6701 saturation_occurred, set_saturation_occurred. 6702 * config/arm/unspecs.md (UNSPEC_Q_SET): Define. 6703 (UNSPEC_APSR_READ): Likewise. 6704 (VUNSPEC_APSR_WRITE): Likewise. 6705 * config/arm/arm-fixed.md (ssadd<mode>3): Convert to define_expand. 6706 (*arm_ssadd<mode>3): New define_insn. 6707 (sssub<mode>3): Convert to define_expand. 6708 (*arm_sssub<mode>3): New define_insn. 6709 (ssmulsa3): Convert to define_expand. 6710 (*arm_ssmulsa3): New define_insn. 6711 (usmulusa3): Convert to define_expand. 6712 (*arm_usmulusa3): New define_insn. 6713 (ssmulha3): FAIL if ARM_Q_BIT_READ. 6714 (arm_ssatsihi_shift, arm_usatsihi): Disable for ARM_Q_BIT_READ. 6715 * config/arm/iterators.md (qaddsub_clob_q): New mode attribute. 6716 67172019-11-07 Martin Liska <mliska@suse.cz> 6718 6719 PR c++/92354 6720 * cgraph.c (delete_function_version): Clear global 6721 variable version_info_node if equal to deleted 6722 function. 6723 67242019-11-07 Martin Liska <mliska@suse.cz> 6725 6726 * fold-const.c (operand_compare::operand_equal_p): Add comparison 6727 of CONSTRUCTOR_NO_CLEARING. 6728 (operand_compare::hash_operand): Likewise. 6729 67302019-11-07 Georg-Johann Lay <avr@gjlay.de> 6731 6732 Support 64-bit double and 64-bit long double configurations. 6733 6734 PR target/92055 6735 * config.gcc (tm_defines) [avr]: Set from --with-double=, 6736 --with-long-double=. 6737 * config/avr/t-multilib: Remove. 6738 * config/avr/t-avr: Output of genmultilib.awk is now fully 6739 dynamically generated and no more part of the repo. 6740 (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): New variables. 6741 Pass them down to... 6742 * config/avr/genmultilib.awk: ...here and handle them. 6743 * config/avr/avr.opt (-mdouble=, avr_double). New option and var. 6744 (-mlong-double=, avr_long_double). New option and var. 6745 * common/config/avr/avr-common.c (opts.h, diagnostic.h): Include. 6746 (TARGET_OPTION_OPTIMIZATION_TABLE) <-mdouble=, -mlong-double=>: 6747 Set default as requested by --with-double= 6748 (TARGET_HANDLE_OPTION): Define to this... 6749 (avr_handle_option): ...new hook worker. 6750 * config/avr/avr.h (DOUBLE_TYPE_SIZE): Define to avr_double. 6751 (LONG_DOUBLE_TYPE_SIZE): Define to avr_long_double. 6752 (avr_double_lib): New proto for spec function. 6753 (EXTRA_SPEC_FUNCTIONS) <double-lib>: Add. 6754 (DRIVER_SELF_SPECS): Call %:double-lib. 6755 * config/avr/avr.c (avr_option_override): Assert 6756 sizeof(long double) >= sizeof(double) for the target. 6757 * config/avr/avr-c.c (avr_cpu_cpp_builtins) 6758 [__HAVE_DOUBLE_MULTILIB__, __HAVE_LONG_DOUBLE_MULTILIB__] 6759 [__HAVE_DOUBLE64__, __HAVE_DOUBLE32__, __DEFAULT_DOUBLE__=] 6760 [__HAVE_LONG_DOUBLE64__, __HAVE_LONG_DOUBLE32__] 6761 [__HAVE_LONG_DOUBLE_IS_DOUBLE__, __DEFAULT_LONG_DOUBLE__=]: 6762 New built-in define depending on --with-double=, --with-long-double=. 6763 * config/avr/driver-avr.c (avr_double_lib): New spec function. 6764 * doc/invoke.tex (AVR Options) <-mdouble=,-mlong-double=>: Doc. 6765 * doc/install.texi (Cross-Compiler-Specific Options) 6766 <--with-double=, --with-long-double=>: Doc. 6767 67682019-11-07 Richard Biener <rguenther@suse.de> 6769 6770 * dbgcnt.def (gimple_unroll): New. 6771 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Check 6772 gimple_unroll debug counter before applying transform. 6773 (try_peel_loop): Likewise. 6774 67752019-11-07 Kwok Cheung Yeung <kcy@codesourcery.com> 6776 6777 * ira.c (setup_alloc_regs): Setup no_unit_alloc_regs for 6778 frame pointer in multiple registers. 6779 (ira_setup_eliminable_regset): Setup eliminable_regset, 6780 ira_no_alloc_regs and regs_ever_live for frame pointer in 6781 multiple registers. 6782 67832019-11-06 Kelvin Nilsen <kelvin@gcc.gnu.org> 6784 6785 * config/rs6000/vsx.md (xxswapd_<mode>): Add support for V2DF and 6786 V2DI modes. 6787 67882019-11-06 Jan Hubicka <jh@suse.cz> 6789 6790 * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving 6791 allocations. 6792 * mem-stats.h (mem_alloc_description<T>::release_object_overhead): 6793 Do not silently ignore summary corruptions. 6794 67952019-11-06 Richard Sandiford <richard.sandiford@arm.com> 6796 6797 * tree-vect-loop.c (vect_analyze_loop): Only try to vectorize 6798 the epilogue if there are peeled iterations for it to handle. 6799 68002019-11-06 Claudiu Zissulescu <claziss@synopsys.com> 6801 6802 * config/arc/arc.c (arc_split_ior): Add asserts. 6803 (arc_split_mov_const): Likewise. 6804 (arc_check_ior_const): Do not match known short immediate values. 6805 * config/arc/arc.md (movsi): Don't split predicated instructions 6806 (iorsi): Likewise. 6807 68082019-11-06 Claudiu Zissulescu <claziss@synopsys.com> 6809 6810 * config/arc/arc.opt (mea): Update help string. 6811 * doc/invoke.texi(ARC): Update mea option info. 6812 68132019-11-06 Claudiu Zissulescu <claziss@synopsys.com> 6814 6815 * config/arc/arc.md (zero_extendqihi2_i): Cleanup pattern. 6816 (zero_extendqisi2_ac): Likewise. 6817 (zero_extendhisi2_i): Likewise. 6818 (extendqihi2_i): Likewise. 6819 (extendqisi2_ac): Likewise. 6820 (extendhisi2_i): Likewise. 6821 68222019-11-06 Richard Biener <rguenther@suse.de> 6823 6824 * tree-vect-loop.c (vectorizable_reduction): Remember reduction 6825 PHI. Use STMT_VINFO_REDUC_IDX to skip the reduction operand. 6826 Simplify single_defuse_cycle condition. 6827 68282019-11-06 Richard Sandiford <richard.sandiford@arm.com> 6829 6830 * tree-vect-loop.c (vect_analyze_loop_2): When vectorizing an 6831 epilogue loop, make sure that the VF is small enough or that 6832 the epilogue loop can be fully-masked. 6833 68342019-11-06 Richard Sandiford <richard.sandiford@arm.com> 6835 6836 * tree-vect-loop.c (vect_analyze_loop): Break out of the main 6837 loop when we've finished, rather than returning directly from 6838 the loop. Use a local variable to track whether we're still 6839 searching for the preferred simdlen. Make vect_epilogues 6840 record whether the next iteration should try to treat the 6841 loop as an epilogue. 6842 68432019-11-06 Vineet Gupta <vgupta@synopsys.com> 6844 6845 * config/arc/arc-c.c (arc_cpu_cpp_builtins) : Add 6846 __arc_hard_float__, __ARC_HARD_FLOAT__, 6847 __arc_soft_float__, __ARC_SOFT_FLOAT__ 6848 68492019-11-06 Andre Vieira <andre.simoesdiasvieira@arm.com> 6850 6851 PR tree-optimization/92317 6852 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard2): Also 6853 update phi's with constant phi arguments. 6854 68552019-11-06 Eric Botcazou <ebotcazou@adacore.com> 6856 Alexandre Oliva <oliva@adacore.com> 6857 6858 * common.opt (-fcallgraph-info[=]): New option. 6859 * doc/invoke.texi (Developer options): Document it. 6860 * opts.c (common_handle_option): Handle it. 6861 * builtins.c (expand_builtin_alloca): Record allocation if 6862 -fcallgraph-info=da. 6863 * calls.c (expand_call): If -fcallgraph-info, record the call. 6864 (emit_library_call_value_1): Likewise. 6865 * flag-types.h (enum callgraph_info_type): New type. 6866 * explow.c: Include stringpool.h. 6867 (set_stack_check_libfunc): Set SET_SYMBOL_REF_DECL on the symbol. 6868 * function.c (allocate_stack_usage_info): New. 6869 (allocate_struct_function): Call it for -fcallgraph-info. 6870 (prepare_function_start): Call it otherwise. 6871 (record_final_call, record_dynamic_alloc): New. 6872 * function.h (struct callinfo_callee): New. 6873 (CALLEE_FROM_CGRAPH_P): New. 6874 (struct callinfo_dalloc): New. 6875 (struct stack_usage): Add callees and dallocs. 6876 (record_final_call, record_dynamic_alloc): Declare. 6877 * gimplify.c (gimplify_decl_expr): Record dynamically-allocated 6878 object if -fcallgraph-info=da. 6879 * optabs-libfuncs.c (build_libfunc_function): Keep SYMBOL_REF_DECL. 6880 * print-tree.h (print_decl_identifier): Declare. 6881 (PRINT_DECL_ORIGIN, PRINT_DECL_NAME, PRINT_DECL_UNIQUE_NAME): New. 6882 * print-tree.c: Include print-tree.h. 6883 (print_decl_identifier): New function. 6884 * toplev.c: Include print-tree.h. 6885 (callgraph_info_file): New global variable. 6886 (callgraph_info_external_printed): Likewise. 6887 (output_stack_usage): Rename to... 6888 (output_stack_usage_1): ... this. Make it static, add cf 6889 parameter. If -fcallgraph-info=su, print stack usage to cf. 6890 If -fstack-usage, use print_decl_identifier for 6891 pretty-printing. 6892 (INDIRECT_CALL_NAME): New. 6893 (dump_final_node_vcg_start): New. 6894 (dump_final_callee_vcg, dump_final_node_vcg): New. 6895 (output_stack_usage): New. 6896 (lang_dependent_init): Open and start file if 6897 -fcallgraph-info. Allocated callgraph_info_external_printed. 6898 (finalize): If callgraph_info_file is not null, finish it, 6899 close it, and release callgraph_info_external_printed. 6900 69012019-11-06 Gergö Barany <gergo@codesourcery.com> 6902 Frederik Harwath <frederik@codesourcery.com> 6903 Thomas Schwinge <thomas@codesourcery.com> 6904 6905 * omp-low.c (struct omp_context): New fields 6906 local_reduction_clauses, outer_reduction_clauses. 6907 (new_omp_context): Initialize these. 6908 (scan_sharing_clauses): Record reduction clauses on OpenACC constructs. 6909 (scan_omp_for): Check reduction clauses for incorrect nesting. 6910 69112019-11-06 Jakub Jelinek <jakub@redhat.com> 6912 6913 PR inline-asm/92352 6914 * gimplify.c (gimplify_asm_expr): Reject VLA in output or input 6915 operands with non-memory constraints. 6916 69172019-11-05 Martin Sebor <msebor@redhat.com> 6918 6919 PR tree-optimization/92373 6920 * tree.c (component_ref_size): Only consider initializers of objects 6921 of matching struct types. 6922 Return null for instances of interior zero-length arrays. 6923 69242019-11-05 Segher Boessenkool <segher@kernel.crashing.org> 6925 6926 * doc/md.texi (Insn Splitting): Fix combiner documentation. 6927 69282019-11-05 Jason Merrill <jason@redhat.com> 6929 6930 PR tree-optimization/91825 6931 * expmed.c: Reduce -Wmaybe-uninitialized to warning. 6932 69332019-11-05 Jim Wilson <jimw@sifive.com> 6934 6935 PR middle-end/92263 6936 * expr.c (emit_move_complex): Only use BLOCK_OP_NO_LIBCALL when 6937 optimize_insn_for_speed_p is true. 6938 69392019-11-05 Martin Sebor <msebor@redhat.com> 6940 6941 PR middle-end/92333 6942 PR middle-end/82608 6943 * tree-vrp.c (vrp_prop::check_array_ref): Handle VLAs with constant 6944 size. 6945 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use a meaninful 6946 name and location for a temporary variable. 6947 69482019-11-05 Aldy Hernandez <aldyh@redhat.com> 6949 6950 * tree-vrp.c (value_range::value_range): Fix whitespace. 6951 (defined_ranges_p): Same. 6952 (range_fold_binary_symbolics_p): Same. 6953 (value_range::intersect_helper): Same. 6954 (value_range::union_helper): Same. 6955 * tree-vrp.h (range_fold_binary_expr): Same. 6956 69572019-11-04 Martin Sebor <msebor@redhat.com> 6958 6959 PR middle-end/92341 6960 PR middle-end/82612 6961 * tree-sra.c (get_access_for_expr): Fail for out-of-bounds offsets. 6962 * tree-vrp.c (vrp_prop::check_array_ref): Correct index and text 6963 of message printed in a warning for empty arrays. 6964 (vrp_prop::check_mem_ref): Also handle function parameters and 6965 empty arrays. 6966 69672019-11-05 Richard Biener <rguenther@suse.de> 6968 6969 PR tree-optimization/92371 6970 * tree-vect-loop.c (vectorizable_reduction): Set STMT_VINFO_REDUC_DEF 6971 on the original stmt of live stmts in the chain. 6972 (vectorizable_live_operation): Look at the original stmt when 6973 checking STMT_VINFO_REDUC_DEF. 6974 69752019-11-05 Aldy Hernandez <aldyh@redhat.com> 6976 6977 * gimple-fold.c, gimple-loop-versioning.cc, 6978 gimple-ssa-evrp-analyze.[ch], gimple-ssa-evrp.c, 6979 gimple-ssa-sprintf.c, ipa-cp.c, ipa-prop.c, ipa-prop.h, 6980 range-op.[hc]*, range.[hc]*, selftest.h, tree-ssa-dom.c, 6981 tree-ssa-strlen.c, tree-ssa-threadedge.c, tree-ssanames.[hc], 6982 tree-vrp.[hc], vr-values.[hc]: Global rename of value_range to 6983 value_range_equiv, and value_range_base to value_range. 6984 69852019-11-05 Matthew Malcomson <matthew.malcomson@arm.com> 6986 6987 * expr.c (build_personality_function): Fix generated type to 6988 match actual personality functions. 6989 69902019-11-05 Matthew Malcomson <matthew.malcomson@arm.com> 6991 6992 * config/aarch64/aarch64.c (aarch64_handle_attr_cpu): Allocate 6993 enough bytes for the NULL character. 6994 69952019-11-05 Richard Biener <rguenther@suse.de> 6996 6997 PR tree-optimization/92280 6998 * match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR 6999 had a single use do not create a new CTOR. 7000 * tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold 7001 BIT_FIELD_REF of a CTOR via GENERIC. 7002 70032019-11-05 Andreas Krebbel <krebbel@linux.ibm.com> 7004 7005 * config/s390/s390.c (s390_vector_alignment): Check if the value 7006 fits into uhwi before using it. 7007 70082019-11-05 Martin Liska <mliska@suse.cz> 7009 7010 * symbol-summary.h: Use ggc_delete. 7011 70122019-11-05 Anton Youdkevitch <anton.youdkevitch@bell-sw.com> 7013 7014 * config/aarch64/aarch64.c (thunderx2t99_vector_cost): 7015 Change vec_perm field to 10. 7016 70172019-11-05 Arnaud Charlet <charlet@adacore.com> 7018 7019 * doc/install.texi: Further fix syntax for html generation. 7020 70212019-11-05 Martin Liska <mliska@suse.cz> 7022 7023 * symbol-summary.h: Rename allocator to m_allocator and 7024 add comment. 7025 70262019-11-05 Richard Biener <rguenther@suse.de> 7027 7028 PR tree-optimization/92324 7029 * tree-vect-loop.c (check_reduction_path): For MIN/MAX require 7030 all signed or unsigned operations. 7031 70322019-11-05 Jan Hubicka <jh@suse.cz> 7033 7034 * hsa-brig.c: Include alloc-pool.h 7035 * hsa-dump.c: Likewise. 7036 * hsa-gen.c: Likewise. 7037 * hse-regalloc.c: Likewise. 7038 * ipa-hsa.c: Likewise. 7039 * ipa-predicate.c: Likewise. 7040 * ipa-reference.c: Likewise. 7041 * ipa-sra.c: Likewise. 7042 * omp-expand.c: Likewise. 7043 * omp-general.c: Likewise. 7044 * omp-low.c: Likewise. 7045 * sumbol-summary.h (function_summary_base): Add allocator. 7046 (function_summary<T *>::function_summary): Update construction. 7047 (fast_function_summary<T *, V>::fast_function_summary): Likewise. 7048 (call_summary_base): Add allcator. 7049 (call_summary<T *>::call_summary): Update construction. 7050 (fast_call_summary<T *, V>::fast_call_summary): Likewise. 7051 70522019-11-05 Jakub Jelinek <jakub@redhat.com> 7053 7054 PR tree-optimization/91945 7055 * builtins.c (compute_objsize): For ARRAY_REF, only multiply off 7056 by tpsize if it is both non-NULL and INTEGER_CST, otherwise punt. 7057 Formatting fix. 7058 70592019-11-05 Aldy Hernandez <aldyh@redhat.com> 7060 7061 * range-op.cc (wi_set_zero_nonzero_bits): Remove static qualifier. 7062 * range-op.h (wi_set_zero_nonzero_bits): New prototype. 7063 * tree-vrp.h (vrp_set_zero_nonzero_bits): Remove. 7064 * tree-vrp.c (wide_int_range_set_zero_nonzero_bits): Remove. 7065 (vrp_set_zero_nonzero_bits): Move to... 7066 * vr-values.c (vr_set_zero_nonzero_bits): ...here. 7067 (vr_values::simplify_bit_ops_using_ranges): Rename 7068 vrp_set_zero_nonzero_bits to vr_set_zero_nonzero_bits. 7069 70702019-11-05 Martin Liska <mliska@suse.cz> 7071 7072 PR c++/92339 7073 * fold-const.c (operand_compare::hash_operand): Remove 7074 FIELD_DECL handling. 7075 70762019-11-05 Aldy Hernandez <aldyh@redhat.com> 7077 7078 * tree-vrp.h (vrp_bitmap_equal_p): Remove. 7079 * tree-vrp.c (vrp_bitmap_equal_p): Move before use and make 7080 static. 7081 70822019-11-05 Aldy Hernandez <aldyh@redhat.com> 7083 7084 * tree-vrp.c (value_range_base::operator==): Use equal_p to 7085 properly handle symbolics. 7086 (range_compatible_p): Remove. 7087 70882019-11-04 Kamlesh Kumar <kamleshbhalui@gmail.com> 7089 7090 * common.opt (-fabi-version): Document =14. 7091 * doc/invoke.texi (C++ Dialect Options): Likewise. 7092 70932019-11-04 Aldy Hernandez <aldyh@redhat.com> 7094 7095 * tree-vrp.c (value_range_base::set): Do not special case pointers. 7096 70972019-11-04 Tobias Burnus <tobias@codesourcery.com> 7098 7099 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): New function. 7100 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to 7101 gcn_omp_device_kind_arch_isa. 7102 * config/gcn/t-omp-device: New file. 7103 * configure.ac: Support gcn for omp_device_property. 7104 * configure: Regenerate. 7105 71062019-11-04 Aldy Hernandez <aldyh@redhat.com> 7107 7108 * tree-vrp.h (vrp_val_min): Remove handle_pointers argument. 7109 (vrp_val_max): Same. 7110 (vrp_val_is_min): Same. 7111 (vrp_val_is_max): Same. 7112 (value_range_base::nonzero_p): Remove last argument to 7113 vrp_val_is_max. 7114 * tree-vrp.c (vrp_val_min): Remove handle_pointers argument. 7115 (vrp_val_max): Same. 7116 (vrp_val_is_min): Same. 7117 (vrp_val_is_max): Same. 7118 (value_range_base::set_varying): Remove last argument to vrp_val*. 7119 (value_range_base::dump): Same. 7120 (value_range_base::set): Same. 7121 (value_range_base::normalize_symbolics): Same. 7122 (value_range_base::num_pairs): Same. 7123 (value_range_base::lower_bound): Same. 7124 (value_range_base::upper_bound): Same. 7125 (ranges_from_anti_range): Remove handle_pointers argument. 7126 (value_range_base::singleton_p): Remove last argument to 7127 ranges_from_anti_range. 7128 71292019-11-04 Jan Hubicka <jh@suse.cz> 7130 7131 * ipa-reference.c (init_function_info): Initialize 7132 info->global.statics_read. 7133 71342019-11-04 Aldy Hernandez <aldyh@redhat.com> 7135 7136 * tree-vrp.c (value_range_base::invert): Use constructors to build 7137 range. 7138 71392019-11-04 Aldy Hernandez <aldyh@redhat.com> 7140 7141 * tree-vrp.c (range_int_cst_singleton_p): Remove. 7142 * tree-vrp.h (range_int_cst_singleton_p): Remove. 7143 71442019-11-04 Aldy Hernandez <aldyh@redhat.com> 7145 7146 * tree-vrp.c (value_range_base::normalize_addresses): Handle 7147 VR_UNDEFINED. 7148 71492019-11-04 Aldy Hernandez <aldyh@redhat.com> 7150 7151 * tree-vrp.c (dump_assert_info): New. 7152 (dump_asserts_info): New. 7153 71542019-11-04 Jan Hubicka <jh@suse.cz> 7155 7156 * ipa-inline-transform.c: Include ipa-utils.h 7157 (inline_call): Set thunk_expansion flag. 7158 * ipa-utils.h (thunk_expansion): Declare. 7159 * ipa-devirt.c (thunk_expansion): New global var. 7160 (devirt_node_removal_hook): Do not invalidate cache while 7161 doing thunk expansion. 7162 71632019-11-04 Tamar Christina <tamar.christina@arm.com> 7164 7165 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Initialize rstmt. 7166 71672019-11-04 Martin Sebor <msebor@redhat.com> 7168 7169 PR tree-optimization/92349 7170 * tree-vrp.c (vrp_prop::check_array_ref): Avoid assuming struct 7171 memebers have constant sizes. 7172 71732019-11-04 Andre Vieira <andre.simoesdiasvieira@arm.com> 7174 7175 * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo 7176 parameter. 7177 * tree-vectorizer.h (vect_analyze_loop): Update declaration. 7178 * tree-vectorizer.c (try_vectorize_loop_1): Update calls to 7179 vect_analyze_loop. 7180 71812019-11-04 Joel Hutton <Joel.Hutton@arm.com> 7182 7183 * expr.c (store_constructor): Modify to handle single element vectors. 7184 * tree-vect-slp.c (vect_analyze_slp_instance): Add case for vector 7185 constructors. 7186 (vect_slp_check_for_constructors): New function. 7187 (vect_slp_analyze_bb_1): Call new function to check for vector 7188 constructors. 7189 (vectorize_slp_instance_root_stmt): New function. 7190 (vect_schedule_slp): Call new function to vectorize root stmt of vector 7191 constructors. 7192 * tree-vectorizer.h (SLP_INSTANCE_ROOT_STMT): New field. 7193 71942019-11-04 Richard Biener <rguenther@suse.de> 7195 7196 PR tree-optimization/92345 7197 * tree-vect-loop.c (vect_is_simple_reduction): Return whether 7198 we produced a reduction chain. 7199 (vect_analyze_scalar_cycles_1): Do not add reduction chains to 7200 LOOP_VINFO_REDUCTIONS. 7201 72022019-11-04 Jan Hubicka <jh@suse.cz> 7203 7204 * cgraphclones.c (cgraph_node::create_version_clone): Do not 7205 duplicate summaries. 7206 * ipa-fnsummary.c (ipa_fn_summary_alloc): Allocate size summary 7207 first. 7208 (ipa_fn_summary_t::duplicate): Use get instead of get_create to 7209 access call summaries. 7210 (dump_ipa_call_summary): Be ready for missing edge summaries. 7211 (analyze_function_body): Use get instead of get_create to access 7212 edge summary. 7213 (estimate_calls_size_and_time): Do not access summaries of 7214 inlined edges; sanity check they are missing. 7215 (ipa_call_context::estimate_size_and_time): Use get instead 7216 of get_create to access node summary. 7217 (inline_update_callee_summaries): Do not update depth of 7218 inlined edge. 7219 (ipa_merge_fn_summary_after_inlining): Remove inline edge from 7220 growth caches. 7221 (ipa_merge_fn_summary_after_inlining): Use get instead 7222 of get_create. 7223 * ipa-fnsummary.h (ipa_remove_from_growth_caches): Declare. 7224 * ipa-inline-analyssi.c (edge_growth_cache): Turn to 7225 fast summary. 7226 (initialize_growth_caches): Update. 7227 (do_estimate_edge_time): Remove redundant copy of context. 7228 (ipa_remove_from_growth_caches): New function. 7229 * ipa-inline.c (flatten_function): Update overall summary 7230 only when optimizing. 7231 (inline_to_all_callers): Update overall summary of function 7232 inlined to. 7233 * ipa-inline.h (edge_growth_cache): Turn to fast summary. 7234 * symbol-summary.h (call_summary_base): Set m_initialize_when_cloning 7235 to false. 7236 72372019-11-04 Richard Biener <rguenther@suse.de> 7238 7239 * system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO. 7240 * ggc-common.c: Remove inclusion of malloc.h, define INCLUDE_MALLOC_H. 7241 72422019-11-04 David Edelsohn <dje.gcc@gmail.com> 7243 7244 * ggc-common.c: Include system.h before malloc.h. 7245 72462019-11-04 Alexandre Oliva <oliva@adacore.com> 7247 7248 * configure.ac: Pass --enable-obsolete=* and 7249 --enable-option-checking=* down to build configure, and fail 7250 if it fails. AC_SUBST HAVE_AUTO_BUILD. 7251 * configure: Rebuild. 7252 * Makefile.in [HAVE_AUTO_BUILD] (auto-build.h): New rule. 7253 [HAVE_AUTO_BUILD] (config.status): Depend on auto-build.h. 7254 72552019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com> 7256 7257 * config.in: Regenerate. 7258 * config/msp430/msp430.c (msp430_option_override): Emit an error if 7259 -mtiny-printf is used without GCC being configured with 7260 --enable-newlib-nano-formatted-io. 7261 * config/msp430/msp430.h (LINK_SPEC): Pass 7262 "--wrap puts --wrap printf" when -mtiny-printf is used. 7263 * config/msp430/msp430.opt: Document -mtiny-printf. 7264 * configure: Regenerate. 7265 * configure.ac: Enable --enable-newlib-nano-formatted-io flag. 7266 Define HAVE_NEWLIB_NANO_FORMATTED_IO if 7267 --enable-newlib-nano-formatted-io is passed. 7268 * doc/invoke.texi: Document -mtiny-printf. 7269 72702019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com> 7271 7272 * configure: Regenerate. 7273 72742019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com> 7275 7276 * config/msp430/driver-msp430.c 7277 (msp430_get_linker_devices_include_path): New spec function. 7278 * config/msp430/msp430-devices.c (msp430_dirname): New function. 7279 (extract_devices_dir_from_exec_prefix): New function. 7280 (extract_devices_dir_from_collect_gcc): New function. 7281 (msp430_check_env_var_for_devices): New function. 7282 (msp430_check_path_for_devices): Use xstrdup instead of ASTRDUP. 7283 (parse_devices_csv): Call msp430_check_env_var_for_devices if 7284 devices.csv was not found using other methods. 7285 * config/msp430/msp430-devices.h (msp430_check_env_var_for_devices): 7286 New prototype. 7287 (msp430_dirname): Likewise. 7288 * config/msp430/msp430.c (msp430_register_pre_includes): New function. 7289 * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Add 7290 msp430_get_linker_devices_include_path. 7291 (TARGET_EXTRA_PRE_INCLUDES): Define. 7292 * doc/invoke.texi: Document new ways of searching for support files. 7293 72942019-11-04 Richard Biener <rguenther@suse.de> 7295 7296 PR tree-optimization/92301 7297 * tree-vect-stmts.c (process_use): Force reduction PHI defs live 7298 as required by epilogue generation 7299 73002019-11-04 Martin Liska <mliska@suse.cz> 7301 7302 PR ipa/92304 7303 * fold-const.c (operand_compare::hash_operand): Fix field 7304 hashing of CONSTRUCTOR. 7305 73062019-11-04 Martin Liska <mliska@suse.cz> 7307 7308 * ggc.h (ggc_delete): New function. 7309 * ipa-fnsummary.c (ipa_free_fn_summary): Use it. 7310 * ipa-prop.c (ipa_free_all_edge_args): Likewise. 7311 (ipa_free_all_node_params): Likewise. 7312 * ipa-sra.c (ipa_sra_analysis): Likewise. 7313 73142019-11-02 Jan Hubicka <hubicka@ucw.cz> 7315 7316 * ipa-fnsummary.c (set_cond_stmt_execution_predicate, 7317 set_switch_stmt_execution_predicate, compute_bb_predicates, 7318 will_be_nonconstant_expr_predicate, 7319 phi_result_unknown_predicate, 7320 analyze_function_body): Pass arround params summary. 7321 (ipa_call_context::duplicate_from): New comment; 7322 only duplicate useful values. 7323 (ipa_call_context::equal_to): Only compare useful values. 7324 (remap_edge_summaries): Pass params_summary. 7325 (remap_hint_predicate): Likewise. 7326 (ipa_merge_fn_summary_after_inlining): Likewise. 7327 (inline_read_section): Initialize params summary used flags. 7328 * ipa-predicate.c (predicate::remap_after_inlining): Pass 7329 around param_summary. 7330 (add_condition): Initialized used params summary flags. 7331 * ipa-predicate.h (inline_param_summary::equals_to): Make const. 7332 (inline_param_summary::useless_p): New predicate. 7333 (remap_after_inlining, add_condition): Update prototype 7334 * ipa-prop.c (ipa_populate_param_decls): Watch overflow in 7335 move_cost. 7336 (ipa_note_param_call): Add parameter POLYMORPHIC; update params 7337 summaries. 7338 (ipa_analyze_indirect_call_uses): Update use of ipa_note_param_call. 7339 (ipa_analyze_virtual_call_uses): Likewise. 7340 (update_indirect_edges_after_inlining): Update param summaries. 7341 (ipa_print_node_params): Print used flags. 7342 (ipa_read_indirect_edge_info): Update param summareis. 7343 * ipa-prop.h (ipa_param_descriptor): Add 7344 used_by_ipa_predicates, used_by_indirect_call 7345 and used_by_polymorphic_call. 7346 (ipa_set_param_used_by_ipa_predicates, 7347 ipa_set_param_used_by_indirect_call, 7348 ipa_set_param_used_by_polymorphic_call, 7349 ipa_is_param_used_by_ipa_predicates, 7350 ipa_is_param_used_by_indirect_call, 7351 ipa_is_param_used_by_polymorphic_call): New inline functions. 7352 73532019-11-02 Jan Hubicka <hubicka@ucw.cz> 7354 7355 * ipa-fnsummary.c (ipa_call_context::duplicate_from): New 7356 member function. 7357 (ipa_call_context::release): Add ALL parameter. 7358 (ipa_call_context::equal_to): New member function. 7359 * ipa-fnsummary.h (ipa_call_context): Add empty constructor; 7360 duplicate_form, release, equal_to and exists_p member functoins. 7361 * ipa-inline-analysis.c (node_context_cache_entry): New 7362 class. 7363 (node_context_summary): Likewise. 7364 (node_context_cache, node_context_cache_hit, node_context_cache_miss, 7365 node_context_clear): New static vars. 7366 (initialize_growth_caches): New function. 7367 (free_growth_caches): Also delete node_context_cache; output stats. 7368 (do_estimate_edge_time): Cache contexts. 7369 (reset_node_cache): New function. 7370 * ipa-inline.c (reset_edge_caches): Reset also node cache. 7371 (inline_small_functions): Initialize growth caches. 7372 * ipa-inline.h (reset_node_cache, initialize_growth_caches): 7373 Declare. 7374 * ipa-predicate.h (inline_param_summary::equal_to): New. 7375 * ipa-prop.c (ipa_agg_jf_item::equal_to): New. 7376 * ipa-prop.h (ipa_agg_jf_item): Declare equal_to member function. 7377 (ipa_agg_jump_function): Implement equal_to member function. 7378 73792019-11-02 Jan Hubicka <hubicka@ucw.cz> 7380 7381 * ipa-fnsummary.c (inline_read_section): Set vector size 7382 ahead of time. 7383 73842019-11-02 Jan Hubicka <hubicka@ucw.cz> 7385 7386 * ipa-fnsummary.c (ipa_call_context): New constructor. 7387 (estimate_node_size_and_time): Turn to ... 7388 (ipa_call_context::estimate_size_and_time): ... this one. 7389 (ipa_call_context::release): New. 7390 * ipa-fnsummary.h (ipa_call_context): New class. 7391 (estimate_node_size_and_time): Remove. 7392 * ipa-inline-analysis.c (do_estimate_edge_time, do_estimate_edge_size, 7393 do_estimate_edge_hints): Update. 7394 73952019-11-02 Jan Hubicka <hubicka@ucw.cz> 7396 7397 * config.in: Regenerate. 7398 * configure: Regenerate. 7399 * configure.ac: Check for mallinfo. 7400 * ggc-common.c: Include malloc.h if available; 7401 include options.h 7402 (report_heap_memory_use): New functoin. 7403 * ggc-page.c (ggc_grow): Do not print "start". 7404 * ggc.h (report_heap_memory_use): Declare. 7405 * pases.c (execute_one_pass): Report memory after IPA passes. 7406 (ipa_read_summaries_1): Likewise. 7407 (ipa_read_optimization_summaries_1): Likewise. 7408 74092019-11-02 Jakub Jelinek <jakub@redhat.com> 7410 7411 * gimplify.h (omp_construct_selector_matches): Change return 7412 type to int, add a new SCORES argument. 7413 * gimplify.c (omp_construct_selector_matches): Likewise. If 7414 SCORES is non-NULL, compute scores of each construct. 7415 * omp-general.h (omp_get_context_selector): Declare. 7416 * omp-general.c (omp_maybe_offloaded, omp_context_selector_matches): 7417 Adjust omp_construct_selector_matches callers. 7418 (omp_get_context_selector): New function, moved from c-family/c-omp.c. 7419 (omp_context_compute_score): New function. 7420 (omp_resolve_declare_variant): Compute scores and decide based on 7421 that. 7422 7423 PR bootstrap/92314 7424 * configure.ac: Don't look for omp-device-properties files from 7425 installed offloading compilers. Instead add tmake_file snippets 7426 for configured offloading targets and use files they generate. 7427 * Makefile.in (install): Don't depend on 7428 install-omp-device-properties. 7429 (install-omp-device-properties): Remove goal. 7430 * config/i386/t-omp-device: New file. 7431 * config/i386/t-intelmic (omp-device-properties): Remove goal. 7432 * config/nvptx/t-omp-device: New file. 7433 * config/nvptx/t-nvptx (omp-device-properties): Remove goal. 7434 * configure: Regenerated. 7435 7436 * omp-general.h (omp_context_selector_set_compare): Declare. 7437 * omp-general.c (omp_construct_simd_compare, 7438 omp_context_selector_props_compare, omp_context_selector_set_compare, 7439 omp_context_selector_compare): New functions. 7440 (omp_resolve_declare_variant): Prune variants that are strict subset 7441 of another variant. 7442 74432019-11-01 Martin Sebor <msebor@redhat.com> 7444 7445 PR middle-end/91679 7446 PR middle-end/91647 7447 PR middle-end/91463 7448 PR middle-end/92312 7449 * doc/invoke.texi (-Wzero-length-bounds): Document. 7450 * gimple-match-head.c (try_conditional_simplification): Use memcpy 7451 instead of a hand-rolled loop to avoid PR 92323. 7452 * tree-vrp.c (vrp_prop::check_array_ref): Handle trailing arrays 7453 with initializers. 7454 (vrp_prop::check_mem_ref): Handle declared struct objects. 7455 * tree.c (last_field): New function. 7456 (array_at_struct_end_p): Handle MEM_REF. 7457 (get_initializer_for): New helper. 7458 (component_ref_size): Add argument. Rename locals. Call 7459 get_initializer_for instead of fold_ctor_reference. Correct handling 7460 of flexible array members. 7461 * wide-int.h (generic_wide_int <storage>::sign_mask): Assert invariant. 7462 74632019-11-01 Kewen Lin <linkw@gcc.gnu.org> 7464 7465 * config/rs6000/rs6000-modes.def (V2SF, V2SI): New modes. 7466 * config/rs6000/vsx.md (UNSPEC_VSX_CVSPSXDS, 7467 UNSPEC_VSX_CVSPUXDS): Remove. 7468 (vsx_xvcvspdp): New define_expand, old define_insn split to... 7469 (vsx_xvcvspdp_be): ... this. New. And... 7470 (vsx_xvcvspdp_le): ... this. New. 7471 (vsx_xvcv<su>xwdp): New define_expand, old define_insn split to... 7472 (vsx_xvcv<su>xwdp_be): ... this. New. And... 7473 (vsx_xvcv<su>xwdp_le): ... this. New. 7474 (vsx_xvcvsp<su>xds): New define_expand, old define_insn split to... 7475 (vsx_xvcvsp<su>xds_be): ... this. New. And... 7476 (vsx_xvcvsp<su>xds_le): ... this. New. 7477 74782019-11-01 Kewen Lin <linkw@gcc.gnu.org> 7479 7480 * config/rs6000/vsx.md (UNSPEC_VSX_CVSXWSP, UNSPEC_VSX_CVUXWSP, 7481 UNSPEC_VSX_XVCVSXDDP, UNSPEC_VSX_XVCVUXDDP, 7482 UNSPEC_VSX_XVCVDPSXDS, UNSPEC_VSX_XVCVDPUXDS, 7483 UNSPEC_VSX_XVCVSPSXWS): Remove. 7484 (vsx_xvcv<su>xddp, vsx_xvcvdp<su>xds, vsx_xvcvsp<su>xws, 7485 vsx_xvcv<su>xwsp): Update define_insn RTL patterns. 7486 74872019-11-01 Kewen Lin <linkw@gcc.gnu.org> 7488 7489 * config/rs6000/vsx.md (vsx_xvcdpsp): Remove define_insn. 7490 (UNSPEC_VSX_XVCDPSP): Remove. 7491 * config/rs6000/rs6000.c (rs6000_generate_float2_double_code): 7492 Replace gen_vsx_xvcdpsp by gen_vsx_xvcvdpsp. 7493 74942019-11-01 Tobias Burnus <tobias@codesourcery.com> 7495 7496 * hooks.c (hook_tree_tree_bool_null): New. 7497 * hooks.h (hook_tree_tree_bool_null): Declare. 7498 * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA): Define. 7499 (LANG_HOOKS_DECLS): Add it. 7500 * langhooks.h (lang_hooks_for_decls): Add omp_array_data. 7501 * omp-low.c (install_var_field): New mode for Fortran descriptor arrays. 7502 (lower_omp_target): Handle Fortran array with descriptor in 7503 OMP_CLAUSE_USE_DEVICE_ADDR/OMP_CLAUSE_USE_DEVICE_PTR. 7504 75052019-10-31 Richard Sandiford <richard.sandiford@arm.com> 7506 7507 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): 7508 Assert that the type we store in abi_vector_types is its own 7509 main variant. 7510 (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here. 7511 75122019-10-31 Richard Earnshaw <rearnsha@arm.com> 7513 7514 * config/arm/arm.c (arm_legitimize_address): Don't form negative offsets 7515 from a CONST_INT address when TARGET_THUMB2. 7516 75172019-10-31 Richard Earnshaw <rearnsha@arm.com> 7518 7519 * config/arm/arm.md (add_not_cin): New insn. 7520 (add_not_shift_cin): Likewise. 7521 75222019-10-31 Martin Liska <mliska@suse.cz> 7523 7524 * ipa-icf-gimple.c (func_checker::compare_tree_ssa_label): Remove. 7525 * ipa-icf-gimple.h: Remove declaration from compare_tree_ssa_label 7526 and compare_memory_operand. 7527 75282019-10-31 Jakub Jelinek <jakub@redhat.com> 7529 7530 * configure.ac: Compute and substitute omp_device_properties and 7531 omp_device_property_deps. 7532 * Makefile.in (generated_files): Add omp-device-properties.h. 7533 (omp-general.o): Depend on omp-device-properties.h. 7534 (omp_device_properties): New make variable. 7535 (omp-device-properties.h, s-omp-device-properties-h, 7536 install-omp-device-properties): New goals. 7537 (install): Depend on install-omp-device-properties for accelerators. 7538 * target.def (TARGET_OMP_DEVICE_KIND_ARCH_ISA): New target hook. 7539 * target.h (enum omp_device_kind_arch_isa): New enum. 7540 * doc/tm.texi.in: Add placeholder for TARGET_OMP_DEVICE_KIND_ARCH_ISA 7541 documentation. 7542 * omp-general.c: Include omp-device-properties.h. 7543 (omp_max_simt_vf): Expect OFFLOAD_TARGET_NAMES to be separated by 7544 colon instead of comma. 7545 (omp_offload_device_kind_arch_isa, omp_maybe_offloaded): New 7546 functions. 7547 (omp_context_selector_matches): Implement device set arch/isa 7548 selectors, improve device set kind selector handling. 7549 * config/i386/i386-options.h (ix86_omp_device_kind_arch_isa): Declare. 7550 * config/i386/i386.c (TARGET_SIMD_CLONE_ADJUST, 7551 TARGET_SIMD_CLONE_USABLE): Formatting fix. 7552 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to 7553 ix86_omp_device_kind_arch_isa. 7554 * config/i386/i386-options.c (struct ix86_target_opts): Move type 7555 definition from ix86_target_string to file scope. 7556 (isa2_opts, isa_opts): Moved arrays from ix86_target_string function 7557 to file scope. 7558 (ix86_omp_device_kind_arch_isa): New function. 7559 (ix86_target_string): Moved struct ix86_target_opts, isa2_opts and 7560 isa_opts definitions to file scope. 7561 * config/i386/t-intelmic (omp-device-properties): New goal. 7562 * config/nvptx/t-nvptx (omp-device-properties): Likewise. 7563 * config/nvptx/nvptx.c (nvptx_omp_device_kind_arch_isa): New function. 7564 (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to 7565 nvptx_omp_device_kind_arch_isa. 7566 * configure: Regenerate. 7567 * doc/tm.texi: Regenerate. 7568 7569 PR middle-end/92231 7570 * tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of 7571 DECL_BUILT_IN in comment. Remove redundant ()s around return 7572 argument. 7573 * tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL 7574 before calling fndecl_built_in_p. 7575 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if 7576 TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling 7577 fndecl_built_in_p on it. 7578 75792019-10-31 Andre Vieira <andre.simoesdiasvieira@arm.com> 7580 7581 * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default. 7582 75832019-10-31 Martin Liska <mliska@suse.cz> 7584 7585 * config/arm/arm.c (arm_get_pcs_model): Remove usage 7586 of cgraph_local_info and use local_info_node instead. 7587 * config/bfin/bfin.c (bfin_load_pic_reg): Likewise. 7588 (bfin_function_ok_for_sibcall): Likewise. 7589 * config/c6x/c6x.c (c6x_function_ok_for_sibcall): Likewise. 7590 (must_reload_pic_reg_p): Likewise. 7591 75922019-10-31 Jakub Jelinek <jakub@redhat.com> 7593 7594 PR c++/90947 7595 * tree.h (type_initializer_zero_p): Remove. 7596 * tree.c (type_initializer_zero_p): Remove. 7597 75982019-10-30 Bernd Edlinger <bernd.edlinger@hotmail.de> 7599 7600 * doc/invoke.texi (-Wshadow, -Wshadow=global 7601 -Wshadow=local, -Wshadow=compatible-local): Update documentation. 7602 76032019-10-30 Tobias Burnus <tobias@codesourcery.com> 7604 7605 * gimplify.c (gimplify_scan_omp_clauses): Remove FE-generated 7606 GOMP_MAP_TO_PSET and GOMP_MAP_POINTER mapping for 'target update' 7607 and 'target exit data'. 7608 76092019-10-30 Martin Jambor <mjambor@suse.cz> 7610 7611 ipa/92278 7612 * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): Fix 7613 availability comparison. 7614 76152019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com> 7616 7617 * config/msp430/msp430.c (msp430_expand_helper): Support expansion of 7618 calls to __mspabi_mpy* functions. 7619 * config/msp430/msp430.md (mulhisi3): New define_expand. 7620 (umulhisi3): New define_expand. 7621 (*mulhisi3_inline): Use old mulhisi3 define_insn. 7622 (*umulhisi3_inline): Use old umulhisi3 define_insn. 7623 76242019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com> 7625 7626 * config/msp430/msp430.c (msp430_check_index_not_high_mem): New. 7627 (msp430_check_plus_not_high_mem): New. 7628 (msp430_op_not_in_high_mem): Use new functions to check if the operand 7629 might be in low memory. 7630 Indicate that a 16-bit absolute address is in lower memory. 7631 76322019-10-30 Martin Jambor <mjambor@suse.cz> 7633 7634 * ipa-prop.c (ipa_compute_jump_functions_for_bb): Fix the call to 7635 ultimate_alias_target. 7636 76372019-10-30 Richard Biener <rguenther@suse.de> 7638 7639 PR tree-optimization/92275 7640 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_loops): 7641 Copy all loop-closed PHIs. 7642 76432019-10-30 Martin Liska <mliska@suse.cz> 7644 7645 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Use 7646 const_tree as function argument. 7647 (func_checker::compare_decl): Likewise. 7648 (func_checker::operand_equal_p): Likewise. 7649 (func_checker::compare_variable_decl): Likewise. 7650 (func_checker::parse_labels): Likewise. 7651 * ipa-icf-gimple.h: Likewise. 7652 76532019-10-30 Martin Liska <mliska@suse.cz> 7654 7655 * ipa-icf-gimple.c (func_checker::compatible_types_p): 7656 Do not compare alias sets. It's handled by operand_equal_p. 7657 76582019-10-30 Martin Liska <mliska@suse.cz> 7659 7660 * ipa-icf-gimple.c (func_checker::func_checker): Do not 7661 initialize m_compare_polymorphic. 7662 (func_checker::compare_decl): Do not compare polymorphic types. 7663 * ipa-icf-gimple.h (m_compare_polymorphic): Remove. 7664 * ipa-icf.c (sem_function::equals_private): Do not call 7665 compare_polymorphic_p. 7666 76672019-10-30 Martin Liska <mliska@suse.cz> 7668 7669 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Call 7670 compare_operand. 7671 (func_checker::compare_memory_operand): Remove. 7672 (func_checker::compare_cst_or_decl): Remove. 7673 (func_checker::operand_equal_valueize): Do not handle 7674 FIELD_DECL. 7675 (func_checker::compare_gimple_call): Call compare_operand. 7676 (func_checker::compare_gimple_assign): Likewise. 7677 * ipa-icf-gimple.h: Remove compare_cst_or_decl. 7678 * ipa-icf.c (sem_function::icf_handled_component_p): Remove. 7679 * ipa-icf.h (icf_handled_component_p): Remove. 7680 76812019-10-30 Martin Liska <mliska@suse.cz> 7682 7683 * ipa-icf-gimple.c (func_checker::hash_operand): New. 7684 (func_checker::compare_cst_or_decl): Remove handling 7685 of FIELD_DECL. 7686 (func_checker::compare_operand): Transform to ... 7687 (func_checker::operand_equal_p): ... this. 7688 * ipa-icf-gimple.h (class func_checker): Add 7689 operand_equal_p and hash_operand. 7690 * ipa-icf.c (sem_function::equals_private): Fix 7691 pushing and popping of cfun. 7692 76932019-10-30 Martin Liska <mliska@suse.cz> 7694 7695 * fold-const.c (operand_equal_p): Move to ... 7696 (operand_compare::operand_equal_p): ... here. 7697 (operand_compare::verify_hash_value): New. 7698 (add_expr): Move to ... 7699 (operand_compare::hash_operand): ... here. 7700 * fold-const.h (operand_equal_p): Move to the class. 7701 (class operand_compare): New. 7702 * tree.c (add_expr): Remove. 7703 77042019-10-30 Martin Liska <mliska@suse.cz> 7705 7706 * fold-const.c (operand_equal_p): Support OBJ_TYPE_REF. 7707 * tree.c (add_expr): Hash parts of OBJ_TYPE_REF. 7708 77092019-10-30 Martin Liska <mliska@suse.cz> 7710 7711 PR lto/91393 7712 PR lto/88220 7713 * cgraph.c (cgraph_node::get_create): Overwrite node->order 7714 from a first_clone in order to get proper LTO section 7715 in LTO stream. 7716 (cgraph_node::get_untransformed_body): 7717 Use lto_get_section_data where symtab_node::order 7718 must be provided. 7719 * cgraphclones.c (cgraph_node::find_replacement): 7720 Update also symbol order. 7721 * ipa-fnsummary.c (ipa_fn_summary_read): 7722 Use new function lto_get_summary_section_data. 7723 * ipa-hsa.c (ipa_hsa_read_summary): Likewise. 7724 * ipa-icf.c (sem_item_optimizer::read_summary): 7725 Likewise. 7726 * ipa-prop.c (ipa_prop_read_jump_functions): 7727 Likewise. 7728 (ipcp_read_transformation_summaries): Likewise. 7729 * ipa-sra.c (ipa_sra_read_summary): Likewise. 7730 * lto-cgraph.c (input_node): Add also order_base. 7731 (input_varpool_node): Likewise. 7732 (input_cgraph_1): Assign the order_base. 7733 (input_cgraph_opt_summary): Use new lto_get_summary_section_data. 7734 * lto-opts.c (lto_write_options): Pass new argument. 7735 * lto-section-in.c (lto_get_section_data): Add new argumente order. 7736 (lto_get_summary_section_data): New. 7737 (lto_get_raw_section_data): Add order argument. 7738 (lto_create_simple_input_block): Likewise. 7739 * lto-section-out.c (lto_destroy_simple_output_block): 7740 Likewise. 7741 * lto-streamer-in.c (lto_input_toplevel_asms): 7742 Use lto_get_summary_section_data. 7743 (lto_input_mode_table): Likewise. 7744 * lto-streamer-out.c (produce_asm): Pass symtab_node::order. 7745 (lto_output_toplevel_asms): Pass new argument. 7746 (copy_function_or_variable): Likewise. 7747 (produce_lto_section):Likewise. 7748 (produce_symtab): Likewise. 7749 (lto_write_mode_table): Likewise. 7750 (produce_asm_for_decls): Likewise. 7751 * lto-streamer.c (lto_get_section_name): Concat symbol name 7752 and symbol order. 7753 * lto-streamer.h (lto_get_section_data): Add order argument. 7754 (lto_get_summary_section_data): New. 7755 (lto_get_raw_section_data): Add order argument. 7756 (lto_get_section_name): Likewise. 7757 * varpool.c (varpool_node::get_constructor): Pass order argument. 7758 77592019-10-30 Jakub Jelinek <jakub@redhat.com> 7760 7761 PR tree-optimization/92262 7762 * tree-ssa-loop-ivopts.c (get_debug_computation_at): Don't unshare 7763 ubase or cbase here. 7764 (remove_unused_ivs): Unshare comp before using it. 7765 77662019-10-30 Jan Hubicka <hubicka@ucw.cz> 7767 7768 * ipa-prop.c (update_jump_functions_after_inlining): 7769 Watch for missing summaries. 7770 77712019-10-30 Richard Biener <rguenther@suse.de> 7772 7773 PR tree-optimization/65930 7774 * tree-vect-loop.c (vect_is_simple_reduction): For reduction 7775 chains also allow a leading and trailing conversion. 7776 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle 7777 intermediate reduction chains. 7778 (vect_analyze_slp_instance): Likewise. Build a SLP 7779 node for a trailing conversion manually. 7780 77812019-10-30 Martin Liska <mliska@suse.cz> 7782 7783 * cgraph.c (cgraph_node::local_info): Transform to ... 7784 (cgraph_node::local_info_node): ... this. 7785 (cgraph_node::dump): Remove cgraph_local_info and 7786 put its fields directly into cgraph_node. 7787 (cgraph_node::get_availability): Likewise. 7788 (cgraph_node::make_local): Likewise. 7789 (cgraph_node::verify_node): Likewise. 7790 * cgraph.h (struct GTY): Likewise. 7791 * cgraphclones.c (set_new_clone_decl_and_node_flags): Likewise. 7792 (duplicate_thunk_for_node): Likewise. 7793 (cgraph_node::create_clone): Likewise. 7794 (cgraph_node::create_virtual_clone): Likewise. 7795 (cgraph_node::create_version_clone): Likewise. 7796 * cgraphunit.c (cgraph_node::reset): Likewise. 7797 (cgraph_node::finalize_function): Likewise. 7798 (cgraph_node::add_new_function): Likewise. 7799 (analyze_functions): Likewise. 7800 * combine.c (setup_incoming_promotions): Likewise. 7801 * config/i386/i386.c (ix86_function_regparm): Likewise. 7802 (ix86_function_sseregparm): Likewise. 7803 (init_cumulative_args): Likewise. 7804 * ipa-cp.c (determine_versionability): Likewise. 7805 (count_callers): Likewise. 7806 (set_single_call_flag): Likewise. 7807 (initialize_node_lattices): Likewise. 7808 (estimate_local_effects): Likewise. 7809 (create_specialized_node): Likewise. 7810 (identify_dead_nodes): Likewise. 7811 * ipa-fnsummary.c (compute_fn_summary): Likewise. 7812 (ipa_fn_summary_generate): Likewise. 7813 * ipa-hsa.c (check_warn_node_versionable): Likewise. 7814 (process_hsa_functions): Likewise. 7815 * ipa-icf.c (set_local): Likewise. 7816 * ipa-inline-analysis.c (initialize_inline_failed): Likewise. 7817 * ipa-inline.c (speculation_useful_p): Likewise. 7818 * ipa-profile.c (ipa_propagate_frequency): Likewise. 7819 (ipa_profile): Likewise. 7820 * ipa-split.c (split_function): Likewise. 7821 (execute_split_functions): Likewise. 7822 * ipa-sra.c (ipa_sra_preliminary_function_checks): Likewise. 7823 (ipa_sra_ipa_function_checks): Likewise. 7824 * ipa-visibility.c (function_and_variable_visibility): Likewise. 7825 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. 7826 * lto-cgraph.c (lto_output_node): Likewise. 7827 (input_overwrite_node): Likewise. 7828 * multiple_target.c (expand_target_clones): Likewise. 7829 * omp-simd-clone.c (simd_clone_create): Likewise. 7830 * trans-mem.c (expand_call_tm): Likewise. 7831 (ipa_tm_mayenterirr_function): Likewise. 7832 (ipa_tm_diagnose_tm_safe): Likewise. 7833 (ipa_tm_diagnose_transaction): Likewise. 7834 (ipa_tm_create_version): Likewise. 7835 (ipa_tm_transform_calls_redirect): Likewise. 7836 (ipa_tm_execute): Likewise. 7837 * tree-inline.c (expand_call_inline): Likewise. 7838 78392019-10-29 Martin Liska <mliska@suse.cz> 7840 7841 * symbol-summary.h (function_summary): Pass memory location 7842 to underlaying hash_map (or vec). 7843 (V>::fast_function_summary): Likewise. 7844 78452019-10-29 Martin Liska <mliska@suse.cz> 7846 7847 * ggc.h (ggc_alloc_no_dtor): New function. 7848 * ipa-fnsummary.c (ipa_free_fn_summary): Call 7849 destructor and ggc_free. 7850 (ipa_free_size_summary): Call delete instead 7851 of release. 7852 * ipa-fnsummary.h: Use new function ggc_alloc_no_dtor. 7853 * ipa-prop.c (ipa_check_create_edge_args): Likewise. 7854 (ipa_free_all_edge_args): Call destructor and ggc_free. 7855 (ipa_free_all_node_params): Likewise. 7856 (ipcp_free_transformation_sum): Likewise. 7857 * ipa-prop.h (ipa_check_create_node_params): 7858 Call new ggc_alloc_no_dtor. 7859 * ipa-sra.c (ipa_sra_generate_summary): Likewise. 7860 (ipa_sra_analysis): Call destructor and ggc_free. 7861 Replace release with delete operator. 7862 * symbol-summary.h (release): Remove .. 7863 (V>::~fast_function_summary): and move logic here. 7864 Likewise for other classes. 7865 78662019-10-29 Richard Biener <rguenther@suse.de> 7867 7868 PR tree-optimization/92260 7869 * tree-vect-slp.c (vect_get_constant_vectors): Special-case 7870 lane-reducing ops. 7871 78722019-10-29 Andre Vieira <andre.simoesdiasvieira@arm.com> 7873 7874 PR tree-optimization/88915 7875 * tree-ssa-loop-niter.h (simplify_replace_tree): Change declaration. 7876 * tree-ssa-loop-niter.c (simplify_replace_tree): Add context parameter 7877 and make the valueize function pointer also take a void pointer. 7878 * tree-ssa-sccvn.c (vn_valueize_wrapper): New function to wrap 7879 around vn_valueize, to call it without a context. 7880 (process_bb): Use vn_valueize_wrapper instead of vn_valueize. 7881 * tree-vect-loop.c (_loop_vec_info): Initialize epilogue_vinfos. 7882 (~_loop_vec_info): Release epilogue_vinfos. 7883 (vect_analyze_loop_costing): Use knowledge of main VF to estimate 7884 number of iterations of epilogue. 7885 (vect_analyze_loop_2): Adapt to analyse main loop for all supported 7886 vector sizes when vect-epilogues-nomask=1. Also keep track of lowest 7887 versioning threshold needed for main loop. 7888 (vect_analyze_loop): Likewise. 7889 (find_in_mapping): New helper function. 7890 (update_epilogue_loop_vinfo): New function. 7891 (vect_transform_loop): When vectorizing epilogues re-use analysis done 7892 on main loop and call update_epilogue_loop_vinfo to update it. 7893 * tree-vect-loop-manip.c (vect_update_inits_of_drs): No longer insert 7894 stmts on loop preheader edge. 7895 (vect_do_peeling): Enable skip-vectors when doing loop versioning if 7896 we decided to vectorize epilogues. Update epilogues NITERS and 7897 construct ADVANCE to update epilogues data references where needed. 7898 * tree-vectorizer.h (_loop_vec_info): Add epilogue_vinfos. 7899 (vect_do_peeling, vect_update_inits_of_drs, 7900 determine_peel_for_niter, vect_analyze_loop): Add or update 7901 declarations. 7902 * tree-vectorizer.c (try_vectorize_loop_1): Make sure to use already 7903 created loop_vec_info's for epilogues when available. Otherwise analyse 7904 epilogue separately. 7905 79062019-10-29 Richard Biener <rguenther@suse.de> 7907 7908 * doc/tree-ssa.texi (Immediate Uses): Fix FOR_EACH_IMM_USE_STMT 7909 example. 7910 79112019-10-29 Richard Sandiford <richard.sandiford@arm.com> 7912 7913 * tree-vect-stmts.c (vectorizable_condition): Get the reduction 7914 index for the COND_EXPR from stmt_info rather than reduc_info. 7915 79162019-10-29 Richard Biener <rguenther@suse.de> 7917 7918 PR tree-optimization/65930 7919 * tree-vect-loop.c (check_reduction_path): Relax single-use 7920 check allowing out-of-loop uses. 7921 (vect_is_simple_reduction): SLP reduction chains cannot have 7922 intermediate stmts used outside of the loop. 7923 (vect_create_epilog_for_reduction): The adjustment might need 7924 to be converted. 7925 (vectorizable_reduction): Annotate live stmts of the reduction 7926 chain with STMT_VINFO_REDUC_DEF. 7927 * tree-vect-stms.c (process_use): Remove no longer true asserts. 7928 79292019-10-29 Richard Sandiford <richard.sandiford@arm.com> 7930 7931 * calls.c (pass_by_reference): Leave the target to decide whether 7932 POLY_INT_CST-sized arguments should be passed by value or reference, 7933 rather than forcing them to be passed by reference. 7934 (must_pass_in_stack_var_size): Likewise. 7935 * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Redefine from 7936 V31_REGNUM to P15_REGNUM. 7937 * config/aarch64/aarch64-protos.h (aarch64_init_cumulative_args): 7938 Take an extra "silent_p" parameter, defaulting to false. 7939 (aarch64_sve::svbool_type_p): Declare. 7940 (aarch64_sve::nvectors_if_data_type): Likewise. 7941 * config/aarch64/aarch64.h (NUM_PR_ARG_REGS): New macro. 7942 (aarch64_frame::reg_offset): Turn into poly_int64s. 7943 (aarch64_frame::save_regs_size): Likewise. 7944 (aarch64_frame::below_hard_fp_saved_regs_size): New field. 7945 (aarch64_frame::sve_callee_adjust): Likewise. 7946 (aarch64_frame::spare_reg_reg): Likewise. 7947 (ARM_PCS_SVE): New arm_pcs value. 7948 (CUMULATIVE_ARGS::aapcs_nprn): New field. 7949 (CUMULATIVE_ARGS::aapcs_nextnprn): Likewise. 7950 (CUMULATIVE_ARGS::silent_p): Likewise. 7951 (BITS_PER_SVE_PRED): New macro. 7952 * config/aarch64/aarch64.c (handle_aarch64_vector_pcs_attribute): New 7953 function. Reject aarch64_vector_pcs attributes on SVE functions. 7954 (aarch64_attribute_table): Use the above handler. 7955 (aarch64_sve_abi): New function. 7956 (aarch64_sve_argument_p): Likewise. 7957 (aarch64_returns_value_in_sve_regs_p): Likewise. 7958 (aarch64_takes_arguments_in_sve_regs_p): Likewise. 7959 (aarch64_fntype_abi): Check for SVE functions and return the SVE PCS 7960 descriptor for them. 7961 (aarch64_simd_decl_p): Delete. 7962 (aarch64_emit_cfi_for_reg_p): New function. 7963 (aarch64_reg_save_mode): Remove the fndecl argument and instead use 7964 crtl->abi to choose the mode for FP registers. Handle the SVE PCS. 7965 (aarch64_hard_regno_call_part_clobbered): Do not treat FP registers 7966 as partly clobbered for the SVE PCS. 7967 (aarch64_function_ok_for_sibcall): Check whether the two functions 7968 use the same ABI, rather than checking specifically for whether 7969 they're aarch64_vector_pcs functions. 7970 (aarch64_pass_by_reference): Raise an error for attempts to pass 7971 SVE arguments when SVE is disabled. Pass SVE arguments by reference 7972 if there are not enough free registers left, or if the argument is 7973 variadic. 7974 (aarch64_function_value): Handle SVE predicates, vectors and tuples. 7975 (aarch64_return_in_memory): Do not return SVE predicates, vectors and 7976 tuples in memory. 7977 (aarch64_layout_arg): Take a function_arg_info rather than 7978 individual properties. Handle SVE predicates, vectors and tuples. 7979 Raise an error if they are passed to unprototyped functions. 7980 (aarch64_function_arg): If the silent_p flag is set, suppress the 7981 usual error about using float registers without TARGET_FLOAT. 7982 (aarch64_init_cumulative_args): Take a silent_p parameter and store 7983 it in the cumulative_args structure. Initialize aapcs_nprn and 7984 aapcs_nextnprn. If the silent_p flag is set, suppress the usual 7985 error about using float registers without TARGET_FLOAT. 7986 If the silent_p flag is not set, also raise an error about 7987 using SVE functions when SVE is disabled. 7988 (aarch64_function_arg_advance): Update the call to aarch64_layout_arg, 7989 and call it for SVE functions too. Update aapcs_nprn similarly 7990 to the other register counts. 7991 (aarch64_layout_frame): If a big-endian function needs to save 7992 and restore Z8-Z15, search for a spare predicate that it can use. 7993 Store SVE predicates at the bottom of the register save area, 7994 followed by SVE vectors, then followed by the normal slots. 7995 Keep pointing the hard frame pointer at the base of the normal slots, 7996 above the SVE vectors. Update the various frame creation and 7997 tear-down strategies for the new layout, initializing the new 7998 sve_callee_adjust field. Add an additional layout for frames 7999 whose saved registers are all SVE registers. 8000 (aarch64_register_saved_on_entry): Cope with poly_int64 reg_offsets. 8001 (aarch64_return_address_signing_enabled): Likewise. 8002 (aarch64_push_regs, aarch64_pop_regs): Update calls to 8003 aarch64_reg_save_mode. 8004 (aarch64_adjust_sve_callee_save_base): New function. 8005 (aarch64_add_cfa_expression): Move earlier in file. Take the 8006 saved register as an rtx rather than a register number and use 8007 its mode for the MEM slot. 8008 (aarch64_save_callee_saves): Remove the mode argument and instead 8009 use aarch64_reg_save_mode to get the mode of each save slot. 8010 Add a hard_fp_valid_p parameter. Cope with poly_int64 register 8011 offsets. Allow GP offsets to be saved at a VL-based offset from 8012 the stack, handling this case using the frame pointer if available 8013 or a temporary register otherwise. Use ST1D to save Z8-Z15 for 8014 big-endian SVE functions; use normal moves for other SVE saves. 8015 Only mark the save as frame-related if aarch64_emit_cfi_for_reg_p 8016 returns true. Add explicit CFA notes when not storing via the 8017 stack pointer. Do not try to pair SVE saves. 8018 (aarch64_restore_callee_saves): Cope with poly_int64 register 8019 offsets. Use LD1D to restore Z8-Z15 for big-endian SVE functions; 8020 use normal moves for other SVE restores. Only add CFA restore notes 8021 if aarch64_emit_cfi_for_reg_p returns true. Do not try to pair 8022 SVE restores. 8023 (aarch64_get_separate_components): Always keep the first SVE save 8024 in the prologue if we need to use it as a stack probe. Don't allow 8025 Z8-Z15 saves and loads to be shrink-wrapped for big-endian targets. 8026 Likewise the spare predicate register that they need. Update the 8027 offset calculation to account for the SVE save area. Use the 8028 appropriate range check for SVE LDR and STR instructions. 8029 (aarch64_components_for_bb): Cope with poly_int64 reg_offsets. 8030 (aarch64_process_components): Likewise. Update the offset 8031 calculation to account for the SVE save area. Only mark the 8032 save as frame-related if aarch64_emit_cfi_for_reg_p returns true. 8033 Do not try to pair SVE saves. 8034 (aarch64_allocate_and_probe_stack_space): Cope with poly_int64 8035 reg_offsets. When handling the final allocation, expect the 8036 first SVE register save to be part of the initial allocation 8037 and for it to act as a probe at SP. Account for the SVE callee 8038 save area in the dump information. 8039 (aarch64_expand_prologue): Update the frame diagram. Fold the 8040 SVE callee allocation into the initial allocation if stack clash 8041 protection is enabled. Use new variables to track the offset 8042 of the frame chain (and hard frame pointer) from the current 8043 stack pointer, and likewise the offset of the bottom of the 8044 register save area. Update calls to aarch64_save_callee_saves 8045 and aarch64_add_cfa_expression. Apply sve_callee_adjust before 8046 saving the FP&SIMD registers. Save the predicate registers. 8047 (aarch64_expand_epilogue): Take below_hard_fp_saved_regs_size 8048 into account when setting the stack pointer from the frame pointer, 8049 and when deciding whether we can inherit the initial adjustment 8050 amount from the prologue. Restore the predicate registers after 8051 the vector registers, then apply sve_callee_adjust, then restore 8052 the general registers. 8053 (aarch64_secondary_reload): Don't use secondary SVE reloads 8054 for VNx16BImode. 8055 (aapcs_vfp_sub_candidate): Assert that the type is not an SVE type. 8056 (aarch64_short_vector_p): Return false for SVE types. 8057 (aarch64_vfp_is_call_or_return_candidate): Initialize *is_ha 8058 at the start of the function. Return false for SVE types. 8059 (aarch64_asm_output_variant_pcs): Output .variant_pcs for SVE 8060 functions too. 8061 (TARGET_STRICT_ARGUMENT_NAMING): Redefine to request strict naming. 8062 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<mode>_le): Extend 8063 to big-endian targets for bytewise moves. 8064 (*aarch64_sve_mov<mode>_be): Exclude the bytewise case. 8065 80662019-10-29 Richard Sandiford <richard.sandiford@arm.com> 8067 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 8068 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 8069 8070 * config.gcc (aarch64*-*-*): Add arm_sve.h to extra_headers. 8071 Add aarch64-sve-builtins.o, aarch64-sve-builtins-shapes.o and 8072 aarch64-sve-builtins-base.o to extra_objs. Add 8073 aarch64-sve-builtins.h and aarch64-sve-builtins.cc to target_gtfiles. 8074 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): New rule. 8075 (aarch64-sve-builtins-shapes.o): Likewise. 8076 (aarch64-sve-builtins-base.o): New rules. 8077 * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): New function. 8078 (aarch64_resolve_overloaded_builtin): Likewise. 8079 (aarch64_check_builtin_call): Likewise. 8080 (aarch64_register_pragmas): Install aarch64_resolve_overloaded_builtin 8081 and aarch64_check_builtin_call in targetm. Register the GCC aarch64 8082 pragma. 8083 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPRFOP): New macro. 8084 (aarch64_svprfop): New enum. 8085 (AARCH64_BUILTIN_SVE): New aarch64_builtin_class enum value. 8086 (aarch64_sve_int_mode, aarch64_sve_data_mode): Declare. 8087 (aarch64_fold_sve_cnt_pat, aarch64_output_sve_prefetch): Likewise. 8088 (aarch64_output_sve_cnt_pat_immediate): Likewise. 8089 (aarch64_output_sve_ptrues, aarch64_sve_ptrue_svpattern_p): Likewise. 8090 (aarch64_sve_sqadd_sqsub_immediate_p, aarch64_sve_ldff1_operand_p) 8091 (aarch64_sve_ldnf1_operand_p, aarch64_sve_prefetch_operand_p) 8092 (aarch64_ptrue_all_mode, aarch64_convert_sve_data_to_pred): Likewise. 8093 (aarch64_expand_sve_dupq, aarch64_replace_reg_mode): Likewise. 8094 (aarch64_sve::init_builtins, aarch64_sve::handle_arm_sve_h): Likewise. 8095 (aarch64_sve::builtin_decl, aarch64_sve::builtin_type_p): Likewise. 8096 (aarch64_sve::mangle_builtin_type): Likewise. 8097 (aarch64_sve::resolve_overloaded_builtin): Likewise. 8098 (aarch64_sve::check_builtin_call, aarch64_sve::gimple_fold_builtin) 8099 (aarch64_sve::expand_builtin): Likewise. 8100 * config/aarch64/aarch64.c (aarch64_sve_data_mode): Make public. 8101 (aarch64_sve_int_mode): Likewise. 8102 (aarch64_ptrue_all_mode): New function. 8103 (aarch64_convert_sve_data_to_pred): Make public. 8104 (svprfop_token): New function. 8105 (aarch64_output_sve_prefetch): Likewise. 8106 (aarch64_fold_sve_cnt_pat): Likewise. 8107 (aarch64_output_sve_cnt_pat_immediate): Likewise. 8108 (aarch64_sve_move_pred_via_while): Use gen_while with UNSPEC_WHILE_LO 8109 instead of gen_while_ult. 8110 (aarch64_replace_reg_mode): Make public. 8111 (aarch64_init_builtins): Call aarch64_sve::init_builtins. 8112 (aarch64_fold_builtin): Handle AARCH64_BUILTIN_SVE. 8113 (aarch64_gimple_fold_builtin, aarch64_expand_builtin): Likewise. 8114 (aarch64_builtin_decl, aarch64_builtin_reciprocal): Likewise. 8115 (aarch64_mangle_type): Call aarch64_sve::mangle_type. 8116 (aarch64_sve_sqadd_sqsub_immediate_p): New function. 8117 (aarch64_sve_ptrue_svpattern_p): Likewise. 8118 (aarch64_sve_pred_valid_immediate): Check 8119 aarch64_sve_ptrue_svpattern_p. 8120 (aarch64_sve_ldff1_operand_p, aarch64_sve_ldnf1_operand_p) 8121 (aarch64_sve_prefetch_operand_p, aarch64_output_sve_ptrues): New 8122 functions. 8123 * config/aarch64/aarch64.md (UNSPEC_LDNT1_SVE, UNSPEC_STNT1_SVE) 8124 (UNSPEC_LDFF1_GATHER, UNSPEC_PTRUE, UNSPEC_WHILE_LE, UNSPEC_WHILE_LS) 8125 (UNSPEC_WHILE_LT, UNSPEC_CLASTA, UNSPEC_UPDATE_FFR) 8126 (UNSPEC_UPDATE_FFRT, UNSPEC_RDFFR, UNSPEC_WRFFR) 8127 (UNSPEC_SVE_LANE_SELECT, UNSPEC_SVE_CNT_PAT, UNSPEC_SVE_PREFETCH) 8128 (UNSPEC_SVE_PREFETCH_GATHER, UNSPEC_SVE_COMPACT, UNSPEC_SVE_SPLICE): 8129 New unspecs. 8130 * config/aarch64/iterators.md (SI_ONLY, DI_ONLY, VNx8HI_ONLY) 8131 (VNx2DI_ONLY, SVE_PARTIAL, VNx8_NARROW, VNx8_WIDE, VNx4_NARROW) 8132 (VNx4_WIDE, VNx2_NARROW, VNx2_WIDE, PRED_HSD): New mode iterators. 8133 (UNSPEC_ADR, UNSPEC_BRKA, UNSPEC_BRKB, UNSPEC_BRKN, UNSPEC_BRKPA) 8134 (UNSPEC_BRKPB, UNSPEC_PFIRST, UNSPEC_PNEXT, UNSPEC_CNTP, UNSPEC_SADDV) 8135 (UNSPEC_UADDV, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTMAD) 8136 (UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_CMPEQ_WIDE): New unspecs. 8137 (UNSPEC_COND_CMPGE_WIDE, UNSPEC_COND_CMPGT_WIDE): Likewise. 8138 (UNSPEC_COND_CMPHI_WIDE, UNSPEC_COND_CMPHS_WIDE): Likewise. 8139 (UNSPEC_COND_CMPLE_WIDE, UNSPEC_COND_CMPLO_WIDE): Likewise. 8140 (UNSPEC_COND_CMPLS_WIDE, UNSPEC_COND_CMPLT_WIDE): Likewise. 8141 (UNSPEC_COND_CMPNE_WIDE, UNSPEC_COND_FCADD90, UNSPEC_COND_FCADD270) 8142 (UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90, UNSPEC_COND_FCMLA180) 8143 (UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN): Likewise. 8144 (UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX, UNSPEC_COND_FSCALE): Likewise. 8145 (UNSPEC_LASTA, UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE): Likewise. 8146 (UNSPEC_LSHIFTRT_WIDE, UNSPEC_LDFF1, UNSPEC_LDNF1): Likewise. 8147 (Vesize): Handle partial vector modes. 8148 (self_mask, narrower_mask, sve_lane_con, sve_lane_pair_con): New 8149 mode attributes. 8150 (UBINQOPS, ANY_PLUS, SAT_PLUS, ANY_MINUS, SAT_MINUS): New code 8151 iterators. 8152 (s, paired_extend, inc_dec): New code attributes. 8153 (SVE_INT_ADDV, CLAST, LAST): New int iterators. 8154 (SVE_INT_UNARY): Add UNSPEC_RBIT. 8155 (SVE_FP_UNARY, SVE_FP_UNARY_INT): New int iterators. 8156 (SVE_FP_BINARY, SVE_FP_BINARY_INT): Likewise. 8157 (SVE_COND_FP_UNARY): Add UNSPEC_COND_FRECPX. 8158 (SVE_COND_FP_BINARY): Add UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and 8159 UNSPEC_COND_FMULX. 8160 (SVE_COND_FP_BINARY_INT, SVE_COND_FP_ADD): New int iterators. 8161 (SVE_COND_FP_SUB, SVE_COND_FP_MUL): Likewise. 8162 (SVE_COND_FP_BINARY_I1): Add UNSPEC_COND_FMAX and UNSPEC_COND_FMIN. 8163 (SVE_COND_FP_BINARY_REG): Add UNSPEC_COND_FMULX. 8164 (SVE_COND_FCADD, SVE_COND_FP_MAXMIN, SVE_COND_FCMLA) 8165 (SVE_COND_INT_CMP_WIDE, SVE_FP_TERNARY_LANE, SVE_CFP_TERNARY_LANE) 8166 (SVE_WHILE, SVE_SHIFT_WIDE, SVE_LDFF1_LDNF1, SVE_BRK_UNARY) 8167 (SVE_BRK_BINARY, SVE_PITER): New int iterators. 8168 (optab): Handle UNSPEC_SADDV, UNSPEC_UADDV, UNSPEC_FRECPE, 8169 UNSPEC_FRECPS, UNSPEC_RSQRTE, UNSPEC_RSQRTS, UNSPEC_RBIT, 8170 UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART, UNSPEC_FMLA, UNSPEC_FMLS, 8171 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270, 8172 UNSPEC_FEXPA, UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_FCADD90, 8173 UNSPEC_COND_FCADD270, UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90, 8174 UNSPEC_COND_FCMLA180, UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX, 8175 UNSPEC_COND_FMIN, UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX and 8176 UNSPEC_COND_FSCALE. 8177 (maxmin_uns): Handle UNSPEC_COND_FMAX and UNSPEC_COND_FMIN. 8178 (binqops_op, binqops_op_rev, last_op): New int attributes. 8179 (su): Handle UNSPEC_SADDV and UNSPEC_UADDV. 8180 (fn, ab): New int attributes. 8181 (cmp_op): Handle UNSPEC_COND_CMP*_WIDE and UNSPEC_WHILE_*. 8182 (while_optab_cmp, brk_op, sve_pred_op): New int attributes. 8183 (sve_int_op): Handle UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART, 8184 UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE, UNSPEC_LSHIFTRT_WIDE and 8185 UNSPEC_RBIT. 8186 (sve_fp_op): Handle UNSPEC_FRECPE, UNSPEC_FRECPS, UNSPEC_RSQRTE, 8187 UNSPEC_RSQRTS, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTSMUL, 8188 UNSPEC_FTSSEL, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN, UNSPEC_COND_FMULX, 8189 UNSPEC_COND_FRECPX and UNSPEC_COND_FSCALE. 8190 (sve_fp_op_rev): Handle UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and 8191 UNSPEC_COND_FMULX. 8192 (rot): Handle UNSPEC_COND_FCADD* and UNSPEC_COND_FCMLA*. 8193 (brk_reg_con, brk_reg_opno): New int attributes. 8194 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs2_operand): Handle 8195 UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and UNSPEC_COND_FMULX. 8196 (sve_pred_fp_rhs2_immediate): Handle UNSPEC_COND_FMAX and 8197 UNSPEC_COND_FMIN. 8198 (max_elem_bits): New int attribute. 8199 (min_elem_bits): Handle UNSPEC_RBIT. 8200 * config/aarch64/predicates.md (subreg_lowpart_operator): Handle 8201 TRUNCATE as well as SUBREG. 8202 (ascending_int_parallel, aarch64_simd_reg_or_minus_one) 8203 (aarch64_sve_ldff1_operand, aarch64_sve_ldnf1_operand) 8204 (aarch64_sve_prefetch_operand, aarch64_sve_ptrue_svpattern_immediate) 8205 (aarch64_sve_qadd_immediate, aarch64_sve_qsub_immediate) 8206 (aarch64_sve_gather_immediate_b, aarch64_sve_gather_immediate_h) 8207 (aarch64_sve_gather_immediate_w, aarch64_sve_gather_immediate_d) 8208 (aarch64_sve_sqadd_operand, aarch64_sve_gather_offset_b) 8209 (aarch64_sve_gather_offset_h, aarch64_sve_gather_offset_w) 8210 (aarch64_sve_gather_offset_d, aarch64_gather_scale_operand_b) 8211 (aarch64_gather_scale_operand_h): New predicates. 8212 * config/aarch64/constraints.md (UPb, UPd, UPh, UPw, Utf, Utn, vgb) 8213 (vgd, vgh, vgw, vsQ, vsS): New constraints. 8214 * config/aarch64/aarch64-sve.md: Add a note on the FFR handling. 8215 (*aarch64_sve_reinterpret<mode>): Allow any source register 8216 instead of requiring an exact match. 8217 (*aarch64_sve_ptruevnx16bi_cc, *aarch64_sve_ptrue<mode>_cc) 8218 (*aarch64_sve_ptruevnx16bi_ptest, *aarch64_sve_ptrue<mode>_ptest) 8219 (aarch64_wrffr, aarch64_update_ffr_for_load, aarch64_copy_ffr_to_ffrt) 8220 (aarch64_rdffr, aarch64_rdffr_z, *aarch64_rdffr_z_ptest) 8221 (*aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc) 8222 (aarch64_update_ffrt): New patterns. 8223 (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>) 8224 (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) 8225 (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>) 8226 (@aarch64_ld<fn>f1<mode>): New patterns. 8227 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>) 8228 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) 8229 (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>) 8230 (@aarch64_ldnt1<mode>): New patterns. 8231 (gather_load<mode>): Use aarch64_sve_gather_offset_<Vesize> for 8232 the scalar part of the address. 8233 (mask_gather_load<SVE_S:mode>): Use aarch64_sve_gather_offset_w for the 8234 scalar part of the addresse and add an alternative for handling 8235 nonzero offsets. 8236 (mask_gather_load<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d. 8237 (*mask_gather_load<mode>_sxtw, *mask_gather_load<mode>_uxtw) 8238 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) 8239 (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>) 8240 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw) 8241 (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw) 8242 (@aarch64_ldff1_gather<SVE_S:mode>, @aarch64_ldff1_gather<SVE_D:mode>) 8243 (*aarch64_ldff1_gather<mode>_sxtw, *aarch64_ldff1_gather<mode>_uxtw) 8244 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) 8245 (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>) 8246 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw) 8247 (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw) 8248 (@aarch64_sve_prefetch<mode>): New patterns. 8249 (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx4SI_ONLY:mode>) 8250 (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>) 8251 (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_sxtw) 8252 (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_uxtw) 8253 (@aarch64_store_trunc<VNx8_NARROW:mode><VNx8_WIDE:mode>) 8254 (@aarch64_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>) 8255 (@aarch64_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>) 8256 (@aarch64_stnt1<mode>): New patterns. 8257 (scatter_store<mode>): Use aarch64_sve_gather_offset_<Vesize> for 8258 the scalar part of the address. 8259 (mask_scatter_store<SVE_S:mode>): Use aarch64_sve_gather_offset_w for 8260 the scalar part of the addresse and add an alternative for handling 8261 nonzero offsets. 8262 (mask_scatter_store<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d. 8263 (*mask_scatter_store<mode>_sxtw, *mask_scatter_store<mode>_uxtw) 8264 (@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>) 8265 (@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>) 8266 (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw) 8267 (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw): 8268 New patterns. 8269 (vec_duplicate<mode>): Use QI as the mode of the input operand. 8270 (extract_last_<mode>): Generalize to... 8271 (@extract_<LAST:last_op>_<mode>): ...this. 8272 (*<SVE_INT_UNARY:optab><mode>2): Rename to... 8273 (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): ...this. 8274 (@cond_<SVE_INT_UNARY:optab><mode>): New expander. 8275 (@aarch64_pred_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): New pattern. 8276 (@aarch64_cond_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): Likewise. 8277 (@aarch64_pred_cnot<mode>, @cond_cnot<mode>): New expanders. 8278 (@aarch64_sve_<SVE_FP_UNARY_INT:optab><mode>): New pattern. 8279 (@aarch64_sve_<SVE_FP_UNARY:optab><mode>): Likewise. 8280 (*<SVE_COND_FP_UNARY:optab><mode>2): Rename to... 8281 (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): ...this. 8282 (@cond_<SVE_COND_FP_UNARY:optab><mode>): New expander. 8283 (*<SVE_INT_BINARY_IMM:optab><mode>3): Rename to... 8284 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>): ...this. 8285 (@aarch64_adr<mode>, *aarch64_adr_sxtw): New patterns. 8286 (*aarch64_adr_uxtw_unspec): Likewise. 8287 (*aarch64_adr_uxtw): Rename to... 8288 (*aarch64_adr_uxtw_and): ...this. 8289 (@aarch64_adr<mode>_shift): New expander. 8290 (*aarch64_adr_shift_sxtw): New pattern. 8291 (aarch64_<su>abd<mode>_3): Rename to... 8292 (@aarch64_pred_<su>abd<mode>): ...this. 8293 (<su>abd<mode>_3): Update accordingly. 8294 (@aarch64_cond_<su>abd<mode>): New expander. 8295 (@aarch64_<SBINQOPS:su_optab><optab><mode>): New pattern. 8296 (@aarch64_<UBINQOPS:su_optab><optab><mode>): Likewise. 8297 (*<su>mul<mode>3_highpart): Rename to... 8298 (@aarch64_pred_<optab><mode>): ...this. 8299 (@cond_<MUL_HIGHPART:optab><mode>): New expander. 8300 (*cond_<MUL_HIGHPART:optab><mode>_2): New pattern. 8301 (*cond_<MUL_HIGHPART:optab><mode>_z): Likewise. 8302 (*<SVE_INT_BINARY_SD:optab><mode>3): Rename to... 8303 (@aarch64_pred_<SVE_INT_BINARY_SD:optab><mode>): ...this. 8304 (cond_<SVE_INT_BINARY_SD:optab><mode>): Add a "@" marker. 8305 (@aarch64_bic<mode>, @cond_bic<mode>): New expanders. 8306 (*v<ASHIFT:optab><mode>3): Rename to... 8307 (@aarch64_pred_<ASHIFT:optab><mode>): ...this. 8308 (@aarch64_sve_<SVE_SHIFT_WIDE:sve_int_op><mode>): New pattern. 8309 (@cond_<SVE_SHIFT_WIDE:sve_int_op><mode>): New expander. 8310 (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_m): New pattern. 8311 (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_z): Likewise. 8312 (@cond_asrd<mode>): New expander. 8313 (*cond_asrd<mode>_2, *cond_asrd<mode>_z): New patterns. 8314 (sdiv_pow2<mode>3): Expand to *cond_asrd<mode>_2. 8315 (*sdiv_pow2<mode>3): Delete. 8316 (@cond_<SVE_COND_FP_BINARY_INT:optab><mode>): New expander. 8317 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): New pattern. 8318 (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Likewise. 8319 (@aarch64_sve_<SVE_FP_BINARY:optab><mode>): New pattern. 8320 (@aarch64_sve_<SVE_FP_BINARY_INT:optab><mode>): Likewise. 8321 (*<SVE_COND_FP_BINARY_REG:optab><mode>3): Rename to... 8322 (@aarch64_pred_<SVE_COND_FP_BINARY_REG:optab><mode>): ...this. 8323 (@aarch64_pred_<SVE_COND_FP_BINARY_INT:optab><mode>): New pattern. 8324 (cond_<SVE_COND_FP_BINARY:optab><mode>): Add a "@" marker. 8325 (*add<SVE_F:mode>3): Rename to... 8326 (@aarch64_pred_add<SVE_F:mode>): ...this and add alternatives 8327 for SVE_STRICT_GP. 8328 (@aarch64_pred_<SVE_COND_FCADD:optab><mode>): New pattern. 8329 (@cond_<SVE_COND_FCADD:optab><mode>): New expander. 8330 (*cond_<SVE_COND_FCADD:optab><mode>_2): New pattern. 8331 (*cond_<SVE_COND_FCADD:optab><mode>_any): Likewise. 8332 (*sub<SVE_F:mode>3): Rename to... 8333 (@aarch64_pred_sub<SVE_F:mode>): ...this and add alternatives 8334 for SVE_STRICT_GP. 8335 (@aarch64_pred_abd<SVE_F:mode>): New expander. 8336 (*fabd<SVE_F:mode>3): Rename to... 8337 (*aarch64_pred_abd<SVE_F:mode>): ...this. 8338 (@aarch64_cond_abd<SVE_F:mode>): New expander. 8339 (*mul<SVE_F:mode>3): Rename to... 8340 (@aarch64_pred_<SVE_F:optab><mode>): ...this and add alternatives 8341 for SVE_STRICT_GP. 8342 (@aarch64_mul_lane_<SVE_F:mode>): New pattern. 8343 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><mode>3): Rename and generalize 8344 to... 8345 (@aarch64_pred_<SVE_COND_FP_MAXMIN:optab><mode>): ...this. 8346 (*<LOGICAL:optab><PRED_ALL:mode>3_ptest): New pattern. 8347 (*<nlogical><PRED_ALL:mode>3): Rename to... 8348 (aarch64_pred_<nlogical><PRED_ALL:mode>_z): ...this. 8349 (*<nlogical><PRED_ALL:mode>3_cc): New pattern. 8350 (*<nlogical><PRED_ALL:mode>3_ptest): Likewise. 8351 (*<logical_nn><PRED_ALL:mode>3): Rename to... 8352 (aarch64_pred_<logical_nn><mode>_z): ...this. 8353 (*<logical_nn><PRED_ALL:mode>3_cc): New pattern. 8354 (*<logical_nn><PRED_ALL:mode>3_ptest): Likewise. 8355 (*fma<SVE_I:mode>4): Rename to... 8356 (@aarch64_pred_fma<SVE_I:mode>): ...this. 8357 (*fnma<SVE_I:mode>4): Rename to... 8358 (@aarch64_pred_fnma<SVE_I:mode>): ...this. 8359 (@aarch64_<sur>dot_prod_lane<vsi2qi>): New pattern. 8360 (*<SVE_FP_TERNARY:optab><mode>4): Rename to... 8361 (@aarch64_pred_<SVE_FP_TERNARY:optab><mode>): ...this. 8362 (cond_<SVE_FP_TERNARY:optab><mode>): Add a "@" marker. 8363 (@aarch64_<SVE_FP_TERNARY_LANE:optab>_lane_<mode>): New pattern. 8364 (@aarch64_pred_<SVE_COND_FCMLA:optab><mode>): Likewise. 8365 (@cond_<SVE_COND_FCMLA:optab><mode>): New expander. 8366 (*cond_<SVE_COND_FCMLA:optab><mode>_4): New pattern. 8367 (*cond_<SVE_COND_FCMLA:optab><mode>_any): Likewise. 8368 (@aarch64_<FCMLA:optab>_lane_<mode>): Likewise. 8369 (@aarch64_sve_tmad<mode>): Likewise. 8370 (vcond_mask_<SVE_ALL:mode><vpred>): Add a "@" marker. 8371 (*aarch64_sel_dup<mode>): Rename to... 8372 (@aarch64_sel_dup<mode>): ...this. 8373 (@aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide): New pattern. 8374 (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_cc): Likewise. 8375 (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_ptest): Likewise. 8376 (@while_ult<GPI:mode><PRED_ALL:mode>): Generalize to... 8377 (@while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>): ...this. 8378 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Generalize to. 8379 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_cc): ...this. 8380 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): New pattern. 8381 (*fcm<cmp_op><mode>): Rename to... 8382 (@aarch64_pred_fcm<cmp_op><mode>): ...this. Make operand order 8383 match @aarch64_pred_cmp<cmp_op><SVE_I:mode>. 8384 (*fcmuo<mode>): Rename to... 8385 (@aarch64_pred_fcmuo<mode>): ...this. Make operand order 8386 match @aarch64_pred_cmp<cmp_op><SVE_I:mode>. 8387 (@aarch64_pred_fac<cmp_op><mode>): New expander. 8388 (@vcond_mask_<PRED_ALL:mode><mode>): New pattern. 8389 (fold_extract_last_<mode>): Generalize to... 8390 (@fold_extract_<last_op>_<mode>): ...this. 8391 (@aarch64_fold_extract_vector_<last_op>_<mode>): New pattern. 8392 (*reduc_plus_scal_<SVE_I:mode>): Replace with... 8393 (@aarch64_pred_reduc_<optab>_<mode>): ...this pattern, making the 8394 DImode result explicit. 8395 (reduc_plus_scal_<mode>): Update accordingly. 8396 (*reduc_<optab>_scal_<SVE_I:mode>): Rename to... 8397 (@aarch64_pred_reduc_<optab>_<SVE_I:mode>): ...this. 8398 (*reduc_<optab>_scal_<SVE_F:mode>): Rename to... 8399 (@aarch64_pred_reduc_<optab>_<SVE_F:mode>): ...this. 8400 (*aarch64_sve_tbl<mode>): Rename to... 8401 (@aarch64_sve_tbl<mode>): ...this. 8402 (@aarch64_sve_compact<mode>): New pattern. 8403 (*aarch64_sve_dup_lane<mode>): Rename to... 8404 (@aarch64_sve_dup_lane<mode>): ...this. 8405 (@aarch64_sve_dupq_lane<mode>): New pattern. 8406 (@aarch64_sve_splice<mode>): Likewise. 8407 (aarch64_sve_<perm_insn><mode>): Rename to... 8408 (@aarch64_sve_<perm_insn><mode>): ...this. 8409 (*aarch64_sve_ext<mode>): Rename to... 8410 (@aarch64_sve_ext<mode>): ...this. 8411 (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): Add a "@" marker. 8412 (*aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): Rename 8413 to... 8414 (@aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): ...this. 8415 (*aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): 8416 Rename to... 8417 (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): 8418 ...this. 8419 (@cond_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): New expander. 8420 (@cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Likewise. 8421 (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): New pattern. 8422 (*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): Rename 8423 to... 8424 (@aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): ...this. 8425 (aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Add 8426 a "@" marker. 8427 (@cond_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): New expander. 8428 (@cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Likewise. 8429 (*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): New 8430 pattern. 8431 (*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): Rename to... 8432 (@aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): ...this. 8433 (@cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New expander. 8434 (*cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New pattern. 8435 (aarch64_sve_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): Add a 8436 "@" marker. 8437 (@cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New expander. 8438 (*cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New pattern. 8439 (aarch64_sve_punpk<perm_hilo>_<mode>): Add a "@" marker. 8440 (@aarch64_brk<SVE_BRK_UNARY:brk_op>): New pattern. 8441 (*aarch64_brk<SVE_BRK_UNARY:brk_op>_cc): Likewise. 8442 (*aarch64_brk<SVE_BRK_UNARY:brk_op>_ptest): Likewise. 8443 (@aarch64_brk<SVE_BRK_BINARY:brk_op>): Likewise. 8444 (*aarch64_brk<SVE_BRK_BINARY:brk_op>_cc): Likewise. 8445 (*aarch64_brk<SVE_BRK_BINARY:brk_op>_ptest): Likewise. 8446 (@aarch64_sve_<SVE_PITER:sve_pred_op><mode>): Likewise. 8447 (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_cc): Likewise. 8448 (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_ptest): Likewise. 8449 (aarch64_sve_cnt_pat): Likewise. 8450 (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode>_pat): Likewise. 8451 (*aarch64_sve_incsi_pat): Likewise. 8452 (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode>_pat): Likewise. 8453 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise. 8454 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise. 8455 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander. 8456 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern. 8457 (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode>_pat): Likewise. 8458 (*aarch64_sve_decsi_pat): Likewise. 8459 (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode>_pat): Likewise. 8460 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise. 8461 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise. 8462 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander. 8463 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern. 8464 (@aarch64_pred_cntp<mode>): Likewise. 8465 (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp): 8466 New expander. 8467 (*aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp) 8468 (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns. 8469 (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp): 8470 New expander. 8471 (*aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp): 8472 New pattern. 8473 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New expander. 8474 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern. 8475 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New expander. 8476 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern. 8477 (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New expander. 8478 (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern. 8479 (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp): 8480 New expander. 8481 (*aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp) 8482 (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns. 8483 (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp): 8484 New expander. 8485 (*aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp): 8486 New pattern. 8487 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New 8488 expander. 8489 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern. 8490 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New 8491 expander. 8492 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern. 8493 (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New 8494 expander. 8495 (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern. 8496 * config/aarch64/arm_sve.h: New file. 8497 * config/aarch64/aarch64-sve-builtins.h: Likewise. 8498 * config/aarch64/aarch64-sve-builtins.cc: Likewise. 8499 * config/aarch64/aarch64-sve-builtins.def: Likewise. 8500 * config/aarch64/aarch64-sve-builtins-base.h: Likewise. 8501 * config/aarch64/aarch64-sve-builtins-base.cc: Likewise. 8502 * config/aarch64/aarch64-sve-builtins-base.def: Likewise. 8503 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise. 8504 * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise. 8505 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise. 8506 85072019-10-29 Richard Sandiford <richard.sandiford@arm.com> 8508 8509 * config/aarch64/aarch64-sve.md (@aarch64_sve_rev<PRED_ALL:mode>): 8510 New pattern. 8511 * config/aarch64/aarch64.c (aarch64_evpc_rev_global): Handle all 8512 SVE modes. 8513 85142019-10-29 Richard Sandiford <richard.sandiford@arm.com> 8515 8516 * config/aarch64/aarch64.md (FFR_REGNUM, FFRT_REGNUM): New constants. 8517 * config/aarch64/aarch64.h (FIRST_PSEUDO_REGISTER): Bump to 8518 FFRT_REGNUM + 1. 8519 (FFR_REGS, PR_AND_FFR_REGS): New register classes. 8520 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for them. 8521 * config/aarch64/aarch64.c (pr_or_ffr_regnum_p): New function. 8522 (aarch64_hard_regno_nregs): Handle the new register classes. 8523 (aarch64_hard_regno_mode_ok): Likewise. 8524 (aarch64_regno_regclass): Likewise. 8525 (aarch64_class_max_nregs): Likewise. 8526 (aarch64_register_move_cost): Likewise. 8527 (aarch64_conditional_register_usage): Don't treat FFR and FFRT 8528 as general register_operands. 8529 85302019-10-29 Martin Liska <mliska@suse.cz> 8531 8532 * ggc-common.c: One can't subtract unsigned types 8533 in compare function. 8534 85352019-10-29 Martin Liska <mliska@suse.cz> 8536 8537 * cgraphunit.c (symbol_table::compile): Pass 8538 title as dump_memory_report argument. 8539 * toplev.c (dump_memory_report): New argument. 8540 (finalize): Pass new argument. 8541 * toplev.h (dump_memory_report): Add argument. 8542 85432019-10-29 Martin Liska <mliska@suse.cz> 8544 8545 * ggc-common.c: Move Leak to the first column. 8546 85472019-10-29 Martin Liska <mliska@suse.cz> 8548 8549 * cgraphunit.c (symbol_table::compile): Remove argument 8550 for dump_memory_report. 8551 * ggc-common.c (dump_ggc_loc_statistics): Likewise. 8552 (compare_final): Remove in order to make report 8553 better readable. 8554 * ggc.h (dump_ggc_loc_statistics): Remove argument. 8555 * mem-stats.h (mem_alloc_description::get_list): 8556 Do not pass cmp. 8557 (mem_alloc_description::dump): Likewise here. 8558 * toplev.c (dump_memory_report): Remove final 8559 argument. 8560 (finalize): Likewise. 8561 * toplev.h (dump_memory_report): Remove argument. 8562 85632019-10-29 Richard Sandiford <richard.sandiford@arm.com> 8564 8565 * config/aarch64/aarch64.c (aarch64_sve_cmp_immediate_p) 8566 (aarch64_simd_shift_imm_p): Accept scalars as well as vectors. 8567 * config/aarch64/predicates.md (aarch64_sve_cmp_vsc_immediate) 8568 (aarch64_sve_cmp_vsd_immediate): Accept "const_int", but don't 8569 accept "const". 8570 85712019-10-29 Richard Sandiford <richard.sandiford@arm.com> 8572 8573 * coretypes.h (string_int_pair): New typedef. 8574 * langhooks-def.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define. 8575 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it. 8576 * langhooks.h (lang_hooks_for_types::simulate_enum_decl): New hook. 8577 85782019-10-29 Richard Sandiford <richard.sandiford@arm.com> 8579 8580 * langhooks.h (lang_hooks::simulate_builtin_function_decl): New hook. 8581 (simulate_builtin_function_decl): Declare. 8582 * langhooks-def.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define. 8583 (LANG_HOOKS_INITIALIZER): Include it. 8584 * langhooks.c (add_builtin_function_common): Rename to... 8585 (build_builtin_function): ...this. Add a location parameter and use 8586 it instead of BUILTINS_LOCATION. Remove the hook parameter and return 8587 the decl instead. 8588 (add_builtin_function): Update accordingly, passing the returned 8589 decl to the lang hook. 8590 (add_builtin_function_ext_scope): Likewise 8591 (simulate_builtin_function_decl): New function. 8592 85932019-10-29 Jakub Jelinek <jakub@redhat.com> 8594 8595 * doc/install.texi (--enable-offload-targets): Fix up a typo in the 8596 example, use actual names of supported offload targets. 8597 8598 PR target/92258 8599 * config/i386/sse.md (iptr): Revert 2019-10-27 change. 8600 86012019-10-28 Martin Sebor <msebor@redhat.com> 8602 8603 * tree-ssa-strlen.c (get_addr_stridx): Add argument and use it. 8604 (handle_store): Pass argument to get_addr_stridx. 8605 86062019-10-28 Martin Sebor <msebor@redhat.com> 8607 8608 PR tree-optimization/92226 8609 * tree-ssa-strlen.c (compare_nonzero_chars): Return -1 also when 8610 the offset is in the open range outlined by SI's length. 8611 86122019-10-28 Martin Sebor <msebor@redhat.com> 8613 8614 PR c/66970 8615 * doc/cpp.texi (__has_builtin): Document. 8616 * doc/extend.texi (__builtin_frob_return_addr): Correct spelling. 8617 86182019-10-28 Mihailo Stojanovic <mistojanovic@wavecomp.com> 8619 8620 PR target/82981 8621 * config/mips/mips.md (<u>mulditi3): Generate patterns for high 8622 doubleword and low doubleword result of multiplication on 8623 MIPS64R6. 8624 8625 * config/mips/mips.c (DIRECT_BUILTIN_PURE): New macro. Add a 8626 pure qualifier to the built-in. 8627 (MSA_BUILTIN_PURE): New macro. Add a pure qualifier to the MSA 8628 built-ins. 8629 (struct mips_builtin_description): Add is_pure flag. 8630 (mips_init_builtins): Mark built-in as pure if the flag in the 8631 corresponding mips_builtin_description struct is set. 8632 8633 * config/mips/mips-msa.md (msa_insert_<msaftm_f>): Add an 8634 alternative which covers the floating-point input value. Also 8635 forbid the split of insert.d pattern for floating-point values. 8636 86372019-10-28 Andrew Burgess <andrew.burgess@embecosm.com> 8638 8639 * config.gcc: Add riscv-sr.o to extra_objs for riscv. 8640 * config/riscv/riscv-sr.c: New file. 8641 * config/riscv/riscv.c (riscv_reorg): New function. 8642 (TARGET_MACHINE_DEPENDENT_REORG): Define. 8643 * config/riscv/riscv.h (SIBCALL_REG_P): Define. 8644 (riscv_remove_unneeded_save_restore_calls): Declare. 8645 * config/riscv/t-riscv (riscv-sr.o): New build rule. 8646 86472019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 8648 8649 PR tree-optimization/92163 8650 * tree-ssa-dse.c (delete_dead_or_redundant_assignment): New param 8651 need_eh_cleanup with default value NULL. Gate on need_eh_cleanup 8652 before calling bitmap_set_bit. 8653 (dse_optimize_redundant_stores): Pass global need_eh_cleanup to 8654 delete_dead_or_redundant_assignment. 8655 (dse_dom_walker::dse_optimize_stmt): Likewise. 8656 * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust prototype. 8657 86582019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 8659 8660 PR middle-end/91272 8661 * tree-vect-stmts.c (vectorizable_condition): Support 8662 EXTRACT_LAST_REDUCTION with fully-masked loops. 8663 86642019-10-28 Richard Biener <rguenther@suse.de> 8665 8666 PR tree-optimization/92252 8667 * tree-vect-slp.c (vect_get_and_check_slp_defs): Adjust 8668 STMT_VINFO_REDUC_IDX when swapping operands. 8669 86702019-10-28 Richard Biener <rguenther@suse.de> 8671 8672 PR tree-optimization/92241 8673 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): When 8674 we failed to update the reduction index do not use the pattern 8675 stmts for the reduction chain. 8676 (vectorizable_reduction): When the reduction chain is corrupt, 8677 fail. 8678 * tree-vect-patterns.c (vect_mark_pattern_stmts): Stop when we 8679 fail to update the reduction chain. 8680 86812019-10-28 Richard Biener <rguenther@suse.de> 8682 8683 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use 8684 STMT_VINFO_REDUC_IDX from the actual stmt. 8685 (vect_transform_reduction): Likewise. 8686 (vectorizable_reduction): Compute the reduction chain length, 8687 do not recompute the reduction operand index. Remove no longer 8688 necessary restriction for condition reduction chains. 8689 86902019-10-28 Uroš Bizjak <ubizjak@gmail.com> 8691 8692 PR target/92225 8693 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2 8694 condition for V2DImode. 8695 86962019-10-28 Uroš Bizjak <ubizjak@gmail.com> 8697 8698 * config/i386/sse.md (sse_cvtss2si<rex64namesuffix>_2): 8699 Remove %k operand modifier. 8700 (*vec_extractv2df_1_sse): Remove %q operand modifier. 8701 87022019-10-28 Ilya Leoshkevich <iii@linux.ibm.com> 8703 8704 PR rtl-optimization/92007 8705 * cfgcleanup.c (thread_jump): Add an assertion that we don't 8706 call it after reload if hot/cold partitioning has been done. 8707 (class pass_postreload_jump): Rename to 8708 pass_jump_after_combine. 8709 (make_pass_postreload_jump): Rename to 8710 make_pass_jump_after_combine. 8711 * passes.def(pass_postreload_jump): Move before reload, rename 8712 to pass_jump_after_combine. 8713 * tree-pass.h (make_pass_postreload_jump): Rename to 8714 make_pass_jump_after_combine. 8715 87162019-10-25 Jan Hubicka <hubicka@ucw.cz> 8717 8718 PR ipa/92242 8719 * ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check 8720 for missing EDGE_REF 8721 * ipa-prop.c (update_jump_functions_after_inlining): Likewise. 8722 87232019-10-25 Jiufu Guo <guojiufu@linux.ibm.com> 8724 8725 PR tree-optimization/88760 8726 * config/rs6000/rs6000-common.c (rs6000_option_optimization_table): 8727 Enable -funroll-loops for -O2 and above. 8728 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set 8729 PARAM_MAX_UNROLL_TIMES to 2 and PARAM_MAX_UNROLLED_INSNS to 20, and 8730 do not turn on web and rngreg implicitly, if the unroller is not 8731 explicitly enabled. 8732 87332019-10-27 Jan Hubicka <hubicka@ucw.cz> 8734 8735 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not remove 8736 jump functions. 8737 87382019-10-27 Eric Botcazou <ebotcazou@adacore.com> 8739 8740 * cgraph.c (cgraph_node::rtl_info): Fix cut&pasto in comment. 8741 * cgraph.h (cgraph_node::rtl_info): Likewise. 8742 87432019-10-27 Jan Hubicka <hubicka@ucw.cz> 8744 8745 * ipa-cp.c (propagate_constants_across_call): If args are not available 8746 just drop everything to varying. 8747 (find_aggregate_values_for_callers_subset): Watch for missing 8748 edge summary. 8749 (find_more_scalar_values_for_callers_subs): Likewise. 8750 * ipa-prop.c (ipa_compute_jump_functions_for_edge, 8751 update_jump_functions_after_inlining, propagate_controlled_uses): 8752 Watch for missing summaries. 8753 (ipa_propagate_indirect_call_infos): Remove summary after propagation 8754 is finished. 8755 (ipa_write_node_info): Watch for missing summaries. 8756 (ipa_read_edge_info): Create new ref. 8757 (ipa_edge_args_sum_t): Add remove. 8758 (IPA_EDGE_REF_GET_CREATE): New macro. 8759 * ipa-fnsummary.c (evaluate_properties_for_edge): Watch for missing 8760 edge summary. 8761 (remap_edge_change_prob): Likewise. 8762 87632019-10-27 Jan Hubicka <hubicka@ucw.cz> 8764 8765 * ipa-inline-transform.c (inline_call): update function summaries 8766 after expanidng thunk. 8767 87682019-10-27 Jan Hubicka <hubicka@ucw.cz> 8769 8770 * ipa-icf.c (sem_function::merge): Update function summaries. 8771 * ipa-prop.h (ipa_get_param): Do not sanity check for WPA. 8772 87732019-10-27 Hongtao Liu <hongtao.liu@intel.com> 8774 8775 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3, 8776 <sse>_vm<multdiv_mnemonic><mode>3): Remove <iptr> since 8777 operand already has scalar mode. 8778 (iptr): Remove SF/DF. 8779 87802019-10-26 Segher Boessenkool <segher@kernel.crashing.org> 8781 8782 PR target/91289 8783 * config/rs6000/rs6000-logue.c (rs6000_emit_allocate_stack): Don't add 8784 an immediate to r0; use r11 instead. Save and restore r11 to r0 around 8785 this. 8786 87872019-10-26 Hongtao Liu <hongtao.liu@intel.com> 8788 8789 * config/i386/sse.md 8790 (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>, 8791 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>, 8792 <sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>, 8793 <sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>, 8794 <sse>_vmmaskcmp<mode>3): 8795 Change predicates from vector_operand to nonimmediate_operand, 8796 constraints xBm to xm, since scalar operations don't need 8797 memory address alignment. 8798 (avx512f_vmcmp<mode>3<round_saeonly_name>, 8799 avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace 8800 round_saeonly_nimm_predicate with 8801 round_saeonly_nimm_scalar_predicate. 8802 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>, 8803 fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>, 8804 *fmai_fmadd_<mode>, *fmai_fmsub_<mode>, 8805 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>, 8806 avx512f_vmfmadd_<mode>_mask3<round_name>, 8807 avx512f_vmfmadd_<mode>_maskz_1<round_name>, 8808 *avx512f_vmfmsub_<mode>_mask<round_name>, 8809 avx512f_vmfmsub_<mode>_mask3<round_name>, 8810 *avx512f_vmfmsub_<mode>_maskz_1<round_name>, 8811 *avx512f_vmfnmadd_<mode>_mask<round_name>, 8812 *avx512f_vmfnmadd_<mode>_mask3<round_name>, 8813 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>, 8814 *avx512f_vmfnmsub_<mode>_mask<round_name>, 8815 *avx512f_vmfnmsub_<mode>_mask3<round_name>, 8816 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>, 8817 cvtusi2<ssescalarmodesuffix>32<round_name>, 8818 cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace 8819 round_nimm_predicate with round_nimm_scalr_predicate. 8820 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>, 8821 avx512f_sfixupimm<mode>_mask<round_saeonly_name>, 8822 avx512er_vmrcp28<mode><round_saeonly_name>, 8823 avx512er_vmrsqrt28<mode><round_saeonly_name>, 8824 ): Replace round_saeonly_nimm_predicate with 8825 round_saeonly_nimm_scalar_predicate. 8826 (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace 8827 vector_operand with nonimmediate_operand. 8828 * config/i386/subst.md (round_scalar_nimm_predicate, 8829 round_saeonly_scalar_nimm_predicate): Replace 8830 vector_operand with nonimmediate_operand. 8831 88322019-10-26 Hongtao Liu <hongtao.liu@intel.com> 8833 8834 PR target/89071 8835 * config/i386/i386.md (*rcpsf2_sse): Add 8836 avx_partial_xmm_update, prefer m constraint for TARGET_AVX. 8837 (*rsqrtsf2_sse): Ditto. 8838 (*sqrt<mode>2_sse): Ditto. 8839 (sse4_1_round<mode>2): separate constraint vm, add 8840 avx_partail_xmm_update, prefer m constraint for TARGET_AVX. 8841 * config/i386/sse.md (*sse_vmrcpv4sf2"): New define_insn used 8842 by pass rpad. 8843 (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>*): 8844 Ditto. 8845 (*sse_vmrsqrtv4sf2): Ditto. 8846 (*avx512f_rndscale<mode><round_saeonly_name>): Ditto. 8847 (*sse4_1_round<ssescalarmodesuffix>): Ditto. 8848 (sse4_1_round<ssescalarmodesuffix>): Add m constraint and 8849 <iptr> pointer size modifier since vround support memory operand. 8850 88512019-10-18 Georg-Johann Lay <avr@gjlay.de> 8852 8853 PR target/85969 8854 * config/avr/gen-avr-mmcu-specs.c (str_prefix_p): Remove unused 8855 static function. 8856 88572019-10-25 Cesar Philippidis <cesar@codesourcery.com> 8858 Tobias Burnus <tobias@codesourcery.com> 8859 8860 * gimplify.c (oacc_default_clause): Privatize fortran common blocks. 8861 (omp_notice_variable): Defer the expansion of DECL_VALUE_EXPR for 8862 common block decls. 8863 88642019-10-25 Richard Biener <rguenther@suse.de> 8865 8866 PR tree-optimization/92222 8867 * tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove. 8868 (_slp_oprnd_info::second_pattern): Likewise. 8869 (_slp_oprnd_info::any_pattern): New. 8870 (vect_create_oprnd_info): Adjust. 8871 (vect_get_and_check_slp_defs): Compute whether any stmt is 8872 in a pattern. 8873 (vect_build_slp_tree_2): Avoid building up a node from scalars 8874 if any of the operand defs, not just the first, is in a pattern. 8875 88762019-10-25 Richard Biener <rguenther@suse.de> 8877 8878 * tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail 8879 swapping if we actually have to modify the IL on a shared stmt. 8880 (vect_build_slp_tree_2): Never fail swapping on shared stmts 8881 because we no longer modify the IL. 8882 88832019-10-25 Martin Liska <mliska@suse.cz> 8884 8885 * tree.c (dump_tree_statistics): Use sorted index 'j' and not 'i'. 8886 88872019-10-25 Richard Sandiford <richard.sandiford@arm.com> 8888 8889 * tree-vect-loop.c (vectorizable_reduction): Restrict the 8890 LOOP_VINFO_CAN_FULLY_MASK_P handling to cases that will be 8891 handled by vect_transform_reduction. Allow fully-masked loops 8892 to be used with reduction chains. 8893 * tree-vect-stmts.c (vectorizable_operation): Handle reduction 8894 operations in fully-masked loops. 8895 (vectorizable_condition): Reject EXTRACT_LAST_REDUCTION 8896 operations in fully-masked loops. 8897 88982019-10-25 Richard Biener <rguenther@suse.de> 8899 8900 * tree-vect-loop.c (vectorizable_reduction): Verify 8901 STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up 8902 correctly. 8903 * tree-vect-patterns.c (vect_mark_pattern_stmts): Transfer 8904 STMT_VINFO_REDUC_IDX from the original stmts to the pattern 8905 stmts. 8906 89072019-10-24 Jakub Jelinek <jakub@redhat.com> 8908 8909 * gimplify.h (omp_construct_selector_matches): Declare. 8910 * gimplify.c (struct gimplify_omp_ctx): Add code member. 8911 (gimplify_call_expr): Call omp_resolve_declare_variant and remap 8912 called function if needed for flag_openmp. 8913 (gimplify_scan_omp_clauses): Set ctx->code. 8914 (omp_construct_selector_matches): New function. 8915 * omp-general.h (omp_constructor_traits_to_codes, 8916 omp_context_selector_matches, omp_resolve_declare_variant): Declare. 8917 * omp-general.c (omp_constructor_traits_to_codes, 8918 omp_context_selector_matches, omp_resolve_declare_variant): New 8919 functions. 8920 8921 * config/arc/arc.c (hwloop_optimize): Add missing space in string 8922 literal. 8923 * config/rx/rx.c (rx_print_operand): Likewise. 8924 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. 8925 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise. 8926 * ipa-sra.c (create_parameter_descriptors, process_scan_results): 8927 Likewise. 8928 * genemit.c (emit_c_code): Likewise. 8929 * plugin.c (try_init_one_plugin): Likewise. Formatting fix. 8930 89312019-10-24 Jan Hubicka <hubicka@ucw.cz> 8932 8933 * symbols-summary.h (fast_function_summary<T *, V>::release, 8934 fast_call_summary<T *, V>::release): Free m_vector. 8935 89362019-10-24 Jan Hubicka <hubicka@ucw.cz> 8937 8938 * cgraphunit.c (symbol_table::process_new_functions): Call 8939 ipa_free_size_summary. 8940 * ipa-cp.c (ipcp_cloning_candidate_p): Update. 8941 (devirtualization_time_bonus): Update. 8942 (ipcp_propagate_stage): Update. 8943 * ipa-fnsummary.c (ipa_size_summaries): New. 8944 (ipa_fn_summary_alloc): Alloc size summary. 8945 (dump_ipa_call_summary): Update. 8946 (ipa_dump_fn_summary): Update. 8947 (analyze_function_body): Update. 8948 (compute_fn_summary): Likewise. 8949 (ipa_get_stack_frame_offset): New function. 8950 (inline_update_callee_summaries): Do not update frame offsets. 8951 (ipa_merge_fn_summary_after_inlining): Update frame offsets here; 8952 remove call and function summary. 8953 (ipa_update_overall_fn_summary): Update. 8954 (inline_read_section): Update. 8955 (ipa_fn_summary_write): Update. 8956 (ipa_free_fn_summary): Do not remove summaries. 8957 (ipa_free_size_summary): New. 8958 (release summary pass): Also run at WPA. 8959 * ipa-fnsummary.h (ipa_size_summary): Declare. 8960 (ipa_fn_summary): Remove size, self_size, stack_frame_offset, 8961 estimated_self_stack_size. 8962 (ipa_size_summary_t): New type. 8963 (ipa_size_summaries): Declare. 8964 (ipa_free_size_summary): Declare. 8965 (ipa_get_stack_frame_offset): Declare. 8966 * ipa-icf.c (sem_function::merge): Update. 8967 * ipa-inline-analysis.c (estimate_size_after_inlining): Update. 8968 (estimate_growth): Update. 8969 (growth_likely_positive): Update. 8970 (clone_inlined_nodes): Update. 8971 (inline_call): Update. 8972 * ipa-inline.c (caller_growth_limits): Update. 8973 (edge_badness): Update. 8974 (recursive_inlining): Update. 8975 (inline_small_functions): Update. 8976 (inline_to_all_callers_1): Update. 8977 * ipa-prop.h (ipa_edge_args_sum_t): Update comment. 8978 89792019-10-24 Segher Boessenkool <segher@kernel.crashing.org> 8980 8981 * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to... 8982 (uavg<mode>3_ceil): ... This. 8983 (altivec_vavgs<VI_char>): Rename to... 8984 (avg<mode>3_ceil): ... This. 8985 * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH, 8986 VAVGUW, VAVGSW): Adjust. 8987 89882019-10-24 Nathan Sidwell <nathan@acm.org> 8989 8990 * dumpfile.c (dump_begin): Reorder decls to use RAII. 8991 89922019-10-24 Martin Liska <mliska@suse.cz> 8993 8994 * symbol-summary.h (gt_pch_nx): Mark all functions 8995 with gcc_unreachable as we do not expect to be called. 8996 89972019-10-24 Richard Biener <rguenther@suse.de> 8998 8999 * tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction 9000 chains try harder with operand swapping and instead of 9001 putting a shifted chain into the reduction operands put 9002 a repetition of the final reduction op there as if we'd 9003 reassociate the expression. 9004 90052019-10-24 Jan Hubicka <hubicka@ucw.cz> 9006 9007 * ipa-reference.c (ipa_reference_optimization_summary_d): Rename 9008 statics_not_read and statics_not_written to statics_read and 9009 statics_written respectively. 9010 (no_module_statics): New static var. 9011 (ipa_reference_get_not_read_global): Rename to ... 9012 (ipa_reference_get_read_global): ... this. 9013 (ipa_reference_get_not_written_global): Rename to ... 9014 (ipa_reference_get_written_global): ... this. 9015 (dump_static_vars_set_to_file): Dump no_module_statics. 9016 (copy_static_var_set): Add for propagation parameter. 9017 (ipa_init): Initialize no_module_statics. 9018 (ipa_ref_opt_summary_t::duplicate): Update. 9019 (ipa_ref_opt_summary_t::remove): Update. 9020 (propagate): Update. 9021 (write_node_summary_p): Look correctly for bitmap differences. 9022 (ipa_reference_write_optimization_summary): Update. 9023 (ipa_reference_read_optimization_summary): Update. 9024 * ipa-reference.h 9025 (ipa_reference_get_not_read_global): Rename to ... 9026 (ipa_reference_get_read_global): ... this. 9027 (ipa_reference_get_not_written_global): Rename to ... 9028 (ipa_reference_get_written_global): ... this. 9029 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Update. 9030 (call_may_clobber_ref_p_1): Update. 9031 90322019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> 9033 9034 * config/msp430/msp430.c (msp430_hard_regno_nregs_has_padding): Remove 9035 and add comment. 9036 (msp430_hard_regno_nregs_with_padding): Remove. 9037 90382019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> 9039 9040 * config/msp430/constraints.md: Allow post_inc for "Ya" constraint. 9041 * config/msp430/msp430.md (430x_shift_left): Use RLAM when the constant 9042 shift amount is between 1 and 4. 9043 (430x_arithmetic_shift_right): Use RRAM when the constant shift amount 9044 is between 1 and 4. 9045 90462019-10-24 Richard Biener <rguenther@suse.de> 9047 9048 PR tree-optimization/92205 9049 * tree-vect-loop.c (vectorizable_reduction): Restrict 9050 search for alternate vectype_in to lane-reducing patterns 9051 we support. 9052 90532019-10-24 Richard Biener <rguenther@suse.de> 9054 9055 PR tree-optimization/92203 9056 * treee-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): 9057 Skip eliminating conversion stmts inserted by insertion. 9058 90592019-10-24 Ilya Leoshkevich <iii@linux.ibm.com> 9060 9061 * config/s390/s390.c (s390_get_thread_pointer): Use 9062 gen_get_thread_pointer. 9063 (s390_expand_split_stack_prologue): Likewise. 9064 * config/s390/s390.md (UNSPEC_GET_TP): New UNSPEC. 9065 (*get_tp_31): New 31-bit splitter for UNSPEC_GET_TP. 9066 (*get_tp_64): New 64-bit splitter for UNSPEC_GET_TP. 9067 (get_thread_pointer<mode>): Use UNSPEC_GET_TP, use 9068 parameterized name. 9069 90702019-10-24 Richard Biener <rguenther@suse.de> 9071 9072 * tree-vect-slp.c (vect_analyze_slp): When reduction group 9073 SLP discovery fails try to handle the reduction as part 9074 of SLP reduction discovery. 9075 90762019-10-23 Michael Meissner <meissner@linux.ibm.com> 9077 9078 * config/rs6000/rs6000-protos.h (rs6000_adjust_insn_length): New 9079 declaration. 9080 * config/rs6000/rs6000.c (rs6000_insn_cost): Use num_insns insn 9081 attribute if it exists, rather than the insn size. If we use the 9082 insn size, adjust the size to remove the extra size that prefixed 9083 instructions take. 9084 (rs6000_adjust_insn_length): New function. 9085 * config/rs6000/rs6000.h (ADJUST_INSN_LENGTH): New target hook to 9086 update the instruction sized if prefixed instructions are used. 9087 * config/rs6000/rs6000.md (prefixed_length attribute): Delete. 9088 (non_prefixed_length attribute): Delete. 9089 (num_insns attribute): New insn attribute to return the number of 9090 instructions. 9091 (max_prefixed_insns attribute): New insn attribute to return the 9092 maximum number of prefixed instructions in an insn. 9093 (length attribute): Do not adjust for prefix instructions here, 9094 punt to ADJUST_INSN_LENGTH. 9095 (mov<mode>_64bit): Set max_prefixed_insns and num_insns. 9096 (movtd_64bit_nodm): Set max_prefixed_insns and num_insns. 9097 (mov<mode>_ppc64): Set max_prefixed_insns and num_insns. 9098 * config/rs6000/vsx.md: (vsx_mov<mode>_64bit): Set 9099 max_prefixed_insns and num_insns. 9100 9101 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Reformat. 9102 (movtd_64bit_nodm): Reformat. 9103 (mov<mode>_32bit): Reformat. 9104 (mov<mode>_softfloat): Reformat. 9105 (FMOVE128_GPR splitter): Reformat. 9106 (DIFD splitter): Reformat. 9107 (TI2 splitter): Reformat. 9108 * config/rs6000/predicates.md (lwa_operand): If the bottom two 9109 bits of the offset for the memory address are non-zero, use PLWA 9110 if prefixed instructions are available. 9111 91122019-10-23 Jan Hubicka <hubicka@ucw.cz> 9113 9114 * lto-streamer-out.c (cmp_symbol_files): Watch for overflow. 9115 91162019-10-23 Jan Hubicka <hubicka@ucw.cz> 9117 9118 * ipa-reference.c (varpool_removal_hook, ipa_reference_c_finalize): Fix 9119 previous patch. 9120 91212019-10-23 Jan Hubicka <hubicka@ucw.cz> 9122 9123 * lto-streamer-out.c (output_constructor): Push CTORS_OUT timevar. 9124 (cmp_symbol_files): New. 9125 (lto_output): Copy sections in file order. 9126 * lto-streamer.h (lto_file_decl_data): Add field order. 9127 91282019-10-23 Jan Hubicka <hubicka@ucw.cz> 9129 9130 * ipa-reference.h (ipa_reference_var_uid): Move offline. 9131 * ipa-reference.c (reference_vars_map_t): new type. 9132 (ipa_reference_vars_map, ipa_reference_vars_uids): New static vars. 9133 (ipa_reference_var_uid): Implement. 9134 (varpool_node_hooks): New static var. 9135 (varpool_removal_hook): New function. 9136 (is_improper): Do not check bitmap for id==-1 9137 (get_static_name): Update. 9138 (ipa_init): Initialize new datastructures. 9139 (analyze_function): Do not recompute ids. 9140 (propagate): Free reference_vars_to_consider. 9141 (stream_out_bitmap): Update. 9142 (ipa_reference_read_optimization_summary): Update. 9143 91442019-10-23 qing zhao <qing.zhao@oracle.com> 9145 9146 PR gcov-profile/91971 9147 * coverage.c (coverage_init): Mangle the full path of filename when 9148 filename is a absolute path. 9149 91502019-10-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> 9151 9152 * config/msp430/msp430-protos.h (msp430_has_hwmult): New. 9153 * config/msp430/msp430.c (msp430_no_hwmult): Remove. 9154 (msp430_has_hwmult): New. 9155 (msp430_output_labelref): 9156 s/msp430_hwmult_type != MSP430_HWMULT_NONE/msp430_has_hwmult ()/ 9157 * config/msp430/msp430.md (mulhisi3): Likewise. 9158 (umulhisi3): Likewise. 9159 (mulsidi3): Likewise. 9160 (umulsidi3): Likewise. 9161 91622019-10-23 Jan Hubicka <hubicka@ucw.cz> 9163 9164 PR ipa/92074 9165 * params.def (inline-heuristics-hint-percent): Set to 600. 9166 91672019-10-23 Richard Biener <rguenther@suse.de> 9168 9169 PR tree-optimization/65930 9170 * tree-vect-loop.c (check_reduction_path): Allow conversions 9171 that only change the sign. 9172 (vectorizable_reduction): Relax latch def stmts we handle further. 9173 91742019-10-23 Jakub Jelinek <jakub@redhat.com> 9175 9176 PR debug/90231 9177 * tree-ssa-loop-ivopts.c (get_debug_computation_at): New function. 9178 (remove_unused_ivs): Use it instead of get_computation_at. When 9179 choosing best candidate, only consider candidates where 9180 get_debug_computation_at actually returns non-NULL. 9181 91822019-10-23 Eric Botcazou <ebotcazou@adacore.com> 9183 9184 PR tree-optimization/92131 9185 * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting 9186 range would be symbolic, drop to varying for any explicit overflow 9187 in the constant part or if neither range is a singleton. 9188 91892019-10-23 Martin Liska <mliska@suse.cz> 9190 9191 PR middle-end/81669 9192 * fibonacci_heap.h (fibonacci_node::fibonacci_node): 9193 Initialize m_data. 9194 91952019-10-23 Richard Sandiford <richard.sandiford@arm.com> 9196 9197 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use 9198 int_mode_for_mode rather than mode_for_int_vector for scalars. 9199 92002019-10-23 Richard Biener <rguenther@suse.de> 9201 9202 PR tree-optimization/92179 9203 * tree-vect-stmts.c (vectorizable_shift): For shift args 9204 that are all the same remove type restriction in the SLP case. 9205 Adjust SLP code to handle converting of the shift arg to 9206 only apply in case the modes are different. 9207 92082019-10-23 Martin Liska <mliska@suse.cz> 9209 9210 PR ipa/91969 9211 * ipa-inline.c (recursive_inlining): Do not print 9212 when curr->count is not initialized. 9213 92142019-10-23 Richard Biener <rguenther@suse.de> 9215 9216 * tree-vect-slp.c (vect_build_slp_tree_2): Do not build 9217 op from scalars in case there's a constant operand in its 9218 definition. 9219 92202019-10-23 Iain Sandoe <iain@sandoe.co.uk> 9221 9222 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard 9223 against out of range max skip or log values. 9224 92252019-10-22 Giuliano Belinassi <giuliano.belinassi@usp.br> 9226 9227 * cgraph.c (dump_graphviz): Change name to dump_name 9228 92292019-10-22 Richard Earnshaw <rearnsha@arm.com> 9230 9231 * config/arm/arm.md (rsbsi_carryin_reg): New pattern. 9232 * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle 9233 subtraction from a carry operation. 9234 92352019-10-22 Richard Earnshaw <rearnsha@arm.com> 9236 9237 * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode. 9238 92392019-10-22 Richard Biener <rguenther@suse.de> 9240 9241 PR tree-optimization/92173 9242 * tree-vect-loop.c (vectorizable_reduction): If 9243 vect_transform_reduction cannot handle code-generation try without 9244 the single-def-use-cycle optimization. Pass optab_vector to 9245 optab_for_tree_code to get vector shifts as that's what we'd 9246 generate. 9247 92482019-10-22 Michael Matz <matz@suse.de> 9249 9250 PR middle-end/90796 9251 * gimple-loop-jam.c (any_access_function_variant_p): New function. 9252 (adjust_unroll_factor): Use it to constrain safety, new parameter. 9253 (tree_loop_unroll_and_jam): Adjust call and profitable unroll factor. 9254 92552019-10-22 Richard Biener <rguenther@suse.de> 9256 9257 PR tree-optimization/92173 9258 * tree-vect-loop.c (vectorizable_reduction): If 9259 vect_transform_reduction cannot handle code-generation try without 9260 the single-def-use-cycle optimization. Pass optab_vector to 9261 optab_for_tree_code to get vector shifts as that's what we'd 9262 generate. 9263 92642019-10-22 Martin Liska <mliska@suse.cz> 9265 9266 * diagnostic-format-json.cc (json_from_expanded_location): 9267 Use json::integer_number. 9268 * gcov.c (output_intermediate_json_line): Use new 9269 json::integer_number. 9270 (output_json_intermediate_file): Likewise. 9271 * json.cc (number::print): Move to ... 9272 (float_number::print): ... this. 9273 (integer_number::print): New. 9274 (test_writing_numbers): Move to ... 9275 (test_writing_float_numbers): ... this. 9276 (test_writing_integer_numbers): New. 9277 (json_cc_tests): Register test_writing_integer_numbers. 9278 * json.h (class value): Add forward declaration 9279 for float_number and integer_number. 9280 (enum kind): Add JSON_INTEGER and JSON_FLOAT. 9281 (class number): Move to ... 9282 (class float_number): ... this. 9283 (class integer_number): New. 9284 * optinfo-emit-json.cc (optrecord_json_writer::impl_location_to_json): 9285 Use json::integer_number. 9286 (optrecord_json_writer::location_to_json): Likewise. 9287 (optrecord_json_writer::profile_count_to_json): Likewise. 9288 (optrecord_json_writer::pass_to_json): Likewise. 9289 92902019-10-22 Richard Sandiford <richard.sandiford@arm.com> 9291 9292 * tree-vect-slp.c (vect_slp_bb_region): Check whether 9293 autodetected_vector_size rather than vector_size is zero. 9294 * tree-vect-loop.c (vect_analyze_loop): Likewise. 9295 Set autodetected_vector_size immediately after calling 9296 vect_analyze_loop_2. Check for a fatal error before advancing 9297 next_size. 9298 92992019-10-21 Jason Merrill <jason@redhat.com> 9300 9301 * lock-and-run.sh: Check for process existence rather than timeout. 9302 93032019-10-21 Jozef Lawrynowicz <jozef.l@mittosystems.com> 9304 9305 * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding 9306 widening multiplication. 9307 93082019-10-21 Richard Earnshaw <rearnsha@arm.com> 9309 9310 * config/arm/iterators.md (t2_binop0): Fix typo in comment. 9311 * config/arm/arm.md (addsi3_carryin_shift): Simplify selection of the 9312 type attribute. 9313 (subsi3_carryin_shift): Separate into register and constant controlled 9314 alternatives. Use shift_amount_operand for operand 4. Set shift 9315 attribute and simplify type attribute. 9316 (subsi3_carryin_shift_alt): Likewise. 9317 (rsbsi3_carryin_shift): Likewise. 9318 (rsbsi3_carryin_shift_alt): Likewise. 9319 (andsi_not_shiftsi_si): Enable for TARGET_32BIT. Separate constant 9320 and register controlled shifts into distinct alternatives. 9321 (andsi_not_shiftsi_si_scc_no_reuse): Likewise. 9322 (andsi_not_shiftsi_si_scc): Likewise. 9323 (arm_cmpsi_negshiftsi_si): Likewise. 9324 (not_shiftsi): Remove redundant M constraint from alternative 1. 9325 (not_shiftsi_compare0): Likewise. 9326 (arm_cmpsi_insn): Remove redundant alternative 2. 9327 (cmpsi_shift_swp): Likewise. 9328 (sub_shiftsi): Likewise. 9329 (sub_shiftsi_compare0_scratch): Likewise. 9330 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Delete pattern. 9331 (thumb2_cmpsi_neg_shiftsi): Likewise. 9332 93332019-10-21 Richard Biener <rguenther@suse.de> 9334 9335 PR tree-optimization/92162 9336 * tree-vect-loop.c (vect_create_epilog_for_reduction): Lookup 9337 STMT_VINFO_REDUC_IDX in reduc_info. 9338 * tree-vect-stmts.c (vectorizable_condition): Likewise. 9339 93402019-10-21 Richard Biener <rguenther@suse.de> 9341 9342 * tree-vectorizer.h (_slp_tree::ops): New member. 9343 (SLP_TREE_SCALAR_OPS): New. 9344 (vect_get_slp_defs): Adjust prototype. 9345 * tree-vect-slp.c (vect_free_slp_tree): Release 9346 SLP_TREE_SCALAR_OPS. 9347 (vect_create_new_slp_node): Initialize it. New overload for 9348 initializing by an operands array. 9349 (_slp_oprnd_info::ops): New member. 9350 (vect_create_oprnd_info): Initialize it. 9351 (vect_free_oprnd_info): Release it. 9352 (vect_get_and_check_slp_defs): Populate the operands array. 9353 Do not swap operands in the IL when not necessary. 9354 (vect_build_slp_tree_2): Build SLP nodes for invariant operands. 9355 Record SLP_TREE_SCALAR_OPS for all invariant nodes. Also 9356 swap operands in the operands array. Do not swap operands in 9357 the IL. 9358 (vect_slp_rearrange_stmts): Re-arrange SLP_TREE_SCALAR_OPS as well. 9359 (vect_gather_slp_loads): Fix. 9360 (vect_detect_hybrid_slp_stmts): Likewise. 9361 (vect_slp_analyze_node_operations_1): Search for a internal 9362 def child for computing reduction SLP_TREE_NUMBER_OF_VEC_STMTS. 9363 (vect_slp_analyze_node_operations): Skip ops-only stmts for 9364 the def-type push/pop dance. 9365 (vect_get_constant_vectors): Compute number_of_vectors here. 9366 Use SLP_TREE_SCALAR_OPS and simplify greatly. 9367 (vect_get_slp_vect_defs): Use gimple_get_lhs also for PHIs. 9368 (vect_get_slp_defs): Simplify greatly. 9369 * tree-vect-loop.c (vectorize_fold_left_reduction): Simplify. 9370 (vect_transform_reduction): Likewise. 9371 * tree-vect-stmts.c (vect_get_vec_defs): Simplify. 9372 (vectorizable_call): Likewise. 9373 (vectorizable_operation): Likewise. 9374 (vectorizable_load): Likewise. 9375 (vectorizable_condition): Likewise. 9376 (vectorizable_comparison): Likewise. 9377 93782019-10-21 Richard Biener <rguenther@suse.de> 9379 9380 PR tree-optimization/92161 9381 * tree-vect-loop.c (vect_analyze_loop_2): Reset stmts def-type 9382 for reductions. 9383 93842019-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9385 9386 * config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS): Define. 9387 (aarch64_rndr): New define_insn. 9388 (aarch64_rndrrs): Likewise. 9389 * config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define. 9390 (TARGET_RNG): Likewise. 9391 * config/aarch64/aarch64.c (aarch64_expand_builtin): Use IGNORE 9392 argument. 9393 * config/aarch64/aarch64-protos.h (aarch64_general_expand_builtin): 9394 Add fourth argument in prototype. 9395 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): 9396 Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS. 9397 (aarch64_init_rng_builtins): Define. 9398 (aarch64_general_init_builtins): Call aarch64_init_rng_builtins. 9399 (aarch64_expand_rng_builtin): Define. 9400 (aarch64_general_expand_builtin): Use IGNORE argument, handle 9401 RNG builtins. 9402 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define 9403 __ARM_FEATURE_RNG when TARGET_RNG. 9404 * config/aarch64/arm_acle.h (__rndr, __rndrrs): Define. 9405 94062019-10-21 Andre Vieira <andre.simoesdiasvieira@arm.com> 9407 9408 * tree-vect-stmts (ensure_base_align): Only change alignment if new 9409 alignment is more restrictive. 9410 94112019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9412 9413 * tree-vectorizer.h (vec_info::vector_size): New member variable. 9414 (vect_update_max_nunits): Update comment. 9415 (current_vector_size): Delete. 9416 * tree-vect-stmts.c (current_vector_size): Likewise. 9417 (get_vectype_for_scalar_type): Use vec_info::vector_size instead 9418 of current_vector_size. 9419 (get_mask_type_for_scalar_type): Likewise. 9420 * tree-vectorizer.c (try_vectorize_loop_1): Likewise. 9421 * tree-vect-loop.c (vect_update_vf_for_slp): Likewise. 9422 (vect_analyze_loop, vect_halve_mask_nunits): Likewise. 9423 (vect_double_mask_nunits, vect_transform_loop): Likewise. 9424 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise. 9425 (vect_make_slp_decision, vect_slp_bb_region): Likewise. 9426 94272019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9428 9429 * tree-vectorizer.h (vect_double_mask_nunits): Take a vec_info. 9430 * tree-vect-loop.c (vect_double_mask_nunits): Likewise. 9431 * tree-vect-stmts.c (supportable_narrowing_operation): Update call 9432 accordingly. 9433 94342019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9435 9436 * tree-vectorizer.h (vect_halve_mask_nunits): Take a vec_info. 9437 * tree-vect-loop.c (vect_halve_mask_nunits): Likewise. 9438 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Update 9439 call accordingly. 9440 * tree-vect-stmts.c (supportable_widening_operation): Likewise. 9441 94422019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9443 9444 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Take 9445 a loop_vec_info. 9446 (vect_set_loop_condition_masked): Update call accordingly. 9447 94482019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9449 9450 * tree-vectorizer.h (supportable_narrowing_operation): Take a vec_info. 9451 * tree-vect-stmts.c (supportable_narrowing_operation): Likewise. 9452 (simple_integer_narrowing): Update call accordingly. 9453 (vectorizable_conversion): Likewise. 9454 94552019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9456 9457 * tree-vect-stmts.c (simple_integer_narrowing): Take a vec_info. 9458 (vectorizable_call): Update call accordingly. 9459 94602019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9461 9462 * tree-vectorizer.h (can_duplicate_and_interleave_p): Take a vec_info. 9463 * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise. 9464 (duplicate_and_interleave): Update call accordingly. 9465 * tree-vect-loop.c (vectorizable_reduction): Likewise. 9466 94672019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9468 9469 * tree-vectorizer.h (duplicate_and_interleave): Take a vec_info. 9470 * tree-vect-slp.c (duplicate_and_interleave): Likewise. 9471 (vect_get_constant_vectors): Update call accordingly. 9472 * tree-vect-loop.c (get_initial_defs_for_reduction): Likewise. 9473 94742019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9475 9476 * tree-vectorizer.h (get_vectype_for_scalar_type): Take a vec_info. 9477 * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise. 9478 (vect_prologue_cost_for_slp_op): Update call accordingly. 9479 (vect_get_vec_def_for_operand, vect_get_gather_scatter_ops) 9480 (vect_get_strided_load_store_ops, vectorizable_simd_clone_call) 9481 (vect_supportable_shift, vect_is_simple_cond, vectorizable_comparison) 9482 (get_mask_type_for_scalar_type): Likewise. 9483 (vect_get_vector_types_for_stmt): Likewise. 9484 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. 9485 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. 9486 (get_initial_def_for_reduction, build_vect_cond_expr): Likewise. 9487 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Likewise. 9488 (vect_split_statement, vect_convert_input): Likewise. 9489 (vect_recog_widen_op_pattern, vect_recog_pow_pattern): Likewise. 9490 (vect_recog_over_widening_pattern, vect_recog_mulhs_pattern): Likewise. 9491 (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern) 9492 (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern) 9493 (vect_synth_mult_by_constant, vect_recog_mult_pattern): Likewise. 9494 (vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern) 9495 (check_bool_pattern, adjust_bool_pattern_cast, adjust_bool_pattern) 9496 (search_type_for_mask_1, vect_recog_bool_pattern): Likewise. 9497 (vect_recog_mask_conversion_pattern): Likewise. 9498 (vect_add_conversion_to_pattern): Likewise. 9499 (vect_recog_gather_scatter_pattern): Likewise. 9500 * tree-vect-slp.c (vect_build_slp_tree_2): Likewise. 9501 (vect_analyze_slp_instance, vect_get_constant_vectors): Likewise. 9502 95032019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9504 9505 * tree-vectorizer.h (get_mask_type_for_scalar_type): Take a vec_info. 9506 * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise. 9507 (vect_check_load_store_mask): Update call accordingly. 9508 (vect_get_mask_type_for_stmt): Likewise. 9509 * tree-vect-patterns.c (check_bool_pattern): Likewise. 9510 (search_type_for_mask_1, vect_recog_mask_conversion_pattern): Likewise. 9511 (vect_convert_mask_for_vectype): Likewise. 9512 95132019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9514 9515 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take 9516 a vec_info. 9517 (vect_recog_dot_prod_pattern): Update call accordingly. 9518 (vect_recog_sad_pattern, vect_recog_pow_pattern): Likewise. 9519 (vect_recog_widen_sum_pattern): Likewise. 9520 95212019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9522 9523 * tree-vectorizer.h (vect_supportable_shift): Take a vec_info. 9524 * tree-vect-stmts.c (vect_supportable_shift): Likewise. 9525 * tree-vect-patterns.c (vect_synth_mult_by_constant): Update call 9526 accordingly. 9527 95282019-10-21 Richard Sandiford <richard.sandiford@arm.com> 9529 9530 * tree-vectorizer.c (get_vec_alignment_for_array_type): Use 9531 get_vectype_for_scalar_type_and_size instead of 9532 get_vectype_for_scalar_type. 9533 95342019-10-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 9535 9536 * common.opt (-fcommon): Fix description. 9537 95382019-10-20 Jakub Jelinek <jakub@redhat.com> 9539 9540 * config/i386/i386-protos.h (ix86_pre_reload_split): Declare. 9541 * config/i386/i386.c (ix86_pre_reload_split): New function. 9542 * config/i386/i386.md (*fix_trunc<mode>_i387_1, *add<mode>3_eq, 9543 *add<mode>3_ne, *add<mode>3_eq_0, *add<mode>3_ne_0, *add<mode>3_eq, 9544 *add<mode>3_ne, *add<mode>3_eq_1, *add<mode>3_eq_0, *add<mode>3_ne_0, 9545 *anddi3_doubleword, *andndi3_doubleword, *<code>di3_doubleword, 9546 *one_cmpldi2_doubleword, *ashl<dwi>3_doubleword_mask, 9547 *ashl<dwi>3_doubleword_mask_1, *ashl<mode>3_mask, *ashl<mode>3_mask_1, 9548 *<shift_insn><mode>3_mask, *<shift_insn><mode>3_mask_1, 9549 *<shift_insn><dwi>3_doubleword_mask, 9550 *<shift_insn><dwi>3_doubleword_mask_1, *<rotate_insn><mode>3_mask, 9551 *<rotate_insn><mode>3_mask_1, *<btsc><mode>_mask, *<btsc><mode>_mask_1, 9552 *btr<mode>_mask, *btr<mode>_mask_1, *jcc_bt<mode>, *jcc_bt<mode>_1, 9553 *jcc_bt<mode>_mask, *popcounthi2_1, frndintxf2_<rounding>, 9554 *fist<mode>2_<rounding>_1, *<code><mode>3_1, *<code>di3_doubleword): 9555 Use ix86_pre_reload_split instead of can_create_pseudo_p in condition. 9556 * config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2, 9557 *avx2_<code>v8qiv8si2<mask_name>_2, 9558 *sse4_1_<code>v4qiv4si2<mask_name>_2, 9559 *sse4_1_<code>v4hiv4si2<mask_name>_2, 9560 *avx512f_<code>v8qiv8di2<mask_name>_2, 9561 *avx2_<code>v4qiv4di2<mask_name>_2, *avx2_<code>v4hiv4di2<mask_name>_2, 9562 *sse4_1_<code>v2hiv2di2<mask_name>_2, 9563 *sse4_1_<code>v2siv2di2<mask_name>_2, sse4_2_pcmpestr, 9564 sse4_2_pcmpistr): Likewise. 9565 95662019-10-20 Gerald Pfeifer <gerald@pfeifer.com> 9567 9568 * doc/install.texi (Configuration, --enable-objc-gc): hboehm.info 9569 now defaults to https. 9570 95712019-10-20 Jan Hubicka <hubicka@ucw.cz> 9572 9573 * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): Do not 9574 skip non-zero array accesses. 9575 95762019-10-20 Richard Sandiford <richard.sandiford@arm.com> 9577 9578 * tree-vect-slp.c (vect_slp_analyze_bb_1): Take a bb_vec_info 9579 and return a boolean success value. Move the allocation and 9580 initialization of the bb_vec_info to... 9581 (vect_slp_bb_region): ...here. Update call accordingly. 9582 (vect_slp_bb): Apply PARAM_SLP_MAX_INSNS_IN_BB here rather 9583 than in vect_slp_analyze_bb_1. 9584 95852019-10-20 Richard Sandiford <richard.sandiford@arm.com> 9586 9587 * tree-vect-slp.c (vect_slp_analyze_bb_1): Call save_datarefs 9588 when processing the given datarefs for the first time and 9589 check_datarefs subsequently. 9590 (vect_slp_bb_region): New function, split out of... 9591 (vect_slp_bb): ...here. Don't recompute the region bounds and 9592 dataref sets when retrying with a different vector size. 9593 95942019-10-19 Jakub Jelinek <jakub@redhat.com> 9595 Uroš Bizjak <ubizjak@gmail.com> 9596 9597 PR target/92140 9598 * config/i386/predicates.md (int_nonimmediate_operand): New special 9599 predicate. 9600 * config/i386/i386.md (*add<mode>3_eq, *add<mode>3_ne, 9601 *add<mode>3_eq_0, *add<mode>3_ne_0, *sub<mode>3_eq, *sub<mode>3_ne, 9602 *sub<mode>3_eq_1, *sub<mode>3_eq_0, *sub<mode>3_ne_0): New 9603 define_insn_and_split patterns. 9604 96052019-10-19 Iain Sandoe <iain@sandoe.co.uk> 9606 9607 * config/rs6000/rs6000.md: Delete out--of-date comment about 9608 special-casing integer loads. 9609 96102019-10-19 JeanHeyd Meneide <phdofthehouse@gmail.com> 9611 9612 * escaped_string.h (escaped_string): New header. 9613 * tree.c (escaped_string): Remove escaped_string class. 9614 96152019-10-18 Martin Sebor <msebor@redhat.com> 9616 9617 PR tree-optimization/92157 9618 * tree-ssa-strlen.c (handle_builtin_string_cmp): Be prepared for 9619 compute_string_length to return a negative result. 9620 96212019-10-18 Richard Earnshaw <rearnsha@arm.com> 9622 9623 * config/arm/arm.md (negv<SIDI:mode>3): New expansion rule. 9624 (negvsi3, negvdi3): Delete. 9625 (negdi2_compare): Delete. 9626 96272019-10-18 Richard Earnshaw <rearnsha@arm.com> 9628 9629 * config/arm/arm.md (subvdi4): Decompose calculation into 32-bit 9630 operations. 9631 (subdi3_compare1): Delete pattern. 9632 (subvsi3_borrow): New insn pattern. 9633 (subvsi3_borrow_imm): Likewise. 9634 96352019-10-18 Richard Earnshaw <rearnsha@arm.com> 9636 9637 * config/arm/arm.md (subv<mode>4): Delete. 9638 (subvdi4): New expander pattern. 9639 (subvsi4): Likewise. Handle some immediate values. 9640 (subvsi3_intmin): New insn pattern. 9641 (subvsi3): Likewise. 9642 (subvsi3_imm1): Likewise. 9643 * config/arm/arm.c (select_cc_mode): Also allow minus for CC_V 9644 idioms. 9645 96462019-10-18 Richard Earnshaw <rearnsha@arm.com> 9647 9648 * config/arm/arm.md (usubvdi4): Allow registers or integers for 9649 incoming operands. Early split the calculation into SImode 9650 operations. 9651 (usubvsi3_borrow): New insn pattern. 9652 (usubvsi3_borrow_imm): Likewise. 9653 96542019-10-18 Richard Earnshaw <rearnsha@arm.com> 9655 9656 * config/arm/arm.md (usubv<mode>4): Delete expansion. 9657 (usubvsi4): New pattern. Allow some immediate values for inputs. 9658 (usubvdi4): New pattern. 9659 96602019-10-18 Richard Earnshaw <rearnsha@arm.com> 9661 9662 * config/arm/arm.c (arm_select_cc_mode): Allow either the first 9663 or second operand of the PLUS inside a DImode equality test to be 9664 sign-extend when selecting CC_Vmode. 9665 * config/arm/arm.md (addvdi4): Early-split the operation into SImode 9666 instructions. 9667 (addsi3_cin_vout_reg, addsi3_cin_vout_imm, addsi3_cin_vout_0): New 9668 expand patterns. 9669 (addsi3_cin_vout_reg_insn, addsi3_cin_vout_imm_insn): New patterns. 9670 (addsi3_cin_vout_0): Likewise. 9671 (adddi3_compareV): Delete. 9672 96732019-10-18 Richard Earnshaw <rearnsha@arm.com> 9674 9675 * config/arm/arm.md (addsi3_compareV_reg_nosum): New insn. 9676 (addsi3_compareV_imm_nosum): New insn. Also add peephole2 patterns 9677 to transform this back into the summation version when that leads 9678 to smaller code. 9679 96802019-10-18 Richard Earnshaw <rearnsha@arm.com> 9681 9682 * config/arm/arm.md (addv<mode>4): Delete. 9683 (addvsi4): New pattern. Handle immediate values that the architecture 9684 supports. 9685 (addvdi4): New pattern. 9686 (addsi3_compareV): Rename to ... 9687 (addsi3_compareV_reg): ... this. Add constraints for thumb2 variants 9688 and use COMPARE rather than NE. 9689 (addsi3_compareV_imm): New pattern. 9690 * config/arm/arm.c (arm_select_cc_mode): Return CC_Vmode for 9691 a signed-overflow check. 9692 96932019-10-18 Richard Earnshaw <rearnsha@arm.com> 9694 9695 * config/arm/arm-modes.def (CC_ADC): New CC mode. 9696 * config/arm/arm.c (arm_select_cc_mode): Detect selection of 9697 CC_ADCmode. 9698 (maybe_get_arm_condition_code): Handle CC_ADCmode. 9699 * config/arm/arm.md (uaddvdi4): Early expansion of unsigned addition 9700 with overflow. 9701 (addsi3_cin_cout_reg, addsi3_cin_cout_imm, addsi3_cin_cout_0): New 9702 expand patterns. 9703 (addsi3_cin_cout_reg_insn, addsi3_cin_cout_0_insn): New insn patterns 9704 (addsi3_cin_cout_imm_insn): Likewise. 9705 (adddi3_compareC): Delete insn. 9706 * config/arm/predicates.md (arm_carry_operation): Handle CC_ADCmode. 9707 97082019-10-18 Richard Earnshaw <rearnsha@arm.com> 9709 9710 * config/arm/arm.md (adddi3): Call gen_addsi3_compare_op1. 9711 * (uaddv<mode>4): Delete expansion pattern. 9712 (uaddvsi4): New pattern. 9713 (uaddvdi4): Likewise. 9714 (addsi3_compareC): Delete pattern, change callers to use 9715 addsi3_compare_op1. 9716 (addsi3_compare_op1): No-longer anonymous. Clean up constraints to 9717 reduce the number of alternatives and re-work type attribute handling. 9718 (addsi3_compare_op2): Clean up constraints to reduce the number of 9719 alternatives and re-work type attribute handling. 9720 (compare_addsi2_op0): Likewise. 9721 (compare_addsi2_op1): Likewise. 9722 97232019-10-18 Richard Earnshaw <rearnsha@arm.com> 9724 9725 * config/arm/arm-modes.def (CC_NCV, CC_CZ): Delete CC modes. 9726 * config/arm/arm.c (arm_select_cc_mode): Remove old selection code 9727 for DImode operands. 9728 (arm_gen_dicompare_reg): Remove unreachable expansion code. 9729 (maybe_get_arm_condition_code): Remove support for CC_CZmode and 9730 CC_NCVmode. 9731 * config/arm/arm.md (arm_cmpdi_insn): Delete. 9732 (arm_cmpdi_unsigned): Delete. 9733 97342019-10-18 Richard Earnshaw <rearnsha@arm.com> 9735 9736 * config/arm/arm.c (arm_const_double_prefer_rsbs_rsc): New function. 9737 (arm_canonicalize_comparison): For GT/LE/GTU/GEU, use the constant 9738 unchanged only if that will be cheaper. 9739 (arm_select_cc_mode): Recognize a swapped comparison that will 9740 be regenerated using RSBS or RSCS. Relax restriction on selecting 9741 CC_RSBmode. 9742 (arm_gen_dicompare_reg): Handle LE/GT/LEU/GEU comparisons against 9743 a constant. 9744 (arm_gen_compare_reg): Handle compare (CONST, X) when the mode 9745 is CC_RSBmode. 9746 (maybe_get_arm_condition_code): CC_RSBmode now returns the same codes 9747 as CCmode. 9748 * config/arm/arm.md (rsb_imm_compare_scratch): New pattern. 9749 (rscsi3_<CC_EXTEND>out_scratch): New pattern. 9750 97512019-10-18 Richard Earnshaw <rearnsha@arm.com> 9752 9753 * config/arm/arm-modes.def (CC_NV, CC_B): New CC modes. 9754 * config/arm/arm.c (arm_select_cc_mode): Recognize constructs that 9755 need these modes. 9756 (arm_gen_dicompare_reg): New code to early expand the sub-operations 9757 of EQ, NE, LT, GE, LTU and GEU. 9758 * config/arm/iterators.md (CC_EXTEND): New code attribute. 9759 * config/arm/predicates.md (arm_adcimm_operand): New predicate.. 9760 * config/arm/arm.md (cmpsi3_carryin_<CC_EXTEND>out): New pattern. 9761 (cmpsi3_imm_carryin_<CC_EXTEND>out): Likewise. 9762 (cmpsi3_0_carryin_<CC_EXTEND>out): Likewise. 9763 97642019-10-18 Richard Earnshaw <rearnsha@arm.com> 9765 9766 * config/arm/arm.md (cbranchdi4): Accept reg_or_int_operand for 9767 operand 2. 9768 (cstoredi4): Similarly, but for operand 3. 9769 * config/arm/arm.c (arm_canoncialize_comparison): Allow 9770 canonicalization of unsigned compares with a constant on Arm. 9771 Prefer using const+1 and adjusting the comparison over swapping the 9772 operands whenever the original constant was not valid. 9773 (arm_gen_dicompare_reg): If Y is not a valid operand, force it to a 9774 register here. 9775 (arm_validize_comparison): Do not force invalid DImode operands to 9776 registers here. 9777 97782019-10-18 Richard Earnshaw <rearnsha@arm.com> 9779 9780 * config/arm/arm.c (arm_select_cc_mode): For DImode equality tests 9781 return CC_Zmode if comparing against a constant where one word is 9782 zero. 9783 (arm_gen_compare_reg): Split DImode handling to ... 9784 (arm_gen_dicompare_reg): ... here. Handle equality comparisons 9785 against simple constants. 9786 * config/arm/arm.md (arm_cmpdi_zero): Delete pattern. 9787 97882019-10-18 Richard Earnshaw <rearnsha@arm.com> 9789 9790 * config/arm/arm.md (subsi3_carryin_shift_alt): New pattern. 9791 (rsbsi3_carryin_shift_alt): Likewise. 9792 97932019-10-18 Richard Earnshaw <rearnsha@arm.com> 9794 9795 * config/arm/arm.md (negscc_borrow): New pattern. 9796 (mov_negscc): Don't split if the insn would match negscc_borrow. 9797 * config/arm/thumb2.md (thumb2_mov_negscc): Likewise. 9798 (thumb2_mov_negscc_strict_it): Likewise. 9799 98002019-10-18 Richard Earnshaw <rearnsha@arm.com> 9801 9802 * config/arm/arm.c (arm_insn_cost): New function. 9803 (TARGET_INSN_COST): Override default definition. 9804 98052019-10-18 Richard Earnshaw <rearnsha@arm.com> 9806 9807 * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle 9808 borrow operations. 9809 98102019-10-18 Richard Earnshaw <rearnsha@arm.com> 9811 9812 * config/arm/arm.c (strip_carry_operation): New function. 9813 (arm_rtx_costs_internal, case PLUS): Handle addtion with carry-in 9814 for SImode. 9815 98162019-10-18 Richard Earnshaw <rearnsha@arm.com> 9817 9818 * config/arm/predicates.md (arm_carry_operation): New special 9819 predicate. 9820 * config/arm/iterators.md (LTUGEU): Delete iterator. 9821 (cnb): Delete code attribute. 9822 (optab): Delete ltu and geu elements. 9823 * config/arm/arm.md (addsi3_carryin): Renamed from 9824 addsi3_carryin_<optab>. Remove iterator and use arm_carry_operand. 9825 (add0si3_carryin): Similarly, but from add0si3_carryin_<optab>. 9826 (addsi3_carryin_alt2): Similarly, but from addsi3_carryin_alt2_<optab>. 9827 (addsi3_carryin_clobercc): Similarly. 9828 (addsi3_carryin_shift): Similarly. Do not allow register shifts in 9829 Thumb2 state. 9830 98312019-10-18 Richard Earnshaw <rearnsha@arm.com> 9832 9833 * config/arm/arm.md (arm_subdi3): Delete insn. 9834 (zextendsidi_negsi, negdi_extendsidi): Delete insn_and_split. 9835 98362019-10-18 Richard Earnshaw <rearnsha@arm.com> 9837 9838 * config/arm/arm-modes.def (CC_RSB): New CC mode. 9839 * config/arm/predicates.md (arm_borrow_operation): Handle CC_RSBmode. 9840 * config/arm/arm.c (arm_select_cc_mode): Detect when we should 9841 return CC_RSBmode. 9842 (maybe_get_arm_condition_code): Handle CC_RSBmode. 9843 * config/arm/arm.md (subsi3_carryin): Make this pattern available to 9844 expand. 9845 (subdi3): Rewrite to early-expand the sub-operations. 9846 (rsb_im_compare): New pattern. 9847 (negdi2): Delete. 9848 (negdi2_insn): Delete. 9849 (arm_negsi2): Correct type attribute to alu_imm. 9850 (negsi2_0compare): New insn pattern. 9851 (negsi2_carryin): New insn pattern. 9852 98532019-10-18 Richard Earnshaw <rearnsha@arm.com> 9854 9855 * config/arm/arm.md (addsi3_carryin_alt2): Use arm_not_operand for 9856 operand 2. 9857 98582019-10-18 Richard Earnshaw <rearnsha@arm.com> 9859 9860 * config/arm/arm.md (addsi3_carryin_shift_<optab>): Reorder operands 9861 to match canonical form. 9862 98632019-10-18 Richard Earnshaw <rearnsha@arm.com> 9864 9865 * config/arm/arm.md (zero_extend<mode>di2): Convert to define_expand. 9866 (extend<mode>di2): Likewise. 9867 98682019-10-18 Richard Earnshaw <rearnsha@arm.com> 9869 9870 * config/arm/arm-protos.h (arm_decompose_di_binop): New prototype. 9871 * config/arm/arm.c (arm_decompose_di_binop): New function. 9872 * config/arm/arm.md (adddi3): Also accept any const_int for op2. 9873 If not generating Thumb-1 code, decompose the operation into 32-bit 9874 pieces. 9875 * add0si_carryin_<optab>: New pattern. 9876 98772019-10-18 Richard Earnshaw <rearnsha@arm.com> 9878 9879 * arm.md (adddi3): Only accept register operands. 9880 (arm_adddi3): Convert to simple insn with no split. Do not accept 9881 constants. 9882 (adddi_sesidi_di): Delete patern. 9883 (adddi_zesidi_di): Likewise. 9884 (uaddv<mode>4): Use LTU as condition for branch. 9885 (adddi3_compareV): Convert to simple insn with no split. 9886 (addsi3_compareV_upper): Delete pattern. 9887 (adddi3_compareC): Convert to simple insn with no split. Correct 9888 flags setting expression. 9889 (addsi3_compareC_upper): Delete pattern. 9890 (addsi3_compareC): Correct flags setting expression. 9891 (subdi3_compare1): Convert to simple insn with no split. 9892 (subsi3_carryin_compare): Delete pattern. 9893 (arm_subdi3): Convert to simple insn with no split. 9894 (subdi_zesidi): Delete pattern. 9895 (subdi_di_sesidi): Delete pattern. 9896 (subdi_zesidi_di): Delete pattern. 9897 (subdi_sesidi_di): Delete pattern. 9898 (subdi_zesidi_zesidi): Delete pattern. 9899 (negvdi3): Use s_register_operand. 9900 (negdi2_compare): Convert to simple insn with no split. 9901 (negdi2_insn): Likewise. 9902 (negsi2_carryin_compare): Delete pattern. 9903 (negdi_zero_extendsidi): Delete pattern. 9904 (arm_cmpdi_insn): Convert to simple insn with no split. 9905 (negdi2): Don't call gen_negdi2_neon. 9906 * config/arm/neon.md (adddi3_neon): Delete pattern. 9907 (subdi3_neon): Delete pattern. 9908 (negdi2_neon): Delete pattern. 9909 (splits for negdi2_neon): Delete splits. 9910 99112019-10-18 Jakub Jelinek <jakub@redhat.com> 9912 9913 PR middle-end/92153 9914 * ggc-page.c (release_pages): Read g->alloc_size before free rather 9915 than after it. 9916 99172019-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com> 9918 9919 * config/arm/t-multilib: Add rule to regenerate mutlilib header file 9920 with any change to t-multilib, t-aprofile and t-rmprofile. Also add 9921 new multilib variants and new mappings. 9922 99232019-10-18 Georg-Johann Lay <avr@gjlay.de> 9924 9925 PR target/86040 9926 * config/avr/avr.c (avr_out_lpm): Do not shortcut-return. 9927 99282019-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 9929 Richard Sandiford <richard.sandiford@arm.com> 9930 9931 PR target/86753 9932 * tree-vectorizer.h (scalar_cond_masked_key): New struct, 9933 and define hashmap traits for it. 9934 (loop_vec_info::scalar_cond_masked_set): New member. 9935 (vect_record_loop_mask): Adjust prototype. 9936 * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree): 9937 Implement method. 9938 * tree-vect-loop.c (vectorizable_reduction): Pass NULL as last arg to 9939 vect_record_loop_mask. 9940 (vectorizable_live_operation): Likewise. 9941 (vect_record_loop_mask): New param scalar_mask. Add entry 9942 cond, loop_mask to scalar_cond_masked_set if scalar_mask is non NULL. 9943 * tree-vect-stmts.c (check_load_store_masking): New param scalar_mask. 9944 Pass it as last arg to vect_record_loop_mask. 9945 (vectorizable_call): Pass scalar_mask as last arg to 9946 vect_record_loop_mask. 9947 (vectorizable_store): Likewise. 9948 (vectorizable_load): Likewise. 9949 (vectorizable_condition): Check if another part of vectorized code 9950 applies loop_mask to condition or to it's inverse, and if yes, 9951 apply loop_mask to result of vector comparison. 9952 99532019-10-17 John David Anglin <danglin@gcc.gnu.org> 9954 9955 * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change. 9956 99572019-10-18 Jakub Jelinek <jakub@redhat.com> 9958 9959 PR tree-optimization/92056 9960 * tree-ssa-strlen.c (determine_min_objsize): Call init_object_sizes 9961 before calling compute_builtin_object_size. 9962 99632019-10-17 Iain Sandoe <iain@sandoe.co.uk> 9964 9965 PR target/65342 9966 * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete. 9967 (movdi_low_st): Delete. 9968 * config/rs6000/rs6000.c 9969 (darwin_rs6000_legitimate_lo_sum_const_p): New. 9970 (mem_operand_gpr): Validate Mach-O LO_SUM cases separately. 9971 * config/rs6000/rs6000.md (movsi_low): Delete. 9972 99732019-10-17 Jason Merrill <jason@redhat.com> 9974 9975 * gimplify.h (get_initialized_tmp_var): Add default argument to 9976 post_p. 9977 * gimplify.c (gimplify_self_mod_expr, gimplify_omp_atomic): Remove 9978 NULL post_p argument. 9979 * targhooks (std_gimplify_va_arg_expr): Likewise. 9980 99812019-10-17 Richard Biener <rguenther@suse.de> 9982 9983 * tree-vectorizer.h (_stmt_vec_info::cond_reduc_code): Remove. 9984 (STMT_VINFO_VEC_COND_REDUC_CODE): Likewise. 9985 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not 9986 initialize STMT_VINFO_VEC_COND_REDUC_CODE. 9987 * tree-vect-loop.c (vect_is_simple_reduction): Set 9988 STMT_VINFO_REDUC_CODE. 9989 (vectorizable_reduction): Remove dead and redundant code, use 9990 STMT_VINFO_REDUC_CODE instead of STMT_VINFO_VEC_COND_REDUC_CODE. 9991 99922019-10-17 Georg-Johann Lay <avr@gjlay.de> 9993 9994 Fix breakage introduced by r276985. 9995 9996 * config/avr/avr.c (avr_option_override): Remove set of 9997 PARAM_ALLOW_STORE_DATA_RACES. 9998 * common/config/avr/avr-common.c (avr_option_optimization_table) 9999 [OPT_LEVELS_ALL]: Turn on -fallow-store-data-races. 10000 100012019-10-17 H.J. Lu <hongjiu.lu@intel.com> 10002 10003 * config/i386/i386.h (processor_costs): Add clear_ratio. 10004 (CLEAR_RATIO): Remove MIN and use ix86_cost->clear_ratio. 10005 * config/i386/x86-tune-costs.h: Set clear_ratio to the minimum 10006 of 6 and move_ratio in all cost models. 10007 100082019-10-17 Richard Biener <rguenther@suse.de> 10009 10010 * tree-vect-loop.c (check_reduction_path): Compute reduction 10011 operation here. 10012 (vect_is_simple_reduction): Remove special-case of single-stmt 10013 reduction path detection. 10014 100152019-10-17 Richard Earnshaw <rearnsha@arm.com> 10016 10017 * config/arm/arm-cpus.in (marvel-pj4): Add +fp to the architecture. 10018 100192019-10-17 Yuliang Wang <yuliang.wang@arm.com> 10020 10021 * config/aarch64/aarch64-sve2.md (aarch64_sve2_eor3<mode>) 10022 (aarch64_sve2_nor<mode>, aarch64_sve2_nand<mode>) 10023 (aarch64_sve2_bsl<mode>, aarch64_sve2_nbsl<mode>) 10024 (aarch64_sve2_bsl1n<mode>, aarch64_sve2_bsl2n<mode>): 10025 New combine patterns. 10026 * config/aarch64/iterators.md (BSL_DUP): New int iterator for the 10027 above. 10028 (bsl_1st, bsl_2nd, bsl_dup, bsl_mov): Attributes for the above. 10029 100302019-10-17 Aldy Hernandez <aldyh@redhat.com> 10031 10032 * tree-vrp.c (value_range_base::dump): Display +INF for both 10033 pointers and integers when appropriate. 10034 100352019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 10036 10037 * tree-vect-loop.c (vect_analyze_loop_2): Use same condition to decide 10038 when to use versioning threshold. 10039 100402019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 10041 10042 * tree-vect-loop.c (determine_peel_for_niter): New function contained 10043 outlined code from ... 10044 (vect_analyze_loop_2): ... here. 10045 100462019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com> 10047 10048 * tree-vect-loop.c (vect_transform_loop): Move code from here... 10049 * tree-vect-loop-manip.c (vect_loop_versioning): ... to here. 10050 * tree-vectorizer.h (vect_loop_versioning): Remove unused parameters. 10051 100522019-10-17 Richard Biener <rguenther@suse.de> 10053 10054 * tree-vect-loop.c (needs_fold_left_reduction_p): Export. 10055 (vect_is_simple_reduction): Move all validity checks ... 10056 (vectorizable_reduction): ... here. Compute whether we 10057 need a fold-left reduction here. 10058 * tree-vect-patterns.c (vect_reassociating_reduction_p): Merge 10059 both overloads, check needs_fold_left_reduction_p directly. 10060 * tree-vectorizer.h (needs_fold_left_reduction_p): Declare. 10061 100622019-10-17 Richard Biener <rguenther@suse.de> 10063 10064 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Fix 10065 TARGET_MEM_REF creation. 10066 100672019-10-17 Richard Biener <rguenther@suse.de> 10068 10069 PR tree-optimization/92129 10070 * tree-vect-loop.c (vectorizable_reduction): Also fail 10071 on GIMPLE_SINGLE_RHS. 10072 100732019-10-17 Jakub Jelinek <jakub@redhat.com> 10074 10075 PR tree-optimization/92056 10076 * tree-object-size.c (cond_expr_object_size): Return early if then_ 10077 processing resulted in unknown size. 10078 10079 PR tree-optimization/92115 10080 * tree-ssa-ifcombine.c (ifcombine_ifandif): Force condition into 10081 temporary if it could trap. 10082 100832019-10-17 Richard Biener <rguenther@suse.de> 10084 10085 PR debug/91887 10086 * dwarf2out.c (gen_formal_parameter_die): Also try to match 10087 context_die against a DW_TAG_GNU_formal_parameter_pack parent. 10088 100892019-10-16 Jakub Jelinek <jakub@redhat.com> 10090 10091 * tree-ssa-strlen.c (maybe_invalidate): Use 10092 HOST_WIDE_INT_PRINT_UNSIGNED instead of "%zu". 10093 100942019-10-16 Andrew Burgess <andrew.burgess@embecosm.com> 10095 Jim Wilson <jimw@sifive.com> 10096 10097 * config/riscv/riscv.h (REG_CLASS_CONTENTS): Add argument passing 10098 regs to SIBCALL_REGS. 10099 * config/riscv/riscv.c (riscv_regno_to_class): Change argument 10100 passing regs to SIBCALL_REGS. 10101 101022019-10-16 Martin Sebor <msebor@redhat.com> 10103 10104 PR tree-optimization/83821 10105 * tree-ssa-strlen.c (maybe_invalidate): Add argument. Consider 10106 the length of a string when available. 10107 (handle_builtin_memset) Add argument. 10108 (handle_store, strlen_check_and_optimize_call): Same. 10109 (check_and_optimize_stmt): Same. Pass it to callees. 10110 101112019-10-16 Martin Sebor <msebor@redhat.com> 10112 10113 PR tree-optimization/91996 10114 * tree-ssa-strlen.c (maybe_warn_pointless_strcmp): Improve location 10115 information. 10116 (compare_nonzero_chars): Add an overload. 10117 (count_nonzero_bytes): Add an argument. Call overload above. 10118 Handle non-constant lengths in some range. 10119 (handle_store): Add an argument. 10120 (check_and_optimize_stmt): Pass an argument to handle_store. 10121 101222019-10-16 Richard Earnshaw <rearnsha@arm.com> 10123 10124 * config/arm/arm.c (neon_valid_immediate): Clear bytes before use. 10125 101262019-10-16 Mihailo Stojanovic <mistojanovic@wavecomp.com> 10127 10128 * config/mips/mips.c (mips_expand_builtin_insn): Force the 10129 operands which correspond to the same input-output register to 10130 have the same pseudo assigned to them. 10131 101322019-10-16 Ilya Leoshkevich <iii@linux.ibm.com> 10133 10134 * cfgrtl.c (find_partition_fixes): Remove bbs_in_cold_partition. 10135 101362019-10-16 Wilco Dijkstra <wdijkstr@arm.com> 10137 10138 * config/aarch64/aarch64.c (aarch64_classify_symbol): 10139 Apply reasonable limit to symbol offsets. 10140 101412019-10-16 Richard Biener <rguenther@suse.de> 10142 10143 * tree-vect-loop.c (vect_valid_reduction_input_p): Remove. 10144 (vect_is_simple_reduction): Delay checking to 10145 vectorizable_reduction and relax the checking. 10146 (vectorizable_reduction): Check we have a simple use. Check 10147 for bogus condition reductions. 10148 * tree-vect-stmts.c (vect_transform_stmt): Make sure we 10149 are looking at the last stmt in a pattern sequence when 10150 filling in backedge PHI values. 10151 101522019-10-16 Peter Bergner <bergner@linux.ibm.com> 10153 Jiufu Guo <guojiufu@linux.ibm.com> 10154 10155 PR target/70010 10156 * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if 10157 the callee explicitly disables some isa_flags the caller is using. 10158 101592019-10-16 Richard Sandiford <richard.sandiford@arm.com> 10160 10161 * function-abi.cc (expr_callee_abi): Assert for POINTER_TYPE_P. 10162 101632019-10-16 Richard Sandiford <richard.sandiford@arm.com> 10164 10165 * genmodes.c (mode_data::order): New field. 10166 (blank_mode): Update accordingly. 10167 (VECTOR_MODES_WITH_PREFIX): Add an order parameter. 10168 (make_vector_modes): Likewise. 10169 (VECTOR_MODES): Update use accordingly. 10170 (cmp_modes): Sort by the new order field ahead of sorting by size. 10171 * config/aarch64/aarch64-modes.def (VNx2QI, VN2xHI, VNx2SI) 10172 (VNx4QI, VNx4HI, VNx8QI): New partial vector modes. 10173 * config/aarch64/aarch64.c (VEC_PARTIAL): New flag value. 10174 (aarch64_classify_vector_mode): Handle the new partial modes. 10175 (aarch64_vl_bytes): New function. 10176 (aarch64_hard_regno_nregs): Use it instead of BYTES_PER_SVE_VECTOR 10177 when counting the number of registers in an SVE mode. 10178 (aarch64_class_max_nregs): Likewise. 10179 (aarch64_hard_regno_mode_ok): Don't allow partial vectors 10180 in registers yet. 10181 (aarch64_classify_address): Treat partial vectors analogously 10182 to full vectors. 10183 (aarch64_print_address_internal): Consolidate the printing of 10184 MUL VL addresses, using aarch64_vl_bytes as the number of 10185 bytes represented by "VL". 10186 (aarch64_vector_mode_supported_p): Reject partial vector modes. 10187 101882019-10-16 Richard Sandiford <richard.sandiford@arm.com> 10189 10190 * config/aarch64/aarch64.c (aarch64_layout_frame): Use is_constant 10191 rather than known_lt when choosing frame layouts. 10192 101932019-10-16 Richard Sandiford <richard.sandiford@arm.com> 10194 10195 * config/aarch64/aarch64.c (aarch64_layout_frame): Assert 10196 that all the adjustments add up to the full frame size. 10197 Use crtl->outgoing_args_size directly as the final adjustment 10198 where appropriate. 10199 102002019-10-16 Richard Sandiford <richard.sandiford@arm.com> 10201 10202 * config/aarch64/aarch64.c (aarch64_layout_frame): Use a local 10203 "frame" reference instead of always referring directly to 10204 "cfun->machine->frame". 10205 102062019-10-16 Richard Biener <rguenther@suse.de> 10207 10208 PR tree-optimization/92119 10209 * tree-vect-patterns.c (vect_recog_rotate_pattern): Guard 10210 against missing bswap lhs. 10211 102122019-10-16 Richard Sandiford <richard.sandiford@arm.com> 10213 10214 PR middle-end/92033 10215 * poly-int.h (constant_lower_bound_with_limit): New function. 10216 (constant_upper_bound_with_limit): Likewise. 10217 * doc/poly-int.texi: Document them. 10218 * tree-vrp.c (value_range_base::set): Convert POLY_INT_CST bounds 10219 into the worst-case INTEGER_CST bounds. 10220 102212019-10-16 Feng Xue <fxue@os.amperecomputing.com> 10222 10223 PR ipa/91088 10224 * doc/invoke.texi (ipa-max-param-expr-ops): Document new option. 10225 * params.def (PARAM_IPA_MAX_PARAM_EXPR_OPS): New. 10226 * ipa-predicat.h (struct expr_eval_op): New struct. 10227 (expr_eval_ops): New typedef. 10228 (struct condition): Add type and param_ops fields, remove size field. 10229 (add_condition): Replace size parameter with type parameter, add 10230 param_ops parameter. 10231 * ipa-predicat.c (expr_eval_ops_equal_p): New function. 10232 (predicate::add_clause): Add comparisons on type and param_ops. 10233 (dump_condition): Add debug dump for param_ops. 10234 (remap_after_inlining): Adjust call arguments to add_condition. 10235 (add_condition): Replace size parameter with type parameter, add 10236 param_ops parameter. Unshare constant value used in conditions. 10237 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Fold 10238 parameter expressions using param_ops. 10239 (decompose_param_expr): New function. 10240 (set_cond_stmt_execution_predicate): Use call to decompose_param_expr 10241 to replace call to unmodified_parm_or_parm_agg_item. 10242 (set_switch_stmt_execution_predicate): Likewise. 10243 (will_be_nonconstant_expr_predicate): Likewise. Replace usage of size 10244 with type. 10245 (inline_read_section): Read param_ops from summary stream. 10246 (ipa_fn_summary_write): Write param_ops to summary stream. 10247 102482019-10-15 Segher Boessenkool <segher@kernel.crashing.org> 10249 10250 PR rtl-optimization/92107 10251 * genattrtab.c (write_attr_value) <do_operator>: Parenthesize the 10252 expression written. 10253 102542019-10-15 Iain Sandoe <iain@sandoe.co.uk> 10255 10256 * config/darwin.c: Update description of fix and continue. 10257 102582019-10-15 Iain Sandoe <iain@sandoe.co.uk> 10259 10260 * config/darwin.c (darwin_binds_local_p): Update to call 10261 default_binds_local_p_3 () directly. amend comments. 10262 102632019-10-15 Richard Biener <rguenther@suse.de> 10264 10265 * lto-streamer-out.c (lto_variably_modified_type_p): New. 10266 (tree_is_indexable): Use it. 10267 * tree-streamer-out.c (pack_ts_type_common_value_fields): 10268 Stream variably_modified_type_p as TYPE_LANG_FLAG_0. 10269 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise. 10270 102712019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> 10272 10273 * config/msp430/msp430.md (zero_extendqipsi2): New. 10274 (zero_extendqisi2): Optimize case where src register and base dst 10275 register are the same. 10276 (zero_extendhipsi2): Don't use 430X insn for rYs->r case. 10277 (zero_extendpsisi2): Optimize r->m case. 10278 Add unnamed insn patterns to catch insns combine searches for when 10279 optimizing pointer manipulation. 10280 102812019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> 10282 10283 * config/msp430/msp430.md: Group zero_extend* insns together. 10284 102852019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> 10286 10287 * config/msp430/constraints.md: Allow post_inc operand for "Ya" 10288 constraint. 10289 * config/msp430/msp430.c (msp430_legitimate_address_p): Handle 10290 POST_INC. 10291 (msp430_subreg): Likewise. 10292 (msp430_split_addsi): Likewise. 10293 (msp430_print_operand_addr): Likewise. 10294 * config/msp430/msp430.h (HAVE_POST_INCREMENT): Define. 10295 (USE_STORE_POST_INCREMENT): Define. 10296 * config/msp430/msp430.md: Use the msp430_general_dst_operand or 10297 msp430_general_dst_nonv_operand predicates for the lvalues of insns. 10298 * config/msp430/predicates.md (msp430_nonpostinc_operand): New. 10299 (msp430_general_dst_operand): New. 10300 (msp430_general_dst_nonv_operand): New. 10301 (msp430_nonsubreg_operand): Remove. 10302 (msp430_nonsubreg_dst_operand): New. 10303 (msp430_nonsubreg_or_imm_operand): Allow reg or mem operands in place 10304 of defunct msp430_nonsubreg_operand. 10305 (msp430_nonsubregnonpostinc_or_imm_operand): New. 10306 103072019-10-15 Richard Biener <rguenther@suse.de> 10308 10309 PR tree-optimization/91929 10310 * tree-ssa-pre.c (pre_expr_d::loc): New member. 10311 (get_or_alloc_expr_for_name): Initialize it. 10312 (get_or_alloc_expr_for_constant): Likewise. 10313 (phi_translate_1): Copy it. 10314 (create_expression_by_pieces): Use the original location 10315 of the expression for the inserted stmt. 10316 (compute_avail): Record the location of the stmt for the 10317 expressions created. 10318 103192019-10-15 Richard Sandiford <richard.sandiford@arm.com> 10320 10321 * tree-ssa-strlen.c (count_nonzero_bytes): Check tree_fits_uhwi_p 10322 before using tree_to_uhwi. 10323 103242019-10-15 Ilya Leoshkevich <iii@linux.ibm.com> 10325 10326 * config/s390/s390.md: Run %a0:DI splitters only after reload. 10327 103282019-10-15 Richard Biener <rguenther@suse.de> 10329 10330 PR tree-optimization/92094 10331 * tree-vect-loop.c (vectorizable_reduction): For nested cycles 10332 do not adjust the reduction definition def type. 10333 * tree-vect-stmts.c (vect_transform_stmt): Verify the scalar stmt 10334 defines the latch argument of the PHI. 10335 103362019-10-15 Hongyu Wang <hongtao.wang@intel.com> 10337 10338 PR target/92035 10339 * config/i386/avx512fintrin.h (_mm_mask_roundscale_ss, 10340 _mm_maskz_roundscale_ss, _mm_maskz_roundscale_round_ss, 10341 _mm_maskz_roundscale_round_ss, _mm_mask_roundscale_sd, 10342 _mm_maskz_roundscale_sd, _mm_mask_roundscale_round_sd, 10343 _mm_maskz_roundscale_round_sd): New intrinsics. 10344 (_mm_roundscale_ss, _mm_roundscale_round_ss): Use 10345 __builtin_ia32_rndscales?_mask_round builtins instead of 10346 __builtin_ia32_rndscales?_round. 10347 * config/i386/i386-builtin.def (__builtin_ia32_rndscaless_round, 10348 __builtin_ia32_rndscalesd_round): Remove. 10349 (__builtin_ia32_rndscaless_mask_round, 10350 __builtin_ia32_rndscalesd_mask_round): New intrinsics. 10351 * config/i386/sse.md 10352 (avx512f_rndscale<mode><round_saeonly_name>): Renamed to ... 10353 (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>): 10354 ... this, adjust and add subst atrributes to make it maskable. 10355 103562019-10-15 Richard Biener <rguenther@suse.de> 10357 10358 PR middle-end/92046 10359 * common.opt (fallow-store-data-races): New. 10360 * params.def (PARAM_ALLOW_STORE_DATA_RACES): Remove. 10361 * params.h (ALLOW_STORE_DATA_RACES): Likewise. 10362 * doc/invoke.texi (fallow-store-data-races): Document. 10363 (--param allow-store-data-races): Remove docs. 10364 * opts.c (default_options_table): Enable -fallow-store-data-races 10365 at -Ofast. 10366 (default_options_optimization): Do not enable --param 10367 allow-store-data-races at -Ofast. 10368 * tree-if-conv.c (ifcvt_memrefs_wont_trap): Use flag_store_data_races 10369 instead of PARAM_ALLOW_STORE_DATA_RACES. 10370 * tree-ssa-loop-im.c (execute_sm): Likewise. 10371 103722019-10-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 10373 10374 PR tree-optimization/92085 10375 * tree-if-conv.c (ifcvt_local_dce): Call gsi_next in else clause, 10376 instead of calling it unconditionally after 10377 delete_dead_or_redundant_assignment and fix indentation. 10378 103792019-10-15 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 10380 10381 * config/arm/vfp.md (fma<SDF:mode>4): Enable DF only when 10382 TARGET_VFP_DOUBLE. 10383 (*fmsub<SDF:mode>4): Likewise. 10384 *fnmsub<SDF:mode>4): Likewise. 10385 (*fnmadd<SDF:mode>4): Likewise. 10386 103872019-10-14 Joel Hutton <Joel.Hutton@arm.com> 10388 10389 * doc/tree-ssa.texi: Update renamed macro name. 10390 103912019-10-14 Mihailo Stojanovic <mistojanovic@wavecomp.com> 10392 10393 * config/mips/mips.c (mips_cannot_force_const_mem): Reject 10394 vector constants. 10395 103962019-10-14 Iain Sandoe <iain@sandoe.co.uk> 10397 10398 * config/darwin.c: Use unsigned ints for the picbase label 10399 counters, initialise the vars explicitly. 10400 (update_pic_label_number_if_needed): Move a variable declaration 10401 to where it's needed. 10402 (machopic_output_function_base_name): Use a more strict checking 10403 assert, and and unsigned int for the picbase label counter. 10404 (machopic_get_function_picbase): Likewise. 10405 104062019-10-14 Richard Biener <rguenther@suse.de> 10407 10408 PR middle-end/92046 10409 * dse.c (scan_insn): Use param max_active_local_stores. 10410 (dse_step1): Get PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and adjust 10411 based on optimization level. 10412 * loop-invariant.c (move_loop_invariants): Adjust 10413 LOOP_INVARIANT_MAX_BBS_IN_LOOP based on optimization level. 10414 * opts.c (default_options_optimization): Do not adjust 10415 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and 10416 LOOP_INVARIANT_MAX_BBS_IN_LOOP here. 10417 104182019-10-14 Wilco Dijkstra <wdijkstr@arm.com> 10419 10420 * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout. 10421 104222019-10-14 Wilco Dijkstra <wdijkstr@arm.com> 10423 10424 * config/arm/arm.c (arm_option_override): Don't override sched 10425 pressure algorithm. 10426 104272019-10-14 Richard Biener <rguenther@suse.de> 10428 10429 PR tree-optimization/92069 10430 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested 10431 cycles do not set vect_nested_cycle on the latch definition. 10432 104332019-10-14 Richard Sandiford <richard.sandiford@arm.com> 10434 10435 * function-abi.h (expr_callee_abi): Declare. 10436 * function-abi.cc (expr_callee_abi): New function. 10437 104382019-10-14 Aldy Hernandez <aldyh@redhat.com> 10439 10440 * tree-vrp.c (value_range_base::set): Normalize unsigned ~[0,0] 10441 into [1,MAX]. 10442 * tree-vrp.h (value_range_base::nonzero_p): Adjust for unsigned 10443 non-zero being represented as [1,MAX]. 10444 104452019-10-14 Xiong Hu Luo <luoxhu@linux.ibm.com> 10446 10447 * tree-sra.c (dump_access): Add missing braces. 10448 104492019-10-13 Iain Sandoe <iain@sandoe.co.uk> 10450 10451 * config/darwin.c (machopic_indirection_name): Rework the 10452 function to emit linker-visible symbols only for indirections 10453 in the data section. Clean up the code and update comments. 10454 104552019-10-13 Iain Sandoe <iain@sandoe.co.uk> 10456 10457 * config/darwin.c (machopic_indirect_data_reference): Remove 10458 redundant code. 10459 104602019-10-13 Nathan Sidwell <nathan@acm.org> 10461 10462 * gengtype-lex.l (CXX_KEYWORD): Add 'mutable'. 10463 104642019-10-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 10465 10466 * doc/sourcebuild.texi (Test Directives, Add Options): Remove 10467 c99_runtime. 10468 104692019-10-12 Jan Hubicka <hubicka@ucw.cz> 10470 10471 * lto-streamer-out.c (collect_block_tree_leafs): Renumber statements 10472 so non-virutal are before virutals. 10473 (output_function): Avoid body modifications. 10474 104752019-10-12 John David Anglin <danglin@gcc.gnu.org> 10476 10477 * config/pa/pa.c (pa_output_call): Load descriptor address to register 10478 %r22. Load function address before global pointer. 10479 (pa_attr_length_indirect_call): Adjust length of inline versions of 10480 $$dyncall. 10481 (pa_output_indirect_call): Remove fast inline version of $$dyncall 10482 before normal cases. Update inline $$dyncall sequences to preserve 10483 function descriptor address in register %r22. 10484 (TRAMPOLINE_CODE_SIZE): Adjust. 10485 (pa_asm_trampoline_template): Revise 32-bit trampoline. Don't assume 10486 register %r22 contains trampoline address. 10487 (pa_trampoline_init): Adjust offsets. 10488 (pa_trampoline_adjust_address): Likewise. 10489 * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size. 10490 104912019-10-12 Iain Sandoe <iain@sandoe.co.uk> 10492 10493 PR target/67183 10494 * config/darwin.c (machopic_indirection): New field to flag 10495 non-lazy-symbol-pointers in the data section. 10496 (machopic_indirection_name): Compute if an indirection should 10497 appear in the data section. 10498 (machopic_output_data_section_indirection): New callback split 10499 from machopic_output_indirection. 10500 (machopic_output_stub_indirection): Likewise. 10501 (machopic_output_indirection): Retain the code for non-lazy 10502 symbol pointers in their regular section. 10503 (machopic_finish): Use the new callbacks to order the indirection 10504 output. 10505 105062019-10-12 Iain Sandoe <iain@sandoe.co.uk> 10507 10508 * config/darwin-protos.h (machopic_finish): Delete. 10509 * config/darwin.c (machopic_finish): Make static. 10510 105112019-10-12 Iain Sandoe <iain@sandoe.co.uk> 10512 10513 * config/darwin.c (darwin_file_end): Only emit empty CTOR/DTOR 10514 sections when building kernel extension code. 10515 105162019-10-12 Palmer Dabbelt <palmer@sifive.com> 10517 10518 * doc/extend.texi (Alternate Keywords): Change "-std=c11" to "a 10519 later standard." 10520 105212019-10-12 John David Anglin <danglin@gcc.gnu.org> 10522 10523 * config/pa/pa.c (pa_option_override): Remove trailing comma 10524 from warning. 10525 105262019-10-12 Jakub Jelinek <jakub@redhat.com> 10527 10528 PR middle-end/92063 10529 * tree-eh.c (operation_could_trap_helper_p) <case COND_EXPR> 10530 <case VEC_COND_EXPR>: Return false with *handled = false. 10531 (tree_could_trap_p): For {,VEC_}COND_EXPR return false instead of 10532 recursing on the first operand. 10533 * fold-const.c (simple_operand_p_2): Use generic_expr_could_trap_p 10534 instead of tree_could_trap_p. 10535 * tree-ssa-sccvn.c (vn_nary_may_trap): Formatting fixes. 10536 105372019-10-11 Jim Wilson <jimw@sifive.com> 10538 10539 PR rtl-optimization/91860 10540 * combine.c (subst): If new_rtx is a constant, also check for 10541 SIGN_EXTEND when deciding whether to call simplify_unary_operation. 10542 105432019-10-11 Richard Sandiford <richard.sandiford@arm.com> 10544 10545 * expr.c (store_expr): Use rtx_to_poly_int64 rather than 10546 INTVAL when calling store_bit_field. 10547 105482019-10-11 Wilco Dijkstra <wdijkstr@arm.com> 10549 10550 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Set when optimizing for 10551 size. 10552 105532019-10-11 Bernd Edlinger <bernd.edlinger@hotmail.de> 10554 10555 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust call to 10556 vectorizable_live_operation. 10557 (vectorizable_live_operation): Adjust parameters. 10558 * tree-vect-stmts.c (vect_init_vector, 10559 vect_gen_widened_results_half): Fix typo in function comment. 10560 (can_vectorize_live_stmts): Adjust function comment. 10561 Adjust parameters. Adjust call to vectorizable_live_operation. 10562 (vect_analyze_stmt): Adjust call to can_vectorize_live_stmts. 10563 (vect_transform_stmt): Adjust function comment. Adjust call to 10564 can_vectorize_live_stmts. 10565 * tree-vectorizer.h (vectorizable_live_operation): Adjust parameters. 10566 105672019-10-11 Richard Biener <rguenther@suse.de> 10568 10569 PR tree-optimization/90883 10570 PR tree-optimization/91091 10571 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use correct 10572 alias-sets both for recording VN table entries and continuing 10573 walking after translating through copies. Handle same-sized 10574 reads from SSA names by returning the plain SSA name. 10575 (eliminate_dom_walker::eliminate_stmt): Properly handle 10576 non-size precision stores in redundant store elimination. 10577 105782019-10-11 Jan Hubicka <hubicka@ucw.cz> 10579 10580 * ggc-page.c (release_pages): Output statistics when !quiet_flag. 10581 (ggc_collect): Dump later to not interfere with release_page dump. 10582 (ggc_trim): New function. 10583 * ggc-none.c (ggc_trim): New. 10584 * ggc.h (ggc_trim): Declare. 10585 105862019-10-11 Richard Biener <rguenther@suse.de> 10587 10588 PR tree-optimization/92066 10589 PR tree-optimization/92046 10590 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 10591 Fix bogus cost model check. 10592 105932019-10-11 Tobias Burnus <tobias@codesourcery.com> 10594 10595 * langhooks-def.h (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Define. 10596 (LANG_HOOKS_DECLS): Add it. 10597 * langhooks.h (lang_hooks_for_decls): Add omp_is_allocatable_or_ptr; 10598 update comment for omp_is_optional_argument. 10599 * omp-general.c (omp_is_allocatable_or_ptr): New. 10600 * omp-general.h (omp_is_allocatable_or_ptr): Declare. 10601 * omp-low.c (scan_sharing_clauses, lower_omp_target): Handle 10602 Fortran's optional arguments and allocatable/pointer scalars 10603 with use_device_addr. 10604 106052019-10-11 Ilya Leoshkevich <iii@linux.ibm.com> 10606 10607 PR target/77918 10608 * config/s390/2827.md: Add new opcodes. 10609 * config/s390/2964.md: Likewise. 10610 * config/s390/3906.md: Likewise. 10611 * config/s390/8561.md: Likewise. 10612 * config/s390/s390-builtins.def (s390_vfchesb): Use 10613 the new vec_cmpgev4sf_quiet_nocc. 10614 (s390_vfchedb): Use the new vec_cmpgev2df_quiet_nocc. 10615 (s390_vfchsb): Use the new vec_cmpgtv4sf_quiet_nocc. 10616 (s390_vfchdb): Use the new vec_cmpgtv2df_quiet_nocc. 10617 (vec_cmplev4sf): Use the new vec_cmplev4sf_quiet_nocc. 10618 (vec_cmplev2df): Use the new vec_cmplev2df_quiet_nocc. 10619 (vec_cmpltv4sf): Use the new vec_cmpltv4sf_quiet_nocc. 10620 (vec_cmpltv2df): Use the new vec_cmpltv2df_quiet_nocc. 10621 * config/s390/s390-modes.def (CCSFPS): New mode. 10622 * config/s390/s390.c (s390_match_ccmode_set): Support CCSFPS. 10623 (s390_select_ccmode): Return CCSFPS for LT, LE, GT, GE and LTGT. 10624 (s390_branch_condition_mask): Reuse CCS for CCSFPS. 10625 (s390_expand_vec_compare): Use non-signaling patterns where 10626 necessary. 10627 (s390_reverse_condition): Support CCSFPS. 10628 * config/s390/s390.md (*cmp<mode>_ccsfps): New pattern. 10629 * config/s390/vector.md: (VFCMP_HW_OP): Remove. 10630 (asm_fcmp_op): Likewise. 10631 (*smaxv2df3_vx): Use pattern for quiet comparison. 10632 (*sminv2df3_vx): Likewise. 10633 (*vec_cmp<VFCMP_HW_OP:code><mode>_nocc): Remove. 10634 (*vec_cmpeq<mode>_quiet_nocc): New pattern. 10635 (vec_cmpgt<mode>_quiet_nocc): Likewise. 10636 (vec_cmplt<mode>_quiet_nocc): New expander. 10637 (vec_cmpge<mode>_quiet_nocc): New pattern. 10638 (vec_cmple<mode>_quiet_nocc): New expander. 10639 (*vec_cmpeq<mode>_signaling_nocc): New pattern. 10640 (*vec_cmpgt<mode>_signaling_nocc): Likewise. 10641 (*vec_cmpgt<mode>_signaling_finite_nocc): Likewise. 10642 (*vec_cmpge<mode>_signaling_nocc): Likewise. 10643 (*vec_cmpge<mode>_signaling_finite_nocc): Likewise. 10644 (vec_cmpungt<mode>): New expander. 10645 (vec_cmpunge<mode>): Likewise. 10646 (vec_cmpuneq<mode>): Use quiet patterns. 10647 (vec_cmpltgt<mode>): Allow only on z14+. 10648 (vec_cmpordered<mode>): Use quiet patterns. 10649 (vec_cmpunordered<mode>): Likewise. 10650 (VEC_CMP_EXPAND): Add ungt and unge. 10651 106522019-10-11 Jan Hubicka <hubicka@ucw.cz> 10653 10654 * gimple-streamer-out.c (output_gimple_stmt): Add explicit function 10655 parameter. 10656 * lto-streamer-out.c: Include tree-dfa.h. 10657 (output_cfg): Do not use cfun. 10658 (lto_prepare_function_for_streaming): New. 10659 (output_function): Do not push cfun; do not initialize loop optimizer. 10660 * lto-streamer.h (lto_prepare_function_for_streaming): Declare. 10661 * passes.c (ipa_write_summaries): Use it. 10662 (ipa_write_optimization_summaries): Do not modify bodies. 10663 * tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter. 10664 * tree.dfa.h (renumber_gimple_stmt_uids): Update prototype. 10665 * tree-ssa-dse.c (pass_dse::execute): Update use of 10666 renumber_gimple_stmt_uids. 10667 * tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise. 10668 106692019-10-11 Kewen Lin <linkw@gcc.gnu.org> 10670 10671 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower 10672 vec_promote_demote cost to 1 for non-Power7 VSX architectures. 10673 106742019-10-10 Joseph Myers <joseph@codesourcery.com> 10675 10676 * ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP 10677 macros. 10678 [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]: 10679 Also define DFP macros for these conditions. 10680 [!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN, 10681 DEC128_SUBNORMAL_MIN): Do not define. 10682 [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L] 10683 (DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros. 10684 106852019-10-10 Xiong Hu Luo <luoxhu@linux.ibm.com> 10686 Sandra Loosemore <sandra@codesourcery.com> 10687 10688 PR middle-end/26241 10689 * doc/lto.texi (IPA): Reference to the IPA passes. 10690 * doc/passes.texi (Pass manager): Add node IPA passes and 10691 description for each IPA pass. 10692 106932019-10-10 Jan Hubicka <hubicka@ucw.cz> 10694 10695 * ipa-reference.c: Do not include splay-tree.h 10696 (reference_vars_to_consider): Turn to hash map. 10697 (get_static_name, ipa_init, analyze_function, propagate, 10698 stream_out_bitmap, ipa_reference_write_optimization_summary, 10699 ipa_reference_write_optimization_summary): Update. 10700 107012019-10-10 Jan Hubicka <hubicka@ucw.cz> 10702 10703 * ipa-reference.c (propagate): Fix releasing of IPA summaries. 10704 107052019-10-10 Iain Sandoe <iain@sandoe.co.uk> 10706 10707 * config/darwin.c: Lookup Objective C metadata and force indirection 10708 for IVAR refs. 10709 107102019-10-10 Michael Meissner <meissner@linux.ibm.com> 10711 10712 * config/rs6000/rs6000.c (quad_address_p): Add check for prefixed 10713 addresses. 10714 (mem_operand_gpr): Add check for prefixed addresses. 10715 (mem_operand_ds_form): Add check for prefixed addresses. 10716 (rs6000_legitimate_offset_address_p): If we support prefixed 10717 addresses, check for a 34-bit offset instead of 16-bit. 10718 (rs6000_legitimate_address_p): Add check for prefixed addresses. 10719 Do not allow load/store with update if the address is prefixed. 10720 (rs6000_mode_dependent_address): If we support prefixed 10721 addresses, check for a 34-bit offset instead of 16-bit. 10722 107232019-10-10 Ilya Leoshkevich <iii@linux.ibm.com> 10724 10725 PR target/77918 10726 * config/s390/vector.md (vcond_comparison_operator): New 10727 predicate. 10728 (vcond<V_HW:mode><V_HW2:mode>): Use vcond_comparison_operator. 10729 107302019-10-10 David Malcolm <dmalcolm@redhat.com> 10731 10732 PR 87488 10733 * Makefile.in (CFLAGS-opts.o): Pass in DOCUMENTATION_ROOT_URL via 10734 -D. 10735 * configure.ac (--with-documentation-root-url): New option. 10736 * configure: Regenerate. 10737 * diagnostic-format-json.cc (json_end_diagnostic): If there is an 10738 option URL, add it as a new string field of the diagnostic option. 10739 * diagnostic.c (diagnostic_initialize): Initialize get_option_url. 10740 (print_option_information): If get_option_url is non-NULL, call 10741 it, and if the result is non-NULL, potentially emit an escape 10742 sequence to markup the option text with the resulting URL. 10743 * diagnostic.h (diagnostic_context::get_option_url): New callback. 10744 * doc/invoke.texi (-fdiagnostics-format=): Add "option_url" to 10745 example of JSON output. 10746 * opts-diagnostic.h (get_option_url): New decl. 10747 * opts.c (get_option_url): New function. 10748 * toplev.c (general_init): Initialize the get_option_url callback. 10749 107502019-10-10 David Malcolm <dmalcolm@redhat.com> 10751 10752 PR 87488 10753 * common.opt (fdiagnostics-urls=): New option. 10754 (diagnostic-url.h): Add SourceInclude. 10755 (diagnostic_url_rule): New enum. 10756 * diagnostic-color.c: Include "diagnostic-url.h". 10757 (diagnostic_urls_enabled_p): New function. 10758 * diagnostic-url.h: New file. 10759 * diagnostic.c: Include "diagnostic-url.h". 10760 (diagnostic_urls_init): New function. 10761 * diagnostic.h (diagnostic_urls_init): New decl. 10762 * doc/invoke.texi (Diagnostic Message Formatting Options): Add 10763 -fdiagnostics-urls to the list. 10764 (-fdiagnostics-urls): New option. 10765 * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_urls_. 10766 (driver::global_initializations): Call diagnostic_urls_init. 10767 * opts-global.c (init_options_once): Likewise. 10768 * opts.c (common_handle_option): Handle OPT_fdiagnostics_urls_. 10769 * pretty-print.c (pretty_printer::pretty_printer): Initialize 10770 show_urls. 10771 (pp_begin_url): New function. 10772 (pp_end_url): New function. 10773 (selftest::test_urls): New selftest. 10774 (selftest::pretty_print_c_tests): Call it. 10775 * pretty-print.h (pretty_printer::show_urls): New field. 10776 (pp_begin_url): New decl. 10777 (pp_end_url): New decl. 10778 107792019-10-10 Uroš Bizjak <ubizjak@gmail.com> 10780 10781 PR target/92022 10782 * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN. 10783 107842019-10-10 Oleg Endo <olegendo@gcc.gnu.org> 10785 10786 PR target/88630 10787 * config/sh/sh.h (TARGET_FPU_SH4_300): New macro. 10788 * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns 10789 also for TARGET_FPU_SH4_300. 10790 (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of 10791 TARGET_SH4_300. 10792 * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition. 10793 (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr. 10794 (*negsf2_i): Split into ... 10795 (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns. 10796 (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc. 10797 (**abssf2_i): Split into ... 10798 (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns. 10799 (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr. 10800 (*negdf2_i): Split into ... 10801 (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns. 10802 (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc. 10803 (**abssf2_i): Split into ... 10804 (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns. 10805 108062019-10-10 Richard Biener <rguenther@suse.de> 10807 10808 PR middle-end/92046 10809 * opts.c (finish_options): Do not influence global --params 10810 from options that are adjustable per function. 10811 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 10812 Apply --param adjustment based on active cost-model. 10813 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Disable 10814 further store-sinking when vectorization or if-conversion 10815 are not enabled. 10816 108172019-10-10 Jan Hubicka <hubicka@ucw.cz> 10818 10819 PR middle-end/92037 10820 * cgraph.c (symbol_table_test::symbol_table_test): Use ggc_alloc 10821 rather than ggc_alloc_cleared to alloc symbol table. 10822 * toplev.c (general_init): Likewise. 10823 * cgraph.h (symbol_table): Explicitly construct every field. 10824 108252019-10-10 Andreas Krebbel <krebbel@linux.ibm.com> 10826 10827 * common/config/s390/s390-common.c (PF_ARCH13): Rename to... 10828 (PF_Z15): ... this. 10829 * config.gcc: Add z15 as option for --with-arch and --with-tune 10830 configure switches. 10831 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add 10832 error reporting for unsupported builtins. 10833 * config/s390/s390-opts.h (enum processor_type): Rename 10834 PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15. 10835 * config/s390/8561.md: Rename arch13 to z15 throughout the file. 10836 * config/s390/driver-native.c (s390_host_detect_local_cpu): 10837 Likewise. 10838 * config/s390/s390-builtins.def: Likewise. 10839 * config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative. 10840 (s390_expand_builtin): Add missing check for unsupported builtins. 10841 (s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15. 10842 (s390_rtx_costs): Likewise. 10843 (s390_get_sched_attrmask): Rename arch13 to z15. 10844 (s390_get_unit_mask): Likewise. 10845 (s390_is_fpd): Likewise. 10846 (s390_is_fxd): Likewise. 10847 * config/s390/s390.h (enum processor_flags): Likewise. 10848 * config/s390/s390.md: Likewise. 10849 * config/s390/vector.md: Likewise. 10850 * config/s390/vx-builtins.md: Likewise. 10851 * config/s390/s390.opt: Add z15 to processor_type value. 10852 108532019-10-10 Andreas Krebbel <krebbel@linux.ibm.com> 10854 10855 PR target/91035 10856 * config/s390/s390-protos.h (s390_output_split_stack_data): Add 10857 prototype. 10858 * config/s390/s390.md (UNSPECV_SPLIT_STACK_DATA): Remove. 10859 ("split_stack_data", "split_stack_call") 10860 ("split_stack_call_<mode>", "split_stack_cond_call") 10861 ("split_stack_cond_call_<mode>"): Remove. 10862 ("@split_stack_call<mode>", "@split_stack_cond_call<mode>"): New 10863 insn definition. 10864 * config/s390/s390.c (s390_output_split_stack_data): New function. 10865 (s390_expand_split_stack_prologue): Use the merged expander. 10866 108672019-10-09 Martin Sebor <msebor@redhat.com> 10868 10869 PR tree-optimization/90879 10870 * builtins.c (check_access): Avoid using maxbound when null. 10871 * calls.c (maybe_warn_nonstring_arg): Adjust to get_range_strlen change. 10872 * doc/invoke.texi (-Wstring-compare): Document new warning option. 10873 * gimple-fold.c (get_range_strlen_tree): Make setting maxbound 10874 conditional. 10875 (get_range_strlen): Overwrite initial maxbound when non-null. 10876 * gimple-ssa-sprintf.c (get_string_length): Adjust to get_range_strlen 10877 changes. 10878 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same. 10879 (used_only_for_zero_equality): New function. 10880 (handle_builtin_memcmp): Call it. 10881 (determine_min_objsize): Return an integer instead of tree. 10882 (get_len_or_size, strxcmp_eqz_result): New functions. 10883 (maybe_warn_pointless_strcmp): New function. 10884 (handle_builtin_string_cmp): Call it. Fold zero-equality of strcmp 10885 between a longer string and a smaller array. 10886 (get_range_strlen_dynamic): Overwrite initial maxbound when non-null. 10887 108882019-10-09 Iain Sandoe <iain@sandoe.co.uk> 10889 10890 * config/darwin.c (darwin_override_options): Make the check for 10891 Objective-C ABI version more specific for 64bit code. 10892 108932019-10-09 Iain Sandoe <iain@sandoe.co.uk> 10894 10895 * config/darwin.c (machopic_indirect_data_reference): Set flag to 10896 indicate that the new symbol is an indirection. 10897 (machopic_indirect_call_target): Likewise. 10898 * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New. 10899 (MACHO_SYMBOL_INDIRECTION_P): New. 10900 (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number. 10901 109022019-10-08 Jason Merrill <jason@redhat.com> 10903 10904 * doc/invoke.texi: Document -fconcepts-ts. 10905 109062019-10-09 Richard Biener <rguenther@suse.de> 10907 10908 * tree-vect-loop.c (vect_is_simple_reduction): Simplify and 10909 allow stmts other than GIMPLE_ASSIGN in nested cycles. 10910 109112019-10-08 Richard Biener <rguenther@suse.de> 10912 10913 * tree-vectorizer.h (_stmt_vec_info::reduc_vectype_in): New. 10914 (_stmt_vec_info::force_single_cycle): Likewise. 10915 (STMT_VINFO_FORCE_SINGLE_CYCLE): New. 10916 (STMT_VINFO_REDUC_VECTYPE_IN): Likewise. 10917 * tree-vect-loop.c (vectorizable_reduction): Set 10918 STMT_VINFO_REDUC_VECTYPE_IN and STMT_VINFO_FORCE_SINGLE_CYCLE. 10919 (vect_transform_reduction): Use them to remove redundant code. 10920 (vect_transform_cycle_phi): Likewise. 10921 109222019-10-08 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com> 10923 10924 PR tree-optimization/90836 10925 * match.pd (popcount): New pattern. 10926 109272019-10-08 Martin Sebor <msebor@redhat.com> 10928 10929 PR middle-end/92026 10930 PR middle-end/92014 10931 * tree-ssa-strlen.c (count_nonzero_bytes): Avoid recursing for MEM_REF 10932 again once nbytes has been set. Set the access size when not yet set. 10933 109342019-10-08 Iain Sandoe <iain@sandoe.co.uk> 10935 10936 * config/darwin.c (machopic_select_section): Remove dead code for 10937 old Objective-C section selection method, replace with unreachable. 10938 109392019-10-08 Iain Sandoe <iain@sandoe.co.uk> 10940 10941 * config/darwin.c (machopic_indirect_data_reference): Check for 10942 required indirections before making direct access to defined 10943 values. 10944 (machopic_output_indirection): Place the indirected pointes for 10945 required indirections into the non-lazy symbol pointers section. 10946 (darwin_encode_section_info): 10947 * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New. 10948 (MACHO_SYMBOL_MUST_INDIRECT_P): New. 10949 109502019-10-08 Uroš Bizjak <ubizjak@gmail.com> 10951 10952 PR target/91994 10953 * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG 10954 instead of ALL_SSE_REG to check if function call preserves some 10955 256-bit SSE registers. 10956 109572019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> 10958 10959 * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and 10960 LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and 10961 MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain. 10962 109632019-10-08 Richard Biener <rguenther@suse.de> 10964 10965 * tree-vectorizer.h (_stmt_vec_info::v_reduc_type): Remove. 10966 (_stmt_vec_info::is_reduc_info): Add. 10967 (STMT_VINFO_VEC_REDUCTION_TYPE): Remove. 10968 (vectorizable_condition): Remove. 10969 (vectorizable_shift): Likewise. 10970 (vectorizable_reduction): Adjust. 10971 (info_for_reduction): New. 10972 * tree-vect-loop.c (vect_force_simple_reduction): Fold into... 10973 (vect_analyze_scalar_cycles_1): ... here. 10974 (vect_analyze_loop_operations): Adjust. 10975 (needs_fold_left_reduction_p): Simplify for single caller. 10976 (vect_is_simple_reduction): Likewise. Remove stmt restriction 10977 for nested cycles not part of double reductions. 10978 (vect_model_reduction_cost): Pass in the reduction type. 10979 (info_for_reduction): New function. 10980 (vect_create_epilog_for_reduction): Use it, access reduction 10981 meta off the stmt info it returns. Use STMT_VINFO_REDUC_TYPE 10982 instead of STMT_VINFO_VEC_REDUCTION_TYPE. 10983 (vectorize_fold_left_reduction): Remove pointless assert. 10984 (vectorizable_reduction): Analyze the full reduction when 10985 visiting the outermost PHI. Simplify. Use STMT_VINFO_REDUC_TYPE 10986 instead of STMT_VINFO_VEC_REDUCTION_TYPE. Direct reduction 10987 stmt code-generation to vectorizable_* in most cases. Verify 10988 code-generation only for cases handled by 10989 vect_transform_reductuon. 10990 (vect_transform_reduction): Use info_for_reduction to get at 10991 reduction meta. Simplify. 10992 (vect_transform_cycle_phi): Likewise. 10993 (vectorizable_live_operation): Likewise. 10994 * tree-vect-patterns.c (vect_reassociating_reduction_p): Look 10995 at the PHI node for STMT_VINFO_REDUC_TYPE. 10996 * tree-vect-slp.c (vect_schedule_slp_instance): Remove no 10997 longer necessary code. 10998 * tree-vect-stmts.c (vectorizable_shift): Make static again. 10999 (vectorizable_condition): Likewise. Get at reduction related 11000 info via info_for_reduction. 11001 (vect_analyze_stmt): Adjust. 11002 (vect_transform_stmt): Likewise. 11003 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize 11004 STMT_VINFO_REDUC_TYPE instead of STMT_VINFO_VEC_REDUCTION_TYPE. 11005 110062019-10-08 Joseph Myers <joseph@codesourcery.com> 11007 11008 * doc/invoke.texi (-ffp-int-builtin-inexact): Document 11009 -fno-fp-int-builtin-inexact default for C2X. 11010 110112019-10-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 11012 Richard Biener <rguenther@suse.de> 11013 11014 PR tree-optimization/91532 11015 * tree-if-conv.c: Include tree-ssa-dse.h. 11016 (ifcvt_local_dce): Change param from bb to loop, 11017 and call dse_classify_store. 11018 (tree_if_conversion): Pass loop instead of loop->header as arg 11019 to ifcvt_local_dce. 11020 * tree-ssa-dse.c: Include tree-ssa-dse.h. 11021 (delete_dead_or_redundant_assignment): Remove static qualifier from 11022 declaration, and add prototype in tree-ssa-dse.h. 11023 (dse_store_status): Move to tree-ssa-dse.h. 11024 (dse_classify_store): Remove static qualifier and add new tree param 11025 stop_at_vuse, and add prototype in tree-ssa-dse.h. 11026 * tree-ssa-dse.h: New header. 11027 110282019-10-07 Iain Sandoe <iain@sandoe.co.uk> 11029 11030 * config/darwin.c (machopic_output_indirection): Don't put 11031 hidden symbol indirections into the .data section, use the 11032 non-lazy symbol pointers section as normal. 11033 (darwin_encode_section_info): Record if a symbol is hidden. 11034 * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New. 11035 (MACHO_SYMBOL_HIDDEN_VIS_P): New. 11036 110372019-10-07 Iain Sandoe <iain@sandoe.co.uk> 11038 11039 * config/darwin.c (machopic_symbol_defined_p): Use symbol flag 11040 predicates instead of accessing bits directly. 11041 (machopic_indirect_call_target): Likewise. 11042 (machopic_output_indirection): Likewise. 11043 (darwin_encode_section_info): Improve description. Use renamed 11044 symbol flags. Use predicate macros for variables and functions. 11045 * config/darwin.h: 11046 Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE. 11047 Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED. 11048 Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC. 11049 (MACHO_SYMBOL_VARIABLE_P): New. 11050 (MACHO_SYMBOL_DEFINED_P):New. 11051 (MACHO_SYMBOL_STATIC_P): New. 11052 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete. 11053 (SYMBOL_FLAG_SUBT_DEP): New. 11054 * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New. 11055 110562019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> 11057 11058 * config/msp430/msp430.c (msp430_file_end): s/msp_/msp430_/ 11059 (msp430_expand_epilogue): Likewise. 11060 * config/msp430/predicates.md: Likewise. 11061 * config/msp430/msp430.md: Likewise. 11062 Replace blocks of 8 spaces with tabs. 11063 110642019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> 11065 11066 * config/msp430/msp430-protos.h (msp430_split_addsi): New prototype. 11067 * config/msp430/msp430.c (msp430_split_addsi): New. 11068 * config/msp430/msp430.md: Call msp430_split_addsi () instead of using 11069 a block of C code for splitting addsi. 11070 110712019-10-07 Uroš Bizjak <ubizjak@gmail.com> 11072 11073 * config/i386/i386-expand.c (ix86_expand_floorceildf_32, 11074 ix86_expand_rounddf_32): Reorder functions. 11075 * config/i386/i386-protos.h: Update. 11076 110772019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> 11078 11079 * config.in: Regenerate. 11080 * config/msp430/constraints.md: Fix docstring for "Ys" constraint. 11081 Add new "Yx" constraint. 11082 * config/msp430/driver-msp430.c (msp430_propagate_region_opt): New spec 11083 function. 11084 * config/msp430/msp430-protos.h (msp430_op_not_in_high_mem): New 11085 prototype. 11086 * config/msp430/msp430.c (msp430_option_override): Allow the lower 11087 code/data region to be selected in the small memory model. 11088 (msp430_section_attr): Don't warn if the "section" and "lower" 11089 attributes are used together. 11090 (msp430_handle_generic_attribute): Likewise. 11091 (msp430_var_in_low_mem): New function. 11092 (TARGET_ENCODE_SECTION_INFO): Define. 11093 (msp430_encode_section_info): New function. 11094 (gen_prefix): Return early in the small memory model. 11095 Require TARGET_USE_LOWER_REGION_PREFIX to be set before adding the 11096 ".lower" prefix if -m{code,data}-region=lower have been passed. 11097 (msp430_output_aligned_decl_common): Emit common symbols when 11098 -mdata-region=lower is passed unless TARGET_USE_LOWER_REGION_PREFIX is 11099 set. 11100 (TARGET_ASM_FILE_END): Define. 11101 (msp430_file_end): New function. 11102 (msp430_do_not_relax_short_jumps): Allow relaxation when 11103 function will be in the lower region. 11104 (msp430_op_not_in_high_mem): New function. 11105 (msp430_print_operand): Check "msp430_op_not_in_high_mem" for 11106 the 'X' operand selector. 11107 Clarify comment for 'x' operand selector. 11108 * config/msp430/msp430.h (LINK_SPEC): Propagate 11109 -m{code,data}-region to the linker via spec function 11110 msp430_propagate_region_opt. 11111 (msp430_propagate_region_opt): New prototype. 11112 (EXTRA_SPEC_FUNCTIONS): Add msp430_propagate_region_opt. 11113 (SYMBOL_FLAG_LOW_MEM): Define. 11114 * config/msp430/msp430.md (addsipsi3): Add missing "%X" operand 11115 selector. 11116 (zero_extendqihi2): Fix operand number used by "%X" selector. 11117 (zero_extendqisi2): Likewise. 11118 (zero_extendhisi2): Likewise. 11119 (movqi): Use "Yx" constraint in place of "%X" operand selector. 11120 (movhi): Likewise. 11121 (addqi3): Likewise. 11122 (addhi3): Likewise. 11123 (addsi3): Likewise. 11124 (addhi3_cy): Likewise. 11125 (addchi4_cy): Likewise. 11126 (subqi3): Likewise. 11127 (subhi3): Likewise. 11128 (subsi3): Likewise. 11129 (bic<mode>3): Likewise. 11130 (and<mode>3): Likewise. 11131 (ior<mode>3): Likewise. 11132 (xor<mode>3): Likewise. 11133 (slli_1): Add missing "%X" operand selector. 11134 (slll_1): Likewise. 11135 (slll_2): Likewise. 11136 (srai_1): Likewise. 11137 (sral_1): Likewise. 11138 (sral_2): Likewise. 11139 (srli_1): Likewise. 11140 (srll_1): Likewise. 11141 (cbranchqi4_real): Use "Yx" constraint in place of "%X" operand 11142 selector. 11143 (cbranchhi4_real): Likewise. 11144 (cbranchqi4_reversed): Likewise. 11145 (cbranchhi4_reversed): Likewise. 11146 (*bitbranch<mode>4): Likewise. 11147 (*bitbranch<mode>4_z): Remove unnecessary "%x" operand selector. 11148 * config/msp430/msp430.opt (mcode-region=): Set default to 11149 MSP430_REGION_LOWER. Improve docstring. 11150 (mdata-region=): Likewise. 11151 (muse-lower-region-prefix): New option. 11152 * config/msp430/t-msp430 (MULTILIB_OPTIONS): Add 11153 mdata-region=none multilib. 11154 (MULTILIB_MATCHES): Set mdata-region={upper,either} to match 11155 mdata-region=none multilib. 11156 MULTILIB_EXCEPTIONS: Remove. 11157 MULTILIB_REQUIRED: Define. 11158 * configure: Regenerate. 11159 * configure.ac: Define HAVE_AS_GNU_ATTRIBUTE and 11160 HAVE_AS_MSPABI_ATTRIBUTE if GAS version >= 2.33.50. 11161 * doc/extend.texi: Clarify comment for {upper,lower,either} 11162 function attributes. 11163 Add separate description for "lower" variable attribute. 11164 111652019-10-07 Ilya Leoshkevich <iii@linux.ibm.com> 11166 11167 PR target/77918 11168 * optabs-tree.c (vcond_icode_p): New function. 11169 (vcond_eq_icode_p): Likewise. 11170 (expand_vec_cond_expr_p): Use vcond_icode_p and 11171 vcond_eq_icode_p. 11172 * optabs.c (can_vcond_compare_p): New function. 11173 * optabs.h (can_vcond_compare_p): Likewise. 11174 111752019-10-07 Ilya Leoshkevich <iii@linux.ibm.com> 11176 11177 PR target/77918 11178 * gimple-expr.c (gimple_cond_get_ops_from_tree): Assert that the 11179 caller passes a non-trapping condition. 11180 (is_gimple_condexpr): Allow trapping conditions. 11181 (is_gimple_condexpr_1): New helper function. 11182 (is_gimple_condexpr_for_cond): New function, acts like old 11183 is_gimple_condexpr. 11184 * gimple-expr.h (is_gimple_condexpr_for_cond): New function. 11185 * gimple.c (gimple_could_trap_p_1): Handle COND_EXPR and 11186 VEC_COND_EXPR. Fix an issue with statements like i = (fp < 1.). 11187 * gimplify.c (gimplify_cond_expr): Use 11188 is_gimple_condexpr_for_cond. 11189 (gimplify_expr): Allow is_gimple_condexpr_for_cond. 11190 * tree-eh.c (operation_could_trap_p): Assert on COND_EXPR and 11191 VEC_COND_EXPR. 11192 (tree_could_trap_p): Handle COND_EXPR and VEC_COND_EXPR. 11193 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Use 11194 is_gimple_condexpr_for_cond, remove pointless tmp check 11195 (forward_propagate_into_cond): Remove pointless tmp check. 11196 111972019-10-07 Vladislav Ivanishin <vlad@ispras.ru> 11198 11199 * gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to 11200 match that of other gsi_next_* functions. Adjust the comment. 11201 (gsi_start_nonvirtual_phis): New function. 11202 * ipa-icf.c (sem_function::compare_phi_node): Update uses of 11203 gsi_next_nonvirtual_phi accordingly. (No functional change.) 11204 112052019-10-07 Vladislav Ivanishin <vlad@ispras.ru> 11206 11207 * doc/invoke.texi (-Wuninitialized): Don't mention the clobbered by 11208 setjmp situation here. Fix a verb's ending: "the exact variables or 11209 elements for which there are warnings depends" -> "... depend". 11210 112112019-10-07 Aldy Hernandez <aldyh@redhat.com> 11212 11213 * ipa-prop.c (ipa_vr::nonzero_p): Add TYPE_UNSIGNED check. 11214 112152019-10-07 Aldy Hernandez <aldyh@redhat.com> 11216 11217 * ipa-prop.c (ipa_vr::nonzero_p): New. 11218 (ipcp_update_vr): Use nonzero_p instead of open-coding check for 11219 non-zero range. 11220 * ipa-prop.h (class ipa_vr): Add nonzero_p. 11221 * tree-vrp.c (range_has_numeric_bounds_p): New. 11222 (range_int_cst_p): Use range_has_numeric_bounds_p. 11223 (get_range_op_handler): New. 11224 (supported_types_p): New. 11225 (defined_ranges_p): New. 11226 (drop_undefines_to_varying): New. 11227 (range_fold_binary_symbolics_p): New. 11228 (range_fold_unary_symbolics_p): New. 11229 (range_fold_unary_expr): Extract out into above functions. 11230 (range_fold_binary_expr): Same. 11231 (value_range_base::normalize_addresses): New. 11232 (value_range_base::normalize_symbolics): Normalize addresses. 11233 * tree-vrp.h (class value_range_base): Add normalize_addresses. 11234 112352019-10-07 Aldy Hernandez <aldyh@redhat.com> 11236 11237 * tree-vrp.c (value_range_base::singleton_p): Use 11238 value_range_base::num_pairs instead of vrp_val_is* to check 11239 if a range has one sub-range. 11240 112412019-10-07 Richard Sandiford <richard.sandiford@arm.com> 11242 11243 * ira-lives.c (check_and_make_def_conflict): Handle cases in which 11244 DEF is not a true earlyclobber but is tied to a specific input 11245 operand, and so is effectively earlyclobber wrt inputs that have 11246 different values. 11247 (make_early_clobber_and_input_conflicts): Pass this case to the above. 11248 112492019-10-07 Richard Sandiford <richard.sandiford@arm.com> 11250 11251 * machmode.h (opt_mode): Mark constructors with CONSTEXPR. 11252 (pod_mode): Mark operators likewise. 11253 (scalar_int_mode): Mark non-default constructors and 11254 operators with CONSTEXPR. 11255 (scalar_float_mode, scalar_mode, complex_mode): Likewise. 11256 (fixed_size_mode): Likewise. 11257 112582019-10-07 Richard Sandiford <richard.sandiford@arm.com> 11259 11260 PR target/91994 11261 * config/i386/sse.md (avx_vzeroupper): Turn into a define_expand 11262 and wrap the unspec_volatile in a parallel. 11263 (*avx_vzeroupper): New define_insn. Use a match_parallel around 11264 the unspec_volatile. 11265 * config/i386/predicates.md (vzeroupper_pattern): Expect the 11266 unspec_volatile to be wrapped in a parallel. 11267 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper) 11268 (ix86_add_reg_usage_to_vzerouppers): New functions. 11269 (rest_of_handle_insert_vzeroupper): Use them to add register 11270 usage information to the vzeroupper instructions. 11271 112722019-10-07 Richard Biener <rguenther@suse.de> 11273 11274 PR tree-optimization/91975 11275 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Consistently 11276 handle invariants. 11277 112782019-10-06 Richard Sandiford <richard.sandiford@arm.com> 11279 11280 * var-tracking.c (dataflow_set_clear_at_call): Hoist temporary 11281 function result outside of EXECUTE_IF_SET_IN_HARD_REG_SET. 11282 112832019-10-06 Iain Sandoe <iain@sandoe.co.uk> 11284 11285 * config/darwin.c (darwin_override_options): Adjust objective-c 11286 ABI version error messages to avoid punctuation and contracted 11287 negations. 11288 112892019-10-05 Jan Hubicka <hubicka@ucw.cz> 11290 11291 * ipa-inline.c: Fix type; compute size rather than self_size 11292 for size of caller function. 11293 112942019-10-05 Iain Sandoe <iain@sandoe.co.uk> 11295 11296 PR target/59888 11297 * config/darwin.c (darwin_rodata_section): Add relocation flag, 11298 choose const_data section for constants with relocations. 11299 (machopic_select_section): Pass relocation flag to 11300 darwin_rodata_section (). 11301 113022019-10-05 Jakub Jelinek <jakub@redhat.com> 11303 11304 PR tree-optimization/91734 11305 * generic-match-head.c: Include fold-const-call.h. 11306 * match.pd (sqrt(x) cmp c): Check the boundary value and 11307 in case inexact computation of c*c affects comparison of the boundary, 11308 turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR 11309 or GT_EXPR into GE_EXPR. Punt for sqrt comparisons against NaN and 11310 for -frounding-math. For c2, try the next smaller or larger floating 11311 point constant depending on comparison code and if it has the same 11312 sqrt as c2, use it instead of c2. 11313 113142019-10-04 Martin Sebor <msebor@redhat.com> 11315 11316 PR middle-end/91977 11317 * tree-ssa-strlen.c (count_nonzero_bytes): Handle assignments with 11318 MEM_REF right operand. Avoid failing for MEM_REF assignments from 11319 uninitialized objects. 11320 113212019-10-04 Martin Sebor <msebor@redhat.com> 11322 11323 * builtins.c (compute_objsize): Add an argument. 11324 * tree-object-size.c (addr_object_size): Same. 11325 (compute_builtin_object_size): Same. 11326 * tree-object-size.h (compute_builtin_object): Same. 11327 113282019-10-04 Jan Hubicka <hubicka@ucw.cz> 11329 11330 * ipa-inline.c (inline_insns_single, inline_insns_auto): Fix typo. 11331 113322019-10-04 Rafael Tsuha <rafael.tsuha@usp.br> 11333 11334 * match.pd (sinh (x) / cosh (x)): New simplification rule. 11335 113362019-10-04 Martin Jambor <mjambor@suse.cz> 11337 11338 * tree-ssa-forwprop.c (simplify_builtin_call): Set gimple call 11339 fntype when switching to calling memcpy instead of memset. 11340 113412019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 11342 11343 * hash-table.h (hash_table::empty_slow): Don't assign 11344 size_t values to int variables. 11345 113462019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 11347 11348 * expr.c (convert_mode_scalar): Remove shadowing local var. 11349 (emit_block_move): Rename local vars. 11350 (block_move_libcall_safe_for_call_parm): Remove shadowing local var. 11351 (emit_push_insn): Rename local vars. 11352 (expand_assignment): Fix wrong mode in assign_stack_temp. Remove 11353 shadowing local vars. 11354 (store_constructor): Remove shadowing local vars. Rename local var. 11355 (store_field, expand_cond_expr_using_cmove, 11356 expand_expr_real_2): Remove shadowing local vars. 11357 (expand_expr_real_1, 11358 do_store_flag): Remove shadowing local vars. Rename local vars. 11359 113602019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 11361 11362 * cgraph.h (FOR_EACH_ALIAS): Avoid shadowing the loop variable. 11363 113642019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 11365 11366 * genmatch.c (commutate): Rename local var. 11367 (lower_cond): Reuse local var. 11368 (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1, 11369 dt_operand::gen, dt_operand::gen_gimple_expr, 11370 dt_simplify::gen): Add a param. Rename generated vars. 11371 (decision_tree::insert_operand, 11372 (capture_info::walk_match, capture_info::walk_result, 11373 capture_info::walk_c_expr): Rename local vars. 11374 (expr::gen_transform): Rename generated vars. 11375 Use snprintf. Rename local vars. 11376 (capture::gen_transform, dt_operand::get_name, 11377 dt_operand::gen_opname): Rename generated vars. 11378 (write_predicate): Adjust call to gen_kids. 11379 (parser::get_internal_capture_id): Rename generated vars. 11380 (parser::parse_expr): Rename local vars. 11381 (parser::parse_if): Remove local var. 11382 (parser::parse_pattern, add_operator): Rename local vars. 11383 113842019-10-04 Joseph Myers <joseph@codesourcery.com> 11385 11386 * builtins.def (DEF_C2X_BUILTIN): New macro. 11387 (exp10, exp10f, exp10l, fabsd32, fabsd64, fabsd128, nand32) 11388 (nand64, nand128, roundeven, roundevenf, roundevenl, strdup) 11389 (strndup): Use DEF_C2X_BUILTIN. 11390 * coretypes.h (enum function_class): Add function_c2x_misc. 11391 113922019-10-04 Maya Rashish <coypu@sdf.org> 11393 11394 * ira-color.c (update_costs_from_allocno): Call 11395 ira_init_register_move_cost_if_necessary. 11396 113972019-10-04 Jeff Law <law@redhat.com> 11398 11399 * config/h8300/h8300.md (cpymemsi): Disable. 11400 (movmd, movmd_internal_<mode>, movstr, movsd): 11401 (movstr, movsd, stpcpy_internal_<mode>: Likewise. 11402 (movmd splitter, movsd splitter): Likewise. 11403 11404 * range-op.cc (range_tests): Avoid two tests when ints and 11405 shorts are the same size. 11406 114072019-10-04 Richard Biener <rguenther@suse.de> 11408 11409 PR lto/91968 11410 * tree.c (find_decls_types_r): Do not remove LABEL_DECLs from 11411 BLOCK_VARS. 11412 114132019-10-04 Richard Biener <rguenther@suse.de> 11414 11415 PR tree-optimization/91982 11416 * tree-vect-loop.c (vectorizable_live_operation): Also guard 11417 against EXTRACT_LAST_REDUCTION. 11418 * tree-vect-stmts.c (vect_transform_stmt): Likewise. 11419 114202019-10-04 Aldy Hernandez <aldyh@redhat.com> 11421 11422 * range-op.o (value_range_from_overflowed_bounds): Rename from 11423 adjust_overflow_bound. 11424 (value_range_with_overflow): Rename from 11425 create_range_with_overflow. 11426 (create_possibly_reversed_range): Adjusted for above renames. 11427 (operator_*::wi_fold): Same. 11428 (cross_product_operator::wi_cross_productor): Same. 11429 114302019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 11431 11432 * doc/invoke.texi (-Wshadow=global, -Wshadow=local, 11433 -Wshadow=compatible-local): Fix description. 11434 Add an example where -Wshadow=compatible-local does not 11435 warn. 11436 114372019-10-03 John David Anglin <danglin@gcc.gnu.org> 11438 11439 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust. 11440 11441 * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence. 11442 (pa_attr_length_call): Adjust length for 64-bit plabel sequence. 11443 114442019-10-03 Aaron Sawdey <acsawdey@linux.ibm.com> 11445 11446 * expr.c (emit_block_move_hints): Slightly cleaner fix to 11447 can_move_by_pieces issue. 11448 114492019-10-03 Iain Sandoe <iain@sandoe.co.uk> 11450 11451 PR target/87243 11452 * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New. 11453 (darwin_driver_init): Use the sysroot provided by SDKROOT when that 11454 is available and the user has not set one on the command line. 11455 114562019-10-03 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 11457 11458 PR target/91769 11459 * config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p 11460 instead of REGNO equality check on addr.reg. 11461 114622019-10-03 Jan Hubicka <hubicka@ucw.cz> 11463 11464 * params.def (PARAM_INLINE_HEURISTICS_HINT_PERCENT, 11465 PARAM_INLINE_HEURISTICS_HINT_PERCENT_O2): New. 11466 * doc/invoke.texi (inline-heuristics-hint-percent, 11467 inline-heuristics-hint-percent-O2): Document. 11468 * tree-inline.c (inline_insns_single, inline_insns_auto): Add new 11469 hint attribute. 11470 (can_inline_edge_by_limits_p): Use it. 11471 114722019-10-03 Richard Sandiford <richard.sandiford@arm.com> 11473 11474 * config/arm/arm.c (arm_print_value): Use real_to_decimal 11475 to print CONST_DOUBLEs. 11476 114772019-10-03 Andrea Corallo <andrea.corallo@arm.com> 11478 11479 * ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum. 11480 * ipa-prop.c (ipcp_free_transformation_sum): New function. 11481 * ipa-prop.h (ipcp_free_transformation_sum): Add declaration. 11482 114832019-10-03 Aldy Hernandez <aldyh@redhat.com> 11484 11485 * Makefile.in (OBJS): Add range.o and range-op.o. 11486 Remove wide-int-range.o. 11487 * function-tests.c (test_ranges): New. 11488 (function_tests_c_tests): Call test_ranges. 11489 * ipa-cp.c (ipa_vr_operation_and_type_effects): Call 11490 range_fold_unary_expr instead of extract_range_from_unary_expr. 11491 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same. 11492 * range-op.cc: New file. 11493 * range-op.h: New file. 11494 * range.cc: New file. 11495 * range.h: New file. 11496 * selftest.h (range_tests): New prototype. 11497 * ssa.h: Include range.h. 11498 * tree-vrp.c (value_range_base::value_range_base): New 11499 constructors. 11500 (value_range_base::singleton_p): Do not call 11501 ranges_from_anti_range until sure we will need to. 11502 (value_range_base::type): Rename gcc_assert to 11503 gcc_checking_assert. 11504 (vrp_val_is_max): New argument. 11505 (vrp_val_is_min): Same. 11506 (wide_int_range_set_zero_nonzero_bits): Move from 11507 wide-int-range.cc. 11508 (extract_range_into_wide_ints): Remove. 11509 (extract_range_from_multiplicative_op): Remove. 11510 (extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code 11511 from extract_range_from_binary_expr. 11512 (extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code 11513 from extract_range_from_binary_expr. 11514 (extract_range_from_binary_expr): Remove. 11515 (normalize_for_range_ops): New. 11516 (range_fold_binary_expr): New. 11517 (range_fold_unary_expr): New. 11518 (value_range_base::num_pairs): New. 11519 (value_range_base::lower_bound): New. 11520 (value_range_base::upper_bound): New. 11521 (value_range_base::upper_bound): New. 11522 (value_range_base::contains_p): New. 11523 (value_range_base::invert): New. 11524 (value_range_base::union_): New. 11525 (value_range_base::intersect): New. 11526 (range_compatible_p): New. 11527 (value_range_base::operator==): New. 11528 (determine_value_range_1): Call range_fold_*expr instead of 11529 extract_range_from_*expr. 11530 * tree-vrp.h (class value_range_base): Add new constructors. 11531 Add methods for union_, intersect, operator==, contains_p, 11532 num_pairs, lower_bound, upper_bound, invert. 11533 (vrp_val_is_min): Add handle_pointers argument. 11534 (vrp_val_is_max): Same. 11535 (extract_range_from_unary_expr): Remove. 11536 (extract_range_from_binary_expr): Remove. 11537 (range_fold_unary_expr): New. 11538 (range_fold_binary_expr): New. 11539 * vr-values.c (vr_values::extract_range_from_binary_expr): Call 11540 range_fold_binary_expr instead of extract_range_from_binary_expr. 11541 (vr_values::extract_range_basic): Same. 11542 (vr_values::extract_range_from_unary_expr): Call 11543 range_fold_unary_expr instead of extract_range_from_unary_expr. 11544 * wide-int-range.cc: Remove. 11545 * wide-int-range.h: Remove. 11546 115472019-10-02 Michael Meissner <meissner@linux.ibm.com> 11548 11549 * config/rs6000/rs6000.c (mem_operand_gpr): Use 11550 SIGNED_16BIT_OFFSET_EXTRA_P macro. 11551 (mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P macro. 11552 (rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P 11553 macro. 11554 115552019-10-02 Joseph Myers <joseph@codesourcery.com> 11556 11557 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change 11558 condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ || 11559 (__STDC_VERSION__ && __STDC_VERSION__ > 201710L)]. 11560 * glimits.h: Likewise. 11561 115622019-10-03 Jakub Jelinek <jakub@redhat.com> 11563 11564 PR rtl-optimization/91976 11565 * expr.c (emit_block_move_hints): Don't call can_move_by_pieces if 11566 size is not CONST_INT_P, set pieces_ok to false in that case. Simplify 11567 CONST_INT_P (size) && pieces_ok to pieces_ok. Formatting fix. 11568 115692019-10-02 Martin Sebor <msebor@redhat.com> 11570 11571 PR tree-optimization/80936 11572 * builtins.def (bcmp, bcopy, bzero): Declare nonnull. 11573 115742019-10-02 Richard Sandiford <richard.sandiford@arm.com> 11575 11576 * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET 11577 instead of reg_class_contents[ALL_REGS]. 11578 115792019-09-30 Jason Merrill <jason@redhat.com> 11580 11581 Add some hash_map_safe_* functions like vec_safe_*. 11582 * hash-map.h (default_hash_map_size): New variable. 11583 (create_ggc): Use it as default argument. 11584 (hash_map_maybe_create, hash_map_safe_get) 11585 (hash_map_safe_get_or_insert, hash_map_safe_put): New fns. 11586 115872019-10-02 Jan Hubicka <hubicka@ucw.cz> 11588 11589 * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT, 11590 MAX_INLINE_INSNS_AUTO_O2_LIMIT): New. 11591 * ipa-inline.c (inline_insns_single, inline_insns_auto): New functions. 11592 (can_inline_edge_by_limits_p): Use it. 11593 (big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2. 11594 (want_inline_small_function_p): Use O2 bounds. 11595 (edge_badness): LIkewise. 11596 * opts.c (default_options): Add OPT_finline_functions. 11597 * params.def (PARAM_INLINE_MIN_SPEEDUP_O2, 11598 PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2): 11599 New parameters. 11600 * doc/invoke.texi (-finline-functions): Update documentation. 11601 (max-inline-insns-single-O2, max-inline-insns-auto-O2, 11602 inline-min-speedup-O2): Document. 11603 (early-inlining-insns-O2): Simplify docs. 11604 116052019-10-02 Alexander Monakov <amonakov@ispras.ru> 11606 11607 PR rtl-optimization/87047 11608 * ifcvt.c (average_cost): New static function. Use it... 11609 (noce_process_if_block): ... here. 11610 116112019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com> 11612 11613 * config/rs6000/rs6000-protos.h (expand_block_move): Change prototype. 11614 * config/rs6000/rs6000-string.c (expand_block_move): Add 11615 might_overlap parm. 11616 * config/rs6000/rs6000.md (movmemsi): Add new pattern. 11617 (cpymemsi): Add might_overlap parm to expand_block_move() call. 11618 116192019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com> 11620 11621 * builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm. 11622 (expand_builtin_memcpy): Use might_overlap parm. 11623 (expand_builtin_mempcpy_args): Use might_overlap parm. 11624 (expand_builtin_memmove): Call expand_builtin_memory_copy_args. 11625 (expand_builtin_memory_copy_args): Add might_overlap parm. 11626 * expr.c (emit_block_move_via_cpymem): Rename to 11627 emit_block_move_via_pattern, add might_overlap parm, use cpymem 11628 or movmem optab as appropriate. 11629 (emit_block_move_hints): Add might_overlap parm, do the right 11630 thing for might_overlap==true. 11631 * expr.h (emit_block_move_hints): Update prototype. 11632 116332019-10-02 Eric Botcazou <ebotcazou@adacore.com> 11634 11635 * tree-eh.h (unsplit_eh_edges): Declare. 11636 * tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases. 11637 (unsplit_eh_edges): New function wrapping unsplit_all_eh. 11638 * gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h. 11639 (struct store_immediate_info): Add lp_nr field. 11640 (store_immediate_info::store_immediate_info): Add NR2 parameter and 11641 initialize lp_nr with it. 11642 (struct merged_store_group): Add lp_nr and only_constants fields. 11643 (merged_store_group::merged_store_group): Initialize them. 11644 (merged_store_group::can_be_merged_into): Deal with them. 11645 (pass_store_merging): Rename terminate_and_release_chain into 11646 terminate_and_process_chain. 11647 (pass_store_merging::terminate_and_process_all_chains): Adjust to above 11648 renaming and remove useless assertions. 11649 (pass_store_merging::terminate_all_aliasing_chains): Small tweak. 11650 (stmts_may_clobber_ref_p): Be prepared for different basic blocks. 11651 (imm_store_chain_info::coalesce_immediate_stores): Use only_constants 11652 instead of always recomputing it and compare lp_nr. 11653 (imm_store_chain_info::output_merged_store): If the group is in an 11654 active EH region, register new stores if they can throw. Moreover, 11655 if the insertion has created new basic blocks, adjust the PHI nodes 11656 of the post landing pad. 11657 (imm_store_chain_info::output_merged_stores): If the original stores 11658 are in an active EH region, deregister them. 11659 (lhs_valid_for_store_merging_p): Prettify. 11660 (adjust_bit_pos): New function extracted from... 11661 (mem_valid_for_store_merging): ...here. Use it for the base address 11662 and also for the offset if it is the addition of a constant. 11663 (lp_nr_for_store): New function. 11664 (pass_store_merging::process_store): Change return type to bool. 11665 Call lp_nr_for_store to initialize the store info. Propagate the 11666 return status of various called functions to the return value. 11667 (store_valid_for_store_merging_p): New predicate. 11668 (enum basic_block_status): New enumeration. 11669 (get_status_for_store_merging): New function. 11670 (pass_store_merging::execute): If the function can throw and catch 11671 non-call exceptions, unsplit the EH edges on entry and clean up the 11672 CFG on exit if something changed. Call get_status_for_store_merging 11673 for every basic block and keep the chains open across basic blocks 11674 when possible. Terminate and process open chains at the end, if any. 11675 116762019-10-02 Richard Sandiford <richard.sandiford@arm.com> 11677 11678 * reginfo.c (globalize_reg): Fix shadowed variable in 11679 function_abis walk. 11680 116812019-10-02 Martin Jambor <mjambor@suse.cz> 11682 11683 * cgraph.c (symbol_table::create_edge): New parameter cloning_p, 11684 do not compute some stuff when set. 11685 (cgraph_node::create_edge): Likewise. 11686 (cgraph_node::create_indirect_edge): Renamed last parameter to 11687 coning_p and flipped its meaning, don't even calculate 11688 inline_failed when set. 11689 * cgraph.h (cgraph_node::create_edge): Add new parameter. 11690 (symbol_table::::create_edge): Likewise. 11691 (cgraph_node::create_indirect_edge): Rename last parameter, flip 11692 the default value. 11693 * cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all 11694 call graph edge creating functions. 11695 116962019-10-01 Jan Hubicka <hubicka@ucw.cz> 11697 11698 PR c++/91222 11699 * ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous 11700 namespace types. 11701 117022019-10-02 Shahab Vahedi <shahab@synopsys.com> 11703 11704 * config/arc/arc.h (ASM_SPEC): Pass -mcode-density. 11705 117062019-10-02 Richard Biener <rguenther@suse.de> 11707 11708 * tree-vectorizer.h (vect_transform_reduction): Declare. 11709 * tree-vect-stmts.c (vect_transform_stmt): Use it. 11710 * tree-vect-loop.c (vectorizable_reduction): Split out reduction 11711 stmt transform to ... 11712 (vect_transform_reduction): ... this. 11713 117142019-10-02 Tobias Burnus <tobias@codesourcery.com> 11715 11716 * omp-low.c (lower_omp_target): Dereference optional argument 11717 to work with the right pointer. 11718 117192019-10-02 Kwok Cheung Yeung <kcy@codesourcery.com> 11720 11721 * langhooks-def.h (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Default to 11722 false. 11723 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT. 11724 * langhooks.h (omp_is_optional_argument): New hook. 11725 * omp-general.c (omp_is_optional_argument): New. 11726 * omp-general.h (omp_is_optional_argument): New declaration. 11727 * omp-low.c (lower_omp_target): Create temporary for received value 11728 and take the address for new_var if the original variable was a 11729 DECL_BY_REFERENCE. Use size of referenced object when a 11730 pass-by-reference optional argument used as argument to firstprivate. 11731 117322019-10-02 Jakub Jelinek <jakub@redhat.com> 11733 11734 PR tree-optimization/91940 11735 * tree-vect-patterns.c: Include tree-vector-builder.h and 11736 vec-perm-indices.h. 11737 (vect_recog_rotate_pattern): Also handle __builtin_bswap16, either by 11738 unpromoting the argument back to uint16_t, or by converting into a 11739 rotate, or into shifts plus ior. 11740 117412019-10-02 Richard Biener <rguenther@suse.de> 11742 11743 * tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type): 11744 New. 11745 (vect_transform_cycle_phi): Declare. 11746 * tree-vect-stmts.c (vect_transform_stmt): Call 11747 vect_transform_cycle_phi. 11748 * tree-vect-loop.c (vectorizable_reduction): Split out 11749 PHI transformation stage to ... 11750 (vect_transform_cycle_phi): ... here. 11751 117522019-10-02 Richard Sandiford <richard.sandiford@arm.com> 11753 11754 PR middle-end/91957 11755 * lra-lives.c (make_hard_regno_dead): Don't record conflicts for 11756 eliminable registers. 11757 (make_hard_regno_live): Likewise, and don't make them live. 11758 117592019-10-01 David Malcolm <dmalcolm@redhat.com> 11760 11761 * diagnostic-show-locus.c (layout::print_gap_in_line_numbering): 11762 Call pp_emit_prefix. 11763 (layout::print_source_line): Likewise. 11764 (layout::start_annotation_line): Likewise. 11765 (diagnostic_show_locus): Remove call to temporarily clear the 11766 prefix. 11767 (selftest::test_one_liner_fixit_remove): Add test coverage for the 11768 interaction of pp_set_prefix with rulers and fix-it hints. 11769 * diagnostic.c (default_diagnostic_finalizer): Temporarily clear 11770 prefix when calling diagnostic_show_locus, rather than destroying 11771 it afterwards. 11772 (print_parseable_fixits): Temporarily clear prefix. 11773 * pretty-print.c (pp_format): Save and restore line_length, rather 11774 than assuming it is zero. 11775 (pp_output_formatted_text): Remove assertion that line_length is 11776 zero. 11777 117782019-10-01 Jan Hubicka <hubicka@ucw.cz> 11779 11780 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p): 11781 Rename to ... 11782 (nonoverlapping_refs_since_match_p): ... this; handle also 11783 ARRAY_REFs. 11784 (alias_stats): Update stats. 11785 (dump_alias_stats): Likewise. 11786 (cheap_array_ref_low_bound): New function. 11787 (aliasing_matching_component_refs_p): Add partial_overlap 11788 argument; 11789 pass it to nonoverlapping_refs_since_match_p. 11790 (aliasing_component_refs_walk): Update call of 11791 aliasing_matching_component_refs_p 11792 (nonoverlapping_array_refs_p): New function. 11793 (decl_refs_may_alias_p, indirect_ref_may_alias_decl_p, 11794 indirect_refs_may_alias_p): Update calls of 11795 nonoverlapping_refs_since_match_p. 11796 117972019-10-01 Maya Rashish <coypu@sdf.org> 11798 11799 PR target/85401 11800 * ira-color.c (allocno_copy_cost_saving): Call 11801 ira_init_register_move_cost_if_necessary. 11802 118032019-10-01 Maciej W. Rozycki <macro@wdc.com> 11804 11805 * Makefile.in (gnat_install_lib): New variable. 11806 * configure.ac: Substitute it. 11807 * configure: Regenerate. 11808 118092019-10-01 Jan Hubicka <hubicka@ucw.cz> 11810 11811 PR lto/91222 11812 * ipa-devirt.c (warn_types_mismatch): Do not ICE when anonymous type 11813 is matched with non-C++ type 11814 118152019-10-01 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 11816 11817 * tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce 11818 after local CSE. 11819 118202019-10-01 Jan Hubicka <hubicka@ucw.cz> 11821 11822 * doc/invoke.texi (early-inlining-insns-O2): Document. 11823 (early-inlining-insns): Update. 11824 * params.def (early-inlining-insns-O2): New bound. 11825 (early-inlining-insns): Update docs. 11826 * ipa-inline.c (want_early_inline_function_p): Use new bound. 11827 118282019-10-01 Oleg Endo <olegendo@gcc.gnu.org> 11829 11830 PR target/88562 11831 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use 11832 sh_check_add_incdec_notes to preserve REG_INC notes when replacing 11833 a memory access insn. 11834 118352019-10-01 Bill Schmidt <wschmidt@linux.ibm.com> 11836 11837 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap 11838 vpmsumd. 11839 118402019-10-01 Ilya Leoshkevich <iii@linux.ibm.com> 11841 11842 PR target/77918 11843 * config/s390/s390.c (s390_expand_vec_compare): Use 11844 gen_vec_cmpordered and gen_vec_cmpunordered. 11845 * config/s390/vector.md (vec_cmpuneq, vec_cmpltgt, vec_ordered, 11846 vec_unordered): Delete. 11847 (vec_ordered<mode>): Rename to vec_cmpordered<mode>. 11848 (vec_unordered<mode>): Rename to vec_cmpunordered<mode>. 11849 (VEC_CMP_EXPAND): New iterator for the generic dispatcher. 11850 (vec_cmp<code>): Generic dispatcher. 11851 118522019-10-01 Ilya Leoshkevich <iii@linux.ibm.com> 11853 11854 PR target/77918 11855 * config/s390/vector.md (V_HW): Add V1TI in order to make 11856 vcond$a$b generate vcondv1tiv1tf. 11857 118582019-10-01 Richard Sandiford <richard.sandiford@arm.com> 11859 11860 PR rtl-optimization/91948 11861 * ira-build.c (ira_create_allocno): Initialize 11862 ALLOCNO_CROSSED_CALLS_ABIS. 11863 * ira-color.c (allocno_reload_assign): Pass hard_regno rather 11864 than regno to ira_need_caller_save_p. 11865 118662019-10-01 Alexandre Oliva <oliva@adacore.com> 11867 11868 * config/i386/i386-options.c 11869 (ix86_recompute_optlev_based_flags): New, moved out of... 11870 (ix86_option_override_internal): ... this. Call it. 11871 (ix86_override_options_after_change): Call it here too. 11872 11873 PR debug/91507 11874 * dwarf2out.c (override_type_for_decl_p): New. 11875 (gen_variable_die): Use it. 11876 118772019-10-01 Richard Biener <rguenther@suse.de> 11878 11879 * tree-vect-loop.c (vectorizable_reduction): Move variables 11880 to where they are used. 11881 118822019-10-01 Segher Boessenkool <segher@kernel.crashing.org> 11883 11884 * regrename.c (hide_operands): Use pc_rtx instead of cc0_rtx. 11885 (build_def_use): Use PC instead of CC0 in a comment. 11886 118872019-10-01 Richard Sandiford <richard.sandiford@arm.com> 11888 11889 * rtl.def (CLOBBER_HIGH): Delete. 11890 * doc/rtl.texi (clobber_high): Remove documentation. 11891 * rtl.h (SET_DEST): Remove CLOBBER_HIGH from the list of codes. 11892 (reg_is_clobbered_by_clobber_high): Delete. 11893 (gen_hard_reg_clobber_high): Likewise. 11894 * alias.c (record_set): Remove CLOBBER_HIGH handling. 11895 * cfgexpand.c (expand_gimple_stmt): Likewise. 11896 * combine-stack-adj.c (single_set_for_csa): Likewise. 11897 * combine.c (find_single_use_1, set_nonzero_bits_and_sign_copies) 11898 (can_combine_p, is_parallel_of_n_reg_sets, try_combine) 11899 (record_dead_and_set_regs_1, reg_dead_at_p_1): Likewise. 11900 * cse.c (invalidate_reg): Remove clobber_high parameter. 11901 (invalidate): Update call accordingly. 11902 (canonicalize_insn): Remove CLOBBER_HIGH handling. 11903 (invalidate_from_clobbers, invalidate_from_sets_and_clobbers) 11904 (count_reg_usage, insn_live_p): Likewise. 11905 * cselib.h (cselib_invalidate_rtx): Remove sett argument. 11906 * cselib.c (cselib_invalidate_regno, cselib_invalidate_rtx): Likewise. 11907 (cselib_invalidate_rtx_note_stores): Update call accordingly. 11908 (cselib_expand_value_rtx_1): Remove CLOBBER_HIGH handling. 11909 (cselib_invalidate_regno, cselib_process_insn): Likewise. 11910 * dce.c (deletable_insn_p, mark_nonreg_stores_1): Likewise. 11911 (mark_nonreg_stores_2): Likewise. 11912 * df-scan.c (df_find_hard_reg_defs, df_uses_record): Likewise. 11913 (df_get_call_refs): Likewise. 11914 * dwarf2out.c (mem_loc_descriptor): Likewise. 11915 * emit-rtl.c (verify_rtx_sharing): Likewise. 11916 (copy_insn_1, copy_rtx_if_shared_1): Likewise. 11917 (hard_reg_clobbers_high, gen_hard_reg_clobber_high): Delete. 11918 * genconfig.c (walk_insn_part): Remove CLOBBER_HIGH handling. 11919 * genemit.c (gen_exp, gen_insn): Likewise. 11920 * genrecog.c (validate_pattern, remove_clobbers): Likewise. 11921 * haifa-sched.c (haifa_classify_rtx): Likewise. 11922 * ira-build.c (create_insn_allocnos): Likewise. 11923 * ira-costs.c (scan_one_insn): Likewise. 11924 * ira.c (equiv_init_movable_p, memref_referenced_p): Likewise. 11925 (rtx_moveable_p, interesting_dest_for_shprep): Likewise. 11926 * jump.c (mark_jump_label_1): Likewise. 11927 * lra-int.h (lra_insn_reg::clobber_high): Delete. 11928 * lra-eliminations.c (lra_eliminate_regs_1): Remove CLOBBER_HIGH 11929 handling. 11930 (mark_not_eliminable): Likewise. 11931 * lra-lives.c (process_bb_lives): Likewise. 11932 * lra.c (new_insn_reg): Remove clobber_high parameter. 11933 (collect_non_operand_hard_regs): Likewise. Update call to new 11934 insn_reg. Remove CLOBBER_HIGH handling. 11935 (lra_set_insn_recog_data): Remove CLOBBER_HIGH handling. Update call 11936 to collect_non_operand_hard_regs. 11937 (add_regs_to_insn_regno_info): Remove CLOBBER_HIGH handling. 11938 Update call to new_insn_reg. 11939 (lra_update_insn_regno_info): Remove CLOBBER_HIGH handling. 11940 * postreload.c (reload_cse_simplify, reload_combine_note_use) 11941 (move2add_note_store): Likewise. 11942 * print-rtl.c (print_pattern): Likewise. 11943 * recog.c (store_data_bypass_p_1, store_data_bypass_p): Likewise. 11944 (if_test_bypass_p): Likewise. 11945 * regcprop.c (kill_clobbered_value, kill_set_value): Likewise. 11946 * reginfo.c (reg_scan_mark_refs): Likewise. 11947 * reload1.c (maybe_fix_stack_asms, eliminate_regs_1): Likewise. 11948 (elimination_effects, mark_not_eliminable, scan_paradoxical_subregs) 11949 (forget_old_reloads_1): Likewise. 11950 * reorg.c (find_end_label, try_merge_delay_insns, redundant_insn) 11951 (own_thread_p, fill_simple_delay_slots, fill_slots_from_thread) 11952 (dbr_schedule): Likewise. 11953 * resource.c (update_live_status, mark_referenced_resources) 11954 (mark_set_resources): Likewise. 11955 * rtl.c (copy_rtx): Likewise. 11956 * rtlanal.c (reg_referenced_p, set_of_1, single_set_2, noop_move_p) 11957 (note_pattern_stores): Likewise. 11958 (reg_is_clobbered_by_clobber_high): Delete. 11959 * sched-deps.c (sched_analyze_reg, sched_analyze_insn): Remove 11960 CLOBBER_HIGH handling. 11961 119622019-10-01 Richard Sandiford <richard.sandiford@arm.com> 11963 11964 PR target/91452 11965 * config/aarch64/aarch64.h (ARM_PCS_TLSDESC): New arm_pcs. 11966 * config/aarch64/aarch64-protos.h (aarch64_tlsdesc_abi_id): Declare. 11967 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered): 11968 Handle ARM_PCS_TLSDESC. 11969 (aarch64_tlsdesc_abi_id): New function. 11970 * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use a call 11971 rtx instead of a list of clobbers and clobber_highs. 11972 (tlsdesc_small_<mode>): Update accordingly. 11973 119742019-10-01 Richard Sandiford <richard.sandiford@arm.com> 11975 11976 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Take an 11977 extra callee_abi argument. 11978 * config/aarch64/aarch64.c (aarch64_expand_call): Likewise. 11979 Insert a CALLEE_ABI unspec into the call pattern as the second 11980 element in the PARALLEL. 11981 (aarch64_simd_call_p): Delete. 11982 (aarch64_insn_callee_abi): Get the arm_pcs of the callee from 11983 the new CALLEE_ABI element of the PARALLEL. 11984 (aarch64_init_cumulative_args): Get the arm_pcs of the callee 11985 from the function type, if given. 11986 (aarch64_function_arg_advance): Handle ARM_PCS_SIMD. 11987 (aarch64_function_arg): Likewise. Return the arm_pcs of the callee 11988 when passed the function_arg_info end marker. 11989 (aarch64_output_mi_thunk): Pass the arm_pcs of the callee as the 11990 final argument of gen_sibcall. 11991 * config/aarch64/aarch64.md (UNSPEC_CALLEE_ABI): New unspec. 11992 (call): Make operand 2 a const_int_operand and pass it to expand_call. 11993 Wrap it in an UNSPEC_CALLEE_ABI unspec for the dummy define_expand 11994 pattern. 11995 (call_value): Likewise operand 3. 11996 (sibcall): Likewise operand 2. Place the unspec before rather than 11997 after the return. 11998 (sibcall_value): Likewise operand 3. 11999 (*call_insn, *call_value_insn): Include an UNSPEC_CALLEE_ABI. 12000 (tlsgd_small_<mode>, *tlsgd_small_<mode>): Likewise. 12001 (*sibcall_insn, *sibcall_value_insn): Likewise. Remove empty 12002 constraint strings. 12003 (untyped_call): Pass const0_rtx as the callee ABI to gen_call. 12004 120052019-10-01 Richard Sandiford <richard.sandiford@arm.com> 12006 12007 * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Update call to 12008 choose_hard_reg_mode. 12009 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. 12010 120112019-10-01 Segher Boessenkool <segher@kernel.crashing.org> 12012 12013 * doc/md.texi (vec_pack_trunc_@var{m}): Fix typo. 12014 (vec_pack_sfix_trunc_@var{m}, vec_pack_ufix_trunc_@var{m}): Ditto. 12015 (vec_packs_float_@var{m}, vec_packu_float_@var{m}): Ditto. 12016 120172019-09-30 David Malcolm <dmalcolm@redhat.com> 12018 12019 * diagnostic-show-locus.c (line_label::line_label): Initialize 12020 m_has_vbar. 12021 (line_label::comparator): Reverse the sort order by m_state_idx, 12022 so that when the list is walked backwards the labels appear in 12023 order of insertion into the rich_location. 12024 (line_label::m_has_vbar): New field. 12025 (layout::print_any_labels): When dealing with multiple labels at 12026 the same line and column, only print vertical bars for the one 12027 with the highest label_line. 12028 (selftest::test_one_liner_labels): Update test for multiple labels 12029 to expect the labels to be in the order of insertion into the 12030 rich_location. Add a test for many such labels, where the column 12031 numbers are out-of-order relative to the insertion order. 12032 120332019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12034 12035 * config/i386/i386.h (ix86_frame::expensive_p): New field. 12036 (ix86_frame::expensive_count): Likewise. 12037 * config/i386/i386.c (ix86_compute_frame_layout): Make the choice 12038 of use_fast_prologue_epilogue robust against incidental changes 12039 in function size. 12040 120412019-09-30 Ilya Leoshkevich <iii@linux.ibm.com> 12042 12043 PR target/77918 12044 * config/s390/vector.md (vec_unordered<mode>): Call 12045 gen_vec_ordered<mode>. 12046 120472019-09-30 Yuliang Wang <yuliang.wang@arm.com> 12048 12049 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): 12050 New pattern for ASRD. 12051 * config/aarch64/iterators.md (UNSPEC_ASRD): New unspec. 12052 * internal-fn.def (IFN_DIV_POW2): New internal function. 12053 * optabs.def (sdiv_pow2_optab): New optab. 12054 * tree-vect-patterns.c (vect_recog_divmod_pattern): 12055 Modify pattern to support new operation. 12056 * doc/md.texi (sdiv_pow2$var{m3}): Documentation for the above. 12057 * doc/sourcebuild.texi (vect_sdiv_pow2_si): 12058 Document new target selector. 12059 120602019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12061 12062 * config/aarch64/aarch64.c (aarch64_layout_frame): Use crtl->abi 12063 to test whether we're compiling a vector PCS function and to test 12064 whether the function needs to save a particular register. 12065 Remove the vector PCS handling of df_set_regs_ever_live. 12066 (aarch64_components_for_bb): Use crtl->abi to test whether 12067 the function needs to save a particular register. 12068 (aarch64_process_components): Use crtl->abi to test whether 12069 we're compiling a vector PCS function. 12070 (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise. 12071 (aarch64_epilogue_uses): Remove handling of vector PCS functions. 12072 120732019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12074 12075 * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p): 12076 Delete. 12077 * config/aarch64/aarch64.c (aarch64_components_for_bb): Check 12078 whether the block calls a function that clobbers more registers 12079 than the current function is allowed to. 12080 (aarch64_use_simple_return_insn_p): Delete. 12081 * config/aarch64/aarch64.md (simple_return): Remove condition. 12082 120832019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12084 12085 * function-abi.h (function_abi_aggregator): New class. 12086 * function-abi.cc (function_abi_aggregator::caller_save_regs): New 12087 function. 12088 * ira.c (update_equiv_regs_prescan): New function. Call 12089 set_paradoxical_subreg here rather than... 12090 (update_equiv_regs): ...here. 12091 (ira): Call update_equiv_regs_prescan. 12092 120932019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12094 12095 * hard-reg-set.h (regs_invalidated_by_call): Only define if 12096 IN_TARGET_CODE. 12097 (call_used_or_fixed_regs): Likewise. 12098 (call_used_or_fixed_reg_p): Likewise. 12099 * reginfo.c (regs_invalidated_by_call): New macro. 12100 121012019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12102 12103 * shrink-wrap.c: Include function-abi.h. 12104 (requires_stack_frame_p): Use crtl->abi to test whether the 12105 current function can use a register without saving it first. 12106 121072019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12108 12109 * sel-sched-ir.h (_def::crosses_call): Replace with... 12110 (_def::crossed_call_abis): ..this new field. 12111 (def_list_add): Take a mask of ABIs instead of a crosses_call 12112 boolean. 12113 * sel-sched-ir.c (def_list_add): Likewise. Update initialization 12114 of _def accordingly. 12115 * sel-sched.c: Include function-abi.h. 12116 (hard_regs_data::regs_for_call_clobbered): Delete. 12117 (reg_rename::crosses_call): Replace with... 12118 (reg_rename::crossed_call_abis): ...this new field. 12119 (fur_static_params::crosses_call): Replace with... 12120 (fur_static_params::crossed_call_abis): ...this new field. 12121 (init_regs_for_mode): Don't initialize sel_hrd.regs_for_call_clobbered. 12122 (init_hard_regs_data): Use crtl->abi to test which registers the 12123 current function would need to save before it uses them. 12124 (mark_unavailable_hard_regs): Update handling of call-clobbered 12125 registers, using call_clobbers_in_region to find out which registers 12126 might be call-clobbered (but without taking -fipa-ra into account 12127 for now). Remove separate handling of partially call-clobbered 12128 registers. 12129 (verify_target_availability): Use crossed_call_abis instead of 12130 crosses_call. 12131 (get_spec_check_type_for_insn, find_used_regs): Likewise. 12132 (fur_orig_expr_found, fur_on_enter, fur_orig_expr_not_found): Likewise. 12133 121342019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12135 12136 * sched-deps.c (deps_analyze_insn): Use the ABI of the target 12137 function to test whether a register is fully or partly clobbered. 12138 121392019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12140 12141 * rtlanal.c: Include function-abi.h. 12142 (reg_set_p): Use insn_callee_abi to get the ABI of the called 12143 function and clobbers_reg_p to test whether the register 12144 is call-clobbered. 12145 (find_all_hard_reg_sets): When implicit is true, use insn_callee_abi 12146 to get the ABI of the called function and full_reg_clobbers to 12147 get the set of fully call-clobbered registers. Warn about the 12148 pitfalls of using this mode. 12149 121502019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12151 12152 * reload.c: Include function-abi.h. 12153 (find_equiv_reg): Use clobbers_reg_p to test whether either 12154 of the equivalent registers is clobbered by a call. 12155 * reload1.c: Include function-abi.h. 12156 (reg_reloaded_call_part_clobbered): Delete. 12157 (reload): Use crtl->abi to test which registers would need 12158 saving in the prologue before use. 12159 (find_reg): Likewise. 12160 (emit_reload_insns): Remove code for reg_reloaded_call_part_clobbered. 12161 (reload_as_needed): Likewise. Use full_and_partial_reg_clobbers 12162 instead of call_used_or_fixed_regs | reg_reloaded_call_part_clobbered. 12163 121642019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12165 12166 * regrename.h (du_head::call_clobber_mask): New field. 12167 (du_head::need_caller_save_reg): Replace with... 12168 (du_head::call_abis): ...this new field. 12169 * regrename.c: Include function-abi.h. 12170 (call_clobbered_in_chain_p): New function. 12171 (check_new_reg_p): Use crtl->abi when deciding whether a register 12172 is free for use after RA. Use call_clobbered_in_chain_p to test 12173 whether a candidate register would be clobbered by a call. 12174 (find_rename_reg): Don't add call-clobber conflicts here. 12175 (rename_chains): Check call_abis instead of need_caller_save_reg. 12176 (merge_chains): Update for changes to du_head. 12177 (build_def_use): Use insn_callee_abi to get the ABI of the call insn 12178 target. Record the ABI identifier in call_abis and the set of 12179 fully or partially clobbered registers in call_clobber_mask. 12180 Add fully-clobbered registers to hard_conflicts here rather 12181 than in find_rename_reg. 12182 * config/aarch64/cortex-a57-fma-steering.c: Include function-abi.h. 12183 (rename_single_chain): Check call_abis instead of need_caller_save_reg. 12184 * config/aarch64/falkor-tag-collision-avoidance.c: Include 12185 function-abi.h. 12186 * config/c6x/c6x.c: Likewise. 12187 121882019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12189 12190 * regcprop.c (copyprop_hardreg_forward_1): Use the recorded 12191 mode of the register when deciding whether it is no longer 12192 available after a call. 12193 121942019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12195 12196 * recog.c: Include function-abi.h. 12197 (peep2_find_free_register): Use crtl->abi when deciding whether 12198 a register is free for use after RA. 12199 122002019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12201 12202 * postreload-gcse.c: Include regs.h and function-abi.h. 12203 (record_opr_changes): Use insn_callee_abi to get the ABI of the 12204 call insn target. Conservatively assume that partially-clobbered 12205 registers are altered. 12206 122072019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12208 12209 * postreload.c (reload_combine_recognize_pattern): Use crtl->abi 12210 when deciding whether a register is free for use after RA. 12211 (reload_combine): Remove unnecessary use of fixed_reg_set. 12212 (reload_cse_move2add): Use insn_callee_abi to get the ABI of the 12213 call insn target. Use reg_mode when testing whether a register 12214 is no longer available. 12215 122162019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12217 12218 * target.def (return_call_with_max_clobbers): Delete. 12219 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete. 12220 * doc/tm.texi: Regenerate. 12221 * config/aarch64/aarch64.c (aarch64_return_call_with_max_clobbers) 12222 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete. 12223 * lra-int.h (lra_reg::actual_call_used_reg_set): Delete. 12224 (lra_reg::call_insn): Delete. 12225 * lra.c: Include function-abi.h. 12226 (initialize_lra_reg_info_element): Don't initialize the fields above. 12227 (lra): Use crtl->abi to test whether the current function needs to 12228 save a register in the prologue. Remove special pre-inheritance 12229 lra_create_live_ranges pass for flag_ipa_ra. 12230 * lra-assigns.c: Include function-abi.h 12231 (find_hard_regno_for_1): Use crtl->abi to test whether the current 12232 function needs to save a register in the prologue. 12233 (lra_assign): Assert that registers aren't allocated to a 12234 conflicting register, rather than checking only for overlaps 12235 with call_used_or_fixed_regs. Do this even for flag_ipa_ra, 12236 and for registers that are not live across a call. 12237 * lra-constraints.c (last_call_for_abi): New variable. 12238 (full_and_partial_call_clobbers): Likewise. 12239 (setup_next_usage_insn): Remove the register from 12240 full_and_partial_call_clobbers. 12241 (need_for_call_save_p): Use call_clobbered_in_region_p to test 12242 whether the register needs a caller save. 12243 (need_for_split_p): Use full_and_partial_reg_clobbers instead 12244 of call_used_or_fixed_regs. 12245 (inherit_in_ebb): Initialize and maintain last_call_for_abi and 12246 full_and_partial_call_clobbers. 12247 * lra-lives.c (check_pseudos_live_through_calls): Replace 12248 last_call_used_reg_set and call_insn arguments with an abi argument. 12249 Remove handling of lra_reg::call_insn. Use function_abi::mode_clobbers 12250 as the set of conflicting registers. 12251 (calls_have_same_clobbers_p): Delete. 12252 (process_bb_lives): Track the ABI of the last call instead of an 12253 insn/HARD_REG_SET pair. Update calls to 12254 check_pseudos_live_through_calls. Use eh_edge_abi to calculate 12255 the set of registers that could be clobbered by an EH edge. 12256 Include partially-clobbered as well as fully-clobbered registers. 12257 (lra_create_live_ranges_1): Don't initialize lra_reg::call_insn. 12258 * lra-remat.c: Include function-abi.h. 12259 (call_used_regs_arr_len, call_used_regs_arr): Delete. 12260 (set_bb_regs): Use insn_callee_abi to get the set of call-clobbered 12261 registers and bitmap_view to combine them into dead_regs. 12262 (call_used_input_regno_present_p): Take a function_abi argument 12263 and use it to test whether a register is call-clobbered. 12264 (calculate_gen_cands): Use insn_callee_abi to get the ABI of the 12265 call insn target. Update tje call to call_used_input_regno_present_p. 12266 (do_remat): Likewise. 12267 (lra_remat): Remove the initialization of call_used_regs_arr_len 12268 and call_used_regs_arr. 12269 122702019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12271 12272 * loop-iv.c: Include regs.h and function-abi.h. 12273 (simplify_using_initial_values): Use insn_callee_abi to get the 12274 ABI of the call insn target. Conservatively assume that 12275 partially-clobbered registers are altered. 12276 122772019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12278 12279 * function-abi.h (call_clobbers_in_region): Declare. 12280 (call_clobbered_in_region_p): New function. 12281 * function-abi.cc (call_clobbers_in_region): Likewise. 12282 * ira-int.h: Include function-abi.h. 12283 (ira_allocno::crossed_calls_abis): New field. 12284 (ALLOCNO_CROSSED_CALLS_ABIS): New macro. 12285 (ira_need_caller_save_regs): New function. 12286 (ira_need_caller_save_p): Likewise. 12287 * ira.c (setup_reg_renumber): Use ira_need_caller_save_p instead 12288 of call_used_or_fixed_regs. 12289 (do_reload): Use crtl->abi to test whether the current function 12290 needs to save a register in the prologue. Count registers that 12291 need to be saved rather than registers that don't. 12292 * ira-build.c (create_cap_allocno): Copy ALLOCNO_CROSSED_CALLS_ABIS. 12293 Remove unnecessary | from ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS. 12294 (propagate_allocno_info): Merge ALLOCNO_CROSSED_CALLS_ABIS too. 12295 (propagate_some_info_from_allocno): Likewise. 12296 (copy_info_to_removed_store_destinations): Likewise. 12297 (ira_flattening): Say that ALLOCNO_CROSSED_CALLS_ABIS and 12298 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS are handled conservatively. 12299 (ira_build): Use ira_need_caller_save_regs instead of 12300 call_used_or_fixed_regs. 12301 * ira-color.c (calculate_saved_nregs): Use crtl->abi to test 12302 whether the current function would need to save a register 12303 before using it. 12304 (calculate_spill_cost): Likewise. 12305 (allocno_reload_assign): Use ira_need_caller_save_regs and 12306 ira_need_caller_save_p instead of call_used_or_fixed_regs. 12307 * ira-conflicts.c (ira_build_conflicts): Use 12308 ira_need_caller_save_regs rather than call_used_or_fixed_regs 12309 as the set of call-clobbered registers. Remove the 12310 call_used_or_fixed_regs mask from the calculation of 12311 temp_hard_reg_set and mask its use instead. Remove special 12312 handling of partially-clobbered registers. 12313 * ira-costs.c (ira_tune_allocno_costs): Use ira_need_caller_save_p. 12314 * ira-lives.c (process_bb_node_lives): Use mode_clobbers to 12315 calculate the set of conflicting registers for calls that 12316 can throw. Record the ABIs of calls in ALLOCNO_CROSSED_CALLS_ABIS. 12317 Use full_and_partial_reg_clobbers rather than full_reg_clobbers 12318 for the calculation of ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS. 12319 Use eh_edge_abi to calculate the set of registers that could 12320 be clobbered by an EH edge. Include partially-clobbered as 12321 well as fully-clobbered registers. 12322 123232019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12324 12325 * haifa-sched.c: Include function-abi.h. 12326 (alloc_global_sched_pressure_data): Use crtl->abi to check whether 12327 the function would need to save a register before using it. 12328 123292019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12330 12331 * gcse.c: Include function-abi.h. 12332 (compute_hash_table_work): Use insn_callee_abi to get the ABI of 12333 the call insn target. Invalidate partially call-clobbered 12334 registers as well as fully call-clobbered ones. 12335 123362019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12337 12338 * function.c (aggregate_value_p): Work out which ABI the 12339 function is using before testing which registers are at least 12340 partly preserved by a call. 12341 123422019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12343 12344 * early-remat.c: Include regs.h and function-abi.h. 12345 (early_remat::maybe_add_candidate): Don't check for call-clobbered 12346 registers here. 12347 (early_remat::restrict_remat_for_unavail_regs): New function. 12348 (early_remat::restrict_remat_for_call): Likewise. 12349 (early_remat::process_block): Before calling emit_remat_insns 12350 for a previous call in the block, invalidate any candidates 12351 that would clobber call-preserved registers. 12352 (early_remat::emit_remat_insns_for_block): Likewise for the 12353 final call in a block. Do the same thing for live-in registers 12354 when calling emit_remat_insns at the head of a block. 12355 123562019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12357 12358 * df-scan.c (df_get_entry_block_def_set): Use crtl->abi to test 12359 whether the current function needs to save at least part of a 12360 register before using it. 12361 (df_get_exit_block_use_set): Likewise for epilogue restores. 12362 123632019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12364 12365 * df-problems.c: Include regs.h and function-abi.h. 12366 (df_rd_problem_data): Rename sparse_invalidated_by_call to 12367 sparse_invalidated_by_eh and dense_invalidated_by_call to 12368 dense_invalidated_by_eh. 12369 (df_print_bb_index): Update accordingly. 12370 (df_rd_alloc, df_rd_start_dump, df_rd_confluence_n): Likewise. 12371 (df_lr_confluence_n): Use eh_edge_abi to get the set of registers 12372 that are clobbered by an EH edge. Clobber partially-clobbered 12373 registers as well as fully-clobbered ones. 12374 (df_md_confluence_n): Likewise. 12375 (df_rd_local_compute): Likewise. Update for changes to 12376 df_rd_problem_data. 12377 * df-scan.c (df_scan_start_dump): Use eh_edge_abi to get the set 12378 of registers that are clobbered by an EH edge. Includde partially- 12379 clobbered registers as well as fully-clobbered ones. 12380 123812019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12382 12383 * cselib.c (cselib_process_insn): If we know what mode a 12384 register was set in, check whether it is clobbered in that 12385 mode by a call. Only fall back to reg_raw_mode if that fails. 12386 123872019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12388 12389 * cse.c: Include regs.h and function-abi.h. 12390 (invalidate_for_call): Take the call insn as an argument. 12391 Use insn_callee_abi to get the ABI of the call and invalidate 12392 partially clobbered registers as well as fully clobbered ones. 12393 (cse_insn): Update call accordingly. 12394 123952019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12396 12397 * combine.c: Include function-abi.h. 12398 (record_dead_and_set_regs): Use insn_callee_abi to get the ABI 12399 of the target of call insns. Invalidate partially-clobbered 12400 registers as well as fully-clobbered ones. 12401 124022019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12403 12404 * cfgloopanal.c: Include regs.h and function-abi.h. 12405 (init_set_costs): Use default_function_abi to test whether 12406 a general register is call-clobbered. 12407 124082019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12409 12410 * cfgcleanup.c (old_insns_match_p): Compare the ABIs of calls 12411 instead of the call-clobbered sets. 12412 124132019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12414 12415 * caller-save.c (setup_save_areas): Remove redundant |s of 12416 fixed_reg_set. 12417 (save_call_clobbered_regs): Likewise. Use the call ABI rather 12418 than call_used_or_fixed_regs to decide whether a REG_RETURNED 12419 value is useful. 12420 124212019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12422 12423 * rtl.h (predefined_function_abi): Declare. 12424 (choose_hard_reg_mode): Take a pointer to a predefined_function_abi 12425 instead of a boolean call_save flag. 12426 * config/gcn/gcn.c (gcn_hard_regno_caller_save_mode): Update call 12427 accordingly. 12428 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. 12429 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. 12430 * config/mips/mips.c (mips_hard_regno_caller_save_mode): Likewise. 12431 * config/msp430/msp430.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. 12432 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. 12433 * config/sh/sh.c (sh_hard_regno_caller_save_mode): Likewise. 12434 * reginfo.c (init_reg_modes_target): Likewise. 12435 (choose_hard_reg_mode): Take a pointer to a predefined_function_abi 12436 instead of a boolean call_save flag. 12437 * targhooks.c: Include function-abi.h. 12438 (default_dwarf_frame_reg_mode): Update call to choose_hard_reg_mode, 12439 using eh_edge_abi to choose the mode. 12440 124412019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12442 12443 * target.def (hard_regno_call_part_clobbered): Take an ABI 12444 identifier instead of an rtx_insn. 12445 * doc/tm.texi: Regenerate. 12446 * hooks.h (hook_bool_insn_uint_mode_false): Delete. 12447 (hook_bool_uint_uint_mode_false): New function. 12448 * hooks.c (hook_bool_insn_uint_mode_false): Delete. 12449 (hook_bool_uint_uint_mode_false): New function. 12450 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered): 12451 Take an ABI identifier instead of an rtx_insn. 12452 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Likewise. 12453 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Likewise. 12454 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise. 12455 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Likewise. 12456 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): 12457 Likewise. 12458 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Likewise. 12459 * cselib.c: Include function-abi.h. 12460 (cselib_process_insn): Update call to 12461 targetm.hard_regno_call_part_clobbered, using insn_callee_abi 12462 to get the appropriate ABI identifier. 12463 * function-abi.cc (predefined_function_abi::initialize): Update call 12464 to targetm.hard_regno_call_part_clobbered. 12465 * ira-conflicts.c (ira_build_conflicts): Likewise. 12466 * ira-costs.c (ira_tune_allocno_costs): Likewise. 12467 * lra-constraints.c: Include function-abi.h. 12468 (need_for_call_save_p): Update call to 12469 targetm.hard_regno_call_part_clobbered, using insn_callee_abi 12470 to get the appropriate ABI identifier. 12471 * lra-lives.c (check_pseudos_live_through_calls): Likewise. 12472 * regcprop.c (copyprop_hardreg_forward_1): Update call 12473 to targetm.hard_regno_call_part_clobbered. 12474 * reginfo.c (choose_hard_reg_mode): Likewise. 12475 * regrename.c (check_new_reg_p): Likewise. 12476 * reload.c (find_equiv_reg): Likewise. 12477 * reload1.c (emit_reload_insns): Likewise. 12478 * sched-deps.c: Include function-abi.h. 12479 (deps_analyze_insn): Update call to 12480 targetm.hard_regno_call_part_clobbered, using insn_callee_abi 12481 to get the appropriate ABI identifier. 12482 * sel-sched.c (init_regs_for_mode, mark_unavailable_hard_regs): Update 12483 call to targetm.hard_regno_call_part_clobbered. 12484 * targhooks.c (default_dwarf_frame_reg_mode): Likewise. 12485 124862019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12487 12488 * config/i386/i386.c: Include function-abi.h. 12489 (ix86_avx_u128_mode_needed): Treat function calls as AVX_U128_ANY 12490 if they preserve some 256-bit or 512-bit SSE registers. 12491 124922019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12493 12494 * target.def (insn_callee_abi): New hook. 12495 (remove_extra_call_preserved_regs): Delete. 12496 * doc/tm.texi.in (TARGET_INSN_CALLEE_ABI): New macro. 12497 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete. 12498 * doc/tm.texi: Regenerate. 12499 * targhooks.h (default_remove_extra_call_preserved_regs): Delete. 12500 * targhooks.c (default_remove_extra_call_preserved_regs): Delete. 12501 * config/aarch64/aarch64.c (aarch64_simd_call_p): Constify the 12502 insn argument. 12503 (aarch64_remove_extra_call_preserved_regs): Delete. 12504 (aarch64_insn_callee_abi): New function. 12505 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete. 12506 (TARGET_INSN_CALLEE_ABI): New macro. 12507 * rtl.h (get_call_fndecl): Declare. 12508 (cgraph_rtl_info): Fix formatting. Tweak comment for 12509 function_used_regs. Remove function_used_regs_valid. 12510 * rtlanal.c (get_call_fndecl): Moved from final.c 12511 * function-abi.h (insn_callee_abi): Declare. 12512 (target_function_abi_info): Mention insn_callee_abi. 12513 * function-abi.cc (fndecl_abi): Handle flag_ipa_ra in a similar 12514 way to get_call_reg_set_usage did. 12515 (insn_callee_abi): New function. 12516 * regs.h (get_call_reg_set_usage): Delete. 12517 * final.c: Include function-abi.h. 12518 (collect_fn_hard_reg_usage): Add fixed and stack registers to 12519 function_used_regs before the main loop rather than afterwards. 12520 Use insn_callee_abi instead of get_call_reg_set_usage. Exit early 12521 if function_used_regs ends up not being useful. 12522 (get_call_fndecl): Move to rtlanal.c 12523 (get_call_cgraph_rtl_info, get_call_reg_set_usage): Delete. 12524 * caller-save.c: Include function-abi.h. 12525 (setup_save_areas, save_call_clobbered_regs): Use insn_callee_abi 12526 instead of get_call_reg_set_usage. 12527 * cfgcleanup.c: Include function-abi.h. 12528 (old_insns_match_p): Use insn_callee_abi instead of 12529 get_call_reg_set_usage. 12530 * cgraph.h (cgraph_node::rtl_info): Take a const_tree instead of 12531 a tree. 12532 * cgraph.c (cgraph_node::rtl_info): Likewise. Initialize 12533 function_used_regs. 12534 * df-scan.c: Include function-abi.h. 12535 (df_get_call_refs): Use insn_callee_abi instead of 12536 get_call_reg_set_usage. 12537 * ira-lives.c: Include function-abi.h. 12538 (process_bb_node_lives): Use insn_callee_abi instead of 12539 get_call_reg_set_usage. 12540 * lra-lives.c: Include function-abi.h. 12541 (process_bb_lives): Use insn_callee_abi instead of 12542 get_call_reg_set_usage. 12543 * postreload.c: Include function-abi.h. 12544 (reload_combine): Use insn_callee_abi instead of 12545 get_call_reg_set_usage. 12546 * regcprop.c: Include function-abi.h. 12547 (copyprop_hardreg_forward_1): Use insn_callee_abi instead of 12548 get_call_reg_set_usage. 12549 * resource.c: Include function-abi.h. 12550 (mark_set_resources, mark_target_live_regs): Use insn_callee_abi 12551 instead of get_call_reg_set_usage. 12552 * var-tracking.c: Include function-abi.h. 12553 (dataflow_set_clear_at_call): Use insn_callee_abi instead of 12554 get_call_reg_set_usage. 12555 125562019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12557 12558 * target.def (fntype_abi): New target hook. 12559 * doc/tm.texi.in (TARGET_FNTYPE_ABI): Likewise. 12560 * doc/tm.texi: Regenerate. 12561 * target.h (predefined_function_abi): Declare. 12562 * function-abi.cc (fntype_abi): Call targetm.calls.fntype_abi, 12563 if defined. 12564 * config/aarch64/aarch64.h (ARM_PCS_SIMD): New arm_pcs value. 12565 * config/aarch64/aarch64.c: Include function-abi.h. 12566 (aarch64_simd_abi, aarch64_fntype_abi): New functions. 12567 (TARGET_FNTYPE_ABI): Define. 12568 125692019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12570 12571 * Makefile.in (OBJS): Add function-abi.o. 12572 (GTFILES): Add function-abi.h. 12573 * function-abi.cc: New file. 12574 * function-abi.h: Likewise. 12575 * emit-rtl.h (rtl_data::abi): New field. 12576 * function.c: Include function-abi.h. 12577 (prepare_function_start): Initialize crtl->abi. 12578 * read-rtl-function.c: Include regs.h and function-abi.h. 12579 (read_rtl_function_body): Initialize crtl->abi. 12580 (read_rtl_function_body_from_file_range): Likewise. 12581 * reginfo.c: Include function-abi.h. 12582 (init_reg_sets_1): Initialize default_function_abi. 12583 (globalize_reg): Call add_full_reg_clobber for each predefined ABI 12584 when making a register global. 12585 * target-globals.h (this_target_function_abi_info): Declare. 12586 (target_globals::function_abi_info): New field. 12587 (restore_target_globals): Copy it. 12588 * target-globals.c: Include function-abi.h. 12589 (default_target_globals): Initialize the function_abi_info field. 12590 (target_globals): Allocate it. 12591 (save_target_globals): Free it. 12592 125932019-09-30 Nick Clifton <nickc@redhat.com> 12594 12595 PR target/85978 12596 * config/frv/frv.c (frv_register_move_cost): Add break statements 12597 to avoid falling through to the wrong cases. Tidy code. 12598 125992019-09-30 Richard Sandiford <richard.sandiford@arm.com> 12600 12601 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered): 12602 For multi-registers modes, test how big each register part is. 12603 126042019-09-30 Nick Clifton <nickc@redhat.com> 12605 12606 PR target/59205 12607 * config/iq2000/iq2000.c (iq2000_select_section): Delete. 12608 (TARGET_ASM_SELECT_SECTION): Remove definition. 12609 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Allow definition. 12610 126112019-09-30 Ilya Leoshkevich <iii@linux.ibm.com> 12612 12613 * emit-rtl.c (init_raw_REG): New function. 12614 (gen_raw_REG): Use init_raw_REG. 12615 * gengenrtl.c (gendef): Emit init_* functions and alloca_* 12616 macros. 12617 * rtl.c (rtx_alloc_stat_v): Use rtx_init. 12618 * rtl.h (rtx_init): New function. 12619 (rtx_alloca): New function. 12620 (init_raw_REG): New function. 12621 (alloca_raw_REG): New macro. 12622 126232019-09-30 Michael Meissner <meissner@linux.ibm.com> 12624 12625 * config/rs6000/predicates.md (pcrel_address): Delete predicate. 12626 (pcrel_local_address): Replace pcrel_address predicate, use the 12627 new function address_to_insn_form. 12628 (pcrel_external_address): Replace with new implementation using 12629 address_to_insn_form.. 12630 (prefixed_mem_operand): Delete predicate which is now unused. 12631 (pcrel_external_mem_operand): Delete predicate which is now 12632 unused. 12633 * config/rs6000/rs6000-protos.h (enum insn_form): New 12634 enumeration. 12635 (enum non_prefixed_form): New enumeration. 12636 (address_to_insn_form): New declaration. 12637 (prefixed_load_p): New declaration. 12638 (prefixed_store_p): New declaration. 12639 (prefixed_paddi_p): New declaration. 12640 (rs6000_asm_output_opcode): New declaration. 12641 (rs6000_final_prescan_insn): Move declaration and update calling 12642 signature. 12643 (address_is_prefixed): New helper inline function. 12644 * config/rs6000/rs6000.c(print_operand_address): Check for either 12645 PC-relative local symbols or PC-relative external symbols. 12646 (rs6000_emit_move): Support loading PC-relative addresses. 12647 (mode_supports_prefixed_address_p): Delete, no longer used. 12648 (rs6000_prefixed_address_mode_p): Delete, no longer used. 12649 (address_to_insn_form): New function to decode an address format. 12650 (reg_to_non_prefixed): New function to identify what the 12651 non-prefixed memory instruction format is for a register. 12652 (prefixed_load_p): New function to identify prefixed loads. 12653 (prefixed_store_p): New function to identify prefixed stores. 12654 (prefixed_paddi_p): New function to identify prefixed load 12655 immediates. 12656 (next_insn_prefixed_p): New static state variable. 12657 (rs6000_final_prescan_insn): New function to determine if an insn 12658 uses a prefixed instruction. 12659 (rs6000_asm_output_opcode): New function to emit 'p' in front of a 12660 prefixed instruction. 12661 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): New target hook. 12662 (ASM_OUTPUT_OPCODE): New target hook. 12663 * config/rs6000/rs6000.md (prefixed): New insn attribute for 12664 prefixed instructions. 12665 (prefixed_length): New insn attribute for the size of prefixed 12666 instructions. 12667 (non_prefixed_length): New insn attribute for the size of 12668 non-prefixed instructions. 12669 (pcrel_local_addr): New insn to load up a local PC-relative 12670 address. 12671 (pcrel_extern_addr): New insn to load up an external PC-relative 12672 address. 12673 (mov<mode>_64bit_dm): Split the alternatives for loading 0.0 to a 12674 GPR and loading a 128-bit floating point type to a GPR. 12675 126762019-09-30 Richard Biener <rguenther@suse.de> 12677 12678 * gimple.c (gimple_get_lhs): For PHIs return the result. 12679 * tree-vectorizer.h (vectorizable_live_operation): Also get the 12680 SLP instance as argument. 12681 * tree-vect-loop.c (vect_analyze_loop_operations): Also handle 12682 double-reduction PHIs with vectorizable_lc_phi. 12683 (vect_analyze_loop_operations): Adjust. 12684 (vect_create_epilog_for_reduction): Remove all code not dealing 12685 with reduction LC PHI or epilogue generation. 12686 (vectorizable_live_operation): Call vect_create_epilog_for_reduction 12687 for live stmts of reductions. 12688 * tree-vect-stmts.c (vectorizable_condition): When !for_reduction 12689 do not handle defs that are not vect_internal_def. 12690 (can_vectorize_live_stmts): Adjust. 12691 (vect_analyze_stmt): When the vectorized stmt defined a value 12692 used on backedges adjust the backedge uses of vectorized PHIs. 12693 126942019-09-30 Martin Jambor <mjambor@suse.cz> 12695 12696 PR ipa/91853 12697 * tree-inline.c (force_value_to_type): New function. 12698 (setup_one_parameter): Use force_value_to_type to convert type. 12699 * tree-inline.c (force_value_to_type): Declare. 12700 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Deal 12701 with register type mismatches. 12702 127032019-09-30 Andreas Tobler <andreast@gcc.gnu.org> 12704 12705 * config.gcc: Use the secure-plt on FreeBSD 13 and upwards for 12706 32-bit PowerPC. 12707 Define TARGET_FREEBSD32_SECURE_PLT for 64-bit PowerPC. 12708 * config/rs6000/t-freebsd64: Make use of the above define and build 12709 the 32-bit libraries with secure-plt. 12710 127112019-09-30 Jakub Jelinek <jakub@redhat.com> 12712 12713 PR target/91931 12714 * config/i386/i386-expand.c (ix86_expand_adjust_ufix_to_sfix_si): Use 12715 gen_int_mode instead of GEN_INT. 12716 127172019-09-29 Iain Sandoe <iain@sandoe.co.uk> 12718 12719 * config/darwin.c (gen_macho_low): Amend to include the mode 12720 argument. 12721 (machopic_indirect_data_reference): Amend gen_macho_low call 12722 to include mode argument 12723 * config/rs6000/rs6000.c (emit_move): Likewise. Amend a comment. 12724 * config/rs6000/darwin.md (@macho_low_<mode>): New, replaces 12725 the macho_high expander and two define_insn entries. 12726 127272019-09-29 Jakub Jelinek <jakub@redhat.com> 12728 12729 PR bootstrap/90543 12730 * optc-save-gen.awk: Fix up printing string option differences. 12731 127322019-09-29 Kewen Lin <linkw@gcc.gnu.org> 12733 12734 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower 12735 vec_perm cost to 1 for non-Power7 VSX architectures. 12736 127372019-09-29 Kewen Lin <linkw@gcc.gnu.org> 12738 12739 * config/rs6000/vsx.md (vec_pack[su]_float_v2di): New define_expand. 12740 (vec_unpack_[su]fix_trunc_hi_v4sf): Likewise. 12741 (vec_unpack_[su]fix_trunc_lo_v4sf): Likewise. 12742 127432019-09-28 Iain Sandoe <iain@sandoe.co.uk> 12744 12745 * config/darwin.c (gen_macho_high): Amend to include the mode 12746 argument. 12747 (machopic_indirect_data_reference): Amend gen_macho_high call 12748 to include mode argument. 12749 (machopic_legitimize_pic_address): Likewise. 12750 * config/rs6000/rs6000.c (rs6000_legitimize_address): 12751 * config/rs6000/darwin.md (@macho_high_<mode>): New, replaces 12752 the macho_high expander and two define_insn entries. 12753 127542019-09-28 Oleg Endo <olegendo@gcc.gnu.org> 12755 12756 PR target/86805 12757 * config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. 12758 127592019-09-28 Oleg Endo <olegendo@gcc.gnu.org> 12760 12761 PR target/80672 12762 * config/sh/sh.c (parse_validate_atomic_model_option): Use 12763 std::string::compare instead of std::string::find. 12764 127652019-09-27 Maciej W. Rozycki <macro@wdc.com> 12766 12767 * configure: Regenerate. 12768 127692019-09-27 Jakub Jelinek <jakub@redhat.com> 12770 12771 PR middle-end/91920 12772 * gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL 12773 variables as shared. 12774 127752019-09-27 Iain Sandoe <iain@sandoe.co.uk> 12776 12777 * config/rs6000/darwin.md (@macho_correct_pic_<mode>): New, 12778 replaces the expander and two define_insn entries. 12779 (@reload_macho_picbase_<mode>): Update gen_macho_correct_pic 12780 call. 12781 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise. 12782 127832019-09-27 David Malcolm <dmalcolm@redhat.com> 12784 12785 * fibonacci_heap.h (fibonacci_heap::empty): Make const. 12786 (fibonacci_heap::nodes): Likewise. 12787 (fibonacci_heap::min_key): Likewise. 12788 (fibonacci_heap::min): Likewise. 12789 127902019-09-27 David Malcolm <dmalcolm@redhat.com> 12791 12792 * cgraph.c (cgraph_node::get_fun): Make const. 12793 * cgraph.h (cgraph_node::get_fun): Likewise. 12794 127952019-09-27 Jakub Jelinek <jakub@redhat.com> 12796 12797 PR target/91919 12798 * config/arm/arm.md (<US>mlal): Remove SE wrappers around operands 12799 of SImode MULT. 12800 128012019-09-27 Richard Biener <rguenther@suse.de> 12802 12803 * tree-vectorizer.h (_stmt_vec_info::reduc_fn): New. 12804 (STMT_VINFO_REDUC_FN): Likewise. 12805 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize 12806 STMT_VINFO_REDUC_FN. 12807 * tree-vect-loop.c (vect_is_simple_reduction): Fix STMT_VINFO_REDUC_IDX 12808 for condition reductions. 12809 (vect_create_epilog_for_reduction): Compute all required state 12810 from the stmt to be vectorized. 12811 (vectorizable_reduction): Simplify vect_create_epilog_for_reduction 12812 invocation and remove then dead code. For single def-use chains 12813 record only a single vector stmt. 12814 128152019-09-27 Richard Sandiford <richard.sandiford@arm.com> 12816 12817 * config/aarch64/aarch64-protos.h (aarch64_builtin_class): New enum. 12818 (AARCH64_BUILTIN_SHIFT, AARCH64_BUILTIN_CLASS): New constants. 12819 (aarch64_gimple_fold_builtin, aarch64_mangle_builtin_type) 12820 (aarch64_fold_builtin, aarch64_init_builtins, aarch64_expand_builtin): 12821 (aarch64_builtin_decl, aarch64_builtin_rsqrt): Delete. 12822 (aarch64_general_mangle_builtin_type, aarch64_general_init_builtins): 12823 (aarch64_general_fold_builtin, aarch64_general_gimple_fold_builtin): 12824 (aarch64_general_expand_builtin, aarch64_general_builtin_decl): 12825 (aarch64_general_builtin_rsqrt): Declare. 12826 * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin): 12827 New function. 12828 (aarch64_mangle_builtin_type): Rename to... 12829 (aarch64_general_mangle_builtin_type): ...this. 12830 (aarch64_init_fcmla_laneq_builtins, aarch64_init_simd_builtins) 12831 (aarch64_init_crc32_builtins, aarch64_init_builtin_rsqrt) 12832 (aarch64_init_pauth_hint_builtins, aarch64_init_tme_builtins): Use 12833 aarch64_general_add_builtin instead of add_builtin_function. 12834 (aarch64_init_builtins): Rename to... 12835 (aarch64_general_init_builtins): ...this. Use 12836 aarch64_general_add_builtin instead of add_builtin_function. 12837 (aarch64_builtin_decl): Rename to... 12838 (aarch64_general_builtin_decl): ...this and remove the unused 12839 arguments. 12840 (aarch64_expand_builtin): Rename to... 12841 (aarch64_general_expand_builtin): ...this and remove the unused 12842 arguments. 12843 (aarch64_builtin_rsqrt): Rename to... 12844 (aarch64_general_builtin_rsqrt): ...this. 12845 (aarch64_fold_builtin): Rename to... 12846 (aarch64_general_fold_builtin): ...this. Take the function subcode 12847 and return type as arguments. Remove the "ignored" argument. 12848 (aarch64_gimple_fold_builtin): Rename to... 12849 (aarch64_general_gimple_fold_builtin): ...this. Take the function 12850 subcode and gcall as arguments, and return the new function call. 12851 * config/aarch64/aarch64.c (aarch64_init_builtins) 12852 (aarch64_fold_builtin, aarch64_gimple_fold_builtin) 12853 (aarch64_expand_builtin, aarch64_builtin_decl): New functions. 12854 (aarch64_builtin_reciprocal): Call aarch64_general_builtin_rsqrt 12855 instead of aarch64_builtin_rsqrt. 12856 (aarch64_mangle_type): Call aarch64_general_mangle_builtin_type 12857 instead of aarch64_mangle_builtin_type. 12858 128592019-09-27 Richard Sandiford <richard.sandiford@arm.com> 12860 12861 * target.def (check_builtin_call): New target hook. 12862 * doc/tm.texi.in (TARGET_CHECK_BUILTIN_CALL): New @hook. 12863 * doc/tm.texi: Regenerate. 12864 128652019-09-27 Richard Sandiford <richard.sandiford@arm.com> 12866 12867 PR tree-optimization/91909 12868 * tree-vect-loop.c (vect_create_epilog_for_reduction): Take a 12869 reduc_index parameter. When handling COND_REDUCTION, make sure 12870 that the reduction phi operand is in the correct arm of the 12871 VEC_COND_EXPR. 12872 (vectorizable_reduction): Pass reduc_index to the above. 12873 128742019-09-27 Yuliang Wang <yuliang.wang@arm.com> 12875 12876 * config/aarch64/aarch64-sve2.md (aarch64_sve2_sra<mode>): 12877 New combine pattern. 12878 128792019-09-26 Max Filippov <jcmvbkbc@gmail.com> 12880 12881 * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead 12882 loop instruction into new basic block before the loop when basic 12883 block that precedes the loop is empty. 12884 128852019-09-26 Jakub Jelinek <jakub@redhat.com> 12886 12887 * function.c (gimplify_parameters): Use build_clobber function. 12888 * tree-ssa.c (execute_update_addresses_taken): Likewise. 12889 * tree-inline.c (expand_call_inline): Likewise. 12890 * tree-sra.c (clobber_subtree): Likewise. 12891 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise. 12892 * omp-low.c (lower_rec_simd_input_clauses, lower_rec_input_clauses, 12893 lower_omp_single, lower_depend_clauses, lower_omp_taskreg, 12894 lower_omp_target): Likewise. 12895 * omp-expand.c (expand_omp_for_generic): Likewise. 12896 * omp-offload.c (ompdevlow_adjust_simt_enter): Likewise. 12897 128982019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com> 12899 12900 * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX, 12901 LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, 12902 LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, 12903 LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI, 12904 LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI, 12905 LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF, 12906 LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI, 12907 LD_ELEMREV_V16QI): Use the PURE attribute. 12908 129092019-09-26 Iain Sandoe <iain@sandoe.co.uk> 12910 12911 * config/rs6000/darwin.md: Replace the expanders for 12912 load_macho_picbase and reload_macho_picbase with use of '@' 12913 and <mode> in their respective define_insns. 12914 (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase. 12915 * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass 12916 Pmode to gen_load_macho_picbase. 12917 * config/rs6000/rs6000.md: Likewise. 12918 129192019-09-25 Richard Biener <rguenther@suse.de> 12920 12921 PR tree-optimization/91896 12922 * tree-vect-loop.c (vectorizable_reduction): The single 12923 def-use cycle optimization cannot apply when there's more 12924 than one pattern stmt involved. 12925 129262019-09-26 Richard Biener <rguenther@suse.de> 12927 12928 * tree-vect-loop.c (vect_analyze_loop_operations): Analyze 12929 loop-closed PHIs that are vect_internal_def. 12930 (vect_create_epilog_for_reduction): Exit early for nested cycles. 12931 Simplify. 12932 (vectorizable_lc_phi): New. 12933 * tree-vect-stmts.c (vect_analyze_stmt): Call vectorize_lc_phi. 12934 (vect_transform_stmt): Likewise. 12935 * tree-vectorizer.h (stmt_vec_info_type): Add lc_phi_info_type. 12936 (vectorizable_lc_phi): Declare. 12937 129382019-09-26 Richard Biener <rguenther@suse.de> 12939 12940 * tree-vect-loop.c (vect_analyze_loop_operations): Also call 12941 vectorizable_reduction for vect_double_reduction_def. 12942 (vect_transform_loop): Likewise. 12943 (vect_create_epilog_for_reduction): Move double-reduction 12944 PHI creation and preheader argument setting of PHIs ... 12945 (vectorizable_reduction): ... here. Also process 12946 vect_double_reduction_def PHIs, creating the vectorized 12947 PHI nodes, remembering the scalar adjustment computed for 12948 the epilogue in STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT. 12949 Remember the original reduction code in STMT_VINFO_REDUC_CODE. 12950 * tree-vectorizer.c (vec_info::new_stmt_vec_info): 12951 Initialize STMT_VINFO_REDUC_CODE. 12952 * tree-vectorizer.h (_stmt_vec_info::reduc_epilogue_adjustment): New. 12953 (_stmt_vec_info::reduc_code): Likewise. 12954 (STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise. 12955 (STMT_VINFO_REDUC_CODE): Likewise. 12956 129572019-09-26 Matt Turner <mattst88@gmail.com> 12958 12959 PR driver/69471 12960 * config/aarch64/aarch64.opt (march=): Add Negative(march=). 12961 (mtune=): Add Negative(mtune=). 12962 (mcpu=): Add Negative(mcpu=). 12963 * config/arm/arm.opt: Likewise. 12964 129652019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12966 12967 * config/arm/arm.md (arm_<simd32_op>): New define_insn. 12968 * config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx): 12969 Define. 12970 * config/arm/arm_acle.h: Define builtins for the above. 12971 * config/arm/iterators.md (SIMD32_DIMODE): New int_iterator. 12972 (simd32_op): Handle the above. 12973 * config/arm/unspecs.md: Define unspecs for the above. 12974 129752019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12976 12977 * config/arm/arm.md (arm_<simd32_op>): New define_insn. 12978 (arm_<sup>xtb16): Likewise. 12979 (arm_usada8): Likewise. 12980 * config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8, 12981 __uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax, 12982 __qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx, 12983 __uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16, 12984 __sxtb16, __uxtab16, __uxtb16): Define. 12985 * config/arm/arm_acle_builtins.def: Define builtins for the above. 12986 * config/arm/unspecs.md: Define unspecs for the above. 12987 * config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator. 12988 (USXTB16): Likewise. 12989 (simd32_op): New int_attribute. 12990 (sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16. 12991 * doc/sourcebuild.exp (arm_simd32_ok): Document. 12992 129932019-09-26 Martin Jambor <mjambor@suse.cz> 12994 12995 * ipa-sra.c (verify_splitting_accesses): Fix quoting in a call to 12996 internal_error. 12997 129982019-09-26 Martin Jambor <mjambor@suse.cz> 12999 13000 * ipa-sra.c (process_scan_results): Fix continue condition. 13001 130022019-09-26 Martin Liska <mliska@suse.cz> 13003 13004 PR tree-optimization/91885 13005 * tree-vectorizer.c (try_vectorize_loop_1): Add 13006 TODO_update_ssa_only_virtuals similarly to what slp pass does. 13007 130082019-09-26 Richard Sandiford <richard.sandiford@arm.com> 13009 13010 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use 13011 aarch64_plus_immediate rather than aarch64_uimm12_shift 13012 to test for valid PLUS immediates. 13013 130142019-09-25 Martin Jambor <mjambor@suse.cz> 13015 13016 * tree-sra.c (no_accesses_p): Remove. 13017 (no_accesses_representant): Likewise. 13018 130192019-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 13020 13021 * config/aarch64/arm_neon.h (vaba_s8): Use __ in identifiers 13022 consistenly. 13023 (vaba_s16): Likewise. 13024 (vaba_s32): Likewise. 13025 (vaba_u8): Likewise. 13026 (vaba_u16): Likewise. 13027 (vaba_u32): Likewise. 13028 (vabal_high_s8): Likewise. 13029 (vabal_high_s16): Likewise. 13030 (vabal_high_s32): Likewise. 13031 (vabal_high_u8): Likewise. 13032 (vabal_high_u16): Likewise. 13033 (vabal_high_u32): Likewise. 13034 (vabal_s8): Likewise. 13035 (vabal_s16): Likewise. 13036 (vabal_s32): Likewise. 13037 (vabal_u8): Likewise. 13038 (vabal_u16): Likewise. 13039 (vabal_u32): Likewise. 13040 (vabaq_s8): Likewise. 13041 (vabaq_s16): Likewise. 13042 (vabaq_s32): Likewise. 13043 (vabaq_u8): Likewise. 13044 (vabaq_u16): Likewise. 13045 (vabaq_u32): Likewise. 13046 (vabd_s8): Likewise. 13047 (vabd_s16): Likewise. 13048 (vabd_s32): Likewise. 13049 (vabd_u8): Likewise. 13050 (vabd_u16): Likewise. 13051 (vabd_u32): Likewise. 13052 (vabdl_high_s8): Likewise. 13053 (vabdl_high_s16): Likewise. 13054 (vabdl_high_s32): Likewise. 13055 (vabdl_high_u8): Likewise. 13056 (vabdl_high_u16): Likewise. 13057 (vabdl_high_u32): Likewise. 13058 (vabdl_s8): Likewise. 13059 (vabdl_s16): Likewise. 13060 (vabdl_s32): Likewise. 13061 (vabdl_u8): Likewise. 13062 (vabdl_u16): Likewise. 13063 (vabdl_u32): Likewise. 13064 (vabdq_s8): Likewise. 13065 (vabdq_s16): Likewise. 13066 (vabdq_s32): Likewise. 13067 (vabdq_u8): Likewise. 13068 (vabdq_u16): Likewise. 13069 (vabdq_u32): Likewise. 13070 (vaddlv_s8): Likewise. 13071 (vaddlv_s16): Likewise. 13072 (vaddlv_u8): Likewise. 13073 (vaddlv_u16): Likewise. 13074 (vaddlvq_s8): Likewise. 13075 (vaddlvq_s16): Likewise. 13076 (vaddlvq_s32): Likewise. 13077 (vaddlvq_u8): Likewise. 13078 (vaddlvq_u16): Likewise. 13079 (vaddlvq_u32): Likewise. 13080 (vcvtx_f32_f64): Likewise. 13081 (vcvtx_high_f32_f64): Likewise. 13082 (vcvtxd_f32_f64): Likewise. 13083 (vmla_n_f32): Likewise. 13084 (vmla_n_s16): Likewise. 13085 (vmla_n_s32): Likewise. 13086 (vmla_n_u16): Likewise. 13087 (vmla_n_u32): Likewise. 13088 (vmla_s8): Likewise. 13089 (vmla_s16): Likewise. 13090 (vmla_s32): Likewise. 13091 (vmla_u8): Likewise. 13092 (vmla_u16): Likewise. 13093 (vmla_u32): Likewise. 13094 (vmlal_high_n_s16): Likewise. 13095 (vmlal_high_n_s32): Likewise. 13096 (vmlal_high_n_u16): Likewise. 13097 (vmlal_high_n_u32): Likewise. 13098 (vmlal_high_s8): Likewise. 13099 (vmlal_high_s16): Likewise. 13100 (vmlal_high_s32): Likewise. 13101 (vmlal_high_u8): Likewise. 13102 (vmlal_high_u16): Likewise. 13103 (vmlal_high_u32): Likewise. 13104 (vmlal_n_s16): Likewise. 13105 (vmlal_n_s32): Likewise. 13106 (vmlal_n_u16): Likewise. 13107 (vmlal_n_u32): Likewise. 13108 (vmlal_s8): Likewise. 13109 (vmlal_s16): Likewise. 13110 (vmlal_s32): Likewise. 13111 (vmlal_u8): Likewise. 13112 (vmlal_u16): Likewise. 13113 (vmlal_u32): Likewise. 13114 (vmlaq_n_f32): Likewise. 13115 (vmlaq_n_s16): Likewise. 13116 (vmlaq_n_s32): Likewise. 13117 (vmlaq_n_u16): Likewise. 13118 (vmlaq_n_u32): Likewise. 13119 (vmlaq_s8): Likewise. 13120 (vmlaq_s16): Likewise. 13121 (vmlaq_s32): Likewise. 13122 (vmlaq_u8): Likewise. 13123 (vmlaq_u16): Likewise. 13124 (vmlaq_u32): Likewise. 13125 (vmls_n_f32): Likewise. 13126 (vmls_n_s16): Likewise. 13127 (vmls_n_s32): Likewise. 13128 (vmls_n_u16): Likewise. 13129 (vmls_n_u32): Likewise. 13130 (vmls_s8): Likewise. 13131 (vmls_s16): Likewise. 13132 (vmls_s32): Likewise. 13133 (vmls_u8): Likewise. 13134 (vmls_u16): Likewise. 13135 (vmls_u32): Likewise. 13136 (vmlsl_high_n_s16): Likewise. 13137 (vmlsl_high_n_s32): Likewise. 13138 (vmlsl_high_n_u16): Likewise. 13139 (vmlsl_high_n_u32): Likewise. 13140 (vmlsl_high_s8): Likewise. 13141 (vmlsl_high_s16): Likewise. 13142 (vmlsl_high_s32): Likewise. 13143 (vmlsl_high_u8): Likewise. 13144 (vmlsl_high_u16): Likewise. 13145 (vmlsl_high_u32): Likewise. 13146 (vmlsl_n_s16): Likewise. 13147 (vmlsl_n_s32): Likewise. 13148 (vmlsl_n_u16): Likewise. 13149 (vmlsl_n_u32): Likewise. 13150 (vmlsl_s8): Likewise. 13151 (vmlsl_s16): Likewise. 13152 (vmlsl_s32): Likewise. 13153 (vmlsl_u8): Likewise. 13154 (vmlsl_u16): Likewise. 13155 (vmlsl_u32): Likewise. 13156 (vmlsq_n_f32): Likewise. 13157 (vmlsq_n_s16): Likewise. 13158 (vmlsq_n_s32): Likewise. 13159 (vmlsq_n_u16): Likewise. 13160 (vmlsq_n_u32): Likewise. 13161 (vmlsq_s8): Likewise. 13162 (vmlsq_s16): Likewise. 13163 (vmlsq_s32): Likewise. 13164 (vmlsq_u8): Likewise. 13165 (vmlsq_u16): Likewise. 13166 (vmlsq_u32): Likewise. 13167 (vmovl_high_s8): Likewise. 13168 (vmovl_high_s16): Likewise. 13169 (vmovl_high_s32): Likewise. 13170 (vmovl_high_u8): Likewise. 13171 (vmovl_high_u16): Likewise. 13172 (vmovl_high_u32): Likewise. 13173 (vmovl_s8): Likewise. 13174 (vmovl_s16): Likewise. 13175 (vmovl_s32): Likewise. 13176 (vmovl_u8): Likewise. 13177 (vmovl_u16): Likewise. 13178 (vmovl_u32): Likewise. 13179 (vmovn_high_s16): Likewise. 13180 (vmovn_high_s32): Likewise. 13181 (vmovn_high_s64): Likewise. 13182 (vmovn_high_u16): Likewise. 13183 (vmovn_high_u32): Likewise. 13184 (vmovn_high_u64): Likewise. 13185 (vmovn_s16): Likewise. 13186 (vmovn_s32): Likewise. 13187 (vmovn_s64): Likewise. 13188 (vmovn_u16): Likewise. 13189 (vmovn_u32): Likewise. 13190 (vmovn_u64): Likewise. 13191 (vmull_high_n_s16): Likewise. 13192 (vmull_high_n_s32): Likewise. 13193 (vmull_high_n_u16): Likewise. 13194 (vmull_high_n_u32): Likewise. 13195 (vmull_high_p8): Likewise. 13196 (vmull_high_s8): Likewise. 13197 (vmull_high_s16): Likewise. 13198 (vmull_high_s32): Likewise. 13199 (vmull_high_u8): Likewise. 13200 (vmull_high_u16): Likewise. 13201 (vmull_high_u32): Likewise. 13202 (vmull_n_s16): Likewise. 13203 (vmull_n_s32): Likewise. 13204 (vmull_n_u16): Likewise. 13205 (vmull_n_u32): Likewise. 13206 (vmull_p8): Likewise. 13207 (vmull_s8): Likewise. 13208 (vmull_s16): Likewise. 13209 (vmull_s32): Likewise. 13210 (vmull_u8): Likewise. 13211 (vmull_u16): Likewise. 13212 (vmull_u32): Likewise. 13213 (vpadal_s8): Likewise. 13214 (vpadal_s16): Likewise. 13215 (vpadal_s32): Likewise. 13216 (vpadal_u8): Likewise. 13217 (vpadal_u16): Likewise. 13218 (vpadal_u32): Likewise. 13219 (vpadalq_s8): Likewise. 13220 (vpadalq_s16): Likewise. 13221 (vpadalq_s32): Likewise. 13222 (vpadalq_u8): Likewise. 13223 (vpadalq_u16): Likewise. 13224 (vpadalq_u32): Likewise. 13225 (vpaddl_s8): Likewise. 13226 (vpaddl_s16): Likewise. 13227 (vpaddl_s32): Likewise. 13228 (vpaddl_u8): Likewise. 13229 (vpaddl_u16): Likewise. 13230 (vpaddl_u32): Likewise. 13231 (vpaddlq_s8): Likewise. 13232 (vpaddlq_s16): Likewise. 13233 (vpaddlq_s32): Likewise. 13234 (vpaddlq_u8): Likewise. 13235 (vpaddlq_u16): Likewise. 13236 (vpaddlq_u32): Likewise. 13237 (vpaddq_s8): Likewise. 13238 (vpaddq_s16): Likewise. 13239 (vpaddq_s32): Likewise. 13240 (vpaddq_s64): Likewise. 13241 (vpaddq_u8): Likewise. 13242 (vpaddq_u16): Likewise. 13243 (vpaddq_u32): Likewise. 13244 (vpaddq_u64): Likewise. 13245 (vqdmulh_n_s16): Likewise. 13246 (vqdmulh_n_s32): Likewise. 13247 (vqdmulhq_n_s16): Likewise. 13248 (vqdmulhq_n_s32): Likewise. 13249 (vqmovn_high_s16): Likewise. 13250 (vqmovn_high_s32): Likewise. 13251 (vqmovn_high_s64): Likewise. 13252 (vqmovn_high_u16): Likewise. 13253 (vqmovn_high_u32): Likewise. 13254 (vqmovn_high_u64): Likewise. 13255 (vqmovun_high_s16): Likewise. 13256 (vqmovun_high_s32): Likewise. 13257 (vqmovun_high_s64): Likewise. 13258 (vqrdmulh_n_s16): Likewise. 13259 (vqrdmulh_n_s32): Likewise. 13260 (vqrdmulhq_n_s16): Likewise. 13261 (vqrdmulhq_n_s32): Likewise. 13262 (vrsqrte_u32): Likewise. 13263 (vrsqrteq_u32): Likewise. 13264 (vtst_p8): Likewise. 13265 (vtst_p16): Likewise. 13266 (vtst_p64): Likewise. 13267 (vtstq_p8): Likewise. 13268 (vtstq_p16): Likewise. 13269 (vtstq_p64): Likewise. 13270 (vaddlv_s32): Likewise. 13271 (vaddlv_u32): Likewise. 13272 (vqtbl1_p8): Likewise. 13273 (vqtbl1_s8): Likewise. 13274 (vqtbl1_u8): Likewise. 13275 (vqtbl1q_p8): Likewise. 13276 (vqtbl1q_s8): Likewise. 13277 (vqtbl1q_u8): Likewise. 13278 (vqtbx1_s8): Likewise. 13279 (vqtbx1_u8): Likewise. 13280 (vqtbx1_p8): Likewise. 13281 (vqtbx1q_s8): Likewise. 13282 (vqtbx1q_u8): Likewise. 13283 (vqtbx1q_p8): Likewise. 13284 (vtbl1_s8): Likewise. 13285 (vtbl1_u8): Likewise. 13286 (vtbl1_p8): Likewise. 13287 (vtbl2_s8): Likewise. 13288 (vtbl2_u8): Likewise. 13289 (vtbl2_p8): Likewise. 13290 (vtbl3_s8): Likewise. 13291 (vtbl3_u8): Likewise. 13292 (vtbl3_p8): Likewise. 13293 (vtbl4_s8): Likewise. 13294 (vtbl4_u8): Likewise. 13295 (vtbl4_p8): Likewise. 13296 (vtbx2_s8): Likewise. 13297 (vtbx2_u8): Likewise. 13298 (vtbx2_p8): Likewise. 13299 (vld1_f32): Likewise. 13300 (vld1_f64): Likewise. 13301 (vld1_p8): Likewise. 13302 (vld1_p16): Likewise. 13303 (vld1_p64): Likewise. 13304 (vld1_s8): Likewise. 13305 (vld1_s16): Likewise. 13306 (vld1_s32): Likewise. 13307 (vld1_s64): Likewise. 13308 (vld1_u8): Likewise. 13309 (vld1_u16): Likewise. 13310 (vld1_u32): Likewise. 13311 (vld1_u64): Likewise. 13312 (vld1q_f32): Likewise. 13313 (vld1q_f64): Likewise. 13314 (vld1q_p8): Likewise. 13315 (vld1q_p16): Likewise. 13316 (vld1q_p64): Likewise. 13317 (vld1q_s8): Likewise. 13318 (vld1q_s16): Likewise. 13319 (vld1q_s32): Likewise. 13320 (vld1q_s64): Likewise. 13321 (vld1q_u8): Likewise. 13322 (vld1q_u16): Likewise. 13323 (vld1q_u32): Likewise. 13324 (vld1q_u64): Likewise. 13325 (vpmax_s8): Likewise. 13326 (vpmax_s16): Likewise. 13327 (vpmax_s32): Likewise. 13328 (vpmax_u8): Likewise. 13329 (vpmax_u16): Likewise. 13330 (vpmax_u32): Likewise. 13331 (vpmaxq_s8): Likewise. 13332 (vpmaxq_s16): Likewise. 13333 (vpmaxq_s32): Likewise. 13334 (vpmaxq_u8): Likewise. 13335 (vpmaxq_u16): Likewise. 13336 (vpmaxq_u32): Likewise. 13337 (vpmax_f32): Likewise. 13338 (vpmaxq_f32): Likewise. 13339 (vpmaxq_f64): Likewise. 13340 (vpmaxqd_f64): Likewise. 13341 (vpmaxs_f32): Likewise. 13342 (vpmaxnm_f32): Likewise. 13343 (vpmaxnmq_f32): Likewise. 13344 (vpmaxnmq_f64): Likewise. 13345 (vpmaxnmqd_f64): Likewise. 13346 (vpmaxnms_f32): Likewise. 13347 (vpmin_s8): Likewise. 13348 (vpmin_s16): Likewise. 13349 (vpmin_s32): Likewise. 13350 (vpmin_u8): Likewise. 13351 (vpmin_u16): Likewise. 13352 (vpmin_u32): Likewise. 13353 (vpminq_s8): Likewise. 13354 (vpminq_s16): Likewise. 13355 (vpminq_s32): Likewise. 13356 (vpminq_u8): Likewise. 13357 (vpminq_u16): Likewise. 13358 (vpminq_u32): Likewise. 13359 (vpmin_f32): Likewise. 13360 (vpminq_f32): Likewise. 13361 (vpminq_f64): Likewise. 13362 (vpminqd_f64): Likewise. 13363 (vpmins_f32): Likewise. 13364 (vpminnm_f32): Likewise. 13365 (vpminnmq_f32): Likewise. 13366 (vpminnmq_f64): Likewise. 13367 (vpminnmqd_f64): Likewise. 13368 (vpminnms_f32): Likewise. 13369 (vmla_f32): Likewise. 13370 (vmlaq_f32): Likewise. 13371 (vmlaq_f64): Likewise. 13372 (vmls_f32): Likewise. 13373 (vmlsq_f32): Likewise. 13374 (vmlsq_f64): Likewise. 13375 (vqtbl2_s8): Likewise. 13376 (vqtbl2_u8): Likewise. 13377 (vqtbl2_p8): Likewise. 13378 (vqtbl2q_s8): Likewise. 13379 (vqtbl2q_u8): Likewise. 13380 (vqtbl2q_p8): Likewise. 13381 (vqtbl3_s8): Likewise. 13382 (vqtbl3_u8): Likewise. 13383 (vqtbl3_p8): Likewise. 13384 (vqtbl3q_s8): Likewise. 13385 (vqtbl3q_u8): Likewise. 13386 (vqtbl3q_p8): Likewise. 13387 (vqtbl4_s8): Likewise. 13388 (vqtbl4_u8): Likewise. 13389 (vqtbl4_p8): Likewise. 13390 (vqtbl4q_s8): Likewise. 13391 (vqtbl4q_u8): Likewise. 13392 (vqtbl4q_p8): Likewise. 13393 (vqtbx2_s8): Likewise. 13394 (vqtbx2_u8): Likewise. 13395 (vqtbx2_p8): Likewise. 13396 (vqtbx2q_s8): Likewise. 13397 (vqtbx2q_u8): Likewise. 13398 (vqtbx2q_p8): Likewise. 13399 (vqtbx3_s8): Likewise. 13400 (vqtbx3_u8): Likewise. 13401 (vqtbx3_p8): Likewise. 13402 (vqtbx3q_s8): Likewise. 13403 (vqtbx3q_u8): Likewise. 13404 (vqtbx3q_p8): Likewise. 13405 (vqtbx4_s8): Likewise. 13406 (vqtbx4_u8): Likewise. 13407 (vqtbx4_p8): Likewise. 13408 (vqtbx4q_s8): Likewise. 13409 (vqtbx4q_u8): Likewise. 13410 (vqtbx4q_p8): Likewise. 13411 (vrev16_p8): Likewise. 13412 (vrev16_s8): Likewise. 13413 (vrev16_u8): Likewise. 13414 (vrev16q_p8): Likewise. 13415 (vrev16q_s8): Likewise. 13416 (vrev16q_u8): Likewise. 13417 (vrev32_p8): Likewise. 13418 (vrev32_p16): Likewise. 13419 (vrev32_s8): Likewise. 13420 (vrev32_s16): Likewise. 13421 (vrev32_u8): Likewise. 13422 (vrev32_u16): Likewise. 13423 (vrev32q_p8): Likewise. 13424 (vrev32q_p16): Likewise. 13425 (vrev32q_s8): Likewise. 13426 (vrev32q_s16): Likewise. 13427 (vrev32q_u8): Likewise. 13428 (vrev32q_u16): Likewise. 13429 (vrev64_f32): Likewise. 13430 (vrev64_p8): Likewise. 13431 (vrev64_p16): Likewise. 13432 (vrev64_s8): Likewise. 13433 (vrev64_s16): Likewise. 13434 (vrev64_s32): Likewise. 13435 (vrev64_u8): Likewise. 13436 (vrev64_u16): Likewise. 13437 (vrev64_u32): Likewise. 13438 (vrev64q_f32): Likewise. 13439 (vrev64q_p8): Likewise. 13440 (vrev64q_p16): Likewise. 13441 (vrev64q_s8): Likewise. 13442 (vrev64q_s16): Likewise. 13443 (vrev64q_s32): Likewise. 13444 (vrev64q_u8): Likewise. 13445 (vrev64q_u16): Likewise. 13446 (vrev64q_u32): Likewise. 13447 (vsha1cq_u32): Likewise. 13448 (vsha1mq_u32): Likewise. 13449 (vsha1pq_u32): Likewise. 13450 (vsha1h_u32): Likewise. 13451 (vsha1su0q_u32): Likewise. 13452 (vsha1su1q_u32): Likewise. 13453 (vsha256hq_u32): Likewise. 13454 (vsha256h2q_u32): Likewise. 13455 (vsha256su0q_u32): Likewise. 13456 (vsha256su1q_u32): Likewise. 13457 (vmull_p64): Likewise. 13458 (vmull_high_p64): Likewise. 13459 (vsqrt_f32): Likewise. 13460 (vsqrtq_f32): Likewise. 13461 (vsqrt_f64): Likewise. 13462 (vsqrtq_f64): Likewise. 13463 (vst1_f32): Likewise. 13464 (vst1_f64): Likewise. 13465 (vst1_p8): Likewise. 13466 (vst1_p16): Likewise. 13467 (vst1_p64): Likewise. 13468 (vst1_s8): Likewise. 13469 (vst1_s16): Likewise. 13470 (vst1_s32): Likewise. 13471 (vst1_s64): Likewise. 13472 (vst1_u8): Likewise. 13473 (vst1_u16): Likewise. 13474 (vst1_u32): Likewise. 13475 (vst1_u64): Likewise. 13476 (vst1q_f32): Likewise. 13477 (vst1q_f64): Likewise. 13478 (vst1q_p8): Likewise. 13479 (vst1q_p16): Likewise. 13480 (vst1q_p64): Likewise. 13481 (vst1q_s8): Likewise. 13482 (vst1q_s16): Likewise. 13483 (vst1q_s32): Likewise. 13484 (vst1q_s64): Likewise. 13485 (vst1q_u8): Likewise. 13486 (vst1q_u16): Likewise. 13487 (vst1q_u32): Likewise. 13488 (vst1q_u64): Likewise. 13489 (vst1_s64_x2): Likewise. 13490 (vst1_u64_x2): Likewise. 13491 (vst1_f64_x2): Likewise. 13492 (vst1_s8_x2): Likewise. 13493 (vst1_p8_x2): Likewise. 13494 (vst1_s16_x2): Likewise. 13495 (vst1_p16_x2): Likewise. 13496 (vst1_s32_x2): Likewise. 13497 (vst1_u8_x2): Likewise. 13498 (vst1_u16_x2): Likewise. 13499 (vst1_u32_x2): Likewise. 13500 (vst1_f16_x2): Likewise. 13501 (vst1_f32_x2): Likewise. 13502 (vst1_p64_x2): Likewise. 13503 (vst1q_s8_x2): Likewise. 13504 (vst1q_p8_x2): Likewise. 13505 (vst1q_s16_x2): Likewise. 13506 (vst1q_p16_x2): Likewise. 13507 (vst1q_s32_x2): Likewise. 13508 (vst1q_s64_x2): Likewise. 13509 (vst1q_u8_x2): Likewise. 13510 (vst1q_u16_x2): Likewise. 13511 (vst1q_u32_x2): Likewise. 13512 (vst1q_u64_x2): Likewise. 13513 (vst1q_f16_x2): Likewise. 13514 (vst1q_f32_x2): Likewise. 13515 (vst1q_f64_x2): Likewise. 13516 (vst1q_p64_x2): Likewise. 13517 (vst1_s64_x3): Likewise. 13518 (vst1_u64_x3): Likewise. 13519 (vst1_f64_x3): Likewise. 13520 (vst1_s8_x3): Likewise. 13521 (vst1_p8_x3): Likewise. 13522 (vst1_s16_x3): Likewise. 13523 (vst1_p16_x3): Likewise. 13524 (vst1_s32_x3): Likewise. 13525 (vst1_u8_x3): Likewise. 13526 (vst1_u16_x3): Likewise. 13527 (vst1_u32_x3): Likewise. 13528 (vst1_f16_x3): Likewise. 13529 (vst1_f32_x3): Likewise. 13530 (vst1_p64_x3): Likewise. 13531 (vst1q_s8_x3): Likewise. 13532 (vst1q_p8_x3): Likewise. 13533 (vst1q_s16_x3): Likewise. 13534 (vst1q_p16_x3): Likewise. 13535 (vst1q_s32_x3): Likewise. 13536 (vst1q_s64_x3): Likewise. 13537 (vst1q_u8_x3): Likewise. 13538 (vst1q_u16_x3): Likewise. 13539 (vst1q_u32_x3): Likewise. 13540 (vst1q_u64_x3): Likewise. 13541 (vst1q_f16_x3): Likewise. 13542 (vst1q_f32_x3): Likewise. 13543 (vst1q_f64_x3): Likewise. 13544 (vst1q_p64_x3): Likewise. 13545 (vst2_s64): Likewise. 13546 (vst2_u64): Likewise. 13547 (vst2_f64): Likewise. 13548 (vst2_s8): Likewise. 13549 (vst2_p8): Likewise. 13550 (vst2_s16): Likewise. 13551 (vst2_p16): Likewise. 13552 (vst2_s32): Likewise. 13553 (vst2_u8): Likewise. 13554 (vst2_u16): Likewise. 13555 (vst2_u32): Likewise. 13556 (vst2_f16): Likewise. 13557 (vst2_f32): Likewise. 13558 (vst2_p64): Likewise. 13559 (vst2q_s8): Likewise. 13560 (vst2q_p8): Likewise. 13561 (vst2q_s16): Likewise. 13562 (vst2q_p16): Likewise. 13563 (vst2q_s32): Likewise. 13564 (vst2q_s64): Likewise. 13565 (vst2q_u8): Likewise. 13566 (vst2q_u16): Likewise. 13567 (vst2q_u32): Likewise. 13568 (vst2q_u64): Likewise. 13569 (vst2q_f16): Likewise. 13570 (vst2q_f32): Likewise. 13571 (vst2q_f64): Likewise. 13572 (vst2q_p64): Likewise. 13573 (vst3_s64): Likewise. 13574 (vst3_u64): Likewise. 13575 (vst3_f64): Likewise. 13576 (vst3_s8): Likewise. 13577 (vst3_p8): Likewise. 13578 (vst3_s16): Likewise. 13579 (vst3_p16): Likewise. 13580 (vst3_s32): Likewise. 13581 (vst3_u8): Likewise. 13582 (vst3_u16): Likewise. 13583 (vst3_u32): Likewise. 13584 (vst3_f16): Likewise. 13585 (vst3_f32): Likewise. 13586 (vst3_p64): Likewise. 13587 (vst3q_s8): Likewise. 13588 (vst3q_p8): Likewise. 13589 (vst3q_s16): Likewise. 13590 (vst3q_p16): Likewise. 13591 (vst3q_s32): Likewise. 13592 (vst3q_s64): Likewise. 13593 (vst3q_u8): Likewise. 13594 (vst3q_u16): Likewise. 13595 (vst3q_u32): Likewise. 13596 (vst3q_u64): Likewise. 13597 (vst3q_f16): Likewise. 13598 (vst3q_f32): Likewise. 13599 (vst3q_f64): Likewise. 13600 (vst3q_p64): Likewise. 13601 (vst4_s64): Likewise. 13602 (vst4_u64): Likewise. 13603 (vst4_f64): Likewise. 13604 (vst4_s8): Likewise. 13605 (vst4_p8): Likewise. 13606 (vst4_s16): Likewise. 13607 (vst4_p16): Likewise. 13608 (vst4_s32): Likewise. 13609 (vst4_u8): Likewise. 13610 (vst4_u16): Likewise. 13611 (vst4_u32): Likewise. 13612 (vst4_f16): Likewise. 13613 (vst4_f32): Likewise. 13614 (vst4_p64): Likewise. 13615 (vst4q_s8): Likewise. 13616 (vst4q_p8): Likewise. 13617 (vst4q_s16): Likewise. 13618 (vst4q_p16): Likewise. 13619 (vst4q_s32): Likewise. 13620 (vst4q_s64): Likewise. 13621 (vst4q_u8): Likewise. 13622 (vst4q_u16): Likewise. 13623 (vst4q_u32): Likewise. 13624 (vst4q_u64): Likewise. 13625 (vst4q_f16): Likewise. 13626 (vst4q_f32): Likewise. 13627 (vst4q_f64): Likewise. 13628 (vst4q_p64): Likewise. 13629 (vtbx4_s8): Likewise. 13630 (vtbx4_u8): Likewise. 13631 (vtbx4_p8): Likewise. 13632 (vtrn_f32): Likewise. 13633 (vtrn_p8): Likewise. 13634 (vtrn_p16): Likewise. 13635 (vtrn_s8): Likewise. 13636 (vtrn_s16): Likewise. 13637 (vtrn_s32): Likewise. 13638 (vtrn_u8): Likewise. 13639 (vtrn_u16): Likewise. 13640 (vtrn_u32): Likewise. 13641 (vtrnq_f32): Likewise. 13642 (vtrnq_p8): Likewise. 13643 (vtrnq_p16): Likewise. 13644 (vtrnq_s8): Likewise. 13645 (vtrnq_s16): Likewise. 13646 (vtrnq_s32): Likewise. 13647 (vtrnq_u8): Likewise. 13648 (vtrnq_u16): Likewise. 13649 (vtrnq_u32): Likewise. 13650 (vrsqrte_f16): Likewise. 13651 (vrsqrteq_f16): Likewise. 13652 (vsqrt_f16): Likewise. 13653 (vsqrtq_f16): Likewise. 13654 (vabd_f16): Likewise. 13655 (vabdq_f16): Likewise. 13656 (vpadd_f16): Likewise. 13657 (vpaddq_f16): Likewise. 13658 (vpmax_f16): Likewise. 13659 (vpmaxq_f16): Likewise. 13660 (vpmaxnm_f16): Likewise. 13661 (vpmaxnmq_f16): Likewise. 13662 (vpmin_f16): Likewise. 13663 (vpminq_f16): Likewise. 13664 (vpminnm_f16): Likewise. 13665 (vpminnmq_f16): Likewise. 13666 (vrsqrts_f16): Likewise. 13667 (vrsqrtsq_f16): Likewise. 13668 136692019-09-25 Richard Biener <rguenther@suse.de> 13670 13671 PR tree-optimization/91896 13672 * tree-vect-loop.c (vectorizable_reduction): The single 13673 def-use cycle optimization cannot apply when there's more 13674 than one pattern stmt involved. 13675 136762019-09-24 Iain Sandoe <iain@sandoe.co.uk> 13677 13678 * config/rs6000/rs6000.md (load_macho_picbase_<mode>): New, using 13679 the 'P' mode iterator, replacing the (removed) SI and DI variants. 13680 (reload_macho_picbase_<mode>): Likewise. 13681 136822019-09-24 Iain Sandoe <iain@sandoe.co.uk> 13683 13684 * config/rs6000/rs6000.md: Move darwin.md include until 13685 after the definition of the mode iterators. 13686 136872019-09-23 Martin Sebor <msebor@redhat.com> 13688 13689 PR tree-optimization/91570 13690 * tree-ssa-strlen.c (get_range_strlen_dynamic): Handle null and 13691 non-constant minlen, maxlen and maxbound. 13692 136932019-09-24 Richard Biener <rguenther@suse.de> 13694 13695 * tree-vectorizer.h (_stmt_vec_info::const_cond_reduc_code): 13696 Rename to... 13697 (_stmt_vec_info::cond_reduc_code): ... this. 13698 (_stmt_vec_info::induc_cond_initial_val): Add. 13699 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): Rename to... 13700 (STMT_VINFO_VEC_COND_REDUC_CODE): ... this. 13701 (STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Add. 13702 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Adjust. 13703 * tree-vect-loop.c (get_initial_def_for_reduction): Pass in 13704 the reduction code. 13705 (vect_create_epilog_for_reduction): Drop special 13706 induction condition reduction params, pass in reduction code 13707 and simplify. 13708 (vectorizable_reduction): Perform condition reduction kind 13709 selection only at analysis time. Adjust passing on state. 13710 137112019-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 13712 13713 * config/aarch64/aarch64.md (mov<mode>): Don't call 13714 aarch64_split_dimode_const_store on volatile MEM. 13715 137162019-09-24 Stamatis Markianos-Wright <stam.markianos-wright@arm.com> 13717 13718 * config/aarch64/aarch64-option-extensions.def (fp16fml): 13719 Update hwcap string for fp16fml. 13720 137212019-09-24 Jakub Jelinek <jakub@redhat.com> 13722 13723 PR middle-end/91866 13724 * match.pd (((T)(A)) + CST -> (T)(A + CST)): Formatting fix. 13725 (((T)(A + CST1)) + CST2 -> (T)(A) + (T)CST1 + CST2): New optimization. 13726 137272019-09-24 Martin Liska <mliska@suse.cz> 13728 13729 * cfgexpand.c (gimple_assign_rhs_to_tree): Use switch statement 13730 instead of if-elseif-elseif-... 13731 * gimple-expr.c (extract_ops_from_tree): Likewise. 13732 * gimple.c (get_gimple_rhs_num_ops): Likewise. 13733 * tree-ssa-forwprop.c (rhs_to_tree): Likewise. 13734 137352019-09-24 Martin Jambor <mjambor@suse.cz> 13736 13737 PR ipa/91831 13738 * ipa-param-manipulation.c (carry_over_param): Make a method of 13739 ipa_param_body_adjustments, remove now unnecessary argument. Also copy 13740 in case of a context mismatch. 13741 (ipa_param_body_adjustments::common_initialization): Adjust call to 13742 carry_over_param. 13743 * ipa-param-manipulation.h (class ipa_param_body_adjustments): Add 13744 private method carry_over_param. 13745 137462019-09-24 Martin Jambor <mjambor@suse.cz> 13747 13748 PR ipa/91832 13749 * ipa-sra.c (scan_expr_access): Check that offset is non-negative. 13750 137512019-09-24 Richard Biener <rguenther@suse.de> 13752 13753 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize MEM_REF 13754 base. 13755 137562019-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 13757 13758 * config/arm/t-arm (arm-builtins.o): Add dependency on 13759 arm_acle_builtins.def. 13760 137612019-09-23 Richard Sandiford <richard.sandiford@arm.com> 13762 13763 PR target/91823 13764 * config/rs6000/altivec.md (altivec_copysign_v4sf3): Generate 13765 canonical CONST_INTs. Use gen_rtvec. 13766 137672019-09-23 Richard Biener <rguenther@suse.de> 13768 13769 * tree-vect-loop.c (get_initial_def_for_reduction): Simplify, 13770 avoid adjusting by + 0 or * 1. 13771 (vect_create_epilog_for_reduction): Get reduction code only 13772 when necessary. Deal with adjustment_def only when necessary. 13773 137742019-09-23 Richard Sandiford <richard.sandiford@arm.com> 13775 13776 * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix 13777 memmodel index. 13778 137792019-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 13780 13781 PR ipa/91835 13782 * lto-section-in.c (lto_section_name): Use "ipa_sra" instead of 13783 "ipa-sra". 13784 137852019-09-22 Iain Sandoe <iain@sandoe.co.uk> 13786 13787 * config/rs6000/rs6000.c (machopic_output_stub): Remove dead 13788 code. Merge code blocks with common conditionals. Use declared 13789 macro instead of a magic number for PIC level. 13790 137912019-09-21 Martin Sebor <msebor@redhat.com> 13792 13793 PR middle-end/91830 13794 * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): 13795 Simplify computation of the offset of the referenced subobject. 13796 137972019-09-21 Iain Sandoe <iain@sandoe.co.uk> 13798 13799 * config/darwin.c (machopic_legitimize_pic_address): Check 13800 for lra not reload. 13801 138022019-09-21 Richard Sandiford <richard.sandiford@arm.com> 13803 13804 * ira-conflicts.c (can_use_same_reg_p): New function. 13805 (process_reg_shuffles): Take an insn parameter. Ignore cases 13806 in which input operand op_num could seemingly never be allocated 13807 to the same register as the destination. 13808 (add_insn_allocno_copies): Update call to process_reg_shuffles. 13809 138102019-09-21 Richard Sandiford <richard.sandiford@arm.com> 13811 13812 * simplify-rtx.c (neg_const_int): Replace with... 13813 (neg_poly_int_rtx): ...this new function. 13814 (simplify_binary_operation_1): Extend (minus x C) -> (plus X -C) 13815 to all CONST_SCALAR_INTs and to CONST_POLY_INT. 13816 (simplify_plus_minus): Likewise for constant terms here. 13817 138182019-09-20 Jonas Pfeil <jonas.pfeil@uli-ulm.de> 13819 13820 * config/microblaze/microblaze.h (ASM_OUTPUT_SKIP): Use 13821 HOST_WIDE_PRINT_UNSIGNED. 13822 138232019-09-20 John David Anglin <danglin@gcc.gnu.org> 13824 13825 * config/pa/pa.c (pa_trampoline_init): Remove spurious extended 13826 character. 13827 138282019-09-20 Maya Rashish <coypu@sdf.org> 13829 13830 PR target/86811 13831 * config/vax/vax.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13832 Define to speculation_safe_value_not_needed. 13833 138342019-09-20 Richard Biener <rguenther@suse.de> 13835 Uros Bizjak <ubizjak@gmail.com> 13836 13837 PR target/91814 13838 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert 13839 previous change. 13840 (general_scalar_chain::convert_op): Force not suitable memory 13841 operands to a register. 13842 138432019-09-20 Richard Biener <rguenther@suse.de> 13844 13845 PR tree-optimization/91821 13846 * tree-vect-loop.c (check_reduction_path): Check we can compute 13847 reduc_idx. 13848 (vect_is_simple_reduction): Set STMT_VINFO_REDUC_IDX. 13849 * tree-vect-patterns.c (vect_reassociating_reduction_p): Return 13850 operands in canonical order. 13851 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize 13852 STMT_VINFO_REDUC_IDX. 13853 * tree-vectorizer.h (_stmt_vec_info::reduc_idx): New. 13854 (STMT_VINFO_REDUC_IDX): Likewise. 13855 138562019-09-20 Eric Botcazou <ebotcazou@adacore.com> 13857 13858 PR target/91269 13859 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define. 13860 138612019-09-20 Richard Biener <rguenther@suse.de> 13862 13863 PR tree-optimization/91822 13864 * tree-vectorizer.h (vectorizable_condition): Restore for_reduction 13865 parameter. 13866 * tree-vect-loop.c (vectorizable_reduction): Adjust asserts 13867 for reduc_index in nested cycles, adjust vectorizable_condition 13868 calls. 13869 * tree-vect-stmts.c (vectorizable_condition): Restore for_reduction 13870 parameter. 13871 (vect_analyze_stmt): Adjust. 13872 (vect_transform_stmt): Likewise. 13873 138742019-09-20 Richard Biener <rguenther@suse.de> 13875 13876 PR target/91767 13877 * config/i386/i386-features.c (general_scalar_chain::convert_registers): 13878 Ensure there's a sequence point between allocating the new register 13879 and passing a reference to a reg via regno_reg_rtx. 13880 138812019-09-20 Martin Jambor <mjambor@suse.cz> 13882 13883 * coretypes.h (cgraph_edge): Declare. 13884 * ipa-param-manipulation.c: Rewrite. 13885 * ipa-param-manipulation.h: Likewise. 13886 * Makefile.in (GTFILES): Added ipa-param-manipulation.h and ipa-sra.c. 13887 (OBJS): Added ipa-sra.o. 13888 * cgraph.h (ipa_replace_map): Removed fields old_tree, replace_p 13889 and ref_p, added fields param_adjustments and performed_splits. 13890 (struct cgraph_clone_info): Remove ags_to_skip and 13891 combined_args_to_skip, new field param_adjustments. 13892 (cgraph_node::create_clone): Changed parameters to use 13893 ipa_param_adjustments. 13894 (cgraph_node::create_virtual_clone): Likewise. 13895 (cgraph_node::create_virtual_clone_with_body): Likewise. 13896 (tree_function_versioning): Likewise. 13897 (cgraph_build_function_type_skip_args): Removed. 13898 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Convert to 13899 using ipa_param_adjustments. 13900 (clone_of_p): Likewise. 13901 * cgraphclones.c (cgraph_build_function_type_skip_args): Removed. 13902 (build_function_decl_skip_args): Likewise. 13903 (duplicate_thunk_for_node): Adjust parameters using 13904 ipa_param_body_adjustments, copy param_adjustments instead of 13905 args_to_skip. 13906 (cgraph_node::create_clone): Convert to using ipa_param_adjustments. 13907 (cgraph_node::create_virtual_clone): Likewise. 13908 (cgraph_node::create_version_clone_with_body): Likewise. 13909 (cgraph_materialize_clone): Likewise. 13910 (symbol_table::materialize_all_clones): Likewise. 13911 * ipa-fnsummary.c (ipa_fn_summary_t::duplicate): Simplify 13912 ipa_replace_map check. 13913 * ipa-cp.c (get_replacement_map): Do not initialize removed fields. 13914 (initialize_node_lattices): Make aware that some parameters might have 13915 already been removed. 13916 (want_remove_some_param_p): New function. 13917 (create_specialized_node): Convert to using ipa_param_adjustments and 13918 deal with possibly pre-existing adjustments. 13919 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. 13920 (output_node_opt_summary): Do not stream removed fields. Stream 13921 parameter adjustments instead of argumetns to skip. 13922 (input_node_opt_summary): Likewise. 13923 (input_node_opt_summary): Likewise. 13924 * lto-section-in.c (lto_section_name): Added ipa-sra section. 13925 * lto-streamer.h (lto_section_type): Likewise. 13926 * tree-inline.h (copy_body_data): New fields killed_new_ssa_names and 13927 param_body_adjs. 13928 (copy_decl_to_var): Declare. 13929 * tree-inline.c (update_clone_info): Do not remap old_tree. 13930 (remap_gimple_stmt): Use ipa_param_body_adjustments to modify gimple 13931 statements, walk all extra generated statements and remap their 13932 operands. 13933 (redirect_all_calls): Add killed SSA names to a hash set. 13934 (remap_ssa_name): Do not remap killed SSA names. 13935 (copy_arguments_for_versioning): Renames to copy_arguments_nochange, 13936 half of functionality moved to ipa_param_body_adjustments. 13937 (copy_decl_to_var): Make exported. 13938 (copy_body): Destroy killed_new_ssa_names hash set. 13939 (expand_call_inline): Remap performed splits. 13940 (update_clone_info): Likewise. 13941 (tree_function_versioning): Simplify tree_map processing. Updated to 13942 accept ipa_param_adjustments and use ipa_param_body_adjustments. 13943 * omp-simd-clone.c (simd_clone_vector_of_formal_parm_types): Adjust 13944 for the new interface. 13945 (simd_clone_clauses_extract): Likewise, make args an auto_vec. 13946 (simd_clone_compute_base_data_type): Likewise. 13947 (simd_clone_init_simd_arrays): Adjust for the new interface. 13948 (simd_clone_adjust_argument_types): Likewise. 13949 (struct modify_stmt_info): Likewise. 13950 (ipa_simd_modify_stmt_ops): Likewise. 13951 (ipa_simd_modify_function_body): Likewise. 13952 (simd_clone_adjust): Likewise. 13953 * tree-sra.c: Removed IPA-SRA. Include tree-sra.h. 13954 (type_internals_preclude_sra_p): Make public. 13955 * tree-sra.h: New file. 13956 * ipa-inline-transform.c (save_inline_function_body): Update to 13957 refelct new tree_function_versioning signature. 13958 * ipa-prop.c (adjust_agg_replacement_values): Use a helper from 13959 ipa_param_adjustments to get current parameter indices. 13960 (ipcp_modif_dom_walker::before_dom_children): Likewise. 13961 (ipcp_update_bits): Likewise. 13962 (ipcp_update_vr): Likewise. 13963 * ipa-split.c (split_function): Convert to using ipa_param_adjustments. 13964 * ipa-sra.c: New file. 13965 * multiple_target.c (create_target_clone): Update to reflet new type 13966 of create_version_clone_with_body. 13967 * trans-mem.c (ipa_tm_create_version): Update to reflect new type of 13968 tree_function_versioning. 13969 (modify_function): Update to reflect new type of 13970 tree_function_versioning. 13971 * params.def (PARAM_IPA_SRA_MAX_REPLACEMENTS): New. 13972 * passes.def: Remove old IPA-SRA and add new one. 13973 * tree-pass.h (make_pass_early_ipa_sra): Remove declaration. 13974 (make_pass_ipa_sra): Declare. 13975 * dbgcnt.def: Remove eipa_sra. Added ipa_sra_params and 13976 ipa_sra_retvalues. 13977 * doc/invoke.texi (ipa-sra-max-replacements): New. 13978 139792019-09-19 Martin Sebor <msebor@redhat.com> 13980 13981 PR middle-end/91631 13982 * builtins.c (component_size): Correct trailing array computation, 13983 rename to component_ref_size and move... 13984 (compute_objsize): Adjust. 13985 * gimple-ssa-warn-restrict.c (builtin_memref::refsize): New member. 13986 (builtin_access::strict): Do not consider memmove. 13987 (builtin_access::write_off): New function. 13988 (builtin_memref::builtin_memref): Initialize refsize. 13989 (builtin_memref::set_base_and_offset): Adjust refoff and compute 13990 refsize. 13991 (builtin_memref::offset_out_of_bounds): Use ooboff input values. 13992 Handle refsize. 13993 (builtin_access::builtin_access): Initialize dstoff to destination 13994 refeence offset here instead of in maybe_diag_overlap. Adjust 13995 referencess even to unrelated objects. Adjust sizrange of bounded 13996 string functions to reflect bound. For strcat, adjust destination 13997 sizrange by that of source. 13998 (builtin_access::strcat_overlap): Adjust offsets and sizes 13999 to reflect the increase in destination sizrange above. 14000 (builtin_access::overlap): Do not set dstoff here but instead 14001 in builtin_access::builtin_access. 14002 (check_bounds_or_overlap): Use builtin_access::write_off. 14003 (maybe_diag_access_bounds): Add argument. Add informational notes. 14004 (dump_builtin_memref, dump_builtin_access): New functions. 14005 * tree.c (component_ref_size): ...to here. 14006 * tree.h (component_ref_size): Declare. 14007 * tree-ssa-strlen (handle_builtin_strcat): Include the terminating 14008 nul in the size of the source string. 14009 140102019-09-19 Lewis Hyatt <lhyatt@gmail.com> 14011 14012 PR c/67224 14013 * doc/cpp.texi: Document support for extended characters in 14014 identifiers. 14015 * doc/cppopts.texi: Likewise. 14016 140172019-09-19 Richard Biener <rguenther@suse.de> 14018 14019 * tree-vect-loop.c (vect_is_slp_reduction): Remove. 14020 (check_reduction_path): New overload having the path as result. 14021 (vect_is_simple_reduction): From the detected reduction 14022 path build a SLP reduction chain if possible. 14023 140242019-09-19 Richard Biener <rguenther@suse.de> 14025 14026 PR target/91814 14027 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): 14028 Force operand to a register if it isn't nonimmediate_operand. 14029 140302019-09-19 Wilco Dijkstra <wdijkstr@arm.com> 14031 14032 * config/arm/arm.md (<logical_op>di3): Use <optab> and <CODE>. 14033 * config/arm/iterators.md (optab): Add and, ior, xor entries. 14034 (logical_op): Remove code attribute. 14035 (logical_OP): Likewise. 14036 140372019-09-19 Martin Liska <mliska@suse.cz> 14038 14039 * ipa-icf.c (sort_congruence_class_groups_by_decl_uid): 14040 Use proper casting. 14041 140422019-09-19 Richard Henderson <richard.henderson@linaro.org> 14043 14044 * config/aarch64/aarch64.c (aarch64_print_operand): Allow integer 14045 registers with %R. 14046 14047 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support 14048 for NE comparison of TImode values. 14049 (aarch64_emit_load_exclusive): Add support for TImode. 14050 (aarch64_emit_store_exclusive): Likewise. 14051 (aarch64_split_compare_and_swap): Disable strong_zero_p for TImode. 14052 * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI_TI>): 14053 Change iterator from ALLI to ALLI_TI. 14054 (@atomic_compare_and_swap<JUST_TI>): New. 14055 (@atomic_compare_and_swap<JUST_TI>_lse): New. 14056 (aarch64_load_exclusive_pair): New. 14057 (aarch64_store_exclusive_pair): New. 14058 * config/aarch64/iterators.md (JUST_TI): New. 14059 14060 * config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable 14061 strong_zero_p for aarch64_track_speculation; unify some code paths; 14062 use aarch64_gen_compare_reg instead of open-coding. 14063 14064 * config/aarch64/aarch64.opt (-moutline-atomics): New. 14065 * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New. 14066 (aarch64_ool_cas_names, aarch64_ool_swp_names): New. 14067 (aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New. 14068 (aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New. 14069 (aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS. 14070 * config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise. 14071 (atomic_<atomic_op><ALLI>): Likewise. 14072 (atomic_fetch_<atomic_op><ALLI>): Likewise. 14073 (atomic_<atomic_op>_fetch<ALLI>): Likewise. 14074 * doc/invoke.texi: Document -moutline-atomics. 14075 140762019-09-19 Feng Xue <fxue@os.amperecomputing.com> 14077 14078 * ipa-fnsummary.c (set_cond_stmt_execution_predicate): Do not compute 14079 trivial predicate for condition branch. 14080 (set_switch_stmt_execution_predicate): Do not compute trivial predicate 14081 for switch case. 14082 (compute_bb_predicates): Update predicate based on post-dominating 14083 relationship. 14084 (analyze_function_body): Calculate post-dominating information. 14085 140862019-09-19 Richard Sandiford <richard.sandiford@arm.com> 14087 14088 * tree-vectorizer.h (vectorizable_condition): Take an int 14089 reduction index instead of a boolean flag. 14090 * tree-vect-stmts.c (vectorizable_condition): Likewise. 14091 Swap the "then" and "else" values for EXTRACT_LAST_REDUCTION 14092 reductions if the reduction accumulator is the "then" rather 14093 than the "else" value. 14094 (vect_analyze_stmt): Update call accordingly. 14095 (vect_transform_stmt): Likewise. 14096 * tree-vect-loop.c (vectorizable_reduction): Likewise, 14097 asserting that the index is > 0. 14098 140992019-09-19 Martin Liska <mliska@suse.cz> 14100 14101 * ipa-icf.c (sort_sem_items_by_decl_uid): Simplify comparator. 14102 (sort_congruence_classes_by_decl_uid): Likewise. 14103 (sort_congruence_class_groups_by_decl_uid): Use std::pair for 14104 easier sorting. 14105 (sem_item_optimizer::merge_classes): Likewise. 14106 141072019-09-19 Richard Biener <rguenther@suse.de> 14108 14109 PR tree-optimization/91812 14110 * tree-ssa-phiprop.c (propagate_with_phi): Do not replace 14111 volatile loads. 14112 141132019-09-19 Richard Sandiford <richard.sandiford@arm.com> 14114 14115 * defaults.h (TARGET_UNIT): New macro. 14116 (target_unit): New type. 14117 * rtl.h (native_encode_rtx, native_decode_rtx) 14118 (native_decode_vector_rtx, subreg_size_lsb): Declare. 14119 (subreg_lsb_1): Turn into an inline wrapper around subreg_size_lsb. 14120 * rtlanal.c (subreg_lsb_1): Delete. 14121 (subreg_size_lsb): New function. 14122 * simplify-rtx.c: Include rtx-vector-builder.h 14123 (simplify_immed_subreg): Delete. 14124 (native_encode_rtx, native_decode_vector_rtx, native_decode_rtx) 14125 (simplify_const_vector_byte_offset, simplify_const_vector_subreg): New 14126 functions. 14127 (simplify_subreg): Use them. 14128 (test_vector_subregs_modes, test_vector_subregs_repeating) 14129 (test_vector_subregs_fore_back, test_vector_subregs_stepped) 14130 (test_vector_subregs): New functions. 14131 (test_vector_ops): Call test_vector_subregs for integer vector 14132 modes with at least 2 elements. 14133 141342019-09-19 Richard Biener <rguenther@suse.de> 14135 14136 * tree-parloops.c (parloops_is_slp_reduction): Do not set 14137 LOOP_VINFO_OPERANDS_SWAPPED. 14138 (parloops_is_simple_reduction): Likewise. 14139 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Do not 14140 initialize operands_swapped. 14141 (_loop_vec_info::~_loop_vec_info): Do not re-canonicalize stmts. 14142 (vect_is_slp_reduction): Do not swap operands. 14143 * tree-vectorizer.h (_loop_vec_info::operands_swapped): Remove. 14144 (LOOP_VINFO_OPERANDS_SWAPPED): Likewise. 14145 141462019-09-19 Hongtao Liu <hongtao.liu@intel.com> 14147 14148 PR target/87007 14149 * config/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512): 14150 Add avx_partial_xmm_update. 14151 141522019-09-18 Jim Wilson <jimw@sifive.com> 14153 14154 PR target/91683 14155 * config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter. 14156 (riscv_move_integer): Likewise. 14157 * config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new 14158 riscv_move_integer arg. 14159 (riscv_legitimize_move): Likewise. 14160 (riscv_force_temporary): New parameter in_splitter. Don't call 14161 force_reg if true. 14162 (riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary 14163 arg. 14164 (riscv_add_offset): Likewise. 14165 (riscv_split_symbol): New parameter in_splitter. Pass to 14166 riscv_force_temporary. 14167 (riscv_legitimize_address): Pass FALSE for new riscv_split_symbol 14168 arg. 14169 (riscv_move_integer): New parameter in_splitter. New local 14170 can_create_psuedo. Don't call riscv_split_integer or force_reg when 14171 in_splitter TRUE. 14172 (riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer, 14173 riscv_split_symbol, and riscv_force_temporary args. 14174 * config/riscv/riscv.md (low<mode>+1): Pass TRUE for new 14175 riscv_move_integer arg. 14176 (low<mode>+2): Pass TRUE for new riscv_split_symbol arg. 14177 141782019-09-18 H.J. Lu <hongjiu.lu@intel.com> 14179 14180 PR target/90878 14181 * config/i386/x86-tune-costs.h (skylake_cost): Restore SImode 14182 hard register store cost to 6. 14183 141842019-09-18 H.J. Lu <hongjiu.lu@intel.com> 14185 14186 PR target/91446 14187 * config/i386/x86-tune-costs.h (skylake_cost): Increase SImode 14188 pseudo register store cost from 3 to 6 to make it the same as 14189 QImode and HImode. 14190 141912019-09-18 Wilco Dijkstra <wdijkstr@arm.com> 14192 14193 PR target/91738 14194 * config/arm/arm.md (<logical_op>di3): Expand explicitly. 14195 (one_cmpldi2): Likewise. 14196 * config/arm/arm.c (const_ok_for_dimode_op): Return true if one 14197 of the constant parts is simple. 14198 * config/arm/iterators.md (LOGICAL): Add new code iterator. 14199 (logical_op): Add new code attribute. 14200 (logical_OP): Likewise. 14201 * config/arm/predicates.md (arm_anddi_operand): Add predicate. 14202 (arm_iordi_operand): Add predicate. 14203 (arm_xordi_operand): Add predicate. 14204 142052019-09-18 Wilco Dijkstra <wdijkstr@arm.com> 14206 14207 * config/arm/arm.md (maddsidi4): Remove expander. 14208 (mulsidi3adddi): Remove pattern. 14209 (mulsidi3adddi_v6): Likewise. 14210 (mulsidi3_nov6): Likewise. 14211 (mulsidi3_v6): Likewise. 14212 (umulsidi3): Remove expander. 14213 (umulsidi3_nov6): Remove pattern. 14214 (umulsidi3_v6): Likewise. 14215 (umulsidi3adddi): Likewise. 14216 (umulsidi3adddi_v6): Likewise. 14217 (<Us>mulsidi3): Add combined expander. 14218 (<Us>maddsidi4): Likewise. 14219 (<US>mull): Add combined umull and smull pattern. 14220 (<US>mlal): Likewise. 14221 * config/arm/iterators.md (Us): Add new iterator. 14222 142232019-09-18 Richard Biener <rguenther@suse.de> 14224 14225 * tree-vect-loop.c (vect_is_simple_reduction): Remove operand 14226 swapping. 14227 (vectorize_fold_left_reduction): Remove assert. 14228 (vectorizable_reduction): Also expect COND_EXPR non-reduction 14229 operand in position 2. Remove assert. 14230 142312019-09-18 Wilco Dijkstra <wdijkstr@arm.com> 14232 14233 * config/arm/arm.md (smulsi3_highpart): Use <US> and <SE> iterators. 14234 (smulsi3_highpart_nov6): Remove pattern. 14235 (smulsi3_highpart_v6): Likewise. 14236 (umulsi3_highpart): Likewise. 14237 (umulsi3_highpart_nov6): Likewise. 14238 (umulsi3_highpart_v6): Likewise. 14239 (<US>mull_high): Add new combined multiply pattern. 14240 142412019-09-18 Wilco Dijkstra <wdijkstr@arm.com> 14242 14243 * config/arm/arm.md (arm_mulsi3): Remove pattern. 14244 (arm_mulsi3_v6): Likewise. 14245 (mulsi3addsi_v6): Likewise. 14246 (mulsi3subsi): Likewise. 14247 (mul): Add new multiply pattern. 14248 (mla): Likewise. 14249 (mls): Likewise. 14250 142512019-09-18 Richard Biener <rguenther@suse.de> 14252 14253 * tree-parloops.c (report_ploop_op): Copy from report_vect_op. 14254 (parloops_valid_reduction_input_p): Copy from 14255 valid_reduction_input_p. 14256 (parloops_is_slp_reduction): Copy from vect_is_slp_reduction. 14257 (parloops_needs_fold_left_reduction_p): Copy from 14258 needs_fold_left_reduction_p. 14259 (parloops_is_simple_reduction): Copy from 14260 vect_is_simple_reduction. 14261 (parloops_force_simple_reduction): Copy from 14262 vect_force_simple_reduction. 14263 (gather_scalar_reductions): Adjust. 14264 * tree-vect-loop.c (vect_force_simple_reduction): Make static. 14265 * tree-vectorizer.h (vect_force_simple_reduction): Remove. 14266 142672019-09-18 Richard Biener <rguenther@suse.de> 14268 14269 * tree-vectorizer.h (get_initial_def_for_reduction): Remove. 14270 * tree-vect-loop.c (get_initial_def_for_reduction): Make 14271 static. 14272 (vect_create_epilog_for_reduction): Remove dead code. 14273 142742019-09-18 Richard Sandiford <richard.sandiford@arm.com> 14275 14276 * varasm.c (assemble_real): Generate canonical const_ints. 14277 142782019-09-18 Richard Biener <rguenther@suse.de> 14279 14280 PR lto/91763 14281 * lto-streamer-in.c (input_eh_regions): Move EH init to 14282 lto_materialize_function. 14283 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): 14284 Likewise. 14285 142862019-09-18 Richard Sandiford <richard.sandiford@arm.com> 14287 14288 * tree-ssa-ccp.c (get_value_for_expr): Check whether CONSTANTs 14289 are INTEGER_CSTs. 14290 142912019-09-18 Richard Sandiford <richard.sandiford@arm.com> 14292 14293 * gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead 14294 of checking specifically for INTEGER_CST. 14295 142962019-09-18 Richard Sandiford <richard.sandiford@arm.com> 14297 14298 * stor-layout.c (compute_record_mode): Operate on poly_uint64 14299 sizes instead of uhwi sizes. 14300 143012019-09-18 Richard Sandiford <richard.sandiford@arm.com> 14302 14303 * dwarf2out.c (loc_list_from_tree_1): Handle POLY_INT_CST. 14304 (add_const_value_attribute): Handle CONST_POLY_INT. 14305 143062019-09-18 Martin Liska <mliska@suse.cz> 14307 14308 * dbgcnt.def (store_merging): New counter. 14309 * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_stores): 14310 Use it in store merging. 14311 143122019-09-17 Richard Sandiford <richard.sandiford@arm.com> 14313 14314 * config/aarch64/aarch64.c (aarch64_sched_variable_issue): New 14315 function. 14316 (TARGET_SCHED_VARIABLE_ISSUE): New macro. 14317 * config/arm/arm.c (arm_sched_variable_issue): New function. 14318 (TARGET_SCHED_VARIABLE_ISSUE): New macro. 14319 143202019-09-17 Richard Sandiford <richard.sandiford@arm.com> 14321 14322 * config/arm/types.md (no_reservation): New reservation. 14323 * config/aarch64/falkor.md (falkor_other_0_nothing): Don't handle 14324 no_insn here. 14325 * config/aarch64/saphira.md (saphira_other_0_nothing): Likewise. 14326 * config/aarch64/thunderx2t99.md (thunderx2t99_nothing): Likewise. 14327 * config/aarch64/tsv110.md (tsv110_alu): Likewise. 14328 * config/arm/arm1020e.md (1020alu_op): Likewise. 14329 * config/arm/arm1026ejs.md (alu_op): Likewise. 14330 * config/arm/arm1136jfs.md (11_alu_op): Likewise. 14331 * config/arm/arm926ejs.md (9_alu_op): Likewise. 14332 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise. 14333 * config/arm/cortex-a17.md (cortex_a17_alu): Likewise. 14334 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise. 14335 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise. 14336 * config/arm/cortex-a57.md (cortex_a57_alu): Likewise. 14337 * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise. 14338 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise. 14339 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise. 14340 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise. 14341 * config/arm/cortex-m7.md (cortex_m7_alu_simple): Likewise. 14342 * config/arm/cortex-r4.md (cortex_r4_alu_shift_reg): Likewise. 14343 * config/arm/fa526.md (526_alu_op): Likewise. 14344 * config/arm/fa606te.md (606te_alu_op): Likewise. 14345 * config/arm/fa626te.md (626te_alu_op): Likewise. 14346 * config/arm/fa726te.md (726te_alu_op): Likewise. 14347 * config/arm/xgene1.md (xgene1_nop): Likewise. 14348 143492019-09-17 Richard Sandiford <richard.sandiford@arm.com> 14350 14351 * config/arm/thumb1.md (*thumb1_tablejump): Change type from 14352 "no_insn" to "branch". 14353 143542019-09-17 Richard Sandiford <richard.sandiford@arm.com> 14355 14356 * array-traits.h (array_traits<T[N]>::size): Remove parameter name. 14357 143582019-09-17 Richard Biener <rguenther@suse.de> 14359 14360 PR debug/91772 14361 * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf 14362 was missing generate locations only once. 14363 143642019-09-17 Feng Xue <fxue@os.amperecomputing.com> 14365 14366 PR ipa/91089 14367 * doc/invoke.texi (ipa-max-switch-predicate-bounds): Document new 14368 option. 14369 * params.def (PARAM_IPA_MAX_SWITCH_PREDICATE_BOUNDS): New. 14370 * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Add predicate 14371 for switch default case using range analysis information. 14372 143732019-09-17 Christophe Lyon <christophe.lyon@linaro.org> 14374 14375 PR target/91749 14376 * config/arm/arm.c (arm_valid_target_attribute_rec): Make sure the 14377 mode attributed is supported by FDPIC. 14378 143792019-09-17 Richard Biener <rguenther@suse.de> 14380 14381 PR tree-optimization/91790 14382 * tree-vect-stmts.c (vectorizable_load): For BB vectorization 14383 use the correct DR for setting up realignment. 14384 143852019-09-16 Uroš Bizjak <ubizjak@gmail.com> 14386 14387 PR target/91719 14388 * config/i386/i386.h (TARGET_USE_XCHG_FOR_ATOMIC_STORE): New macro. 14389 * config/i386/x86-tune.def (X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE): New. 14390 * config/i386/sync.md (atomic_store<mode>): emit XCHG for 14391 TARGET_USE_XCHG_FOR_ATOMIC_STORE. 14392 143932019-09-16 Jason Merrill <jason@redhat.com> 14394 14395 * Makefile.in (build/genmatch.o): Depend on $(CPPLIB_H). 14396 143972019-09-16 Martin Liska <mliska@suse.cz> 14398 14399 * gimple-fold.c (or_comparisons_1): Remove rules moved 14400 to ... 14401 * match.pd: ... here. 14402 144032019-09-16 Martin Liska <mliska@suse.cz> 14404 14405 * gimple-fold.c (or_comparisons_1): Remove rules 14406 moved to ... 14407 * match.pd: ... here. 14408 144092019-09-16 Martin Liska <mliska@suse.cz> 14410 14411 * genmatch.c (dt_node::append_simplify): Do not print 14412 warning when we have duplicate patterns belonging 14413 to a same simplify rule. 14414 * gimple-fold.c (and_comparisons_1): Remove matching moved to match.pd. 14415 (maybe_fold_comparisons_from_match_pd): Handle 14416 tcc_comparison as a results. 14417 * match.pd: Handle (X == CST1) && (X OP2 CST2) conditions. 14418 144192019-09-16 Li Jia He <helijia@linux.ibm.com> 14420 Qi Feng <ffengqi@linux.ibm.com> 14421 14422 PR middle-end/88784 14423 * match.pd (x > y && x != XXX_MIN): Optimize into 'x > y'. 14424 (x > y && x == XXX_MIN): Optimize into 'false'. 14425 (x <= y && x == XXX_MIN): Optimize into 'x == XXX_MIN'. 14426 (x < y && x != XXX_MAX): Optimize into 'x < y'. 14427 (x < y && x == XXX_MAX): Optimize into 'false'. 14428 (x >= y && x == XXX_MAX): Optimize into 'x == XXX_MAX'. 14429 (x > y || x != XXX_MIN): Optimize into 'x != XXX_MIN'. 14430 (x <= y || x != XXX_MIN): Optimize into 'true'. 14431 (x <= y || x == XXX_MIN): Optimize into 'x <= y'. 14432 (x < y || x != XXX_MAX): Optimize into 'x != XXX_MAX'. 14433 (x >= y || x != XXX_MAX): Optimize into 'true'. 14434 (x >= y || x == XXX_MAX): Optimize into 'x >= y'. 14435 144362019-09-16 Li Jia He <helijia@linux.ibm.com> 14437 Martin Liska <mliska@suse.cz> 14438 14439 * gimple-fold.c (and_comparisons_1): Add type as first 14440 argument. 14441 (and_var_with_comparison): Likewise. 14442 (and_var_with_comparison_1): Likewise. 14443 (or_comparisons_1): Likewise. 14444 (or_var_with_comparison): Likewise. 14445 (or_var_with_comparison_1): Likewise. 14446 (maybe_fold_and_comparisons): Call maybe_fold_comparisons_from_match_pd. 14447 (maybe_fold_or_comparisons): Likewise. 14448 (maybe_fold_comparisons_from_match_pd): New. 14449 * gimple-fold.h (maybe_fold_and_comparisons): Add type argument. 14450 (maybe_fold_or_comparisons): Likewise. 14451 * gimple.c (gimple_size): Make it public and add num_ops argument. 14452 (gimple_init): New function. 14453 (gimple_alloc): Call gimple_init. 14454 * gimple.h (gimple_size): New. 14455 (gimple_init): Likewise. 14456 * tree-if-conv.c (fold_or_predicates): Pass type. 14457 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. 14458 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Likewise. 14459 (optimize_vec_cond_expr): Likewise. 14460 (ovce_extract_ops): Return type of conditional expression. 14461 * tree-ssanames.c (init_ssa_name_imm_use): New. 14462 (make_ssa_name_fn): Use init_ssa_name_imm_use. 14463 * tree-ssanames.h (init_ssa_name_imm_use): New. 14464 144652019-09-16 Richard Biener <rguenther@suse.de> 14466 14467 PR tree-optimization/91756 14468 PR tree-optimization/87132 14469 * tree-ssa-alias.h (enum translate_flags): New. 14470 (get_continuation_for_phi): Use it instead of simple bool flag. 14471 (walk_non_aliased_vuses): Likewise. 14472 * tree-ssa-alias.c (maybe_skip_until): Adjust. 14473 (get_continuation_for_phi): When looking across backedges only 14474 disallow valueization. 14475 (walk_non_aliased_vuses): Adjust. 14476 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid valueization 14477 if requested. 14478 144792019-09-14 Kewen Lin <linkw@gcc.gnu.org> 14480 14481 PR middle-end/80791 14482 * config/rs6000/rs6000.c (TARGET_HAVE_COUNT_REG_DECR_P): New macro. 14483 (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise. 14484 (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise. 14485 * target.def (have_count_reg_decr_p): New hook. 14486 (doloop_cost_for_generic): Likewise. 14487 (doloop_cost_for_address): Likewise. 14488 * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): Likewise. 14489 (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise. 14490 (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise. 14491 * doc/tm.texi: Regenerate. 14492 * tree-ssa-loop-ivopts.c (comp_cost::operator+=): Consider infinite cost 14493 addend. 14494 (record_group): Init doloop_p. 14495 (add_candidate_1): Add optional argument doloop, change the handlings 14496 accordingly. 14497 (add_candidate): Likewise. 14498 (generic_predict_doloop_p): Update attribute. 14499 (force_expr_to_var_cost): Add costing for expressions COND_EXPR/LT_EXPR/ 14500 LE_EXPR/GT_EXPR/GE_EXPR/EQ_EXPR/NE_EXPR/UNORDERED_EXPR/ORDERED_EXPR/ 14501 UNLT_EXPR/UNLE_EXPR/UNGT_EXPR/UNGE_EXPR/UNEQ_EXPR/LTGT_EXPR/MAX_EXPR/ 14502 MIN_EXPR. 14503 (get_computation_cost): Update for doloop IV cand extra cost. 14504 (determine_group_iv_cost_cond): Update for doloop IV cand. 14505 (determine_iv_cost): Likewise. 14506 (ivopts_estimate_reg_pressure): Likewise. 14507 (may_eliminate_iv): Update handlings for doloop IV cand. 14508 (add_iv_candidate_for_doloop): New function. 14509 (find_iv_candidates): Call function add_iv_candidate_for_doloop. 14510 (iv_ca_set_no_cp): Update for doloop IV cand. 14511 (iv_ca_set_cp): Likewise. 14512 (iv_ca_dump): Dump register cost. 14513 (find_doloop_use): New function. 14514 (analyze_and_mark_doloop_use): Likewise. 14515 (tree_ssa_iv_optimize_loop): Call function analyze_and_mark_doloop_use. 14516 145172019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> 14518 14519 PR middle-end/91708 14520 * cse.c (cse_insn): Do not replace anything with a 14521 MEM. 14522 145232019-09-13 Ian Lance Taylor <iant@golang.org> 14524 14525 * doc/invoke.texi (Optimize Options): Fix typo. 14526 145272019-09-12 Uroš Bizjak <ubizjak@gmail.com> 14528 14529 PR tree-optimization/89386 14530 * config/i386/sse.md (smulhrs<mode>3): New expander. 14531 (smulhrsv4hi3): Ditto. 14532 145332019-09-12 Richard Biener <rguenther@suse.de> 14534 14535 PR tree-optimization/91750 14536 * tree-vect-loop.c (vectorizable_induction): Compute IV increments 14537 in the type of the evolution. 14538 145392019-09-12 Yuliang Wang <yuliang.wang@arm.com> 14540 14541 PR tree-optimization/89386 14542 * config/aarch64/aarch64-sve2.md (<su>mull<bt><Vwide>) 14543 (<r>shrnb<mode>, <r>shrnt<mode>): New SVE2 patterns. 14544 (<su>mulh<r>s<mode>3): New pattern for MULHRS. 14545 * config/aarch64/iterators.md (UNSPEC_SMULLB, UNSPEC_SMULLT) 14546 (UNSPEC_UMULLB, UNSPEC_UMULLT, UNSPEC_SHRNB, UNSPEC_SHRNT) 14547 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SMULHS, UNSPEC_SMULHRS) 14548 UNSPEC_UMULHS, UNSPEC_UMULHRS): New unspecs. 14549 (MULLBT, SHRNB, SHRNT, MULHRS): New int iterators. 14550 (su, r): Handle the unspecs above. 14551 (bt): New int attribute. 14552 * internal-fn.def (IFN_MULHS, IFN_MULHRS): New internal functions. 14553 * internal-fn.c (first_commutative_argument): Commutativity info for 14554 above. 14555 * optabs.def (smulhs_optab, smulhrs_optab, umulhs_optab) 14556 (umulhrs_optab): New optabs. 14557 * doc/md.texi (smulhs$var{m3}, umulhs$var{m3}) 14558 (smulhrs$var{m3}, umulhrs$var{m3}): Documentation for the above. 14559 * tree-vect-patterns.c (vect_recog_mulhs_pattern): New pattern 14560 function. 14561 (vect_vect_recog_func_ptrs): Add it. 14562 145632019-09-11 Michael Meissner <meissner@linux.ibm.com> 14564 14565 * config/rs6000/predicates.md (non_add_cint_operand): Simplify the 14566 code. 14567 145682019-09-11 Nathan Sidwell <nathan@acm.org> 14569 14570 * tree.h (MARK_TS_TYPE_NON_COMMON): New. 14571 * tree.c (tree_node_structure_for_code): Reformat and alphabetize. 14572 145732019-09-11 Richard Biener <rguenther@suse.de> 14574 14575 * lto-opts.c (lto_write_options): Stream -g when debug is enabled. 14576 * lto-wrapper.c (merge_and_complain): Pick up -g. 14577 (append_compiler_options): Likewise. 14578 (run_gcc): Re-instantiate handling -g0 at link-time. 14579 * doc/invoke.texi (flto): Document debug info generation. 14580 145812019-09-11 Richard Biener <rguenther@suse.de> 14582 14583 PR tree-optimization/90387 14584 * vr-values.c (vr_values::extract_range_basic): After inlining 14585 simplify non-constant __builtin_constant_p to false. 14586 145872019-09-11 Eric Botcazou <ebotcazou@adacore.com> 14588 14589 PR rtl-optimization/89795 14590 * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from 14591 inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set. 14592 145932019-09-11 Jakub Jelinek <jakub@redhat.com> 14594 14595 PR tree-optimization/91723 14596 * tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check 14597 instead of pointer equality when checking if argument vectypes are 14598 the same. 14599 14600 PR middle-end/91725 14601 * match.pd ((A / (1 << B)) -> (A >> B)): Call tree_nonzero_bits instead 14602 of get_nonzero_bits, only call it for integral types. 14603 146042019-09-11 Richard Biener <rguenther@suse.de> 14605 14606 Revert 14607 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com> 14608 14609 * match.pd: Add flag_unsafe_math_optimizations check 14610 before deciding on the widest type in a binary math operation. 14611 146122019-09-10 Richard Sandiford <richard.sandiford@arm.com> 14613 14614 * doc/tm.texi.in: Document that exactly one of CALL_USED_REGISTERS 14615 and CALL_REALLY_USED_REGISTERS must be defined, and that 14616 CALL_REALLY_USED_REGISTERS is preferred. 14617 * doc/tm.texi: Regenerate. 14618 * hard-reg-set.h (target_hard_regs::x_call_really_used_regs): Delete. 14619 (call_really_used_regs): Likewise. 14620 * reginfo.c: Raise an #error if both CALL_USED_REGISTERS and 14621 CALL_REALLY_USED_REGISTERS are defined. 14622 (initial_call_used_regs): Use CALL_REALLY_USED_REGISTERS as the 14623 initial value if defined. 14624 (initial_call_really_used_regs): Delete. 14625 (saved_call_really_used_regs): Likewise. 14626 (CALL_REALLY_USED_REGNO_P): Likewise. 14627 (init_reg_sets): Remove handling of call_really_used_regs. 14628 (save_register_info, restore_register_info, globalize_reg): Likewise. 14629 (init_reg_sets_1): Likewise. Use call_used_regs instead of 14630 CALL_REALLY_USED_REGNO_P. Don't set call_used_regs for registers 14631 outside operand_reg_set. 14632 (fix_register): Don't change call_used_regs if 14633 CALL_REALLY_USED_REGISTERS is defined. 14634 * config/csky/csky.h (CALL_USED_REGISTERS): Delete. 14635 * config/csky/csky.c (get_csky_live_regs): Use call_used_regs 14636 instead of call_really_used_regs. 14637 (csky_conditional_register_usage): Remove the old handling of 14638 call_used_regs and change the handling of call_really_used_regs 14639 to use call_used_regs instead. 14640 * config/ia64/ia64.h (CALL_USED_REGISTERS): Delete. 14641 * config/ia64/ia64.c (fix_range): Don't set call_used_regs when 14642 making a register fixed. 14643 * config/m32r/m32r.h (CALL_USED_REGISTERS): Delete. 14644 * config/m32r/m32r.c (MUST_SAVE_REGISTER): Use call_used_regs 14645 instead of call_really_used_regs. 14646 (m32r_conditional_register_usage): Don't set call_used_regs when 14647 making a register fixed. 14648 * config/mips/mips.h (CALL_USED_REGISTERS): Delete. 14649 * config/mips/mips.c (mips_global_pointer): Use call_used_regs 14650 instead of call_really_used_regs. 14651 (mips_interrupt_extra_call_saved_reg_p): Likewise. 14652 (mips_cfun_call_saved_reg_p): Likewise. 14653 (mips_swap_registers): Remove the old handling of call_used_regs 14654 and change the handling of call_really_used_regs to use call_used_regs 14655 instead. 14656 (mips_conditional_register_usage): Likewise. 14657 * config/mn10300/mn10300.h (CALL_USED_REGISTERS): Delete. 14658 * config/mn10300/mn10300.c (fp_regs_to_save): Use call_used_regs 14659 instead of call_really_used_regs. 14660 (mn10300_get_live_callee_saved_regs): Likewise. 14661 (mn10300_expand_prologue, mn10300_expand_epilogue): Likewise. 14662 (mn10300_conditional_register_usage): Don't set call_used_regs when 14663 making a register fixed. 14664 * config/rs6000/rs6000.h (CALL_USED_REGISTERS): Delete. 14665 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): 14666 Remove the old handling of call_used_regs and change the handling 14667 of call_really_used_regs to use call_used_regs instead. 14668 * config/s390/s390.h (CALL_USED_REGISTERS): Delete. 14669 * config/s390/s390.c (s390_regs_ever_clobbered): Use call_used_regs 14670 instead of call_really_used_regs. 14671 (s390_register_info_gprtofpr, s390_register_info): Likewise. 14672 (s390_hard_regno_rename_ok, s390_hard_regno_scratch_ok): Likewise. 14673 (s390_emit_prologue, s300_set_up_by_prologue): Likewise. 14674 (s390_can_use_return_insn, s390_optimize_prologue): Likewise. 14675 (s390_conditional_register_usage): Remove the old handling of 14676 call_used_regs and change the handling of call_really_used_regs 14677 to use call_used_regs instead. 14678 * config/sh/sh.h (CALL_USED_REGISTERS): Delete. 14679 * config/sh/sh.c (output_stack_adjust, calc_live_regs): Likewise. 14680 (sh_fix_range, reg_unused_after): Likewise. 14681 (sh_conditional_register_usage): Remove the old handling of 14682 call_used_regs and change the handling of call_really_used_regs 14683 to use call_used_regs instead. 14684 * config/sparc/sparc.h (CALL_USED_REGISTERS): Delete. 14685 * config/sparc/sparc.c (sparc_conditional_register_usage): Don't set 14686 call_used_regs when making a register fixed. 14687 * config/tilegx/tilegx.h (CALL_USED_REGISTERS): Delete. 14688 * config/tilegx/tilegx.c (tilegx_conditional_register_usage): Don't set 14689 call_used_regs when making a register fixed. 14690 * config/tilepro/tilepro.h (CALL_USED_REGISTERS): Delete. 14691 * config/tilepro/tilepro.c (tilepro_conditional_register_usage): Don't 14692 set call_used_regs when making a register fixed. 14693 * config/visium/visium.h (CALL_USED_REGISTERS): Delete. 14694 * config/visium/visium.c (visium_conditional_register_usage): Remove 14695 the old handling of call_used_regs and change the handling of 14696 call_really_used_regs to use call_used_regs instead. 14697 146982019-09-10 Richard Sandiford <richard.sandiford@arm.com> 14699 14700 * hard-reg-set.h (call_used_regs): Only define if IN_TARGET_CODE. 14701 (call_used_or_fixed_reg_p): Expand definition of call_used_regs. 14702 * reginfo.c (call_used_regs): New macro. 14703 147042019-09-10 Richard Sandiford <richard.sandiford@arm.com> 14705 14706 * config/alpha/alpha.c (alpha_compute_frame_layout): Remove redundant 14707 fixed_regs test. 14708 * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue) 14709 (bpf_expand_epilogue): Likewise. 14710 * config/c6x/c6x.c (c6x_save_reg): Likewise. 14711 * config/ft32/ft32.c (ft32_expand_prologue): Likewise. 14712 (ft32_expand_epilogue): Likewise. 14713 * config/i386/i386.c (ix86_save_reg): Likewise. 14714 * config/moxie/moxie.c (moxie_expand_prologue): Likewise. 14715 (moxie_expand_epilogue): Likewise. 14716 * config/tilegx/tilegx.c (need_to_save_reg): Likewise. 14717 * config/tilepro/tilepro.c (need_to_save_reg): Likewise. 14718 * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise. 14719 147202019-09-10 Richard Sandiford <richard.sandiford@arm.com> 14721 14722 * hard-reg-set.h (call_used_or_fixed_reg_p): New macro. 14723 * cfgloopanal.c (init_set_costs): Use call_used_or_fixed_reg_p 14724 instead of testing call_used_regs directly. 14725 * config/aarch64/aarch64.c (aarch64_layout_frame): Likewise. 14726 (aarch64_components_for_bb): Likewise. 14727 * config/alpha/alpha.c (alpha_compute_frame_layout): Likewise. 14728 * config/arc/arc.c (arc_must_save_register): Likewise. 14729 (arc_epilogue_uses): Likewise. 14730 * config/arm/arm.c (arm_option_override, use_return_insn): Likewise. 14731 (legitimize_pic_address, callee_saved_reg_p): Likewise. 14732 (arm_compute_save_reg0_reg12_mask): Likewise. 14733 (arm_compute_save_core_reg_mask): Likewise. 14734 (arm_get_vfp_saved_size, arm_compute_frame_layout): Likewise. 14735 (arm_save_coproc_regs, thumb1_extra_regs_pushed): Likewise. 14736 (cmse_nonsecure_entry_clear_before_return): Likewise. 14737 (thumb1_expand_epilogue, arm_expand_epilogue_apcs_frame): Likewise. 14738 (arm_expand_epilogue): Likewise. 14739 * config/avr/avr.c (avr_regs_to_save, sequent_regs_live): Likewise. 14740 (avr_function_arg_advance, avr_find_unused_d_reg): Likewise. 14741 (_reg_unused_after): Likewise. 14742 * config/bfin/bfin.c (must_save_p, expand_prologue_reg_save): Likewise. 14743 (expand_epilogue_reg_restore, n_regs_saved_by_prologue): Likewise. 14744 (add_to_reg, hwloop_optimize): Likewise. 14745 * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue) 14746 (bpf_expand_epilogue): Likewise. 14747 * config/c6x/c6x.c (c6x_save_reg, c6x_regno_reg_class): Likewise. 14748 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise. 14749 * config/cris/cris.c (cris_reg_saved_in_regsave_area): Likewise. 14750 * config/epiphany/epiphany.c (epiphany_init_reg_tables): Likewise. 14751 (epiphany_compute_function_type, MUST_SAVE_REGISTER): Likewise. 14752 (epiphany_output_mi_thunk, epiphany_start_function): Likewise. 14753 * config/fr30/fr30.c (fr30_num_arg_regs): Likewise. 14754 * config/frv/frv.c (frv_stack_info): Likewise. 14755 * config/ft32/ft32.c (ft32_compute_frame): Likewise. 14756 (ft32_expand_prologue, ft32_expand_epilogue): Likewise. 14757 * config/gcn/gcn.c (gcn_compute_frame_offsets): Likewise. 14758 (move_callee_saved_registers): Likewise. 14759 * config/h8300/h8300.c (byte_reg): Likewise. 14760 * config/i386/i386-options.c (ix86_set_current_function): Likewise. 14761 * config/i386/i386.c (ix86_save_reg, ix86_expand_prologue): Likewise. 14762 (ix86_expand_epilogue, x86_order_regs_for_local_alloc): Likewise. 14763 * config/i386/predicates.md (sibcall_memory_operand): Likewise. 14764 * config/ia64/ia64.c (emit_safe_across_calls, find_gr_spill): Likewise. 14765 (next_scratch_gr_reg, ia64_compute_frame_size): Likewise. 14766 * config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Likewise. 14767 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise. 14768 * config/m32c/m32c.c (need_to_save): Likewise. 14769 * config/m68k/m68k.c (m68k_save_reg): Likewise. 14770 * config/mcore/mcore.c (calc_live_regs): Likewise. 14771 * config/microblaze/microblaze.c (microblaze_must_save_register): 14772 Likewise. 14773 * config/mmix/mmix.c (mmix_local_regno): Likewise. 14774 (mmix_initial_elimination_offset, mmix_reorg): Likewise. 14775 (mmix_use_simple_return, mmix_expand_prologue): Likewise. 14776 (mmix_expand_epilogue): Likewise. 14777 * config/moxie/moxie.c (moxie_compute_frame): Likewise. 14778 (moxie_expand_prologue, moxie_expand_epilogue): Likewise. 14779 * config/msp430/msp430.c (msp430_preserve_reg_p): Likewise. 14780 * config/nds32/nds32.h (nds32_16bit_address_type): Likewise. 14781 (NDS32_REQUIRED_CALLEE_SAVED_P): Likewise. 14782 * config/nios2/nios2.c (prologue_saved_reg_p): Likewise. 14783 * config/or1k/or1k.c (callee_saved_regno_p): Likewise. 14784 * config/pa/pa.c (pa_expand_prologue, pa_expand_epilogue): Likewise. 14785 * config/pdp11/pdp11.c (pdp11_saved_regno): Likewise. 14786 * config/pru/pru.c (prologue_saved_reg_p): Likewise. 14787 * config/riscv/riscv.c (riscv_save_reg_p): Likewise. 14788 (riscv_epilogue_uses, riscv_hard_regno_mode_ok): Likewise. 14789 * config/rl78/rl78.c (need_to_save): Likewise. 14790 * config/rs6000/rs6000-logue.c (save_reg_p): Likewise. 14791 (rs6000_stack_info, generate_set_vrsave): Likewise. 14792 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. 14793 * config/rs6000/rs6000.c (rs6000_debug_reg_print): Likewise. 14794 * config/rx/rx.c (rx_get_stack_layout): Likewise. 14795 * config/s390/s390.c (s390_call_saved_register_used): Likewise. 14796 * config/sh/sh.c (calc_live_regs, sh_output_mi_thunk): Likewise. 14797 * config/sparc/sparc.c (save_global_or_fp_reg_p): Likewise. 14798 (save_local_or_in_reg_p): Likewise. 14799 * config/stormy16/stormy16.c (REG_NEEDS_SAVE): Likewise. 14800 (xstormy16_epilogue_uses): Likewise. 14801 * config/tilegx/tilegx.c (need_to_save_reg): Likewise. 14802 * config/tilepro/tilepro.c (need_to_save_reg): Likewise. 14803 * config/v850/v850.c (compute_register_save_size): Likewise. 14804 * config/vax/vax.c (vax_expand_prologue): Likewise. 14805 * config/visium/visium.c (visium_save_reg_p): Likewise. 14806 * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise. 14807 * cselib.c (cselib_process_insn): Likewise. 14808 * df-scan.c (df_get_entry_block_def_set): Likewise. 14809 * function.c (aggregate_value_p): Likewise. 14810 * haifa-sched.c (alloc_global_sched_pressure_data): Likewise. 14811 * ira-lives.c (process_bb_node_lives): Likewise. 14812 * ira.c (do_reload): Likewise. 14813 * lra-lives.c (process_bb_lives): Likewise. 14814 * lra-remat.c (lra_remat): Likewise. 14815 * lra.c (lra): Likewise. 14816 * postreload.c (reload_combine_recognize_pattern): Likewise. 14817 (reload_cse_move2add): Likewise. 14818 * recog.c (peep2_find_free_register): Likewise. 14819 * regrename.c (check_new_reg_p): Likewise. 14820 * reload.c (find_equiv_reg): Likewise. 14821 * reload1.c (reload, find_reg): Likewise. 14822 * sel-sched.c (init_hard_regs_data): Likewise. 14823 148242019-09-10 Richard Sandiford <richard.sandiford@arm.com> 14825 14826 * config/frv/frv.c (frv_ifcvt_modify_tests): Use 14827 regs_invalidated_by_call & ~fixed_reg_set instead of 14828 call_used_or_fixed_regs & ~fixed_reg_set. 14829 * config/sh/sh.c (output_stack_adjust): Likewise. 14830 148312019-09-10 Richard Sandiford <richard.sandiford@arm.com> 14832 14833 * hard-reg-set.h (target_hard_regs::x_call_used_reg_set): Delete. 14834 (call_used_reg_set): Delete. 14835 (call_used_or_fixed_regs): New macro. 14836 * reginfo.c (init_reg_sets_1, globalize_reg): Remove initialization 14837 of call_used_reg_set. 14838 * caller-save.c (setup_save_areas): Use call_used_or_fixed_regs 14839 instead of call_used_regs. 14840 (save_call_clobbered_regs): Likewise. 14841 * cfgcleanup.c (old_insns_match_p): Likewise. 14842 * config/c6x/c6x.c (c6x_call_saved_register_used): Likewise. 14843 * config/epiphany/epiphany.c (epiphany_conditional_register_usage): 14844 Likewise. 14845 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. 14846 * config/sh/sh.c (output_stack_adjust): Likewise. 14847 * final.c (collect_fn_hard_reg_usage): Likewise. 14848 * ira-build.c (ira_build): Likewise. 14849 * ira-color.c (calculate_saved_nregs): Likewise. 14850 (allocno_reload_assign, calculate_spill_cost): Likewise. 14851 * ira-conflicts.c (ira_build_conflicts): Likewise. 14852 * ira-costs.c (ira_tune_allocno_costs): Likewise. 14853 * ira-lives.c (process_bb_node_lives): Likewise. 14854 * ira.c (setup_reg_renumber): Likewise. 14855 * lra-assigns.c (find_hard_regno_for_1, lra_assign): Likewise. 14856 * lra-constraints.c (need_for_call_save_p): Likewise. 14857 (need_for_split_p, inherit_in_ebb): Likewise. 14858 * lra-lives.c (process_bb_lives): Likewise. 14859 * lra-remat.c (call_used_input_regno_present_p): Likewise. 14860 * postreload.c (reload_combine): Likewise. 14861 * regrename.c (find_rename_reg): Likewise. 14862 * reload1.c (reload_as_needed): Likewise. 14863 * rtlanal.c (find_all_hard_reg_sets): Likewise. 14864 * sel-sched.c (mark_unavailable_hard_regs): Likewise. 14865 * shrink-wrap.c (requires_stack_frame_p): Likewise. 14866 148672019-09-10 Richard Sandiford <richard.sandiford@arm.com> 14868 14869 * hard-reg-set.h (target_hard_regs::x_no_caller_save_reg_set): Delete. 14870 (no_caller_save_reg_set): Delete. 14871 * caller-save.c (init_caller_save): Don't initialize it. 14872 * ira-conflicts.c (ira_build_conflicts): Calculate 14873 no_caller_save_reg_set locally from call_used_reg_set and savable_regs. 14874 148752019-09-10 Richard Sandiford <richard.sandiford@arm.com> 14876 14877 * hard-reg-set.h (target_hard_regs::x_call_fixed_reg_set): Delete. 14878 (target_hard_regs::x_savable_regs): New field. 14879 (call_fixed_reg_set): Delete. 14880 (savable_regs): New macro, 14881 * reginfo.c (globalize_reg): Don't set call_fixed_reg_set. 14882 (init_reg_sets_1): Likewise. Initialize savable_regs. 14883 * caller-save.c (init_caller_save): Invoke HARD_REGNO_CALLER_SAVE_MODE 14884 for all registers. Set savable_regs instead of call_fixed_reg_set. 14885 (setup_save_areas, save_call_clobbered_regs): Replace uses of 14886 ~call_fixed_reg_set with ~fixed_reg_set & savable_regs. 14887 * config/sh/sh.c (output_stack_adjust): Likewise. 14888 148892019-09-10 Richard Sandiford <richard.sandiford@arm.com> 14890 14891 * config/c6x/c6x-protos.h (c6x_set_return_address): Declare. 14892 * config/c6x/c6x.h (REGNO_REG_CLASS): Move implementation to 14893 * config/c6x/c6x.c (c6x_regno_reg_class): ...this new function. 14894 148952019-09-10 Richard Sandiford <richard.sandiford@arm.com> 14896 14897 * rtl.h (get_call_rtx_from): Take a const rtx_insn * instead of an rtx. 14898 * rtlanal.c (get_call_rtx_from): Likewise. 14899 * dwarf2out.c (dwarf2out_var_location): Pass the insn rather 14900 than the pattern to get_call_rtx_from. 14901 * config/i386/i386-expand.h (ix86_notrack_prefixed_insn_p): Take 14902 an rtx_insn * instead of an rtx. 14903 * config/i386/i386-expand.c (ix86_notrack_prefixed_insn_p): Likewise. 14904 149052019-09-10 Martin Liska <mliska@suse.cz> 14906 14907 * common.opt: Use newly added WarnRemoved. 14908 * config/aarch64/aarch64.opt: Likewise. 14909 * config/arm/arm.opt: Likewise. 14910 * config/i386/i386.opt: Likewise. 14911 * config/ia64/ia64.opt: Likewise. 14912 * config/rs6000/rs6000.opt: Likewise. 14913 * doc/options.texi: Document WarnRemoved properly. 14914 * dwarf2out.c (gen_producer_string): Handle renamed 14915 OPT_SPECIAL_warn_removed. 14916 * lto-opts.c (lto_write_options): Likewise. 14917 * lto-wrapper.c (merge_and_complain): Likewise. 14918 * opts-common.c (decode_cmdline_option): Likewise. 14919 (prune_options): Likewise. 14920 (read_cmdline_option): Likewise. 14921 (control_warning_option): Likewise. 14922 * opts.c (print_filtered_help): Likewise. 14923 * optc-gen.awk: Parse for WarnRemoved and make usage 14924 of Deprecated an error. 14925 * opth-gen.awk: Generate new OPT_SPECIAL_warn_removed. 14926 149272019-09-10 Arnaud Charlet <charlet@adacore.com> 14928 14929 * doc/install.texi: Fix syntax for html generation. 14930 149312019-09-10 Jakub Jelinek <jakub@redhat.com> 14932 14933 PR middle-end/91680 14934 * match.pd ((A / (1 << B)) -> (A >> B)): Allow widening cast from 14935 the shift type to type. 14936 149372019-09-10 Christophe Lyon <christophe.lyon@st.com> 14938 14939 * config/arm/arm.md (stack_protect_combined_set_insn): Handle 14940 FDPIC mode. 14941 (stack_protect_combined_test_insn): Likewise. 14942 149432019-09-10 Christophe Lyon <christophe.lyon@st.com> 14944 Mickaël Guêné <mickael.guene@st.com> 14945 14946 * config/arm/arm.c (arm_load_tp): Add FDPIC support. 14947 * config/arm/arm.md (FDPIC_REGNUM): New constant. 14948 (load_tp_soft_fdpic): New pattern. 14949 (load_tp_soft): Disable in FDPIC mode. 14950 149512019-09-10 Christophe Lyon <christophe.lyon@st.com> 14952 Mickaël Guêné <mickael.guene@st.com> 14953 14954 * config/arm/arm.c (tls_reloc): Add TLS_GD32_FDPIC, 14955 TLS_LDM32_FDPIC and TLS_IE32_FDPIC. 14956 (arm_call_tls_get_addr): Add FDPIC support. 14957 (legitimize_tls_address): Likewise. 14958 (arm_emit_tls_decoration): Likewise. 14959 149602019-09-10 Christophe Lyon <christophe.lyon@st.com> 14961 Mickaël Guêné <mickael.guene@st.com> 14962 14963 * config/arm/arm.c (arm_asm_trampoline_template): Add FDPIC 14964 support. 14965 (arm_trampoline_init): Likewise. 14966 (arm_trampoline_adjust_address): Likewise. 14967 * config/arm/arm.h (TRAMPOLINE_SIZE): Likewise. 14968 149692019-09-10 Christophe Lyon <christophe.lyon@st.com> 14970 Mickaël Guêné <mickael.guene@st.com> 14971 14972 * config/arm/arm.c (arm_fdpic_local_funcdesc_p): New function. 14973 (legitimize_pic_address): Enforce binding rules on function 14974 pointers in FDPIC mode. 14975 (arm_assemble_integer): Likewise. 14976 149772019-09-10 Christophe Lyon <christophe.lyon@st.com> 14978 Mickaël Guêné <mickael.guene@st.com> 14979 14980 * config/arm/arm.h (PIC_REGISTER_MAY_NEED_SAVING): New helper. 14981 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Handle 14982 FDPIC. 14983 149842019-09-10 Christophe Lyon <christophe.lyon@st.com> 14985 Mickaël Guêné <mickael.guene@st.com> 14986 14987 * ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5 14988 field. 14989 149902019-09-10 Christophe Lyon <christophe.lyon@st.com> 14991 Mickaël Guêné <mickael.guene@st.com> 14992 14993 * config/arm/arm-c.c (__FDPIC__): Define new pre-processor macro 14994 in FDPIC mode. 14995 * config/arm/arm-protos.h (arm_load_function_descriptor): Declare 14996 new function. 14997 * config/arm/arm.c (arm_option_override): Define pic register to 14998 FDPIC_REGNUM. 14999 (arm_function_ok_for_sibcall): Disable sibcall optimization if we 15000 have no decl or go through PLT. 15001 (calculate_pic_address_constant): New function. 15002 (legitimize_pic_address): Call calculate_pic_address_constant. 15003 (arm_load_pic_register): Handle TARGET_FDPIC. 15004 (arm_is_segment_info_known): New function. 15005 (arm_pic_static_addr): Add support for FDPIC. 15006 (arm_load_function_descriptor): New function. 15007 (arm_emit_call_insn): Add support for FDPIC. 15008 (arm_assemble_integer): Add support for FDPIC. 15009 * config/arm/arm.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): 15010 Define. (FDPIC_REGNUM): New define. 15011 * config/arm/arm.md (call): Add support for FDPIC. 15012 (call_value): Likewise. 15013 (restore_pic_register_after_call): New pattern. 15014 (untyped_call): Disable if FDPIC. 15015 (untyped_return): Likewise. 15016 * config/arm/unspecs.md (UNSPEC_PIC_RESTORE): New. 15017 150182019-09-10 Christophe Lyon <christophe.lyon@st.com> 15019 Mickaël Guêné <mickael.guene@st.com> 15020 15021 * config.gcc: Handle arm*-*-uclinuxfdpiceabi. 15022 * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): New. 15023 (SUBTARGET_EXTRA_ASM_SPEC): Use TARGET_FDPIC_ASM_SPEC. 15024 * config/arm/linux-eabi.h (FDPIC_CC1_SPEC): New. 15025 (CC1_SPEC): Use FDPIC_CC1_SPEC. 15026 (MUSL_DYNAMIC_LINKER): Add -fdpic suffix when needed. 15027 * config/arm/uclinuxfdpiceabi.h: New file. 15028 150292019-09-10 Christophe Lyon <christophe.lyon@st.com> 15030 15031 * config.gcc: Handle *-*-uclinuxfdpiceabi. 15032 150332019-09-10 Christophe Lyon <christophe.lyon@st.com> 15034 Mickaël Guêné <mickael.guene@st.com> 15035 15036 * config/arm/arm.opt: Add -mfdpic option. 15037 * doc/invoke.texi: Add documentation for -mfdpic. 15038 150392019-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de> 15040 15041 * expmed.c (extract_bit_field): Update function comment 15042 regarding alt_rtl. 15043 * expr.c (expand_expr_real): Update function comment 15044 regarding alt_rtl. 15045 (expand_misaligned_mem_ref): New helper function. 15046 (expand_expr_real_2): Use expand_misaligned_mem_ref. 15047 Remove duplicate assignment to "base" at case MEM_REF. 15048 Remove a shadowed variable "unsignedp" at case VCE. 15049 150502019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15051 15052 * regset.h (regs_invalidated_by_call_regset): Delete. 15053 (fixed_reg_set_regset): Likewise. 15054 * reginfo.c (regs_invalidated_by_call_regset): Likewise. 15055 (fixed_reg_set_regset, persistent_obstack): Likewise. 15056 (init_reg_sets_1, globalize_reg): Update accordingly. 15057 * df.h (df_print_regset, df_print_word_regset): Take a const_bitmap 15058 instead of a bitmap. 15059 * df-core.c (df_print_regset, df_print_word_regset): Likewise. 15060 * df-problems.c (df_rd_local_compute): Use regs_invalidated_by_call 15061 instead of regs_invalidated_by_call_regset. 15062 (df_lr_confluence_n, df_md_confluence_n): Likewise. 15063 * df-scan.c (df_scan_start_dump): Likewise. 15064 * dse.c (copy_fixed_regs): Likewise. 15065 * config/sh/sh.c (sh_find_equiv_gbr_addr): Likewise. 15066 150672019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15068 15069 * array-traits.h: New file. 15070 * coretypes.h (array_traits, bitmap_view): New types. 15071 * bitmap.h: Include "array-traits.h" 15072 (bitmap_bit_p): Take a const_bitmap instead of a bitmap. 15073 (base_bitmap_view, bitmap_view): New classes. 15074 * bitmap.c (bitmap_bit_p): Take a const_bitmap instead of a bitmap. 15075 * hard-reg-set.h: Include array-traits.h. 15076 (array_traits<HARD_REG_SET>): New struct. 15077 * regset.h (IOR_REG_SET_HRS): New macro. 15078 * loop-iv.c (simplify_using_initial_values): Use IOR_REG_SET_HRS 15079 rather than iterating over each hard register. 15080 * sched-deps.c (sched_analyze_insn): Likewise. 15081 * sel-sched-ir.c (setup_id_implicit_regs): Likewise. 15082 150832019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15084 15085 * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set 15086 instead of a HARD_REG_SET *. 15087 * ira-build.c (ior_hard_reg_conflicts): Likewise. 15088 (ira_build): Update call accordingly. 15089 * ira-emit.c (add_range_and_copies_from_move_list): Likewise. 15090 150912019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15092 15093 * hard-reg-set.h (HARD_REG_SET::operator==): New function. 15094 (HARD_REG_SET::operator!=): Likewise. 15095 (hard_reg_set_equal_p): Delete. 15096 * cfgcleanup.c (old_insns_match_p): Use == instead of 15097 hard_reg_set_equal_p and != instead of !hard_reg_set_equal_p. 15098 * ira-color.c (allocno_hard_regs_hasher::equal): Likewise. 15099 (add_allocno_hard_regs_to_forest): Likewise. 15100 (setup_allocno_available_regs_num): Likewise. 15101 * ira.c (setup_pressure_classes): Likewise. 15102 (setup_allocno_and_important_classes): Likewise. 15103 (setup_reg_class_relations): Likewise. 15104 * lra-lives.c (process_bb_lives): Likewise. 15105 * reg-stack.c (change_stack, convert_regs_1): Likewise. 15106 151072019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15108 15109 * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete. 15110 * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain): 15111 Use "|~" instead of IOR_COMPL_HARD_REG_SET. 15112 * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable): 15113 Likewise. 15114 * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise. 15115 * ira.c (setup_reg_renumber): Likewise. 15116 * lra-assigns.c (find_hard_regno_for_1): Likewise. 15117 * regrename.c (regrename_find_superclass): Likewise. 15118 * reload1.c (find_reg): Likewise. 15119 151202019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15121 15122 * hard-reg-set.h (AND_COMPL_HARD_REG_SET): Delete. 15123 * caller-save.c (setup_save_areas): Use "&~" instead of 15124 AND_COMPL_HARD_REG_SET. 15125 (save_call_clobbered_regs): Likewise. 15126 * config/epiphany/epiphany.c (epiphany_conditional_register_usage): 15127 Likewise. 15128 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. 15129 * config/gcn/gcn.c (gcn_md_reorg): Likewise. 15130 * config/i386/i386.c (ix86_conditional_register_usage): Likewise. 15131 * config/mips/mips.c (mips_class_max_nregs): Likewise. 15132 (mips_conditional_register_usage): Likewise. 15133 * config/sh/sh.c (output_stack_adjust): Likewise. 15134 * ira-color.c (form_allocno_hard_regs_nodes_forest): Likewise. 15135 (setup_profitable_hard_regs): Likewise. 15136 (get_conflict_and_start_profitable_regs): Likewise. 15137 * ira-conflicts.c (print_allocno_conflicts): Likewise. 15138 (ira_build_conflicts): Likewise. 15139 * ira-costs.c (restrict_cost_classes): Likewise. 15140 (setup_regno_cost_classes_by_aclass): Likewise. 15141 * ira-lives.c (process_bb_node_lives): Likewise. 15142 * ira.c (setup_class_hard_regs, setup_reg_subclasses): Likewise. 15143 (setup_class_subset_and_memory_move_costs, setup_pressure_classes) 15144 (setup_allocno_and_important_classes, setup_class_translate_array) 15145 (setup_reg_class_relations, setup_prohibited_class_mode_regs): 15146 Likewise. 15147 * lra-assigns.c (find_hard_regno_for_1): Likewise. 15148 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise. 15149 (process_alt_operands, inherit_in_ebb): Likewise. 15150 * lra-eliminations.c (update_reg_eliminate): Likewise. 15151 * lra-lives.c (process_bb_lives): Likewise. 15152 * reload1.c (update_eliminables_and_spill, reload_as_needed): Likewise. 15153 * resource.c (find_dead_or_set_registers): Likewise. 15154 (mark_target_live_regs): Likewise. 15155 * sched-deps.c (get_implicit_reg_pending_clobbers): Likewise. 15156 * sel-sched.c (mark_unavailable_hard_regs): Likewise. 15157 (implicit_clobber_conflict_p): Likewise. 15158 * shrink-wrap.c (requires_stack_frame_p): Likewise. 15159 (try_shrink_wrapping): Likewise. 15160 151612019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15162 15163 * hard-reg-set.h (HARD_REG_SET::operator|): New function. 15164 (HARD_REG_SET::operator|=): Likewise. 15165 (IOR_HARD_REG_SET): Delete. 15166 * config/gcn/gcn.c (gcn_md_reorg): Use "|" instead of 15167 IOR_HARD_REG_SET. 15168 * config/m32c/m32c.c (m32c_register_move_cost): Likewise. 15169 * config/s390/s390.c (s390_adjust_loop_scan_osc): Likewise. 15170 * final.c (collect_fn_hard_reg_usage): Likewise. 15171 * hw-doloop.c (scan_loop, optimize_loop): Likewise. 15172 * ira-build.c (merge_hard_reg_conflicts): Likewise. 15173 (ior_hard_reg_conflicts, create_cap_allocno, propagate_allocno_info) 15174 (propagate_some_info_from_allocno): Likewise. 15175 (copy_info_to_removed_store_destinations): Likewise. 15176 * ira-color.c (add_allocno_hard_regs_to_forest, assign_hard_reg) 15177 (allocno_reload_assign, ira_reassign_pseudos): Likewise. 15178 (fast_allocation): Likewise. 15179 * ira-conflicts.c (ira_build_conflicts): Likewise. 15180 * ira-lives.c (make_object_dead, process_single_reg_class_operands) 15181 (process_bb_node_lives): Likewise. 15182 * ira.c (setup_pressure_classes, setup_reg_class_relations): Likewise. 15183 * lra-assigns.c (find_hard_regno_for_1): Likewise. 15184 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. 15185 * lra-constraints.c (process_alt_operands, inherit_in_ebb): Likewise. 15186 * lra-eliminations.c (spill_pseudos, update_reg_eliminate): Likewise. 15187 * lra-lives.c (mark_pseudo_dead, check_pseudos_live_through_calls) 15188 (process_bb_lives): Likewise. 15189 * lra-spills.c (assign_spill_hard_regs): Likewise. 15190 * postreload.c (reload_combine): Likewise. 15191 * reginfo.c (init_reg_sets_1): Likewise. 15192 * regrename.c (merge_overlapping_regs, find_rename_reg) 15193 (merge_chains): Likewise. 15194 * reload1.c (maybe_fix_stack_asms, order_regs_for_reload, find_reg) 15195 (find_reload_regs, finish_spills, choose_reload_regs_init) 15196 (emit_reload_insns): Likewise. 15197 * reorg.c (redundant_insn): Likewise. 15198 * resource.c (find_dead_or_set_registers, mark_set_resources) 15199 (mark_target_live_regs): Likewise. 15200 * rtlanal.c (find_all_hard_reg_sets): Likewise. 15201 * sched-deps.c (sched_analyze_insn): Likewise. 15202 * sel-sched.c (mark_unavailable_hard_regs): Likewise. 15203 (find_best_reg_for_expr): Likewise. 15204 * shrink-wrap.c (try_shrink_wrapping): Likewise. 15205 152062019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15207 15208 * hard-reg-set.h (HARD_REG_SET::operator&): New function. 15209 (HARD_REG_SET::operator&): Likewise. 15210 (AND_HARD_REG_SET): Delete. 15211 * caller-save.c (setup_save_areas): Use "&" instead of 15212 AND_HARD_REG_SET. 15213 (save_call_clobbered_regs): Likewise. 15214 * config/gcn/gcn.c (gcn_md_reorg): Likewise. 15215 * config/m32c/m32c.c (reduce_class): Likewise. 15216 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise. 15217 * final.c (get_call_reg_set_usage): Likewise. 15218 * ira-color.c (add_allocno_hard_regs_to_forest): Likewise. 15219 (setup_left_conflict_sizes_p): Likewise. 15220 * ira-conflicts.c (print_allocno_conflicts): Likewise. 15221 (ira_build_conflicts): Likewise. 15222 * ira-costs.c (restrict_cost_classes): Likewise. 15223 * ira.c (setup_stack_reg_pressure_class, setup_class_translate_array) 15224 (setup_reg_class_relations): Likewise. 15225 * reginfo.c (init_reg_sets_1, record_subregs_of_mode): Likewise. 15226 * reload1.c (maybe_fix_stack_asms, finish_spills): Likewise. 15227 * resource.c (find_dead_or_set_registers): Likewise. 15228 * sel-sched.c (mark_unavailable_hard_regs): Likewise. 15229 152302019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15231 15232 * hard-reg-set.h (HARD_REG_SET::operator~): New function. 15233 (COMPL_HARD_REG_SET): Delete. 15234 * config/c6x/c6x.c (c6x_call_saved_register_used): Use ~ instead 15235 of COMPL_HARD_REG_SET. 15236 (try_rename_operands): Likewise. 15237 * config/sh/sh.c (push_regs): Likewise. 15238 * lra-assigns.c (find_hard_regno_for_1): Likewise. 15239 * lra-constraints.c (contains_reg_p): Likewise. 15240 * reload1.c (finish_spills, choose_reload_regs_init): Likewise. 15241 152422019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15243 15244 * hard-reg-set.h (COPY_HARD_REG_SET): Delete. 15245 * caller-save.c (save_call_clobbered_regs): Use assignment instead 15246 of COPY_HARD_REG_SET. 15247 * config/epiphany/epiphany.c (epiphany_compute_frame_size): Likewise. 15248 (epiphany_conditional_register_usage): Likewise. 15249 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. 15250 * config/gcn/gcn.c (gcn_md_reorg): Likewise. 15251 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise. 15252 * config/m32c/m32c.c (m32c_register_move_cost): Likewise. 15253 * config/m68k/m68k.c (m68k_conditional_register_usage): Likewise. 15254 * config/mips/mips.c (mips_class_max_nregs): Likewise. 15255 * config/pdp11/pdp11.c (pdp11_conditional_register_usage): Likewise. 15256 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise. 15257 * config/sh/sh.c (output_stack_adjust): Likewise. 15258 * final.c (collect_fn_hard_reg_usage): Likewise. 15259 (get_call_reg_set_usage): Likewise. 15260 * ira-build.c (ira_create_object, remove_low_level_allocnos) 15261 (ira_flattening): Likewise. 15262 * ira-color.c (add_allocno_hard_regs, add_allocno_hard_regs_to_forest) 15263 (setup_left_conflict_sizes_p, setup_profitable_hard_regs) 15264 (get_conflict_and_start_profitable_regs, allocno_reload_assign) 15265 (ira_reassign_pseudos): Likewise. 15266 * ira-conflicts.c (print_allocno_conflicts): Likewise. 15267 (ira_build_conflicts): Likewise. 15268 * ira-costs.c (restrict_cost_classes): Likewise. 15269 (setup_regno_cost_classes_by_aclass): Likewise. 15270 * ira.c (setup_class_hard_regs, setup_alloc_regs): Likewise. 15271 (setup_reg_subclasses, setup_class_subset_and_memory_move_costs) 15272 (setup_stack_reg_pressure_class, setup_pressure_classes) 15273 (setup_allocno_and_important_classes, setup_class_translate_array) 15274 (setup_reg_class_relations, setup_prohibited_class_mode_regs) 15275 (ira_setup_eliminable_regset): Likewise. 15276 * lra-assigns.c (find_hard_regno_for_1): Likewise. 15277 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. 15278 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise. 15279 (process_alt_operands, inherit_in_ebb): Likewise. 15280 * lra-lives.c (process_bb_lives): Likewise. 15281 * lra-spills.c (assign_spill_hard_regs): Likewise. 15282 * lra.c (lra): Likewise. 15283 * mode-switching.c (new_seginfo): Likewise. 15284 * postreload.c (reload_combine): Likewise. 15285 * reg-stack.c (straighten_stack): Likewise. 15286 * reginfo.c (save_register_info, restore_register_info): Likewise. 15287 (init_reg_sets_1, record_subregs_of_mode): Likewise 15288 * regrename.c (create_new_chain, rename_chains): Likewise. 15289 * reload1.c (order_regs_for_reload, find_reg): Likewise. 15290 (find_reload_regs): Likewise. 15291 * resource.c (find_dead_or_set_registers): Likewise. 15292 (mark_target_live_regs): Likewise. 15293 * sel-sched.c (mark_unavailable_hard_regs): Likewise. 15294 152952019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15296 15297 * rtl.h (CALL_INSN_FUNCTION_USAGE): Document what SETs mean. 15298 (note_pattern_stores): Declare. 15299 (note_stores): Take an rtx_insn *. 15300 * rtlanal.c (set_of): Use note_pattern_stores instead of note_stores. 15301 (find_all_hard_reg_sets): Pass the insn rather than its pattern to 15302 note_stores. Remove explicit handling of CALL_INSN_FUNCTION_USAGE. 15303 (note_stores): Take an rtx_insn * as argument and process 15304 CALL_INSN_FUNCTION_USAGE. Rename old function to... 15305 (note_pattern_stores): ...this. 15306 (find_first_parameter_load): Pass the insn rather than 15307 its pattern to note_stores. 15308 * alias.c (memory_modified_in_insn_p, init_alias_analysis): Likewise. 15309 * caller-save.c (setup_save_areas, save_call_clobbered_regs) 15310 (insert_one_insn): Likewise. 15311 * combine.c (combine_instructions): Likewise. 15312 (likely_spilled_retval_p): Likewise. 15313 (try_combine): Use note_pattern_stores instead of note_stores. 15314 (record_dead_and_set_regs): Pass the insn rather than its pattern 15315 to note_stores. 15316 (reg_dead_at_p): Likewise. 15317 * config/bfin/bfin.c (workaround_speculation): Likewise. 15318 * config/c6x/c6x.c (maybe_clobber_cond): Likewise. Take an rtx_insn * 15319 rather than an rtx. 15320 * config/frv/frv.c (frv_registers_update): Use note_pattern_stores 15321 instead of note_stores. 15322 (frv_optimize_membar_local): Pass the insn rather than its pattern 15323 to note_stores. 15324 * config/gcn/gcn.c (gcn_md_reorg): Likewise. 15325 * config/i386/i386.c (ix86_avx_u128_mode_after): Likewise. 15326 * config/mips/mips.c (vr4130_true_reg_dependence_p): Likewise. 15327 (r10k_needs_protection_p, mips_sim_issue_insn): Likewise. 15328 (mips_reorg_process_insns): Likewise. 15329 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise. 15330 * config/sh/sh.c (flow_dependent_p): Likewise. Take rtx_insn *s 15331 rather than rtxes. 15332 * cse.c (delete_trivially_dead_insns): Pass the insn rather than 15333 its pattern to note_stores. 15334 * cselib.c (cselib_record_sets): Use note_pattern_stores instead 15335 of note_stores. 15336 * dce.c (mark_nonreg_stores): Remove the "body" parameter and pass 15337 the insn to note_stores. 15338 (prescan_insns_for_dce): Update call accordingly. 15339 * ddg.c (mem_write_insn_p): Pass the insn rather than its pattern 15340 to note_stores. 15341 * df-problems.c (can_move_insns_across): Likewise. 15342 * dse.c (emit_inc_dec_insn_before, replace_read): Likewise. 15343 * function.c (assign_parm_setup_reg): Likewise. 15344 * gcse-common.c (record_last_mem_set_info_common): Likewise. 15345 * gcse.c (load_killed_in_block_p, compute_hash_table_work): Likewise. 15346 (single_set_gcse): Likewise. 15347 * ira.c (validate_equiv_mem): Likewise. 15348 (update_equiv_regs): Use note_pattern_stores rather than note_stores 15349 for no_equiv. 15350 * loop-doloop.c (doloop_optimize): Pass the insn rather than its 15351 pattern to note_stores. 15352 * loop-invariant.c (calculate_loop_reg_pressure): Likewise. 15353 * loop-iv.c (simplify_using_initial_values): Likewise. 15354 * mode-switching.c (optimize_mode_switching): Likewise. 15355 * optabs.c (emit_libcall_block_1): Likewise. 15356 (expand_atomic_compare_and_swap): Likewise. 15357 * postreload-gcse.c (load_killed_in_block_p): Likewise. 15358 (record_opr_changes): Likewise. Remove explicit handling of 15359 CALL_INSN_FUNCTION_USAGE. 15360 * postreload.c (reload_combine, reload_cse_move2add): Likewise. 15361 * regcprop.c (kill_clobbered_values): Likewise. 15362 (copyprop_hardreg_forward_1): Pass the insn rather than its pattern 15363 to note_stores. 15364 * regrename.c (build_def_use): Likewise. 15365 * reload1.c (reload): Use note_pattern_stores instead of note_stores 15366 for mark_not_eliminable. 15367 (reload_as_needed): Pass the insn rather than its pattern 15368 to note_stores. 15369 (emit_output_reload_insns): Likewise. 15370 * resource.c (mark_target_live_regs): Likewise. 15371 * sched-deps.c (init_insn_reg_pressure_info): Likewise. 15372 * sched-rgn.c (sets_likely_spilled): Use note_pattern_stores 15373 instead of note_stores. 15374 * shrink-wrap.c (try_shrink_wrapping): Pass the insn rather than 15375 its pattern to note_stores. 15376 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Likewise. 15377 * var-tracking.c (adjust_insn, add_with_sets): Likewise. 15378 153792019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15380 15381 * hard-reg-set.h (HARD_REG_SET): Define using a typedef rather 15382 than a #define. Use a structure rather than an array as the 15383 fallback definition. Remove special cases for low array sizes. 15384 (const_hard_reg_set): New typedef. 15385 (hard_reg_set_subset_p): Use it instead of "const HARD_REG_SET". 15386 (hard_reg_set_equal_p, hard_reg_set_intersect_p): Likewise. 15387 (hard_reg_set_empty_p): Likewise. 15388 (SET_HARD_REG_BIT): Use a function rather than a macro to 15389 handle the case in which HARD_REG_SET is a structure. 15390 (CLEAR_HARD_REG_BIT, TEST_HARD_REG_BIT, CLEAR_HARD_REG_SET) 15391 (SET_HARD_REG_SET, COPY_HARD_REG_SET, COMPL_HARD_REG_SET) 15392 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET) 15393 (IOR_COMPL_HARD_REG_SET): Likewise. 15394 (hard_reg_set_iterator::pset): Constify the pointer target. 15395 (hard_reg_set_iter_init): Take a const_hard_reg_set instead 15396 of a "const HARD_REG_SET". Update the handling of non-integer 15397 HARD_REG_SETs. 15398 * recog.h: Test HARD_CONST instead of CLEAR_HARD_REG_SET. 15399 * reload.h: Likewise. 15400 * rtl.h (choose_hard_reg_mode): Remove unnecessary line break. 15401 * regs.h (in_hard_reg_set_p): Take a const_hard_reg_set instead 15402 of a "const HARD_REG_SET". 15403 (overlaps_hard_reg_set_p, range_overlaps_hard_reg_set_p): Likewise. 15404 (range_in_hard_reg_set_p): Likewise. 15405 * ira-costs.c (restrict_cost_classes): Likewise. 15406 * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise. 15407 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute): 15408 Pass a NO_REGS HARD_REG_SET rather than NULL to emit_set_fp_mode. 15409 * config/ia64/ia64.c (rws_insn): In the CHECKING_P version, 15410 use unsigned HOST_WIDEST_FAST_INT rather than HARD_REG_ELT_TYPE. 15411 (rws_insn_set, rws_insn_test): In the CHECKING_P version, 15412 take an unsigned int and open-code the HARD_REG_SET operations. 15413 154142019-09-09 Richard Sandiford <richard.sandiford@arm.com> 15415 15416 * Makefile.in (OBJS): Remove bt-load.o. 15417 * doc/invoke.texi (fbranch-target-load-optimize): Delete. 15418 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise. 15419 * common.opt (fbranch-target-load-optimize): Mark as Ignore and 15420 document that the option no longer does anything. 15421 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise. 15422 * target.def (branch_target_register_class): Delete. 15423 (branch_target_register_callee_saved): Likewise. 15424 * doc/tm.texi.in (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise. 15425 (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise. 15426 * doc/tm.texi: Regenerate. 15427 * tree-pass.h (make_pass_branch_target_load_optimize1): Delete. 15428 (make_pass_branch_target_load_optimize2): Likewise. 15429 * passes.def (pass_branch_target_load_optimize1): Likewise. 15430 (pass_branch_target_load_optimize2): Likewise. 15431 * targhooks.h (default_branch_target_register_class): Likewise. 15432 * targhooks.c (default_branch_target_register_class): Likewise. 15433 * opt-suggestions.c (test_completion_valid_options): Remove 15434 -fbtr-bb-exclusive from the list of test options. 15435 * bt-load.c: Remove. 15436 154372019-09-09 Barnaby Wilks <barnaby.wilks@arm.com> 15438 15439 * match.pd: Add flag_unsafe_math_optimizations check 15440 before deciding on the widest type in a binary math operation. 15441 154422019-09-09 Martin Liska <mliska@suse.cz> 15443 15444 * config/i386/i386.opt: Update comment of removed 15445 options that are preserved only for backward 15446 compatibility. 15447 154482019-09-09 Jakub Jelinek <jakub@redhat.com> 15449 15450 PR target/87853 15451 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi 15452 instead of __v16qs. 15453 15454 PR target/91704 15455 * config/i386/avxintrin.h (__v32qs): New typedef. 15456 * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs 15457 instead of __v32qi. 15458 154592019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> 15460 15461 * doc/invoke.texi (Option Summary): Cover eBPF. 15462 (eBPF Options): New section. 15463 * doc/extend.texi (BPF Built-in Functions): Likewise. 15464 (BPF Kernel Helpers): Likewise. 15465 154662019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> 15467 15468 * config.gcc: Support for bpf-*-* targets. 15469 * common/config/bpf/bpf-common.c: New file. 15470 * config/bpf/t-bpf: Likewise. 15471 * config/bpf/predicates.md: Likewise. 15472 * config/bpf/constraints.md: Likewise. 15473 * config/bpf/bpf.opt: Likewise. 15474 * config/bpf/bpf.md: Likewise. 15475 * config/bpf/bpf.h: Likewise. 15476 * config/bpf/bpf.c: Likewise. 15477 * config/bpf/bpf-protos.h: Likewise. 15478 * config/bpf/bpf-opts.h: Likewise. 15479 * config/bpf/bpf-helpers.h: Likewise. 15480 * config/bpf/bpf-helpers.def: Likewise. 15481 154822019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> 15483 15484 * doc/sourcebuild.texi (Effective-Target Keywords): Document 15485 indirect_calls. 15486 154872019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> 15488 15489 * opt-functions.awk (integer_range_info): Make sure values are in 15490 numeric context before operating with them. 15491 154922019-09-08 Segher Boessenkool <segher@kernel.crashing.org> 15493 15494 * genemit.c (gen_split): Print the filename and line number where the 15495 splitter (or peephole2) was defined, to the dump file. 15496 154972019-09-07 Jakub Jelinek <jakub@redhat.com> 15498 15499 PR tree-optimization/91665 15500 * tree-vect-loop.c (vectorizable_reduction): Punt if base has type 15501 incompatible with the type of PHI result. 15502 155032019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de> 15504 15505 PR target/91684 15506 * config/arm/arm.c (arm_block_set_aligned_non_vect): Use 15507 gen_unaligned_storedi for 4-byte aligned addresses. 15508 155092019-09-06 Jim Wilson <jimw@sifive.com> 15510 15511 * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30 15512 change. 15513 155142019-09-06 Segher Boessenkool <segher@kernel.crashing.org> 15515 15516 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV. 15517 155182019-09-06 Segher Boessenkool <segher@kernel.crashing.org> 15519 15520 * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete. 15521 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP. 15522 155232019-09-06 Uroš Bizjak <ubizjak@gmail.com> 15524 15525 PR target/91654 15526 * config/i386/x86-tune-costs.h (skylake_cost): Raise the 15527 cost of SSE->integer and integer->SSE moves from 2 to 6. 15528 (core_cost): Ditto. 15529 155302019-09-06 Jakub Jelinek <jakub@redhat.com> 15531 15532 * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P 15533 before testing TYPE_TRANSPARENT_AGGR. 15534 * calls.c (initialize_argument_information, load_register_parameters): 15535 Likewise. 15536 155372019-09-06 Richard Earnshaw <rearnsha@arm.com> 15538 15539 * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with 15540 high regs. 15541 (cmp_ior): Likewise. 15542 155432019-09-06 Martin Liska <mliska@suse.cz> 15544 15545 * doc/match-and-simplify.texi: Separate tuples with ;. 15546 155472019-09-06 Martin Liska <mliska@suse.cz> 15548 15549 PR c++/91125 15550 * Makefile.in: Remove tlink.o. 15551 * collect2.c (do_link): New function isolated 15552 from do_tlink. 15553 (main): Use. 15554 * collect2.h (do_tlink): Remove declaration of do_tlink. 15555 * doc/extend.texi: Remove documentation of -frepo. 15556 * doc/invoke.texi: Likewise. 15557 * doc/sourcebuild.texi: Remove cleanup-repo-files. 15558 * tlink.c: Remove. 15559 155602019-09-05 Jakub Jelinek <jakub@redhat.com> 15561 Jim Wilson <jimw@sifive.com> 15562 15563 PR target/91635 15564 * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2, 15565 extend<SHORT:mode><SUPERQI:mode>2): Don't split if 15566 paradoxical_subreg_p (operands[0]). 15567 (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and 15568 use as intermediate value. 15569 155702019-09-05 Andrew Stubbs <ams@codesourcery.com> 15571 15572 * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store. 15573 (sync_compare_and_swap<mode>_insn): Likewise. 15574 155752019-09-05 Bernd Edlinger <bernd.edlinger@hotmail.de> 15576 15577 PR middle-end/91615 15578 * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF 15579 without movmisalign optab. 15580 155812019-09-05 Jakub Jelinek <jakub@redhat.com> 15582 15583 PR middle-end/91001 15584 PR middle-end/91105 15585 PR middle-end/91106 15586 * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR 15587 types, use type of their first field instead of type of 15588 args[i].tree_value. 15589 155902019-09-05 Richard Biener <rguenther@suse.de> 15591 15592 PR rtl-optimization/91656 15593 * postreload-gcse.c (record_last_mem_set_info): Revert addition 15594 of early out. 15595 155962019-09-05 Richard Biener <rguenther@suse.de> 15597 15598 PR middle-end/90501 15599 * tree-inline.c (declare_return_variable): Mark the return 15600 slot as addressable after building an address of it. 15601 156022019-09-05 Arnaud Charlet <charlet@adacore.com> 15603 15604 * doc/install.texi: Update and clarify requirements to build GNAT. 15605 156062019-09-05 Richard Sandiford <richard.sandiford@arm.com> 15607 15608 PR middle-end/91577 15609 * cfgexpand.c (discover_nonconstant_array_refs): Force the source 15610 of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES 15611 call to be in memory. 15612 (pass_expand::execute): Call discover_nonconstant_array_refs before 15613 setting currently_expanding_to_rtl. 15614 156152019-09-04 Caroline Tice <cmtice@google.com> 15616 15617 * opts.c (finish_options): Disallow -fvtable-verify and -flto to be 15618 specified together. 15619 156202019-09-04 Marek Polacek <polacek@redhat.com> 15621 15622 * doc/invoke.texi: Remove -fdeduce-init-list documentation. 15623 156242019-09-04 Uroš Bizjak <ubizjak@gmail.com> 15625 15626 PR target/32413 15627 * config/i386/i386.c (inline_secondary_memory_needed): Return true 15628 for QI and HImode moves between SSE and general registers. 15629 156302019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 15631 15632 PR c/78736 15633 * doc/invoke.texi: Document -Wenum-conversion. 15634 156352019-09-04 Richard Biener <rguenther@suse.de> 15636 15637 PR rtl-optimization/36262 15638 * postreload-gcse.c: Include intl.h and gcse.h. 15639 (insert_expr_in_table): Insert at the head of cur_expr->avail_occr 15640 to avoid linear list walk. 15641 (record_last_mem_set_info): Gate off if not computing transparentness. 15642 (get_bb_avail_insn): If transparentness isn't computed give up 15643 early. 15644 (gcse_after_reload_main): Skip compute_transp and extended PRE 15645 if gcse_or_cprop_is_too_expensive says so. 15646 156472019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> 15648 15649 * config/msp430/msp430.c (msp430_init_sections): Remove handling of the 15650 noinit section. 15651 (msp430_select_section): Handle decls with the "noinit" attribute with 15652 default_elf_select_section. 15653 Handle SECCAT_RODATA_MERGE_* section types with 15654 default_elf_select_section. 15655 Add comments about handling of unsupported section types. 15656 (msp430_section_type_flags): Remove handling of the noinit section. 15657 156582019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> 15659 15660 * config/msp430/msp430.c (msp430_attr): Remove warnings about 15661 conflicting msp430-specific attributes. 15662 (msp430_section_attr): Likewise. 15663 Add warnings about conflicts with generic "noinit" and "section" 15664 attributes. 15665 Fix grammar in -mlarge error message. 15666 (msp430_data_attr): Rename to msp430_persist_attr. 15667 Add warnings about conflicts with generic "noinit" and "section" 15668 attributes. 15669 Add warning for when variable is not initialized. 15670 Chain conditionals which prevent the attribute being added. 15671 (ATTR_EXCL): New helper. 15672 (attr_reent_exclusions): New exclusion table. 15673 (attr_naked_exclusions): Likewise. 15674 (attr_crit_exclusions): Likewise. 15675 (attr_lower_exclusions): Likewise. 15676 (attr_upper_exclusions): Likewise. 15677 (attr_either_exclusions): Likewise. 15678 (attr_persist_exclusions): Likewise. 15679 (msp430_attribute_table): Update with exclusion rules. 15680 (msp430_output_aligned_decl_common): Don't output common symbol if decl 15681 has a section. 15682 156832019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> 15684 15685 * config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define. 15686 (msp430_handle_generic_attribute): New function. 15687 * doc/tm.texi: Regenerate. 15688 * doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE. 15689 * hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New. 15690 * hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New. 15691 * target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE. 15692 156932019-09-03 Kamlesh Kumar <kamleshbhalui@gmail.com> 15694 15695 PR tree-optimization/91504 15696 * match.pd: Add ((~a & b) ^a) --> (a | b). 15697 156982019-09-03 Jakub Jelinek <jakub@redhat.com> 15699 15700 PR target/91604 15701 * config/i386/i386-expand.c (split_double_mode): If there is more than 15702 one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from 15703 already split matching MEM operand instead of calling adjust_address 15704 again. 15705 157062019-09-03 Ulrich Weigand <uweigand@de.ibm.com> 15707 15708 * config.gcc: Obsolete spu target. Remove references to spu. 15709 * configure.ac: Remove references to spu. 15710 * configure: Regenerate. 15711 * config/spu/: Remove directory. 15712 * common/config/spu/: Remove directory. 15713 15714 * doc/extend.texi: Remove references to spu. 15715 * doc/invoke.texi: Likewise. 15716 * doc/md.texi: Likewise. 15717 * doc/sourcebuild.texi: Likewise. 15718 157192019-09-03 Bernd Edlinger <bernd.edlinger@hotmail.de> 15720 15721 PR middle-end/91603 15722 PR middle-end/91612 15723 PR middle-end/91613 15724 * expr.c (expand_expr_real_1): Handle unaligned decl_rtl 15725 and SSA_NAME referring to CONSTANT_P correctly. 15726 157272019-09-03 Richard Biener <rguenther@suse.de> 15728 15729 * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove. 15730 (vn_nary_op_insert): Likewise. 15731 * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove. 15732 (vn_nary_op_lookup): Likewise. 15733 (vn_nary_op_insert): Likewise. 15734 157352019-09-03 Ilya Leoshkevich <iii@linux.ibm.com> 15736 15737 * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP 15738 (*op0, 1) instead of XEXP (*op1, 0). 15739 157402019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 15741 15742 * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define. 15743 (aarch64_fjcvtzs): New define_insn. 15744 * config/aarch64/aarch64.h (TARGET_JSCVT): Define. 15745 * config/aarch64/aarch64-builtins.c (aarch64_builtins): 15746 Add AARCH64_JSCVT. 15747 (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs. 15748 (aarch64_expand_builtin): Handle AARCH64_JSCVT. 15749 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define 15750 __ARM_FEATURE_JCVT where appropriate. 15751 * config/aarch64/arm_acle.h (__jcvt): Define. 15752 157532019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 15754 15755 * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z, 15756 UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X. 15757 (aarch64_<frintnzs_op><mode>): New define_insn. 15758 * config/aarch64/aarch64.h (TARGET_FRINT): Define. 15759 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define 15760 __ARM_FEATURE_FRINT when appropriate. 15761 * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z, 15762 frint32x, frint64z, frint64x. 15763 * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf, 15764 __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define. 15765 * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64, 15766 vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64, 15767 vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32, 15768 vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define. 15769 * config/aarch64/iterators.md (VSFDF): Define. 15770 (FRINTNZX): Likewise. 15771 (frintnzs_op): Likewise. 15772 157732019-09-03 Dennis Zhang <dennis.zhang@arm.com> 15774 15775 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries 15776 for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and 15777 Cortex-A34. 15778 * config/aarch64/aarch64-tune.md: Regenerated. 15779 * doc/invoke.texi: Document the new processors. 15780 157812019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 15782 15783 * config/aarch64/aarch64-option-extensions.def (sb): Add feature 15784 string. 15785 (ssbs): Likewise. 15786 (sve2): Likewise. 15787 (sve2-sm4): Likewise. 15788 (sveaes): Likewise. 15789 (svesha3): Likewise. 15790 (svebitperm): Likewise. 15791 157922019-09-03 Jakub Jelinek <jakub@redhat.com> 15793 Richard Biener <rguenther@suse.de> 15794 15795 PR tree-optimization/91597 15796 * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe 15797 BIT_AND_EXPR optimization for pointers, even if both operand 15798 ranges don't include NULL, the result can be NULL. 15799 158002019-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de> 15801 15802 PR middle-end/91605 15803 * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into... 15804 (non_mem_decl_p): ...this. 15805 (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF. 15806 (expand_assignment): Call mem_ref_referes_to_non_mem_p 15807 unconditionally as before. 15808 158092019-09-02 Eric Botcazou <ebotcazou@adacore.com> 15810 15811 PR target/91323 15812 * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators. 15813 * rtl.def (LTGT): Likewise. Add note about floating-point exceptions. 15814 * tree.def (LTGT_EXPR): Likewise. 15815 * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT. 15816 158172019-09-02 Jakub Jelinek <jakub@redhat.com> 15818 15819 PR go/91617 15820 * fold-const.c (range_check_type): For enumeral and boolean 15821 type, pass 1 to type_for_size langhook instead of 15822 TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever 15823 etype isn't TYPE_UNSIGNED INTEGER_TYPE. 15824 (build_range_check): Don't call unsigned_type_for for pointer types. 15825 * match.pd (X / C1 op C2): Don't call unsigned_type_for on 15826 range_check_type result. 15827 158282019-09-02 Eric Botcazou <ebotcazou@adacore.com> 15829 15830 * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function. 15831 (replace_ref): Do not replace a chain of only two candidates which are 15832 valid memory references. 15833 158342019-09-02 Martin Liska <mliska@suse.cz> 15835 15836 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): 15837 Bail out when we'll end up with the same number of clusters as 15838 at the beginning. 15839 (bit_test_cluster::find_bit_tests): Likewise for bit tests. 15840 (jump_table_cluster::can_be_handled): Remove the guard 15841 as it's already handled in ::is_enabled. Allocate output 15842 after early bail out. 15843 158442019-09-02 Martin Liska <mliska@suse.cz> 15845 15846 PR gcov-profile/91601 15847 * gcov.c (path_contains_zero_cycle_arc): Rename to ... 15848 (path_contains_zero_or_negative_cycle_arc): ... this and handle 15849 also negative edges. 15850 (circuit): Handle also negative edges as they can happen 15851 in some situations. 15852 158532019-09-01 Eric Botcazou <ebotcazou@adacore.com> 15854 15855 PR target/91472 15856 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true 15857 during LRA/reload in PIC mode if the PIC register hasn't been used yet. 15858 (sparc_pic_register_p): Test reload_in_progress for consistency's sake. 15859 158602019-09-01 Jakub Jelinek <jakub@redhat.com> 15861 15862 PR middle-end/91623 15863 * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only 15864 EQ_EXPR/NE_EXPR is supported, verify that op0 only contains 15865 zeros or negative elements and use NE_EXPR instead of LT_EXPR against 15866 zero vector. 15867 15868 PR lto/91572 15869 * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of 15870 GIMPLE_ASM TREE_LIST operands. 15871 158722019-08-31 Gerald Pfeifer <gerald@pfeifer.com> 15873 15874 * doc/generic.texi (Unary and Binary Expressions): Mark up 15875 an instance of TYPE_MIN. 15876 158772019-08-31 Stafford Horne <shorne@gmail.com> 15878 15879 * config/or1k/constraints.md (t): New constraint. 15880 * config/or1k/or1k.h (GOT_REGS): New register class. 15881 * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint. 15882 158832019-08-30 Jim Wilson <jimw@sifive.com> 15884 15885 * config/riscv/riscv.c (riscv_option_override): If -msave-restore 15886 and -fpic and -mplt then disable -msave-restore and warn. 15887 158882019-08-30 Martin Sebor <msebor@redhat.com> 15889 15890 PR middle-end/91599 15891 * tree-ssa-strlen.c (handle_store): Use a fallback location if 15892 the statement doesn't have one. 15893 * gimple-pretty-print.c (percent_G_format): Same. 15894 15895 PR middle-end/91584 15896 * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds 15897 before using them to validate MEM_REF offset. 15898 158992019-08-30 Marek Polacek <polacek@redhat.com> 15900 15901 * doc/invoke.texi (-Wvolatile): Use @code for volatile. 15902 159032019-08-30 Bernd Edlinger <bernd.edlinger@hotmail.de> 15904 15905 * config/arm/arm.md (unaligned_loaddi, 15906 unaligned_storedi): New unspec insn patterns. 15907 * config/arm/neon.md (unaligned_storev8qi): Likewise. 15908 * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi 15909 and unaligned_storedi for 4-byte aligned memory. 15910 (arm_block_set_aligned_vect): Use unaligned_storev8qi for 15911 4-byte aligned memory. 15912 159132019-08-30 Martin Jambor <mjambor@suse.cz> 15914 15915 tree-optimization/91579 15916 * tree-tailcall.c (tailr_arg_needs_copy): New variable. 15917 (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as 15918 appropriate. 15919 (arg_needs_copy_p): Removed. 15920 (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling 15921 arg_needs_copy_p. 15922 (tree_optimize_tail_calls_1): Likewise. Free tailr_arg_needs_copy. 15923 159242019-08-29 Uroš Bizjak <ubizjak@gmail.com> 15925 15926 * config/i386/i386-features.c 15927 (general_scalar_chain::compute_convert_gain): 15928 Correct cost for double-word shifts. 15929 (general_scalar_to_vector_candidate_p): Reject count operands 15930 greater or equal to mode bitsize. 15931 159322019-08-29 Uroš Bizjak <ubizjak@gmail.com> 15933 15934 * config/i386/i386.c (inline_secondary_memory_needed): Return true 15935 for moves between SSE and non-general registers and between 15936 mask and non-general registers. 15937 (ix86_register_move_cost): Remove stalled comment. 15938 159392019-08-29 Richard Biener <rguenther@suse.de> 15940 15941 * config/i386/i386-features.c (general_scalar_chain::convert_insn): 15942 Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS. 15943 159442019-08-29 Richard Biener <rguenther@suse.de> 15945 15946 PR bootstrap/91580 15947 * config/i386/i386-features.c (general_scalar_chain::convert_insn): 15948 Do not emit scalar copies for debug-insns, instead replace 15949 their uses with the reg copy used in the chain or reset them 15950 if there is a reaching definition outside of the chain as well. 15951 159522019-08-29 Jakub Jelinek <jakub@redhat.com> 15953 15954 PR target/91560 15955 * config/i386/i386-expand.c (expand_vec_perm_movs, 15956 expand_vec_perm_blend, expand_vec_perm_vpermil, 15957 expand_vec_perm_pshufb, expand_vec_perm_1, 15958 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr, 15959 expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1, 15960 expand_vec_perm_vperm2f128, expand_vec_perm_interleave3, 15961 expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf, 15962 expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function 15963 comments - replace ix86_expand_vec_perm_builtin_1 with 15964 ix86_expand_vec_perm_const_1. 15965 (expand_vec_perm2_vperm2f128_vblend): New function. 15966 (ix86_expand_vec_perm_const_1): New forward declaration. Call 15967 expand_vec_perm2_vperm2f128_vblend as last resort. 15968 (canonicalize_perm): Formatting fix. 15969 15970 PR tree-optimization/91351 15971 * tree-cfg.c (generate_range_test): Use range_check_type instead of 15972 unsigned_type_for. 15973 * tree-cfgcleanup.c (convert_single_case_switch): Punt if 15974 range_check_type returns NULL. 15975 * tree-switch-conversion.c (switch_conversion::build_one_array): 15976 Use range_check_type instead of unsigned_type_for, don't perform 15977 linear opt if it returns NULL. 15978 (bit_test_cluster::find_bit_tests): Formatting fix. 15979 (bit_test_cluster::emit): Use range_check_type instead of 15980 unsigned_type_for. 15981 (switch_decision_tree::try_switch_expansion): Punt if range_check_type 15982 returns NULL. 15983 159842019-08-29 Richard Biener <rguenther@suse.de> 15985 15986 PR tree-optimization/91568 15987 * tree-vectorizer.h (_slp_tree::max_nunits): Add. 15988 (vect_update_max_nunits): Add overload for poly_uint64. 15989 * tree-vect-slp.c (vect_create_new_slp_node): Initialize it. 15990 (vect_build_slp_tree): Record max_nunits into the subtree 15991 and merge it upwards. 15992 (vect_print_slp_tree): Print max_nunits. 15993 159942019-08-28 Marek Polacek <polacek@redhat.com> 15995 15996 Implement P1152R4: Deprecating some uses of volatile. 15997 PR c++/91361 15998 * doc/invoke.texi: Document -Wvolatile. 15999 160002019-08-28 Marek Polacek <polacek@redhat.com> 16001 16002 PR c++/91360 - Implement C++20 P1143R2: constinit. 16003 * doc/invoke.texi: Document -Wc++20-compat. 16004 160052019-08-28 Martin Sebor <msebor@redhat.com> 16006 16007 PR tree-optimization/91457 16008 * builtins.c (component_size): New function. 16009 (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF. 16010 * builtins.h (compute_objsize): Add argument. 16011 * tree-ssa-strlen.c (handle_store): Handle no-warning bit. 16012 * tree-vrp.c (vrp_prop::check_array_ref): Return warning result. 16013 (vrp_prop::check_mem_ref): Same. 16014 (vrp_prop::search_for_addr_array): Set no-warning bit. 16015 (check_array_bounds): Same. 16016 160172019-08-28 Martin Sebor <msebor@redhat.com> 16018 16019 PR driver/80545 16020 * opts-common.c (option_enabled): Correct checking for language 16021 options. 16022 160232019-08-28 Uroš Bizjak <ubizjak@gmail.com> 16024 16025 * config/i386/i386.c (ix86_register_move_cost): Do not 16026 limit the cost of moves to/from XMM register to minimum 8. 16027 160282019-08-28 Martin Jambor <mjambor@suse.cz> 16029 16030 PR ipa/91468 16031 * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a 16032 checking assert a normal assert to test it really is redundant. 16033 * ipa-prop.c (compute_complex_assign_jump_func): Removed 16034 redundant test. 16035 (update_jump_functions_after_inlining): Removed combining unary 16036 arithmetic operations with an ancestor jump function. 16037 (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs 16038 instead of t. 16039 160402019-08-28 Richard Biener <rguenther@suse.de> 16041 16042 * config/i386/i386-features.c (convert_scalars_to_vector): Do not 16043 add the MD problem. 16044 160452019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de> 16046 Richard Biener <rguenther@suse.de> 16047 16048 * expr.c (expand_assignment): Handle misaligned DECLs. 16049 (expand_expr_real_1): Handle FUNCTION_DECL as unaligned. 16050 * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab 16051 too. 16052 (assign_parm_setup_stack): Allocate properly aligned stack slots. 16053 * varasm.c (build_constant_desc): Align constants of misaligned types. 16054 * config/arm/predicates.md (aligned_operand): New predicate. 16055 * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use 16056 aligned_operand to check restrictions on memory addresses. 16057 * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise. 16058 * config/arm/vec-common.md (mov<VALL>): Likewise. 16059 160602019-08-28 Jakub Jelinek <jakub@redhat.com> 16061 16062 PR libgomp/91530 16063 * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use 16064 V_128 iterator instead of VI_128. 16065 160662019-08-28 Martin Liska <mliska@suse.cz> 16067 16068 PR tree-optimization/90970 16069 * builtins.c (check_access): Remove assignment to maxread 16070 as it hasn't been used since when it was introduced in r255755. 16071 160722019-08-27 Martin Sebor <msebor@redhat.com> 16073 16074 PR tree-optimization/91567 16075 * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths 16076 of unknown strings. 16077 * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound 16078 to PTRDIFF_MAX - 2. 16079 160802019-08-27 Jeff Law <law@redhat.com> 16081 16082 * tree-ssa-strlen.c (printf_strlen_execute): Initialize 16083 the loop optimizer and SCEV before sizing ssa_ver_to_stridx. 16084 160852019-08-27 Uroš Bizjak <ubizjak@gmail.com> 16086 16087 PR target/91528 16088 * config/i386/i386-features.c (convert_scalars_to_vector): 16089 Update crtl->stack_realign_needed, crtl->stack_realign_tried and 16090 crtl->stack_realign_processed. Update crtl->drap_reg by calling 16091 targetm.calls.get_drap_rtx. If drap_rtx is non-null then 16092 Update crtl->args.internal_arg_pointer and call fixup_tail_calls. 16093 160942019-08-27 Richard Biener <rguenther@suse.de> 16095 16096 * config/i386/i386-features.h 16097 (general_scalar_chain::~general_scalar_chain): Add. 16098 (general_scalar_chain::insns_conv): New bitmap. 16099 (general_scalar_chain::n_sse_to_integer): New. 16100 (general_scalar_chain::n_integer_to_sse): Likewise. 16101 (general_scalar_chain::make_vector_copies): Adjust signature. 16102 * config/i386/i386-features.c 16103 (general_scalar_chain::general_scalar_chain): Outline, 16104 initialize new members. 16105 (general_scalar_chain::~general_scalar_chain): New. 16106 (general_scalar_chain::mark_dual_mode_def): Record insns 16107 we need to insert conversions at and count them. 16108 (general_scalar_chain::compute_convert_gain): Account 16109 for conversion instructions at chain boundary. 16110 (general_scalar_chain::make_vector_copies): Generate a single 16111 copy for a def by a specific insn. 16112 (general_scalar_chain::convert_registers): First populate 16113 defs_map, then make copies at out-of chain insns. 16114 161152019-08-27 Richard Earnshaw <rearnsha@arm.com> 16116 16117 * config/arm/arm.md (stack_protect_set_insn): Add security-related 16118 comment. 16119 * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise. 16120 161212019-08-27 Martin Liska <mliska@suse.cz> 16122 16123 * cgraph.c (cgraph_node::remove): Remove dead assignment before 16124 loop. 16125 * config/i386/i386-features.c (scalar_chain::emit_conversion_insns): 16126 Enclose in anonymous namespace. 16127 * config/i386/x86-tune-costs.h (struct processor_costs): Wrap 16128 hard_register initialization in braces. 16129 * tree-vrp.h (value_range_base::supports_type_p): Return false 16130 for function with boolean return type. 16131 161322019-08-26 Uroš Bizjak <ubizjak@gmail.com> 16133 16134 * config/i386/i386.c (emit_i387_cw_initialization) 16135 <case I387_CW_ROUNDEVEN>: Fix masking operand value. 16136 161372019-08-26 Martin Sebor <msebor@redhat.com> 16138 16139 PR c++/83431 16140 * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object. 16141 (sprintf_dom_walker): Remove class. 16142 (get_int_range): Make argument const. 16143 (directive::fmtfunc, directive::set_precision): Same. 16144 (format_none): Same. 16145 (build_intmax_type_nodes): Same. 16146 (adjust_range_for_overflow): Same. 16147 (format_floating): Same. 16148 (format_character): Same. 16149 (format_string): Same. 16150 (format_plain): Same. 16151 (get_int_range): Cast away constness. 16152 (format_integer): Same. 16153 (get_string_length): Call get_range_strlen_dynamic. Handle 16154 null lendata.maxbound. 16155 (should_warn_p): Adjust argument scope qualifier. 16156 (maybe_warn): Same. 16157 (format_directive): Same. 16158 (parse_directive): Same. 16159 (is_call_safe): Same. 16160 (try_substitute_return_value): Same. 16161 (sprintf_dom_walker::handle_printf_call): Rename... 16162 (handle_printf_call): ...to this. Initialize target to host charmap 16163 here instead of in pass_sprintf_length::execute. 16164 (struct call_info): Make global. 16165 (sprintf_dom_walker::compute_format_length): Make global. 16166 (sprintf_dom_walker::handle_gimple_call): Same. 16167 * passes.def (pass_sprintf_length): Replace with pass_strlen. 16168 * print-rtl.c (print_pattern): Reduce the number of spaces to 16169 avoid -Wformat-truncation. 16170 * tree-pass.h (make_pass_warn_printf): New function. 16171 * tree-ssa-strlen.c (strlen_optimize): New variable. 16172 (get_string_length): Add comments. 16173 (get_range_strlen_dynamic): New function. 16174 (check_and_optimize_call): New function. 16175 (handle_integral_assign): New function. 16176 (strlen_check_and_optimize_stmt): Factor code out into 16177 strlen_check_and_optimize_call and handle_integral_assign. 16178 (strlen_dom_walker::evrp): New member. 16179 (strlen_dom_walker::before_dom_children): Use evrp member. 16180 (strlen_dom_walker::after_dom_children): Use evrp member. 16181 (printf_strlen_execute): New function. 16182 (pass_strlen::gate): Update to handle printf calls. 16183 (dump_strlen_info): New function. 16184 (pass_data_warn_printf): New variable. 16185 (pass_warn_printf): New class. 16186 * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare. 16187 (handle_printf_call): Same. 16188 * tree-vrp.c (value_range_base::type): Adjust assertion. 16189 * vr-values.c (vr_values::update_value_range): Use type of the first 16190 argument rather than the second. 16191 161922019-08-26 Richard Biener <rguenther@suse.de> 16193 16194 * config/i386/i386-features.c (general_remove_non_convertible_regs): 16195 Remove. 16196 (convert_scalars_to_vector): Do not call it. 16197 161982019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com> 16199 Uros Bizjak <ubizjak@gmail.com> 16200 16201 * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to 16202 CASE_MATHFN_FLOATN for roundeven. 16203 * config/i386/i386.c (ix86_i387_mode_needed): Add case 16204 I387_ROUNDEVEN. 16205 (ix86_mode_needed): Likewise. 16206 (ix86_mode_after): Likewise. 16207 (ix86_mode_entry): Likewise. 16208 (ix86_mode_exit): Likewise. 16209 (ix86_emit_mode_set): Likewise. 16210 (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN. 16211 * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN. 16212 (ix86_entity): Add I387_ROUNDEVEN. 16213 (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY. 16214 * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN. 16215 (define_int_iterator): Likewise. 16216 (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING. 16217 (define_constant): Define ROUND_ROUNDEVEN mode. 16218 (define_attr): Add roundeven mode for i387_cw. 16219 (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN. 16220 * internal-fn.def (ROUNDEVEN): New builtin function. 16221 * optabs.def (roundeven_optab): New optab. 16222 162232019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com> 16224 16225 * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN 16226 for ROUNDEVEN. 16227 * builtins.def: Added function definitions for roundeven function 16228 variants. 16229 * fold-const-call.c (fold_const_call_ss): Added case for roundeven 16230 function call. Adjust condition for floor, ceil, trunc and round. 16231 * fold-const.c (negate_mathfn_p): Added case for roundeven function. 16232 (tree_call_nonnegative_warnv_p): Added case for roundeven function. 16233 (integer_valued_real_call_p): Added case for roundeven function. 16234 * real.c (is_even): New function. Returns true if real number is even, 16235 otherwise returns false. 16236 (is_halfway_below): New function. Returns true if real number is 16237 halfway between two integers, else return false. 16238 (real_roundeven): New function. Round real number to nearest integer, 16239 rounding halfway cases towards even. 16240 * real.h (real_value): Added descriptive comments. Added function 16241 declaration for roundeven function. 16242 * doc/extend.texi (Other Builtins): List roundeven variants among 16243 functions which can be handled as builtins. 16244 162452019-08-26 Richard Biener <rguenther@suse.de> 16246 16247 PR target/91522 16248 PR target/91527 16249 * config/i386/i386-features.h (general_scalar_chain::defs_map): 16250 New member. 16251 (general_scalar_chain::replace_with_subreg): Remove. 16252 (general_scalar_chain::replace_with_subreg_in_insn): Likewise. 16253 (general_scalar_chain::convert_reg): Adjust signature. 16254 * config/i386/i386-features.c (scalar_chain::add_insn): Do not 16255 iterate over all defs of a reg. 16256 (general_scalar_chain::replace_with_subreg): Remove. 16257 (general_scalar_chain::replace_with_subreg_in_insn): Likewise. 16258 (general_scalar_chain::make_vector_copies): Populate defs_map, 16259 place copy only after defs that are used as vectors in the chain. 16260 (general_scalar_chain::convert_reg): Emit a copy for a specific 16261 def in a specific instruction. 16262 (general_scalar_chain::convert_op): All reg uses are converted here. 16263 (general_scalar_chain::convert_insn): Emit copies for scalar 16264 uses of defs here. Replace uses with the copies we created. 16265 Replace and convert the def. Adjust REG_DEAD notes, remove 16266 REG_EQUIV/EQUAL notes. 16267 (general_scalar_chain::convert_registers): Only handle copies 16268 into the chain here. 16269 162702019-08-26 Robin Dapp <rdapp@linux.ibm.com> 16271 16272 * match.pd: Add (T)(A) + CST -> (T)(A + CST). 16273 162742019-08-26 Robin Dapp <rdapp@linux.ibm.com> 16275 16276 * gimple-loop-versioning.cc (loop_versioning::record_address_fragment): 16277 Add nop_convert case. 16278 * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children): 16279 Fold all statements if requested. 16280 * tree-ssa-propagate.h (class substitute_and_fold_engine): 16281 Allow to fold all statements. 16282 * tree-vrp.c (class vrp_folder): 16283 Let substitute_and_fold_engine fold all statements. 16284 162852019-08-26 Richard Biener <rguenther@suse.de> 16286 16287 PR tree-optimization/91526 16288 * passes.def: Note that after late FRE we do TODO_update_address_taken. 16289 * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule 16290 TODO_update_address_taken. 16291 162922019-08-26 Gerald Pfeifer <gerald@pfeifer.com> 16293 16294 * config/i386/gmm_malloc.h: Only use <errno.h> and errno if 16295 __STDC_HOSTED__. 16296 162972019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com> 16298 16299 * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI 16300 machine mode for unspec_volatile operand. 16301 163022019-08-23 Wilco Dijkstra <wdijkstr@arm.com> 16303 16304 * doc/invoke.texi (mneon-for-64bits): Deprecate option. 16305 * config/arm/arm.opt (mneon-for-64bits): Deprecate option. 16306 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove. 16307 (prefer_neon_for_64bits): Remove. 16308 * config/arm/arm.c (prefer_neon_for_64bits): Remove. 16309 (tune_params): Remove PREF_NEON_64_FALSE uses. 16310 (arm_option_override): Remove prefer_neon selection code. 16311 (arm_print_tune_info): Remove prefer_neon_for_64bits. 16312 * config/arm/arm-protos.h (tune_params): Remove 16313 prefer_neon_for_64bits. 16314 (prefer_neon_for_64bits): Remove. 16315 163162019-08-23 Iain Sandoe <iain@sandoe.co.uk> 16317 16318 PR pch/61250 16319 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure 16320 and issue any diagnostics needed before collecting the pre-PCH 16321 state. 16322 163232019-08-23 Jakub Jelinek <jakub@redhat.com> 16324 16325 PR middle-end/91283 16326 * common.opt (fexcess-precision=): Add Optimization flag. Use 16327 flag_excess_precision variable instead of 16328 flag_excess_precision_cmdline. 16329 * flags.h (class target_flag_state): Remove x_flag_excess_precision 16330 member. 16331 (flag_excess_precision): Don't define. 16332 * langhooks.c (lhd_post_options): Set flag_excess_precision instead of 16333 flag_excess_precision_cmdline. Remove comment. 16334 * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision 16335 and x_flag_excess_precision instead of 16336 frontend_set_flag_excess_precision_cmdline and 16337 x_flag_excess_precision_cmdline. 16338 (fast_math_flags_set_p): Use x_flag_excess_precision instead of 16339 x_flag_excess_precision_cmdline. 16340 * toplev.c (init_excess_precision): Remove. 16341 (lang_dependent_init_target): Don't call it. 16342 163432019-08-23 Martin Liska <mliska@suse.cz> 16344 16345 * lto-wrapper.c (run_gcc): When setting jobserver 16346 set also parallel to 1. This was done so before r273908. 16347 163482019-08-23 Dennis Zhang <dennis.zhang@arm.com> 16349 16350 * config/arm/arm-cpus.in (cortex-m35p): New entry. 16351 (cortex-a76ae): Likewise. 16352 (cortex-a77): Likewise 16353 * config/arm/arm-tables.opt: Regenerate. 16354 * config/arm/arm-tune.md: Likewise. 16355 * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae, 16356 cortex-a77 CPU options. 16357 163582019-08-23 Martin Liska <mliska@suse.cz> 16359 16360 * profile.c (instrument_values): Do not set 16361 0 as last argument. 16362 * tree-profile.c (gimple_gen_interval_profiler): Remove 16363 last argument. 16364 (gimple_gen_pow2_profiler): Likewise. 16365 (gimple_gen_topn_values_profiler): Likewise. 16366 (gimple_gen_ic_profiler): Likewise. 16367 (gimple_gen_time_profiler): Likewise. 16368 (gimple_gen_average_profiler): Likewise. 16369 (gimple_gen_ior_profiler): Likewise. 16370 * value-prof.c (dump_histogram_value): Use default 16371 in switch statement instead of HIST_TYPE_MAX. 16372 (stream_in_histogram_value): Likewise. 16373 (gimple_duplicate_stmt_histograms): Do not 16374 use NULL for implicitly set arguments. 16375 (gimple_divmod_values_to_profile): Do not use 16376 reserve+quick_push. 16377 (gimple_indirect_call_to_profile): Likewise. 16378 (gimple_find_values_to_profile): Use implicit 16379 function call arguments. 16380 * value-prof.h (gimple_alloc_histogram_value): 16381 Set default values. 16382 (gimple_gen_interval_profiler): Remove last argument. 16383 (gimple_gen_pow2_profiler): Likewise. 16384 (gimple_gen_topn_values_profiler): Likewise. 16385 (gimple_gen_ic_profiler): Likewise. 16386 (gimple_gen_time_profiler): Likewise. 16387 (gimple_gen_average_profiler): Likewise. 16388 (gimple_gen_ior_profiler): Likewise. 16389 163902019-08-22 Martin Sebor <msebor@redhat.com> 16391 16392 PR middle-end/91490 16393 * builtins.c (c_strlen): Rename argument and introduce new local. 16394 Set no-warning bit on original argument. 16395 * expr.c (string_constant): Pass argument type to fold_ctor_reference. 16396 Fold empty and zero constructors into empty strings. 16397 * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST 16398 for missing initializers. 16399 * tree.c (build_string_literal): Handle optional argument. 16400 * tree.h (build_string_literal): Add defaulted argument. 16401 * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check 16402 no-warning bit on original expression. 16403 164042019-08-22 Segher Boessenkool <segher@kernel.crashing.org> 16405 16406 PR target/91481 16407 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, 16408 and UNSPEC_DARN_RAW. 16409 (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and 16410 UNSPECV_DARN_RAW. 16411 (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32. 16412 (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW. 16413 (darn): Use an unspec_volatile, and UNSPECV_DARN. 16414 164152019-08-22 Segher Boessenkool <segher@kernel.crashing.org> 16416 16417 * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, 16418 UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to... 16419 * config/rs6000/rs6000.md (unspec): ... here. 16420 * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb, 16421 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, 16422 cmpeqb, *cmpeqb_internal): Delete, move to... 16423 * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb, 16424 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, 16425 cmpeqb, *cmpeqb_internal): ... here. 16426 164272019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 16428 16429 * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32 16430 intrinsics if __ARM_FP. 16431 Use __ARM_FEATURE_CRC32 ifdef guard. 16432 164332019-08-22 Wilco Dijkstra <wdijkstr@arm.com> 16434 16435 * config/arm/arm.md (neon_for_64bits): Remove. 16436 (avoid_neon_for_64bits): Remove. 16437 (arm_adddi3): Always split early. 16438 (arm_subdi3): Always split early. 16439 (negdi2): Remove Neon expansion. 16440 (split zero_extend): Split before reload. 16441 (split sign_extend): Split before reload. 16442 164432019-08-22 Wilco Dijkstra <wdijkstr@arm.com> 16444 16445 * config/arm/iterators.md (qhs_extenddi_cstr): Update. 16446 (qhs_extenddi_cstr): Likewise. 16447 * config/arm/arm.md (ashldi3): Always expand early. 16448 (ashlsi3): Likewise. 16449 (ashrsi3): Likewise. 16450 (zero_extend<mode>di2): Remove Neon variants. 16451 (extend<mode>di2): Likewise. 16452 * config/arm/neon.md (ashldi3_neon_noclobber): Remove. 16453 (signed_shift_di3_neon): Likewise. 16454 (unsigned_shift_di3_neon): Likewise. 16455 (ashrdi3_neon_imm_noclobber): Likewise. 16456 (lshrdi3_neon_imm_noclobber): Likewise. 16457 (<shift>di3_neon): Likewise. 16458 (split extend): Remove DI extend split patterns. 16459 164602019-08-22 Wilco Dijkstra <wdijkstr@arm.com> 16461 16462 * config/arm/arm.md (split and/eor/ior): Remove Neon check. 16463 (split not): Add DImode not splitter. 16464 (anddi3): Remove pattern. 16465 (anddi3_insn): Likewise. 16466 (anddi_zesidi_di): Likewise. 16467 (anddi_sesdi_di): Likewise. 16468 (anddi_notdi_di): Likewise. 16469 (anddi_notzesidi_di): Likewise. 16470 (anddi_notsesidi_di): Likewise. 16471 (iordi3): Likewise. 16472 (iordi3_insn): Likewise. 16473 (iordi_zesidi_di): Likewise. 16474 (iordi_sesidi_di): Likewise. 16475 (xordi3): Likewise. 16476 (xordi3_insn): Likewise. 16477 (xordi_sesidi_di): Likewise. 16478 (xordi_zesidi_di): Likewise. 16479 (one_cmpldi2): Likewise. 16480 (one_cmpldi2_insn): Likewise. 16481 * config/arm/constraints.md: Remove De, Df, Dg constraints. 16482 * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register 16483 alternative. 16484 (iwmmxt_xordi3): Likewise. 16485 (iwmmxt_anddi3): Likewise. 16486 * config/arm/neon.md (orndi3_neon): Remove pattern. 16487 (anddi_notdi_di): Likewise. 16488 * config/arm/predicates.md (arm_anddi_operand_neon): Remove. 16489 (arm_iordi_operand_neon): Likewise. 16490 (arm_xordi_operand_neon): Likewise. 16491 * config/arm/thumb2.md(iordi_notdi_di): Remove pattern. 16492 (iordi_notzesidi_di): Likewise. 16493 (iordi_notdi_zesidi): Likewise. 16494 (iordi_notsesidi_di): Likewise. 16495 164962019-08-22 Richard Earnshaw <rearnsha@arm.com> 16497 16498 * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb 16499 insn. 16500 (iorsi3_compare0_scratch): Likewise. 16501 165022019-08-22 Sylvia Taylor <sylvia.taylor@arm.com> 16503 16504 * config/aarch64/aarch64-simd-builtins.def: 16505 (ld1x4): New. 16506 (st1x4): Likewise. 16507 * config/aarch64/aarch64-simd.md: 16508 (aarch64_ld1x4<VALLDIF:mode>): New pattern. 16509 (aarch64_st1x4<VALLDIF:mode>): Likewise. 16510 (aarch64_ld1_x4_<mode>): Likewise. 16511 (aarch64_st1_x4_<mode>): Likewise. 16512 * config/aarch64/arm_neon.h: 16513 (vld1_s8_x4): New function. 16514 (vld1q_s8_x4): Likewise. 16515 (vld1_s16_x4): Likewise. 16516 (vld1q_s16_x4): Likewise. 16517 (vld1_s32_x4): Likewise. 16518 (vld1q_s32_x4): Likewise. 16519 (vld1_u8_x4): Likewise. 16520 (vld1q_u8_x4): Likewise. 16521 (vld1_u16_x4): Likewise. 16522 (vld1q_u16_x4): Likewise. 16523 (vld1_u32_x4): Likewise. 16524 (vld1q_u32_x4): Likewise. 16525 (vld1_f16_x4): Likewise. 16526 (vld1q_f16_x4): Likewise. 16527 (vld1_f32_x4): Likewise. 16528 (vld1q_f32_x4): Likewise. 16529 (vld1_p8_x4): Likewise. 16530 (vld1q_p8_x4): Likewise. 16531 (vld1_p16_x4): Likewise. 16532 (vld1q_p16_x4): Likewise. 16533 (vld1_s64_x4): Likewise. 16534 (vld1_u64_x4): Likewise. 16535 (vld1_p64_x4): Likewise. 16536 (vld1q_s64_x4): Likewise. 16537 (vld1q_u64_x4): Likewise. 16538 (vld1q_p64_x4): Likewise. 16539 (vld1_f64_x4): Likewise. 16540 (vld1q_f64_x4): Likewise. 16541 (vst1_s8_x4): Likewise. 16542 (vst1q_s8_x4): Likewise. 16543 (vst1_s16_x4): Likewise. 16544 (vst1q_s16_x4): Likewise. 16545 (vst1_s32_x4): Likewise. 16546 (vst1q_s32_x4): Likewise. 16547 (vst1_u8_x4): Likewise. 16548 (vst1q_u8_x4): Likewise. 16549 (vst1_u16_x4): Likewise. 16550 (vst1q_u16_x4): Likewise. 16551 (vst1_u32_x4): Likewise. 16552 (vst1q_u32_x4): Likewise. 16553 (vst1_f16_x4): Likewise. 16554 (vst1q_f16_x4): Likewise. 16555 (vst1_f32_x4): Likewise. 16556 (vst1q_f32_x4): Likewise. 16557 (vst1_p8_x4): Likewise. 16558 (vst1q_p8_x4): Likewise. 16559 (vst1_p16_x4): Likewise. 16560 (vst1q_p16_x4): Likewise. 16561 (vst1_s64_x4): Likewise. 16562 (vst1_u64_x4): Likewise. 16563 (vst1_p64_x4): Likewise. 16564 (vst1q_s64_x4): Likewise. 16565 (vst1q_u64_x4): Likewise. 16566 (vst1q_p64_x4): Likewise. 16567 (vst1_f64_x4): Likewise. 16568 (vst1q_f64_x4): Likewise. 16569 165702019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 16571 16572 * config/aarch64/aarch64-sve.md (vcond_mask): Add "@". 16573 165742019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 16575 Richard Sandiford <richard.sandiford@arm.com> 16576 16577 PR target/88839 16578 * config/aarch64/aarch64.c (aarch64_evpc_sel): New function. 16579 (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel. 16580 165812019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 16582 16583 PR target/90724 16584 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y 16585 in reg if it fails aarch64_plus_operand predicate. 16586 165872019-08-21 Richard Biener <rguenther@suse.de> 16588 16589 PR tree-optimization/91482 16590 * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless 16591 BUILT_IN_ASSUME_ALIGNED calls. 16592 165932019-08-21 Richard Biener <rguenther@suse.de> 16594 16595 PR target/91498 16596 PR target/91503 16597 * config/i386/i386-features.c 16598 (general_scalar_chain::make_vector_copies): Copy stack temporary 16599 rtx when using it multiple times. 16600 (general_scalar_chain::convert_reg): Likewise. 16601 166022019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 16603 16604 * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==. 16605 166062019-08-20 Matthew Beliveau <mbelivea@redhat.com> 16607 16608 * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to 16609 catch more redundant zero initialization cases. 16610 (dse_dom_walker::dse_optimize_stmt): Likewise. 16611 166122019-08-20 Richard Biener <rguenther@suse.de> 16613 16614 PR lto/91307 16615 * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable 16616 by collect2 when targetm.have_ctors_dtors which avoids dragging 16617 in temporary filenames from LTO input objects. 16618 166192019-08-20 Richard Biener <rguenther@suse.de> 16620 16621 PR tree-optimization/37242 16622 * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b) 16623 to (T)a + (T)b if we know that a + b does not overflow. 16624 166252019-08-20 Eric Botcazou <ebotcazou@adacore.com> 16626 16627 PR rtl-optimization/91347 16628 * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls 16629 before reload if HARD_FRAME_POINTER_IS_ARG_POINTER. 16630 166312019-08-20 Richard Sandiford <richard.sandiford@arm.com> 16632 16633 * calls.h (function_arg_info): Add a pass_by_reference field, 16634 defaulting to false. 16635 * calls.c (apply_pass_by_reference_rules): Set pass_by_reference 16636 when applying pass-by-reference semantics. 16637 (initialize_argument_information): Likewise. 16638 (emit_library_call_value_1): Likewise. 16639 * function.c (assign_parm_data_one): Remove passed_pointer field. 16640 (assign_parm_find_data_types): Don't set it. 16641 (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl) 16642 (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use 16643 arg.pass_by_reference instead of passed_pointer. 16644 166452019-08-20 Richard Sandiford <richard.sandiford@arm.com> 16646 16647 * calls.c (emit_library_call_value_1): Merge arg and orig_arg 16648 into a single function_arg_info, updating its fields when we 16649 apply pass-by-reference and promotion semantics. Use the 16650 function_arg_info to track the mode rather than keeping it in 16651 a separate local variable. 16652 (initialize_argument_information): Likewise. Base the final 16653 arg_to_skip on this new function_arg_info rather than creating 16654 a new one from scratch. 16655 166562019-08-20 Richard Sandiford <richard.sandiford@arm.com> 16657 16658 * function.c (assign_parm_data_one): Replace passed_type, 16659 promoted_mode and named_arg with a function_arg_info field. 16660 (assign_parm_find_data_types): Remove local variables and 16661 assign directly to "data". Make data->passed_mode shadow 16662 data->arg.mode until promotion, then assign the promoted 16663 mode to data->arg.mode. 16664 (assign_parms_setup_varargs, assign_parm_find_entry_rtl) 16665 (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl) 16666 (assign_parm_remove_parallels, assign_parm_setup_block_p) 16667 (assign_parm_setup_block, assign_parm_setup_reg) 16668 (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use 16669 arg.mode instead of promoted_mode, arg.type instead of passed_type 16670 and arg.named instead of named_arg. Use data->arg for 16671 function_arg_info structures that had the field values passed_type, 16672 promoted_mode and named_arg. Base other function_arg_infos on 16673 data->arg, changing the necessary properties. 16674 166752019-08-20 Richard Sandiford <richard.sandiford@arm.com> 16676 16677 * calls.h (apply_pass_by_reference_rules): Declare. 16678 * calls.c (apply_pass_by_reference_rules): New function. 16679 * config/c6x/c6x.c (c6x_call_saved_register_used): Use it. 16680 * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise. 16681 * config/s390/s390.c (s390_call_saved_register_used): Likewise. 16682 * function.c (assign_parm_find_data_types): Likewise. 16683 * var-tracking.c (prepare_call_arguments): Likewise. 16684 166852019-08-20 Richard Sandiford <richard.sandiford@arm.com> 16686 16687 * target.def (must_pass_in_stack): Take a function_arg_info instead 16688 of a mode and a type. 16689 * doc/tm.texi: Regenerate. 16690 * calls.h (must_pass_in_stack_var_size): Take a function_arg_info 16691 instead of a mode and a type. 16692 (must_pass_in_stack_var_size_or_pad): Likewise. 16693 * calls.c (must_pass_in_stack_var_size): Likewise. 16694 (must_pass_in_stack_var_size_or_pad): Likewise. 16695 (initialize_argument_information): Update call to 16696 targetm.calls.must_pass_in_stack. 16697 (must_pass_va_arg_on_stack): Likewise. 16698 * function.c (assign_parm_find_entry_rtl): Likewise. 16699 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise. 16700 * config/alpha/alpha.c (alpha_function_arg): Likewise. 16701 (alpha_function_arg_advance): Likewise. 16702 * config/cr16/cr16.c (cr16_function_arg): Likewise. 16703 (cr16_function_arg_advance): Likewise. 16704 * config/cris/cris.c (cris_pass_by_reference): Likewise. 16705 (cris_arg_partial_bytes): Likewise. 16706 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise. 16707 * config/lm32/lm32.c (lm32_function_arg): Likewise. 16708 * config/mcore/mcore.c (mcore_num_arg_regs): Likewise. 16709 (mcore_function_arg, mcore_arg_partial_bytes): Likewise. 16710 * config/mips/mips.c (mips_pass_by_reference): Likewise. 16711 * config/mmix/mmix.c (mmix_function_arg_advance): Likewise. 16712 (mmix_function_arg_1, mmix_pass_by_reference): Likewise. 16713 * config/sh/sh.c (sh_pass_by_reference): Likewise. 16714 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise. 16715 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise. 16716 * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info 16717 instead of a mode and a type. 16718 * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise. 16719 (fr30_num_arg_regs): Likewise. 16720 (fr30_setup_incoming_varargs): Update calls accordingly. 16721 (fr30_arg_partial_bytes, fr30_function_arg): Likewise. 16722 (fr30_function_arg_advance): Likewise. 16723 * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info 16724 instead of a mode and a type. 16725 * config/gcn/gcn.c (num_arg_regs): Likewise. 16726 (gcn_function_arg, gcn_function_arg_advance): Update calls to 16727 num_arg_regs and targetm.calls.must_pass_in_stack. 16728 (gcn_arg_partial_bytes): Likewise. 16729 * config/i386/i386.c (ix86_must_pass_in_stack): Take a 16730 function_arg_info instead of a mode and a type. 16731 (classify_argument): Update call accordingly. 16732 * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a 16733 function_arg_info instead of a mode and a type. 16734 * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack): 16735 Likewise. 16736 * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise. 16737 (rs6000_parm_needs_stack): Update call accordingly. 16738 (setup_incoming_varargs): Likewise. 16739 167402019-08-20 Richard Sandiford <richard.sandiford@arm.com> 16741 16742 * target.def (callee_copies): Take a function_arg_info instead 16743 of a mode, type and named flag. 16744 * doc/tm.texi: Regenerate. 16745 * targhooks.h (hook_callee_copies_named): Take a function_arg_info 16746 instead of a mode, type and named flag. 16747 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete. 16748 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. 16749 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function. 16750 * targhooks.c (hook_callee_copies_named): Take a function_arg_info 16751 instead of a mode, type and named flag. 16752 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete. 16753 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. 16754 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function. 16755 * calls.h (reference_callee_copied): Take a function_arg_info 16756 instead of a mode, type and named flag. 16757 * calls.c (reference_callee_copied): Likewise. 16758 (initialize_argument_information): Update call accordingly. 16759 (emit_library_call_value_1): Likewise. 16760 * function.c (gimplify_parameters): Likewise. 16761 * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to 16762 hook_bool_CUMULATIVE_ARGS_arg_info_false instead of 16763 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false. 16764 * config/c6x/c6x.c (c6x_callee_copies): Delete. 16765 (TARGET_CALLEE_COPIES): Define to 16766 hook_bool_CUMULATIVE_ARGS_arg_info_true instead. 16767 * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to 16768 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of 16769 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. 16770 * config/mips/mips.c (mips_callee_copies): Take a function_arg_info 16771 instead of a mode, type and named flag. 16772 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to 16773 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of 16774 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. 16775 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise. 16776 * config/msp430/msp430.c (msp430_callee_copies): Delete. 16777 (TARGET_CALLEE_COPIES): Define to 16778 hook_bool_CUMULATIVE_ARGS_arg_info_true instead. 16779 * config/pa/pa.c (pa_callee_copies): Take a function_arg_info 16780 instead of a mode, type and named flag. 16781 * config/sh/sh.c (sh_callee_copies): Likewise. 16782 * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to 16783 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of 16784 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. 16785 167862019-08-20 Richard Sandiford <richard.sandiford@arm.com> 16787 16788 * target.def (function_arg_advance): Take a function_arg_info instead 16789 of a mode, type and named flag. 16790 * doc/tm.texi: Regenerate. 16791 * targhooks.h (default_function_arg_advance): Take a function_arg_info 16792 instead of a mode, type and named flag. 16793 * targhooks.c (default_function_arg_advance): Likewise. 16794 * calls.c (initialize_argument_information): Update call to 16795 targetm.calls.function_arg_advance. 16796 (emit_library_call_value_1): Likewise. 16797 * dse.c (get_call_args): Likewise. 16798 * expr.c (block_move_libcall_safe_for_call_parm): Likewise. 16799 * function.c (assign_parms, gimplify_parameters): Likewise. 16800 * var-tracking.c (prepare_call_arguments): Likewise. 16801 * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a 16802 function_arg_info instead of a mode, type and named flag. 16803 (aarch64_setup_incoming_varargs): Update call accordingly. 16804 * config/alpha/alpha.c (alpha_function_arg_advance): Take a 16805 function_arg_info instead of a mode, type and named flag. 16806 (alpha_setup_incoming_varargs): Update call accordingly. 16807 * config/arc/arc.c (arc_function_arg_advance): Take a 16808 function_arg_info instead of a mode, type and named flag. 16809 (arc_setup_incoming_varargs): Update call accordingly. 16810 * config/arm/arm.c (arm_function_arg_advance): Take a 16811 function_arg_info instead of a mode, type and named flag. 16812 (cmse_func_args_or_return_in_stack): Update call accordingly. 16813 (arm_function_ok_for_sibcall): Likewise. 16814 (cmse_nonsecure_call_clear_caller_saved): Likewise. 16815 * config/avr/avr.c (avr_function_arg_advance): Take a 16816 function_arg_info instead of a mode, type and named flag. 16817 * config/bfin/bfin.c (bfin_function_arg_advance): Likewise. 16818 * config/c6x/c6x.c (c6x_function_arg_advance): Likewise. 16819 (c6x_call_saved_register_used): Update call accordingly. 16820 * config/cr16/cr16.c (cr16_function_arg_advance): Take a 16821 function_arg_info instead of a mode, type and named flag. 16822 * config/cris/cris.c (cris_function_arg_advance): Likewise. 16823 * config/csky/csky.c (csky_function_arg_advance): Likewise. 16824 (csky_setup_incoming_varargs): Update call accordingly. 16825 * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a 16826 function_arg_info instead of a mode, type and named flag. 16827 * config/fr30/fr30.c (fr30_function_arg_advance): Likewise. 16828 * config/frv/frv.c (frv_function_arg_advance): Likewise. 16829 * config/ft32/ft32.c (ft32_function_arg_advance): Likewise. 16830 * config/gcn/gcn.c (gcn_function_arg_advance): Likewise. 16831 * config/h8300/h8300.c (h8300_function_arg_advance): Likewise. 16832 * config/i386/i386.c (ix86_function_arg_advance): Likewise. 16833 (ix86_setup_incoming_varargs): Update call accordingly. 16834 * config/ia64/ia64.c (ia64_function_arg_advance): Take a 16835 function_arg_info instead of a mode, type and named flag. 16836 (ia64_setup_incoming_varargs): Update call accordingly. 16837 * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a 16838 function_arg_info instead of a mode, type and named flag. 16839 (iq2000_expand_prologue): Update call accordingly. 16840 * config/lm32/lm32.c (lm32_function_arg_advance): Take a 16841 function_arg_info instead of a mode, type and named flag. 16842 * config/m32c/m32c.c (m32c_function_arg_advance): Likewise. 16843 * config/m32r/m32r.c (m32r_function_arg_advance): Likewise. 16844 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise. 16845 * config/mcore/mcore.c (mcore_function_arg_advance): Likewise. 16846 * config/microblaze/microblaze.c (microblaze_function_arg_advance): 16847 Likewise. 16848 (microblaze_expand_prologue): Update call accordingly. 16849 * config/mips/mips.c (mips_function_arg_advance): Take a 16850 function_arg_info instead of a mode, type and named flag. 16851 (mips_setup_incoming_varargs): Update call accordingly. 16852 (mips_output_args_xfer): Likewise. 16853 * config/mmix/mmix.c (mmix_function_arg_advance): Take a 16854 function_arg_info instead of a mode, type and named flag. 16855 * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise. 16856 * config/moxie/moxie.c (moxie_function_arg_advance): Likewise. 16857 * config/msp430/msp430.c (msp430_function_arg_advance): Likewise. 16858 * config/nds32/nds32.c (nds32_function_arg_advance): Likewise. 16859 * config/nios2/nios2.c (nios2_function_arg_advance): Likewise. 16860 (nios2_setup_incoming_varargs): Update call accordingly. 16861 * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a 16862 function_arg_info instead of a mode, type and named flag. 16863 * config/or1k/or1k.c (or1k_function_arg_advance): Likewise. 16864 * config/pa/pa.c (pa_function_arg_advance): Likewise. 16865 * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise. 16866 * config/pru/pru.c (pru_function_arg_advance): Likewise. 16867 * config/riscv/riscv.c (riscv_function_arg_advance): Likewise. 16868 (riscv_setup_incoming_varargs): Update call accordingly. 16869 * config/rl78/rl78.c (rl78_function_arg_advance): Take a 16870 function_arg_info instead of a mode, type and named flag. 16871 * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance): 16872 Likewise. 16873 * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise. 16874 (rs6000_parm_needs_stack): Update call accordingly. 16875 * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info 16876 instead of a mode, type and named flag. 16877 * config/s390/s390.c (s390_function_arg_advance): Likewise. 16878 (s390_call_saved_register_used): Update call accordingly. 16879 * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info 16880 instead of a mode, type and named flag. 16881 (sh_output_mi_thunk): Update call accordingly. 16882 * config/sparc/sparc.c (sparc_function_arg_advance): Take a 16883 function_arg_info instead of a mode, type and named flag. 16884 * config/spu/spu.c (spu_function_arg_advance): Likewise. 16885 (spu_setup_incoming_varargs): Update call accordingly. 16886 * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a 16887 function_arg_info instead of a mode, type and named flag. 16888 * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise. 16889 (tilegx_setup_incoming_varargs): Update call accordingly. 16890 * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a 16891 function_arg_info instead of a mode, type and named flag. 16892 (tilegx_setup_incoming_varargs): Update call accordingly. 16893 * config/v850/v850.c (v850_function_arg_advance): Take a 16894 function_arg_info instead of a mode, type and named flag. 16895 * config/vax/vax.c (vax_function_arg_advance): Likewise. 16896 * config/visium/visium.c (visium_function_arg_advance): Likewise. 16897 (visium_setup_incoming_varargs): Update call accordingly. 16898 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a 16899 function_arg_info instead of a mode, type and named flag. 16900 169012019-08-20 Richard Sandiford <richard.sandiford@arm.com> 16902 16903 * target.def (function_arg, function_incoming_arg): Take a 16904 function_arg_info instead of a mode, tree and named flag. 16905 * doc/tm.texi: Regenerate. 16906 * targhooks.h (default_function_arg): Take a function_arg_info 16907 instead of a mode, tree and named flag. 16908 (default_function_incoming_arg): Likewise. 16909 * targhooks.c (default_function_arg): Likewise. 16910 (default_function_incoming_arg): Likewise. 16911 * calls.h (function_arg_info::end_marker_p): New function. 16912 (function_arg_info::end_marker): Likewise. 16913 * calls.c (prepare_call_address, initialize_argument_information) 16914 (expand_call, emit_library_call_value_1): Update calls to 16915 targetm.calls.function_arg and targetm.calls.function_incoming_arg. 16916 * dse.c: Include calls.h. 16917 (get_call_args): Update call to targetm.calls.function_arg. 16918 * expr.c (block_move_libcall_safe_for_call_parm): Likewise. 16919 * var-tracking.c (prepare_call_arguments): Likewise. 16920 * function.c (assign_parm_find_entry_rtl): Update call to 16921 targetm.calls.function_incoming_arg. 16922 * config/aarch64/aarch64.c (aarch64_function_arg): Take a 16923 function_arg_info instead of a mode, tree and named flag. 16924 * config/alpha/alpha.c (alpha_function_arg): Likewise. 16925 * config/arc/arc.c (arc_function_arg): Likewise. 16926 * config/arm/arm.c (arm_function_arg): Likewise. 16927 (cmse_func_args_or_return_in_stack): Update call accordingly. 16928 (arm_function_ok_for_sibcall): Likewise. 16929 (cmse_nonsecure_call_clear_caller_saved): Likewise. 16930 * config/avr/avr.c (avr_function_arg): Take a function_arg_info 16931 instead of a mode, tree and named flag. 16932 * config/bfin/bfin.c (bfin_function_arg): Likewise. 16933 * config/c6x/c6x.c (c6x_function_arg): Likewise. 16934 (c6x_call_saved_register_used): Update call accordingly. 16935 * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info 16936 instead of a mode, tree and named flag. 16937 * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg) 16938 (cris_function_arg_1): Likewise. 16939 * config/csky/csky.c (csky_function_arg): Likewise. 16940 * config/epiphany/epiphany.c (epiphany_function_arg): Likewise. 16941 * config/fr30/fr30.c (fr30_function_arg): Likewise. 16942 * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg) 16943 (frv_function_arg_1): Likewise. 16944 * config/ft32/ft32.c (ft32_function_arg): Likewise. 16945 * config/gcn/gcn.c (gcn_function_arg): Likewise. 16946 * config/h8300/h8300.c (h8300_function_arg): Likewise. 16947 * config/i386/i386.c (ix86_function_arg): Likewise. 16948 * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg) 16949 (ia64_function_arg_1): Likewise. 16950 * config/iq2000/iq2000.c (iq2000_function_arg): Likewise. 16951 (iq2000_expand_prologue, iq2000_pass_by_reference): Update call 16952 accordingly. 16953 * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info 16954 instead of a mode, tree and named flag. 16955 * config/m32c/m32c.c (m32c_function_arg): Likewise. 16956 * config/m32r/m32r.c (m32r_function_arg): Likewise. 16957 * config/m68k/m68k.c (m68k_function_arg): Likewise. 16958 * config/mcore/mcore.c (mcore_function_arg): Likewise. 16959 * config/microblaze/microblaze.c (microblaze_function_arg): Likewise. 16960 (microblaze_expand_prologue): Update call accordingly. 16961 * config/mips/mips.c (mips_function_arg): Take a function_arg_info 16962 instead of a mode, tree and named flag. 16963 * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg) 16964 (mmix_function_arg_1): Likewise. 16965 * config/mn10300/mn10300.c (mn10300_function_arg): Likewise. 16966 * config/moxie/moxie.c (moxie_function_arg): Likewise. 16967 * config/msp430/msp430.c (msp430_function_arg): Likewise. 16968 * config/nds32/nds32.c (nds32_function_arg): Likewise. 16969 * config/nios2/nios2.c (nios2_function_arg): Likewise. 16970 * config/nvptx/nvptx.c (nvptx_function_arg): Likewise. 16971 (nvptx_function_incoming_arg): Likewise. 16972 * config/or1k/or1k.c (or1k_function_arg): Likewise. 16973 * config/pa/pa.c (pa_function_arg): Likewise. 16974 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise. 16975 * config/pru/pru.c (pru_function_arg): Likewise. 16976 * config/riscv/riscv.c (riscv_function_arg): Likewise. 16977 * config/rl78/rl78.c (rl78_function_arg): Likewise. 16978 * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise. 16979 * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise. 16980 (rs6000_parm_needs_stack): Update call accordingly. 16981 * config/rx/rx.c (rx_function_arg): Take a function_arg_info 16982 instead of a mode, tree and named flag. 16983 * config/s390/s390.c (s390_function_arg): Likewise. 16984 (s390_call_saved_register_used): Update call accordingly. 16985 * config/sh/sh.c (sh_function_arg): Take a function_arg_info 16986 instead of a mode, tree and named flag. 16987 (sh_output_mi_thunk): Update call accordingly. 16988 * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg) 16989 (sparc_function_incoming_arg): Take a function_arg_info instead of 16990 a mode, tree and named flag. 16991 * config/spu/spu.c (spu_function_arg): Likewise. 16992 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise. 16993 * config/tilegx/tilegx.c (tilegx_function_arg): Likewise. 16994 * config/tilepro/tilepro.c (tilepro_function_arg): Likewise. 16995 * config/v850/v850.c (v850_function_arg): Likewise. 16996 * config/vax/vax.c (vax_function_arg): Likewise. 16997 * config/visium/visium.c (visium_function_arg): Likewise. 16998 * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg) 16999 (xtensa_function_incoming_arg): Likewise. 17000 170012019-08-20 Richard Sandiford <richard.sandiford@arm.com> 17002 17003 * target.def (setup_incoming_varargs): Take a function_arg_info 17004 instead of a mode and tree. 17005 * doc/tm.texi: Regenerate. 17006 * targhooks.h (default_setup_incoming_varargs): Take a 17007 function_arg_info instead of a mode and tree. 17008 * targhooks.c (default_setup_incoming_varargs): Likewise. 17009 * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise. 17010 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise. 17011 * config/arc/arc.c (arc_setup_incoming_varargs): Likewise. 17012 * config/arm/arm.c (arm_setup_incoming_varargs): Likewise. 17013 * config/bfin/bfin.c (setup_incoming_varargs): Likewise. 17014 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise. 17015 * config/csky/csky.c (csky_setup_incoming_varargs): Likewise. 17016 * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs): 17017 Likewise. 17018 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise. 17019 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise. 17020 * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise. 17021 * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise. 17022 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise. 17023 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise. 17024 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise. 17025 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. 17026 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise. 17027 * config/mips/mips.c (mips_setup_incoming_varargs): Likewise. 17028 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise. 17029 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise. 17030 * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise. 17031 * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise. 17032 * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise. 17033 * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise. 17034 * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise. 17035 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise. 17036 * config/spu/spu.c (spu_setup_incoming_varargs): Likewise. 17037 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise. 17038 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise. 17039 * config/visium/visium.c (visium_setup_incoming_varargs): Likewise. 17040 * function.c (assign_parms_setup_varargs): Update call to 17041 targetm.calls.setup_incoming_varargs. 17042 170432019-08-20 Richard Sandiford <richard.sandiford@arm.com> 17044 17045 * target.def (pass_by_reference): Take a function_arg_info instead 17046 of a mode, type and named flag. 17047 * doc/tm.texi: Regenerate. 17048 * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update 17049 accordingly. 17050 (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare. 17051 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a 17052 function_arg_info instead of a mode, type and named flag. 17053 (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function. 17054 * calls.h (pass_by_reference): Take a function_arg_info instead of a 17055 mode, type and named flag. 17056 * calls.c (pass_by_reference): Likewise. 17057 (pass_va_arg_by_reference): Update call accordingly. 17058 (initialize_argument_information): Likewise. 17059 (emit_library_call_value_1): Likewise. 17060 * function.c (assign_parm_find_data_types): Likewise. 17061 * var-tracking.c (prepare_call_arguments): Likewise. 17062 * stor-layout.c: Include calls.h. 17063 (compute_record_mode): Update call to targetm.calls.pass_by_reference. 17064 * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a 17065 function_arg_info instead of a mode, type and named flag. 17066 * config/alpha/alpha.c (alpha_pass_by_reference): Likewise. 17067 * config/arc/arc.c (arc_pass_by_reference): Likewise. 17068 * config/arm/arm.c (arm_pass_by_reference): Likewise. 17069 * config/bfin/bfin.c (bfin_pass_by_reference): Likewise. 17070 * config/c6x/c6x.c (c6x_pass_by_reference): Likewise. 17071 (c6x_call_saved_register_used): Update call to pass_by_reference. 17072 * config/cris/cris.c (cris_pass_by_reference): Take a 17073 function_arg_info instead of a mode, type and named flag. 17074 * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a 17075 function_arg_info instead of a mode, type and named flag. 17076 (epiphany_arg_partial_bytes): Update call accordingly. 17077 * config/ft32/ft32.c (ft32_pass_by_reference): Take a 17078 function_arg_info instead of a mode, type and named flag. 17079 (ft32_arg_partial_bytes): Update call accordingly. 17080 * config/i386/i386.c (ix86_pass_by_reference): Take a 17081 function_arg_info instead of a mode, type and named flag. 17082 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise. 17083 * config/m32c/m32c.c (m32c_pass_by_reference): Likewise. 17084 * config/m32r/m32r.c (m32r_pass_by_reference): Likewise. 17085 (m32r_return_in_memory): Update call accordingly. 17086 * config/mips/mips.c (mips_pass_by_reference): Take a 17087 function_arg_info instead of a mode, type and named flag. 17088 * config/mmix/mmix.c (mmix_pass_by_reference): Likewise. 17089 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise. 17090 * config/moxie/moxie.c (moxie_pass_by_reference): Likewise. 17091 (moxie_arg_partial_bytes): Update call accordingly. 17092 * config/msp430/msp430.c (msp430_pass_by_reference): Take a 17093 function_arg_info instead of a mode, type and named flag. 17094 * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise. 17095 * config/or1k/or1k.c (or1k_pass_by_reference): Likewise. 17096 * config/pa/pa.c (pa_pass_by_reference): Likewise. 17097 * config/riscv/riscv.c (riscv_pass_by_reference): Likewise. 17098 (riscv_return_in_memory): Update call accordingly. 17099 * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a 17100 function_arg_info instead of a mode, type and named flag. 17101 * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise. 17102 (rs6000_parm_needs_stack): Update call to pass_by_reference. 17103 * config/s390/s390.c (s390_pass_by_reference): Take a 17104 function_arg_info instead of a mode, type and named flag. 17105 (s390_call_saved_register_used): Update call accordingly. 17106 * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info 17107 instead of a mode, type and named flag. 17108 * config/sparc/sparc.c (sparc_pass_by_reference): Likewise. 17109 * config/spu/spu.c (spu_pass_by_reference): Likewise. 17110 * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise. 17111 * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise. 17112 * config/v850/v850.c (v850_pass_by_reference): Likewise. 17113 * config/visium/visium.c (visium_pass_by_reference): Likewise. 17114 171152019-08-20 Richard Sandiford <richard.sandiford@arm.com> 17116 17117 * target.def (arg_partial_bytes): Take a function_arg_info instead 17118 of a mode, type and named flag. 17119 * doc/tm.texi: Regenerate. 17120 * target.h (function_arg_info): Declare. 17121 * calls.h (function_arg_info): New class. 17122 * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete. 17123 (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare. 17124 * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete. 17125 (hook_int_CUMULATIVE_ARGS_arg_info_0): New function. 17126 * calls.c (initialize_argument_information): Update call to 17127 targetm.calls.partial_bytes. 17128 (emit_library_call_value_1): Likewise. 17129 * expr.c (block_move_libcall_safe_for_call_parm): Likewise. 17130 * function.c (assign_parm_find_entry_rtl): Likewise. 17131 * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a 17132 function_arg_info instead of a mode, type and named flag. 17133 * config/arc/arc.c (arc_arg_partial_bytes): Likewise. 17134 * config/arm/arm.c (arm_arg_partial_bytes): Likewise. 17135 (cmse_func_args_or_return_in_stack): Update accordingly. 17136 * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a 17137 function_arg_info instead of a mode, type and named flag. 17138 * config/cris/cris.c (cris_arg_partial_bytes): Likewise. 17139 * config/csky/csky.c (csky_arg_partial_bytes): Likewise. 17140 * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise. 17141 * config/fr30/fr30.c: Include calls.h. 17142 (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode, 17143 type and named flag. 17144 * config/frv/frv.c: Include calls.h. 17145 (frv_arg_partial_bytes): Take a function_arg_info instead of a mode, 17146 type and named flag. 17147 * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise. 17148 * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise. 17149 * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise. 17150 * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise. 17151 * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise. 17152 * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise. 17153 * config/microblaze/microblaze.c (function_arg_partial_bytes): 17154 Likewise. 17155 * config/mips/mips.c (mips_arg_partial_bytes): Likewise. 17156 * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise. 17157 * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise. 17158 * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise. 17159 * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise. 17160 * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise. 17161 * config/pa/pa.c (pa_arg_partial_bytes): Likewise. 17162 * config/pru/pru.c (pru_arg_partial_bytes): Likewise. 17163 * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise. 17164 * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise. 17165 * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise. 17166 (rs6000_parm_needs_stack): Update call accordingly. 17167 * config/sh/sh.c (sh_arg_partial_bytes): Take a 17168 function_arg_info instead of a mode, type and named flag. 17169 * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise. 17170 * config/v850/v850.c (v850_arg_partial_bytes): Likewise. 17171 171722019-08-20 Richard Sandiford <richard.sandiford@arm.com> 17173 17174 * calls.h (must_pass_va_arg_in_stack): Declare. 17175 * calls.c (must_pass_va_arg_in_stack): New function. 17176 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it. 17177 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. 17178 * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr): 17179 Likewise. 17180 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. 17181 171822019-08-20 Richard Sandiford <richard.sandiford@arm.com> 17183 17184 * calls.h (pass_va_arg_by_reference): Declare. 17185 * calls.c (pass_va_arg_by_reference): New function. 17186 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it. 17187 * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise. 17188 * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise. 17189 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. 17190 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. 17191 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise. 17192 (mips_gimplify_va_arg_expr): Likewise. 17193 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise. 17194 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. 17195 * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise. 17196 * config/s390/s390.c (s390_gimplify_va_arg): Likewise. 17197 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise. 17198 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise. 17199 * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise. 17200 * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise. 17201 * config/visium/visium.c (visium_gimplify_va_arg): Likewise. 17202 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. 17203 * targhooks.c (std_gimplify_va_arg_expr): Likewise. 17204 172052019-08-20 Richard Biener <rguenther@suse.de> 17206 17207 PR target/91498 17208 * config/i386/i386-features.c (general_scalar_chain::convert_op): 17209 Use (vec_merge (vec_duplicate..)) style vector from scalar move. 17210 (convert_scalars_to_vector): Add timode_p parameter and use it 17211 to guard TImode-only operation. 17212 (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT. 17213 (pass_stv::execute): Pass down timode_p. 17214 172152019-08-20 Lili Cui <lili.cui@intel.com> 17216 17217 * common/config/i386/i386-common.c 17218 (processor_names): Add tigerlake and cooperlake. 17219 (processor_alias_table): Add tigerlake and cooperlake. 17220 * config.gcc: Add -march=tigerlake and cooperlake. 17221 * config/i386/driver-i386.c 17222 (host_detect_local_cpu): Detect tigerlake and cooperlake. 17223 Add "has_avx" to classify processor. 17224 * config/i386/i386-builtins.c (processor_model) : 17225 Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE. 17226 (arch_names_table): Add tigerlake and cooperlake. 17227 (get_builtin_code_for_version): Handle PROCESSOR_TIGERLAKE 17228 and PROCESSOR_COOPERLAKE. 17229 * config/i386/i386-c.c 17230 (ix86_target_macros_internal): Handle tigerlake and cooperlake. 17231 * config/i386/i386-options.c 17232 (m_TIGERLAKE): Define. 17233 (m_COOPERLAKE): Ditto. 17234 (m_CORE_AVX512): Ditto. 17235 (processor_cost_table): Add cascadelake. 17236 (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B. 17237 * config/i386/i386.h 17238 (ix86_size_cost): Define TARGET_TIGERLAKE and TARGET_COOPERLAKE. 17239 (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE. 17240 (PTA_MOVDIRI): Ditto. 17241 (PTA_MOVDIR64B): Ditto. 17242 (PTA_COOPERLAKE): Ditto. 17243 (PTA_TIGERLAKE): Ditto. 17244 (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE. 17245 * doc/extend.texi: Add tigerlake and cooperlake. 17246 * doc/invoke.texi: Add tigerlake and cooperlake. 17247 172482019-08-20 Gerald Pfeifer <gerald@pfeifer.com> 17249 17250 * doc/install.texi (Specific, alpha): Remove note to use 17251 binutils 2.11.2 or later. 17252 172532019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 17254 17255 PR middle-end/89544 17256 * function.c (assign_parm_find_stack_rtl): Use larger alignment 17257 when possible. 17258 172592019-08-19 Joel Hutton <Joel.Hutton@arm.com> 17260 17261 * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype 17262 * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function 17263 * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern 17264 (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern 17265 * config/aarch64/constraints.md (Dt): New constraint 17266 * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate 17267 172682019-08-19 Richard Biener <rguenther@suse.de> 17269 17270 PR tree-optimization/91403 17271 * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline 17272 cases we can handle with tail-recursion... 17273 (follow_ssa_edge_expr): ... here. Do so. 17274 172752019-08-19 Kito Cheng <kito.cheng@sifive.com> 17276 17277 PR target/91441 17278 * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is 17279 implemented for -fsanitize=kernel-address, and merge check logic 17280 with -fsanitize=address. 17281 172822019-08-18 Iain Sandoe <iain@sandoe.co.uk> 17283 17284 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts 17285 for cpu and machine. Factor 64/32b builtins. 17286 172872019-08-18 Gerald Pfeifer <gerald@pfeifer.com> 17288 17289 * doc/install.texi (Specific, bfin): blackfin.uclinux.org is 17290 gone, point to sourceforge.net. 17291 172922019-08-17 Gerald Pfeifer <gerald@pfeifer.com> 17293 17294 * doc/ux.texi (User Experience Guidelines): Update reference. 17295 172962019-08-17 Gerald Pfeifer <gerald@pfeifer.com> 17297 17298 * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why 17299 not LGPL". 17300 173012019-08-16 Eric Botcazou <ebotcazou@adacore.com> 17302 17303 * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead 17304 of NULL. Add guard for broken VIEW_CONVERT_EXPRs. 17305 173062019-08-16 Martin Sebor <msebor@redhat.com> 17307 17308 * tree.def (TYPE_SIZE): Clarify. 17309 * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments. 17310 173112019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de> 17312 17313 PR tree-optimization/91109 17314 * lra-int.h (lra_need_for_scratch_reg_p): Declare. 17315 * lra.c (lra): Use lra_need_for_scratch_reg_p. 17316 * lra-spills.c (lra_need_for_scratch_reg_p): New function. 17317 173182019-08-16 Uroš Bizjak <ubizjak@gmail.com> 17319 17320 * config/i386/mmx.md (mmxdoublemode): New mode attribute. 17321 (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and 17322 mmx_uavgv4hi3 using MMXMODE12 mode iterator. 17323 (uavg<mode>3_ceil): New expander. 17324 * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode 17325 mode iterator when creating CONST1_RTX. 17326 (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto. 17327 (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode 17328 mode iterator for const1_operand predicate. 17329 173302019-08-16 Richard Biener <rguenther@suse.de> 17331 17332 * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare. 17333 (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of 17334 follow_ssa_edge. 17335 (follow_ssa_edge_in_condition_phi_branch): Likewise. 17336 (analyze_evolution_in_loop): Likewise. 17337 (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ... 17338 (follow_ssa_edge_expr): ... here. Refactor code. 17339 173402019-08-16 Richard Biener <rguenther@suse.de> 17341 17342 PR target/91469 17343 * config/i386/i386-features.c 17344 (general_scalar_chain::replace_with_subreg): Stop at memory operands. 17345 173462019-08-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 17347 17348 PR other/91255 17349 * gensupport.c (has_subst_attribute): Error out on set_attr_alternative 17350 only if subst_name matches curr_attr string. 17351 173522019-08-16 Richard Biener <rguenther@suse.de> 17353 17354 * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove 17355 stmt at gsi_p, instead replace it with a NOP removed later. 17356 (pass_forwprop::execute): Fully propagate lattice, DCE stmts 17357 that became dead because of that. 17358 173592019-08-16 Aldy Hernandez <aldyh@redhat.com> 17360 17361 * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs 17362 for which we can't represent a range. 17363 * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to 17364 set_varying. 17365 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): 17366 Set VR_UNDEFINED if type is not supported. 17367 * tree-ssanames.c (get_range_info): Pass type to set_varying. 17368 * tree-vrp.c (value_range_base::check): Assert that a varying has 17369 min/max set. 17370 (value_range_base::equal_p): Early bail for undefines. 17371 (value_range_base::set_varying): Accept a type. 17372 (value_range::set_varying): Same. 17373 (value_range_base::type): VARYING can have a type, while UNDEFINE 17374 is typeless. 17375 (value_range_base::dump): Print type for VARYING nodes. 17376 (value_range_base::set): Add type to VARYING. 17377 (extract_range_from_multiplicative_op): Pass type to set_varying. 17378 (extract_range_from_binary_expr): Same. 17379 (value_range_base::intersect_helper): Same. 17380 (value_range_base::union_helper): Same. 17381 (value_range_base::normalize_symbolics): Same. 17382 (determine_value_range_1): Same. 17383 * tree-vrp.h (class value_range_base): Add type to set_varying. 17384 Add prototype for dump(void). 17385 Add prototype for supports_type_p. 17386 (class value_range): Add type to set_varying. 17387 Add prototype for dump(void). 17388 * vr-values.c (set_value_range_to_truthvalue): Pass type to 17389 set_varying. 17390 (vr_values::get_lattice_entry): Set varying even if propagation 17391 finished. 17392 Pass type to set_varying. 17393 (vr_values::get_value_range): Remove vr_const_varying. 17394 Reallocate the lattice if needed. 17395 (vr_values::update_value_range): Pass type to set_varying. 17396 (vr_values::extract_range_for_var_from_comparison_expr): Same. 17397 (vr_values::extract_range_from_binary_expr): Same. 17398 (vr_values::extract_range_from_unary_expr): Same. 17399 (vr_values::extract_range_from_cond_expr): Same. 17400 (vr_values::check_for_binary_op_overflow): Same. 17401 (vr_values::extract_range_basic): Same. 17402 (vr_values::extract_range_from_assignment): Same. 17403 (vr_values::vr_values): Increase size of num_vr_values. 17404 (vr_values::extract_range_from_phi_node): Pass type to 17405 set_varying. 17406 174072019-08-15 H.J. Lu <hongjiu.lu@intel.com> 17408 17409 PR target/90878 17410 * config/i386/i386.c (inline_memory_move_cost): Use hard_register 17411 for costs of hard register moves. 17412 (ix86_register_move_cost): Likewise. 17413 * config/i386/i386.h (processor_costs): Move costs of hard 17414 register moves to hard_register. Add int_load, int_store, 17415 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse, 17416 sse_load, sse_store, sse_unaligned_load and sse_unaligned_store 17417 for costs of RTL expressions. 17418 * config/i386/x86-tune-costs.h: Move costs of hard register 17419 moves to hard_register. Duplicate int_load, int_store, 17420 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse, 17421 sse_load, sse_store for costs of RTL expressions. 17422 174232019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17424 17425 * target.def (setup_incoming_vararg_bounds): Remove. 17426 * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove. 17427 * doc/tm.texi: Regenerate. 17428 * targhooks.c (default_setup_incoming_vararg_bounds): Delete. 17429 * targhooks.h (default_setup_incoming_vararg_bounds): Likewise. 17430 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. 17431 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise. 17432 174332019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> 17434 17435 MSP430: Fix lines over 80 characters long in 17436 config/msp430/*.{c,h} files 17437 17438 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format 17439 specifier in string. 17440 (msp430_select_hwmult_lib): Split line more than 80 characters long. 17441 * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove 17442 redundant old comment. 17443 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common): 17444 Split line more than 80 characters long. 17445 * config/msp430/msp430.c (msp430_option_override): Likewise. 17446 (msp430_return_in_memory): Likewise. 17447 (msp430_gimplify_va_arg_expr): Likewise. 17448 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise. 17449 (msp430_legitimate_constant): Likewise. 17450 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise. 17451 (msp430_attr): Likewise. 17452 (msp430_data_attr): Likewise. 17453 (msp430_start_function): Likewise. 17454 (gen_prefix): Likewise. 17455 (msp430_init_sections): Likewise. 17456 (msp430_select_section): Likewise. 17457 (msp430_function_section): Likewise. 17458 (msp430_unique_section): Likewise. 17459 (msp430_output_aligned_decl_common): Likewise. 17460 (msp430_do_not_relax_short_jumps): Likewise. 17461 (msp430_init_builtins): Likewise. 17462 (msp430_expand_delay_cycles): Likewise. 17463 (msp430_expand_prologue): Likewise. 17464 (msp430_expand_epilogue): Likewise. 17465 (msp430_expand_helper): Likewise. 17466 (msp430_split_movsi): Likewise. 17467 (msp430_print_operand): Likewise. 17468 (msp430_return_addr_rtx): Likewise. 17469 (msp430x_extendhisi): Likewise. 17470 * config/msp430/msp430.h (STARTFILE_SPEC): Likewise. 17471 (ASM_SPEC): Likewise. 17472 Remove very obvious comments. 17473 (LIB_SPEC): Split line more than 80 characters long. 17474 (EH_RETURN_HANDLER_RTX): Likewise. 17475 (HARD_REGNO_CALLER_SAVE_MODE): Likewise. 17476 174772019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> 17478 17479 MSP430: Fix whitespace errors and incorrect indentation in 17480 config/msp430/*.{c,h} files 17481 17482 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation. 17483 (msp430_select_hwmult_lib): Likewise. 17484 * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise. 17485 (msp430_extract_mcu_data): Likewise. 17486 (struct t_msp430_mcu_data): Likewise. 17487 * config/msp430/msp430.c (struct machine_function): Remove whitespace 17488 before left square bracket. 17489 (msp430_option_override): Fix indentation. 17490 (msp430_hard_regno_nregs_with_padding): Likewise. 17491 (msp430_initial_elimination_offset): Likewise. 17492 (msp430_special_register_convention_p): Remove whitespace before left 17493 square bracket and after exclamation mark. 17494 (msp430_evaluate_arg): Likewise. 17495 (msp430_callee_copies): Fix indentation. 17496 (msp430_gimplify_va_arg_expr): Likewise. 17497 (msp430_function_arg_advance): Remove whitespace before left square 17498 bracket. 17499 (reg_ok_for_addr): Likewise. 17500 (msp430_preserve_reg_p): Likewise. 17501 (msp430_compute_frame_info): Likewise. 17502 (msp430_asm_output_addr_const_extra): Add space between function name 17503 and open parenthesis. 17504 (has_section_name): Fix indentation. 17505 (msp430_attr): Remove trailing whitespace. 17506 (msp430_section_attr): Likewise. 17507 (msp430_data_attr): Likewise. 17508 (struct msp430_attribute_table): Fix comment and whitespace. 17509 (msp430_start_function): Remove whitespace before left square bracket. 17510 Add space between function name and open parenthesis. 17511 (msp430_select_section): Remove trailing whitespace. 17512 (msp430_section_type_flags): Remove trailing whitespace. 17513 (msp430_unique_section): Remove space before closing parenthesis. 17514 (msp430_output_aligned_decl_common): Change 8 spaces to a tab. 17515 (msp430_builtins): Remove whitespace before left square bracket. 17516 (msp430_init_builtins): Fix indentation. 17517 (msp430_expand_prologue): Remove whitespace before left square bracket. 17518 Remove space before closing parenthesis. 17519 (msp430_expand_epilogue): Remove whitespace before left square bracket. 17520 (msp430_split_movsi): Remove space before closing parenthesis. 17521 (helper_function_name_mappings): Fix indentation. 17522 (msp430_use_f5_series_hwmult): Fix whitespace. 17523 (use_32bit_hwmult): Likewise. 17524 (msp430_no_hwmult): Likewise. 17525 (msp430_output_labelref): Remove whitespace before left square bracket. 17526 (msp430_print_operand_raw): Likewise. 17527 (msp430_print_operand_addr): Likewise. 17528 (msp430_print_operand): Add two spaces after '.' in comment. 17529 Fix trailing whitespace. 17530 (msp430x_extendhisi): Fix indentation. 17531 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to 17532 tab. 17533 (PC_REGNUM): Likewise. 17534 (STACK_POINTER_REGNUM): Likewise. 17535 (CC_REGNUM): Likewise. 17536 175372019-08-15 Richard Biener <rguenther@suse.de> 17538 17539 PR target/91454 17540 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New 17541 helper. 17542 (general_scalar_chain::make_vector_copies): Use it. 17543 175442019-08-15 Bernd Edlinger <bernd.edlinger@hotmail.de> 17545 17546 * function.c (assign_parm_setup_reg): Handle misaligned stack arguments. 17547 175482019-08-15 Martin Liska <mliska@suse.cz> 17549 17550 * tree-ssa-dce.c (propagate_necessity): We can't reach now 17551 operators with no arguments. 17552 (eliminate_unnecessary_stmts): Likewise here. 17553 175542019-08-15 Uroš Bizjak <ubizjak@gmail.com> 17555 17556 * config/i386/i386-features.c (general_scalar_chain::convert_insn) 17557 <case COMPARE>: Revert 2019-08-14 change. 17558 (convertible_comparison_p): Revert 2019-08-14 change. Return false 17559 for (TARGET_64BIT || mode != DImode). 17560 175612019-08-15 Aldy Hernandez <aldyh@redhat.com> 17562 17563 * tree-vrp.c (value_range_base::set): Merge in code from 17564 value_range_base::set_and_canonicalize. 17565 Enforce canonicalization at set time. 17566 Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED. 17567 (value_range_base::set_undefined): Inline call to set(). 17568 (value_range_base::set_varying): Same. 17569 (value_range_base::singleton_p): Handle VR_ANTI_RANGEs. 17570 (vrp_val_max): New argument handle_pointers. 17571 (vrp_val_min): Same. 17572 (ranges_from_anti_range): Same. 17573 (extract_range_into_wide_ints): Use tree argument instead of sign 17574 and precision. 17575 (extract_range_from_multiplicative_op): Take in tree type instead 17576 of precision and sign. Adapt function for canonicalized ranges. 17577 (extract_range_from_binary_expr): Pass type to 17578 extract_range_from_multiplicative_op. 17579 Adapt for canonicalized ranges. 17580 (extract_range_from_unary_expr): Same. 17581 (value_range_base::intersect_helper): Adjust for canonicalized 17582 ranges. 17583 (value_range_base::union_helper): Same. 17584 (value_range_base::normalize_symbolics): New. 17585 * tree-vrp.h (class value_range_base): Remove 17586 set_and_canonicalize. 17587 New prototype for normalize_symbolics. 17588 (class value_range): Remove set_and_canonicalize. 17589 (vrp_val_min): Adjust prototype. 17590 (vrp_val_max): Same. 17591 * vr-values.c 17592 (vr_values::extract_range_for_var_from_comparison_expr): Call set 17593 instead of set_and_canonicalize. 17594 175952019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17596 17597 PR middle-end/91444 17598 * tree-vect-stmts.c (vectorizable_call): Check that the function 17599 is a BUILT_IN_MD function before passing it to 17600 targetm.vectorize.builtin_md_vectorized_function. 17601 176022019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17603 17604 * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare. 17605 * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function. 17606 (aarch64_select_early_remat_modes): Use it. 17607 176082019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17609 17610 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return 17611 16 for SVE predicates even if they are fixed-length. 17612 176132019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17614 17615 * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the 17616 operand order match the MOV /Z alias. 17617 176182019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17619 17620 * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take 17621 the vector pattern as an aarch64_svpattern argument. Update the 17622 overloaded caller accordingly. 17623 (aarch64_output_sve_scalar_inc_dec): Update call accordingly. 17624 (aarch64_output_sve_vector_inc_dec): Likewise. 17625 176262019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17627 17628 * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback 17629 multiplication case, try to compute VG * (lowest set bit) directly 17630 rather than always basing the multiplication on VG. Use 17631 expand_mult for the multiplication if we can. 17632 176332019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17634 17635 * config/aarch64/aarch64-protos.h 17636 (aarch64_sve_scalar_inc_dec_immediate_p): Declare. 17637 (aarch64_sve_inc_dec_immediate_p): Rename to... 17638 (aarch64_sve_vector_inc_dec_immediate_p): ...this. 17639 (aarch64_output_sve_addvl_addpl): Take a single rtx argument. 17640 (aarch64_output_sve_scalar_inc_dec): Declare. 17641 (aarch64_output_sve_inc_dec_immediate): Rename to... 17642 (aarch64_output_sve_vector_inc_dec): ...this. 17643 * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p) 17644 (aarch64_output_sve_scalar_inc_dec): New functions. 17645 (aarch64_output_sve_addvl_addpl): Remove the base and offset 17646 arguments. Only handle true ADDVL and ADDPL instructions; 17647 don't emit an INC or DEC. 17648 (aarch64_sve_inc_dec_immediate_p): Rename to... 17649 (aarch64_sve_vector_inc_dec_immediate_p): ...this. 17650 (aarch64_output_sve_inc_dec_immediate): Rename to... 17651 (aarch64_output_sve_vector_inc_dec): ...this. Update call to 17652 aarch64_sve_vector_inc_dec_immediate_p. 17653 * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate) 17654 (aarch64_sve_plus_immediate): New predicates. 17655 (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate 17656 rather than aarch64_sve_addvl_addpl_immediate. 17657 (aarch64_sve_inc_dec_immediate): Rename to... 17658 (aarch64_sve_vector_inc_dec_immediate): ...this. Update call to 17659 aarch64_sve_vector_inc_dec_immediate_p. 17660 (aarch64_sve_add_operand): Update accordingly. 17661 * config/aarch64/constraints.md (Uai): New constraint. 17662 (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p. 17663 * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second 17664 operand into a register if it satisfies aarch64_sve_plus_immediate. 17665 (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative 17666 for Uai. Update calls to aarch64_output_sve_addvl_addpl. 17667 * config/aarch64/aarch64-sve.md (add<mode>3): Call 17668 aarch64_output_sve_vector_inc_dec instead of 17669 aarch64_output_sve_inc_dec_immediate. 17670 176712019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17672 17673 * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH) 17674 (UNSPEC_REVW): New constants. 17675 (elem_bits): New mode attribute. 17676 (SVE_INT_UNARY): New int iterator. 17677 (optab): Handle UNSPEC_REV[BHW]. 17678 (sve_int_op): New int attribute. 17679 (min_elem_bits): Handle VNx16QI and the predicate modes. 17680 * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>) 17681 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete. 17682 (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern. 17683 * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function. 17684 (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise. 17685 (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of 17686 unspecs based on the total width of the reversed data. 17687 (aarch64_evpc_rev_local): Likewise (for SVE only). Use a 17688 reinterpret followed by a subreg on big-endian targets. 17689 176902019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17691 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17692 17693 * config/aarch64/aarch64-sve.md 17694 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z 17695 alternatives in which one of the inputs is in the same register 17696 as the output. 17697 176982019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17699 17700 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext) 17701 (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives. 17702 177032019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17704 17705 * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate 17706 FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR. 17707 177082019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17709 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17710 17711 * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3) 17712 (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3) 17713 (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives. 17714 177152019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17716 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 17717 17718 * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3): 17719 Add an alternative that uses reversed shifts. 17720 177212019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 17722 17723 * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning 17724 struct. 17725 177262019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17727 17728 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add 17729 a commutativity marker. 17730 177312019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17732 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17733 17734 * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma) 17735 (aarch64_prepare_sve_cond_int_fma): Declare. 17736 * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift) 17737 (aarch64_prepare_sve_int_fma): New functions. 17738 (aarch64_prepare_sve_cond_int_fma): Likewise. 17739 * config/aarch64/aarch64-sve.md 17740 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker. 17741 (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2) 17742 (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4) 17743 (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2) 17744 (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns. 17745 (*madd<mode>): Rename to... 17746 (*fma<mode>4): ...this. 17747 (*msub<mode>): Rename to... 17748 (*fnma<mode>4): ...this. 17749 177502019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17751 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17752 17753 * config/aarch64/aarch64.c (aarch64_print_vector_float_operand): 17754 Print 2.0 naturally. 17755 (aarch64_sve_float_mul_immediate_p): Return true for 2.0. 17756 * config/aarch64/predicates.md 17757 (aarch64_sve_float_negated_arith_immediate): New predicate, 17758 renamed from aarch64_sve_float_arith_with_sub_immediate. 17759 (aarch64_sve_float_arith_with_sub_immediate): Test for both 17760 positive and negative constants. 17761 (aarch64_sve_float_arith_with_sub_operand): Redefine as a register 17762 or an aarch64_sve_float_arith_with_sub_immediate. 17763 * config/aarch64/constraints.md (vsN): Use 17764 aarch64_sve_float_negated_arith_immediate. 17765 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int 17766 iterator. 17767 (sve_pred_fp_rhs2_immediate): New int attribute. 17768 * config/aarch64/aarch64-sve.md 17769 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use 17770 sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand. 17771 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const) 17772 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const) 17773 (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const) 17774 (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns. 17775 177762019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17777 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17778 17779 * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2) 17780 (*aarch64_cond_abd<SVE_F:mode>_3) 17781 (*aarch64_cond_abd<SVE_F:mode>_any): New patterns. 17782 177832019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17784 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17785 17786 * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2) 17787 (*aarch64_cond_<su>abd<mode>_any): New patterns. 17788 177892019-08-15 Richard Sandiford <richard.sandiford@arm.com> 17790 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 17791 17792 * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions. 17793 * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts. 17794 * match.pd (UNCOND_BINARY, COND_BINARY): Likewise. 17795 * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New 17796 optabs. 17797 * optabs.h (create_convert_operand_from): Expand comment. 17798 * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts 17799 when mapping scalar rtxes to vector operands. 17800 * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift, 17801 ashiftrt and lshiftrt. 17802 (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them. 17803 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const) 17804 (*cond_<optab><mode>_any_const): New patterns. 17805 178062019-08-15 Martin Liska <mliska@suse.cz> 17807 17808 PR ipa/91438 17809 * cgraph.c (cgraph_node::remove): When setting 17810 n->origin = NULL for all nested functions, reset 17811 also next_nested. 17812 178132019-08-15 Martin Liska <mliska@suse.cz> 17814 17815 * cgraph.c (cgraph_node::verify_node): Verify origin, nested 17816 and next_nested. 17817 178182019-08-15 Martin Liska <mliska@suse.cz> 17819 17820 PR ipa/91404 17821 * passes.c (order): Remove. 17822 (uid_hash_t): Likewise). 17823 (remove_cgraph_node_from_order): Remove from set 17824 of pointers (cgraph_node *). 17825 (insert_cgraph_node_to_order): New. 17826 (duplicate_cgraph_node_to_order): New. 17827 (do_per_function_toporder): Register all 3 cgraph hooks. 17828 Skip removed_nodes now as we know about all of them. 17829 178302019-08-14 Uroš Bizjak <ubizjak@gmail.com> 17831 17832 * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero) 17833 <case E_V8QImode>: Use vector_set path for 17834 TARGET_MMX_WITH_SSE && TARGET_SSE4_1. 17835 (ix86_expand_vector_init_one_var) <case E_V8QImode>: 17836 Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1. 17837 178382019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de> 17839 17840 * builtins.c (expand_builtin_init_descriptor): Set memory alignment. 17841 178422019-08-14 Martin Sebor <msebor@redhat.com> 17843 17844 PR tree-optimization/91294 17845 * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of 17846 source length as exact. 17847 178482019-08-14 Christophe Lyon <christophe.lyon@linaro.org> 17849 17850 * doc/extend.texi: Add "noinit" attribute documentation. 17851 * doc/sourcebuild.texi: Add noinit effective target documentation. 17852 * varasm.c (default_section_type_flags): Add support for "noinit" 17853 section. 17854 (default_elf_select_section): Add support for "noinit" attribute. 17855 * config/msp430/msp430.c (msp430_attribute_table): Remove 17856 "noinit" entry. 17857 178582019-08-14 Richard Biener <rguenther@suse.de> 17859 Uroš Bizjak <ubizjak@gmail.com> 17860 17861 PR target/91154 17862 * config/i386/i386-features.h (scalar_chain::scalar_chain): Add 17863 mode arguments. 17864 (scalar_chain::smode): New member. 17865 (scalar_chain::vmode): Likewise. 17866 (dimode_scalar_chain): Rename to... 17867 (general_scalar_chain): ... this. 17868 (general_scalar_chain::general_scalar_chain): Take mode arguments. 17869 (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain 17870 base with TImode and V1TImode. 17871 * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust. 17872 (general_scalar_chain::vector_const_cost): Adjust for SImode 17873 chains. 17874 (general_scalar_chain::compute_convert_gain): Likewise. Add 17875 {S,U}{MIN,MAX} support. 17876 (general_scalar_chain::replace_with_subreg): Use vmode/smode. 17877 (general_scalar_chain::make_vector_copies): Likewise. Handle 17878 non-DImode chains appropriately. 17879 (general_scalar_chain::convert_reg): Likewise. 17880 (general_scalar_chain::convert_op): Likewise. 17881 (general_scalar_chain::convert_insn): Likewise. Add 17882 fatal_insn_not_found if the result is not recognized. 17883 (convertible_comparison_p): Pass in the scalar mode and use that. 17884 (general_scalar_to_vector_candidate_p): Likewise. Rename from 17885 dimode_scalar_to_vector_candidate_p. Add {S,U}{MIN,MAX} support. 17886 (scalar_to_vector_candidate_p): Remove by inlining into single 17887 caller. 17888 (general_remove_non_convertible_regs): Rename from 17889 dimode_remove_non_convertible_regs. 17890 (remove_non_convertible_regs): Remove by inlining into single caller. 17891 (convert_scalars_to_vector): Handle SImode and DImode chains 17892 in addition to TImode chains. 17893 * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander. 17894 (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split. 17895 (*<maxmin>di3_doubleword): Likewise. 17896 178972019-08-14 Richard Sandiford <richard.sandiford@arm.com> 17898 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17899 17900 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2) 17901 (*cond_bic<mode>_any): New patterns. 17902 179032019-08-14 Richard Sandiford <richard.sandiford@arm.com> 17904 17905 * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to 17906 take the equivalent mask, as well as a bit count. 17907 * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate) 17908 (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate) 17909 (aarch64_sve_pred_and_operand): New predicates. 17910 * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New 17911 code attribute. 17912 * config/aarch64/aarch64-sve.md 17913 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it. 17914 (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns. 17915 179162019-08-14 Richard Sandiford <richard.sandiford@arm.com> 17917 17918 * config/aarch64/aarch64-sve.md 17919 (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>) 17920 (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): 17921 New patterns. 17922 179232019-08-14 Richard Sandiford <richard.sandiford@arm.com> 17924 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17925 17926 * config/aarch64/aarch64-sve.md 17927 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern. 17928 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise. 17929 179302019-08-14 Richard Sandiford <richard.sandiford@arm.com> 17931 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17932 17933 * config/aarch64/aarch64-sve.md 17934 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern. 17935 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise. 17936 179372019-08-14 Richard Sandiford <richard.sandiford@arm.com> 17938 17939 * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator. 17940 * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>): 17941 New pattern. 17942 179432019-08-14 Richard Sandiford <richard.sandiford@arm.com> 17944 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17945 17946 * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern. 17947 179482019-08-14 Richard Sandiford <richard.sandiford@arm.com> 17949 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17950 17951 * config/aarch64/aarch64.c (aarch64_bit_representation): New function. 17952 (aarch64_print_vector_float_operand): Also handle 8-bit floats. 17953 (aarch64_print_operand): Add support for %I. 17954 (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors. 17955 Bitcast floating-point constants to the corresponding integer constant. 17956 (aarch64_float_const_representable_p): Handle vectors as well 17957 as scalars. 17958 (aarch64_expand_sve_vcond): Make sure that the operands are valid 17959 for the new vcond_mask_<mode><vpred> expander. 17960 * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also 17961 test aarch64_float_const_representable_p. 17962 (aarch64_sve_reg_or_dup_imm): New predicate. 17963 * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use 17964 gen_vcond_mask_<mode><vpred> instead of 17965 gen_aarch64_sve_dup<mode>_const. 17966 (vcond_mask_<mode><vpred>): Turn into a define_expand that 17967 accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero 17968 for operands 1 and 2 respectively. Force operand 2 into a 17969 register if operand 1 is a register. Fold old define_insn... 17970 (aarch64_sve_dup<mode>_const): ...and this define_insn... 17971 (*vcond_mask_<mode><vpred>): ...into this new pattern. Handle 17972 floating-point constants that can be moved as integers. Add 17973 alternatives for MOV /M and FMOV /M. 17974 (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>) 17975 (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands 17976 1 and 2 respectively. 17977 * config/aarch64/constraints.md (Ufc): Handle vectors as well 17978 as scalars. 17979 (vss): New constraint. 17980 179812019-08-14 Richard Sandiford <richard.sandiford@arm.com> 17982 17983 * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate) 17984 (aarch64_sve_float_maxmin_operand): New predicates. 17985 * config/aarch64/constraints.md (vsB): New constraint. 17986 (vsM): Fix typo. 17987 * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use 17988 aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and 17989 UNSPEC_COND_FMINNM. 17990 * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3): 17991 Use aarch64_sve_float_maxmin_operand for operand 2. 17992 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise. 17993 Add alternatives for the constant forms. 17994 179952019-08-14 Richard Sandiford <richard.sandiford@arm.com> 17996 17997 * config/aarch64/constraints.md (vsb): New constraint. 17998 (vsm): Generalize description. 17999 * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code 18000 iterator. 18001 (sve_imm_con): Handle smax, smin, umax and umin. 18002 (sve_imm_prefix): New code attribute. 18003 * config/aarch64/predicates.md (aarch64_sve_vsb_immediate) 18004 (aarch64_sve_vsb_operand): New predicates. 18005 (aarch64_sve_mul_immediate): Rename to... 18006 (aarch64_sve_vsm_immediate): ...this. 18007 (aarch64_sve_mul_operand): Rename to... 18008 (aarch64_sve_vsm_operand): ...this. 18009 * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to... 18010 (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this. 18011 (*mul<mode>3, *post_ra_mul<mode>3): Generalize to... 18012 (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3) 18013 (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and 18014 add movprfx support for the immediate alternatives. 18015 (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor 18016 of the above. 18017 (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate 18018 for operand 3. 18019 180202019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18021 18022 * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate. 18023 * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern. 18024 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise. 18025 180262019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18027 18028 * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz. 18029 (optab, sve_int_op): Handle them. 18030 * config/aarch64/aarch64-sve.md: Expand comment. 18031 180322019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18033 18034 * config/aarch64/predicates.md (const_1_to_3_operand): New predicate. 18035 * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw) 18036 (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns. 18037 180382019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18039 18040 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor) 18041 (aarch64_expand_sve_const_pred_trn): New functions. 18042 (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and 18043 use the above functions when the parameter is true. 18044 (aarch64_expand_sve_const_pred): Update call accordingly. 18045 * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>): 18046 Rename to... 18047 (@aarch64_sve_<perm_insn><mode>): ...this. 18048 180492019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18050 18051 * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p): 18052 Declare. 18053 * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p) 18054 (aarch64_sve_emit_int_cmp): New functions. 18055 (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp. 18056 (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete. 18057 (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp. 18058 * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete. 18059 (UNSPEC_PRED_Z): New unspec. 18060 (set_clobber_cc_nzc): Delete. 18061 * config/aarch64/aarch64-sve.md: Add a block comment about 18062 UNSPEC_PRED_Z. 18063 (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to... 18064 (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing 18065 the old pattern with that name. Use UNSPEC_PRED_Z instead of 18066 UNSPEC_MERGE_PTRUE. 18067 (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of 18068 UNSPEC_MERGE_PTRUE. Use aarch64_sve_same_pred_for_ptest_p to 18069 check for compatible predicates. 18070 (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise. 18071 (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead 18072 of UNSPEC_MERGE_PTRUE. Split into the new form of predicated 18073 comparisons above. 18074 180752019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18076 18077 * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec. 18078 * config/aarch64/aarch64-sve.md: Add a section describing it. 18079 (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>) 18080 (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2) 18081 (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3) 18082 (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart) 18083 (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3) 18084 (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3) 18085 (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>) 18086 (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>) 18087 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use 18088 UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE. 18089 * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor) 18090 (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise. 18091 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move) 18092 (aarch64_evpc_rev_local): Update accordingly. 18093 180942019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18095 18096 * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode 18097 iterators. 18098 (SVE_BHSI, SVE_SDI): Tweak comment. 18099 (SVE_HSDI): Likewise. Fix definition. 18100 (SVE_SDF): New mode iterator. 18101 (elem_bits): New mode attribute. 18102 (SVE_COND_FCVT): New int iterator. 18103 * config/aarch64/aarch64-sve.md 18104 (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2) 18105 (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2) 18106 (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into... 18107 (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>) 18108 (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): 18109 ...these new patterns. 18110 (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2) 18111 (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2) 18112 (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2): 18113 Merge into... 18114 (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>) 18115 (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): 18116 ...these new patterns. 18117 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly. 18118 (*trunc<Vwide><SVE_SDF:mode>2): Replace with... 18119 (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): 18120 ...this new pattern. 18121 (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with... 18122 (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): 18123 ...this new pattern. 18124 (vec_unpacks_<perm_hilo>_<mode>): Update accordingly. 18125 181262019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18127 18128 * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete. 18129 * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS) 18130 (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New 18131 unspecs. 18132 (optab, su): Handle them. 18133 (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators. 18134 * config/aarch64/aarch64-sve.md 18135 (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with... 18136 (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this. 18137 (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with... 18138 (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this. 18139 (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with... 18140 (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this. 18141 (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with... 18142 (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this. 18143 (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of 18144 FIXUORS. 18145 (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with... 18146 (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this. 18147 (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with... 18148 (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this. 18149 (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with... 18150 (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this. 18151 (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with... 18152 (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this. 18153 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness 18154 operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2. 18155 (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2) 18156 (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead 18157 of UNSPEC_FLOAT_CONVERT. 18158 (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to 18159 aarch64_sve_extend<mode><Vwide>2. 18160 181612019-08-14 Richard Biener <rguenther@suse.de> 18162 18163 PR target/91154 18164 * config/i386/i386-features.c 18165 (dimode_scalar_chain::compute_convert_gain): Compute and dump 18166 individual instruction gain. Fix reg-reg copy GRP cost. Use 18167 ix86_cost->sse_op for vector instruction costs. 18168 181692019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18170 18171 * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec. 18172 (cmp_op): Handle it. 18173 (SVE_COND_FP_CMP): Rename to... 18174 (SVE_COND_FP_CMP_I0): ...this. 18175 (SVE_FP_CMP): Remove. 18176 * config/aarch64/aarch64-sve.md 18177 (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with... 18178 (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern, 18179 using unspecs to represent the comparison. 18180 (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO. 18181 (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update 18182 accordingly. 18183 * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete. 18184 (aarch64_unspec_cond_code): Move after integer code. Handle 18185 UNORDERED. 18186 (aarch64_emit_sve_predicated_cond): Replace with... 18187 (aarch64_emit_sve_fp_cond): ...this new function. 18188 (aarch64_emit_sve_or_conds): Replace with... 18189 (aarch64_emit_sve_or_fp_conds): ...this new function. 18190 (aarch64_emit_sve_inverted_cond): Replace with... 18191 (aarch64_emit_sve_invert_fp_cond): ...this new function. 18192 (aarch64_expand_sve_vec_cmp_float): Update accordingly. 18193 181942019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18195 18196 * config/aarch64/iterators.md (SVE_HSD): New mode iterator. 18197 (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF. 18198 * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use 18199 SVE_HSD instead of SVE_SD. 18200 182012019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18202 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 18203 18204 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int 18205 iterator. 18206 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int 18207 attributes. 18208 * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3) 18209 (mul<SVE_F:mode>3, div<SVE_F:mode>3) 18210 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into... 18211 (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander. 18212 (*div<SVE_F:mode>3): Generalize to... 18213 (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this. 18214 182152019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18216 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 18217 18218 * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New 18219 constants. 18220 * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New 18221 predicate. 18222 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p): 18223 Declare. 18224 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New 18225 function. 18226 * config/aarch64/aarch64-sve.md: Add a block comment about the 18227 handling of predicated FP operations. 18228 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3) 18229 (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3) 18230 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3) 18231 (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3) 18232 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP 18233 operand. 18234 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>) 18235 (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP 18236 operand. 18237 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2) 18238 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2) 18239 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3) 18240 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any) 18241 (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3) 18242 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3) 18243 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4) 18244 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2) 18245 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4) 18246 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the 18247 strictness operands. Use aarch64_sve_pred_dominates_p to check 18248 whether the predicate on the conditional operation is suitable 18249 for merging. Split patterns into the canonical equal-predicate form. 18250 (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise. 18251 Restrict the unpredicated alternatives to SVE_RELAXED_GP. 18252 182532019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18254 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 18255 18256 * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3) 18257 (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3) 18258 (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of 18259 rtx codes. 18260 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3) 18261 (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_* 18262 unspecs. 18263 182642019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18265 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 18266 18267 * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to... 18268 (*bic<SVE_I:mode>3): ...this. Match the form that an SVE inverse 18269 actually has, rather than relying on REG_EQUAL notes. 18270 Make the insn operand order match the SVE operand order. 18271 (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match 18272 the SVE operand order. 18273 182742019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18275 18276 * config/aarch64/aarch64.c (aarch64_target_reg): New function. 18277 (aarch64_emit_set_immediate): Likewise. 18278 (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it. 18279 (aarch64_pfalse_reg): Likewise. 18280 (aarch64_convert_sve_data_to_pred): New function. 18281 (aarch64_sve_move_pred_via_while): Take an optional target register 18282 and the required register mode. 18283 (aarch64_expand_sve_const_pred_1): New function. 18284 (aarch64_expand_sve_const_pred): Likewise. 18285 (aarch64_expand_mov_immediate): Build an all-true predicate 18286 if the significant bits of the immediate are all true. Use 18287 aarch64_expand_sve_const_pred for all compile-time predicate constants. 18288 (aarch64_mov_operand_p): Force predicate constants to be VNx16BI 18289 before register allocation. 18290 * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use 18291 a VNx16BI PTRUE when splitting the memory alternative. 18292 (vec_duplicate<mode>): Update accordingly. 18293 (*pred_cmp<cmp_op><mode>): Rename to... 18294 (@aarch64_pred_cmp<cmp_op><mode>): ...this. 18295 182962019-08-14 Richard Sandiford <richard.sandiford@arm.com> 18297 18298 * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare. 18299 * config/aarch64/aarch64.c (aarch64_ptrue_all): New function. 18300 * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete. 18301 (UNSPEC_PTEST): New unspec. 18302 (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants. 18303 * config/aarch64/iterators.md (data_bytes): New mode attribute. 18304 * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate. 18305 * config/aarch64/aarch64-sve.md: Add a new section describing the 18306 handling of UNSPEC_PTEST. 18307 (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to... 18308 (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this. 18309 (ptest_ptrue<mode>): Replace with... 18310 (aarch64_ptest<mode>): ...this new pattern. 18311 (cbranch<mode>4): Update after above changes. 18312 (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of 18313 UNSPEC_PTEST_PTRUE. 18314 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise. 18315 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise. 18316 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise. 18317 183182019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com> 18319 18320 PR lto/91287 18321 * builtins.c (builtin_with_linkage_p): New function. 18322 * builtins.h (builtin_with_linkage_p): New function. 18323 * symtab.c (write_symbol): Remove redundant assert. 18324 * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p): 18325 Remove FIXME and use builtin_with_linkage_p. 18326 183272019-08-13 Richard Sandiford <richard.sandiford@arm.com> 18328 18329 PR middle-end/91421 18330 * tree-core.h (function_decl::function_code): Change type to 18331 unsigned int. 18332 * tree.h (DECL_FUNCTION_CODE): Rename old definition to... 18333 (DECL_UNCHECKED_FUNCTION_CODE): ...this. 18334 (DECL_BUILT_IN_CLASS): Make an rvalue macro only. 18335 (DECL_FUNCTION_CODE): New function. Assert that the built-in class 18336 is BUILT_IN_NORMAL. 18337 (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions. 18338 (set_decl_built_in_function, copy_decl_built_in_function): Likewise. 18339 (fndecl_built_in_p): Change the type of the "name" argument to 18340 unsigned int. 18341 * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use 18342 after check for DECL_BUILT_IN_CLASS. 18343 * cgraphclones.c (build_function_decl_skip_args): Use 18344 set_decl_built_in_function. 18345 * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise. 18346 * ipa-split.c (split_function): Likewise. 18347 * langhooks.c (add_builtin_function_common): Likewise. 18348 * omp-simd-clone.c (simd_clone_create): Likewise. 18349 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise. 18350 * config/darwin.c (darwin_init_cfstring_builtins): Likewise. 18351 (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of 18352 DECL_FUNCTION_CODE. 18353 * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE 18354 instead of DECL_FUNCTION_CODE. 18355 * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE 18356 instead of DECL_FUNCTION_CODE. 18357 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise. 18358 * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when 18359 printing DECL_BUILT_IN_MD. Handle DECL_BUILT_IN_FRONTEND. 18360 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin) 18361 (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use 18362 DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE. 18363 * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise. 18364 * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin): 18365 (alpha_gimple_fold_builtin): Likewise. 18366 * config/arc/arc.c (arc_expand_builtin): Likewise. 18367 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise. 18368 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise. 18369 * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise. 18370 * config/bfin/bfin.c (bfin_expand_builtin): Likewise. 18371 * config/c6x/c6x.c (c6x_expand_builtin): Likewise. 18372 * config/frv/frv.c (frv_expand_builtin): Likewise. 18373 * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise. 18374 (gcn_expand_builtin): Likewise. 18375 * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise. 18376 (fold_builtin_cpu): Likewise. 18377 * config/i386/i386-expand.c (ix86_expand_builtin): Likewise. 18378 * config/i386/i386.c (ix86_fold_builtin): Likewise. 18379 (ix86_gimple_fold_builtin): Likewise. 18380 * config/ia64/ia64.c (ia64_fold_builtin): Likewise. 18381 (ia64_expand_builtin): Likewise. 18382 * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise. 18383 * config/mips/mips.c (mips_expand_builtin): Likewise. 18384 * config/msp430/msp430.c (msp430_expand_builtin): Likewise. 18385 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise. 18386 * config/nios2/nios2.c (nios2_expand_builtin): Likewise. 18387 * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise. 18388 * config/pa/pa.c (pa_expand_builtin): Likewise. 18389 * config/pru/pru.c (pru_expand_builtin): Likewise. 18390 * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise. 18391 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 18392 Likewise. 18393 * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise. 18394 (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise. 18395 (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise. 18396 * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function) 18397 (rs6000_builtin_reciprocal): Likewise. 18398 * config/rx/rx.c (rx_expand_builtin): Likewise. 18399 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise. 18400 * config/s390/s390.c (s390_expand_builtin): Likewise. 18401 * config/sh/sh.c (sh_expand_builtin): Likewise. 18402 * config/sparc/sparc.c (sparc_expand_builtin): Likewise. 18403 (sparc_fold_builtin): Likewise. 18404 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise. 18405 * config/spu/spu.c (spu_expand_builtin): Likewise. 18406 * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise. 18407 * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise. 18408 * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise. 18409 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise. 18410 (xtensa_expand_builtin): Likewise. 18411 184122019-08-13 Richard Sandiford <richard.sandiford@arm.com> 18413 18414 PR middle-end/91421 18415 * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS 18416 before the DECL_FUNCTION_CODE. 18417 * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p 18418 to check for a BUILT_IN_ALLOCA call. 18419 * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for 18420 BUILT_IN_UNREACHABLE. Don't check for a FUNCTION_TYPE. 18421 * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise. 18422 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. 18423 * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically 18424 for BUILT_IN_NORMAL functions. 18425 * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to 18426 test for BUILT_IN_TM_ABORT. 18427 * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p 18428 to check for a BUILT_IN_STACK_RESTORE call. 18429 (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL. 18430 * tree-ssa-threadedge.c 18431 (record_temporary_equivalences_from_stmts_at_dest): Check for a 18432 BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE. 18433 * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive 18434 test for a BUILT_IN_NORMAL call instead of a negative test for 18435 an internal function call. 18436 184372019-08-13 Richard Sandiford <richard.sandiford@arm.com> 18438 18439 * tree.h (build_vector_a_then_b): Declare. 18440 * tree.c (build_vector_a_then_b): New function. 18441 * fold-const-call.c (fold_while_ult): Likewise. 18442 (fold_const_call): Use it to handle IFN_WHILE_ULT. 18443 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro. 18444 (aarch64_svpattern): New enum. 18445 * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass 18446 constants through aarch64_expand_mov_immediate. 18447 (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather 18448 than general_operand as the predicate for operand 1. 18449 (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker. 18450 * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New 18451 insn_type. 18452 (simd_immediate_info::simd_immediate_info): New overload that 18453 takes a scalar_int_mode and an svpattern. 18454 (simd_immediate_info::u): Add a "pattern" field. 18455 (svpattern_token): New function. 18456 (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size) 18457 (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl) 18458 (aarch64_sve_move_pred_via_while): New functions. 18459 (aarch64_expand_mov_immediate): Try using 18460 aarch64_sve_move_pred_via_while for predicates that contain N ones 18461 followed by M zeros but that do not correspond to a VLnnn pattern. 18462 (aarch64_sve_pred_valid_immediate): New function. 18463 (aarch64_simd_valid_immediate): Use it instead of dealing directly 18464 with PTRUE and PFALSE. 18465 (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info 18466 forms. 18467 184682019-08-13 Iain Sandoe <iain@sandoe.co.uk> 18469 18470 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub 18471 flag. 18472 (darwin_override_options): Likewise. 18473 * config/darwin.h: Likewise. 18474 * config/darwin.opt: Likewise. 18475 * config/i386/i386.c (output_pic_addr_const): Likewise. 18476 * config/rs6000/darwin.h: Likewise. 18477 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise. 18478 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ... 18479 ... this TARGET_MACHO_SYMBOL_STUBS. 18480 (FUNCTION_PROFILER):Likewise. 18481 * config/i386/i386.h: Likewise. 18482 184832019-08-13 Uroš Bizjak <ubizjak@gmail.com> 18484 18485 * config/i386/i386-expand.c (ix86_expand_vector_extract) 18486 <case E_V2SImode>: Use vec_extr path for 18487 TARGET_MMX_WITH_SSE && TARGET_SSE4_1. 18488 <case E_V8QImode>: Ditto. 18489 * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw. 18490 Use SWI48 mode iterator. Use %k to output operand 0. 18491 (*mmx_pextrw): New insn pattern. 18492 (*mmx_pextrb): Ditto. 18493 (*mmx_pextrb_zext): Ditto. 18494 184952019-08-13 Jonathan Wakely <jwakely@redhat.com> 18496 18497 * target.def (libc_has_function, libc_has_fast_function): Improve 18498 documentation strings. 18499 * doc/tm.texi: Regenerate. 18500 185012019-08-13 Caroline Tice <cmtice@google.com> 18502 18503 PR other/91396 18504 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the 18505 vtv_end.o or vtv_end_preinit.o files if !static. 18506 185072019-08-13 Olivier Hainque <hainque@adacore.com> 18508 18509 * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot. 18510 185112019-08-13 Olivier Hainque <hainque@adacore.com> 18512 18513 * rtlanal.c (tablejump_casesi_pattern): New function, to 18514 determine if a tablejump insn is a casesi dispatcher. Extracted 18515 from patch_jump_insn. 18516 * rtl.h (tablejump_casesi_pattern): Declare. 18517 * cfgrtl.c (patch_jump_insn): Use it. 18518 * dwarf2cfi.c (create_trace_edges): Use it. 18519 185202019-08-13 Wilco Dijkstra <wdijkstr@arm.com> 18521 18522 PR target/81800 18523 * config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF 18524 operand is larger than a long int. 18525 185262019-08-13 Richard Sandiford <richard.sandiford@arm.com> 18527 18528 * machmode.h (opt_mode::else_mode): New function. 18529 (opt_mode::else_blk): Use it. 18530 * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare. 18531 (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise. 18532 (aarch64_gen_stepped_int_parallel): Likewise. 18533 (aarch64_stepped_int_parallel_p): Likewise. 18534 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate 18535 argument. 18536 * config/aarch64/aarch64.c 18537 (aarch64_expand_sve_widened_duplicate): Delete. 18538 (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions. 18539 (aarch64_expand_sve_const_vector): Rewrite to handle more cases. 18540 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate 18541 argument. Use early returns in the !CONST_INT_P handling. 18542 Pass all SVE data vectors to aarch64_expand_sve_const_vector rather 18543 than handling some inline. 18544 (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out 18545 from... 18546 (aarch64_simd_container_mode): ...here. 18547 (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p) 18548 (aarch64_sve_ld1rq_operand_p): New functions. 18549 * config/aarch64/predicates.md (descending_int_parallel) 18550 (aarch64_sve_ld1rq_operand): New predicates. 18551 * config/aarch64/constraints.md (UtQ): New constraint. 18552 * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec. 18553 * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the 18554 gen_vec_duplicate from call to aarch64_expand_mov_immediate. 18555 (@aarch64_sve_reinterpret<mode>): New expander. 18556 (*aarch64_sve_reinterpret<mode>): New pattern. 18557 (@aarch64_vec_duplicate_vq<mode>_le): New pattern. 18558 (@aarch64_vec_duplicate_vq<mode>_be): Likewise. 18559 (*sve_ld1rq<Vesize>): Replace with... 18560 (@aarch64_sve_ld1rq<mode>): ...this new pattern. 18561 185622019-08-13 Wilco Dijkstra <wdijkstr@arm.com> 18563 18564 * config/aarch64/aarch64.c (generic_tunings): Set function alignment to 18565 16:12. 18566 185672019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> 18568 18569 * config/msp430/driver-msp430.c (msp430_set_driver_var): New. 18570 * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New. 18571 (msp430_check_path_for_devices): New. 18572 (parse_devices_csv_1): New. 18573 (parse_devices_csv): New. 18574 (msp430_extract_mcu_data): Try to find devices.csv and search for the 18575 MCU data in devices.csv before using the hard-coded data. 18576 Warn if devices.csv isn't found and the MCU wasn't found in the 18577 hard-coded data either. 18578 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call 18579 msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc. 18580 Search for devices.csv on -I and -L paths. 18581 (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and 18582 msp430_set_driver_var. 18583 * config/msp430/msp430.opt: Add -mwarn-devices-csv and 18584 -mdevices-csv-loc=. 18585 * doc/invoke.texi (-mmcu): Document that -I and -L paths are 18586 searched for devices.csv. 18587 (mwarn-devices-csv): Document option. 18588 185892019-08-13 Richard Sandiford <richard.sandiford@arm.com> 18590 18591 * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete. 18592 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>): 18593 Use a single Dn alternative instead of separate Dz and Dm 18594 alternatives. Use aarch64_output_sve_move_immediate. 18595 * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New 18596 function. 18597 (aarch64_simd_valid_immediate): Fill in the simd_immediate_info 18598 for predicates too. 18599 (aarch64_output_sve_mov_immediate): Handle predicate modes. 18600 (aarch64_output_ptrue): Delete. 18601 186022019-08-13 Richard Sandiford <richard.sandiford@arm.com> 18603 18604 * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add 18605 INDEX. 18606 (simd_immediate_info::value, simd_immediate_info::step) 18607 (simd_immediate_info::modifier, simd_immediate_info::shift): Replace 18608 with... 18609 (simd_immediate_info::u): ...this new union. 18610 (simd_immediate_info::simd_immediate_info): Update accordingly. 18611 (aarch64_output_simd_mov_immediate): Likewise. 18612 (aarch64_output_sve_mov_immediate): Likewise. 18613 186142019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> 18615 18616 * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and 18617 extra_gcc_objs. 18618 * config/msp430/driver-msp430.c: Remove msp430_mcu_data. 18619 (msp430_select_cpu): New spec function. 18620 (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract 18621 MCU data. 18622 * config/msp430/msp430-devices.c: New file. 18623 * config/msp430/msp430-devices.h: New file. 18624 * config/msp430/msp430.c: Remove msp430_mcu_data. 18625 (msp430_option_override): Use msp430_extract_mcu_data to extract 18626 MCU data. 18627 (msp430_use_f5_series_hwmult): Likewise. 18628 (use_32bit_hwmult): Likewise. 18629 (msp430_no_hwmult): Likewise. 18630 * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the 18631 assembler. 18632 (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without 18633 and -mcpu option. 18634 (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu. 18635 * config/msp430/t-msp430: Add rule to build msp430-devices.o. 18636 Remove hard-coded MCU multilib data. 18637 186382019-08-13 Richard Sandiford <richard.sandiford@arm.com> 18639 18640 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch 18641 based on the mode instead of testing properties of it. 18642 186432019-08-13 Richard Sandiford <richard.sandiford@arm.com> 18644 18645 * doc/md.texi: Document the x and y constraints for AArch64. 18646 * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro. 18647 (FP_LO8_REGS): New reg_class. 18648 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS. 18649 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs) 18650 (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS. 18651 * config/aarch64/predicates.md (aarch64_simd_register): Use 18652 FP_REGNUM_P instead of checking the classes manually. 18653 * config/aarch64/constraints.md (y): New constraint. 18654 186552019-08-13 Richard Sandiford <richard.sandiford@arm.com> 18656 18657 * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix. 18658 (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*. 18659 * config/aarch64/aarch64-simd.md 18660 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to.. 18661 (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo 18662 from the asm template. 18663 * config/aarch64/aarch64-sve.md 18664 (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to.. 18665 (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo 18666 from the asm template. 18667 (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to.. 18668 (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo 18669 from the asm template. 18670 * config/aarch64/aarch64-simd-builtins.def: Update comment. 18671 186722019-08-13 Martin Liska <mliska@suse.cz> 18673 18674 * value-prof.c (gimple_ic_transform): Add new line. 18675 Print details with MSG_NOTE. 18676 186772019-08-13 Martin Liska <mliska@suse.cz> 18678 18679 * doc/invoke.texi: Document automatic detection of jobserver. 18680 * lto-wrapper.c (run_gcc): Detect jobserver always. 18681 186822019-08-13 Uroš Bizjak <ubizjak@gmail.com> 18683 18684 * config/i386/i386-expand.c (ix86_expand_vector_set) 18685 <case E_V2SImode>: Use vec_merge path for 18686 TARGET_MMX_WITH_SSE && TARGET_SSE4_1. 18687 <case E_V8QImode>: Ditto. 18688 * config/i386/mmx.md (*mmx_pinsrd): New insn pattern. 18689 (*mmx_pinsrb): Ditto. 18690 186912019-08-12 Jakub Jelinek <jakub@redhat.com> 18692 18693 PR target/83250 18694 PR target/91340 18695 * config/i386/avxintrin.h (_mm256_zextpd128_pd256, 18696 _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics. 18697 * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512, 18698 _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512, 18699 _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise. 18700 187012019-08-12 Richard Biener <rguenther@suse.de> 18702 18703 PR lto/91375 18704 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on 18705 flag_devirtualize. 18706 187072019-08-12 Richard Biener <rguenther@suse.de> 18708 18709 PR driver/91130 18710 * lto-wrapper.c (get_options_from_collect_gcc_options): Remove 18711 lang_mask option, always use CL_DRIVER. 18712 (get_options_from_collect_gcc_options): Adjust. 18713 (find_and_merge_options): Likewise. 18714 (run_gcc): Likewise. 18715 187162019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 18717 18718 * ipa-predicate.c (add_condition): Restore inverted test. 18719 187202019-08-10 Jakub Jelinek <jakub@redhat.com> 18721 18722 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE. 18723 (enum omp_clause_device_type_kind): New enum. 18724 (struct tree_omp_clause): Add subcode.device_type_kind. 18725 * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define. 18726 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries 18727 for device_type clause. 18728 (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE. 18729 * tree-pretty-print.c (dump_omp_clause): Likewise. 18730 18731 PR target/91408 18732 * config/i386/mmx.md (usadv8qi): Use register_operand instead of 18733 vector_operand. 18734 187352019-08-09 Vladimir Makarov <vmakarov@redhat.com> 18736 18737 * reload1.c (finish_spills): Do not check ira_conflicts_p when 18738 handling spilled pseudos. 18739 187402019-08-09 Richard Earnshaw <rearnsha@arm.com> 18741 18742 PR target/91386 18743 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx 18744 to preserve the contents of the original insns. 18745 187462019-08-09 Richard Earnshaw <rearnsha@arm.com> 18747 18748 * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants. 18749 (addsi3_compare_op2): Likewise. 18750 187512019-08-09 Martin Liska <mliska@suse.cz> 18752 18753 * alias.c (alias_ptr_types_compatible_p): Strengten 18754 type comparison in LTO mode. 18755 187562019-08-09 Richard Sandiford <richard.sandiford@arm.com> 18757 18758 PR middle-end/90313 18759 * tree-tailcall.c (find_tail_calls): Reject calls that might 18760 read from an escaped RESULT_DECL. 18761 187622019-08-09 Martin Liska <mliska@suse.cz> 18763 18764 * doc/invoke.texi: Document the option value. 18765 * lto-wrapper.c (run_gcc): Set auto_parallel 18766 only with -flto=auto. 18767 187682019-08-09 Martin Liska <mliska@suse.cz> 18769 18770 * opts.c (common_handle_option): Error for an invalid argument 18771 to -flto=. 18772 187732019-08-09 Martin Liska <mliska@suse.cz> 18774 18775 * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and 18776 use dump_printf to report optimization. 18777 (sem_variable::merge): Likwise. 18778 (sem_item_optimizer::merge_classes): Use dump_printf to report 18779 ICF hits. 18780 187812019-08-09 Martin Liska <mliska@suse.cz> 18782 18783 * value-prof.c (gimple_divmod_fixed_value_transform): 18784 Use dump_printf_loc. 18785 (gimple_mod_pow2_value_transform): Likewise. 18786 (gimple_mod_subtract_transform): Likewise. 18787 (init_node_map): Likewise. 18788 (gimple_ic_transform): Likewise. 18789 (gimple_stringops_transform): Likewise. 18790 187912019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com> 18792 18793 * doc/extend.texi: Add const qualifier to ld intrinsics. 18794 187952019-08-08 Segher Boessenkool <segher@kernel.crashing.org> 18796 18797 * config/rs6000/dfp.md (D64_D128): Rename to ... 18798 (DDTD): ... this, throughout. 18799 (dfp_suffix): Rename to ... 18800 (q): ... this, throughout. 18801 188022019-08-08 Segher Boessenkool <segher@kernel.crashing.org> 18803 18804 * config/rs6000/dfp.md (D64_D128): Move earlier in the file. 18805 (dfp_suffix): Ditto. 18806 (adddd3, addtd3): Merge to ... 18807 (add<mode>3 for D64_D128): ... this. 18808 (subdd3, subtd3): Merge to ... 18809 (sub<mode>3 for D64_D128): ... this. 18810 (muldd3, multd3): Merge to ... 18811 (mul<mode>3 for D64_D128): ... this. 18812 (divdd3, divtd3): Merge to ... 18813 (div<mode>3 for D64_D128): ... this. 18814 (*cmpdd_internal1, *cmptd_internal1): Merge to ... 18815 (*cmp<mode>_internal1 for D64_D128): ... this. 18816 (ftruncdd2, ftrunctd2): Merge to ... 18817 (ftrunc<mode>2 for D64_D128): ... this. 18818 (fixdddi2, fixtddi2): Merge to ... 18819 (fix<mode>di2 for D64_D128): ... this. 18820 188212019-08-08 Jim Wilson <jimw@sifive.com> 18822 18823 PR target/91229 18824 * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg 18825 ignore_zero_width_bit_field_p. Skip zero size bitfields when true. 18826 Pass into recursive call. 18827 (riscv_flatten_aggregate_argument): New arg. Pass to 18828 riscv_flatten_aggregate_field. 18829 (riscv_pass_aggregate_in_fpr_pair_p): New local warned. Call 18830 riscv_flatten_aggregate_argument twice, with false and true as last 18831 arg. Process result twice. Compare results and warn if different. 18832 (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise. 18833 188342019-08-08 Martin Liska <mliska@suse.cz> 18835 18836 PR bootstrap/91352 18837 * gcc.c (driver::detect_jobserver): Use is_valid_fd. 18838 * lto-wrapper.c (jobserver_active_p): Likewise. 18839 188402019-08-08 Martin Liska <mliska@suse.cz> 18841 18842 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop 18843 IS_OPERATOR_NEW and IS_OPERATOR_DELETE. 18844 (create_version_clone_with_body): Likewise. 18845 188462019-08-08 Jakub Jelinek <jakub@redhat.com> 18847 18848 * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT 18849 for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE. 18850 (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just 18851 GOVD_EXPLICIT flags. 18852 (gimplify_omp_workshare): For OMP_TARGET_DATA move all 18853 OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain. 18854 * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_* 18855 call install_var_field with mask 11 instead of 3. 18856 (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass 18857 (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var. 18858 188592019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18860 18861 * config/aarch64/constraints.md (Z): Handle floating-point zeros too. 18862 * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise. 18863 188642019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18865 18866 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add 18867 MOVPRFX alternatives. Make the GPR alternatives more expensive 18868 than the FPR ones. 18869 188702019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18871 18872 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): 18873 Disparage the GPR alternative relative to the FPR one. 18874 Fix handling of 8-bit and 16-bit FPR values. 18875 188762019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18877 18878 * config/aarch64/iterators.md (BITWISEV): Delete. 18879 (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators. 18880 (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV, 18881 UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV, 18882 UNSPEC_FMINNMV, UNSPEC_FMINV. 18883 (bit_reduc_op): Delete. 18884 (sve_int_op): New int attribute. 18885 (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV, 18886 UNSPEC_FMINNMV, UNSPEC_FMINV. 18887 * config/aarch64/aarch64-sve.md 18888 (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>) 18889 (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>) 18890 (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>) 18891 (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into... 18892 (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>) 18893 (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these 18894 new patterns. 18895 (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>) 18896 (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>) 18897 (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into... 18898 (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>) 18899 (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these 18900 new patterns. 18901 189022019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18903 18904 * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4) 18905 (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4) 18906 (fms<mode>4, *fms<mode>4): Replace with... 18907 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4) 18908 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns. 18909 Use unspecs instead of rtx codes. 18910 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4) 18911 (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY. 18912 189132019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18914 18915 * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New 18916 int iterator. 18917 (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM. 18918 * config/aarch64/aarch64-sve.md 18919 (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to... 18920 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and 18921 use a single unspec for the rhs. 18922 (*<su><maxmin><mode>3): Delete. 18923 (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs. 18924 189252019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18926 18927 * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG) 18928 (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM) 18929 (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX) 18930 (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs. 18931 (optab, sve_fp_op): Handle them. 18932 (SVE_FP_UNARY): Delete. 18933 (optab): Remove sqrt entry. 18934 (sve_fp_op): Remove neg, abs and sqrt entries. 18935 (SVE_COND_FP_UNARY): New int iterator. 18936 * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2) 18937 (*<frint_pattern><mode>2): Delete. 18938 (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with... 18939 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this. 18940 (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with... 18941 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this. 18942 189432019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18944 18945 * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete. 18946 189472019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18948 18949 * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to... 18950 (UNSPEC_COND_FADD): ...this. 18951 (UNSPEC_COND_SUB): Rename to... 18952 (UNSPEC_COND_FSUB): ...this. 18953 (UNSPEC_COND_MUL): Rename to... 18954 (UNSPEC_COND_FMUL): ...this. 18955 (UNSPEC_COND_DIV): Rename to... 18956 (UNSPEC_COND_FDIV): ...this. 18957 (UNSPEC_COND_MAX): Rename to... 18958 (UNSPEC_COND_FMAXNM): ...this. 18959 (UNSPEC_COND_MIN): Rename to... 18960 (UNSPEC_COND_FMINNM): ...this. 18961 (UNSPEC_COND_LT): Rename to... 18962 (UNSPEC_COND_FCMLT): ...this. 18963 (UNSPEC_COND_LE): Rename to... 18964 (UNSPEC_COND_FCMLE): ...this. 18965 (UNSPEC_COND_EQ): Rename to... 18966 (UNSPEC_COND_FCMEQ): ...this. 18967 (UNSPEC_COND_NE): Rename to... 18968 (UNSPEC_COND_FCMNE): ...this. 18969 (UNSPEC_COND_GE): Rename to... 18970 (UNSPEC_COND_FCMGE): ...this. 18971 (UNSPEC_COND_GT): Rename to... 18972 (UNSPEC_COND_FCMGT): ...this. 18973 (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op) 18974 (sve_fp_op_rev): Update accordingly. 18975 * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise. 18976 189772019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18978 18979 * config/aarch64/aarch64-sve.md: Reorganize contents and add 18980 banner comments. 18981 * config/aarch64/check-sve-md.awk: New file. 18982 * config/aarch64/t-aarch64 (s-check-sve-md): New rule. 18983 (insn-conditions.md): Depend on it. 18984 189852019-08-07 Uroš Bizjak <ubizjak@gmail.com> 18986 18987 PR target/91385 18988 * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern. 18989 (*negsi2_cmpz_zext): Ditto. 18990 189912019-08-07 Richard Sandiford <richard.sandiford@arm.com> 18992 18993 * config/aarch64/iterators.md (commutative): Remove. 18994 189952019-08-07 Richard Earnshaw <rearnsha@arm.com> 18996 18997 PR driver/91130 18998 * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when 18999 processing COLLECT_GCC_OPTIONS. 19000 (run_gcc): Likewise. 19001 190022019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de> 19003 19004 PR tree-optimization/91109 19005 * lra-remat.c (update_scratch_ops): Remove assignment of the 19006 hard register. 19007 190082019-08-07 Richard Sandiford <richard.sandiford@arm.com> 19009 19010 * data-streamer.h (streamer_write_poly_uint64): Declare. 19011 (streamer_read_poly_uint64): Likewise. 19012 * data-streamer-in.c (streamer_read_poly_uint64): New function. 19013 * data-streamer-out.c (streamer_write_poly_uint64): Likewise. 19014 * ipa-predicate.h (condition::size): Turn into a poly_int64. 19015 (add_condition): Take a poly_int64 size. 19016 * ipa-predicate.c (add_condition): Likewise. 19017 * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer. 19018 * ipa-prop.c (ipa_load_from_parm_agg): Likewise. 19019 (ipcp_modif_dom_walker::before_dom_children): Update accordingly. 19020 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle 19021 condition::size as a poly_int64. 19022 (unmodified_parm_1): Take a poly_int64 size pointer. 19023 (unmodified_parm): Likewise. 19024 (unmodified_parm_or_parm_agg_item): Likewise. 19025 (set_cond_stmt_execution_predicate): Update accordingly. 19026 (set_switch_stmt_execution_predicate): Likewise. 19027 (will_be_nonconstant_expr_predicate): Likewise. 19028 (will_be_nonconstant_predicate): Likewise. 19029 (inline_read_section): Stream condition::size as a poly_int. 19030 (ipa_fn_summary_write): Likewise. 19031 190322019-08-07 Martin Liska <mliska@suse.cz> 19033 19034 * fold-const.c (twoval_comparison_p): Replace int 19035 with bool as a return type. 19036 (simple_operand_p): Likewise. 19037 (operand_equal_p): Replace int with bool as a return type. 19038 * fold-const.h (operand_equal_p): Likewise. 19039 190402019-08-07 Jakub Jelinek <jakub@redhat.com> 19041 19042 * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR 19043 OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause. 19044 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries 19045 for OMP_CLAUSE_USE_DEVICE_ADDR clause. 19046 (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR. 19047 * tree-pretty-print.c (dump_omp_clause): Likewise. 19048 * tree-nested.c (convert_nonlocal_omp_clauses, 19049 convert_local_omp_clauses): Likewise. 19050 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): 19051 Likewise. 19052 * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise. 19053 Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR 19054 clause with array or reference to array types, no matter what type 19055 except for reference it has. 19056 190572019-08-07 Kewen Lin <linkw@gcc.gnu.org> 19058 19059 * config/rs6000/vector.md (vrotr<mode>3): New define_expand. 19060 190612019-08-07 Kito Cheng <kito.cheng@sifive.com> 19062 19063 * config/riscv/multilib-generator: (canonical_order): Add 'g'. 19064 (arch_canonicalize): Support rv32g and rv64g and fix error 19065 handling. 19066 190672019-08-06 Martin Liska <mliska@suse.cz> 19068 19069 * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P 19070 and DECL_IS_OPERATOR_DELETE_P. 19071 190722019-08-06 Jakub Jelinek <jakub@redhat.com> 19073 19074 * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ... 19075 (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment. 19076 * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable 19077 new vars into GOVD_PRIVATE rather than GOVD_LOCAL. 19078 (gimplify_omp_for): Don't do C++ random access iterator clause 19079 adjustments on combined constructs from OMP_LOOP. For OMP_LOOP, 19080 don't predetermine the artificial iterator in case of C++ random 19081 access iterators as lastprivate, but private. For OMP_LOOP, force 19082 bind expr around simd body and force for_pre_body before the 19083 construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of 19084 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV. 19085 (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for 19086 diff var of C++ random access iterators. Handle 19087 OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if 19088 not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases 19089 clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause 19090 on the OMP_FOR and OMP_DISTRIBUTE constructs if any. 19091 * omp-low.c (lower_rec_input_clauses): For 19092 OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private 19093 variables instead of default constructing them. 19094 (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV 19095 instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the 19096 is_taskloop_ctx check from the assert to the guarding condition. 19097 190982019-08-06 Kito Cheng <kito.cheng@sifive.com> 19099 19100 * config/riscv/multilib-generator: (canonical_order): New. 19101 (arch_canonicalize): Dito. 19102 Apply arch_canonicalize for alts. 19103 191042019-08-05 Martin Sebor <msebor@redhat.com> 19105 19106 * doc/extend.texi (Common Variable Attributes): Document alias 19107 attribute. 19108 191092019-08-05 Marek Polacek <polacek@redhat.com> 19110 19111 PR c++/91338 - Implement P1161R3: Deprecate a[b,c]. 19112 * doc/invoke.texi: Document -Wcomma-subscript. 19113 191142019-08-05 Richard Sandiford <richard.sandiford@arm.com> 19115 19116 * tree-core.h (tree_function_decl): Make function_code an 19117 independent field. Group the remaining bitfields into bytes 19118 and move decl_type so that it contines to be at a byte boundary. 19119 Leave 12 bits for future expansion. 19120 191212019-08-05 Richard Sandiford <richard.sandiford@arm.com> 19122 19123 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref) 19124 (gimple_fold_mask_load, gimple_fold_mask_store): New functions. 19125 (gimple_fold_call): Use them to fold IFN_MASK_LOAD and 19126 IFN_MASK_STORE. 19127 191282019-08-05 Richard Sandiford <richard.sandiford@arm.com> 19129 19130 * gimple.h (gimple_move_vops): Declare. 19131 * gimple.c (gimple_move_vops): New function 19132 * gimple-fold.c (replace_call_with_call_and_fold) 19133 (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset) 19134 (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange) 19135 (gimple_fold_call): Use it. 19136 * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise. 19137 * tree-call-cdce.c (use_internal_fn): Likewise. 19138 * tree-if-conv.c (predicate_load_or_store): Likewise. 19139 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. 19140 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. 19141 * tree-ssa-propagate.c (finish_update_gimple_call): Likewise. 19142 (update_call_from_tree): Likewise. 19143 * tree-vect-stmts.c (vectorizable_load): Likewise. 19144 * tree-vectorizer.c (adjust_simduid_builtins): Likewise. 19145 191462019-08-05 Martin Liska <mliska@suse.cz> 19147 19148 PR c++/91334 19149 * tree-ssa-dce.c (propagate_necessity): Handle new operators 19150 with not arguments. 19151 (eliminate_unnecessary_stmts): Likewise. 19152 191532019-08-05 Richard Biener <rguenther@suse.de> 19154 19155 PR middle-end/91169 19156 * fold-const.c (get_array_ctor_element_at_index): Create 19157 offset_ints according to the sign of the index type and treat 19158 that as signed if it is obviously so. 19159 191602019-08-05 Jakub Jelinek <jakub@redhat.com> 19161 19162 PR target/91341 19163 * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128, 19164 _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i, 19165 _mm256_storeu2_m128i): New function. 19166 191672019-08-05 Kito Cheng <kito.cheng@sifive.com> 19168 19169 * config/riscv/riscv.c (riscv_promote_function_mode): New. 19170 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode. 19171 191722019-08-05 Alan Modra <amodra@gmail.com> 19173 19174 PR target/91349 19175 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC), 19176 (LINK_GCC_C_SEQUENCE_SPEC): Undef. 19177 191782019-08-04 Gerald Pfeifer <gerald@pfeifer.com> 19179 19180 * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6 19181 bug that was fixed in Tcl 8.6.1. 19182 191832019-08-02 Michael Meissner <meissner@linux.ibm.com> 19184 19185 * config/rs6000/future.md: New file. 19186 * config/rs6000/rs6000.md: Include future.md. 19187 * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md. 19188 191892019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de> 19190 19191 * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT 19192 check to use targetm.slow_unaligned_access instead. 19193 19194 * function.c (assign_param_data_one): Remove unused data members. 19195 191962019-08-02 Steve Ellcey <sellcey@marvell.com> 19197 19198 * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to 19199 build_distinct_type_copy. 19200 (simd_clone_adjust_argument_types): Ditto. 19201 (simd_clone_adjust): Call build_distinct_type_copy here. 19202 (expand_simd_clones): Ditto. 19203 192042019-08-02 Uroš Bizjak <ubizjak@gmail.com> 19205 19206 PR target/91201 19207 * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern. 19208 192092019-08-02 Alexander Monakov <amonakov@ispras.ru> 19210 19211 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts 19212 from 'const void *'. 19213 (sort_locs_in_loop_postorder_cmp): Likewise. 19214 192152019-08-02 Eric Botcazou <ebotcazou@adacore.com> 19216 19217 * doc/invoke.texi (hot-bb-count-fraction): Rework description. 19218 (hot-bb-count-ws-permille): Likewise. 19219 (hot-bb-frequency-fraction): Likewise. 19220 (unlikely-bb-count-fraction): Likewise. 19221 * params.def (hot-bb-count-fraction): Rework description. 19222 (hot-bb-count-ws-permille): Likewise. 19223 (hot-bb-frequency-fraction): Likewise. 19224 (unlikely-bb-count-fraction): Likewise. Remove min and max values. 19225 * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION. 19226 192272019-08-02 Uroš Bizjak <ubizjak@gmail.com> 19228 19229 PR target/91323 19230 * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>: 19231 Return false. 19232 192332019-08-02 Richard Biener <rguenther@suse.de> 19234 19235 * vec.h (vec::sort): Add gcc_qsort_r support. 19236 (vec::bsearch): Add an overload with gcc_qsort_r style callbacks. 19237 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust 19238 to gcc_qsort_r style callback. 19239 (sort_locs_in_loop_postorder_cmp): Likewise. 19240 (analyze_memory_references): Use gcc_sort_r interfaces. 19241 (find_ref_loc_in_loop_cmp): Use new bsearch overload. 19242 192432019-08-02 Martin Liska <mliska@suse.cz> 19244 19245 PR lto/91313 19246 * gcc.c (driver::maybe_run_linker): Call detect_jobserver 19247 to detect working job server. 19248 (driver::detect_jobserver): Test whether jobserver 19249 is active from GCC driver. That will prevent situation where 19250 GCC is invoked from a LD plugin and the linker already uses 19251 file descriptors suggested by make. That leads to a wrong 19252 detection. 19253 * gcc.h (driver): Add detect_jobserver. 19254 * lto-wrapper.c (jobserver_active_p): Simplify sscanf by 19255 not scanning for --jobserver-auth prefix. 19256 192572019-08-02 Jakub Jelinek <jakub@redhat.com> 19258 19259 PR tree-optimization/91201 19260 * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0 19261 V16QImode extraction without sse4.1 try to use V4SImode lowpart 19262 extraction. 19263 192642019-08-01 Martin Sebor <msebor@redhat.com> 19265 19266 PR c++/90947 19267 * tree.c (type_initializer_zero_p): Define. 19268 * tree.h (type_initializer_zero_p): New function. 19269 192702019-08-01 Eric Botcazou <ebotcazou@adacore.com> 19271 19272 * cfgrtl.c (relink_block_chain): Add line returns in dump file. 19273 192742019-08-01 Eric Botcazou <ebotcazou@adacore.com> 19275 19276 * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment. 19277 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. Remove useless test. 19278 * predict.c (maybe_hot_count_p): Likewise. 19279 (maybe_hot_bb_p): Tweak comment. 19280 (maybe_hot_edge_p): Likewise. 19281 (probably_never_executed): Likewise. Minor tweak. 19282 (probably_never_executed_bb_p): Likewise. 19283 (unlikely_executed_edge_p): Likewise. 19284 (probably_never_executed_edge_p): Likewise. 19285 (optimize_function_for_size_p): Likewise. 19286 (optimize_function_for_speed_p): Likewise. 19287 (function_optimization_type): Likewise. 19288 (optimize_bb_for_size_p): Likewise. 19289 (optimize_bb_for_speed_p): Likewise. 19290 (bb_optimization_type): Likewise. 19291 (optimize_edge_for_size_p): Likewise. 19292 (optimize_edge_for_speed_p): Likewise. 19293 (optimize_insn_for_size_p): Likewise. 19294 (optimize_insn_for_speed_p): Likewise. 19295 (optimize_loop_for_size_p): Likewise. 19296 (optimize_loop_for_speed_p): Likewise. 19297 (optimize_loop_nest_for_speed_p): Likewise. 19298 (optimize_loop_nest_for_size_p): Likewise. 19299 (predictable_edge_p): Likewise. 19300 (handle_missing_profiles): Minor tweak. 19301 193022019-08-01 Michael Meissner <meissner@linux.ibm.com> 19303 19304 * config/rs6000/predicates.md (pcrel_external_address): Update 19305 comment. 19306 193072019-08-01 Uroš Bizjak <ubizjak@gmail.com> 19308 19309 PR target/85693 19310 * config/i386/mmx.md (usadv8qi): New expander. 19311 193122019-08-01 Matthew Beliveau <mbelivea@redhat.com> 19313 19314 PR c++/90590 19315 * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators 19316 with reserved names that are in a system header. 19317 193182019-08-01 Uroš Bizjak <ubizjak@gmail.com> 19319 19320 * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative. 19321 (*vec_extractv2si_0_zext_sse4): New insn pattern. 19322 (*vec_extractv2si_0_zext): Ditto. 19323 (*vec_extractv2si_1): Add (rm,x) alternative. 19324 (*vec_extractv2si_1_zext): New insn pattern. 19325 (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE" 19326 insn constraint. 19327 193282019-08-01 Richard Biener <rguenther@suse.de> 19329 19330 * domwalk.c (bb_postorder): Remove static variable. 19331 (cmp_bb_postorder): Adjust. 19332 (sort_bbs_postorder): Adjust and use gcc_sort_r. 19333 (dom_walker::walk): Adjust. 19334 193352019-08-01 Alexander Monakov <amonakov@ispras.ru> 19336 19337 * sort.cc (sort_r_ctx): New struct. 19338 (reorder23): Make templated on context type. 19339 (reorder45): Ditto. 19340 (cmp1): Ditto. Adjust signature. 19341 (netsort): Ditto. 19342 (mergesort): Ditto. 19343 [CHECKING_P] (cmp2to3): New static function. Use it... 19344 (gcc_qsort) [CHECKING_P]: ...here. 19345 (gcc_sort_r): New function. 19346 * system.h (sort_r_cmp_fn): New function typedef. 19347 (qsort_chk): Adjust signature. 19348 (gcc_sort_r): Declare. 19349 * vec.c (qsort_chk_error): Adjust. 19350 (qsort_chk): Adjust. 19351 193522019-08-01 Richard Biener <rguenther@suse.de> 19353 19354 * tree-ssa-pre.c (has_abnormal_preds): Remove global var. 19355 (compute_antic): Localize it here. 19356 193572019-07-31 Maxim Blinov <maxim.blinov@embecosm.com> 19358 19359 * common/config/riscv/riscv-common.c: Check -march string ends 19360 with null. 19361 193622019-07-31 Alexander Monakov <amonakov@ispras.ru> 19363 19364 * ipa-devirt.c (type_warning_cmp): Make static. 19365 (decl_warning_cmp): Ditto. 19366 193672019-07-31 Peter Bergner <bergner@linux.ibm.com> 19368 19369 PR target/91050 19370 * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option. 19371 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove 19372 use of deleted rs6000_dejagnu_cpu_index variable. 19373 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define. 19374 (SUBTARGET_DRIVER_SELF_SPECS): Likewise. 19375 * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ... 19376 (SUBTARGET_DRIVER_SELF_SPECS): ...to this. 19377 * config/i386/i386.h (DRIVER_SELF_SPECS): Define. 19378 (SUBTARGET_DRIVER_SELF_SPECS): Likewise. 19379 193802019-07-31 Richard Biener <rguenther@suse.de> 19381 19382 PR tree-optimization/91280 19383 * tree-ssa-structalias.c (get_constraint_for_component_ref): 19384 Decompose MEM_REF manually for offset handling. 19385 193862019-07-31 Richard Biener <rguenther@suse.de> 19387 19388 PR tree-optimization/91293 19389 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands 19390 of reduction stmts. 19391 193922019-07-31 Matt Thomas <matt@3am-software.com> 19393 Nick Hudson <nick@nthcliff.demon.co.uk> 19394 Matthew Green <mrg@eterna.com.au> 19395 Maya Rashish <coypu@sdf.org> 19396 19397 * config.gcc (hppa*-*-netbsd*): New target. 19398 * config/pa/pa-netbsd.h: New file. 19399 * config/pa/pa32-netbsd.h: New file. 19400 194012019-07-31 Jakub Jelinek <jakub@redhat.com> 19402 19403 PR tree-optimization/91201 19404 * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander. 19405 194062019-07-31 Andrew Stubbs <ams@codesourcery.com> 19407 19408 * config/gcn/gcn-valu.md 19409 (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt. 19410 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise. 19411 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise. 19412 * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to 19413 struct ilist. Add nops for delayeduse insns. 19414 * config/gcn/gcn.md (delayeduse): New attribute. 19415 (*movbi): Remove s_waitcnt from stores. 19416 (*mov<mode>_insn): Likewise. 19417 (*movti_insn): Likewise. Add delayeduse attribute. 19418 (sync_compare_and_swap<mode>_insn): Add delayeduse attribute. 19419 (atomic_store<mode>): Remove or adjust s_waitcnt. 19420 194212019-07-31 Richard Biener <rguenther@suse.de> 19422 19423 * vr-values.h (vr_values::swap_vr_value): New. 19424 (vr_values::free_value_range): likewise. 19425 * vr-values.c (vr_values::swap_vr_value): Implement. 19426 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range): 19427 Do not return a range or take a var. 19428 (evrp_range_analyzer::stack): Change back to recording a non-const 19429 value_range *. 19430 * gimple-ssa-evrp-analyze.c 19431 (evrp_range_analyzer::record_ranges_from_stmt): Free unused 19432 value-range. 19433 (evrp_range_analyzer::pop_to_marker): Adjust. 19434 (evrp_range_analyzer::push_value_range): Use new swap_vr_value. 19435 (evrp_range_analyzer::pop_value_range): Likewise. Free the 19436 no longer needed value-range. 19437 194382019-07-31 Martin Liska <mliska@suse.cz> 19439 19440 * tree-ssa-dce.c (propagate_necessity): Delete operator can 19441 have size and (or) alignment as 2nd and later arguments. 19442 Mark all of them as necessary. 19443 194442019-07-31 Richard Biener <rguenther@suse.de> 19445 19446 PR tree-optimization/91178 19447 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): 19448 Use tail-recursion. 19449 194502019-07-31 Jakub Jelinek <jakub@redhat.com> 19451 19452 PR tree-optimization/91201 19453 * config/i386/sse.md (reduc_plus_scal_v16qi): New expander. 19454 (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for 19455 TARGET_AVX512F. 19456 (reduc_plus_scal_<mode>): Improve formatting by introducing 19457 a temporary. 19458 194592019-07-31 Sudakshina Das <sudi.das@arm.com> 19460 19461 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add 19462 AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT, 19463 AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL. 19464 (aarch64_init_tme_builtins): New. 19465 (aarch64_init_builtins): Call aarch64_init_tme_builtins. 19466 (aarch64_expand_builtin_tme): New. 19467 (aarch64_expand_builtin): Handle TME builtins. 19468 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define 19469 __ARM_FEATURE_TME when enabled. 19470 * config/aarch64/aarch64-option-extensions.def: Add "tme". 19471 * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New. 19472 (TARGET_TME): New. 19473 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST. 19474 (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and 19475 UNSPECV_TCANCEL. 19476 (tstart, ttest, tcommit, tcancel): New instructions. 19477 * config/aarch64/arm_acle.h (__tstart, __tcommit): New. 19478 (__tcancel, __ttest): New. 19479 (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro. 19480 (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise. 19481 (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise. 19482 (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise. 19483 * config/arm/types.md: Add new tme type attr. 19484 * doc/invoke.texi: Document "tme". 19485 194862019-07-31 Joel Hutton <Joel.Hutton@arm.com> 19487 19488 * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add 19489 warn_unused_result attribute. 19490 (cmse_check_address_range): Add warn_unused_result attribute. 19491 194922019-07-31 Richard Biener <rguenther@suse.de> 19493 19494 PR tree-optimization/91257 19495 * tree-vrp.c (union_ranges): Unify equality and less tests 19496 by using compare_values. Re-order cheap tests first. 19497 194982019-07-31 Jakub Jelinek <jakub@redhat.com> 19499 19500 PR middle-end/91301 19501 * gimplify.c (gimplify_omp_for): If for class iterator on 19502 distribute parallel for there is no data sharing clause 19503 on inner_for_stmt, look for private clause on combined 19504 parallel too and if found, move it to inner_for_stmt. 19505 195062019-07-31 Richard Sandiford <richard.sandiford@arm.com> 19507 19508 * lra-int.h (lra_operand_data): Remove early_clobber field. 19509 (lra_insn_reg): Likewise. 19510 * lra.c (debug_operand_data): Update accordingly. 19511 (setup_operand_alternative): Likewise. 19512 (new_insn_reg): Likewise. Remove early_clobber parameter. 19513 (collect_non_operand_hard_regs): Update call accordingly. 19514 Don't assign to lra_insn_reg::early_clobber. 19515 (add_regs_to_insn_regno_info): Remove early_clobber parameter 19516 and update calls to new_insn_reg. 19517 (lra_update_insn_regno_info): Update calls accordingly. 19518 * lra-constraints.c (update_and_check_small_class_inputs): Take the 19519 alternative number as a parameter and test whether the operand 19520 is earlyclobbered in that particular alternative. 19521 (process_alt_operands): Update call accordingly. Use per-alternative 19522 checks for earyclobber here too. 19523 * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts 19524 against zero for IRA_UNKNOWN_ALT. 19525 195262019-07-30 Uroš Bizjak <ubizjak@gmail.com> 19527 19528 * config/alpha/alpha.c (alpha_option_override): Quote a C type. 19529 195302019-07-30 Wilco Dijkstra <wdijkstr@arm.com> 19531 19532 * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset. 19533 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise. 19534 195352019-07-30 Martin Liska <mliska@suse.cz> 19536 19537 PR ipa/89330 19538 * cgraph.c (cgraph_edge::make_direct): Use 19539 edge->indirect_unknown_callee as edge->resolve_speculation can 19540 deallocate edge which is this pointer. 19541 195422019-07-30 Richard Biener <rguenther@suse.de> 19543 19544 PR tree-optimization/91257 19545 * bitmap.c (bitmap_ior_and_compl_into): Open-code. 19546 195472019-07-30 Martin Liska <mliska@suse.cz> 19548 19549 * doc/invoke.texi: Document new behavior. 19550 * lto-wrapper.c (cpuset_popcount): New function 19551 is a copy of libgomp/config/linux/proc.c. 19552 (init_num_threads): Likewise. 19553 (run_gcc): Automatically detect core count for -flto. 19554 (jobserver_active_p): New function. 19555 195562019-07-30 Richard Biener <rguenther@suse.de> 19557 19558 PR tree-optimization/91257 19559 * bitmap.h (bitmap_ior_into_and_free): Declare. 19560 * bitmap.c (bitmap_list_unlink_element): Add defaulted param 19561 whether to add the unliked element to the freelist. 19562 (bitmap_list_insert_element_after): Add defaulted param for 19563 an already allocated element. 19564 (bitmap_ior_into_and_free): New function. 19565 * tree-ssa-structalias.c (condense_visit): Reduce the 19566 ponts-to and edge bitmaps of the SCC members in a 19567 logarithmic fashion rather than all to one. 19568 195692019-07-30 Richard Sandiford <richard.sandiford@arm.com> 19570 19571 * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond 19572 parameter. When nonnull, make sure that the addition or subtraction 19573 has the same condition. 19574 (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma 19575 for CFN_COND_MUL too. 19576 195772019-07-30 Richard Biener <rguenther@suse.de> 19578 19579 PR tree-optimization/91291 19580 * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore 19581 constant values. 19582 195832019-07-30 Jakub Jelinek <jakub@redhat.com> 19584 19585 PR middle-end/91216 19586 * omp-low.c (global_nonaddressable_vars): New variable. 19587 (use_pointer_for_field): For global decls, if they are non-addressable, 19588 remember it in the global_nonaddressable_vars bitmap, if they are 19589 addressable and in the global_nonaddressable_vars bitmap, ignore their 19590 TREE_ADDRESSABLE bit. 19591 (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of 19592 vars in global_nonaddressable_vars bitmap. 19593 (execute_lower_omp): Free global_nonaddressable_vars bitmap. 19594 19595 PR target/91150 19596 * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type 19597 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast 19598 comparison to unsigned HOST_WIDE_INT before shifting it left. 19599 196002019-07-30 Uroš Bizjak <ubizjak@gmail.com> 19601 19602 * config/i386/i386.md (movstrict<mode>): Use register_operand 19603 predicate for operand 0. Add expander condition. Assert that 19604 operand 0 is a SUBREG RTX. 19605 (*movstrict<mode>_1): Use register_operand predicate for operand 0. 19606 Update operand constraints and insn condition. 19607 (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>. 19608 (zero_extendqihi2_and): Do not call gen_movstrictqi. 19609 (*setcc_qi_slp): Use register_operand predicate for operand 0. 19610 Update operand 0 constraints. 19611 (setcc_qi_slp splitters): Use register_operand predicate for operand 0. 19612 196132019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com> 19614 19615 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors 19616 when -m{code,data}-region are used without -mlarge. 19617 * config/msp430/msp430.c (msp430_option_override): Error when a 19618 non-default code or data region is used without -mlarge. 19619 (msp430_section_attr): Emit a warning and do not add upper/lower/either 19620 attributes when they are used without -mlarge. 19621 196222019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com> 19623 19624 PR target/70320 19625 * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES. 19626 196272019-07-29 Richard Sandiford <richard.sandiford@arm.com> 19628 19629 PR middle-end/91242 19630 * wide-int.h (generic_wide_int::sext_elt): New function. 19631 * inchash.h (hash::add_wide_int): Use it instead of elt. 19632 196332019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 19634 19635 * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to 19636 CODE_FOR_arm_##. 19637 * config/arm/arm.md (<crc_variant>): Rename to... 19638 (arm_<crc_variant>): ... This. 19639 (<cdp>): Rename to... 19640 (arm_<cdp>): ... This. 19641 (<ldc>): Rename to... 19642 (arm_<ldc>): ... This. 19643 (<stc>): Rename to... 19644 (arm_<stc>): ... This. 19645 (<mcr>): Rename to... 19646 (arm_<mcr>): ... This. 19647 (<mrc>): Rename to... 19648 (arm_<mrc>): ... This. 19649 (<mcrr>): Rename to... 19650 (arm_<mcrr>): ... This. 19651 (<mrrc>): Rename to... 19652 (arm_<mrrc>): ... This. 19653 196542019-07-29 Richard Biener <rguenther@suse.de> 19655 19656 PR tree-optimization/91257 19657 * tree-ssa-sccvn.h (struct vn_avail): New. 19658 (struct vn_ssa_aux): Add avail member. 19659 * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail 19660 member, add m_avail_freelist one. 19661 (rpo_elim::~rpo_elim): Remove. 19662 (rpo_elim::eliminate_avail): Adjust to new avail tracking 19663 data structure. 19664 (rpo_elim::eliminate_push_avail): Likewise. 19665 (do_unwind): Likewise. 19666 (do_rpo_vn): Likewise. 19667 196682019-07-29 Richard Biener <rguenther@suse.de> 19669 19670 PR tree-optimization/91257 19671 * tree-vrp.c (operand_less_p): Avoid dispatching to fold for 19672 most cases, instead call compare_values which handles the 19673 symbolic ranges we handle specially. 19674 (compare_values_warnv): Do not call operand_less_p but open-code 19675 the effective fold calls. Avoid converting so much. 19676 196772019-07-29 Martin Liska <mliska@suse.cz> 19678 19679 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not 19680 remove LHS of operator new call. It's handled latter. 19681 196822019-07-29 Richard Biener <rguenther@suse.de> 19683 19684 PR tree-optimization/91267 19685 * vr-values.c (vr_values::update_value_range): Add early return 19686 for effectively VARYING lattice entry. 19687 196882019-07-29 Richard Sandiford <richard.sandiford@arm.com> 19689 19690 PR debug/86638 19691 * tree-ssa-dce.c (keep_all_vdefs_p): New function. 19692 (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as 19693 necessary if keep_all_vdefs_p is true. 19694 (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert 19695 that keep_all_vdefs_p is false. 19696 (mark_all_reaching_defs_necessary): Likewise. 19697 (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true. 19698 196992019-07-29 Richard Sandiford <richard.sandiford@arm.com> 19700 19701 * common.opt (Og): Change the initial value of flag_dse to 0. 19702 * opts.c (default_options_table): Move OPT_ftree_dse from 19703 OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add 19704 OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta 19705 entry before the OPT_ftree_sra entry. 19706 * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list 19707 of flags disabled by Og. 19708 197092019-07-29 Richard Sandiford <richard.sandiford@arm.com> 19710 19711 * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only 19712 variables for -Og. 19713 197142019-07-29 Richard Sandiford <richard.sandiford@arm.com> 19715 19716 * doc/sourcebuild.texi (check-function-bodies): Document. 19717 197182019-07-29 Richard Sandiford <richard.sandiford@arm.com> 19719 19720 * simplify-rtx.c (simplify_const_unary_operation): Fold a 19721 VEC_DUPLICATE of a fixed-length vector even if the result 19722 is variable-length. Likewise fold a duplicate of a 19723 variable-length vector if the variable-length vector is 19724 itself a duplicate of a fixed-length sequence. 19725 (test_vector_ops_duplicate): Test more cases. 19726 197272019-07-29 Richard Sandiford <richard.sandiford@arm.com> 19728 19729 * vector-builder.h (vector_builder): Add a shape template parameter. 19730 (vector_builder::new_unary_operation): New function, generalizing 19731 the old tree_vector_builder function. 19732 (vector_builder::new_binary_operation): Likewise. 19733 (vector_builder::binary_encoded_nelts): Likewise. 19734 * int-vector-builder.h (int_vector_builder): Update template 19735 parameters to vector_builder. 19736 (int_vector_builder::shape_nelts): New function. 19737 * rtx-vector-builder.h (rtx_vector_builder): Update template 19738 parameters to vector_builder. 19739 (rtx_vector_builder::shape_nelts): New function. 19740 (rtx_vector_builder::nelts_of): Likewise. 19741 (rtx_vector_builder::npatterns_of): Likewise. 19742 (rtx_vector_builder::nelts_per_pattern_of): Likewise. 19743 * tree-vector-builder.h (tree_vector_builder): Update template 19744 parameters to vector_builder. 19745 (tree_vector_builder::shape_nelts): New function. 19746 (tree_vector_builder::nelts_of): Likewise. 19747 (tree_vector_builder::npatterns_of): Likewise. 19748 (tree_vector_builder::nelts_per_pattern_of): Likewise. 19749 * tree-vector-builder.c (tree_vector_builder::new_unary_operation) 19750 (tree_vector_builder::new_binary_operation): Delete. 19751 (tree_vector_builder::binary_encoded_nelts): Likewise. 19752 * simplify-rtx.c: Include rtx-vector-builder.h. 19753 (distributes_over_addition_p): New function. 19754 (simplify_const_unary_operation) 19755 (simplify_const_binary_operation): Generalize handling of vector 19756 constants to include variable-length vectors. 19757 (test_vector_ops_series): Add more tests. 19758 197592019-07-28 Jan Hubicka <hubicka@ucw.cz> 19760 19761 PR lto/91222 19762 * ipa-devirt.c (warn_types_mismatch): Compare indentifiers 19763 than INDENTIFIER_POINTER. 19764 197652019-07-28 Martin Liska <mliska@suse.cz> 19766 19767 PR ipa/89330 19768 * cgraph.c (symbol_table::create_edge): Always allocate 19769 a cgraph_edge. 19770 (symbol_table::free_edge): Store summary_id to 19771 edge_released_summary_ids if != -1; 19772 * cgraph.h (NEXT_FREE_NODE): Remove. 19773 (SET_NEXT_FREE_NODE): Likewise. 19774 (NEXT_FREE_EDGE): Likewise. 19775 (symbol_table::release_symbol): Store summary_id to 19776 cgraph_released_summary_ids if != -1; 19777 (symbol_table::allocate_cgraph_symbol): Always allocate 19778 a cgraph_node. 19779 197802019-07-28 Alan Modra <amodra@gmail.com> 19781 19782 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use 19783 gen_sibcall. 19784 197852019-07-28 Alan Modra <amodra@gmail.com> 19786 19787 PR target/91135 19788 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't 19789 define. 19790 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke 19791 GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi. 19792 (GNU_USER_TARGET_D_OS_VERSIONS): Don't define. 19793 197942019-07-28 Alan Modra <amodra@gmail.com> 19795 19796 PR target/91050 19797 * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64. 19798 * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define. 19799 * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define. 19800 * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise. 19801 * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise. 19802 * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use 19803 in asm_default spec. 19804 * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine. 19805 * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine. 19806 198072019-07-28 Gerald Pfeifer <gerald@pfeifer.com> 19808 19809 * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org. 19810 198112019-07-26 Tamar Christina <tamar.christina@arm.com> 19812 19813 PR target/89517 19814 * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION. 19815 * config/aarch64/aarch64-option-extensions.def: Add new comments 19816 and restore easier to read options. 19817 198182019-07-26 Tamar Christina <tamar.christina@arm.com> 19819 19820 * convert.c (convert_to_real_1): Move part of conversion code... 19821 * match.pd: ...To here. 19822 198232019-07-26 Martin Jambor <mjambor@suse.cz> 19824 19825 PR ipa/89330 19826 * ipa-inline-transform.c (check_speculations_1): New function. 19827 (push_all_edges_in_set_to_vec): Likewise. 19828 (check_speculations): Use check_speculations_1, new parameter 19829 new_edges. 19830 (inline_call): Pass new_edges to check_speculations. 19831 * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not 19832 NULL. 19833 (speculation_useful_p): Early return true if edge is inlined, remove 19834 later checks for inline_failed. 19835 198362019-07-25 Vladimir Makarov <vmakarov@redhat.com> 19837 19838 PR rtl-optimization/91223 19839 * lra-constraints.c (process_alt_operands): Fail for unsuccessful 19840 matching with INOUT operand. 19841 198422019-07-25 Eric Botcazou <ebotcazou@adacore.com> 19843 19844 * stmt.c (expand_case): Try to narrow the index type if it's larger 19845 than a word. Tidy up. 19846 198472019-07-25 Eric Botcazou <ebotcazou@adacore.com> 19848 19849 * cif-code.def (NEVER_CALL): New code. 19850 * ipa-inline.c (want_inline_small_function_p): Fix formatting issues. 19851 Set the failure to CIF_NEVER_CALL if the IPA count is zero. 19852 198532019-07-25 Wilco Dijkstra <wdijkstr@arm.com> 19854 19855 * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg. 19856 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise. 19857 198582019-07-23 Jan Hubicka <hubicka@ucw.cz> 19859 19860 * ipa-devirt.c (add_type_duplicate): Fix return value. 19861 198622019-07-25 Richard Biener <rguenther@suse.de> 19863 19864 * tree-vrp.c (extract_range_from_multiplicative_op): Add 19865 type parameter and use it instead of guessing expression 19866 type from the first operand. 19867 (extract_range_from_binary_expr): Pass expr_type down. 19868 198692019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 19870 19871 * config/arm/arm.md (SATrev): Change to code attribute. 19872 (*satsi_<SAT:code>): Adjust for the above. 19873 (*satsi_<SAT:code>_shift): Likewise. 19874 198752019-07-25 Richard Biener <rguenther@suse.de> 19876 19877 * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions): 19878 Make value_range * temporary const. 19879 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): 19880 Likewise. 19881 (evrp_range_analyzer::record_ranges_from_): Likewise. 19882 (evrp_range_analyzer::pop_value_range): Return a const value_range *, 19883 deal with having recorded a const one. 19884 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range): 19885 Return a const value_range *. 19886 (evrp_range_analyzer::pop_value_range): Likewise. 19887 (evrp_range_analyzer::stack): Record const value_range *s. 19888 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): 19889 Adjust. 19890 * gimple-ssa-sprintf.c (get_int_range): Likewise. 19891 (format_integer): Likewise. 19892 (sprintf_dom_walker::handle_gimple_call): Likewise. 19893 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise. 19894 * tree-vrp.c (vrp_prop::set_def_to_varying): Add. 19895 (vrp_prop::get_value_range): Adjust. 19896 (vrp_prop::vrp_initialize): Use set_def_to_varying instead of 19897 modifying the lattice in-place. 19898 (vrp_prop::visit_stmt): Likewise. 19899 * vr-values.c (vr_values::get_lattice_entry): New private method. 19900 (vr_values::get_value_range): Wrap it and return a const 19901 value_range *. 19902 (vr_values::set_def_to_varying): New. 19903 (vr_values::set_defs_to_varying): Use it. 19904 (vr_values::update_value_range): Likewise. 19905 (vr_values::vrp_stmt_computes_nonzero): Adjust. 19906 (values::op_with_constant_singleton_va): Likewise. 19907 (vr_values::extract_range_for_var_from_co): Likewise. 19908 (vr_values::extract_range_from_ssa_name): Likewise. 19909 (vr_values::extract_range_from_cond_expr): Likewise. 19910 (vr_values::extract_range_basic): Likewise. 19911 (compare_ranges): Take const value_range *, adjust. 19912 (compare_range_with_value): Likewise. 19913 (vrp_valueize): Adjust. 19914 (vrp_valueize_1): Likewise. 19915 (vr_values::get_vr_for_comparison): Return a const value_range *. 19916 (vr_values::compare_name_with_value): Adjust. 19917 (vr_values::compare_names): Likewise. 19918 (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges): 19919 Likewise. 19920 (vr_values::vrp_evaluate_conditional): Likewise. 19921 (find_case_label_ranges): Take a const value_range *. 19922 (vr_values::vrp_visit_switch_stmt): Adjust. 19923 (vr_values::extract_range_from_phi_node): Likewise. 19924 (vr_values::simplify_div_or_mod_using_ran): Likewise. 19925 (vr_values::simplify_abs_using_ranges): Likewise. 19926 (test_for_singularity): Take a const value_range *. 19927 (range_fits_type_p): Likewise. 19928 (vr_values::simplify_cond_using_ranges_1): Adjust. 19929 (vr_values::simplify_cond_using_ranges_2): Likewise. 19930 (vr_values::simplify_switch_using_ranges): Likewise. 19931 (vr_values::simplify_float_conversion_usi): Likewise. 19932 (vr_values::two_valued_val_range_p): Likewise. 19933 * vr-values.h (vr_values::get_value_range): Return a const 19934 value_range *. 19935 (vr_values::set_def_to_varying): New. 19936 (vr_values::get_lattice_entry): New private method. 19937 (vr_values::get_vr_for_comparison): Return a const value_range *. 19938 199392019-07-25 Martin Liska <mliska@suse.cz> 19940 Dominik Infuhr <dominik.infuehr@theobroma-systems.com> 19941 19942 PR c++/23383 19943 * common.opt: Add -fallocation-dce 19944 * gimple.c (gimple_call_operator_delete_p): New. 19945 * gimple.h (gimple_call_operator_delete_p): Likewise. 19946 * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE. 19947 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle 19948 DECL_IS_OPERATOR_DELETE_P. 19949 (mark_all_reaching_defs_necessary_1): Likewise. 19950 (propagate_necessity): Likewise. 19951 (eliminate_unnecessary_stmts): Handle 19952 gimple_call_operator_delete_p. 19953 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): 19954 Add packing of OPERATOR_DELETE. 19955 * tree-streamer-out.c (pack_ts_function_decl_value_fields): 19956 Similarly here. 19957 * tree.h (DECL_IS_OPERATOR_DELETE_P): New. 19958 (DECL_SET_IS_OPERATOR_DELETE): New. 19959 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise. 19960 199612019-07-25 Martin Liska <mliska@suse.cz> 19962 19963 * calls.c (maybe_warn_alloc_args_overflow): Use new macros 19964 (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P). 19965 * coverage.c (coverage_begin_function): Likewise. 19966 * fold-const.c (tree_expr_nonzero_warnv_p): Likewise. 19967 * gimple.c (gimple_call_nonnull_result_p): Likewise. 19968 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise. 19969 (sem_item::hash_referenced_symbol_properties): Likewise. 19970 * lto-streamer-out.c (hash_tree): Likewise. 19971 * predict.c (expr_expected_value_1): Likewise. 19972 * tree-inline.c (expand_call_inline): Likewise. 19973 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise. 19974 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise. 19975 * tree-core.h (enum function_decl_type): New enum. 19976 (struct tree_function_decl): Remove operator_new_flag and lambda_function. 19977 * tree.h (FUNCTION_DECL_DECL_TYPE): New. 19978 (set_function_decl_type): Likewise. 19979 (DECL_IS_OPERATOR_NEW_P): New. 19980 (DECL_SET_IS_OPERATOR_NEW): Likewise. 19981 (DECL_LAMBDA_FUNCTION): Likewise. 19982 (DECL_LAMBDA_FUNCTION_P): Likewise. 19983 (DECL_IS_OPERATOR_NEW): Remove. 19984 (DECL_SET_LAMBDA_FUNCTION): Likewise. 19985 199862019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com> 19987 19988 * ipa-profile.c (get_most_common_single_value): Use 19989 get_nth_most_common_value. 19990 * profile.c (sort_hist_value): New function. 19991 (compute_value_histograms): Call sort_hist_value to sort the 19992 values after loading from disk. 19993 * value-prof.c (get_most_common_single_value): Rename to ... 19994 get_nth_most_common_value. Add input params n, return 19995 the n_th value and count. 19996 (gimple_divmod_fixed_value_transform): Use 19997 get_nth_most_common_value. 19998 (gimple_ic_transform): Likewise. 19999 (gimple_stringops_transform): Likewise. 20000 * value-prof.h (get_most_common_single_value): Add input params 20001 n, default to 0. 20002 200032019-07-25 Richard Biener <rguenther@suse.de> 20004 20005 PR tree-optimization/91236 20006 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix 20007 size of CONSTRUCTOR write. Fix buffer size we pass to 20008 native_encode_expr. 20009 200102019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> 20011 20012 * config.gcc (msp430*-*-*): Fix non-GNU style in r273774. 20013 * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in 20014 r273773. 20015 200162019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> 20017 20018 * config.gcc (msp430*-*-*): Enable initfini_array by default unless 20019 explicitly disabled with --disable-initfini-array. 20020 200212019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> 20022 20023 * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in 20024 if-exists. 20025 200262019-07-24 Martin Sebor <msebor@redhat.com> 20027 20028 PR tree-optimization/91183 20029 PR tree-optimization/86688 20030 * builtins.c (compute_objsize): Handle MEM_REF. 20031 * tree-ssa-strlen.c (class ssa_name_limit_t): New. 20032 (get_min_string_length): Remove. 20033 (count_nonzero_bytes): New function. 20034 (handle_char_store): Rename... 20035 (handle_store): to this. Handle multibyte stores via integer types. 20036 (strlen_check_and_optimize_stmt): Adjust conditional and the called 20037 function name. 20038 200392019-07-24 Martin Sebor <msebor@redhat.com> 20040 20041 PR driver/80545 20042 * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask. 20043 (diagnostic_report_diagnostic): Same. 20044 * diagnostic.h (diagnostic_context::option_enabled): Add an argument. 20045 (diagnostic_context::lang_mask): New data member. 20046 * ipa-pure-const.c (suggest_attribute): Use 20047 lang_hooks.option_lang_mask (). 20048 * opts-common.c (option_enabled): Handle new argument. 20049 (get_option_state): Pass an additional argument. 20050 * opts.c (print_filtered_help): Print supported languages for 20051 unsupported options. Adjust printing of current state. 20052 * opts.h (option_enabled): Add argument. 20053 * toplev.c (print_switch_values): Use lang_mask. 20054 (general_init): Set global_dc->lang_mask. 20055 200562019-07-24 Iain Sandoe <iain@sandoe.co.uk> 20057 20058 PR bootstrap/87030 20059 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749. 20060 200612019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br> 20062 20063 * cgraphunit.c (symbol_table::compile): Start and stop 20064 TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers. 20065 * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New. 20066 200672019-07-24 Oliver Browne <oliverbrowne62@gmail.com> 20068 20069 * gimplify.c (flag_instrument_functions_exclude_p): Include 20070 namespace/class information in the printable name. 20071 * opts.c (add_comma_separated_to_vector): Add NUL terminator 20072 to tokens entered into the vector. 20073 200742019-07-24 Eric Botcazou <ebotcazou@adacore.com> 20075 20076 * tree-nested.c (build_simple_mem_ref_notrap): New function. 20077 (get_static_chain): Call it instead of build_simple_mem_ref. 20078 (get_frame_field): Likewise. 20079 (get_nonlocal_debug_decl): Likewise. 20080 (convert_nonlocal_reference_op): Likewise. 20081 200822019-07-24 Claudiu Zissulescu <claziss@synopsys.com> 20083 20084 * config/arc/arc-protos.h (arc_output_function_epilogue): Delete 20085 declaration. 20086 (arc_compute_frame_size): Millicode is disabled when compiling 20087 ISR. 20088 (arc_return_address_register): Likewise. 20089 (arc_compute_function_type): Likewise. 20090 (arc_compute_frame_size): Likewise. 20091 (secondary_reload_info): Likewise. 20092 (arc_get_unalign): Likewise. 20093 (arc_can_use_return_insn): Declare. 20094 * config/arc/arc.c (AUX_LP_START): Define 20095 (AUX_LP_END): Likewise. 20096 (arc_frame_info): Update gmask member to 64-bit datum. 20097 (GMASK_LEN): Update. 20098 (arc_compute_function_type): Make it static, move it forward. 20099 (arc_must_save_register): Update, consider the extra regs. 20100 (arc_compute_millicode_save_restore_regs): Update to use the 64 20101 bit gmask. 20102 (arc_compute_frame_size): Likewise. 20103 (arc_enter_leave_p): Likewise. 20104 (arc_save_callee_saves): Likewise. 20105 (arc_restore_callee_saves): Likewise. 20106 (arc_save_callee_enter): Likewise. 20107 (arc_restore_callee_leave): Likewise. 20108 (arc_save_callee_milli): Likewise. 20109 (arc_restore_callee_milli): Likewise. 20110 (arc_expand_prologue): Add new interrupt handling. 20111 (arc_return_address_register): Make it static, move it forward. 20112 (arc_expand_epilogue): Add new interrupt handling. 20113 (arc_get_unalign): Delete. 20114 (arc_epilogue_uses): Make sure we do not remove the extra 20115 saved/restored registers when interrupt. 20116 (arc_can_use_return_insn): New function. 20117 (push_reg): Likewise. 20118 (pop_reg): Likewise. 20119 (arc_save_callee_saves): Add ZOL and FPX aux registers saving 20120 procedures. 20121 (arc_restore_callee_saves): Likewise, but restoring. 20122 * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define. 20123 (R33_REG): Likewise. 20124 (R34_REG): Likewise. 20125 (R35_REG): Likewise. 20126 (R36_REG): Likewise. 20127 (R37_REG): Likewise. 20128 (R38_REG): Likewise. 20129 (R39_REG): Likewise. 20130 (R45_REG): Likewise. 20131 (R46_REG): Likewise. 20132 (R47_REG): Likewise. 20133 (R48_REG): Likewise. 20134 (R49_REG): Likewise. 20135 (R50_REG): Likewise. 20136 (R51_REG): Likewise. 20137 (R52_REG): Likewise. 20138 (R53_REG): Likewise. 20139 (R54_REG): Likewise. 20140 (R55_REG): Likewise. 20141 (R56_REG): Likewise. 20142 (R58_REG): Likewise. 20143 (type): Add rtie attribute. 20144 (in_call_delay_slot): Use RETURN_ADDR_REGNUM. 20145 (movsi_insn): Accept moves to lp_count. 20146 (rtie): Update pattern. 20147 (simple_return): Simplify it, don't use this pattern as a return 20148 from an interrupt. 20149 (arc600_rtie): New pattern. 20150 (p_return_i): Clean up. 20151 (return): Likewise. 20152 * config/arc/builtins.def (rtie): Only available for non ARC6xx 20153 family CPUs. 20154 * config/arc/predicates.md (move_src_operand): Consider lp_count 20155 as a register. 20156 201572019-07-24 Andreas Krebbel <krebbel@linux.ibm.com> 20158 20159 * config/s390/predicates.md (addv_const_operand): New predicate. 20160 * config/s390/s390-modes.def (CCO): New condition code mode. 20161 * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode. 20162 (s390_branch_condition_mask): Likewise. 20163 * config/s390/s390.md ("addv<mode>4", "subv<mode>4") 20164 ("mulv<mode>4"): New expanders. 20165 ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const") 20166 ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New 20167 pattern definitions. 20168 201692019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 20170 20171 PR middle-end/91166 20172 * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern. 20173 (define_predicates): Add entry for uniform_vector_p. 20174 (vec_same_elem_p): New match pattern. 20175 201762019-07-24 Iain Sandoe <iain@sandoe.co.uk> 20177 20178 PR bootstrap/87030 20179 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here... 20180 * config/i386/darwin32-biarch.h .. to here. 20181 * config/i386/darwin64-biarch.h: Adjust comments. 20182 * config/rs6000/darwin32-biarch.h: Likewise. 20183 * config/rs6000/darwin64-biarch.h: Likewise. 20184 * config.gcc: Missed commit from r273746 20185 (*-*-darwin*): Don't include CPU t-darwin here. 20186 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce 20187 an error message if i686-darwin configuration is attempted for 20188 Darwin >= 18. 20189 201902019-07-23 Iain Sandoe <iain@sandoe.co.uk> 20191 20192 PR bootstrap/87030 20193 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here. 20194 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce 20195 an error message if i686-darwin configuration is attempted for 20196 Darwin >= 18. 20197 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18. 20198 (powerpc-*-darwin*): Use biarch files where needed. 20199 (powerpc64-*-darwin*): Likewise. 20200 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file. 20201 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single 20202 arch case. 20203 * config/i386/darwin32-biarch.h: New. 20204 * config/i386/darwin64.h: Rename. 20205 * config/i386/darwin64-biarch.h: To this. 20206 * config/i386/t-darwin: Rename. 20207 * config/i386/t-darwin32-biarch: To this. 20208 * config/i386/t-darwin64: Rename. 20209 * config/i386/t-darwin64-biarch: To this. 20210 * config/rs6000/darwin32-biarch.h: New. 20211 * config/rs6000/darwin64.h: Rename. 20212 * config/rs6000/darwin64-biarch.h: To this. 20213 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single 20214 arch case. 20215 * config/rs6000/t-darwin8: Rename. 20216 * config/rs6000/t-darwin32-biarch: To this. 20217 * config/rs6000/t-darwin64 Rename. 20218 * config/rs6000/t-darwin64-biarch: To this. 20219 202202019-07-23 Martin Sebor <msebor@redhat.com> 20221 20222 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311. 20223 202242019-07-23 Vladislav Ivanishin <vlad@ispras.ru> 20225 20226 * gdbinit.in (reload-gdbhooks): New command with an attached doc string. 20227 (rh): New alias for it. 20228 202292019-07-23 Vladislav Ivanishin <vlad@ispras.ru> 20230 20231 * gdbhooks.py: Pass replace=True to 20232 gdb.printing.register_pretty_printer. 20233 202342019-07-23 Richard Biener <rguenther@suse.de> 20235 20236 PR debug/91231 20237 * lto-streamer-in.c (input_function): Drop inline-entry markers 20238 that ended up with an unknown location block. 20239 202402019-07-23 Richard Biener <rguenther@suse.de> 20241 20242 PR tree-optimization/83518 20243 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate 20244 init from a constant even when partial defs are already recorded. 20245 202462019-07-23 Jan Hubicka <hubicka@ucw.cz> 20247 20248 * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2. 20249 * config/i386/znver1.md: Enable patterns for znver2 and add store 20250 variants which use extra AGU unit. 20251 202522019-07-23 Jan Hubicka <hubicka@ucw.cz> 20253 20254 * config/i386/i386-options.c (ix86_option_override_internal): Default 20255 PARAM_AVOID_FMA_MAX_BITS to 256 for znver2. 20256 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set 20257 for ZNVER2. 20258 202592019-07-23 Jan Hubicka <hubicka@ucw.cz> 20260 20261 * config/i386/x86-tune-costs.h (znver2_memcpy): Update. 20262 (znver2_costs): Update 256 bit SSE costs and multiplication. 20263 202642019-07-23 Jan Beulich <jbeulich@suse.com> 20265 20266 * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>): 20267 Require only AVX512F. 20268 (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add 20269 alternative expanding to vpternlog. 20270 202712019-07-23 Martin Liska <mliska@suse.cz> 20272 20273 * dwarf2out.c (gen_producer_string): Canonize -flto=N 20274 to -flto in dwarf producer string. 20275 202762019-07-23 Richard Biener <rguenther@suse.de> 20277 20278 * tree-cfg.c (label_for_bb): Remove global var. 20279 (main_block_label): Take label_for_bb as argument. 20280 (cleanup_dead_labels_eh): Likewise, adjust. 20281 (cleanup_dead_labels): Adjust. 20282 202832019-07-22 Paul A. Clarke <pc@us.ibm.com> 20284 20285 * doc/extend.texi (Basic PowerPC Built-in Functions Available on all 20286 Configurations): Add documentation for __builtin_mtfsf. 20287 202882019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com> 20289 20290 * config/riscv/riscv-opts.h (struct riscv_align_data): New. 20291 * config/riscv/riscv.c (riscv_constant_alignment): Use 20292 riscv_align_data_type. 20293 * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New. 20294 (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT. 20295 (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT. 20296 * config/riscv/riscv.opt (malign-data): New. 20297 * doc/invoke.texi (RISC-V Options): Document -malign-data=. 20298 202992019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br> 20300 20301 * cgraph.c (dump_graphviz): New function. 20302 * cgraph.h (dump_graphviz): New function. 20303 * symtab.c (dump_graphviz): New function. 20304 203052019-07-22 Sylvia Taylor <sylvia.taylor@arm.com> 20306 20307 * config/aarch64/aarch64-simd.md 20308 (*aarch64_simd_sra<mode>): New. 20309 * config/aarch64/iterators.md 20310 (SHIFTRT): New iterator. 20311 (sra_op): New attribute. 20312 203132019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com> 20314 20315 * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save 20316 callee-saved regs R4->R10 in an interrupt function that calls another 20317 function. 20318 203192019-07-22 Paul A. Clarke <pc@us.ibm.com> 20320 20321 * config/rs6000/smmintrin.h (_mm_blend_epi16): New. 20322 (_mm_blendv_epi8): New. 20323 203242019-07-22 Richard Biener <rguenther@suse.de> 20325 20326 PR tree-optimization/91221 20327 * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately 20328 restrict partial-def handling of empty constructors and 20329 memset to refs with known offset. 20330 203312019-07-22 Jan Beulich <jbeulich@suse.com> 20332 20333 * config/i386/sse.md (ternlogsuffix): New. 20334 (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when 20335 AVX512F is in use. 20336 (<mask_codefor>one_cmpl<mode>2<mask_name>): New. 20337 203382019-07-22 Martin Liska <mliska@suse.cz> 20339 20340 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update 20341 comment. 20342 * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol. 20343 203442019-07-22 Martin Liska <mliska@suse.cz> 20345 20346 * lto-section-in.c (lto_get_section_data): 20347 Use new function get_compression. 20348 * lto-streamer-out.c (produce_lto_section): Use 20349 set_compression to encode compression algorithm. 20350 * lto-streamer.h (struct lto_section): Do not 20351 use bitfields in the format. 20352 203532019-07-22 Martin Liska <mliska@suse.cz> 20354 20355 PR driver/91172 20356 * opts-common.c (decode_cmdline_option): Decode 20357 argument of -Werror and check it for a wrong language. 20358 * opts-global.c (complain_wrong_lang): Remove such case. 20359 203602019-07-22 Claudiu Zissulescu <claziss@synopsys.com> 20361 20362 * config/arc/arc.c (prepare_move_operands): Always use an 20363 intermediate register when storing a TLS symbols. 20364 203652019-07-22 Stafford Horne <shorne@gmail.com> 20366 20367 * config/or1k/or1k.c (or1k_expand_compare): Check for int before 20368 force_reg. 20369 203702019-07-22 Stafford Horne <shorne@gmail.com> 20371 20372 * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float 20373 and munordered-float validations. 20374 * config/or1k/constraints.md (d): New register constraint. 20375 * config/or1k/predicates.md (fp_comparison_operator): New. 20376 * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd' 20377 operands. 20378 (or1k_expand_compare): Normalize unordered comparisons. 20379 * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS. 20380 (REG_CLASS_NAMES): Add "DOUBLE_REGS". 20381 (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS. 20382 * config/or1k/or1k.md (type): Add fpu. 20383 (fpu): New instruction reservation. 20384 (F, f, fr, fi, FI, FOP, fop): New. 20385 (<fop><F:mode>3): New ALU instruction definition. 20386 (float<fi><F:mode>2): New conversion instruction definition. 20387 (fix_trunc<F:mode><fi>2): New conversion instruction definition. 20388 (fpcmpcc): New code iterator. 20389 (*sf_fp_insn): New instruction definition. 20390 (cstore<F:mode>4): New expand definition. 20391 (cbranch<F:mode>4): New expand definition. 20392 * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float, 20393 munordered-float): New options. 20394 * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and 20395 munordered-float. 20396 203972019-07-22 Stafford Horne <shorne@gmail.com> 20398 20399 * config.gcc (or1k*-*-*): Add mrori and mror to validation. 20400 * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all 20401 documenation to be more clear. 20402 * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be 20403 more clear. 20404 * config/or1k/or1k.opt (mrori): New option. 20405 (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext, 20406 msfimm, mshftimm): Rewrite documentation to be more clear. 20407 * config/or1k/or1k.md (insn_support): Add ror and rori. 20408 (enabled): Add conditions for ror and rori. 20409 (rotrsi3): Replace condition for shftimm with ror and rori. 20410 204112019-07-22 Stafford Horne <shorne@gmail.com> 20412 20413 PR target/90363 20414 * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate. 20415 (extend<mode>si2): Update predicate. 20416 * config/or1k/predicates.md (volatile_mem_operand): New. 20417 (reg_or_mem_operand): New. 20418 204192019-07-21 Iain Sandoe <iain@sandoe.co.uk> 20420 20421 * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here... 20422 * config/rs6000/rs6000-call.c: ... to here. 20423 204242019-07-20 Segher Boessenkool <segher@kernel.crashing.org> 20425 20426 * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile 20427 memory. 20428 204292019-07-20 Segher Boessenkool <segher@kernel.crashing.org> 20430 20431 * config/rs6000/predicates.md (input_operand): Allow volatile memory. 20432 204332019-07-20 Segher Boessenkool <segher@kernel.crashing.org> 20434 20435 * config/rs6000/predicates.md (lwa_operand): Allow volatile memory. 20436 204372019-07-20 Segher Boessenkool <segher@kernel.crashing.org> 20438 20439 * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax. 20440 (any_memory_operand): New predicate. 20441 (reg_or_mem_operand): Use it. 20442 204432019-07-20 Jakub Jelinek <jakub@redhat.com> 20444 20445 PR target/91204 20446 * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1. 20447 204482019-07-20 John David Anglin <danglin@gcc.gnu.org> 20449 20450 * config/pa/pa.h (hppa_profile_hook): Delete declaration. 20451 * config/pa/pa-protos.h (hppa_profile_hook): Add declaration. 20452 204532019-07-20 Jakub Jelinek <jakub@redhat.com> 20454 20455 * tree.def (OMP_LOOP): New tree code. 20456 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND. 20457 (enum omp_clause_bind_kind): New enum. 20458 (struct tree_omp_clause): Add subcode.bind_kind. 20459 * tree.h (OMP_LOOP_CHECK): Rename to ... 20460 (OMP_LOOPING_CHECK): ... this. 20461 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND, 20462 OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use 20463 OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK. 20464 (OMP_CLAUSE_BIND_KIND): Define. 20465 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add 20466 bind clause entries. 20467 (walk_tree_1): Handle OMP_CLAUSE_BIND. 20468 * tree-pretty-print.c (dump_omp_clause): Likewise. 20469 (dump_generic_node): Handle OMP_LOOP. 20470 * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET. 20471 (in_omp_construct): New variable. 20472 (is_gimple_stmt): Handle OMP_LOOP. 20473 (gimplify_scan_omp_clauses): For lastprivate don't set 20474 check_non_private if code == OMP_LOOP. For reduction clause 20475 on OMP_LOOP combined with parallel or teams propagate as shared 20476 on the combined construct. Handle OMP_CLAUSE_BIND. 20477 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND. 20478 (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE} 20479 for constructs from a loop construct to gimplify_scan_omp_clauses. 20480 Don't predetermine iterator linear on OMP_SIMD from loop construct. 20481 (replace_reduction_placeholders, gimplify_omp_loop): New functions. 20482 (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying 20483 to match the implicit ORT_TARGET construct around whole body. 20484 Temporarily clear in_omp_construct when processing body. 20485 (gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP 20486 etc. temporarily set in_omp_construct when processing body. 20487 (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET. 20488 * omp-low.c (struct omp_context): Add loop_p. 20489 (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct 20490 in that the original var might be private. 20491 (scan_sharing_clauses): Handle OMP_CLAUSE_BIND. 20492 (check_omp_nesting_restrictions): Adjust nesting restrictions for 20493 addition of loop construct. 20494 (scan_omp_1_stmt): Allow setjmp inside of loop construct. 20495 20496 * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for 20497 lastprivate non-addressable iterator of a collapse(1) simd. 20498 204992019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com> 20500 20501 * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value 20502 as in rs6000.c. 20503 205042019-07-19 Iain Sandoe <iain@sandoe.co.uk> 20505 20506 * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which 20507 refer to default conditions. Warn for the 'y' spec which is ignored 20508 by current linkers. 20509 205102019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com> 20511 20512 * config/rs6000/rs6000.c (builtin_description, cpu_is_info, 20513 cpu_supports_info, builtin_hash_struct, builtin_hasher, 20514 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info, 20515 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate, 20516 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest, 20517 init_cumulative_args, rs6000_promote_function_mode, 20518 rs6000_must_pass_in_stack, is_complex_IBM_long_double, 20519 abi_v4_pass_in_fpr, rs6000_function_arg_padding, 20520 rs6000_function_arg_boundary, rs6000_parm_offset, 20521 rs6000_parm_start, rs6000_arg_size, 20522 rs6000_darwin64_record_arg_advance_flush, 20523 rs6000_darwin64_record_arg_advance_recurse, 20524 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1, 20525 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush, 20526 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg, 20527 rs6000_mixed_function_arg, rs6000_psave_function_arg, 20528 rs6000_finish_function_arg, rs6000_function_arg, 20529 rs6000_arg_partial_bytes, rs6000_pass_by_reference, 20530 rs6000_parm_needs_stack, rs6000_function_parms_need_stack, 20531 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg, 20532 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start, 20533 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst, 20534 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg, 20535 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name, 20536 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin, 20537 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin, 20538 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin, 20539 altivec_expand_abs_builtin, rs6000_expand_binop_builtin, 20540 altivec_expand_predicate_builtin, swap_endian_selector_for_mode, 20541 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin, 20542 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode, 20543 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin, 20544 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin, 20545 get_element_number, altivec_expand_vec_set_builtin, 20546 altivec_expand_vec_ext_builtin, altivec_expand_builtin, 20547 rs6000_builtin_is_supported_p, rs6000_invalid_builtin, 20548 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs, 20549 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper, 20550 fold_mergeeo_helper, rs6000_gimple_fold_builtin, 20551 rs6000_expand_builtin, rs6000_vector_type, 20552 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins, 20553 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins, 20554 rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move 20555 to rs6000-call.c. 20556 * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info, 20557 cpu_supports_info, builtin_hash_struct, builtin_hasher, 20558 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info, 20559 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate, 20560 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest, 20561 init_cumulative_args, rs6000_promote_function_mode, 20562 rs6000_must_pass_in_stack, is_complex_IBM_long_double, 20563 abi_v4_pass_in_fpr, rs6000_function_arg_padding, 20564 rs6000_function_arg_boundary, rs6000_parm_offset, 20565 rs6000_parm_start, rs6000_arg_size, 20566 rs6000_darwin64_record_arg_advance_flush, 20567 rs6000_darwin64_record_arg_advance_recurse, 20568 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1, 20569 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush, 20570 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg, 20571 rs6000_mixed_function_arg, rs6000_psave_function_arg, 20572 rs6000_finish_function_arg, rs6000_function_arg, 20573 rs6000_arg_partial_bytes, rs6000_pass_by_reference, 20574 rs6000_parm_needs_stack, rs6000_function_parms_need_stack, 20575 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg, 20576 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start, 20577 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst, 20578 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg, 20579 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name, 20580 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin, 20581 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin, 20582 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin, 20583 altivec_expand_abs_builtin, rs6000_expand_binop_builtin, 20584 altivec_expand_predicate_builtin, swap_endian_selector_for_mode, 20585 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin, 20586 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode, 20587 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin, 20588 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin, 20589 get_element_number, altivec_expand_vec_set_builtin, 20590 altivec_expand_vec_ext_builtin, altivec_expand_builtin, 20591 rs6000_builtin_is_supported_p, rs6000_invalid_builtin, 20592 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs, 20593 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper, 20594 fold_mergeeo_helper, rs6000_gimple_fold_builtin, 20595 rs6000_expand_builtin, rs6000_vector_type, 20596 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins, 20597 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins, 20598 rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move 20599 to here from rs6000.c. 20600 * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p, 20601 rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk, 20602 rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin, 20603 rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start, 20604 rs6000_gimplify_va_arg, rs6000_promote_function_mode, 20605 rs6000_return_in_memory, rs6000_return_in_msb, 20606 rs6000_pass_by_reference, setup_incoming_varargs, 20607 rs6000_function_arg_boundary, rs6000_must_pass_in_stack, 20608 rs6000_arg_partial_bytes, rs6000_function_arg_advance, 20609 rs6000_function_arg_padding, rs6000_function_arg, 20610 rs6000_darwin64_record_arg, rs6000_internal_arg_pointer, 20611 rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin, 20612 rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float, 20613 rs6000_passes_long_double, rs6000_passes_vector, 20614 rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type, 20615 altivec_builtin_mask_for_load) Add declarations. 20616 * config/rs6000/t-rs6000: Add new source file rs6000-call.c. 20617 * config/config.gcc: Add new source file rs6000-call.c to garbage 20618 collector and extra_objs. 20619 206202019-07-19 Jeff Law <law@redhat.com> 20621 20622 PR tree-optimization/86061 20623 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle 20624 strncpy. Drop some trivial dead code. 20625 (maybe_trim_memstar_call): Handle strncpy. 20626 206272019-07-19 Richard Biener <rguenther@suse.de> 20628 20629 PR tree-optimization/91211 20630 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix 20631 memset encoding size. 20632 206332019-07-19 Uroš Bizjak <ubizjak@gmail.com> 20634 20635 PR target/91204 20636 * config/i386/mmx.md (one_cmpl<mode>2): New expander. 20637 206382019-07-19 Jan Hubicka <hubicka@ucw.cz> 20639 20640 PR ipa/91194 20641 * ipa-inline.c (recursive_inlining): Fix limits check. 20642 206432019-07-19 Richard Biener <rguenther@suse.de> 20644 20645 PR tree-optimization/91200 20646 * tree-ssa-phiopt.c (cond_store_replacement): Check we have 20647 no PHI nodes in middle-bb. 20648 206492019-07-19 Richard Sandiford <richard.sandiford@arm.com> 20650 20651 * doc/invoke.texi: Rename the AArch64 +bitperm extension flag 20652 to +sve-bitperm. 20653 * config/aarch64/aarch64-option-extensions.def: Likewise. 20654 206552019-07-19 Jakub Jelinek <jakub@redhat.com> 20656 20657 PR middle-end/91190 20658 * function.c (insert_temp_slot_address): Store into the hash table 20659 a copy of address to avoid RTL sharing issues. 20660 206612019-07-19 Richard Biener <rguenther@suse.de> 20662 20663 PR tree-optimization/91207 20664 Revert 20665 2019-07-17 Richard Biener <rguenther@suse.de> 20666 20667 PR tree-optimization/91178 20668 * tree-vect-stmts.c (get_group_load_store_type): For SLP 20669 loads with a gap larger than the vector size always use 20670 VMAT_STRIDED_SLP. 20671 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation 20672 avoid loading vectors that are only contained in the gap 20673 and thus are not needed. 20674 206752019-07-18 Uroš Bizjak <ubizjak@gmail.com> 20676 20677 * config/i386/i386.md (*addqi_2_slp): Remove. 20678 (*<code>qi_2_slp): Ditto. 20679 206802019-07-18 Michael Meissner <meissner@linux.ibm.com> 20681 20682 * config/rs6000/predicates.md (prefixed_mem_operand): Call 20683 rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address. 20684 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p): 20685 Rename function from rs6000_prefixed_address. 20686 * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to 20687 TARGET_HAS_TOC. 20688 (TARGET_TOC): Likewise. 20689 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in 20690 rs6000.h. 20691 * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to 20692 TARGET_HAS_TOC. 20693 (TARGET_TOC): Likewise. 20694 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in 20695 rs6000.h. 20696 * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to 20697 TARGET_HAS_TOC. 20698 (TARGET_TOC): Likewise. 20699 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add 20700 check to require -mcmodel=medium for pc-relative addressing. 20701 (create_TOC_reference): Add assertion for TARGET_TOC. 20702 (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of 20703 TARGET_NO_TOC. 20704 (rs6000_emit_move): Likewise. 20705 (TOC_alias_set): Rename TOC alias set static variable from 'set' 20706 to 'TOC_alias_set'. 20707 (get_TOC_alias_set): Likewise. 20708 (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of 20709 TARGET_NO_TOC. 20710 (rs6000_can_eliminate): Likewise. 20711 (rs6000_prefixed_address_mode_p): Rename function from 20712 rs6000_prefixed_address. 20713 * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of 20714 TARGET_HAS_TOC and not pc-relative. 20715 (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC. 20716 * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to 20717 TARGET_HAS_TOC. 20718 (TARGET_TOC): Likewise. 20719 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in 20720 rs6000.h. 20721 207222019-07-18 Uroš Bizjak <ubizjak@gmail.com> 20723 20724 PR target/91188 20725 * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate 20726 for operand 0. Do not use (match_dup) to match operand 1 with 20727 operand 0. Add check in insn constraint that either input operand 20728 matches operand 0. Use SWI12 mode iterator to also handle 20729 HImode operands. 20730 (*and<mode>_1_slp): Ditto. 20731 (*<code>qi_1_slp): Ditto. 20732 (*sub<mode>_1_slp): Use register_operand predicate for operand 0. 20733 Do not use (match_dup) to match operand 1 with operand 0. Add 20734 check in insn constraint that operand 1 matches operand 0. 20735 Use SWI12 mode iterator to also handle HImode operands. 20736 (*ashl<mode>3_1_slp): Ditto. 20737 (*<shift_insn><mode>3_1_slp): Ditto. 20738 (*<rotate_insn><mode>3_1_slp): Ditto. 20739 207402019-07-18 Sylvia Taylor <sylvia.taylor@arm.com> 20741 20742 * config/arm/arm-builtins.c 20743 (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling. 20744 (arm_expand_unop_builtin): Likewise. 20745 * config/arm/crypto.md 20746 (crypto_sha1h): Convert from define_insn to define_expand. 20747 (crypto_<crypto_pattern>): Likewise. 20748 (crypto_sha1h_lb): New define_insn. 20749 (crypto_<crypto_pattern>_lb): Likewise. 20750 207512019-07-18 Sylvia Taylor <sylvia.taylor@arm.com> 20752 20753 PR target/90317 20754 * config/arm/arm_neon.h (vsha1h_u32): Refactor. 20755 (vsha1cq_u32): Likewise. 20756 (vsha1pq_u32): Likewise. 20757 (vsha1mq_u32): Likewise. 20758 * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct 20759 vec select. 20760 (crypto_sha1c): Correct vec select. 20761 (crypto_sha1m): Likewise. 20762 (crypto_sha1p): Likewise. 20763 207642019-07-18 Richard Earnshaw <rearnsha@arm.com> 20765 20766 * config/arm/predicates.md (arm_borrow_operation): New predicate. 20767 * config/arm/arm.c (subdi3_compare1): Use CCmode for the split. 20768 (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise. 20769 (subdi_zesidi_zesidi): Likewise. 20770 (negdi2_compare, negdi2_insn): Likewise. 20771 (negdi_extensidi): Likewise. 20772 (negdi_zero_extendsidi): Likewise. 20773 (arm_cmpdi_insn): Likewise. 20774 (subsi3_carryin): Use arm_borrow_operation. 20775 (subsi3_carryin_const): Likewise. 20776 (subsi3_carryin_const0): Likewise. 20777 (subsi3_carryin_compare): Likewise. 20778 (subsi3_carryin_compare_const): Likewise. 20779 (subsi3_carryin_compare_const0): Likewise. 20780 (subsi3_carryin_shift): Likewise. 20781 (rsbsi3_carryin_shift): Likewise. 20782 (negsi2_carryin_compare): Likewise. 20783 207842019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com> 20785 20786 PR tree-optimization/91137 20787 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field. 20788 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize): 20789 Init, use and fini the above new field. 20790 (determine_base_object_1): New function. 20791 (determine_base_object): Reimplement using walk_tree. 20792 207932019-07-18 Richard Sandiford <richard.sandiford@arm.com> 20794 20795 * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro. 20796 * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if 20797 CLEANUP_FORCE_FAST_DCE is set. 20798 * ifcvt.c (rest_of_handle_if_conversion): Pass 20799 CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if 20800 if-conversion succeeded. 20801 208022019-07-18 Richard Biener <rguenther@suse.de> 20803 20804 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor 20805 branches to make code less indented. 20806 208072019-07-17 Alexandre Oliva <oliva@adacore.com> 20808 20809 PR middle-end/81824 20810 * attribs.c (decls_mismatched_attributes): Simplify the logic 20811 that avoids duplicates and false positives. 20812 208132019-07-17 John David Anglin <danglin@gcc.gnu.org> 20814 20815 * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant 20816 data into data section when generating PIC code. 20817 (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs. 20818 (pa_reloc_rw_mask): Return 3 when generating PIC code and when 20819 generating code for SOM targets earlier than HP-UX 11. Otherwise, 20820 return 2 for SOM and 0 for other targets. 20821 208222019-07-17 Jeff Law <law@redhat.com> 20823 20824 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting. 20825 (dse_walker::dse_optimize_stmt): Likewise. Add missing return to 20826 avoid unexpected switch statement fallthru. 20827 208282019-07-17 Uroš Bizjak <ubizjak@gmail.com> 20829 20830 * config/i386/i386.md (*add<dwi>3_doubleword): 20831 Remove redundant constraints. 20832 (*add<mode>_1): Ditto. 20833 (*addhi_1): Ditto. 20834 (*addqi_1): Ditto. 20835 (*addqi_1_slp): Ditto. 20836 (*add<mode>_2): Ditto. 20837 (*addv<mode>4): Ditto. 20838 (*sub<dwi>3_doubleword): Ditto. 20839 (*sub<mode>_1): Ditto. 20840 (*subqi_1_slp): Ditto. 20841 (*sub<mode>_2): Ditto. 20842 (*subv<mode>4): Ditto. 20843 (*sub<mode>_3): Ditto. 20844 (@add<mode>3_carry): Ditto. 20845 (@sub<mode>3_carry): Ditto. 20846 (*add<mode>3_cc_overflow_1): Ditto. 20847 (*add<mode>3_zext_cc_overflow_2): Ditto. 20848 (*anddi_1): Ditto. 20849 (*and<mode>_1): Ditto. 20850 (*andqi_1): Ditto. 20851 (*andqi_1_slp): Ditto. 20852 (*anddi_2): Ditto. 20853 (*andqi_2_maybe_si): Ditto. 20854 (*and<mode>_2): Ditto. 20855 (*andqi_2_slp): Ditto. 20856 (*<code><mode>_1): Ditto. 20857 (*<code>qi_1): Ditto. 20858 (*<code>qi_1_slp): Ditto. 20859 (*<code><mode>_2): Ditto. 20860 (*<code>qi_2_slp): Ditto. 20861 208622019-07-17 Jan Hubicka <hubicka@ucw.cz> 20863 20864 * alias.c (record_component_aliases): Do not simplify pointed-to 20865 types of ODR types. 20866 208672019-07-17 Uroš Bizjak <ubizjak@gmail.com> 20868 20869 * config/i386/i386.md (*andqi_2_maybe_si): Handle potential 20870 partial reg stall on alternative 2. 20871 208722019-07-17 Richard Biener <rguenther@suse.de> 20873 20874 PR tree-optimization/91178 20875 * tree-ssa.c (release_defs_bitset): Iterate from higher to 20876 lower SSA names to avoid quadratic behavior in the common case. 20877 * tree-data-ref.c (split_constant_offset): Add limit argument 20878 and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT. 20879 (split_constant_offset_1): Add limit argument and use it to 20880 limit SSA def walking. Optimize the common plus/minus case. 20881 208822019-07-17 Richard Biener <rguenther@suse.de> 20883 20884 PR tree-optimization/91178 20885 * tree-vect-stmts.c (get_group_load_store_type): For SLP 20886 loads with a gap larger than the vector size always use 20887 VMAT_STRIDED_SLP. 20888 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation 20889 avoid loading vectors that are only contained in the gap 20890 and thus are not needed. 20891 208922019-07-17 Richard Biener <rguenther@suse.de> 20893 20894 PR tree-optimization/91180 20895 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset 20896 computation for memset partial defs. 20897 208982019-07-17 Jakub Jelinek <jakub@redhat.com> 20899 20900 * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change 20901 GF_OMP_FOR_KIND_SIMD to a value serially after other kinds, 20902 divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED, 20903 GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY, 20904 GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two. 20905 * omp-grid.c (grid_process_grid_body, 20906 grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead 20907 of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but 20908 == GF_OMP_FOR_KIND_SIMD. 20909 * omp-low.c (build_outer_var_ref, scan_sharing_clauses, 20910 check_omp_nesting_restrictions, scan_omp_1_stmt, 20911 lower_rec_input_clauses, lower_lastprivate_conditional_clauses, 20912 lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan, 20913 omp_find_scan): Likewise. 20914 * omp-expand.c (expand_omp_for): Likewise. 20915 * omp-general.c (omp_extract_for_data): Likewise. 20916 20917 PR tree-optimization/91157 20918 * tree-vect-generic.c (expand_vector_comparison): Handle lhs being 20919 a vector boolean with scalar mode. 20920 (expand_vector_condition): Handle first operand being a vector boolean 20921 with scalar mode. 20922 (expand_vector_operations_1): For comparisons, don't bail out early 20923 if the return type is vector boolean with scalar mode, but comparison 20924 operand type is not. 20925 209262019-07-17 Richard Biener <rguenther@suse.de> 20927 20928 PR tree-optimization/91181 20929 * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare 20930 IFN_LOADs as calls. 20931 209322019-07-16 Uroš Bizjak <ubizjak@gmail.com> 20933 20934 * config/i386/i386.md (*testdi_1): Match CCZmode for 20935 constants that might have the SImode sign bit set. 20936 (*testqi_1_maybe_si): Remove "!" constraint modifier. 20937 Use correct constraints for pentium pairing. 20938 (*test<mode>_1): Ditto. 20939 209402019-07-16 Jeff Law <law@redhat.com> 20941 20942 PR rtl-optimization/91173 20943 * tree-ssa-address.c (addr_for_mem_ref): If the base is an 20944 SSA_NAME with a constant value, fold its value into the offset 20945 and clear the base before calling gen_addr_rtx. 20946 209472019-07-16 Jakub Jelinek <jakub@redhat.com> 20948 20949 PR rtl-optimization/91164 20950 * dse.c (rest_of_handle_dse): If dead edges have been purged, 20951 invalidate dominance info. 20952 209532019-07-16 Richard Sandiford <richard.sandiford@arm.com> 20954 20955 * read-md.h (md_reader::record_potential_iterator_use): Add a 20956 file_location parameter. 20957 * read-rtl.c (attribute_use::loc): New field. 20958 (map_attr_string): Take a file_location parameter. Report cases 20959 in which attributes map to multiple distinct values. 20960 (apply_attribute_uses): Update call accordingly. 20961 (md_reader::handle_overloaded_name): Likewise. 20962 (md_reader::apply_iterator_to_string): Likewise. Skip empty 20963 nonnull strings. 20964 (record_attribute_use): Take a file_location parameter. 20965 Initialize attribute_use::loc. 20966 (md_reader::record_potential_iterator_use): Take a file_location 20967 parameter. Update call to record_attribute_use. 20968 (rtx_reader::rtx_alloc_for_name): Update call accordingly. 20969 (rtx_reader::read_rtx_code): Likewise. 20970 (rtx_reader::read_rtx_operand): Likewise. Record a location 20971 for implicitly-expanded empty strings. 20972 209732019-07-16 Richard Sandiford <richard.sandiford@arm.com> 20974 20975 * read-md.h (md_reader::ptr_loc): Moved from read-md.c. 20976 Use file_location instead of separate fields. 20977 (md_reader::set_md_ptr_loc): Take a file_location instead of a 20978 separate filename and line number. 20979 * read-md.c (ptr_loc): As above. 20980 (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout. 20981 (md_reader::fprint_md_ptr_loc): Likewise. 20982 (md_reader::set_md_ptr_loc): Likewise. Take a file_location 20983 instead of a separate filename and line number. 20984 (md_reader::read_string): Update call accordingly. 20985 209862019-07-16 Richard Sandiford <richard.sandiford@arm.com> 20987 20988 * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly 20989 use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than 20990 leaving the choice between SFDF and P implicit. 20991 (*mov<mode>_update2): Likewise. 20992 (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE> 20993 rather than leaving the choice betweem IBM128 and GPR implicit. 20994 (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use 20995 <IEEE128:MODE> rather than leaving the choice between IEEE128 and 20996 QHSI implicit. 20997 (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE> 20998 rather than leaving the choice between ALTIVEC_DFORM and P implicit. 20999 * config/rs6000/vsx.md 21000 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>) 21001 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly 21002 use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV 21003 and VSX_EXTRACT_I implicit. 21004 210052019-07-16 Richard Sandiford <richard.sandiford@arm.com> 21006 21007 * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>): 21008 Explicitly use <MOVEP1:MODE> for the mode attribute. 21009 210102019-07-16 Jan Hubicka <hubicka@ucw.cz> 21011 21012 PR bootstrap/91176 21013 * ipa-fnsummary.c (analyze_function_body): Skip debug stmts 21014 210152019-07-15 Segher Boessenkool <segher@kernel.crashing.org> 21016 21017 PR target/91050 21018 * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a 21019 .machine directive. 21020 210212019-07-15 Uroš Bizjak <ubizjak@gmail.com> 21022 21023 * config/i386/i386.md (@test<mode>_ccno_1): 21024 Rename from test<mode>_ccno_1. 21025 (*testdi_1): Remove redundant alternatives. Remove modrm attribute. 21026 (*testqi_1_maybe_si): Remove modrm attribute. 21027 (*test<mode>_1): Ditto. 21028 * config/i386/i386-expand.c (ix86_split_idivmod): Use 21029 gen_test_ccno_1 and gen_extend_insn. 21030 210312019-07-15 Jan Hubicka <hubicka@ucw.cz> 21032 21033 * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p 21034 to 0. 21035 210362019-07-15 Richard Biener <rguenther@suse.de> 21037 21038 PR middle-end/91162 21039 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI 21040 node make sure to replace all uses with something valid. 21041 210422019-07-15 Kewen Lin <linkw@gcc.gnu.org> 21043 21044 PR tree-optimization/88497 21045 * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of 21046 GIMPLE_BINARY_RHS check and gimple_visited_p check, call new 21047 function undistribute_bitref_for_vector. 21048 (undistribute_bitref_for_vector): New function. 21049 (cleanup_vinfo_map): Likewise. 21050 (sort_by_mach_mode): Likewise. 21051 210522019-07-14 Uroš Bizjak <ubizjak@gmail.com> 21053 21054 * config/i386/i386.md (nonmemory_szext_operand): New mode attribute. 21055 (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1 21056 and testdi_ccno_1 using SWI48 mode attribute. 21057 (*testdi_1): Use x86_64_szext_nonmemory_operand instead of 21058 x86_64_szext_general_operand. 21059 (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand. 21060 (*test<mode>_1): Use nonmemory_szext_operand mode attribute 21061 instead of genera_operand mode attribute. 21062 210632019-07-14 Vladislav Ivanishin <vlad@ispras.ru> 21064 21065 * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of 21066 fopen and fclose to their respective types. 21067 (DotFn.invoke): Ditto. 21068 210692019-07-14 Jan Hubicka <hubicka@ucw.cz> 21070 21071 * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index. 21072 (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index. 21073 (ipa_fn_summary_t::duplicate): Do not duplicate array_index. 21074 (array_index_predicate): Remove. 21075 (analyze_function_body): Account cost for variable ofsetted array 21076 indexing. 21077 (estimate_node_size_and_time): Do not compute array index hint. 21078 (ipa_merge_fn_summary_after_inlining): Do not merge array index hint. 21079 (inline_read_section): Do not read array index hint. 21080 (ipa_fn_summary_write): Do not write array index hint. 21081 * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove. 21082 * ipa-cp.c (hint_time_bonus): Remove. 21083 * ipa-fnsummary.h (ipa_hints_vals): Remove array_index. 21084 (ipa_fnsummary): Remove array_index. 21085 * ipa-inline.c (want_inline_small_function_p): Do not use 21086 array_index. 21087 (edge_badness): Likewise. 21088 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove. 21089 210902019-07-14 Segher Boessenkool <segher@kernel.crashing.org> 21091 21092 PR target/91148 21093 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove 21094 superfluous "builtin function" phrasing. 21095 210962019-07-13 Jan Hubicka <hubicka@ucw.cz> 21097 21098 * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p): 21099 Break out from ... 21100 (aliasing_component_refs_walk): Break out from ... 21101 (aliasing_component_refs_p): ... here. 21102 211032019-07-13 Segher Boessenkool <segher@kernel.crashing.org> 21104 21105 PR target/91148 21106 * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous 21107 "builtin function" phrasing. 21108 211092019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 21110 21111 PR target/90723 21112 * recog.h (temporary_volatile_ok): New class. 21113 * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set 21114 volatile_ok temporarily to true using temporary_volatile_ok. 21115 * expr.c (emit_block_move_via_cpymem): Likewise. 21116 * optabs.c (maybe_legitimize_operand): Likewise. 21117 211182019-07-13 Jakub Jelinek <jakub@redhat.com> 21119 21120 * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member. 21121 (omp_notice_threadprivate_variable): Diagnose threadprivate variable 21122 uses inside of order(concurrent) constructs. 21123 (gimplify_scan_omp_clauses): Set ctx->order_concurrent if 21124 OMP_CLAUSE_ORDER is seen. 21125 * omp-low.c (struct omp_context): Add order_concurrent member. 21126 (scan_sharing_clauses): Set ctx->order_concurrent if 21127 OMP_CLAUSE_ORDER is seen. 21128 (check_omp_nesting_restrictions): Diagnose ordered or atomic inside 21129 of simd order(concurrent). Diagnose constructs not allowed inside of 21130 for order(concurrent). 21131 (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid 21132 complaining about static double setjmp (double); or class static 21133 methods or non-global namespace setjmps. 21134 (omp_runtime_api_call): New function. 21135 (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of 21136 order(concurrent) loops. 21137 211382019-07-12 Martin Sebor <msebor@redhat.com> 21139 21140 * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param. 21141 * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param. 21142 * tree-vrp.c (vrp_prop::check_mem_ref): Use 21143 PARAM_SSA_NAME_DEF_CHAIN_LIMIT. 21144 211452019-07-12 Jan Hubicka <jh@suse.cz> 21146 21147 * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ... 21148 (indirect_refs_may_alias_p): ... here. 21149 (nonoverlapping_component_refs_since_match_p): Support also non-trivial 21150 mem refs in the access paths. 21151 211522019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com> 21153 21154 PR tree-optimization/89430 21155 * tree-ssa-phiopt.c (cond_store_replacement): Support conditional 21156 store elimination for local variable without address escape. 21157 211582019-07-12 Jeff Law <law@redhat.com> 21159 21160 * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE 21161 for the ".far" section. 21162 211632019-07-12 Richard Biener <rguenther@suse.de> 21164 21165 PR tree-optimization/91145 21166 * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction 21167 chain check. 21168 211692019-07-12 Alexandre Oliva <oliva@adacore.com> 21170 21171 * tree-eh.c (honor_protect_cleanup_actions): Use outer_ 21172 rather than this_state as the lowering context for the ELSE 21173 seq in a GIMPLE_EH_ELSE. 21174 211752019-07-12 Richard Sandiford <richard.sandiford@arm.com> 21176 21177 * vector-builder.h (vector_builder::elt): Allow already-supplied 21178 elements to be read back before building is complete. 21179 211802019-07-12 Eric Botcazou <ebotcazou@adacore.com> 21181 21182 PR rtl-optimization/91136 21183 * df-core.c (ACCESSING REFS): Fix typos in comment. 21184 * resource.c (mark_target_live_reg): Add artificial defs that occur at 21185 the beginning of the block to the initial set of live registers. 21186 211872019-07-12 Richard Biener <rguenther@suse.de> 21188 21189 * fold-const.h (get_array_ctor_element_at_index): Adjust. 21190 * fold-const.c (get_array_ctor_element_at_index): Add 21191 ctor_idx output parameter informing the caller where in 21192 the constructor the element was (not) found. Add early exit 21193 for when the ctor is sorted. 21194 * gimple-fold.c (fold_array_ctor_reference): Support constant 21195 folding across multiple array elements. 21196 211972019-07-12 Eric Botcazou <ebotcazou@adacore.com> 21198 21199 * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement 21200 doesn't have location, set the current location to the function's end. 21201 212022019-07-12 Richard Sandiford <richard.sandiford@arm.com> 21203 21204 * config/aarch64/aarch64.md (*compare_condjump<mode>) 21205 (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>) 21206 (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>) 21207 (*ands<mode>_compare0): Fix ambiguous uses of .md attributes. 21208 * config/aarch64/aarch64-simd.md 21209 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise. 21210 (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise. 21211 * config/aarch64/aarch64-sve.md 21212 (while_ult<GPI:mode><PRED_ALL:mode>): Likewise. 21213 (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo. 21214 212152019-07-12 Richard Sandiford <richard.sandiford@arm.com> 21216 21217 * doc/md.texi: Document that @ patterns can have different 21218 numbers of operands. 21219 * genemit.c (handle_overloaded_gen): Handle this case. 21220 * genopinit.c (handle_overloaded_gen): Likewise. 21221 * gensupport.c (replace_operands_with_dups): Iterate over 21222 the new rtx's format rather than the old one's. 21223 212242019-07-12 Jakub Jelinek <jakub@redhat.com> 21225 21226 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER. 21227 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add 21228 order clause entries. 21229 (walk_tree_1): Handle OMP_CLAUSE_ORDER. 21230 * tree-pretty-print.c (dump_omp_clause): Likewise. 21231 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): 21232 Likewise. 21233 * omp-low.c (scan_sharing_clauses): Likewise. 21234 * tree-nested.c (convert_nonlocal_omp_clauses, 21235 convert_local_omp_clauses): Likewise. 21236 212372019-07-12 Kewen Lin <linkw@gcc.gnu.org> 21238 21239 * cfgrtl.c (print_rtl_with_bb): Emit a hint if the 21240 fallthrough target of current basic block isn't the placed 21241 right next. 21242 212432019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com> 21244 21245 PR target/90980 21246 * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New. 21247 (_mm512_storeu_epi64): Likewise. 21248 (_mm512_loadu_epi32): Likewise. 21249 (_mm512_storeu_epi32): Likewise. 21250 * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New. 21251 (_mm_storeu_epi64): Likewise. 21252 (_mm256_storeu_epi32): Likewise. 21253 (_mm_storeu_epi32): Likewise. 21254 212552019-07-11 Segher Boessenkool <segher@kernel.crashing.org> 21256 21257 * config/rs6000/rs6000-logue.c: Add Modula-2 to comment. 21258 212592019-07-11 Segher Boessenkool <segher@kernel.crashing.org> 21260 21261 * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue): 21262 Handle Modula-2. 21263 212642019-07-11 Jakub Jelinek <jakub@redhat.com> 21265 21266 PR target/91124 21267 * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ... 21268 (sse2_cvtpd2dq): ... this. Remove mask substitution macros. 21269 (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns. 21270 (ufix_notruncv2dfv2si2<mask_name>): Change into ... 21271 (ufix_notruncv2dfv2si2): ... this. Remove mask substitution macros. 21272 (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New 21273 define_insns. 21274 (ufix_truncv2dfv2si2<mask_name>): Change into ... 21275 (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros. 21276 (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New 21277 define_insns. 21278 (sse2_cvttpd2dq<mask_name>): Change into ... 21279 (sse2_cvttpd2dq): ... this. Remove mask substitution macros. 21280 (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns. 21281 (*sse2_cvtpd2dq<mask_name>): Change into ... 21282 (*sse2_cvtpd2dq): ... this. Remove mask substitution macros. 21283 Add "C" constraint to const0_operand. 21284 (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns. 21285 (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask 21286 changes. 21287 21288 PR target/91124 21289 * config/i386/i386-builtin-types.def 21290 (V32HI_FTYPE_V32HI_V32HI_V32HI_INT, 21291 V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT, 21292 V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT, 21293 V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT, 21294 V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove. 21295 * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask, 21296 __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask, 21297 __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask, 21298 __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask, 21299 __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask, 21300 __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask, 21301 __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask, 21302 __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask, 21303 __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask, 21304 __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask, 21305 __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask, 21306 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask, 21307 __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask, 21308 __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask, 21309 __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask, 21310 __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask, 21311 __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask, 21312 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask, 21313 __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask, 21314 __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask, 21315 __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask, 21316 __builtin_ia32_vpdpbusd_v4si_maskz, 21317 __builtin_ia32_vpdpbusds_v16si_mask, 21318 __builtin_ia32_vpdpbusds_v16si_maskz, 21319 __builtin_ia32_vpdpbusds_v8si_mask, 21320 __builtin_ia32_vpdpbusds_v8si_maskz, 21321 __builtin_ia32_vpdpbusds_v4si_mask, 21322 __builtin_ia32_vpdpbusds_v4si_maskz, 21323 __builtin_ia32_vpdpwssd_v16si_mask, 21324 __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask, 21325 __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask, 21326 __builtin_ia32_vpdpwssd_v4si_maskz, 21327 __builtin_ia32_vpdpwssds_v16si_mask, 21328 __builtin_ia32_vpdpwssds_v16si_maskz, 21329 __builtin_ia32_vpdpwssds_v8si_mask, 21330 __builtin_ia32_vpdpwssds_v8si_maskz, 21331 __builtin_ia32_vpdpwssds_v4si_mask, 21332 __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI 21333 suffixed types rather than *_INT. 21334 * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle 21335 V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT, 21336 V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT, 21337 V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT, 21338 V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT 21339 and V4SI_FTYPE_V4SI_V4SI_V4SI_INT. 21340 213412019-07-11 Aldy Hernandez <aldyh@redhat.com> 21342 21343 * tree-vrp.c (intersect_ranges): If we know the intersection is 21344 empty, there is no need to conservatively add anything else to 21345 the set. 21346 213472019-07-11 Richard Biener <rguenther@suse.de> 21348 21349 PR middle-end/91131 21350 * gimplify.c (gimplify_compound_literal_expr): Force a temporary 21351 when the object is volatile and we have not cleared it even though 21352 there are no nonzero elements. 21353 213542019-07-10 Michael Meissner <meissner@linux.ibm.com> 21355 21356 * config/rs6000/predicates.md (cint34_operand): Update 21357 SIGNED_34BIT_OFFSET_P call. 21358 (pcrel_address): Update SIGNED_34BIT_OFFSET_P call. 21359 (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call. 21360 * config/rs6000/rs6000.c (rs6000_prefixed_address): Update 21361 SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls. 21362 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA 21363 argument. 21364 (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument. 21365 (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like 21366 SIGNED_16BIT_OFFSET_P with an EXTRA argument. 21367 (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like 21368 SIGNED_34BIT_OFFSET_P with an EXTRA argument. 21369 213702019-07-10 Iain Sandoe <iain@sandoe.co.uk> 21371 21372 * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here. 21373 * config/rs6000/darwin7.h (LIB_SPEC): Remove. 21374 * config/rs6000/darwin8.h (LIB_SPEC): Remove. 21375 (DEF_MIN_OSX_VERSION): New. 21376 213772019-07-10 Richard Sandiford <richard.sandiford@arm.com> 21378 21379 * fold-const.c (fold_relational_const): Fix folding of 21380 vector-to-scalar NE_EXPRs. 21381 (test_vector_folding): Add more tests. 21382 213832019-07-10 Richard Sandiford <richard.sandiford@arm.com> 21384 21385 PR target/91060 21386 * config/arm/iterators.md (V2DI_ONLY): New mode iterator. 21387 * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix. 21388 (vec_setv2di_internal): Reexpress as... 21389 (@vec_set<V2DI_ONLY:mode>_internal): ...this. 21390 * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal 21391 rather than gen_neon_vset_lane<mode>. 21392 213932019-07-10 Vladimir Makarov <vmakarov@redhat.com> 21394 21395 PR target/91102 21396 * lra-constraints.c (process_alt_operands): Don't match user 21397 defined regs only if they are early clobbers. 21398 213992019-07-10 Marc Glisse <marc.glisse@inria.fr> 21400 21401 * wide-int.h (wi::lshift): Reject negative values for the fast path. 21402 214032019-07-10 Richard Biener <rguenther@suse.de> 21404 21405 PR tree-optimization/91126 21406 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust 21407 native encoding offset for BYTES_BIG_ENDIAN. 21408 (vn_reference_lookup_3): Likewise. 21409 214102019-07-10 Richard Biener <rguenther@suse.de> 21411 21412 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized 21413 LHS whenever possible. 21414 214152019-07-09 Jan Hubicka <hubicka@ucw.cz> 21416 21417 * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out 21418 from ...; work also on duplicated types. 21419 (nonoverlapping_component_refs_since_match): ... here 21420 (ncr_type_uid): Break out from ... 21421 (ncr_compar): ... here; look for TYPE_UID of canonical type if 21422 available. 21423 (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match 21424 the types and nonoverlapping_component_refs_p_1 to disambiguate. 21425 214262019-07-09 Martin Sebor <msebor@redhat.com> 21427 21428 PR tree-optimization/90989 21429 * tree-ssa-strlen.c (handle_char_store): Constrain a single character 21430 optimization to just single character stores. 21431 214322019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com> 21433 21434 * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>: 21435 Swap operands only once. 21436 214372019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 21438 21439 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal 21440 for both call instructions. 21441 214422019-07-09 John Darrington <john@darrington.wattle.id.au> 21443 21444 * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION 21445 rather than GET_MODE_BITSIZE to better handle partial integer modes. 21446 214472019-07-09 Michael Meissner <meissner@linux.ibm.com> 21448 21449 * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete. 21450 * config/rs6000/rs6000-logue.c (create_TOC_reference): Move 21451 function from rs6000-logue.c back to rs6000.c. 21452 * config/rs6000/rs6000.c (create_TOC_reference): Likewise. 21453 214542019-07-09 Martin Sebor <msebor@redhat.com> 21455 21456 PR c++/61339 21457 * auto-profile.c: Change class-key of PODs to struct and others 21458 to class. 21459 * basic-block.h: Same. 21460 * bitmap.c (bitmap_alloc): Same. 21461 * bitmap.h: Same. 21462 * builtins.c (expand_builtin_prefetch): Same. 21463 (expand_builtin_interclass_mathfn): Same. 21464 (expand_builtin_strlen): Same. 21465 (expand_builtin_mempcpy_args): Same. 21466 (expand_cmpstr): Same. 21467 (expand_builtin___clear_cache): Same. 21468 (expand_ifn_atomic_bit_test_and): Same. 21469 (expand_builtin_thread_pointer): Same. 21470 (expand_builtin_set_thread_pointer): Same. 21471 * caller-save.c (setup_save_areas): Same. 21472 (replace_reg_with_saved_mem): Same. 21473 (insert_restore): Same. 21474 (insert_save): Same. 21475 (add_used_regs): Same. 21476 * cfg.c (get_bb_copy): Same. 21477 (set_loop_copy): Same. 21478 * cfg.h: Same. 21479 * cfganal.h: Same. 21480 * cfgexpand.c (alloc_stack_frame_space): Same. 21481 (add_stack_var): Same. 21482 (add_stack_var_conflict): Same. 21483 (add_scope_conflicts_1): Same. 21484 (update_alias_info_with_stack_vars): Same. 21485 (expand_used_vars): Same. 21486 * cfghooks.c (redirect_edge_and_branch_force): Same. 21487 (delete_basic_block): Same. 21488 (split_edge): Same. 21489 (make_forwarder_block): Same. 21490 (force_nonfallthru): Same. 21491 (duplicate_block): Same. 21492 (lv_flush_pending_stmts): Same. 21493 * cfghooks.h: Same. 21494 * cfgloop.c (flow_loops_cfg_dump): Same. 21495 (flow_loop_nested_p): Same. 21496 (superloop_at_depth): Same. 21497 (get_loop_latch_edges): Same. 21498 (flow_loop_dump): Same. 21499 (flow_loops_dump): Same. 21500 (flow_loops_free): Same. 21501 (flow_loop_nodes_find): Same. 21502 (establish_preds): Same. 21503 (flow_loop_tree_node_add): Same. 21504 (flow_loop_tree_node_remove): Same. 21505 (flow_loops_find): Same. 21506 (find_subloop_latch_edge_by_profile): Same. 21507 (find_subloop_latch_edge_by_ivs): Same. 21508 (mfb_redirect_edges_in_set): Same. 21509 (form_subloop): Same. 21510 (merge_latch_edges): Same. 21511 (disambiguate_multiple_latches): Same. 21512 (disambiguate_loops_with_multiple_latches): Same. 21513 (flow_bb_inside_loop_p): Same. 21514 (glb_enum_p): Same. 21515 (get_loop_body_with_size): Same. 21516 (get_loop_body): Same. 21517 (fill_sons_in_loop): Same. 21518 (get_loop_body_in_dom_order): Same. 21519 (get_loop_body_in_custom_order): Same. 21520 (release_recorded_exits): Same. 21521 (get_loop_exit_edges): Same. 21522 (num_loop_branches): Same. 21523 (remove_bb_from_loops): Same. 21524 (find_common_loop): Same. 21525 (delete_loop): Same. 21526 (cancel_loop): Same. 21527 (verify_loop_structure): Same. 21528 (loop_preheader_edge): Same. 21529 (loop_exit_edge_p): Same. 21530 (single_exit): Same. 21531 (loop_exits_to_bb_p): Same. 21532 (loop_exits_from_bb_p): Same. 21533 (get_loop_location): Same. 21534 (record_niter_bound): Same. 21535 (get_estimated_loop_iterations_int): Same. 21536 (max_stmt_executions_int): Same. 21537 (likely_max_stmt_executions_int): Same. 21538 (get_estimated_loop_iterations): Same. 21539 (get_max_loop_iterations): Same. 21540 (get_max_loop_iterations_int): Same. 21541 (get_likely_max_loop_iterations): Same. 21542 * cfgloop.h (simple_loop_desc): Same. 21543 (get_loop): Same. 21544 (loop_depth): Same. 21545 (loop_outer): Same. 21546 (loop_iterator::next): Same. 21547 (loop_outermost): Same. 21548 * cfgloopanal.c (mark_irreducible_loops): Same. 21549 (num_loop_insns): Same. 21550 (average_num_loop_insns): Same. 21551 (expected_loop_iterations_unbounded): Same. 21552 (expected_loop_iterations): Same. 21553 (mark_loop_exit_edges): Same. 21554 (single_likely_exit): Same. 21555 * cfgloopmanip.c (fix_bb_placement): Same. 21556 (fix_bb_placements): Same. 21557 (remove_path): Same. 21558 (place_new_loop): Same. 21559 (add_loop): Same. 21560 (scale_loop_frequencies): Same. 21561 (scale_loop_profile): Same. 21562 (create_empty_if_region_on_edge): Same. 21563 (create_empty_loop_on_edge): Same. 21564 (loopify): Same. 21565 (unloop): Same. 21566 (fix_loop_placements): Same. 21567 (copy_loop_info): Same. 21568 (duplicate_loop): Same. 21569 (duplicate_subloops): Same. 21570 (loop_redirect_edge): Same. 21571 (can_duplicate_loop_p): Same. 21572 (duplicate_loop_to_header_edge): Same. 21573 (mfb_keep_just): Same. 21574 (has_preds_from_loop): Same. 21575 (create_preheader): Same. 21576 (create_preheaders): Same. 21577 (lv_adjust_loop_entry_edge): Same. 21578 (loop_version): Same. 21579 * cfgloopmanip.h: Same. 21580 * cgraph.h: Same. 21581 * cgraphbuild.c: Same. 21582 * combine.c (make_extraction): Same. 21583 * config/i386/i386-features.c: Same. 21584 * config/i386/i386-features.h: Same. 21585 * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same. 21586 (ix86_emit_outlined_ms2sysv_restore): Same. 21587 (ix86_noce_conversion_profitable_p): Same. 21588 (ix86_init_cost): Same. 21589 (ix86_simd_clone_usable): Same. 21590 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and 21591 Wstruct-not-pod. 21592 * coretypes.h: Same. 21593 * data-streamer-in.c (string_for_index): Change class-key of PODs 21594 to struct and others to class. 21595 (streamer_read_indexed_string): Same. 21596 (streamer_read_string): Same. 21597 (bp_unpack_indexed_string): Same. 21598 (bp_unpack_string): Same. 21599 (streamer_read_uhwi): Same. 21600 (streamer_read_hwi): Same. 21601 (streamer_read_gcov_count): Same. 21602 (streamer_read_wide_int): Same. 21603 * data-streamer.h (streamer_write_bitpack): Same. 21604 (bp_unpack_value): Same. 21605 (streamer_write_char_stream): Same. 21606 (streamer_write_hwi_in_range): Same. 21607 (streamer_write_record_start): Same. 21608 * ddg.c (create_ddg_dep_from_intra_loop_link): Same. 21609 (add_cross_iteration_register_deps): Same. 21610 (build_intra_loop_deps): Same. 21611 * df-core.c (df_analyze): Same. 21612 (loop_post_order_compute): Same. 21613 (loop_inverted_post_order_compute): Same. 21614 * df-problems.c (df_rd_alloc): Same. 21615 (df_rd_simulate_one_insn): Same. 21616 (df_rd_local_compute): Same. 21617 (df_rd_init_solution): Same. 21618 (df_rd_confluence_n): Same. 21619 (df_rd_transfer_function): Same. 21620 (df_rd_free): Same. 21621 (df_rd_dump_defs_set): Same. 21622 (df_rd_top_dump): Same. 21623 (df_lr_alloc): Same. 21624 (df_lr_reset): Same. 21625 (df_lr_local_compute): Same. 21626 (df_lr_init): Same. 21627 (df_lr_confluence_n): Same. 21628 (df_lr_free): Same. 21629 (df_lr_top_dump): Same. 21630 (df_lr_verify_transfer_functions): Same. 21631 (df_live_alloc): Same. 21632 (df_live_reset): Same. 21633 (df_live_init): Same. 21634 (df_live_confluence_n): Same. 21635 (df_live_finalize): Same. 21636 (df_live_free): Same. 21637 (df_live_top_dump): Same. 21638 (df_live_verify_transfer_functions): Same. 21639 (df_mir_alloc): Same. 21640 (df_mir_reset): Same. 21641 (df_mir_init): Same. 21642 (df_mir_confluence_n): Same. 21643 (df_mir_free): Same. 21644 (df_mir_top_dump): Same. 21645 (df_word_lr_alloc): Same. 21646 (df_word_lr_reset): Same. 21647 (df_word_lr_init): Same. 21648 (df_word_lr_confluence_n): Same. 21649 (df_word_lr_free): Same. 21650 (df_word_lr_top_dump): Same. 21651 (df_md_alloc): Same. 21652 (df_md_simulate_one_insn): Same. 21653 (df_md_reset): Same. 21654 (df_md_init): Same. 21655 (df_md_free): Same. 21656 (df_md_top_dump): Same. 21657 * df-scan.c (df_insn_delete): Same. 21658 (df_insn_rescan): Same. 21659 (df_notes_rescan): Same. 21660 (df_sort_and_compress_mws): Same. 21661 (df_install_mws): Same. 21662 (df_refs_add_to_chains): Same. 21663 (df_ref_create_structure): Same. 21664 (df_ref_record): Same. 21665 (df_def_record_1): Same. 21666 (df_find_hard_reg_defs): Same. 21667 (df_uses_record): Same. 21668 (df_get_conditional_uses): Same. 21669 (df_get_call_refs): Same. 21670 (df_recompute_luids): Same. 21671 (df_get_entry_block_def_set): Same. 21672 (df_entry_block_defs_collect): Same. 21673 (df_get_exit_block_use_set): Same. 21674 (df_exit_block_uses_collect): Same. 21675 (df_mws_verify): Same. 21676 (df_bb_verify): Same. 21677 * df.h (df_scan_get_bb_info): Same. 21678 * doc/tm.texi: Same. 21679 * dse.c (record_store): Same. 21680 * dumpfile.h: Same. 21681 * emit-rtl.c (const_fixed_hasher::equal): Same. 21682 (set_mem_attributes_minus_bitpos): Same. 21683 (change_address): Same. 21684 (adjust_address_1): Same. 21685 (offset_address): Same. 21686 * emit-rtl.h: Same. 21687 * except.c (dw2_build_landing_pads): Same. 21688 (sjlj_emit_dispatch_table): Same. 21689 * explow.c (allocate_dynamic_stack_space): Same. 21690 (emit_stack_probe): Same. 21691 (probe_stack_range): Same. 21692 * expmed.c (store_bit_field_using_insv): Same. 21693 (store_bit_field_1): Same. 21694 (store_integral_bit_field): Same. 21695 (extract_bit_field_using_extv): Same. 21696 (extract_bit_field_1): Same. 21697 (emit_cstore): Same. 21698 * expr.c (emit_block_move_via_cpymem): Same. 21699 (expand_cmpstrn_or_cmpmem): Same. 21700 (set_storage_via_setmem): Same. 21701 (emit_single_push_insn_1): Same. 21702 (expand_assignment): Same. 21703 (store_constructor): Same. 21704 (expand_expr_real_2): Same. 21705 (expand_expr_real_1): Same. 21706 (try_casesi): Same. 21707 * flags.h: Same. 21708 * function.c (try_fit_stack_local): Same. 21709 (assign_stack_local_1): Same. 21710 (assign_stack_local): Same. 21711 (cut_slot_from_list): Same. 21712 (insert_slot_to_list): Same. 21713 (max_slot_level): Same. 21714 (move_slot_to_level): Same. 21715 (temp_address_hasher::equal): Same. 21716 (remove_unused_temp_slot_addresses): Same. 21717 (assign_temp): Same. 21718 (combine_temp_slots): Same. 21719 (update_temp_slot_address): Same. 21720 (preserve_temp_slots): Same. 21721 * function.h: Same. 21722 * fwprop.c: Same. 21723 * gcc-rich-location.h: Same. 21724 * gcov.c: Same. 21725 * genattrtab.c (check_attr_test): Same. 21726 (check_attr_value): Same. 21727 (convert_set_attr_alternative): Same. 21728 (convert_set_attr): Same. 21729 (check_defs): Same. 21730 (copy_boolean): Same. 21731 (get_attr_value): Same. 21732 (expand_delays): Same. 21733 (make_length_attrs): Same. 21734 (min_fn): Same. 21735 (make_alternative_compare): Same. 21736 (simplify_test_exp): Same. 21737 (tests_attr_p): Same. 21738 (get_attr_order): Same. 21739 (clear_struct_flag): Same. 21740 (gen_attr): Same. 21741 (compares_alternatives_p): Same. 21742 (gen_insn): Same. 21743 (gen_delay): Same. 21744 (find_attrs_to_cache): Same. 21745 (write_test_expr): Same. 21746 (walk_attr_value): Same. 21747 (write_attr_get): Same. 21748 (eliminate_known_true): Same. 21749 (write_insn_cases): Same. 21750 (write_attr_case): Same. 21751 (write_attr_valueq): Same. 21752 (write_attr_value): Same. 21753 (write_dummy_eligible_delay): Same. 21754 (next_comma_elt): Same. 21755 (find_attr): Same. 21756 (make_internal_attr): Same. 21757 (copy_rtx_unchanging): Same. 21758 (gen_insn_reserv): Same. 21759 (check_tune_attr): Same. 21760 (make_automaton_attrs): Same. 21761 (handle_arg): Same. 21762 * genextract.c (gen_insn): Same. 21763 (VEC_char_to_string): Same. 21764 * genmatch.c (print_operand): Same. 21765 (lower): Same. 21766 (parser::parse_operation): Same. 21767 (parser::parse_capture): Same. 21768 (parser::parse_c_expr): Same. 21769 (parser::parse_simplify): Same. 21770 (main): Same. 21771 * genoutput.c (output_operand_data): Same. 21772 (output_get_insn_name): Same. 21773 (compare_operands): Same. 21774 (place_operands): Same. 21775 (process_template): Same. 21776 (validate_insn_alternatives): Same. 21777 (validate_insn_operands): Same. 21778 (gen_expand): Same. 21779 (note_constraint): Same. 21780 * genpreds.c (write_one_predicate_function): Same. 21781 (add_constraint): Same. 21782 (process_define_register_constraint): Same. 21783 (write_lookup_constraint_1): Same. 21784 (write_lookup_constraint_array): Same. 21785 (write_insn_constraint_len): Same. 21786 (write_reg_class_for_constraint_1): Same. 21787 (write_constraint_satisfied_p_array): Same. 21788 * genrecog.c (optimize_subroutine_group): Same. 21789 * gensupport.c (process_define_predicate): Same. 21790 (queue_pattern): Same. 21791 (remove_from_queue): Same. 21792 (process_rtx): Same. 21793 (is_predicable): Same. 21794 (change_subst_attribute): Same. 21795 (subst_pattern_match): Same. 21796 (alter_constraints): Same. 21797 (alter_attrs_for_insn): Same. 21798 (shift_output_template): Same. 21799 (alter_output_for_subst_insn): Same. 21800 (process_one_cond_exec): Same. 21801 (subst_dup): Same. 21802 (process_define_cond_exec): Same. 21803 (mnemonic_htab_callback): Same. 21804 (gen_mnemonic_attr): Same. 21805 (read_md_rtx): Same. 21806 * ggc-page.c: Same. 21807 * gimple-loop-interchange.cc (dump_reduction): Same. 21808 (dump_induction): Same. 21809 (loop_cand::~loop_cand): Same. 21810 (free_data_refs_with_aux): Same. 21811 (tree_loop_interchange::interchange_loops): Same. 21812 (tree_loop_interchange::map_inductions_to_loop): Same. 21813 (tree_loop_interchange::move_code_to_inner_loop): Same. 21814 (compute_access_stride): Same. 21815 (compute_access_strides): Same. 21816 (proper_loop_form_for_interchange): Same. 21817 (tree_loop_interchange_compute_ddrs): Same. 21818 (prune_datarefs_not_in_loop): Same. 21819 (prepare_data_references): Same. 21820 (pass_linterchange::execute): Same. 21821 * gimple-loop-jam.c (bb_prevents_fusion_p): Same. 21822 (unroll_jam_possible_p): Same. 21823 (fuse_loops): Same. 21824 (adjust_unroll_factor): Same. 21825 (tree_loop_unroll_and_jam): Same. 21826 * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same. 21827 (loop_versioning::expensive_stmt_p): Same. 21828 (loop_versioning::version_for_unity): Same. 21829 (loop_versioning::dump_inner_likelihood): Same. 21830 (loop_versioning::find_per_loop_multiplication): Same. 21831 (loop_versioning::analyze_term_using_scevs): Same. 21832 (loop_versioning::record_address_fragment): Same. 21833 (loop_versioning::analyze_expr): Same. 21834 (loop_versioning::analyze_blocks): Same. 21835 (loop_versioning::prune_conditions): Same. 21836 (loop_versioning::merge_loop_info): Same. 21837 (loop_versioning::add_loop_to_queue): Same. 21838 (loop_versioning::decide_whether_loop_is_versionable): Same. 21839 (loop_versioning::make_versioning_decisions): Same. 21840 (loop_versioning::implement_versioning_decisions): Same. 21841 * gimple-ssa-evrp-analyze.c 21842 (evrp_range_analyzer::record_ranges_from_phis): Same. 21843 * gimple-ssa-store-merging.c (split_store::split_store): Same. 21844 (count_multiple_uses): Same. 21845 (split_group): Same. 21846 (imm_store_chain_info::output_merged_store): Same. 21847 (pass_store_merging::process_store): Same. 21848 * gimple-ssa-strength-reduction.c (slsr_process_phi): Same. 21849 * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same. 21850 (is_max): Same. 21851 (alloca_call_type): Same. 21852 (pass_walloca::execute): Same. 21853 * gimple-streamer-in.c (input_phi): Same. 21854 (input_gimple_stmt): Same. 21855 * gimple-streamer.h: Same. 21856 * godump.c (go_force_record_alignment): Same. 21857 (go_format_type): Same. 21858 (go_output_type): Same. 21859 (go_output_fndecl): Same. 21860 (go_output_typedef): Same. 21861 (keyword_hash_init): Same. 21862 (find_dummy_types): Same. 21863 * graph.c (draw_cfg_nodes_no_loops): Same. 21864 (draw_cfg_nodes_for_loop): Same. 21865 * hard-reg-set.h (hard_reg_set_iter_next): Same. 21866 * hsa-brig.c: Same. 21867 * hsa-common.h (hsa_internal_fn_hasher::equal): Same. 21868 * hsa-dump.c (dump_hsa_cfun): Same. 21869 * hsa-gen.c (gen_function_def_parameters): Same. 21870 * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same. 21871 * input.c (dump_line_table_statistics): Same. 21872 (test_lexer): Same. 21873 * input.h: Same. 21874 * internal-fn.c (get_multi_vector_move): Same. 21875 (expand_load_lanes_optab_fn): Same. 21876 (expand_GOMP_SIMT_ENTER_ALLOC): Same. 21877 (expand_GOMP_SIMT_EXIT): Same. 21878 (expand_GOMP_SIMT_LAST_LANE): Same. 21879 (expand_GOMP_SIMT_ORDERED_PRED): Same. 21880 (expand_GOMP_SIMT_VOTE_ANY): Same. 21881 (expand_GOMP_SIMT_XCHG_BFLY): Same. 21882 (expand_GOMP_SIMT_XCHG_IDX): Same. 21883 (expand_addsub_overflow): Same. 21884 (expand_neg_overflow): Same. 21885 (expand_mul_overflow): Same. 21886 (expand_call_mem_ref): Same. 21887 (expand_mask_load_optab_fn): Same. 21888 (expand_scatter_store_optab_fn): Same. 21889 (expand_gather_load_optab_fn): Same. 21890 * ipa-cp.c (ipa_get_parm_lattices): Same. 21891 (print_all_lattices): Same. 21892 (ignore_edge_p): Same. 21893 (build_toporder_info): Same. 21894 (free_toporder_info): Same. 21895 (push_node_to_stack): Same. 21896 (ipcp_lattice<valtype>::set_contains_variable): Same. 21897 (set_agg_lats_to_bottom): Same. 21898 (ipcp_bits_lattice::meet_with): Same. 21899 (set_single_call_flag): Same. 21900 (initialize_node_lattices): Same. 21901 (ipa_get_jf_ancestor_result): Same. 21902 (ipcp_verify_propagated_values): Same. 21903 (propagate_scalar_across_jump_function): Same. 21904 (propagate_context_across_jump_function): Same. 21905 (propagate_bits_across_jump_function): Same. 21906 (ipa_vr_operation_and_type_effects): Same. 21907 (propagate_vr_across_jump_function): Same. 21908 (set_check_aggs_by_ref): Same. 21909 (set_chain_of_aglats_contains_variable): Same. 21910 (merge_aggregate_lattices): Same. 21911 (agg_pass_through_permissible_p): Same. 21912 (propagate_aggs_across_jump_function): Same. 21913 (call_passes_through_thunk_p): Same. 21914 (propagate_constants_across_call): Same. 21915 (devirtualization_time_bonus): Same. 21916 (good_cloning_opportunity_p): Same. 21917 (context_independent_aggregate_values): Same. 21918 (gather_context_independent_values): Same. 21919 (perform_estimation_of_a_value): Same. 21920 (estimate_local_effects): Same. 21921 (value_topo_info<valtype>::add_val): Same. 21922 (add_all_node_vals_to_toposort): Same. 21923 (value_topo_info<valtype>::propagate_effects): Same. 21924 (ipcp_propagate_stage): Same. 21925 (ipcp_discover_new_direct_edges): Same. 21926 (same_node_or_its_all_contexts_clone_p): Same. 21927 (cgraph_edge_brings_value_p): Same. 21928 (gather_edges_for_value): Same. 21929 (create_specialized_node): Same. 21930 (find_more_scalar_values_for_callers_subset): Same. 21931 (find_more_contexts_for_caller_subset): Same. 21932 (copy_plats_to_inter): Same. 21933 (intersect_aggregates_with_edge): Same. 21934 (find_aggregate_values_for_callers_subset): Same. 21935 (cgraph_edge_brings_all_agg_vals_for_node): Same. 21936 (decide_about_value): Same. 21937 (decide_whether_version_node): Same. 21938 (spread_undeadness): Same. 21939 (identify_dead_nodes): Same. 21940 (ipcp_store_vr_results): Same. 21941 * ipa-devirt.c (final_warning_record::grow_type_warnings): Same. 21942 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same. 21943 (redirect_to_unreachable): Same. 21944 (edge_set_predicate): Same. 21945 (evaluate_conditions_for_known_args): Same. 21946 (evaluate_properties_for_edge): Same. 21947 (ipa_fn_summary_t::duplicate): Same. 21948 (ipa_call_summary_t::duplicate): Same. 21949 (dump_ipa_call_summary): Same. 21950 (ipa_dump_fn_summary): Same. 21951 (eliminated_by_inlining_prob): Same. 21952 (set_cond_stmt_execution_predicate): Same. 21953 (set_switch_stmt_execution_predicate): Same. 21954 (compute_bb_predicates): Same. 21955 (will_be_nonconstant_expr_predicate): Same. 21956 (phi_result_unknown_predicate): Same. 21957 (analyze_function_body): Same. 21958 (compute_fn_summary): Same. 21959 (estimate_edge_devirt_benefit): Same. 21960 (estimate_edge_size_and_time): Same. 21961 (estimate_calls_size_and_time): Same. 21962 (estimate_node_size_and_time): Same. 21963 (remap_edge_change_prob): Same. 21964 (remap_edge_summaries): Same. 21965 (ipa_merge_fn_summary_after_inlining): Same. 21966 (ipa_fn_summary_generate): Same. 21967 (inline_read_section): Same. 21968 (ipa_fn_summary_read): Same. 21969 (ipa_fn_summary_write): Same. 21970 * ipa-fnsummary.h: Same. 21971 * ipa-hsa.c (ipa_hsa_read_section): Same. 21972 * ipa-icf-gimple.c (func_checker::compare_loops): Same. 21973 * ipa-icf.c (sem_function::param_used_p): Same. 21974 * ipa-inline-analysis.c (do_estimate_edge_time): Same. 21975 * ipa-inline.c (edge_badness): Same. 21976 (inline_small_functions): Same. 21977 * ipa-polymorphic-call.c 21978 (ipa_polymorphic_call_context::stream_out): Same. 21979 * ipa-predicate.c (predicate::remap_after_duplication): Same. 21980 (predicate::remap_after_inlining): Same. 21981 (predicate::stream_out): Same. 21982 * ipa-predicate.h: Same. 21983 * ipa-profile.c (ipa_profile_read_summary): Same. 21984 * ipa-prop.c (ipa_get_param_decl_index_1): Same. 21985 (count_formal_params): Same. 21986 (ipa_dump_param): Same. 21987 (ipa_alloc_node_params): Same. 21988 (ipa_print_node_jump_functions_for_edge): Same. 21989 (ipa_print_node_jump_functions): Same. 21990 (ipa_load_from_parm_agg): Same. 21991 (get_ancestor_addr_info): Same. 21992 (ipa_compute_jump_functions_for_edge): Same. 21993 (ipa_analyze_virtual_call_uses): Same. 21994 (ipa_analyze_stmt_uses): Same. 21995 (ipa_analyze_params_uses_in_bb): Same. 21996 (update_jump_functions_after_inlining): Same. 21997 (try_decrement_rdesc_refcount): Same. 21998 (ipa_impossible_devirt_target): Same. 21999 (update_indirect_edges_after_inlining): Same. 22000 (combine_controlled_uses_counters): Same. 22001 (ipa_edge_args_sum_t::duplicate): Same. 22002 (ipa_write_jump_function): Same. 22003 (ipa_write_indirect_edge_info): Same. 22004 (ipa_write_node_info): Same. 22005 (ipa_read_edge_info): Same. 22006 (ipa_prop_read_section): Same. 22007 (read_replacements_section): Same. 22008 * ipa-prop.h (ipa_get_param_count): Same. 22009 (ipa_get_param): Same. 22010 (ipa_get_type): Same. 22011 (ipa_get_param_move_cost): Same. 22012 (ipa_set_param_used): Same. 22013 (ipa_get_controlled_uses): Same. 22014 (ipa_set_controlled_uses): Same. 22015 (ipa_get_cs_argument_count): Same. 22016 * ipa-pure-const.c (analyze_function): Same. 22017 (pure_const_read_summary): Same. 22018 * ipa-ref.h: Same. 22019 * ipa-reference.c (ipa_reference_read_optimization_summary): Same. 22020 * ipa-split.c (test_nonssa_use): Same. 22021 (dump_split_point): Same. 22022 (dominated_by_forbidden): Same. 22023 (split_part_set_ssa_name_p): Same. 22024 (find_split_points): Same. 22025 * ira-build.c (finish_loop_tree_nodes): Same. 22026 (low_pressure_loop_node_p): Same. 22027 * ira-color.c (ira_reuse_stack_slot): Same. 22028 * ira-int.h: Same. 22029 * ira.c (setup_reg_equiv): Same. 22030 (print_insn_chain): Same. 22031 (ira): Same. 22032 * loop-doloop.c (doloop_condition_get): Same. 22033 (add_test): Same. 22034 (record_reg_sets): Same. 22035 (doloop_optimize): Same. 22036 * loop-init.c (loop_optimizer_init): Same. 22037 (fix_loop_structure): Same. 22038 * loop-invariant.c (merge_identical_invariants): Same. 22039 (compute_always_reached): Same. 22040 (find_exits): Same. 22041 (may_assign_reg_p): Same. 22042 (find_invariants_bb): Same. 22043 (find_invariants_body): Same. 22044 (replace_uses): Same. 22045 (can_move_invariant_reg): Same. 22046 (free_inv_motion_data): Same. 22047 (move_single_loop_invariants): Same. 22048 (change_pressure): Same. 22049 (mark_ref_regs): Same. 22050 (calculate_loop_reg_pressure): Same. 22051 * loop-iv.c (biv_entry_hasher::equal): Same. 22052 (iv_extend_to_rtx_code): Same. 22053 (check_iv_ref_table_size): Same. 22054 (clear_iv_info): Same. 22055 (latch_dominating_def): Same. 22056 (iv_get_reaching_def): Same. 22057 (iv_constant): Same. 22058 (iv_subreg): Same. 22059 (iv_extend): Same. 22060 (iv_neg): Same. 22061 (iv_add): Same. 22062 (iv_mult): Same. 22063 (get_biv_step): Same. 22064 (record_iv): Same. 22065 (analyzed_for_bivness_p): Same. 22066 (record_biv): Same. 22067 (iv_analyze_biv): Same. 22068 (iv_analyze_expr): Same. 22069 (iv_analyze_def): Same. 22070 (iv_analyze_op): Same. 22071 (iv_analyze): Same. 22072 (iv_analyze_result): Same. 22073 (biv_p): Same. 22074 (eliminate_implied_conditions): Same. 22075 (simplify_using_initial_values): Same. 22076 (shorten_into_mode): Same. 22077 (canonicalize_iv_subregs): Same. 22078 (determine_max_iter): Same. 22079 (check_simple_exit): Same. 22080 (find_simple_exit): Same. 22081 (get_simple_loop_desc): Same. 22082 * loop-unroll.c (report_unroll): Same. 22083 (decide_unrolling): Same. 22084 (unroll_loops): Same. 22085 (loop_exit_at_end_p): Same. 22086 (decide_unroll_constant_iterations): Same. 22087 (unroll_loop_constant_iterations): Same. 22088 (compare_and_jump_seq): Same. 22089 (unroll_loop_runtime_iterations): Same. 22090 (decide_unroll_stupid): Same. 22091 (unroll_loop_stupid): Same. 22092 (referenced_in_one_insn_in_loop_p): Same. 22093 (reset_debug_uses_in_loop): Same. 22094 (analyze_iv_to_split_insn): Same. 22095 * lra-eliminations.c (lra_debug_elim_table): Same. 22096 (setup_can_eliminate): Same. 22097 (form_sum): Same. 22098 (lra_get_elimination_hard_regno): Same. 22099 (lra_eliminate_regs_1): Same. 22100 (eliminate_regs_in_insn): Same. 22101 (update_reg_eliminate): Same. 22102 (init_elimination): Same. 22103 (lra_eliminate): Same. 22104 * lra-int.h: Same. 22105 * lra-lives.c (initiate_live_solver): Same. 22106 * lra-remat.c (create_remat_bb_data): Same. 22107 * lra-spills.c (lra_spill): Same. 22108 * lra.c (lra_set_insn_recog_data): Same. 22109 (lra_set_used_insn_alternative_by_uid): Same. 22110 (init_reg_info): Same. 22111 (expand_reg_info): Same. 22112 * lto-cgraph.c (output_symtab): Same. 22113 (read_identifier): Same. 22114 (get_alias_symbol): Same. 22115 (input_node): Same. 22116 (input_varpool_node): Same. 22117 (input_ref): Same. 22118 (input_edge): Same. 22119 (input_cgraph_1): Same. 22120 (input_refs): Same. 22121 (input_symtab): Same. 22122 (input_offload_tables): Same. 22123 (output_cgraph_opt_summary): Same. 22124 (input_edge_opt_summary): Same. 22125 (input_cgraph_opt_section): Same. 22126 * lto-section-in.c (lto_free_raw_section_data): Same. 22127 (lto_create_simple_input_block): Same. 22128 (lto_free_function_in_decl_state_for_node): Same. 22129 * lto-streamer-in.c (lto_tag_check_set): Same. 22130 (lto_location_cache::revert_location_cache): Same. 22131 (lto_location_cache::input_location): Same. 22132 (lto_input_location): Same. 22133 (stream_input_location_now): Same. 22134 (lto_input_tree_ref): Same. 22135 (lto_input_eh_catch_list): Same. 22136 (input_eh_region): Same. 22137 (lto_init_eh): Same. 22138 (make_new_block): Same. 22139 (input_cfg): Same. 22140 (fixup_call_stmt_edges): Same. 22141 (input_struct_function_base): Same. 22142 (input_function): Same. 22143 (lto_read_body_or_constructor): Same. 22144 (lto_read_tree_1): Same. 22145 (lto_read_tree): Same. 22146 (lto_input_scc): Same. 22147 (lto_input_tree_1): Same. 22148 (lto_input_toplevel_asms): Same. 22149 (lto_input_mode_table): Same. 22150 (lto_reader_init): Same. 22151 (lto_data_in_create): Same. 22152 * lto-streamer-out.c (output_cfg): Same. 22153 * lto-streamer.h: Same. 22154 * modulo-sched.c (duplicate_insns_of_cycles): Same. 22155 (generate_prolog_epilog): Same. 22156 (mark_loop_unsched): Same. 22157 (dump_insn_location): Same. 22158 (loop_canon_p): Same. 22159 (sms_schedule): Same. 22160 * omp-expand.c (expand_omp_for_ordered_loops): Same. 22161 (expand_omp_for_generic): Same. 22162 (expand_omp_for_static_nochunk): Same. 22163 (expand_omp_for_static_chunk): Same. 22164 (expand_omp_simd): Same. 22165 (expand_omp_taskloop_for_inner): Same. 22166 (expand_oacc_for): Same. 22167 (expand_omp_atomic_pipeline): Same. 22168 (mark_loops_in_oacc_kernels_region): Same. 22169 * omp-offload.c (oacc_xform_loop): Same. 22170 * omp-simd-clone.c (simd_clone_adjust): Same. 22171 * optabs-query.c (get_traditional_extraction_insn): Same. 22172 * optabs.c (expand_vector_broadcast): Same. 22173 (expand_binop_directly): Same. 22174 (expand_twoval_unop): Same. 22175 (expand_twoval_binop): Same. 22176 (expand_unop_direct): Same. 22177 (emit_indirect_jump): Same. 22178 (emit_conditional_move): Same. 22179 (emit_conditional_neg_or_complement): Same. 22180 (emit_conditional_add): Same. 22181 (vector_compare_rtx): Same. 22182 (expand_vec_perm_1): Same. 22183 (expand_vec_perm_const): Same. 22184 (expand_vec_cond_expr): Same. 22185 (expand_vec_series_expr): Same. 22186 (maybe_emit_atomic_exchange): Same. 22187 (maybe_emit_sync_lock_test_and_set): Same. 22188 (expand_atomic_compare_and_swap): Same. 22189 (expand_atomic_load): Same. 22190 (expand_atomic_store): Same. 22191 (maybe_emit_op): Same. 22192 (valid_multiword_target_p): Same. 22193 (create_integer_operand): Same. 22194 (maybe_legitimize_operand_same_code): Same. 22195 (maybe_legitimize_operand): Same. 22196 (create_convert_operand_from_type): Same. 22197 (can_reuse_operands_p): Same. 22198 (maybe_legitimize_operands): Same. 22199 (maybe_gen_insn): Same. 22200 (maybe_expand_insn): Same. 22201 (maybe_expand_jump_insn): Same. 22202 (expand_insn): Same. 22203 * optabs.h (create_expand_operand): Same. 22204 (create_fixed_operand): Same. 22205 (create_output_operand): Same. 22206 (create_input_operand): Same. 22207 (create_convert_operand_to): Same. 22208 (create_convert_operand_from): Same. 22209 * optinfo.h: Same. 22210 * poly-int.h: Same. 22211 * predict.c (optimize_insn_for_speed_p): Same. 22212 (optimize_loop_for_size_p): Same. 22213 (optimize_loop_for_speed_p): Same. 22214 (optimize_loop_nest_for_speed_p): Same. 22215 (get_base_value): Same. 22216 (predicted_by_loop_heuristics_p): Same. 22217 (predict_extra_loop_exits): Same. 22218 (predict_loops): Same. 22219 (predict_paths_for_bb): Same. 22220 (predict_paths_leading_to): Same. 22221 (propagate_freq): Same. 22222 (pass_profile::execute): Same. 22223 * predict.h: Same. 22224 * profile-count.c (profile_count::differs_from_p): Same. 22225 (profile_probability::differs_lot_from_p): Same. 22226 * profile-count.h: Same. 22227 * profile.c (branch_prob): Same. 22228 * regrename.c (free_chain_data): Same. 22229 (mark_conflict): Same. 22230 (create_new_chain): Same. 22231 (merge_overlapping_regs): Same. 22232 (init_rename_info): Same. 22233 (merge_chains): Same. 22234 (regrename_analyze): Same. 22235 (regrename_do_replace): Same. 22236 (scan_rtx_reg): Same. 22237 (record_out_operands): Same. 22238 (build_def_use): Same. 22239 * regrename.h: Same. 22240 * reload.h: Same. 22241 * reload1.c (init_reload): Same. 22242 (maybe_fix_stack_asms): Same. 22243 (copy_reloads): Same. 22244 (count_pseudo): Same. 22245 (count_spilled_pseudo): Same. 22246 (find_reg): Same. 22247 (find_reload_regs): Same. 22248 (select_reload_regs): Same. 22249 (spill_hard_reg): Same. 22250 (fixup_eh_region_note): Same. 22251 (set_reload_reg): Same. 22252 (allocate_reload_reg): Same. 22253 (compute_reload_subreg_offset): Same. 22254 (reload_adjust_reg_for_icode): Same. 22255 (emit_input_reload_insns): Same. 22256 (emit_output_reload_insns): Same. 22257 (do_input_reload): Same. 22258 (inherit_piecemeal_p): Same. 22259 * rtl.h: Same. 22260 * sanopt.c (maybe_get_dominating_check): Same. 22261 (maybe_optimize_ubsan_ptr_ifn): Same. 22262 (can_remove_asan_check): Same. 22263 (maybe_optimize_asan_check_ifn): Same. 22264 (sanopt_optimize_walker): Same. 22265 * sched-deps.c (add_dependence_list): Same. 22266 (chain_to_prev_insn): Same. 22267 (add_insn_mem_dependence): Same. 22268 (create_insn_reg_set): Same. 22269 (maybe_extend_reg_info_p): Same. 22270 (sched_analyze_reg): Same. 22271 (sched_analyze_1): Same. 22272 (get_implicit_reg_pending_clobbers): Same. 22273 (chain_to_prev_insn_p): Same. 22274 (deps_analyze_insn): Same. 22275 (deps_start_bb): Same. 22276 (sched_free_deps): Same. 22277 (init_deps): Same. 22278 (init_deps_reg_last): Same. 22279 (free_deps): Same. 22280 * sched-ebb.c: Same. 22281 * sched-int.h: Same. 22282 * sched-rgn.c (add_branch_dependences): Same. 22283 (concat_insn_mem_list): Same. 22284 (deps_join): Same. 22285 (sched_rgn_compute_dependencies): Same. 22286 * sel-sched-ir.c (reset_target_context): Same. 22287 (copy_deps_context): Same. 22288 (init_id_from_df): Same. 22289 (has_dependence_p): Same. 22290 (change_loops_latches): Same. 22291 (bb_top_order_comparator): Same. 22292 (make_region_from_loop_preheader): Same. 22293 (sel_init_pipelining): Same. 22294 (get_loop_nest_for_rgn): Same. 22295 (make_regions_from_the_rest): Same. 22296 (sel_is_loop_preheader_p): Same. 22297 * sel-sched-ir.h (inner_loop_header_p): Same. 22298 (get_all_loop_exits): Same. 22299 * selftest.h: Same. 22300 * sese.c (sese_build_liveouts): Same. 22301 (sese_insert_phis_for_liveouts): Same. 22302 * sese.h (defined_in_sese_p): Same. 22303 * sreal.c (sreal::stream_out): Same. 22304 * sreal.h: Same. 22305 * streamer-hooks.h: Same. 22306 * target-globals.c (save_target_globals): Same. 22307 * target-globals.h: Same. 22308 * target.def: Same. 22309 * target.h: Same. 22310 * targhooks.c (default_has_ifunc_p): Same. 22311 (default_empty_mask_is_expensive): Same. 22312 (default_init_cost): Same. 22313 * targhooks.h: Same. 22314 * toplev.c: Same. 22315 * tree-affine.c (aff_combination_mult): Same. 22316 (aff_combination_expand): Same. 22317 (aff_combination_constant_multiple_p): Same. 22318 * tree-affine.h: Same. 22319 * tree-cfg.c (build_gimple_cfg): Same. 22320 (replace_loop_annotate_in_block): Same. 22321 (replace_uses_by): Same. 22322 (remove_bb): Same. 22323 (dump_cfg_stats): Same. 22324 (gimple_duplicate_sese_region): Same. 22325 (gimple_duplicate_sese_tail): Same. 22326 (move_block_to_fn): Same. 22327 (replace_block_vars_by_duplicates): Same. 22328 (move_sese_region_to_fn): Same. 22329 (print_loops_bb): Same. 22330 (print_loop): Same. 22331 (print_loops): Same. 22332 (debug): Same. 22333 (debug_loops): Same. 22334 * tree-cfg.h: Same. 22335 * tree-chrec.c (chrec_fold_plus_poly_poly): Same. 22336 (chrec_fold_multiply_poly_poly): Same. 22337 (chrec_evaluate): Same. 22338 (chrec_component_in_loop_num): Same. 22339 (reset_evolution_in_loop): Same. 22340 (is_multivariate_chrec): Same. 22341 (chrec_contains_symbols): Same. 22342 (nb_vars_in_chrec): Same. 22343 (chrec_convert_1): Same. 22344 (chrec_convert_aggressive): Same. 22345 * tree-chrec.h: Same. 22346 * tree-core.h: Same. 22347 * tree-data-ref.c (dump_data_dependence_relation): Same. 22348 (canonicalize_base_object_address): Same. 22349 (data_ref_compare_tree): Same. 22350 (prune_runtime_alias_test_list): Same. 22351 (get_segment_min_max): Same. 22352 (create_intersect_range_checks): Same. 22353 (conflict_fn_no_dependence): Same. 22354 (object_address_invariant_in_loop_p): Same. 22355 (analyze_ziv_subscript): Same. 22356 (analyze_siv_subscript_cst_affine): Same. 22357 (analyze_miv_subscript): Same. 22358 (analyze_overlapping_iterations): Same. 22359 (build_classic_dist_vector_1): Same. 22360 (add_other_self_distances): Same. 22361 (same_access_functions): Same. 22362 (build_classic_dir_vector): Same. 22363 (subscript_dependence_tester_1): Same. 22364 (subscript_dependence_tester): Same. 22365 (access_functions_are_affine_or_constant_p): Same. 22366 (get_references_in_stmt): Same. 22367 (loop_nest_has_data_refs): Same. 22368 (graphite_find_data_references_in_stmt): Same. 22369 (find_data_references_in_bb): Same. 22370 (get_base_for_alignment): Same. 22371 (find_loop_nest_1): Same. 22372 (find_loop_nest): Same. 22373 * tree-data-ref.h (dr_alignment): Same. 22374 (ddr_dependence_level): Same. 22375 * tree-if-conv.c (fold_build_cond_expr): Same. 22376 (add_to_predicate_list): Same. 22377 (add_to_dst_predicate_list): Same. 22378 (phi_convertible_by_degenerating_args): Same. 22379 (idx_within_array_bound): Same. 22380 (all_preds_critical_p): Same. 22381 (pred_blocks_visited_p): Same. 22382 (predicate_bbs): Same. 22383 (build_region): Same. 22384 (if_convertible_loop_p_1): Same. 22385 (is_cond_scalar_reduction): Same. 22386 (predicate_scalar_phi): Same. 22387 (remove_conditions_and_labels): Same. 22388 (combine_blocks): Same. 22389 (version_loop_for_if_conversion): Same. 22390 (versionable_outer_loop_p): Same. 22391 (ifcvt_local_dce): Same. 22392 (tree_if_conversion): Same. 22393 (pass_if_conversion::gate): Same. 22394 * tree-if-conv.h: Same. 22395 * tree-inline.c (maybe_move_debug_stmts_to_successors): Same. 22396 * tree-loop-distribution.c (bb_top_order_cmp): Same. 22397 (free_rdg): Same. 22398 (stmt_has_scalar_dependences_outside_loop): Same. 22399 (copy_loop_before): Same. 22400 (create_bb_after_loop): Same. 22401 (const_with_all_bytes_same): Same. 22402 (generate_memset_builtin): Same. 22403 (generate_memcpy_builtin): Same. 22404 (destroy_loop): Same. 22405 (build_rdg_partition_for_vertex): Same. 22406 (compute_access_range): Same. 22407 (data_ref_segment_size): Same. 22408 (latch_dominated_by_data_ref): Same. 22409 (compute_alias_check_pairs): Same. 22410 (fuse_memset_builtins): Same. 22411 (finalize_partitions): Same. 22412 (find_seed_stmts_for_distribution): Same. 22413 (prepare_perfect_loop_nest): Same. 22414 * tree-parloops.c (lambda_transform_legal_p): Same. 22415 (loop_parallel_p): Same. 22416 (reduc_stmt_res): Same. 22417 (add_field_for_name): Same. 22418 (create_call_for_reduction_1): Same. 22419 (replace_uses_in_bb_by): Same. 22420 (transform_to_exit_first_loop_alt): Same. 22421 (try_transform_to_exit_first_loop_alt): Same. 22422 (transform_to_exit_first_loop): Same. 22423 (num_phis): Same. 22424 (gen_parallel_loop): Same. 22425 (gather_scalar_reductions): Same. 22426 (get_omp_data_i_param): Same. 22427 (try_create_reduction_list): Same. 22428 (oacc_entry_exit_single_gang): Same. 22429 (parallelize_loops): Same. 22430 * tree-pass.h: Same. 22431 * tree-predcom.c (determine_offset): Same. 22432 (last_always_executed_block): Same. 22433 (split_data_refs_to_components): Same. 22434 (suitable_component_p): Same. 22435 (valid_initializer_p): Same. 22436 (find_looparound_phi): Same. 22437 (insert_looparound_copy): Same. 22438 (add_looparound_copies): Same. 22439 (determine_roots_comp): Same. 22440 (predcom_tmp_var): Same. 22441 (initialize_root_vars): Same. 22442 (initialize_root_vars_store_elim_1): Same. 22443 (initialize_root_vars_store_elim_2): Same. 22444 (finalize_eliminated_stores): Same. 22445 (initialize_root_vars_lm): Same. 22446 (remove_stmt): Same. 22447 (determine_unroll_factor): Same. 22448 (execute_pred_commoning_cbck): Same. 22449 (base_names_in_chain_on): Same. 22450 (combine_chains): Same. 22451 (pcom_stmt_dominates_stmt_p): Same. 22452 (try_combine_chains): Same. 22453 (prepare_initializers_chain_store_elim): Same. 22454 (prepare_initializers_chain): Same. 22455 (prepare_initializers): Same. 22456 (prepare_finalizers_chain): Same. 22457 (prepare_finalizers): Same. 22458 (insert_init_seqs): Same. 22459 * tree-scalar-evolution.c (loop_phi_node_p): Same. 22460 (compute_overall_effect_of_inner_loop): Same. 22461 (add_to_evolution_1): Same. 22462 (add_to_evolution): Same. 22463 (follow_ssa_edge_binary): Same. 22464 (follow_ssa_edge_expr): Same. 22465 (backedge_phi_arg_p): Same. 22466 (follow_ssa_edge_in_condition_phi_branch): Same. 22467 (follow_ssa_edge_in_condition_phi): Same. 22468 (follow_ssa_edge_inner_loop_phi): Same. 22469 (follow_ssa_edge): Same. 22470 (analyze_evolution_in_loop): Same. 22471 (analyze_initial_condition): Same. 22472 (interpret_loop_phi): Same. 22473 (interpret_condition_phi): Same. 22474 (interpret_rhs_expr): Same. 22475 (interpret_expr): Same. 22476 (interpret_gimple_assign): Same. 22477 (analyze_scalar_evolution_1): Same. 22478 (analyze_scalar_evolution): Same. 22479 (analyze_scalar_evolution_for_address_of): Same. 22480 (get_instantiated_value_entry): Same. 22481 (loop_closed_phi_def): Same. 22482 (instantiate_scev_name): Same. 22483 (instantiate_scev_poly): Same. 22484 (instantiate_scev_binary): Same. 22485 (instantiate_scev_convert): Same. 22486 (instantiate_scev_not): Same. 22487 (instantiate_scev_r): Same. 22488 (instantiate_scev): Same. 22489 (resolve_mixers): Same. 22490 (initialize_scalar_evolutions_analyzer): Same. 22491 (scev_reset_htab): Same. 22492 (scev_reset): Same. 22493 (derive_simple_iv_with_niters): Same. 22494 (simple_iv_with_niters): Same. 22495 (expression_expensive_p): Same. 22496 (final_value_replacement_loop): Same. 22497 * tree-scalar-evolution.h (block_before_loop): Same. 22498 * tree-ssa-address.h: Same. 22499 * tree-ssa-dce.c (find_obviously_necessary_stmts): Same. 22500 * tree-ssa-dom.c (edge_info::record_simple_equiv): Same. 22501 (record_edge_info): Same. 22502 * tree-ssa-live.c (var_map_base_fini): Same. 22503 (remove_unused_locals): Same. 22504 * tree-ssa-live.h: Same. 22505 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same. 22506 (pass_ch_vect::execute): Same. 22507 (pass_ch::process_loop_p): Same. 22508 * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same. 22509 (movement_possibility): Same. 22510 (outermost_invariant_loop): Same. 22511 (stmt_cost): Same. 22512 (determine_max_movement): Same. 22513 (invariantness_dom_walker::before_dom_children): Same. 22514 (move_computations): Same. 22515 (may_move_till): Same. 22516 (force_move_till_op): Same. 22517 (force_move_till): Same. 22518 (memref_free): Same. 22519 (record_mem_ref_loc): Same. 22520 (set_ref_stored_in_loop): Same. 22521 (mark_ref_stored): Same. 22522 (sort_bbs_in_loop_postorder_cmp): Same. 22523 (sort_locs_in_loop_postorder_cmp): Same. 22524 (analyze_memory_references): Same. 22525 (mem_refs_may_alias_p): Same. 22526 (find_ref_loc_in_loop_cmp): Same. 22527 (rewrite_mem_ref_loc::operator): Same. 22528 (first_mem_ref_loc_1::operator): Same. 22529 (sm_set_flag_if_changed::operator): Same. 22530 (execute_sm_if_changed_flag_set): Same. 22531 (execute_sm): Same. 22532 (hoist_memory_references): Same. 22533 (ref_always_accessed::operator): Same. 22534 (refs_independent_p): Same. 22535 (record_dep_loop): Same. 22536 (ref_indep_loop_p_1): Same. 22537 (ref_indep_loop_p): Same. 22538 (can_sm_ref_p): Same. 22539 (find_refs_for_sm): Same. 22540 (loop_suitable_for_sm): Same. 22541 (store_motion_loop): Same. 22542 (store_motion): Same. 22543 (fill_always_executed_in): Same. 22544 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same. 22545 (estimated_unrolled_size): Same. 22546 (loop_edge_to_cancel): Same. 22547 (remove_exits_and_undefined_stmts): Same. 22548 (remove_redundant_iv_tests): Same. 22549 (unloop_loops): Same. 22550 (estimated_peeled_sequence_size): Same. 22551 (try_peel_loop): Same. 22552 (canonicalize_loop_induction_variables): Same. 22553 (canonicalize_induction_variables): Same. 22554 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same. 22555 (name_info): Same. 22556 (stmt_after_inc_pos): Same. 22557 (contains_abnormal_ssa_name_p): Same. 22558 (niter_for_exit): Same. 22559 (find_bivs): Same. 22560 (mark_bivs): Same. 22561 (find_givs_in_bb): Same. 22562 (find_induction_variables): Same. 22563 (find_interesting_uses_cond): Same. 22564 (outermost_invariant_loop_for_expr): Same. 22565 (idx_find_step): Same. 22566 (add_candidate_1): Same. 22567 (add_iv_candidate_derived_from_uses): Same. 22568 (alloc_use_cost_map): Same. 22569 (prepare_decl_rtl): Same. 22570 (generic_predict_doloop_p): Same. 22571 (computation_cost): Same. 22572 (determine_common_wider_type): Same. 22573 (get_computation_aff_1): Same. 22574 (get_use_type): Same. 22575 (determine_group_iv_cost_address): Same. 22576 (iv_period): Same. 22577 (difference_cannot_overflow_p): Same. 22578 (may_eliminate_iv): Same. 22579 (determine_set_costs): Same. 22580 (cheaper_cost_pair): Same. 22581 (compare_cost_pair): Same. 22582 (iv_ca_cand_for_group): Same. 22583 (iv_ca_recount_cost): Same. 22584 (iv_ca_set_remove_invs): Same. 22585 (iv_ca_set_no_cp): Same. 22586 (iv_ca_set_add_invs): Same. 22587 (iv_ca_set_cp): Same. 22588 (iv_ca_add_group): Same. 22589 (iv_ca_cost): Same. 22590 (iv_ca_compare_deps): Same. 22591 (iv_ca_delta_reverse): Same. 22592 (iv_ca_delta_commit): Same. 22593 (iv_ca_cand_used_p): Same. 22594 (iv_ca_delta_free): Same. 22595 (iv_ca_new): Same. 22596 (iv_ca_free): Same. 22597 (iv_ca_dump): Same. 22598 (iv_ca_extend): Same. 22599 (iv_ca_narrow): Same. 22600 (iv_ca_prune): Same. 22601 (cheaper_cost_with_cand): Same. 22602 (iv_ca_replace): Same. 22603 (try_add_cand_for): Same. 22604 (get_initial_solution): Same. 22605 (try_improve_iv_set): Same. 22606 (find_optimal_iv_set_1): Same. 22607 (create_new_iv): Same. 22608 (rewrite_use_compare): Same. 22609 (remove_unused_ivs): Same. 22610 (determine_scaling_factor): Same. 22611 * tree-ssa-loop-ivopts.h: Same. 22612 * tree-ssa-loop-manip.c (create_iv): Same. 22613 (compute_live_loop_exits): Same. 22614 (add_exit_phi): Same. 22615 (add_exit_phis): Same. 22616 (find_uses_to_rename_use): Same. 22617 (find_uses_to_rename_def): Same. 22618 (find_uses_to_rename_in_loop): Same. 22619 (rewrite_into_loop_closed_ssa): Same. 22620 (check_loop_closed_ssa_bb): Same. 22621 (split_loop_exit_edge): Same. 22622 (ip_end_pos): Same. 22623 (ip_normal_pos): Same. 22624 (copy_phi_node_args): Same. 22625 (gimple_duplicate_loop_to_header_edge): Same. 22626 (can_unroll_loop_p): Same. 22627 (determine_exit_conditions): Same. 22628 (scale_dominated_blocks_in_loop): Same. 22629 (niter_for_unrolled_loop): Same. 22630 (tree_transform_and_unroll_loop): Same. 22631 (rewrite_all_phi_nodes_with_iv): Same. 22632 * tree-ssa-loop-manip.h: Same. 22633 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same. 22634 (number_of_iterations_ne): Same. 22635 (assert_no_overflow_lt): Same. 22636 (assert_loop_rolls_lt): Same. 22637 (number_of_iterations_lt): Same. 22638 (adjust_cond_for_loop_until_wrap): Same. 22639 (tree_simplify_using_condition): Same. 22640 (simplify_using_initial_conditions): Same. 22641 (simplify_using_outer_evolutions): Same. 22642 (loop_only_exit_p): Same. 22643 (ssa_defined_by_minus_one_stmt_p): Same. 22644 (number_of_iterations_popcount): Same. 22645 (number_of_iterations_exit): Same. 22646 (find_loop_niter): Same. 22647 (finite_loop_p): Same. 22648 (chain_of_csts_start): Same. 22649 (get_val_for): Same. 22650 (loop_niter_by_eval): Same. 22651 (derive_constant_upper_bound_ops): Same. 22652 (do_warn_aggressive_loop_optimizations): Same. 22653 (record_estimate): Same. 22654 (get_cst_init_from_scev): Same. 22655 (record_nonwrapping_iv): Same. 22656 (idx_infer_loop_bounds): Same. 22657 (infer_loop_bounds_from_ref): Same. 22658 (infer_loop_bounds_from_array): Same. 22659 (infer_loop_bounds_from_pointer_arith): Same. 22660 (infer_loop_bounds_from_signedness): Same. 22661 (bound_index): Same. 22662 (discover_iteration_bound_by_body_walk): Same. 22663 (maybe_lower_iteration_bound): Same. 22664 (estimate_numbers_of_iterations): Same. 22665 (estimated_loop_iterations): Same. 22666 (estimated_loop_iterations_int): Same. 22667 (max_loop_iterations): Same. 22668 (max_loop_iterations_int): Same. 22669 (likely_max_loop_iterations): Same. 22670 (likely_max_loop_iterations_int): Same. 22671 (estimated_stmt_executions_int): Same. 22672 (max_stmt_executions): Same. 22673 (likely_max_stmt_executions): Same. 22674 (estimated_stmt_executions): Same. 22675 (stmt_dominates_stmt_p): Same. 22676 (nowrap_type_p): Same. 22677 (loop_exits_before_overflow): Same. 22678 (scev_var_range_cant_overflow): Same. 22679 (scev_probably_wraps_p): Same. 22680 (free_numbers_of_iterations_estimates): Same. 22681 * tree-ssa-loop-niter.h: Same. 22682 * tree-ssa-loop-prefetch.c (release_mem_refs): Same. 22683 (idx_analyze_ref): Same. 22684 (analyze_ref): Same. 22685 (gather_memory_references_ref): Same. 22686 (mark_nontemporal_store): Same. 22687 (emit_mfence_after_loop): Same. 22688 (may_use_storent_in_loop_p): Same. 22689 (mark_nontemporal_stores): Same. 22690 (should_unroll_loop_p): Same. 22691 (volume_of_dist_vector): Same. 22692 (add_subscript_strides): Same. 22693 (self_reuse_distance): Same. 22694 (insn_to_prefetch_ratio_too_small_p): Same. 22695 * tree-ssa-loop-split.c (split_at_bb_p): Same. 22696 (patch_loop_exit): Same. 22697 (find_or_create_guard_phi): Same. 22698 (easy_exit_values): Same. 22699 (connect_loop_phis): Same. 22700 (connect_loops): Same. 22701 (compute_new_first_bound): Same. 22702 (split_loop): Same. 22703 (tree_ssa_split_loops): Same. 22704 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same. 22705 (is_maybe_undefined): Same. 22706 (tree_may_unswitch_on): Same. 22707 (simplify_using_entry_checks): Same. 22708 (tree_unswitch_single_loop): Same. 22709 (tree_unswitch_loop): Same. 22710 (tree_unswitch_outer_loop): Same. 22711 (empty_bb_without_guard_p): Same. 22712 (used_outside_loop_p): Same. 22713 (get_vop_from_header): Same. 22714 (hoist_guard): Same. 22715 * tree-ssa-loop.c (gate_oacc_kernels): Same. 22716 (get_lsm_tmp_name): Same. 22717 * tree-ssa-loop.h: Same. 22718 * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same. 22719 (build_and_add_sum): Same. 22720 (no_side_effect_bb): Same. 22721 (get_ops): Same. 22722 (linearize_expr): Same. 22723 (should_break_up_subtract): Same. 22724 (linearize_expr_tree): Same. 22725 * tree-ssa-scopedtables.c: Same. 22726 * tree-ssa-scopedtables.h: Same. 22727 * tree-ssa-structalias.c (condense_visit): Same. 22728 (label_visit): Same. 22729 (dump_pred_graph): Same. 22730 (perform_var_substitution): Same. 22731 (move_complex_constraints): Same. 22732 (remove_preds_and_fake_succs): Same. 22733 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same. 22734 (determine_bb_domination_status): Same. 22735 (duplicate_thread_path): Same. 22736 (thread_through_all_blocks): Same. 22737 * tree-ssa-threadupdate.h: Same. 22738 * tree-streamer-in.c (streamer_read_string_cst): Same. 22739 (input_identifier): Same. 22740 (unpack_ts_type_common_value_fields): Same. 22741 (unpack_ts_block_value_fields): Same. 22742 (unpack_ts_translation_unit_decl_value_fields): Same. 22743 (unpack_ts_omp_clause_value_fields): Same. 22744 (streamer_read_tree_bitfields): Same. 22745 (streamer_alloc_tree): Same. 22746 (lto_input_ts_common_tree_pointers): Same. 22747 (lto_input_ts_vector_tree_pointers): Same. 22748 (lto_input_ts_poly_tree_pointers): Same. 22749 (lto_input_ts_complex_tree_pointers): Same. 22750 (lto_input_ts_decl_minimal_tree_pointers): Same. 22751 (lto_input_ts_decl_common_tree_pointers): Same. 22752 (lto_input_ts_decl_non_common_tree_pointers): Same. 22753 (lto_input_ts_decl_with_vis_tree_pointers): Same. 22754 (lto_input_ts_field_decl_tree_pointers): Same. 22755 (lto_input_ts_function_decl_tree_pointers): Same. 22756 (lto_input_ts_type_common_tree_pointers): Same. 22757 (lto_input_ts_type_non_common_tree_pointers): Same. 22758 (lto_input_ts_list_tree_pointers): Same. 22759 (lto_input_ts_vec_tree_pointers): Same. 22760 (lto_input_ts_exp_tree_pointers): Same. 22761 (lto_input_ts_block_tree_pointers): Same. 22762 (lto_input_ts_binfo_tree_pointers): Same. 22763 (lto_input_ts_constructor_tree_pointers): Same. 22764 (lto_input_ts_omp_clause_tree_pointers): Same. 22765 (streamer_read_tree_body): Same. 22766 * tree-streamer.h: Same. 22767 * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same. 22768 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same. 22769 (vect_analyze_possibly_independent_ddr): Same. 22770 (vect_analyze_data_ref_dependence): Same. 22771 (vect_compute_data_ref_alignment): Same. 22772 (vect_enhance_data_refs_alignment): Same. 22773 (vect_analyze_data_ref_access): Same. 22774 (vect_check_gather_scatter): Same. 22775 (vect_find_stmt_data_reference): Same. 22776 (vect_create_addr_base_for_vector_ref): Same. 22777 (vect_setup_realignment): Same. 22778 (vect_supportable_dr_alignment): Same. 22779 * tree-vect-loop-manip.c (rename_variables_in_bb): Same. 22780 (adjust_phi_and_debug_stmts): Same. 22781 (vect_set_loop_mask): Same. 22782 (add_preheader_seq): Same. 22783 (vect_maybe_permute_loop_masks): Same. 22784 (vect_set_loop_masks_directly): Same. 22785 (vect_set_loop_condition_masked): Same. 22786 (vect_set_loop_condition_unmasked): Same. 22787 (slpeel_duplicate_current_defs_from_edges): Same. 22788 (slpeel_add_loop_guard): Same. 22789 (slpeel_can_duplicate_loop_p): Same. 22790 (create_lcssa_for_virtual_phi): Same. 22791 (iv_phi_p): Same. 22792 (vect_update_ivs_after_vectorizer): Same. 22793 (vect_gen_vector_loop_niters_mult_vf): Same. 22794 (slpeel_update_phi_nodes_for_loops): Same. 22795 (slpeel_update_phi_nodes_for_guard1): Same. 22796 (find_guard_arg): Same. 22797 (slpeel_update_phi_nodes_for_guard2): Same. 22798 (slpeel_update_phi_nodes_for_lcssa): Same. 22799 (vect_do_peeling): Same. 22800 (vect_create_cond_for_alias_checks): Same. 22801 (vect_loop_versioning): Same. 22802 * tree-vect-loop.c (vect_determine_vf_for_stmt): Same. 22803 (vect_inner_phi_in_double_reduction_p): Same. 22804 (vect_analyze_scalar_cycles_1): Same. 22805 (vect_fixup_scalar_cycles_with_patterns): Same. 22806 (vect_get_loop_niters): Same. 22807 (bb_in_loop_p): Same. 22808 (vect_get_max_nscalars_per_iter): Same. 22809 (vect_verify_full_masking): Same. 22810 (vect_compute_single_scalar_iteration_cost): Same. 22811 (vect_analyze_loop_form_1): Same. 22812 (vect_analyze_loop_form): Same. 22813 (vect_active_double_reduction_p): Same. 22814 (vect_analyze_loop_operations): Same. 22815 (neutral_op_for_slp_reduction): Same. 22816 (vect_is_simple_reduction): Same. 22817 (vect_model_reduction_cost): Same. 22818 (get_initial_def_for_reduction): Same. 22819 (get_initial_defs_for_reduction): Same. 22820 (vect_create_epilog_for_reduction): Same. 22821 (vectorize_fold_left_reduction): Same. 22822 (vectorizable_reduction): Same. 22823 (vectorizable_induction): Same. 22824 (vectorizable_live_operation): Same. 22825 (loop_niters_no_overflow): Same. 22826 (vect_get_loop_mask): Same. 22827 (vect_transform_loop_stmt): Same. 22828 (vect_transform_loop): Same. 22829 * tree-vect-patterns.c (vect_reassociating_reduction_p): Same. 22830 (vect_determine_precisions): Same. 22831 (vect_pattern_recog_1): Same. 22832 * tree-vect-slp.c (vect_analyze_slp_instance): Same. 22833 * tree-vect-stmts.c (stmt_vectype): Same. 22834 (process_use): Same. 22835 (vect_init_vector_1): Same. 22836 (vect_truncate_gather_scatter_offset): Same. 22837 (get_group_load_store_type): Same. 22838 (vect_build_gather_load_calls): Same. 22839 (vect_get_strided_load_store_ops): Same. 22840 (vectorizable_simd_clone_call): Same. 22841 (vectorizable_store): Same. 22842 (permute_vec_elements): Same. 22843 (vectorizable_load): Same. 22844 (vect_transform_stmt): Same. 22845 (supportable_widening_operation): Same. 22846 * tree-vectorizer.c (vec_info::replace_stmt): Same. 22847 (vec_info::free_stmt_vec_info): Same. 22848 (vect_free_loop_info_assumptions): Same. 22849 (vect_loop_vectorized_call): Same. 22850 (set_uid_loop_bbs): Same. 22851 (vectorize_loops): Same. 22852 * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same. 22853 * tree.c (add_tree_to_fld_list): Same. 22854 (fld_type_variant_equal_p): Same. 22855 (fld_decl_context): Same. 22856 (fld_incomplete_type_of): Same. 22857 (free_lang_data_in_binfo): Same. 22858 (need_assembler_name_p): Same. 22859 (find_decls_types_r): Same. 22860 (get_eh_types_for_runtime): Same. 22861 (find_decls_types_in_eh_region): Same. 22862 (find_decls_types_in_node): Same. 22863 (assign_assembler_name_if_needed): Same. 22864 * value-prof.c (stream_out_histogram_value): Same. 22865 * value-prof.h: Same. 22866 * var-tracking.c (use_narrower_mode): Same. 22867 (prepare_call_arguments): Same. 22868 (vt_expand_loc_callback): Same. 22869 (resolve_expansions_pending_recursion): Same. 22870 (vt_expand_loc): Same. 22871 * varasm.c (const_hash_1): Same. 22872 (compare_constant): Same. 22873 (tree_output_constant_def): Same. 22874 (simplify_subtraction): Same. 22875 (get_pool_constant): Same. 22876 (output_constant_pool_2): Same. 22877 (output_constant_pool_1): Same. 22878 (mark_constants_in_pattern): Same. 22879 (mark_constant_pool): Same. 22880 (get_section_anchor): Same. 22881 * vr-values.c (compare_range_with_value): Same. 22882 (vr_values::extract_range_from_phi_node): Same. 22883 * vr-values.h: Same. 22884 * web.c (unionfind_union): Same. 22885 * wide-int.h: Same. 22886 228872019-07-09 Martin Sebor <msebor@redhat.com> 22888 22889 PR c++/61339 22890 * align.h: Change class-key from class to struct and vice versa 22891 to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod. 22892 * alloc-pool.h: Same. 22893 * asan.c (shadow_mem_size): Same. 22894 * auto-profile.c: Same. 22895 * basic-block.h: Same. 22896 * bitmap.h: Same. 22897 * cfgexpand.c (set_rtl): Same. 22898 (expand_one_stack_var_at): Same. 22899 * cfghooks.h: Same. 22900 * cfgloop.h: Same. 22901 * cgraph.h: Same. 22902 * config/i386/i386.h: Same. 22903 * df-problems.c (df_print_bb_index): Same. 22904 * df-scan.c: Same. 22905 * df.h (df_single_use): Same. 22906 * diagnostic-show-locus.c (layout::print_annotation_line): Same. 22907 (layout::annotation_line_showed_range_p): Same. 22908 (get_printed_columns): Same. 22909 (correction::ensure_terminated): Same. 22910 (line_corrections::~line_corrections): Same. 22911 * dojump.h: Same. 22912 * dse.c: Same. 22913 * dump-context.h: Same. 22914 * dumpfile.h: Same. 22915 * dwarf2out.c: Same. 22916 * edit-context.c: Same. 22917 * fibonacci_heap.c (test_union_of_equal_heaps): Same. 22918 * flags.h: Same. 22919 * function.c (assign_stack_local): Same. 22920 * function.h: Same. 22921 * gcc.c: Same. 22922 * gcov.c (block_info::block_info): Same. 22923 * genattrtab.c: Same. 22924 * genextract.c: Same. 22925 * genmatch.c (comparison_code_p): Same. 22926 (id_base::id_base): Same. 22927 (decision_tree::print): Same. 22928 * genoutput.c: Same. 22929 * genpreds.c (write_one_predicate_function): Same. 22930 * genrecog.c (validate_pattern): Same. 22931 (find_operand_positions): Same. 22932 (optimize_subroutine_group): Same. 22933 (merge_pattern_transition::merge_pattern_transition): Same. 22934 (merge_pattern_info::merge_pattern_info): Same. 22935 (merge_state_result::merge_state_result): Same. 22936 (merge_into_state): Same. 22937 * gensupport.c: Same. 22938 * gensupport.h: Same. 22939 * ggc-common.c (init_ggc_heuristics): Same. 22940 * ggc-tests.c (test_union): Same. 22941 * gimple-loop-interchange.cc (dump_induction): Same. 22942 * gimple-loop-versioning.cc: Same. 22943 * gimple-match.h (gimple_match_cond::any_else): Same. 22944 * gimple-ssa-backprop.c: Same. 22945 * gimple-ssa-sprintf.c: Same. 22946 * gimple-ssa-store-merging.c (store_operand_info::store_operand_info): 22947 Same. 22948 (store_immediate_info::store_immediate_info): Same. 22949 (merged_store_group::apply_stores): Same. 22950 (get_location_for_stmts): Same. 22951 * gimple-ssa-strength-reduction.c: Same. 22952 * gimple-ssa-warn-alloca.c: Same. 22953 * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same. 22954 * godump.c (go_type_decl): Same. 22955 * hash-map-tests.c (test_map_of_strings_to_int): Same. 22956 * hash-map.h: Same. 22957 * hash-set-tests.c (test_set_of_strings): Same. 22958 * hsa-brig.c: Same. 22959 * hsa-common.h: Same. 22960 * hsa-gen.c (transformable_switch_to_sbr_p): Same. 22961 * input.c (assert_loceq): Same. 22962 * input.h: Same. 22963 * ipa-cp.c: Same. 22964 * ipa-devirt.c (possible_polymorphic_call_targets_1): Same. 22965 * ipa-fnsummary.h: Same. 22966 * ipa-inline.h: Same. 22967 * ipa-prop.h: Same. 22968 * ipa-split.c (visit_bb): Same. 22969 * ira-int.h (minmax_set_iter_next): Same. 22970 * loop-invariant.c: Same. 22971 * loop-iv.c: Same. 22972 * lra-eliminations.c: Same. 22973 * lra-int.h: Same. 22974 * lra-lives.c (mark_regno_dead): Same. 22975 * lra-remat.c: Same. 22976 * lra-spills.c: Same. 22977 * lto-streamer.h: Same. 22978 * mem-stats.h: Same. 22979 * omp-grid.c (omp_grid_lastprivate_predicate): Same. 22980 * omp-low.c (omp_clause_aligned_alignment): Same. 22981 * optabs-query.h (get_vcond_eq_icode): Same. 22982 * optabs.h: Same. 22983 * opts.c (wrap_help): Same. 22984 * poly-int.h: Same. 22985 * predict.c (predict_paths_leading_to_edge): Same. 22986 * pretty-print.h: Same. 22987 * profile-count.h: Same. 22988 * read-md.h: Same. 22989 * read-rtl-function.c: Same. 22990 * ree.c: Same. 22991 * reginfo.c: Same. 22992 * regrename.c: Same. 22993 * regrename.h: Same. 22994 * reload.h: Same. 22995 * rtl-iter.h: Same. 22996 * rtl.h (costs_add_n_insns): Same. 22997 * sanopt.c: Same. 22998 * sched-int.h: Same. 22999 * sel-sched-ir.h: Same. 23000 * selftest.h: Same. 23001 * sese.h (vec_find): Same. 23002 * stmt.c: Same. 23003 * target-globals.h: Same. 23004 * tree-affine.c (aff_combination_find_elt): Same. 23005 * tree-affine.h: Same. 23006 * tree-data-ref.h: Same. 23007 * tree-outof-ssa.c (ssa_is_replaceable_p): Same. 23008 * tree-predcom.c: Same. 23009 * tree-scalar-evolution.c (find_var_scev_info): Same. 23010 * tree-ssa-alias.h: Same. 23011 * tree-ssa-ccp.c: Same. 23012 * tree-ssa-coalesce.c (ssa_conflicts_dump): Same. 23013 * tree-ssa-loop-im.c (for_all_locs_in_loop): Same. 23014 (rewrite_mem_refs): Same. 23015 (execute_sm_if_changed): Same. 23016 (hoist_memory_references): Same. 23017 * tree-ssa-loop-ivopts.c (operator<=): Same. 23018 * tree-ssa-loop.h: Same. 23019 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same. 23020 * tree-ssa-structalias.c: Same. 23021 * tree-switch-conversion.h (cluster::cluster): Same. 23022 (simple_cluster::simple_cluster): Same. 23023 * tree-vect-patterns.c (type_conversion_p): Same. 23024 * tree-vectorizer.c (dump_stmt_cost): Same. 23025 * tree-vectorizer.h (loop_vec_info_for_loop): Same. 23026 * tree.c (protected_set_expr_location): Same. 23027 * tree.h (desired_pro_or_demotion_p): Same. 23028 (fndecl_built_in_p): Same. 23029 * unique-ptr-tests.cc: Same. 23030 * var-tracking.c (delete_variable_part): Same. 23031 * varasm.c (assemble_real): Same. 23032 (tree_output_constant_def): Same. 23033 * vec.c: Same. 23034 * wide-int-bitmask.h: Same. 23035 * wide-int.h (decompose): Same. 23036 230372019-07-09 Richard Biener <rguenther@suse.de> 23038 23039 PR tree-optimization/91114 23040 * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to 23041 find a vector type isn't fatal. 23042 230432019-07-09 Sylvia Taylor <sylvia.taylor@arm.com> 23044 23045 * config/aarch64/aarch64-simd.md 23046 (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor. 23047 (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled. 23048 (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both. 23049 (*aarch64_crypto_aese_fused, 23050 *aarch64_crypto_aesd_fused): Update to new definition. 23051 * config/aarch64/aarch64.c 23052 (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check. 23053 230542019-07-09 Richard Biener <rguenther@suse.de> 23055 23056 * gimple-match.h (gimple_match_op::resimplify): New. 23057 (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3, 23058 gimple_resimplify4, gimple_resimplify5): Remove. 23059 * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2, 23060 gimple_resimplify3, gimple_resimplify4, gimple_resimplify5): 23061 Make static. 23062 (gimple_match_op::resimplify): New. 23063 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize 23064 according to availability. Use gimple_match_op::resimplify. 23065 230662019-07-09 Eric Botcazou <ebotcazou@adacore.com> 23067 23068 * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location. 23069 230702019-07-09 Sylvia Taylor <sylvia.taylor@arm.com> 23071 23072 * config/arm/crypto.md: 23073 (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor. 23074 (crypto_<crypto_pattern>): Remove attribute enabled for aesmc. 23075 (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns. 23076 (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New. 23077 * config/arm/arm.c 23078 (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check. 23079 * config/arm/aarch-common-protos.h 23080 (aarch_crypto_can_dual_issue): Remove. 23081 * config/arm/aarch-common.c 23082 (aarch_crypto_can_dual_issue): Likewise. 23083 * config/arm/exynos-m1.md: Remove aese/aesmc fusion. 23084 * config/arm/cortex-a53.md: Likewise. 23085 * config/arm/cortex-a57.md: Likewise. 23086 * config/arm/iterators.md: 23087 (CRYPTO_BINARY): Redefine. 23088 (CRYPTO_UNARY): Removed. 23089 (CRYPTO_AES, CRYPTO_AESMC): New. 23090 230912019-07-09 Richard Biener <rguenther@suse.de> 23092 23093 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member. 23094 (vn_reference_lookup_3): If the main ref has no access path recorded 23095 but orig_ref has use it to do access-path based disambiguation. 23096 (vn_reference_lookup_pieces): Adjust. 23097 (vn_reference_lookup): Pass down original ref if we valueized. 23098 230992019-07-09 Martin Liska <mliska@suse.cz> 23100 23101 * doc/extend.texi: Document influence on loop 23102 optimizers. 23103 231042019-07-09 Martin Liska <mliska@suse.cz> 23105 23106 * lto-compress.c (lto_normalized_zstd_level): Do not use 23107 ZSTD_CLEVEL_DEFAULT as it is not default in old releases 23108 of libzstd. One can use 0 as a default compression level. 23109 231102019-07-09 Martin Liska <mliska@suse.cz> 23111 23112 * doc/invoke.texi: Add link from -fprofile-dir option. 23113 Use better wording for 'gcno filename'. 23114 231152019-07-08 Martin Sebor <msebor@redhat.com> 23116 23117 PR middle-end/71924 23118 PR middle-end/90549 23119 * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update 23120 comment. 23121 (args_loc_t): New type. 23122 (args_loc_t, locmap_t): same. 23123 (diag_returned_locals): New function. 23124 (is_addr_local): Same. 23125 (handle_return_addr_local_phi_arg, warn_return_addr_local): Same. 23126 (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg. 23127 (find_explicit_erroneous_behavior): Call warn_return_addr_local. 23128 231292019-07-08 Jakub Jelinek <jakub@redhat.com> 23130 23131 * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF 23132 with SSA_NAME address of POINTER_PLUS_EXPR. Handle MULT_EXPR 23133 and casts in offset when different, both through gimple stmts 23134 and through trees. Rewritten using loops to minimize code duplication 23135 for each operand. 23136 231372019-07-08 Eric Botcazou <ebotcazou@adacore.com> 23138 23139 * emit-rtl.c (set_insn_locations): New function moved from... 23140 * function.c (set_insn_locations): ...here. 23141 * ira-emit.c (emit_moves): Propagate location of the first instruction 23142 to the inserted move instructions. 23143 * reg-stack.c (compensate_edge): Set the location if the sequence is 23144 inserted on the edge. 23145 * rtl.h (set_insn_locations): Declare. 23146 231472019-07-08 Segher Boessenkool <segher@kernel.crashing.org> 23148 23149 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore 23150 OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the 23151 .machine string. 23152 231532019-07-08 Segher Boessenkool <segher@kernel.crashing.org> 23154 23155 PR rtl-optimization/88233 23156 * common.opt (fsplit-wide-types-early): New option. 23157 * common/config/rs6000/rs6000-common.c 23158 (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for 23159 OPT_LEVELS_ALL. 23160 * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early. 23161 * lower-subreg.c (pass_lower_subreg2::gate): Add test for 23162 flag_split_wide_types_early. 23163 (pass_data_lower_subreg3): New. 23164 (pass_lower_subreg3): New. 23165 (make_pass_lower_subreg3): New. 23166 * passes.def (pass_lower_subreg2): Move after the loop passes. 23167 (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was. 23168 * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in 23169 the pass pipeline; its previous place is taken by ... 23170 (make_pass_lower_subreg3): ... this. 23171 231722019-07-08 Robin Dapp <rdapp@linux.ibm.com> 23173 23174 * config/s390/s390.c (s390_shift_truncation_mask): Define. 23175 (TARGET_SHIFT_TRUNCATION_MASK): Define. 23176 231772019-07-08 Robin Dapp <rdapp@linux.ibm.com> 23178 23179 * config/s390/constraints.md: Add new jsc constraint. 23180 * config/s390/predicates.md: New predicates. 23181 * config/s390/s390-protos.h (s390_valid_shift_count): New function. 23182 * config/s390/s390.c (s390_valid_shift_count): New function. 23183 (print_shift_count_operand): Use s390_valid_shift_count. 23184 (print_operand): Likewise. 23185 * config/s390/s390.md: Use new predicate. 23186 * config/s390/subst.md: Remove addr_style_op and masked_op substs. 23187 * config/s390/vector.md: Use new predicate. 23188 231892019-07-08 Andrew Waterman <andrew@sifive.com> 23190 Jim Wilson <jimw@sifive.com> 23191 23192 * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1] 23193 bitsize instead of BITS_PER_WORD. 23194 231952019-07-08 Martin Liska <mliska@suse.cz> 23196 23197 * collect2.c (defined): Revert to before r254460. 23198 (scan_prog_file): Revert to before r254460. 23199 232002019-07-08 Richard Biener <rguenther@suse.de> 23201 23202 PR tree-optimization/83518 23203 * tree-ssa-sccvn.c: Include splay-tree.h. 23204 (struct pd_range, struct pd_data): New. 23205 (struct vn_walk_cb_data): Add data to track partial definitions. 23206 (vn_walk_cb_data::~vn_walk_cb_data): New. 23207 (vn_walk_cb_data::push_partial_def): New. 23208 (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New. 23209 (vn_reference_lookup_2): When partial defs are registered give up. 23210 (vn_reference_lookup_3): Track partial defs for memset and 23211 constructor zeroing and for defs from constants. 23212 232132019-07-08 Richard Sandiford <richard.sandiford@arm.com> 23214 23215 * doc/install.texi (bootstrap-Og): Document. 23216 232172019-07-08 Richard Sandiford <richard.sandiford@arm.com> 23218 23219 * config/riscv/pic.md (*local_pic_load_s<mode>) 23220 (*local_pic_load_u<mode>): Explicitly specify the mode iterator 23221 referenced by <mode>, giving... 23222 (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these. 23223 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>) 23224 (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly 23225 use <X:MODE> for the mode attribute. 23226 232272019-07-07 Jeff Law <law@redhat.com> 23228 23229 PR tree-optimization/91090 23230 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error 23231 in handling of ranges to simplify switch statements. 23232 232332019-07-07 Iain Sandoe <iain@sandoe.co.uk> 23234 23235 * config/darwin.c (darwin_override_options): Make a final check on PIC 23236 options. 23237 232382019-07-07 Iain Sandoe <iain@sandoe.co.uk> 23239 23240 * config/darwin.c (darwin_override_options): Don't jam symbol stubs 23241 on for kernel code. 23242 232432019-07-07 Richard Sandiford <richard.sandiford@arm.com> 23244 23245 PR target/91068 23246 * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc) 23247 (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands 23248 instead of matching them to "l" output operands. 23249 232502019-07-07 Richard Sandiford <richard.sandiford@arm.com> 23251 23252 * config/mips/mips.c (mips_split_move): Zero-initialize addr 23253 and check whether addr.reg is nonnull before using it. 23254 232552019-07-06 Jakub Jelinek <jakub@redhat.com> 23256 23257 * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in 23258 ctx->for_simd_scan_phase simd copy the outer var to the privatized 23259 variable(s). For conditional lastprivate look through outer 23260 GIMPLE_OMP_SCAN context. 23261 (lower_omp_1): For conditional lastprivate look through outer 23262 GIMPLE_OMP_SCAN context. 23263 23264 * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0 23265 member to combined_into_simd_safelen1. 23266 (lower_rec_input_clauses, lower_omp_1): Adjust uses. 23267 (lower_lastprivate_clauses): Likewise. For conditional lastprivate 23268 clauses if ctx->combined_into_simd_safelen1 put statements after the 23269 predicate conditionalized block rather than into it. 23270 232712019-07-06 Richard Sandiford <richard.sandiford@arm.com> 23272 23273 * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for 23274 operand 1. 23275 * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly): 23276 Make the choice of <mode> explicit, giving... 23277 (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this. 23278 232792019-07-06 Richard Sandiford <richard.sandiford@arm.com> 23280 23281 * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387) 23282 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses 23283 of .md attributes. 23284 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask) 23285 (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask) 23286 (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>) 23287 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>) 23288 (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise. 23289 (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise. 23290 (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise. 23291 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise. 23292 (*avx512f_scatterdi<mode>): Likewise. 23293 (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo. 23294 232952019-07-06 Richard Sandiford <richard.sandiford@arm.com> 23296 23297 * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly 23298 specify the mode iterator referenced by <mode>, giving... 23299 (*push1_h8300hs_<QHI:mode>): ...this. 23300 233012019-07-06 Richard Sandiford <richard.sandiford@arm.com> 23302 23303 * config/gcn/gcn-valu.md 23304 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use 23305 gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly) 23306 gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use 23307 gen_vcond_mask_<VEC_1REG_MODE:mode>di. 23308 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise, 23309 but using the _exec comparison patterns. 23310 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use 23311 gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly) 23312 gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use 23313 gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di. 23314 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise, 23315 but using the _exec comparison patterns. 23316 233172019-07-06 Richard Sandiford <richard.sandiford@arm.com> 23318 23319 * config/arm/sync.md 23320 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use 23321 <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>. 23322 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use 23323 <SIDI:sync_predtab>. Use <SIDI:cas_cmp_operand> and 23324 <SIDI:cas_cmp_str>. 23325 233262019-07-06 Jakub Jelinek <jakub@redhat.com> 23327 23328 * omp-low.c (struct omp_context): Add for_simd_scan_phase member. 23329 (maybe_lookup_ctx): Add forward declaration. 23330 (omp_find_scan): Likewise. Walk into body of simd if composited 23331 with worksharing loop. 23332 (scan_omp_simd_scan): New function. 23333 (scan_omp_1_stmt): Call it. 23334 (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if 23335 ctx->for_simd_scan_phase. 23336 (lower_rec_input_clauses): Do much less work for inscan reductions 23337 in ctx->for_simd_scan_phase is_simd regions. 23338 (lower_omp_scan): Set is_simd also on simd constructs composited 23339 with worksharing loop, unless ctx->for_simd_scan_phase. Never emit 23340 a sorry message. Don't change GIMPLE_OMP_SCAN stmts into nops and 23341 emit their body after in simd constructs composited with worksharing 23342 loop. 23343 (lower_omp_for_scan): Handle worksharing loop composited with simd. 23344 23345 * omp-low.c (omp_find_scan): Make static. 23346 (lower_omp_for_scan): Fix order of merge arguments in input phase of 23347 the second loop, var2 represents the first partial sum and so needs 23348 to go before rprivb[ivar]. 23349 233502019-07-05 Iain Sandoe <iain@sandoe.co.uk> 23351 23352 * config/rs6000/rs6000-logue.c: Remove unused code. 23353 233542019-07-05 Eric Botcazou <ebotcazou@adacore.com> 23355 23356 * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p. 23357 233582019-07-05 Sam Tebbs <sam.tebbs@arm.com> 23359 23360 PR target/90712 23361 * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk 23362 check with a frame laid out check. 23363 233642019-07-05 Richard Biener <rguenther@suse.de> 23365 23366 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS 23367 when comparing against a store with possibly the same value. 23368 233692019-07-05 Richard Biener <rguenther@suse.de> 23370 23371 PR tree-optimization/91091 23372 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter. 23373 (walk_non_aliased_vuses): Likewise. 23374 * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p. 23375 (get_continuation_for_phi): New tbaa_p parameter and pass 23376 it down. 23377 (walk_non_aliased_vuses): Likewise. 23378 * ipa-prop.c (determine_known_aggregate_parts): Adjust. 23379 * tree-ssa-pre.c (translate_vuse_through_block): Likewise. 23380 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): 23381 Likewise. 23382 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag. 23383 (adjust_offsets_for_equal_base_address): New function. 23384 (vn_reference_lookup_3): Use it to catch more base equivalences. 23385 Handle and pass down tbaa_p flag. 23386 (vn_reference_lookup_pieces): Adjust. 23387 (vn_reference_lookup): Remove alias-set altering, instead pass 23388 down false as tbaa_p. 23389 233902019-07-05 Richard Biener <rguenther@suse.de> 23391 23392 PR tree-optimization/91091 23393 * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of 23394 accesses can happen with -fno-strict-aliasing. 23395 233962019-07-05 Jan Hubicka <hubicka@ucw.cz> 23397 23398 * tree-ssa-alias.c (alias_stats): Add 23399 nonoverlapping_component_refs_since_match_p_must_overlap. 23400 (dump_alias_stats): Print it. 23401 (nonoverlapping_component_refs_since_match_p): Add early exit. 23402 (nonoverlapping_component_refs_p): Do not account early exit. 23403 234042019-07-05 Eric Botcazou <ebotcazou@adacore.com> 23405 23406 * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ. 23407 * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location. 23408 (emit_eh_dispatch): Delete. 23409 (lower_catch): Emit the eh_dispatch manually and set the location of 23410 the first catch statement onto it. 23411 (lower_eh_filter): Emit the eh_dispatch manually and set location. 23412 (lower_eh_dispatch): Propagate location. 23413 * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially. 23414 (eliminate_build): Likewise. 23415 234162019-07-05 Eric Botcazou <ebotcazou@adacore.com> 23417 23418 * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on 23419 phi nodes if possible. 23420 * tree-scalar-evolution.c (final_value_replacement_loop): Propagate 23421 location info on the newly created statement. 23422 * tree-ssa-loop-manip.c (create_iv): Propagate location info on the 23423 newly created increment if needed. 23424 234252019-07-04 Jakub Jelinek <jakub@redhat.com> 23426 23427 PR middle-end/78884 23428 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member. 23429 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd 23430 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE. 23431 (gimplify_adjust_omp_clauses): Add safelen (1) clause if 23432 ctx->add_safelen1 is set. 23433 23434 * omp-expand.c (expand_omp_for_static_nochunk): Don't emit 23435 GOMP_loop_start at the start of second worksharing loop in a scan. 23436 For nowait, don't emit GOMP_loop_end_nowait at the end of first 23437 worksharing loop in a scan even if there are conditional lastprivates, 23438 and do emit GOMP_loop_end_nowait at the end of second worksharing loop. 23439 234402019-07-04 Jan Hubicka <jh@suse.cz> 23441 23442 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p): 23443 Fix check for match in the ref walk. 23444 234452019-07-04 Martin Liska <mliska@suse.cz> 23446 23447 * tree-ssa-loop-niter.c 23448 (get_upper_bound_based_on_builtin_expr_with_prob): New function. 23449 (estimate_numbers_of_iterations): 23450 Support __builtin_expect_with_probability for analysis 23451 of # of loop iterations. 23452 234532019-07-04 Alexandre Oliva <oliva@adacore.com> 23454 23455 * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR. 23456 * except.c: Likewise. 23457 * expr.c (expand_expr_real_1): Reject it. 23458 * gimplify.c (gimplify_expr): Gimplify it, within 23459 TRY_FINALLY_EXPR. 23460 * tree-dump.c (dequeue_and_dump): Dump it. 23461 * tree-pretty-print.c (dump_generic_node): Likewise. 23462 * tree.c (block_may_fallthru): Handle it. 23463 * tree.def (EH_ELSE_EXPR): Introduce it. 23464 * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY 23465 with GIMPLE_EH_ELSE as try/finally/else. 23466 234672019-07-04 Richard Biener <rguenther@suse.de> 23468 23469 PR ipa/91062 23470 * tree-pass.h (execute_all_ipa_transforms): Add a flag 23471 parameter whether to disable GC collection. 23472 * passes.c (execute_one_ipa_transform_pass): Likewise, and 23473 honor it. 23474 (execute_all_ipa_transforms): Likewise and pass it down. 23475 * cgraph.c (cgraph_node::get_body): Do not invoke garbage 23476 collection from applying IPA transforms. 23477 * cgraphunit.c (cgraph_node::expand): Allow garbage collection 23478 from applying IPA transforms. 23479 234802019-07-04 Richard Biener <rguenther@suse.de> 23481 23482 PR tree-optimization/90911 23483 * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field. 23484 (LOOP_VINFO_SCALAR_LOOP_SCALING): new. 23485 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 23486 scalar_loop_scaling. 23487 (vect_transform_loop): Scale scalar loop profile if needed. 23488 * tree-vect-loop-manip.c (vect_loop_versioning): When re-using 23489 the loop copy from if-conversion adjust edge probabilities 23490 and scale the vectorized loop body profile, queue the scalar 23491 profile for updating after peeling. 23492 234932019-07-04 Jan Hubicka <jh@suse.cz> 23494 23495 * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2 23496 parameters; return early for must-alias. 23497 (indirect_ref_may_alias_decl_p): Likewise; when establishing 23498 outer types match, try nonoverlapping_component_refs 23499 if must-alias is not obvious. 23500 (indirect_refs_may_alias_p): Likewise. 23501 (refs_may_alias_p_2): Likewise. 23502 235032019-07-04 Richard Biener <rguenther@suse.de> 23504 23505 * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr 23506 argument. 23507 * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move 23508 globals into... 23509 (struct vn_walk_cb_data): New callback data struct. 23510 (vn_reference_lookup_2): Adjust. 23511 (vn_reference_lookup_3): Likewise. 23512 (vn_reference_lookup_pieces): Likewise. 23513 (vn_reference_lookup): Likewise, get last_vuse_ptr argument. 23514 (visit_reference_op_load): Adjust. 23515 235162019-07-04 Jakub Jelinek <jakub@redhat.com> 23517 23518 PR tree-optimization/91063 23519 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove 23520 stmt from stmts sequence before calling vect_init_vector_1. 23521 Formatting fix. 23522 235232019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 23524 23525 PR target/88833 23526 * fwprop.c (reg_single_def_p): New function. 23527 (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case. 23528 (forward_propagate_into): New parameter reg_prop_only 23529 with default value false. 23530 Propagate def's src into loop only if SET_SRC and SET_DEST 23531 of def_set have single definitions. 23532 Likewise if reg_prop_only is set to true. 23533 (fwprop): New param fwprop_addr_p. 23534 Integrate fwprop_addr into fwprop. 23535 (fwprop_addr): Remove. 23536 (pass_rtl_fwprop_addr::execute): Call fwprop with arg set 23537 to true. 23538 (pass_rtl_fwprop::execute): Call fwprop with arg set to false. 23539 * simplify-rtx.c (simplify_subreg): Add case for vector comparison. 23540 * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern. 23541 235422019-07-04 Jakub Jelinek <jakub@redhat.com> 23543 23544 * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body 23545 in worksharing loop scans. 23546 23547 PR tree-optimization/91074 23548 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx 23549 temporary. 23550 23551 PR rtl-optimization/90756 23552 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it 23553 for VECTOR_TYPE_P. 23554 235552019-07-03 Dennis Zhang <dennis.zhang@arm.com> 23556 23557 * config/aarch64/aarch64.md: Remove redundant constraints from 23558 define_expand but keep some patterns untouched if they are 23559 specially selected by TARGET_SECONDARY_RELOAD hook. 23560 * config/aarch64/aarch64-sve.md: Likewise. 23561 * config/aarch64/atomics.md: Remove redundant constraints from 23562 define_expand. 23563 * config/aarch64/aarch64-simd.md: Likewise. 23564 235652019-07-03 Iain Sandoe <iain@sandoe.co.uk> 23566 23567 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases. 23568 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC. 23569 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker 23570 clauses. 23571 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and 23572 DARWIN_NOPIE_SPEC. 23573 235742019-07-03 Iain Sandoe <iain@sandoe.co.uk> 23575 23576 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin. 23577 (STARTFILE_SPEC): Split crt3 into a separate spec. 23578 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec. 23579 (DARWIN_CRT2_SPEC): New. 23580 (DARWIN_CRT3_SPEC): New. 23581 (MIN_LD64_OMIT_STUBS): Revise to 62.1. 23582 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions. 23583 (DARWIN_CRT3_SPEC): New. 23584 235852019-07-03 Michael Meissner <meissner@linux.ibm.com> 23586 23587 * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator): 23588 Change the RTL attribute "length" from "4" to "*" to allow the 23589 length attribute to be adjusted automatically for prefixed load, 23590 store, and add immediate instructions. 23591 * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator): 23592 Likewise. 23593 (extendsi<mode>2, EXTSI iterator): Likewise. 23594 (movsi_internal1): Likewise. 23595 (movsi_from_sf): Likewise. 23596 (movdi_from_sf_zero_ext): Likewise. 23597 (mov<mode>_internal): Likewise. 23598 (movcc_internal1, QHI iterator): Likewise. 23599 (mov<mode>_softfloat, FMOVE32 iterator): Likewise. 23600 (movsf_from_si): Likewise. 23601 (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise. 23602 (mov<mode>_softfloat64, FMOVE64 iterator): Likewise. 23603 (mov<mode>, FMOVE128 iterator): Likewise. 23604 (movdi_internal64): Likewise. 23605 * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator): 23606 Likewise. 23607 (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise. 23608 (vsx_mov<mode>_64bit, VSX_M iterator): Likewise. 23609 (vsx_mov<mode>_32bit, VSX_M iterator): Likewise. 23610 (vsx_splat_v4sf): Likewise. 23611 236122019-07-03 Mark Wielaard <mark@klomp.org> 23613 23614 PR debug/90981 23615 * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add 23616 DW_AT_addr_base if there is actually a .debug_addr section with 23617 addresses. 23618 (output_addr_table): Add DWARF5 table header generation here after 23619 checking there are actually any addresses from... 23620 (dwarf2out_finish): ...here. 23621 236222019-07-03 Richard Biener <rguenther@suse.de> 23623 23624 PR middle-end/91069 23625 * match.pd (vec_perm -> bit_insert): Fix element read from 23626 first vector. 23627 236282019-07-03 Martin Liska <mliska@suse.cz> 23629 23630 * dbgcnt.def (DEBUG_COUNTER): Add match debug counter. 23631 * genmatch.c (dt_simplify::gen_1): Generate dbgcnt 23632 condition. 23633 * generic-match-head.c: Include dbgcnt.h. 23634 * gimple-match-head.c: Likewise. 23635 236362019-07-03 Martin Liska <mliska@suse.cz> 23637 23638 * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove. 23639 (GCOV_COUNTER_V_TOPN): New. 23640 (GCOV_COUNTER_V_INDIR): Use _topn. 23641 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove. 23642 (GCOV_TOPN_VALUES): New. 23643 (GCOV_SINGLE_VALUE_COUNTERS): Remove. 23644 (GCOV_TOPN_VALUES_COUNTERS): New. 23645 * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES. 23646 * tree-profile.c: 23647 (gimple_init_gcov_profiler): Rename variables from one_value 23648 to topn_values. 23649 (gimple_gen_one_value_profiler): Remove. 23650 (gimple_gen_topn_values_profiler): New function. 23651 * value-prof.c (dump_histogram_value): Use TOPN_VALUES 23652 names instead of SINGLE_VALUE. 23653 (stream_out_histogram_value): Likewise. 23654 (stream_in_histogram_value): Likewise. 23655 (get_most_common_single_value): Likewise. 23656 (gimple_divmod_fixed_value_transform): Likewise. 23657 (gimple_stringops_transform): Likewise. 23658 (gimple_divmod_values_to_profile): Likewise. 23659 (gimple_stringops_values_to_profile): Likewise. 23660 (gimple_find_values_to_profile): Likewise. 23661 * value-prof.h (enum hist_type): Rename to TOPN. 23662 (gimple_gen_one_value_profiler): Remove. 23663 (gimple_gen_topn_values_profiler): New. 23664 236652019-07-03 Eric Botcazou <ebotcazou@adacore.com> 23666 23667 * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE 23668 if it has the DW_AT_data_member_location attribute. 23669 236702019-07-03 Richard Biener <rguenther@suse.de> 23671 23672 * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR 23673 dumping. 23674 236752019-07-03 Sylvia Taylor <sylvia.taylor@arm.com> 23676 23677 * config/aarch64/aarch64.md (FP_REGNUM): New constant. 23678 (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM. 23679 (tlsdesc_small_sve_<mode>): Likewise. 23680 236812019-07-03 Martin Liska <mliska@suse.cz> 23682 23683 * Makefile.in: Define ZSTD_LIB. 23684 * common.opt: Adjust compression level 23685 to support also zstd levels. 23686 * config.in: Regenerate. 23687 * configure: Likewise. 23688 * configure.ac: Add --with-zstd and --with-zstd-include options 23689 and detect ZSTD. 23690 * doc/install.texi: Mention zstd dependency. 23691 * gcc.c: Print supported LTO compression algorithms. 23692 * lto-compress.c (lto_normalized_zstd_level): Likewise. 23693 (lto_compression_zstd): Likewise. 23694 (lto_uncompression_zstd): Likewise. 23695 (lto_end_compression): Dispatch in between zlib and zstd. 23696 (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED. 23697 (lto_uncompression_zlib): Make it static. 23698 * lto-compress.h (lto_end_uncompression): Fix GNU coding style. 23699 * lto-section-in.c (lto_get_section_data): Pass info 23700 about used compression. 23701 * lto-streamer-out.c: By default use zstd when possible. 23702 * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression 23703 (TV_IPA_LTO_COMPRESS): Likewise for compression. 23704 237052019-07-03 Martin Liska <mliska@suse.cz> 23706 23707 * lto-section-in.c (lto_get_section_data): Add "lto" section. 23708 * lto-section-out.c (lto_destroy_simple_output_block): Never 23709 compress LTO_section_lto section. 23710 * lto-streamer-out.c (produce_asm): Do not set major_version 23711 and minor_version. 23712 (lto_output_toplevel_asms): Likewise. 23713 (produce_lto_section): New function. 23714 (lto_output): Call produce_lto_section. 23715 (lto_write_mode_table): Do not set major_version and 23716 minor_version. 23717 (produce_asm_for_decls): Likewise. 23718 * lto-streamer.h (enum lto_section_type): Add LTO_section_lto 23719 type. 23720 (struct lto_header): Remove. 23721 (struct lto_section): New struct. 23722 (struct lto_simple_header): Do not inherit from lto_header. 23723 (struct lto_file_decl_data): Add lto_section_header field. 23724 237252019-07-03 Martin Liska <mliska@suse.cz> 23726 23727 * lra-eliminations.c (eliminate_regs_in_insn): Remove 23728 dead assignemts. 23729 * reg-stack.c (check_asm_stack_operands): Likewise. 23730 * tree-ssa-structalias.c (create_function_info_for): Likewise. 23731 * tree-vect-generic.c (expand_vector_operations_1): Likewise. 23732 * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use 23733 force_expand_binop. 23734 237352019-07-03 Martin Liska <mliska@suse.cz> 23736 23737 PR tree-optimization/90892 23738 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0' 23739 in string constants. 23740 237412019-07-03 Martin Liska <mliska@suse.cz> 23742 23743 PR middle-end/90899 23744 * multiple_target.c (create_dispatcher_calls): Add to comdat 23745 group only if set for ifunc. 23746 237472019-07-03 Martin Liska <mliska@suse.cz> 23748 23749 PR target/88056 23750 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): 23751 Define local_object_name in outer scope in order to handle 23752 use-after-scope issue. 23753 237542019-07-03 Martin Liska <mliska@suse.cz> 23755 23756 * common.opt: Add fprofile-note. 23757 * coverage.c (coverage_init): Append the option 23758 to bbg_file_name. 23759 * doc/invoke.texi: Document -fprofile-note. 23760 237612019-07-03 Jakub Jelinek <jakub@redhat.com> 23762 23763 PR tree-optimization/91033 23764 * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized, 23765 vect_analyze_data_refs): Add bool * arguments. 23766 * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument, 23767 if failure is due to scatter/gather, set *fatal to false if non-NULL. 23768 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise. 23769 * tree-vect-loop.c (vect_analyze_loop_2): Adjust 23770 vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers. 23771 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust 23772 vect_analyze_data_refs caller. 23773 23774 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_ 23775 clause. 23776 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of 23777 OMP_CLAUSE__CONDTEMP_ as range's upper bound. 23778 (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define. 23779 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add 23780 OMP_CLAUSE__SCANTEMP_ entry. 23781 (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_. 23782 * tree-pretty-print.c (dump_omp_clause): Likewise. 23783 * tree-nested.c (convert_nonlocal_omp_clauses, 23784 convert_local_omp_clauses): Likewise. 23785 * omp-general.h (struct omp_for_data): Add have_scantemp and 23786 have_nonctrl_scantemp members. 23787 * omp-general.c (omp_extract_for_data): Initialize them. 23788 * omp-low.c (struct omp_context): Add scan_exclusive member. 23789 (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind 23790 result again with GF_OMP_FOR_KIND_MASK. Initialize also 23791 ctx->scan_exclusive. 23792 (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead 23793 of !ctx->scan_inclusive. 23794 (lower_rec_input_clauses): Simplify gimplification of dtors using 23795 gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN 23796 rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing 23797 loops. Don't add barrier for reduction_omp_orig_ref if 23798 ctx->scan_??xclusive. 23799 (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive. 23800 (lower_omp_scan): Use ctx->scan_exclusive instead 23801 of !ctx->scan_inclusive. Handle worksharing loops with inscan 23802 reductions. Use new_vard != new_var instead of repeated 23803 omp_is_reference calls. 23804 (omp_find_scan, lower_omp_for_scan): New functions. 23805 (lower_omp_for): Call lower_omp_for_scan for worksharing loops with 23806 inscan reductions. 23807 * omp-expand.c (expand_omp_scantemp_alloc): New function. 23808 (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp 23809 and fd->have_scantemp. 23810 23811 * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions 23812 on worksharing loop propagate it as shared clause to containing 23813 combined parallel. 23814 23815 * omp-expand.c (expand_omp_for_static_nochunk, 23816 expand_omp_for_static_chunk): For nowait worksharing loop with 23817 conditional lastprivate clause(s), emit GOMP_loop_end_nowait call 23818 at the end. 23819 238202019-07-02 qing zhao <qing.zhao@oracle.com> 23821 23822 PR preprocessor/90581 23823 * doc/cppopts.texi: Add document for -fmax-include-depth. 23824 * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth. 23825 238262019-07-02 Uroš Bizjak <ubizjak@gmail.com> 23827 23828 * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb): 23829 Use TARGET_SSE2 && SSE_REGNO_P in split condition. 23830 (mmx_packssdw): Ditto. 23831 (mmx_punpckhbw): Ditto. 23832 (mmx_punpcklbw): Ditto. 23833 (mmx_punpckhwd): Ditto. 23834 (mmx_punpcklwd): Ditto. 23835 (mmx_punpckhdq): Ditto. 23836 (mmx_punpckldq): Ditto. 23837 (*vec_dupv4hi): Ditto. 23838 (*vec_dupv2si): Ditto. 23839 (mmx_pmovmskb): Ditto. 23840 * config/i386/sse.md (sse_cvtpi2ps): Use 23841 TARGET_SSE2 && SSE_REG_P in split condition. 23842 (ssse3_ph<plusminus_mnemonic>wv4hi3): Use 23843 TARGET_SSSE3 && SSE_REGNO_P in split condition. 23844 (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto. 23845 (ssse3_pshufbv8qi3): Ditto. 23846 (ssse3_palignrdi): Ditto. 23847 238482019-07-02 Andrew Stubbs <ams@codesourcery.com> 23849 23850 * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn 23851 with inlined save and restore. 23852 238532019-07-02 Eric Botcazou <ebotcazou@adacore.com> 23854 23855 * cfgexpand.c (pass_expand::execute): Deal specially with instructions 23856 to be inserted on single successor edge of the entry block. Then call 23857 commit_edge_insertions instead of inserting the instructions manually. 23858 * cfgrtl.c (commit_edge_insertions): Do not verify flow info during 23859 RTL expansion and rebuild jump labels chain. 23860 238612019-07-02 Richard Biener <rguenther@suse.de> 23862 23863 * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and 23864 TI_CHREC_KNOWN. 23865 * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known): 23866 Define here. 23867 * tree.c (build_common_tree_nodes): Initialize them. 23868 * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known): 23869 Make declarations comments. 23870 * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know, 23871 chrec_known): Remove definitions. 23872 (initialize_scalar_evolutions_analyzer): Remove. 23873 (scev_initialize): Do not call initialize_scalar_evolutions_analyzer. 23874 * tree-streamer.c (preload_common_nodes): Do not preload 23875 TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN. 23876 238772019-07-02 Jan Hubicka <jh@suse.cz> 23878 23879 * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten 23880 sanity check. 23881 238822019-07-02 Jan Hubicka <jh@suse.cz> 23883 23884 * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename 23885 to .. 23886 (nonoverlapping_component_refs_since_match_p): ... this one; 23887 handle also non-decl bases; return -1 if search gave up. 23888 (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias, 23889 nonoverlapping_component_refs_of_decl_p_no_alias to 23890 nonoverlapping_component_refs_since_match_p_may_alias, 23891 nonoverlapping_component_refs_since_match_p_no_alias. 23892 (dump_alias_stats): Update dumping. 23893 (aliasing_matching_component_refs_p): Break out from ...; 23894 dispatch to nonoverlapping_component_refs_for_decl_p 23895 and nonoverlapping_component_refs_since_match_p. 23896 (aliasing_component_refs_p): ... here; call 23897 nonoverlapping_component_refs_p in scenarios where we can not 23898 precisely determine base match. 23899 (decl_refs_may_alias_p): Use 23900 nonoverlapping_component_refs_since_match_p. 23901 (indirect_ref_may_alias_decl_p): Do not call 23902 nonoverlapping_component_refs_p. 23903 (indirect_refs_may_alias_p): Likewise. 23904 239052019-07-02 Jan Hubicka <jh@suse.cz> 23906 23907 * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components 23908 to clobber of return value. 23909 239102019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 23911 23912 * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic 23913 for is_neon_type instructions that have not already been categorized. 23914 239152019-07-02 Richard Biener <rguenther@suse.de> 23916 23917 PR tree-optimization/58483 23918 * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF 23919 for MEM_REF base hashing. 23920 (equal_mem_array_ref_p): Likewise for base comparison. 23921 239222019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23923 23924 * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a 23925 parameterized name. 23926 (signbit<mode>2): Use that name. Simplify. 23927 239282019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com> 23929 23930 PR middle-end/66726 23931 * tree-ssa-phiopt.c (factor_out_conditional_conversion): 23932 Tune heuristic from PR71016 to allow MIN / MAX. 23933 239342019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23935 23936 * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a 23937 parameterized name. 23938 (abs<mode>2): Use that name. Simplify. 23939 239402019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23941 23942 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a 23943 parameterized name. 23944 (neg<mode>2): Use that name. Simplify. 23945 239462019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23947 23948 * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized 23949 name. 23950 (abs<mode>2): Use that name. Simplify. 23951 239522019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23953 23954 * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized 23955 name. 23956 (neg<mode>2): Use that name. Simplify. 23957 239582019-07-01 Uroš Bizjak <ubizjak@gmail.com> 23959 23960 * config/i386/i386.md ("isa" attribute): Add sse_noavx. 23961 ("enabled" attribute): Handle sse_noavx isa attribute. 23962 * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute. 23963 Use TARGET_SSE && SSE_REGNO_P in split condition. 23964 (*vec_dupv2sf): Ditto. 23965 239662019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23967 23968 * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized 23969 name. 23970 (floatsi<mode>2): Use that name. Simplify. 23971 239722019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23973 23974 * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a 23975 parameterized name. 23976 (extenddf<mode>2_vsx): Make this a parameterized name. 23977 (extenddf<mode>2): Use those names. Simplify. 23978 239792019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23980 23981 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized 23982 name. 23983 (eh_return): Use that name. Simplify. 23984 239852019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23986 23987 * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name. 23988 (doloop_end): Use that name. Simplify. 23989 239902019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23991 23992 * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a 23993 parameterized name. 23994 (indirect_jump): Use that name. Simplify. 23995 239962019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 23997 23998 * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a 23999 parameterized name. 24000 (abs<mode>2): Use that name. Simplify. 24001 240022019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 24003 24004 * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a 24005 parameterized name. 24006 (fix_trunc<mode>si2): Use that name. Simplify. 24007 240082019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 24009 24010 * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name. 24011 (allocate_stack): Use that name. Simplify. 24012 240132019-07-01 Martin Sebor <msebor@redhat.com> 24014 24015 PR middle-end/90923 24016 * hash-map.h (hash_map::put): On insertion invoke element ctor. 24017 (hash_map::get_or_insert): Same. Reformat comment. 24018 * hash-set.h (hash_set::add): On insertion invoke element ctor. 24019 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New. 24020 * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New. 24021 * hash-table.h (hash_table::operator=): Prevent copy assignment. 24022 (hash_table::hash_table (const hash_table&)): Use copy ctor 24023 instead of assignment to copy elements. 24024 240252019-07-01 Wilco Dijkstra <wdijkstr@arm.com> 24026 John David Anglin <danglin@gcc.gnu.org> 24027 24028 PR target/90963 24029 * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx 24030 using saved frame pointer. 24031 240322019-07-01 Eric Botcazou <ebotcazou@adacore.com> 24033 24034 PR middle-end/64242 24035 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last. 24036 Add frame clobber and schedule blockage. 24037 240382019-07-01 Sandra Loosemore <sandra@codesourcery.com> 24039 24040 * doc/invoke.texi (Link Options): Further editorial changes to 24041 -flinker-output docs. 24042 240432019-07-01 Segher Boessenkool <segher@kernel.crashing.org> 24044 24045 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): 24046 Load both operands of a PLUS into registers separately. 24047 240482019-07-01 Andreas Krebbel <krebbel@linux.ibm.com> 24049 24050 * config/s390/vector.md: Fix shift count operand printing. 24051 240522019-07-01 Richard Sandiford <richard.sandiford@arm.com> 24053 24054 * ira-lives.c (process_bb_node_lives): Use ira_setup_alts. 24055 240562019-07-01 Richard Sandiford <richard.sandiford@arm.com> 24057 24058 * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers. 24059 Use recog_data to test for an output operand. 24060 240612019-07-01 Richard Sandiford <richard.sandiford@arm.com> 24062 24063 * ira.c (ira_setup_alts): If any valid alternatives have zero cost, 24064 exclude any others that are disparaged or that are bound to need 24065 a reload or spill. 24066 (ira_get_dup_out_num): Expand comment. 24067 240682019-07-01 Richard Sandiford <richard.sandiford@arm.com> 24069 24070 * ira.c (ira_setup_alts): Use preprocess_constraints to get the 24071 constraint string for each operand/alternative combo. Only handle 24072 '%' at the start of constraint strings, and look for it outside 24073 the main loop. 24074 240752019-07-01 Richard Sandiford <richard.sandiford@arm.com> 24076 24077 * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use 24078 alternative_mask instead of HARD_REG_SET to represent a 24079 bitmask of alternatives. 24080 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise. 24081 * ira-conflicts.c (add_insn_allocno_copies): Likewise. 24082 240832019-07-01 Martin Liska <mliska@suse.cz> 24084 24085 * edit-context.c (test_applying_fixits_unreadable_file): Do not 24086 use () for a constructor call. 24087 (test_applying_fixits_line_out_of_range): Likewise. 24088 * ggc-page.c (alloc_page): Use (void *) for %p printf format 24089 argument. 24090 (free_page): Likewise. 24091 240922019-07-01 Vladislav Ivanishin <vlad@ispras.ru> 24093 24094 * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder 24095 parameter names to match usage (no functional change). 24096 (GdbPrettyPrinters.add_printer_for_regex): Ditto. 24097 240982019-07-01 Richard Biener <rguenther@suse.de> 24099 24100 * tree-ssa-sccvn.c (class pass_fre): Add may_iterate 24101 pass parameter. 24102 (pass_fre::execute): Honor it. 24103 * passes.def: Adjust pass_fre invocations to allow iterating, 24104 add non-iterating pass_fre before late threading/dom. 24105 241062019-07-01 Richard Biener <rguenther@suse.de> 24107 24108 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust 24109 TARGET_MEM_REF handling to also handle address-taken ones. 24110 241112019-07-01 Hongtao Liu <hongtao.liu@intel.com> 24112 24113 * doc/sourcebuild.texi (Effective-Target Keywords, Other 24114 hardware attributes): Document avx512vp2intersect. 24115 241162019-06-30 Uroš Bizjak <ubizjak@gmail.com> 24117 24118 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2. 24119 (abs<mode>2): New expander. 24120 * config/i386/i386-builtin.def (__builtin_ia32_pabsb): 24121 Use CODE_FOR_ssse3_absv8qi2. 24122 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2. 24123 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2. 24124 241252019-06-30 Uroš Bizjak <ubizjak@gmail.com> 24126 24127 * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx 24128 to sse, sse_noavx and avx. Update all uses. 24129 241302019-06-30 Uroš Bizjak <ubizjak@gmail.com> 24131 24132 * config/i386/mmx.md (sse_movntq): Add "isa" attribute. 24133 (*mmx_<plusminus_insn><mode>3): Ditto. 24134 (*mmx_mulv4hi3"): Ditto. 24135 (*mmx_smulv4hi3_highpart): Ditto. 24136 (*mmx_umulv4hi3_highpart): Ditto. 24137 (*mmx_pmaddwd): Ditto. 24138 (*sse2_umulv1siv1di3): Ditto. 24139 (*mmx_<code>v4hi3): Ditto. 24140 (*mmx_<code>v8qi3): Ditto. 24141 (mmx_ashr<mode>3): Ditto. 24142 ("mmx_<shift_insn><mode>3): Ditto. 24143 (*mmx_eq<mode>3): Ditto. 24144 (mmx_gt<mode>3): Ditto. 24145 (mmx_andnot<mode>3): Ditto. 24146 (*mmx_<code><mode>3): Ditto. 24147 (*mmx_pinsrw): Ditto. 24148 (*mmx_pextrw): Ditto. 24149 (mmx_pshufw_1): Ditto. 24150 (*mmx_uavgv8qi3): Ditto. 24151 (*mmx_uavgv4hi3): Ditto. 24152 ("mmx_psadbw): Ditto. 24153 * config/i386/sse.md (sse_cvtps2pi): Ditto. 24154 (sse_cvttps2pi): Ditto. 24155 (ssse3_pmaddubsw): Ditto. 24156 (*ssse3_pmulhrswv4hi3): Ditto. 24157 (ssse3_psign<mode>3): Ditto. 24158 241592019-06-29 Eric Botcazou <ebotcazou@adacore.com> 24160 24161 * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian 24162 adjustment for bit-fields to all aggregate types. 24163 241642019-06-28 Michael Meissner <meissner@linux.ibm.com> 24165 24166 * config/rs6000/predicates.md (pcrel_address): Use 24167 SYMBOL_REF_LOCAL_P to determine if a label is local. 24168 (pcrel_external_address): New predicate. 24169 (non_prefixed_mem_operand): Delete, predicate not used. 24170 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use 24171 SYMBOL_REF_LOCAL_P to determine if we can use pc-relative 24172 addressing. 24173 (SYMBOL_REF_PCREL_P): Likewise. 24174 24175 PR target/91009 24176 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX 24177 alternative. 24178 (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative. 24179 (floatunssi<mode>2_lfiwzx): Add non-VSX alternative. 24180 (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative. 24181 241822019-06-28 Iain Sandoe <iain@sandoe.co.uk> 24183 24184 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove 24185 override on extra_headers. 24186 241872019-06-28 Iain Sandoe <iain@sandoe.co.uk> 24188 24189 * config/darwin-c.c (pop_field_alignment): Quote #pragma options. 24190 * config/darwin-driver.c (darwin_default_min_version): Remove newline 24191 from warning. 24192 (darwin_driver_init): Likewise. 24193 241942019-06-28 Jan Beulich <jbeulich@suse.com> 24195 24196 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, 24197 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>): 24198 Eliminate redundant alternative. 24199 242002019-06-28 Jan Beulich <jbeulich@suse.com> 24201 24202 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, 24203 vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier. 24204 Use vector_operand. 24205 242062019-06-28 Claudiu Zissulescu <claziss@synopsys.com> 24207 24208 * config/arc/arc.c (arc_rtx_costs): All short instructions are 24209 having a lower cost regardless of the speed option. 24210 242112019-06-28 Jan Beulich <jbeulich@suse.com> 24212 24213 * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use 24214 vector_operand plus, on both alternatives, "Bm" constraint. 24215 242162019-06-28 Dennis Zhang <dennis.zhang@arm.com> 24217 24218 * config/arm/arm.md: Remove redundant constraints from 24219 define_expand but leave reload_inm and reload_outm patterns 24220 untouched since they need special constraints to work. 24221 * config/arm/arm-fixed.md: Remove redundant constraints from 24222 define_expand. 24223 * config/arm/iwmmxt.md: Likewise. 24224 * config/arm/neon.md: Likewise. 24225 * config/arm/sync.md: Likewise. 24226 * config/arm/thumb1.md: Likewise. 24227 * config/arm/vec-common.md: Likewise. 24228 242292019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com> 24230 24231 * doc/install.texi: Document --disable-tm-clone-registry. 24232 242332019-06-27 Jakub Jelinek <jakub@redhat.com> 24234 24235 PR c++/91024 24236 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT 24237 statements. 24238 24239 PR tree-optimization/91010 24240 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2, 24241 return true. Otherwise, don't call operand_equal_p if offset1 or 24242 offset2 is NULL and just return false. 24243 242442019-06-27 Iain Sandoe <iain@sandoe.co.uk> 24245 24246 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour 24247 user-specified float mode choice for kernel mode code. 24248 242492019-06-27 Iain Sandoe <iain@sandoe.co.uk> 24250 24251 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the 24252 spec. 24253 242542019-06-27 Iain Sandoe <iain@sandoe.co.uk> 24255 24256 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not 24257 use longcall for 64b code. 24258 242592019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com> 24260 24261 * builtins.c (get_memory_rtx): Fix comment. 24262 * optabs.def (movmem_optab): Change to cpymem_optab. 24263 * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem. 24264 (emit_block_move_hints): Change movmem to cpymem. 24265 * defaults.h: Change movmem to cpymem. 24266 * targhooks.c (get_move_ratio): Change movmem to cpymem. 24267 (default_use_by_pieces_infrastructure_p): Ditto. 24268 * config/aarch64/aarch64-protos.h: Change movmem to cpymem. 24269 * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem 24270 to cpymem. 24271 * config/aarch64/aarch64.h: Change movmem to cpymem. 24272 * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi. 24273 * config/alpha/alpha.h: Change movmem to cpymem in comment. 24274 * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change 24275 movmem to cpymem. 24276 * config/arc/arc-protos.h: Change movmem to cpymem. 24277 * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem. 24278 * config/arc/arc.h: Change movmem to cpymem in comment. 24279 * config/arc/arc.md (movmemsi): Change movmem to cpymem. 24280 * config/arm/arm-protos.h: Change movmem to cpymem in names. 24281 * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi, 24282 gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem. 24283 * config/arm/arm.md (movmemqi): Change movmem to cpymem. 24284 * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem. 24285 * config/avr/avr-protos.h: Change movmem to cpymem. 24286 * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi, 24287 avr_out_movmem): Change movmem to cpymem. 24288 * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>): 24289 Change movmem to cpymem. 24290 * config/bfin/bfin-protos.h: Change movmem to cpymem. 24291 * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem): 24292 Change movmem to cpymem. 24293 * config/bfin/bfin.h: Change movmem to cpymem in comment. 24294 * config/bfin/bfin.md (movmemsi): Change name to cpymemsi. 24295 * config/c6x/c6x-protos.h: Change movmem to cpymem. 24296 * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem. 24297 * config/c6x/c6x.md (movmemsi): Change name to cpymemsi. 24298 * config/frv/frv.md (movmemsi): Change name to cpymemsi. 24299 * config/ft32/ft32.md (movmemsi): Change name to cpymemsi. 24300 * config/h8300/h8300.md (movmemsi): Change name to cpymemsi. 24301 * config/i386/i386-expand.c (expand_set_or_movmem_via_loop, 24302 expand_set_or_movmem_via_rep, expand_movmem_epilogue, 24303 expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue, 24304 expand_small_cpymem_or_setmem, 24305 expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves, 24306 expand_set_or_cpymem_constant_prologue, 24307 ix86_expand_set_or_cpymem): Change movmem to cpymem. 24308 * config/i386/i386-protos.h: Change movmem to cpymem. 24309 * config/i386/i386.h: Change movmem to cpymem in comment. 24310 * config/i386/i386.md (movmem<mode>): Change name to cpymem. 24311 (setmem<mode>): Change expansion function name. 24312 * config/lm32/lm32.md (movmemsi): Change name to cpymemsi. 24313 * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op, 24314 movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem. 24315 * config/m32c/m32c-protos.h: Change movmem to cpymem. 24316 * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem. 24317 * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem. 24318 * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem 24319 to cpymem. 24320 * config/mcore/mcore.md (movmemsi): Change name to cpymemsi. 24321 * config/microblaze/microblaze.c: Change movmem to cpymem in comment. 24322 * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi. 24323 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p): 24324 Change movmem to cpymem. 24325 * config/mips/mips.h: Change movmem to cpymem. 24326 * config/mips/mips.md (movmemsi): Change name to cpymemsi. 24327 * config/nds32/nds32-memory-manipulation.c 24328 (nds32_expand_movmemsi_loop_unknown_size, 24329 nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop, 24330 nds32_expand_movmemsi_unroll, 24331 nds32_expand_movmemsi): Change movmem to cpymem. 24332 * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi. 24333 * config/nds32/nds32-protos.h: Change movmem to cpymem. 24334 * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem. 24335 (pa_adjust_insn_length): Change call to compute_movmem_length. 24336 * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload, 24337 movmemdi, movmemdi_prereload, 24338 movmemdi_postreload): Change movmem to cpymem. 24339 * config/pdp11/pdp11.md (movmemhi, movmemhi1, 24340 movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem. 24341 * config/riscv/riscv.c: Change movmem to cpymem in comment. 24342 * config/riscv/riscv.h: Change movmem to cpymem. 24343 * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi. 24344 * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi. 24345 * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change 24346 movmem to cpymem. 24347 * config/s390/s390-protos.h: Change movmem to cpymem. 24348 * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem, 24349 s390_expand_insv): Change movmem to cpymem. 24350 * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short, 24351 movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem. 24352 * config/sh/sh.md (movmemsi): Change name to cpymemsi. 24353 * config/sparc/sparc.h: Change movmem to cpymem in comment. 24354 * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype 24355 for nonexistent function. 24356 * config/vax/vax.h: Change movmem to cpymem in comment. 24357 * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem. 24358 * config/visium/visium.h: Change movmem to cpymem in comment. 24359 * config/visium/visium.md (movmemsi): Change name to cpymemsi. 24360 * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi. 24361 * doc/md.texi: Change movmem to cpymem and update description to match. 24362 * doc/rtl.texi: Change movmem to cpymem. 24363 * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem. 24364 * doc/tm.texi: Regenerate. 24365 243662019-06-27 Bill Schmidt <wschmidt@linux.ibm.com> 24367 24368 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable 24369 -fvariable-expansion-in-unroller by default. 24370 * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new 24371 default for Power. 24372 243732019-06-27 David Edelsohn <dje.gcc@gmail.com> 24374 24375 Revert 24376 2019-06-26 David Edelsohn <dje.gcc@gmail.com> 24377 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles. 24378 24379 * config.gcc(rs6000-*-*): Define target_gtfiles. 24380 243812019-06-27 Jan Hubicka <jh@suse.cz> 24382 24383 * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag. 24384 (add_type_duplicate): When odr hash is not allocated, to nothing. 24385 (odr_based_tbaa_p): New function. 24386 (set_type_canonical_for_odr_type): New function. 24387 * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p, 24388 set_type_canonical_for_odr_type): New. 24389 * tree.c (gimple_canonical_types_compatible_p): ODR types with 24390 ODR based TBAA are not equivalent to non-ODR types. 24391 243922019-06-27 Martin Liska <mliska@suse.cz> 24393 24394 PR tree-optimization/90974 24395 PR rtl-optimization/90975 24396 PR rtl-optimization/90976 24397 PR target/91016 24398 PR tree-optimization/91017 24399 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove 24400 unused tmp. 24401 * lra.c (lra_set_insn_recog_data): Remove a leftover from 24402 initial commit of IRA. 24403 * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead 24404 of op0 and op1. 24405 * tree-vect-loop.c (vect_create_epilog_for_reduction): 24406 Remove unused mode1. 24407 * tree-vect-stmts.c (vectorizable_call): Remove dead assignment 24408 to new_stmt_info. 24409 244102019-06-27 Jakub Jelinek <jakub@redhat.com> 24411 24412 PR target/90991 24413 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand 24414 instead of register_operand for operands[1], add m to its constraints 24415 if operands[2] uses "C" constraint. Ensure in condition that if 24416 operands[2] is not 0, then operands[1] is not a MEM. For last two 24417 alternatives, use unaligned loads instead of aligned if operands[1] is 24418 misaligned_operand. 24419 244202019-06-27 Martin Liska <mliska@suse.cz> 24421 24422 * asan.c (asan_emit_allocas_unpoison): Remove obviously 24423 dead assignments. 24424 * bt-load.c (move_btr_def): Likewise. 24425 * builtins.c (expand_builtin_apply_args_1): Likewise. 24426 (expand_builtin_apply): Likewise. 24427 * cfgexpand.c (expand_asm_stmt): Likewise. 24428 (construct_init_block): Likewise. 24429 * cfghooks.c (verify_flow_info): Likewise. 24430 * cfgloopmanip.c (remove_path): Likewise. 24431 * cfgrtl.c (rtl_verify_bb_layout): Likewise. 24432 * cgraph.c (cgraph_node::set_pure_flag): Likewise. 24433 * combine.c (simplify_if_then_else): Likewise. 24434 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. 24435 (choose_basereg): Likewise. 24436 (ix86_expand_prologue): Likewise. 24437 (ix86_preferred_output_reload_class): Likewise. 24438 * cselib.c (cselib_record_sets): Likewise. 24439 * df-scan.c (df_scan_alloc): Likewise. 24440 * dojump.c (do_jump_by_parts_greater_rtx): Likewise. 24441 * early-remat.c (early_remat::record_equiv_candidates): Likewise. 24442 * emit-rtl.c (try_split): Likewise. 24443 * graphite-scop-detection.c (assign_parameter_index_in_region): 24444 Likewise. 24445 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise. 24446 * ira-color.c (setup_profitable_hard_regs): Likewise. 24447 * ira.c (rtx_moveable_p): Likewise. 24448 * lra-eliminations.c (eliminate_regs_in_insn): Likewise. 24449 * read-rtl.c (read_subst_mapping): Likewise. 24450 * regrename.c (scan_rtx): Likewise. 24451 * reorg.c (fill_slots_from_thread): Likewise. 24452 * tree-inline.c (tree_function_versioning): Likewise. 24453 * tree-ssa-reassoc.c (optimize_ops_list): Likewise. 24454 * tree-ssa-sink.c (statement_sink_location): Likewise. 24455 * tree-ssa-threadedge.c (thread_across_edge): Likewise. 24456 * tree-vect-loop.c (vect_get_loop_niters): Likewise. 24457 (vect_create_epilog_for_reduction): Likewise. 24458 * tree.c (build_nonstandard_integer_type): Likewise. 24459 244602019-06-27 Richard Biener <rguenther@suse.de> 24461 24462 * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS. 24463 244642019-06-27 Jun Ma <JunMa@linux.alibaba.com> 24465 24466 PR tree-optimization/89772 24467 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in 24468 out-of-bound accesses checking. 24469 244702019-06-27 Martin Liska <mliska@suse.cz> 24471 24472 PR tree-optimization/91014 24473 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out 24474 when LHS is NULL_TREE. 24475 244762019-06-27 Martin Liska <mliska@suse.cz> 24477 24478 * symbol-summary.h (traverse): Pass 24479 argument a to the call of callback. 24480 (gt_ggc_mx): Mark arguments as unused. 24481 (gt_pch_nx): Likewise. 24482 244832019-06-27 Kewen Lin <linkw@gcc.gnu.org> 24484 24485 PR target/62147 24486 * loop-iv.c (find_simple_exit): Call finite_loop_p to update 24487 finiteness. 24488 244892019-06-26 Jeff Law <law@redhat.com> 24490 24491 PR tree-optimization/90883 24492 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature. 24493 (delete_dead_or_redundant_assignment): Likewise. 24494 24495 PR tree-optimization/90883 24496 * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC. 24497 * tree-ssa-dse.c: Update various comments to distinguish between 24498 dead and redundant stores. 24499 (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC. 24500 (dse_optimize_redundant_stores): New function. 24501 (delete_dead_or_redundant_call): Renamed from delete_dead_call. 24502 Distinguish between dead and redundant calls in dump output. All 24503 callers updated. 24504 (delete_dead_or_redundant_assignment): Similarly for assignments. 24505 (dse_optimize_stmt): Handle _CHK variants. For statements which 24506 store 0 into multiple memory locations, try to prove a subsequent 24507 store is redundant. 24508 245092019-06-26 Uroš Bizjak <ubizjak@gmail.com> 24510 24511 PR target/89021 24512 * config/i386/i386.c (ix86_autovectorize_vector_sizes): 24513 Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE. 24514 245152019-06-26 Iain Sandoe <iain@sandoe.co.uk> 24516 24517 * config/rs6000/rs6000-internal.h (branch_island): New typedef. 24518 (branch_islands): New extern. 24519 * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from 24520 * config/rs6000/rs6000.c: .. here. 24521 245222019-06-26 Iain Sandoe <iain@sandoe.co.uk> 24523 24524 * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here.. 24525 (powerpc*-*-*) ... to here. 24526 245272019-06-26 Jeff Law <law@redhat.com> 24528 24529 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of 24530 memcpy, memmove and memset builtins. 24531 (maybe_trim_memstar_call): Likewise. 24532 245332019-06-26 David Edelsohn <dje.gcc@gmail.com> 24534 24535 * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL. 24536 245372019-06-26 David Edelsohn <dje.gcc@gmail.com> 24538 24539 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles. 24540 245412019-06-26 Segher Boessenkool <segher@kernel.crashing.org> 24542 24543 * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New 24544 declaration. 24545 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove 24546 "static". 24547 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete 24548 declaration. 24549 245502019-06-26 Segher Boessenkool <segher@kernel.crashing.org> 24551 24552 * config/rs6000/rs6000.c: Fix previous commit, it missed some changes. 24553 245542019-06-26 Richard Biener <rguenther@suse.de> 24555 24556 PR ipa/90982 24557 * tree-inline.c (remap_ssa_name): Copy SSA range info. 24558 245592019-06-26 Richard Biener <rguenther@suse.de> 24560 24561 * lto-streamer.h (lto_bitmap_alloc): Remove. 24562 (lto_bitmap_free): Likewise. 24563 * lto-streamer.c (lto_bitmap_alloc): Remove. 24564 (lto_bitmap_free): Likewise. 24565 (lto_obstack): Likewise. 24566 (lto_obstack_initialized): Likewise. 24567 * lto-streamer-out.c (lto_output): Use own obstack for local 24568 bitmap, free it consistently. 24569 245702019-06-26 Jakub Jelinek <jakub@redhat.com> 24571 24572 PR target/90991 24573 * config/i386/sse.md 24574 (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd, 24575 vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned 24576 insns if operands[2] is misaligned_operand. 24577 245782019-06-26 Li Jia He <helijia@linux.ibm.com> 24579 24580 * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of 24581 TARGET_POWERPC64. 24582 * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI 24583 to GPR. 24584 245852019-06-26 Segher Boessenkool <segher@kernel.crashing.org> 24586 24587 * doc/invoke.texi (Warning Options): Fix some @opindex syntax. 24588 245892019-06-26 Martin Liska <mliska@suse.cz> 24590 24591 PR tree-optimization/90973 24592 * tree-vect-loop.c (vect_get_known_peeling_cost): Use 24593 epilogue_cost_vec instead of prologue_cost_vec for 24594 a epilogue cost. 24595 245962019-06-26 Martin Liska <mliska@suse.cz> 24597 24598 * bb-reorder.c (connect_better_edge_p): Add missing else 24599 statement in the middle of if-else statements. 24600 246012019-06-25 Hongtao Liu <hongtao.liu@intel.com> 24602 H.J. Lu <hongjiu.lu@intel.com> 24603 Olga Makhotina <olga.makhotina@intel.com> 24604 24605 * common/config/i386/i386-common.c 24606 (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET, 24607 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros. 24608 (OPTION_MASK_ISA2_AVX512F_UNSET): Add 24609 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET. 24610 (ix86_handle_option): Handle -mavx512vp2intersect. 24611 * config/i386/avx512vp2intersectintrin.h: New. 24612 * config/i386/avx512vp2intersectvlintrin.h: New. 24613 * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New. 24614 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 24615 AVX512VP2INTERSECT. 24616 * config/i386/i386-builtin-types.def: Add new types. 24617 * config/i386/i386-builtin.def: Add new builtins. 24618 * config/i386/i386-builtins.c: (enum processor_features): Add 24619 F_AVX512VP2INTERSECT. 24620 (static const _isa_names_table isa_names_table): Ditto. 24621 * config/i386/i386-c.c (ix86_target_macros_internal): Define 24622 __AVX512VP2INTERSECT__. 24623 * config/i386/i386-expand.c (ix86_expand_builtin): Expand 24624 IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512, 24625 IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256, 24626 IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128. 24627 * config/i386/i386-modes.def (P2QI, P2HI): New modes. 24628 * config/i386/i386-options.c (ix86_target_string): Add 24629 -mavx512vp2intersect. 24630 (ix86_option_override_internal): Handle AVX512VP2INTERSECT. 24631 * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for 24632 P2HImode and P2QImode. 24633 (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg 24634 number for P2QImode and P2HImode. 24635 (ix86_regmode_natural_size): New function. 24636 * config/i386/i386.h (TARGET_AVX512VP2INTERSECT, 24637 TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT 24638 REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New. 24639 * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare 24640 * config/i386/i386.opt: Add -mavx512vp2intersect. 24641 * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and 24642 avx512vp2intersectvlintrin.h. 24643 * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT. 24644 (define_mode_iterator VI48_AVX512VP2VL): New. 24645 (avx512vp2intersect_2intersect<mode>, 24646 avx512vp2intersect_2intersectv16si): New define_insn patterns. 24647 * config.gcc: Add avx512vp2intersectvlintrin.h and 24648 avx512vp2intersectintrin.h to extra_headers. 24649 * doc/invoke.texi: Document -mavx512vp2intersect. 24650 246512019-06-25 Iain Sandoe <iain@sandoe.co.uk> 24652 24653 * config/rs6000/darwin.h (ENDFILE_SPEC): New. 24654 246552019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com> 24656 24657 * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno, 24658 savres_routine_syms, savres_routine_name, morestack_ref, 24659 rs6000_init_machine_status, save_reg_p, first_reg_to_save, 24660 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask, 24661 compute_save_world_info, is_altivec_return_reg, fixed_reg_p, 24662 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info, 24663 rs6000_return_addr, rs6000_decl_ok_for_sibcall, 24664 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed, 24665 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC, 24666 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref, 24667 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1, 24668 get_stack_clash_protection_probe_interval, 24669 get_stack_clash_protection_guard_size, 24670 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack, 24671 rs6000_emit_probe_stack_range, output_probe_stack_range_1, 24672 interesting_frame_related_regno, output_probe_stack_range_stack_clash, 24673 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave, 24674 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save, 24675 gen_frame_mem_offset, rs6000_savres_routine_name, 24676 rs6000_savres_routine_sym, rs6000_emit_stack_reset, 24677 ptr_regno_for_savres, rs6000_emit_savres_rtx, 24678 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p, 24679 rs6000_global_entry_point_prologue_needed_p, 24680 rs6000_get_separate_components, rs6000_components_for_bb, 24681 rs6000_disqualify_components, rs6000_emit_prologue_components, 24682 rs6000_emit_epilogue_components, rs6000_set_handled_components, 24683 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue, 24684 rs6000_output_savres_externs, rs6000_output_function_prologue, 24685 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr, 24686 load_lr_save, restore_saved_lr, add_crlr_cfa_restore, 24687 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue, 24688 rs6000_output_function_epilogue, gen_add3_const, 24689 rs6000_expand_split_stack_prologue, rs6000_live_on_entry, 24690 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved 24691 to rs6000-logue.c. 24692 (machine_function): Moved to rs6000.h. 24693 (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to 24694 rs6000-internal.h. 24695 * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno, 24696 savres_routine_syms, savres_routine_name, morestack_ref, 24697 rs6000_init_machine_status, save_reg_p, first_reg_to_save, 24698 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask, 24699 compute_save_world_info, is_altivec_return_reg, fixed_reg_p, 24700 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info, 24701 rs6000_return_addr, rs6000_decl_ok_for_sibcall, 24702 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed, 24703 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC, 24704 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref, 24705 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1, 24706 get_stack_clash_protection_probe_interval, 24707 get_stack_clash_protection_guard_size, 24708 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack, 24709 rs6000_emit_probe_stack_range, output_probe_stack_range_1, 24710 interesting_frame_related_regno, output_probe_stack_range_stack_clash, 24711 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave, 24712 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save, 24713 gen_frame_mem_offset, rs6000_savres_routine_name, 24714 rs6000_savres_routine_sym, rs6000_emit_stack_reset, 24715 ptr_regno_for_savres, rs6000_emit_savres_rtx, 24716 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p, 24717 rs6000_global_entry_point_prologue_needed_p, 24718 rs6000_get_separate_components, rs6000_components_for_bb, 24719 rs6000_disqualify_components, rs6000_emit_prologue_components, 24720 rs6000_emit_epilogue_components, rs6000_set_handled_components, 24721 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue, 24722 rs6000_output_savres_externs, rs6000_output_function_prologue, 24723 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr, 24724 load_lr_save, restore_saved_lr, add_crlr_cfa_restore, 24725 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue, 24726 rs6000_output_function_epilogue, gen_add3_const, 24727 rs6000_expand_split_stack_prologue, rs6000_live_on_entry, 24728 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved 24729 to here from rs6000.c. 24730 * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c. 24731 * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT, 24732 quad_address_offset_p) Moved to here from rs6000.c. 24733 * config/rs6000/t-rs6000: Add new source file rs6000-logue.c. 24734 * config/config.gcc: Add new source file rs6000-logue.c to garbage 24735 collector. 24736 247372019-06-25 Martin Liska <mliska@suse.cz> 24738 24739 * hash-table.c (hashtab_chk_error): Move here from ... 24740 * hash-table.h (hashtab_chk_error): ... here. 24741 247422019-06-25 Martin Liska <mliska@suse.cz> 24743 24744 PR tree-optimization/90978 24745 * df-scan.c (df_update_entry_block_defs): Remove dead else 24746 branch. 24747 (df_update_exit_block_uses): Likewise. 24748 247492019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com> 24750 Andrew Stubbs <ams@codesourcery.com> 24751 24752 * config.gcc (thread_file): Set to gcn for AMD GCN. 24753 * config/gcn/gcn.c (gcn_emutls_var_init): New function. 24754 (TARGET_EMUTLS_VAR_INIT): New hook. 24755 247562019-06-25 Martin Jambor <mjambor@suse.cz> 24757 24758 PR ipa/90939 24759 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert. 24760 247612019-06-25 Richard Biener <rguenther@suse.de> 24762 24763 PR tree-optimization/90930 24764 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression 24765 into parallel form in the last pass instance. 24766 247672019-06-25 Claudiu Zissulescu <claziss@synopsys.com> 24768 24769 * config/arc/arc.c (arc_symbol_binds_local_p): New function. 24770 (arc_legitimize_pic_address): Simplify and cleanup the function. 24771 (SYMBOLIC_CONST): Remove. 24772 (prepare_pic_move): Likewise. 24773 (prepare_move_operands): Handle complex mov cases here. 24774 (arc_legitimize_address_0): Remove call to 24775 arc_legitimize_pic_address. 24776 (arc_legitimize_address): Remove call to 24777 arc_legitimize_tls_address. 24778 * config/arc/arc.md (movqi_insn): Allow Cm3 match. 24779 (movhi_insn): Likewise. 24780 247812019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com> 24782 24783 * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and 24784 PTRDIFF_TYPE. 24785 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__" 24786 format of "__intN" types for UINTMAX_TYPE. 24787 * stor-layout.c (initialize_sizetypes): Accept "__intN__" 24788 format of "__intN" types for SIZETYPE. 24789 * tree.c (build_common_tree_nodes): Accept "__intN__" 24790 format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE. 24791 * doc/invoke.texi: Document that __intN__ disables pedantic 24792 warnings. 24793 247942019-06-25 Jan Hubicka <jh@suse.cz> 24795 24796 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that 24797 base2_alias_set is non-zero before doing TBAA based disambiguation. 24798 247992019-06-25 Martin Liska <mliska@suse.cz> 24800 24801 PR tree-optimization/90973 24802 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval 24803 of prologue and epilogue. 24804 248052019-06-24 Jan Hubicka <jh@suse.cz> 24806 24807 * ipa-utils.h (type_with_linkage_p): Verify that type is 24808 CXX_ODR_P. 24809 (odr_type_p): Remove extra return. 24810 * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P; 24811 hash STRING_FLAG only for arrays and integers. 24812 * tree-stremaer-in.c (unpack_ts_type_common_value_fields): 24813 Update analogously. 24814 * tree-streamer-out.c (pack_ts_type_common_value_fields): 24815 Likewise. 24816 * print-tree.c (print_node): Print cxx-odr-p 24817 and string-flag. 24818 * tree.c (need_assembler_name_p): Also check that type 24819 is CXX_ODR_TYPE_P 24820 (verify_type_variant): Update verification of SRING_FLAG; 24821 also check CXX_ODR_P. 24822 * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro. 24823 (TYPE_STRING_FLAG): Use it. 24824 (TYPE_CXX_ODR_P): New macro. 24825 * dwarf2out.c (gen_array_type_die): First check that type 24826 is an array and then test string flag. 24827 248282019-06-24 Richard Biener <rguenther@suse.de> 24829 24830 PR tree-optimization/90972 24831 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P 24832 in common code, dealing with STRING_CST properly. 24833 248342019-06-24 Richard Biener <rguenther@suse.de> 24835 24836 PR tree-optimization/90930 24837 PR tree-optimization/90316 24838 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing 24839 decrement of limit. 24840 248412019-06-24 Martin Sebor <msebor@redhat.com> 24842 24843 * tree-pretty-print.h: Remove unnecessary punctuation characters 24844 from a diagnostic. 24845 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional. 24846 248472019-06-24 Jonathan Wakely <jwakely@redhat.com> 24848 24849 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG) 24850 (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN) 24851 (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17. 24852 248532019-06-23 Iain Sandoe <iain@sandoe.co.uk> 24854 24855 * config/rs6000/darwin.h: Handle GCC target pragma. 24856 248572019-06-23 Iain Sandoe <iain@sandoe.co.uk> 24858 24859 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New. 24860 248612019-06-22 Jeff Law <law@redhat.com> 24862 24863 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. 24864 248652019-06-22 Jan Hubicka <jh@suse.cz> 24866 24867 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not 24868 give up on bitfields; continue searching for different refs 24869 appearing later. 24870 248712019-06-21 Jakub Jelinek <jakub@redhat.com> 24872 24873 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle 24874 even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR 24875 containing the offset as possible simd lane access. Look through 24876 widening conversion. Move the 24877 TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent. 24878 248792019-06-21 Richard Biener <rguenther@suse.de> 24880 24881 PR tree-optimization/90930 24882 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited 24883 flag on new stmts to avoid re-processing them. 24884 248852019-06-21 Matthew Beliveau <mbelivea@redhat.com> 24886 24887 PR c++/90875 - added -Wswitch-outside-range option 24888 * doc/invoke.texi (Wswitch-outside-range): Document. 24889 248902019-06-21 Jeff Law <law@redhat.com> 24891 24892 PR tree-optimization/90949 24893 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info. 24894 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state. 24895 248962019-06-21 Richard Biener <rguenther@suse.de> 24897 24898 PR debug/90914 24899 * dwarf2out.c (prune_unused_types_walk): Always consider 24900 function-local extern declarations as used. 24901 249022019-06-21 Richard Biener <rguenther@suse.de> 24903 24904 PR tree-optimization/90913 24905 * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use 24906 the scalar variant of if-conversion versioning. 24907 249082019-06-21 Jakub Jelinek <jakub@redhat.com> 24909 24910 * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument, 24911 create another "omp scan inscan exclusive" array if 24912 !ctx->scan_inclusive. 24913 (lower_rec_input_clauses): Handle exclusive scan inscan reductions. 24914 (lower_omp_scan): Likewise. 24915 * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of 24916 2-bit bitfield for simd_lane_access_p member. 24917 * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle 24918 aux == (void *)-4 as simd lane access. 24919 * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update 24920 comment with permutations to show the canonical permutation order. 24921 (vectorizable_scan_store): Handle exclusive scan. 24922 (vectorizable_store): Call vectorizable_scan_store even for 24923 STMT_VINFO_SIMD_LANE_ACCESS_P > 3. 24924 24925 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle 24926 "omp simd array" arrays with one byte elements. 24927 249282019-06-20 Uroš Bizjak <ubizjak@gmail.com> 24929 24930 * config/alpha/alpha.md (@unaligned_store<mode>): 24931 Rename from unaligned_store<mode>. 24932 (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned. 24933 * config/alpha/sync.md (@load_locked_<mode>): Rename 24934 from load_locked_<mode>. 24935 (@store_conditional_<mode>): Rename from store_conditional_<mode>. 24936 (@atomic_compare_and_swap<mode>_1): Rename 24937 from atomic_compare_and_swap<mode>_1. 24938 (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1. 24939 * config/alpha/alpha.c (alpha_expand_mov_nobwx): 24940 Use gen_reload_in_aligned and gen_unaligned_store. 24941 (emit_load_locked): Remove. 24942 (emit_store_conditional): Ditto. 24943 (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional. 24944 (alpha_split_compare_and_swap): Ditto. 24945 (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1. 24946 (alpha_split_compare_and_swap_12): Use gen_load_locked 24947 and gen_store_conditional. 24948 (alpha_split_atomic_exchange): Ditto. 24949 (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1. 24950 (alpha_split_atomic_exchange_12): Use gen_load_locked 24951 and gen_store_conditional. 24952 249532019-06-20 Richard Earnshaw <rearnsha@arm.com> 24954 24955 * config/aarch64/aarch64-errata.h: New file. 24956 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete. 24957 (CA53_ERR_843419_SPEC): Delete. 24958 (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above. 24959 * config/aarch64/aarch64-linux.h: Likewise. 24960 * config/aarch64/aarch64-netbsd.h: Likewise. 24961 * config/aarch64/aarch64-freebsd.h: Likewise. 24962 249632019-06-20 Marek Polacek <polacek@redhat.com> 24964 24965 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name. 24966 249672019-06-20 Michael Meissner <meissner@linux.ibm.com> 24968 24969 * config/rs6000/rs6000.md (isa attribute): Add support for 24970 for a future processor. 24971 249722019-06-20 H.J. Lu <hongjiu.lu@intel.com> 24973 24974 PR target/54855 24975 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate 24976 standard scalar operation pattern for V2DF. 24977 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New. 24978 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. 24979 (*ieee_<ieee_maxmin><mode>3): Likewise. 24980 (vec_setv2df_0): Likewise. 24981 249822019-06-20 Jan Hubicka <jh@suse.cz> 24983 24984 * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl 24985 parameter; it has no use in gimple memory model. 24986 (indirect_ref_may_alias_decl_p): Update. 24987 249882019-06-20 Martin Liska <mliska@suse.cz> 24989 24990 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease 24991 to 10. 24992 249932019-06-20 Jakub Jelinek <jakub@redhat.com> 24994 24995 * tree-vect-stmts.c (enum scan_store_kind): New type. 24996 (scan_store_can_perm_p): Change last argument from int * to 24997 vec<enum scan_store_kind> *, record precisely which permutations 24998 need whole vector left shift or that plus VEC_COND_EXPR. 24999 (vectorizable_scan_store): Adjust caller, use whole vector left shift 25000 and additional VEC_COND_EXPR only for those iterations that need it. 25001 250022019-06-20 Alexandre Oliva <oliva@adacore.com> 25003 25004 * config.gcc: Fix ARM --with-fpu checking and error message. 25005 250062019-06-19 Marek Polacek <polacek@redhat.com> 25007 25008 PR c++/60364 - noreturn after first decl not diagnosed. 25009 * attribs.c (get_attribute_namespace): No longer static. 25010 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11 25011 attributes. 25012 (attr_noreturn_exclusions): Make it extern. 25013 * attribs.h (get_attribute_namespace): Declare. 25014 * tree-inline.c (function_attribute_inlinable_p): Use 25015 get_attribute_name. 25016 250172019-06-19 Martin Sebor <msebor@redhat.com> 25018 25019 PR tree-optimization/90626 25020 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos. 25021 25022 PR tree-optimization/90626 25023 * tree-ssa-strlen.c (strxcmp_unequal): New function. 25024 (handle_builtin_string_cmp): Call it. 25025 250262019-06-19 Iain Sandoe <iain@sandoe.co.uk> 25027 25028 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC 25029 and DARWIN_NOPIE_SPEC. 25030 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC. 25031 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h. 25032 (DARWIN_NOPIE_SPEC): Collate from darwin10.h. 25033 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h 25034 (DARWIN_EXPORT_DYNAMIC): Delete. 25035 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind 25036 and pie options processing to darwin.h. 25037 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h 25038 250392019-06-19 Iain Sandoe <iain@sandoe.co.uk> 25040 25041 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors 25042 in computing the number of options to be moved. 25043 250442019-06-19 Maya Rashish <coypu@sdf.org> 25045 25046 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition. 25047 (CLEAR_INSN_CACHE) Use it. 25048 250492019-06-19 Uroš Bizjak <ubizjak@gmail.com> 25050 25051 * config/i386/i386.md (cmpstrnsi): Remove dead code. 25052 250532019-06-19 Wilco Dijkstra <wdijkstr@arm.com> 25054 25055 PR middle-end/84521 25056 * builtins.c (expand_builtin_setjmp_setup): Save 25057 hard_frame_pointer_rtx. 25058 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we 25059 restore fp. 25060 * function.c (expand_function_start): Save hard_frame_pointer_rtx for 25061 non-local goto. 25062 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp 25063 elimination code. 25064 (remove_reg_equal_offset_note): Remove unused function. 25065 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination 25066 code. 25067 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. 25068 (arc_builtin_setjmp_frame_value): Remove function. 25069 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. 25070 (avr_builtin_setjmp_frame_value): Remove function. 25071 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. 25072 (ix86_builtin_setjmp_frame_value): Remove function. 25073 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment. 25074 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. 25075 (sparc_builtin_setjmp_frame_value): Remove function. 25076 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. 25077 (vax_builtin_setjmp_frame_value): Remove function. 25078 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame 25079 pointer if has_nonlocal_label. 25080 250812019-06-19 Jakub Jelinek <jakub@redhat.com> 25082 25083 * doc/md.texi: Document vec_shl_<mode> pattern. 25084 * optabs.def (vec_shl_optab): New optab. 25085 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab 25086 argument, if == vec_shl_optab, check for left whole vector shift 25087 pattern rather than right shift. 25088 (expand_vec_perm_const): Add vec_shl_optab support. 25089 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab 25090 in the comment. 25091 * tree-vect-generic.c (lower_vec_perm): Support permutations which 25092 can be handled by vec_shl_optab. 25093 * tree-vect-stmts.c (scan_store_can_perm_p): New function. 25094 (check_scan_store): Use it. 25095 (vectorizable_scan_store): If target can't do normal permutations, 25096 try to use whole vector left shifts and if needed a VEC_COND_EXPR 25097 after it. 25098 * config/i386/sse.md (vec_shl_<mode>): New expander. 25099 25100 * omp-low.c (lower_rec_input_clauses): Handle references properly 25101 in inscan clauses. 25102 (lower_omp_scan): Likewise. 25103 251042019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 25105 25106 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when 25107 mem_mode is BLKmode. 25108 251092019-06-18 Max Filippov <jcmvbkbc@gmail.com> 25110 25111 PR target/90922 25112 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack 25113 pointer adjustment for the case of no callee-saved registers and 25114 stack frame bigger than 128 bytes. 25115 251162019-06-18 Thomas Schwinge <thomas@codesourcery.com> 25117 25118 PR middle-end/90862 25119 * omp-low.c (check_omp_nesting_restrictions): Handle 25120 GF_OMP_TARGET_KIND_OACC_DECLARE. 25121 251222019-06-18 Uroš Bizjak <ubizjak@gmail.com> 25123 25124 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1. 25125 (@add<mode>3_carry): Rename from add<mode>3_carry. 25126 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc. 25127 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz. 25128 (@copysign<mode>3_const): Rename from copysign<mode>3_const. 25129 (@copysign<mode>3_var): Rename from copysign<mode>3_var. 25130 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1. 25131 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1. 25132 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2. 25133 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3. 25134 (cmpstrnsi): Use gen_cmp_1. 25135 (lwp_slwpcb): Use gen_lwp_slwpcb_1. 25136 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1. 25137 (@umonitor_<mode>): Rename from umonitor_<mode>. 25138 * config/i386/i386-expand.c (ix86_expand_copysign): 25139 Use gen_copysign3_const and gen_copysign3_var. 25140 (ix86_expand_xorsign): Use gen_xorsign3_1. 25141 (ix86_expand_branch): Use gen_sub3_carry_ccc, 25142 gen_sub3_carry_ccgz and gen_cmp1. 25143 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry. 25144 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2. 25145 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3. 25146 (ix86_split_lshr): Ditto. 25147 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor. 25148 251492019-06-18 Jason Merrill <jason@redhat.com> 25150 25151 * tree.c (build_constructor): Add MEM_STAT_DECL. 25152 251532019-06-18 Richard Sandiford <richard.sandiford@arm.com> 25154 25155 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE. 25156 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc) 25157 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>) 25158 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>) 25159 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc) 25160 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>) 25161 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4): 25162 Use CC_NZC instead of CC. 25163 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions. 25164 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable. 25165 (aarch64_print_operand): Handle E_CC_NZCmode. 25166 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead 25167 of gen_set_clobber_cc. 25168 251692019-06-18 Richard Sandiford <richard.sandiford@arm.com> 25170 25171 * config/aarch64/aarch64-sve.md: Tabify file. 25172 251732019-06-18 Richard Sandiford <richard.sandiford@arm.com> 25174 25175 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare. 25176 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function. 25177 * config/aarch64/aarch64-sve.md: Use it. 25178 251792019-06-18 Richard Sandiford <richard.sandiford@arm.com> 25180 25181 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare. 25182 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions. 25183 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move) 25184 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local) 25185 (aarch64_expand_sve_vec_cmp_int): Use it. 25186 (aarch64_expand_sve_vec_cmp_float): Likewise. 25187 * config/aarch64/aarch64-sve.md: Likewise throughout. 25188 251892019-06-18 Richard Sandiford <richard.sandiford@arm.com> 25190 Kugan Vivekanandarajah <kuganv@linaro.org> 25191 25192 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete. 25193 (*cond_<optab><mode>_z): Fold into... 25194 (*cond_<optab><mode>_any): ...here. Also handle cases in which 25195 operand 4 can be tied to operand 0 (either inherently or via RA). 25196 251972019-06-18 Richard Biener <rguenther@suse.de> 25198 25199 PR debug/90900 25200 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL 25201 as if optimized away. 25202 252032019-06-18 Tom de Vries <tdevries@suse.de> 25204 25205 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove. 25206 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove. 25207 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"): 25208 Rename to ... 25209 (define_insn "@set_softstack_<mode>"): ... this. 25210 (define_insn "omp_simt_enter_<mode>"): Rename to ... 25211 (define_insn "@omp_simt_enter_<mode>"): ... this. 25212 (define_insn "omp_simt_exit_<mode>"): Rename to ... 25213 (define_insn "@omp_simt_exit_<mode>"): ... this. 25214 252152019-06-18 Richard Sandiford <richard.sandiford@arm.com> 25216 25217 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove 25218 vf parameter. Restore the previous iv step of nscalars_step, 25219 but give it iv_type rather than compare_type. Tweak code order 25220 to match the comments. 25221 (vect_set_loop_condition_masked): Update accordingly. 25222 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int" 25223 for iv_precision. Tweak comment formatting. 25224 252252019-06-18 Iain Sandoe <iain@sandoe.co.uk> 25226 25227 * config/darwin.c: Strip trailing whitespace. 25228 252292019-06-18 Iain Sandoe <iain@sandoe.co.uk> 25230 25231 * config/darwin.c (darwin_emit_unwind_label): New default to false. 25232 (darwin_override_options): Set darwin_emit_unwind_label as needed. 25233 252342019-06-18 Martin Jambor <mjambor@suse.cz> 25235 25236 PR ipa/90889 25237 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the 25238 caller does not have flag_ipa_cp set. 25239 252402019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com> 25241 25242 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed 25243 from "*fold_left_plus_<mode>", updated operands order. 25244 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab. 25245 * internal-fn.c (mask_fold_left_direct): New define. 25246 (expand_mask_fold_left_optab_fn): Likewise. 25247 (direct_mask_fold_left_optab_supported_p): Likewise. 25248 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function. 25249 * optabs.def (mask_fold_left_plus_optab): New optab. 25250 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a 25251 masked internal_fn for a reduction ifn. 25252 (vectorize_fold_left_reduction): Add support for masking reductions. 25253 252542019-06-18 Kewen Lin <linkw@gcc.gnu.org> 25255 25256 PR middle-end/80791 25257 * target.def (predict_doloop_p): New hook. 25258 * targhooks.h (default_predict_doloop_p): New declaration. 25259 * targhooks.c (default_predict_doloop_p): New function. 25260 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook. 25261 * doc/tm.texi: Regenerate. 25262 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function. 25263 (TARGET_PREDICT_DOLOOP_P): New macro. 25264 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function. 25265 252662019-06-17 Jakub Jelinek <jakub@redhat.com> 25267 25268 * omp-low.c (struct omp_context): Add scan_inclusive field. 25269 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive 25270 if inclusive scan. 25271 (struct omplow_simd_context): Add lastlane member. 25272 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan 25273 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than 25274 1 or 2 argument. 25275 (lower_rec_input_clauses): Handle inscan reductions in simd contexts. 25276 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF. 25277 (lower_omp_scan): New function. 25278 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan. 25279 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE 25280 check 3rd argument if present rather than 2nd. 25281 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member. 25282 (struct _stmt_vec_info): Change simd_lane_access_p from bool into 25283 2-bit bitfield. 25284 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 25285 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather 25286 than 2nd. 25287 (_loop_vec_info::~_loop_vec_info): Delete scan_map. 25288 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two 25289 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same 25290 init. 25291 (vect_find_stmt_data_reference): Encode in ->aux the 2nd 25292 IFN_GOMP_SIMD_LANE argument. 25293 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the 25294 encoded ->aux value. 25295 * tree-vect-stmts.c: Include attribs.h. 25296 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE. 25297 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New 25298 functions. 25299 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0. 25300 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1. 25301 253022019-06-17 Uroš Bizjak <ubizjak@gmail.com> 25303 25304 PR target/62055 25305 * config/i386/i386.md (*nabstf2_1): New insn pattern. 25306 (*nabs<mode>2_1): Ditto. 25307 (nabs sse-reg splitter): New splitter. 25308 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern. 25309 253102019-06-17 Jan Hubicka <hubicka@ucw.cz> 25311 25312 PR bootstrap/90873. 25313 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix 25314 TMR index check. 25315 253162019-06-17 Tom de Vries <tdevries@suse.de> 25317 25318 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare. 25319 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function. 25320 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to 25321 ... 25322 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on 25323 match_operand 0. 25324 (define_insn "omp_simt_enter_insn"): Rename to ... 25325 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on 25326 match_operand 0, 1 and 2, as well as the unspec_volatile result. 25327 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and 25328 gen_omp_simt_enter_si. 25329 (define_expand "omp_simt_exit"): New. 25330 (define_insn "omp_simt_exit"): Rename to ... 25331 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on 25332 match_operand 0. 25333 253342019-06-17 Matthew Green <mrg@eterna.com.au> 25335 Maya Rashish <coypu@sdf.org> 25336 25337 * config.gcc (aarch64*-*-netbsd*): New target. 25338 * config/aarch64/aarch64-netbsd.h: New file. 25339 * config/aarch64/t-aarch64-netbsd: Likewise. 25340 253412019-06-17 Jan Hubicka <hubicka@ucw.cz> 25342 25343 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only 25344 the access path from base to first VIEW_CONVERT_EXPR or 25345 BIT_FIELD_REF. 25346 253472019-06-17 Jan Hubicka <hubicka@ucw.cz> 25348 25349 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate 25350 access path on BIT_FIELD_REFs. 25351 253522019-06-17 Martin Liska <mliska@suse.cz> 25353 25354 PR ipa/90874 25355 * ipa-utils.h (odr_type_p): Remove dead code. 25356 253572019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 25358 25359 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for 25360 alternative Solaris 11.4 format. 25361 * configure: Regenerate. 25362 253632019-06-17 Tom de Vries <tdevries@suse.de> 25364 25365 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ... 25366 (define_insn "call_insn_<mode>"): ... this. Use P iterator on 25367 match_operand 0. 25368 (define_insn "call_value_insn"): Rename to ... 25369 (define_insn "call_value_insn_<mode>"): this. Use P iterator on 25370 match_operand 0. 25371 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to 25372 DI. 25373 253742019-06-16 John David Anglin <danglin@gcc.gnu.org> 25375 25376 PR middle-end/64242 25377 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add 25378 frame clobbers and schedule block. 25379 (builtin_longjmp): Likewise. 25380 253812019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> 25382 25383 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which 25384 describe how to perform MSPABI compliant 64-bit shift. 25385 * config/msp430/msp430.md (ashldi3): New define_expand. 25386 (ashrdi3): New define_expand. 25387 (lshrdi3): New define_expand. 25388 253892019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> 25390 25391 * doc/sourcebuild.texi: Document new effective target keyword 25392 longlong64. 25393 253942019-06-16 Jan Hubicka <hubicka@ucw.cz> 25395 25396 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p, 25397 indirect_refs_may_alias_p): Revert accidental commits. 25398 25399 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays 25400 at the end of structures. 25401 254022019-06-16 Iain Sandoe <iain@sandoe.co.uk> 25403 25404 * config/darwin.c (machopic_indirect_call_target): Use renamed 25405 darwin_picsymbol_stubs to decide on output. 25406 (darwin_override_options): Handle darwin_picsymbol_stubs. 25407 * config/darwin.h (MIN_LD64_OMIT_STUBS): New. 25408 (LD64_VERSION): Revise default. 25409 * config/darwin.opt: (mpic-symbol-stubs): New option. 25410 (darwin_picsymbol_stubs): New variable. 25411 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS): 25412 rename to TARGET_MACHO_PICSYM_STUBS. 25413 * config/i386/i386.c (output_pic_addr_const): Likewise. 25414 * config/i386/i386.h Likewise. 25415 * config/rs6000/darwin.h: Likewise. 25416 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed 25417 darwin_picsymbol_stubs. 25418 254192019-06-16 Iain Sandoe <iain@sandoe.co.uk> 25420 25421 * config/darwin.opt (prebind, noprebind, seglinkedit, 25422 noseglinkedit): Add RejectNegative. 25423 254242019-06-16 Jan Hubicka <hubicka@ucw.cz> 25425 25426 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto 25427 in my previous patch. 25428 254292019-06-16 Tom de Vries <tdevries@suse.de> 25430 25431 PR tree-optimization/89376 25432 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL. 25433 254342019-06-15 Maya Rashish <coypu@sdf.org> 25435 25436 * doc/invoke.texi (Spec Files): Update location of the 25437 Fortran spec file. 25438 254392019-06-15 Gerald Pfeifer <gerald@pfeifer.com> 25440 25441 * doc/extend.texi (Common Function Attributes): Clarify 25442 no_sanitize. Fix grammar. 25443 254442019-06-15 Jan Hubicka <hubicka@ucw.cz> 25445 25446 * tree-ssa-alias.c (alias_stats): Add 25447 nonoverlapping_component_refs_p_may_alias, 25448 nonoverlapping_component_refs_p_no_alias, 25449 nonoverlapping_component_refs_of_decl_p_may_alias, 25450 nonoverlapping_component_refs_of_decl_p_no_alias. 25451 (dump_alias_stats): Dump them. 25452 (nonoverlapping_component_refs_of_decl_p): Add stats. 25453 (nonoverlapping_component_refs_p): Add stats; do not stop on first 25454 ARRAY_REF. 25455 254562019-06-15 Uroš Bizjak <ubizjak@gmail.com> 25457 25458 * config/i386/i386.md (and<mode>3): Generate zero-extends for 25459 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) 25460 only. 25461 (*anddi3_doubleword): Split before reload. Merge with 25462 anddi->zext pre-reload splitter. 25463 (*andndi3_doubleword): Split before reload. 25464 (*<code>di3_doubleword): Ditto. 25465 (*one_cmpldi2_doubleword): Ditto. 25466 254672019-06-15 Jakub Jelinek <jakub@redhat.com> 25468 25469 PR middle-end/90779 25470 * gimplify.c: Include omp-offload.h and context.h. 25471 (gimplify_bind_expr): Add "omp declare target" attributes 25472 to static block scope variables inside of target region or target 25473 functions. 25474 254752019-06-15 Tom de Vries <tdevries@suse.de> 25476 25477 PR tree-optimization/90009 25478 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): 25479 Return NULL if bb contains IFN_UNIQUE. 25480 254812019-06-14 Segher Boessenkool <segher@kernel.crashing.org> 25482 25483 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator. 25484 (un): New define_mode_attr. 25485 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ... 25486 (isel_<un>signed_<GPR:mode>): ... this. New define_insn. 25487 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete, 25488 merge into ... 25489 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn. 25490 254912019-06-14 Iain Sandoe <iain@sandoe.co.uk> 25492 25493 * config/darwin.opt: Add RejectNegative where needed, reorder 25494 and add minimal functional descriptions. 25495 254962019-06-14 H.J. Lu <hongjiu.lu@intel.com> 25497 25498 PR rtl-optimization/90765 25499 * calls.c (update_stack_alignment_for_call): New function. 25500 (expand_call): Call update_stack_alignment_for_call when 25501 outgoing parameter is passed in the stack. 25502 (emit_library_call_value_1): Likewise. 25503 * function.c (locate_and_pad_parm): Don't update 25504 stack_alignment_needed and preferred_stack_boundary. 25505 255062019-06-14 H.J. Lu <hongjiu.lu@intel.com> 25507 25508 PR target/90877 25509 * config/i386/i386-features.c 25510 (dimode_scalar_chain::compute_convert_gain): Replace 25511 mmxsse_to_integer with sse_to_integer. 25512 * config/i386/i386.c (ix86_register_move_cost): Verify that 25513 moves between MMX and non-MMX units require secondary memory. 25514 Correct costs of moves between SSE and integer units. 25515 * config/i386/i386.h (processor_costs): Rename cost of moving 25516 SSE register to integer to sse_to_integer. Rename cost of 25517 255182019-06-14 Matt Thomas <matt@3am-software.com> 25519 Matthew Green <mrg@eterna.com.au> 25520 Nick Hudson <skrll@netbsd.org> 25521 Maya Rashish <coypu@sdf.org> 25522 Richard Earnshaw <rearnsha@arm.com> 25523 25524 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration. 25525 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD. 25526 * config/arm/netbsd-eabi.h: New file. 25527 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before 25528 redefining. 25529 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler. 25530 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define. 25531 (NETBSD_SUBTARGET_EXTRA_SPECS): New define. 25532 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS. 25533 255342019-06-14 Richard Biener <rguenther@suse.de> 25535 25536 * tree-loop-distribution.c (classify_partition): Return 25537 whether a reduction appeared in all partitions and do not 25538 stop builtin detection because of this. 25539 (distribute_loop): Sort a non-builtin partition last if 25540 there's a reduction in all partitions and make sure the 25541 partition prevailing as last is not a builtin. 25542 255432019-06-14 Feng Xue <fxue@os.amperecomputing.com> 25544 25545 PR ipa/90401 25546 * ipa-prop.c (add_to_agg_contents_list): New function. 25547 (clobber_by_agg_contents_list_p): Likewise. 25548 (extract_mem_content): Likewise. 25549 (get_place_in_agg_contents_list): Delete. 25550 (determine_known_aggregate_parts): Renamed from 25551 determine_locally_known_aggregate_parts. New parameter 25552 aa_walk_budget_p. 25553 255542019-06-13 Martin Sebor <msebor@redhat.com> 25555 25556 PR tree-optimization/90662 25557 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands 25558 to the same type. 25559 255602019-06-13 Jan Hubicka <hubicka@ucw.cz> 25561 25562 PR bootstrap/90873 25563 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that 25564 dbase is not TARGET_MEM_REF. 25565 255662019-06-13 Uroš Bizjak <ubizjak@gmail.com> 25567 25568 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x. 25569 Update all uses. 25570 (and<mode>3): Use gen_extend_insn instead of indirect functions. 25571 Do not generate DImode extends for 32bit targets. 25572 (and->zext post-reload splitter): Use gen_extend_insn 25573 instead of indirect functions. 25574 (anddi->zext pre-reload splitter): New. 25575 (*zext<mode>_doubleword_and): Remove. 25576 (*zext<mode>_doubleword): Ditto. 25577 (*zextsi_doubleword): Dittto. 25578 255792019-06-13 Uroš Bizjak <ubizjak@gmail.com> 25580 25581 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): 25582 Use gen_sub3_insn instead of indirect function. 25583 (ix86_expand_ashl_const): Use gen_add2_insn instead of 25584 indirect function. 25585 (ix86_adjust_counter): Ditto. 25586 255872019-06-13 Jiufu Guo <guojiufu@linux.ibm.com> 25588 Lijia He <helijia@linux.ibm.com> 25589 25590 PR tree-optimization/77820 25591 * tree-ssa-threadedge.c 25592 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New 25593 function. 25594 (thread_across_edge): Add call to 25595 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p. 25596 255972019-06-13 Iain Sandoe <iain@sandoe.co.uk> 25598 25599 * config/darwin-driver.c (validate_macosx_version_min): New. 25600 (darwin_default_min_version): Cleanup and validate supplied version. 25601 (darwin_driver_init): Likewise and push cleaned version into opts. 25602 256032019-06-13 Jan Hubicka <hubicka@ucw.cz> 25604 25605 PR tree-optimization/90869 25606 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view 25607 converts in MEM_REF referencing decl rather than view converts 25608 from decl type to MEM_REF type. 25609 256102019-06-13 Richard Biener <rguenther@suse.de> 25611 25612 PR tree-optimization/90856 25613 * tree-sra.c (build_ref_for_model): Only use 25614 build_reconstructed_reference when address-spaces are the same. 25615 256162019-06-13 Jakub Jelinek <jakub@redhat.com> 25617 25618 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't 25619 wrap ei variable name in the declaration in ()s. 25620 (nvptx_single): Actually use mode_label variable. Formatting fix. 25621 256222019-06-13 Richard Biener <rguenther@suse.de> 25623 25624 * tree-vectorizer.h (vect_loop_vectorized_call): Declare. 25625 * tree-vectorizer.c (vect_loop_vectorized_call): Export and 25626 also return the condition stmt. 25627 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost 25628 loop we can version and version that, reusing the loop version 25629 created by if-conversion instead of versioning again. 25630 256312019-06-13 Aldy Hernandez <aldyh@redhat.com> 25632 25633 * gimple-loop-versioning.cc (prune_loop_conditions): Use 25634 may_contain_p. 25635 * tree-vrp (value_range_base::may_contain_p): Call into 25636 value_inside_range. 25637 (value_inside_range): Make private inside value_range_base class. 25638 Take min/max from *this. 25639 (range_includes_p): Remove. 25640 * tree-vrp.h (value_range_base): Add value_inside_range. 25641 (range_includes_p): Remove. 25642 (range_includes_zero_p): Call may_contain_p. 25643 * vr-values.c (compare_range_with_value): Same. 25644 256452019-06-13 Claudiu Zissulescu <claziss@synopsys.com> 25646 25647 * doc/extend.texi (ARC Function Attributes): Update info. 25648 256492019-06-13 Feng Xue <fxue@os.amperecomputing.com> 25650 25651 PR tree-optimization/89713 25652 * doc/invoke.texi (-ffinite-loops): Document new option. 25653 * common.opt (-ffinite-loops): New option. 25654 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark 25655 IFN_GOACC_LOOP calls as necessary. 25656 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit 25657 is finite. 25658 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of 25659 IFN_GOACC_LOOP call is not used. 25660 * opts.c (default_options_table): Enable -ffinite-loops at -O2+. 25661 256622019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 25663 25664 PR target/88838 25665 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the 25666 compare_type is not with Pmode size, we will create an IV with 25667 Pmode size with truncated use (i.e. converted to the correct type). 25668 * tree-vect-loop.c (vect_verify_full_masking): Find IV type. 25669 (vect_iv_limit_for_full_masking): New. Factored out of 25670 vect_set_loop_condition_masked. 25671 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New. 25672 (vect_iv_limit_for_full_masking): Declare. 25673 256742019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 25675 25676 PR target/88834 25677 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle 25678 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES. 25679 (get_alias_ptr_type_for_ptr_address): Likewise. 25680 (add_iv_candidate_for_use): Add scaled index candidate if useful. 25681 * tree-ssa-address.c (preferred_mem_scale_factor): New. 25682 * config/aarch64/aarch64.c (aarch64_classify_address): Relax 25683 allow_reg_index_p. 25684 256852019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 25686 25687 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment. 25688 256892019-06-12 Dimitar Dimitrov <dimitar@dinux.eu> 25690 25691 * common/config/pru/pru-common.c: New file. 25692 * config.gcc: Add PRU target. 25693 * config/pru/alu-zext.md: New file. 25694 * config/pru/constraints.md: New file. 25695 * config/pru/predicates.md: New file. 25696 * config/pru/pru-opts.h: New file. 25697 * config/pru/pru-passes.c: New file. 25698 * config/pru/pru-pragma.c: New file. 25699 * config/pru/pru-protos.h: New file. 25700 * config/pru/pru.c: New file. 25701 * config/pru/pru.h: New file. 25702 * config/pru/pru.md: New file. 25703 * config/pru/pru.opt: New file. 25704 * config/pru/t-pru: New file. 25705 * doc/extend.texi: Document PRU pragmas. 25706 * doc/invoke.texi: Document PRU-specific options. 25707 * doc/md.texi: Document PRU asm constraints. 25708 257092019-06-12 Martin Sebor <msebor@redhat.com> 25710 25711 PR middle-end/90676 25712 * tree-pretty-print.c (dump_mem_ref): New function. Include 25713 MEM_REF type in output when different size than operand. 25714 (dump_generic_node): Move code to dump_mem_ref and call it. 25715 257162019-06-12 Martin Sebor <msebor@redhat.com> 25717 25718 PR tree-optimization/90662 25719 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers 25720 to arrays. 25721 257222019-06-12 Tom de Vries <tdevries@suse.de> 25723 25724 PR tree-optimization/90009 25725 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join. 25726 257272019-06-12 Martin Liska <mliska@suse.cz> 25728 25729 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize 25730 the created map. 25731 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map. 25732 * mem-stats.h (mem_alloc_description::mem_alloc_description): 25733 Do not sanitize created maps. 25734 257352019-06-12 Aldy Hernandez <aldyh@redhat.com> 25736 25737 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use 25738 value_range::singleton_p. 25739 * tree-vrp.c (value_range_constant_singleton): Remove. 25740 * tree-vrp.h (value_range_constant_singleton): Remove. 25741 * vr-values.c (vr_values::singleton): Use 25742 value_range::singleton_p. 25743 257442019-06-12 Jakub Jelinek <jakub@redhat.com> 25745 25746 PR target/90811 25747 * cfgexpand.c (align_local_variable): Add really_expand argument, 25748 don't SET_DECL_ALIGN if it is false. 25749 (add_stack_var): Add really_expand argument, pass it through to 25750 align_local_variable. 25751 (expand_one_stack_var_1): Pass true as really_expand to 25752 align_local_variable. 25753 (expand_one_ssa_partition): Pass true as really_expand to 25754 add_stack_var. 25755 (expand_one_var): Pass really_expand through to add_stack_var. 25756 257572019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 25758 25759 * config/arm/iterators.md (VABAL): New int iterator. 25760 * config/arm/neon.md (<sup>sadv16qi): New define_expand. 25761 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, 25762 UNSPEC_VABAL_U values. 25763 257642019-06-12 Martin Liska <mliska@suse.cz> 25765 25766 * value-prof.c (stream_out_histogram_value): Only first value 25767 can't be negative. 25768 257692019-06-12 Jakub Jelinek <jakub@redhat.com> 25770 25771 PR c/90760 25772 * symtab.c (symtab_node::set_section): Allow being called on aliases 25773 as long as they aren't analyzed yet. 25774 257752019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com> 25776 25777 * config/mips/mips.c (mips_final_postscan_insn): Modify call 25778 to `mips_set_text_contents_type' to indicate whether a 25779 non-debug insn follows. 25780 257812019-06-11 Michael Meissner <meissner@linux.ibm.com> 25782 25783 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete 25784 enabling -mpcrel by default. 25785 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update 25786 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so 25787 that the test against -mcpu=future is done first. Then test if 25788 -mprefixed-addr is on for -mpcrel. 25789 (rs6000_disable_incompatible_switches): Add -mcpu=future support. 25790 257912019-06-11 Jakub Jelinek <jakub@redhat.com> 25792 25793 PR target/90811 25794 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d 25795 instead of and.u%d. 25796 257972019-06-11 Marc Glisse <marc.glisse@inria.fr> 25798 25799 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions. 25800 258012019-06-11 Matthew Beliveau <mbelivea@redhat.com> 25802 25803 PR c++/90449 - add -Winaccessible-base option. 25804 * doc/invoke.texi (Winaccessible-base): Document. 25805 258062019-06-11 Marc Glisse <marc.glisse@inria.fr> 25807 25808 PR tree-optimization/62041 25809 * fold-const.c (fold_real_zero_addition_p): Handle vectors. 25810 258112019-06-11 Jason Merrill <jason@redhat.com> 25812 25813 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory. 25814 * tree.c (get_tree_code_name): Likewise. 25815 * print-tree.c (print_node): Only briefly print a node with an 25816 invalid code. 25817 258182019-06-11 Jakub Jelinek <jakub@redhat.com> 25819 25820 PR bootstrap/90819 25821 * trans-mem.c (tm_memopt_compute_available): Add assertion 25822 that blocks is not empty. Formatting fix. 25823 258242019-06-11 Martin Liska <mliska@suse.cz> 25825 25826 PR c++/87847 25827 * hash-table.h: Extend create_gcc, add one parameter 25828 that is passed into hash_table::hash_table. 25829 258302019-06-10 Uroš Bizjak <ubizjak@gmail.com> 25831 25832 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator): 25833 New prototype. 25834 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): 25835 Emit clobber also for non-sse operations. 25836 (ix86_split_fp_absneg_operator): New function. 25837 * config/i386/i386.md (SSEMODEF): New mode iterator. 25838 (ssevecmodef): New mode attribute. 25839 (<code>tf2): Use absneg code iterator. 25840 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator. 25841 Add three-operand AVX alternatives. 25842 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387. 25843 Use absneg code iterator and X87MODEF mode iterator. 25844 (absneg fp_reg non-sse splitter): Call absneg code iterator 25845 and X87MODEF mode iterator. 25846 (absneg general_reg non-sse splitter): Use absneg code iterator 25847 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator. 25848 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg 25849 code iterator. Add three-operand AVX alternative. 25850 (absneg sse_reg splitter): Use absneg code iterator 25851 and SSEMODEF mode iterator. Handle AVX operands. 25852 (absneg fp_reg splitter): Use absneg code iterator 25853 and MODEF mode iterator. 25854 (absneg general_reg splitter): Merge splitters using MODEF mode 25855 iterator. Use absneg code iterator. Call 25856 ix86_split_fp_absneg_operator. 25857 (*<code><mode>2_i387): Rename from *<code><mode>2_1. 25858 Do not enable for non-sse modes before reload. 25859 (CSGNMODE): Remove. 25860 (CSGNVMODE): Ditto. 25861 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and 25862 ssevecmodef mode attribute instaed of CSGNVMODE. 25863 (copysign<mode>3_const): Ditto. 25864 (copysign<mode>3_var): Ditto. 25865 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2. 25866 Use absneg code iterator. Simplify code using std::swap. 25867 * config/i386/predicates.md (absneg_operator): Remove. 25868 258692019-06-10 Martin Sebor <msebor@redhat.com> 25870 25871 * gimple-fold.c (get_range_strlen): Update comment that didn't 25872 make it into r267503 or related commits. 25873 258742019-06-10 Vladislav Ivanishin <vlad@ispras.ru> 25875 25876 * gcov-tool.c (merge_usage, rewrite_usage): Mark with 25877 ATTRIBUTE_NORETURN thus making consistent with overlap_usage. 25878 258792019-06-10 Jakub Jelinek <jakub@redhat.com> 25880 25881 * tree.def (OMP_SCAN): New tree code. 25882 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and 25883 OMP_CLAUSE_EXCLUSIVE. 25884 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP. 25885 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define. 25886 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for 25887 OMP_CLAUSE_{IN,EX}CLUSIVE. 25888 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE. 25889 * tree-nested.c (convert_nonlocal_reference_stmt, 25890 convert_local_reference_stmt, convert_gimple_call): Handle 25891 GIMPLE_OMP_SCAN. 25892 * tree-pretty-print.c (dump_omp_clause): Handle 25893 OMP_CLAUSE_{IN,EX}CLUSIVE. 25894 (dump_generic_node): Handle OMP_SCAN. 25895 * gimple.def (GIMPLE_OMP_SCAN): New gimple code. 25896 * gimple.h (gomp_scan): New type. 25897 (is_a_helper <gomp_scan *>::test, 25898 is_a_helper <const gomp_scan *>::test): New templates. 25899 (gimple_build_omp_scan): Declare. 25900 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr, 25901 gimple_omp_scan_set_clauses): New inline functions. 25902 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:. 25903 * gimple.c (gimple_build_omp_scan): New function. 25904 (gimple_copy): Handle GIMPLE_OMP_SCAN. 25905 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise. 25906 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle 25907 GIMPLE_OMP_TASKGROUP. 25908 (dump_gimple_omp_scan): New function. 25909 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN. 25910 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN. 25911 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise. 25912 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN. 25913 (is_gimple_stmt): Handle OMP_SCAN. 25914 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs 25915 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE. 25916 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not 25917 mentioned in nested #pragma omp scan. Handle 25918 OMP_CLAUSE_{IN,EX}CLUSIVE. 25919 (gimplify_expr): Handle OMP_SCAN. 25920 * omp-low.c (check_omp_nesting_restrictions): For parent context, 25921 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in 25922 simd constructs. 25923 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle 25924 GIMPLE_OMP_SCAN. 25925 259262019-06-10 Martin Liska <mliska@suse.cz> 25927 25928 * ipa-cp.c (ignore_edge_p): New function. 25929 (build_toporder_info): Use it. 25930 * ipa-inline.c (ignore_edge_p): New function. 25931 (inline_small_functions): Use it. 25932 * ipa-pure-const.c (ignore_edge_for_nothrow): 25933 Verify opt_for_fn for caller and callee. 25934 (ignore_edge_for_pure_const): Likewise. 25935 * ipa-reference.c (ignore_edge_p): Extend to check 25936 for opt_for_fn. 25937 * ipa-utils.c (searchc): Refactor. 25938 * ipa-utils.h: Fix coding style. 25939 259402019-06-10 Claudiu Zissulescu <claziss@synopsys.com> 25941 25942 * config/arc/arc.c (arc_rtx_costs): Update costs. 25943 259442019-06-10 Claudiu Zissulescu <claziss@synopsys.com> 25945 25946 * config/arc/arc-protos.h (arc_check_ior_const): Declare. 25947 (arc_split_ior): Likewise. 25948 (arc_check_mov_const): Likewise. 25949 (arc_split_mov_const): Likewise. 25950 * config/arc/arc.c (arc_print_operand): Fix 'z' letter. 25951 (arc_rtx_costs): Replace check Crr with Cax constraint. 25952 (prepare_move_operands): Cleanup, remove unused code. 25953 (arc_split_ior): New function. 25954 (arc_check_ior_const): Likewise. 25955 (arc_split_mov_const): Likewise. 25956 (arc_check_mov_const): Likewise. 25957 * config/arc/arc.md (movsi_insn): Restructure it, and convert it 25958 in define_insn_and_split pattern. 25959 (iorsi3): Likewise. 25960 (mulsi3_v2): Add new matching variant. 25961 (andsi3_i): Cleanup pattern. 25962 (rotrsi3_cnt1): Update pattern. 25963 (rotrsi3_cnt8): New pattern. 25964 (ashlsi2_cnt8): Likewise. 25965 (ashlsi2_cnt16): Likewise. 25966 * config/arc/constraints.md (C0p): Update constraint. 25967 (Crr): Remove it. 25968 (C0x): New pattern. 25969 (Cax): New pattern. 25970 259712019-06-10 Martin Liska <mliska@suse.cz> 25972 25973 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): 25974 Update coding style. 25975 (sem_item_optimizer::dump_cong_classes): 25976 Print how many items are in a non-singular class. Improve 25977 coding style. 25978 259792019-06-10 Martin Liska <mliska@suse.cz> 25980 25981 * value-prof.c (dump_histogram_value): Change dump format. 25982 (gimple_mod_subtract_transform): Remove legacy comment. 25983 259842019-06-10 Martin Liska <mliska@suse.cz> 25985 25986 * value-prof.c (dump_histogram_value): Print histogram values 25987 only if present. 25988 259892019-06-10 Martin Liska <mliska@suse.cz> 25990 25991 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New. 25992 (GCOV_SINGLE_VALUE_COUNTERS): Likewise. 25993 * ipa-profile.c (ipa_profile_generate_summary): 25994 Use get_most_common_single_value. 25995 * tree-profile.c (gimple_init_gcov_profiler): 25996 Instrument with __gcov_one_value_profiler_v2 25997 and __gcov_indirect_call_profiler_v4. 25998 * value-prof.c (dump_histogram_value): 25999 Print all values for HIST_TYPE_SINGLE_VALUE. 26000 (stream_out_histogram_value): Update assert for 26001 N values. 26002 (stream_in_histogram_value): Set number of 26003 counters for HIST_TYPE_SINGLE_VALUE. 26004 (get_most_common_single_value): New. 26005 (gimple_divmod_fixed_value_transform): 26006 Use get_most_common_single_value. 26007 (gimple_ic_transform): Likewise. 26008 (gimple_stringops_transform): Likewise. 26009 (gimple_find_values_to_profile): Set number 26010 of counters for HIST_TYPE_SINGLE_VALUE. 26011 * value-prof.h (get_most_common_single_value): New. 26012 260132019-06-10 Martin Liska <mliska@suse.cz> 26014 26015 * hash-map.h: Pass default value to hash_table ctor. 26016 * hash-table.h: Add default value to call of a ctor. 26017 260182019-06-08 Jonathan Wakely <jwakely@redhat.com> 26019 26020 * doc/invoke.texi (C Dialect Options): Minor grammatical change. 26021 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL" 26022 260232019-06-07 John David Anglin <danglin@gcc.gnu.orig> 26024 26025 PR target/90751 26026 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment. 26027 Call pa_output_function_label. 26028 (TARGET_ASM_FUNCTION_PROLOGUE): define. 26029 * config/pa/pa-protos.h (pa_output_function_label): Declare. 26030 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED 26031 to declaration. 26032 (pa_linux_output_function_prologue): Declare. 26033 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define. 26034 (pa_output_function_label): New. 26035 (pa_output_function_prologue): Revise to use pa_output_function_label. 26036 (pa_linux_output_function_prologue): New. 26037 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define. 26038 260392019-06-07 Aldy Hernandez <aldyh@redhat.com> 26040 26041 * tree-vrp.h (value_range_base::intersect): New. 26042 (value_range::intersect_helper): Move from here... 26043 (value_range_base::intersect_helper): ...to here. 26044 * tree-vrp.c (value_range::intersect_helper): Rename to... 26045 (value_range_base::intersect_helper): ...this, and rewrite to 26046 return a value instead of modifying THIS in place. 26047 Also, move equivalence handling... 26048 (value_range::intersect): ...here, while calling intersect_helper. 26049 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when 26050 calling intersect. 26051 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge): 26052 Same. 26053 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same. 26054 260552019-06-07 Jakub Jelinek <jakub@redhat.com> 26056 26057 * Makefile.in (genprogerr): Add condmd. 26058 (genprog): Remove it here. 26059 260602019-06-07 Andrew Stubbs <ams@codesourcery.com> 26061 26062 * doc/invoke.texi (AMD GCN Options): Add gfx906. 26063 260642019-06-07 Richard Biener <rguenther@suse.de> 26065 26066 PR debug/90574 26067 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels 26068 that appear after user labels. 26069 260702019-06-07 Martin Liska <mliska@suse.cz> 26071 26072 * cselib.c (cselib_init): Disable hash table 26073 sanitization. 26074 * hash-set.h: Pass new default argument to m_table. 26075 * hash-table.c: Add global variable with hash table 26076 sanitization limit. 26077 * hash-table.h (Allocator>::hash_table): Add new argument 26078 to ctor. 26079 (hashtab_chk_error): New. 26080 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New. 26081 * toplev.c (process_options): Set hash_table_sanitize_eq_limit 26082 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value. 26083 260842019-06-07 Jan Hubicka <hubicka@ucw.cz> 26085 26086 * common.opt (flto-odr-type-merging): Ignore. 26087 * invoke.texi (-flto-odr-type-merging): Remove. 26088 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove. 26089 (can_be_vtable_hashed_p): Remove. 26090 (hash_odr_vtable): Remove. 26091 (odr_vtable_hasher::hash): Remove. 26092 (types_same_for_odr): Remove. 26093 (types_odr_comparable): Remove. 26094 (odr_vtable_hasher::equal): Remove. 26095 (odr_vtable_hash_type, odr_vtable_hash): Remove. 26096 (add_type_duplicate): Do not synchronize vtable and name hashtables. 26097 (get_odr_type): Do not use vtable hash. 26098 (dump_odr_type): Remove commented out code. 26099 (build_type_inheritance_graph): Do not allocate vtable hash. 26100 (rebuild_type_inheritance_graph): Do not delete vtable hash. 26101 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path. 26102 (odr_type_p): Likewise. 26103 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering 26104 test. 26105 261062019-06-07 Jan Hubicka <hubicka@ucw.cz> 26107 26108 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up 26109 immediately after same_types_for_tbaa_p returns -1 and continue 26110 looking for possible exact match; if matching types are arrays 26111 watch for partial overlaps. 26112 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps. 26113 (indirect_refs_may_alias_p): Do type based disambiguation first; 26114 update comment. 26115 261162019-06-07 Richard Sandiford <richard.sandiford@arm.com> 26117 26118 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p. 26119 261202019-06-07 Martin Liska <mliska@suse.cz> 26121 26122 * doc/invoke.texi: Remove param. 26123 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): 26124 Remove. 26125 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise. 26126 (GCOV_ICALL_TOPN_NCOUNTS): Likewise. 26127 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise. 26128 * profile.c (instrument_values): Remove 26129 HIST_TYPE_INDIR_CALL_TOPN. 26130 * tree-profile.c (init_ic_make_global_vars): 26131 Always build __gcov_indirect_call only. 26132 (gimple_init_gcov_profiler): Remove usage 26133 of PARAM_INDIR_CALL_TOPN_PROFILE. 26134 (gimple_gen_ic_profiler): Likewise. 26135 * value-prof.c (dump_histogram_value): Likewise. 26136 (stream_in_histogram_value): Likewise. 26137 (gimple_indirect_call_to_profile): Likewise. 26138 (gimple_find_values_to_profile): Likewise. 26139 * value-prof.h (enum hist_type): Likewise. 26140 261412019-06-07 Martin Liska <mliska@suse.cz> 26142 26143 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the 26144 function. 26145 261462019-06-07 Martin Liska <mliska@suse.cz> 26147 26148 PR tree-optimization/78902 26149 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New. 26150 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove. 26151 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New. 26152 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New. 26153 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove. 26154 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove. 26155 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New. 26156 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New. 26157 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New. 26158 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove. 26159 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New. 26160 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove. 26161 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST): 26162 New. 26163 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove. 26164 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New. 26165 (ATTR_MALLOC_NOTHROW_NONNULL): Remove. 26166 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New. 26167 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New. 26168 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove. 26169 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New. 26170 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New. 26171 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use 26172 warn_unused_result attribute. 26173 (BUILT_IN_STRDUP): Likewise. 26174 (BUILT_IN_STRNDUP): Likewise. 26175 (BUILT_IN_ALLOCA): Likewise. 26176 (BUILT_IN_CALLOC): Likewise. 26177 (BUILT_IN_MALLOC): Likewise. 26178 (BUILT_IN_REALLOC): Likewise. 26179 261802019-06-06 Jim Wilson <jimw@sifive.com> 26181 26182 PR target/89955 26183 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted. 26184 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added. 26185 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added. 26186 261872019-06-06 Martin Sebor <msebor@redhat.com> 26188 26189 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article. 26190 (handle_builtin_malloc): Remove trailing spaces. 26191 (handle_builtin_memset): Same. 26192 (handle_builtin_memcmp): Same. 26193 (compute_string_length): Same. 26194 (determine_min_objsize): Same. 26195 (handle_builtin_string_cmp): Same. 26196 (handle_char_store): Same. Break up excessively long line. 26197 261982019-06-06 Martin Jambor <mjambor@suse.cz> 26199 26200 * tree-sra.c (build_reconstructed_reference): Drop the alignment 26201 check. 26202 262032019-06-06 Martin Jambor <mjambor@suse.cz> 26204 26205 * tree-sra.c (struct access): New field grp_same_access_path. 26206 (dump_access): Dump it. 26207 (build_reconstructed_reference): New function. 26208 (build_ref_for_model): Use it if possible. 26209 (path_comparable_for_same_access): New function. 26210 (same_access_path_p): Likewise. 26211 (sort_and_splice_var_accesses): Set the new flag. 26212 (analyze_access_subtree): Likewise. 26213 (propagate_subaccesses_across_link): Propagate zero value of the new 26214 flag down the access tree. 26215 262162019-06-06 Andrew Stubbs <ams@codesourcery.com> 26217 26218 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906. 26219 * config/gcn/gcn.opt (gpu_type): Add gfx906. 26220 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib. 26221 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900. 26222 Add gfx906. 26223 262242019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26225 26226 PR tree-optimization/90332 26227 * config/aarch64/aarch64.c (aarch64_expand_vector_init): 26228 Handle VALS containing two vectors. 26229 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename 26230 to... 26231 (@aarch64_combinez<mode>): ... This. 26232 (*aarch64_combinez_be<mode>): Rename to... 26233 (@aarch64_combinez_be<mode>): ... This. 26234 (vec_init<mode><Vhalf>): New define_expand. 26235 * config/aarch64/iterators.md (Vhalf): Handle V8HF. 26236 262372019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> 26238 26239 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift 26240 library functions only when not optimizing for size. 26241 (ashlsi3): Likewise. 26242 (ashrhi3): Likewise. 26243 (ashrsi3): Likewise. 26244 (lshrhi3): Likewise. 26245 (lshrsi3): Likewise. 26246 262472019-06-06 Andreas Krebbel <krebbel@linux.ibm.com> 26248 26249 PR rtl-optimization/88751 26250 * ira.c (ira): Use the number of the actually referenced registers 26251 when calculating the threshold. 26252 262532019-06-06 Jakub Jelinek <jakub@redhat.com> 26254 26255 * configure: Regenerate. 26256 262572019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> 26258 26259 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a 26260 register if it is in memory, so the shift can be emulated with a rotate 26261 instruction. 26262 (ashrhi3): Likewise. 26263 (lshrhi3): Likewise. 26264 262652019-06-06 Martin Liska <mliska@suse.cz> 26266 26267 PR tree-optimization/87954 26268 * match.pd: Simplify mult where both arguments are 0 or 1. 26269 262702019-06-06 Richard Biener <rguenther@suse.de> 26271 26272 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not 26273 put equivalences on UNDEFINED ranges. 26274 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): 26275 Make sure to drop defs of stmts added during simplification 26276 to VARYING. 26277 262782019-06-06 Richard Biener <rguenther@suse.de> 26279 26280 * tree-ssa-structalias.c: Include tree-cfg.h. 26281 (make_heapvar): Do not make heap vars artificial. 26282 (find_func_aliases_for_builtin_call): Handle stack allocation 26283 functions. 26284 (find_func_aliases): Delay processing of simple enough returns 26285 in non-IPA mode. 26286 (set_uids_in_ptset): Adjust. 26287 (find_what_var_points_to): Likewise. 26288 (solve_constraints): Do not dump points-to sets here. 26289 (compute_points_to_sets): Post-process return statements, 26290 amending the escaped solution. Dump points-to sets afterwards. 26291 (ipa_pta_execute): Dump points-to sets. 26292 262932019-06-06 Martin Liska <mliska@suse.cz> 26294 26295 PR web/87933 26296 * doc/install.texi: Fix HTML headers and 26297 titles for 'Installing GCC' pages. 26298 262992019-06-06 Martin Liska <mliska@suse.cz> 26300 26301 * ipa-icf-gimple.h (dump_message_1): Remove. 26302 (dump_message): Likewise. 26303 (return_false_with_message_1): Print also file. 26304 (return_false_with_msg): Likewise. 26305 (return_with_result): Likewise. 26306 (return_with_debug): Likewise. 26307 * ipa-icf.c (sem_function::equals_private): Remove call 26308 to dump_message. 26309 263102019-06-05 Hongtao Liu <hongtao.liu@intel.com> 26311 26312 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New. 26313 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable 26314 memory operand for it. 26315 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto. 26316 263172019-06-05 Martin Sebor <msebor@redhat.com> 26318 26319 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher): 26320 Adjust quoting and hyphenation. 26321 * convert.c (convert_to_real_1): Same. 26322 * gcc.c (driver_wrong_lang_callback): Same. 26323 (driver::handle_unrecognized_options): Same. 26324 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same. 26325 * opts-common.c (cmdline_handle_error): Same. 26326 (read_cmdline_option): Same. 26327 * opts-global.c (complain_wrong_lang): Same. 26328 (print_ignored_options): Same. 26329 (handle_common_deferred_options): Same. 26330 * pretty-print.h: Same. 26331 * print-rtl.c (debug_bb_n_slim): Same. 26332 * sched-rgn.c (make_pass_sched_fusion): Same. 26333 * tree-cfg.c (verify_gimple_assign_unary): Same. 26334 (verify_gimple_label): Same. 26335 * tree-ssa-operands.c (verify_ssa_operands): Same. 26336 * varasm.c (do_assemble_alias): Same. 26337 (assemble_alias): Same. 26338 263392019-06-05 Richard Henderson <rth@twiddle.net> 26340 26341 * config/alpha/alpha.c (direct_return): Move down after 26342 struct machine_function definition; use saved frame_size; 26343 return bool. 26344 (struct machine_function): Add sa_mask, sa_size, frame_size. 26345 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ... 26346 (alpha_compute_frame_layout): ... new function. 26347 (TARGET_COMPUTE_FRAME_LAYOUT): New. 26348 (alpha_initial_elimination_offset): Use saved sa_size. 26349 (alpha_vms_initial_elimination_offset): Likewise. 26350 (alpha_vms_can_eliminate): Remove alpha_sa_size call. 26351 (alpha_expand_prologue): Use saved frame data. Merge integer 26352 and fp register save loops. 26353 (alpha_expand_epilogue): Likewise. 26354 (alpha_start_function): Use saved frame data. 26355 * config/alpha/alpha-protos.h (direct_return): Update. 26356 (alpha_sa_size): Remove. 26357 263582019-06-05 Eric Botcazou <ebotcazou@adacore.com> 26359 26360 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a 26361 multiplication by a power-of-two value. 26362 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value 26363 and turn the modulo operation into a masking operation. 26364 263652019-06-05 Jakub Jelinek <jakub@redhat.com> 26366 26367 PR debug/90733 26368 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs 26369 with VOIDmode inner operands. 26370 263712019-06-05 Richard Biener <rguenther@suse.de> 26372 26373 PR middle-end/90726 26374 * tree-ssa-loop-niter.c (expand_simple_operations): Do not 26375 turn an expression graph into a tree. 26376 263772019-06-05 Jakub Jelinek <jakub@redhat.com> 26378 26379 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional 26380 member. 26381 (expand_parallel_call): If region->inner->has_lastprivate_conditional, 26382 treat it like explicit monotonic schedule modifier. 26383 (expand_omp_for): Initialize has_lastprivate_conditional. 26384 If fd.lastprivate_conditional != 0, treat it like explicit monotonic 26385 schedule modifier. 26386 26387 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional 26388 references, lookup in in hash map MEM_REF operand instead of the 26389 MEM_REF itself. 26390 (lower_omp_1): When looking for lastprivate conditional assignments, 26391 handle MEM_REFs with REFERENCE_TYPE operands. 26392 26393 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and 26394 on privatization clauses OMP_CLAUSE_DECL is privatized by reference 26395 and references a VLA. Handle references to non-VLAs if is_simd 26396 all privatization clauses like reductions. 26397 (lower_rec_input_clauses) <case do_private, case do_firstprivate>: 26398 If omp_is_reference, use always omp simd arrays and set 26399 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses 26400 fails, emit reference initialization. 26401 264022019-06-05 Hongtao Liu <hongtao.liu@intel.com> 26403 26404 PR target/89803 26405 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask, 26406 _mm_mask_fpclass_sd_mask): New intrinsics. 26407 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins. 26408 * config/i386/i386-builtin.def 26409 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): 26410 New builtins. 26411 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted. 26412 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT), 26413 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted. 26414 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT, 26415 case QI_FTYPE_V2SF_INT): Ditto. 26416 * config/i386/sse.md 26417 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>): 26418 Extended to insnstructions with mask operands. 26419 264202019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26421 26422 * config/rs6000/constraints.md (define_register_constraint "wp"): 26423 Delete. 26424 (define_register_constraint "wq"): Delete. 26425 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 26426 (rs6000_init_hard_regno_mode_ok): Adjust. 26427 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 26428 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq. 26429 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete. 26430 (define_mode_attr VSa): Delete. 26431 (define_mode_attr VSisa): New. 26432 (rest of file): Adjust. 26433 * doc/md.texi (Machine Constraints): Adjust. 26434 264352019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26436 26437 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf. 26438 (define_attr "enabled"): Handle those new isa values. 26439 264402019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26441 26442 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete. 26443 (define_mode_attr VSr5): Delete. 26444 (define_mode_attr VStype_sqrt): Delete. 26445 (define_mode_iterator VSX_SPDP): Delete. 26446 (define_mode_attr VS_spdp_res): Delete. 26447 (define_mode_attr VS_spdp_insn): Delete. 26448 (define_mode_attr VS_spdp_type): Delete. 26449 (*vsx_sqrt<mode>2): Adjust. 26450 (vsx_<VS_spdp_insn>): Delete, split to... 26451 (vsx_xscvdpsp): ... this. New. And... 26452 (vsx_xvcvspdp): ... this. New. And... 26453 (vsx_xvcvdpsp): ... this. New. 26454 264552019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26456 26457 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF 26458 and V2DF. 26459 * config/rs6000/vsx.md (define_mode_attr VSs): Delete. 26460 (rest of file): Adjust. 26461 264622019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26463 26464 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>. 26465 (vsx_extract_<mode>_var): Ditto. 26466 264672019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26468 26469 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI 26470 with just "wa". 26471 264722019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26473 26474 * config/rs6000/constraints.md (define_register_constraint "ww"): 26475 Delete. 26476 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 26477 (rs6000_init_hard_regno_mode_ok): Adjust. 26478 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 26479 RS6000_CONSTRAINT_ww. 26480 * config/rs6000/rs6000.md: Adjust. 26481 * config/rs6000/vsx.md: Adjust. 26482 * doc/md.texi (Machine Constraints): Adjust. 26483 264842019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26485 26486 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments. 26487 (define_mode_attr sd): New. 26488 (define_mode_attr s): New. 26489 (define_mode_attr Ftrad): Delete. 26490 (define_mode_attr Fvsx): Delete. 26491 (define_mode_attr Fs): Delete. 26492 (rest of file): Use the new mode attributes. 26493 * config.rs6000/vsx.md: Use the new mode attributes. 26494 264952019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26496 26497 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W 26498 with just "wa". 26499 265002019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26501 26502 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete. 26503 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are 26504 used with VSX_B, VSX_D, or VSX_F, with just "wa". 26505 265062019-06-04 Bill Schmidt <wschmidt@linux.ibm.com> 26507 26508 PR target/78263 26509 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for 26510 C++ with strict ANSI requirements. 26511 265122019-06-04 Marc Glisse <marc.glisse@inria.fr> 26513 26514 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip 26515 computations when step is 1. 26516 265172019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26518 26519 * config/rs6000/constraints.md (define_register_constraint "wf"): 26520 Delete. 26521 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 26522 (rs6000_init_hard_regno_mode_ok): Adjust. 26523 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 26524 RS6000_CONSTRAINT_wf. 26525 * config/rs6000/rs6000.md: Adjust. 26526 * config/rs6000/vsx.md: Adjust. 26527 * doc/md.texi (Machine Constraints): Adjust. 26528 265292019-06-04 Andrew Pinski <apinski@marvell.com> 26530 26531 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): 26532 Fix ILP32 value. 26533 265342019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26535 26536 * config/rs6000/constraints.md (define_register_constraint "wd"): 26537 Delete. 26538 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 26539 (rs6000_init_hard_regno_mode_ok): Adjust. 26540 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 26541 RS6000_CONSTRAINT_wd. 26542 * config/rs6000/rs6000.md: Adjust. 26543 * config/rs6000/vsx.md: Adjust. 26544 * doc/md.texi (Machine Constraints): Adjust. 26545 265462019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26547 26548 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete. 26549 (rest of file): Adjust. 26550 265512019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26552 26553 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete. 26554 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust. 26555 (vsx_splat_<mode>_reg): Adjust. 26556 265572019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26558 26559 * config/rs6000/constraints.md (define_register_constraint "ws"): 26560 Delete. 26561 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 26562 (rs6000_init_hard_regno_mode_ok): Adjust. 26563 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 26564 RS6000_CONSTRAINT_ws. 26565 * config/rs6000/rs6000.md: Adjust. 26566 * config/rs6000/vsx.md: Adjust. 26567 * doc/md.texi (Machine Constraints): Adjust. 26568 265692019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26570 26571 * config/rs6000/constraints.md (define_register_constraint "wv"): 26572 Delete. 26573 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 26574 (rs6000_init_hard_regno_mode_ok): Adjust. 26575 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 26576 RS6000_CONSTRAINT_wv. 26577 * config/rs6000/rs6000.md: Adjust. 26578 * config/rs6000/vsx.md: Adjust. 26579 * doc/md.texi (Machine Constraints): Adjust. 26580 265812019-06-04 Segher Boessenkool <segher@kernel.crashing.org> 26582 26583 * config/rs6000/constraints.md (define_register_constraint "wi"): 26584 Delete. 26585 (define_register_constraint "wt"): Delete. 26586 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 26587 (rs6000_init_hard_regno_mode_ok): Adjust. 26588 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 26589 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt. 26590 * config/rs6000/rs6000.md: Adjust. 26591 * config/rs6000/vsx.md: Adjust. 26592 * doc/md.texi (Machine Constraints): Adjust. 26593 265942019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com> 26595 26596 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove 26597 const. 26598 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call 26599 default_elf_asm_output_external. 26600 266012019-06-04 Martin Liska <mliska@suse.cz> 26602 26603 * ipa-icf.c (INCLUDE_LIST): Remove. 26604 (sem_item_optimizer::execute): Remove call to init_wpa. 26605 * ipa-icf.h (init_wpa): Remove. 26606 266072019-06-04 Jakub Jelinek <jakub@redhat.com> 26608 26609 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate 26610 conditional on combined for simd. 26611 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0 26612 member. 26613 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1 26614 constructs, don't remove lastprivate_conditional_map, but instead set 26615 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points 26616 to parent construct temporaries. 26617 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0 26618 like !ctx->lastprivate_conditional_map. 26619 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0, 26620 use up->outer context instead of up. 26621 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if 26622 gimple_omp_for_combined_p. 26623 (expand_omp_for_static_nochunk): Likewise. 26624 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was 26625 probably moved over into expand_omp_for_generic rather than being copied 26626 there. 26627 266282019-06-04 Martin Liska <mliska@suse.cz> 26629 26630 * value-prof.c (dump_histogram_value): Fix typo. 26631 (gimple_mod_subtract_transform): Likewise. 26632 266332019-06-04 Richard Biener <rguenther@suse.de> 26634 26635 PR middle-end/90726 26636 * tree-chrec.c (chrec_contains_symbols): Add to visited. 26637 (tree_contains_chrecs): Likewise. 26638 (chrec_contains_symbols_defined_in_loop): Move here and avoid 26639 exponential behaivor from ... 26640 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop): 26641 ... here. 26642 (expression_expensive_p): Avoid exponential behavior and compute 26643 expanded size, rejecting any expansion. 26644 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove. 26645 (idx_contains_abnormal_ssa_name_p): Likewise. 26646 (contains_abnormal_ssa_name_p_1): New helper for walk_tree. 26647 (contains_abnormal_ssa_name_p): Simplify and use 26648 walk_tree_without_duplicates. 26649 266502019-06-04 Richard Biener <rguenther@suse.de> 26651 26652 PR tree-optimization/90738 26653 Revert 26654 2019-06-03 Richard Biener <rguenther@suse.de> 26655 26656 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original 26657 full reference tree and record in ref->ref. 26658 (vn_reference_lookup_3): Pass in original ref to 26659 ao_ref_init_from_vn_reference. 26660 (vn_reference_lookup): Likewise. 26661 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype. 26662 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): 26663 Handle non-decl bases in the original reference. 26664 266652019-06-04 Martin Liska <mliska@suse.cz> 26666 26667 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count 26668 number of references. 26669 (sem_item_optimizer::do_congruence_step): 26670 (sem_item_optimizer::worklist_push): Dump how references 26671 a class has. 26672 (sem_item_optimizer::worklist_pop): Use heap. 26673 (sem_item_optimizer::process_cong_reduction): Likewise. 26674 * ipa-icf.h: Use fibonacci_heap insteam of std::list. 26675 266762019-06-04 Martin Liska <mliska@suse.cz> 26677 26678 * ipa-icf.h (struct sem_usage_pair_hash): New. 26679 (sem_usage_pair_hash::hash): Likewise. 26680 (sem_usage_pair_hash::equal): Likewise. 26681 (struct sem_usage_hash): Likewise. 26682 * ipa-icf.c (sem_item::sem_item): Initialize 26683 referenced_by_count. 26684 (sem_item::add_reference): Register a reference 26685 in ref_map and not in target->usages. 26686 (sem_item::setup): Remove initialization of 26687 dead vectors. 26688 (sem_item::~sem_item): Remove usage of dead vectors. 26689 (sem_item::dump): Remove dump of references. 26690 (sem_item_optimizer::sem_item_optimizer): Initialize 26691 m_references. 26692 (sem_item_optimizer::read_section): Remove useless 26693 dump. 26694 (sem_item_optimizer::parse_funcs_and_vars): Likewise here. 26695 (sem_item_optimizer::build_graph): Pass m_references 26696 to ::add_reference. 26697 (sem_item_optimizer::verify_classes): Remove usage of dead 26698 vectors. 26699 (sem_item_optimizer::traverse_congruence_split): Return true 26700 when a class is split. 26701 (sem_item_optimizer::do_congruence_step_for_index): Use 26702 hash_map for look up of (sem_item *, index). That brings 26703 significant speed up. 26704 (sem_item_optimizer::do_congruence_step): Return true 26705 when a split is done. 26706 (congruence_class::is_class_used): Use referenced_by_count. 26707 267082019-06-04 Alan Modra <amodra@gmail.com> 26709 26710 PR target/90689 26711 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge 26712 error. 26713 267142019-06-03 Segher Boessenkool <segher@kernel.crashing.org> 26715 26716 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete. 26717 * config/rs6000/rs6000.c (direct_move_p): Adjust. 26718 (rs6000_secondary_reload_simple_move): Adjust. 26719 (rs6000_opt_masks): Neuter the "mfpgpr" option. 26720 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust. 26721 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust 26722 comment. 26723 (power6x): Adjust. 26724 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust. 26725 (floatunssi<mode>2_lfiwzx): Adjust. 26726 (fix_trunc<mode>si2_stfiwx): Adjust. 26727 (fixuns_trunc<mode>si2_stfiwx): Adjust. 26728 * config/rs6000/rs6000.opt (mno-mfpgpr): New. 26729 (mfpgpr): Mark as deprecated. 26730 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr. 26731 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust. 26732 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr. 26733 267342019-06-03 Segher Boessenkool <segher@kernel.crashing.org> 26735 26736 * config/rs6000/constraints.md (define_register_constraint "wg"): 26737 Delete. 26738 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 26739 RS6000_CONSTRAINT_wg. 26740 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 26741 (rs6000_init_hard_regno_mode_ok): Adjust. 26742 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64): 26743 Delete "wg" alternatives. 26744 * doc/md.texi (Machine Constraints): Adjust. 26745 267462019-06-03 Alan Modra <amodra@gmail.com> 26747 26748 * bb-reorder.c (copy_bb_p): Don't overflow size calculation. 26749 (get_uncond_jump_length): Assert length less than INT_MAX and 26750 non-negative. 26751 267522019-06-03 Wilco Dijkstra <wdijkstr@arm.com> 26753 26754 PR middle-end/64242 26755 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule 26756 block. 26757 (expand_builtin_nonlocal_goto): Likewise. 26758 267592019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com> 26760 26761 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare. 26762 (aarch64_asm_output_external): Declare. 26763 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New. 26764 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs. 26765 (aarch64_asm_output_alias): New. 26766 (aarch64_asm_output_external): New. 26767 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. 26768 (ASM_OUTPUT_EXTERNAL): Define. 26769 267702019-06-03 Aldy Hernandez <aldyh@redhat.com> 26771 * tree-vrp.h (value_range_base::nonzero_p): New. 26772 (value_range_base::set_nonnull): Rename to... 26773 (value_range_base::set_nonzero): ...this. 26774 (value_range_base::set_null): Rename to... 26775 (value_range_base::set_zero): ...this. 26776 (value_range::set_nonnull): Remove. 26777 (value_range::set_null): Remove. 26778 * tree-vrp.c (range_is_null): Remove. 26779 (range_is_nonnull): Remove. 26780 (extract_range_from_binary_expr): Use value_range_base::*zero_p 26781 instead of range_is_*null. 26782 (extract_range_from_unary_expr): Same. 26783 (value_range_base::set_nonnull): Rename to... 26784 (value_range_base::set_nonzero): ...this. 26785 (value_range::set_nonnull): Remove. 26786 (value_range_base::set_null): Rename to... 26787 (value_range_base::set_zero): ...this. 26788 (value_range::set_null): Remove. 26789 (extract_range_from_binary_expr): Rename set_*null uses to 26790 set_*zero. 26791 (extract_range_from_unary_expr): Same. 26792 (union_helper): Same. 26793 * vr-values.c (get_value_range): Use set_*zero instead of 26794 set_*null. 26795 (vr_values::extract_range_from_binary_expr): Same. 26796 (vr_values::extract_range_basic): Same. 26797 267982019-06-03 Wilco Dijkstra <wdijkstr@arm.com> 26799 26800 PR driver/90684 26801 * opts.c (parse_and_check_align_values): Allow 4 alignment values. 26802 268032019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26804 26805 * config/aarch64/iterators.md (MAX_OPP): New code attr. 26806 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): 26807 Rename to... 26808 (aarch64_<su>abd<mode>_3): ... This. 26809 (<sur>sadv16qi): Add TARGET_DOTPROD expansion. 26810 268112019-06-03 Richard Biener <rguenther@suse.de> 26812 26813 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original 26814 full reference tree and record in ref->ref. 26815 (vn_reference_lookup_3): Pass in original ref to 26816 ao_ref_init_from_vn_reference. 26817 (vn_reference_lookup): Likewise. 26818 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype. 26819 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): 26820 Handle non-decl bases in the original reference. 26821 268222019-06-03 Martin Liska <mliska@suse.cz> 26823 26824 * doc/generic.texi: Remove Java Trees. 26825 268262019-06-03 Martin Liska <mliska@suse.cz> 26827 26828 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int 26829 returns 0 when operands are equal. 26830 268312019-06-03 Richard Biener <rguenther@suse.de> 26832 26833 PR tree-optimization/90716 26834 * tree-loop-distribution.c (destroy_loop): Process blocks in 26835 correct order. 26836 268372019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 26838 26839 PR target/88837 26840 * vector-builder.h (vector_builder::count_dups): New method. 26841 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init): 26842 Declare prototype. 26843 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @. 26844 (vec_init<mode><Vel>): New pattern. 26845 * config/aarch64/aarch64.c (emit_insr): New function. 26846 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise. 26847 (aarch64_sve_expand_vector_init_insert_elems): Likewise. 26848 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise. 26849 (aarch64_sve_expand_vector_init): Define two overloaded functions. 26850 268512019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com> 26852 26853 PR tree-optimization/90681 26854 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again. 26855 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a 26856 special case for SLP, but fail on non-groupped loads. 26857 268582019-06-03 Martin Liska <mliska@suse.cz> 26859 26860 * cfg.c (debug): Use TDF_DETAILS for debug and 26861 print edge info only once. 26862 268632019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org> 26864 26865 PR fortran/90539 26866 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor. 26867 268682019-06-01 Martin Sebor <msebor@redhat.com> 26869 26870 PR middle-end/90694 26871 * tree-pretty-print.c (dump_generic_node): Add parentheses. 26872 268732019-05-31 Jan Hubicka <jh@suse.cz> 26874 26875 * alias.c: Include ipa-utils.h. 26876 (get_alias_set): Try to complete ODR type via ODR type hash lookup. 26877 * ipa-devirt.c (prevailing_odr_type): New. 26878 * ipa-utils.h (previaling_odr_type): Declare. 26879 268802019-05-31 H.J. Lu <hongjiu.lu@intel.com> 26881 Hongtao Liu <hongtao.liu@intel.com> 26882 26883 PR target/89355 26884 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove 26885 NOTE_INSN_DELETED_LABEL check. 26886 268872019-05-31 Prachi Godbole <prachi.godbole@imgtec.com> 26888 Robert Suchanek <robert.suchanek@mips.com> 26889 26890 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st 26891 and 3rd operands of the fmadd/fmsub/maddv builtin. 26892 268932019-05-31 Jakub Jelinek <jakub@redhat.com> 26894 26895 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define. 26896 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional 26897 on OMP_SIMD if not nested inside of worksharing loop that also has 26898 lastprivate conditional clause for the same decl. 26899 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed. 26900 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also 26901 on simd. 26902 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional 26903 on simd construct. 26904 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional 26905 on simd construct. 26906 (lower_lastprivate_clauses): Likewise. 26907 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before 26908 calling lower_rec_input_clauses. 26909 (lower_omp_for): Likewise. 26910 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_ 26911 clause on simd construct. 26912 * omp-expand.c (expand_omp_simd): Initialize cond_var if 26913 OMP_CLAUSE__CONDTEMP_ clause is present. 26914 26915 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on 26916 ivar and lvar. 26917 269182019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com> 26919 26920 PR c/43673 26921 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with 26922 TEX_D32, TEX_D64 or TEX_D128. 26923 269242019-05-31 Marc Glisse <marc.glisse@inria.fr> 26925 26926 * match.pd (~(vec?cst1:cst2)): New transformation. 26927 269282019-05-31 Marc Glisse <marc.glisse@inria.fr> 26929 26930 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator. 26931 ((size_t)(A /[ex] B) CMP C): New transformation. 26932 269332019-05-31 Richard Sandiford <richard.sandiford@arm.com> 26934 26935 * doc/md.texi: Document define_insn_and_rewrite. 26936 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code. 26937 * gensupport.c (queue_elem): Update comment. 26938 (replace_operands_with_dups): New function. 26939 (gen_rewrite_sequence): Likewise. 26940 (process_rtx): Handle DEFINE_INSN_AND_REWRITE. 26941 * read-rtl.c (apply_subst_iterator): Likewise. 26942 (add_condition_to_rtx, named_rtx_p): Likewise. 26943 (rtx_reader::read_rtx_operand): Likewise. 26944 * config/aarch64/aarch64-sve.md 26945 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to... 26946 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use 26947 define_insn_and_rewrite. 26948 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites. 26949 Remove separate define_split. 26950 269512019-05-31 Jan Hubicka <jh@suse.cz> 26952 26953 * tree-ssa-alias.c (type_has_components_p): New function. 26954 (aliasing_component_refs_p): Use it. 26955 269562019-05-31 Martin Liska <mliska@suse.cz> 26957 26958 * gdbhooks.py: Add const_tree to TreePrinter. 26959 269602019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> 26961 26962 PR debug/86964 26963 * common.opt (feliminate-unused-debug-symbols): Enable by default. 26964 * doc/invoke.texi (Debugging Options): Document new default of 26965 -feliminate-unused-debug-symbols and remove restriction to 'stabs'. 26966 269672019-05-31 Jakub Jelinek <jakub@redhat.com> 26968 26969 PR tree-optimization/90671 26970 * tree-ssa-threadupdate.c (ssa_create_duplicates): If 26971 template_block used to be empty on the first call, don't use 26972 gsi_split_seq_after and gsi_insert_seq_after, but remember whole 26973 seq with bb_seq and set it with set_bb_seq. 26974 269752019-05-31 Iain Sandoe <iain@sandoe.co.uk> 26976 26977 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. 26978 269792019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> 26980 Michael Meissner <meissner@linux.ibm.com> 26981 26982 * config/rs6000/predicates.md (pcrel_address): New define_predicate. 26983 (prefixed_mem_operand): Likewise. 26984 (non_prefixed_mem_operand): Likewise. 26985 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New 26986 prototype. 26987 * config/rs6000/rs6000.c (print_operand_address): Handle 26988 PC-relative addresses. 26989 (mode_supports_prefixed_address_p): New function. 26990 (rs6000_prefixed_address): New function. 26991 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define. 26992 (SYMBOL_REF_PCREL_P): Likewise. 26993 269942019-05-30 Jakub Jelinek <jakub@redhat.com> 26995 26996 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP. 26997 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP. 26998 (gimplify_omp_for): If worksharing loop with lastprivate conditional 26999 is nested inside of parallel region, add _condtemp_ clause to both. 27000 * tree-nested.c (convert_nonlocal_omp_clauses, 27001 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of 27002 assertion failure. 27003 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp 27004 member. 27005 * omp-general.c (omp_extract_for_data): Compute it. 27006 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_. 27007 (lower_rec_input_clauses): Likewise. 27008 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_ 27009 clause is already present, just add one further one after it. 27010 (lower_lastprivate_clauses): Handle cond_ptr with array type. 27011 (lower_send_shared_vars): Clear _condtemp_ vars. 27012 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical 27013 or section or taskgroup. 27014 * omp-expand.c (determine_parallel_type): Disallow combining only if 27015 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining 27016 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present. 27017 (expand_omp_for_generic, expand_omp_for_static_nochunk, 27018 expand_omp_for_static_chunk, expand_omp_for): Use 27019 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to 27020 determine if a special set of API routines are needed and if condtemp 27021 needs to be initialized, while always initialize cond_var if 27022 fd->lastprivate_conditional is non-zero. 27023 270242019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> 27025 Michael Meissner <meissner@linux.ibm.com> 27026 27027 * config/rs6000/constraints.md (eI): New constraint. 27028 * config/rs6000/predicates.md (cint34_operand): New predicate. 27029 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define. 27030 (SIGNED_34BIT_OFFSET_P): Likewise. 27031 * doc/md.texi (eI): Document constraint. 27032 270332019-05-30 Sylvia Taylor <sylvia.taylor@arm.com> 27034 27035 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New. 27036 270372019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> 27038 Michael Meissner <meissner@linux.ibm.com> 27039 27040 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define. 27041 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS. 27042 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE. 27043 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR. 27044 (OTHER_FUTURE_MASKS): Likewise. 27045 (POWERPC_MASKS): Likewise. 27046 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is 27047 specified without -mprefixed-addr or -mcpu=future. Error if 27048 -mprefixed-addr is specified without -mcpu=future. 27049 (rs6000_opt_masks): Add entry for prefixed-addr. 27050 * rs6000.opt (mprefixed-addr): New option. 27051 270522019-05-30 Sam Tebbs <sam.tebbs@arm.com> 27053 27054 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add 27055 cfun->is_thunk check. 27056 270572019-05-30 Jakub Jelinek <jakub@redhat.com> 27058 27059 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght 27060 to length. 27061 270622019-05-30 Martin Liska <mliska@suse.cz> 27063 27064 * gdbinit.in: Fix 'ptc' command. Add trt 27065 that prints TREE_TYPE($). 27066 270672019-05-29 Bill Schmidt <wschmidt@linux.ibm.com> 27068 Alan Modra <amodra@gmail.com> 27069 27070 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel 27071 calls here... 27072 (rs6000_indirect_call_template_1): ...and here. 27073 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave, 27074 plt16_ha, plt16_lo, mtctr indirect calls. Use 27075 rs6000_pltseq_enum. 27076 (rs6000_decl_ok_for_sibcall): New function. 27077 (rs6000_function_ok_for_sibcall): Refactor. 27078 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel. 27079 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls 27080 when pcrel. Reorganize. 27081 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel. 27082 * rs6000.h (rs6000_pltseq_enum): New enum. 27083 * rs6000.md (UNSPEC_PLT_PCREL): New unspec. 27084 (*pltseq_tocsave): Use rs6000_pltseq_enum. 27085 (*pltseq_plt16_ha): Likewise. 27086 (*pltseq_plt16_lo): Likewise. 27087 (*pltseq_mtctr): Likewise. 27088 (*pltseq_plt_pcrel): New insn. 27089 (*call_local_aix): Handle @notoc calls. 27090 (*call_value_local_aix): Likewise. 27091 (*call_nonlocal_aix): Adjust lengths for pcrel calls. 27092 (*call_value_nonlocal_aix): Likewise. 27093 (*call_indirect_pcrel): New insn. 27094 (*call_value_indirect_pcrel): Likewise. 27095 270962019-05-29 Uroš Bizjak <ubizjak@gmail.com> 27097 27098 * config/i386/sse.md (*save_multiple<mode>): Rename from 27099 save_multiple<mode>. 27100 (*restore_multiple<mode>): Rename from restore_multiple<mode>. 27101 (*restore_multiple_and_return<mode>): Rename from 27102 restore_multiple_and_return<mode>. 27103 (*restore_multiple_leave_return<mode>): Rename from 27104 restore_multiple_leave_return<mode>. 27105 271062019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp> 27107 27108 * config.gcc (rx-*-linux*): New target. 27109 * config/rx/elf.opt: New file. 27110 * config/rx/linux.h: Likewise. 27111 * config/rx/t-linux: Likewise. 27112 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined, 27113 make it zero. 27114 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden. 27115 (ASM_APP_OFF): Likewise. 27116 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were 27117 moved elsewhere. 27118 271192019-05-29 Jan Hubicka <jh@suse.cz> 27120 27121 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main 27122 variants are pointer equivalent. 27123 271242019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com> 27125 27126 * config/aarch64/aarch64-c.c: Added TARGET_SVE2. 27127 * config/aarch64/aarch64-sve2.md: New file. 27128 (<u>avg<mode>3_floor): New pattern. 27129 (<u>avg<mode>3_ceil): Likewise. 27130 (*<sur>h<addsub><mode>): Likewise. 27131 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2. 27132 * config/aarch64/aarch64.md: Include aarch64-sve2.md. 27133 271342019-05-29 Jakub Jelinek <jakub@redhat.com> 27135 27136 PR bootstrap/90543 27137 * optc-save-gen.awk: In cl_optimization_print, use correct condition 27138 for var_opt_string printing. In cl_optimization_print_diff, print 27139 (null) instead of invoking undefined behavior if one of the 27140 var_opt_string pointers is NULL and use && instead of first || in the 27141 guarding condition. For var_target_other options, handle const char * 27142 target variables similarly to const char * optimize node variables. 27143 271442019-05-29 Sam Tebbs <sam.tebbs@arm.com> 27145 27146 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add 27147 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716. 27148 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins): 27149 Add autib1716 and pacib1716 initialisation. 27150 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks 27151 for autib1716 and pacib1716. 27152 * config/aarch64/aarch64-protos.h (aarch64_key_type, 27153 aarch64_post_cfi_startproc): Define. 27154 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern. 27155 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection, 27156 aarch64_handle_pac_ret_protection): Set default sign key to A. 27157 * config/aarch64/aarch64.c (aarch64_expand_epilogue, 27158 aarch64_expand_prologue): Add check for b-key. 27159 * config/aarch64/aarch64.c (aarch64_ra_sign_key, 27160 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define. 27161 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define. 27162 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key". 27163 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716, 27164 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716, 27165 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP. 27166 * config/aarch64/aarch64.md (do_return): Add check for b-key. 27167 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace 27168 pauth_hint_num_a with pauth_hint_num. 27169 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace 27170 pauth_hint_num_a with pauth_hint_num. 27171 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate. 27172 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP, 27173 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP. 27174 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716, 27175 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716. 27176 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716, 27177 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP, 27178 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP. 27179 * config/aarch64/iterators.md (pauth_hint_num_a): Replace 27180 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and 27181 UNSPEC_AUTIA1716 respectively. 27182 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to 27183 pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, 27184 UNSPEC_PACIB1716, UNSPEC_AUTIB1716. 27185 * doc/invoke.texi (-mbranch-protection): Add b-key type. 27186 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename 27187 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP. 27188 271892019-05-29 Jakub Jelinek <jakub@redhat.com> 27190 27191 * gimplify.c (struct gimplify_omp_ctx): Add clauses member. 27192 (gimplify_scan_omp_clauses): Initialize ctx->clauses. 27193 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional 27194 explicit clause on combined parallel into implicit shared clause. 27195 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause 27196 and firstprivate if the decl has one too from combined parallel to 27197 the worksharing construct. 27198 271992019-05-28 Bill Schmidt <wschmidt@linux.ibm.com> 27200 Michael Meissner <meissner@linux.ibm.com> 27201 27202 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define. 27203 272042019-05-28 Michael Meissner <meissner@linux.ibm.com> 27205 27206 * rtl.h (LABEL_REF_P): New #define. 27207 272082019-05-28 John David Anglin <danglin@gcc.gnu.org> 27209 27210 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment. 27211 272122019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com> 27213 27214 * internal-fn.c: Marked mask_load_direct as vectorizable. 27215 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo. 27216 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be 27217 combined even if masks different with allow_slp_p param. 27218 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups. 27219 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to 27220 dissolve SLP-only vectorizable groups when SLP has been discarded. 27221 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed. 27222 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads 27223 masks. 27224 (vect_build_slp_tree_1): Fixed comment typo. 27225 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree. 27226 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked 27227 loads for SLP only. 27228 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only 27229 vectorizable. 27230 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise. 27231 272322019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 27233 27234 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf): 27235 Remove obsolete use_thunk reference. 27236 * config/i386/i386.c (x86_output_mi_thunk): Likewise. 27237 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. 27238 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise. 27239 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise. 27240 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. 27241 * config/sh/sh.c (sh_output_mi_thunk): Likewise. 27242 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. 27243 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise. 27244 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise. 27245 272462019-05-28 Nathan Sidwell <nathan@acm.org> 27247 27248 * tree.h (IDENTIFIER_ANON_P): New. 27249 (anon_aggrname_format, anon_aggname_p): Don't declare. 27250 (make_anon_name): Declare. 27251 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P. 27252 (hash_tree): Likewise. 27253 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise. 27254 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete. 27255 (anon_cnt, make_anon_name): New. 27256 272572019-05-28 Martin Liska <mliska@suse.cz> 27258 27259 PR other/90315 27260 * opts-global.c (decode_options): Print help for all 27261 help_option_arguments. 27262 * opts.c (print_help): Add new argument. 27263 (common_handle_option): Remember all values into 27264 help_option_arguments. 27265 * opts.h (print_help): Add new argument. 27266 272672019-05-28 Martin Liska <mliska@suse.cz> 27268 27269 PR ipa/90555 27270 * ipa-icf-gimple.c (func_checker::compare_loops): New function. 27271 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise. 27272 (func_checker::compare_bb): Call compare_loops. 27273 272742019-05-27 Jakub Jelinek <jakub@redhat.com> 27275 27276 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional 27277 on sections construct. 27278 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections 27279 construct. 27280 (lower_omp_sections): Handle lastprivate conditional. 27281 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with 27282 lastprivate_conditional_map. 27283 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional. 27284 27285 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered, 27286 critical, taskgroup and section regions when looking for a region 27287 with non-NULL lastprivate_conditional_map. 27288 272892019-05-27 Uroš Bizjak <ubizjak@gmail.com> 27290 27291 * config/i386/i386.c (ix86_gen_add3): Remove indirect function. 27292 (*ix86_gen_sub3): Ditto. 27293 (*ix86_gen_sub3_carry): Ditto. 27294 (*ix86_gen_one_cmpl2): Ditto. 27295 (*ix86_gen_andsp): Ditto. 27296 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3. 27297 (gen_and2_insn): New static function. 27298 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp. 27299 Use gen_add3_insn instead of ix86_gen_add3. 27300 (ix86_expand_split_stack_prologue): Use gen_add2_insn 27301 instead of ix86_gen_add3. 27302 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3. 27303 Use gen_sub3_insn instead of ix86_gen_sub3. 27304 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn 27305 instead of ix86_gen_add3. 27306 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of 27307 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3. 27308 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3. 27309 * config/i386/i386-options.c (ix86_option_override_internal): 27310 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry, 27311 ix86_gen_one_cmpl2 and ix86_gen_andsp. 27312 273132019-05-27 Eric Botcazou <ebotcazou@adacore.com> 27314 27315 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index 27316 and DW_OP_GNU_const_index opcodes. 27317 273182019-05-27 Uroš Bizjak <ubizjak@gmail.com> 27319 27320 * config/i386/i386.h (STACK_SIZE_MODE): Define. 27321 273222019-05-27 Richard Biener <rguenther@suse.de> 27323 27324 PR tree-optimization/90637 27325 * tree-ssa-sink.c (statement_sink_location): Honor the 27326 computed sink location for single-uses. 27327 273282019-05-27 Richard Biener <rguenther@suse.de> 27329 27330 PR middle-end/90610 27331 * match.pd (vec_perm): Avoid clobbering op0 when not generating 27332 a bit-insert. 27333 273342019-05-26 Uroš Bizjak <ubizjak@gmail.com> 27335 27336 * config/i386/i386.md (@sub<mode>3_carry): Rename 27337 from sub<mode>3_carry. 27338 (@leave_<mode>): New expander. 27339 (*leave): Rename from leave. 27340 (*leave_rex64): Rename from leave_rex64. 27341 (@monitorx_<mode>): Rename from monitorx_<mode>. 27342 (@clzero_<mode>): Rename from clzero_<mode>. 27343 * config/i386/sse.md (@sse3_monitor_<mode>): Rename 27344 from sse3_monitor_<mode>. 27345 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function. 27346 (*ix86_gen_leave): Ditto. 27347 (*ix86_gen_monitor): Ditto. 27348 (*ix86_gen_monitorx): Ditto. 27349 (*ix86_gen_clzero): Ditto. 27350 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave. 27351 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1): 27352 Use gen_sub3_carry instead of ix86_gen_sub3_carry. 27353 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>: 27354 Use gen_sse3_monitor instead of ix86_gen_monitor. 27355 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx 27356 instead of ix86_gen_monitorx. 27357 <case IX86_BUILTIN_CLZERO>: Use gen_clzero 27358 instead of ix86_gen_clzero. 27359 * config/i386/i386-options.c (ix86_option_override_internal): 27360 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry, 27361 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero. 27362 273632019-05-26 Uroš Bizjak <ubizjak@gmail.com> 27364 27365 * config/i386/i386.md (@tls_global_dynamic_64_<mode>): 27366 Rename from tls_global_dynamic_64_<mode>. 27367 (@tls_local_dynamic_base_64_<mode>): Rename from 27368 tls_local_dynamic_base_64_<mode>. 27369 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64): 27370 Remove indirect function. 27371 (*ix86_gen_tls_local_dynamic_base_64): Ditto. 27372 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function 27373 instead of ix86_gen_tls_global_dynamic_64. 27374 Use gen_tls_local_dynamic_base_64 instead of 27375 ix86_gen_tls_local_dynamic_base_64. 27376 * config/i386/i386-options.c (ix86_option_override_internal): 27377 Do not initialize ix86_gen_tls_global_dynamic_64 and 27378 ix86_gen_tls_local_dynamic_base_64. 27379 273802019-05-26 Uroš Bizjak <ubizjak@gmail.com> 27381 27382 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>) 27383 Rename from pro_epilogue_adjust_stack_<mode>_add. 27384 (@pro_epilogue_adjust_stack_sub_<mode>) 27385 Rename from pro_epilogue_adjust_stack_<mode>_sub. 27386 (@allocate_stack_worker_probe_<mode>): 27387 Rename from allocate_stack_worker_probe_<mode>. 27388 (allocate_stack): Use gen_allocate_stack_worker_probe. 27389 (probe_stack): Use gen_probe_stack_1. 27390 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>. 27391 (@adjust_stack_and_probe_<mode>): Rename from 27392 adjust_stack_and_probe<mode>. 27393 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>. 27394 (stack_protect_set): Use gen_stack_protect_set_1. 27395 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>. 27396 (stack_protect_test): Use gen_stack_protect_test_1. 27397 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>. 27398 * config/i386/i386.c (*ix86_gen_allocate_stack_worker): 27399 Remove indirect function. 27400 (*ix86_gen_adjust_stack_and_probe): Ditto. 27401 (*ix86_gen_probe_stack_range): Ditto. 27402 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add 27403 instead of gen_pro_epilogue_adjust_stack_{si,di}_add. 27404 (ix86_adjust_stack_and_probe_stack_clash): Use 27405 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe. 27406 (ix86_adjust_stack_and_probe): Ditto. 27407 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead 27408 of ix86_gen_probe_stack_range. 27409 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub 27410 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub. 27411 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p): 27412 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of 27413 CODE_FOR_stack_protect_test_{si,di}. 27414 * config/i386/i386-options.c (ix86_option_override_internal): 27415 Do not initialize ix86_gen_allocate_stack_worker, 27416 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range. 27417 274182019-05-26 Gerald Pfeifer <gerald@pfeifer.com> 27419 27420 * doc/invoke.texi (Link Options): Many editorial changes around 27421 -flinker-output. 27422 274232019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 27424 27425 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove 27426 pre-Solaris 11 referene and most Studio compiler details. 27427 274282019-05-24 John David Anglin <danglin@gcc.gnu.org> 27429 27430 PR target/90530 27431 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from 27432 DImode to SImode in floating-point registers on 64-bit target. 27433 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to 27434 register_operand in xmpyu patterns. 27435 274362019-05-24 Jakub Jelinek <jakub@redhat.com> 27437 27438 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_. 27439 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of 27440 OMP_CLAUSE__REDUCTEMP_. 27441 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add 27442 OMP_CLAUSE__CONDTEMP_. 27443 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_. 27444 * tree-pretty-print.c (dump_omp_clause): Likewise. 27445 * tree-nested.c (convert_nonlocal_omp_clauses, 27446 convert_local_omp_clauses): Likewise. 27447 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants 27448 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL. 27449 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional 27450 on OMP_FOR. 27451 (gimplify_omp_for): Warn and disable conditional modifier from 27452 lastprivate on loop iterators. 27453 * omp-general.h (struct omp_for_data): Add lastprivate_conditional 27454 member. 27455 * omp-general.c (omp_extract_for_data): Initialize it. 27456 * omp-low.c (struct omp_context): Add lastprivate_conditional_map 27457 member. 27458 (delete_omp_context): Delete it. 27459 (lower_lastprivate_conditional_clauses): New function. 27460 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments, 27461 handle lastprivate conditional clauses. 27462 (lower_reduction_clauses): Add CLIST argument, emit it into 27463 the critical section if any. 27464 (lower_omp_sections): Adjust lower_lastprivate_clauses and 27465 lower_reduction_clauses callers. 27466 (lower_omp_for_lastprivate): Add CLIST argument, pass it through 27467 to lower_lastprivate_clauses. 27468 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust 27469 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit 27470 clist into a critical section if not emitted there already by 27471 lower_reduction_clauses. 27472 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses 27473 callers. 27474 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate 27475 conditional variables. 27476 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_ 27477 clause is present. 27478 (expand_omp_for_generic, expand_omp_for_static_nochunk, 27479 expand_omp_for_static_chunk): Handle lastprivate conditional. 27480 (expand_omp_for): Handle fd.lastprivate_conditional like 27481 fd.have_reductemp. 27482 274832019-05-24 Andrew Stubbs <ams@codesourcery.com> 27484 27485 * config/gcn/gcn-run.c (main): Set a non-zero return value if the 27486 kernel does not exit cleanly. 27487 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb. 27488 274892019-05-24 Jason Merrill <jason@redhat.com> 27490 27491 Revert: 27492 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE. 27493 274942019-05-24 Richard Biener <rguenther@suse.de> 27495 27496 PR testsuite/90607 27497 * tree-loop-distribution.c (struct partition): Add location 27498 member. 27499 (partition_alloc): Initialize all fields. 27500 (generate_memset_builtin): Use the location recorded in the 27501 partition for the generated call. 27502 (generate_memcpy_builtin): Likewise. 27503 (classify_partition): Record the location of a single store 27504 as location for the partition. 27505 275062019-05-24 Andrew Stubbs <ams@codesourcery.com> 27507 27508 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry 27509 for lo-part. 27510 275112019-05-24 Matthew Malcomson <matthew.malcomson@arm.com> 27512 27513 PR target/90588 27514 * common/config/aarch64/aarch64-common.c 27515 (aarch64_rewrite_selected_cpu): Change local temporary variable 27516 type from unsigned long to uint64_t. 27517 * config/aarch64/aarch64-protos.h (aarch64_parse_extension, 27518 aarch64_get_extension_string_for_isa_flags): Change declaration to 27519 match new definition by replacing unsigned long with uint64_t. 27520 275212019-05-24 Jakub Jelinek <jakub@redhat.com> 27522 27523 PR target/90568 27524 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call 27525 gen_attr_type just once instead of 4-7 times. Formatting fixes. 27526 Handle stack_protect_test_<mode> codegen similarly to corresponding 27527 sub instruction. 27528 275292019-05-23 Iain Sandoe <iain@sandoe.co.uk> 27530 27531 * config/i386/darwin.h: Reject -mfentry*. 27532 * doc/sourcebuild.texi: Document mfentry target support. 27533 275342019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> 27535 27536 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): 27537 Rename to rs6000_global_entry_point_prologue_needed_p. Return 27538 false for PC-relative functions. 27539 (rs6000_output_function_prologue): Change called function name to 27540 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry 27541 name,1" for PC-relative functions. 27542 (rs6000_elf_declare_function_name): Change called function name to 27543 rs6000_global_entry_point_prologue_needed_p. 27544 275452019-05-23 Uroš Bizjak <ubizjak@gmail.com> 27546 27547 PR target/90552 27548 * config/i386/i386.c (gen_rtx_cost): 27549 Use ix86_tune_cost instead of ix86_cost. 27550 275512019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> 27552 Michael Meissner <meissner@linux.ibm.com> 27553 Segher Boessenkool <segher@kernel.crashing.org> 27554 27555 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add 27556 OPTION_MASK_PCREL. 27557 (POWERPC_MASKS): Add OPTION_MASK_PCREL. 27558 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype. 27559 (rs6000_fndecl_pcrel_p): Likewise. 27560 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report 27561 error if -mpcrel is requested without -mcpu=future. 27562 (rs6000_opt_masks): Add entry for pcrel. 27563 (rs6000_fndecl_pcrel_p): New function. 27564 (rs6000_pcrel_p): Likewise. 27565 * config/rs6000/rs6000.opt (mpcrel): New option. 27566 * doc/invoke.texi: Document -mpcrel and -mno-pcrel. 27567 275682019-05-23 Jan Hubicka <jh@suse.cz> 27569 Martin Liska <mliska@suse.cz> 27570 27571 PR tree-optimization/90576 27572 * tree-ssa-alias.c (compare_sizes): Remove dead calls to 27573 poly_int_tree_p. 27574 (aliasing_component_refs_p): Fix three way size compare conditional; 27575 give up earlier in case we can not decide on equivalence. 27576 275772019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> 27578 Michael Meissner <meissner@linux.ibm.com> 27579 Segher Boessenkool <segher@kernel.crashing.org> 27580 27581 * config.gcc: Add future cpu. 27582 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu. 27583 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New 27584 #define. 27585 (POWERPC_MASKS): Add OPTION_MASK_FUTURE. 27586 (RS6000_CPU): New instantiation for future cpu. 27587 * config/rs6000/rs6000-opts.h (enum processor_type): Add 27588 PROCESSOR_FUTURE. 27589 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat 27590 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now. 27591 * config/rs6000/rs6000-tables.opt: Regenerate. 27592 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat 27593 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now. 27594 (rs6000_machine_from_flags): Handle future cpu. 27595 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like 27596 PROCESSOR_POWER9 for now. 27597 (rs6000_adjust_cost): Likewise. 27598 (rs6000_issue_rate): Likewise. 27599 (rs6000_register_move_cost): Likewise. 27600 (rs6000_opt_masks): Add entry for future. 27601 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu. 27602 (MASK_FUTURE): New #define. 27603 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu. 27604 * config/rs6000/rs6000.opt (mfuture): New target option. 27605 * doc/invoke.texi (mcpu): Add future cpu. 27606 276072019-05-23 Martin Liska <mliska@suse.cz> 27608 27609 PR c++/90587 27610 * tree-ssa-uninit.c (value_sat_pred_p): The result of & 27611 operation points to a temporary (pointed via tree_to_wide_ref) 27612 that is out of scope after the &. 27613 276142019-05-23 Jonathan Wakely <jwakely@redhat.com> 27615 27616 PR c++/90592 27617 * doc/extend.texi (Function Names): Add missing word. 27618 276192019-05-23 Richard Biener <rguenther@suse.de> 27620 27621 PR tree-optimization/88440 27622 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns 27623 at -O[2s]+. 27624 * tree-loop-distribution.c (generate_memset_builtin): Fold the 27625 generated call. 27626 (generate_memcpy_builtin): Likewise. 27627 (distribute_loop): Pass in whether to only distribute patterns. 27628 (prepare_perfect_loop_nest): Also allow size optimization. 27629 (pass_loop_distribution::execute): When optimizing a loop 27630 nest for size allow pattern replacement. 27631 276322019-05-23 Jakub Jelinek <jakub@redhat.com> 27633 27634 PR target/90568 27635 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead 27636 of xor. 27637 276382019-05-23 Martin Liska <mliska@suse.cz> 27639 27640 PR sanitizer/90570 27641 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target 27642 expression similarly to gimplify_decl_expr. 27643 276442019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 27645 27646 * cse.c (cse_dump_path): s/dump_file/f. 27647 276482019-05-22 David Malcolm <dmalcolm@redhat.com> 27649 27650 PR c++/90462 27651 * diagnostic-format-json.cc: Include "selftest.h". 27652 (json_from_expanded_location): Only add "file" key for non-NULL 27653 file strings. 27654 (json_from_location_range): Don't add "start" and "finish" 27655 children if they are UNKNOWN_LOCATION. 27656 (selftest::test_unknown_location): New selftest. 27657 (selftest::test_bad_endpoints): New selftest. 27658 (selftest::diagnostic_format_json_cc_tests): New function. 27659 * json.cc (json::object::get): New function. 27660 (selftest::test_object_get): New selftest. 27661 (selftest::json_cc_tests): Call it. 27662 * json.h (json::object::get): New decl. 27663 * selftest-run-tests.c (selftest::run_tests): Call 27664 selftest::diagnostic_format_json_cc_tests. 27665 * selftest.h (selftest::diagnostic_format_json_cc_tests): New 27666 decl. 27667 276682019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com> 27669 Andrew Stubbs <amd@codesourcery.com> 27670 27671 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN. 27672 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New. 27673 (kernel): Rename to... 27674 (main_kernel): ... this. 27675 (load_image): Load _init_array and _fini_array kernels. 27676 (run): Add argument for kernel to run. 27677 (main): Run init_array_kernel before main_kernel, and 27678 fini_array_kernel after. 27679 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow 27680 amdgpu_hsa_kernel attribute on functions. 27681 (gcn_disable_constructors): Delete. 27682 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete. 27683 * config/gcn/crt0.c (size_t): Define. 27684 (_init_array, _fini_array): New. 27685 (__preinit_array_start, __preinit_array_end, 27686 __init_array_start, __init_array_end, 27687 __fini_array_start, __fini_array_end): Declare weak references. 27688 276892019-05-22 Andrew Stubbs <ams@codesourcery.com> 27690 27691 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5. 27692 276932019-05-22 Jason Merrill <jason@redhat.com> 27694 27695 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE. 27696 276972019-05-22 H.J. Lu <hongjiu.lu@intel.com> 27698 27699 PR target/88483 27700 * config/i386/i386-options.c (ix86_init_machine_status): Set 27701 stack_frame_required to true. 27702 * config/i386/i386.c (ix86_get_frame_size): New function. 27703 (ix86_frame_pointer_required): Replace get_frame_size with 27704 ix86_get_frame_size. 27705 (ix86_compute_frame_layout): Likewise. 27706 (ix86_find_max_used_stack_alignment): Changed to void. Set 27707 stack_frame_required. 27708 (ix86_finalize_stack_frame_flags): Always call 27709 ix86_find_max_used_stack_alignment. Replace get_frame_size with 27710 ix86_get_frame_size. 27711 * config/i386/i386.h (machine_function): Add stack_frame_required. 27712 277132019-05-22 Uroš Bizjak <ubizjak@gmail.com> 27714 27715 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition. 27716 277172019-05-22 Matthew Malcomson <matthew.malcomson@arm.com> 27718 27719 * common/config/aarch64/aarch64-common.c 27720 (struct aarch64_option_extension, struct processor_name_to_arch, 27721 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp, 27722 aarch64_contains_opt, 27723 aarch64_get_extension_string_for_isa_flags): Change type of 27724 variables storing flags to uint64_t. 27725 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4, 27726 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags. 27727 * config/aarch64/aarch64.c (struct processor, 27728 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu, 27729 aarch64_validate_march, aarch64_override_options, 27730 aarch64_option_print, aarch64_handle_attr_isa_flags, 27731 aarch64_declare_function_name, aarch64_start_file): Make flag 27732 variables uint64_t. 27733 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES, 27734 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3, 27735 AARCH64_FL_SVE2_BITPERM): New macro feature flags. 27736 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t. 27737 * config/aarch64/driver-aarch64.c 27738 (struct aarch64_arch_extension, struct aarch64_core_data, 27739 struct aarch64_arch_driver_info, host_detect_local_cpu): Make 27740 flag variables uint64_t. 27741 * doc/invoke.texi: Add documentation for new arguments. 27742 277432019-05-22 Richard Biener <rguenther@suse.de> 27744 27745 * alias.c (ao_ref_from_mem): Move stack-slot sharing 27746 rewrite ... 27747 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here. 27748 277492019-05-22 Martin Liska <mliska@suse.cz> 27750 27751 PR lto/90500 27752 * doc/extend.texi: Document the change. 27753 277542019-05-22 Richard Biener <rguenther@suse.de> 27755 27756 PR tree-optimization/90450 27757 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed. 27758 (mem_ref_hasher::equal): Check it. 27759 (mem_ref_alloc): Initialize it. 27760 (gather_mem_refs_stmt): Set it. 27761 277622019-05-22 Richard Biener <rguenther@suse.de> 27763 27764 * gimple-fold.c (arith_code_with_undefined_signed_overflow): 27765 Add ABS_EXPR. 27766 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR 27767 as ABSU_EXPR. 27768 277692019-05-22 Alan Modra <amodra@gmail.com> 27770 27771 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define. 27772 (ASM_CPU_SPEC): Conditionally add -many. 27773 * config/rs6000/rs6000.c (rs6000_machine): New static var. 27774 (rs6000_machine_from_flags, emit_asm_machine): New functions.. 27775 (rs6000_file_start): ..extracted from here, and modified to 27776 test all ISA bits. 27777 (rs6000_output_function_prologue): Emit .machine as necessary. 27778 277792019-05-22 Hans-Peter Nilsson <hp@axis.com> 27780 27781 PR middle-end/90553 27782 * ira-lives.c (process_bb_node_lives): Consider defs 27783 for a call insn to be die before the call, not after. 27784 27785 * function.c (assign_parm_setup_block): Raise alignment of 27786 stacked parameter only for STRICT_ALIGNMENT targets. 27787 277882019-05-21 Segher Boessenkool <segher@kernel.crashing.org> 27789 27790 * config/rs6000/constraints.md (define_register_constraint "wz"): 27791 Delete. 27792 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 27793 RS6000_CONSTRAINT_wz. 27794 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 27795 (rs6000_init_hard_regno_mode_ok): Adjust. 27796 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7". 27797 * doc/md.texi (Machine Constraints): Adjust. 27798 277992019-05-21 Segher Boessenkool <segher@kernel.crashing.org> 27800 27801 * config/rs6000/constraints.md (define_register_constraint "wl"): 27802 Delete. 27803 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 27804 RS6000_CONSTRAINT_wl. 27805 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 27806 (rs6000_init_hard_regno_mode_ok): Adjust. 27807 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6". 27808 * doc/md.texi (Machine Constraints): Adjust. 27809 278102019-05-21 Segher Boessenkool <segher@kernel.crashing.org> 27811 27812 * config/rs6000/constraints.md (define_register_constraint "wm"): 27813 Delete. 27814 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 27815 RS6000_CONSTRAINT_wm. 27816 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 27817 (rs6000_init_hard_regno_mode_ok): Adjust. 27818 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v". 27819 * doc/md.texi (Machine Constraints): Adjust. 27820 278212019-05-21 Segher Boessenkool <segher@kernel.crashing.org> 27822 27823 * config/rs6000/constraints.md (define_register_constraint "wk"): 27824 Delete. 27825 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 27826 RS6000_CONSTRAINT_wk. 27827 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 27828 (rs6000_init_hard_regno_mode_ok): Adjust. 27829 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v". 27830 * doc/md.texi (Machine Constraints): Adjust. 27831 278322019-05-21 Segher Boessenkool <segher@kernel.crashing.org> 27833 27834 * config/rs6000/constraints.md (define_register_constraint "wj"): 27835 Delete. 27836 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 27837 RS6000_CONSTRAINT_wj. 27838 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 27839 (rs6000_init_hard_regno_mode_ok): Adjust. 27840 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v". 27841 (VS_64dm): Delete. 27842 * config/rs6000/vsx.md: Ditto. 27843 * doc/md.texi (Machine Constraints): Adjust. 27844 278452019-05-21 Segher Boessenkool <segher@kernel.crashing.org> 27846 27847 * config/rs6000/constraints.md (define_register_constraint "wh"): 27848 Delete. 27849 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 27850 RS6000_CONSTRAINT_wh. 27851 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 27852 (rs6000_init_hard_regno_mode_ok): Adjust. 27853 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v". 27854 * doc/md.texi (Machine Constraints): Adjust. 27855 278562019-05-21 Uroš Bizjak <ubizjak@gmail.com> 27857 27858 PR target/90547 27859 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): 27860 Avoid calling gen_lowpart with CONST operand. 27861 278622019-05-21 Alexandre Oliva <aoliva@redhat.com> 27863 27864 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add 27865 field template_last_to_copy. 27866 (ssa_create_duplicates): Set it, and use it. Attempt to 27867 preserve more debug stmts. 27868 278692019-05-21 Uroš Bizjak <ubizjak@gmail.com> 27870 27871 * config/i386/sse.md (VF1_AVX2): New mode iterator. 27872 (signbit<mode>2): New expander 27873 278742019-05-21 James Clarke <jrtc27@jrtc27.com> 27875 27876 PR bootstrap/87338 27877 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL 27878 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL. 27879 278802019-05-21 Uroš Bizjak <ubizjak@gmail.com> 27881 27882 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero 27883 %ebx and %ecx bafore calling cpuid with leaf 1 or 27884 non-constant leaf argument. 27885 278862019-05-21 Alan Modra <amodra@gmail.com> 27887 27888 PR target/90545 27889 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase 27890 power9 direct move cost. 27891 278922019-05-21 Richard Biener <rguenther@suse.de> 27893 27894 PR middle-end/90510 27895 * fold-const.c (fold_read_from_vector): New function. 27896 * fold-const.h (fold_read_from_vector): Declare. 27897 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for 27898 single-element insert permutations. Canonicalize selector 27899 further and fix issue with last commit. 27900 279012019-05-21 Vladislav Ivanishin <vlad@ispras.ru> 27902 27903 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p 27904 parameter with default value false to declaration. 27905 (split_edges_for_insertion): New inline function. Wrapper for 27906 split_critical_edges with for_edge_insertion_p = true. 27907 * tree-cfg.c (split_critical_edges): Don't split non-critical 27908 edges if for_edge_insertion_p is false. Fix whitespace. 27909 * tree-ssa-pre.c (pass_pre::execute): Call 27910 split_edges_for_insertion instead of split_critical_edges. 27911 * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto. 27912 * tree-ssa-sink.c (pass_sink_code::execute): Ditto. 27913 (pass_data_sink_code): Update function name in the comment. 27914 279152019-05-21 Vladislav Ivanishin <vlad@ispras.ru> 27916 27917 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper 27918 around is_value_included_in that knows how to handle BIT_AND_EXPR. 27919 (is_pred_expr_subset_of): Use the new function. Handle more cases where 27920 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false 27921 positives. 27922 279232019-05-21 Martin Liska <mliska@suse.cz> 27924 27925 * config/rs6000/driver-rs6000.c (elf_platform): Do not use 27926 an extra newline. 27927 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>. 27928 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and 27929 vec_lvsr. 27930 * config/rs6000/rs6000.c (rs6000_option_override_internal): 27931 Quote a C type. 27932 (rs6000_function_arg): Likewise. 27933 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot. 27934 (rs6000_expand_ternop_builtin): Use interval syntax. 27935 (get_element_number): Likewise. 27936 (altivec_expand_builtin): Likewise. 27937 (rs6000_get_function_versions_dispatcher): Quote target_clones. 27938 279392019-05-20 Jakub Jelinek <jakub@redhat.com> 27940 27941 PR c++/59813 27942 PR target/90418 27943 * function.h (struct function): Add calls_eh_return member. 27944 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when 27945 gimplifying __builtin_eh_return call. 27946 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun 27947 to cfun. 27948 (expand_call_inline): Or in src_cfun->calls_eh_return into 27949 dst_cfun->calls_eh_return. 27950 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if 27951 cfun->calls_eh_return. 27952 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return. 27953 * lto-streamer-out.c (output_struct_function_base): Write 27954 calls_eh_return. 27955 279562019-05-20 Marc Glisse <marc.glisse@inria.fr> 27957 27958 PR rtl-optimization/43147 27959 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle 27960 IX86_BUILTIN_SHUFPD. 27961 279622019-05-20 Jan Hubicka <hubicka@ucw.cz> 27963 27964 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ... 27965 (refs_may_alias_p_1): ... here; update stats. 27966 (refs_may_alias_p): Do not update stats here. 27967 279682019-05-20 Richard Biener <rguenther@suse.de> 27969 27970 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR 27971 doesn't produce pointers. 27972 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what 27973 the first operand points to. 27974 279752019-05-20 Jan Hubicka <hubicka@ucw.cz> 27976 27977 * tree-ssa-alias.c (compare_sizes): New function. 27978 (sompare_type_sizes): New function 27979 (aliasing_component_refs_p): Use it. 27980 (indirect_ref_may_alias_decl_p): Likewise. 27981 279822019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 27983 27984 * config/i386/sol2.h (CC1_SPEC): Reject -mx32. 27985 279862019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 27987 27988 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e. 27989 (LIBLSAN_EARLY_SPEC): Likewise. 27990 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise. 27991 279922019-05-20 Martin Liska <mliska@suse.cz> 27993 27994 * config/i386/i386.c (ix86_libc_has_fast_function): 27995 Add ATTRIBUTE_UNUSED for the argument. 27996 279972019-05-20 Richard Biener <rguenther@suse.de> 27998 27999 * gimple-match-head.c: Include vec-perm-indices.h. 28000 * generic-match-head.c: Likewise. 28001 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h 28002 is included. 28003 * fold-const.c (fold_vec_perm): Export. 28004 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR... 28005 (match.pd): ...here. 28006 280072019-05-20 Jakub Jelinek <jakub@redhat.com> 28008 28009 * cfgloop.h (struct loop): Add simdlen member. 28010 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well. 28011 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present. 28012 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0 28013 as new argument to autovectorize_vector_sizes target hook. If 28014 loop->simdlen, pick up vector size where the vectorization factor 28015 is equal to loop->simd, and if there is none, fall back to the first 28016 successful one. 28017 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook 28018 caller. 28019 * omp-low.c (omp_clause_aligned_alignment): Likewise. 28020 * omp-general.c (omp_max_vf): Likewise. 28021 * optabs-query.c (can_vec_mask_load_store_p): Likewise. 28022 * tree-vect-slp.c (vect_slp_bb): Likewise. 28023 * target.def (autovectorize_vector_sizes): Add ALL argument and 28024 document it. 28025 * doc/tm.texi: Adjust documentation. 28026 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument. 28027 * targhooks.h (default_autovectorize_vector_sizes): Likewise. 28028 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add 28029 bool argument. 28030 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise. 28031 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise. 28032 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise. 28033 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If 28034 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if 28035 preferred vector size is not 512-bit or 256-bit, just put those 28036 unpreferred ones last. 28037 280382019-05-20 Martin Liska <mliska@suse.cz> 28039 28040 * targhooks.c (default_libc_has_fast_function): New function. 28041 * targhooks.h (default_libc_has_fast_function): Likewise. 28042 280432019-05-20 Martin Liska <mliska@suse.cz> 28044 28045 PR middle-end/90263 28046 * builtins.c (expand_builtin_memory_copy_args): When having a 28047 target with fast mempcpy implementation do now use memcpy. 28048 * config/i386/i386.c (ix86_libc_has_fast_function): New. 28049 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise. 28050 * doc/tm.texi: Likewise. 28051 * doc/tm.texi.in: Likewise. 28052 * target.def: 28053 * expr.c (emit_block_move_hints): Add 2 new arguments. 28054 * expr.h (emit_block_move_hints): Bail out when libcall 28055 to memcpy would be used. 28056 280572019-05-20 Martin Liska <mliska@suse.cz> 28058 28059 * profile-count.c: Add vertical spacing in order 28060 to separate functions. 28061 * profile-count.h: Likewise. 28062 280632019-05-20 Martin Liska <mliska@suse.cz> 28064 28065 * profile-count.h: Do not use full qualified 28066 names if possible. 28067 * profile-count.c (profile_count::to_frequency): Likewise. 28068 280692019-05-20 Martin Liska <mliska@suse.cz> 28070 28071 * profile-count.h (enum profile_quality): Use capital letters 28072 for enum value names. Use the adjusted names. 28073 * profile-count.c: Use the adjusted names. 28074 280752019-05-19 Segher Boessenkool <segher@kernel.crashing.org> 28076 28077 * config/rs6000/constraints.md (define_register_constraint "wH"): 28078 Delete. 28079 (define_register_constraint "wI"): Delete. 28080 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 28081 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI. 28082 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 28083 (rs6000_init_hard_regno_mode_ok): Adjust. 28084 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v" 28085 resp. "d", or with "wa" as appropriate, all with "p8v". 28086 * config/rs6000/vsx.md: Ditto. 28087 * doc/md.texi (Machine Constraints): Adjust. 28088 280892019-05-19 Segher Boessenkool <segher@kernel.crashing.org> 28090 28091 * config/rs6000/constraints.md (define_register_constraint "wy"): 28092 Delete. 28093 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 28094 RS6000_CONSTRAINT_wy. 28095 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 28096 (rs6000_init_hard_regno_mode_ok): Adjust. 28097 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v". 28098 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>". 28099 (define_mode_attr Fisa): New. 28100 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v". 28101 * doc/md.texi (Machine Constraints): Adjust. 28102 281032019-05-19 Segher Boessenkool <segher@kernel.crashing.org> 28104 28105 * config/rs6000/constraints.md (define_register_constraint "wu"): 28106 Delete. 28107 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 28108 RS6000_CONSTRAINT_wu. 28109 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 28110 (rs6000_init_hard_regno_mode_ok): Adjust. 28111 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa", 28112 both with "p8v". 28113 (define_mode_attr Fa): Delete. 28114 * config/rs6000/vsx.md: Ditto. 28115 * doc/md.texi (Machine Constraints): Adjust. 28116 281172019-05-19 Segher Boessenkool <segher@kernel.crashing.org> 28118 28119 * config/rs6000/constraints.md (define_register_constraint "wJ"): 28120 Delete. 28121 (define_register_constraint "wK"): Delete. 28122 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 28123 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK. 28124 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 28125 (rs6000_init_hard_regno_mode_ok): Adjust. 28126 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v". 28127 Replace "wK" constraint by "wH" with "p9v". 28128 * config/rs6000/vsx.md: Ditto. 28129 * doc/md.texi (Machine Constraints): Adjust. 28130 281312019-05-19 Segher Boessenkool <segher@kernel.crashing.org> 28132 28133 * config/rs6000/constraints.md (define_register_constraint "wb"): 28134 Delete. 28135 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 28136 RS6000_CONSTRAINT_wb. 28137 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 28138 (rs6000_init_hard_regno_mode_ok): Adjust. 28139 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v". 28140 * config/rs6000/vsx.md: Ditto. 28141 * doc/md.texi (Machine Constraints): Adjust. 28142 281432019-05-19 Segher Boessenkool <segher@kernel.crashing.org> 28144 28145 * config/rs6000/constraints.md (define_register_constraint "wo"): 28146 Delete. 28147 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete 28148 RS6000_CONSTRAINT_wo. 28149 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. 28150 (rs6000_init_hard_regno_mode_ok): Adjust. 28151 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v". 28152 * config/rs6000/altivec.md: Ditto. 28153 * doc/md.texi (Machine Constraints): Adjust. 28154 281552019-05-18 Iain Sandoe <iain@sandoe.co.uk> 28156 28157 * config/darwin-c.c (darwin_register_objc_includes): Do not 28158 prepend the sysroot when building gnu-runtime header search 28159 paths. 28160 281612019-05-18 Iain Sandoe <iain@sandoe.co.uk> 28162 28163 * config/darwin.c (darwin_file_end): Use switch_to_section () 28164 instead of direct output of the asm. 28165 281662019-05-17 Segher Boessenkool <segher@kernel.crashing.org> 28167 28168 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean 28169 argument to be type bool (was int before). 28170 (rs6000_emit_epilogue): Simplify some code. Declare some variables 28171 at first use. Use type bool for some variables. Fix a theoretical 28172 eh_return bug for svr4. 28173 281742019-05-17 Segher Boessenkool <segher@kernel.crashing.org> 28175 28176 * config/rs6000/rs6000.md (isa): New attribute. 28177 (enabled): New attribute. 28178 281792019-05-17 Max Filippov <jcmvbkbc@gmail.com> 28180 28181 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call 28182 assemble_start_function and assemble_end_function. 28183 281842019-05-17 Thomas Schwinge <thomas@codesourcery.com> 28185 28186 PR middle-end/89433 28187 * omp-general.c (oacc_verify_routine_clauses): Change formal 28188 parameters. Add checking if already marked with an OpenACC 28189 'routine' directive. Adjust all users. 28190 28191 PR middle-end/89433 28192 * omp-general.c (oacc_build_routine_dims): Move some of its 28193 processing into... 28194 (oacc_verify_routine_clauses): ... this new function. 28195 * omp-general.h (oacc_verify_routine_clauses): New prototype. 28196 281972019-05-17 Iain Sandoe <iain@sandoe.co.uk> 28198 28199 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the 28200 formating of picbase labels to match other ports. 28201 282022019-05-17 Iain Sandoe <iain@sandoe.co.uk> 28203 28204 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent 28205 in the generated code. 28206 282072019-05-16 Martin Sebor <msebor@redhat.com> 28208 28209 * builtins.c (expand_builtin_atomic_always_lock_free): Quote 28210 identifiers, keywords, operators, and types in diagnostics. Correct 28211 quoting, spelling, and sentence capitalization issues. 28212 (expand_builtin_atomic_is_lock_free): Same. 28213 (fold_builtin_next_arg): Same. 28214 * cfgexpand.c (expand_one_var): Same. 28215 (tree_conflicts_with_clobbers_p): Same. 28216 (expand_asm_stmt): Same. 28217 (verify_loop_structure): Same. 28218 * cgraphunit.c (process_function_and_variable_attributes): Same. 28219 * collect-utils.c (collect_execute): Same. 28220 * collect2.c (maybe_run_lto_and_relink): Same. 28221 (is_lto_object_file): Same. 28222 (scan_prog_file): Same. 28223 * convert.c (convert_to_real_1): Same. 28224 * dwarf2out.c (dwarf2out_begin_prologue): Same. 28225 * except.c (verify_eh_tree): Same. 28226 * gcc.c (execute): Same. 28227 (eval_spec_function): Same. 28228 (run_attempt): Same. 28229 (driver::set_up_specs): Same. 28230 (compare_debug_auxbase_opt_spec_function): Same. 28231 * gcov-tool.c (unlink_gcda_file): Same. 28232 (do_merge): Same. 28233 (do_rewrite): Same. 28234 * gcse.c (gcse_or_cprop_is_too_expensive): Same. 28235 * gimplify.c (gimplify_asm_expr): Same. 28236 (gimplify_adjust_omp_clauses): Same. 28237 * hsa-gen.c (gen_hsa_addr_insns): Same. 28238 (gen_hsa_insns_for_load): Same. 28239 (gen_hsa_cmp_insn_from_gimple): Same. 28240 (gen_hsa_insns_for_operation_assignment): Same. 28241 (gen_get_level): Same. 28242 (gen_hsa_alloca): Same. 28243 (omp_simple_builtin::generate): Same. 28244 (gen_hsa_atomic_for_builtin): Same. 28245 (gen_hsa_insns_for_call): Same. 28246 * input.c (dump_location_info): Same. 28247 * ipa-devirt.c (compare_virtual_tables): Same. 28248 * ira.c (ira_setup_eliminable_regset): Same. 28249 * lra-assigns.c (lra_assign): Same. 28250 * lra-constraints.c (lra_constraints): Same. 28251 * lto-streamer-in.c (lto_input_mode_table): Same. 28252 * lto-wrapper.c (get_options_from_collect_gcc_options): Same. 28253 (merge_and_complain): Same. 28254 (compile_offload_image): Same. 28255 (compile_images_for_offload_targets): Same. 28256 (debug_objcopy): Same. 28257 (run_gcc): Same. 28258 (main): Same. 28259 * opts.c (print_specific_help): Same. 28260 (parse_no_sanitize_attribute): Same. 28261 (print_help): Same. 28262 (handle_param): Same. 28263 * plugin.c (add_new_plugin): Same. 28264 (parse_plugin_arg_opt): Same. 28265 (try_init_one_plugin): Same. 28266 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords, 28267 operators, and types in diagnostics. Correct quoting and spelling 28268 issues. 28269 * read-rtl-function.c (parse_edge_flag_token): Same. 28270 (function_reader::parse_enum_value): Same. 28271 * reg-stack.c (check_asm_stack_operands): Same. 28272 * regcprop.c (validate_value_data): Same. 28273 * sched-rgn.c (make_pass_sched_fusion): Same. 28274 * stmt.c (check_unique_operand_names): Same. 28275 * targhooks.c (default_target_option_pragma_parse): Same. 28276 * tlink.c (recompile_files): Same. 28277 * toplev.c (process_options): Same. 28278 (do_compile): Same. 28279 * trans-mem.c (diagnose_tm_1): Same. 28280 (ipa_tm_scan_irr_block): Same. 28281 (ipa_tm_diagnose_transaction): Same. 28282 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to 28283 format a tree code name in a diagnostic. 28284 (verify_types_in_gimple_min_lval): Same. 28285 (verify_types_in_gimple_reference): Same. 28286 (verify_gimple_call): Same. 28287 (verify_gimple_assign_unary): Same. 28288 (verify_gimple_assign_binary): Same. 28289 (verify_gimple_assign_ternary): Same. 28290 (verify_gimple_assign_single): Same. 28291 (verify_gimple_switch): Same. 28292 (verify_gimple_label): Same. 28293 (verify_gimple_phi): Same. 28294 (verify_gimple_in_seq): Same. 28295 (verify_eh_throw_stmt_node): Same. 28296 (collect_subblocks): Same. 28297 (gimple_verify_flow_info): Same. 28298 (do_warn_unused_result): Same. 28299 * tree-inline.c (expand_call_inline): Same. 28300 * tree-into-ssa.c (update_ssa): Same. 28301 * tree.c (tree_int_cst_elt_check_failed): Same. 28302 (tree_vec_elt_check_failed): Same. 28303 (omp_clause_operand_check_failed): Same. 28304 (verify_type_variant): Same. 28305 (verify_type): Same. 28306 * value-prof.c (verify_histograms): Same. 28307 * varasm.c (assemble_start_function): Same. 28308 283092019-05-16 Martin Sebor <msebor@redhat.com> 28310 28311 * config/i386/i386-expand.c (get_element_number): Quote keywords 28312 and other internal names in diagnostics. Adjust other diagnostic 28313 formatting issues noted by -Wformat-diag. 28314 * config/i386/i386-features.c 28315 (ix86_mangle_function_version_assembler_name): Same. 28316 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same. 28317 * config/i386/i386.c (ix86_function_type_abi): Same. 28318 (ix86_function_ms_hook_prologue): Same. 28319 (classify_argument): Same. 28320 (ix86_expand_prologue): Same. 28321 (ix86_md_asm_adjust): Same. 28322 (ix86_memmodel_check): Same. 28323 283242019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 28325 28326 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace 28327 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64 28328 and fpxx modes. 28329 283302019-05-17 H.J. Lu <hongjiu.lu@intel.com> 28331 28332 PR target/90497 28333 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX 28334 intrinsics without SSE/SSE2/SSSE3. 28335 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW 28336 check. 28337 (*mmx_uavgv8qi3): Likewise. 28338 283392019-05-17 Richard Biener <rguenther@suse.de> 28340 28341 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping 28342 VEC_PERM_EXPR as __VEC_PERM with -gimple. 28343 283442019-05-17 Andreas Krebbel <krebbel@linux.ibm.com> 28345 28346 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the 28347 vec_sldw insn pattern. 28348 283492019-05-17 Richard Biener <rguenther@suse.de> 28350 28351 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree. 28352 283532019-05-17 Martin Liska <mliska@suse.cz> 28354 28355 PR driver/90496 28356 * toplev.c (output_stack_usage): With LTO and sanitizer it 28357 happens that a global ctor (_GLOBAL__sub_I_00099_0_main) 28358 has no file location. 28359 283602019-05-16 Jakub Jelinek <jakub@redhat.com> 28361 28362 PR c++/90484 28363 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that 28364 sz0 is equal to sz1, instead return false in that case. 28365 28366 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF 28367 has non-constant expression, force sctx.lane and use two 28368 argument IFN_GOMP_SIMD_LANE instead of single argument. 28369 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE 28370 two argument IFN_GOMP_SIMD_LANE without lhs. 28371 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond 28372 member. 28373 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND): 28374 Define. 28375 (LOOP_REQUIRES_VERSIONING): Or in 28376 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND. 28377 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 28378 simd_if_cond. 28379 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0. 28380 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check 28381 from simd if clause if needed. 28382 283832019-05-16 Richard Biener <rguenther@suse.de> 28384 28385 * tree-affine.c (expr_to_aff_combination): New function split 28386 out from... 28387 (tree_to_aff_combination): ... here. 28388 (aff_combination_expand): Avoid building a GENERIC tree. 28389 283902019-05-16 Max Filippov <jcmvbkbc@gmail.com> 28391 28392 * cgraphunit.c (cgraph_node::expand_thunk): Remove 28393 assemble_start_function and assemble_end_function calls. 28394 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call 28395 assemble_start_function and assemble_end_function. 28396 * config/arc/arc.c (arc_output_mi_thunk): Likewise. 28397 * config/arm/arm.c (arm_output_mi_thunk): Likewise. 28398 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise. 28399 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise. 28400 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise. 28401 * config/csky/csky.c (csky_output_mi_thunk): Likewise. 28402 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise. 28403 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise. 28404 * config/i386/i386.c (x86_output_mi_thunk): Likewise. 28405 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. 28406 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. 28407 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk): 28408 Likewise. 28409 * config/mips/mips.c (mips_output_mi_thunk): Likewise. 28410 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise. 28411 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise. 28412 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise. 28413 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise. 28414 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise. 28415 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise. 28416 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise. 28417 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. 28418 * config/s390/s390.c (s390_output_mi_thunk): Likewise. 28419 * config/sh/sh.c (sh_output_mi_thunk): Likewise. 28420 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. 28421 * config/spu/spu.c (spu_output_mi_thunk): Likewise. 28422 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk): 28423 Likewise. 28424 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise. 28425 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise. 28426 * config/vax/vax.c (vax_output_mi_thunk): Likewise. 28427 284282019-05-16 Jan Hubicka <hubicka@ucw.cz> 28429 28430 * tree-ssa-alias.c (alias_stats): Add 28431 aliasing_component_refs_p_may_alias and 28432 aliasing_component_refs_p_no_alias. 28433 (dump_alias_stats): Print aliasing_component_refs_p stats. 28434 (aliasing_component_refs_p): Update stats. 28435 284362019-05-16 Martin Liska <mliska@suse.cz> 28437 28438 PR lto/90500 28439 * multiple_target.c (expand_target_clones): Do not allow 28440 target_clones being used with a symbol that is an alias. 28441 284422019-05-16 Vladislav Ivanishin <vlad@ispras.ru> 28443 28444 PR tree-optimization/90394 28445 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false 28446 positives rather than ICE for cases where (code2 == NE_EXPR 28447 && code1 == BIT_AND_EXPR). 28448 284492019-05-16 Jakub Jelinek <jakub@redhat.com> 28450 28451 PR fortran/90329 28452 * tree-core.h (struct tree_decl_common): Document 28453 decl_nonshareable_flag for PARM_DECLs. 28454 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. 28455 * calls.c (expand_call): Don't try tail call if caller 28456 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be 28457 passed on the stack and callee needs to pass any arguments on the 28458 stack. 28459 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use 28460 else if instead of series of mutually exclusive ifs. Handle 28461 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. 28462 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. 28463 28464 * lto-streamer.h (LTO_major_version): Bump to 9. 28465 284662019-05-16 Jun Ma <JunMa@linux.alibaba.com> 28467 28468 PR tree-optimization/90106 28469 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add 28470 new parameter as new internal function call, also move it to new 28471 basic block. 28472 (use_internal_fn): Pass internal function call to 28473 shrink_wrap_one_built_in_call_with_conds. 28474 284752019-05-15 Jakub Jelinek <jakub@redhat.com> 28476 28477 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set 28478 max_vf to 1. 28479 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear 28480 safelen_int and set loop->dont_vectorize. 28481 284822019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28483 28484 PR target/89021 28485 * config/i386/i386-builtin.def: Enable MMX intrinsics with 28486 SSE/SSE2/SSSE3. 28487 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): 28488 Likewise. 28489 * config/i386/i386-expand.c (ix86_expand_builtin): Allow 28490 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE. 28491 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__ 28492 is defined. 28493 284942019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28495 28496 PR target/89021 28497 * config/i386/mmx.md (*vec_dupv2sf): Changed to 28498 define_insn_and_split to support SSE emulation. 28499 (*vec_extractv2sf_0): Likewise. 28500 (*vec_extractv2sf_1): Likewise. 28501 (*vec_extractv2si_0): Likewise. 28502 (*vec_extractv2si_1): Likewise. 28503 (*vec_extractv2si_zext_mem): Likewise. 28504 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE. 28505 (vec_extractv2sf_1 splitter): Likewise. 28506 (vec_extractv2sfsf): Likewise. 28507 (vec_setv2si): Likewise. 28508 (vec_extractv2si_1 splitter): Likewise. 28509 (vec_extractv2sisi): Likewise. 28510 (vec_setv4hi): Likewise. 28511 (vec_extractv4hihi): Likewise. 28512 (vec_setv8qi): Likewise. 28513 (vec_extractv8qiqi): Likewise. 28514 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass 28515 TARGET_MMX_WITH_SSE ix86_expand_vector_extract. 28516 (vec_extractv2sisi): Likewise. 28517 (vec_extractv4hihi): Likewise. 28518 (vec_extractv8qiqi): Likewise. 28519 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass 28520 TARGET_MMX_WITH_SSE to ix86_expand_vector_init. 28521 (vec_initv2sisi): Likewise. 28522 (vec_initv4hihi): Likewise. 28523 (vec_initv8qiqi): Likewise. 28524 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass 28525 TARGET_MMX_WITH_SSE to ix86_expand_vector_set. 28526 (vec_setv4hi): Likewise. 28527 (vec_setv8qi): Likewise. 28528 285292019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28530 28531 PR target/89021 28532 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow 28533 TARGET_MMX_WITH_SSE. 28534 (MMXMODE:*mov<mode>_internal): Likewise. 28535 (MMXMODE:movmisalign<mode>): Likewise. 28536 285372019-05-15 Uroš Bizjak <ubizjak@gmail.com> 28538 28539 PR target/89021 28540 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute. 28541 * config/i386/sse.md (sse2_cvtpi2pd): Ditto. 28542 (sse2_cvtpd2pi): Ditto. 28543 (sse2_cvttpd2pi): Ditto. 28544 (*vec_concatv2sf_sse4_1): Ditto. 28545 (*vec_concatv2sf_sse): Ditto. 28546 (*vec_concatv2si_sse4_1): Ditto. 28547 (*vec_concatv2si): Ditto. 28548 (*vec_concatv4si_0): Ditto. 28549 (*vec_concatv2di_0): Ditto. 28550 285512019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28552 28553 PR target/89021 28554 * config/i386/sse.md (abs<mode>2): Add SSE emulation. 28555 285562019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28557 28558 PR target/89021 28559 * config/i386/sse.md (ssse3_palignrdi): Changed to 28560 define_insn_and_split to support SSE emulation. 28561 285622019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28563 28564 PR target/89021 28565 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation. 28566 285672019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28568 28569 PR target/89021 28570 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to 28571 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add 28572 SSE emulation. 28573 285742019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28575 28576 PR target/89021 28577 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX 28578 or TARGET_MMX_WITH_SSE. 28579 (*ssse3_pmulhrswv4hi3): Add SSE emulation. 28580 285812019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28582 28583 PR target/89021 28584 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation. 28585 285862019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28587 28588 PR target/89021 28589 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3): 28590 Changed to define_insn_and_split to support SSE emulation. 28591 285922019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28593 28594 PR target/89021 28595 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3): 28596 Changed to define_insn_and_split to support SSE emulation. 28597 285982019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28599 28600 PR target/89021 28601 * config/i386/mmx.md (mmx_<emms>): Renamed to ... 28602 (*mmx_<emms>): This. 28603 (mmx_<emms>): New expander. 28604 286052019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28606 28607 PR target/89021 28608 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation 28609 support. 28610 (*sse2_umulv1siv1di3): Add SSE2 emulation. 28611 286122019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28613 28614 PR target/89021 28615 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation. 28616 286172019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28618 28619 PR target/89021 28620 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation. 28621 286222019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28623 28624 PR target/89021 28625 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and 28626 TARGET_MMX_WITH_SSE. 28627 (*mmx_uavgv4hi3): Add SSE emulation. 28628 286292019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28630 28631 PR target/89021 28632 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX 28633 and TARGET_MMX_WITH_SSE. 28634 (*mmx_uavgv8qi3): Add SSE emulation. 28635 286362019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28637 28638 PR target/89021 28639 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2 28640 maskmovdqu for __MMX_WITH_SSE__. 28641 286422019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28643 28644 PR target/89021 28645 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check 28646 TARGET_MMX and TARGET_MMX_WITH_SSE. 28647 (*mmx_umulv4hi3_highpart): Add SSE emulation. 28648 286492019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28650 28651 PR target/89021 28652 * config/i386/mmx.md (mmx_pmovmskb): Changed to 28653 define_insn_and_split to support SSE emulation. 28654 286552019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28656 28657 PR target/89021 28658 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX 28659 and TARGET_MMX_WITH_SSE. 28660 (mmx_<code>v8qi3): Likewise. 28661 (smaxmin:<code>v4hi3): New. 28662 (umaxmin:<code>v8qi3): Likewise. 28663 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation. 28664 (umaxmin:*mmx_<code>v8qi3): Likewise. 28665 286662019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28667 28668 PR target/89021 28669 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and 28670 TARGET_MMX_WITH_SSE. 28671 (*mmx_pinsrw): Add SSE emulation. 28672 286732019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28674 28675 PR target/89021 28676 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation. 28677 286782019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28679 28680 PR target/89021 28681 * config/i386/sse.md (sse_cvtpi2ps): Changed to 28682 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add 28683 SSE emulation. 28684 286852019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28686 28687 PR target/89021 28688 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation. 28689 (sse_cvttps2pi): Likewise. 28690 286912019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28692 28693 PR target/89021 28694 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and 28695 TARGET_MMX_WITH_SSE. 28696 (mmx_pshufw_1): Add SSE emulation. 28697 (*vec_dupv4hi): Changed to define_insn_and_split and also allow 28698 TARGET_MMX_WITH_SSE to support SSE emulation. 28699 287002019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28701 28702 PR target/89021 28703 * config/i386/constraints.md (Yw): New constraint. 28704 * config/i386/mmx.md (*vec_dupv2si): Changed to 28705 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to 28706 support SSE emulation. 28707 287082019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28709 28710 PR target/89021 28711 * config/i386/mmx.md (mmx_eq<mode>3): Also allow 28712 TARGET_MMX_WITH_SSE. 28713 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE 28714 support. 28715 (mmx_gt<mode>3): Likewise. 28716 287172019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28718 28719 PR target/89021 28720 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow 28721 TARGET_MMX_WITH_SSE. Add SSE support. 28722 287232019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28724 28725 PR target/89021 28726 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow 28727 TARGET_MMX_WITH_SSE. 28728 (any_logic:<code><mode>3): New. 28729 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE. 28730 Add SSE support. 28731 287322019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28733 28734 PR target/89021 28735 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow 28736 TARGET_MMX_WITH_SSE. Add SSE emulation. 28737 (mmx_<shift_insn><mode>3): Likewise. 28738 (ashr<mode>3): New. 28739 (<shift_insn><mode>3): Likewise. 28740 287412019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28742 28743 PR target/89021 28744 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. 28745 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support. 28746 287472019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28748 28749 PR target/89021 28750 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow 28751 TARGET_MMX_WITH_SSE. 28752 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add 28753 SSE support. 28754 287552019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28756 28757 PR target/89021 28758 * config/i386/mmx.md (mmx_mulv4hi3): Also allow 28759 TARGET_MMX_WITH_SSE. 28760 (mulv4hi3): New. 28761 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE 28762 support. 28763 287642019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28765 28766 PR target/89021 28767 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI. 28768 (plusminus:mmx_<plusminus_insn><mode>3): Check 28769 TARGET_MMX_WITH_SSE. 28770 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise. 28771 (<plusminus_insn><mode>3): New. 28772 (*mmx_<plusminus_insn><mode>3): Add SSE emulation. 28773 (*mmx_<plusminus_insn><mode>3): Likewise. 28774 287752019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28776 28777 PR target/89021 28778 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function. 28779 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New 28780 prototype. 28781 * config/i386/mmx.m (mmx_punpckhbw): Changed to 28782 define_insn_and_split to support SSE emulation. 28783 (mmx_punpcklbw): Likewise. 28784 (mmx_punpckhwd): Likewise. 28785 (mmx_punpcklwd): Likewise. 28786 (mmx_punpckhdq): Likewise. 28787 (mmx_punpckldq): Likewise. 28788 287892019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28790 Uros Bizjak <ubizjak@gmail.com> 28791 28792 PR target/89021 28793 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx): 28794 New function. 28795 (ix86_split_mmx_pack): Likewise. 28796 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx): 28797 New prototype. 28798 (ix86_split_mmx_pack): Likewise. 28799 * config/i386/i386.md (mmx_isa): New. 28800 (enabled): Also check mmx_isa. 28801 * config/i386/mmx.md (any_s_truncate): New code iterator. 28802 (s_trunsuffix): New code attr. 28803 (mmx_packsswb): Removed. 28804 (mmx_packssdw): Likewise. 28805 (mmx_packuswb): Likewise. 28806 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate 28807 MMX packsswb/packuswb with SSE2. 28808 (mmx_packssdw): Likewise. 28809 * config/i386/predicates.md (register_mmxmem_operand): New. 28810 288112019-05-15 H.J. Lu <hongjiu.lu@intel.com> 28812 28813 PR target/89021 28814 * config/i386/i386-c.c (ix86_target_macros_internal): Define 28815 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE. 28816 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for 28817 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE. 28818 (ix86_vector_mode_supported_p): Likewise. 28819 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New. 28820 288212019-05-15 Martin Liska <mliska@suse.cz> 28822 28823 PR middle-end/90478 28824 * tree-switch-conversion.c (jump_table_cluster::can_be_handled): 28825 Check for overflow. 28826 288272019-05-15 Richard Biener <rguenther@suse.de> 28828 28829 * tree-into-ssa.c (pass_build_ssa::execute): Run 28830 update_address_taken before going into SSA. 28831 288322019-05-15 Richard Biener <rguenther@suse.de> 28833 28834 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF 28835 as __BIT_FIELD_REF with type with -gimple. 28836 288372019-05-15 Vladislav Ivanishin <vlad@ispras.ru> 28838 28839 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge 28840 semantically equivalent branches (left over after prior refactorings). 28841 288422019-05-15 Richard Biener <rguenther@suse.de> 28843 28844 PR tree-optimization/88828 28845 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix 28846 bogus check. 28847 288482019-05-14 Richard Biener <rguenther@suse.de> 28849 28850 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR 28851 as __VIEW_CONVERT with -gimple. 28852 288532019-05-12 Iain Sandoe <iain@sandoe.co.uk> 28854 28855 PR target/82920 28856 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for 28857 Darwin. 28858 288592019-05-14 Segher Boessenkool <segher@kernel.crashing.org> 28860 28861 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following 28862 define_split to become a define_insn_and_split. 28863 288642019-05-14 Segher Boessenkool <segher@kernel.crashing.org> 28865 28866 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change 28867 arguments. 28868 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments. 28869 * config/rs6000/rs6000.md (epilogue_type): New define_enum. 28870 (sibcall_epilogue): Adjust. 28871 (epilogue): Adjust. 28872 288732019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 28874 28875 * config.gcc: Move *-*-solaris2.10* from obsolete configurations 28876 to unsupported ones. 28877 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*. 28878 * config.host: Likewise. 28879 * config/i386/sol2.h (ASM_COMMENT_START): Remove. 28880 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ && 28881 __svr4__]: Remove "brand" fallback. 28882 [!KSTAT_DATA_STRING]: Remove. 28883 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]* 28884 to *-*-solaris2*. 28885 (comdat_group): Likewise. 28886 (set_have_as_tls): Likewise. 28887 (gcc_cv_target_dl_iterate_phdr): Likewise. 28888 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround. 28889 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround. 28890 * configure: Regenerate. 28891 * doc/install.texi: Simplify Solaris target triplets. 28892 (Specific, i?86-*-solaris2*): Remove Solaris 10 references. 28893 (Specific, *-*-solaris2*): Document Solaris 10 removal. 28894 Remove Solaris 10 references. 28895 Remove obsolete Solaris bug reference. 28896 (Specific, sparc-sun-solaris2.10): Remove. 28897 288982019-05-14 Uroš Bizjak <ubizjak@gmail.com> 28899 28900 * config/i386/i386.md (any_div): New code iterator. 28901 (paired_mod): New code attribute. 28902 (sgnprefix): Handle DIV and UDIV RTXes. 28903 (u): Ditto. 28904 (<u>divmod<mode>4): Macroize expander from divmod<mode>4 28905 and udivmod<mode>4 patterns using any_div code iterator. 28906 (divmod splitters): Macroize splitters using any_div code iterator. 28907 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition. 28908 (*udivmodsi4_pow2_zext_2): Ditto. 28909 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext 28910 and *udivmod<mode>4_noext patterns using any_div code iterator. 28911 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from 28912 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1 28913 patterns using any_div code iterator. 28914 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from 28915 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2 28916 patterns using any_div code iterator. 28917 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and 28918 udivmodhiqi3 patterns using any_extend code iterator. 28919 289202019-05-14 Richard Biener <rguenther@suse.de> 28921 H.J. Lu <hongjiu.lu@intel.com> 28922 28923 PR tree-optimization/88828 28924 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle 28925 permuting in a single non-constant element not extracted 28926 from a vector. 28927 289282019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 28929 28930 * internal-fn.def (SIGNBIT): New. 28931 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand 28932 defined. 28933 (signbitv4sf2): Likewise. 28934 289352019-05-14 Chenghua Xu <paul.hua.gm@gmail.com> 28936 28937 PR target/90357 28938 * config/mips/mips.c (mips_split_move): Skip forward SRC into 28939 next insn when the SRC reg is dead. 28940 289412019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com> 28942 28943 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1. 28944 (alloc_cand_and_find_basis): Ditto. 28945 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else. 28946 (create_mul_imm_cand, create_add_ssa_cand): Ditto. 28947 (create_add_imm_cand, slsr_process_cast): Ditto. 28948 (slsr_process_copy, replace_mult_candidate): Ditto. 28949 (replace_rhs_if_not_dup, replace_one_candidate): Ditto. 28950 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element. 28951 (pass_strength_reduction::execute): Init the first NULL element. 28952 289532019-05-13 Nathan Sidwell <nathan@acm.org> 28954 28955 * gcc.c (execute): Simplify cond-expr into if. Reformat comment. 28956 (run_attempt): Reformat line break. 28957 289582019-05-13 David Edelsohn <dje.gcc@gmail.com> 28959 28960 PR target/90418 28961 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH 28962 data registers in sibcall epilogues. 28963 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues. 28964 289652019-05-13 Uroš Bizjak <ubizjak@gmail.com> 28966 28967 PR target/89221 28968 * configure.ac (--enable-frame-pointer): 28969 Disable by default for cygwin and mingw. 28970 * configure: Regenerate. 28971 289722019-05-13 Nathan Sidwell <nathan@acm.org> 28973 28974 * dwarf2out.c (breakout_comdat_types): Move comment to correct 28975 piece of code. 28976 (const_ok_for_output_1): Balance parens around #if/#else/#endif 28977 (gen_member_die): Move abstract origin check earlier. Only VARs 28978 can be static_inline_p. Simplify splicing control flow. 28979 289802019-05-13 Richard Biener <rguenther@suse.de> 28981 28982 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle 28983 VIEW_CONVERT_EXPR. 28984 (vect_build_slp_tree_1): Likewise. 28985 289862019-05-13 Richard Biener <rguenther@suse.de> 28987 28988 PR tree-optimization/90402 28989 * tree-if-conv.c (tree_if_conversion): Value number only 28990 the loop body by making the latch an exit of the region 28991 as well. 28992 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip 28993 processing PHIs. 28994 (do_rpo_vn): Deal with multiple edges into the entry block 28995 that are not backedges inside the region by skipping PHIs 28996 of the entry block. 28997 289982019-05-13 Richard Biener <rguenther@suse.de> 28999 29000 PR tree-optimization/90316 29001 * tree-ssa-pre.c (insert_aux): Fold into ... 29002 (insert): ... this function. Use a RPO walk to reduce the 29003 number of required iterations. 29004 290052019-05-13 Martin Liska <mliska@suse.cz> 29006 29007 PR tree-optimization/90416 29008 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate 29009 string instead of passing the second part as va_arg argument. 29010 290112019-05-13 Martin Liska <mliska@suse.cz> 29012 29013 PR gcov-profile/90380 29014 * gcov.c (handle_cycle): Do not support zero cycle count, 29015 it should not be possible. 29016 (path_contains_zero_cycle_arc): New function. 29017 (circuit): Ignore zero cycle arc counts. 29018 290192019-05-13 Martin Liska <mliska@suse.cz> 29020 29021 PR gcov-profile/90380 29022 * gcov.c (enum loop_type): Remove the enum and 29023 the operator. 29024 (handle_cycle): Assert that we should not reach 29025 a negative count. 29026 (circuit): Use loop_found instead of a tri-state loop_type. 29027 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't 29028 happen. 29029 290302019-05-12 Iain Sandoe <iain@sandoe.co.uk> 29031 29032 PR target/82920 29033 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New. 29034 (ix86_output_indirect_branch_via_reg): Use output mechanism 29035 accounting for __USER_LABEL_PREFIX__. 29036 (ix86_output_indirect_branch_via_push): Likewise. 29037 (ix86_output_function_return): Likewise. 29038 (ix86_output_indirect_function_return): Likewise. 29039 290402019-05-12 Richard Sandiford <richard.sandiford@arm.com> 29041 29042 * doc/md.texi: Document use of code attributes in rtx patterns. 29043 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function. 29044 * read-rtl.c (find_code): Split out search loops into... 29045 (maybe_find_code): ...this new function. 29046 (check_code_iterator): Make the error message more informative. 29047 (check_code_attribute): New function. 29048 (rtx_reader::rtx_alloc_for_name): Likewise. 29049 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name. 29050 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete. 29051 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use 29052 <max_opp> directly as an rtx code instead of via a match_operator. 29053 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise. 29054 (<su>abd<mode>_3): Update accordingly. 29055 290562019-05-12 Iain Sandoe <iain@sandoe.co.uk> 29057 29058 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack 29059 is given, print the state of the EH "save world" computation for 29060 Darwin. 29061 290622019-05-11 Jakub Jelinek <jakub@redhat.com> 29063 29064 PR c++/59813 29065 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add 29066 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues. 29067 290682019-05-11 Uroš Bizjak <ubizjak@gmail.com> 29069 29070 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm): 29071 Use pinsrd for TARGET_SSE4_1. 29072 * config/i386/sse.md (movdi_to_sse): Ditto. 29073 290742019-05-10 Richard Biener <rguenther@suse.de> 29075 29076 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id. 29077 (do_rpo_vn): Initialize next_value_id. 29078 290792019-05-10 Martin Liska <mliska@suse.cz> 29080 29081 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD): 29082 Fix plural form. 29083 290842019-05-10 Jakub Jelinek <jakub@redhat.com> 29085 29086 PR tree-optimization/90385 29087 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME 29088 arguments of the exit phis. 29089 29090 PR c++/90383 29091 * tree-inline.h (struct copy_body_data): Add do_not_fold member. 29092 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if 29093 id->do_not_fold. 29094 (copy_tree_body_r): Likewise. 29095 (copy_fn): Set id.do_not_fold to true. 29096 290972019-05-10 Martin Liska <mliska@suse.cz> 29098 29099 * config/i386/i386-expand.c (ix86_expand_floorceildf_32): 29100 Reapply changes from r269790. 29101 291022019-05-10 Martin Liska <mliska@suse.cz> 29103 29104 PR middle-end/90340 29105 * doc/invoke.texi: New params. 29106 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New. 29107 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise. 29108 * tree-switch-conversion.c (jump_table_cluster::can_be_handled): 29109 Use it. 29110 * tree-switch-conversion.h (struct jump_table_cluster): 29111 Likewise. 29112 291132019-05-09 Segher Boessenkool <segher@kernel.crashing.org> 29114 29115 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL. 29116 291172019-05-09 Bill Schmidt <wschmidt@linux.ibm.com> 29118 29119 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK. 29120 291212019-05-09 Alexander Monakov <amonakov@ispras.ru> 29122 29123 PR rtl-optimization/88879 29124 * sel-sched.c (sel_target_adjust_priority): Remove assert. 29125 291262019-05-09 Richard Earnshaw <rearnsha@arm.com> 29127 29128 PR target/90405 29129 * config/arm/arm.c (callee_saved_reg_p): Move before 29130 thumb_find_work_register. 29131 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before 29132 thumb_find_work_register. Only call df_get_live_out once. 29133 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise. 29134 (thumb_find_work_register): Use 29135 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc 29136 algorithms to locate a spare call clobbered reg. 29137 291382019-05-09 Martin Liska <mliska@suse.cz> 29139 29140 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR 29141 and MAX_EXPR in GIMPLE FE format. 29142 291432019-05-09 Martin Liska <mliska@suse.cz> 29144 29145 * tree-cfg.c (dump_function_to_file): Dump entry BB count. 29146 * gimple-pretty-print.c (dump_gimple_bb_header): 29147 Dump BB count. 29148 (pp_cfg_jump): Dump edge probability. 29149 * profile-count.c (profile_quality_as_string): Simplify 29150 with a static array. 29151 (parse_profile_quality): New function. 29152 (profile_count::dump): Simplify with a static array. 29153 (profile_count::from_gcov_type): Add new argument. 29154 * profile-count.h (parse_profile_quality): Likewise. 29155 * predict.h (set_hot_bb_threshold): New. 29156 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD): 29157 New param. 29158 * predict.c (get_hot_bb_threshold): Set from the new param. 29159 (set_hot_bb_threshold): New. 29160 291612019-05-09 Richard Biener <rguenther@suse.de> 29162 29163 PR tree-optimization/90395 29164 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not 29165 rewrite vector stores that throw internally. 29166 291672019-05-09 Thomas Schwinge <thomas@codesourcery.com> 29168 29169 * cif-code.def (CHKP): Remove. 29170 29171 PR target/89221 29172 * configure.ac (--enable-frame-pointer): Disable by default for 29173 GNU systems. 29174 * configure: Regenerate. 29175 291762019-05-09 Alan Modra <amodra@gmail.com> 29177 29178 PR target/89271 29179 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES), 29180 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class. 29181 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct 29182 cost for general <-> vsx when direct moves are available. 29183 Cost union classes at minimal cost for any reg in the class. 29184 Correct calculation for moves between vsx, float, and altivec. 29185 Don't return a low cost for moves between special regs. Don't 29186 use hard coded register numbers. 29187 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define. 29188 (rs6000_ira_change_pseudo_allocno_class): New function. 29189 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal), 29190 (movdi_internal32, movdi_internal64): Remove '*' from vsx register 29191 alternatives. 29192 (movsi_internal1): Don't disparage vector alternatives. 29193 (mov<mode>_internal): Likewise, excepting alternative that 29194 will be split. 29195 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage 29196 we <- b alternative. 29197 291982019-05-08 Jakub Jelinek <jakub@redhat.com> 29199 29200 PR c++/59813 29201 PR tree-optimization/89060 29202 * tree-ssa-live.h (live_vars_map): New typedef. 29203 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare. 29204 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h. 29205 (struct compute_live_vars_data): New type. 29206 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars, 29207 live_vars_at_stmt, destroy_live_vars): New functions. 29208 * tree-tailcall.c: Include tree-ssa-live.h. 29209 (live_vars, live_vars_vec): New global variables. 29210 (find_tail_calls): Perform variable life analysis before punting. 29211 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec. 29212 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest 29213 member. 29214 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument. 29215 Perform variable life analysis to select variables that really need 29216 clobbers added. 29217 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here, 29218 instead set id->eh_landing_pad_dest and assert it is the same. 29219 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL. 29220 292212019-05-08 Mihail Ionescu <mihail.ionescu@arm.com> 29222 Richard Earnshaw <rearnsha@arm.com> 29223 29224 PR target/88167 29225 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New 29226 function. 29227 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function. 29228 (thumb1_compute_save_core_reg_mask): Don't force a spare work 29229 register if both the epilogue and prologue can use call-clobbered 29230 regs. 29231 (thumb1_unexpanded_epilogue): Use 29232 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for 29233 picking temporaries for restoring high regs to match that of the 29234 prologue where possible. 29235 (thumb1_expand_prologue): Add any usable call-clobbered low registers to 29236 the list of work registers. Detect if the return address is still live 29237 at the end of the prologue and avoid using it for a work register if so. 29238 If the return address is not live, add LR to the list of pushable regs 29239 after the first pass. 29240 292412019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com> 29242 29243 PR tree-optimization/90078 29244 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file. 29245 (INFTY): Increase the value for infinite cost. 29246 (struct comp_cost): Promote type of members to int64_t. 29247 (infinite_cost): Don't set complexity in initialization. 29248 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation 29249 overflows to infinite_cost. 29250 (adjust_setup_cost): Promote type of parameter and cost computation 29251 to int64_t. 29252 (struct ainc_cost_data, struct iv_ca): Promote type of member to 29253 int64_t. 29254 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of 29255 cost computation to int64_t. 29256 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use 29257 int64_t's format specifier in dump. 29258 292592019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com> 29260 29261 PR tree-optimization/90240 29262 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost 29263 with respect to scaling factor pre-computed for each basic block. 29264 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost. 29265 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost. 29266 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New. 29267 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend 29268 live range for array of loop's basic blocks. Cleanup aux field of 29269 loop's basic blocks. 29270 292712019-05-08 Jakub Jelinek <jakub@redhat.com> 29272 29273 PR tree-optimization/90356 29274 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible. 29275 292762019-05-07 Wei Xiao <wei3.xiao@intel.com> 29277 29278 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET 29279 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New. 29280 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET. 29281 (ix86_handle_option): Handle -mavx512bf16. 29282 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h 29283 to extra_headers. 29284 * config/i386/avx512bf16vlintrin.h: New. 29285 * config/i386/avx512bf16intrin.h: New. 29286 * config/i386/cpuid.h (bit_AVX512BF16): New. 29287 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16. 29288 * config/i386/i386-builtin-types.def: Add new types. 29289 * config/i386/i386-builtin.def: Add new builtins. 29290 * config/i386/i386-c.c (ix86_target_macros_internal): Define 29291 __AVX512BF16__. 29292 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16. 29293 (ix86_option_override_internal): Handle BF16. 29294 (ix86_valid_target_attribute_inner_p): Ditto. 29295 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto. 29296 * config/i386/i386-builtin.c (enum processor_features): Add 29297 F_AVX512BF16. 29298 (static const _isa_names_table isa_names_table): Ditto. 29299 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New. 29300 (PTA_AVX512BF16): Ditto. 29301 * config/i386/i386.opt: Add -mavx512bf16. 29302 * config/i386/immintrin.h: Include avx512bf16intrin.h 29303 and avx512bf16vlintrin.h. 29304 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>, 29305 avx512f_cvtneps2bf16_<mode><mask_name>, 29306 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns. 29307 * config/i386/subst.md (mask_half): Add new subst. 29308 * doc/invoke.texi: Document -mavx512bf16. 29309 293102019-05-07 Segher Boessenkool <segher@kernel.crashing.org> 29311 29312 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr): 29313 Delete declaration. 29314 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete. 29315 (rs6000_debug_legitimize_reload_address): Delete. 29316 (rs6000_legitimize_reload_address_ptr): Delete. 29317 (rs6000_option_override_internal): Adjust. 29318 (mem_operand_gpr): Adjust comment. 29319 (legitimate_lo_sum_address_p): Ditto. 29320 (rs6000_legitimize_reload_address): Delete. 29321 (rs6000_debug_legitimize_reload_address): Delete. 29322 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete. 29323 293242019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org> 29325 29326 PR target/89765 29327 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 29328 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic 29329 to compute vector element selector for both constant and variable 29330 operands. 29331 293322019-05-07 Uroš Bizjak <ubizjak@gmail.com> 29333 29334 * config/i386/i386.md (cvt_mnemonic): New mode attribute. 29335 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and 29336 ashrdi3_cvt using SWI48 mode iterator. 29337 293382019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com> 29339 29340 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand. 29341 (aarch64_<su>abd<mode>_3): Likewise. 29342 (*aarch64_<su>abd<mode>_3): New define_insn. 29343 (<sur>sad<vsi2qi>): New define_expand. 29344 * config/aarch64/iterators.md: Added MAX_OPP attribute. 29345 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR. 29346 (build_vect_cond_expr): Likewise. 29347 293482019-05-07 Uroš Bizjak <ubizjak@gmail.com> 29349 29350 * cfgexpand.c (asm_clobber_reg_is_valid): Reject 29351 clobbers outside of accessible_reg_set. 29352 * config/i386/i386.c (ix86_conditional_register_usage): 29353 Disable register sets by clearing corresponding bits in 29354 accessible_reg_set. Do not set corresponding bits in fixed_regs, 29355 call_used_regs and don't clear corresponding reg_names array members. 29356 293572019-05-07 Richard Biener <rguenther@suse.de> 29358 29359 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is 29360 not specified still compute a comp_vectype for invariant 29361 compares. 29362 293632019-05-07 Richard Biener <rguenther@suse.de> 29364 29365 PR tree-optimization/90316 29366 * tree-ssa-pre.c (translate_vuse_through_block): When 29367 same_valid is NULL do not bother to search for a virtual 29368 PHI continuation. 29369 (phi_translate_1): When operands changed we cannot keep 29370 the same value-number so do not bother to ask whether 29371 that's possible from translate_vuse_through_block. 29372 293732019-05-07 Martin Liska <mliska@suse.cz> 29374 29375 * bitmap.c (bitmap_register): Come up with 29376 alloc_descriptor_max_uid and assign it for 29377 a new bitmap. 29378 (register_overhead): Use get_descriptor as 29379 a descriptor. 29380 (release_overhead): New. 29381 (bitmap_elem_to_freelist): Call it. 29382 (bitmap_elt_clear_from): Likewise. 29383 (bitmap_obstack_free): Likewise. 29384 (bitmap_move): Sensitively release memory. 29385 * bitmap.h (struct GTY): Add alloc_descriptor and padding. 29386 (bitmap_initialize): Initialize alloc_descriptor to zero. 29387 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move. 29388 293892019-05-07 Richard Biener <rguenther@suse.de> 29390 29391 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever 29392 we build a SLP node. Remove max_size and limiting. 29393 (vect_analyze_slp_instance): Record and dump size of the SLP graph. 29394 293952019-05-07 Richard Biener <rguenther@suse.de> 29396 29397 PR tree-optimization/90316 29398 * tree-ssa-alias.h (get_continuation_for_phi): Take walking 29399 limit by reference. 29400 (walk_non_aliased_vuses): Take walking limit argument. 29401 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort 29402 walking if it is reached instead of just counting. 29403 (get_continuation_for_phi): Likewise. 29404 (walk_non_aliased_vuses): Likewise, instead of leaving counter 29405 limiting to the callback. 29406 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust. 29407 (vn_reference_lookup_3): Likewise. 29408 (vn_reference_lookup_pieces): Likewise. 29409 (vn_reference_lookup): Likewise. 29410 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking. 29411 * tree-ssa-scopedtables.c (vuse_eq): Adjust. 29412 (avail_exprs_stack::lookup_avail_expr): Likewise. 29413 294142019-05-07 Jan Hubicka <hubicka@ucw.cz> 29415 29416 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking 29417 for comparaible types in the second direction even if first one 29418 hits incomparable type. 29419 294202019-05-07 Richard Biener <rguenther@suse.de> 29421 29422 PR lto/90369 29423 * lto-wrapper.c (debug_objcopy): Use the original filename 29424 including archive offset for the filename used for -save-temps. 29425 294262019-05-07 Li Jia He <helijia@linux.ibm.com> 29427 29428 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter 29429 detection. 29430 294312019-05-06 H.J. Lu <hongjiu.lu@intel.com> 29432 Hongtao Liu <hongtao.liu@intel.com> 29433 29434 PR target/89750 29435 PR target/86444 29436 * config/i386/i386-expand.c (ix86_expand_sse_comi_round): 29437 Modified, original implementation isn't correct. 29438 294392019-05-06 Segher Boessenkool <segher@kernel.crashing.org> 29440 29441 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO) 29442 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO) 29443 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO) 29444 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO) 29445 (FRAME_POINTER_REGNUM): Change numbering. 29446 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust. 29447 (alt_reg_names): Adjust. 29448 (rs6000_conditional_register_usage): Don't mark hard register 64 as 29449 fixed. 29450 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. 29451 (DWARF_FRAME_REGISTERS): Delete. 29452 (DWARF2_FRAME_REG_OUT): Fix whitespace. 29453 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): 29454 Adjust. 29455 (REG_ALLOC_ORDER): Adjust. 29456 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust. 29457 (REG_CLASS_CONTENTS): Adjust. 29458 (RETURN_ADDR_RTX): Change comment. 29459 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM 29460 instead of 67. 29461 (REGISTER_NAMES): Adjust. 29462 (ADDITIONAL_REGISTER_NAMES): Adjust. 29463 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. 29464 294652019-05-06 Segher Boessenkool <segher@kernel.crashing.org> 29466 29467 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): 29468 Delete. 29469 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. 29470 (DWARF_FRAME_REGISTERS): Adjust. 29471 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): 29472 Adjust. 29473 (REG_ALLOC_ORDER): Adjust. 29474 (enum reg_class): Delete SPR_REGS. 29475 (REG_CLASS_NAMES): Delete SPR_REGS. 29476 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs. 29477 (REGISTER_NAMES): Adjust. 29478 (ADDITIONAL_REGISTER_NAMES): Adjust. 29479 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. 29480 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust. 29481 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete. 29482 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust. 29483 (htm_spr_regno): Delete. 29484 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer 29485 argument. 29486 (rs6000_dbx_register_number): Adjust. 29487 294882019-05-06 Segher Boessenkool <segher@kernel.crashing.org> 29489 29490 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete. 29491 294922019-05-06 Segher Boessenkool <segher@kernel.crashing.org> 29493 29494 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle 29495 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ). 29496 294972019-05-06 Jakub Jelinek <jakub@redhat.com> 29498 29499 PR tree-optimization/88709 29500 PR tree-optimization/90271 29501 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter. 29502 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle 29503 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int 29504 variable. 29505 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size 29506 of the store merging group is larger than 29507 PARAM_STORE_MERGING_MAX_SIZE parameter. 29508 (split_group): Add bzero_first argument. If set, always emit first 29509 the first store which must be = {} of the whole area and then for the 29510 rest of the stores consider all zero bytes as paddings. 29511 (imm_store_chain_info::output_merged_store): Check if first store 29512 is = {} of the whole area and if yes, determine which setting of 29513 bzero_first for split_group gives smaller number of stores. Adjust 29514 split_group callers. 29515 (lhs_valid_for_store_merging_p): Allow decls. 29516 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with 29517 no elts. 29518 (pass_store_merging::process_store): Likewise. 29519 295202019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org> 29521 29522 PR target/89424 29523 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add 29524 handling of V1TImode. 29525 295262019-05-06 Uroš Bizjak <ubizjak@gmail.com> 29527 29528 PR target/89221 29529 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld 29530 and enable_frame_pointer ... 29531 * configure.ac: ... here. Update help strings for 29532 --enable-frame-pointer. 29533 * configure: Regenerate. 29534 * config/i386/i386-options.c (ix86_option_override_internal): Remove 29535 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead. 29536 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove. 29537 (USE_X86_64_FRAME_POINTER): Ditto. 29538 295392019-05-06 Martin Liska <mliska@suse.cz> 29540 29541 * config.gcc: Append to target_gtfiles and fix indentation. 29542 295432019-05-06 Richard Biener <rguenther@suse.de> 29544 29545 PR tree-optimization/90358 29546 * tree-vect-stmts.c (get_group_load_store_type): Properly 29547 detect unused upper half of load. 29548 (vectorizable_load): Likewise. 29549 295502019-05-06 Richard Biener <rguenther@suse.de> 29551 29552 PR tree-optimization/88828 29553 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from... 29554 (simplify_vector_constructor): ...here. Handle constants in 29555 the constructor. 29556 295572019-05-06 Richard Biener <rguenther@suse.de> 29558 29559 PR tree-optimization/90328 29560 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest. 29561 * tree-data-ref.c (dr_may_alias_p): Check whether the clique 29562 is valid in the loop nest before using it. 29563 (initialize_data_dependence_relation): Adjust. 29564 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing 29565 loop as loop-nest to dr_may_alias_p. 29566 295672019-05-06 Richard Biener <rguenther@suse.de> 29568 29569 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode. 29570 295712019-05-06 Richard Biener <rguenther@suse.de> 29572 29573 PR tree-optimization/90316 29574 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB, 29575 compute target on demand. 29576 (get_continuation_for_phi): Remove code walking stmts to 29577 get to a target virtual operand which could end up being 29578 quadratic. 29579 295802019-05-06 Martin Liska <mliska@suse.cz> 29581 29582 PR sanitizer/90312 29583 * config/i386/i386-options.c (ix86_option_override_internal): Error only 29584 when -mabi is selected to a non-default version. 29585 295862019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com> 29587 Martin Liska <mliska@suse.cz> 29588 29589 * Makefile.in: Add lto-dump.texi. 29590 * cgraph.h: Add new functions get_visibility_string and 29591 get_symtab_type_string. 29592 * doc/gcc.texi: Include lto-dump section. 29593 * doc/lto-dump.texi: New file. 29594 * dumpfile.c (dump_switch_p_1): Use parse_dump_option. 29595 (parse_dump_option): Factor out this function. 29596 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR. 29597 (parse_dump_option): Export the function. 29598 * symtab.c (symtab_node::get_visibility_string): New function. 29599 (symtab_node::get_symtab_type_string): Likewise. 29600 296012019-05-06 Martin Liska <mliska@suse.cz> 29602 29603 * config/i386/i386-builtins.c: New file. 29604 * config/i386/i386-builtins.h: New file. 29605 * config/i386/i386-expand.c: New file. 29606 * config/i386/i386-expand.h: New file. 29607 * config/i386/i386-features.c: New file. 29608 * config/i386/i386-features.h: New file. 29609 * config/i386/i386-options.c: New file. 29610 * config/i386/i386-options.h: New file. 29611 * config.gcc: Add new files into extra_objs and 29612 target_gtfiles. 29613 * config/i386/i386.c: Split content of the file 29614 into newly introduced files. 29615 * config/i386/i386.h: Declare common variables 29616 and macros. 29617 * config/i386/t-i386: Define dependencies for new files. 29618 296192019-05-03 Richard Earnshaw <rearnsha@arm.com> 29620 29621 PR target/89400 29622 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1. 29623 Restrict 'all' variant to 32-bit configurations. 29624 (unaligned_loadhiu): Likewise. 29625 (unaligned_storehi): Likewise. 29626 (unaligned_storesi): Likewise. 29627 (unaligned_loadhis): Disable when compiling for thumb1. 29628 296292019-05-03 Marc Glisse <marc.glisse@inria.fr> 29630 29631 PR tree-optimization/90269 29632 * tree-loop-distribution.c (find_seed_stmts_for_distribution): 29633 Ignore clobbers. 29634 296352019-05-03 Martin Liska <mliska@suse.cz> 29636 29637 * hash-map.h: Add is_empty function. 29638 * hash-set.h: Likewise. 29639 * hash-table.h: Likewise. 29640 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of 29641 elements () == 0 (and similar usages). 29642 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise. 29643 * gimplify.c (gimplify_bind_expr): Likewise. 29644 (gimplify_switch_expr): Likewise. 29645 * hash-map-tests.c (test_map_of_strings_to_int): Likewise. 29646 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise. 29647 * postreload-gcse.c (dump_hash_table): Likewise. 29648 (gcse_after_reload_main): Likewise. 29649 * predict.c (combine_predictions_for_bb): Likewise. 29650 * tree-parloops.c (reduction_phi): Likewise. 29651 (separate_decls_in_region): Likewise. 29652 (transform_to_exit_first_loop): Likewise. 29653 (gen_parallel_loop): Likewise. 29654 (gather_scalar_reductions): Likewise. 29655 (try_create_reduction_list): Likewise. 29656 * var-tracking.c (dump_vars): Likewise. 29657 (emit_notes_for_changes): Likewise. 29658 (vt_emit_notes): Likewise. 29659 296602019-05-03 Richard Biener <rguenther@suse.de> 29661 29662 PR tree-optimization/90316 29663 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries 29664 before running VN. 29665 296662019-05-03 Richard Biener <rguenther@suse.de> 29667 29668 * tree-vect-stmts.c (get_group_load_store_type): Avoid 29669 peeling for gaps by loading only lower halves of vectors 29670 if possible. 29671 (vectorizable_load): Likewise. 29672 296732019-05-03 Richard Biener <rguenther@suse.de> 29674 29675 PR middle-end/89518 29676 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A. 29677 296782019-05-03 Richard Biener <rguenther@suse.de> 29679 29680 PR middle-end/87314 29681 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): 29682 Handle STRING_CST vs DECL or STRING_CST. 29683 296842019-05-03 Richard Biener <rguenther@suse.de> 29685 29686 PR tree-optimization/88963 29687 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite 29688 vector loads feeding only BIT_FIELD_REFs to component 29689 loads. Rewrite stores fed by CONSTRUCTORs to component 29690 stores. 29691 296922019-05-03 Jakub Jelinek <jakub@redhat.com> 29693 29694 * opts.h (finish_options): Remove lang_mask argument. 29695 (print_help, help_option_argument): Declare. 29696 * opts.c (print_help): Remove forward declaration, no longer static. 29697 (finish_options): Remove lang_mask argument, don't call print_help 29698 here. 29699 * opts-global.c (decode_options): Adjust finish_option caller, call 29700 print_help here. 29701 29702 PR tree-optimization/90303 29703 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use 29704 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode. 29705 297062019-05-03 Richard Biener <rguenther@suse.de> 29707 29708 PR tree-optimization/89698 29709 * gimple-fold.c (canonicalize_constructor_val): Early out 29710 for constants, handle unfolded INTEGER_CSTs as they appear in 29711 C++ virtual table ctors. 29712 297132019-05-03 Richard Biener <rguenther@suse.de> 29714 29715 * passes.c (execute_function_todo): Remove dead code. 29716 297172019-05-02 Segher Boessenkool <segher@kernel.crashing.org> 29718 29719 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use 29720 the internal register number, for any "real" register. 29721 297222019-05-02 Segher Boessenkool <segher@kernel.crashing.org> 29723 29724 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the 29725 correct numbers for TFHAR, TFIAR, TEXASR. 29726 297272019-05-02 Richard Biener <rguenther@suse.de> 29728 29729 PR tree-optimization/89653 29730 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute 29731 update-address-taken before the pass. 29732 * passes.def (pass_tree_loop_init): Put comment before it. 29733 297342019-05-02 Richard Biener <rguenther@suse.de> 29735 29736 PR tree-optimization/89509 29737 * tree-ssa-structalias.c (compute_dependence_clique): Look 29738 at the first subvar when determining whether it is restrict. 29739 297402019-05-02 Richard Biener <rguenther@suse.de> 29741 29742 PR tree-optimization/90273 29743 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate 29744 useless debug stmts. 29745 297462019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com> 29747 29748 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE 29749 ACLE branch. 29750 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from 29751 SVE ACLE branch. 29752 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a 29753 VEC_COND_EXPR be inserted to emulate a conditional internal function. 29754 (build_vect_cond_expr): Emit the VEC_COND_EXPR. 29755 (vectorizable_reduction): Use the functions above to vectorize in a 29756 fully masked loop codes that don't have a conditional internal 29757 function. 29758 297592019-05-02 Martin Liska <mliska@suse.cz> 29760 29761 * cgraphclones.c: Call valid_attribute_p with 1 for 29762 target_clone. 29763 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as 29764 it's for target attribute. 29765 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): 29766 Add new boolean argument. 29767 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): 29768 Likewise. 29769 (ix86_valid_target_attribute_tree): Pass target_clone_attr 29770 to ix86_valid_target_attribute_inner_p. 29771 (ix86_valid_target_attribute_p): Pass flags argument to 29772 ix86_valid_target_attribute_inner_p. 29773 (get_builtin_code_for_version): Use 0 as it's target attribute. 29774 297752019-05-02 Martin Liska <mliska@suse.cz> 29776 29777 * gcc.c (process_command): Add dummy file only 29778 if n_infiles == 0. 29779 * opts-global.c (decode_options): Pass lang_mask. 29780 * opts.c (print_help): New function. 29781 (finish_options): Print --help if help_option_argument 29782 is set. 29783 (common_handle_option): Factor out content of OPT__help_ 29784 into print_help. 29785 * opts.h (finish_options): Add new argument. 29786 297872019-05-02 Martin Liska <mliska@suse.cz> 29788 29789 PR target/88809 29790 * config/i386/i386.c (ix86_expand_strlen): Use strlen call. 29791 With -minline-all-stringops use inline expansion using 4B loop. 29792 * doc/invoke.texi: Document the change of 29793 -minline-all-stringops. 29794 297952019-05-01 Jeff Law <law@redhat.com> 29796 29797 PR tree-optimization/88797 29798 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the 29799 PHI feeds a conditional on the RHS of an assignment. 29800 298012019-04-30 Andrew Waterman <andrew@sifive.com> 29802 Jim Wilson <jimw@sifive.com> 29803 29804 * config/riscv/constraints.md (L): New. 29805 * config/riscv/predicates.md (lui_operand): New. 29806 (sfb_alu_operand): New. 29807 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare. 29808 * config/riscv/riscv.c (riscv_expand_conditional_move): New. 29809 * config/riscv/riscv.h (TARGET_SFB_ALU): New. 29810 * config/riscv/risc.md (type): Add sfb_alu. 29811 (branch<mode>): Renamed from branch_order<mode>. Change predicate for 29812 operand 3 to reg_or_0_operand. In output string, change %3 to %z3. 29813 (branch_zero<mode>): Delete. 29814 (mov<mode>cc): New. 29815 (mov<GPR:mode><X:mode>cc): Likewise. 29816 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses. 29817 298182019-04-30 Nathan Sidwell <nathan@acm.org> 29819 29820 * tree.h (MARK_TS_EXP): New. 29821 298222019-04-30 Martin Liska <mliska@suse.cz> 29823 29824 * opts.c (enable_warning_as_error): Provide hints 29825 for unknown options. 29826 298272019-04-30 Martin Liska <mliska@suse.cz> 29828 29829 PR debug/90288 29830 * doc/invoke.texi: Add missing dash for gas-locview-support 29831 and gno-as-locview-support. 29832 298332019-04-30 Jakub Jelinek <jakub@redhat.com> 29834 29835 PR target/89093 29836 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip 29837 whitespace at the start of target attribute string. 29838 298392019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 29840 29841 PR target/86538 29842 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 29843 Define __ARM_FEATURE_ATOMICS. 29844 298452019-04-30 Martin Liska <mliska@suse.cz> 29846 29847 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp 29848 into built_in_function enum. Remove code for endp == 2 and 29849 use BUILT_IN_* constants. 29850 (gimple_fold_builtin): Call the function with fcode. 29851 298522019-04-30 Martin Liska <mliska@suse.cz> 29853 29854 * config/i386/i386.c (ix86_builtin_reciprocal): Cast 29855 DECL_FUNCTION_CODE into ix86_builtins enum before 29856 the switch statement. 29857 298582019-04-30 Jakub Jelinek <jakub@redhat.com> 29859 29860 PR tree-optimization/89475 29861 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64} 29862 calls. 29863 298642019-04-30 Martin Liska <mliska@suse.cz> 29865 29866 PR translation/90274 29867 * opts.c (print_filtered_help): Wrap string in _(...). 29868 298692019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com> 29870 29871 PR tree-optimization/90240 29872 Revert: 29873 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> 29874 29875 PR tree-optimization/90078 29876 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add 29877 checks for infinite_cost overflow. 29878 298792019-04-29 Jeff Law <law@redhat.com> 29880 29881 * passes.def: Move -Wrestrict pass after copy propagation. 29882 298832019-04-29 Maya Rashish <coypu@sdf.org> 29884 29885 * config.gcc (default_gnu_indirect_function): Default to yes 29886 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*, 29887 sparc*-*-netbsd*, x86_64-*-netbsd*. 29888 298892019-04-29 Vladislav Ivanishin <vlad@ispras.ru> 29890 29891 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases 29892 where cond2 is NE_EXPR. 29893 (is_value_included_in): Update comment. 29894 298952019-04-29 Richard Biener <rguenther@suse.de> 29896 29897 PR tree-optimization/90278 29898 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean 29899 EH on comparison simplification. 29900 299012019-04-29 Jason Merrill <jason@redhat.com> 29902 29903 PR c++/82081 - tail call optimization breaks noexcept 29904 * tree-tailcall.c (find_tail_calls): Don't turn a call from a 29905 nothrow function to a might-throw function into a tail call. 29906 299072019-04-29 Richard Sandiford <richard.sandiford@arm.com> 29908 29909 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete. 29910 (DDR_INNER_LOOP): Likewise. 29911 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly. 29912 (initialize_data_dependence_relation): Likewise. 29913 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP. 29914 299152019-04-29 Jakub Jelinek <jakub@redhat.com> 29916 29917 PR rtl-optimization/90257 29918 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function 29919 return value. 29920 29921 Revert the revert: 29922 2019-04-21 H.J. Lu <hongjiu.lu@intel.com> 29923 29924 PR target/90178 29925 Revert: 29926 2018-11-21 Uros Bizjak <ubizjak@gmail.com> 29927 29928 Revert the revert: 29929 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> 29930 29931 Revert: 29932 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> 29933 29934 * lra-spills.c (lra_final_code_change): Remove useless move insns. 29935 299362019-04-29 Richard Biener <rguenther@suse.de> 29937 29938 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER} 29939 rhs issue a reset. 29940 299412019-04-27 Iain Buclaw <ibuclaw@gdcproject.org> 29942 29943 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h, 29944 varasm.h, and netbsd-protos.h. 29945 299462019-04-27 Uroš Bizjak <ubizjak@gmail.com> 29947 29948 PR target/89261 29949 * config/i386/i386-protos.h (ix86_data_alignment): Change 29950 the second argument type to unsigned int. 29951 * config/i386/i386.c (ix86_data_alignment): Change "align" 29952 argument type to unsigned int. 29953 299542019-04-27 Martin Liska <mliska@suse.cz> 29955 29956 PR middle-end/90258 29957 * opt-suggestions.c (option_proposer::build_option_suggestions): 29958 When get_valid_option_values returns empty values, add the 29959 misspelling candidate. 29960 299612019-04-26 Jim Wilson <jimw@sifive.com> 29962 29963 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode 29964 parameter. 29965 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode. 29966 Pass orig_mode to riscv_build_integer. 29967 (riscv_split_integer): Pass mode to riscv_move_integer. 29968 (riscv_legitimize_const_move): Likewise. 29969 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local 29970 promoted_mode. Replace force_reg call with code to load constant into 29971 promoted reg and then subreg it for the store. 29972 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to 29973 riscv_move_integer. 29974 299752018-04-26 Eugene Sharygin <eush@ispras.ru> 29976 29977 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with 29978 corrupt codes. 29979 299802019-04-26 Richard Sandiford <richard.sandiford@arm.com> 29981 29982 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add 29983 commentary about the encoding of precision. 29984 299852019-04-25 Andreas Tobler <andreast@gcc.gnu.org> 29986 29987 * config/i386/freebsd64.h: Add bits for 32-bit multilib support. 29988 * config/i386/t-freebsd64: New file. 29989 * config.gcc: Add the t-freebsd64 for multilib support. 29990 299912019-04-25 Uroš Bizjak <ubizjak@gmail.com> 29992 29993 * doc/extend.texi (vector_size): Add missing comma after @xref. 29994 299952019-04-25 Jakub Jelinek <jakub@redhat.com> 29996 29997 * BASE-VER: Set to 10.0.0. 29998 299992019-04-25 Richard Biener <rguenther@suse.de> 30000 30001 PR middle-end/89765 30002 * gimplify.c (gimplify_expr): Avoid turning a lvalue 30003 VIEW_CONVERT_EXPR into one operating on an rvalue. 30004 300052019-04-25 H.J. Lu <hongjiu.lu@intel.com> 30006 30007 PR target/89929 30008 * config/i386/i386.c (feature_priority): Moved to file scope. 30009 (processor_features): Likewise. 30010 (processor_model): Likewise. 30011 (_arch_names_table): Likewise. 30012 (arch_names_table): Likewise. 30013 (_feature_list): Removed. 30014 (feature_list): Likewise. 30015 (_isa_names_table): Moved to file scope. Add priority. 30016 (isa_names_table): Likewise. 30017 (get_builtin_code_for_version): Replace feature_list with 30018 isa_names_table. Update error message for P_ZERO priority. 30019 300202019-04-25 Richard Biener <rguenther@suse.de> 30021 30022 * tree-pass.h (make_pass_phi_only_cprop): Remove. 30023 * timevar.def (TV_TREE_PHI_CPROP): Likewise. 30024 300252019-04-24 Jeff Law <law@redhat.com> 30026 30027 PR tree-optimization/90037 30028 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c 30029 * passes.def: Replace all instance of phi-only cprop with the 30030 lattice propagator. Move propagation pass from after erroneous 30031 path isolation to before erroneous path isolation. 30032 * tree-ssa-phionlycprop.c: Remove. 30033 300342019-04-24 Richard Biener <rguenther@suse.de> 30035 30036 PR middle-end/90213 30037 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication 30038 by size and BITS_PER_UNIT on poly-wide-ints. 30039 300402019-04-25 Richard Biener <rguenther@suse.de> 30041 30042 PR middle-end/90194 30043 * match.pd: Add pattern to simplify view-conversion of an 30044 empty constructor. 30045 300462019-04-24 Clement Chigot <clement.chigot@atos.net> 30047 30048 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable 30049 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags 30050 for Go on 32 bit AIX. 30051 * config/rs6000/aix72.h: Likewise. 30052 300532019-04-24 Jakub Jelinek <jakub@redhat.com> 30054 30055 PR target/90193 30056 * rtl.c (classify_insn): Return JUMP_INSN for asm goto. 30057 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET. 30058 300592019-04-24 Andreas Krebbel <krebbel@linux.ibm.com> 30060 30061 PR target/89952 30062 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs 30063 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also 30064 for restored hard frame pointer. 30065 (s390_sched_dependencies_evaluation): Implement new target hook. 30066 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition. 30067 300682019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com> 30069 30070 * config/arc/arc-options.def: Fix typos and spelling mistakes. 30071 * config/arc/arc.c (arc_init): Cleanup warning message. 30072 (arc_override_options): Likewise. 30073 300742019-04-24 Jakub Jelinek <jakub@redhat.com> 30075 30076 PR target/90187 30077 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into 30078 a register if both if_true and if_false are MEMs. 30079 30080 PR tree-optimization/90208 30081 * tree-cfg.c (remove_bb): Move forced labels from removed bbs 30082 after labels of new_bb, not before them. 30083 30084 PR tree-optimization/90211 30085 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments 30086 which are not SSA_NAMEs. 30087 300882018-04-23 Sudakshina Das <sudi.das@arm.com> 30089 30090 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for 30091 AArch64. 30092 (aarch64_file_end_indicate_exec_stack): Add gnu note section. 30093 300942019-04-23 Roman Zhuykov <zhroma@ispras.ru> 30095 30096 PR rtl-optimization/87979 30097 * modulo-sched.c (sms_schedule): Start ii value "mii" should 30098 not equal zero. 30099 301002019-04-23 Roman Zhuykov <zhroma@ispras.ru> 30101 30102 PR rtl-optimization/84032 30103 * modulo-sched.c (ps_insn_find_column): Change condition so that 30104 branch will always be the last insn in a row inside partial 30105 schedule. 30106 301072019-04-23 Richard Biener <rguenther@suse.de> 30108 30109 PR debug/90131 30110 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add 30111 dest_single_pred_p argument. 30112 (remove_forwarder_block): Adjust. 30113 (remove_forwarder_block_with_phi): Likewise. 30114 301152019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 30116 Bernd Edlinger <bernd.edlinger@hotmail.de> 30117 Jakub Jelinek <jakub@redhat.com> 30118 30119 PR target/89093 30120 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose 30121 if used with general-regs-only. 30122 (arm_conditional_register_usage): Don't add non-general regs if 30123 general-regs-only. 30124 (arm_valid_target_attribute_rec): Handle general-regs-only. 30125 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if 30126 general-regs-only. 30127 (TARGET_HARD_FLOAT_SUB): Define. 30128 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB. 30129 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY. 30130 (TARGET_REALLY_IWMMXT2): Likewise. 30131 * config/arm/arm.opt: Add -mgeneral-regs-only. 30132 * doc/extend.texi: Document ARM general-regs-only target. 30133 * doc/invoke.texi: Document ARM -mgeneral-regs-only. 30134 301352019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> 30136 30137 PR tree-optimization/90078 30138 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add 30139 checks for infinite_cost overflow. 30140 301412019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> 30142 30143 PR tree-optimization/90021 30144 * tree-chrec.c (evolution_function_is_univariate_p): New parameter 30145 and check univariate against it. 30146 * tree-chrec.h (evolution_function_is_univariate_p): New parameter. 30147 * tree-data-ref.c (add_other_self_distances): Pass new argument. 30148 301492019-04-21 H.J. Lu <hongjiu.lu@intel.com> 30150 30151 PR target/90178 30152 Revert: 30153 2018-11-21 Uros Bizjak <ubizjak@gmail.com> 30154 30155 Revert the revert: 30156 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> 30157 30158 Revert: 30159 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> 30160 30161 * lra-spills.c (lra_final_code_change): Remove useless move insns. 30162 301632019-04-21 Iain Sandoe <iain@sandoe.co.uk> 30164 30165 * config/rs6000/rs6000.md (group_end_nop): Emit insn register 30166 names using operand format, rather than hard-wired. 30167 (speculation_barrier): Likewise. 30168 301692019-04-19 Segher Boessenkool <segher@kernel.crashing.org> 30170 30171 PR tree-optimization/88055 30172 * tree-call-cdce.c (comparison_code_if_no_nans): New function. 30173 (gen_one_condition): Use it if !HONOR_NANS. 30174 301752019-04-19 Jakub Jelinek <jakub@redhat.com> 30176 30177 PR middle-end/90139 30178 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return 30179 assign_temp instead of gen_reg_rtx. 30180 301812019-04-19 Christophe Lyon <christophe.lyon@linaro.org> 30182 30183 PR translation/90118 30184 * config/aarch64/aarch64.c (aarch64_override_options_internal): 30185 Add missing space before %<. 30186 301872019-04-18 Peter Bergner <bergner@linux.ibm.com> 30188 30189 PR rtl-optimization/87871 30190 * ira-lives.c (make_object_dead): Don't add conflicts to 30191 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts. 30192 301932019-04-18 Martin Sebor <msebor@redhat.com> 30194 30195 PR middle-end/89797 30196 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U. 30197 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid 30198 assuming type size fits in SHWI. 30199 302002019-04-18 Jan Hubicka <hubicka@ucw.cz> 30201 30202 PR ipa/85051 30203 * ipa-inline.c (flatten_function): New parameter UPDATE. 30204 (ipa_inline, early_inliner): Use it. 30205 302062019-04-18 Richard Sandiford <richard.sandiford@arm.com> 30207 30208 * fold-const.c (int_const_binop): Return early on failure. 30209 302102019-04-18 Richard Sandiford <richard.sandiford@arm.com> 30211 30212 PR middle-end/85164 30213 * combine.c (force_int_to_mode): Cast the argument rather than 30214 the result of known_alignment. 30215 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p. 30216 302172019-04-18 Richard Biener <rguenther@suse.de> 30218 30219 PR debug/90131 30220 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split 30221 out from ... 30222 (remove_forwarder_block): ... here. 30223 (remove_forwarder_block_with_phi): Also move debug stmts here. 30224 302252019-04-18 Jakub Jelinek <jakub@redhat.com> 30226 30227 PR translation/79183 30228 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of 30229 inform where appropriate. 30230 302312019-04-18 Richard Biener <rguenther@suse.de> 30232 30233 * tree.c (get_qualified_type): Put found type variants at the 30234 head of the variant list. 30235 302362018-04-17 Segher Boessenkool <segher@kernel.crashing.org> 30237 30238 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo. 30239 302402019-04-17 Hongtao Liu <hongtao.liu@intel.com> 30241 30242 PR target/90125 30243 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd, 30244 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd, 30245 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd, 30246 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd, 30247 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3. 30248 302492019-04-17 Peter Bergner <bergner@linux.ibm.com> 30250 30251 * ira-conflicts.c (print_allocno_conflicts): Always print something, 30252 even for allocno's with no conflicts. 30253 (print_conflicts): Print an extra newline. 30254 302552019-04-17 Segher Boessenkool <segher@kernel.crashing.org> 30256 30257 * auto-inc-dec.c (attempt_change): Set the alignment of the 30258 temporary memory to that of the original. 30259 302602019-04-17 Joao Moreira <jmoreira@suse.de> 30261 30262 * targhooks.c (default_print_patchable_function_entry): Emit 30263 __patchable_function_entries section with writable flags to allow 30264 relocation resolution. 30265 302662019-04-17 Jonny Grant <jg@jguk.org> 30267 30268 * collect2.c (main): Change gcc.gnu.org URL to HTTPS. 30269 302702019-04-17 Jakub Jelinek <jakub@redhat.com> 30271 30272 PR middle-end/90095 30273 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P 30274 on lowpart SUBREGs. 30275 302762019-04-17 Claudiu Zissulescu <claziss@synopsys.com> 30277 30278 * config/arc/arc.c (arc_init): Format diagnostic string. 30279 (arc_override_options): Likewise. 30280 (check_if_valid_regno_const): Likewise. 30281 (arc_reorg): Likewise. 30282 302832019-04-17 Segher Boessenkool <segher@kernel.crashing.org> 30284 30285 PR target/17108 30286 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern 30287 name. 30288 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern 30289 name. 30290 * config/rs6000/rs6000.md (bits): Add entries for SF and DF. 30291 (*movdi_update1): Use Pmode. 30292 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p. 30293 (movdi_<mode>_update_stack): Rename to ... 30294 (movdi_update_stack): ... this. Fix comment. Change condition. Don't 30295 use Pmode. 30296 (*movsi_update1): Use Pmode. 30297 (*movsi_update2): Use Pmode. 30298 (movsi_update): Rename to ... 30299 (movsi_<mode>_update): ... this. Use Pmode. 30300 (movsi_update_stack): Fix condition. 30301 (*movhi_update1): Use Pmode. Fix argument to 30302 avoiding_indexed_address_p. 30303 (*movhi_update2): Ditto. 30304 (*movhi_update3): Ditto. 30305 (*movhi_update4): Ditto. 30306 (*movqi_update1): Ditto. 30307 (*movqi_update2): Ditto. 30308 (*movqi_update3): Ditto. 30309 (*movsf_update1, *movdf_update1): Merge, rename to... 30310 (*mov<mode>_update1): This. Use Pmode. Fix argument to 30311 avoiding_indexed_address_p. Add "size" attribute. 30312 (*movsf_update2, *movdf_update2): Merge, rename to... 30313 (*mov<mode>_update2): This. Ditto. 30314 (*movsf_update3): Use Pmode. Fix argument to 30315 avoiding_indexed_address_p. 30316 (*movsf_update4): Ditto. 30317 (allocate_stack): Simplify condition. Adjust pattern names. 30318 303192019-04-17 Jakub Jelinek <jakub@redhat.com> 30320 30321 PR target/89093 30322 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip 30323 whitespace at the start of target attribute string. 30324 303252019-04-16 Pat Haugen <pthaugen@us.ibm.com> 30326 30327 PR target/84369 30328 * config/rs6000/power9.md: Add store forwarding bypass. 30329 303302019-04-16 Alexandre Oliva <aoliva@redhat.com> 30331 30332 PR debug/89528 30333 * valtrack.c (dead_debug_insert_temp): Reset debug references 30334 to the return value of a call being removed. 30335 303362019-04-16 Claudiu Zissulescu <claziss@synopsys.com> 30337 30338 * config/arc/arc-protos.h (arc_register_move_cost): Remove. 30339 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to 30340 implement target hook. 30341 (arc_memory_move_cost): New function. 30342 (TARGET_REGISTER_MOVE_COST): Define. 30343 (TARGET_MEMORY_MOVE_COST): Likewise. 30344 * config/arc/arc.h (REGISTER_MOVE_COST): Remove. 30345 (MEMORY_MOVE_COST): Likewise. 30346 303472019-04-16 Claudiu Zissulescu <claziss@synopsys.com> 30348 30349 * config/arc/arc.md (sibcall_insn): Use Rcd constraint. 30350 (sibcall_value_insn): Likewise. 30351 * config/arc/constraints.md (Rs5): Remove. 30352 303532019-04-16 Claudiu Zissulescu <claziss@synopsys.com> 30354 30355 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes 30356 for last two fake registers. 30357 (arc_conditional_register_usage): Make sure fake frame and arg 30358 pointer regs are in general regs class. 30359 (FRAME_POINTER_MASK): Remove. 30360 (RETURN_ADDR_MASK): Remove. 30361 (arc_must_save_register): Use hard frame regnum. 30362 (frame_restore_reg): Use hard_frame_pointer_rtx. 30363 (arc_save_callee_saves): Likewise. 30364 (arc_restore_callee_saves): Likewise. 30365 (arc_save_callee_enter): Likewise. 30366 (arc_restore_callee_leave): Likewise. 30367 (arc_save_callee_milli): Likewise. 30368 (arc_eh_return_address_location): Likewise. 30369 (arc_check_multi): Use hard frame regnum. 30370 (arc_can_eliminate): Likewise. 30371 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available 30372 for register allocator. 30373 (REG_CLASS_CONTENTS): Update GENERAL_REGS. 30374 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM. 30375 (FRAME_POINTER_REGNUM): Change it to a fake register. 30376 (HARD_FRAME_POINTER_REGNUM): Defined. 30377 (ARG_POINTER_REGNUM): Change it to a new fake register. 30378 (ELIMINABLE_REGS): Update. 30379 (REGISTER_NAMES): Update names. 30380 * config/arc/arc.md (LP_START): Remove. 30381 (LP_END): Likewise. 30382 (shift_si3_loop): Update pattern. 30383 303842019-04-16 Claudiu Zissulescu <claziss@synopsys.com> 30385 30386 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless 30387 to avoid delay slot scheduling. 30388 (arc_must_save_register): Don't save SP. 30389 * config/arc/arc.md (stack_tie): Remove. 30390 (UNSPEC_ARC_STKTIE): Likewise. 30391 303922019-04-16 Kito Cheng <kito.cheng@gmail.com> 30393 Shiva Chen <shiva0217@gmail.com> 30394 30395 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong 30396 code gen with large shift amount. 30397 303982019-04-16 Chung-Ju Wu <jasonwucj@gmail.com> 30399 30400 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle 30401 subreg. 30402 304032019-04-16 Jakub Jelinek <jakub@redhat.com> 30404 30405 PR target/90096 30406 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only 30407 print -m64/-mx32/-m32 if it is true. 30408 (ix86_debug_options, ix86_function_specific_print): Pass true as 30409 ADD_ABI_P to ix86_target_string. 30410 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as 30411 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case 30412 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32. 30413 30414 PR rtl-optimization/90082 30415 * dce.c (can_delete_call): New function. 30416 (deletable_insn_p, mark_insn): Use it. 30417 30418 PR tree-optimization/90090 30419 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can 30420 throw internally. 30421 (is_division_by_square): Likewise. Formatting fix. 30422 304232019-04-16 Richard Biener <rguenther@suse.de> 30424 30425 PR tree-optimization/56049 30426 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set 30427 equality check if alias-set zero will prevail. 30428 304292019-04-15 Jeff Law <law@redhat.com> 30430 30431 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat 30432 size and alignment as unsigned. 30433 304342019-04-15 Richard Biener <rguenther@suse.de> 30435 30436 PR debug/90074 30437 * tree-loop-distribution.c (destroy_loop): Preserve correct 30438 debug info. 30439 304402019-04-15 Richard Biener <rguenther@suse.de> 30441 30442 PR tree-optimization/90071 30443 * tree-ssa-reassoc.c (init_range_entry): Do not pick up 30444 abnormal operands from def stmts. 30445 304462019-04-15 Segher Boessenkool <segher@kernel.crashing.org> 30447 30448 PR rtl-optimization/89794 30449 * combine.c (count_auto_inc): New function. 30450 (try_combine): Count how many auto_inc expressions there were in the 30451 original instructions. Ensure we have the same number in the new 30452 instructions. Remove the code that tried to ensure auto_inc side 30453 effects on i1 and i0 are not lost. 30454 304552019-04-15 Richard Biener <rguenther@suse.de> 30456 30457 PR ipa/88936 30458 * tree.h (auto_var_p): Declare. 30459 * tree.c (auto_var_p): New function, split out from ... 30460 (auto_var_in_fn_p): ... here. 30461 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid 30462 member. 30463 (new_var_info): Initialize it. 30464 (set_uids_in_ptset): Also set the shadow variable uid if required. 30465 (ipa_pta_execute): Postprocess points-to solutions assigning 30466 shadow variable uids for locals that may reach their containing 30467 function recursively. 30468 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not 30469 assert but instead check whether the points-to solution is 30470 a singleton. 30471 304722019-04-15 Martin Jambor <mjambor@suse.cz> 30473 30474 PR ipa/pr89693 30475 * cgraph.c (clone_of_p): Loop over clone chain for each step in 30476 the thunk chain. 30477 304782019-04-15 Monk Chiang <sh.chiang04@gmail.com> 30479 30480 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes. 30481 304822019-04-15 Monk Chiang <sh.chiang04@gmail.com> 30483 Kito Cheng <kito.cheng@gmail.com> 30484 Shiva Chen <shiva0217@gmail.com> 30485 30486 * config/nds32/nds32-md-auxiliary.c 30487 (nds32_legitimize_pic_address): Use new PIC pattern. 30488 (nds32_legitimize_tls_address): Use new TLS pattern. 30489 (nds32_output_symrel): New. 30490 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare. 30491 (nds32_alloc_relax_group_id): Ditto. 30492 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New. 30493 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use 30494 relax_group_id. 30495 (nds32_group_tls_insn): Ditto. 30496 (nds32_group_float_insns): Ditto. 30497 * config/nds32/nds32.md (tls_le): New. 30498 (sym_got): Ditto. 30499 305002019-04-15 Chung-Ju Wu <jasonwucj@gmail.com> 30501 30502 * configure: Add nds32 target for dwarf2 debug_line checking. 30503 * configure.ac: Regenerated. 30504 305052019-04-14 Jan Hubicka <hubicka@ucw.cz> 30506 30507 PR lto/89358 30508 * ipa-devirt.c (skip_in_fields_list_p): New. 30509 (odr_types_equivalent_p): Use it. 30510 305112019-04-13 Jakub Jelinek <jakub@redhat.com> 30512 30513 PR target/89093 30514 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp 30515 instead of strncmp when checking for thumb and arm. Formatting fixes. 30516 305172019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> 30518 30519 * doc/install.texi: Document --with-target-system-zlib. 30520 305212019-04-12 Martin Sebor <msebor@redhat.com> 30522 30523 PR c/88383 30524 PR c/89288 30525 PR c/89798 30526 PR c/89797 30527 * targhooks.c (default_vector_alignment): Avoid assuming 30528 argument fits in SHWI. 30529 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in 30530 a shift expression. 30531 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note. 30532 305332019-04-12 Jakub Jelinek <jakub@redhat.com> 30534 30535 PR rtl-optimization/89965 30536 * dce.c: Include rtl-iter.h. 30537 (struct check_argument_load_data): New type. 30538 (check_argument_load): New function. 30539 (find_call_stack_args): Check for loads from stack slots still tracked 30540 in sp_bytes and punt if any is found. 30541 30542 * config/mips/loongson-mmiintrin.h: Fix up #error message. 30543 305442019-04-12 Jan Hubicka <hubicka@ucw.cz> 30545 30546 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter. 30547 * doc/invoke.texi (max-lto-streaming-paralellism): New --param. 30548 305492019-04-12 Martin Liska <mliska@suse.cz> 30550 30551 PR middle-end/89970 30552 * multiple_target.c (create_dispatcher_calls): Wrap ifunc 30553 in error message. 30554 (separate_attrs): Handle multiple 'default's. 30555 (expand_target_clones): Rework error handling code. 30556 305572019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org> 30558 30559 PR target/87532 30560 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner 30561 mode of vector rather than mode of destination for move instruction. 30562 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var): 30563 Use QI inner mode with V16QI vector mode. 30564 305652019-04-12 Jakub Jelinek <jakub@redhat.com> 30566 30567 PR target/52726 30568 * config/tilepro/tilepro.c (tilepro_print_operand): Use just 30569 "invalid %%t operand" in output_operand_lossage message. 30570 305712019-04-12 Andreas Krebbel <krebbel@linux.ibm.com> 30572 30573 * config/s390/predicates.md (permute_pattern_operand): New 30574 predicate. 30575 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE 30576 operand for the permute pattern. 30577 ("*vec_perm<mode>"): New insn definition. 30578 ("bswap<mode>"): Generate the permute pattern operand in the 30579 expander and perform the operand reloads for pre arch13 level 30580 already. 30581 ("*bswap<mode>_emu"): Rename to ... 30582 ("*bswap<mode>"): ... this. And make the splitter vxe2 only. 30583 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"): 30584 Add the USE operand for the permute pattern. 30585 ("*vec_set_bswap_vec<mode>"): Likewise. 30586 305872019-04-12 Jakub Jelinek <jakub@redhat.com> 30588 30589 PR c/89946 30590 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p 30591 and gcc_unreachable if it fails, just call tree_to_uhwi which 30592 verifies that too. Test TREE_CHAIN instead of list_length > 1. 30593 Start warning message with a lower-case letter. Formatting fixes. 30594 30595 PR rtl-optimization/90026 30596 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no 30597 successors, look for BARRIERs inside of the whole BB_FOOTER chain 30598 rather than just at the start of it. If e->src BB_FOOTER is not NULL 30599 in cfglayout mode, use emit_barrier_after_bb. 30600 306012018-04-11 Steve Ellcey <sellcey@marvell.com> 30602 30603 PR rtl-optimization/87763 30604 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt): 30605 New Instruction. 30606 306072019-04-11 Tom de Vries <tdevries@suse.de> 30608 30609 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at 30610 max macro using statement expression. 30611 306122019-04-11 David Edelsohn <dje.gcc@gmail.com> 30613 30614 * xcoffout.h (xcoff_private_rodata_section_name): Declare. 30615 * xcoffout.c (xcoff_private_rodata_section_name): Define. 30616 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create 30617 read_only_private_data_section using xcoff_private_rodata_section_name. 30618 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name. 30619 306202019-04-11 Christophe Lyon <christophe.lyon@linaro.org> 30621 30622 PR target/90016 30623 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'. 30624 306252019-04-11 Jakub Jelinek <jakub@redhat.com> 30626 30627 PR rtl-optimization/89965 30628 * dce.c (sp_based_mem_offset): New function. 30629 (find_call_stack_args): Use sp_based_mem_offset. 30630 306312019-04-11 Jonathan Wakely <jwakely@redhat.com> 30632 30633 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs. 30634 306352019-04-11 Richard Biener <rguenther@suse.de> 30636 30637 PR tree-optimization/90020 30638 * tree-ssa-sccvn.c (vn_reference_may_trap): New function. 30639 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. 30640 * tree-ssa-pre.c (compute_avail): Use it to not put 30641 possibly trapping references after a call that might not 30642 return into EXP_GEN. 30643 * gcse.c (compute_hash_table_work): Do not elide 30644 marking a block containing a call if the call might not 30645 return. 30646 306472019-04-11 Richard Biener <rguenther@suse.de> 30648 30649 PR tree-optimization/90018 30650 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): 30651 Test both SLP and interleaving variants. 30652 306532019-04-11 Robin Dapp <rdapp@linux.ibm.com> 30654 30655 * config/s390/8561.md: New file. 30656 * config/s390/driver-native.c (s390_host_detect_local_cpu): 30657 Add arch13 cpu model. 30658 * config/s390/s390-opts.h (enum processor_type): Likewise. 30659 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13. 30660 (s390_get_unit_mask): Likewise. 30661 (s390_is_fpd): Likewise. 30662 (s390_is_fxd): Likewise. 30663 * config/s390/s390.h (s390_tune_attr): Likewise. 30664 * config/s390/s390.md: Include arch13 pipeline description. 30665 * config/s390/s390.opt: Add arch13. 30666 306672018-04-10 Steve Ellcey <sellcey@marvell.com> 30668 30669 PR rtl-optimization/87763 30670 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p): 30671 New prototype. 30672 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p): 30673 New function. 30674 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift): 30675 New instruction. 30676 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto. 30677 (*aarch64_bfi<GPI:mode>4_noand): Ditto. 30678 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto. 30679 (*aarch64_bfi<GPI:mode>4_noshift): Ditto. 30680 306812019-04-10 Jonathan Wakely <jwakely@redhat.com> 30682 30683 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to 30684 "Although" in -fipa-icf documentation. 30685 30686 * doc/invoke.texi (Debugging Options): Explicitly state the semantics 30687 of using multiple -g options. 30688 306892019-04-10 Martin Liska <mliska@suse.cz> 30690 30691 PR gcov-profile/89959 30692 * doc/gcov.texi: Make documentation of -x option 30693 more precise. 30694 306952019-04-10 Richard Biener <rguenther@suse.de> 30696 30697 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt 30698 member. 30699 (DR_GROUP_SAME_DR_STMT): Remove. 30700 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code. 30701 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise, 30702 replace with assert. 30703 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison. 30704 (vect_record_grouped_load_vectors): Remove unreachable code. 30705 307062019-04-10 Richard Earnshaw <rearnsha@arm.com> 30707 30708 PR target/90016 30709 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and 30710 obsolete reference to N. 30711 307122019-04-10 Jakub Jelinek <jakub@redhat.com> 30713 30714 PR middle-end/90025 30715 * expr.c (store_expr): Set properly size on the MEM passed to 30716 clear_storage. 30717 30718 PR c++/90010 30719 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr 30720 with strlen in between hostsz-3 and hostsz-1 inclusive when no 30721 translation is needed, and when translation is needed, only append 30722 ... if the string length is hostsz or more bytes long. Avoid using 30723 strncpy or strcat. 30724 307252019-04-09 Matthew Malcomson <matthew.malcomson@arm.com> 30726 30727 PR target/90024 30728 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter. 30729 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint 30730 into three. 30731 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode 30732 differences directly. 30733 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint. 30734 307352019-04-09 Jakub Jelinek <jakub@redhat.com> 30736 30737 PR translation/90011 30738 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces 30739 from diagnostics. 30740 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p 30741 diagnostics. 30742 * config/riscv/freebsd.h (LINK_SPEC): Likewise. 30743 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise. 30744 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove 30745 trailing space from -gsplit-dwarf diagnostics. 30746 30747 PR tree-optimization/89998 30748 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type 30749 instead of integer_type_node if possible, don't add ranges if return 30750 type is not compatible with int. 30751 * gimple-fold.c (gimple_fold_builtin_sprintf, 30752 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded 30753 integer_type_node. 30754 307552019-04-09 Martin Liska <mliska@suse.cz> 30756 30757 * Makefile.in: Use GENERATOR_CFLAGS for all generators. 30758 * doc/install.texi: Document the new config. 30759 307602019-04-09 Richard Sandiford <richard.sandiford@arm.com> 30761 30762 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always 30763 use gimple_expr_type for load and store calls. Skip over the 30764 condition argument in a conditional internal function. 30765 Protect use of TREE_INT_CST_LOW. 30766 307672019-04-09 Jakub Jelinek <jakub@redhat.com> 30768 30769 PR target/90015 30770 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo. 30771 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove 30772 trailing period from it too. 30773 307742019-04-08 wu yuan <wuyuan5@huawei.com> 30775 30776 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model. 30777 * config/aarch64/aarch64.md: Add "tsv110.md". 30778 * config/aarch64/tsv110.md: New file. 30779 307802019-04-08 Richard Biener <rguenther@suse.de> 30781 30782 PR tree-optimization/90006 30783 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle 30784 calls like lrint. 30785 307862019-04-08 Andrea Corallo <andrea.corallo@arm.com> 30787 30788 PR target/83033 30789 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy 30790 construction. 30791 (fma_root_node): Likewise. 30792 (func_fma_steering): Likewise. 30793 307942019-04-08 Jakub Jelinek <jakub@redhat.com> 30795 30796 PR rtl-optimization/89865 30797 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z. 30798 30799 PR rtl-optimization/89865 30800 * config/i386/i386.md 30801 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand 30802 numbers not to clash with the additional operands[4]. 30803 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s 30804 with extra register copy in the middle. 30805 308062019-04-08 Martin Liska <mliska@suse.cz> 30807 30808 PR gcov-profile/89961 30809 * doc/gcov.texi: Document data_file. 30810 * gcov.c (generate_results): Add data_info into JSON output. 30811 308122019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com> 30813 30814 PR tree-optimization/89725 30815 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer 30816 loop's chrec as invariant symbol. 30817 * tree-chrec.h (chrec_contains_symbols): New parameter. 30818 * tree-data-ref.c (analyze_miv_subscript): Pass new argument. 30819 (build_classic_dist_vector_1, add_other_self_distances): Bypass access 30820 function of loops not in DDR's loop_nest. 30821 * tree-data-ref.h (index_in_loop_nest): Add unreachable check. 30822 308232019-04-08 Chenghua Xu <paul.hua.gm@gmail.com> 30824 30825 PR target/89623 30826 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of 30827 Mask. 30828 308292019-04-07 Uroš Bizjak <ubizjak@gmail.com> 30830 30831 PR target/89945 30832 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): 30833 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand. 30834 308352019-04-05 Joern Rennecke <joern.rennecke@embecosm.com> 30836 30837 * sched-deps.c (sched_macro_fuse_insns): Check return value of 30838 targetm.fixed_condition_code_regs. 30839 308402019-04-05 Richard Biener <rguenther@suse.de> 30841 30842 PR debug/89892 30843 PR debug/89905 30844 * tree-cfgcleanup.c (remove_forwarder_block): Always move 30845 debug bind stmts but reset them if they are not valid at the 30846 destination. 30847 308482019-04-05 Martin Liska <mliska@suse.cz> 30849 30850 PR translation/89936 30851 * collect-utils.c (collect_execute): Use %< and %>, or %qs in 30852 order to wrap keywords or arguments. 30853 * collect2.c (main): Likewise. 30854 (scan_prog_file): Likewise. 30855 (scan_libraries): Likewise. 30856 * common/config/riscv/riscv-common.c 30857 (riscv_subset_list::parsing_subset_version): Likewise. 30858 (riscv_subset_list::parse_std_ext): Likewise. 30859 * config/aarch64/aarch64.c (aarch64_override_options_internal): 30860 Likewise. 30861 * config/arm/arm.c (arm_option_override): Likewise. 30862 * config/cris/cris.c (cris_print_operand): Likewise. 30863 * config/darwin-c.c (darwin_pragma_options): Likewise. 30864 (darwin_pragma_unused): Likewise. 30865 (darwin_pragma_ms_struct): Likewise. 30866 * config/ft32/ft32.c (ft32_print_operand): Likewise. 30867 * config/i386/i386.c (print_reg): Likewise. 30868 (ix86_print_operand): Likewise. 30869 * config/i386/xm-djgpp.h: Likewise. 30870 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise. 30871 * config/m32c/m32c.c (m32c_option_override): Likewise. 30872 * config/msp430/msp430.c (msp430_option_override): Likewise. 30873 * config/nds32/nds32.c (nds32_option_override): Likewise. 30874 * config/nvptx/mkoffload.c (main): Likewise. 30875 * config/rx/rx.c (rx_print_operand): Likewise. 30876 (valid_psw_flag): Likewise. 30877 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise. 30878 (vms_pragma_nomember_alignment): Likewise. 30879 (vms_pragma_extern_model): Likewise. 30880 * lto-wrapper.c (compile_offload_image): Likewise. 30881 * omp-offload.c (oacc_parse_default_dims): Likewise. 30882 * symtab.c (symtab_node::verify_base): Likewise. 30883 * tlink.c (recompile_files): Likewise. 30884 (start_tweaking): Likewise. 30885 * tree-profile.c (parse_profile_filter): Likewise. 30886 308872019-04-05 Richard Sandiford <richard.sandiford@arm.com> 30888 30889 PR tree-optimization/89956 30890 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against 30891 multiple negates of the same value. 30892 308932019-04-04 Martin Sebor <msebor@redhat.com> 30894 30895 PR middle-end/89957 30896 PR middle-end/89911 30897 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands 30898 have the same precision since the function crashes otherwise. 30899 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call 30900 has non-zero arguments. 30901 309022019-04-04 Martin Sebor <msebor@redhat.com> 30903 30904 PR middle-end/89934 30905 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail 30906 out if the number of arguments is less than expected. 30907 309082019-04-04 Jeff Law <law@redhat.com> 30909 30910 PR rtl-optimization/89399 30911 * ree.c (combine_set_extension): Use single_set rather than 30912 digging into PATTERN for items on the candidate list. 30913 (combine_reaching_defs): Likewise. 30914 309152019-04-04 Richard Sandiford <richard.sandiford@arm.com> 30916 30917 PR rtl-optimization/46590 30918 * loop-invariant.c (find_defs): Move df_remove_problem and 30919 df_process_deferred_rescans to move_invariants. 30920 Move df_live_add_problem and df_live_set_all_dirty calls 30921 to move_invariants. 30922 (move_invariants): Likewise. 30923 (move_loop_invariants): Likewise, making the df_live calls 30924 conditional on -O. Remove the problem again if we added it 30925 locally. 30926 309272019-04-03 qing zhao <qing.zhao@oracle.com> 30928 30929 PR tree-optimization/89730 30930 * ipa-inline.c (can_inline_edge_p): Delete the checking for 30931 -flive-patching=inline-only-static. 30932 (can_inline_edge_by_limits_p): Add the checking for 30933 -flive-patching=inline-only-static and grant always_inline 30934 even when -flive-patching=inline-only-static is specified. 30935 309362019-04-03 Jeff Law <law@redhat.com> 30937 30938 PR rtl-optimization/81025 30939 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER. 30940 309412019-04-03 Richard Biener <rguenther@suse.de> 30942 30943 PR tree-optimization/84101 30944 * tree-vect-stmts.c: Include explow.h for hard_function_value, 30945 regs.h for hard_regno_nregs. 30946 (cfun_returns): New helper. 30947 (vect_model_store_cost): When vectorizing a store to a decl 30948 we return and the function ABI returns in a multi-reg location 30949 account for the possible spilling that will happen. 30950 309512019-04-03 Andreas Krebbel <krebbel@linux.ibm.com> 30952 30953 * config/s390/s390.c (s390_legitimate_address_p): Reject long 30954 displacement addresses for vector mode operands. 30955 309562019-04-03 Claudiu Zissulescu <claziss@synopsys.com> 30957 30958 * config/arc/arc.c (GMASK_LEN): Define. 30959 (arc_restore_callee_saves): Restore first blink when 30960 !optimize_size. 30961 309622019-04-03 Sudakshina Das <sudi.das@arm.com> 30963 30964 * doc/extend.texi: Add deprecated comment on sign-return-address 30965 function attribute and add mbranch-protection. 30966 * doc/invoke.texi: Add bti to the options for mbranch-protection. 30967 309682019-04-03 Richard Biener <rguenther@suse.de> 30969 30970 PR lto/89896 30971 * lto-wrapper.c (run_gcc): Avoid implicit rules making 30972 the all target phony. 30973 309742019-04-02 Uroš Bizjak <ubizjak@gmail.com> 30975 30976 PR target/89902 30977 PR target/89903 30978 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): 30979 Return false for variable DImode shifts. 30980 (dimode_scalar_chain::compute_convert_gain): Do not handle 30981 register count operand in variable DImode shifts. 30982 (dimode_scalar_chain::make_vector_copies): Remove support to copy 30983 count argument of a variable shift instruction to a vector register. 30984 (dimode_scalar_chain::convert_reg): Remove support to convert 30985 count argument of a variable shift instruction. 30986 309872019-04-02 Andrey Belevantsev <abel@ispras.ru> 30988 30989 PR rtl-optimization/84206 30990 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when 30991 iterating over loop headers. 30992 309932019-04-02 Andrey Belevantsev <abel@ispras.ru> 30994 30995 PR rtl-optimization/85876 30996 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn 30997 beyond the original fence. 30998 309992019-04-02 Ulrich Weigand <uweigand@de.ibm.com> 31000 31001 * config.gcc: Mark spu* targets as deprecated/obsolete. 31002 310032019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31004 31005 * config/s390/s390-builtin-types.def: New builtin function type 31006 definitions. Remove unused types. 31007 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb) 31008 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions. 31009 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New 31010 overloaded builtins. 31011 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb) 31012 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins. 31013 * config/s390/vecintrin.h (vec_float): New builtin macro definition. 31014 (vec_double, vec_signed, vec_unsigned): Define to use the new 31015 overloaded builtins. 31016 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"): 31017 Remove expanders. 31018 310192019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31020 31021 * config/s390/s390-builtin-types.def: New builtin function type 31022 definitions. 31023 * config/s390/s390-builtins.def (s390_vec_search_string_cc) 31024 (s390_vec_search_string_until_zero_cc): New overloaded builtins. 31025 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb) 31026 (s390_vstrszh, s390_vstrszf): New low-level builtins. 31027 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New 31028 constant definitions. 31029 * config/s390/vecintrin.h (vec_search_string_cc) 31030 (vec_search_string_until_zero_cc): New builtin name definitions. 31031 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New 31032 expanders. 31033 ("vec_vstrs<mode>"): New insn definition. 31034 310352019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31036 31037 * config/s390/s390-builtin-types.def: Add new builtin function 31038 types. 31039 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb): 31040 New overloaded builtins. 31041 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and 31042 s390_vsrd. 31043 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ... 31044 (UNSPEC_VEC_SLDBYTE): ... this. 31045 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions. 31046 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name 31047 definitions. 31048 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"): 31049 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE. 31050 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions. 31051 310522019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31053 31054 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"): 31055 New insn definition. 31056 * config/s390/vx-builtins.md (V_HW_HSD): Move to ... 31057 * config/s390/vector.md (V_HW_HSD): ... here. 31058 310592019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31060 31061 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler. 31062 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>") 31063 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>") 31064 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"): 31065 New insn definitions. 31066 310672019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31068 31069 * config/s390/s390-builtin-types.def: Add new builtin function type. 31070 * config/s390/s390-builtins.def: Add overloaded builtin 31071 s390_vec_reve and low-level builtins for s390_vler and s390_vster. 31072 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition. 31073 * config/s390/vecintrin.h (vec_reve): New builtin name definition. 31074 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator. 31075 ("eltswap<mode>"): New expander. 31076 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New 31077 insn definitions. 31078 310792019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31080 31081 * config/s390/s390-builtin-types.def: Add new builtin function types. 31082 * config/s390/s390-builtins.def: Add overloaded builtin 31083 s390_vec_revb. Add low-level builtins for vlbr and vstbr 31084 instructions. 31085 * config/s390/vecintrin.h (vec_revb): New builtin name definition. 31086 * config/s390/vector.md (VT_HW_HSDT): New mode iterator. 31087 ("bswap<mode>"): New expander. 31088 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions. 31089 310902019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31091 31092 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition. 31093 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment 31094 vector builtin version number in __VEC__. 31095 310962019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31097 31098 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode 31099 iterators. 31100 (SFSI): New mode attribute. 31101 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13") 31102 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and 31103 rename to ... 31104 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13") 31105 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13") 31106 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these. 31107 ("floatsi<mode>2"): Add wcefb instruction. 31108 311092019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31110 31111 * config/s390/s390.md ("xde"): Extend mode attribute to vector types. 31112 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New 31113 mode iterators. 31114 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2") 31115 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also 31116 support 32 bit fp-int conversions. Rename to ... 31117 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2") 31118 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2") 31119 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2") 31120 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"): 31121 ... to these. 31122 311232019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31124 31125 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for 31126 if-then-else constructs if we can use the select instruction. 31127 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions. 31128 311292019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31130 31131 * config/s390/s390.md ("*popcountdi_arch13_cc") 31132 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn 31133 definition. 31134 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"): 31135 Append _z196 to make it ... 31136 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196") 31137 ("popcounthi2_z196"): ... this. 31138 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition. 31139 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders. 31140 311412019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31142 31143 * config/s390/s390.c (s390_canonicalize_comparison): Convert 31144 certain compares for arch13 in order to make use of the condition 31145 code result produced by the new instructions. 31146 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk, 31147 nxrk, and nxgrk instruction patterns. 31148 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name) 31149 (inv_no): Add new code iterator together with some attributes. 31150 ("*andc_split_<mode>"): Disable splitter for arch13. 31151 ("*<ANDOR:bitops_name>c<GPR:mode>_cc") 31152 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly") 31153 ("*<ANDOR:bitops_name>c<GPR:mode>") 31154 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc") 31155 ("*n<ANDOR:inv_bitops_name><mode>_cconly") 31156 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc") 31157 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions. 31158 311592019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> 31160 31161 * common/config/s390/s390-common.c (processor_flags_table): New 31162 entry for arch13. 31163 * config.gcc: Support arch13 with the --with-arch= configure flag. 31164 * config/s390/driver-native.c (s390_host_detect_local_cpu): 31165 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13. 31166 * config/s390/s390.c (s390_get_sched_attrmask) 31167 (s390_get_unit_mask): Add PROCESSOR_ARCH13. 31168 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13. 31169 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P) 31170 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13) 31171 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro 31172 definitions. 31173 * config/s390/s390.opt: Support arch13 as processor type in 31174 command line options. 31175 311762019-04-02 Martin Liska <mliska@suse.cz> 31177 31178 PR translation/89912 31179 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): 31180 Fix param description of graphite-max-arrays-per-scop. 31181 311822019-04-02 Eric Botcazou <ebotcazou@adacore.com> 31183 31184 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro. 31185 (ASAN_CC1_SPEC): Use it in 64-bit mode. 31186 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon. 31187 311882019-04-01 Andrey Belevantsev <abel@ispras.ru> 31189 31190 PR rtl-optimization/85412 31191 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before 31192 sel_sched_region_1, not after. 31193 311942019-04-01 Andrey Belevantsev <abel@ispras.ru> 31195 31196 PR rtl-optimization/86928 31197 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke 31198 compute_live if necessary. 31199 (sel_redirect_edge_and_branch): Likewise. 31200 312012019-04-01 Vladimir Makarov <vmakarov@redhat.com> 31202 31203 PR rtl-optimization/89865 31204 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard 31205 register if it is a part of small class. 31206 312072019-04-01 Andrey Belevantsev <abel@ispras.ru> 31208 31209 PR rtl-optimization/87273 31210 * sel-sched-ir.c (merge_fences): Remove assert. 31211 312122019-04-01 Richard Biener <rguenther@suse.de> 31213 31214 PR tree-optimization/46590 31215 * domwalk.h (dom_walker::dom_walker): Consolidate constructors. 31216 (dom_walker::m_reachability): Add in place of... 31217 (dom_walker::m_skip_unreachable_blocks): ...this. 31218 * domwalk.c (dom_walker::dom_walker): Consoliate constructors. 31219 Move complex initialization ... 31220 (dom_walker::walk): Here. Especially compute m_bb_to_rpo 31221 lazily and initialize edge flags on each invocation. 31222 (dom_walker::bb_reachable): Use m_reachability. 31223 312242019-04-01 Martin Liska <mliska@suse.cz> 31225 31226 PR driver/89861 31227 * opt-suggestions.c (option_proposer::build_option_suggestions): 31228 Add variant without any argument in order to provide better 31229 hints. 31230 312312019-04-01 Richard Biener <rguenther@suse.de> 31232 31233 PR c/71598 31234 * gimple.c: Include langhooks.h. 31235 (gimple_get_alias_set): Treat enumeral types as the underlying 31236 integer type. 31237 312382019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org> 31239 Eric Botcazou <ebotcazou@adacore.com> 31240 31241 PR rtl-optimization/89862 31242 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations 31243 that operates on the full registers for WORD_REGISTER_OPERATIONS 31244 architectures. 31245 312462019-03-29 Jim Wilson <jimw@sifive.com> 31247 31248 * common/config/riscv/riscv-common.c (riscv_parse_arch_string): 31249 Clear MASK_RVC and then set if C subset supported. 31250 312512019-03-29 Jakub Jelinek <jakub@redhat.com> 31252 31253 PR c/89872 31254 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a 31255 non-addressable complit into its initializer if it is volatile. 31256 312572019-03-29 Roman Zhuykov <zhroma@ispras.ru> 31258 31259 * opts-common.c (integral_argument): Set errno properly in one case. 31260 312612019-03-29 Martin Liska <mliska@suse.cz> 31262 31263 * doc/invoke.texi: Remove -Wchkp from documentation. 31264 312652019-03-29 Martin Liska <mliska@suse.cz> 31266 31267 * dbgcnt.c (print_limit_reach): New function. 31268 (dbg_cnt): Use it. 31269 312702019-03-29 Martin Liska <mliska@suse.cz> 31271 31272 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style. 31273 (dbg_cnt_process_opt): Parse first tokens aas 31274 dbg_cnt_process_single_pair is also using strtok. 31275 312762019-03-29 Jakub Jelinek <jakub@redhat.com> 31277 31278 PR rtl-optimization/87485 31279 * function.c (expand_function_end): Move stack_protect_epilogue 31280 before loading of return value into hard register(s). 31281 312822019-03-28 Jakub Jelinek <jakub@redhat.com> 31283 31284 PR middle-end/89621 31285 * tree-inline.h (struct copy_body_data): Add 31286 dont_remap_vla_if_no_change flag. 31287 * tree-inline.c (remap_type_3, remap_type_2): New functions. 31288 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change 31289 and remap_type_2 returns false. 31290 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change. 31291 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx 31292 only from where it is copied to nested contexts. 31293 312942019-03-28 Uroš Bizjak <ubizjak@gmail.com> 31295 31296 PR target/89865 31297 * config/i386/i386.md (RMW operation with LEA peephole): 31298 Use LEAMODE mode attribute instead of SWI mode iterator for 31299 LEA pattern. 31300 313012019-03-28 Uroš Bizjak <ubizjak@gmail.com> 31302 31303 PR target/89848 31304 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): 31305 Also process XEXP (src, 0) of a shift insn. 31306 313072019-03-28 David Malcolm <dmalcolm@redhat.com> 31308 31309 PR middle-end/89725 31310 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json): 31311 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl. 31312 313132019-03-28 Jakub Jelinek <jakub@redhat.com> 31314 31315 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P 31316 test. 31317 (cprop_hardreg_bb, cprop_hardreg_debug): New functions. 31318 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing 31319 immediately after first one with df_analyze in between, but rather 31320 process all bbs, queueing ones that need second pass in a worklist, 31321 df_analyze, process queued debug insn changes and if second pass is 31322 needed, process bbs from worklist, df_analyze, process queued debug 31323 insns again. 31324 31325 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P 31326 or CALL_P instead of INSN_P && !DEBUG_INSN_P. 31327 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P. 31328 313292019-03-28 Jonathan Wakely <jwakely@redhat.com> 31330 31331 PR c/79022 31332 * gengtype.h (create_nested_ptr_option): Fix parameter names to match 31333 definition. 31334 313352019-03-27 Mateusz B <mateuszb@poczta.onet.pl> 31336 31337 PR target/85667 31338 * config/i386/i386.c (ix86_function_value_1): Call the newly added 31339 function for 32-bit MS_ABI. 31340 (function_value_ms_32): New function. 31341 313422019-03-27 Andrew Stubbs <ams@codesourcery.com> 31343 31344 * config/gcn/gcn.md (CC_SAVE_REG): New constant. 31345 (movdi): Call gen_movdi_symbol_save_scc. 31346 (gen_movdi_symbol_save_scc): New insn and split. 31347 313482019-03-27 Peter Bergner <bergner@linux.ibm.com> 31349 31350 PR rtl-optimization/89313 31351 * function.c (matching_constraint_num): New static function. 31352 (match_asm_constraints_1): Use it. Fixup white space and comment. 31353 Don't replace inputs with non-matching constraints which conflict 31354 with early clobber outputs. 31355 313562019-03-27 Jeff Law <law@redhat.com> 31357 31358 PR rtl-optimization/87761 31359 PR rtl-optimization/89826 31360 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test 31361 slightly later. 31362 (pass_cprop_hardreg::execute): Call df_analyze after adding the 31363 note problem to get REG_DEAD/REG_UNUSED notes updated. 31364 313652019-03-27 Richard Biener <rguenther@suse.de> 31366 31367 PR tree-optimization/89463 31368 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to 31369 queue edges to remove. 31370 (eliminate_unnecessary_stmts): Remove dead PHIs alongside 31371 dead stmts. Delay edge removal until PHIs are removed to 31372 make debug-stmt creation not confused by seemingly degenerate 31373 PHIs. 31374 313752019-03-27 Alan Modra <amodra@gmail.com> 31376 31377 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS 31378 throughout file. 31379 * config/rs6000/darwin.h: Likewise. 31380 * config/rs6000/rs6000.c: Likewise. 31381 313822019-03-27 Alan Modra <amodra@gmail.com> 31383 31384 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always 31385 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting. 31386 313872019-03-26 Andrew Waterman <andrew@sifive.com> 31388 Jim Wilson <jimw@sifive.com> 31389 31390 * config/riscv/generic.md (generic_alu, generic_load, generic_store) 31391 (generic_xfer, generic_branch, generic_imul, generic_idivsi) 31392 (generic_idivdi, generic_fmul_single, generic_fmul_double) 31393 (generic_fdiv, generic_fsqrt): Add check for generic tune. 31394 (generic_alu): Add auipc to type list. 31395 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New. 31396 (riscv_microarchitecture): Declare. 31397 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare. 31398 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture 31399 field. 31400 (riscv_microarchitecture): New. 31401 (sifive_7_tune_info): New. 31402 (riscv_cpu_info_table): Add microarchitecture value for rocket and 31403 size. Add sifive-3-series, sifive-5-series, and sifive-7-series 31404 entries. 31405 (riscv_store_data_bypass_p): New. 31406 (riscv_option_override): Set riscv_microarchitecture from 31407 cpu->microarchitecture. 31408 * config/riscv/riscv.md: Include sifive-7.md. 31409 (type): Add auipc. 31410 (tune): New. 31411 (auipc<mode>): Change type to auipc. 31412 (restore_stack_nonlocal): New. 31413 * config/riscv/sifive-7.md: New. 31414 * doc/invoke.texi (RISC-V Options): Update mtune docs. 31415 314162019-03-26 Uroš Bizjak <ubizjak@gmail.com> 31417 31418 PR target/89827 31419 * config/i386/i386.c (dimode_scalar_chain::convert_reg): 31420 Also process XEXP (src, 0) of a shift insn. 31421 314222019-03-26 Richard Biener <rguenther@suse.de> 31423 31424 * tree-inline.c (remap_gimple_stmt): Cache gimple_block. 31425 (copy_debug_stmt): Likewise. 31426 (expand_call_inline): Likewise. 31427 (copy_bb): Avoid redundant lookup & set of gimple_block. 31428 * gimple-low.c (lower_gimple_return): Likewise. 31429 (lower_builtin_setjmp): Likewise. 31430 314312019-03-26 Jakub Jelinek <jakub@redhat.com> 31432 31433 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS 31434 is constant 0, turn into static const data member initialized to false. 31435 (hash_table::hash_table): Only initialize m_gather_mem_stats #if 31436 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param. 31437 314382019-03-26 Jason Merrill <jason@redhat.com> 31439 Jakub Jelinek <jakub@redhat.com> 31440 31441 * mem-stats.h (mem_alloc_description::unregister_descriptor): New 31442 method. 31443 (mem_alloc_description::release_object_overhead): Fix comment typos. 31444 * hash-table.h (hash_table::~hash_table): Call 31445 release_instance_overhead only if m_entries is non-NULL, otherwise 31446 call unregister_descriptor. 31447 314482019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com> 31449 31450 PR tree-optimization/81740 31451 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): 31452 In case of outer loop vectorization, check for backward dependence 31453 at the inner loop if outer loop dependence is reversed. 31454 314552019-03-26 Alan Modra <amodra@gmail.com> 31456 31457 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct 31458 rs6000_vector_mem init. Correct wI and wJ comment. 31459 314602019-03-25 Alexander Monakov <amonakov@ispras.ru> 31461 31462 PR rtl-optimization/88347 31463 PR rtl-optimization/88423 31464 * sched-deps.c (sched_analyze_insn): Take into account that for 31465 tablejumps the barrier appears after a label and a jump_table_data. 31466 314672019-03-25 Martin Sebor <msebor@redhat.com> 31468 31469 PR c/89812 31470 * c-common.c (check_user_alignment): Rename local. Correct maximum 31471 alignment in diagnostic. Avoid assuming argument fits in SHWI, 31472 convert it to UHWI when it fits. 31473 314742019-03-25 Johan Karlsson <johan.karlsson@enea.com> 31475 31476 PR debug/86964 31477 * dwarf2out.c (premark_used_variables): New function. 31478 (prune_unused_types_walk): Do not mark not premarked external 31479 variables. 31480 (prune_unused_types): Call premark_used_variables. 31481 314822019-03-25 Vladimir Makarov <vmakarov@redhat.com> 31483 31484 PR rtl-optimization/89676 31485 * lra-constraints.c (curr_insn_transform): Do match reload for 31486 early clobbers when the match was successful only for different 31487 registers. 31488 314892019-03-25 Martin Sebor <msebor@redhat.com> 31490 31491 * doc/extend.texi (Common Type Attributes): Document vector_size. 31492 (Common Variable Attributes): Mention size constraint. Correct 31493 quoting and typos. 31494 (Vector Extensions): Use @dfn when defining bas type. Clarify 31495 base type and size constraints. 31496 314972019-03-25 Richard Biener <rguenther@suse.de> 31498 31499 PR tree-optimization/89789 31500 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice 31501 changes from non-undefined back to undefined. 31502 315032019-03-25 Thomas Otto <thomas.otto@pdv-fs.de> 31504 31505 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a 31506 heap string and a gc string, but since this variable is unknown to 31507 ggc the gc string might get reused and corrupted. Fixed by always 31508 using a heap string. 31509 315102019-03-25 Richard Biener <rguenther@suse.de> 31511 31512 PR tree-optimization/89779 31513 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return 31514 to remove IV defs, delay actual removal. 31515 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset. 31516 (tree_ssa_iv_optimize): Remove eliminated IV defs at the 31517 very end, properly also reset loop control IV information. 31518 315192019-03-25 Richard Biener <rguenther@suse.de> 31520 31521 PR tree-optimization/89802 31522 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly 31523 move EH data to folded stmt. 31524 315252019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> 31526 31527 * config/s390/s390-builtin-types.def: Remove few unused types and 31528 fix sort order for others. 31529 315302019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> 31531 31532 * config/s390/s390-c.c (s390_fn_types_compatible): Print the 31533 expected and found types with -mdebug during builtin matching. 31534 315352019-03-25 Richard Biener <rguenther@suse.de> 31536 31537 PR middle-end/89790 31538 * fold-const.c (operand_equal_p): Revert last change with 31539 updated comment. 31540 315412019-03-24 Segher Boessenkool <segher@kernel.crashing.org> 31542 31543 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL 31544 notes for the result of the __tls_get_addr calls. 31545 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New. 31546 315472019-03-24 Jeff Law <law@redhat.com> 31548 31549 * config/bfin/bfin.md (movpdi): Fix length for alternative 1. 31550 31551 PR rtl-optimization/87761 31552 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET, 31553 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan 31554 as needed. 31555 (pass_cprop_hardreg::execute): Add df note problem and defer insn 31556 rescans. Reprocess blocks as needed, calling df_analyze before 31557 reprocessing. Always call df_analyze before fixing up debug bind 31558 insns. 31559 315602019-03-23 Segher Boessenkool <segher@kernel.crashing.org> 31561 31562 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit 31563 big endian. 31564 315652019-03-22 Andrew Pinski <apinski@marvell.com> 31566 31567 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type 31568 attrribute for uxtw. 31569 315702019-03-26 Jeff Law <law@redhat.com> 31571 31572 PR rtl-optimization/87761 31573 * config/mips/mips-protos.h (mips_split_move): Add new argument. 31574 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move. 31575 (mips_split_move): Accept new INSN argument. Try to forward SRC 31576 into the next instruction. 31577 (mips_split_move_insn): Pass INSN through to mips_split_move. 31578 315792019-03-22 Vladimir Makarov <vmakarov@redhat.com> 31580 31581 PR rtl-optimization/89676 31582 * lra-constraints.c (curr_insn_transform): Do match reload for 31583 early clobbers even if the match was successful. 31584 315852019-03-22 Jakub Jelinek <jakub@redhat.com> 31586 31587 PR c++/87481 31588 * doc/invoke.texi (-fconstexpr-ops-limit=): Document. 31589 315902019-03-22 Bill Schmidt <wschmidt@linux.ibm.com> 31591 31592 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. 31593 315942019-03-22 Jakub Jelinek <jakub@redhat.com> 31595 31596 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>, 31597 <avx512>_fmsub_<mode>_mask3<round_name>, 31598 <avx512>_fnmadd_<mode>_mask3<round_name>, 31599 <avx512>_fnmsub_<mode>_mask3<round_name>, 31600 avx512f_vmfmadd_<mode>_mask3<round_name>, 31601 avx512f_vmfmsub_<mode>_mask3<round_name>, 31602 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate> 31603 instead of register_operand and %v instead of v for match_operand 1. 31604 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ... 31605 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use 31606 <round_nimm_predicate> instead of register_operand and %v instead of v 31607 for match_operand 1. 31608 31609 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>, 31610 <avx512>_fmadd_<mode>_mask3<round_name>, 31611 <avx512>_fmsub_<mode>_mask<round_name>, 31612 <avx512>_fmsub_<mode>_mask3<round_name>, 31613 <avx512>_fnmadd_<mode>_mask<round_name>, 31614 <avx512>_fnmadd_<mode>_mask3<round_name>, 31615 <avx512>_fnmsub_<mode>_mask<round_name>, 31616 <avx512>_fnmsub_<mode>_mask3<round_name>, 31617 <avx512>_fmaddsub_<mode>_mask<round_name>, 31618 <avx512>_fmaddsub_<mode>_mask3<round_name>, 31619 <avx512>_fmsubadd_<mode>_mask<round_name>, 31620 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use 31621 <round_nimm_predicate> instead of nonimmediate_operand. 31622 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>, 31623 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>): 31624 Use register_operand instead of <round_nimm_predicate> for the 31625 operand that needs to match output. 31626 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>, 31627 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>): 31628 Likewise. Formatting fixes. 31629 31630 PR target/89784 31631 * config/i386/i386.c (enum ix86_builtins): Remove 31632 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3. 31633 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask, 31634 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, 31635 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, 31636 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, 31637 __builtin_ia32_vfmsubss3_mask3): New builtins. 31638 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>, 31639 avx512f_vmfmadd_<mode>_mask3<round_name>, 31640 avx512f_vmfmadd_<mode>_maskz_1<round_name>, 31641 *avx512f_vmfmsub_<mode>_mask<round_name>, 31642 avx512f_vmfmsub_<mode>_mask3<round_name>, 31643 *avx512f_vmfmasub_<mode>_maskz_1<round_name>, 31644 *avx512f_vmfnmadd_<mode>_mask<round_name>, 31645 *avx512f_vmfnmadd_<mode>_mask3<round_name>, 31646 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>, 31647 *avx512f_vmfnmsub_<mode>_mask<round_name>, 31648 avx512f_vmfnmsub_<mode>_mask3<round_name>, 31649 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns. 31650 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand. 31651 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss, 31652 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd, 31653 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss, 31654 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd, 31655 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss, 31656 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd, 31657 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss, 31658 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd, 31659 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss, 31660 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss, 31661 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss, 31662 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss, 31663 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss, 31664 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss, 31665 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss, 31666 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss, 31667 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss, 31668 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss, 31669 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss, 31670 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics. 31671 316722019-03-21 Martin Sebor <msebor@redhat.com> 31673 31674 PR tree-optimization/89350 31675 * builtins.c (compute_objsize): Also ignore offsets whose upper 31676 bound is negative. 31677 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member. 31678 (builtin_memref::builtin_memref): Initialize new member. 31679 Allow EXPR to be null. 31680 (builtin_memref::extend_offset_range): Replace local with a member. 31681 Avoid assuming pointer offsets are unsigned. 31682 (builtin_memref::set_base_and_offset): Determine base object 31683 before computing offset range. 31684 (builtin_access::builtin_access): Handle memset. 31685 (builtin_access::generic_overlap): Replace local with a member. 31686 (builtin_access::strcat_overlap): Same. 31687 (builtin_access::overlap): Same. 31688 (maybe_diag_overlap): Same. 31689 (maybe_diag_access_bounds): Same. 31690 (wrestrict_dom_walker::check_call): Handle memset. 31691 (check_bounds_or_overlap): Same. 31692 316932019-03-21 Jan Hubicka <hubicka@ucw.cz> 31694 Jakub Jelinek <jakub@redhat.com> 31695 31696 PR lto/89692 31697 * tree.c (fld_type_variant, fld_incomplete_type_of, 31698 fld_process_array_type): Call fld->pset.add and don't call 31699 add_tree_to_fld_list if it returns true. 31700 (free_lang_data_in_type): Similarly with self-recursive call. Purge 31701 non-marked types from TYPE_NEXT_VARIANT list. 31702 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t). 31703 317042019-03-21 Jakub Jelinek <jakub@redhat.com> 31705 31706 * hash-table.h (hash_table): Add Lazy template parameter defaulted 31707 to false, if true, don't alloc_entries during construction, but defer 31708 it to the first method that needs m_entries allocated. 31709 (hash_table::hash_table, hash_table::~hash_table, 31710 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand, 31711 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow, 31712 hash_table::clear_slot, hash_table::traverse_noresize, 31713 hash_table::traverse, hash_table::iterator::slide): Adjust all methods. 31714 * hash-set.h (hash_set): Add Lazy template parameter defaulted to 31715 false. 31716 (hash_set::contains): If Lazy is true, use find_slot_with_hash with 31717 NO_INSERT instead of find_with_hash. 31718 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter, 31719 hash_set::m_table): Add Lazy to template params of hash_table. 31720 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param. 31721 * attribs.c (test_attribute_exclusions): Likewise. 31722 * hash-set-tests.c (test_set_of_strings): Add iterator tests for 31723 hash_set. Add tests for hash_set with Lazy = true. 31724 317252019-03-21 Richard Biener <rguenther@suse.de> 31726 31727 PR tree-optimization/89779 31728 * tree.c (tree_nop_conversion): Consolidate and fix defensive 31729 checks with respect to released SSA names now having error_mark_node 31730 type. 31731 * fold-const.c (operand_equal_p): Likewise. 31732 317332019-03-20 Andreas Krebbel <krebbel@linux.ibm.com> 31734 31735 PR target/89775 31736 * config/s390/s390.c (global_not_special_regno_p): Move to make it 31737 available to ... 31738 (s390_optimize_register_info): Use global_not_special_regno_p to 31739 check for global regs. 31740 317412019-03-20 Jakub Jelinek <jakub@redhat.com> 31742 31743 PR target/89752 31744 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't 31745 update this_alternative nor this_alternative_set. 31746 317472019-03-19 Jim Wilson <jimw@sifive.com> 31748 31749 PR target/89411 31750 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals 31751 align, size, offset. Use them to handle a BLKmode reference. Update 31752 comment. 31753 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p. 31754 317552019-03-19 Jakub Jelinek <jakub@redhat.com> 31756 31757 PR rtl-optimization/89768 31758 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode 31759 instead of GEN_INT. 31760 (unroll_loop_runtime_iterations): Likewise. 31761 317622019-03-19 Martin Sebor <msebor@redhat.com> 31763 31764 PR tree-optimization/89644 31765 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p 31766 rather than endptr as an indicator of nul-termination. 31767 31768 PR tree-optimization/89644 31769 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated 31770 arrays in determining sequence sizes in strncpy and stpncpy. 31771 317722019-03-19 Martin Liska <mliska@suse.cz> 31773 31774 PR middle-end/89737 31775 * predict.c (combine_predictions_for_bb): Empty likely_edges and 31776 unlikely_edges if there's an edge that belongs to both these sets. 31777 317782018-03-19 Segher Boessenkool <segher@kernel.crashing.org> 31779 31780 PR target/89746 31781 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a 31782 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned, 31783 go via a stack temporary. 31784 317852019-03-19 Jakub Jelinek <jakub@redhat.com> 31786 31787 PR target/89378 31788 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart 31789 instead of gen_rtx_SUBREG. 31790 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise. 31791 317922019-03-19 Richard Biener <rguenther@suse.de> 31793 31794 PR debug/88389 31795 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO. 31796 317972019-03-19 Jan Hubicka <hubicka@ucw.cz> 31798 31799 PR lto/87809 31800 PR lto/89335 31801 * tree.c (free_lang_data_in_decl): Do not free context of C++ 31802 destrutors. 31803 318042019-03-19 Jakub Jelinek <jakub@redhat.com> 31805 31806 PR target/89506 31807 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use 31808 subs for the first alternative except when operands[3] is 1. 31809 31810 PR target/89752 31811 * gimplify.c (gimplify_asm_expr): For output argument with 31812 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise 31813 diagnose error. 31814 318152019-03-19 Eric Botcazou <ebotcazou@adacore.com> 31816 31817 PR rtl-optimization/89753 31818 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for 31819 explicit unrolling factor even more robust. 31820 318212019-03-19 Jakub Jelinek <jakub@redhat.com> 31822 31823 PR target/89726 31824 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil 31825 compensation use x2 += 1 instead of x2 -= -1 and when honoring 31826 signed zeros, do another copysign after the compensation. 31827 318282019-03-18 Martin Sebor <msebor@redhat.com> 31829 31830 PR tree-optimization/89720 31831 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min 31832 more conservatively, the same as anti-range. 31833 318342019-03-18 Richard Biener <rguenther@suse.de> 31835 31836 PR middle-end/88945 31837 * tree-ssanames.c (release_ssa_name_fn): For released SSA names 31838 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping 31839 basic-blocks that are removed. Remove restoring SSA_NAME_VAR. 31840 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking. 31841 318422019-03-18 Andrew Stubbs <ams@codesourcery.com> 31843 31844 * config/gcn/gcn-run.c (struct output): Make next_output unsigned. 31845 Extend queue to 1024 entries. 31846 Add "consumed" field. 31847 (gomp_print_output): Remove print_index parameter. 31848 Add final parameter. 31849 Change limit to unsigned. 31850 Use consumed field to implement circular buffer. 31851 Detect interrupted print in final pass. 31852 Flush output at the end. 31853 (run): Update gomp_print_output usage. 31854 (main): Initialize kernargs->output_data.consumed. 31855 318562019-03-18 Richard Sandiford <richard.sandiford@arm.com> 31857 31858 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the 31859 calculation of the minimum number of scalar iterations for 31860 fully-predicated loops. 31861 318622019-03-18 Martin Jambor <mjambor@suse.cz> 31863 31864 PR tree-optimization/89546 31865 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if 31866 any propagation to its children took place. 31867 318682019-03-18 Andrew Burgess <andrew.burgess@embecosm.com> 31869 31870 PR target/89627 31871 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset 31872 parameter, and make use of it. 31873 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single. 31874 318752019-03-18 Claudiu Zissulescu <claziss@synopsys.com> 31876 31877 * config/arc/arc.opt (mcode-density-frame): Get the inital value 31878 from TARGET_CODE_DENSITY_FRAME_DEFAULT. 31879 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. 31880 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. 31881 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to 31882 match what the ops is doing. 31883 (push_multi_fp_blink): Likewise. 31884 * config/arc/arc.c (arc_override_options): Enable enter/leave when 31885 compiling for size and elf target. 31886 (arc_save_callee_enter): Adjust note to match what enter/leave 31887 operation does. 31888 318892019-03-18 Claudiu Zissulescu <claziss@synopsys.com> 31890 31891 * config/arc/arc.md (tst_movb): Fix constraint. 31892 318932019-03-18 Claudiu Zissulescu <claziss@synopsys.com> 31894 31895 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. 31896 318972019-03-18 Claudiu Zissulescu <claziss@synopsys.com> 31898 31899 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare. 31900 * config/arc/arc.c (arc_conditional_register_usage): Remove all 31901 reg_alloc_order references. 31902 (size_alloc_order): Define. 31903 (arc_adjust_reg_alloc_order): New function. 31904 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register 31905 order. 31906 (ADJUST_REG_ALLOC_ORDER): Define. 31907 (HONOR_REG_ALLOC_ORDER): Likewise. 31908 319092019-03-18 Richard Biener <rguenther@suse.de> 31910 31911 PR target/87561 31912 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided 31913 loads and stores a bit more. 31914 319152019-03-18 Richard Biener <rguenther@suse.de> 31916 31917 PR target/87561 31918 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided 31919 load pessimization to stores as well. 31920 319212019-03-18 Andrey Belevantsev <abel@ispras.ru> 31922 31923 PR middle-end/86979 31924 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible 31925 successor, use NULL as its av set. 31926 319272019-03-15 Segher Boessenkool <segher@kernel.crashing.org> 31928 31929 PR rtl-optimization/89721 31930 * lra-constraints (invariant_p): Return false if side_effects_p holds. 31931 319322019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org> 31933 31934 PR target/87532 31935 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 31936 When handling vec_extract, use modular arithmetic to allow 31937 constant selectors greater than vector length. 31938 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow 31939 V1TImode vectors to have constant selector values greater than 0. 31940 Use modular arithmetic to compute vector index. 31941 (rs6000_split_vec_extract_var): Use modular arithmetic to compute 31942 index for in-memory vectors. Correct code generation for 31943 in-register vectors. 31944 (altivec_expand_vec_ext_builtin): Use modular arithmetic to 31945 compute index. 31946 319472019-03-15 Alexandre Oliva <aoliva@redhat.com> 31948 31949 PR c++/88534 31950 PR c++/88537 31951 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of 31952 VAR_DECL args. 31953 319542019-03-15 Jakub Jelinek <jakub@redhat.com> 31955 31956 PR c++/89709 31957 * tree.c (inchash::add_expr): Strip any location wrappers. 31958 * fold-const.c (operand_equal_p): Move stripping of location wrapper 31959 after hash verification. 31960 31961 PR debug/89704 31962 * dwarf2out.c (add_const_value_attribute): Return false for MINUS, 31963 SIGN_EXTEND and ZERO_EXTEND. 31964 319652019-03-14 Jason Merrill <jason@redhat.com> 31966 Jakub Jelinek <jakub@redhat.com> 31967 31968 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather 31969 than if is_empty (*slot). 31970 * hash-set-tests.c (test_set_of_strings): Add tests for addition of 31971 existing elt and for elt removal. 31972 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal 31973 of already removed elt. 31974 319752019-03-15 H.J. Lu <hongjiu.lu@intel.com> 31976 31977 PR target/89650 31978 * config/i386/i386.c (remove_partial_avx_dependency): Handle 31979 REG_EH_REGION note. 31980 319812019-03-14 Martin Liska <mliska@suse.cz> 31982 31983 PR other/89712 31984 * doc/invoke.texi: Remove -fdump-class-hierarchy option. 31985 319862019-03-14 Richard Biener <rguenther@suse.de> 31987 31988 PR target/89711 31989 * config/i386/i386.c (make_resolver_func): Properly set 31990 DECL_CONTEXT on the RESULT_DECL. 31991 * config/rs6000/rs6000.c (make_resolver_func): Likewise. 31992 319932019-03-14 Richard Biener <rguenther@suse.de> 31994 31995 * gimple-pretty-print.c: Include cfgloop.h. 31996 (dump_gimple_phi): Adjust. 31997 (dump_gimple_bb_header): Dump loop header for GIMPLE. 31998 (pp_cfg_jump): Adjust. 31999 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well. 32000 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call. 32001 (lower_phi_internal_fn): Remove. 32002 (verify_gimple_call): Remove IFN_PHI special-casing. 32003 (dump_function_to_file): Dump IL state. 32004 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes 32005 done to deal with PHI nodes being present in non-SSA state. 32006 320072019-03-14 Jakub Jelinek <jakub@redhat.com> 32008 32009 PR ipa/89684 32010 * multiple_target.c (create_dispatcher_calls): Change 32011 references_to_redirect from vector of ipa_ref * to vector of ipa_ref. 32012 In the node->iterate_referring loop, push *ref rather than ref, call 32013 ref->remove_reference () and always pass 0 to iterate_referring. 32014 32015 PR rtl-optimization/89679 32016 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it 32017 would contain a paradoxical SUBREG. 32018 320192019-03-14 Richard Biener <rguenther@suse.de> 32020 32021 PR tree-optimization/89710 32022 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use 32023 safe_dyn_cast. 32024 320252019-03-14 Martin Liska <mliska@suse.cz> 32026 32027 * coverage.c (coverage_begin_function): Stream also 32028 end_column. 32029 * doc/gcov.texi: Document 2 new fields in JSON file. Improve 32030 documentation about function declaration location. 32031 * gcov-dump.c (tag_function): Print whole range 32032 of function declaration. 32033 * gcov.c (struct function_info): Add end_column field. 32034 (function_info::function_info): Initialize it. 32035 (output_json_intermediate_file): Output {start,end}_column 32036 fields. 32037 (read_graph_file): Read end_column. 32038 320392019-03-14 Richard Biener <rguenther@suse.de> 32040 32041 PR middle-end/89698 32042 * fold-const.c (operand_equal_p): For INDIRECT_REF check 32043 that the access types are similar. 32044 320452019-03-14 Jakub Jelinek <jakub@redhat.com> 32046 32047 PR tree-optimization/89703 32048 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types 32049 aren't compatible also with builtin_decl_explicit. Check pure 32050 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}} 32051 and BUILT_IN_STPNCPY{,_CHK}. 32052 320532019-03-14 H.J. Lu <hongjiu.lu@intel.com> 32054 32055 PR target/89523 32056 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add 32057 addr32 prefix to VSIB address for X32. 32058 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend 32059 "%M2" to opcode. 32060 (*avx512pf_gatherpf<mode>df_mask): Likewise. 32061 (*avx512pf_scatterpf<mode>sf_mask): Likewise. 32062 (*avx512pf_scatterpf<mode>df_mask): Likewise. 32063 (*avx2_gathersi<mode>): Prepend "%M3" to opcode. 32064 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode. 32065 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode. 32066 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode. 32067 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode. 32068 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.` 32069 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode. 32070 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode. 32071 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode. 32072 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode. 32073 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode. 32074 (*avx512f_scatterdi<mode>): Likewise. 32075 320762019-03-13 Vladimir Makarov <vmakarov@redhat.com> 32077 32078 PR target/85860 32079 * lra-constraints.c (inherit_in_ebb): Update 32080 potential_reload_hard_regs along with live_hard_regs. 32081 320822019-03-13 Jakub Jelinek <jakub@redhat.com> 32083 32084 PR debug/89498 32085 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use 32086 DWARF_OFFSET_SIZE. 32087 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx. 32088 320892019-03-13 Martin Sebor <msebor@redhat.com> 32090 32091 PR tree-optimization/89662 32092 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type 32093 has a size. 32094 320952019-03-13 Richard Biener <rguenther@suse.de> 32096 32097 PR middle-end/89677 32098 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not 32099 throw FP expressions at tree-affine. 32100 321012019-03-14 Richard Biener <rguenther@suse.de> 32102 32103 * tree-pretty-print.c (dump_generic_node): For -gimple properly 32104 dump negative integer constants using _Literal (type) -num. 32105 321062019-03-13 Jakub Jelinek <jakub@redhat.com> 32107 32108 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove 32109 nonlocal_value member. 32110 32111 PR middle-end/88588 32112 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args. 32113 (ipa_simd_modify_function_body): Handle PHIs. 32114 321152019-03-12 Robin Dapp <rdapp@linux.ibm.com> 32116 32117 * config/s390/s390.c (s390_option_override_internal): Use more 32118 aggressive inlining parameters. 32119 321202019-03-12 Robin Dapp <rdapp@linux.ibm.com> 32121 32122 * config/s390/3906.md: New file. 32123 * config/s390/s390.c (MAX_SCHED_UNITS): Increase. 32124 (LONGRUNNING_THRESHOLD): Remove. 32125 (MAX_SCHED_MIX_SCORE): Decrease. 32126 (MAX_SCHED_MIX_DISTANCE): Decrease. 32127 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely. 32128 (struct s390_sched_state): New struct to hold scheduling state. 32129 (S390_SCHED_STATE_NORMAL): Remove. 32130 (S390_SCHED_STATE_CRACKED): Remove. 32131 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add. 32132 (s390_get_sched_attrmask): Use new attribute. 32133 (s390_get_unit_mask): Use new units. 32134 (s390_is_fpd): New function. 32135 (s390_is_fxd): New function. 32136 (s390_is_longrunning): New function. 32137 (s390_sched_score): Use new functions. 32138 (s390_sched_reorder): Likewise. 32139 (s390_sched_variable_issue): Rework and use new functions. 32140 (s390_sched_init): Use new functions. 32141 * config/s390/s390.h (s390_tune_attr): Add z14. 32142 * config/s390/s390.md: Add z14. 32143 321442019-03-12 Robin Dapp <rdapp@linux.ibm.com> 32145 32146 * config/s390/2964.md: Update pipeline description. 32147 * config/s390/s390.c (MAX_SCHED_UNITS): Increase. 32148 (LONGRUNNING_THRESHOLD): Remove. 32149 (LATENCY_FACTOR): Remove. 32150 (s390_get_unit_mask): Add unit. 32151 (s390_sched_score): Use fxd/fpd. 32152 (s390_sched_variable_issue): Use fxd/fpd. 32153 321542019-03-12 Martin Liska <mliska@suse.cz> 32155 32156 * config/i386/i386.c: Reword an error message. 32157 321582019-03-12 Martin Jambor <mjambor@suse.cz> 32159 32160 * cgraph.c (cgraph_node::dump): Dump more info for former thunks, 32161 terminate with newline. 32162 321632019-03-12 Jakub Jelinek <jakub@redhat.com> 32164 32165 PR target/52726 32166 * config/s390/s390.md (tabort): Use %wd instead of 32167 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital 32168 letters and periods. 32169 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in 32170 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace 32171 's with %< and %>. 32172 32173 PR middle-end/89663 32174 * builtins.c (expand_builtin_int_roundingfn, 32175 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of 32176 gcc_unreachable if validate_arglist fails. 32177 321782019-03-12 Richard Biener <rguenther@suse.de> 32179 32180 PR tree-optimization/89664 32181 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly 32182 free the occurance tree after the early out. 32183 321842019-03-11 Jakub Jelinek <jakub@redhat.com> 32185 32186 PR middle-end/89655 32187 PR bootstrap/89656 32188 * vr-values.c (vr_values::update_value_range): If 32189 old_vr->varying_p (), don't update it, make new_vr also VARYING 32190 and return false. 32191 321922019-03-11 Martin Liska <mliska@suse.cz> 32193 32194 * config/aarch64/aarch64.c (aarch64_override_options_internal): 32195 Fix double string quoting. 32196 321972019-03-11 Martin Liska <mliska@suse.cz> 32198 32199 * collect-utils.c (collect_wait): Wrap apostrophes 32200 in gcc internal format with %'. 32201 * collect2.c (main): Likewise. 32202 (scan_prog_file): Likewise. 32203 (scan_libraries): Likewise. 32204 * config/i386/i386.c (ix86_expand_call): Likewise. 32205 (ix86_handle_interrupt_attribute): Likewise. 32206 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise. 32207 * config/nds32/nds32.c (nds32_insert_attributes): Likewise. 32208 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise. 32209 * lto-wrapper.c (find_crtoffloadtable): Likewise. 32210 * symtab.c (symtab_node::verify_base): Likewise. 32211 * tree-cfg.c (verify_gimple_label): Likewise. 32212 * tree.c (verify_type_variant): Likewise. 32213 322142019-03-11 Martin Liska <mliska@suse.cz> 32215 32216 * builtins.c (expand_builtin_thread_pointer): Wrap an option name 32217 in a string format message and fix GNU coding style. 32218 (expand_builtin_set_thread_pointer): Likewise. 32219 * common/config/aarch64/aarch64-common.c 32220 (aarch64_rewrite_selected_cpu): Likewise. 32221 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise. 32222 * common/config/arc/arc-common.c (arc_handle_option): Likewise. 32223 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise. 32224 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise. 32225 * common/config/i386/i386-common.c (ix86_handle_option): Likewise. 32226 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise. 32227 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise. 32228 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise. 32229 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise. 32230 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option): 32231 Likewise. 32232 * common/config/riscv/riscv-common.c 32233 (riscv_subset_list::parsing_subset_version): Likewise. 32234 (riscv_subset_list::parse_std_ext): Likewise. 32235 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. 32236 (riscv_subset_list::parse): Likewise. 32237 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise. 32238 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise. 32239 (aarch64_override_options_internal): Likewise. 32240 (aarch64_validate_mcpu): Likewise. 32241 (aarch64_validate_march): Likewise. 32242 (aarch64_validate_mtune): Likewise. 32243 (aarch64_override_options): Likewise. 32244 * config/alpha/alpha.c (alpha_option_override): Likewise. 32245 * config/arc/arc.c (arc_init): Likewise. 32246 (parse_mrgf_banked_regs_option): Likewise. 32247 (arc_override_options): Likewise. 32248 (arc_expand_builtin_aligned): Likewise. 32249 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise. 32250 (arm_expand_builtin): Likewise. 32251 * config/arm/arm.c (arm_option_check_internal): Likewise. 32252 (arm_configure_build_target): Likewise. 32253 (arm_option_override): Likewise. 32254 (arm_options_perform_arch_sanity_checks): Likewise. 32255 (arm_handle_cmse_nonsecure_entry): Likewise. 32256 (arm_handle_cmse_nonsecure_call): Likewise. 32257 (arm_tls_referenced_p): Likewise. 32258 (thumb1_expand_prologue): Likewise. 32259 * config/avr/avr.c (avr_option_override): Likewise. 32260 * config/bfin/bfin.c (bfin_option_override): Likewise. 32261 * config/c6x/c6x.c (c6x_option_override): Likewise. 32262 * config/cr16/cr16.c (cr16_override_options): Likewise. 32263 * config/cris/cris.c (cris_option_override): Likewise. 32264 * config/csky/csky.c (csky_handle_isr_attribute): Likewise. 32265 * config/darwin-c.c (macosx_version_as_macro): Likewise. 32266 * config/darwin.c (darwin_override_options): Likewise. 32267 * config/frv/frv.c (frv_expand_builtin): Likewise. 32268 * config/h8300/h8300.c (h8300_option_override): Likewise. 32269 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise. 32270 (ix86_option_override_internal): Likewise. 32271 (warn_once_call_ms2sysv_xlogues): Likewise. 32272 (ix86_expand_prologue): Likewise. 32273 (split_stack_prologue_scratch_regno): Likewise. 32274 (ix86_warn_parameter_passing_abi): Likewise. 32275 * config/ia64/ia64.c (fix_range): Likewise. 32276 * config/m68k/m68k.c (m68k_option_override): Likewise. 32277 * config/microblaze/microblaze.c (microblaze_option_override): Likewise. 32278 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise. 32279 (mips_set_compression_mode): Likewise. 32280 * config/mmix/mmix.c (mmix_option_override): Likewise. 32281 * config/mn10300/mn10300.c (mn10300_option_override): Likewise. 32282 * config/msp430/msp430.c (msp430_option_override): Likewise. 32283 * config/nds32/nds32.c (nds32_option_override): Likewise. 32284 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise. 32285 (nios2_option_override): Likewise. 32286 (nios2_expand_custom_builtin): Likewise. 32287 * config/nvptx/mkoffload.c (main): Likewise. 32288 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise. 32289 * config/pa/pa.c (fix_range): Likewise. 32290 (pa_option_override): Likewise. 32291 * config/riscv/riscv.c (riscv_parse_cpu): Likewise. 32292 (riscv_option_override): Likewise. 32293 * config/rl78/rl78.c (rl78_option_override): Likewise. 32294 * config/rs6000/aix61.h: Likewise. 32295 * config/rs6000/aix71.h: Likewise. 32296 * config/rs6000/aix72.h: Likewise. 32297 * config/rs6000/driver-rs6000.c (elf_platform): Likewise. 32298 * config/rs6000/freebsd64.h: Likewise. 32299 * config/rs6000/linux64.h: Likewise. 32300 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. 32301 (rs6000_expand_zeroop_builtin): Likewise. 32302 (rs6000_expand_mtfsb_builtin): Likewise. 32303 (rs6000_expand_set_fpscr_rn_builtin): Likewise. 32304 (rs6000_expand_set_fpscr_drn_builtin): Likewise. 32305 (rs6000_invalid_builtin): Likewise. 32306 (rs6000_expand_split_stack_prologue): Likewise. 32307 * config/rs6000/rtems.h: Likewise. 32308 * config/rx/rx.c (valid_psw_flag): Likewise. 32309 (rx_expand_builtin): Likewise. 32310 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise. 32311 * config/s390/s390.c (s390_expand_builtin): Likewise. 32312 (s390_function_profiler): Likewise. 32313 (s390_option_override_internal): Likewise. 32314 (s390_option_override): Likewise. 32315 * config/sh/sh.c (sh_option_override): Likewise. 32316 (sh_builtin_saveregs): Likewise. 32317 (sh_fix_range): Likewise. 32318 * config/sh/vxworks.h: Likewise. 32319 * config/sparc/sparc.c (sparc_option_override): Likewise. 32320 * config/spu/spu.c (spu_option_override): Likewise. 32321 (fix_range): Likewise. 32322 * config/visium/visium.c (visium_option_override): Likewise. 32323 (visium_handle_interrupt_attr): Likewise. 32324 * config/xtensa/xtensa.c (xtensa_option_override): Likewise. 32325 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise. 32326 (dbg_cnt_process_opt): Likewise. 32327 * dwarf2out.c (output_dwarf_version): Likewise. 32328 * except.c (expand_eh_return): Likewise. 32329 * gcc.c (defined): Likewise. 32330 (driver_handle_option): Likewise. 32331 (process_command): Likewise. 32332 (compare_files): Likewise. 32333 (driver::prepare_infiles): Likewise. 32334 (driver::do_spec_on_infiles): Likewise. 32335 (driver::maybe_run_linker): Likewise. 32336 * omp-offload.c (oacc_parse_default_dims): Likewise. 32337 * opts-global.c (handle_common_deferred_options): Likewise. 32338 * opts.c (parse_sanitizer_options): Likewise. 32339 (common_handle_option): Likewise. 32340 (enable_warning_as_error): Likewise. 32341 * passes.c (enable_disable_pass): Likewise. 32342 * plugin.c (parse_plugin_arg_opt): Likewise. 32343 (default_plugin_dir_name): Likewise. 32344 * targhooks.c (default_expand_builtin_saveregs): Likewise. 32345 (default_pch_valid_p): Likewise. 32346 * toplev.c (init_asm_output): Likewise. 32347 (process_options): Likewise. 32348 (toplev::run_self_tests): Likewise. 32349 * tree-cfg.c (verify_gimple_call): Likewise. 32350 * tree-inline.c (inline_forbidden_p_stmt): Likewise. 32351 (tree_inlinable_function_p): Likewise. 32352 * var-tracking.c (vt_find_locations): Likewise. 32353 323542019-03-11 Andreas Krebbel <krebbel@linux.ibm.com> 32355 32356 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not 32357 only on the else branch. 32358 323592019-03-11 Martin Liska <mliska@suse.cz> 32360 32361 * gcov.c (output_intermediate_json_line): Print function 32362 name of each line. 32363 (output_json_intermediate_file): Add new argument. 32364 * doc/gcov.texi: Document the change. 32365 323662019-03-11 Eric Botcazou <ebotcazou@adacore.com> 32367 32368 PR rtl-optimization/89588 32369 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for 32370 explicit unrolling factor more robust. 32371 323722019-03-11 Richard Biener <rguenther@suse.de> 32373 32374 PR tree-optimization/89649 32375 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype. 32376 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize 32377 on the prolog and epilog loops. 32378 (vect_loop_versioning): Return copy of loop. 32379 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize 32380 on the non-vectorized version of the loop. 32381 323822019-03-10 Uroš Bizjak <ubizjak@gmail.com> 32383 32384 PR target/68924 32385 * config/i386/sse.md (*vec_extractv2di_0_sse): 32386 Add (=r,x) alternative and corresponding splitter. 32387 323882019-03-10 Martin Jambor <mjambor@suse.cz> 32389 32390 PR tree-optimization/85762 32391 PR tree-optimization/87008 32392 PR tree-optimization/85459 32393 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool 32394 it points to if there is a type changing MEM_REF. Adjust all callers. 32395 (build_accesses_from_assign): Disable total scalarization if 32396 contains_vce_or_bfcref_p returns true through the new parameter, for 32397 both rhs and lhs. 32398 323992019-03-09 Jakub Jelinek <jakub@redhat.com> 32400 32401 PR c/88568 32402 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for 32403 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT. 32404 32405 PR target/79645 32406 * common.opt (fdiagnostics-show-labels, 32407 fdiagnostics-show-line-numbers, fdiagnostics-format=, 32408 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support, 32409 gas-locview-support, ginline-points, ginternal-reset-location-views): 32410 Terminate description text with a dot. 32411 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise. 32412 * config/mcore/mcore.opt (m210, m340): Likewise. 32413 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove, 32414 mnops=): Start description text with a capital letter. 32415 * config/arc/arc.opt (msize-level=): Likewise. 32416 * config/sh/sh.opt (minline-ic_invalidate): Likewise. 32417 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib, 32418 mnewlib): Likewise. 32419 * config/ft32/ft32.opt (msim): Likewise. 32420 (mft32b, mcompress): Likewise. Terminate description text with a dot. 32421 (mnodiv, mnopm): Terminate description text with a dot. 32422 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with 32423 a colon. 32424 * config/i386/i386.opt (prefer_vector_width, instrument_return): 32425 Likewise. 32426 * config/rx/rx.opt (nofpu): Remove trailing spaces from description 32427 text. 32428 32429 PR rtl-optimization/89634 32430 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1 32431 are modified in BB_END (e->src) instruction. 32432 324332019-03-08 David Malcolm <dmalcolm@redhat.com> 32434 32435 PR target/79926 32436 * config/i386/i386.c (ix86_set_current_function): Make "sorry" 32437 messages more amenable to translation, and improve wording. 32438 324392019-03-08 Bill Schmidt <wschmidt@linux.ibm.com> 32440 32441 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild 32442 ud- and du-chains between phases. 32443 324442019-03-08 Richard Sandiford <richard.sandiford@arm.com> 32445 32446 PR debug/89631 32447 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT 32448 instead of POLY_INT_CST. 32449 324502019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com> 32451 32452 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE 32453 requirement. 32454 324552019-03-08 Uroš Bizjak <ubizjak@gmail.com> 32456 32457 PR target/68924 32458 PR target/78782 32459 PR target/87558 32460 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic. 32461 (_mm_storeu_si64): Ditto. 32462 324632019-03-08 Martin Liska <mliska@suse.cz> 32464 32465 PR target/86952 32466 * config/i386/i386.c (ix86_option_override_internal): Disable 32467 jump tables when retpolines are used. 32468 324692019-03-08 Jan Hubicka <hubicka@ucw.cz> 32470 32471 PR go/63560 32472 * ipa-split.c (execute_split_functions): Do not split 32473 'noinline' or 'section' function. 32474 324752019-03-08 Jakub Jelinek <jakub@redhat.com> 32476 32477 PR target/79846 32478 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of 32479 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of 32480 HOST_WIDE_INT_PRINT_DEC. Formatting fixes. 32481 32482 PR ipa/80000 32483 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces 32484 from diagnostics. Formatting fixes. 32485 32486 PR target/85665 32487 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in 32488 warn_odr diagnostics. 32489 32490 PR other/80058 32491 * lra-constraints.c (process_alt_operands): Avoid one space before 32492 " at the end of line and another after " on another line in a string 32493 literal. 32494 * attribs.c (handle_dll_attribute): Likewise. 32495 * config/avr/avr-devices.c (avr_texinfo): Likewise. 32496 32497 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap 32498 warning_at or inform messages in G_() if there is no ?:. 32499 32500 PR tree-optimization/89550 32501 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at 32502 returned true. Formatting fixes. 32503 (expand_builtin_strnlen): Formatting fixes. 32504 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING 32505 if warning_at returned true. 32506 * tree-cfg.c (pass_warn_function_return::execute): Likewise. 32507 325082019-03-08 Richard Biener <rguenther@suse.de> 32509 32510 PR middle-end/89578 32511 * cfgloop.h (struct loop): Add owned_clique field. 32512 * cfgloopmanip.c (copy_loop_info): Copy it. 32513 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique 32514 cliques. 32515 * tree-inline.c (copy_loops): Remap owned_clique. 32516 * lto-streamer-in.c (input_cfg): Stream owned_clique. 32517 * lto-streamer-out.c (output_cfg): Likewise. 32518 325192019-03-08 Jakub Jelinek <jakub@redhat.com> 32520 32521 PR target/80190 32522 * config/darwin.c: Include intl.h. 32523 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not 32524 composing the message out of two separate parts. 32525 325262019-03-07 Jakub Jelinek <jakub@redhat.com> 32527 32528 PR target/80003 32529 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics 32530 doesn't start with a capital letter and doesn't end with a dot. 32531 (ix86_function_arg_boundary): Make sure diagnostics doesn't start 32532 with a capital letter. 32533 (ix86_mangle_function_version_assembler_name): Likewise. 32534 (ix86_generate_version_dispatcher_body): Likewise. 32535 (fold_builtin_cpu): Likewise. 32536 (get_builtin_code_for_version): Likewise. Remove extraneous space. 32537 (ix86_handle_interrupt_attribute): Make the diagnostics easier for 32538 translators, wrap full type name in %qs. 32539 32540 PR translation/79999 32541 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about 32542 depend clause with source (or sink) modifier. 32543 * omp-expand.c (expand_omp_ordered_sink): Likewise. 32544 32545 PR target/89602 32546 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask, 32547 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns. 32548 (avx512f_load<mode>_mask): New define_expand. 32549 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask, 32550 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask, 32551 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask, 32552 __builtin_ia32_movess_mask): New builtins. 32553 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss, 32554 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss, 32555 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd, 32556 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics. 32557 325582019-03-07 Martin Jambor <mjambor@suse.cz> 32559 32560 PR lto/87525 32561 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit 32562 for extern inline functions. 32563 325642019-03-07 Martin Jambor <mjambor@suse.cz> 32565 32566 PR ipa/88235 32567 * cgraph.h (cgraph_node): New inline method former_thunk_p. 32568 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk. 32569 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they 32570 have multiple callees. At the end check if declarations match as 32571 opposed to cgraph_nodes. 32572 325732019-03-07 Martin Liska <mliska@suse.cz> 32574 32575 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour 32576 which is equivalent to searching for this in clones chain. 32577 * symtab.c (symtab_node::verify_base): Similarly compare ASM 32578 names with a neighbour and special case first node in a chain. 32579 325802019-01-25 Jason Merrill <jason@redhat.com> 32581 32582 PR c++/80916 - spurious "static but not defined" warning. 32583 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false 32584 for an internal symbol with DECL_EXTERNAL. 32585 325862019-04-07 Richard Biener <rguenther@suse.de> 32587 32588 PR middle-end/89618 32589 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields. 32590 * tree-inline.c (copy_loops): Simplify. 32591 325922019-03-07 Martin Liska <mliska@suse.cz> 32593 32594 * dwarf2out.c (add_AT_vms_delta): Revert function removal. 32595 325962019-03-07 Richard Biener <rguenther@suse.de> 32597 32598 PR tree-optimization/89595 32599 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take 32600 stmt iterator as reference, take boolean output parameter to 32601 indicate whether the stmt was removed and thus the iterator 32602 already advanced. 32603 (dom_opt_dom_walker::before_dom_children): Re-iterate over 32604 stmts created by folding. 32605 326062019-03-07 Jakub Jelinek <jakub@redhat.com> 32607 32608 PR c++/89585 32609 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed 32610 at toplevel. 32611 326122019-03-06 Peter Bergner <bergner@linux.ibm.com> 32613 32614 PR rtl-optimization/88845 32615 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during 32616 LRA. 32617 * lra.c (remove_scratches_1): New function. 32618 (remove_scratches): Use it. 32619 (lra_emit_move): Likewise. 32620 326212019-03-06 Claudiu Zissulescu <claziss@synopsys.com> 32622 32623 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on 32624 unaligned_access variable. 32625 * config/arc/arc.c (arc_override_options): Set unaligned access 32626 default on for HS CPUs. 32627 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic. 32628 326292019-03-06 Martin Liska <mliska@suse.cz> 32630 32631 PR gcov-profile/89577 32632 * doc/gcov.texi: Prefer to use --coverage. 32633 * doc/sourcebuild.texi: Likewise. 32634 326352019-03-02 Jason Merrill <jason@redhat.com> 32636 32637 PR c++/86485 - -Wmaybe-unused with empty class ?: 32638 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR. 32639 326402019-03-05 Jakub Jelinek <jakub@redhat.com> 32641 32642 PR target/89587 32643 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only 32644 if_multiarch. 32645 32646 PR middle-end/89590 32647 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have 32648 exactly one argument. 32649 326502019-03-05 Jakub Jelinek <jakub@redhat.com> 32651 Richard Sandiford <richard.sandiford@arm.com> 32652 32653 PR tree-optimization/89570 32654 * match.pd (vec_cond into cond_op simplification): Don't use 32655 get_conditional_internal_fn, use as_internal_fn (cond_op). 32656 326572019-03-05 Wilco Dijkstra <wdijkstr@arm.com> 32658 32659 PR target/89222 32660 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem 32661 to decide when to split off a non-zero offset from a symbol. 32662 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets 32663 in function symbols. 32664 326652019-03-05 Richard Biener <rguenther@suse.de> 32666 32667 PR tree-optimization/89594 32668 * tree-if-conv.c (pass_if_conversion::execute): Handle 32669 case where .LOOP_VECTORIZED_FUNCTION was removed. 32670 326712019-03-05 Jakub Jelinek <jakub@redhat.com> 32672 32673 PR bootstrap/89560 32674 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer, 32675 instead alloca it only when needed with the needed size. 32676 32677 PR tree-optimization/89570 32678 * match.pd (vec_cond into cond_op simplification): Guard with 32679 vectorized_internal_fn_supported_p test and #if GIMPLE. 32680 32681 PR tree-optimization/89566 32682 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): 32683 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed. 32684 Punt if get_user_idx_format succeeds, but idx_format argument is 32685 not provided or doesn't have pointer type, or if idx_args is above 32686 number of provided arguments. 32687 326882019-03-04 Wilco Dijkstra <wdijkstr@arm.com> 32689 32690 PR tree-optimization/89437 32691 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications. 32692 326932019-03-04 Richard Biener <rguenther@suse.de> 32694 32695 PR middle-end/89572 32696 * tree-scalar-evolution.c: (get_loop_exit_condition): Use 32697 safe_dyn_cast. 32698 326992019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com> 32700 32701 PR tree-optimization/89487 32702 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New. 32703 (create_rdg_vertices): Compute has_nonaddressable_dataref_p. 32704 (distribute_loop): Don't do runtime alias check if there is non- 32705 addressable data reference. 32706 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL 32707 is a register variable. 32708 327092019-03-02 Jakub Jelinek <jakub@redhat.com> 32710 32711 PR target/89506 32712 * config/arm/arm.md (cmpsi2_addneg): Use 32713 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...). 32714 If operands[2] is 0 or INT_MIN, force use of subs. 32715 (*compare_scc splitter): Use gen_int_mode. 32716 (*negscc): Likewise. 32717 * config/arm/thumb2.md (*thumb2_negscc): Likewise. 32718 327192019-03-01 Kito Cheng <kito.cheng@gmail.com> 32720 Monk Chiang <sh.chiang04@gmail.com> 32721 32722 * common/config/riscv/riscv-common.c: Include sstream. 32723 (riscv_subset_list::to_string): New. 32724 (riscv_arch_str): Likewise. 32725 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute= 32726 * config.in: Regen. 32727 * config/riscv/riscv-protos.h (riscv_arch_str): New. 32728 * config/riscv/riscv.c (INCLUDE_STRING): Defined. 32729 (riscv_emit_attribute): New. 32730 (riscv_file_start): Emit attribute if needed. 32731 (riscv_option_override): Init riscv_emit_attribute_p. 32732 * config/riscv/riscv.opt (mriscv-attribute): New option. 32733 * configure.ac (riscv*-*-*): Check binutils is supporting ELF 32734 * configure: Regen. 32735 * doc/install.texi: Document --with-riscv-attribute. 32736 * doc/invoke.texi: Document -mriscv-attribute. 32737 32738 * common/config/riscv/riscv-common.c: 32739 Include config/riscv/riscv-protos.h. 32740 (INCLUDE_STRING): Defined. 32741 (RISCV_DONT_CARE_VERSION): Defined. 32742 (riscv_subset_t): Declare. 32743 (riscv_subset_t::riscv_subset_t): New. 32744 (riscv_subset_list): Declare. 32745 (riscv_subset_list::riscv_subset_list): New. 32746 (riscv_subset_list::~riscv_subset_list): Likewise. 32747 (riscv_subset_list::parsing_subset_version): Likewise. 32748 (riscv_subset_list::parse_std_ext): Likewise. 32749 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. 32750 (riscv_subset_list::add): Likewise. 32751 (riscv_subset_list::lookup): Likewise. 32752 (riscv_subset_list::xlen): Likewise. 32753 (riscv_subset_list::parse): Likewise. 32754 (riscv_supported_std_ext): Likewise. 32755 (current_subset_list): Likewise. 32756 (riscv_parse_arch_string): Using riscv_subset_list::parse to 32757 parse. 32758 327592019-03-01 Segher Boessenkool <segher@kernel.crashing.org> 32760 32761 * config/rs6000/rs6000.c (rs6000_option_override_internal): If 32762 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index. 32763 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option. 32764 327652019-03-01 Alexander Monakov <amonakov@ispras.ru> 32766 32767 PR rtl-optimization/85899 32768 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for 32769 fallthru edges leading to the exit block. 32770 327712019-03-01 Tamar Christina <tamar.christina@arm.com> 32772 32773 PR target/89517 32774 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16, 32775 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line. 32776 327772019-03-01 Richard Sandiford <richard.sandiford@arm.com> 32778 32779 PR tree-optimization/89535 32780 * tree-vect-stmts.c (vectorizable_call): Record the vector types 32781 for each operand. Calculate the fallback choice for mask operands 32782 and pass it to vect_get_vec_def_for_operand. 32783 327842019-03-01 Richard Biener <rguenther@suse.de> 32785 32786 PR middle-end/89541 32787 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may 32788 get virtual operands. 32789 (get_expr_operands): Handle CONST_DECL like other decls. 32790 327912019-03-01 Jakub Jelinek <jakub@redhat.com> 32792 32793 PR middle-end/89503 32794 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit 32795 on DECL_P and EXPR_P. 32796 327972019-03-01 Richard Biener <rguenther@suse.de> 32798 32799 PR middle-end/89497 32800 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags 32801 argument, defaulted to zero. 32802 * passes.c (execute_function_todo): Pass down SSA update flags 32803 to cleanup_tree_cfg. 32804 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h. 32805 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA 32806 form if requested. 32807 (cleanup_tree_cfg): Get and pass down SSA update flags. 32808 328092019-03-01 Jakub Jelinek <jakub@redhat.com> 32810 32811 PR bootstrap/89539 32812 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to 32813 early_lto_debug argument. 32814 328152019-02-28 Eric Botcazou <ebotcazou@adacore.com> 32816 32817 PR tree-optimization/89536 32818 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test 32819 only whether bit #0 of the value is 0 instead of the entire value. 32820 328212019-02-28 Marek Polacek <polacek@redhat.com> 32822 32823 PR c++/87068 - missing diagnostic with fallthrough statement. 32824 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found 32825 at the end of a seq, save its location to walk_stmt_info. 32826 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of 32827 a switch. 32828 328292019-02-28 Jan Hubicka <hubicka@ucw.cz> 32830 32831 PR lto/88585 32832 * tree.c (find_atomic_core_type): Move ahead in file. 32833 (check_base_type): Correctly compare alignments of atomic types. 32834 328352019-02-28 H.J. Lu <hongjiu.lu@intel.com> 32836 32837 PR target/89455 32838 * config/i386/i386.c (get_builtin_code_for_version): Identify 32839 Westmere from PCLMUL, instead of AES. 32840 328412019-02-28 Jakub Jelinek <jakub@redhat.com> 32842 32843 PR target/89434 32844 * config/arm/arm.md (*subsi3_carryin_compare_const): Use 32845 trunc_int_for_mode (-INTVAL (...), SImode), just instead of 32846 -UINTVAL (...). 32847 328482019-02-28 Tamar Christina <tamar.christina@arm.com> 32849 32850 PR target/88530 32851 * config/aarch64/aarch64-option-extensions.def: Document it. 32852 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature 32853 if empty hwcaps. 32854 328552019-02-28 Jakub Jelinek <jakub@redhat.com> 32856 32857 PR c/89520 32858 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for 32859 builtins if they don't have a single scalar floating point argument. 32860 Formatting fixes. 32861 328622019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de> 32863 32864 PR rtl-optimization/89490 32865 * varasm.c (get_block_for_section): Bail out for mergeable sections. 32866 (default_use_anchors_for_symbol_p, output_object_block): Assert the 32867 block section is not mergeable. 32868 328692019-02-27 Jakub Jelinek <jakub@redhat.com> 32870 32871 PR target/70341 32872 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename 32873 old define_insn to ... 32874 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs. 32875 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand. 32876 Rename old define_insn to ... 32877 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs. 32878 (thumb2_casesi_internal_pic): New define_expand. Rename old 32879 define_insn to ... 32880 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs. 32881 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch 32882 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it. 32883 328842019-02-27 Richard Biener <rguenther@suse.de> 32885 32886 PR debug/88878 32887 * dwarf2out.c (use_debug_types): Disable when in_lto_p. 32888 328892019-02-27 Richard Biener <rguenther@suse.de> 32890 32891 * passes.c (should_skip_pass_p): Do not skip cgraph-edge 32892 building. 32893 328942019-02-27 Richard Biener <rguenther@suse.de> 32895 32896 PR debug/88878 32897 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug 32898 parameter, prefix section name with .gnu.debuglto_ if true. 32899 (dwarf2out_finish): Pass false to output_comdat_type_unit. 32900 (dwarf2out_early_finish): Pass true to output_comdat_type_unit. 32901 329022019-02-27 Richard Biener <rguenther@suse.de> 32903 32904 PR debug/89514 32905 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p 32906 rather than on use_debug_types, doing what output_die does. 32907 (value_format): Likewise. 32908 329092019-02-27 Martin Jambor <mjambor@suse.cz> 32910 Martin Sebor <msebor@redhat.com> 32911 32912 * doc/invoke.texi (Warning Options): Reword description of 32913 -Wno-absolute-value. 32914 329152019-02-27 Jakub Jelinek <jakub@redhat.com> 32916 32917 PR tree-optimization/89280 32918 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p, 32919 builtin_setjmp_setup_bb): New functions. 32920 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges. 32921 When visiting __builtin_setjmp_setup block, queue in special 32922 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding 32923 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks 32924 from visited after the loop if they don't have any visited successor 32925 blocks. 32926 329272018-02-26 Steve Ellcey <sellcey@marvell.com> 32928 32929 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name): 32930 New function. 32931 (TARGET_GET_MULTILIB_ABI_NAME): New macro. 32932 329332019-02-26 Jakub Jelinek <jakub@redhat.com> 32934 32935 PR c++/89507 32936 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs 32937 with types other than sizetype/ssizetype. 32938 329392019-02-26 Eric Botcazou <ebotcazou@adacore.com> 32940 32941 * config/sparc/sparc-opts.h (enum processor_type): Rename to... 32942 (enum sparc_processor_type): ...this. 32943 (enum sparc_code_model_type): New enumeration type. 32944 (enum sparc_memory_model_type): Tweak comments. 32945 * config/sparc/sparc.opt (mcpu): Adjust to above renaming. 32946 (mtune): Likewise. 32947 (mcmodel): Use sparc_code_model enumeration and variable. 32948 (sparc_code_model): New enumeration. 32949 (mdebug): Add Undocumented marker. 32950 * config/sparc/sparc.h (enum cmodel): Delete. 32951 (sparc_cmodel): Likewise. 32952 (TARGET_CM_MEDLOW): Adjust to above renaming. 32953 (TARGET_CM_MEDMID): Likewise. 32954 (TARGET_CM_MEDANY): Likewise. 32955 (TARGET_CM_EMBMEDANY): Likewise. 32956 * config/sparc/sparc.c (sparc_cmodel): Delete. 32957 (sparc_option_override): Remove string/value mapping support for the 32958 code model. Move code and memory model support to after the handling 32959 of target flags. Do private machine setup last. 32960 (sparc_emit_set_symbolic_const64): Use sparc_code_model. 32961 (sparc_legitimize_reload_address): Likewise. 32962 (sparc_output_mi_thunk): Likewise. 32963 * config/sparc/sparc.md (cpu): Adjust comment to above renaming. 32964 329652019-02-26 Jakub Jelinek <jakub@redhat.com> 32966 32967 PR tree-optimization/89500 32968 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment. 32969 (handle_builtin_strlen): Remove noncst_bound variable. Always 32970 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to 32971 cst if the first cst bytes starting at x are known to be non-zero, 32972 even if the string is not zero terminated. Don't try to modify 32973 *si for strnlen. Update strlen_to_stridx only for strlen or if 32974 we can prove strnlen returns the same value as strlen would. 32975 329762019-02-26 Martin Liska <mliska@suse.cz> 32977 32978 * alloc-pool.h (struct pool_usage): Remove extra 32979 print_dash_line. 32980 * bitmap.h (struct bitmap_usage): Likewise. 32981 * ggc-common.c (struct ggc_usage): Likewise. 32982 * mem-stats.h (struct mem_usage): Likewise. 32983 (mem_alloc_description::dump): Print dash lines 32984 here and repeat header at the end of a table report. 32985 It's then more readable. 32986 * tree-phinodes.c (phinodes_print_statistics): Make 32987 horizontal alignment. 32988 * tree-ssanames.c (ssanames_print_statistics): Likewise. 32989 * vec.c (struct vec_usage): Remove extra print_dash_line. 32990 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT. 32991 329922019-02-26 Uroš Bizjak <ubizjak@gmail.com> 32993 32994 * doc/extend.texi (__builtin_object_size): 32995 Use @pxref instead of @xref inside parenthesis. 32996 (__builtin_has_attribute): Add missing comma after @xref. 32997 (__builtin_object_size): Ditto. 32998 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i]. 32999 330002019-02-26 Jeff Law <law@redhat.com> 33001 33002 PR rtl-optimization/87761 33003 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to 33004 detect obviously dead insns and delete them. 33005 330062019-02-26 Richard Biener <rguenther@suse.de> 33007 33008 PR tree-optimization/89505 33009 * tree-ssa-structalias.c (compute_dependence_clique): Make sure 33010 to handle restrict pointed-to vars with multiple subvars 33011 correctly. 33012 330132019-02-26 Richard Biener <rguenther@suse.de> 33014 33015 PR tree-optimization/89489 33016 * tree-parloops.c (create_loop_fn): Copy over last_clique. 33017 330182019-02-26 Eric Botcazou <ebotcazou@adacore.com> 33019 33020 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix 33021 and move around comment. 33022 <BIT_AND_EXPR>: Likewise. 33023 <BIT_NOT_EXPR>: Add specific handling for boolean types. 33024 330252019-02-26 Jakub Jelinek <jakub@redhat.com> 33026 33027 PR target/89474 33028 * config/i386/i386.c (remove_partial_avx_dependency): Call 33029 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than 33030 after changing possibly many instructions to use that pseudo. Fix up 33031 insertion of v4sf_const0 setter at the start of bb. 33032 330332019-02-25 Sandra Loosemore <sandra@codesourcery.com> 33034 33035 PR c/80409 33036 * doc/extend.texi (Variadic Pointer Args): New section. 33037 330382019-02-25 Sandra Loosemore <sandra@codesourcery.com> 33039 Martin Sebor <msebor@gmail.com> 33040 33041 * common.opt (Wattribute-alias): Likewise. 33042 * doc/invoke.texi (Option Summary): List general form of 33043 -Wattribute-alias=. List positive form of -Wmissing-attributes. 33044 (-Wmissing-attributes): Invert entry, rewrite and correct default. 33045 Add cross-references. 33046 (-Wattribute-alias): Rewrite and correct default. Mention 33047 considered attributes (same as for -Wmissing-attributes). 33048 330492019-02-25 Paul A. Clarke <pc@us.ibm.com> 33050 33051 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian. 33052 (_mm_cvtpd_ps): Likewise. 33053 (_mm_cvttpd_epi32): Likewise. 33054 33055 PR target/89338 33056 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch. 33057 (_mm_cvt_ss2si): Fix type mismatch and 32-bit. 33058 33059 PR target/89339 33060 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit. 33061 330622019-02-25 Tamar Christina <tamar.christina@arm.com> 33063 33064 PR target/88530 33065 * common/config/aarch64/aarch64-common.c 33066 (struct aarch64_option_extension): Add is_synthetic. 33067 (all_extensions): Use it. 33068 (TARGET_OPTION_INIT_STRUCT): Define hook. 33069 (struct gcc_targetm_common): Moved to end. 33070 (all_extensions_by_on): New. 33071 (opt_ext_cmp, typedef opt_ext): New. 33072 (aarch64_option_init_struct): New. 33073 (aarch64_contains_opt): New. 33074 (aarch64_get_extension_string_for_isa_flags): Output smallest set. 33075 * config/aarch64/aarch64-option-extensions.def 33076 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto. 33077 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3, 33078 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres): 33079 Set is_synthetic to false. 33080 (crypto): Set is_synthetic to true. 33081 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add 33082 SYNTHETIC. 33083 330842019-02-25 Tamar Christina <tamar.christina@arm.com> 33085 33086 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, 33087 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32, 33088 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, 33089 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, 33090 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, 33091 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, 33092 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, 33093 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): 33094 Rename ... 33095 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16, 33096 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16, 33097 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16, 33098 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16, 33099 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16, 33100 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16, 33101 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16, 33102 vfmlsl_laneq_high_f16): ... To this. 33103 * config/arm/neon.md: Update comments. 33104 331052019-02-25 Tamar Christina <tamar.christina@arm.com> 33106 33107 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, 33108 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32, 33109 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, 33110 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32, 33111 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32, 33112 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32, 33113 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32, 33114 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32): 33115 Rename ... 33116 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16, 33117 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16, 33118 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16, 33119 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16, 33120 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16, 33121 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16, 33122 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16, 33123 vfmlslq_laneq_high_f16): ... To this. 33124 331252019-02-25 Alexander Monakov <amonakov@ispras.ru> 33126 33127 PR rtl-optimization/86096 33128 * df-scan.c (df_mw_compare): Do not check mw_reg fields when 33129 comparing mw_order values. 33130 331312019-02-25 Jakub Jelinek <jakub@redhat.com> 33132 33133 PR target/89434 33134 * config/arm/arm.md (*subsi3_carryin_const): Use 33135 arm_neg_immediate_operand predicate instead of 33136 arm_not_immediate_operand, "L" constraint instead of "K" and 33137 print it using %n2 instead of %B2. 33138 (*subsi3_carryin_const0): New define_insn. 33139 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate 33140 instead of arm_not_operand and "I" constraint instead of "K" and 33141 print it using %n3 instead of %B2. Instead of using match_dup 2 add 33142 another match_operand and in the condition check that it is negation 33143 of operands[2]. 33144 (*subsi3_carryin_compare_const0): New define_ins. 33145 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of 33146 *subsi3_carryin_const. 33147 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const, 33148 split into *subsi3_carryin_compare_const0 if the highpart is zero. 33149 33150 PR target/89438 33151 * config/arm.vfp.md (*negdf2_vfp): Use 33152 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000). 33153 * config/arm/neon.md (neon_copysignf<mode>): Likewise. 33154 331552019-02-24 Jakub Jelinek <jakub@redhat.com> 33156 33157 PR rtl-optimization/89445 33158 * simplify-rtx.c (simplify_ternary_operation): Don't use 33159 simplify_merge_mask on operands that may trap. 33160 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of 33161 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if 33162 second operand is CONST_VECTOR, check if any element could be zero. 33163 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless 33164 their operands can trap. 33165 331662019-02-23 Martin Sebor <msebor@redhat.com> 33167 33168 * gimple-ssa-sprintf.c (target_strtol): Rename... 33169 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX. 33170 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to 33171 check for range error. 33172 331732019-02-23 H.J. Lu <hongjiu.lu@intel.com> 33174 33175 PR driver/69471 33176 * opts-common.c (prune_options): Also prune joined switches 33177 with Negative and RejectNegative. 33178 * config/i386/i386.opt (march=): Add Negative(march=). 33179 (mtune=): Add Negative(mtune=). 33180 * doc/options.texi: Document Negative used together with Joined 33181 and RejectNegative. 33182 331832019-02-22 Martin Sebor <msebor@redhat.com> 33184 33185 * doc/extend.texi (Other Builtins): Add 33186 __builtin_is_constant_evaluated. 33187 331882019-02-22 Richard Biener <rguenther@suse.de> 33189 33190 PR tree-optimization/87609 33191 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques. 33192 331932019-02-22 Jeff Law <law@redhat.com> 33194 33195 PR rtl-optimization/87761 33196 * config/mips/mips.md: Add new combiner pattern to recognize 33197 a bitfield extraction using (ashiftrt (truncate (ashift (...)))). 33198 331992019-02-22 Matthew Malcomson <matthew.malcomson@arm.com> 33200 33201 PR target/89324 33202 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on 33203 destination register in peepholes generating patterns for ADDS/SUBS. 33204 (add<mode>3_compare0, 33205 *addsi3_compare0_uxtw, add<mode>3_compareC, 33206 add<mode>3_compareV_imm, add<mode>3_compareV, 33207 *adds_<optab><ALLX:mode>_<GPI:mode>, 33208 *subs_<optab><ALLX:mode>_<GPI:mode>, 33209 *adds_<optab><ALLX:mode>_shift_<GPI:mode>, 33210 *subs_<optab><ALLX:mode>_shift_<GPI:mode>, 33211 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2, 33212 *sub<mode>3_compare0, *subsi3_compare0_uxtw, 33213 sub<mode>3_compare1): Allow stack pointer for source register. 33214 * config/aarch64/predicates.md (aarch64_general_reg): New predicate. 33215 332162019-02-22 Martin Sebor <msebor@redhat.com> 33217 33218 PR tree-optimization/88993 33219 PR tree-optimization/88853 33220 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func): 33221 New helper. 33222 (sprintf_dom_walker::call_info::is_string_func): New helper. 33223 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings 33224 for formatted string functions. 33225 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment. 33226 332272019-02-22 Martin Sebor <msebor@redhat.com> 33228 33229 PR c/89425 33230 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in 33231 unreachable subexpressions. 33232 332332019-02-22 H.J. Lu <hongjiu.lu@intel.com> 33234 Hongtao Liu <hongtao.liu@intel.com> 33235 Sunil K Pandey <sunil.k.pandey@intel.com> 33236 33237 PR target/87007 33238 * config/i386/i386-passes.def: Add 33239 pass_remove_partial_avx_dependency. 33240 * config/i386/i386-protos.h 33241 (make_pass_remove_partial_avx_dependency): New. 33242 * config/i386/i386.c (make_pass_remove_partial_avx_dependency): 33243 New function. 33244 (pass_data_remove_partial_avx_dependency): New. 33245 (pass_remove_partial_avx_dependency): Likewise. 33246 (make_pass_remove_partial_avx_dependency): Likewise. 33247 * config/i386/i386.md (avx_partial_xmm_update): New attribute. 33248 (*extendsfdf2): Add avx_partial_xmm_update. 33249 (truncdfsf2): Likewise. 33250 (*float<SWI48:mode><MODEF:mode>2): Likewise. 33251 (SF/DF conversion splitters): Disabled for TARGET_AVX. 33252 332532019-02-22 Aldy Hernandez <aldyh@redhat.com> 33254 33255 PR middle-end/85598 33256 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop 33257 analysis for pass. 33258 332592019-02-22 Thiago Macieira <thiago.macieira@intel.com> 33260 33261 PR target/89444 33262 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES. 33263 (PTA_SKYLAKE): Add PTA_AES. 33264 (PTA_GOLDMONT): Likewise. 33265 332662019-02-22 Sudakshina Das <sudi.das@arm.com> 33267 33268 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti 33269 instruction if enabled. 33270 (aarch64_override_options): Remove reference to return address key. 33271 332722019-02-22 Richard Biener <rguenther@suse.de> 33273 33274 PR tree-optimization/89440 33275 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove 33276 not necessary assert. 33277 332782019-02-22 Thomas Schwinge <thomas@codesourcery.com> 33279 33280 PR fortran/72741 33281 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into... 33282 (oacc_replace_fn_attrib_attr): ... this new function. 33283 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype. 33284 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround. 33285 332862019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33287 33288 * config/arm/arm-cpus.in (ares): Rename to... 33289 (neoverse-n1): ... This. Add ares as alias. 33290 * config/arm/arm-tables.opt: Regenerate. 33291 * config/arm/arm-tune.md: Likewise. 33292 * doc/invoke.txt (ARM Options): Document neoverse-n1. 33293 332942019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33295 33296 * config/aarch64/aarch64-cores.def (neoverse-e1): Define. 33297 * config/aarch64/aarch64-tune.md: Regenerate. 33298 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option. 33299 333002019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33301 33302 * config/aarch64/aarch64.c (ares_tunings): Rename to... 33303 (neoversen1_tunings): ... This. 33304 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above. 33305 (neoverse-n1): New CPU. 33306 * config/aarch64/aarch64-tune.md: Regenerate. 33307 * doc/invoke.txt (AArch64 Options): Document neoverse-n1. 33308 333092019-02-22 Richard Biener <rguenther@suse.de> 33310 33311 PR middle-end/87609 33312 * cfghooks.h (dependence_hash): New typedef. 33313 (struct copy_bb_data): New type. 33314 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument. 33315 (duplicate_block): Likewise. 33316 * cfghooks.c (duplicate_block): Pass down copy_bb_data. 33317 (copy_bbs): Create and pass down copy_bb_data. 33318 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust. 33319 (rtl_duplicate_bb): Likewise. 33320 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL 33321 remap dependence info. 33322 333232019-02-22 Richard Biener <rguenther@suse.de> 33324 33325 PR tree-optimization/87609 33326 * tree-core.h (tree_base): Document special clique values. 33327 * tree-inline.c (remap_dependence_clique): Do not use the 33328 special clique value of one. 33329 (maybe_set_dependence_info): Use clique one. 33330 (clear_dependence_clique): New callback. 33331 (compute_dependence_clique): Clear clique one from all refs 33332 before assigning it (again). 33333 333342019-02-21 Martin Sebor <msebor@redhat.com> 33335 33336 * doc/extend.texi (__clear_cache): Correct signature. 33337 333382019-02-21 Ian Lance Taylor <iant@golang.org> 33339 33340 PR go/89170 33341 * varasm.c (decode_addr_const): Call lookup_constant_def rather 33342 than output_constant_def. 33343 (add_constant_to_table): New static function. 33344 (output_constant_def): Call add_constant_to_table. 33345 (tree_output_constant_def): Likewise. 33346 333472019-02-21 Jakub Jelinek <jakub@redhat.com> 33348 33349 PR c++/89285 33350 * builtins.c (fold_builtin_arith_overflow): If first two args are 33351 INTEGER_CSTs, set intres and ovfres to constants rather than calls 33352 to ifn. 33353 333542019-02-21 H.J. Lu <hongjiu.lu@intel.com> 33355 33356 PR target/87412 33357 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an 33358 error for -mindirect-branch/-mfunction-return with incompatible 33359 -fcf-protection. 33360 333612019-02-21 Jakub Jelinek <jakub@redhat.com> 33362 33363 PR bootstrap/88714 33364 * constraints.md (q): Remove. 33365 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint 33366 instead of q. 33367 333682019-02-21 Martin Jambor <mjambor@suse.cz> 33369 33370 PR hsa/89302 33371 * omp-general.c (omp_extract_for_data): Removed a duplicate call 33372 to omp_adjust_for_condition, moved NE_EXPR code_cond processing... 33373 (omp_adjust_for_condition): ...here. Added necessary parameters. 33374 * omp-general.h (omp_adjust_for_condition): Updated declaration. 33375 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass 33376 proper values to new parameters of omp_adjust_for_condition. 33377 333782019-02-20 Jakub Jelinek <jakub@redhat.com> 33379 33380 PR middle-end/89412 33381 * expr.c (expand_assignment): If result is a MEM, use change_address 33382 instead of simplify_gen_subreg. 33383 333842019-02-20 Jakub Jelinek <jakub@redhat.com> 33385 David Malcolm <dmalcolm@redhat.com> 33386 33387 PR middle-end/89091 33388 * fold-const.c (decode_field_reference): Return NULL_TREE if 33389 lang_hooks.types.type_for_size returns NULL. Check it before 33390 overwriting *exp_. Use return NULL_TREE instead of return 0. 33391 333922019-02-20 Jakub Jelinek <jakub@redhat.com> 33393 33394 PR middle-end/88074 33395 PR middle-end/89415 33396 * toplev.c (do_compile): Double the emin/emax exponents to workaround 33397 buggy mpc_norm. 33398 333992019-02-20 Uroš Bizjak <ubizjak@gmail.com> 33400 33401 PR target/89397 33402 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check 33403 TARGET_SSE in addition to TARGET_SSE_MATH. 33404 33405 (ix86_excess_precision): Ditto. 33406 (ix86_float_exceptions_rounding_supported_p): Ditto. 33407 (use_rsqrt_p): Ditto. 33408 * config/i386/sse.md (rsqrt<mode>2): Ditto. 33409 334102019-02-20 David Malcolm <dmalcolm@redhat.com> 33411 33412 PR c/89410 33413 * diagnostic-show-locus.c (layout::calculate_line_spans): Use 33414 linenum_arith_t when determining if two adjacent line spans are 33415 close enough to merge. 33416 (diagnostic_show_locus): Use linenum_arith_t when iterating over 33417 lines within each line_span. 33418 334192019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com> 33420 33421 PR target/86487 33422 * lra-constraints.c(uses_hard_regs_p): Fix handling of 33423 paradoxical SUBREGS. 33424 334252019-02-20 Li Jia He <helijia@linux.ibm.com> 33426 33427 PR target/88100 33428 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin) 33429 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH, 33430 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before 33431 range checking it. 33432 334332019-02-19 Jonathan Wakely <jwakely@redhat.com> 33434 33435 * config/gcn/gcn.c (print_operand): Fix typo. 33436 334372019-02-19 Richard Biener <rguenther@suse.de> 33438 33439 PR middle-end/88074 33440 * toplev.c (do_compile): Initialize mpfr's exponent range 33441 based on available float modes. 33442 334432019-02-19 Eric Botcazou <ebotcazou@adacore.com> 33444 33445 * rtlanal.c (get_initial_register_offset): Fall back to the estimate 33446 as long as the epilogue isn't completed. 33447 334482019-02-18 Martin Sebor <msebor@redhat.com> 33449 33450 * doc/cpp.texi (Conditional syntax): Add __has_attribute, 33451 __has_cpp_attribute, and __has_include. 33452 334532019-02-18 Martin Sebor <msebor@redhat.com> 33454 33455 * doc/invoke.texi (-Wreturn-type): Correct and expand. 33456 334572019-02-18 Martin Sebor <msebor@redhat.com> 33458 33459 PR middle-end/89294 33460 * tree.c (valid_constant_size_p): Avoid assuming size is a constant 33461 expression. 33462 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator. 33463 334642019-02-18 Richard Biener <rguenther@suse.de> 33465 33466 PR tree-optimization/89296 33467 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting 33468 of no-warning flag to cases that might emit the bogus warning. 33469 334702019-02-18 Jakub Jelinek <jakub@redhat.com> 33471 33472 PR bootstrap/88714 33473 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of 33474 "q" constraint. 33475 * config/arm/vfp.md (*movdi_vfp): Likewise. 33476 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of 33477 "q" constraint for operands[0]. 33478 33479 PR target/89369 33480 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask, 33481 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct 33482 pattern in a temporary buffer. 33483 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather 33484 than 64-operands[2]. 33485 33486 PR target/89361 33487 * config/s390/s390.c (s390_indirect_branch_attrvalue, 33488 s390_indirect_branch_settings): Define unconditionally. 33489 (s390_set_current_function): Likewise, but guard the whole body except 33490 the s390_indirect_branch_settings call with 33491 #if S390_USE_TARGET_ATTRIBUTE. 33492 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally. 33493 33494 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze, 33495 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt): 33496 Use HOST_WIDE_INT_M1U instead of ~(0ULL). 33497 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use 33498 HOST_WIDE_INT_1U instead of 1ULL. 33499 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int 33500 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul. 33501 (*insv<mode><clobbercc_or_nocc>_appendbitsleft, 33502 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U 33503 instead of 1UL. 33504 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U 33505 instead of 1ul. 33506 335072019-02-18 Martin Jambor <mjambor@suse.cz> 33508 33509 PR tree-optimization/89209 33510 * tree-sra.c (create_access_replacement): New optional parameter 33511 reg_tree. Use it as a type if non-NULL and access type is not of 33512 a register type. 33513 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it 33514 to create_access_replacement. 33515 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name. 33516 Check lacc is non-NULL before attempting to re-create it on the RHS. 33517 335182019-02-18 Martin Liska <mliska@suse.cz> 33519 33520 PR ipa/89306 33521 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1 33522 by default. 33523 (symbol_table::free_edge): Recycle m_summary_id. 33524 * cgraph.h (get_summary_id): New. 33525 (symbol_table::release_symbol): Set m_summary_id to -1 33526 by default. 33527 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id. 33528 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from 33529 function_summary to fast_function_summary. 33530 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise. 33531 * ipa-pure-const.c (class funct_state_summary_t): 33532 Switch from function_summary to fast_function_summary. 33533 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise. 33534 (class ipa_ref_opt_summary_t): Switch from function_summary 33535 to fast_function_summary. 33536 * symbol-summary.h (class function_summary_base): New class 33537 that is created from base of former function_summary. 33538 (function_summary_base::unregister_hooks): New. 33539 (class function_summary): Inherit from function_summary_base. 33540 (class call_summary_base): New class 33541 that is created from base of former call_summary. 33542 (class call_summary): Inherit from call_summary_base. 33543 (struct is_same): New. 33544 (class fast_function_summary): New summary class. 33545 (class fast_call_summary): New summary class. 33546 * vec.h (vec_safe_grow_cleared): New function. 33547 335482019-02-18 Martin Liska <mliska@suse.cz> 33549 33550 * config/i386/i386.c (ix86_get_multilib_abi_name): New function. 33551 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined. 33552 * doc/tm.texi: Document new target hook. 33553 * doc/tm.texi.in: Likewise. 33554 * target.def: Add new target macro. 33555 * gcc.c (find_fortran_preinclude_file): Do not search multilib 33556 suffixes. 33557 335582019-02-17 Alan Modra <amodra@gmail.com> 33559 33560 PR target/89271 33561 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int 33562 output reg on add insn. 33563 (<bd>tf_<mode> split): Likewise. Match predicates with insn. 33564 335652019-02-16 H.J. Lu <hongjiu.lu@intel.com> 33566 33567 PR target/89372 33568 * config/i386/sse.md (ssedoublemode): Remove V4HI. 33569 (PMULHRSW): Likewise. 33570 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not 33571 TARGET_AVX2. 33572 (ssse3_pmulhrswv4hi3): New expander. 33573 335742019-02-16 H.J. Lu <hongjiu.lu@intel.com> 33575 33576 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require 33577 MMX. Add isa attribute. 33578 335792019-02-16 Jakub Jelinek <jakub@redhat.com> 33580 33581 PR rtl-optimization/66152 33582 * builtins.h (c_readstr): Declare. 33583 * builtins.c (c_readstr): Remove forward declaration. Add 33584 null_terminated_p argument, if false, read all bytes from the 33585 string instead of stopping after '\0'. 33586 * expr.c (string_cst_read_str): New function. 33587 (store_expr): Use string_cst_read_str instead of 33588 builtin_strncpy_read_str. Try to store by pieces the whole 33589 exp_len first, and only if that fails, split it up into 33590 store by pieces followed by clear_storage. Formatting fix. 33591 33592 * config/i386/i386.md (*movqi_internal): Remove static from 33593 buf variable. Use output_asm_insn (buf, operands); return ""; 33594 instead of return buf;. 33595 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>, 33596 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3, 33597 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise. 33598 335992019-02-15 Eric Botcazou <ebotcazou@adacore.com> 33600 33601 * config/sparc/linux.h (ASAN_CC1_SPEC): Define. 33602 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC. 33603 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise. 33604 (CC1_SPEC): Likewise. 33605 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit. 33606 336072019-02-15 Eric Botcazou <ebotcazou@adacore.com> 33608 33609 * asan.c (asan_emit_stack_protection): Use full-sized mask to align 33610 the base address on 64-bit strict-alignment platforms. 33611 336122019-02-15 H.J. Lu <hongjiu.lu@intel.com> 33613 33614 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'. 33615 336162019-02-15 Uroš Bizjak <ubizjak@gmail.com> 33617 33618 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define. 33619 336202019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com> 33621 33622 PR rtl-optimization/88308 33623 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts 33624 on copied instruction. 33625 336262019-02-15 Eric Botcazou <ebotcazou@adacore.com> 33627 33628 * final.c (insn_current_reference_address): Replace test on JUMP_P 33629 with test on jump_to_label_p. 33630 * config/visium/visium-passes.def: New file. 33631 * config/visium/t-visium (PASSES_EXTRA): Define. 33632 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare. 33633 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust. 33634 (TRAMPOLINE_ALIGNMENT): Define. 33635 * config/visium/visium.c (visium_option_override): Do not register 33636 the machine-specific reorg pass here. 33637 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary 33638 for the GR6. 33639 (output_branch): Adjust threshold for long branch instruction. 33640 * config/visium/visium.md (cpu): Move around. 33641 (length): Adjust for the GR6. 33642 336432019-02-15 Richard Biener <rguenther@suse.de> 33644 Jakub Jelinek <jakub@redhat.com> 33645 33646 PR tree-optimization/89278 33647 * tree-loop-distribution.c: Include tree-eh.h. 33648 (generate_memset_builtin, generate_memcpy_builtin): Call 33649 rewrite_to_non_trapping_overflow on builtin->size before passing it 33650 to force_gimple_operand_gsi. 33651 336522019-02-15 Jakub Jelinek <jakub@redhat.com> 33653 33654 PR other/89342 33655 * optc-save-gen.awk: Handle optimize_fast like optimize_size or 33656 optimize_debug. 33657 * opth-gen.awk: Likewise. 33658 336592019-02-15 Uroš Bizjak <ubizjak@gmail.com> 33660 33661 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT): 33662 Enable MMX, SSE and SSE2 by default. 33663 * config/i386/i386.c (ix86_option_override_internal): Do not 33664 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here. 33665 336662019-02-14 Jakub Jelinek <jakub@redhat.com> 33667 33668 PR rtl-optimization/89354 33669 * combine.c (make_extraction): Punt if extraction_mode is narrower 33670 than len bits. 33671 336722019-02-14 Maya Rashish <coypu@sdf.org> 33673 33674 * config.gcc (*-*-netbsd*): Add netbsd-d.o. 33675 * config/netbsd-d.c: New file. 33676 * config/t-netbsd: Add netbsd-d.o 33677 336782018-02-14 Steve Ellcey <sellcey@marvell.com> 33679 33680 * config/aarch64/aarch64.c (aarch64_attribute_table): Change 33681 affects_type_identity to true for aarch64_vector_pcs. 33682 (aarch64_comp_type_attributes): New function. 33683 (TARGET_COMP_TYPE_ATTRIBUTES): New macro. 33684 336852019-02-14 Tamar Christina <tamar.christina@arm.com> 33686 33687 PR target/88850 33688 * config/arm/iterators.md (ANY64): Add V4HF. 33689 336902019-02-14 Martin Liska <mliska@suse.cz> 33691 33692 PR rtl-optimization/89242 33693 * dce.c (delete_unmarked_insns): Call free_dominance_info we 33694 process a transformation. 33695 336962019-02-14 Jakub Jelinek <jakub@redhat.com> 33697 33698 PR tree-optimization/89314 33699 * fold-const.c (fold_binary_loc): Cast strlen argument to 33700 const char * before dereferencing it. Formatting fixes. 33701 33702 PR middle-end/89284 33703 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized. 33704 337052019-02-13 Ian Lance Taylor <iant@golang.org> 33706 33707 * optc-save-gen.awk: Set var_opt_hash for initial optimizations 33708 and set current index for other optimizations. 33709 337102019-02-13 Uroš Bizjak <ubizjak@gmail.com> 33711 33712 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use 33713 nonimmediate_operand as operand 2 predicate. 33714 (vec_set<VF2_512_256:mode>_0): Ditto. 33715 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto. 33716 (*vec_concatv2si): Remove alternative 2. 33717 (*vec_concatv4si_0): Use vm constraint for alternative 0. 33718 (*vec_concatv4si_0): Remove preferred_for_speed attribute. 33719 (vec_concatv2di): Split alternatives 4,5,6 to ... 33720 (*vec_concatv2di_0) ... new pattern. 33721 337222019-02-13 Wilco Dijkstra <wdijkstr@arm.com> 33723 33724 PR target/89190 33725 * config/arm/arm.c (ldm_stm_operation_p) Set 33726 addr_reg_in_reglist correctly for first register. 33727 (load_multiple_sequence): Remove dead base check. 33728 (gen_ldm_seq): Correctly set write_back for Thumb-1. 33729 337302019-02-13 Tamar Christina <tamar.christina@arm.com> 33731 33732 PR target/88847 33733 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>): 33734 Expose as @aarch64_pred_mov. 33735 * config/aarch64/aarch64.c (aarch64_classify_address): 33736 Use expand_insn which legitimizes operands. 33737 337382019-02-13 Martin Liska <mliska@suse.cz> 33739 33740 * builtins.h (expand_builtin_with_bounds): Remove declaration. 33741 * calls.c (struct arg_data): Remove special_slot, pointer_arg 33742 and pointer_offset fields. 33743 (initialize_argument_information): Remove usage of dead 33744 fields. 33745 * cgraph.h (struct cgraph_thunk_info): Remove 33746 add_pointer_bounds_args. 33747 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead 33748 fields. 33749 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead 33750 fields. 33751 * config/i386/i386.c (ix86_function_arg_advance): Remove 33752 unrelated comment. 33753 (struct builtin_isa): Remove leaf_p and nothrow_p fields. 33754 (def_builtin): Remove usage of dead fields. 33755 (ix86_add_new_builtins): Likewise. 33756 * ipa-fnsummary.c (compute_fn_summary): Likewise. 33757 * ipa-icf.c (sem_function::equals_wpa): Likewise. 33758 (sem_function::init): Likewise. 33759 (sem_variable::merge): Likewise. 33760 * ipa-visibility.c (function_and_variable_visibility): Likewise. 33761 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. 33762 * lto-cgraph.c (lto_output_node): Likewise. 33763 (lto_output_varpool_node): Likewise. 33764 (input_node): Likewise. 33765 (input_varpool_node): Likewise. 33766 * lto-streamer-out.c (lto_output): Likewise. 33767 * tree-inline.c (expand_call_inline): Remove usage of 33768 assign_stmts. 33769 * tree-inline.h (struct copy_body_data): Likewise. 33770 * varpool.c (varpool_node::dump): Likewise. 33771 337722019-02-13 Jakub Jelinek <jakub@redhat.com> 33773 33774 PR middle-end/89303 33775 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var 33776 into pt->vars_contains_escaped_heap instead of setting 33777 pt->vars_contains_escaped_heap to it. 33778 33779 PR middle-end/89281 33780 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of 33781 INTVAL (size), compare it to GET_MODE_MASK instead of 33782 1 << GET_MODE_BITSIZE. 33783 33784 PR target/89290 33785 * config/i386/predicates.md (x86_64_immediate_operand): Allow 33786 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with 33787 -mcmodel=large. 33788 337892019-02-13 Martin Liska <mliska@suse.cz> 33790 33791 PR lto/88858 33792 * cfgrtl.c (remove_barriers_from_footer): New function. 33793 (try_redirect_by_replacing_jump): Use it. 33794 (cfg_layout_redirect_edge_and_branch): Likewise. 33795 337962019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com> 33797 33798 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be, 33799 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines. 33800 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator. 33801 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns. 33802 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1. 33803 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE): 33804 New BU_CRYPTO_2. 33805 * config/rs6000/rs6000.c (builtin_function_type) 33806 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE, 33807 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE, 33808 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options. 33809 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be, 33810 vec_ncipher_be, vec_ncipherlast_be): New builtin functions. 33811 338122019-02-12 Pat Haugen <pthaugen@us.ibm.com> 33813 33814 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate 33815 -maltivec. Delete -maltivec=be and -maltivec=le documentation. 33816 338172019-02-12 H.J. Lu <hongjiu.lu@intel.com> 33818 33819 PR target/89229 33820 * config/i386/i386.md (*movoi_internal_avx): Revert revision 33821 268678 and revision 268657. 33822 (*movti_internal): Likewise. 33823 338242019-02-12 Ilya Leoshkevich <iii@linux.ibm.com> 33825 33826 PR target/89233 33827 * config/s390/s390.c (s390_decompose_address): Update comment. 33828 (s390_check_qrst_address): Reject invalid address forms after 33829 LRA. 33830 338312019-02-12 Martin Liska <mliska@suse.cz> 33832 33833 PR lto/88876 33834 * ipa-pure-const.c (propagate_pure_const): Revert hunk as 33835 we need default values of funct_state for a function that 33836 is not optimized. 33837 338382019-02-12 Eric Botcazou <ebotcazou@adacore.com> 33839 33840 * asan.c (asan_expand_mark_ifn): Take into account the alignment of 33841 the object to pick the size of stores on strict-alignment platforms. 33842 33843 * config/sparc/sparc.md (*movsi_insn): Minor tweak. 33844 (*movdi_insn_sp32): Likewise. 33845 (*movdi_insn_sp64): Likewise. 33846 338472019-02-12 Jan Hubicka <hubicka@ucw.cz> 33848 33849 PR lto/88677 33850 * cgraphunit.c (analyze_functions): Clear READONLY flag for external 33851 types that needs constructiong. 33852 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING. 33853 338542019-02-12 Richard Biener <rguenther@suse.de> 33855 33856 PR tree-optimization/89253 33857 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can 33858 duplicate the loop. 33859 338602019-02-11 David Malcolm <dmalcolm@redhat.com> 33861 33862 PR lto/88147 33863 * input.c (selftest::test_line_offset_overflow): New selftest. 33864 (selftest::input_c_tests): Call it. 33865 338662019-02-11 Martin Sebor <msebor@redhat.com> 33867 33868 PR tree-optimization/88771 33869 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable 33870 when -Wstringop-overflow is set. 33871 (builtin_memref::builtin_memref): Adjust excessive upper bound 33872 only when lower bound is not excessive. 33873 (maybe_diag_overlap): Detect and diagnose excessive bounds via 33874 -Wstringop-ovefflow. 33875 (maybe_diag_offset_bounds): Rename... 33876 (maybe_diag_access_bounds): ...to this. 33877 (check_bounds_or_overlap): Adjust for name change above. 33878 338792019-02-11 Martin Sebor <msebor@redhat.com> 33880 33881 PR c++/87996 33882 * builtins.c (max_object_size): Move from here... 33883 * builtins.h (max_object_size): ...and here... 33884 * tree.c (max_object_size): ...to here... 33885 * tree.h (max_object_size): ...and here. 33886 338872019-02-11 Bill Schmidt <wschmidt@linux.ibm.com> 33888 33889 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right 33890 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR 33891 for correct semantics. 33892 338932019-02-11 Alan Modra <amodra@gmail.com> 33894 33895 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention 33896 -mlongcall and -mpltseq. 33897 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls. 33898 (RS/6000 and PowerPC Options <-mpltseq>): Document. 33899 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define. 33900 * config/rs6000/sysv4.opt (mpltseq): New option. 33901 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine. 33902 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler 33903 support is lacking. Don't allow -mpltseq with -mbss-plt. 33904 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if 33905 -mpltseq given for ELFv1. 33906 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ. 33907 Only use UNSPEC_PLTSEQ for inline PLT calls. 33908 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only 33909 use UNSPEC_PLTSEQ for inline PLT calls. 33910 (rs6000_indirect_call_template_1, rs6000_longcall_ref), 33911 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace 33912 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying. 33913 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>), 33914 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), 33915 (pltseq_mtctr_<mode>): Likewise. 33916 339172019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 33918 33919 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with 33920 Solaris ld. 33921 * configure: Regenerate. 33922 339232019-02-11 Jakub Jelinek <jakub@redhat.com> 33924 33925 PR bootstrap/88714 33926 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint 33927 instead of r. 33928 339292019-02-11 Hans-Peter Nilsson <hp@axis.com> 33930 33931 * function.c (assign_parm_setup_block): Use the stored 33932 size, not the passed size, when allocating stack-space, 33933 also for a parameter with alignment larger than 33934 MAX_SUPPORTED_STACK_ALIGNMENT. 33935 339362019-02-11 Martin Liska <mliska@suse.cz> 33937 33938 PR ipa/89009 33939 * ipa-cp.c (build_toporder_info): Remove usage of a param. 33940 * ipa-inline.c (inline_small_functions): Likewise. 33941 * ipa-pure-const.c (propagate_pure_const): Likewise. 33942 (propagate_nothrow): Likewise. 33943 * ipa-reference.c (propagate): Likewise. 33944 * ipa-utils.c (struct searchc_env): Remove unused field. 33945 (searchc): Always search across AVAIL_INTERPOSABLE. 33946 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as 33947 the only called IPA pure const can properly not propagate 33948 across interposable boundary. 33949 * ipa-utils.h (ipa_reduced_postorder): Remove param. 33950 339512019-02-11 Chung-Ju Wu <jasonwucj@gmail.com> 33952 33953 * config/nds32/nds32.md (call_internal, call_value_internal, 33954 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx. 33955 339562019-02-11 Hans-Peter Nilsson <hp@axis.com> 33957 33958 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name 33959 typo. 33960 339612019-02-10 H.J. Lu <hongjiu.lu@intel.com> 33962 33963 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ 33964 in comments 33965 339662019-02-10 Chung-Ju Wu <jasonwucj@gmail.com> 33967 33968 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly. 33969 339702019-02-10 Jakub Jelinek <jakub@redhat.com> 33971 33972 PR tree-optimization/89268 33973 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only 33974 if preds is non-NULL. 33975 339762019-02-09 Jan Hubicka <hubicka@ucw.cz> 33977 33978 PR lto/89272 33979 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for 33980 polymorphic types. 33981 339822019-02-10 Monk Chiang <sh.chiang04@gmail.com> 33983 33984 * config/nds32/nds32.md (trap): New pattern. 33985 339862019-02-10 Monk Chiang <sh.chiang04@gmail.com> 33987 33988 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register 33989 dwarf span. 33990 339912019-02-10 Chung-Ju Wu <jasonwucj@gmail.com> 33992 33993 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support 33994 to split POST_INC. 33995 339962019-02-09 Jan Hubicka <hubicka@ucw.cz> 33997 33998 * ipa-visibility.c (localize_node): Also do not localize 33999 LDPR_PREVAILING_DEF_IRONLY_EXP. 34000 340012019-02-09 Jan Hubicka <hubicka@ucw.cz> 34002 34003 PR lto/87957 34004 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P 34005 instead of type_with_linkage. 34006 340072019-02-09 Jan Hubicka <hubicka@ucw.cz> 34008 34009 PR ipa/88755 34010 * params.def (uninlined-function-insns, uninlined-function-time, 34011 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper 34012 bound so we don't get overflows. 34013 340142019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com> 34015 34016 * config/rs6000/rs6000-string.c (expand_compare_loop, 34017 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of 34018 memcmp/strncmp. 34019 340202019-02-09 Jakub Jelinek <jakub@redhat.com> 34021 34022 PR middle-end/89246 34023 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 34024 If !node->definition and TYPE_ARG_TYPES is non-NULL, use 34025 TYPE_ARG_TYPES instead of DECL_ARGUMENTS. 34026 340272019-02-09 Alan Modra <amodra@gmail.com> 34028 34029 PR target/88343 34030 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return 34031 case. Match logic in rs6000_emit_prologue emitting pic_offset_table 34032 setup. 34033 340342019-02-08 Vladimir Makarov <vmakarov@redhat.com> 34035 34036 PR middle-end/88560 34037 * lra-constraints.c (process_alt_operands): Don't increase reject 34038 for memory when offset memory is required. 34039 340402019-02-08 Robin Dapp <rdapp@linux.ibm.com> 34041 34042 * config/s390/vector.md: Implement vector copysign. 34043 340442019-02-08 H.J. Lu <hongjiu.lu@intel.com> 34045 34046 * expr.c (expand_constructor): Correct indentations. 34047 340482019-02-08 Richard Biener <rguenther@suse.de> 34049 34050 PR tree-optimization/89247 34051 * tree-if-conv.c: Include tree-cfgcleanup.h. 34052 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call. 34053 (tree_if_conversion): Pass through predicate vector. 34054 (pass_if_conversion::execute): Do CFG cleanup and SSA update 34055 inline, see if any if-converted loops we refrece in 34056 LOOP_VECTORIZED calls vanished and fixup. 34057 * tree-if-conv.h (tree_if_conversion): Adjust prototype. 34058 340592019-02-08 Ilya Leoshkevich <iii@linux.ibm.com> 34060 34061 * config/s390/constraints.md (jdd): New constraint. 34062 340632019-02-08 H.J. Lu <hongjiu.lu@intel.com> 34064 34065 PR target/89229 34066 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for 34067 upper 16 vector registers without TARGET_AVX512VL. 34068 (*movti_internal): Likewise. 34069 340702019-02-08 Jakub Jelinek <jakub@redhat.com> 34071 34072 PR rtl-optimization/89234 34073 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn 34074 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P. 34075 (copy_reg_eh_region_note_backward): Likewise. 34076 340772019-02-08 Richard Biener <rguenther@suse.de> 34078 34079 PR middle-end/89223 34080 * tree-data-ref.c (initialize_matrix_A): Fail if constant 34081 doesn't fit in HWI. 34082 (analyze_subscript_affine_affine): Handle failure from 34083 initialize_matrix_A. 34084 340852019-02-08 Jakub Jelinek <jakub@redhat.com> 34086 34087 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of 34088 cfun everywhere. 34089 340902019-02-07 David Malcolm <dmalcolm@redhat.com> 34091 34092 PR tree-optimization/86637 34093 PR tree-optimization/89235 34094 * tree-vect-loop.c (optimize_mask_stores): Add an 34095 auto_purge_vect_location sentinel to ensure that vect_location is 34096 purged on exit. 34097 * tree-vectorizer.c 34098 (auto_purge_vect_location::~auto_purge_vect_location): New dtor. 34099 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel 34100 to ensure that vect_location is purged on exit. 34101 (pass_slp_vectorize::execute): Likewise, replacing the manual 34102 reset. 34103 * tree-vectorizer.h (class auto_purge_vect_location): New class. 34104 341052019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34106 34107 * config/aarch64/iterators.md (max_opp): New code_attr. 34108 (USMAX): New code iterator. 34109 * config/aarch64/predicates.md (aarch64_smin): New predicate. 34110 (aarch64_smax): Likewise. 34111 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to... 34112 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to 34113 MINUS (MAX MIN). 34114 341152019-02-07 H.J. Lu <hongjiu.lu@intel.com> 34116 34117 PR target/89229 34118 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI 34119 for TARGET_AVX512VL. 34120 (*movti_internal): Set mode to TI for TARGET_AVX512VL. 34121 341222019-02-07 Andreas Krebbel <krebbel@linux.ibm.com> 34123 34124 * config/s390/s390-builtin-types.def: Add new types. 34125 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2) 34126 (s390_vec_xlw4): Make the memory operand into a const pointer. 34127 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision 34128 float. 34129 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate 34130 a new vector type with the alignment of the scalar memory operand. 34131 341322019-02-07 Matthew Malcomson <matthew.malcomson@arm.com> 34133 Jakub Jelinek <jakub@redhat.com> 34134 34135 PR bootstrap/88714 34136 * config/arm/arm-protos.h (valid_operands_ldrd_strd, 34137 arm_count_ldrdstrd_insns): New declarations. 34138 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of 34139 MINUS. 34140 (valid_operands_ldrd_strd): New function. 34141 (arm_count_ldrdstrd_insns): New function. 34142 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode 34143 sets instead of single DImode set and define new insns to match this. 34144 341452019-02-07 Tamar Christina <tamar.christina@arm.com> 34146 34147 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data): 34148 Make it a C initializer. 34149 341502019-02-07 Tamar Christina <tamar.christina@arm.com> 34151 34152 PR/target 88850 34153 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case. 34154 341552019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34156 34157 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): 34158 Use neon_dot<q> for type. 34159 (neon_<sup>dot_lane<vsi2qi>): Likewise. 34160 341612019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34162 34163 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): 34164 Use neon_dot<q> for type. 34165 (aarch64_<sur>dot_lane<vsi2qi>): Likewise. 34166 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise. 34167 341682019-02-06 Vladimir Makarov <vmakarov@redhat.com> 34169 34170 PR rtl-optimization/89225 34171 * lra-constaints.c (simplify_operand_subreg): Add subreg mode 34172 sizes check. 34173 341742019-02-06 Eric Botcazou <ebotcazou@adacore.com> 34175 34176 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage 34177 after restoring registers saved to allocate the frame on Windows. 34178 341792019-02-06 Richard Biener <rguenther@suse.de> 34180 34181 PR tree-optimization/89182 34182 * graphite.h (cached_scalar_evolution_in_region): Declare. 34183 * graphite.c (struct seir_cache_key): New. 34184 (struct sese_scev_hash): Likewise. 34185 (seir_cache): New global. 34186 (cached_scalar_evolution_in_region): New function. 34187 (graphite_transform_loops): Allocate and release seir_cache. 34188 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use 34189 cached_scalar_evolution_in_region. 34190 * graphite-scop-detection.c (scop_detection::can_represent_loop): 34191 Simplify. 34192 (scop_detection::graphite_can_represent_expr: Use 34193 cached_scalar_evolution_in_region. 34194 (scop_detection::stmt_simple_for_scop_p): Likewise. 34195 (find_params_in_bb): Likewise. 34196 (gather_bbs::before_dom_children): Likewise. 34197 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise. 34198 (add_loop_constraints): Likewise. 34199 342002019-02-06 Jakub Jelinek <jakub@redhat.com> 34201 34202 PR middle-end/89210 34203 * fold-const-call.c (fold_const_vec_convert): Pass true as last 34204 operand to new_unary_operation only if both element types are integral 34205 and it isn't a widening conversion. Return NULL_TREE if 34206 new_unary_operation failed. 34207 342082019-02-05 Andreas Krebbel <krebbel@linux.ibm.com> 34209 34210 PR target/88856 34211 * config/s390/s390.md: Remove load and test FP splitter. 34212 342132019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> 34214 34215 PR target/89112 34216 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence, 34217 expand_compare_loop, expand_block_compare_gpr, 34218 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert 34219 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add 34220 #include "profile-count.h" and "predict.h" for types and functions 34221 needed to work with REG_BR_PROB notes. 34222 342232019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> 34224 34225 PR target/89112 34226 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label 34227 for the long branch case. 34228 342292019-02-05 Jakub Jelinek <jakub@redhat.com> 34230 34231 PR target/89188 34232 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they 34233 can throw, non-call exceptions are enabled and we can't delete 34234 dead exceptions or alter cfg. Set must_clean if 34235 delete_insn_and_edges returns true, don't set it blindly for calls. 34236 Assert that delete_unreachable_blocks is called only if can_alter_cfg. 34237 34238 PR rtl-optimization/89195 34239 * combine.c (make_extraction): For MEMs, don't extract bytes outside 34240 of the original MEM. 34241 342422019-02-05 Martin Liska <mliska@suse.cz> 34243 34244 PR gcov-profile/89000 34245 * gcov.c (function_summary): Remove argument. 34246 (file_summary): New function. 34247 (print_usage): Replace tabs with spaces. 34248 (generate_results): Use new function file_summary. 34249 342502019-02-05 Jakub Jelinek <jakub@redhat.com> 34251 34252 PR target/89186 34253 * optabs.c (prepare_cmp_insn): Pass x and y to 34254 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0). 34255 342562019-02-05 Richard Biener <rguenther@suse.de> 34257 34258 PR middle-end/89150 34259 * bitmap.h (struct bitmap_obstack): Do not mark GTY. 34260 (struct bitmap_element): Drop chain_prev so we properly recurse on 34261 the prev member, supporting tree views. 34262 (struct bitmap_head): GTY skip the obstack member. 34263 342642019-02-04 Alexander Monakov <amonakov@ispras.ru> 34265 34266 PR c/88698 34267 * doc/extend.texi (Vector Extensions): Add an example of using vector 34268 types together with x86 intrinsics. 34269 342702019-02-04 Alan Modra <amodra@gmail.com> 34271 34272 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase 34273 str[] size to 160, and comment. 34274 342752019-02-04 Alan Modra <amodra@gmail.com> 34276 34277 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), 34278 (rs6000_pltseq_template): Guard output of TLS markers with 34279 TARGET_TLS_MARKERS. 34280 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv), 34281 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding 34282 to use inline PLT sequences. 34283 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>), 34284 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), 34285 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate. 34286 342872019-02-04 Martin Liska <mliska@suse.cz> 34288 34289 PR ipa/88985 34290 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail 34291 out when ipa_fn_summaries does not contain entry for callee. 34292 342932019-02-04 Eric Botcazou <ebotcazou@adacore.com> 34294 34295 * config/sparc/sparc.h: Remove superfluous blank lines. 34296 * config/sparc/sparc.c (global_offset_table_rtx): Rename into... 34297 (got_register_rtx): ...this. 34298 (sparc_got): Adjust to above renaming. 34299 (sparc_tls_got): Likewise. 34300 (sparc_delegitimize_address): Likewise. 34301 (sparc_output_mi_thunk): Likewise. 34302 (sparc_init_pic_reg): Likewise. 34303 (save_local_or_in_reg_p): Fix test on the GOT register. 34304 (USE_HIDDEN_LINKONCE): Move around. 34305 (get_pc_thunk_name): Likewise. 34306 (gen_load_pcrel_sym): Likewise. 34307 (load_got_register): Likewise. 34308 343092019-02-04 Kito Cheng <kito.cheng@gmail.com> 34310 34311 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule 34312 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1". 34313 343142019-02-04 Chung-Ju Wu <jasonwucj@gmail.com> 34315 34316 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model 34317 into consideration. 34318 343192019-02-04 Chung-Ju Wu <jasonwucj@gmail.com> 34320 34321 * config.gcc (with_nds32_lib, glibc): 34322 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting. 34323 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete. 34324 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete. 34325 343262019-02-03 Uroš Bizjak <ubizjak@gmail.com> 34327 34328 PR target/89071 34329 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative. 34330 Do not prefer (v,v) alternative for non-AVX targets and (m,v) 34331 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set. 34332 (*rcpsf2_sse): Ditto. 34333 (*rsqrtsf2_sse): Ditto. 34334 (sse4_1_round<mode<2): Ditto. 34335 343362019-02-03 Richard Biener <rguenther@suse.de> 34337 34338 PR debug/87295 34339 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as 34340 orig. 34341 343422019-02-02 Jakub Jelinek <jakub@redhat.com> 34343 34344 PR middle-end/87887 34345 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 34346 Punt with warning on aggregate return or argument types. Ignore 34347 type/mode checking for uniform arguments. 34348 343492019-02-01 Segher Boessenkool <segher@kernel.crashing.org> 34350 34351 * combine.c (try_combine): Do not print "Can't combine" messages unless 34352 printing failed combination attempts. 34353 343542019-02-01 Martin Jambor <mjambor@suse.cz> 34355 34356 PR hsa/87863 34357 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group 34358 segment and global segment variables before making them static. 34359 343602019-02-01 Martin Jambor <mjambor@suse.cz> 34361 34362 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two 34363 missed optimization dump with dump_enabled_p. 34364 343652019-02-01 Richard Biener <rguenther@suse.de> 34366 34367 PR middle-end/88597 34368 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up 34369 the instantiate cache. 34370 (instantiate_scev_binary): Elide second operand procesing 34371 if equal to the first. 34372 * tree-chrec.c (chrec_contains_symbols): Add visited set. 34373 (chrec_contains_undetermined): Likewise. 34374 (tree_contains_chrecs): Likewise. 34375 343762019-02-01 Jan Hubicka <hubicka@ucw.cz> 34377 34378 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200. 34379 343802019-02-01 Jakub Jelinek <jakub@redhat.com> 34381 34382 PR tree-optimization/89143 34383 * wide-int-range.h (wide_int_range_absu): Declare. 34384 * wide-int-range.cc (wide_int_range_absu): New function. 34385 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR. 34386 34387 PR tree-optimization/88107 34388 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument, 34389 instead of assertion that eh_region_outermost is non-NULL, if it 34390 is NULL, set *ALL to true and return NULL. 34391 (move_sese_region_to_fn): Adjust caller, if all is set, call 34392 duplicate_eh_regions with NULL region. 34393 343942019-02-01 Richard Biener <rguenth@suse.de> 34395 34396 PR rtl-optimization/88593 34397 * mode-switching.c (optimize_mode_switching): Free dominators before 34398 calling cleanup_cfg. 34399 344002019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com> 34401 34402 PR tree-optimization/88932 34403 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order. 34404 344052019-01-31 Jakub Jelinek <jakub@redhat.com> 34406 34407 PR middle-end/89137 34408 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid 34409 bogus clang warning. 34410 344112019-01-31 Uroš Bizjak <ubizjak@gmail.com> 34412 34413 PR target/89071 34414 * config/i386/i386.md (*extendsfdf2): Split out reg->reg 34415 alternative to avoid partial SSE register stall for TARGET_AVX. 34416 (truncdfsf2): Ditto. 34417 (sse4_1_round<mode>2): Ditto. 34418 344192018-01-31 Bill Schmidt <wschmidt@linux.ibm.com> 34420 34421 PR tree-optimization/89008 34422 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't 34423 process anything of the form X * 0. 34424 344252019-01-31 Richard Biener <rguenther@suse.de> 34426 34427 PR tree-optimization/89135 34428 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks 34429 with abnormal preds. 34430 344312019-01-31 Jakub Jelinek <jakub@redhat.com> 34432 34433 PR sanitizer/89124 34434 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining 34435 always_inline callees into no_sanitize_address callers. 34436 344372019-01-31 Richard Biener <rguenther@suse.de> 34438 34439 PR rtl-optimization/89115 34440 * lra.c (lra_rtx_hash): Properly hash CONST_INT values. 34441 344422019-01-30 Martin Sebor <msebor@redhat.com> 34443 34444 PR other/89106 34445 * doc/extend.texi (cast to a union): Correct and expand. 34446 344472019-01-30 Vladimir Makarov <vmakarov@redhat.com> 34448 34449 PR rtl-optimization/87246 34450 * lra-constraints.c (simplify_operand_subreg): Reload memory 34451 in subreg if the address became invalid. 34452 344532019-01-30 Bill Schmidt <wschmidt@linux.ibm.com> 34454 34455 PR target/87064 34456 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar): 34457 Disable for little-endian. 34458 344592019-01-30 Richard Biener <rguenther@suse.de> 34460 34461 PR rtl-optimization/89115 34462 * opts.c (default_options_optimization): Reduce 34463 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1. 34464 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative 34465 to the default. 34466 344672019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org> 34468 34469 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin): 34470 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to 34471 type of vector element when vec_extract is implemented by direct 34472 move. 34473 344742019-01-30 Thomas Schwinge <thomas@codesourcery.com> 34475 34476 * doc/invoke.texi (C Language Options): List "-fopenacc-dim". 34477 344782019-01-30 Richard Biener <rguenther@suse.de> 34479 34480 PR tree-optimization/89111 34481 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict 34482 canonicalization to appropriately sized access types. 34483 344842019-01-30 Jakub Jelinek <jakub@redhat.com> 34485 34486 PR c++/89105 34487 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn 34488 for arguments to functions that are TU-local and shouldn't be 34489 referenced by assembly. 34490 344912019-01-30 Ulrich Drepper <drepper@redhat.com> 34492 34493 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears 34494 after '='. 34495 344962019-01-29 Martin Sebor <msebor@redhat.com> 34497 34498 PR c/88956 34499 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays. 34500 345012019-01-29 Jakub Jelinek <jakub@redhat.com> 34502 34503 PR c++/66676 34504 PR ipa/89104 34505 * omp-simd-clone.c (simd_clone_clauses_extract) 34506 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL 34507 OMP_CLAUSE_ALIGNED_ALIGNMENT. 34508 345092019-01-29 Vineet Gupta <vgupta@synopsys.com> 34510 34511 * config.gcc: Force .init_array for ARC. 34512 345132019-01-29 Richard Biener <rguenther@suse.de> 34514 34515 PR debug/87295 34516 * dwarf2out.c (collect_skeleton_dies): New helper. 34517 (copy_decls_for_unworthy_types): Call it. 34518 (build_abbrev_table): Assert we do not try to replace 34519 DW_AT_signature refs with local refs. 34520 345212019-01-28 Jakub Jelinek <jakub@redhat.com> 34522 34523 PR middle-end/89002 34524 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ 34525 for lastprivate/linear IV, push gimplify context around gimplify_assign 34526 and, if it needed any temporaries, pop it into a gimple bind around the 34527 sequence. 34528 345292019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de> 34530 34531 * common.opt (-Wattribute-alias): Remove "no-" from name. 34532 Make -Wattribute-alias command line option and 34533 #pragma GCC diagnostic ignored "-Wattribute-alias" work again. 34534 345352019-01-28 Jakub Jelinek <jakub@redhat.com> 34536 34537 PR target/89073 34538 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx, 34539 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document 34540 x86 ISA options. 34541 (bmi2): Add missing @opindex. 34542 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3 34543 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2, 34544 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd, 34545 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi, 34546 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2, 34547 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase, 34548 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig, 34549 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf, 34550 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave, 34551 xsavec, xsaveopt and xsaves options. 34552 345532019-01-28 Richard Biener <rguenther@suse.de> 34554 34555 PR debug/89076 34556 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX 34557 support removal. 34558 345592019-01-28 Richard Biener <rguenther@suse.de> 34560 34561 PR tree-optimization/88739 34562 * tree-cfg.c (verify_types_in_gimple_reference): Verify 34563 BIT_FIELD_REFs only are applied to mode-precision operands 34564 when they are integral. 34565 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR. 34566 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating 34567 BIT_FIELD_REFs of non-mode-precision integral operands. 34568 345692019-01-27 Jakub Jelinek <jakub@redhat.com> 34570 34571 PR target/87214 34572 * config/i386/sse.md 34573 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>, 34574 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the 34575 first constants in pairs are multiples of 2. Formatting fixes. 34576 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>, 34577 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the 34578 first constants in each quadruple are multiples of 4. Formatting fixes. 34579 345802019-01-26 Martin Jambor <mjambor@suse.cz> 34581 34582 PR ipa/88933 34583 * tree-inline.c: Include tree-cfgcleanup.h. 34584 (delete_unreachable_blocks_update_callgraph): Move... 34585 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph): 34586 ...here, make externally visible, make second argument bool, adjust 34587 all callers. 34588 * tree-cfgcleanup.c: Include cgraph.h. 34589 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph): 34590 Declare. 34591 * ipa-prop.c: Include tree-cfgcleanup.h. 34592 (ipcp_transform_function): Call 34593 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG. 34594 345952019-01-25 Vladimir Makarov <vmakarov@redhat.com> 34596 34597 PR rtl-optimization/88846 34598 * ira.c (process_set_for_memref_referenced_p): New. 34599 (memref_referenced_p): Add new param. Use 34600 process_set_for_memref_referenced_p. Add new switch cases. 34601 (memref_used_between_p): Pass new arg to memref_referenced_p. 34602 346032019-01-25 Richard Earnshaw <rearnsha@arm.com> 34604 34605 PR target/88469 34606 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new 34607 argument ABI_BREAK. Set to true if the calculated alignment has 34608 changed in gcc-9. Check bit-fields for their base type alignment. 34609 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9. 34610 (aarch64_function_arg_boundary): Likewise. 34611 (aarch64_gimplify_va_arg_expr): Likewise. 34612 346132019-01-25 Richard Sandiford <richard.sandiford@arm.com> 34614 34615 PR middle-end/89037 34616 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi 34617 instead of accessing TREE_INT_CST_ELT directly. 34618 346192019-01-25 Christophe Lyon <christophe.lyon@linaro.org> 34620 34621 * doc/sourcebuild.texi (Environment attributes): Add fenv and 34622 fenv_exceptions description. 34623 346242019-01-25 Wilco Dijkstra <wdijkstr@arm.com> 34625 34626 PR rtl-optimization/87763 34627 * config/aarch64/aarch64.c (aarch64_select_cc_mode): 34628 Allow SUBREG when matching CC_NZmode compare. 34629 346302019-01-25 Richard Biener <rguenther@suse.de> 34631 34632 PR tree-optimization/89049 34633 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): 34634 Look at the pattern stmt to determine if the stmt is vectorized. 34635 346362019-01-25 Richard Sandiford <richard.sandiford@arm.com> 34637 34638 * config/aarch64/aarch64-sve.md (*pred_mov<mode>) 34639 (pred_mov<mode>): Handle all-register forms using both a new 34640 alternative and a split. 34641 346422019-01-25 Richard Biener <rguenther@suse.de> 34643 34644 PR tree-optimization/86865 34645 * graphite-scop-detection.c (scop_detection::can_represent_loop): 34646 Reject non-do-while loops. 34647 346482019-01-24 Peter Bergner <bergner@linux.ibm.com> 34649 34650 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P. 34651 * config/rs6000/constraints.md (Q constraint): Use REG_P. 34652 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P. 34653 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use 34654 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P. 34655 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. 34656 * config/rs6000/predicates.md (altivec_register_operand, vint_operand, 34657 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand, 34658 vlogical_operand, gpc_reg_operand, int_reg_operand, 34659 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P. 34660 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand, 34661 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P. 34662 (save_world_operation, restore_world_operation, lmw_operation, 34663 stmw_operation): Use MEM_P and REG_P. 34664 (tie_operand): Use MEM_P. 34665 (vrsave_operation, crsave_operation): Use REG_P. 34666 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P. 34667 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P. 34668 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P. 34669 (call_operand): Use HARD_REGISTER_P. 34670 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand): 34671 Use CONST_INT_P. 34672 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P. 34673 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p, 34674 quad_aligned_load_p, replace_swapped_aligned_store, 34675 recombine_lvx_pattern, replace_swapped_aligned_load, 34676 recombine_stvx_pattern): Use MEM_P. 34677 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant): 34678 Use MEM_P and SYMBOL_REF_P. 34679 (rtx_is_swappable_p): Use REG_P and CONST_INT_P. 34680 (insn_is_swappable_p): Use REG_P and MEM_P. 34681 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P. 34682 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move): 34683 Use CONST_INT_P. 34684 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove): 34685 Use CONST_DOUBLE_P. 34686 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and 34687 CONST_WIDE_INT_P. 34688 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P, 34689 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P. 34690 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P, 34691 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and 34692 reg_or_subregno: 34693 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P. 34694 (easy_altivec_constant, rs6000_legitimate_offset_address_p, 34695 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin, 34696 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin, 34697 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare, 34698 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner, 34699 rs6000_split_logical_di): Use CONST_INT_P. 34700 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P, 34701 REG_P and SYMBOL_REF_P. 34702 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P. 34703 (print_operand): Use CONST_INT_P, MEM_P and REG_P. 34704 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p, 34705 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P. 34706 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P. 34707 (small_data_operand, print_operand_address): Use CONST_INT_P and 34708 SYMBOL_REF_P. 34709 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P. 34710 (rs6000_init_hard_regno_mode_ok, direct_move_p): 34711 Use HARD_REGISTER_NUM_P. 34712 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P. 34713 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P, 34714 SUBREG_P and SYMBOL_REF_P. 34715 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P 34716 and HARD_REGISTER_NUM_P. 34717 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and 34718 reg_or_subregno. 34719 (rs6000_adjust_cost, find_mem_ref): Use MEM_P. 34720 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use 34721 MEM_P and REG_P. 34722 (legitimate_indirect_address_p, legitimate_lo_sum_address_p, 34723 registers_ok_for_quad_peep, rs6000_output_function_epilogue, 34724 find_addr_reg): Use REG_P. 34725 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P. 34726 (rs6000_emit_le_vsx_move): Use SUBREG_P. 34727 (offsettable_ok_by_alignment, constant_pool_expr_p, 34728 legitimate_small_data_p, rs6000_output_dwarf_dtprel, 34729 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p, 34730 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra, 34731 rs6000_assemble_integer, create_TOC_reference, 34732 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info, 34733 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P. 34734 (rs6000_split_vec_extract_var): Use reg_or_subregno. 34735 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use 34736 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P. 34737 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. 34738 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. 34739 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P. 34740 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P. 34741 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P. 34742 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P. 34743 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3 34744 and cbranch<mode>4): Use CONST_INT_P. 34745 (multiple define_splits): Use REG_P and SUBREG_P. 34746 (define_expands call, call_value): Use MEM_P. 34747 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P. 34748 (define insn *mtcrfsi): Use CONST_INT_P and REG_P. 34749 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>, 34750 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P 34751 and HARD_REGISTER_NUM_P. 34752 (multiple define_splits): Use HARD_REGISTER_NUM_P. 34753 347542019-01-24 Uroš Bizjak <ubizjak@gmail.com> 34755 34756 PR rtl-optimization/88948 34757 * rtl.h (prepare_copy_insn): New prototype. 34758 * gcse.c (prepare_copy_insn): New function, split out from 34759 process_insert_insn. 34760 (process_insert_insn): Use prepare_copy_insn. 34761 * store-motion.c (replace_store_insn): Use prepare_copy_insn 34762 instead of gen_move_insn. 34763 347642019-01-24 Jakub Jelinek <jakub@redhat.com> 34765 34766 PR debug/89006 34767 * config/i386/i386.c (ix86_pic_register_p): Return true for 34768 UNSPEC_SET_GOT too. 34769 34770 PR tree-optimization/88964 34771 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also 34772 punt if HONOR_SNANS (chrec). 34773 34774 PR middle-end/89015 34775 * tree-nested.c (convert_nonlocal_reference_stmt, 34776 convert_local_reference_stmt, convert_tramp_reference_stmt, 34777 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat 34778 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL 34779 or GIMPLE_OMP_TASK. 34780 34781 PR tree-optimization/89027 34782 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers 34783 for "omp simd array" variables. 34784 347852019-01-24 Richard Earnshaw <rearnsha@arm.com> 34786 34787 PR target/88469 34788 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8 34789 force the alignment of m_val. 34790 347912019-01-24 Richard Biener <rguenther@suse.de> 34792 34793 PR lto/87187 34794 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): 34795 When in "legacy" debug mode make sure to reset self-origins. 34796 347972019-01-24 Martin Liska <mliska@suse.cz> 34798 34799 PR gcov-profile/88994 34800 * gcov-io.c (mangle_path): Do not allocate a bigger buffer, 34801 result will be always smaller or equal to the original. 34802 * gcov.c (mangle_name): Fix else branch where we should 34803 also copy to PTR and shift the pointer. 34804 348052019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com> 34806 34807 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo. 34808 * vr-values.c (find_case_label_ranges): Fix a comment typo. 34809 348102019-01-23 Xuepeng Guo <xuepeng.guo@intel.com> 34811 34812 * common/config/i386/i386-common.c 34813 (OPTION_MASK_ISA_ENQCMD_SET, 34814 OPTION_MASK_ISA_ENQCMD_UNSET): New macros. 34815 (ix86_handle_option): Handle -menqcmd. 34816 * config.gcc (enqcmdintrin.h): New header file. 34817 * config/i386/cpuid.h (bit_ENQCMD): New bit. 34818 * config/i386/driver-i386.c (host_detect_local_cpu): Handle 34819 -menqcmd. 34820 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New 34821 function type. 34822 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd, 34823 __builtin_ia32_enqcmds): New builtins. 34824 * config/i386/i386-c.c (__ENQCMD__): New macro. 34825 * config/i386/i386-option.c (ix86_target_string): Add 34826 -menqcmd. 34827 (ix86_valid_target_attribute_inner_p): Likewise. 34828 * config/i386/i386-expand.c 34829 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and 34830 IX86_BUILTIN_ENQCMDS. 34831 * config/i386/i386.h (TARGET_ENQCMD): New. 34832 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New. 34833 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern. 34834 (movdir64b_<mode>): Parameterize to enable share expansion code 34835 with ENQCMD in function ix86_expand_builtin. 34836 * config/i386/i386.opt: Add -menqcmd. 34837 * config/i386/immintrin.h: Include enqcmdintrin.h. 34838 * config/i386/enqcmdintrin.h: New intrinsic file. 34839 * doc/invoke.texi: Add -menqcmd. 34840 348412019-01-23 Bin Cheng <bin.cheng@arm.com> 34842 Steve Ellcey <sellcey@marvell.com> 34843 34844 PR target/85711 34845 * recog.c (address_operand): Return false on wrong mode for address. 34846 (constrain_operands): Check for mode with 'p' constraint. 34847 348482019-01-23 Uroš Bizjak <ubizjak@gmail.com> 34849 34850 PR target/88998 34851 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives. 34852 Disparage MMX alternative. 34853 (sse2_cvtpd2pi): Ditto. 34854 (sse2_cvttpd2pi): Ditto. 34855 348562019-01-23 David Malcolm <dmalcolm@redhat.com> 34857 34858 PR driver/89014 34859 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix 34860 use-after-free of the result of 34861 aarch64_get_extension_string_for_isa_flags. 34862 348632019-01-23 Jakub Jelinek <jakub@redhat.com> 34864 34865 PR c/44715 34866 * doc/extend.texi: Document break and continue behavior in 34867 statement expressions. 34868 348692019-01-23 Richard Biener <rguenther@suse.de> 34870 34871 PR tree-optimization/89008 34872 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do 34873 not leave another stray operand. 34874 348752019-01-23 Jakub Jelinek <jakub@redhat.com> 34876 34877 * BASE-VER: Bump to 9.0.1. 34878 348792019-01-23 Eric Botcazou <ebotcazou@adacore.com> 34880 34881 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE 34882 thunk that returns by reference, use the type of the return object 34883 of the thunk instead of that of the alias to build the dereference. 34884 348852019-01-23 Vineet Gupta <vgupta@synopsys.com> 34886 34887 * config/arc/atomic.md: Add operand to DMB instruction. 34888 348892019-01-23 Jakub Jelinek <jakub@redhat.com> 34890 34891 PR tree-optimization/88964 34892 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use 34893 build_zero_cst instead of build_int_cst. Return false for loop 34894 invariants which honor signed zeros. 34895 348962019-01-22 Segher Boessenkool <segher@kernel.crashing.org> 34897 34898 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3. 34899 349002019-01-22 Jakub Jelinek <jakub@redhat.com> 34901 34902 PR target/88965 34903 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h. 34904 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy 34905 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first. 34906 34907 PR middle-end/88968 34908 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with 34909 non-integral DECL_BIT_FIELD_REPRESENTATIVEs. 34910 34911 PR target/87064 34912 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar): 34913 Disable for little endian. 34914 349152019-01-22 Richard Earnshaw <rearnsha@arm.com> 34916 34917 PR target/88469 34918 * config/arm/arm.c (arm_needs_double_word_align): Check 34919 DECL_BIT_FIELD_TYPE. 34920 349212019-01-22 Hongtao Liu <hongtao.liu@intel.com> 34922 H.J. Lu <hongjiu.lu@intel.com> 34923 34924 PR target/88909 34925 * config/i386/i386-builtin.def: Add mask2 to all builtin 34926 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and 34927 SPECIAL_ARGS. 34928 * config/i386/i386.c (BDESC): Add mask2 to the definition. 34929 (BDESC_FIRST): Likewise. 34930 (define_builtin): Add an argument for mask2. Updated to handle 34931 both ix86_isa_flags and ix86_isa_flags2. 34932 (define_builtin_const): Likewise. 34933 (define_builtin_pure): Likewise. 34934 (define_builtin2): Deleted. 34935 (define_builtin_const2): Likewise. 34936 (builtin_description): Add a member, mask2. 34937 (bdesc_*): Add mask2 to builtin initializations. 34938 (ix86_init_mmx_sse_builtins): Update calls to def_builtin, 34939 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2 34940 support. 34941 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support. 34942 349432019-01-22 H.J. Lu <hongjiu.lu@intel.com> 34944 34945 PR target/88954 34946 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check 34947 noplt attribute. 34948 349492019-01-22 Richard Earnshaw <rearnsha@arm.com> 34950 34951 PR target/88469 34952 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's 34953 alignment is dominated by a bitfield with 64-bit aligned base type. 34954 (arm_function_arg): Emit a warning if the alignment has changed since 34955 earlier GCC releases. 34956 (arm_function_arg_boundary): Likewise. 34957 (arm_setup_incoming_varargs): Likewise. 34958 349592019-01-22 Richard Biener <rguenther@suse.de> 34960 34961 PR tree-optimization/88862 34962 * graphite-scop-detection.c 34963 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR. 34964 349652019-01-22 Andrew Stubbs <ams@codesourcery.com> 34966 34967 * doc/extend.tex (AMD GCN Function Attributes): New section. 34968 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions. 34969 * doc/invoke.texi (AMD GCN Options): New section. 34970 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN. 34971 349722019-01-22 Eric Botcazou <ebotcazou@adacore.com> 34973 34974 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT 34975 register and decoded HIGH/LO_SUM combinations for labels in PIC mode. 34976 349772019-01-22 Jakub Jelinek <jakub@redhat.com> 34978 34979 PR tree-optimization/88044 34980 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition 34981 is false in the first iteration, but !every_iteration, return false 34982 instead of true with niter->niter zero. 34983 34984 PR rtl-optimization/88904 34985 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention 34986 any nonequal registers before processing BB_END (b). 34987 34988 PR target/88905 34989 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of 34990 GET_MODE (op0). 34991 (expand_binop_directly, expand_doubleword_clz, 34992 expand_doubleword_popcount, expand_ctz, expand_ffs, 34993 expand_unop_direct, maybe_emit_unop_insn): Adjust callers. 34994 34995 PR rtl-optimization/49429 34996 PR target/49454 34997 PR rtl-optimization/86334 34998 PR target/88906 34999 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs 35000 addressable from here... 35001 (emit_block_op_via_libcall): ... to here. 35002 350032019-01-22 Richard Biener <rguenther@suse.de> 35004 35005 * tree-vect-loop.c (vect_analyze_loop_operations): Use 35006 auto_vec for cost vector to fix memleak. 35007 (vectorize_fold_left_reduction): Properly gather SLP defs. 35008 (vectorizable_comparison): Do not swap operands to properly 35009 gather SLP defs. 35010 350112019-01-22 Alan Modra <amodra@gmail.com> 35012 35013 PR target/88614 35014 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg 35015 stays a reg. Allow a const_int. 35016 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare. 35017 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define. 35018 (IS_NOMARK_TLSGETADDR): Define. 35019 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete. 35020 (rs6000_output_tlsargs): New function. 35021 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS 35022 __tls_get_addr call takes an arg. 35023 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here.. 35024 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here, 35025 delete split.. 35026 (call_value_nonlocal_sysv): ..or here, delete split. 35027 (tls_gdld_nomark): Delete. 35028 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2 35029 predicate. Call rs6000_output_tlsargs. Adjust length to suit. 35030 (call_value_nonlocal_sysv): Likewise. 35031 (call_value_nonlocal_sysv_secure): Likewise. 35032 (call_value_nonlocal_aix): Likewise. 35033 (call_value_indirect_aix): Likewise. 35034 (call_value_indirect_elfv2): Likewise. 35035 (call_value_local32, call_value_local64): Disable for no-mark tls. 35036 (call_value_local_aix): Likewise. 35037 350382019-01-21 Uroš Bizjak <ubizjak@gmail.com> 35039 35040 PR target/88938 35041 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32, 35042 case IX86_BUILTIN_BEXTRI64]: Sanitize operands. 35043 350442019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com> 35045 35046 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use 35047 string contents as hash_map keys. 35048 350492019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de> 35050 35051 PR c/88928 35052 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter 35053 for rvalue context. Handle rvalues correctly. Use min_align_of_type 35054 instead of TYPE_ALIGN. 35055 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly. 35056 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL 35057 pointer from TYPE_STUB_DECL. 35058 350592019-01-21 Richard Biener <rguenther@suse.de> 35060 35061 PR tree-optimization/88934 35062 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look 35063 at the possibly non-constant operand. 35064 (vect_get_constant_vectors): Adjust. 35065 350662019-01-21 H.J. Lu <hongjiu.lu@intel.com> 35067 35068 PR target/71659 35069 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED. 35070 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED 35071 instead of _X86INTRIN_H_INCLUDED. 35072 * onfig/i386/clwbintrin.h: Likewise. 35073 * config/i386/pkuintrin.h: Likewise. 35074 * config/i386/prfchwintrin.h: Likewise. 35075 * config/i386/rdseedintrin.h: Likewise. 35076 * config/i386/wbnoinvdintrin.h: Likewise. 35077 * config/i386/xsavecintrin.h: Likewise. 35078 * config/i386/xsavesintrin.h: Likewise. 35079 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check. 35080 * config/i386/xsaveintrin.h: Likewise. 35081 * config/i386/xsaveoptintrin.h: Likewise. 35082 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>, 35083 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>, 35084 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>, 35085 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>, 35086 <wbnoinvdintrin.h> and <pkuintrin.h> to ... 35087 * config/i386/immintrin.h: Here. 35088 350892019-01-20 Martin Jambor <mjambor@suse.cz> 35090 35091 PR ipa/87615 35092 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked 35093 with aa_walk_budget. 35094 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add 35095 aa_walk_budget_p parameter. 35096 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA 35097 walk. Updated all callers. 35098 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1. 35099 (eliminated_by_inlining_prob): New parameter fbi, pass it on to 35100 unmodified_parm. 35101 (will_be_nonconstant_expr_predicate): New parameter fbi, removed 35102 parameter info. Extract info from fbi. Pass fbi to recursive calls 35103 and to unmodified_parm. 35104 (phi_result_unknown_predicate): New parameter fbi, removed parameter 35105 info, updated call to will_be_nonconstant_expr_predicate. 35106 (param_change_prob): New parameter fbi, limit AA walking. 35107 (analyze_function_body): Initialize aa_walk_budget in fbi. Update 35108 calls to various above functions. 35109 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p 35110 parameter. Use it to limit AA walking. 35111 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter 35112 fbi, limit AA walk. 35113 (detect_type_change): New parameter fbi, pass it on to 35114 detect_type_change_from_memory_writes. 35115 (detect_type_change_ssa): Likewise. 35116 (aa_overwalked): Removed. 35117 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line 35118 accordingly, adjust to the neew AA limiting scheme. 35119 (parm_ref_data_preserved_p): Likewise. 35120 (ipa_compute_jump_functions_for_edge): Adjust call to 35121 get_dynamic_type. 35122 (ipa_analyze_call_uses): Likewise. 35123 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa. 35124 (ipa_analyze_node): Initialize aa_walk_budget. 35125 (ipcp_transform_function): Likewise. 35126 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call 35127 to get_dynamic_type. 35128 351292019-01-19 Jakub Jelinek <jakub@redhat.com> 35130 35131 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move 35132 outside of #if CHECKING_P code. 35133 351342019-01-19 Richard Sandiford <richard.sandiford@arm.com> 35135 35136 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood): 35137 New function, split out from... 35138 (loop_versioning::analyze_stride): ...here. 35139 (loop_versioning::find_per_loop_multiplication): Use gassign. 35140 (loop_versioning::analyze_term_using_scevs): Return a success code. 35141 (loop_versioning::analyze_arbitrary_term): New function. 35142 (loop_versioning::analyze_address_fragment): Use 35143 analyze_arbitrary_term if all else fails. 35144 351452019-01-18 Segher Boessenkool <segher@kernel.crashing.org> 35146 35147 PR target/88892 35148 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register 35149 operands. 35150 351512019-01-18 Richard Biener <rguenther@suse.de> 35152 35153 PR tree-optimization/88903 35154 * tree-vect-stmts.c (vectorizable_shift): Verify we see all 35155 scalar stmts a SLP shift amount is composed of when detecting 35156 shifts by scalars. 35157 351582019-01-18 Richard Earnshaw <rearnsha@arm.com> 35159 35160 PR target/88799 35161 * config/arm/arm-cpus.in (mp): New feature. 35162 (sec): New feature. 35163 (fgroup ARMv7ve): Add mp and sec features. 35164 (arch armv7-a): Add options to allow mp and sec extensions. 35165 (cpu generic-armv7-a): Add options to allow mp and sec extensions. 35166 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec 35167 extenstions to the base architecture. 35168 (cpu cortex-a8): Add sec extension to the base architecture. 35169 (cpu marvell-pj4): Add mp and sec extensions to the base architecture. 35170 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch 35171 variants down to the base v7-a varaint. 35172 * config/arm/t-multilib (v7_a_arch_variants): New variable. 35173 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list 35174 of permitted extensions for -march=armv7-a and for 35175 -mcpu=generic-armv7-a. 35176 351772019-01-18 Martin Liska <mliska@suse.cz> 35178 35179 * params.def: Fix comment. 35180 * tree-profile.c (gimple_init_gcov_profiler): Bump function 35181 name. 35182 (gimple_gen_ic_func_profiler): Likewise. 35183 351842019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 35185 35186 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New 35187 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle 35188 and put in error checks for stack protector guard options. 35189 (aarch64_stack_protect_guard): New. 35190 (TARGET_STACK_PROTECT_GUARD): Define. 35191 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New. 35192 (reg_stack_protect_address<mode>): New. 35193 (stack_protect_set): Adjust for SSP_GLOBAL. 35194 (stack_protect_test): Likewise. 35195 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New. 35196 (-mstack-protector-guard): Likewise. 35197 (-mstack-protector-guard-offset): Likewise. 35198 351992019-01-18 Jakub Jelinek <jakub@redhat.com> 35200 35201 PR tree-optimization/86214 35202 * tree-inline.h (struct copy_body_data): Add 35203 add_clobbers_to_eh_landing_pads member. 35204 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function. 35205 (copy_edges_for_bb): Call it if EH edge destination is < 35206 id->add_clobbers_to_eh_landing_pads. Fix a comment typo. 35207 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads 35208 if flag_stack_reuse != SR_NONE and clear it afterwards. 35209 352102019-01-18 Christophe Lyon <christophe.lyon@linaro.org> 35211 35212 PR target/85596 35213 * doc/install.texi (with-multilib-list): Document for aarch64. 35214 352152019-01-18 Jakub Jelinek <jakub@redhat.com> 35216 35217 PR target/88734 35218 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace 35219 (("..."))) with ("..."). 35220 352212019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de> 35222 35223 * doc/extend.texi (Built-in Functions for Memory Model Aware 35224 Atomic Operations): Document atomic fetch and nand. 35225 352262019-01-18 Martin Liska <mliska@suse.cz> 35227 Richard Biener <rguenther@suse.de> 35228 35229 PR middle-end/88587 35230 * cgraph.h (create_version_clone_with_body): Add new argument 35231 with attributes. 35232 * cgraphclones.c (cgraph_node::create_version_clone): Add 35233 DECL_ATTRIBUTES to a newly created decl. And call 35234 valid_attribute_p so that proper cl_target_optimization_node 35235 is set for the newly created declaration. 35236 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES 35237 for declaration. 35238 (expand_target_clones): Do not call valid_attribute_p, it must 35239 be already done. 35240 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for 35241 vector types. 35242 352432019-01-17 Jakub Jelinek <jakub@redhat.com> 35244 35245 PR target/88734 35246 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace 35247 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of 35248 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics. 35249 352502019-01-17 Martin Sebor <msebor@redhat.com> 35251 35252 PR middle-end/88273 35253 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): 35254 Handle anti-ranges the same as no range at all. 35255 352562018-01-17 Steve Ellcey <sellcey@cavium.com> 35257 35258 * config/aarch64/aarch64.c (cgraph.h): New include. 35259 (intl.h): New include. 35260 (supported_simd_type): New function. 35261 (currently_supported_simd_type): Ditto. 35262 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto. 35263 (aarch64_simd_clone_adjust): Ditto. 35264 (aarch64_simd_clone_usable): Ditto. 35265 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro. 35266 (TARGET_SIMD_CLONE_ADJUST): Ditto. 35267 (TARGET_SIMD_CLONE_USABLE): Ditto. 35268 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check. 35269 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust 35270 call. 35271 352722019-01-17 Martin Sebor <msebor@redhat.com> 35273 35274 PR tree-optimization/88800 35275 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking 35276 NO_WARNING bit here. Avoid folding out-of-bounds calls. 35277 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove 35278 redundant argument. Add new argument and issue diagnostics under 35279 its control. Detect out-of-bounds access even with warnings 35280 disabled. 35281 (check_bounds_or_overlap): Change return type. Add argument. 35282 (wrestrict_dom_walker::check_call): Adjust. 35283 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument. 35284 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in 35285 check_bounds_or_overlap's return value. 35286 (handle_builtin_stxncpy): Same. 35287 (handle_builtin_strcat): Same. 35288 352892019-01-17 Andrew Stubbs <ams@codesourcery.com> 35290 Kwok Cheung Yeung <kcy@codesourcery.com> 35291 Julian Brown <julian@codesourcery.com> 35292 Tom de Vries <tom@codesourcery.com> 35293 35294 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn. 35295 352962019-01-17 Andrew Stubbs <ams@codesourcery.com> 35297 35298 * doc/sourcebuild.texi: Document dg-require-effective-target 35299 llvm_binutils and offload_gcn. 35300 353012019-01-17 Andrew Stubbs <ams@codesourcery.com> 35302 Kwok Cheung Yeung <kcy@codesourcery.com> 35303 Julian Brown <julian@codesourcery.com> 35304 Tom de Vries <tom@codesourcery.com> 35305 35306 * doc/sourcebuild.texi: Document dg-required-effective-target 35307 exceptions. 35308 353092019-01-17 Andrew Stubbs <ams@codesourcery.com> 35310 Kwok Cheung Yeung <kcy@codesourcery.com> 35311 Julian Brown <julian@codesourcery.com> 35312 Tom de Vries <tom@codesourcery.com> 35313 Jan Hubicka <hubicka@ucw.cz> 35314 Martin Jambor <mjambor@suse.cz> 35315 35316 * config.gcc: Add amdgcn*-*-amdhsa configuration. 35317 * configure.ac: Check for dlopen. 35318 * configure: Regenerate. 35319 353202019-01-17 Andrew Stubbs <ams@codesourcery.com> 35321 Kwok Cheung Yeung <kcy@codesourcery.com> 35322 Julian Brown <julian@codesourcery.com> 35323 Tom de Vries <tom@codesourcery.com> 35324 Jan Hubicka <hubicka@ucw.cz> 35325 Martin Jambor <mjambor@suse.cz> 35326 35327 * common/config/gcn/gcn-common.c: New file. 35328 * config/gcn/driver-gcn.c: New file. 35329 * config/gcn/gcn-builtins.def: New file. 35330 * config/gcn/gcn-hsa.h: New file. 35331 * config/gcn/gcn-modes.def: New file. 35332 * config/gcn/gcn-opts.h: New file. 35333 * config/gcn/gcn-passes.def: New file. 35334 * config/gcn/gcn-protos.h: New file. 35335 * config/gcn/gcn-run.c: New file. 35336 * config/gcn/gcn-tree.c: New file. 35337 * config/gcn/gcn.c: New file. 35338 * config/gcn/gcn.h: New file. 35339 * config/gcn/gcn.opt: New file. 35340 * config/gcn/t-gcn-hsa: New file. 35341 353422019-01-17 Andrew Stubbs <ams@codesourcery.com> 35343 Kwok Cheung Yeung <kcy@codesourcery.com> 35344 Julian Brown <julian@codesourcery.com> 35345 Tom de Vries <tom@codesourcery.com> 35346 Jan Hubicka <hubicka@ucw.cz> 35347 Martin Jambor <mjambor@suse.cz> 35348 35349 * config/gcn/constraints.md: New file. 35350 * config/gcn/gcn-valu.md: New file. 35351 * config/gcn/gcn.md: New file. 35352 * config/gcn/predicates.md: New file. 35353 353542019-01-17 Eric Botcazou <ebotcazou@adacore.com> 35355 35356 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace 35357 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions. 35358 (stmt_uses_0_or_null_in_undefined_way): Likewise. 35359 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise. 35360 353612019-01-17 Tamar Christina <tamar.christina@arm.com> 35362 35363 PR target/88851 35364 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New. 35365 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use 35366 it and document registers. 35367 353682019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35369 35370 * config/aarch64/aarch64.c (ares_tunings): Define. 35371 * config/aarch64/aarch64-cores.def (ares): Use the above. 35372 353732019-01-17 Wei Xiao <wei3.xiao@intel.com> 35374 35375 PR target/88794 35376 Revert: 35377 2018-11-06 Wei Xiao <wei3.xiao@intel.com> 35378 35379 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. 35380 (_mm512_fixupimm_round_pd): Update parameters and builtin. 35381 (_mm512_maskz_fixupimm_round_pd): Ditto. 35382 (_mm512_fixupimm_round_ps): Ditto. 35383 (_mm512_maskz_fixupimm_round_ps): Ditto. 35384 (_mm_fixupimm_round_sd): Ditto. 35385 (_mm_maskz_fixupimm_round_sd): Ditto. 35386 (_mm_fixupimm_round_ss): Ditto. 35387 (_mm_maskz_fixupimm_round_ss): Ditto. 35388 (_mm512_fixupimm_pd): Ditto. 35389 (_mm512_maskz_fixupimm_pd): Ditto. 35390 (_mm512_fixupimm_ps): Ditto. 35391 (_mm512_maskz_fixupimm_ps): Ditto. 35392 (_mm_fixupimm_sd): Ditto. 35393 (_mm_maskz_fixupimm_sd): Ditto. 35394 (_mm_fixupimm_ss): Ditto. 35395 (_mm_maskz_fixupimm_ss): Ditto. 35396 (_mm512_mask_fixupimm_round_pd): Update builtin. 35397 (_mm512_mask_fixupimm_round_ps): Ditto. 35398 (_mm_mask_fixupimm_round_sd): Ditto. 35399 (_mm_mask_fixupimm_round_ss): Ditto. 35400 (_mm512_mask_fixupimm_pd): Ditto. 35401 (_mm512_mask_fixupimm_ps): Ditto. 35402 (_mm_mask_fixupimm_sd): Ditto. 35403 (_mm_mask_fixupimm_ss): Ditto. 35404 * config/i386/avx512vlintrin.h: 35405 (_mm256_fixupimm_pd): Update parameters and builtin. 35406 (_mm256_maskz_fixupimm_pd): Ditto. 35407 (_mm256_fixupimm_ps): Ditto. 35408 (_mm256_maskz_fixupimm_ps): Ditto. 35409 (_mm_fixupimm_pd): Ditto. 35410 (_mm_maskz_fixupimm_pd): Ditto. 35411 (_mm_fixupimm_ps): Ditto. 35412 (_mm_maskz_fixupimm_ps): Ditto. 35413 (_mm256_mask_fixupimm_pd): Update builtin. 35414 (_mm256_mask_fixupimm_ps): Ditto. 35415 (_mm_mask_fixupimm_pd): Ditto. 35416 (_mm_mask_fixupimm_ps): Ditto. 35417 * config/i386/i386-builtin-types.def: Add new types and remove 35418 useless ones. 35419 * config/i386/i386-builtin.def: Update builtin definitions. 35420 * config/i386/i386.c: Handle new builtin types and remove useless ones. 35421 * config/i386/sse.md: Update VFIXUPIMM* patterns. 35422 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. 35423 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. 35424 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update. 35425 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. 35426 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. 35427 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update. 35428 * config/i386/subst.md: 35429 (round_saeonly_sd_mask_operand4): Add new subst_attr. 35430 (round_saeonly_sd_mask_op4): Ditto. 35431 (round_saeonly_expand_operand5): Ditto. 35432 (round_saeonly_expand): Update. 35433 354342019-01-17 Wei Xiao <wei3.xiao@intel.com> 35435 35436 PR target/88794 35437 Revert: 35438 2018-11-12 Wei Xiao <wei3.xiao@intel.com> 35439 35440 * config/i386/sse.md: Combine VFIXUPIMM* patterns 35441 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. 35442 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. 35443 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove. 35444 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. 35445 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. 35446 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove. 35447 354482019-01-17 Wei Xiao <wei3.xiao@intel.com> 35449 35450 PR target/88794 35451 Revert: 35452 2018-12-15 Jakub Jelinek <jakub@redhat.com> 35453 35454 PR target/88489 35455 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. 35456 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it 35457 instead of UNSPEC_FIXUPIMM. 35458 354592019-01-17 Richard Biener <rguenther@suse.de> 35460 35461 PR lto/86736 35462 * dwarf2out.c (want_pubnames): Never generate pubnames sections 35463 and friends for the LTO part of debug info. 35464 354652019-01-17 Jakub Jelinek <jakub@redhat.com> 35466 35467 PR tree-optimization/86214 35468 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts 35469 if x == y. 35470 35471 PR rtl-optimization/88870 35472 * dce.c (deletable_insn_p): Never delete const/pure calls that can 35473 throw if we can't alter the cfg or delete dead exceptions. 35474 (mark_insn): Don't call find_call_stack_args for such calls. 35475 354762019-01-17 Kewen Lin <linkw@gcc.gnu.org> 35477 35478 * doc/extend.texi: Add four new prototypes for vec_ld and seven new 35479 prototypes for vec_st. 35480 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries 35481 for scalar address type variants of altivec_vec_ld/altivec_vec_st, 35482 mainly on signed/unsigned long long and double. 35483 354842019-01-16 David Malcolm <dmalcolm@redhat.com> 35485 35486 PR target/88861 35487 * combine.c (delete_noop_moves): Convert to "bool" return, 35488 returning true if any edges are eliminated. 35489 (combine_instructions): Also return true if delete_noop_moves 35490 returns true. 35491 354922019-01-16 Tamar Christina <tamar.christina@arm.com> 35493 35494 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use 35495 correct max nunits for endian swap. 35496 (aarch64_expand_fcmla_builtin): Correct subreg code. 35497 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>, 35498 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct 35499 lane endianness. 35500 355012019-01-16 Uroš Bizjak <ubizjak@gmail.com> 35502 35503 * config/alpha/alpha.c (alpha_gimplify_va_arg): 35504 Handle split indirect COMPLEX_TYPE arguments. 35505 355062019-01-16 Richard Earnshaw <rearnsha@arm.com> 35507 35508 PR target/86891 35509 * config/aarch64/aarch64-modes.def: Add comment about how the carry 35510 bit is set by add and compare. 35511 (CC_ADC): New CC_MODE. 35512 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables 35513 to cache the code and mode of X. Adjust the shape of a CC_Cmode 35514 comparison. Add detection for CC_ADCmode. 35515 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add 35516 CC_ADCmode. 35517 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode. 35518 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU. 35519 (add<mode>3_compareC_cconly_imm): Delete. Merge into... 35520 (add<mode>3_compareC_cconly): ... this. Restructure the comparison 35521 to eliminate the need for zero-extending the operands. 35522 (add<mode>3_compareC_imm): Delete. Merge into ... 35523 (add<mode>3_compareC): ... this. Restructure the comparison to 35524 eliminate the need for zero-extending the operands. 35525 (add<mode>3_carryin): Use LTU for the overflow detection. 35526 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out. 35527 Reexpress comparison for overflow. 35528 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC. 35529 (add<mode>3_carryinC): Likewise. 35530 (add<mode>3_carryinV): Use LTU for carry between partials. 35531 * config/aarch64/predicates.md (aarch64_carry_operation): Update 35532 handling of CC_Cmode and add CC_ADCmode. 35533 (aarch64_borrow_operation): Likewise. 35534 355352019-01-16 Tamar Christina <tamar.christina@arm.com> 35536 35537 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): 35538 Remove patternmode. 35539 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise. 35540 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, 35541 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): 35542 Remove endianness conversion. 35543 355442019-01-16 Martin Liska <mliska@suse.cz> 35545 35546 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR 35547 for GCC driver. 35548 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as 35549 a new argument. 35550 * gcc.c (add_sysrooted_hdrs_prefix): New function. 35551 (path_prefix_reset): Move up in the source file. 35552 (find_fortran_preinclude_file): Make complex search for the 35553 fortran header files. 35554 355552019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com> 35556 35557 * godump.c (go_output_typedef): When outputting a typedef, refer 35558 to the underlying type by its name and not its structure. 35559 355602019-01-15 David Malcolm <dmalcolm@redhat.com> 35561 35562 PR c++/88795 35563 * tree.c (build_function_type): Assert that arg_types is not 35564 error_mark_node. 35565 355662019-01-15 Richard Sandiford <richard.sandiford@arm.com> 35567 35568 PR inline-asm/52813 35569 * doc/extend.texi: Document that listing the stack pointer in the 35570 clobber list of an asm is a deprecated feature. 35571 * common.opt (Wdeprecated): Moved from c-family/c.opt. 35572 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated 35573 warning instead of an error for clobbers of the stack pointer. 35574 Add a note explaining why. 35575 355762019-01-15 Richard Biener <rguenther@suse.de> 35577 35578 PR debug/88046 35579 * dwarf2out.c (gen_member_die): Do not generate inheritance 35580 DIEs late. 35581 355822019-01-15 Richard Biener <rguenther@suse.de> 35583 35584 PR tree-optimization/88855 35585 * tree-if-conv.c (combine_blocks): Collect 35586 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals. 35587 355882019-01-15 Tom de Vries <tdevries@suse.de> 35589 35590 PR target/80547 35591 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle 35592 lhs == NULL_TREE for gang-level reduction. 35593 355942019-01-15 Richard Biener <rguenther@suse.de> 35595 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 35596 35597 PR ipa/88788 35598 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and 35599 return true if SSA_NAME is already marked in visited bitmap. 35600 (malloc_candidate_p): Pass visited to malloc_candidate_p_1. 35601 356022019-01-15 Jakub Jelinek <jakub@redhat.com> 35603 35604 PR tree-optimization/88775 35605 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize 35606 equal == 0 equality pointer comparisons some more if compared in 35607 integral types and either one points to an automatic var and the 35608 other to a global, or we can prove at least one points to the middle 35609 or both point to start or both point to end. 35610 356112019-01-14 Andi Kleen <ak@linux.intel.com> 35612 35613 * Makefile.in: Lower autofdo sampling rate by 10x. 35614 * Makefile.tpl: Dito. 35615 356162019-01-14 Tom Honermann <tom@honermann.net> 35617 35618 * defaults.h: Define CHAR8_TYPE. 35619 356202019-01-14 Martin Sebor <msebor@redhat.com> 35621 35622 PR target/88638 35623 * doc/extend.texi (Darwin Format Checks): Clarify. 35624 356252019-01-14 Richard Biener <rguenther@suse.de> 35626 35627 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on 35628 whether we are in (simplify ...) or (match ...) context. 35629 356302019-01-14 Jakub Jelinek <jakub@redhat.com> 35631 35632 PR rtl-optimization/88796 35633 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field. 35634 * cfgexpand.c (stack_protect_prologue): Initialize 35635 crtl->stack_protect_guard_decl. 35636 * function.c (stack_protect_epilogue): Use it instead of calling 35637 targetm.stack_protect_guard again. 35638 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from 35639 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or 35640 crtl->stack_protect_guard_decl. 35641 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE 35642 on the returned MEM_EXPR. 35643 356442019-01-12 Tom de Vries <tdevries@suse.de> 35645 35646 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting 35647 vector length using -fopenacc-dim. 35648 356492019-01-12 Tom de Vries <tdevries@suse.de> 35650 35651 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector 35652 lengths into account. 35653 356542019-01-12 Svante Signell <svante.signell@gmail.com> 35655 35656 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define. 35657 (TARGET_CAN_SPLIT_STACK): Define. 35658 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define. 35659 356602019-01-05 Jan Hubicka <hubicka@ucw.cz> 35661 35662 * params.def (inline-unit-growth): Set to 40. 35663 356642019-01-12 Jakub Jelinek <jakub@redhat.com> 35665 35666 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo. 35667 356682019-01-12 Tom de Vries <tdevries@suse.de> 35669 35670 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading 35671 region calling vector-partitionable routine, set default_vector_length 35672 to WARP_SIZE. 35673 356742019-01-12 Tom de Vries <tdevries@suse.de> 35675 35676 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new 35677 variable default_vector_length. 35678 356792019-01-12 Tom de Vries <tdevries@suse.de> 35680 35681 PR middle-end/88703 35682 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults 35683 from oacc_default_dims, as oacc_validate_dims would do it, and apply 35684 dimensions limits. 35685 356862019-01-12 Tom de Vries <tdevries@suse.de> 35687 35688 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1) 35689 (nvptx_goacc_validate_dims): Add used parameter. 35690 * doc/tm.texi: Regenerate. 35691 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add 35692 argument to call to targetm.goacc.validate_dims. 35693 (default_goacc_validate_dims): Add used 35694 parameter. 35695 * target.def (validate_dims): Add used parameter in DEFHOOK. 35696 * targhooks.h (default_goacc_validate_dims): Add used parameter. 35697 356982019-01-11 Jakub Jelinek <jakub@redhat.com> 35699 35700 PR middle-end/85956 35701 PR lto/88733 35702 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds 35703 field. 35704 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of 35705 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with 35706 a dummy "omp dummy var" variable if id->adjust_array_error_bounds. 35707 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds. 35708 357092019-01-11 Vladimir Makarov <vmakarov@redhat.com> 35710 35711 PR rtl-optimization/87305 35712 * lra-assigns.c 35713 (setup_live_pseudos_and_spill_after_risky_transforms): Add code 35714 for little endian pseudos used as paradoxical subreg. 35715 357162019-01-11 Jakub Jelinek <jakub@redhat.com> 35717 35718 PR tree-optimization/88693 35719 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p 35720 for STRING_CSTs that don't contain any NUL characters in the first 35721 TREE_STRING_LENGTH bytes. 35722 357232019-01-11 Alan Modra <amodra@gmail.com> 35724 35725 PR 88777 35726 PR 88614 35727 * genattrtab.c (min_fn): Don't translate values. 35728 (min_attr_value): Return INT_MAX when the value can't be calculated. 35729 Return minimum among any values that can be calculated. 35730 (max_attr_value): Adjust. 35731 357322019-01-11 Jakub Jelinek <jakub@redhat.com> 35733 35734 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H). 35735 357362019-01-11 Steve Ellcey <sellcey@marvell.com> 35737 35738 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. 35739 (aarch64_hard_regno_call_part_clobbered): Add insn argument. 35740 (aarch64_return_call_with_max_clobbers): New function. 35741 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro. 35742 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn 35743 argument. 35744 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto. 35745 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto. 35746 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto. 35747 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto. 35748 * cselib.c (cselib_process_insn): Add argument to 35749 targetm.hard_regno_call_part_clobbered call. 35750 * ira-conflicts.c (ira_build_conflicts): Ditto. 35751 * ira-costs.c (ira_tune_allocno_costs): Ditto. 35752 * lra-constraints.c (inherit_reload_reg): Ditto. 35753 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field. 35754 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn 35755 argument. Call targetm.return_call_with_max_clobbers. 35756 Add argument to targetm.hard_regno_call_part_clobbered call. 35757 (calls_have_same_clobbers_p): New function. 35758 (process_bb_lives): Add call_insn and last_call_insn variables. 35759 Pass call_insn to check_pseudos_live_through_calls. 35760 Modify if stmt to check targetm.return_call_with_max_clobbers. 35761 Update setting of flush variable. 35762 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p 35763 to false. 35764 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL. 35765 * regcprop.c (copyprop_hardreg_forward_1): Add argument to 35766 targetm.hard_regno_call_part_clobbered call. 35767 * reginfo.c (choose_hard_reg_mode): Ditto. 35768 * regrename.c (check_new_reg_p): Ditto. 35769 * reload.c (find_equiv_reg): Ditto. 35770 * reload1.c (emit_reload_insns): Ditto. 35771 * sched-deps.c (deps_analyze_insn): Ditto. 35772 * sel-sched.c (init_regs_for_mode): Ditto. 35773 (mark_unavailable_hard_regs): Ditto. 35774 * targhooks.c (default_dwarf_frame_reg_mode): Ditto. 35775 * target.def (hard_regno_call_part_clobbered): Add insn argument. 35776 (return_call_with_max_clobbers): New target function. 35777 * doc/tm.texi: Regenerate. 35778 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook. 35779 * hooks.c (hook_bool_uint_mode_false): Change to 35780 hook_bool_insn_uint_mode_false. 35781 * hooks.h (hook_bool_uint_mode_false): Ditto. 35782 357832019-01-11 Steve Ellcey <sellcey@marvell.com> 35784 35785 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. 35786 (aarch64_remove_extra_call_preserved_regs): New function. 35787 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro. 35788 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook. 35789 * doc/tm.texi: Regenerate. 35790 * final.c (get_call_reg_set_usage): Call new hook. 35791 * target.def (remove_extra_call_preserved_regs): New hook. 35792 * targhooks.c (default_remove_extra_call_preserved_regs): New function. 35793 * targhooks.h (default_remove_extra_call_preserved_regs): New function. 35794 357952019-01-11 Jakub Jelinek <jakub@redhat.com> 35796 35797 PR bootstrap/88714 35798 * passes.c (finish_optimization_passes): Call print_combine_total_stats 35799 inside of pass_combine_1 dump rather than pass_profile_1. 35800 358012019-01-11 Tom de Vries <tdevries@suse.de> 35802 35803 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER) 35804 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER) 35805 (PTX_NUM_PER_WORKER_BARRIERS): Define. 35806 (nvptx_apply_dim_limits): Prevent vector_length 64 and 35807 num_workers 16. 35808 358092019-01-11 Tom de Vries <tdevries@suse.de> 35810 35811 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up. 35812 358132019-01-11 Jan Beulich <jbeulich@suse.com> 35814 35815 * config/i386/i386.md (rex64suffix): Add L suffix for SI. 35816 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>, 35817 sse2_cvtsi2sd): Add {l}. 35818 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T 35819 syntax. 35820 358212019-01-10 Jakub Jelinek <jakub@redhat.com> 35822 35823 PR target/88785 35824 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into 35825 define_expand. 35826 (*float<floatunssuffix>v2div2sf2): New define_insn. 35827 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand. 35828 (*float<floatunssuffix>v2div2sf2_mask): New define_insn. 35829 (*float<floatunssuffix>v2div2sf2_mask_1): Replace 35830 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with 35831 match_operands with "const0_operand" "C". 35832 358332019-01-10 Tamar Christina <tamar.christina@arm.com> 35834 35835 * config/aarch64/aarch64-builtins.c 35836 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins... 35837 (aarch64_init_simd_builtins): ...Here 35838 358392019-01-10 Vladimir Makarov <vmakarov@redhat.com> 35840 35841 PR rtl-optimization/87305 35842 * lra-assigns.c 35843 (setup_live_pseudos_and_spill_after_risky_transforms): Check 35844 allocation for big endian pseudos used as paradoxical subregs and 35845 spill them if it is wrong. 35846 * lra-constraints.c (lra_constraints): Add a comment. 35847 358482019-01-10 Richard Biener <rguenther@suse.de> 35849 35850 PR tree-optimization/88792 35851 * tree-ssa-pre.c (get_representative_for): Do not return a 35852 value-number here. 35853 358542019-01-10 Jakub Jelinek <jakub@redhat.com> 35855 35856 PR middle-end/84877 35857 PR bootstrap/88450 35858 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes. 35859 (assign_parm_setup_block): Do the argument slot realignment here 35860 instead. 35861 358622019-01-10 Stefan Agner <stefan@agner.ch> 35863 35864 PR target/88648 35865 * config/arm/arm.c (arm_option_override_internal): Force 35866 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P. 35867 358682019-01-10 Jakub Jelinek <jakub@redhat.com> 35869 35870 PR c/88568 35871 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting 35872 DECL_EXTERNAL. 35873 358742019-01-10 Tamar Christina <tamar.christina@arm.com> 35875 35876 * config/arm/arm-builtins.c 35877 (enum arm_type_qualifiers): Add qualifier_lane_pair_index. 35878 (MAC_LANE_PAIR_QUALIFIERS): New. 35879 (arm_expand_builtin_args): Use it. 35880 (arm_expand_builtin_1): Likewise. 35881 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New. 35882 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New. 35883 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX. 35884 * config/arm/arm_neon.h: 35885 (vcadd_rot90_f16): New. 35886 (vcaddq_rot90_f16): New. 35887 (vcadd_rot270_f16): New. 35888 (vcaddq_rot270_f16): New. 35889 (vcmla_f16): New. 35890 (vcmlaq_f16): New. 35891 (vcmla_lane_f16): New. 35892 (vcmla_laneq_f16): New. 35893 (vcmlaq_lane_f16): New. 35894 (vcmlaq_laneq_f16): New. 35895 (vcmla_rot90_f16): New. 35896 (vcmlaq_rot90_f16): New. 35897 (vcmla_rot90_lane_f16): New. 35898 (vcmla_rot90_laneq_f16): New. 35899 (vcmlaq_rot90_lane_f16): New. 35900 (vcmlaq_rot90_laneq_f16): New. 35901 (vcmla_rot180_f16): New. 35902 (vcmlaq_rot180_f16): New. 35903 (vcmla_rot180_lane_f16): New. 35904 (vcmla_rot180_laneq_f16): New. 35905 (vcmlaq_rot180_lane_f16): New. 35906 (vcmlaq_rot180_laneq_f16): New. 35907 (vcmla_rot270_f16): New. 35908 (vcmlaq_rot270_f16): New. 35909 (vcmla_rot270_lane_f16): New. 35910 (vcmla_rot270_laneq_f16): New. 35911 (vcmlaq_rot270_lane_f16): New. 35912 (vcmlaq_rot270_laneq_f16): New. 35913 (vcadd_rot90_f32): New. 35914 (vcaddq_rot90_f32): New. 35915 (vcadd_rot270_f32): New. 35916 (vcaddq_rot270_f32): New. 35917 (vcmla_f32): New. 35918 (vcmlaq_f32): New. 35919 (vcmla_lane_f32): New. 35920 (vcmla_laneq_f32): New. 35921 (vcmlaq_lane_f32): New. 35922 (vcmlaq_laneq_f32): New. 35923 (vcmla_rot90_f32): New. 35924 (vcmlaq_rot90_f32): New. 35925 (vcmla_rot90_lane_f32): New. 35926 (vcmla_rot90_laneq_f32): New. 35927 (vcmlaq_rot90_lane_f32): New. 35928 (vcmlaq_rot90_laneq_f32): New. 35929 (vcmla_rot180_f32): New. 35930 (vcmlaq_rot180_f32): New. 35931 (vcmla_rot180_lane_f32): New. 35932 (vcmla_rot180_laneq_f32): New. 35933 (vcmlaq_rot180_lane_f32): New. 35934 (vcmlaq_rot180_laneq_f32): New. 35935 (vcmla_rot270_f32): New. 35936 (vcmlaq_rot270_f32): New. 35937 (vcmla_rot270_lane_f32): New. 35938 (vcmla_rot270_laneq_f32): New. 35939 (vcmlaq_rot270_lane_f32): New. 35940 (vcmlaq_rot270_laneq_f32): New. 35941 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90, 35942 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, 35943 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, 35944 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, 35945 vcmlaq_lane270): New. 35946 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, 35947 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New. 35948 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New. 35949 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New. 35950 (arm_option_reconfigure_globals): Use them. 35951 * config/arm/iterators.md (VDF, VQ_HSF): New. 35952 (VCADD, VCMLA): New. 35953 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF. 35954 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): 35955 New. 35956 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270, 35957 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New. 35958 359592019-01-10 Tamar Christina <tamar.christina@arm.com> 35960 35961 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): 35962 Add qualifier_lane_pair_index. 35963 (emit-rtl.h): Include. 35964 (TYPES_QUADOP_LANE_PAIR): New. 35965 (aarch64_simd_expand_args): Use it. 35966 (aarch64_simd_expand_builtin): Likewise. 35967 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): 35968 New. 35969 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE, 35970 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data, 35971 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New. 35972 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins. 35973 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF, 35974 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, 35975 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF, 35976 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, 35977 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF, 35978 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, 35979 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF, 35980 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF. 35981 * config/aarch64/iterators.md (FCMLA_maybe_lane): New. 35982 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 35983 Add __ARM_FEATURE_COMPLEX. 35984 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, 35985 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, 35986 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, 35987 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, 35988 fcmlaq_lane270): New. 35989 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>, 35990 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>, 35991 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New. 35992 * config/aarch64/arm_neon.h: 35993 (vcadd_rot90_f16): New. 35994 (vcaddq_rot90_f16): New. 35995 (vcadd_rot270_f16): New. 35996 (vcaddq_rot270_f16): New. 35997 (vcmla_f16): New. 35998 (vcmlaq_f16): New. 35999 (vcmla_lane_f16): New. 36000 (vcmla_laneq_f16): New. 36001 (vcmlaq_lane_f16): New. 36002 (vcmlaq_rot90_lane_f16): New. 36003 (vcmla_rot90_laneq_f16): New. 36004 (vcmla_rot90_lane_f16): New. 36005 (vcmlaq_rot90_f16): New. 36006 (vcmla_rot90_f16): New. 36007 (vcmlaq_laneq_f16): New. 36008 (vcmla_rot180_laneq_f16): New. 36009 (vcmla_rot180_lane_f16): New. 36010 (vcmlaq_rot180_f16): New. 36011 (vcmla_rot180_f16): New. 36012 (vcmlaq_rot90_laneq_f16): New. 36013 (vcmlaq_rot270_laneq_f16): New. 36014 (vcmlaq_rot270_lane_f16): New. 36015 (vcmla_rot270_laneq_f16): New. 36016 (vcmlaq_rot270_f16): New. 36017 (vcmla_rot270_f16): New. 36018 (vcmlaq_rot180_laneq_f16): New. 36019 (vcmlaq_rot180_lane_f16): New. 36020 (vcmla_rot270_lane_f16): New. 36021 (vcadd_rot90_f32): New. 36022 (vcaddq_rot90_f32): New. 36023 (vcaddq_rot90_f64): New. 36024 (vcadd_rot270_f32): New. 36025 (vcaddq_rot270_f32): New. 36026 (vcaddq_rot270_f64): New. 36027 (vcmla_f32): New. 36028 (vcmlaq_f32): New. 36029 (vcmlaq_f64): New. 36030 (vcmla_lane_f32): New. 36031 (vcmla_laneq_f32): New. 36032 (vcmlaq_lane_f32): New. 36033 (vcmlaq_laneq_f32): New. 36034 (vcmla_rot90_f32): New. 36035 (vcmlaq_rot90_f32): New. 36036 (vcmlaq_rot90_f64): New. 36037 (vcmla_rot90_lane_f32): New. 36038 (vcmla_rot90_laneq_f32): New. 36039 (vcmlaq_rot90_lane_f32): New. 36040 (vcmlaq_rot90_laneq_f32): New. 36041 (vcmla_rot180_f32): New. 36042 (vcmlaq_rot180_f32): New. 36043 (vcmlaq_rot180_f64): New. 36044 (vcmla_rot180_lane_f32): New. 36045 (vcmla_rot180_laneq_f32): New. 36046 (vcmlaq_rot180_lane_f32): New. 36047 (vcmlaq_rot180_laneq_f32): New. 36048 (vcmla_rot270_f32): New. 36049 (vcmlaq_rot270_f32): New. 36050 (vcmlaq_rot270_f64): New. 36051 (vcmla_rot270_lane_f32): New. 36052 (vcmla_rot270_laneq_f32): New. 36053 (vcmlaq_rot270_lane_f32): New. 36054 (vcmlaq_rot270_laneq_f32): New. 36055 * config/aarch64/aarch64.h (TARGET_COMPLEX): New. 36056 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270, 36057 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New. 36058 (FCADD, FCMLA): New. 36059 (rot): New. 36060 * config/arm/types.md (neon_fcadd, neon_fcmla): New. 36061 360622019-01-09 Sandra Loosemore <sandra@codesourcery.com> 36063 36064 PR other/16615 36065 36066 * config/pa/pa.c: Change "can not" to "cannot". 36067 * gimple-ssa-evrp-analyze.c: Likewise. 36068 * ipa-icf.c: Likewise. 36069 * ipa-polymorphic-call.c: Likewise. 36070 * ipa-pure-const.c: Likewise. 36071 * lra-constraints.c: Likewise. 36072 * lra-remat.c: Likewise. 36073 * reload1.c: Likewise. 36074 * reorg.c: Likewise. 36075 * tree-ssa-uninit.c: Likewise. 36076 360772019-01-09 Sandra Loosemore <sandra@codesourcery.com> 36078 36079 PR other/16615 36080 36081 * Makefile.in: Mechanically replace "can not" with "cannot". 36082 * alias.c: Likewise. 36083 * builtins.c: Likewise. 36084 * calls.c: Likewise. 36085 * cgraph.c: Likewise. 36086 * cgraph.h: Likewise. 36087 * cgraphclones.c: Likewise. 36088 * cgraphunit.c: Likewise. 36089 * combine-stack-adj.c: Likewise. 36090 * combine.c: Likewise. 36091 * common/config/i386/i386-common.c: Likewise. 36092 * config/aarch64/aarch64.c: Likewise. 36093 * config/alpha/sync.md: Likewise. 36094 * config/arc/arc.c: Likewise. 36095 * config/arc/predicates.md: Likewise. 36096 * config/arm/arm-c.c: Likewise. 36097 * config/arm/arm.c: Likewise. 36098 * config/arm/arm.h: Likewise. 36099 * config/arm/arm.md: Likewise. 36100 * config/arm/cortex-r4f.md: Likewise. 36101 * config/csky/csky.c: Likewise. 36102 * config/csky/csky.h: Likewise. 36103 * config/darwin-f.c: Likewise. 36104 * config/epiphany/epiphany.md: Likewise. 36105 * config/i386/i386.c: Likewise. 36106 * config/i386/sol2.h: Likewise. 36107 * config/m68k/m68k.c: Likewise. 36108 * config/mcore/mcore.h: Likewise. 36109 * config/microblaze/microblaze.md: Likewise. 36110 * config/mips/20kc.md: Likewise. 36111 * config/mips/sb1.md: Likewise. 36112 * config/nds32/nds32.c: Likewise. 36113 * config/nds32/predicates.md: Likewise. 36114 * config/pa/pa.c: Likewise. 36115 * config/rs6000/e300c2c3.md: Likewise. 36116 * config/rs6000/rs6000.c: Likewise. 36117 * config/s390/s390.h: Likewise. 36118 * config/sh/sh.c: Likewise. 36119 * config/sh/sh.md: Likewise. 36120 * config/spu/vmx2spu.h: Likewise. 36121 * cprop.c: Likewise. 36122 * dbxout.c: Likewise. 36123 * df-scan.c: Likewise. 36124 * doc/cfg.texi: Likewise. 36125 * doc/extend.texi: Likewise. 36126 * doc/fragments.texi: Likewise. 36127 * doc/gty.texi: Likewise. 36128 * doc/invoke.texi: Likewise. 36129 * doc/lto.texi: Likewise. 36130 * doc/md.texi: Likewise. 36131 * doc/objc.texi: Likewise. 36132 * doc/rtl.texi: Likewise. 36133 * doc/tm.texi: Likewise. 36134 * dse.c: Likewise. 36135 * emit-rtl.c: Likewise. 36136 * emit-rtl.h: Likewise. 36137 * except.c: Likewise. 36138 * expmed.c: Likewise. 36139 * expr.c: Likewise. 36140 * fold-const.c: Likewise. 36141 * genautomata.c: Likewise. 36142 * gimple-fold.c: Likewise. 36143 * hard-reg-set.h: Likewise. 36144 * ifcvt.c: Likewise. 36145 * ipa-comdats.c: Likewise. 36146 * ipa-cp.c: Likewise. 36147 * ipa-devirt.c: Likewise. 36148 * ipa-fnsummary.c: Likewise. 36149 * ipa-icf.c: Likewise. 36150 * ipa-inline-transform.c: Likewise. 36151 * ipa-inline.c: Likewise. 36152 * ipa-polymorphic-call.c: Likewise. 36153 * ipa-profile.c: Likewise. 36154 * ipa-prop.c: Likewise. 36155 * ipa-pure-const.c: Likewise. 36156 * ipa-reference.c: Likewise. 36157 * ipa-split.c: Likewise. 36158 * ipa-visibility.c: Likewise. 36159 * ipa.c: Likewise. 36160 * ira-build.c: Likewise. 36161 * ira-color.c: Likewise. 36162 * ira-conflicts.c: Likewise. 36163 * ira-costs.c: Likewise. 36164 * ira-int.h: Likewise. 36165 * ira-lives.c: Likewise. 36166 * ira.c: Likewise. 36167 * ira.h: Likewise. 36168 * loop-invariant.c: Likewise. 36169 * loop-unroll.c: Likewise. 36170 * lower-subreg.c: Likewise. 36171 * lra-assigns.c: Likewise. 36172 * lra-constraints.c: Likewise. 36173 * lra-eliminations.c: Likewise. 36174 * lra-lives.c: Likewise. 36175 * lra-remat.c: Likewise. 36176 * lra-spills.c: Likewise. 36177 * lra.c: Likewise. 36178 * lto-cgraph.c: Likewise. 36179 * lto-streamer-out.c: Likewise. 36180 * postreload-gcse.c: Likewise. 36181 * predict.c: Likewise. 36182 * profile-count.h: Likewise. 36183 * profile.c: Likewise. 36184 * recog.c: Likewise. 36185 * ree.c: Likewise. 36186 * reload.c: Likewise. 36187 * reload1.c: Likewise. 36188 * reorg.c: Likewise. 36189 * resource.c: Likewise. 36190 * rtl.def: Likewise. 36191 * rtl.h: Likewise. 36192 * rtlanal.c: Likewise. 36193 * sched-deps.c: Likewise. 36194 * sched-ebb.c: Likewise. 36195 * sched-rgn.c: Likewise. 36196 * sel-sched-ir.c: Likewise. 36197 * sel-sched.c: Likewise. 36198 * shrink-wrap.c: Likewise. 36199 * simplify-rtx.c: Likewise. 36200 * symtab.c: Likewise. 36201 * target.def: Likewise. 36202 * toplev.c: Likewise. 36203 * tree-call-cdce.c: Likewise. 36204 * tree-cfg.c: Likewise. 36205 * tree-complex.c: Likewise. 36206 * tree-core.h: Likewise. 36207 * tree-eh.c: Likewise. 36208 * tree-inline.c: Likewise. 36209 * tree-loop-distribution.c: Likewise. 36210 * tree-nrv.c: Likewise. 36211 * tree-profile.c: Likewise. 36212 * tree-sra.c: Likewise. 36213 * tree-ssa-alias.c: Likewise. 36214 * tree-ssa-dce.c: Likewise. 36215 * tree-ssa-dom.c: Likewise. 36216 * tree-ssa-forwprop.c: Likewise. 36217 * tree-ssa-loop-im.c: Likewise. 36218 * tree-ssa-loop-ivcanon.c: Likewise. 36219 * tree-ssa-loop-ivopts.c: Likewise. 36220 * tree-ssa-loop-niter.c: Likewise. 36221 * tree-ssa-phionlycprop.c: Likewise. 36222 * tree-ssa-phiopt.c: Likewise. 36223 * tree-ssa-propagate.c: Likewise. 36224 * tree-ssa-threadedge.c: Likewise. 36225 * tree-ssa-threadupdate.c: Likewise. 36226 * tree-ssa-uninit.c: Likewise. 36227 * tree-ssanames.c: Likewise. 36228 * tree-streamer-out.c: Likewise. 36229 * tree.c: Likewise. 36230 * tree.h: Likewise. 36231 * vr-values.c: Likewise. 36232 362332019-01-09 Uroš Bizjak <ubizjak@gmail.com> 36234 36235 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype. 36236 (ix86_split_xorsign): Ditto. 36237 * config/i386/i386.c (ix86_expand_xorsign): New function. 36238 (ix86_split_xorsign): Ditto. 36239 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec. 36240 (xorsign<mode>3): New expander. 36241 (xorsign<mode>3_1): New insn_and_split pattern. 36242 * config/i386/sse.md (xorsign<mode>3): New expander. 36243 362442019-01-09 Eric Botcazou <ebotcazou@adacore.com> 36245 36246 * config/sparc/sparc.md (*tablejump_sp32): Merge into... 36247 (*tablejump_sp64): Likewise. 36248 (*tablejump<P:mode>): ...this. 36249 (*call_address_sp32): Merge into... 36250 (*call_address_sp64): Likewise. 36251 (*call_address<P:mode>): ...this. 36252 (*call_symbolic_sp32): Merge into... 36253 (*call_symbolic_sp64): Likewise. 36254 (*call_symbolic<P:mode>): ...this. 36255 (call_value): Remove constraint and add predicate. 36256 (*call_value_address_sp32): Merge into... 36257 (*call_value_address_sp64): Likewise. 36258 (*call_value_address<P:mode>): ...this. 36259 (*call_value_symbolic_sp32): Merge into... 36260 (*call_value_symbolic_sp64): Likewise. 36261 (*call_value_symbolic<P:mode>): ...this. 36262 (*sibcall_symbolic_sp32): Merge into... 36263 (*sibcall_symbolic_sp64): Likewise. 36264 (*sibcall_symbolic<P:mode>): ...this. 36265 (sibcall_value): Remove constraint and add predicate. 36266 (*sibcall_value_symbolic_sp32): Merge into... 36267 (*sibcall_value_symbolic_sp64): Likewise. 36268 (*sibcall_value_symbolic<P:mode>): ...this. 36269 (window_save): Minor tweak. 36270 (*branch_sp32): Merge into... 36271 (*branch_sp64): Likewise. 36272 (*branch<P:mode>): ...this. 36273 362742019-01-09 Eric Botcazou <ebotcazou@adacore.com> 36275 James Clarke <jrtc27@jrtc27.com> 36276 36277 PR target/84010 36278 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode 36279 consistently in TLS address generation and adjust code to the renaming 36280 of patterns. Mark calls to __tls_get_addr as const. 36281 * config/sparc/sparc.md (tgd_hi22): Turn into... 36282 (tgd_hi22<P:mode>): ...this and use Pmode throughout. 36283 (tgd_lo10): Turn into... 36284 (tgd_lo10<P:mode>): ...this and use Pmode throughout. 36285 (tgd_add32): Merge into... 36286 (tgd_add64): Likewise. 36287 (tgd_add<P:mode>): ...this and use Pmode throughout. 36288 (tldm_hi22): Turn into... 36289 (tldm_hi22<P:mode>): ...this and use Pmode throughout. 36290 (tldm_lo10): Turn into... 36291 (tldm_lo10<P:mode>): ...this and use Pmode throughout. 36292 (tldm_add32): Merge into... 36293 (tldm_add64): Likewise. 36294 (tldm_add<P:mode>): ...this and use Pmode throughout. 36295 (tldm_call32): Merge into... 36296 (tldm_call64): Likewise. 36297 (tldm_call<P:mode>): ...this and use Pmode throughout. 36298 (tldo_hix22): Turn into... 36299 (tldo_hix22<P:mode>): ...this and use Pmode throughout. 36300 (tldo_lox10): Turn into... 36301 (tldo_lox10<P:mode>): ...this and use Pmode throughout. 36302 (tldo_add32): Merge into... 36303 (tldo_add64): Likewise. 36304 (tldo_add<P:mode>): ...this and use Pmode throughout. 36305 (tie_hi22): Turn into... 36306 (tie_hi22<P:mode>): ...this and use Pmode throughout. 36307 (tie_lo10): Turn into... 36308 (tie_lo10<P:mode>): ...this and use Pmode throughout. 36309 (tie_ld64): Use DImode throughout. 36310 (tie_add32): Merge into... 36311 (tie_add64): Likewise. 36312 (tie_add<P:mode>): ...this and use Pmode throughout. 36313 (tle_hix22_sp32): Merge into... 36314 (tle_hix22_sp64): Likewise. 36315 (tle_hix22<P:mode>): ...this and use Pmode throughout. 36316 (tle_lox22_sp32): Merge into... 36317 (tle_lox22_sp64): Likewise. 36318 (tle_lox22<P:mode>): ...this and use Pmode throughout. 36319 (*tldo_ldub_sp32): Merge into... 36320 (*tldo_ldub_sp64): Likewise. 36321 (*tldo_ldub<P:mode>): ...this and use Pmode throughout. 36322 (*tldo_ldub1_sp32): Merge into... 36323 (*tldo_ldub1_sp64): Likewise. 36324 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout. 36325 (*tldo_ldub2_sp32): Merge into... 36326 (*tldo_ldub2_sp64): Likewise. 36327 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout. 36328 (*tldo_ldsb1_sp32): Merge into... 36329 (*tldo_ldsb1_sp64): Likewise. 36330 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout. 36331 (*tldo_ldsb2_sp32): Merge into... 36332 (*tldo_ldsb2_sp64): Likewise. 36333 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout. 36334 (*tldo_ldub3_sp64): Use DImode throughout. 36335 (*tldo_ldsb3_sp64): Likewise. 36336 (*tldo_lduh_sp32): Merge into... 36337 (*tldo_lduh_sp64): Likewise. 36338 (*tldo_lduh<P:mode>): ...this and use Pmode throughout. 36339 (*tldo_lduh1_sp32): Merge into... 36340 (*tldo_lduh1_sp64): Likewise. 36341 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout. 36342 (*tldo_ldsh1_sp32): Merge into... 36343 (*tldo_ldsh1_sp64): Likewise. 36344 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout. 36345 (*tldo_lduh2_sp64): Use DImode throughout. 36346 (*tldo_ldsh2_sp64): Likewise. 36347 (*tldo_lduw_sp32): Merge into... 36348 (*tldo_lduw_sp64): Likewise. 36349 (*tldo_lduw<P:mode>): ...this and use Pmode throughout. 36350 (*tldo_lduw1_sp64): Use DImode throughout. 36351 (*tldo_ldsw1_sp64): Likewise. 36352 (*tldo_ldx_sp64): Likewise. 36353 (*tldo_stb_sp32): Merge into... 36354 (*tldo_stb_sp64): Likewise. 36355 (*tldo_stb<P:mode>): ...this and use Pmode throughout. 36356 (*tldo_sth_sp32): Merge into... 36357 (*tldo_sth_sp64): Likewise. 36358 (*tldo_sth<P:mode>): ...this and use Pmode throughout. 36359 (*tldo_stw_sp32): Merge into... 36360 (*tldo_stw_sp64): Likewise. 36361 (*tldo_stw<P:mode>): ...this and use Pmode throughout. 36362 (*tldo_stx_sp64): Use DImode throughout. 36363 363642018-01-09 Sudakshina Das <sudi.das@arm.com> 36365 36366 * config/aarch64/aarch64.c (aarch64_override_options): Add case to 36367 check configure option to set BTI and Return Address Signing. 36368 * configure.ac: Add --enable-standard-branch-protection and 36369 --disable-standard-branch-protection. 36370 * configure: Regenerated. 36371 * doc/install.texi: Document the same. 36372 363732018-01-09 Sudakshina Das <sudi.das@arm.com> 36374 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 36375 36376 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o. 36377 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE. 36378 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update 36379 if bti is enabled. 36380 * config/aarch64/aarch64-bti-insert.c: New file. 36381 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti 36382 pass. 36383 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the 36384 new bti pass. 36385 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG, 36386 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC. 36387 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns. 36388 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o. 36389 363902018-01-09 Sudakshina Das <sudi.das@arm.com> 36391 36392 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare. 36393 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection): 36394 Disable bti for -mbranch-protection=none. 36395 (aarch64_handle_standard_branch_protection): Enable bti for 36396 -mbranch-protection=standard. 36397 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to 36398 -mbranch-protection. 36399 (aarch64_bti_enabled): Check if bti is enabled. 36400 * config/aarch64/aarch64.opt: Declare target variable. 36401 * doc/invoke.texi: Add bti to the -mbranch-protection documentation. 36402 364032018-01-09 Sudakshina Das <sudi.das@arm.com> 36404 36405 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new 36406 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM. 36407 (aarch64_expand_epilogue): Likewise. 36408 (aarch64_output_mi_thunk): Likewise. 36409 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change 36410 TAILCALL_ADDR_REGS to x16 and x17. 36411 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM. 36412 364132018-01-09 Sudakshina Das <sudi.das@arm.com> 36414 36415 * config/aarch64/aarch64-option-extensions.def: Define 36416 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres. 36417 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New. 36418 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New. 36419 (AARCH64_FL_PREDRES): New. 36420 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and 36421 AARCH64_FL_PREDRES by default. 36422 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres. 36423 364242018-01-09 Sudakshina Das <sudi.das@arm.com> 36425 36426 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for 36427 ARMv8.5-A. 36428 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New. 36429 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New. 36430 * doc/invoke.texi: Document ARMv8.5-A. 36431 364322019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com> 36433 36434 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand. 36435 (xorsign<mode>3): Likewise. 36436 364372019-01-09 Jelinek <jakub@redhat.com> 36438 36439 PR middle-end/88758 36440 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use 36441 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT. 36442 36443 PR rtl-optimization/88331 36444 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if 36445 not currently_expanding_to_rtl. 36446 364472019-01-09 Eric Botcazou <ebotcazou@adacore.com> 36448 36449 * doc/invoke.texi (-Os): Remove trailing spaces. 36450 (-finline-functions): Remove reference to -O2. 36451 364522019-01-08 Jakub Jelinek <jakub@redhat.com> 36453 36454 PR rtl-optimization/79593 36455 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2. 36456 36457 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize 36458 UNSPEC_FUSION_GPR to its argument. Formatting fixes. 36459 364602019-01-08 Eric Botcazou <ebotcazou@adacore.com> 36461 36462 PR bootstrap/88721 36463 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING 36464 to -1 on entry. 36465 36466 PR debug/88723 36467 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked 36468 UNSPECs and UNSPEC_MOVE_GOTDATA specifically. 36469 364702019-01-08 H.J. Lu <hongjiu.lu@intel.com> 36471 36472 PR target/88717 36473 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call 36474 ix86_avx_u128_mode_entry. 36475 364762019-01-08 Martin Liska <mliska@suse.cz> 36477 36478 PR tree-optimization/88753 36479 * tree-switch-conversion.c (switch_conversion::build_one_array): 36480 Come up with local variable constructor. Convert first to 36481 type of constructor values. 36482 364832019-01-08 Richard Biener <rguenther@suse.de> 36484 36485 PR tree-optimization/86554 36486 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim, 36487 rpo_avail): Move earlier. 36488 (visit_nary_op): When value-numbering to expressions 36489 with different overflow behavior make sure there's an 36490 available expression on the path. 36491 364922019-01-08 Sam Tebbs <sam.tebbs@arm.com> 36493 36494 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX, 36495 aarch64_parse_branch_protection, 36496 struct aarch64_branch_protect_type, 36497 aarch64_handle_no_branch_protection, 36498 aarch64_handle_standard_branch_protection, 36499 aarch64_validate_mbranch_protection, 36500 aarch64_handle_pac_ret_protection, 36501 aarch64_handle_attr_branch_protection, 36502 accepted_branch_protection_string, 36503 aarch64_pac_ret_subtypes, 36504 aarch64_branch_protect_types, 36505 aarch64_handle_pac_ret_leaf): Define. 36506 (aarch64_override_options_after_change_1, aarch64_override_options): 36507 Add check for accepted_branch_protection_string. 36508 (aarch64_option_save): Save accepted_branch_protection_string. 36509 (aarch64_option_restore): Save accepted_branch_protection_string. 36510 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection. 36511 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate 36512 msign-return-address. 36513 * doc/invoke.texi: Add mbranch-protection. 36514 365152019-01-08 Alan Modra <amodra@gmail.com> 36516 36517 PR target/88614 36518 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value): 36519 Delete "unknownp" parameter. Adjust callers. Handle 36520 CONST_INT, PLUS, MINUS, and MULT. 36521 (attr_value_aligned): Renamed from or_attr_value. 36522 (min_attr_value): Return INT_MIN for unhandled rtl case.. 36523 (min_fn): ..and translate to INT_MAX here. 36524 (write_length_unit_log): Modify to cope without "unknown". 36525 (write_attr_value): Handle IF_THEN_ELSE. 36526 365272019-01-07 Richard Sandiford <richard.sandiford@arm.com> 36528 36529 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset 36530 optimization for masked stores. 36531 365322019-01-07 Richard Sandiford <richard.sandiford@arm.com> 36533 36534 PR middle-end/88567 36535 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the 36536 output vector directly to duplicate_and_interleave instead of 36537 going through a temporary. Postpone insertion of ctor_seq to 36538 the end of the loop. 36539 365402019-01-07 Richard Earnshaw <rearnsha@arm.com> 36541 36542 PR target/86891 36543 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter 36544 unsigned_p. Handle signed and unsigned overflow correction as 36545 required. 36546 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update 36547 prototype. 36548 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand 36549 for operand 2. 36550 (add<mode>3_compareV_imm): Make this callable for expanding. 36551 (subv<GPI:mode>4): Use register_operand for operand 1. Use 36552 aarch64_plus_operand for operand 2. 36553 (subv<GPI:mode>_insn): New insn pattern. 36554 (subv<GPI:mode>_imm): Likewise. 36555 (negv<GPI:mode>3): New expand pattern. 36556 (negv<GPI:mode>_insn): New insn pattern. 36557 (negv<GPI:mode>_cmp_only): Likewise. 36558 (cmpv<GPI:mode>_insn): Likewise. 36559 (subvti4): Use register_operand for operand 1. Update call to 36560 aarch64_expand_subvti. 36561 (usubvti4): Likewise. 36562 (negvti3): New expand pattern. 36563 (negdi_carryout): New insn pattern. 36564 (negvdi_carryinV): New insn pattern. 36565 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous 36566 version the named version. 36567 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of 36568 operands. 36569 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn 36570 patterns. 36571 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn 36572 patterns. 36573 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete. 36574 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete. 36575 (sub<mode>3_carryinCV): Delete. 36576 (sub<GPI:mode>3_carryinV): New expand pattern. 36577 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns. 36578 365792019-01-07 Richard Biener <rguenther@suse.de> 36580 36581 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor 36582 of tree_operand_hash. 36583 365842019-01-07 Richard Sandiford <richard.sandiford@arm.com> 36585 36586 PR tree-optimization/88598 36587 * tree.h (single_nonzero_element): Declare. 36588 * tree.c (single_nonzero_element): New function. 36589 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I] 36590 if I is the only nonzero element of CST. 36591 365922019-01-07 Richard Sandiford <richard.sandiford@arm.com> 36593 36594 PR tree-optimization/88598 36595 * tree.h (initializer_each_zero_or_onep): Declare. 36596 * tree.c (initializer_each_zero_or_onep): New function. 36597 (signed_or_unsigned_type_for): Handle float types too. 36598 (unsigned_type_for, signed_type_for): Update comments accordingly. 36599 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to 36600 x & { 0 or -1, 0 or -1, ... }. 36601 366022019-01-07 Jonathan Wakely <jwakely@redhat.com> 36603 36604 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu 36605 with x86_64-pc-linux-gnu. 36606 366072019-01-07 Tom de Vries <tdevries@suse.de> 36608 36609 PR target/85486 36610 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New 36611 function. 36612 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable 36613 routines. 36614 366152019-01-07 Jakub Jelinek <jakub@redhat.com> 36616 36617 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use 36618 V_256_512 iterator instead of V_512 and TARGET_AVX instead of 36619 TARGET_AVX512F as condition. 36620 36621 PR debug/88723 36622 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to 36623 const_not_ok_for_debug_p target hook. 36624 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1 36625 on UNSPEC and subexpressions thereof if all subexpressions of the 36626 UNSPEC are CONSTANT_P. 36627 36628 PR tree-optimization/88676 36629 * tree-ssa-phiopt.c (two_value_replacement): New function. 36630 (tree_ssa_phiopt_worker): Call it. 36631 36632 PR sanitizer/88619 36633 * cfgexpand.c (expand_stack_vars): Only align prev_offset to 36634 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb. 36635 36636 PR c++/85052 36637 * tree-vect-generic.c: Include insn-config.h and recog.h. 36638 (expand_vector_piecewise): Add defaulted ret_type argument, 36639 if non-NULL, use that in preference to type for the result type. 36640 (expand_vector_parallel): Formatting fix. 36641 (do_vec_conversion, do_vec_narrowing_conversion, 36642 expand_vector_conversion): New functions. 36643 (expand_vector_operations_1): Call expand_vector_conversion 36644 for VEC_CONVERT ifn calls. 36645 * internal-fn.def (VEC_CONVERT): New internal function. 36646 * internal-fn.c (expand_VEC_CONVERT): New function. 36647 * fold-const-call.c (fold_const_vec_convert): New function. 36648 (fold_const_call): Use it for CFN_VEC_CONVERT. 36649 * doc/extend.texi (__builtin_convertvector): Document. 36650 366512019-01-07 Tom de Vries <tdevries@suse.de> 36652 36653 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare. 36654 * config/nvptx/nvptx.c (vector_red_size, vector_red_align, 36655 vector_red_partition, vector_red_sym): New global variables. 36656 (nvptx_option_override): Initialize vector_red_sym. 36657 (nvptx_declare_function_name): Restore red_partition register. 36658 (nvptx_file_end): Emit code to declare the vector reduction variables. 36659 (nvptx_output_red_partition): New function. 36660 (nvptx_expand_shared_addr): Add vector argument. Use it to handle 36661 large vector reductions. 36662 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR. 36663 (nvptx_init_builtins): Add VECTOR_ADDR. 36664 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr. 36665 Handle nvptx_expand_shared_addr. 36666 (nvptx_get_shared_red_addr): Add vector argument and handle large 36667 vectors. 36668 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle 36669 large vectors. 36670 (nvptx_goacc_reduction_init): Likewise. 36671 (nvptx_goacc_reduction_fini): Likewise. 36672 (nvptx_goacc_reduction_teardown): Likewise. 36673 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup, 36674 init,fini,teardown}. 36675 (nvptx_init_axis_predicate): Initialize vector_red_partition. 36676 (nvptx_set_current_function): Init vector_red_partition. 36677 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv. 36678 (nvptx_red_partition): New insn. 36679 * config/nvptx/nvptx.h (struct machine_function): Add red_partition. 36680 366812019-01-07 Tom de Vries <tdevries@suse.de> 36682 36683 PR target/85381 36684 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for 36685 empty loops. 36686 366872019-01-07 Tom de Vries <tdevries@suse.de> 36688 36689 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare. 36690 (nvptx_option_override): Init oacc_bcast_partition. 36691 (nvptx_init_oacc_workers): New function. 36692 (nvptx_declare_function_name): Call nvptx_init_oacc_workers. 36693 (nvptx_needs_shared_bcast): New function. 36694 (nvptx_find_par): Generalize to enable vectors to use shared-memory 36695 to propagate state. 36696 (nvptx_shared_propagate): Initialize vector bcast partition and 36697 synchronization state. 36698 (nvptx_single): Generalize to enable vectors to use shared-memory 36699 to propagate state. 36700 (nvptx_process_pars): Likewise. 36701 (nvptx_set_current_function): Initialize oacc_broadcast_partition. 36702 * config/nvptx/nvptx.h (struct machine_function): Add 36703 bcast_partition and sync_bar members. 36704 367052019-01-07 Tom de Vries <tdevries@suse.de> 36706 36707 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p) 36708 (nvptx_apply_dim_limits): New function. 36709 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than 36710 PTX_WARP_SIZE. 36711 367122019-01-07 Tom de Vries <tdevries@suse.de> 36713 36714 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to 36715 as late as possible. 36716 367172019-01-07 Tom de Vries <tdevries@suse.de> 36718 36719 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove. 36720 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define. 36721 (nvptx_goacc_validate_dims_1, nvptx_dim_limit) 36722 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH, 36723 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH. 36724 367252019-01-07 Tom de Vries <tdevries@suse.de> 36726 36727 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts. 36728 367292019-01-07 Tom de Vries <tdevries@suse.de> 36730 36731 * omp-offload.c (oacc_get_min_dim): New function. 36732 * omp-offload.h (oacc_get_min_dim): Declare. 36733 367342018-12-26 Mateusz B <mateuszb@poczta.onet.pl> 36735 36736 PR target/88521 36737 * config/i386/i386.c (function_value_ms_64): Return small sturct in 36738 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes. 36739 367402019-01-05 Jan Hubicka <hubicka@ucw.cz> 36741 36742 PR tree-opt/86020 36743 Revert: 36744 2017-05-22 Jan Hubicka <hubicka@ucw.cz> 36745 36746 * ipa-inline.c (edge_badness): Use inlined_time instead of 36747 inline_summaries->get. 36748 367492019-01-05 Jan Hubicka <hubicka@ucw.cz> 36750 36751 * opts.c (enable_fdo_optimizations): Enable 36752 version-loops-for-strides, loop-interchange, unrol-and-jam 36753 and tree-loop-distribution. 36754 * invoke.texi: Document newly enabled options. 36755 367562019-01-05 Jan Hubicka <hubicka@ucw.cz> 36757 36758 * doc/invoke.texi (max-inline-insns-small): New parameters. 36759 * ipa-inline.c (want_early_inline_function_p): simplify. 36760 (want_inline_small_function_p): Fix pasto from previous patch; 36761 use max-inline-insns-small bound. 36762 * params.def (max-inline-insns-small): New param. 36763 * ipa-fnsummary.c (analyze_function_body): Initialize time/size 36764 variables correctly. 36765 367662019-01-05 Jan Hubicka <hubicka@ucw.cz> 36767 36768 * doc/invoke.texi: Document max-inline-insns-size, 36769 uninlined-function-insns, uninlined-function-time, 36770 uninlined-thunk-insns and uninlined-thunk-time. 36771 * params.def: Add max-inline-insns-size, 36772 uninlined-function-insns, uninlined-function-time, 36773 uninlined-thunk-insns and uninlined-thunk-time. 36774 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use 36775 new parameters. 36776 * ipa-inline.c (can_inline_edge_by_limits_p, 36777 want_inline_small_function_p): Use new parameters. 36778 367792019-01-05 Jan Hubicka <hubicka@ucw.cz> 36780 36781 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time. 36782 367832019-01-05 Jakub Jelinek <jakub@redhat.com> 36784 36785 PR middle-end/82564 36786 PR target/88620 36787 * expr.c (expand_assignment): For calls returning VLA structures 36788 if to_rtx is not a MEM, force it into a stack temporary. 36789 36790 PR debug/88635 36791 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains 36792 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument. 36793 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in 36794 subexpressions of both operands. 36795 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the 36796 subrtxes are CONSTANT_P. 36797 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert 36798 2018-11-09 changes. 36799 368002019-01-04 Jan Hubicka <hubicka@ucw.cz> 36801 36802 * params.def (hot-bb-count-ws-permille): Set to 990. 36803 368042019-01-04 Martin Sebor <msebor@redhat.com> 36805 36806 PR c/88546 36807 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute 36808 leaf. 36809 368102019-01-04 Martin Sebor <msebor@redhat.com> 36811 36812 PR c/88363 36813 * doc/extend.texi (attribute alloc_align, alloc_size): Update. 36814 368152019-01-04 Jakub Jelinek <jakub@redhat.com> 36816 36817 * gdbinit.in: Turn off pagination for the skip commands, restore 36818 it to previous state afterwards. 36819 368202019-01-04 Jakub Jelinek <jakub@redhat.com> 36821 36822 PR target/88594 36823 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead 36824 of GET_MODE (opN) as modes of the libcall arguments. 36825 368262019-01-04 Jan Beulich <jbeulich@suse.com> 36827 36828 * config/i386/sse.md 36829 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>, 36830 <avx512>_cmp<mode>3<mask_scalar_merge_name>, 36831 <avx512>_ucmp<mode>3<mask_scalar_merge_name>, 36832 <avx512>_ucmp<mode>3<mask_scalar_merge_name>, 36833 avx512f_vmcmp<mode>3<round_saeonly_name>, 36834 avx512f_vmcmp<mode>3_mask<round_saeonly_name>, 36835 avx512f_maskcmp<mode>3, 36836 <avx512>_cvt<ssemodesuffix>2mask<mode>, 36837 <avx512>_cvt<ssemodesuffix>2mask<mode>, 36838 *<avx512>_cvtmask2<ssemodesuffix><mode>, 36839 *<avx512>_cvtmask2<ssemodesuffix><mode>, 36840 <avx512>_eq<mode>3<mask_scalar_merge_name>_1, 36841 <avx512>_eq<mode>3<mask_scalar_merge_name>_1, 36842 <avx512>_gt<mode>3<mask_scalar_merge_name>, 36843 <avx512>_gt<mode>3<mask_scalar_merge_name>, 36844 <avx512>_testm<mode>3<mask_scalar_merge_name>, 36845 <avx512>_testnm<mode>3<mask_scalar_merge_name>, 36846 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext, 36847 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask, 36848 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext, 36849 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask, 36850 avx512cd_maskb_vec_dup<mode>, 36851 avx512cd_maskw_vec_dup<mode>, 36852 avx512dq_fpclass<mode><mask_scalar_merge_name>, 36853 avx512dq_vmfpclass<mode>, 36854 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k 36855 instead of =Yk. 36856 368572019-01-03 Martin Sebor <msebor@redhat.com> 36858 36859 PR tree-optimization/88659 36860 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set. 36861 368622019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com> 36863 36864 * config/rs6000/rs6000-string.c (expand_block_move): Don't use 36865 unaligned vsx and avoid lxvd2x/stxvd2x. 36866 (gen_lvx_v4si_move): New function. 36867 368682019-01-03 Tom de Vries <tdevries@suse.de> 36869 36870 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define. 36871 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New 36872 function. 36873 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims. 36874 368752019-01-03 Tom de Vries <tdevries@suse.de> 36876 36877 * config/nvptx/nvptx.c (struct offload_attrs): New. 36878 (populate_offload_attrs): New function. Factor mask extraction out of 36879 nvptx_reorg. Add extraction of dimensions. 36880 (nvptx_reorg): Use populate_offload_attrs. 36881 368822019-01-03 Tom de Vries <tdevries@suse.de> 36883 36884 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out 36885 cases for oacc_min_dims_p and routine_p. Add asserts for 36886 oacc_default_dims_p and offload_region_p. 36887 368882019-01-03 Tom de Vries <tdevries@suse.de> 36889 36890 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function, 36891 factored out of ... 36892 (nvptx_goacc_validate_dims): ... here. 36893 368942019-01-03 Jan Hubicka <hubicka@ucw.cz> 36895 36896 PR tree-optimization/85574 36897 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused 36898 structure. 36899 (struct ssa_equip_hash_traits): Declare. 36900 (val_ssa_equiv): Use custom hash traits using operand_equal_p. 36901 369022019-01-03 Jakub Jelinek <jakub@redhat.com> 36903 36904 PR debug/88644 36905 * dwarf2out.c (modified_type_die): If type is equal to sizetype, 36906 change it to qualified_type. 36907 369082019-01-03 Jan Hubicka <hubicka@ucw.cz> 36909 36910 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ... 36911 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases. 36912 369132019-01-02 Martin Sebor <msebor@redhat.com> 36914 Jeff Law <law@redhat.com> 36915 36916 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2. 36917 (get_range_strlen_tree): Update appropriately. 36918 (get_range_strlen) 36919 * gimple-fold.h (get_range_strlen): Drop unused last argument. 36920 36921 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range 36922 rather than set_range_info. 36923 * tree-ssa-strlen.c (set_strlen_range): Extracted from 36924 maybe_set_strlen_range. Handle potentially boundary crossing 36925 cases more conservatively. 36926 (maybe_set_strlen_range): Parts refactored into set_strlen_range. 36927 Call set_strlen_range. 36928 * tree-ssa-strlen.h (set_strlen_range): Add prototype. 36929 36930 PR middle-end/88663 36931 * gimple-fold.c (get_range_strlen): Update prototype to no longer 36932 need the flexp argument. 36933 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument 36934 from calls to get_range_strlen. Update comments. Just update 36935 VAL for an unterminated const char array and let the reset of the 36936 code handle it normally. No longer try to set *flexp. Adjust 36937 return value. 36938 (get_range_strlen): Update for the new get_range_strlen API. 36939 (get_maxval_strlen): Similarly. 36940 (gimple_fold_builtin_strlen): Handle update meaning of return value 36941 from get_range_strlen. 36942 * gimple-ssa-sprintf.c (get_string_length): Update for the new 36943 get_range_strlen API. 36944 369452019-01-02 Jan Hubicka <hubicka@ucw.cz> 36946 36947 PR lto/88130 36948 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return 36949 false at WPA time when body was removed. 36950 369512019-01-02 Martin Liska <mliska@suse.cz> 36952 36953 PR tree-optimization/88650 36954 * predict.c (set_even_probabilities): Calculate probability 36955 remainer only when really used. 36956 369572019-01-02 Richard Biener <rguenther@suse.de> 36958 36959 PR middle-end/88651 36960 * tree-data-ref.c (analyze_subscript_affine_affine): Use 36961 widest_ints when mangling max_stmt_execution results. 36962 369632019-01-02 Richard Biener <rguenther@suse.de> 36964 36965 PR tree-optimization/88621 36966 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid 36967 bitfields when canoncalizing. 36968 369692019-01-02 Richard Biener <rguenther@suse.de> 36970 36971 PR target/87545 36972 * config/i386/x86-tune-costs.h (intel_cost): Adjust 36973 cost of cheap SSE instruction. 36974 369752019-01-02 Richard Biener <rguenther@suse.de> 36976 36977 PR ipa/85574 36978 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare. 36979 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New 36980 function. 36981 (sem_item_optimizer::do_congruence_step_f): Sort the congruence 36982 set after UIDs before splitting them. 36983 369842019-01-01 Martin Sebor <msebor@redhat.com> 36985 Jeff Law <law@redhat.com> 36986 36987 * gimple-fold.c (get_range_strlen_tree): Record if the computed 36988 length is optimistic. If it is, then arrange to compute the 36989 conservative length as well. 36990 36991 * gimple-fold.h (get_range_strlen): Update prototype. 36992 * builtins.c (check_access): Update call to get_range_strlen to use 36993 c_strlen_data pointer. Change various variable accesses to instead 36994 pull data from the c_strlen_data structure. 36995 (check_strncat_sizes, expand_builtin_strncat): Likewise. 36996 * calls.c (maybe_warn_nonstring_arg): Likewise. 36997 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset 36998 minimum length if maximum lengh is unknown. 36999 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code 37000 that used c_strlen, it's no longer needed. Restructure slightly. 37001 (format_string): Set unlikely range appropriately. 37002 * gimple-fold.c (get_range_strlen): Update comments. Fix minor 37003 formatting issues. 37004 (get_range_strlen): Accept c_strlen_data pointer for external 37005 call sites as well. Pass through to call to internal get_range_strlen. 37006 Adjust minlen, maxlen and maxbound as needed. 37007 (get_maxval_strlen): Update comments. 37008 (gimple_fold_builtin_strlen): Update call to get_range_strlen 37009 to use c_strlen_data pointer. Change variable accesses to instead 37010 use c_strlen_data data members. 37011 37012 * gimple-fold.c (get_range_strlen): Update prototype. 37013 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen 37014 local variables. Use pdata to return information to caller. 37015 Update calls to get_range_strlen. Update pdata->maxbound. 37016 (get_range_strlen -- static version): Similarly. 37017 (get_range_strlen -- extern version): Update for internal 37018 get_range_strlen API change. Convert to external data format. 37019 (get_maxval_strlen): Similarly. 37020 370212019-01-01 Jan Hubicka <hubicka@ucw.cz> 37022 37023 * coverage.c (get_coverage_counts): Use current_function_decl. 37024 * profile.c (read_thunk_profile): New function. 37025 (branch_prob): Add THUNK parameter. 37026 * tree-profile.c (tree_profiling): Handle thunks. 37027 * value-prof.c (init_node_map): Handle thunks. 37028 * value-prof.h (branch_prob): Upate prototype. 37029 (read_thunk_profile): Declare. 37030 370312019-01-01 Jakub Jelinek <jakub@redhat.com> 37032 37033 Update copyright years. 37034 37035 * gcc.c (process_command): Update copyright notice dates. 37036 * gcov-dump.c (print_version): Ditto. 37037 * gcov.c (print_version): Ditto. 37038 * gcov-tool.c (print_version): Ditto. 37039 * gengtype.c (create_file): Ditto. 37040 * doc/cpp.texi: Bump @copying's copyright year. 37041 * doc/cppinternals.texi: Ditto. 37042 * doc/gcc.texi: Ditto. 37043 * doc/gccint.texi: Ditto. 37044 * doc/gcov.texi: Ditto. 37045 * doc/install.texi: Ditto. 37046 * doc/invoke.texi: Ditto. 37047 37048Copyright (C) 2019 Free Software Foundation, Inc. 37049 37050Copying and distribution of this file, with or without modification, 37051are permitted in any medium without royalty provided the copyright 37052notice and this notice are preserved. 37053