12014-05-22 Release Manager 2 3 * GCC 4.8.3 released. 4 52014-05-15 Peter Bergner <bergner@vnet.ibm.com> 6 7 Backport from mainline 8 2014-05-15 Peter Bergner <bergner@vnet.ibm.com> 9 10 PR target/61193 11 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define. 12 (__TM_simple_begin): Use it. 13 (__TM_begin): Likewise. 14 152014-05-14 Eric Botcazou <ebotcazou@adacore.com> 16 17 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate): 18 Delete. 19 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise. 20 * config/sparc/sparc.md (fptype_ut699): New attribute. 21 (in_branch_delay): Return false if -mfix-ut699 is specified and 22 fptype_ut699 is set to single. 23 (truncdfsf2): Add fptype_ut699 attribute. 24 (fix_truncdfsi2): Likewise. 25 (floatsisf2): Change fptype attribute. 26 (fix_truncsfsi2): Likewise. 27 (negtf2_notv9): Delete. 28 (negtf2_v9): Likewise. 29 (negtf2_hq): New instruction. 30 (negtf2): New instruction and splitter. 31 (negdf2_notv9): Rewrite. 32 (abstf2_notv9): Delete. 33 (abstf2_hq_v9): Likewise. 34 (abstf2_v9): Likewise. 35 (abstf2_hq): New instruction. 36 (abstf2): New instruction and splitter. 37 (absdf2_notv9): Rewrite. 38 392014-05-14 Matthias Klose <doko@ubuntu.com> 40 41 Revert: 42 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org> 43 Matthias Klose <doko@ubuntu.com> 44 45 PR driver/61106 46 * optc-gen.awk: Fix option handling for -Wunused-parameter. 47 482014-05-13 Peter Bergner <bergner@vnet.ibm.com> 49 50 * doc/sourcebuild.texi: (dfp_hw): Document. 51 (p8vector_hw): Likewise. 52 (powerpc_eabi_ok): Likewise. 53 (powerpc_elfv2): Likewise. 54 (powerpc_htm_ok): Likewise. 55 (ppc_recip_hw): Likewise. 56 (vsx_hw): Likewise. 57 582014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> 59 60 Backport from mainline 61 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> 62 63 PR target/60991 64 * config/avr/avr.c (avr_out_store_psi): Use correct constant 65 to restore Y. 66 672014-05-09 Georg-Johann Lay <avr@gjlay.de> 68 69 Backport from 2014-05-09 trunk r210267 70 71 PR target/61055 72 * config/avr/avr.md (cc): Add new attribute set_vzn. 73 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]: 74 Set cc insn attribute to set_vzn instead of set_zn for alternatives 75 with INC, DEC or NEG. 76 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN. 77 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN. 78 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER. 79 802014-05-09 Richard Sandiford <rdsandiford@googlemail.com> 81 82 * builtins.c (expand_builtin_setjmp_receiver): Emit a use of 83 the hard frame pointer. Synchronize commentary with mainline. 84 * cse.c (cse_insn): Only check for volatile asms. 85 * cselib.c (cselib_process_insn): Likewise. 86 * dse.c (scan_insn): Likewise. 87 * stmt.c (expand_nl_goto_receiver): Emit a use and a clobber of 88 the hard frame pointer. 89 902014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org> 91 Matthias Klose <doko@ubuntu.com> 92 93 PR driver/61106 94 * optc-gen.awk: Fix option handling for -Wunused-parameter. 95 962014-05-08 Uros Bizjak <ubizjak@gmail.com> 97 98 PR target/59952 99 * config/i386/i386.c (ix86_option_override_internal): Remove PTA_RTM 100 from core-avx2. 101 1022014-05-08 Charles Baylis <charles.baylis@linaro.org> 103 104 Backport from mainline 105 2014-04-07 Charles Baylis <charles.baylis@linaro.org> 106 107 PR target/60609 108 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove. 109 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after 110 ADDR_DIFF_VEC. 111 1122014-05-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 113 114 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def. 115 Do not define target_cpu_default2 to generic. 116 1172014-05-06 Richard Biener <rguenther@suse.de> 118 119 Backport from mainline 120 2014-04-14 Richard Biener <rguenther@suse.de> 121 122 PR middle-end/55022 123 * fold-const.c (negate_expr_p): Don't negate directional rounding 124 division. 125 (fold_negate_expr): Likewise. 126 1272014-05-06 Richard Biener <rguenther@suse.de> 128 129 Backport from mainline 130 2014-04-17 Richard Biener <rguenther@suse.de> 131 132 PR middle-end/60849 133 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective 134 boolean results for comparisons. 135 136 2014-04-07 Richard Biener <rguenther@suse.de> 137 138 PR tree-optimization/60766 139 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an 140 unsigned type. 141 (may_eliminate_iv): Convert cand_value_at result to desired 142 type. 143 144 2014-04-23 Richard Biener <rguenther@suse.de> 145 146 PR tree-optimization/60903 147 * tree-ssa-loop-im.c (execute_sm_if_changed): Properly apply 148 IRREDUCIBLE_LOOP loop flags to newly created BBs and edges. 149 1502014-05-05 Richard Biener <rguenther@suse.de> 151 152 Backport from mainline 153 2014-04-23 Richard Biener <rguenther@suse.de> 154 155 PR middle-end/60895 156 * tree-inline.c (declare_return_variable): Use mark_addressable. 157 158 2014-04-07 Richard Biener <rguenther@suse.de> 159 160 PR middle-end/60750 161 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs 162 for noreturn calls. 163 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs. 164 165 2014-04-14 Richard Biener <rguenther@suse.de> 166 167 PR tree-optimization/59817 168 PR tree-optimization/60453 169 * graphite-scop-detection.c (graphite_can_represent_scev): Complete 170 recursion to catch all CHRECs in the scalar evolution and restrict 171 the predicate for the remains appropriately. 172 173 2014-04-17 Richard Biener <rguenther@suse.de> 174 175 PR tree-optimization/60836 176 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force 177 initial PHI args to be gimple values. 178 1792014-05-05 Jakub Jelinek <jakub@redhat.com> 180 181 Backported from mainline 182 2014-04-25 Jakub Jelinek <jakub@redhat.com> 183 184 PR tree-optimization/60960 185 * tree-vect-generic.c (expand_vector_operation): Only call 186 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P. 187 1882014-05-04 Peter Bergner <bergner@vnet.ibm.com> 189 190 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define. 191 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT. 192 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT. 193 * config/rs6000/rs6000-builtin.def (BU_MISC_1): 194 Use RS6000_BTM_HARD_FLOAT. 195 (BU_MISC_2): Likewise. 196 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle 197 RS6000_BTM_HARD_FLOAT. 198 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp 199 is explicitly used. 200 (rs6000_invalid_builtin): Add hard floating builtin support. 201 (rs6000_expand_builtin): Relax the gcc_assert to allow the new 202 hard float builtins. 203 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT. 204 2052014-05-03 Joey Ye <joey.ye@arm.com> 206 207 Backport from mainline r209463 208 2014-04-17 Joey Ye <joey.ye@arm.com> 209 210 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og. 211 2122014-05-03 Oleg Endo <olegendo@gcc.gnu.org> 213 214 Back port from mainline 215 PR target/61026 216 * config/sh/sh.c: Include stdlib headers before everything else. 217 2182014-05-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 219 220 PR tree-optimization/60930 221 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject 222 creating a multiply candidate by folding two constant 223 multiplicands when the result overflows. 224 2252014-05-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 226 227 * config/aarch64/aarch64.h (TARGET_SIMD): Take AARCH64_ISA_SIMD 228 into account. 229 (TARGET_FLOAT): Take AARCH64_ISA_FP into account. 230 2312014-04-30 Michael Meissner <meissner@linux.vnet.ibm.com> 232 233 Back port from mainline 234 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com> 235 236 * doc/extend.texi (PowerPC Built-in Functions): Document new 237 powerpc extended divide, bcd, pack/unpack 128-bit, builtin 238 functions. 239 (PowerPC AltiVec/VSX Built-in Functions): Likewise. 240 241 * config/rs6000/predicates.md (const_0_to_3_operand): New 242 predicate to match 0..3 integer constants. 243 244 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros 245 to support adding miscellaneous builtin functions. 246 (BU_DFP_MISC_2): Likewise. 247 (BU_P7_MISC_1): Likewise. 248 (BU_P7_MISC_2): Likewise. 249 (BU_P8V_MISC_3): Likewise. 250 (BU_MISC_1): Likewise. 251 (BU_MISC_2): Likewise. 252 (DIVWE): Add extended divide builtin functions. 253 (DIVWEO): Likewise. 254 (DIVWEU): Likewise. 255 (DIVWEUO): Likewise. 256 (DIVDE): Likewise. 257 (DIVDEO): Likewise. 258 (DIVDEU): Likewise. 259 (DIVDEUO): Likewise. 260 (DXEX): Add decimal floating-point builtin functions. 261 (DXEXQ): Likewise. 262 (DDEDPD): Likewise. 263 (DDEDPDQ): Likewise. 264 (DENBCD): Likewise. 265 (DENBCDQ): Likewise. 266 (DIEX): Likewise. 267 (DIEXQ): Likewise. 268 (DSCLI): Likewise. 269 (DSCLIQ): Likewise. 270 (DSCRI): Likewise. 271 (DSCRIQ): Likewise. 272 (CDTBCD): Add new BCD builtin functions. 273 (CBCDTD): Likewise. 274 (ADDG6S): Likewise. 275 (BCDADD): Likewise. 276 (BCDADD_LT): Likewise. 277 (BCDADD_EQ): Likewise. 278 (BCDADD_GT): Likewise. 279 (BCDADD_OV): Likewise. 280 (BCDSUB): Likewise. 281 (BCDSUB_LT): Likewise. 282 (BCDSUB_EQ): Likewise. 283 (BCDSUB_GT): Likewise. 284 (BCDSUB_OV): Likewise. 285 (PACK_TD): Add new pack/unpack 128-bit type builtin functions. 286 (UNPACK_TD): Likewise. 287 (PACK_TF): Likewise. 288 (UNPACK_TF): Likewise. 289 (UNPACK_TF_0): Likewise. 290 (UNPACK_TF_1): Likewise. 291 (PACK_V1TI): Likewise. 292 (UNPACK_V1TI): Likewise. 293 294 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add 295 support for decimal floating point builtin functions. 296 (rs6000_expand_ternop_builtin): Add checks for the new builtin 297 functions that take constant arguments. 298 (rs6000_invalid_builtin): Add decimal floating point builtin 299 support. 300 (rs6000_init_builtins): Setup long double, _Decimal64, and 301 _Decimal128 types for new builtin functions. 302 (builtin_function_type): Set the unsigned flags appropriately for 303 the new builtin functions. 304 (rs6000_opt_masks): Add support for decimal floating point builtin 305 functions. 306 307 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal 308 floating point builtin functions. 309 (RS6000_BTM_COMMON): Likewise. 310 (RS6000_BTI_long_double): Likewise. 311 (RS6000_BTI_dfloat64): Likewise. 312 (RS6000_BTI_dfloat128): Likewise. 313 (long_double_type_internal_node): Likewise. 314 (dfloat64_type_internal_node): Likewise. 315 (dfloat128_type_internal_node): Likewise. 316 317 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA 318 2.07 bcd arithmetic instructions. 319 (UNSPEC_BCDSUB): Likewise. 320 (UNSPEC_BCD_OVERFLOW): Likewise. 321 (UNSPEC_BCD_ADD_SUB): Likewise. 322 (bcd_add_sub): Likewise. 323 (BCD_TEST): Likewise. 324 (bcd<bcd_add_sub>): Likewise. 325 (bcd<bcd_add_sub>_test): Likewise. 326 (bcd<bcd_add_sub>_test2): Likewise. 327 (bcd<bcd_add_sub>_<code>): Likewise. 328 (peephole2 for combined bcd ops): Likewise. 329 330 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new 331 decimal floating point builtin functions. 332 (UNSPEC_DENBCD): Likewise. 333 (UNSPEC_DXEX): Likewise. 334 (UNSPEC_DIEX): Likewise. 335 (UNSPEC_DSCLI): Likewise. 336 (UNSPEC_DSCRI): Likewise. 337 (D64_D128): Likewise. 338 (dfp_suffix): Likewise. 339 (dfp_ddedpd_<mode>): Likewise. 340 (dfp_denbcd_<mode>): Likewise. 341 (dfp_dxex_<mode>): Likewise. 342 (dfp_diex_<mode>): Likewise. 343 (dfp_dscli_<mode>): Likewise. 344 (dfp_dscri_<mode>): Likewise. 345 346 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD 347 builtin functions. 348 (UNSPEC_CDTBCD): Likewise. 349 (UNSPEC_CBCDTD): Likewise. 350 (UNSPEC_DIVE): Add support for new extended divide builtin 351 functions. 352 (UNSPEC_DIVEO): Likewise. 353 (UNSPEC_DIVEU): Likewise. 354 (UNSPEC_DIVEUO): Likewise. 355 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to 356 pack/unpack 128-bit types. 357 (UNSPEC_PACK_128BIT): Likewise. 358 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type. 359 (udiv<mode>3): Use idiv_ldiv mode attribute. 360 (div<mode>3): Likewise. 361 (addg6s): Add new BCD builtin functions. 362 (cdtbcd): Likewise. 363 (cbcdtd): Likewise. 364 (UNSPEC_DIV_EXTEND): Add support for new extended divide 365 instructions. 366 (div_extend): Likewise. 367 (div<div_extend>_<mode>"): Likewise. 368 (FP128_64): Add support for new builtin functions to pack/unpack 369 128-bit types. 370 (unpack<mode>): Likewise. 371 (unpacktf_0): Likewise. 372 (unpacktf_1): Likewise. 373 (unpack<mode>_dm): Likewise. 374 (unpack<mode>_nodm): Likewise. 375 (pack<mode>): Likewise. 376 (unpackv1ti): Likewise. 377 (packv1ti): Likewise. 378 3792014-04-29 Pat Haugen <pthaugen@us.ibm.com> 380 381 Backport from mainline 382 2014-04-17 Pat Haugen <pthaugen@us.ibm.com> 383 384 * config/rs6000/rs6000.md (addti3, subti3): New. 385 3862014-04-28 Pat Haugen <pthaugen@us.ibm.com> 387 388 Backport from mainline 389 2014-04-28 Pat Haugen <pthaugen@us.ibm.com> 390 391 * config/rs6000/sync.md (AINT mode_iterator): Move definition. 392 (loadsync_<mode>): Change mode. 393 (load_quadpti, store_quadpti): New. 394 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode. 395 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. 396 3972014-04-28 Eric Botcazou <ebotcazou@adacore.com> 398 399 * configure.ac: Tweak GAS check for LEON instructions on SPARC. 400 * configure: Regenerate. 401 * config/sparc/sparc.opt (muser-mode): New option. 402 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable 403 for LEON3. 404 (atomic_compare_and_swap_leon3_1): New instruction for LEON3. 405 * doc/invoke.texi (SPARC options): Document -muser-mode. 406 4072014-04-25 Eric Botcazou <ebotcazou@adacore.com> 408 409 PR target/60941 410 * config/sparc/sparc.md (ashlsi3_extend): Delete. 411 4122014-04-22 Michael Meissner <meissner@linux.vnet.ibm.com> 413 414 Back port from main line: 415 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com> 416 417 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin 418 for ISA 2.07. 419 420 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 421 vbpermq builtins. 422 423 * config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the 424 vbpermq instruction. 425 (altivec_vbpermq): Likewise. 426 427 PR target/60672 428 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to 429 enable use of xxsldwi and xxpermdi builtin functions. 430 (vec_xxpermdi): Likewise. 431 432 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): 433 Document use of vec_xxsldwi and vec_xxpermdi builtins. 434 4352014-04-23 Uros Bizjak <ubizjak@gmail.com> 436 437 Backport from mainline 438 2014-04-21 Uros Bizjak <ubizjak@gmail.com> 439 440 PR target/60909 441 * config/i386/i386.c (ix86_expand_builtin) 442 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary 443 register for target RTX. 444 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto. 445 4462014-04-23 Richard Biener <rguenther@suse.de> 447 448 Backport from mainline 449 2014-04-02 Richard Biener <rguenther@suse.de> 450 451 PR middle-end/60729 452 * optabs.c (expand_abs_nojump): Honor flag_trapv only for 453 MODE_INTs. Properly use negv_optab. 454 (expand_abs): Likewise. 455 456 2014-04-03 Richard Biener <rguenther@suse.de> 457 458 PR tree-optimization/60740 459 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate 460 over all GIMPLE_COND operands. 461 4622014-04-23 Richard Biener <rguenther@suse.de> 463 464 PR middle-end/60635 465 * gimplify.c (gimple_regimplify_operands): Update the 466 re-gimplifed stmt. 467 4682014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com> 469 470 Back port from the trunk, subversion id 209546. 471 472 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com> 473 474 PR target/60735 475 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case): 476 If mode is DDmode and TARGET_E500_DOUBLE allow move. 477 478 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some 479 more debug information for E500 if -mdebug=reg. 480 4812014-04-18 Richard Henderson <rth@redhat.com> 482 483 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode 484 to GET_MODE_SIZE, not a reg_class_t. 485 4862014-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 487 488 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for 489 little-endian. 490 (vsx_xxmrglw_<mode>): Likewise. 491 4922014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 493 494 PR target/60839 495 Revert the following patch 496 497 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 498 499 Back port mainline subversion id 209025. 500 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com> 501 502 PR target/60735 503 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have 504 software floating point or no floating point registers, do not 505 allow any type in the FPRs. Eliminate a test for SPE SIMD types 506 in GPRs that occurs after we tested for GPRs that would never be 507 true. 508 509 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64): 510 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE, 511 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE, 512 specifically allow DDmode, since that does not use the SPE SIMD 513 instructions. 514 5152014-04-10 Vladimir Makarov <vmakarov@redhat.com> 516 517 PR rtl-optimization/60769 518 * lra-constraints.c (simplify_operand_subreg): Force reload of 519 paradoxical subreg if it is not in the class contents. 520 5212014-04-10 Jakub Jelinek <jakub@redhat.com> 522 523 Backport from mainline 524 2014-03-12 Jakub Jelinek <jakub@redhat.com> 525 Marc Glisse <marc.glisse@inria.fr> 526 527 PR tree-optimization/60502 528 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst 529 instead of build_low_bits_mask. 530 531 2013-06-13 Marc Glisse <marc.glisse@inria.fr> 532 533 * tree.c (build_all_ones_cst): New function. 534 * tree.h (build_all_ones_cst): Declare it. 535 536 2013-05-10 Marc Glisse <marc.glisse@inria.fr> 537 538 * tree.c (build_minus_one_cst): New function. 539 * tree.h (build_minus_one_cst): Declare new function. 540 5412014-04-10 Jakub Jelinek <jakub@redhat.com> 542 543 Backport from mainline 544 2014-03-28 Jakub Jelinek <jakub@redhat.com> 545 546 PR target/60693 547 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg 548 also if addr has VOIDmode. 549 550 2014-03-17 Jakub Jelinek <jakub@redhat.com> 551 552 PR target/60516 553 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA 554 note creation for the 2010-08-31 changes. 555 556 2014-03-06 Jakub Jelinek <jakub@redhat.com> 557 Meador Inge <meadori@codesourcery.com> 558 559 PR target/58595 560 * config/arm/arm.c (arm_tls_symbol_p): Remove. 561 (arm_legitimize_address): Call legitimize_tls_address for any 562 arm_tls_referenced_p expression, handle constant addend. Call it 563 before testing for !TARGET_ARM. 564 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here. 565 5662014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 567 568 Backport from mainline r208750 569 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 570 571 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a 572 pattern for vector nor instead of subtract from splat(-1). 573 (altivec_expand_vec_perm_const_le): Likewise. 574 575 Backport from mainline r209235 576 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 577 578 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand 579 instead of vnor to exploit possible fusion opportunity in the 580 future. 581 (altivec_expand_vec_perm_const_le): Likewise. 582 5832014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 584 585 Revert following patch 586 2014-04-08 Pat Haugen <pthaugen@us.ibm.com> 587 588 Backport from mainline 589 2014-04-08 Pat Haugen <pthaugen@us.ibm.com> 590 591 * config/rs6000/sync.md (AINT mode_iterator): Move definition. 592 (loadsync_<mode>): Change mode. 593 (load_quadpti, store_quadpti): New. 594 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode. 595 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. 596 5972014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 598 599 Backport from mainline r202642 600 2013-09-17 Alan Modra <amodra@gmail.com> 601 602 PR target/57589 603 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 604 patch (r199972). 605 6062014-04-08 Pat Haugen <pthaugen@us.ibm.com> 607 608 Backport from mainline 609 2014-04-08 Pat Haugen <pthaugen@us.ibm.com> 610 611 * config/rs6000/sync.md (AINT mode_iterator): Move definition. 612 (loadsync_<mode>): Change mode. 613 (load_quadpti, store_quadpti): New. 614 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode. 615 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. 616 6172014-04-07 Martin Jambor <mjambor@suse.cz> 618 619 PR ipa/60640 620 * ipa-cp.c (propagate_constants_accross_call): Do not propagate 621 accross thunks. 622 6232014-04-07 Dominique d'Humieres <dominiq@lps.ens.fr> 624 625 Backport from mainline 626 2013-09-14 Iain Sandoe <iains@gcc.gnu.org> 627 628 PR target/48094 629 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata 630 is seen. 631 (darwin_objc1_section): Likewise. 632 (darwin_file_end): Emit Image Info section when required. 633 6342014-04-05 Alan Modra <amodra@gmail.com> 635 636 Apply from mainline 637 2014-01-28 Alan Modra <amodra@gmail.com> 638 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS. 639 * configure.ac <recursive call for build != host>: Define 640 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD 641 and LD_FOR_BUILD too. 642 * configure: Regenerate. 643 6442014-04-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 645 646 Backport from mainline r208895: 647 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 648 649 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization 650 if it would clobber the stack pointer, even temporarily. 651 6522014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 653 654 Back port from main line: 655 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com> 656 657 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): 658 Document vec_vgbbd. 659 6602014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 661 662 Back port mainline subversion id 209025. 663 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com> 664 665 PR target/60735 666 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have 667 software floating point or no floating point registers, do not 668 allow any type in the FPRs. Eliminate a test for SPE SIMD types 669 in GPRs that occurs after we tested for GPRs that would never be 670 true. 671 672 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64): 673 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE, 674 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE, 675 specifically allow DDmode, since that does not use the SPE SIMD 676 instructions. 677 6782014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 679 680 Backport from mainline r205308 681 2013-11-23 David Edelsohn <dje.gcc@gmail.com> 682 683 * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro. 684 (rs6000_xcoff_select_section): Place decls with stricter alignment 685 into named sections. 686 (rs6000_xcoff_unique_section): Allow unique sections for 687 uninitialized data with strict alignment. 688 6892014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 690 691 Backport from mainline 692 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 693 694 * gcc/configure: Regenerate. 695 6962014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 697 698 Back port from trunk 699 2013-04-25 Alan Modra <amodra@gmail.com> 700 701 PR target/57052 702 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to 703 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN. 704 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn. 705 Repeat for many other rotate/shift and mask patterns using subregs. 706 Name lshiftrt insns. 707 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition 708 on WORDS_BIG_ENDIAN. 709 710 2013-06-07 Alan Modra <amodra@gmail.com> 711 712 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't 713 override user -mfp-in-toc. 714 (offsettable_ok_by_alignment): Consider just the current access 715 rather than the whole object, unless BLKmode. Handle 716 CONSTANT_POOL_ADDRESS_P constants that lack a decl too. 717 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants 718 for -mcmodel=medium. 719 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't 720 override user -mfp-in-toc or -msum-in-toc. Default to 721 -mno-fp-in-toc for -mcmodel=medium. 722 723 2013-06-18 Alan Modra <amodra@gmail.com> 724 725 * config/rs6000/rs6000.h (enum data_align): New. 726 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment. 727 (DATA_ABI_ALIGNMENT): Define. 728 (CONSTANT_ALIGNMENT): Correct comment. 729 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare. 730 * config/rs6000/rs6000.c (rs6000_data_alignment): New function. 731 732 2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 733 734 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"): 735 Require GOT register as additional operand in UNSPEC. 736 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise. 737 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise. 738 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise. 739 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter. 740 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise. 741 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise. 742 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise. 743 744 2014-01-23 Pat Haugen <pthaugen@us.ibm.com> 745 746 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't 747 force flag_ira_loop_pressure if set via command line. 748 749 2014-02-06 Alan Modra <amodra@gmail.com> 750 751 PR target/60032 752 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only 753 change SDmode to DDmode when lra_in_progress. 754 7552014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 756 757 V1TImode Support 758 Back port from trunk 759 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com> 760 761 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types. 762 (VEC_M): Likewise. 763 (VEC_N): Likewise. 764 (VEC_R): Likewise. 765 (VEC_base): Likewise. 766 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX 767 registers, we need to swap double words in little endian mode. 768 769 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode 770 to be a container mode for 128-bit integer operations added in ISA 771 2.07. Unlike TImode and PTImode, the preferred register set is 772 the Altivec/VMX registers for the 128-bit operations. 773 774 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add 775 declarations. 776 (rs6000_split_128bit_ok_p): Likewise. 777 778 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support 779 macros for creating ISA 2.07 normal and overloaded builtin 780 functions with 3 arguments. 781 (BU_P8V_OVERLOAD_3): Likewise. 782 (VPERM_1T): Add support for V1TImode in 128-bit vector operations 783 for use as overloaded functions. 784 (VPERM_1TI_UNS): Likewise. 785 (VSEL_1TI): Likewise. 786 (VSEL_1TI_UNS): Likewise. 787 (ST_INTERNAL_1ti): Likewise. 788 (LD_INTERNAL_1ti): Likewise. 789 (XXSEL_1TI): Likewise. 790 (XXSEL_1TI_UNS): Likewise. 791 (VPERM_1TI): Likewise. 792 (VPERM_1TI_UNS): Likewise. 793 (XXPERMDI_1TI): Likewise. 794 (SET_1TI): Likewise. 795 (LXVD2X_V1TI): Likewise. 796 (STXVD2X_V1TI): Likewise. 797 (VEC_INIT_V1TI): Likewise. 798 (VEC_SET_V1TI): Likewise. 799 (VEC_EXT_V1TI): Likewise. 800 (EQV_V1TI): Likewise. 801 (NAND_V1TI): Likewise. 802 (ORC_V1TI): Likewise. 803 (VADDCUQ): Add support for 128-bit integer arithmetic instructions 804 added in ISA 2.07. Add both normal 'altivec' builtins, and the 805 overloaded builtin. 806 (VADDUQM): Likewise. 807 (VSUBCUQ): Likewise. 808 (VADDEUQM): Likewise. 809 (VADDECUQ): Likewise. 810 (VSUBEUQM): Likewise. 811 (VSUBECUQ): Likewise. 812 813 * config/rs6000/rs6000-c.c (__int128_type): New static to hold 814 __int128_t and __uint128_t types. 815 (__uint128_type): Likewise. 816 (altivec_categorize_keyword): Add support for vector __int128_t, 817 vector __uint128_t, vector __int128, and vector unsigned __int128 818 as a container type for TImode operations that need to be done in 819 VSX/Altivec registers. 820 (rs6000_macro_to_expand): Likewise. 821 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions 822 to support 128-bit integer instructions vaddcuq, vadduqm, 823 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm. 824 (altivec_resolve_overloaded_builtin): Add support for V1TImode. 825 826 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support 827 for V1TImode, and set up preferences to use VSX/Altivec 828 registers. Setup VSX reload handlers. 829 (rs6000_debug_reg_global): Likewise. 830 (rs6000_init_hard_regno_mode_ok): Likewise. 831 (rs6000_preferred_simd_mode): Likewise. 832 (vspltis_constant): Do not allow V1TImode as easy altivec 833 constants. 834 (easy_altivec_constant): Likewise. 835 (output_vec_const_move): Likewise. 836 (rs6000_expand_vector_set): Convert V1TImode set and extract to 837 simple move. 838 (rs6000_expand_vector_extract): Likewise. 839 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg 840 addressing. 841 (rs6000_const_vec): Add support for V1TImode. 842 (rs6000_emit_le_vsx_load): Swap double words when loading or 843 storing TImode/V1TImode. 844 (rs6000_emit_le_vsx_store): Likewise. 845 (rs6000_emit_le_vsx_move): Likewise. 846 (rs6000_emit_move): Add support for V1TImode. 847 (altivec_expand_ld_builtin): Likewise. 848 (altivec_expand_st_builtin): Likewise. 849 (altivec_expand_vec_init_builtin): Likewise. 850 (altivec_expand_builtin): Likewise. 851 (rs6000_init_builtins): Add support for V1TImode type. Add 852 support for ISA 2.07 128-bit integer builtins. Define type names 853 for the VSX/Altivec vector types. 854 (altivec_init_builtins): Add support for overloaded vector 855 functions with V1TImode type. 856 (rs6000_preferred_reload_class): Prefer Altivec registers for 857 V1TImode. 858 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to 859 external function. 860 (rs6000_split_128bit_ok_p): Likewise. 861 (rs6000_handle_altivec_attribute): Create V1TImode from vector 862 __int128_t and vector __uint128_t. 863 864 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators 865 and mode attributes. 866 (VSX_M): Likewise. 867 (VSX_M2): Likewise. 868 (VSm): Likewise. 869 (VSs): Likewise. 870 (VSr): Likewise. 871 (VSv): Likewise. 872 (VS_scalar): Likewise. 873 (VS_double): Likewise. 874 (vsx_set_v1ti): New builtin function to create V1TImode from 875 TImode. 876 877 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say 878 whether we support the ISA 2.07 128-bit integer arithmetic 879 instructions. 880 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode. 881 (enum rs6000_builtin_type_index): Add fields to hold V1TImode 882 and TImode types for use with the builtin functions. 883 (V1TI_type_node): Likewise. 884 (unsigned_V1TI_type_node): Likewise. 885 (intTI_type_internal_node): Likewise. 886 (uintTI_type_internal_node): Likewise. 887 888 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 889 2.07 128-bit builtin functions. 890 (UNSPEC_VADDEUQM): Likewise. 891 (UNSPEC_VADDECUQ): Likewise. 892 (UNSPEC_VSUBCUQ): Likewise. 893 (UNSPEC_VSUBEUQM): Likewise. 894 (UNSPEC_VSUBECUQ): Likewise. 895 (VM): Add V1TImode to vector mode iterators. 896 (VM2): Likewise. 897 (VI_unit): Likewise. 898 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins. 899 (altivec_vaddcuq): Likewise. 900 (altivec_vsubuqm): Likewise. 901 (altivec_vsubcuq): Likewise. 902 (altivec_vaddeuqm): Likewise. 903 (altivec_vaddecuq): Likewise. 904 (altivec_vsubeuqm): Likewise. 905 (altivec_vsubecuq): Likewise. 906 907 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector 908 mode iterators. 909 (BOOL_128): Likewise. 910 (BOOL_REGS_OUTPUT): Likewise. 911 (BOOL_REGS_OP1): Likewise. 912 (BOOL_REGS_OP2): Likewise. 913 (BOOL_REGS_UNARY): Likewise. 914 (BOOL_REGS_AND_CR0): Likewise. 915 916 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07 917 128-bit integer builtin support. 918 (vec_vadduqm): Likewise. 919 (vec_vaddecuq): Likewise. 920 (vec_vaddeuqm): Likewise. 921 (vec_vsubecuq): Likewise. 922 (vec_vsubeuqm): Likewise. 923 (vec_vsubcuq): Likewise. 924 (vec_vsubuqm): Likewise. 925 926 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): 927 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm, 928 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding 929 128-bit integer add/subtract to ISA 2.07. 930 9312014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 932 933 Apply mainline r207798 934 2014-02-26 Alan Modra <amodra@gmail.com> 935 PR target/58675 936 PR target/57935 937 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use 938 find_replacement on parts of insn rtl that might be reloaded. 939 940 Backport from mainline r208287 941 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 942 943 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow 944 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax 945 constraint on constants to permit them being loaded into 946 GENERAL_REGS or BASE_REGS. 947 9482014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 949 950 Backport from mainline r207699. 951 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com> 952 953 PR target/60137 954 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter 955 for VSX/Altivec vectors that land in GPR registers. 956 957 Backport from mainline r207808. 958 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com> 959 960 PR target/60203 961 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints. 962 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves 963 into 64-bit and 32-bit moves. On 64-bit moves, add support for 964 using direct move instructions on ISA 2.07. Also adjust 965 instruction length for 64-bit. 966 (mov<mode>_64bit, TFmode/TDmode): Likewise. 967 (mov<mode>_32bit, TFmode/TDmode): Likewise. 968 969 Backport from mainline r207868. 970 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com> 971 972 PR target/60203 973 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves): 974 Split 64-bit moves into 2 patterns. Do not allow the use of 975 direct move for TDmode in little endian, since the decimal value 976 has little endian bytes within a word, but the 64-bit pieces are 977 ordered in a big endian fashion, and normal subreg's of TDmode are 978 not allowed. 979 (mov<mode>_64bit_dm): Likewise. 980 (movtd_64bit_nodm): Likewise. 981 9822014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 983 984 Backport from mainline r207658 985 2014-02-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 986 987 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce 988 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd, 989 -mcall-openbsd, or -mcall-linux. 990 (CC1_ENDIAN_BIG_SPEC): Remove. 991 (CC1_ENDIAN_LITTLE_SPEC): Remove. 992 (CC1_ENDIAN_DEFAULT_SPEC): Remove. 993 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec. 994 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little, 995 and %cc1_endian_default. 996 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove. 997 9982014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 999 1000 Little Endian Vector API Support 1001 Backport from mainline r206443 1002 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1003 1004 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove 1005 two duplicate entries. 1006 1007 Backport from mainline r206494 1008 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1009 1010 * doc/invoke.texi: Add -maltivec={be,le} options, and document 1011 default element-order behavior for -maltivec. 1012 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options. 1013 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure 1014 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le 1015 when targeting big endian, at least for now. 1016 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG. 1017 1018 Backport from mainline r206541 1019 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1020 1021 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS. 1022 1023 Backport from mainline r206590 1024 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1025 1026 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 1027 Implement -maltivec=be for vec_insert and vec_extract. 1028 1029 Backport from mainline r206641 1030 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com> 1031 1032 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh 1033 and vmulosh rather than call gen_vec_widen_smult_*. 1034 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather 1035 than BYTES_BIG_ENDIAN to determine use of even or odd instruction. 1036 (vec_widen_smult_even_v16qi): Likewise. 1037 (vec_widen_umult_even_v8hi): Likewise. 1038 (vec_widen_smult_even_v8hi): Likewise. 1039 (vec_widen_umult_odd_v16qi): Likewise. 1040 (vec_widen_smult_odd_v16qi): Likewise. 1041 (vec_widen_umult_odd_v8hi): Likewise. 1042 (vec_widen_smult_odd_v8hi): Likewise. 1043 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and 1044 vmuloub rather than call gen_vec_widen_umult_*. 1045 (vec_widen_umult_lo_v16qi): Likewise. 1046 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and 1047 vmulosb rather than call gen_vec_widen_smult_*. 1048 (vec_widen_smult_lo_v16qi): Likewise. 1049 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh 1050 rather than call gen_vec_widen_umult_*. 1051 (vec_widen_umult_lo_v8hi): Likewise. 1052 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh 1053 rather than call gen_vec_widen_smult_*. 1054 (vec_widen_smult_lo_v8hi): Likewise. 1055 1056 Backport from mainline r207062 1057 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1058 1059 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove 1060 correction for little endian... 1061 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to 1062 here. 1063 1064 Backport from mainline r207262 1065 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1066 1067 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use 1068 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*. 1069 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for 1070 -maltivec=be with LE targets. 1071 (vsx_mergeh_<mode>): Likewise. 1072 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New 1073 unspecs. 1074 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct. 1075 (altivec_vmrghb): Replace with define_expand and new 1076 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE 1077 targets. 1078 (altivec_vmrghb_direct): New define_insn. 1079 (altivec_vmrghh): Replace with define_expand and new 1080 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE 1081 targets. 1082 (altivec_vmrghh_direct): New define_insn. 1083 (altivec_vmrghw): Replace with define_expand and new 1084 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE 1085 targets. 1086 (altivec_vmrghw_direct): New define_insn. 1087 (*altivec_vmrghsf): Adjust for endianness. 1088 (altivec_vmrglb): Replace with define_expand and new 1089 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE 1090 targets. 1091 (altivec_vmrglb_direct): New define_insn. 1092 (altivec_vmrglh): Replace with define_expand and new 1093 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE 1094 targets. 1095 (altivec_vmrglh_direct): New define_insn. 1096 (altivec_vmrglw): Replace with define_expand and new 1097 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE 1098 targets. 1099 (altivec_vmrglw_direct): New define_insn. 1100 (*altivec_vmrglsf): Adjust for endianness. 1101 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct. 1102 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct. 1103 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct. 1104 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct. 1105 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct. 1106 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct. 1107 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct. 1108 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct. 1109 1110 Backport from mainline r207318 1111 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1112 1113 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use 1114 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf; 1115 remove element index adjustment for endian (now handled in vsx.md 1116 and altivec.md). 1117 (altivec_expand_vec_perm_const): Use 1118 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw]. 1119 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec. 1120 (vsx_xxspltw_<mode>): Adjust element index for little endian. 1121 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a 1122 define_expand and a new define_insn *altivec_vspltb_internal; 1123 adjust for -maltivec=be on a little endian target. 1124 (altivec_vspltb_direct): New. 1125 (altivec_vsplth): Divide into a define_expand and a new 1126 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a 1127 little endian target. 1128 (altivec_vsplth_direct): New. 1129 (altivec_vspltw): Divide into a define_expand and a new 1130 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a 1131 little endian target. 1132 (altivec_vspltw_direct): New. 1133 (altivec_vspltsf): Divide into a define_expand and a new 1134 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on 1135 a little endian target. 1136 1137 Backport from mainline r207326 1138 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1139 1140 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove 1141 unused variable "field". 1142 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE. 1143 (vsx_mergeh_<mode>): Likewise. 1144 * config/rs6000/altivec.md (altivec_vmrghb): Likewise. 1145 (altivec_vmrghh): Likewise. 1146 (altivec_vmrghw): Likewise. 1147 (altivec_vmrglb): Likewise. 1148 (altivec_vmrglh): Likewise. 1149 (altivec_vmrglw): Likewise. 1150 (altivec_vspltb): Add missing uses. 1151 (altivec_vsplth): Likewise. 1152 (altivec_vspltw): Likewise. 1153 (altivec_vspltsf): Likewise. 1154 1155 Backport from mainline r207414 1156 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1157 1158 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec. 1159 (altivec_vsumsws): Add handling for -maltivec=be with a little 1160 endian target. 1161 (altivec_vsumsws_direct): New. 1162 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of 1163 gen_altivec_vsumsws. 1164 1165 Backport from mainline r207415 1166 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1167 1168 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize 1169 for vector types other than V16QImode. 1170 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a 1171 define_expand, and call altivec_expand_vec_perm_le when producing 1172 code with little endian element order. 1173 (*altivec_vperm_<mode>_internal): New insn having previous 1174 behavior of altivec_vperm_<mode>. 1175 (altivec_vperm_<mode>_uns): Change to a define_expand, and call 1176 altivec_expand_vec_perm_le when producing code with little endian 1177 element order. 1178 (*altivec_vperm_<mode>_uns_internal): New insn having previous 1179 behavior of altivec_vperm_<mode>_uns. 1180 1181 Backport from mainline r207520 1182 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1183 1184 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec. 1185 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise. 1186 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise. 1187 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of 1188 gen_altivec_vpkuwum. 1189 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for 1190 BYTES_BIG_ENDIAN. 1191 (altivec_vpks<VI_char>ss): Likewise. 1192 (altivec_vpks<VI_char>us): Likewise. 1193 (altivec_vpku<VI_char>us): Likewise. 1194 (altivec_vpku<VI_char>um): Likewise. 1195 (altivec_vpku<VI_char>um_direct): New (copy of 1196 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for 1197 internal use). 1198 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when 1199 target is little endian and -maltivec=be is not specified. 1200 (*altivec_vupkhs<VU_char>_direct): New (copy of 1201 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal 1202 use). 1203 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when 1204 target is little endian and -maltivec=be is not specified. 1205 (*altivec_vupkls<VU_char>_direct): New (copy of 1206 altivec_vupkls<VU_char> that always emits vupkls*, for internal 1207 use). 1208 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is 1209 little endian and -maltivec=be is not specified. 1210 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is 1211 little endian and -maltivec=be is not specified. 1212 1213 Backport from mainline r207521 1214 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1215 1216 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code 1217 generation for -maltivec=be. 1218 (altivec_vsumsws): Simplify redundant test. 1219 1220 Backport from mainline r207525 1221 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1222 1223 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change 1224 CODE_FOR_altivec_vpku[hw]um to 1225 CODE_FOR_altivec_vpku[hw]um_direct. 1226 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change 1227 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT. 1228 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to 1229 UNSPEC_VUNPACK_LO_SIGN_DIRECT. 1230 1231 Backport from mainline r207814. 1232 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1233 1234 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little 1235 endian targets. 1236 1237 Backport from mainline r207815. 1238 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1239 1240 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian 1241 targets. 1242 (p8_vmrgow): Likewise. 1243 1244 Backport from mainline r207919. 1245 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1246 1247 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant 1248 bit of zero. 1249 1250 Backport from mainline 208019 1251 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1252 1253 * config/rs6000/altivec.md (altivec_lvxl): Rename as 1254 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of 1255 V4SI. 1256 (altivec_lvxl_<mode>): New define_expand incorporating 1257 -maltivec=be semantics where needed. 1258 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal. 1259 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be 1260 semantics where needed. 1261 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal. 1262 (altivec_stvx_<mode>): New define_expand incorporating 1263 -maltivec=be semantics where needed. 1264 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use 1265 VM2 iterator instead of V4SI. 1266 (altivec_stvxl_<mode>): New define_expand incorporating 1267 -maltivec=be semantics where needed. 1268 * config/rs6000/rs6000-builtin.def: Add new built-in definitions 1269 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI, 1270 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, 1271 STVX_V2DF, STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, 1272 STVXL_V2DF, STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, 1273 STVXL_V16QI. 1274 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace 1275 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout; 1276 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and 1277 ALTIVEC_BUILTIN_STVXL. 1278 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New 1279 prototype. 1280 (altivec_expand_stvx_be): Likewise. 1281 * config/rs6000/rs6000.c (swap_selector_for_mode): New function. 1282 (altivec_expand_lvx_be): Likewise. 1283 (altivec_expand_stvx_be): Likewise. 1284 (altivec_expand_builtin): Add cases for 1285 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>, 1286 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>. 1287 (altivec_init_builtins): Add definitions for 1288 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>, 1289 __builtin_altivec_stvx_<mode>, and 1290 __builtin_altivec_stvxl_<mode>. 1291 1292 Backport from mainline 208021 1293 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1294 1295 * config/rs6000/altivec.md (altivec_vsumsws): Replace second 1296 vspltw with vsldoi. 1297 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of 1298 gen_altivec_vsumsws. 1299 1300 Backport from mainline 208049 1301 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1302 1303 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace 1304 define_insn with define_expand and new define_insn 1305 *altivec_lve<VI_char>x_internal. 1306 (altivec_stve<VI_char>x): Replace define_insn with define_expand 1307 and new define_insn *altivec_stve<VI_char>x_internal. 1308 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New 1309 prototype. 1310 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by 1311 lve*x built-ins. 1312 (altivec_expand_stvex_be): New function. 1313 1314 Backport from mainline 1315 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1316 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert 1317 to permit subregs. 1318 1319 Backport from mainline 1320 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1321 * config/rs6000/vector.md (*vector_unordered<mode>): Change split 1322 to use canonical form for nor<mode>3. 1323 13242014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1325 1326 Backport from mainline 1327 2014-02-04 Michael Meissner <meissner@linux.vnet.ibm.com> 1328 1329 * config/rs6000/rs6000.opt (-mlra): Add switch to enable the LRA 1330 register allocator. 1331 1332 * config/rs6000/rs6000.c (TARGET_LRA_P): Add support for -mlra to 1333 enable the LRA register allocator. Back port the changes from the 1334 trunk to enable LRA. 1335 (rs6000_legitimate_offset_address_p): Likewise. 1336 (legitimate_lo_sum_address_p): Likewise. 1337 (use_toc_relative_ref): Likewise. 1338 (rs6000_legitimate_address_p): Likewise. 1339 (rs6000_emit_move): Likewise. 1340 (rs6000_secondary_memory_needed_mode): Likewise. 1341 (rs6000_alloc_sdmode_stack_slot): Likewise. 1342 (rs6000_lra_p): Likewise. 1343 1344 * config/rs6000/sync.md (load_lockedti): Copy TI/PTI variables by 1345 64-bit parts to force the register allocator to allocate even/odd 1346 register pairs for the quad word atomic instructions. 1347 (store_conditionalti): Likewise. 1348 13492014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1350 1351 Back port from mainline 1352 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com> 1353 1354 PR target/59909 1355 * doc/invoke.texi (RS/6000 and PowerPC Options): Document 1356 -mquad-memory-atomic. Update -mquad-memory documentation to say 1357 it is only used for non-atomic loads/stores. 1358 1359 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either 1360 -mquad-memory or -mquad-memory-atomic switches. 1361 1362 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add 1363 -mquad-memory-atomic to ISA 2.07 support. 1364 1365 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch 1366 to separate support of normal quad word memory operations (ldq, 1367 stq) from the atomic quad word memory operations. 1368 1369 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add 1370 support to separate non-atomic quad word operations from atomic 1371 quad word operations. Disable non-atomic quad word operations in 1372 little endian mode so that we don't have to swap words after the 1373 load and before the store. 1374 (quad_load_store_p): Add comment about atomic quad word support. 1375 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of 1376 options printed with -mdebug=reg. 1377 1378 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use 1379 -mquad-memory-atomic as the test for whether we have quad word 1380 atomic instructions. 1381 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, 1382 -mquad-memory, or -mp8-vector are used, allow byte/half-word 1383 atomic operations. 1384 1385 * config/rs6000/sync.md (load_lockedti): Insure that the address 1386 is a proper indexed or indirect address for the lqarx instruction. 1387 On little endian systems, swap the hi/lo registers after the lqarx 1388 instruction. 1389 (load_lockedpti): Use indexed_or_indirect_operand predicate to 1390 insure the address is valid for the lqarx instruction. 1391 (store_conditionalti): Insure that the address is a proper indexed 1392 or indirect address for the stqcrx. instruction. On little endian 1393 systems, swap the hi/lo registers before doing the stqcrx. 1394 instruction. 1395 (store_conditionalpti): Use indexed_or_indirect_operand predicate to 1396 insure the address is valid for the stqcrx. instruction. 1397 1398 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros): 1399 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what 1400 type of quad memory support is available. 1401 14022014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1403 1404 Apply mainline r202190, powerpc64le multilibs and multiarch dir 1405 2013-09-03 Alan Modra <amodra@gmail.com> 1406 1407 * config.gcc (powerpc*-*-linux*): Add support for little-endian 1408 multilibs to big-endian target and vice versa. 1409 * config/rs6000/t-linux64: Use := assignment on all vars. 1410 (MULTILIB_EXTRA_OPTS): Remove fPIC. 1411 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options. 1412 * config/rs6000/t-linux64le: New file. 1413 * config/rs6000/t-linux64bele: New file. 1414 * config/rs6000/t-linux64lebe: New file. 1415 14162014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1417 1418 Back port from mainline 1419 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com> 1420 1421 PR target/59844 1422 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little 1423 endian support, remove tests for WORDS_BIG_ENDIAN. 1424 (p8_mfvsrd_3_<mode>): Likewise. 1425 (reload_gpr_from_vsx<mode>): Likewise. 1426 (reload_gpr_from_vsxsf): Likewise. 1427 (p8_mfvsrd_4_disf): Likewise. 1428 14292014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1430 1431 Backport from mainline 1432 2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1433 1434 PR target/56843 1435 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove. 1436 (rs6000_emit_swdiv_low_precision): Remove. 1437 (rs6000_emit_swdiv): Rewrite to handle between one and four 1438 iterations of Newton-Raphson generally; modify required number of 1439 iterations for some cases. 1440 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove. 1441 14422014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1443 1444 Backport from mainline 1445 2013-08-19 Peter Bergner <bergner@vnet.ibm.com> 1446 Jakub Jelinek <jakub@redhat.com> 1447 1448 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin. 1449 (BUILT_IN_FABSD64): Likewise. 1450 (BUILT_IN_FABSD128): Likewise. 1451 * builtins.c (expand_builtin): Add support for 1452 new DFP ABS builtins. 1453 (fold_builtin_1): Likewise. 1454 * config/rs6000/dfp.md 1455 (*abstd2_fpr): Handle non-overlapping destination 1456 and source operands. 1457 (*nabstd2_fpr): Likewise. 1458 14592014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1460 1461 Apply mainline r205060. 1462 2013-11-20 Alan Modra <amodra@gmail.com> 1463 * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty. 1464 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default 1465 to strict alignment on older processors when little-endian. 1466 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8 1467 for ELFv2. 1468 14692014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1470 1471 POWER ELFv2 ABI Support 1472 Backport from mainline r204842: 1473 1474 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1475 1476 * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document. 1477 1478 Backport from mainline r204809: 1479 1480 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1481 1482 * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define. 1483 1484 Backport from mainline r204808: 1485 1486 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1487 Alan Modra <amodra@gmail.com> 1488 1489 * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2. 1490 (RS6000_SAVE_TOC): Remove. 1491 (RS6000_TOC_SAVE_SLOT): New macro. 1492 * config/rs6000/rs6000.c (rs6000_parm_offset): New function. 1493 (rs6000_parm_start): Use it. 1494 (rs6000_function_arg_advance_1): Likewise. 1495 (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT. 1496 (rs6000_emit_epilogue): Likewise. 1497 (rs6000_call_aix): Likewise. 1498 (rs6000_output_function_prologue): Do not save/restore r11 1499 around calling _mcount for ABI_ELFv2. 1500 1501 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1502 Alan Modra <amodra@gmail.com> 1503 1504 * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space): 1505 Add prototype. 1506 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove. 1507 (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space. 1508 * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function. 1509 (rs6000_function_parms_need_stack): Likewise. 1510 (rs6000_reg_parm_stack_space): Likewise. 1511 (rs6000_function_arg): Do not replace BLKmode by Pmode when 1512 returning a register argument. 1513 1514 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1515 Michael Gschwind <mkg@us.ibm.com> 1516 1517 * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro. 1518 (ALTIVEC_ARG_MAX_RETURN): Likewise. 1519 (FUNCTION_VALUE_REGNO_P): Use them. 1520 * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define. 1521 (rs6000_return_in_msb): New function. 1522 (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates. 1523 Handle aggregates of up to 16 bytes for ELFv2. 1524 (rs6000_function_value): Handle ELFv2 homogeneous aggregates. 1525 1526 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1527 Michael Gschwind <mkg@us.ibm.com> 1528 1529 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define. 1530 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function. 1531 (rs6000_discover_homogeneous_aggregate): Likewise. 1532 (rs6000_function_arg_boundary): Handle homogeneous aggregates. 1533 (rs6000_function_arg_advance_1): Likewise. 1534 (rs6000_function_arg): Likewise. 1535 (rs6000_arg_partial_bytes): Likewise. 1536 (rs6000_psave_function_arg): Handle BLKmode arguments. 1537 1538 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1539 Michael Gschwind <mkg@us.ibm.com> 1540 1541 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define. 1542 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function. 1543 (rs6000_discover_homogeneous_aggregate): Likewise. 1544 (rs6000_function_arg_boundary): Handle homogeneous aggregates. 1545 (rs6000_function_arg_advance_1): Likewise. 1546 (rs6000_function_arg): Likewise. 1547 (rs6000_arg_partial_bytes): Likewise. 1548 (rs6000_psave_function_arg): Handle BLKmode arguments. 1549 1550 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1551 1552 * config/rs6000/rs6000.c (machine_function): New member 1553 r2_setup_needed. 1554 (rs6000_emit_prologue): Set r2_setup_needed if necessary. 1555 (rs6000_output_mi_thunk): Set r2_setup_needed. 1556 (rs6000_output_function_prologue): Output global entry point 1557 prologue and local entry point marker if needed for ABI_ELFv2. 1558 Output -mprofile-kernel code here. 1559 (output_function_profiler): Do not output -mprofile-kernel 1560 code here; moved to rs6000_output_function_prologue. 1561 (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2. 1562 1563 (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2. 1564 (rs6000_output_function_entry): Likewise. 1565 (rs6000_assemble_integer): Likewise. 1566 (rs6000_elf_encode_section_info): Likewise. 1567 (rs6000_elf_declare_function_name): Do not create dot symbols 1568 or .opd section for ABI_ELFv2. 1569 1570 (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines. 1571 (rs6000_trampoline_init): Likewise. 1572 (rs6000_elf_file_end): Call file_end_indicate_exec_stack 1573 for ABI_ELFv2. 1574 1575 (rs6000_call_aix): Handle ELFv2 indirect calls. Do not check 1576 for function descriptors in ABI_ELFv2. 1577 1578 * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support 1579 on ABI_AIX only, not ABI_ELFv2. 1580 ("*call_value_indirect_aix<mode>"): Likewise. 1581 ("*call_indirect_elfv2<mode>"): New pattern. 1582 ("*call_value_indirect_elfv2<mode>"): Likewise. 1583 1584 * config/rs6000/predicates.md ("symbol_ref_operand"): Do not 1585 check for function descriptors in ABI_ELFv2. 1586 ("current_file_function_operand"): Likewise. 1587 1588 * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]: 1589 (toc): Undefine. 1590 (FUNC_NAME): Define ELFv2 variant. 1591 (JUMP_TARGET): Likewise. 1592 (FUNC_START): Likewise. 1593 (HIDDEN_FUNC): Likewise. 1594 (FUNC_END): Likeiwse. 1595 1596 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1597 1598 * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1 1599 and --with-abi=elfv2. 1600 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi". 1601 * config/rs6000/rs6000.opt (mabi=elfv1): New option. 1602 (mabi=elfv2): Likewise. 1603 * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2. 1604 * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI 1605 if !RS6000_BI_ARCH. 1606 (ELFv2_ABI_CHECK): New macro. 1607 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set 1608 rs6000_current_abi to ABI_AIX or ABI_ELFv2. 1609 (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version. 1610 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine 1611 _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate. 1612 1613 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2. 1614 (debug_stack_info): Likewise. 1615 (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX. 1616 (rs6000_legitimize_tls_address): Likewise. 1617 (rs6000_conditional_register_usage): Likewise. 1618 (rs6000_emit_move): Likewise. 1619 (init_cumulative_args): Likewise. 1620 (rs6000_function_arg_advance_1): Likewise. 1621 (rs6000_function_arg): Likewise. 1622 (rs6000_arg_partial_bytes): Likewise. 1623 (rs6000_output_function_entry): Likewise. 1624 (rs6000_assemble_integer): Likewise. 1625 (rs6000_savres_strategy): Likewise. 1626 (rs6000_stack_info): Likewise. 1627 (rs6000_function_ok_for_sibcall): Likewise. 1628 (rs6000_emit_load_toc_table): Likewise. 1629 (rs6000_savres_routine_name): Likewise. 1630 (ptr_regno_for_savres): Likewise. 1631 (rs6000_emit_prologue): Likewise. 1632 (rs6000_emit_epilogue): Likewise. 1633 (rs6000_output_function_epilogue): Likewise. 1634 (output_profile_hook): Likewise. 1635 (output_function_profiler): Likewise. 1636 (rs6000_trampoline_size): Likewise. 1637 (rs6000_trampoline_init): Likewise. 1638 (rs6000_elf_output_toc_section_asm_op): Likewise. 1639 (rs6000_elf_encode_section_info): Likewise. 1640 (rs6000_elf_reloc_rw_mask): Likewise. 1641 (rs6000_elf_declare_function_name): Likewise. 1642 (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX, 1643 except that rs6000_compat_align_parm is always assumed false. 1644 (rs6000_gimplify_va_arg): Likewise. 1645 (rs6000_call_aix): Update comment. 1646 (rs6000_sibcall_aix): Likewise. 1647 * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"): 1648 Treat ABI_ELFv2 the same as ABI_AIX. 1649 ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise. 1650 ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise. 1651 ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise. 1652 ("load_toc_aix_si"): Likewise. 1653 ("load_toc_aix_di"): Likewise. 1654 ("call"): Likewise. 1655 ("call_value"): Likewise. 1656 ("*call_local_aix<mode>"): Likewise. 1657 ("*call_value_local_aix<mode>"): Likewise. 1658 ("*call_nonlocal_aix<mode>"): Likewise. 1659 ("*call_value_nonlocal_aix<mode>"): Likewise. 1660 ("*call_indirect_aix<mode>"): Likewise. 1661 ("*call_value_indirect_aix<mode>"): Likewise. 1662 ("sibcall"): Likewise. 1663 ("sibcall_value"): Likewise. 1664 ("*sibcall_aix<mode>"): Likewise. 1665 ("*sibcall_value_aix<mode>"): Likewise. 1666 * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise. 1667 ("current_file_function_operand"): Likewise. 1668 1669 Backport from mainline r204807: 1670 1671 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1672 1673 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic 1674 by making use of the fact that for vector / floating point arguments 1675 passed both in VRs/FPRs and in the fixed parameter area, the partial 1676 bytes mechanism is in fact not used. 1677 1678 Backport from mainline r204806: 1679 1680 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1681 1682 * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function. 1683 (rs6000_finish_function_arg): Likewise. 1684 (rs6000_function_arg): Use rs6000_psave_function_arg and 1685 rs6000_finish_function_arg to handle both vector and floating 1686 point arguments that are also passed in GPRs / the stack. 1687 1688 Backport from mainline r204805: 1689 1690 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1691 1692 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument. 1693 (USE_ALTIVEC_FOR_ARG_P): Likewise. 1694 (rs6000_darwin64_record_arg_advance_recurse): Update uses. 1695 (rs6000_function_arg_advance_1):Likewise. 1696 (rs6000_darwin64_record_arg_recurse): Likewise. 1697 (rs6000_function_arg): Likewise. 1698 (rs6000_arg_partial_bytes): Likewise. 1699 1700 Backport from mainline r204804: 1701 1702 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1703 1704 * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace 1705 "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN. 1706 (rs6000_savres_strategy): Likewise. 1707 (rs6000_return_addr): Likewise. 1708 (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by 1709 testing for ABI_V4 (since ABI_DARWIN is impossible here). 1710 (rs6000_emit_prologue): Likewise. 1711 (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test. 1712 (rs6000_elf_declare_function_name): Remove duplicated test. 1713 * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test 1714 for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test). 1715 ("load_toc_v4_PIC_1_normal"): Likewise. 1716 ("load_toc_v4_PIC_1_476"): Likewise. 1717 ("load_toc_v4_PIC_1b"): Likewise. 1718 ("load_toc_v4_PIC_1b_normal"): Likewise. 1719 ("load_toc_v4_PIC_1b_476"): Likewise. 1720 ("load_toc_v4_PIC_2"): Likewise. 1721 ("load_toc_v4_PIC_3b"): Likewise. 1722 ("load_toc_v4_PIC_3c"): Likewise. 1723 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test. 1724 (RS6000_SAVE_AREA): Likewise. 1725 (FP_ARG_MAX_REG): Likewise. 1726 (RETURN_ADDRESS_OFFSET): Likewise. 1727 * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead 1728 of ABI_AIX. 1729 (SUBTARGET_OVERRIDE_OPTIONS): Likewise. 1730 (MINIMAL_TOC_SECTION_ASM_OP): Likewise. 1731 1732 Backport from mainline r204803: 1733 1734 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1735 1736 * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ... 1737 (rs6000_call_aix): ... this. Handle both direct and indirect calls. 1738 Create call insn directly instead of via various gen_... routines. 1739 Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE. 1740 (rs6000_sibcall_aix): New function. 1741 * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove. 1742 (TOC_SAVE_OFFSET_64BIT): Likewise. 1743 (AIX_FUNC_DESC_TOC_32BIT): Likewise. 1744 (AIX_FUNC_DESC_TOC_64BIT): Likewise. 1745 (AIX_FUNC_DESC_SC_32BIT): Likewise. 1746 (AIX_FUNC_DESC_SC_64BIT): Likewise. 1747 ("call" expander): Call rs6000_call_aix. 1748 ("call_value" expander): Likewise. 1749 ("call_indirect_aix<ptrsize>"): Replace this pattern ... 1750 ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ... 1751 ("*call_indirect_aix<mode>"): ... by this insn pattern. 1752 ("call_value_indirect_aix<ptrsize>"): Replace this pattern ... 1753 ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ... 1754 ("*call_value_indirect_aix<mode>"): ... by this insn pattern. 1755 ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ... 1756 ("*call_nonlocal_aix<mode>"): ... this pattern. 1757 ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace 1758 ("*call_value_nonlocal_aix<mode>"): ... by this pattern. 1759 ("*call_local_aix<mode>"): New insn pattern. 1760 ("*call_value_local_aix<mode>"): Likewise. 1761 ("sibcall" expander): Call rs6000_sibcall_aix. 1762 ("sibcall_value" expander): Likewise. Move earlier in file. 1763 ("*sibcall_nonlocal_aix<mode>"): Replace by ... 1764 ("*sibcall_aix<mode>"): ... this pattern. 1765 ("*sibcall_value_nonlocal_aix<mode>"): Replace by ... 1766 ("*sibcall_value_aix<mode>"): ... this pattern. 1767 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove. 1768 (rs6000_call_aix): Add prototype. 1769 (rs6000_sibcall_aix): Likewise. 1770 1771 Backport from mainline r204799: 1772 1773 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1774 1775 * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a 1776 RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn. 1777 Instead, add USEs of all modified call-saved CR fields to the 1778 insn storing the result to the stack slot, and provide an 1779 appropriate REG_FRAME_RELATED_EXPR for that insn. 1780 * config/rs6000/rs6000.md ("*crsave"): New insn pattern. 1781 * config/rs6000/predicates.md ("crsave_operation"): New predicate. 1782 17832014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1784 1785 ELFv2 ABI Call Support 1786 Backport from mainline r204798: 1787 1788 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1789 Alan Modra <amodra@gmail.com> 1790 1791 * function.c (assign_parms): Use all.reg_parm_stack_space instead 1792 of re-evaluating REG_PARM_STACK_SPACE target macro. 1793 (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE. Use it 1794 instead of evaluating target macro REG_PARM_STACK_SPACE every time. 1795 (assign_parm_find_entry_rtl): Update call. 1796 * calls.c (initialize_argument_information): Update call. 1797 (emit_library_call_value_1): Likewise. 1798 * expr.h (locate_and_pad_parm): Update prototype. 1799 1800 Backport from mainline r204797: 1801 1802 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1803 1804 * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL 1805 arguments. 1806 1807 Backport from mainline r197003: 1808 1809 2013-03-23 Eric Botcazou <ebotcazou@adacore.com> 1810 1811 * calls.c (expand_call): Add missing guard to code handling return 1812 of non-BLKmode structures in MSB. 1813 * function.c (expand_function_end): Likewise. 1814 18152014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1816 1817 Backport from mainline r201750. 1818 Note: Default setting of -mcompat-align-parm inverted! 1819 1820 2013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1821 1822 PR target/57949 1823 * doc/invoke.texi: Add documentation of mcompat-align-parm 1824 option. 1825 * config/rs6000/rs6000.opt: Add mcompat-align-parm option. 1826 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX 1827 and Linux, correct BLKmode alignment when 128-bit alignment is 1828 required and compatibility flag is not set. 1829 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified 1830 alignment for zero-size arguments when compatibility flag is not 1831 set. 1832 18332014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1834 1835 Little Endian Vector Support 1836 Backport from mainline r205333 1837 2013-11-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1838 1839 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct 1840 for little endian. 1841 1842 Backport from mainline r205241 1843 2013-11-21 Bill Schmidt <wschmidt@vnet.ibm.com> 1844 1845 * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous 1846 little endian change. 1847 (vec_pack_sfix_trunc_v2df): Likewise. 1848 (vec_pack_ufix_trunc_v2df): Likewise. 1849 * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct 1850 double checking of endianness. 1851 1852 Backport from mainline r205146 1853 2013-11-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1854 1855 * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian. 1856 (vsx_extract_<mode>): Likewise. 1857 (*vsx_extract_<mode>_one_le): New LE variant on 1858 *vsx_extract_<mode>_zero. 1859 (vsx_extract_v4sf): Adjust for little endian. 1860 1861 Backport from mainline r205080 1862 2013-11-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1863 1864 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust 1865 V16QI vector splat case for little endian. 1866 1867 Backport from mainline r205045: 1868 1869 2013-11-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1870 1871 * config/rs6000/vector.md ("mov<mode>"): Do not call 1872 rs6000_emit_le_vsx_move to move into or out of GPRs. 1873 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert 1874 source and destination are not GPR hard regs. 1875 1876 Backport from mainline r204920 1877 2011-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1878 1879 * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg 1880 parameter and use it in REG_FRAME_RELATED_EXPR note. 1881 (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX 1882 parameter. 1883 (rs6000_emit_prologue): Likewise, but for little endian VSX 1884 stores, pass the source register of the store instead. 1885 1886 Backport from mainline r204862 1887 2013-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1888 1889 * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X): 1890 Remove. 1891 (altivec_vperm_<mode>): Revert earlier little endian change. 1892 (*altivec_vperm_<mode>_internal): Remove. 1893 (altivec_vperm_<mode>_uns): Revert earlier little endian change. 1894 (*altivec_vperm_<mode>_uns_internal): Remove. 1895 * config/rs6000/vector.md (vec_realign_load_<mode>): Revise 1896 commentary. 1897 1898 Backport from mainline r204441 1899 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1900 1901 * config/rs6000/rs6000.c (rs6000_option_override_internal): 1902 Remove restriction against use of VSX instructions when generating 1903 code for little endian mode. 1904 1905 Backport from mainline r204440 1906 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1907 1908 * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh 1909 for both big and little endian. 1910 (mulv8hi3): Swap input operands for merge high and merge low 1911 instructions for little endian. 1912 1913 Backport from mainline r204439 1914 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1915 1916 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change 1917 define_insn to define_expand that uses even patterns for big 1918 endian and odd patterns for little endian. 1919 (vec_widen_smult_even_v16qi): Likewise. 1920 (vec_widen_umult_even_v8hi): Likewise. 1921 (vec_widen_smult_even_v8hi): Likewise. 1922 (vec_widen_umult_odd_v16qi): Likewise. 1923 (vec_widen_smult_odd_v16qi): Likewise. 1924 (vec_widen_umult_odd_v8hi): Likewise. 1925 (vec_widen_smult_odd_v8hi): Likewise. 1926 (altivec_vmuleub): New define_insn. 1927 (altivec_vmuloub): Likewise. 1928 (altivec_vmulesb): Likewise. 1929 (altivec_vmulosb): Likewise. 1930 (altivec_vmuleuh): Likewise. 1931 (altivec_vmulouh): Likewise. 1932 (altivec_vmulesh): Likewise. 1933 (altivec_vmulosh): Likewise. 1934 1935 Backport from mainline r204395 1936 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1937 1938 * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for 1939 little endian. 1940 (vec_pack_ufix_trunc_v2df): Likewise. 1941 1942 Backport from mainline r204363 1943 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1944 1945 * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap 1946 arguments to merge instruction for little endian. 1947 (vec_widen_umult_lo_v16qi): Likewise. 1948 (vec_widen_smult_hi_v16qi): Likewise. 1949 (vec_widen_smult_lo_v16qi): Likewise. 1950 (vec_widen_umult_hi_v8hi): Likewise. 1951 (vec_widen_umult_lo_v8hi): Likewise. 1952 (vec_widen_smult_hi_v8hi): Likewise. 1953 (vec_widen_smult_lo_v8hi): Likewise. 1954 1955 Backport from mainline r204350 1956 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1957 1958 * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D): 1959 Replace the define_insn_and_split with a define_insn and two 1960 define_splits, with the split after reload re-permuting the source 1961 register to its original value. 1962 (*vsx_le_perm_store_<mode> for VSX_W): Likewise. 1963 (*vsx_le_perm_store_v8hi): Likewise. 1964 (*vsx_le_perm_store_v16qi): Likewise. 1965 1966 Backport from mainline r204321 1967 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1968 1969 * config/rs6000/vector.md (vec_pack_trunc_v2df): Adjust for 1970 little endian. 1971 1972 Backport from mainline r204321 1973 2013-11-02 Bill Schmidt <wschmidt@vnet.linux.ibm.com> 1974 1975 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for 1976 little endian. 1977 1978 Backport from mainline r203980 1979 2013-10-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1980 1981 * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian. 1982 1983 Backport from mainline r203930 1984 2013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com> 1985 1986 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse 1987 meaning of merge-high and merge-low masks for little endian; avoid 1988 use of vector-pack masks for little endian for mismatched modes. 1989 1990 Backport from mainline r203877 1991 2013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 1992 1993 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for 1994 little endian. 1995 (vec_unpacku_hi_v8hi): Likewise. 1996 (vec_unpacku_lo_v16qi): Likewise. 1997 (vec_unpacku_lo_v8hi): Likewise. 1998 1999 Backport from mainline r203863 2000 2013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2001 2002 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check 2003 all elements for both endian flavors. 2004 2005 Backport from mainline r203714 2006 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2007 2008 * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for 2009 endianness. 2010 (vec_unpacks_lo_v4sf): Likewise. 2011 (vec_unpacks_float_hi_v4si): Likewise. 2012 (vec_unpacks_float_lo_v4si): Likewise. 2013 (vec_unpacku_float_hi_v4si): Likewise. 2014 (vec_unpacku_float_lo_v4si): Likewise. 2015 2016 Backport from mainline r203713 2017 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2018 2019 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE. 2020 (vsx_concat_v2sf): Likewise. 2021 2022 Backport from mainline r203458 2023 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2024 2025 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to 2026 handle vector float as well. 2027 (*vsx_le_perm_load_v4si): Likewise. 2028 (*vsx_le_perm_store_v2di): Likewise. 2029 (*vsx_le_perm_store_v4si): Likewise. 2030 2031 Backport from mainline r203457 2032 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2033 2034 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm 2035 directly to circumvent subtract from splat{31} workaround. 2036 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New 2037 prototype. 2038 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New. 2039 * config/rs6000/altivec.md (define_c_enum "unspec"): Add 2040 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X. 2041 (altivec_vperm_<mode>): Convert to define_insn_and_split to 2042 separate big and little endian logic. 2043 (*altivec_vperm_<mode>_internal): New define_insn. 2044 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to 2045 separate big and little endian logic. 2046 (*altivec_vperm_<mode>_uns_internal): New define_insn. 2047 (vec_permv16qi): Add little endian logic. 2048 2049 Backport from mainline r203247 2050 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2051 2052 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New. 2053 (altivec_expand_vec_perm_const): Call it. 2054 2055 Backport from mainline r203246 2056 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2057 2058 * config/rs6000/vector.md (mov<mode>): Emit permuted move 2059 sequences for LE VSX loads and stores at expand time. 2060 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New 2061 prototype. 2062 * config/rs6000/rs6000.c (rs6000_const_vec): New. 2063 (rs6000_gen_le_vsx_permute): New. 2064 (rs6000_gen_le_vsx_load): New. 2065 (rs6000_gen_le_vsx_store): New. 2066 (rs6000_gen_le_vsx_move): New. 2067 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New. 2068 (*vsx_le_perm_load_v4si): New. 2069 (*vsx_le_perm_load_v8hi): New. 2070 (*vsx_le_perm_load_v16qi): New. 2071 (*vsx_le_perm_store_v2di): New. 2072 (*vsx_le_perm_store_v4si): New. 2073 (*vsx_le_perm_store_v8hi): New. 2074 (*vsx_le_perm_store_v16qi): New. 2075 (*vsx_xxpermdi2_le_<mode>): New. 2076 (*vsx_xxpermdi4_le_<mode>): New. 2077 (*vsx_xxpermdi8_le_V8HI): New. 2078 (*vsx_xxpermdi16_le_V16QI): New. 2079 (*vsx_lxvd2x2_le_<mode>): New. 2080 (*vsx_lxvd2x4_le_<mode>): New. 2081 (*vsx_lxvd2x8_le_V8HI): New. 2082 (*vsx_lxvd2x16_le_V16QI): New. 2083 (*vsx_stxvd2x2_le_<mode>): New. 2084 (*vsx_stxvd2x4_le_<mode>): New. 2085 (*vsx_stxvd2x8_le_V8HI): New. 2086 (*vsx_stxvd2x16_le_V16QI): New. 2087 2088 Backport from mainline r201235 2089 2013-07-24 Bill Schmidt <wschmidt@linux.ibm.com> 2090 Anton Blanchard <anton@au1.ibm.com> 2091 2092 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian. 2093 (altivec_vpks<VI_char>ss): Likewise. 2094 (altivec_vpks<VI_char>us): Likewise. 2095 (altivec_vpku<VI_char>us): Likewise. 2096 (altivec_vpku<VI_char>um): Likewise. 2097 2098 Backport from mainline r201208 2099 2013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com> 2100 Anton Blanchard <anton@au1.ibm.com> 2101 2102 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input 2103 operands to vperm for little endian. 2104 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead 2105 of lvsl to create the control mask for a vperm for little endian. 2106 2107 Backport from mainline r201195 2108 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2109 Anton Blanchard <anton@au1.ibm.com> 2110 2111 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse 2112 two operands for little-endian. 2113 2114 Backport from mainline r201193 2115 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2116 Anton Blanchard <anton@au1.ibm.com> 2117 2118 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct 2119 selection of field for vector splat in little endian mode. 2120 2121 Backport from mainline r201149 2122 2013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com> 2123 Anton Blanchard <anton@au1.ibm.com> 2124 2125 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix 2126 endianness when selecting field to splat. 2127 21282014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2129 2130 Backport from mainline r205123: 2131 2132 2013-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2133 2134 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not 2135 allow subregs of TDmode in FPRs of smaller size in little-endian. 2136 (rs6000_split_multireg_move): When splitting an access to TDmode 2137 in FPRs, do not use simplify_gen_subreg. 2138 2139 Backport from mainline r204927: 2140 2141 2013-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2142 2143 * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of 2144 sdmode_stack_slot also in little-endian mode. 2145 21462014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2147 2148 Power8 HTM Support 2149 Backport from mainline 2150 2013-12-03 Peter Bergner <bergner@vnet.ibm.com> 2151 2152 * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix 2153 typo in macro name. 2154 (_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise. 2155 2156 Backport from mainline r205233. 2157 2013-11-21 Peter Bergner <bergner@vnet.ibm.com> 2158 2159 * doc/extend.texi: Document htm builtins. 2160 2161 Backport from mainline 2162 2013-07-17 Iain Sandoe <iain@codesourcery.com> 2163 2164 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers. 2165 2166 Backport from mainline 2167 2013-07-16 Peter Bergner <bergner@vnet.ibm.com> 2168 2169 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not 2170 enable extra ISA flags with TARGET_HTM. 2171 2172 2013-07-16 Jakub Jelinek <jakub@redhat.com> 2173 Peter Bergner <bergner@vnet.ibm.com> 2174 2175 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM 2176 registers in the comment. 2177 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers. 2178 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS 2179 rather than FIRST_PSEUDO_REGISTERS. 2180 2181 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h. 2182 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md. 2183 * config/rs6000/rs6000.opt: Add -mhtm option. 2184 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM. 2185 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM. 2186 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define 2187 __HTM__ if the HTM instructions are available. 2188 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand) 2189 (htm_spr_reg_operand): New define_predicates. 2190 * config/rs6000/rs6000.md (define_attr "type"): Add htm. 2191 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants. 2192 Include htm.md. 2193 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2) 2194 (BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining 2195 HTM builtin functions. 2196 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro. 2197 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names. 2198 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions. 2199 (rs6000_builtin_mask_calculate): Likewise. 2200 (rs6000_option_override_internal): Likewise. 2201 (bdesc_htm): Add new HTM builtin support. 2202 (htm_spr_num): New function. 2203 (htm_spr_regno): Likewise. 2204 (rs6000_htm_spr_icode): Likewise. 2205 (htm_expand_builtin): Likewise. 2206 (htm_init_builtins): Likewise. 2207 (rs6000_expand_builtin): Add support for HTM builtin functions. 2208 (rs6000_init_builtins): Likewise. 2209 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm option. 2210 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm. 2211 (TARGET_HTM, MASK_HTM): Define macros. 2212 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers. 2213 (FIXED_REGISTERS): Likewise. 2214 (CALL_USED_REGISTERS): Likewise. 2215 (CALL_REALLY_USED_REGISTERS): Likewise. 2216 (REG_ALLOC_ORDER): Likewise. 2217 (enum reg_class): Likewise. 2218 (REG_CLASS_NAMES): Likewise. 2219 (REG_CLASS_CONTENTS): Likewise. 2220 (REGISTER_NAMES): Likewise. 2221 (ADDITIONAL_REGISTER_NAMES): Likewise. 2222 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT) 2223 (RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros. 2224 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM. 2225 * config/rs6000/htm.md: New file. 2226 * config/rs6000/htmintrin.h: New file. 2227 * config/rs6000/htmxlintrin.h: New file. 2228 22292014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2230 2231 Power8 Base Support 2232 Apply mainline 2233 2013-11-23 Alan Modra <amodra@gmail.com> 2234 * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX. 2235 2236 Backport from mainline 2237 2013-11-12 Michael Meissner <meissner@linux.vnet.ibm.com> 2238 2239 PR target/59054 2240 * config/rs6000/rs6000.md (movdi_internal32): Eliminate 2241 constraints that would allow DImode into the traditional Altivec 2242 registers, but cause undesirable code generation when loading 0 as 2243 a constant. 2244 (movdi_internal64): Likewise. 2245 (cmp<mode>_fpr): Do not use %x for CR register output. 2246 (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and 2247 -mallow-upper-sf debug switches are used. 2248 2249 Backport from mainline 2250 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com> 2251 2252 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new 2253 fields to the reg_addr array that describes the valid addressing 2254 mode for any register, general purpose registers, floating point 2255 registers, and Altivec registers. 2256 (FIRST_RELOAD_REG_CLASS): Likewise. 2257 (LAST_RELOAD_REG_CLASS): Likewise. 2258 (struct reload_reg_map_type): Likewise. 2259 (reload_reg_map_type): Likewise. 2260 (RELOAD_REG_VALID): Likewise. 2261 (RELOAD_REG_MULTIPLE): Likewise. 2262 (RELOAD_REG_INDEXED): Likewise. 2263 (RELOAD_REG_OFFSET): Likewise. 2264 (RELOAD_REG_PRE_INCDEC): Likewise. 2265 (RELOAD_REG_PRE_MODIFY): Likewise. 2266 (reg_addr): Likewise. 2267 (mode_supports_pre_incdec_p): New helper functions to say whether 2268 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY. 2269 (mode_supports_pre_modify_p): Likewise. 2270 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to 2271 print the valid address mode bits for each mode. 2272 (rs6000_debug_print_mode): Likewise. 2273 (rs6000_debug_reg_global): Likewise. 2274 (rs6000_setup_reg_addr_masks): New function to set up the address 2275 mask bits for each type. 2276 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays. 2277 Call rs6000_setup_reg_addr_masks to set up the address mask bits. 2278 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and 2279 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and 2280 PRE_MODIFY are supported. 2281 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec 2282 registers, instead of {src,dest}_av_p. 2283 (rs6000_print_options_internal): Tweak the debug output slightly. 2284 2285 Backport from mainline 2286 2013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com> 2287 2288 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2, 2289 ceildf2, btruncdf2, instead of vsx_* name. 2290 2291 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic 2292 iterators to only do V2DF and V4SF here. Move the DF code to 2293 rs6000.md where it is combined with SF mode. Replace <VSv> with 2294 just 'v' since only vector operations are handled with these insns 2295 after moving the DF support to rs6000.md. 2296 (vsx_sub<mode>3): Likewise. 2297 (vsx_mul<mode>3): Likewise. 2298 (vsx_div<mode>3): Likewise. 2299 (vsx_fre<mode>2): Likewise. 2300 (vsx_neg<mode>2): Likewise. 2301 (vsx_abs<mode>2): Likewise. 2302 (vsx_nabs<mode>2): Likewise. 2303 (vsx_smax<mode>3): Likewise. 2304 (vsx_smin<mode>3): Likewise. 2305 (vsx_sqrt<mode>2): Likewise. 2306 (vsx_rsqrte<mode>2): Likewise. 2307 (vsx_fms<mode>4): Likewise. 2308 (vsx_nfma<mode>4): Likewise. 2309 (vsx_copysign<mode>3): Likewise. 2310 (vsx_btrunc<mode>2): Likewise. 2311 (vsx_floor<mode>2): Likewise. 2312 (vsx_ceil<mode>2): Likewise. 2313 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md. 2314 (vsx_sminsf3): Likewise. 2315 (vsx_fmadf4): Likewise. 2316 (vsx_fmsdf4): Likewise. 2317 (vsx_nfmadf4): Likewise. 2318 (vsx_nfmsdf4): Likewise. 2319 (vsx_cmpdf_internal1): Likewise. 2320 2321 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it 2322 simpler to select whether a target has SPE or traditional floating 2323 point support in iterators. 2324 (TARGET_DF_SPE): Likewise. 2325 (TARGET_SF_FPR): Likewise. 2326 (TARGET_DF_FPR): Likewise. 2327 (TARGET_SF_INSN): Macros to say whether floating point support 2328 exists for a given operation for expanders. 2329 (TARGET_DF_INSN): Likewise. 2330 2331 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow 2332 combining of SF/DF mode operations, using both traditional and VSX 2333 registers. 2334 (Fvsx): Likewise. 2335 (Ff): Likewise. 2336 (Fv): Likewise. 2337 (Fs): Likewise. 2338 (Ffre): Likewise. 2339 (FFRE): Likewise. 2340 (abs<mode>2): Combine SF/DF modes using traditional floating point 2341 instructions. Add support for using the upper DF registers with 2342 VSX support, and SF registers with power8-vector support. Update 2343 expanders for operations supported by both the SPE and traditional 2344 floating point units. 2345 (abs<mode>2_fpr): Likewise. 2346 (nabs<mode>2): Likewise. 2347 (nabs<mode>2_fpr): Likewise. 2348 (neg<mode>2): Likewise. 2349 (neg<mode>2_fpr): Likewise. 2350 (add<mode>3): Likewise. 2351 (add<mode>3_fpr): Likewise. 2352 (sub<mode>3): Likewise. 2353 (sub<mode>3_fpr): Likewise. 2354 (mul<mode>3): Likewise. 2355 (mul<mode>3_fpr): Likewise. 2356 (div<mode>3): Likewise. 2357 (div<mode>3_fpr): Likewise. 2358 (sqrt<mode>3): Likewise. 2359 (sqrt<mode>3_fpr): Likewise. 2360 (fre<Fs>): Likewise. 2361 (rsqrt<mode>2): Likewise. 2362 (cmp<mode>_fpr): Likewise. 2363 (smax<mode>3): Likewise. 2364 (smin<mode>3): Likewise. 2365 (smax<mode>3_vsx): Likewise. 2366 (smin<mode>3_vsx): Likewise. 2367 (negsf2): Delete SF operations that are merged with DF. 2368 (abssf2): Likewise. 2369 (addsf3): Likewise. 2370 (subsf3): Likewise. 2371 (mulsf3): Likewise. 2372 (divsf3): Likewise. 2373 (fres): Likewise. 2374 (fmasf4_fpr): Likewise. 2375 (fmssf4_fpr): Likewise. 2376 (nfmasf4_fpr): Likewise. 2377 (nfmssf4_fpr): Likewise. 2378 (sqrtsf2): Likewise. 2379 (rsqrtsf_internal1): Likewise. 2380 (smaxsf3): Likewise. 2381 (sminsf3): Likewise. 2382 (cmpsf_internal1): Likewise. 2383 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support. 2384 (negdf2): Delete DF operations that are merged with SF. 2385 (absdf2): Likewise. 2386 (nabsdf2): Likewise. 2387 (adddf3): Likewise. 2388 (subdf3): Likewise. 2389 (muldf3): Likewise. 2390 (divdf3): Likewise. 2391 (fred): Likewise. 2392 (rsqrtdf_internal1): Likewise. 2393 (fmadf4_fpr): Likewise. 2394 (fmsdf4_fpr): Likewise. 2395 (nfmadf4_fpr): Likewise. 2396 (nfmsdf4_fpr): Likewise. 2397 (sqrtdf2): Likewise. 2398 (smaxdf3): Likewise. 2399 (smindf3): Likewise. 2400 (cmpdf_internal1): Likewise. 2401 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro. 2402 (btrunc<mode>2): Delete separate expander, and combine with the 2403 insn and add VSX instruction support. Use TARGET_<MODE>_FPR. 2404 (btrunc<mode>2_fpr): Likewise. 2405 (ceil<mode>2): Likewise. 2406 (ceil<mode>2_fpr): Likewise. 2407 (floor<mode>2): Likewise. 2408 (floor<mode>2_fpr): Likewise. 2409 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support. 2410 Add support for using the upper registers with VSX and 2411 power8-vector. Move insns to be closer to the define_expands. On 2412 VSX systems, prefer the traditional form of FMA over the VSX 2413 version, since the traditional form allows the target not to 2414 overlap with the inputs. 2415 (fms<mode>4_fpr): Likewise. 2416 (nfma<mode>4_fpr): Likewise. 2417 (nfms<mode>4_fpr): Likewise. 2418 2419 Backport from mainline 2420 2013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com> 2421 2422 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow 2423 DFmode, DImode, and SFmode in the upper VSX registers based on the 2424 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS 2425 if -mpower8-vector. Combine -mvsx-timode handling with the rest 2426 of the VSX register handling. 2427 2428 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters. 2429 (f32_sv): Likewise. 2430 (zero_extendsidi2_lfiwzx): Add support for loading into the 2431 Altivec registers with -mpower8-vector. Use wu/wv constraints to 2432 only do VSX memory options on Altivec registers. 2433 (extendsidi2_lfiwax): Likewise. 2434 (extendsfdf2_fpr): Likewise. 2435 (mov<mode>_hardfloat, SF/SD modes): Likewise. 2436 (mov<mode>_hardfloat32, DF/DD modes): Likewise. 2437 (mov<mode>_hardfloat64, DF/DD modes): Likewise. 2438 (movdi_internal64): Likewise. 2439 2440 Backport from mainline 2441 2013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com> 2442 2443 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine 2444 reload helper function arrays into a single array reg_addr. 2445 (reload_fpr_gpr): Likewise. 2446 (reload_gpr_vsx): Likewise. 2447 (reload_vsx_gpr): Likewise. 2448 (struct rs6000_reg_addr): Likewise. 2449 (reg_addr): Likewise. 2450 (rs6000_debug_reg_global): Change rs6000_vector_reload, 2451 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr. 2452 (rs6000_init_hard_regno_mode_ok): Likewise. 2453 (rs6000_secondary_reload_direct_move): Likewise. 2454 (rs6000_secondary_reload): Likewise. 2455 2456 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new 2457 constraints: wu, ww, and wy. Repurpose wv constraint added during 2458 power8 changes. Put wg constraint in alphabetical order. 2459 2460 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch 2461 for future work to add ISA 2.07 VSX single precision support. 2462 (-mvsx-scalar-double): Change default from -1 to 1, update 2463 documentation comment. 2464 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df. 2465 (-mupper-regs-df): New debug switch to control whether DF values 2466 can go in the traditional Altivec registers. 2467 (-mupper-regs-sf): New debug switch to control whether SF values 2468 can go in the traditional Altivec registers. 2469 2470 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww, 2471 and wy constraints. 2472 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for 2473 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df. 2474 Add new constraints, wu/ww/wy. Repurpose wv constraint. 2475 (rs6000_debug_legitimate_address_p): Print if we are running 2476 before, during, or after reload. 2477 (rs6000_secondary_reload): Add a comment. 2478 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf. 2479 2480 * config/rs6000/constraints.md (wa constraint): Sort w<x> 2481 constraints. Update documentation string. 2482 (wd constraint): Likewise. 2483 (wf constraint): Likewise. 2484 (wg constraint): Likewise. 2485 (wn constraint): Likewise. 2486 (ws constraint): Likewise. 2487 (wt constraint): Likewise. 2488 (wx constraint): Likewise. 2489 (wz constraint): Likewise. 2490 (wu constraint): New constraint for ISA 2.07 SFmode scalar 2491 instructions. 2492 (ww constraint): Likewise. 2493 (wy constraint): Likewise. 2494 (wv constraint): Repurpose ISA 2.07 constraint that did not use in 2495 the previous submissions. 2496 * doc/md.texi (PowerPC and IBM RS6000): Likewise. 2497 2498 Backport from mainline 2499 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com> 2500 2501 PR target/58673 2502 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only 2503 restrict TImode addresses to single indirect registers if both 2504 -mquad-memory and -mvsx-timode are used. 2505 (rs6000_output_move_128bit): Use quad_load_store_p to determine if 2506 we should emit load/store quad. Remove using %y for quad memory 2507 addresses. 2508 2509 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add 2510 constraints to allow load/store quad on machines where TImode is 2511 not allowed in VSX registers. Use 'n' instead of 'F' constraint 2512 for TImode to load integer constants. 2513 2514 Backport from mainline 2515 2013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com> 2516 2517 PR target/58587 2518 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off 2519 setting -mvsx-timode by default until the underlying problem is 2520 fixed. 2521 (RS6000_CPU, power7 defaults): Likewise. 2522 2523 Backport from trunk 2524 2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com> 2525 2526 PR target/58160 2527 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the 2528 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND. 2529 2530 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands 2531 array instead of each individual operand as a separate argument. 2532 (emit_fusion_gpr_load): Likewise. 2533 (expand_fusion_gpr_load): Add new function declaration. 2534 2535 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling 2536 signature to have the operands passed as an array, instead of as 2537 separate arguments. Allow ZERO_EXTEND to be in the memory 2538 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not 2539 depend on the register live/dead flags when peepholes are run. 2540 (expand_fusion_gpr_load): New function to be called from the 2541 peephole2 pass, to change the register that addis sets to be the 2542 target register. 2543 (emit_fusion_gpr_load): Change the calling signature to have the 2544 operands passed as an array, instead of as separate arguments. 2545 Allow ZERO_EXTEND to be in the memory address, and also 2546 SIGN_EXTEND if -mpower8-fusion-sign. 2547 2548 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused 2549 unspec enumeration. 2550 (power8 fusion peephole/peephole2): Rework the fusion peepholes to 2551 adjust the register addis loads up in the peephole2 pass. Do not 2552 depend on the register live/dead state when the peephole pass is 2553 done. 2554 2555 Backport from trunk 2556 2013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com> 2557 2558 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean 2559 expanders to rs6000.md. 2560 (ior<mode>3): Likewise. 2561 (and<mode>3): Likewise. 2562 (one_cmpl<mode>2): Likewise. 2563 (nor<mode>3): Likewise. 2564 (andc<mode>3): Likewise. 2565 (eqv<mode>3): Likewise. 2566 (nand<mode>3): Likewise. 2567 (orc<mode>3): Likewise. 2568 2569 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New 2570 declaration. 2571 2572 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support 2573 to split multi-word logical operations. 2574 (rs6000_split_logical_di): Likewise. 2575 (rs6000_split_logical): Likewise. 2576 2577 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used. 2578 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md, 2579 and allow TImode operations in 32-bit. 2580 (vsx_and<mode>3_64bit): Likewise. 2581 (vsx_ior<mode>3_32bit): Likewise. 2582 (vsx_ior<mode>3_64bit): Likewise. 2583 (vsx_xor<mode>3_32bit): Likewise. 2584 (vsx_xor<mode>3_64bit): Likewise. 2585 (vsx_one_cmpl<mode>2_32bit): Likewise. 2586 (vsx_one_cmpl<mode>2_64bit): Likewise. 2587 (vsx_nor<mode>3_32bit): Likewise. 2588 (vsx_nor<mode>3_64bit): Likewise. 2589 (vsx_andc<mode>3_32bit): Likewise. 2590 (vsx_andc<mode>3_64bit): Likewise. 2591 (vsx_eqv<mode>3_32bit): Likewise. 2592 (vsx_eqv<mode>3_64bit): Likewise. 2593 (vsx_nand<mode>3_32bit): Likewise. 2594 (vsx_nand<mode>3_64bit): Likewise. 2595 (vsx_orc<mode>3_32bit): Likewise. 2596 (vsx_orc<mode>3_64bit): Likewise. 2597 2598 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector 2599 logical types in GPRs. 2600 2601 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit 2602 logical insns to rs6000.md, and allow TImode operations in 2603 32-bit. 2604 (altivec_ior<mode>3): Likewise. 2605 (altivec_xor<mode>3): Likewise. 2606 (altivec_one_cmpl<mode>2): Likewise. 2607 (altivec_nor<mode>3): Likewise. 2608 (altivec_andc<mode>3): Likewise. 2609 2610 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode 2611 attributes for moving the 128-bit logical operations into 2612 rs6000.md. 2613 (BOOL_REGS_OUTPUT): Likewise. 2614 (BOOL_REGS_OP1): Likewise. 2615 (BOOL_REGS_OP2): Likewise. 2616 (BOOL_REGS_UNARY): Likewise. 2617 (BOOL_REGS_AND_CR0): Likewise. 2618 (one_cmpl<mode>2): Add support for DI logical operations on 2619 32-bit, splitting the operations to 32-bit. 2620 (anddi3): Likewise. 2621 (iordi3): Likewise. 2622 (xordi3): Likewise. 2623 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator 2624 changes to combine the 32/64-bit code, allow logical operations on 2625 TI mode in 32-bit, and to use similar match_operator patterns like 2626 scalar mode uses. Combine the Altivec and VSX code for logical 2627 operations, and move it here. 2628 (ior<mode>3, 128-bit types): Likewise. 2629 (xor<mode>3, 128-bit types): Likewise. 2630 (one_cmpl<mode>3, 128-bit types): Likewise. 2631 (nor<mode>3, 128-bit types): Likewise. 2632 (andc<mode>3, 128-bit types): Likewise. 2633 (eqv<mode>3, 128-bit types): Likewise. 2634 (nand<mode>3, 128-bit types): Likewise. 2635 (orc<mode>3, 128-bit types): Likewise. 2636 (and<mode>3_internal): Likewise. 2637 (bool<mode>3_internal): Likewise. 2638 (boolc<mode>3_internal1): Likewise. 2639 (boolc<mode>3_internal2): Likewise. 2640 (boolcc<mode>3_internal1): Likewise. 2641 (boolcc<mode>3_internal2): Likewise. 2642 (eqv<mode>3_internal1): Likewise. 2643 (eqv<mode>3_internal2): Likewise. 2644 (one_cmpl1<mode>3_internal): Likewise. 2645 2646 Back port from mainline: 2647 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com> 2648 Pat Haugen <pthaugen@us.ibm.com> 2649 Peter Bergner <bergner@vnet.ibm.com> 2650 2651 * lib/target-supports.exp (check_p8vector_hw_available) Add power8 2652 support. 2653 (check_effective_target_powerpc_p8vector_ok): Likewise. 2654 (is-effective-target): Likewise. 2655 (check_vect_support_and_set_flags): Likewise. 2656 2657 Backport from mainline 2658 2013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com> 2659 2660 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates 2661 to support power8 load fusion. 2662 (fusion_gpr_mem_load): Likewise. 2663 2664 * config/rs6000/rs6000-modes.def (PTImode): Update a comment. 2665 2666 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New 2667 declarations for power8 load fusion. 2668 (emit_fusion_gpr_load): Likewise. 2669 2670 * config/rs6000/rs6000.c (rs6000_option_override_internal): If 2671 tuning for power8, turn on fusion mode by default. Turn on sign 2672 extending fusion mode if normal fusion mode is on, and we are at 2673 -O2 or -O3. 2674 (fusion_gpr_load_p): New function, return true if we can fuse an 2675 addis instruction with a dependent load to a GPR. 2676 (emit_fusion_gpr_load): Emit the instructions for power8 load 2677 fusion to GPRs. 2678 2679 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion 2680 peepholes. 2681 (VSX load fusion peepholes): New peepholes to fuse together an 2682 addi instruction with a VSX load instruction. 2683 2684 * config/rs6000/rs6000.md (GPR load fusion peepholes): New 2685 peepholes to fuse an addis instruction with a load to a GPR base 2686 register. If we are supporting sign extending fusions, convert 2687 sign extending loads to zero extending loads and add an explicit 2688 sign extension. 2689 2690 Backport from mainline 2691 2013-07-18 Pat Haugen <pthaugen@us.ibm.com> 2692 2693 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag 2694 interaction for new Power8 flags and VSX. 2695 2696 Back port from the trunk 2697 2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> 2698 2699 PR target/57744 2700 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode 2701 to tie with any other modes. Eliminate Altivec vector mode tests, 2702 since these are a subset of ALTIVEC or VSX vector modes. Simplify 2703 code, to return 0 if testing MODE2 for a condition, if we've 2704 already tested MODE1 for the same condition. 2705 2706 Backport from mainline 2707 2013-06-28 Pat Haugen <pthaugen@us.ibm.com> 2708 2709 * config/rs6000/rs6000.md (define_insn ""): Fix insn type. 2710 2711 Back port from the trunk 2712 2013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com> 2713 Pat Haugen <pthaugen@us.ibm.com> 2714 Peter Bergner <bergner@vnet.ibm.com> 2715 2716 * config/rs6000/power8.md: New. 2717 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor 2718 setting for power8 entry. 2719 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md. 2720 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust 2721 test for Power4/Power5 only. 2722 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8 2723 support. 2724 (force_new_group): Adjust comment. 2725 * config/rs6000/rs6000.md: Include power8.md. 2726 2727 Back port from the trunk 2728 2013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com> 2729 2730 PR target/57615 2731 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call 2732 rs6000_output_move_128bit to handle emitting quad memory 2733 operations. Set attribute length to 8 bytes. 2734 2735 Back port from the trunk 2736 2013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com> 2737 2738 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move 2739 test for clearing quad memory on 32-bit later. 2740 2741 Back port from the trunk 2742 2743 2013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com> 2744 Pat Haugen <pthaugen@us.ibm.com> 2745 Peter Bergner <bergner@vnet.ibm.com> 2746 2747 * config/rs6000/rs6000.c (emit_load_locked): Add support for 2748 power8 byte, half-word, and quad-word atomic instructions. 2749 (emit_store_conditional): Likewise. 2750 (rs6000_expand_atomic_compare_and_swap): Likewise. 2751 (rs6000_expand_atomic_op): Likewise. 2752 2753 * config/rs6000/sync.md (larx): Add new modes for power8. 2754 (stcx): Likewise. 2755 (AINT): New mode iterator to include TImode as well as normal 2756 integer modes on power8. 2757 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so 2758 that VSX registers are not considered. Use AINT mode iterator 2759 instead of INT1 to allow inclusion of quad word atomic operations 2760 on power8. 2761 (load_locked<mode>): Likewise. 2762 (store_conditional<mode>): Likewise. 2763 (atomic_compare_and_swap<mode>): Likewise. 2764 (atomic_exchange<mode>): Likewise. 2765 (atomic_nand<mode>): Likewise. 2766 (atomic_fetch_<fetchop_name><mode>): Likewise. 2767 (atomic_nand_fetch<mode>): Likewise. 2768 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating 2769 each type. 2770 (ATOMIC): On power8, add QImode, HImode modes. 2771 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI 2772 modes that promote to SImode. 2773 (load_lockedti): Convert TImode arguments to PTImode, so that we 2774 get a guaranteed even/odd register pair. 2775 (load_lockedpti): Likewise. 2776 (store_conditionalti): Likewise. 2777 (store_conditionalpti): Likewise. 2778 2779 * config/rs6000/rs6000.md (QHI): New mode iterator for power8 2780 atomic load/store instructions. 2781 (HSI): Likewise. 2782 2783 Back port from the trunk 2784 2785 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com> 2786 Pat Haugen <pthaugen@us.ibm.com> 2787 Peter Bergner <bergner@vnet.ibm.com> 2788 2789 * config/rs6000/vector.md (GPR move splitter): Do not split moves 2790 of vectors in GPRS if they are direct moves or quad word load or 2791 store moves. 2792 2793 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add 2794 declaration. 2795 (direct_move_p): Likewise. 2796 (quad_load_store_p): Likewise. 2797 2798 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register 2799 classes into bins based on the physical register type. 2800 (reg_class_to_reg_type): Likewise. 2801 (IS_STD_REG_TYPE): Likewise. 2802 (IS_FP_VECT_REG_TYPE): Likewise. 2803 (reload_fpr_gpr): Arrays to determine what insn to use if we can 2804 use direct move instructions. 2805 (reload_gpr_vsx): Likewise. 2806 (reload_vsx_gpr): Likewise. 2807 (rs6000_init_hard_regno_mode_ok): Precalculate the register type 2808 information that is a simplification of register classes. Also 2809 precalculate direct move reload helpers. 2810 (direct_move_p): New function to return true if the operation can 2811 be done as a direct move instruciton. 2812 (quad_load_store_p): New function to return true if the operation 2813 is a quad memory operation. 2814 (rs6000_legitimize_address): If quad memory, only allow register 2815 indirect for TImode addresses. 2816 (rs6000_legitimate_address_p): Likewise. 2817 (enum reload_reg_type): Delete, replace with rs6000_reg_type. 2818 (rs6000_reload_register_type): Likewise. 2819 (register_to_reg_type): Return register type. 2820 (rs6000_secondary_reload_simple_move): New helper function for 2821 secondary reload and secondary memory needed to identify anything 2822 that is a simple move, and does not need reloading. 2823 (rs6000_secondary_reload_direct_move): New helper function for 2824 secondary reload to identify cases that can be done with several 2825 instructions via the direct move instructions. 2826 (rs6000_secondary_reload_move): New helper function for secondary 2827 reload to identify moves between register types that can be done. 2828 (rs6000_secondary_reload): Add support for quad memory operations 2829 and for direct move. 2830 (rs6000_secondary_memory_needed): Likewise. 2831 (rs6000_debug_secondary_memory_needed): Change argument names. 2832 (rs6000_output_move_128bit): New function to return the move to 2833 use for 128-bit moves, including knowing about the various 2834 limitations of quad memory operations. 2835 2836 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad 2837 memory operations. call rs6000_output_move_128bit for the actual 2838 instruciton(s) to generate. 2839 (vsx_movti_64bit): Likewise. 2840 2841 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values. 2842 (UNSPEC_P8V_MTVSRWZ): Likewise. 2843 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise. 2844 (UNSPEC_P8V_MTVSRD): Likewise. 2845 (UNSPEC_P8V_XXPERMDI): Likewise. 2846 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise. 2847 (UNSPEC_FUSION_GPR): Likewise. 2848 (FMOVE128_GPR): New iterator for direct move. 2849 (f32_lv): New mode attribute for load/store of SFmode/SDmode 2850 values. 2851 (f32_sv): Likewise. 2852 (f32_dm): Likewise. 2853 (zero_extend<mode>di2_internal1): Add support for power8 32-bit 2854 loads and direct move instructions. 2855 (zero_extendsidi2_lfiwzx): Likewise. 2856 (extendsidi2_lfiwax): Likewise. 2857 (extendsidi2_nocell): Likewise. 2858 (floatsi<mode>2_lfiwax): Likewise. 2859 (lfiwax): Likewise. 2860 (floatunssi<mode>2_lfiwzx): Likewise. 2861 (lfiwzx): Likewise. 2862 (fix_trunc<mode>_stfiwx): Likewise. 2863 (fixuns_trunc<mode>_stfiwx): Likewise. 2864 (mov<mode>_hardfloat, 32-bit floating point): Likewise. 2865 (mov<move>_hardfloat64, 64-bit floating point): Likewise. 2866 (parity<mode>2_cmpb): Set length/type attr. 2867 (unnamed shift right patterns, mov<mode>_internal2): Change type attr 2868 for 'mr.' to fast_compare. 2869 (bpermd_<mode>): Change type attr to popcnt. 2870 (p8_fmrgow_<mode>): New insns for power8 direct move support. 2871 (p8_mtvsrwz_1): Likewise. 2872 (p8_mtvsrwz_2): Likewise. 2873 (reload_fpr_from_gpr<mode>): Likewise. 2874 (p8_mtvsrd_1): Likewise. 2875 (p8_mtvsrd_2): Likewise. 2876 (p8_xxpermdi_<mode>): Likewise. 2877 (reload_vsx_from_gpr<mode>): Likewise. 2878 (reload_vsx_from_gprsf): Likewise. 2879 (p8_mfvsrd_3_<mode>): LIkewise. 2880 (reload_gpr_from_vsx<mode>): Likewise. 2881 (reload_gpr_from_vsxsf): Likewise. 2882 (p8_mfvsrd_4_disf): Likewise. 2883 (multi-word GPR splits): Do not split direct moves or quad memory 2884 operations. 2885 2886 Backport from the trunk 2887 2888 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com> 2889 Pat Haugen <pthaugen@us.ibm.com> 2890 Peter Bergner <bergner@vnet.ibm.com> 2891 2892 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): 2893 Document new power8 builtins. 2894 2895 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a 2896 condition code register, to allow 128-bit logical operations to be 2897 done in the VSX or GPR registers. 2898 (nor<mode>3): Use the canonical form for nor. 2899 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc, 2900 vclz*, and vpopcnt* vector instructions. 2901 (nand<mode>3): Likewise. 2902 (orc<mode>3): Likewise. 2903 (clz<mode>2): LIkewise. 2904 (popcount<mode>2): Likewise. 2905 2906 * config/rs6000/predicates.md (int_reg_operand): Rework tests so 2907 that only the GPRs are recognized. 2908 2909 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 2910 support for new power8 builtins. 2911 2912 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8 2913 builtin functions. 2914 (xscvdpspn): Likewise. 2915 (vclz): Likewise. 2916 (vclzb): Likewise. 2917 (vclzh): Likewise. 2918 (vclzw): Likewise. 2919 (vclzd): Likewise. 2920 (vpopcnt): Likewise. 2921 (vpopcntb): Likewise. 2922 (vpopcnth): Likewise. 2923 (vpopcntw): Likewise. 2924 (vpopcntd): Likewise. 2925 (vgbbd): Likewise. 2926 (vmrgew): Likewise. 2927 (vmrgow): Likewise. 2928 (eqv): Likewise. 2929 (eqv_v16qi3): Likewise. 2930 (eqv_v8hi3): Likewise. 2931 (eqv_v4si3): Likewise. 2932 (eqv_v2di3): Likewise. 2933 (eqv_v4sf3): Likewise. 2934 (eqv_v2df3): Likewise. 2935 (nand): Likewise. 2936 (nand_v16qi3): Likewise. 2937 (nand_v8hi3): Likewise. 2938 (nand_v4si3): Likewise. 2939 (nand_v2di3): Likewise. 2940 (nand_v4sf3): Likewise. 2941 (nand_v2df3): Likewise. 2942 (orc): Likewise. 2943 (orc_v16qi3): Likewise. 2944 (orc_v8hi3): Likewise. 2945 (orc_v4si3): Likewise. 2946 (orc_v2di3): Likewise. 2947 (orc_v4sf3): Likewise. 2948 (orc_v2df3): Likewise. 2949 2950 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only 2951 allow power8 quad mode in 64-bit. 2952 (rs6000_builtin_vectorized_function): Add support to vectorize 2953 ISA 2.07 count leading zeros, population count builtins. 2954 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form 2955 V4SF vectors instead of xscvdpsp to avoid IEEE related traps. 2956 (builtin_function_type): Add vgbbd builtin function which takes an 2957 unsigned argument. 2958 (altivec_expand_vec_perm_const): Add support for new power8 merge 2959 instructions. 2960 2961 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types, 2962 that does not include TImdoe for use with 32-bit. 2963 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn 2964 instructions. 2965 (UNSPEC_VSX_CVDPSPN): Likewise. 2966 (vsx_xscvdpspn): Likewise. 2967 (vsx_xscvspdpn): Likewise. 2968 (vsx_xscvdpspn_scalar): Likewise. 2969 (vsx_xscvspdpn_directmove): Likewise. 2970 (vsx_and<mode>3): Split logical operations into 32-bit and 2971 64-bit. Add support to do logical operations on TImode as well as 2972 VSX vector types. Allow logical operations to be done in either 2973 VSX registers or in general purpose registers in 64-bit mode. Add 2974 splitters if GPRs were used. For AND, add clobber of CCmode to 2975 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL 2976 encoding. 2977 (vsx_and<mode>3_32bit): Likewise. 2978 (vsx_and<mode>3_64bit): Likewise. 2979 (vsx_ior<mode>3): Likewise. 2980 (vsx_ior<mode>3_32bit): Likewise. 2981 (vsx_ior<mode>3_64bit): Likewise. 2982 (vsx_xor<mode>3): Likewise. 2983 (vsx_xor<mode>3_32bit): Likewise. 2984 (vsx_xor<mode>3_64bit): Likewise. 2985 (vsx_one_cmpl<mode>2): Likewise. 2986 (vsx_one_cmpl<mode>2_32bit): Likewise. 2987 (vsx_one_cmpl<mode>2_64bit): Likewise. 2988 (vsx_nor<mode>3): Likewise. 2989 (vsx_nor<mode>3_32bit): Likewise. 2990 (vsx_nor<mode>3_64bit): Likewise. 2991 (vsx_andc<mode>3): Likewise. 2992 (vsx_andc<mode>3_32bit): Likewise. 2993 (vsx_andc<mode>3_64bit): Likewise. 2994 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand, 2995 and xxlorc instructions. 2996 (vsx_eqv<mode>3_64bit): Likewise. 2997 (vsx_nand<mode>3_32bit): Likewise. 2998 (vsx_nand<mode>3_64bit): Likewise. 2999 (vsx_orc<mode>3_32bit): Likewise. 3000 (vsx_orc<mode>3_64bit): Likewise. 3001 3002 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment. 3003 3004 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd 3005 instruction. 3006 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions. 3007 (p8_vmrgow): Likewise. 3008 (altivec_and<mode>3): Add clobber of CCmode to allow AND using 3009 GPRs to be split under VSX. 3010 (p8v_clz<mode>2): Add power8 count leading zero support. 3011 (p8v_popcount<mode>2): Add power8 population count support. 3012 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword 3013 support. 3014 3015 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv 3016 instruction. 3017 3018 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8 3019 builtin functions. 3020 (vec_nand): Likewise. 3021 (vec_vclz): Likewise. 3022 (vec_vclzb): Likewise. 3023 (vec_vclzd): Likewise. 3024 (vec_vclzh): Likewise. 3025 (vec_vclzw): Likewise. 3026 (vec_vgbbd): Likewise. 3027 (vec_vmrgew): Likewise. 3028 (vec_vmrgow): Likewise. 3029 (vec_vpopcnt): Likewise. 3030 (vec_vpopcntb): Likewise. 3031 (vec_vpopcntd): Likewise. 3032 (vec_vpopcnth): Likewise. 3033 (vec_vpopcntw): Likewise. 3034 3035 Backport from trunk 3036 3037 2013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com> 3038 Pat Haugen <pthaugen@us.ibm.com> 3039 Peter Bergner <bergner@vnet.ibm.com> 3040 3041 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI 3042 instructions. 3043 (VEC_A): Likewise. 3044 (VEC_C): Likewise. 3045 (vrotl<mode>3): Likewise. 3046 (vashl<mode>3): Likewise. 3047 (vlshr<mode>3): Likewise. 3048 (vashr<mode>3): Likewise. 3049 3050 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 3051 support for power8 V2DI builtins. 3052 3053 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for 3054 power8 V2DI builtins. 3055 (vupkhsw): Likewise. 3056 (vupklsw): Likewise. 3057 (vaddudm): Likewise. 3058 (vminsd): Likewise. 3059 (vmaxsd): Likewise. 3060 (vminud): Likewise. 3061 (vmaxud): Likewise. 3062 (vpkudum): Likewise. 3063 (vpksdss): Likewise. 3064 (vpkudus): Likewise. 3065 (vpksdus): Likewise. 3066 (vrld): Likewise. 3067 (vsld): Likewise. 3068 (vsrd): Likewise. 3069 (vsrad): Likewise. 3070 (vsubudm): Likewise. 3071 (vcmpequd): Likewise. 3072 (vcmpgtsd): Likewise. 3073 (vcmpgtud): Likewise. 3074 (vcmpequd_p): Likewise. 3075 (vcmpgtsd_p): Likewise. 3076 (vcmpgtud_p): Likewise. 3077 (vupkhsw): Likewise. 3078 (vupklsw): Likewise. 3079 (vaddudm): Likewise. 3080 (vmaxsd): Likewise. 3081 (vmaxud): Likewise. 3082 (vminsd): Likewise. 3083 (vminud): Likewise. 3084 (vpksdss): Likewise. 3085 (vpksdus): Likewise. 3086 (vpkudum): Likewise. 3087 (vpkudus): Likewise. 3088 (vrld): Likewise. 3089 (vsld): Likewise. 3090 (vsrad): Likewise. 3091 (vsrd): Likewise. 3092 (vsubudm): Likewise. 3093 3094 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add 3095 support for power8 V2DI instructions. 3096 3097 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for 3098 power8 V2DI instructions. Combine pack and unpack insns to use an 3099 iterator for each mode. Check whether a particular mode supports 3100 Altivec instructions instead of just checking TARGET_ALTIVEC. 3101 (UNSPEC_VPKUWUM): Likewise. 3102 (UNSPEC_VPKSHSS): Likewise. 3103 (UNSPEC_VPKSWSS): Likewise. 3104 (UNSPEC_VPKUHUS): Likewise. 3105 (UNSPEC_VPKSHUS): Likewise. 3106 (UNSPEC_VPKUWUS): Likewise. 3107 (UNSPEC_VPKSWUS): Likewise. 3108 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise. 3109 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise. 3110 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise. 3111 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise. 3112 (UNSPEC_VUPKHSB): Likewise. 3113 (UNSPEC_VUNPACK_HI_SIGN): Likewise. 3114 (UNSPEC_VUNPACK_LO_SIGN): Likewise. 3115 (UNSPEC_VUPKHSH): Likewise. 3116 (UNSPEC_VUPKLSB): Likewise. 3117 (UNSPEC_VUPKLSH): Likewise. 3118 (VI2): Likewise. 3119 (VI_char): Likewise. 3120 (VI_scalar): Likewise. 3121 (VI_unit): Likewise. 3122 (VP): Likewise. 3123 (VP_small): Likewise. 3124 (VP_small_lc): Likewise. 3125 (VU_char): Likewise. 3126 (add<mode>3): Likewise. 3127 (altivec_vaddcuw): Likewise. 3128 (altivec_vaddu<VI_char>s): Likewise. 3129 (altivec_vadds<VI_char>s): Likewise. 3130 (sub<mode>3): Likewise. 3131 (altivec_vsubcuw): Likewise. 3132 (altivec_vsubu<VI_char>s): Likewise. 3133 (altivec_vsubs<VI_char>s): Likewise. 3134 (altivec_vavgs<VI_char>): Likewise. 3135 (altivec_vcmpbfp): Likewise. 3136 (altivec_eq<mode>): Likewise. 3137 (altivec_gt<mode>): Likewise. 3138 (altivec_gtu<mode>): Likewise. 3139 (umax<mode>3): Likewise. 3140 (smax<mode>3): Likewise. 3141 (umin<mode>3): Likewise. 3142 (smin<mode>3): Likewise. 3143 (altivec_vpkuhum): Likewise. 3144 (altivec_vpkuwum): Likewise. 3145 (altivec_vpkshss): Likewise. 3146 (altivec_vpkswss): Likewise. 3147 (altivec_vpkuhus): Likewise. 3148 (altivec_vpkshus): Likewise. 3149 (altivec_vpkuwus): Likewise. 3150 (altivec_vpkswus): Likewise. 3151 (altivec_vpks<VI_char>ss): Likewise. 3152 (altivec_vpks<VI_char>us): Likewise. 3153 (altivec_vpku<VI_char>us): Likewise. 3154 (altivec_vpku<VI_char>um): Likewise. 3155 (altivec_vrl<VI_char>): Likewise. 3156 (altivec_vsl<VI_char>): Likewise. 3157 (altivec_vsr<VI_char>): Likewise. 3158 (altivec_vsra<VI_char>): Likewise. 3159 (altivec_vsldoi_<mode>): Likewise. 3160 (altivec_vupkhsb): Likewise. 3161 (altivec_vupkhs<VU_char>): Likewise. 3162 (altivec_vupkls<VU_char>): Likewise. 3163 (altivec_vupkhsh): Likewise. 3164 (altivec_vupklsb): Likewise. 3165 (altivec_vupklsh): Likewise. 3166 (altivec_vcmpequ<VI_char>_p): Likewise. 3167 (altivec_vcmpgts<VI_char>_p): Likewise. 3168 (altivec_vcmpgtu<VI_char>_p): Likewise. 3169 (abs<mode>2): Likewise. 3170 (vec_unpacks_hi_v16qi): Likewise. 3171 (vec_unpacks_hi_v8hi): Likewise. 3172 (vec_unpacks_lo_v16qi): Likewise. 3173 (vec_unpacks_hi_<VP_small_lc>): Likewise. 3174 (vec_unpacks_lo_v8hi): Likewise. 3175 (vec_unpacks_lo_<VP_small_lc>): Likewise. 3176 (vec_pack_trunc_v8h): Likewise. 3177 (vec_pack_trunc_v4si): Likewise. 3178 (vec_pack_trunc_<mode>): Likewise. 3179 3180 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8 3181 V2DI builtins. 3182 (vec_vmaxsd): Likewise. 3183 (vec_vmaxud): Likewise. 3184 (vec_vminsd): Likewise. 3185 (vec_vminud): Likewise. 3186 (vec_vpksdss): Likewise. 3187 (vec_vpksdus): Likewise. 3188 (vec_vpkudum): Likewise. 3189 (vec_vpkudus): Likewise. 3190 (vec_vrld): Likewise. 3191 (vec_vsld): Likewise. 3192 (vec_vsrad): Likewise. 3193 (vec_vsrd): Likewise. 3194 (vec_vsubudm): Likewise. 3195 (vec_vupkhsw): Likewise. 3196 (vec_vupklsw): Likewise. 3197 3198 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com> 3199 Pat Haugen <pthaugen@us.ibm.com> 3200 Peter Bergner <bergner@vnet.ibm.com> 3201 3202 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add 3203 documentation for the power8 crypto builtins. 3204 3205 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md. 3206 3207 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support 3208 macros for defining power8 builtin functions. 3209 (BU_P8V_AV_2): Likewise. 3210 (BU_P8V_AV_P): Likewise. 3211 (BU_P8V_VSX_1): Likewise. 3212 (BU_P8V_OVERLOAD_1): Likewise. 3213 (BU_P8V_OVERLOAD_2): Likewise. 3214 (BU_CRYPTO_1): Likewise. 3215 (BU_CRYPTO_2): Likewise. 3216 (BU_CRYPTO_3): Likewise. 3217 (BU_CRYPTO_OVERLOAD_1): Likewise. 3218 (BU_CRYPTO_OVERLOAD_2): Likewise. 3219 (XSCVSPDP): Fix typo, point to the correct instruction. 3220 (VCIPHER): Add power8 crypto builtins. 3221 (VCIPHERLAST): Likewise. 3222 (VNCIPHER): Likewise. 3223 (VNCIPHERLAST): Likewise. 3224 (VPMSUMB): Likewise. 3225 (VPMSUMH): Likewise. 3226 (VPMSUMW): Likewise. 3227 (VPERMXOR_V2DI): Likewise. 3228 (VPERMXOR_V4SI: Likewise. 3229 (VPERMXOR_V8HI: Likewise. 3230 (VPERMXOR_V16QI: Likewise. 3231 (VSHASIGMAW): Likewise. 3232 (VSHASIGMAD): Likewise. 3233 (VPMSUM): Likewise. 3234 (VPERMXOR): Likewise. 3235 (VSHASIGMA): Likewise. 3236 3237 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define 3238 __CRYPTO__ if the crypto instructions are available. 3239 (altivec_overloaded_builtins): Add support for overloaded power8 3240 builtins. 3241 3242 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add 3243 support for power8 crypto builtins. 3244 (builtin_function_type): Likewise. 3245 (altivec_init_builtins): Add support for builtins that take vector 3246 long long (V2DI) arguments. 3247 3248 * config/rs6000/crypto.md: New file, define power8 crypto 3249 instructions. 3250 3251 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com> 3252 Pat Haugen <pthaugen@us.ibm.com> 3253 Peter Bergner <bergner@vnet.ibm.com> 3254 3255 * doc/invoke.texi (Option Summary): Add power8 options. 3256 (RS/6000 and PowerPC Options): Likewise. 3257 3258 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use 3259 constraints.md instead of rs6000.h. Reorder w* constraints. Add 3260 wm, wn, wr documentation. 3261 3262 * gcc/config/rs6000/constraints.md (wm): New constraint for VSX 3263 registers if direct move instructions are enabled. 3264 (wn): New constraint for no registers. 3265 (wq): New constraint for quad word even GPR registers. 3266 (wr): New constraint if 64-bit instructions are enabled. 3267 (wv): New constraint if power8 vector instructions are enabled. 3268 (wQ): New constraint for quad word memory locations. 3269 3270 * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New 3271 constraint for 0..15 for crypto instructions. 3272 (gpc_reg_operand): If VSX allow registers in VSX registers as well 3273 as GPR and floating point registers. 3274 (int_reg_operand): New predicate to match only GPR registers. 3275 (base_reg_operand): New predicate to match base registers. 3276 (quad_int_reg_operand): New predicate to match even GPR registers 3277 for quad memory operations. 3278 (vsx_reg_or_cint_operand): New predicate to allow vector logical 3279 operations in both GPR and VSX registers. 3280 (quad_memory_operand): New predicate for quad memory operations. 3281 (reg_or_indexed_operand): New predicate for direct move support. 3282 3283 * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): 3284 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS. 3285 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8). 3286 (POWERPC_MASKS): Add power8 options. 3287 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the 3288 various options. 3289 3290 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros): 3291 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8. 3292 3293 * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation. 3294 (-mpower8-fusion): New power8 options. 3295 (-mpower8-fusion-sign): Likewise. 3296 (-mpower8-vector): Likewise. 3297 (-mcrypto): Likewise. 3298 (-mdirect-move): Likewise. 3299 (-mquad-memory): Likewise. 3300 3301 * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for 3302 power8. 3303 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR 3304 registers. 3305 (rs6000_debug_reg_print): Print the base register class if 3306 -mdebug=reg. 3307 (rs6000_debug_vector_unit): Add p8_vector. 3308 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint 3309 definitions. Also print fusion state. 3310 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints. 3311 (rs6000_builtin_mask_calculate): Add power8 builtin support. 3312 (rs6000_option_override_internal): Add support for power8. 3313 (rs6000_common_init_builtins): Add debugging for skipped builtins 3314 if -mdebug=builtin. 3315 (rs6000_adjust_cost): Add power8 support. 3316 (rs6000_issue_rate): Likewise. 3317 (insn_must_be_first_in_group): Likewise. 3318 (insn_must_be_last_in_group): Likewise. 3319 (force_new_group): Likewise. 3320 (rs6000_register_move_cost): Likewise. 3321 (rs6000_opt_masks): Likewise. 3322 3323 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a 3324 power8 capable assembler, default to power7 options. 3325 (TARGET_DIRECT_MOVE): Likewise. 3326 (TARGET_CRYPTO): Likewise. 3327 (TARGET_P8_VECTOR): Likewise. 3328 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support. 3329 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise. 3330 (VECTOR_MEM_P8_VECTOR_P): Likewise. 3331 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise. 3332 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise. 3333 (TARGET_XSCVDPSPN): Likewise. 3334 (TARGET_XSCVSPDPN): Likewsie. 3335 (TARGET_SYNC_HI_QI): Likewise. 3336 (TARGET_SYNC_TI): Likewise. 3337 (MASK_CRYPTO): Likewise. 3338 (MASK_DIRECT_MOVE): Likewise. 3339 (MASK_P8_FUSION): Likewise. 3340 (MASK_P8_VECTOR): Likewise. 3341 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the 3342 TFmode temporary used by some of the direct move instructions to 3343 get two FP temporary registers does not force creation of a stack 3344 frame. 3345 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs. 3346 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so 3347 that any VSX registers are tieable, even if they are also an 3348 Altivec vector mode. 3349 (r6000_reg_class_enum): Add wm, wr, wv constraints. 3350 (RS6000_BTM_P8_VECTOR): Power8 builtin support. 3351 (RS6000_BTM_CRYPTO): Likewise. 3352 (RS6000_BTM_COMMON): Likewise. 3353 3354 * config/rs6000/rs6000.md (cpu attribute): Add power8. 3355 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise. 3356 (enum rs6000_vector): Add power8 vector support. 3357 3358 3359 Backport from mainline 3360 2013-03-20 Pat Haugen <pthaugen@us.ibm.com> 3361 3362 * config/rs6000/predicates.md (indexed_address, update_address_mem 3363 update_indexed_address_mem): New predicates. 3364 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type" 3365 attribute for load/store instructions. 3366 * config/rs6000/dfp.md (movsd_store): Likewise. 3367 (movsd_load): Likewise. 3368 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise. 3369 (unnamed HI->DI extend define_insn): Likewise. 3370 (unnamed SI->DI extend define_insn): Likewise. 3371 (unnamed QI->SI extend define_insn): Likewise. 3372 (unnamed QI->HI extend define_insn): Likewise. 3373 (unnamed HI->SI extend define_insn): Likewise. 3374 (unnamed HI->SI extend define_insn): Likewise. 3375 (extendsfdf2_fpr): Likewise. 3376 (movsi_internal1): Likewise. 3377 (movsi_internal1_single): Likewise. 3378 (movhi_internal): Likewise. 3379 (movqi_internal): Likewise. 3380 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type" 3381 attribute for load/store instructions. 3382 (mov<mode>_hardfloat): Set correct "type" attribute for load/store 3383 instructions. 3384 (mov<mode>_softfloat): Likewise. 3385 (mov<mode>_hardfloat32): Likewise. 3386 (mov<mode>_hardfloat64): Likewise. 3387 (mov<mode>_softfloat64): Likewise. 3388 (movdi_internal32): Likewise. 3389 (movdi_internal64): Likewise. 3390 (probe_stack_<mode>): Likewise. 3391 3392 Backport from mainline 3393 2013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com> 3394 3395 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary 3396 floating point, and decimal floating point to reload iterator. 3397 3398 * config/rs6000/constraints.md (wl constraint): New constraints to 3399 return FLOAT_REGS if certain options are used to reduce the number 3400 of separate patterns that exist in the file. 3401 (wx constraint): Likewise. 3402 (wz constraint): Likewise. 3403 3404 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If 3405 -mdebug=reg, print wg, wl, wx, and wz constraints. 3406 (rs6000_init_hard_regno_mode_ok): Initialize new constraints. 3407 Initialize the reload functions for 64-bit binary/decimal floating 3408 point types. 3409 (reg_offset_addressing_ok_p): If we are on a power7 or later, use 3410 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't 3411 create the buffer on the stack to overcome not having a 32-bit 3412 load and store. 3413 (rs6000_emit_move): Likewise. 3414 (rs6000_secondary_memory_needed_rtx): Likewise. 3415 (rs6000_alloc_sdmode_stack_slot): Likewise. 3416 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f 3417 via xxlxor, just like DFmode 0.0. 3418 3419 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro) 3420 (define as 1 if we are running on a power7 or newer. 3421 (enum r6000_reg_class_enum): Add new constraints. 3422 3423 * config/rs6000/dfp.md (movsd): Delete, combine with binary 3424 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves 3425 with other moves by using conditional constraits (wg). Use LFIWZX 3426 and STFIWX for loading SDmode on power7. Use xxlxor to create 3427 0.0f. 3428 (movsd splitter): Likewise. 3429 (movsd_hardfloat): Likewise. 3430 (movsd_softfloat): Likewise. 3431 3432 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine 3433 binary and decimal floating point moves. 3434 (fmove_ok): New attributes to combine binary and decimal floating 3435 point moves, and to combine power6x (mfpgpr) moves along normal 3436 floating moves. 3437 (real_value_to_target): Likewise. 3438 (f32_lr): Likewise. 3439 (f32_lm): Likewise. 3440 (f32_li): Likewise. 3441 (f32_sr): Likewise. 3442 (f32_sm): Likewise. 3443 (f32_si): Likewise. 3444 (movsf): Combine binary and decimal floating point moves. Combine 3445 power6x (mfpgpr) moves with other moves by using conditional 3446 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on 3447 power7. 3448 (mov<mode> for SFmode/SDmode); Likewise. 3449 (SFmode/SDmode splitters): Likewise. 3450 (movsf_hardfloat): Likewise. 3451 (mov<mode>_hardfloat for SFmode/SDmode): Likewise. 3452 (movsf_softfloat): Likewise. 3453 (mov<mode>_softfloat for SFmode/SDmode): Likewise. 3454 3455 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl) 3456 (wx and wz constraints. 3457 3458 * config/rs6000/constraints.md (wg constraint): New constraint to 3459 return FLOAT_REGS if -mmfpgpr (power6x) was used. 3460 3461 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg 3462 constraint. 3463 3464 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If 3465 -mdebug=reg, print wg, wl, wx, and wz constraints. 3466 (rs6000_init_hard_regno_mode_ok): Initialize new constraints. 3467 Initialize the reload functions for 64-bit binary/decimal floating 3468 point types. 3469 (reg_offset_addressing_ok_p): If we are on a power7 or later, use 3470 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't 3471 create the buffer on the stack to overcome not having a 32-bit 3472 load and store. 3473 (rs6000_emit_move): Likewise. 3474 (rs6000_secondary_memory_needed_rtx): Likewise. 3475 (rs6000_alloc_sdmode_stack_slot): Likewise. 3476 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f 3477 via xxlxor, just like DFmode 0.0. 3478 3479 3480 * config/rs6000/dfp.md (movdd): Delete, combine with binary 3481 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves 3482 with other moves by using conditional constraits (wg). Use LFIWZX 3483 and STFIWX for loading SDmode on power7. 3484 (movdd splitters): Likewise. 3485 (movdd_hardfloat32): Likewise. 3486 (movdd_softfloat32): Likewise. 3487 (movdd_hardfloat64_mfpgpr): Likewise. 3488 (movdd_hardfloat64): Likewise. 3489 (movdd_softfloat64): Likewise. 3490 3491 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine 3492 64-bit binary and decimal floating point moves. 3493 (FMOVE64X): Likewise. 3494 (movdf): Combine 64-bit binary and decimal floating point moves. 3495 Combine power6x (mfpgpr) moves with other moves by using 3496 conditional constraits (wg). 3497 (mov<mode> for DFmode/DDmode): Likewise. 3498 (DFmode/DDmode splitters): Likewise. 3499 (movdf_hardfloat32): Likewise. 3500 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise. 3501 (movdf_softfloat32): Likewise. 3502 (movdf_hardfloat64_mfpgpr): Likewise. 3503 (movdf_hardfloat64): Likewise. 3504 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise. 3505 (movdf_softfloat64): Likewise. 3506 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise. 3507 (reload_<mode>_load): Move to later in the file so they aren't in 3508 the middle of the floating point move insns. 3509 (reload_<mode>_store): Likewise. 3510 3511 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg 3512 constraint. 3513 3514 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg 3515 constraint if -mdebug=reg. 3516 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if 3517 -mfpgpr. Enable using dd reload support if needed. 3518 3519 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit 3520 binary and decimal floating point moves in rs6000.md. 3521 (movtd_internal): Likewise. 3522 3523 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and 3524 decimal floating point moves. 3525 (movtf): Likewise. 3526 (movtf_internal): Likewise. 3527 (mov<mode>_internal, TDmode/TFmode): Likewise. 3528 (movtf_softfloat): Likewise. 3529 (mov<mode>_softfloat, TDmode/TFmode): Likewise. 3530 3531 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with 3532 movdi_internal64, using wg constraint for move direct operations. 3533 (movdi_internal64): Likewise. 3534 3535 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print 3536 MODES_TIEABLE_P for selected modes. Print the numerical value of 3537 the various virtual registers. Use GPR/FPR first/last values) 3538 (instead of hard coding the register numbers. Print which modes 3539 have reload functions registered. 3540 (rs6000_option_override_internal): If -mdebug=reg, trace the 3541 options settings before/after setting cpu, target and subtarget 3542 settings. 3543 (rs6000_secondary_reload_trace): Improve the RTL dump for 3544 -mdebug=addr and for secondary reload failures in 3545 rs6000_secondary_reload_inner. 3546 (rs6000_secondary_reload_fail): Likewise. 3547 (rs6000_secondary_reload_inner): Likewise. 3548 3549 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience 3550 macros for first/last GPR and FPR registers. 3551 (LAST_GPR_REGNO): Likewise. 3552 (FIRST_FPR_REGNO): Likewise. 3553 (LAST_FPR_REGNO): Likewise. 3554 3555 * config/rs6000/vector.md (mul<mode>3): Use the combined macro 3556 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to 3557 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P. 3558 (vcond<mode><mode>): Likewise. 3559 (vcondu<mode><mode>): Likewise. 3560 (vector_gtu<mode>): Likewise. 3561 (vector_gte<mode>): Likewise. 3562 (xor<mode>3): Don't allow logical operations on TImode in 32-bit 3563 to prevent the compiler from converting DImode operations to 3564 TImode. 3565 (ior<mode>3): Likewise. 3566 (and<mode>3): Likewise. 3567 (one_cmpl<mode>2): Likewise. 3568 (nor<mode>3): Likewise. 3569 (andc<mode>3): Likewise. 3570 3571 * config/rs6000/constraints.md (wt constraint): New constraint 3572 that returns VSX_REGS if TImode is allowed in VSX registers. 3573 3574 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy 3575 constant under VSX. 3576 3577 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is 3578 similar to TImode, but it is restricted to being in the GPRs. 3579 3580 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow 3581 TImode to occupy a single VSX register. 3582 3583 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to 3584 -mvsx-timode for power7/power8. 3585 (power7 cpu): Likewise. 3586 (power8 cpu): Likewise. 3587 3588 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make 3589 sure that TFmode/TDmode take up two registers if they are ever 3590 allowed in the upper VSX registers. 3591 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX 3592 registers. 3593 (rs6000_init_hard_regno_mode_ok): Likewise. 3594 (rs6000_debug_reg_global): Add debugging for PTImode and wt 3595 constraint. Print if LRA is turned on. 3596 (rs6000_option_override_internal): Give an error if -mvsx-timode 3597 and VSX is not enabled. 3598 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If 3599 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode 3600 to reg+offset addressing. Use PTImode when checking offset 3601 addresses for validity. 3602 (reg_offset_addressing_ok_p): Likewise. 3603 (rs6000_legitimate_offset_address_p): Likewise. 3604 (rs6000_legitimize_address): Likewise. 3605 (rs6000_legitimize_reload_address): Likewise. 3606 (rs6000_legitimate_address_p): Likewise. 3607 (rs6000_eliminate_indexed_memrefs): Likewise. 3608 (rs6000_emit_move): Likewise. 3609 (rs6000_secondary_reload): Likewise. 3610 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit 3611 reloads to fpr registers to continue to use reg+offset addressing) 3612 (but 64-bit reloads to altivec registers need reg+reg addressing. 3613 Drop test for PRE_MODIFY, since VSX loads/stores no longer support 3614 it. Treat LO_SUM like a PLUS operation. 3615 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use 3616 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset 3617 addressing. 3618 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX 3619 registers to share a register with a smaller sized type, since VSX 3620 puts scalars in the upper 64-bits. 3621 (print_operand): Add support for PTImode. 3622 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of 3623 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX 3624 registers, but don't have arithmetic support. 3625 (rs6000_memory_move_cost): Add test for VSX. 3626 (rs6000_opt_masks): Add -mvsx-timode. 3627 3628 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves 3629 for TImode. 3630 (VSs): Likewise. 3631 (VSr): Use wt constraint for TImode. 3632 (VSv): Drop TImode support. 3633 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit. 3634 (vsx_movti_64bit): Likewise. 3635 (vsx_movti_32bit): Likewise. 3636 (vec_store_<mode>): Use VSX iterator instead of vector iterator. 3637 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put 3638 one '?' on the appropriate output constraint. Do not allow TImode 3639 logical operations on 32-bit systems. 3640 (vsx_ior<mode>3): Likewise. 3641 (vsx_xor<mode>3): Likewise. 3642 (vsx_one_cmpl<mode>2): Likewise. 3643 (vsx_nor<mode>3): Likewise. 3644 (vsx_andc<mode>3): Likewise. 3645 (vsx_concat_<mode>): Likewise. 3646 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes. 3647 3648 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from 3649 OPTION_MASK_VSX_TIMODE. 3650 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt. 3651 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode. 3652 3653 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode. 3654 (TI2 iterator): New iterator for TImode, PTImode. 3655 (wd mode attribute): Add values for vector types. 3656 (movti_string): Replace TI move operations with operations for 3657 TImode and PTImode. Add support for TImode being allowed in VSX 3658 registers. 3659 (mov<mode>_string, TImode/PTImode): Likewise. 3660 (movti_ppc64): Likewise. 3661 (mov<mode>_ppc64, TImode/PTImode): Likewise. 3662 (TI mode splitters): Likewise. 3663 3664 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt 3665 constraint. 3666 36672014-04-04 Richard Biener <rguenther@suse.de> 3668 3669 * tree-ssanames.c (make_ssa_name_fn): Fix assert. 3670 36712014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 3672 3673 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE. 3674 36752014-04-01 Richard Biener <rguenther@suse.de> 3676 3677 * gimple.h (struct gimple_statement_base): Align subcode to 3678 16 bits. 3679 36802014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de> 3681 3682 * doc/invoke.texi (mapp-regs): Clarify. 3683 36842014-03-31 H.J. Lu <hongjiu.lu@intel.com> 3685 3686 PR rtl-optimization/60700 3687 Backport from mainline 3688 2013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org> 3689 3690 PR rtl-optimization/57637 3691 * function.c (move_insn_for_shrink_wrap): Also check the 3692 GEN set of the LIVE problem for the liveness analysis 3693 if it exists, otherwise give up. 3694 36952014-03-30 Kaz Kojima <kkojima@gcc.gnu.org> 3696 3697 Backport from mainline 3698 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org> 3699 3700 PR target/60039 3701 * config/sh/sh.md (udivsi3_i1): Clobber R1 register. 3702 37032014-03-26 Martin Jambor <mjambor@suse.cz> 3704 3705 PR ipa/60419 3706 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk and 3707 alias flags of nodes in the border. 3708 37092014-03-26 Eric Botcazou <ebotcazou@adacore.com> 3710 3711 PR rtl-optimization/60452 3712 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment. 3713 <case REG>: Return 1 for invalid offsets from the frame pointer. 3714 37152014-03-24 Richard Biener <rguenther@suse.de> 3716 3717 PR tree-optimization/60429 3718 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Remove 3719 duplicated line. 3720 37212014-03-23 Eric Botcazou <ebotcazou@adacore.com> 3722 3723 PR rtl-optimization/60601 3724 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere. 3725 3726 * gcc.c (eval_spec_function): Initialize save_growing_value. 3727 37282014-03-20 Jakub Jelinek <jakub@redhat.com> 3729 3730 PR target/60568 3731 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT 3732 into CONST, put pic register as first operand of PLUS. Use 3733 gen_const_mem for both 32-bit and 64-bit PIC got loads. 3734 37352014-03-20 Eric Botcazou <ebotcazou@adacore.com> 3736 3737 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work 3738 around for store forwarding issue in the FPU on the UT699. 3739 * config/sparc/sparc.md (in_branch_delay): Return false for single FP 3740 loads and operations if -mfix-ut699 is specified. 3741 (divtf3_hq): Tweak attribute. 3742 (sqrttf2_hq): Likewise. 3743 37442014-03-18 Kai Tietz <ktietz@redhat.com> 3745 3746 PR rtl-optimization/56356 3747 * sdbout.c (sdbout_parms): Verify that parms' 3748 incoming argument is valid. 3749 (sdbout_reg_parms): Likewise. 3750 37512014-03-18 Eric Botcazou <ebotcazou@adacore.com> 3752 3753 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use 3754 proper constant for the store mode. 3755 37562014-03-17 Mikael Pettersson <mikpelinux@gmail.com> 3757 Committed by Bill Schmidt <wschmidt@linux.vnet.ibm.com> 3758 3759 Backport from mainline: 3760 3761 2013-06-20 Joern Rennecke <joern.rennecke@embecosm.com> 3762 3763 PR rtl-optimization/57425 3764 PR rtl-optimization/57569 3765 * alias.c (write_dependence_p): Remove parameters mem_mode and 3766 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized. 3767 Changed all callers. 3768 (canon_anti_dependence): Get comments and semantics in sync. 3769 Add parameter mem_canonicalized. Changed all callers. 3770 * rtl.h (canon_anti_dependence): Update prototype. 3771 3772 2013-06-16 Joern Rennecke <joern.rennecke@embecosm.com> 3773 3774 PR rtl-optimization/57425 3775 PR rtl-optimization/57569 3776 * alias.c (write_dependence_p): Add new parameters mem_mode, 3777 canon_mem_addr and mem_canonicalized. Change type of writep to bool. 3778 Changed all callers. 3779 (canon_anti_dependence): New function. 3780 * cse.c (check_dependence): Use canon_anti_dependence. 3781 * cselib.c (cselib_invalidate_mem): Likewise. 3782 * rtl.h (canon_anti_dependence): Declare. 3783 37842014-03-17 Richard Biener <rguenther@suse.de> 3785 3786 Backport from mainline 3787 2014-03-11 Richard Biener <rguenther@suse.de> 3788 3789 PR tree-optimization/60429 3790 PR tree-optimization/60485 3791 * tree-ssa-structalias.c (set_union_with_increment): Properly 3792 take into account all fields that overlap the shifted vars. 3793 (do_sd_constraint): Likewise. 3794 (do_ds_constraint): Likewise. 3795 (get_constraint_for_ptr_offset): Likewise. 3796 37972014-03-15 Eric Botcazou <ebotcazou@adacore.com> 3798 3799 * config/sparc/sparc-protos.h (tls_call_delay): Delete. 3800 (eligible_for_call_delay): New prototype. 3801 * config/sparc/sparc.c (tls_call_delay): Rename into... 3802 (eligible_for_call_delay): ...this. Return false if the instruction 3803 cannot be put in the delay slot of a branch. 3804 (eligible_for_restore_insn): Simplify. 3805 (eligible_for_return_delay): Return false if the instruction cannot be 3806 put in the delay slot of a branch and simplify. 3807 (eligible_for_sibcall_delay): Return false if the instruction cannot be 3808 put in the delay slot of a branch. 3809 * config/sparc/sparc.md (fix_ut699): New attribute. 3810 (tls_call_delay): Delete. 3811 (in_call_delay): Reimplement. 3812 (eligible_for_sibcall_delay): Rename into... 3813 (in_sibcall_delay): ...this. 3814 (eligible_for_return_delay): Rename into... 3815 (in_return_delay): ...this. 3816 (in_branch_delay): Reimplement. 3817 (in_uncond_branch_delay): Delete. 3818 (in_annul_branch_delay): Delete. 3819 38202014-03-14 Georg-Johann Lay <avr@gjlay.de> 3821 3822 Backport from 2014-03-14 trunk r208562. 3823 3824 PR target/59396 3825 * config/avr/avr.c (avr_set_current_function): Pass function name 3826 through default_strip_name_encoding before sanity checking instead 3827 of skipping the first char of the assembler name. 3828 38292014-03-13 Georg-Johann Lay <avr@gjlay.de> 3830 3831 Backport from 2014-03-13 trunk r208532. 3832 3833 PR target/60486 3834 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in 3835 calls of avr_out_plus_1. 3836 38372014-03-13 Joey Ye <joey.ye@arm.com> 3838 3839 Backport from mainline 3840 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com> 3841 3842 PR tree-optimization/60454 3843 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection. 3844 38452014-03-06 Matthias Klose <doko@ubuntu.com> 3846 3847 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if 3848 MULTILIB_OSDIRNAMES is not defined. 3849 38502014-03-06 Jakub Jelinek <jakub@redhat.com> 3851 3852 PR tree-optimization/60276 3853 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Avoid 3854 a -Wsign-compare warning. 3855 3856 * Makefile.in (tree-ssa-uninit.o): Depend on $(PARAMS_H). 3857 3858 Backport from mainline 3859 2014-02-21 Jakub Jelinek <jakub@redhat.com> 3860 3861 PR tree-optimization/56490 3862 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param. 3863 * tree-ssa-uninit.c: Include params.h. 3864 (compute_control_dep_chain): Add num_calls argument, return false 3865 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass 3866 num_calls to recursive call. 3867 (find_predicates): Change dep_chain into normal array, add num_calls 3868 variable and adjust compute_control_dep_chain caller. 3869 (find_def_preds): Likewise. 3870 3871 2014-02-13 Jakub Jelinek <jakub@redhat.com> 3872 3873 PR target/43546 3874 * expr.c (compress_float_constant): If x is a hard register, 3875 extend into a pseudo and then move to x. 3876 3877 2014-02-11 Richard Henderson <rth@redhat.com> 3878 Jakub Jelinek <jakub@redhat.com> 3879 3880 PR debug/59776 3881 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR 3882 around drhs if type conversion to lacc->type is not useless. 3883 3884 2014-02-08 Jakub Jelinek <jakub@redhat.com> 3885 3886 PR ipa/60026 3887 * ipa-cp.c (determine_versionability): Fail at -O0 3888 or __attribute__((optimize (0))) or -fno-ipa-cp functions. 3889 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly. 3890 3891 2014-02-06 Jakub Jelinek <jakub@redhat.com> 3892 3893 PR target/60062 3894 * tree.h (opts_for_fn): New inline function. 3895 (opt_for_fn): Define. 3896 * config/i386/i386.c (ix86_function_regparm): Use 3897 opt_for_fn (decl, optimize) instead of optimize. 3898 3899 2014-02-05 Jakub Jelinek <jakub@redhat.com> 3900 3901 PR middle-end/57499 3902 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty 3903 bb with no successors. 3904 39052014-03-04 Richard Biener <rguenther@suse.de> 3906 3907 PR tree-optimization/60382 3908 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider 3909 dead PHIs a reduction. 3910 39112014-02-25 Richard Biener <rguenther@suse.de> 3912 3913 Backport from mainline 3914 2014-02-21 Richard Biener <rguenther@suse.de> 3915 3916 PR tree-optimization/60276 3917 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field. 3918 (STMT_VINFO_MIN_NEG_DIST): New macro. 3919 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record 3920 STMT_VINFO_MIN_NEG_DIST. 3921 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions 3922 made for negative dependence distances still hold. 3923 39242014-02-25 Richard Biener <rguenther@suse.de> 3925 3926 Backport from mainline 3927 2014-02-21 Richard Biener <rguenther@suse.de> 3928 3929 PR middle-end/60291 3930 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk 3931 DECL_INITIAL for globals not in the current function context. 3932 3933 2014-02-20 Richard Biener <rguenther@suse.de> 3934 3935 PR middle-end/60221 3936 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH 3937 regions at -O0. 3938 3939 2014-02-14 Richard Biener <rguenther@suse.de> 3940 3941 PR tree-optimization/60183 3942 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating 3943 loads. 3944 (tree_ssa_phiprop): Calculate and free post-dominators. 3945 39462014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 3947 3948 PR target/55426 3949 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit 3950 conversions. 3951 39522014-02-24 John David Anglin <danglin@gcc.gnu.org> 3953 3954 * config/pa/pa.c (pa_output_move_double): Don't valididate when 3955 adjusting offsetable addresses. 3956 39572014-02-23 David Holsgrove <david.holsgrove@xilinx.com> 3958 3959 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg names 3960 39612014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com> 3962 3963 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED 3964 definition. 3965 39662014-02-23 David Holsgrove <david.holsgrove@xilinx.com> 3967 3968 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk 3969 and define TARGET_ASM_OUTPUT_MI_THUNK and 3970 TARGET_ASM_CAN_OUTPUT_MI_THUNK. 3971 39722014-02-23 David Holsgrove <david.holsgrove@xilinx.com> 3973 3974 * config/microblaze/predicates.md: Add cmp_op predicate. 3975 * config/microblaze/microblaze.md: Add branch_compare instruction 3976 which uses cmp_op predicate and emits cmp insn before branch. 3977 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename 3978 to microblaze_expand_conditional_branch and consolidate logic. 3979 (microblaze_expand_conditional_branch): emit branch_compare 3980 insn instead of handling cmp op separate from branch insn. 3981 39822014-02-21 Martin Jambor <mjambor@suse.cz> 3983 3984 PR ipa/55260 3985 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct 3986 info when checking whether lattices are bottom. 3987 39882014-02-21 Jakub Jelinek <jakub@redhat.com> 3989 3990 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode 3991 mode for mask of V8SFmode permutation. 3992 39932014-02-20 Richard Henderson <rth@redhat.com> 3994 3995 PR c++/60272 3996 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize 3997 on failure the store back into EXPECT. Always make a new pseudo for 3998 OLDVAL. 3999 40002014-02-20 Jakub Jelinek <jakub@redhat.com> 4001 4002 PR target/57896 4003 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call 4004 gen_reg_rtx if d->testing_p. 4005 (expand_vec_perm_pshufb2, expand_vec_perm_even_odd_1, 4006 expand_vec_perm_broadcast_1): Return early if d->testing_p and 4007 we will certainly return true. 4008 40092014-02-20 Richard Biener <rguenther@suse.de> 4010 4011 * tree-cfg.c (replace_uses_by): Mark altered BBs before 4012 doing the substitution. 4013 40142014-02-19 H.J. Lu <hongjiu.lu@intel.com> 4015 4016 Backport from mainline 4017 2014-02-19 H.J. Lu <hongjiu.lu@intel.com> 4018 4019 PR target/60207 4020 * config/i386/i386.c (construct_container): Remove TFmode check 4021 for X86_64_INTEGER_CLASS. 4022 40232014-02-19 Uros Bizjak <ubizjak@gmail.com> 4024 4025 Backport from mainline 4026 2014-02-19 Uros Bizjak <ubizjak@gmail.com> 4027 4028 PR target/59794 4029 * config/i386/i386.c (type_natural_mode): Warn for ABI changes 4030 only when -Wpsabi is enabled. 4031 40322014-02-19 Terry Guo <terry.guo@arm.com> 4033 4034 Backport from mainline 4035 2014-02-08 Terry Guo <terry.guo@arm.com> 4036 4037 * doc/invoke.texi: Document ARM -march=armv7e-m. 4038 40392014-02-18 Kai Tietz <ktietz@redhat.com> 4040 4041 Backport from mainline 4042 2014-02-18 Kai Tietz <ktietz@redhat.com> 4043 4044 PR target/60193 4045 * config/i386/i386.c (ix86_expand_prologue): Use 4046 rax register as displacement for restoring %r10, %rax. 4047 Additional fix wrong offset for restoring both-registers. 4048 40492014-02-18 Eric Botcazou <ebotcazou@adacore.com> 4050 4051 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous 4052 assertion with conditional return. 4053 40542014-02-18 Jakub Jelinek <jakub@redhat.com> 4055 Uros Bizjak <ubizjak@gmail.com> 4056 4057 PR driver/60233 4058 * config/i386/driver-i386.c (host_detect_local_cpu): If 4059 YMM state is not saved by the OS, also clear has_f16c. Move 4060 CPUID 0x80000001 handling before YMM state saving checking. 4061 40622014-02-14 Roland McGrath <mcgrathr@google.com> 4063 4064 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic. 4065 * configure: Regenerated. 4066 * config.in: Regenerated. 4067 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic 4068 instead of ASM_SHORT. 4069 40702014-02-13 Uros Bizjak <ubizjak@gmail.com> 4071 4072 Backport from mainline 4073 2014-02-13 Uros Bizjak <ubizjak@gmail.com> 4074 4075 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in 4076 operands[2], not operands[3]. 4077 40782014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com> 4079 4080 * config/s390/s390.c (s390_asm_output_function_label): Fix crash 4081 caused by bad second argument to warning_at() with -mhotpatch and 4082 nested functions (e.g. with gfortran). 4083 40842014-02-12 H.J. Lu <hongjiu.lu@intel.com> 4085 4086 Backport from mainline 4087 2014-02-12 H.J. Lu <hongjiu.lu@intel.com> 4088 Uros Bizjak <ubizjak@gmail.com> 4089 4090 PR target/60151 4091 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler. 4092 40932014-02-12 Eric Botcazou <ebotcazou@adacore.com> 4094 4095 PR rtl-optimization/60116 4096 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the 4097 other_insn once the combination has been validated. 4098 40992014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com> 4100 4101 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern. 4102 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate. 4103 41042014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com> 4105 4106 * config/microblaze/microblaze.c: Extend mcpu version format 4107 41082014-02-10 David Holsgrove <david.holsgrove@xilinx.com> 4109 4110 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE. 4111 41122014-02-10 Richard Biener <rguenther@suse.de> 4113 4114 Backport from mainline 4115 2014-01-30 Richard Biener <rguenther@suse.de> 4116 4117 PR tree-optimization/59903 4118 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types 4119 check properly. 4120 4121 2014-02-10 Richard Biener <rguenther@suse.de> 4122 4123 PR tree-optimization/60115 4124 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and 4125 MEM_REF handling. Properly verify that the accesses are not 4126 out of the objects bound. 4127 41282014-02-05 James Greenhalgh <james.greenhalgh@arm.com> 4129 4130 Backport from mainline. 4131 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com> 4132 4133 PR target/59718 4134 * doc/invoke.texi (-march): Clarify documentation for ARM. 4135 (-mtune): Likewise. 4136 (-mcpu): Likewise. 4137 41382014-02-04 John David Anglin <danglin@gcc.gnu.org> 4139 4140 PR target/59777 4141 * config/pa/pa.c (legitimize_tls_address): Return original address 4142 if not passed a SYMBOL_REF rtx. 4143 (hppa_legitimize_address): Call legitimize_tls_address for all TLS 4144 addresses. 4145 (pa_emit_move_sequence): Simplify TLS source operands. 4146 (pa_legitimate_constant_p): Reject all TLS constants. 4147 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment. 4148 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses. 4149 41502014-02-04 Uros Bizjak <ubizjak@gmail.com> 4151 4152 Backport from mainline 4153 2014-02-02 Uros Bizjak <ubizjak@gmail.com> 4154 4155 PR target/60017 4156 * config/i386/i386.c (classify_argument): Fix handling of bit_offset 4157 when calculating size of integer atomic types. 4158 41592014-02-02 Uros Bizjak <ubizjak@gmail.com> 4160 4161 Backport from mainline 4162 2014-01-30 Jakub Jelinek <jakub@redhat.com> 4163 4164 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning. 4165 41662014-01-31 Richard Henderson <rth@redhat.com> 4167 4168 PR middle-end/60004 4169 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block 4170 until after else_eh is processed. 4171 41722014-01-30 David Holsgrove <david.holsgrove@xilinx.com> 4173 4174 Backport from mainline 4175 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace 4176 comparison_operator with ordered_comparison_operator. 4177 41782014-01-25 Walter Lee <walt@tilera.com> 4179 4180 Backport from mainline 4181 2014-01-25 Walter Lee <walt@tilera.com> 4182 4183 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and 4184 avoid clobbering a live register. 4185 41862014-01-25 Walter Lee <walt@tilera.com> 4187 4188 Backport from mainline 4189 2014-01-25 Walter Lee <walt@tilera.com> 4190 4191 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins): 4192 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}. 4193 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins): 4194 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}. 4195 41962014-01-25 Walter Lee <walt@tilera.com> 4197 4198 Backport from mainline 4199 2014-01-25 Walter Lee <walt@tilera.com> 4200 4201 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier 4202 insns before bundling. 4203 * config/tilegx/tilegx.md (tile_network_barrier): Update comment. 4204 42052014-01-25 Walter Lee <walt@tilera.com> 4206 4207 Backport from mainline 4208 2014-01-25 Walter Lee <walt@tilera.com> 4209 4210 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set 4211 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches. 4212 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto. 4213 42142014-01-25 Walter Lee <walt@tilera.com> 4215 4216 Backport from mainline 4217 2014-01-25 Walter Lee <walt@tilera.com> 4218 4219 * config/tilepro/tilepro.md (ctzdi2): Use register_operand 4220 predicate. 4221 (clzdi2): Ditto. 4222 (ffsdi2): Ditto. 4223 42242014-01-25 Walter Lee <walt@tilera.com> 4225 4226 Backport from mainline 4227 2014-01-25 Walter Lee <walt@tilera.com> 4228 4229 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New. 4230 (TARGET_EXPAND_TO_RTL_HOOK): Define. 4231 42322014-01-24 H.J. Lu <hongjiu.lu@intel.com> 4233 4234 Backport from mainline 4235 2014-01-23 H.J. Lu <hongjiu.lu@intel.com> 4236 4237 PR target/59929 4238 * config/i386/i386.md (pushsf splitter): Get stack adjustment 4239 from push operand if code of push isn't PRE_DEC. 4240 42412014-01-23 David Holsgrove <david.holsgrove@xilinx.com> 4242 4243 Backport from mainline. 4244 * config/microblaze/microblaze.md: Add trap insn and attribute 4245 42462014-01-23 Marek Polacek <polacek@redhat.com> 4247 4248 Backport from mainline 4249 2013-10-21 Marek Polacek <polacek@redhat.com> 4250 4251 PR middle-end/58809 4252 * fold-const.c (fold_range_test): Return 0 if the type is not 4253 an integral type. 4254 42552014-01-22 David Holsgrove <david.holsgrove@xilinx.com> 4256 4257 * config/microblaze/microblaze.md: Correct bswaphi2 insn. 4258 42592014-01-22 Uros Bizjak <ubizjak@gmail.com> 4260 4261 Backport from mainline 4262 2014-01-20 Uros Bizjak <ubizjak@gmail.com> 4263 4264 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false 4265 for SImode_address_operand operands, having only a REG argument. 4266 4267 2014-01-20 Jakub Jelinek <jakub@redhat.com> 4268 4269 PR target/59880 4270 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false 4271 if operands[1] is a REG or ZERO_EXTEND of a REG. 4272 4273 2014-01-18 Uros Bizjak <ubizjak@gmail.com> 4274 H.J. Lu <hongjiu.lu@intel.com> 4275 4276 PR target/59379 4277 * config/i386/i386.md (*lea<mode>): Zero-extend return register 4278 to DImode for zero-extended addresses. 4279 42802014-01-21 Andrew Pinski <apinski@cavium.com> 4281 Steve Ellcey <sellcey@mips.com> 4282 4283 PR target/59462 4284 * config/mips/mips.c (mips_print_operand): Check operand mode instead 4285 of operator mode. 4286 42872014-01-21 Andrey Belevantsev <abel@ispras.ru> 4288 4289 Backport from mainline 4290 2013-12-23 Andrey Belevantsev <abel@ispras.ru> 4291 4292 PR rtl-optimization/57422 4293 * sel-sched.c (mark_unavailable_hard_regs): Fix typo when calling 4294 add_to_hard_reg_set. 4295 42962014-01-20 Jakub Jelinek <jakub@redhat.com> 4297 4298 PR middle-end/59860 4299 * tree.h (fold_builtin_strcat): New prototype. 4300 * builtins.c (fold_builtin_strcat): No longer static. Add len 4301 argument, if non-NULL, don't call c_strlen. Optimize 4302 directly into __builtin_memcpy instead of __builtin_strcpy. 4303 (fold_builtin_2): Adjust fold_builtin_strcat caller. 4304 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT. 4305 43062014-01-20 Richard Biener <rguenther@suse.de> 4307 4308 PR middle-end/59860 4309 * builtins.c (fold_builtin_strcat): Remove case better handled 4310 by tree-ssa-strlen.c. 4311 43122014-01-19 John David Anglin <danglin@gcc.gnu.org> 4313 4314 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of 4315 long non-pic millicode calls. 4316 43172014-01-17 John David Anglin <danglin@gcc.gnu.org> 4318 4319 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short 4320 call to $$dyncall when TARGET_LONG_CALLS is true. 4321 43222014-01-17 H.J. Lu <hongjiu.lu@intel.com> 4323 4324 Backport from mainline 4325 2014-01-14 H.J. Lu <hongjiu.lu@intel.com> 4326 4327 PR target/59794 4328 * config/i386/i386.c (type_natural_mode): Add a bool parameter 4329 to indicate if type is used for function return value. Warn 4330 ABI change if the vector mode isn't available for function 4331 return value. 4332 (ix86_function_arg_advance): Pass false to type_natural_mode. 4333 (ix86_function_arg): Likewise. 4334 (ix86_gimplify_va_arg): Likewise. 4335 (function_arg_32): Don't warn ABI change. 4336 (ix86_function_value): Pass true to type_natural_mode. 4337 (ix86_return_in_memory): Likewise. 4338 (ix86_struct_value_rtx): Removed. 4339 (TARGET_STRUCT_VALUE_RTX): Likewise. 4340 43412014-01-17 Charles Baylis <charles.baylis@linaro.org> 4342 4343 Backport from mainline 4344 2013-12-19 Charles Baylis <charles.baylis@linaro.org> 4345 4346 PR target/59142 4347 * config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb 4348 patterns. 4349 * config/arm/ldmstm.md: Regenerate. 4350 4351 2013-12-19 Charles Baylis <charles.baylis@linaro.org> 4352 4353 PR target/59142 4354 * config/arm/predicates.md (arm_hard_general_register_operand): 4355 New predicate. 4356 (arm_hard_register_operand): Remove. 4357 * config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand 4358 for all patterns. 4359 * config/arm/ldmstm.md: Regenerate. 4360 4361 2013-12-19 Charles Baylis <charles.baylis@linaro.org> 4362 4363 PR target/59142 4364 * config/arm/predicates.md (vfp_hard_register_operand): New predicate. 4365 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use 4366 vfp_hard_register_operand. 4367 43682014-01-17 Kugan Vivekanandarajah <kuganv@linaro.org> 4369 4370 Backport from mainline 4371 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> 4372 Kugan Vivekanandarajah <kuganv@linaro.org> 4373 4374 PR target/59695 4375 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect 4376 truncation. 4377 43782014-01-17 Terry Guo <terry.guo@arm.com> 4379 4380 PR target/59826 4381 * config/arm/arm.md (prefetch): Set insn type attribute to load1. 4382 43832014-01-16 Jakub Jelinek <jakub@redhat.com> 4384 4385 PR target/59839 4386 * config/i386/i386.c (ix86_expand_builtin): If target doesn't 4387 satisfy operand 0 predicate for gathers, use a new pseudo as 4388 subtarget. 4389 43902014-01-16 Richard Henderson <rth@redhat.com> 4391 4392 PR debug/54694 4393 * reginfo.c (global_regs_decl): Globalize. 4394 * rtl.h (global_regs_decl): Declare. 4395 * ira.c (do_reload): Diagnose frame_pointer_needed and it 4396 reserved via global_regs. 4397 43982014-01-16 Peter Bergner <bergner@vnet.ibm.com> 4399 4400 Backport from mainline 4401 2014-01-15 Uros Bizjak <ubizjak@gmail.com> 4402 4403 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use 4404 VALID_AVX256_REG_OR_OI_MODE. 4405 4406 2013-09-05 Peter Bergner <bergner@vnet.ibm.com> 4407 4408 PR target/58139 4409 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes 4410 looking for widest mode. 4411 44122014-01-16 Marek Polacek <polacek@redhat.com> 4413 4414 Backported from mainline 4415 2014-01-16 Marek Polacek <polacek@redhat.com> 4416 4417 PR middle-end/59827 4418 * gimple-low.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if 4419 it is error_mark_node. 4420 44212014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 4422 4423 PR target/59803 4424 * config/s390/s390.c (s390_preferred_reload_class): Don't return 4425 ADDR_REGS for invalid symrefs in non-PIC code. 4426 44272014-01-14 Uros Bizjak <ubizjak@gmail.com> 4428 4429 Revert: 4430 2014-01-08 Uros Bizjak <ubizjak@gmail.com> 4431 4432 * config/i386/i386.c (ix86_data_alignment): Calculate max_align 4433 from prefetch_block tune setting. 4434 44352014-01-13 Jakub Jelinek <jakub@redhat.com> 4436 4437 Backported from mainline 4438 2014-01-10 Jakub Jelinek <jakub@redhat.com> 4439 4440 PR tree-optimization/59745 4441 * tree-predcom.c (tree_predictive_commoning_loop): Call 4442 free_affine_expand_cache if giving up because components is NULL. 4443 44442014-01-10 Yufeng Zhang <yufeng.zhang@arm.com> 4445 4446 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr 4447 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned 4448 rtx is const0_rtx or not. 4449 44502014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 4451 4452 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC 4453 extraction in good case. 4454 44552014-01-10 Huacai Chen <chenhc@lemote.com> 4456 4457 * config/mips/driver-native.c (host_detect_local_cpu): Handle new 4458 kernel strings for Loongson-2E/2F/3A. 4459 44602014-01-10 Richard Biener <rguenther@suse.de> 4461 4462 PR tree-optimization/59715 4463 * tree-flow.h (split_critical_edges): Declare. 4464 * tree-cfg.c (split_critical_edges): Export. 4465 * tree-ssa-sink.c (execute_sink_code): Split critical edges. 4466 44672014-01-09 Richard Sandiford <rdsandiford@googlemail.com> 4468 4469 * config/mips/mips.h (ISA_HAS_WSBH): Define. 4470 * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New 4471 constants. 4472 (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns. 4473 44742014-01-09 Richard Sandiford <rdsandiford@googlemail.com> 4475 4476 PR rtl-optimization/59137 4477 * reorg.c (steal_delay_list_from_target): Call update_block for 4478 elided insns. 4479 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise. 4480 44812014-01-09 Richard Sandiford <rdsandiford@googlemail.com> 4482 4483 Revert: 4484 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com> 4485 4486 * config/mips/mips.c (mips_truncated_op_cost): New function. 4487 (mips_rtx_costs): Adjust test for BADDU. 4488 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands. 4489 4490 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com> 4491 4492 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into... 4493 (*baddu_si): ...this new pattern. 4494 44952014-01-09 Richard Biener <rguenther@suse.de> 4496 4497 Backport from mainline 4498 2013-11-18 Richard Biener <rguenther@suse.de> 4499 4500 PR tree-optimization/59125 4501 PR tree-optimization/54570 4502 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining 4503 is not complete do not treat component-references with offset zero 4504 but different fields as equal. 4505 * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h. 4506 (compute_object_sizes): Apply TLC. Propagate the constant 4507 results into all uses and fold their stmts. 4508 * passes.def (pass_all_optimizations): Move pass_object_sizes 4509 after the first pass_forwprop and before pass_fre. 4510 4511 2013-12-03 Jakub Jelinek <jakub@redhat.com> 4512 4513 PR tree-optimization/59362 4514 * tree-object-size.c (object_sizes): Change into array of 4515 vec<unsigned HOST_WIDE_INT>. 4516 (compute_builtin_object_size): Check computed bitmap for 4517 non-NULL instead of object_sizes. Call safe_grow on object_sizes 4518 vector if new SSA_NAMEs appeared. 4519 (init_object_sizes): Check computed bitmap for non-NULL. 4520 Call safe_grow on object_sizes elements instead of initializing 4521 it with XNEWVEC. 4522 (fini_object_sizes): Call release on object_sizes elements, don't 4523 set it to NULL. 4524 45252014-01-09 Richard Earnshaw <rearnsha@arm.com> 4526 4527 PR rtl-optimization/54300 4528 * regcprop.c (copyprop_hardreg_forward_1): Ensure any unused 4529 outputs in a single-set are killed from the value chains. 4530 45312014-01-09 Jakub Jelinek <jakub@redhat.com> 4532 4533 PR rtl-optimization/59724 4534 * ifcvt.c (cond_exec_process_if_block): Don't call 4535 flow_find_head_matching_sequence with 0 longest_match. 4536 * cfgcleanup.c (flow_find_head_matching_sequence): Count even 4537 non-active insns if !stop_after. 4538 (try_head_merge_bb): Revert 2014-01-07 changes. 4539 45402014-01-09 Hans-Peter Nilsson <hp@axis.com> 4541 4542 Backport from mainline 4543 2013-12-23 Hans-Peter Nilsson <hp@axis.com> 4544 4545 PR middle-end/59584 4546 * config/cris/predicates.md (cris_nonsp_register_operand): 4547 New define_predicate. 4548 * config/cris/cris.md: Replace register_operand with 4549 cris_nonsp_register_operand for destinations in all 4550 define_splits where a register is set more than once. 4551 45522014-01-08 H.J. Lu <hongjiu.lu@intel.com> 4553 4554 Backport from mainline 4555 2013-12-25 H.J. Lu <hongjiu.lu@intel.com> 4556 4557 PR target/59587 4558 * config/i386/i386.c (struct ptt): Add a field for processor name. 4559 (processor_target_table): Sync with processor_type. Add 4560 processor names. 4561 (cpu_names): Removed. 4562 (ix86_option_override_internal): Default x_ix86_tune_string 4563 to processor_target_table[TARGET_CPU_DEFAULT].name. 4564 (ix86_function_specific_print): Assert arch and tune < 4565 PROCESSOR_max. Use processor_target_table to print arch and 4566 tune names. 4567 * config/i386/i386.h (TARGET_CPU_DEFAULT): Default to 4568 PROCESSOR_GENERIC32. 4569 (target_cpu_default): Removed. 4570 (processor_type): Reordered. 4571 45722014-01-08 Uros Bizjak <ubizjak@gmail.com> 4573 4574 Backport from mainline 4575 2014-01-05 Uros Bizjak <ubizjak@gmail.com> 4576 4577 * config/i386/i386.c (ix86_data_alignment): Calculate max_align 4578 from prefetch_block tune setting. 4579 (nocona_cost): Correct size of prefetch block to 64. 4580 45812014-01-08 Martin Jambor <mjambor@suse.cz> 4582 4583 PR ipa/59610 4584 * ipa-prop.c (ipa_compute_jump_functions): Bail out if not optimizing. 4585 (parm_preserved_before_stmt_p): Assume modification present when not 4586 optimizing. 4587 45882014-01-07 John David Anglin <danglin@gcc.gnu.org> 4589 4590 PR target/59652 4591 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload 4592 for 14-bit register offsets when INT14_OK_STRICT is false. 4593 45942014-01-07 Roland Stigge <stigge@antcom.de> 4595 Michael Meissner <meissner@linux.vnet.ibm.com> 4596 4597 PR 57386/target 4598 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): 4599 Only check TFmode for SPE constants. Don't check TImode or TDmode. 4600 46012014-01-07 Jakub Jelinek <jakub@redhat.com> 4602 4603 PR rtl-optimization/58668 4604 * cfgcleanup.c (flow_find_cross_jump): Don't count 4605 any jumps if dir_p is NULL. Remove p1 variable and make USE/CLOBBER 4606 check consistent with other places. 4607 (flow_find_head_matching_sequence): Don't count USE or CLOBBER insns. 4608 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence 4609 counting change. 4610 * ifcvt.c (count_bb_insns): Don't count USE or CLOBBER insns. 4611 46122014-01-07 Mike Stump <mikestump@comcast.net> 4613 Jakub Jelinek <jakub@redhat.com> 4614 4615 PR pch/59436 4616 * tree.h (struct tree_optimization_option): Change optabs 4617 type from unsigned char * to void *. 4618 * optabs.c (init_tree_optimization_optabs): Adjust 4619 TREE_OPTIMIZATION_OPTABS initialization. 4620 46212014-01-07 Jakub Jelinek <jakub@redhat.com> 4622 4623 Backported from mainline 4624 2013-12-16 Jakub Jelinek <jakub@redhat.com> 4625 4626 PR middle-end/58956 4627 PR middle-end/59470 4628 * gimple.h (walk_stmt_load_store_addr_fn): New typedef. 4629 (walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it 4630 for callback params. 4631 * gimple.c (walk_stmt_load_store_ops): Likewise. 4632 (walk_stmt_load_store_addr_ops): Likewise. Adjust all callback 4633 calls to supply the gimple operand containing the base tree 4634 as an extra argument. 4635 * tree-ssa-ter.c (find_ssaname, find_ssaname_in_store): New helper 4636 functions. 4637 (find_replaceable_in_bb): For calls or GIMPLE_ASM, only set 4638 same_root_var if USE is used somewhere in the stores of the stmt. 4639 * ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt 4640 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument. 4641 * ipa-pure-const.c (check_load, check_store, check_ipa_load, 4642 check_ipa_store): Likewise. 4643 * gimple.c (gimple_ior_addresses_taken_1): Likewise. 4644 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise. 4645 (verify_non_ssa_vars, visit_bb): Adjust their callers. 4646 * cfgexpand.c (add_scope_conflicts_1): Use 4647 walk_stmt_load_store_addr_fn type for visit variable. 4648 (visit_op, visit_conflict): Remove name of the stmt 4649 argument and ATTRIBUTE_UNUSED, add another unnamed tree argument. 4650 * tree-sra.c (asm_visit_addr): Likewise. Remove name of the data 4651 argument and ATTRIBUTE_UNUSED. 4652 * cgraphbuild.c (mark_address, mark_load, mark_store): Add another 4653 unnamed tree argument. 4654 46552014-01-03 Andreas Schwab <schwab@linux-m68k.org> 4656 4657 * config/m68k/m68k.c (handle_move_double): Handle pushes with 4658 overlapping registers also for registers other than the stack 4659 pointer. 4660 46612014-01-03 Jakub Jelinek <jakub@redhat.com> 4662 4663 PR target/59625 4664 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider 4665 asm goto as jump. 4666 46672014-01-01 Jakub Jelinek <jakub@redhat.com> 4668 4669 PR rtl-optimization/59647 4670 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode 4671 new_rtx into UNSIGNED_FLOAT rtxes. 4672 46732013-12-28 Eric Botcazou <ebotcazou@adacore.com> 4674 4675 * doc/invoke.texi (output file options): Document -fada-spec-parent. 4676 46772013-12-26 Uros Bizjak <ubizjak@gmail.com> 4678 4679 * config/i386/driver-i386.c (decode_caches_intel): Add missing entries. 4680 46812013-12-20 Jakub Jelinek <jakub@redhat.com> 4682 4683 PR c++/59255 4684 Backported from mainline 4685 2013-08-19 Dehao Chen <dehao@google.com> 4686 4687 * value-prof.c (gimple_ic): Fix the bug of adding EH edge. 4688 46892013-12-19 James Greenhalgh <james.greenhalgh@arm.com> 4690 4691 Backport from Mainline. 4692 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 4693 4694 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to... 4695 (cmgeu): ...This. 4696 (cmhi): Rename to... 4697 (cmgtu): ...This. 4698 * config/aarch64/aarch64-simd.md 4699 (simd_mode): Add SF. 4700 (aarch64_vcond_internal): Use new names for unsigned comparison insns. 4701 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs. 4702 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to... 4703 (cstore<mode>_neg): ...This. 4704 * config/aarch64/iterators.md 4705 (VALLF): new. 4706 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>. 4707 (COMPARISONS): New. 4708 (UCOMPARISONS): Likewise. 4709 (optab): Add missing comparisons. 4710 (n_optab): New. 4711 (cmp_1): Likewise. 4712 (cmp_2): Likewise. 4713 (CMP): Likewise. 4714 (cmp): Remove. 4715 (VCMP_S): Likewise. 4716 (VCMP_U): Likewise. 4717 (V_cmp_result): Add DF, SF modes. 4718 (v_cmp_result): Likewise. 4719 (v): Likewise. 4720 (vmtype): Likewise. 4721 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New. 4722 4723 Partial Backport from mainline. 4724 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com> 4725 4726 * config/aarch64/arm_neon.h 4727 (vc<eq, lt, le, gt, ge, tst><qsd>_<u><8,16,32,64>): Remap 4728 to builtins or C as appropriate. 4729 47302013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> 4731 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 4732 4733 Backport from mainline 4734 2013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> 4735 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New 4736 constant 4737 (s390_hotpatch_trampoline_halfwords_max): New constant 4738 (s390_hotpatch_trampoline_halfwords): New static variable 4739 (get_hotpatch_attribute): New function 4740 (s390_handle_hotpatch_attribute): New function 4741 (s390_attribute_table): New target specific attribute table to implement 4742 the hotpatch attribute 4743 (s390_option_override): Parse hotpatch options 4744 (s390_function_num_hotpatch_trampoline_halfwords): New function 4745 (s390_can_inline_p): Implement target hook to 4746 suppress hotpatching for explicitly inlined functions 4747 (s390_asm_output_function_label): Generate hotpatch prologue 4748 (TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table 4749 (TARGET_CAN_INLINE_P): Define to implement target hook 4750 * config/s390/s390.opt (mhotpatch): New options -mhotpatch, -mhotpatch= 4751 * config/s390/s390-protos.h (s390_asm_output_function_label): Add 4752 prototype 4753 * config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific 4754 function label generation for hotpatching 4755 (FUNCTION_BOUNDARY): Align functions to eight bytes 4756 * doc/extend.texi: Document hotpatch attribute 4757 * doc/invoke.texi: Document -mhotpatch option 4758 47592013-12-18 Eric Botcazou <ebotcazou@adacore.com> 4760 4761 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko. 4762 47632013-12-12 Vladimir Makarov <vmakarov@redhat.com> 4764 4765 PR middle-end/59470 4766 * lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo 4767 values if necessary. 4768 47692013-12-12 Jakub Jelinek <jakub@redhat.com> 4770 4771 PR libgomp/59467 4772 * gimplify.c (omp_check_private): Add copyprivate argument, if it 4773 is true, don't check omp_privatize_by_reference. 4774 (gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify 4775 decl is private in outer context. Adjust omp_check_private caller. 4776 47772013-12-10 Eric Botcazou <ebotcazou@adacore.com> 4778 4779 PR rtl-optimization/58295 4780 * simplify-rtx.c (simplify_truncation): Restrict the distribution for 4781 WORD_REGISTER_OPERATIONS targets. 4782 47832013-12-10 Kai Tietz <ktietz@redhat.com> 4784 4785 PR target/56807 4786 * config/i386/i386.c (ix86_expand_prologue): Address saved 4787 registers stack-relative, not via frame-pointer. 4788 47892013-12-09 Alan Modra <amodra@gmail.com> 4790 4791 Apply from mainline 4792 2013-12-05 Alan Modra <amodra@gmail.com> 4793 * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for 4794 build != host. 4795 <recursive call for build != host>: Clear GMPINC. Don't bother 4796 saving CFLAGS. 4797 * configure: Regenerate. 4798 47992013-12-08 Uros Bizjak <ubizjak@gmail.com> 4800 4801 Backport from mainline 4802 2013-12-06 Uros Bizjak <ubizjak@gmail.com> 4803 4804 PR target/59405 4805 * config/i386/i386.c (type_natural_mode): Properly handle 4806 size 8 for !TARGET_64BIT. 4807 48082013-12-07 Ralf Corsépius <ralf.corsepius@rtems.org> 4809 4810 * config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT. 4811 48122013-12-06 Jakub Jelinek <jakub@redhat.com> 4813 4814 PR tree-optimization/59388 4815 * tree-ssa-reassoc.c (update_range_test): If op == range->exp, 4816 gimplify tem after stmt rather than before it. 4817 48182013-12-06 Oleg Endo <olegendo@gcc.gnu.org> 4819 4820 Backport from mainline 4821 2013-11-26 Oleg Endo <olegendo@gcc.gnu.org> 4822 4823 PR target/58314 4824 PR target/50751 4825 * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement): 4826 Prefix function names with 'sh_'. Make them non-static. 4827 * config/sh/sh-protos.h (sh_disp_addr_displacement, 4828 sh_max_mov_insn_displacement): Add declarations. 4829 * config/sh/constraints.md (Q): Reject QImode. 4830 (Sdd): Use match_code "mem". 4831 (Snd): Fix erroneous matching of non-memory operands. 4832 * config/sh/predicates.md (short_displacement_mem_operand): New 4833 predicate. 4834 (general_movsrc_operand): Disallow PC relative QImode loads. 4835 * config/sh/sh.md (*mov<mode>_reg_reg): Remove it. 4836 (*movqi, *movhi): Merge both insns into... 4837 (*mov<mode>): ... this new insn. Replace generic 'm' constraints with 4838 'Snd' and 'Sdd' constraints. Calculate insn length dynamically based 4839 on the operand types. 4840 48412013-12-06 Richard Biener <rguenther@suse.de> 4842 4843 Backport from mainline 4844 2013-11-29 Richard Biener <rguenther@suse.de> 4845 4846 PR tree-optimization/59334 4847 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug 4848 in previous commit. 4849 4850 2013-11-28 Richard Biener <rguenther@suse.de> 4851 4852 PR tree-optimization/59330 4853 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify 4854 and fix delayed marking of free calls not necessary. 4855 48562013-12-06 Richard Biener <rguenther@suse.de> 4857 4858 Backport from mainline 4859 2013-11-27 Richard Biener <rguenther@suse.de> 4860 4861 PR tree-optimization/59288 4862 * tree-vect-loop.c (get_initial_def_for_induction): Do not 4863 re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART. 4864 4865 2013-11-19 Richard Biener <rguenther@suse.de> 4866 4867 PR tree-optimization/59164 4868 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust 4869 check whether we can create an epilogue loop to reflect the 4870 cases where we create one. 4871 4872 2013-09-05 Richard Biener <rguenther@suse.de> 4873 4874 PR tree-optimization/58137 4875 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): 4876 Do not create vectors of pointers. 4877 * tree-vect-loop.c (get_initial_def_for_induction): Use proper 4878 types for the components of the vector initializer. 4879 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing 4880 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR. 4881 48822013-12-06 Oleg Endo <olegendo@gcc.gnu.org> 4883 4884 PR target/51244 4885 PR target/59343 4886 * config/sh/sh.md (*cbranch_t): Check that there are no labels between 4887 the s1 insn and the testing insn. Remove REG_DEAD note from s1 insn. 4888 48892013-12-05 Richard Biener <rguenther@suse.de> 4890 4891 Backport from mainline 4892 2013-11-19 Richard Biener <rguenther@suse.de> 4893 4894 PR middle-end/58956 4895 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding 4896 loads into stmts that may clobber it. 4897 48982013-12-04 Jakub Jelinek <jakub@redhat.com> 4899 4900 PR rtl-optimization/58726 4901 * combine.c (force_to_mode): Fix comment typo. Don't destructively 4902 modify x for ROTATE, ROTATERT and IF_THEN_ELSE. 4903 49042013-12-04 Jakub Jelinek <jakub@redhat.com> 4905 Uros Bizjak <ubizjak@gmail.com> 4906 4907 PR target/59163 4908 * config/i386/i386.c (ix86_legitimate_combined_insn): If for 4909 !TARGET_AVX there is misaligned MEM operand with vector mode 4910 and get_attr_ssememalign is 0, return false. 4911 (ix86_expand_special_args_builtin): Add get_pointer_alignment 4912 computed alignment and for non-temporal loads/stores also 4913 at least GET_MODE_ALIGNMENT as MEM_ALIGN. 4914 * config/i386/sse.md 4915 (<sse>_loadu<ssemodesuffix><avxsizesuffix>, 4916 <sse>_storeu<ssemodesuffix><avxsizesuffix>, 4917 <sse2>_loaddqu<avxsizesuffix>, 4918 <sse2>_storedqu<avxsizesuffix>, <sse3>_lddqu<avxsizesuffix>, 4919 sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps, 4920 sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps, 4921 *vec_interleave_highv2df, *vec_interleave_lowv2df, 4922 *vec_extractv2df_1_sse, sse2_loadhpd, sse2_loadlpd, sse2_movsd, 4923 sse4_1_<code>v8qiv8hi2, sse4_1_<code>v4qiv4si2, 4924 sse4_1_<code>v4hiv4si2, sse4_1_<code>v2qiv2di2, 4925 sse4_1_<code>v2hiv2di2, sse4_1_<code>v2siv2di2, sse4_2_pcmpestr, 4926 *sse4_2_pcmpestr_unaligned, sse4_2_pcmpestri, sse4_2_pcmpestrm, 4927 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned, 4928 sse4_2_pcmpistri, sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add 4929 ssememalign attribute. 4930 * config/i386/i386.md (ssememalign): New define_attr. 4931 49322013-12-03 Jakub Jelinek <jakub@redhat.com> 4933 4934 PR middle-end/59011 4935 * gimplify.c (nonlocal_vla_vars): New variable. 4936 (gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into 4937 nonlocal_vla_vars chain. 4938 (gimplify_body): Call declare_vars on nonlocal_vla_vars chain 4939 if outer_bind has DECL_INITIAL (current_function_decl) block. 4940 4941 PR target/58864 4942 * optabs.c (emit_conditional_move): Save and restore 4943 pending_stack_adjust and stack_pointer_delta if cmove can't be used. 4944 49452013-12-02 Jakub Jelinek <jakub@redhat.com> 4946 4947 PR tree-optimization/59358 4948 * tree-vrp.c (union_ranges): To check for the partially 4949 overlapping ranges or adjacent ranges, also compare *vr0max 4950 with vr1max. 4951 49522013-12-02 Richard Biener <rguenther@suse.de> 4953 4954 PR tree-optimization/59139 4955 * tree-ssa-loop-niter.c (chain_of_csts_start): Properly match 4956 code in get_val_for. 4957 (get_val_for): Use gcc_checking_asserts. 4958 49592013-11-27 Tom de Vries <tom@codesourcery.com> 4960 Marc Glisse <marc.glisse@inria.fr> 4961 4962 PR middle-end/59037 4963 * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds 4964 BIT_FIELD_REF. 4965 * gimplify.c (gimple_fold_indirect_ref): Same. 4966 49672013-12-01 Eric Botcazou <ebotcazou@adacore.com> 4968 4969 * config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an 4970 identifier node. 4971 49722013-12-01 Bernd Edlinger <bernd.edlinger@hotmail.de> 4973 4974 * expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument. 4975 49762013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4977 4978 Backport from mainline 4979 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4980 4981 * config/arm/iterators.md (vrint_conds): New int attribute. 4982 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute. 4983 (smax<mode>3): Likewise. 4984 (smin<mode>3): Likewise. 4985 49862013-11-28 Uros Bizjak <ubizjak@gmail.com> 4987 4988 Backport from mainline 4989 2013-11-27 Uros Bizjak <ubizjak@gmail.com> 4990 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 4991 4992 PR target/56788 4993 * gcc.target/i386/xop-frczX.c: New test. 4994 49952013-11-28 Terry Guo <terry.guo@arm.com> 4996 4997 Backport mainline r205391 4998 2013-11-26 Terry Guo <terry.guo@arm.com> 4999 5000 * config/arm/arm.c (require_pic_register): Handle high pic base 5001 register for thumb-1. 5002 (arm_load_pic_register): Also initialize high pic base register. 5003 * doc/invoke.texi: Update documentation for option -mpic-register. 5004 50052013-11-27 Jakub Jelinek <jakub@redhat.com> 5006 5007 Backported from mainline 5008 2013-11-26 Jakub Jelinek <jakub@redhat.com> 5009 5010 PR tree-optimization/59014 5011 * tree-vrp.c (register_edge_assert_for_1): Don't look 5012 through conversions from non-integral types or through 5013 narrowing conversions. 5014 50152013-11-27 Eric Botcazou <ebotcazou@adacore.com> 5016 5017 PR middle-end/59138 5018 * expr.c (emit_group_store): Don't write past the end of the structure. 5019 (store_bit_field): Fix formatting. 5020 50212013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> 5022 5023 Backport from mainline 5024 2013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de> 5025 5026 * config/sparc/t-rtems: Add leon3 multilibs. 5027 50282013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> 5029 5030 Backport from mainline 5031 2013-08-09 Eric Botcazou <ebotcazou@adacore.com> 5032 5033 * configure.ac: Add GAS check for LEON instructions on SPARC. 5034 * configure: Regenerate. 5035 * config.in: Likewise. 5036 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the 5037 sparc*-*-* block. 5038 * config/sparc/sparc.opt (LEON, LEON3): New masks. 5039 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG 5040 for LEON or LEON3. 5041 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3. 5042 (AS_LEON_FLAG): New macro. 5043 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon 5044 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined. 5045 Deal with LEON and LEON3 for the memory model. 5046 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3 5047 (atomic_compare_and_swap<mode>_1): Likewise. 5048 (*atomic_compare_and_swap<mode>_1): Likewise. 5049 50502013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> 5051 5052 Backport from mainline 5053 2013-07-23 Eric Botcazou <ebotcazou@adacore.com> 5054 5055 * doc/invoke.texi (SPARC Options): Document new leon3 processor value. 5056 50572013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> 5058 5059 Backport from mainline 5060 2013-07-22 Eric Botcazou <ebotcazou@adacore.com> 5061 5062 * config.gcc (sparc*-*-*): Accept leon3 processor. 5063 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support. 5064 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry. 5065 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3. 5066 * config/sparc/sparc.opt (enum processor_type): Add leon3. 5067 (mfix-ut699): Adjust comment. 5068 * config/sparc/sparc.h (TARGET_CPU_leon3): New define. 5069 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support. 5070 (CPP_CPU_SPEC): Likewise. 5071 (ASM_CPU_SPEC): Likewise. 5072 * config/sparc/sparc.c (leon3_cost): New constant. 5073 (sparc_option_override): Add leon3 support. 5074 (mem_ref): New function. 5075 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled. 5076 (sparc_do_work_around_errata): Look into the instruction in the delay 5077 slot and adjust accordingly. Add fix for the data cache nullify issues 5078 of the UT699. Change insertion position for the NOP. 5079 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete. 5080 (leon3_load): New reservation. 5081 (leon_store): Bump latency to 2. 5082 (grfpu): New automaton. 5083 (grfpu_alu): New unit. 5084 (grfpu_ds): Likewise. 5085 (leon_fp_alu): Adjust. 5086 (leon_fp_mult): Delete. 5087 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd. 5088 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd. 5089 * config/sparc/sparc.md (cpu): Add leon3. 5090 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699. 5091 (swapsi): Likewise. 5092 (atomic_test_and_set): Likewise. 5093 (ldstub): Likewise. 5094 50952013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> 5096 5097 Backport from mainline 5098 2013-04-10 Steven Bosscher <steven@gcc.gnu.org> 5099 5100 * config/sparc/sparc.c: Include tree-pass.h. 5101 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine. 5102 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to 5103 head of file. Change return type. Split off gate function. 5104 (sparc_gate_work_around_errata): New function. 5105 (pass_work_around_errata): New pass definition. 5106 (insert_pass_work_around_errata) New pass insert definition to 5107 insert pass_work_around_errata just after delayed-branch scheduling. 5108 (sparc_option_override): Insert the pass. 5109 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence. 5110 51112013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> 5112 5113 Backport from mainline 5114 2013-05-28 Eric Botcazou <ebotcazou@adacore.com> 5115 5116 * doc/invoke.texi (SPARC Options): Document -mfix-ut699. 5117 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the 5118 mode if the instruction isn't available in the original mode. 5119 * config/sparc/sparc.opt (mfix-ut699): New option. 5120 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699. 5121 (divdf3): Turn into expander. 5122 (divdf3_nofix): New insn. 5123 (divdf3_fix): Likewise. 5124 (divsf3): Disable if -mfix-ut699. 5125 (sqrtdf2): Turn into expander. 5126 (sqrtdf2_nofix): New insn. 5127 (sqrtdf2_fix): Likewise. 5128 (sqrtsf2): Disable if -mfix-ut699. 5129 51302013-11-22 Eric Botcazou <ebotcazou@adacore.com> 5131 5132 * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR. 5133 51342013-11-21 Zhenqiang Chen <zhenqiang.chen@linaro.org> 5135 5136 PR bootstrap/57683 5137 Backport from mainline: r197467 and r198999. 5138 2013-04-03 Jeff Law <law@redhat.com> 5139 5140 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H). 5141 (lra-eliminations.o): Likewise. 5142 5143 2013-05-16 Jeff Law <law@redhat.com> 5144 5145 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H). 5146 51472013-11-20 Eric Botcazou <ebotcazou@adacore.com> 5148 5149 PR target/59207 5150 * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>: 5151 Make sure neg2_ovf is set before being used. 5152 51532013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5154 Dominik Vogt <vogt@linux.vnet.ibm.com> 5155 5156 Backport from mainline 5157 * config/s390/s390.c (s390_canonicalize_comparison): Don't fold 5158 int comparisons with an out of range condition code. 5159 (s390_optimize_nonescaping_tx): Skip empty BBs. 5160 Generate the new tbegin RTX when removing the FPR clobbers (with 5161 two SETs). 5162 (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the 5163 result before doing the retry calculations. 5164 (s390_init_builtins): Make tbegin "returns_twice" and tabort 5165 "noreturn". 5166 * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for 5167 the TDB setting part of an tbegin. 5168 ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB. 5169 ("tx_assist"): Set unused argument to an immediate zero instead of 5170 loading zero into a GPR and pass it as argument. 5171 * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin): 5172 Remove inline and related attributes. 5173 (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort) 5174 (__TM_is_illegal, __TM_is_footprint_exceeded) 5175 (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value 5176 check. 5177 51782013-11-19 Uros Bizjak <ubizjak@gmail.com> 5179 5180 Backport from mainline 5181 2013-11-18 Uros Bizjak <ubizjak@gmail.com> 5182 5183 * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of 5184 ix86_address_subreg_operand. Move subreg checks to 5185 ix86_validate_address_register. Move address override check to 5186 ix86_legitimate_address_p. 5187 (ix86_validate_address_register): New function. 5188 (ix86_legitimate_address_p): Call ix86_validate_address_register 5189 to validate base and index registers. Add address override check 5190 from ix86_decompose_address. 5191 (ix86_decompose_address): Remove. 5192 5193 Backport from mainline 5194 2013-11-17 Uros Bizjak <ubizjak@gmail.com> 5195 5196 PR target/59153 5197 * config/i386/i386.c (ix86_address_subreg_operand): Do not 5198 reject non-integer subregs. 5199 (ix86_decompose_address): Do not reject invalid CONST_INT RTXes. 5200 Move check for invalid x32 constant addresses ... 5201 (ix86_legitimate_address_p): ... here. 5202 52032013-11-19 Richard Biener <rguenther@suse.de> 5204 5205 Backport from mainline 5206 2013-11-07 Richard Biener <rguenther@suse.de> 5207 5208 * tree-dfa.c (get_ref_base_and_extent): Fix casting. 5209 52102013-11-19 Richard Biener <rguenther@suse.de> 5211 5212 PR tree-optimization/57517 5213 * tree-predcom.c (combinable_refs_p): Verify the combination 5214 is always executed when the refs are. 5215 52162013-11-19 Richard Biener <rguenther@suse.de> 5217 5218 Backport from mainline 5219 2013-11-05 Richard Biener <rguenther@suse.de> 5220 5221 PR middle-end/58941 5222 * tree-dfa.c (get_ref_base_and_extent): Merge common code 5223 in MEM_REF and TARGET_MEM_REF handling. Make sure to 5224 process trailing array detection before diving into the 5225 view-converted object (and possibly apply some extra offset). 5226 52272013-11-18 Richard Biener <rguenther@suse.de> 5228 5229 Backport from mainline 5230 2013-10-21 Richard Biener <rguenther@suse.de> 5231 5232 PR tree-optimization/58794 5233 * fold-const.c (operand_equal_p): Compare FIELD_DECL operand 5234 of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place. 5235 5236 2013-10-21 Richard Biener <rguenther@suse.de> 5237 5238 PR middle-end/58742 5239 * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C 5240 to (T) X for sign-changing conversions (or no conversion). 5241 5242 2013-11-06 Richard Biener <rguenther@suse.de> 5243 5244 PR tree-optimization/58653 5245 * tree-predcom.c (ref_at_iteration): Rewrite to generate 5246 a MEM_REF. 5247 (prepare_initializers_chain): Adjust. 5248 5249 PR tree-optimization/59047 5250 * tree-predcom.c (ref_at_iteration): Handle bitfield accesses 5251 properly. 5252 5253 2013-10-15 Richard Biener <rguenther@suse.de> 5254 5255 PR tree-optimization/58143 5256 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow): 5257 New function. 5258 (rewrite_to_defined_overflow): Likewise. 5259 (move_computations_dom_walker::before_dom): Rewrite stmts 5260 with undefined signed overflow that are not always executed 5261 into unsigned arithmetic. 5262 52632013-11-14 Uros Bizjak <ubizjak@gmail.com> 5264 5265 Backport from mainline 5266 2013-11-10 Uros Bizjak <ubizjak@gmail.com> 5267 5268 * mode-switching.c (optimize_mode_switching): Mark block as 5269 nontransparent, if last_mode at block exit is different from no_mode. 5270 5271 Backport from mainline 5272 2013-11-06 Uros Bizjak <ubizjak@gmail.com> 5273 5274 PR target/59021 5275 * config/i386/i386.c (ix86_avx_u128_mode_needed): Require 5276 AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers. 5277 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn 5278 RTXes that return in AVX256 register. 5279 52802013-11-14 Jakub Jelinek <jakub@redhat.com> 5281 Uros Bizjak <ubizjak@gmail.com> 5282 5283 PR target/59101 5284 * config/i386/i386.md (*anddi_2): Only allow CCZmode if 5285 operands[2] satisfies_constraint_Z that might have bit 31 set. 5286 52872013-11-12 H.J. Lu <hongjiu.lu@intel.com> 5288 5289 Backported from mainline 5290 2013-11-12 H.J. Lu <hongjiu.lu@intel.com> 5291 5292 PR target/59088 5293 * config/i386/i386.c (initial_ix86_tune_features): Set 5294 X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and 5295 X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for m_HASWELL. 5296 52972013-11-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 5298 5299 Backported from mainline 5300 2013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 5301 5302 PR target/58854 5303 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage 5304 53052013-11-11 Jakub Jelinek <jakub@redhat.com> 5306 5307 Backported from mainline 5308 2013-11-06 Jakub Jelinek <jakub@redhat.com> 5309 5310 PR middle-end/58970 5311 * expr.c (get_bit_range): Handle *offset == NULL_TREE. 5312 (expand_assignment): If *bitpos is negative, set *offset 5313 and adjust *bitpos, so that it is not negative. 5314 5315 2013-11-05 Jakub Jelinek <jakub@redhat.com> 5316 5317 PR rtl-optimization/58997 5318 * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect 5319 get_iv_value to be in iv->mode rather than iv->extend_mode. 5320 (iv_extend): Likewise. Otherwise, if iv->extend != extend, 5321 use lowpart_subreg on get_iv_value before calling simplify_gen_unary. 5322 * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right 5323 mode. 5324 53252013-11-10 Karlson2k <k2k@narod.ru> 5326 Kai Tietz <ktietz@redhat.com> 5327 5328 Merged from trunk 5329 PR plugins/52872 5330 * configure.ac: Adding for exported symbols check 5331 and for rdynamic-check executable-extension. 5332 * configure: Regenerated. 5333 53342013-11-07 H.J. Lu <hongjiu.lu@intel.com> 5335 5336 PR target/59034 5337 * config/i386/i386.md (push peepholer/splitter): Use Pmode 5338 with stack_pointer_rtx. 5339 53402013-11-05 Uros Bizjak <ubizjak@gmail.com> 5341 5342 * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos. 5343 53442013-11-05 Jakub Jelinek <jakub@redhat.com> 5345 5346 PR tree-optimization/58984 5347 * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument, 5348 set *SIZE_P if non-NULL on success. 5349 (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust 5350 callers. 5351 (ipcp_transform_function): Likewise. Punt if size of access 5352 is different from TYPE_SIZE on v->value's type. 5353 53542013-11-03 H.J. Lu <hongjiu.lu@intel.com> 5355 5356 Backport from mainline 5357 2013-10-12 H.J. Lu <hongjiu.lu@intel.com> 5358 5359 PR target/58690 5360 * config/i386/i386.c (ix86_copy_addr_to_reg): New function. 5361 (ix86_expand_movmem): Replace copy_addr_to_reg with 5362 ix86_copy_addr_to_reg. 5363 (ix86_expand_setmem): Likewise. 5364 53652013-10-29 Uros Bizjak <ubizjak@gmail.com> 5366 5367 Backport from mainline 5368 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com> 5369 5370 PR rtl-optimization/58079 5371 * combine.c (combine_simplify_rtx): Avoid using SUBST if 5372 simplify_comparison has widened a comparison with an integer. 5373 53742013-10-29 Martin Jambor <mjambor@suse.cz> 5375 5376 PR middle-end/58789 5377 Backport from mainline 5378 2013-05-09 Martin Jambor <mjambor@suse.cz> 5379 5380 PR lto/57084 5381 * gimple-fold.c (canonicalize_constructor_val): Call 5382 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node. 5383 5384 Backport from mainline 5385 2013-03-16 Jan Hubicka <jh@suse.cz> 5386 5387 * cgraph.h (cgraph_get_create_real_symbol_node): Declare. 5388 * cgraph.c (cgraph_get_create_real_symbol_node): New function. 5389 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead 5390 of cgraph_get_create_node. 5391 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. 5392 53932013-10-28 Tom de Vries <tom@codesourcery.com> 5394 5395 * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn. 5396 Don't commit insertions after NOTE_INSN_FUNCTION_BEG. 5397 53982013-10-26 Uros Bizjak <ubizjak@gmail.com> 5399 5400 Backport from mainline 5401 2013-10-22 Uros Bizjak <ubizjak@gmail.com> 5402 5403 PR target/58779 5404 * config/i386/i386.c (put_condition_code) <case GTU, case LEU>: 5405 Remove CCCmode handling. 5406 <case LTU>: Return 'c' suffix for CCCmode. 5407 <case GEU>: Return 'nc' suffix for CCCmode. 5408 (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks. 5409 * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove. 5410 (*sub<mode>3_cc_overflow): Ditto. 5411 (*subsi3_zext_cc_overflow): Ditto. 5412 54132013-10-26 Uros Bizjak <ubizjak@gmail.com> 5414 5415 Backport from mainline 5416 2013-10-19 Uros Bizjak <ubizjak@gmail.com> 5417 5418 PR target/58792 5419 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG, 5420 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG 5421 and SI_REG for 64bit SYSV ABI targets. 5422 54232013-08-25 Richard Henderson <rth@twiddle.net> 5424 5425 PR rtl/58542 5426 * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand 5427 instead of create_convert_operand_to. 5428 (maybe_emit_sync_lock_test_and_set): Likewise. 5429 (expand_atomic_compare_and_swap): Likewise. 5430 (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes. 5431 54322013-10-25 Eric Botcazou <ebotcazou@adacore.com> 5433 5434 PR rtl-optimization/58831 5435 * alias.c (init_alias_analysis): At the beginning of each iteration, set 5436 the reg_seen[N] bit if static_reg_base_value[N] is non-null. 5437 54382013-10-25 Eric Botcazou <ebotcazou@adacore.com> 5439 5440 * recog.c (search_ofs): New static variable moved from... 5441 (peep2_find_free_register): ...here. 5442 (peephole2_optimize): Initialize it. 5443 54442013-10-24 David Edelsohn <dje.gcc@gmail.com> 5445 5446 Backport from mainline 5447 2013-10-23 David Edelsohn <dje.gcc@gmail.com> 5448 5449 PR target/58838 5450 * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add 5451 TARGET_32BIT final condition. 5452 (mulsi3_internal2 and splitter): Same. 5453 54542013-10-23 Tom de Vries <tom@codesourcery.com> 5455 5456 PR tree-optimization/58805 5457 * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check. 5458 54592013-10-23 Richard Biener <rguenther@suse.de> 5460 5461 Backport from mainline 5462 2013-06-24 Richard Biener <rguenther@suse.de> 5463 5464 PR tree-optimization/57488 5465 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration. 5466 54672013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 5468 5469 Backport from mainline 5470 2013-10-16 Ganesh Gopalasubramanian 5471 <Ganesh.Gopalasubramanian@amd.com> 5472 5473 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4 5474 for AMD bdver3. 5475 54762013-10-16 Jakub Jelinek <jakub@redhat.com> 5477 5478 * BASE-VER: Set to 4.8.3. 5479 * DEV-PHASE: Set to prerelease. 5480 54812013-10-16 Release Manager 5482 5483 * GCC 4.8.2 released. 5484 54852013-10-12 James Greenhalgh <james.greenhalgh@arm.com> 5486 5487 Backport from mainline. 5488 2013-10-12 James Greenhalgh <james.greenhalgh@arm.com> 5489 5490 * config/aarch64/arm_neon.h 5491 (vtbx<1,3>_<psu>8): Fix register constriants. 5492 54932013-10-10 Jakub Jelinek <jakub@redhat.com> 5494 5495 PR middle-end/58670 5496 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument, 5497 if any labels are in FALLTHRU_BB, use a special label emitted 5498 immediately after the asm goto insn rather than label_rtx 5499 of the LABEL_DECL. 5500 (expand_asm_stmt): Adjust caller. 5501 * cfgrtl.c (commit_one_edge_insertion): Force splitting of 5502 edge if the last insn in predecessor is a jump with single successor, 5503 but it isn't simplejump_p. 5504 55052013-10-09 Jakub Jelinek <jakub@redhat.com> 5506 5507 Backport from mainline 5508 2013-09-26 Richard Biener <rguenther@suse.de> 5509 5510 PR tree-optimization/58539 5511 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor 5512 the fact that debug statements are not taking part in loop-closed 5513 SSA construction. 5514 55152013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5516 5517 * config/s390/s390.c (s390_register_info): Make the call-saved FPR 5518 loop to work also for 31bit ABI. 5519 Save the stack pointer for frame_size > 0. 5520 55212013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5522 5523 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry") 5524 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove 5525 constraint letters from expanders. 5526 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the 5527 retry count to general_operand. 5528 ("tabort"): Give operand 0 a mode. 5529 ("tabort_1"): Add mode and constraint letter for operand 0. 5530 * doc/extend.texi: Fix protoype of __builtin_non_tx_store. 5531 55322013-10-04 Marcus Shawcroft <marcus.shawcroft@arm.com> 5533 5534 Backport from mainline. 5535 5536 PR target/58460 5537 * config/aarch64/aarch64.md (*add_<shift>_<mode>) 5538 (*add_<shift>_si_uxtw,*add_mul_imm_<mode>) 5539 (*sub_<shift>_<mode>) 5540 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw): 5541 Remove k constraint. 5542 55432013-10-02 John David Anglin <danglin@gcc.gnu.org> 5544 5545 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file. 5546 55472013-10-01 Jakub Jelinek <jakub@redhat.com> 5548 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5549 5550 PR target/58574 5551 * config/s390/s390.c (s390_chunkify_start): Handle tablejump_p first, 5552 continue when done, for other jumps look through PARALLEL 5553 unconditionally. 5554 55552013-09-30 Jakub Jelinek <jakub@redhat.com> 5556 5557 PR middle-end/58564 5558 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0 5559 optimization, punt if sign_bit_p looked through any zero extension. 5560 55612013-09-27 Paulo Matos <pmatos@broadcom.com> 5562 5563 Backport from mainline. 5564 5565 PR middle-end/58463 5566 2013-03-27 Richard Biener <rguenther@suse.de> 5567 5568 PR tree-optimization/56716 5569 * tree-ssa-structalias.c (perform_var_substitution): Adjust 5570 dumping for ref nodes. 5571 55722013-09-27 Paulo Matos <pmatos@broadcom.com> 5573 5574 Backport from mainline. 5575 5576 2013-09-27 Paulo Matos <pmatos@broadcom.com> 5577 PR middle-end/58463 5578 * gcc.dg/pr58463.c: New test. 5579 55802013-09-23 Eric Botcazou <ebotcazou@adacore.com> 5581 5582 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy 5583 assignment statements. 5584 55852013-09-23 Alan Modra <amodra@gmail.com> 5586 5587 PR target/58330 5588 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems. 5589 55902013-09-23 Alan Modra <amodra@gmail.com> 5591 5592 * config/rs6000/predicates.md (add_cint_operand): New. 5593 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand. 5594 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset 5595 using add_cint_operand. 5596 (largetoc_high_plus_aix): Likewise. 5597 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand. 5598 55992013-09-20 John David Anglin <danglin@gcc.gnu.org> 5600 5601 PR middle-end/56791 5602 * config/pa/pa.c (pa_option_override): Disable auto increment and 5603 decrement instructions until reload is completed. 5604 5605 * config/pa/pa.md: In "scc" insn patterns, change output template to 5606 handle const0_rtx in reg_or_0_operand operands. 5607 56082013-09-19 Jakub Jelinek <jakub@redhat.com> 5609 5610 * omp-low.c (expand_omp_sections): Always pass len - 1 to 5611 GOMP_sections_start, even if !exit_reachable. 5612 56132013-09-18 Richard Earnshaw <rearnsha@arm.com> 5614 5615 * arm.c (arm_expand_prologue): Validate architecture supports 5616 LDRD/STRD before accepting tuning preferences. 5617 (arm_expand_epilogue): Likewise. 5618 56192013-09-18 Daniel Morris <danielm@ecoscentric.com> 5620 Paolo Carlini <paolo.carlini@oracle.com> 5621 5622 PR c++/58458 5623 * doc/implement-cxx.texi: Fix references to the C++ standards. 5624 56252013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 5626 5627 PR tree-optimization/58088 5628 * fold-const.c (mask_with_trailing_zeros): New function. 5629 (fold_binary_loc): Make sure we don't recurse infinitely 5630 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2. 5631 Use mask_with_trailing_zeros where appropriate. 5632 56332013-09-14 John David Anglin <danglin@gcc.gnu.org> 5634 5635 PR target/58382 5636 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC 5637 calls to word_mode. 5638 56392013-09-13 Christian Bruel <christian.bruel@st.com> 5640 5641 PR target/58314 5642 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads. 5643 56442013-09-11 Andi Kleen <ak@linux.intel.com> 5645 5646 Backport from mainline 5647 * doc/extend.texi: Use __atomic_store_n instead of 5648 __atomic_store in HLE example. 5649 56502013-09-11 Andi Kleen <ak@linux.intel.com> 5651 5652 Backport from mainline 5653 * doc/extend.texi: Dont use __atomic_clear in HLE 5654 example. Fix typo. 5655 56562013-09-11 Andi Kleen <ak@linux.intel.com> 5657 5658 Backport from mainline 5659 * doc/extend.texi: Document that __atomic_clear and 5660 __atomic_test_and_set should only be used with bool. 5661 56622013-09-11 Richard Biener <rguenther@suse.de> 5663 5664 PR middle-end/58377 5665 * passes.c (init_optimization_passes): Split critical edges 5666 before late uninit warning pass in the -Og pipeline. 5667 56682013-09-11 Jakub Jelinek <jakub@redhat.com> 5669 5670 PR tree-optimization/58385 5671 * fold-const.c (build_range_check): If both low and high are NULL, 5672 use omit_one_operand_loc to preserve exp side-effects. 5673 56742013-09-10 Richard Earnshaw <rearnsha@arm.com> 5675 5676 PR target/58361 5677 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to 5678 support conditional execution. 5679 (combine_vcvt_f64_<FCVTI32typename>): Likewise. 5680 56812013-09-10 Jakub Jelinek <jakub@redhat.com> 5682 5683 PR rtl-optimization/58365 5684 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P 5685 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if 5686 it differs. 5687 56882013-09-09 Jakub Jelinek <jakub@redhat.com> 5689 5690 PR tree-optimization/58364 5691 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on 5692 BOOLEAN_TYPE, only invert in_p and continue with arg0 if 5693 the current range can't be an unconditional true or false. 5694 56952013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 5696 5697 PR target/57735 5698 Backport from mainline 5699 2013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com> 5700 5701 * explow.c (plus_constant): Pass "mode" to immed_double_int_const. 5702 Use gen_int_mode rather than GEN_INT. 5703 57042013-09-09 Richard Biener <rguenther@suse.de> 5705 5706 Backport from mainline 5707 2013-08-27 Richard Biener <rguenther@suse.de> 5708 5709 PR tree-optimization/57521 5710 * tree-if-conv.c (if_convertible_bb_p): Verify that at least 5711 one edge is non-critical. 5712 (find_phi_replacement_condition): Make sure to use a non-critical 5713 edge. Cleanup and remove old bug workarounds. 5714 (bb_postdominates_preds): Remove. 5715 (if_convertible_loop_p_1): Do not compute post-dominators. 5716 (combine_blocks): Do not free post-dominators. 5717 (main_tree_if_conversion): Likewise. 5718 57192013-09-09 Richard Biener <rguenther@suse.de> 5720 5721 Backport from mainline 5722 2013-09-03 Richard Biener <rguenther@suse.de> 5723 5724 PR middle-end/57656 5725 * fold-const.c (negate_expr_p): Fix division case. 5726 (negate_expr): Likewise. 5727 57282013-09-09 Richard Biener <rguenther@suse.de> 5729 5730 Backport from mainline 5731 2013-08-29 Richard Biener <rguenther@suse.de> 5732 5733 PR tree-optimization/57685 5734 * tree-vrp.c (register_edge_assert_for_1): Recurse only for 5735 single-use operands to avoid exponential complexity. 5736 57372013-09-09 Richard Biener <rguenther@suse.de> 5738 5739 Backport from mainline 5740 2013-08-30 Richard Biener <rguenther@suse.de> 5741 5742 PR tree-optimization/58223 5743 * tree-loop-distribution.c (has_anti_dependence): Rename to ... 5744 (has_anti_or_output_dependence): ... this and adjust to also 5745 look for output dependences. 5746 (mark_nodes_having_upstream_mem_writes): Adjust. 5747 (rdg_flag_uses): Likewise. 5748 57492013-09-03 Richard Biener <rguenther@suse.de> 5750 5751 Backport from mainline 5752 2013-08-29 Richard Biener <rguenther@suse.de> 5753 5754 PR tree-optimization/58246 5755 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly 5756 handle the dominance check inside a basic-block. 5757 57582013-09-03 Richard Biener <rguenther@suse.de> 5759 5760 Backport from mainline 5761 2013-08-30 Richard Biener <rguenther@suse.de> 5762 5763 PR tree-optimization/58228 5764 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not 5765 allow invariant loads in nested loop vectorization. 5766 57672013-09-03 Richard Biener <rguenther@suse.de> 5768 5769 Backport from mainline 5770 2013-08-30 Richard Biener <rguenther@suse.de> 5771 5772 PR tree-optimization/58010 5773 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove 5774 assert that we have a loop-closed PHI. 5775 57762013-09-01 Uros Bizjak <ubizjak@gmail.com> 5777 5778 Backport from mainline 5779 2013-08-31 Uros Bizjak <ubizjak@gmail.com> 5780 5781 * config/alpha/alpha.c (alpha_emit_conditional_move): Update 5782 "cmp" RTX before signed_comparison_operator check to account 5783 for "code" changes. 5784 57852013-09-01 John David Anglin <danglin@gcc.gnu.org> 5786 5787 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns. 5788 57892013-08-30 Jakub Jelinek <jakub@redhat.com> 5790 5791 PR tree-optimization/58277 5792 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up 5793 after seeing too many stmts with vdef in between dombb and current 5794 bb, invalidate everything. 5795 57962013-08-29 Oleg Endo <olegendo@gcc.gnu.org> 5797 5798 Backport from mainline 5799 2013-08-05 Oleg Endo <olegendo@gcc.gnu.org> 5800 5801 PR other/12081 5802 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new 5803 class insn_gen_fn. 5804 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument 5805 rtx (*) (rtx, ...) with insn_gen_fn. 5806 * genoutput.c (output_insn_data): Cast gen_? function pointers to 5807 insn_gen_fn::stored_funcptr. Add initializer braces. 5808 5809 Backport from mainline 5810 2013-08-07 Oleg Endo <olegendo@gcc.gnu.org> 5811 5812 PR other/12081 5813 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef. 5814 (rs6000_emit_swdiv_high_precision, rs6000_emit_swdiv_low_precision, 5815 rs6000_emit_swrsqrt): Don't cast result of GEN_FCN to gen_2arg_fn_t. 5816 58172013-08-29 Jakub Jelinek <jakub@redhat.com> 5818 5819 Backported from mainline 5820 2013-05-27 Richard Biener <rguenther@suse.de> 5821 5822 PR middle-end/57381 5823 PR tree-optimization/57417 5824 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test 5825 for unchanged base. 5826 (set_ssa_val_to): Compare addresses using 5827 get_addr_base_and_unit_offset. 5828 5829 PR tree-optimization/57396 5830 * tree-affine.c (double_int_constant_multiple_p): Properly 5831 return false for val == 0 and div != 0. 5832 5833 PR tree-optimization/57343 5834 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not 5835 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED. 5836 (number_of_iterations_cond): Do not build the folded tree. 5837 58382013-08-28 Jakub Jelinek <jakub@redhat.com> 5839 5840 PR middle-end/58257 5841 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag. 5842 58432013-08-28 Richard Biener <rguenther@suse.de> 5844 5845 Backport from mainline 5846 2013-06-24 Richard Biener <rguenther@suse.de> 5847 5848 PR middle-end/56977 5849 * passes.c (init_optimization_passes): Move pass_fold_builtins 5850 and pass_dce earlier with -Og. 5851 58522013-08-28 Uros Bizjak <ubizjak@gmail.com> 5853 5854 Backport from mainline 5855 2013-08-27 H.J. Lu <hongjiu.lu@intel.com> 5856 5857 * config/i386/driver-i386.c (host_detect_local_cpu): Update 5858 Haswell processor detection. 5859 5860 Backport from mainline 5861 2013-08-27 Christian Widmer <shadow@umbrox.de> 5862 5863 PR target/57927 5864 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection 5865 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown 5866 AVX2 capable processors. 5867 58682013-08-23 Jakub Jelinek <jakub@redhat.com> 5869 5870 PR target/58218 5871 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define. 5872 * config/i386/i386.c (x86_64_elf_section_type_flags): New function. 5873 5874 PR tree-optimization/58209 5875 * tree-tailcall.c (find_tail_calls): Give up for pointer result types 5876 if m or a is non-NULL. 5877 58782013-08-21 Richard Earnshaw <rearnsha@arm.com> 5879 5880 PR target/56979 5881 * arm.c (aapcs_vfp_allocate): Decompose the argument if the 5882 suggested mode for the assignment isn't compatible with the 5883 registers required. 5884 58852013-08-20 Alan Modra <amodra@gmail.com> 5886 5887 PR target/57865 5888 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust. 5889 (rs6000_emit_epilogue): Likewise. 5890 58912013-08-19 Peter Bergner <bergner@vnet.ibm.com> 5892 Jakub Jelinek <jakub@redhat.com> 5893 5894 Backport from mainline 5895 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping 5896 destination and source operands. 5897 58982013-08-18 Jakub Jelinek <jakub@redhat.com> 5899 5900 PR tree-optimization/58006 5901 * tree-parloops.c (take_address_of): Don't ICE if get_name 5902 returns NULL. 5903 (eliminate_local_variables_stmt): Remove clobber stmts. 5904 59052013-08-16 Jakub Jelinek <jakub@redhat.com> 5906 5907 PR tree-optimization/58164 5908 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr 5909 walk gimple_goto_dest of GIMPLE_GOTO. 5910 5911 PR tree-optimization/58165 5912 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If 5913 bi_call must be the last stmt in a bb, don't split_block, instead 5914 use fallthru edge from it and give up if there is none. 5915 Release conds vector when returning early. 5916 59172013-08-15 David Given <dg@cowlark.com> 5918 5919 Backport from mainline 5920 2013-04-26 Vladimir Makarov <vmakarov@redhat.com> 5921 5922 * lra-constraints.c (process_alt_operands): Use #if HAVE_ATTR_enable 5923 instead of #ifdef. 5924 59252013-08-14 Jakub Jelinek <jakub@redhat.com> 5926 5927 PR tree-optimization/58145 5928 * tree-sra.c (build_ref_for_offset): If prev_base has 5929 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF. 5930 59312013-08-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5932 5933 * config/s390/htmxlintrin.h: Add file missing from last commit. 5934 * config/s390/htmintrin.h: Likewise. 5935 * config/s390/s390intrin.h: Likewise. 5936 59372013-08-14 Uros Bizjak <ubizjak@gmail.com> 5938 5939 Backport from mainline 5940 2013-08-13 Uros Bizjak <ubizjak@gmail.com> 5941 5942 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix 5943 when Pmode != word_mode. Add length_address attribute. 5944 (sse3_monitor_<mode>): Merge from sse3_monitor and 5945 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when 5946 Pmode != word_mode. Update insn length attribute. 5947 * config/i386/i386.c (ix86_option_override_internal): Update 5948 ix86_gen_monitor selection for merged sse3_monitor insn. 5949 59502013-08-14 Jakub Jelinek <jakub@redhat.com> 5951 Alexandre Oliva <aoliva@redhat.com> 5952 5953 PR target/58067 5954 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC 5955 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle 5956 there also UNSPEC_PLTOFF. 5957 59582013-08-13 Jakub Jelinek <jakub@redhat.com> 5959 5960 PR sanitizer/56417 5961 * asan.c (instrument_strlen_call): Fix typo in comment. 5962 Use char * type even for the lhs of POINTER_PLUS_EXPR. 5963 59642013-08-13 Vladimir Makarov <vmakarov@redhat.com> 5965 5966 Backport from mainline 5967 2013-06-06 Vladimir Makarov <vmakarov@redhat.com> 5968 5969 PR rtl-optimization/57459 5970 * lra-constraints.c (update_ebb_live_info): Fix typo for operand 5971 type when setting live regs. 5972 59732013-08-13 Marek Polacek <polacek@redhat.com> 5974 Jakub Jelinek <jakub@redhat.com> 5975 5976 PR tree-optimization/57980 5977 * tree-tailcall.c (process_assignment): Return false 5978 when not dealing with integers or floats. 5979 59802013-08-12 Andrew Haley <aph@redhat.com> 5981 5982 Backport from mainline: 5983 * 2013-07-11 Andreas Schwab <schwab@suse.de> 5984 5985 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define. 5986 59872013-08-13 Uros Bizjak <ubizjak@gmail.com> 5988 5989 Backport from mainline 5990 2013-08-12 Perez Read <netfirewall@gmail.com> 5991 5992 PR target/58132 5993 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before 5994 operand 0 for intel asm alternative. 5995 (*movabs<mode>_2): Ditto for operand 1. 5996 59972013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org> 5998 5999 Backport from mainline: 6000 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org> 6001 6002 * config/arm/neon.md (vcond): Fix floating-point vector 6003 comparisons against 0. 6004 60052013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6006 6007 Backport from mainline: 6008 2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6009 6010 * config/arm/neon.md (movmisalign<mode>): Disable when we 6011 don't allow unaligned accesses. 6012 (*movmisalign<mode>_neon_store): Likewise. 6013 (*movmisalign<mode>_neon_load): Likewise. 6014 (*movmisalign<mode>_neon_store): Likewise. 6015 (*movmisalign<mode>_neon_load): Likewise. 6016 60172013-08-06 Martin Jambor <mjambor@suse.cz> 6018 6019 PR middle-end/58041 6020 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built 6021 MEM_REF has proper alignment information. 6022 60232013-08-05 Richard Earnshaw <rearnsha@arm.com> 6024 6025 PR rtl-optimization/57708 6026 * recog.c (peep2_find_free_register): Validate all regs in a 6027 multi-reg mode. 6028 60292013-08-02 Eric Botcazou <ebotcazou@adacore.com> 6030 6031 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add 6032 the implied StoreLoad barrier for atomic operations if before. 6033 60342013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6035 6036 Backports from mainline: 6037 2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6038 6039 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to 6040 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT. 6041 (struct machine_function): Add tbegin_p. 6042 (s390_canonicalize_comparison): Fold CC mode compares to 6043 conditional jump if possible. 6044 (s390_emit_jump): Return the emitted jump. 6045 (s390_branch_condition_mask, s390_branch_condition_mnemonic): 6046 Handle CCRAWmode compares. 6047 (s390_option_override): Default to -mhtm if available. 6048 (s390_reg_clobbered_rtx): Handle floating point regs as well. 6049 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for 6050 FPRs instead of df_regs_ever_live_p. 6051 (s390_optimize_nonescaping_tx): New function. 6052 (s390_init_frame_layout): Extend clobbered_regs array to cover 6053 FPRs as well. 6054 (s390_emit_prologue): Call s390_optimize_nonescaping_tx. 6055 (s390_expand_tbegin): New function. 6056 (enum s390_builtin): New enum definition. 6057 (code_for_builtin): New array definition. 6058 (s390_init_builtins): New function. 6059 (s390_expand_builtin): New function. 6060 (TARGET_INIT_BUILTINS): Define. 6061 (TARGET_EXPAND_BUILTIN): Define. 6062 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX. 6063 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode. 6064 (s390_alc_comparison): Likewise. 6065 * config/s390/s390-modes.def: Add CCRAWmode. 6066 * config/s390/s390.h (processor_flags): Add PF_TX. 6067 (TARGET_CPU_HTM): Define macro. 6068 (TARGET_HTM): Define macro. 6069 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm. 6070 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to 6071 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT. 6072 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT) 6073 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum 6074 values. 6075 (TBEGIN_MASK, TBEGINC_MASK): New constants. 6076 ("*cc_to_int"): Move up. 6077 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer 6078 constants other than 0. 6079 ("*ccraw_to_int"): New insn and splitter definition. 6080 ("tbegin", "tbegin_nofloat", "tbegin_retry") 6081 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort") 6082 ("tx_assist"): New expander. 6083 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1") 6084 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition. 6085 * config/s390/s390.opt: Add -mhtm option. 6086 * config/s390/s390-protos.h (s390_emit_jump): Add return type. 6087 * config/s390/htmxlintrin.h: New file. 6088 * config/s390/htmintrin.h: New file. 6089 * config/s390/s390intrin.h: New file. 6090 * doc/extend.texi: Document htm builtins. 6091 * config.gcc: Add the new header files to extra_headers. 6092 6093 2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6094 6095 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be 6096 enabled without -march=zEC12. 6097 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine 6098 flags to be set. 6099 61002013-08-01 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 6101 6102 Backport from mainline 6103 2013-05-13 Ganesh Gopalasubramanian 6104 <Ganesh.Gopalasubramanian@amd.com> 6105 6106 * config/i386/i386.c (processor_target_table): Modified default 6107 alignment values for AMD BD and BT architectures. 6108 61092013-07-31 Sriraman Tallam <tmsriram@google.com> 6110 6111 * config/i386/i386.c (dispatch_function_versions): Fix array 6112 indexing of function_version_info to match actual_versions. 6113 61142013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de> 6115 6116 * config.gcc (*-*-rtems*): Use __cxa_atexit by default. 6117 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define. 6118 61192013-07-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6120 6121 Backport from mainline 6122 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6123 6124 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define. 6125 6126 2013-07-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6127 6128 * config/s390/linux-unwind.h: Use the proper dwarf to hard reg 6129 mapping for FPRs when creating the fallback framestate. 6130 6131 2013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com> 6132 6133 * config/s390/s390.md ("movcc"): Swap load and store instructions. 6134 61352013-07-25 Terry Guo <terry.guo@arm.com> 6136 6137 Backport from mainline: 6138 2013-07-25 Terry Guo <terry.guo@arm.com> 6139 6140 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for 6141 shift_add/shift_sub0/shift_sub1 RTXs. 6142 61432013-07-22 Iain Sandoe <iain@codesourcery.com> 6144 6145 Backport from mainline: 6146 2013-07-22 Uros Bizjak <ubizjak@gmail.com> 6147 6148 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if 6149 it is not needed after split. 6150 6151 2013-07-20 Iain Sandoe <iain@codesourcery.com> 6152 6153 PR target/51784 6154 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a 6155 second label for nonlocal goto receivers. Don't output pic base labels 6156 unless we're producing PIC; mark that action unreachable(). 6157 (ix86_save_reg): If the function contains a nonlocal label, save the 6158 PIC base reg. 6159 * config/darwin-protos.h (machopic_should_output_picbase_label): New. 6160 * gcc/config/darwin.c (emitted_pic_label_num): New GTY. 6161 (update_pic_label_number_if_needed): New. 6162 (machopic_output_function_base_name): Adjust for nonlocal receiver 6163 case. 6164 (machopic_should_output_picbase_label): New. 6165 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New. 6166 (nonlocal_goto_receiver): New insn and split. 6167 61682013-07-19 Wei Mi <wmi@google.com> 6169 6170 Backport from mainline: 6171 2013-07-18 Vladimir Makarov <vmakarov@redhat.com> 6172 Wei Mi <wmi@google.com> 6173 6174 PR rtl-optimization/57878 6175 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the 6176 top. Promote lra_assert to gcc_assert. 6177 (reload_pseudo_compare_func): Check regs first for reload pseudos. 6178 61792013-07-11 Georg-Johann Lay <avr@gjlay.de> 6180 6181 Backport from 2013-07-19 trunk r201051. 6182 6183 PR target/57516 6184 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn. 6185 * config/avr/avr.md (adjust_len): Add `round'. 6186 * config/avr/avr-protos.h (avr_out_round): New prototype. 6187 (avr_out_plus): Add `out_label' argument. 6188 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument. 6189 (avr_out_plus): Pass down `out_label' to avr_out_plus_1. 6190 Handle the case where `insn' is just a pattern. 6191 (avr_out_bitop): Handle the case where `insn' is just a pattern. 6192 (avr_out_round): New function. 6193 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND. 6194 61952013-07-19 Kirill Yukhin <kirill.yukhin@intel.com> 6196 6197 * config/i386/bmiintrin.h (_bextr_u32): New. 6198 (_bextr_u64): Ditto. 6199 (_blsi_u32): New. 6200 (_blsi_u64): Ditto. 6201 (_blsr_u32): Ditto. 6202 (_blsr_u64): Ditto. 6203 (_blsmsk_u32): Ditto. 6204 (_blsmsk_u64): Ditto. 6205 (_tzcnt_u32): Ditto. 6206 (_tzcnt_u64): Ditto. 6207 62082013-07-17 James Greenhalgh <james.greenhalgh@arm.com> 6209 6210 Backport From mainline: 6211 2013-07-03 James Greenhalgh <james.greenhalgh@arm.com> 6212 6213 * config/aarch64/aarch64-builtins.c 6214 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1. 6215 * config/aarch64/aarch64-simd-builtins.def (ld1): New. 6216 (st1): Likewise. 6217 * config/aarch64/aarch64-simd.md 6218 (aarch64_ld1<VALL:mode>): New. 6219 (aarch64_st1<VALL:mode>): Likewise. 6220 * config/aarch64/arm_neon.h 6221 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins. 6222 62232013-07-11 Georg-Johann Lay <avr@gjlay.de> 6224 6225 Backport from 2013-07-11 trunk r200901. 6226 6227 PR target/57631 6228 * config/avr/avr.c (avr_set_current_function): Sanity-check signal 6229 name seen by assembler/linker if available. 6230 62312013-07-10 Georg-Johann Lay <avr@gjlay.de> 6232 6233 Backport from 2013-07-10 trunk r200872. 6234 6235 PR target/57844 6236 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode 6237 of my_fp. 6238 62392013-07-10 Georg-Johann Lay <avr@gjlay.de> 6240 6241 Backport from 2013-07-10 trunk r200870. 6242 6243 PR target/57506 6244 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb) 6245 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb) 6246 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1): 6247 Remove duplicate devices. 6248 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs. 6249 * config/avr/t-multilib: Regenerate. 6250 * config/avr/avr-tables.opt: Regenerate. 6251 * doc/avr-mmcu.texi: Regenerate. 6252 62532013-07-10 Georg-Johann Lay <avr@gjlay.de> 6254 6255 PR target/56987 6256 * config/avr/avr.opt (Waddr-space-convert): Fix typo. 6257 62582013-07-09 Joseph Myers <joseph@codesourcery.com> 6259 6260 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only 6261 adjust register size for TDmode and TFmode for VSX registers. 6262 62632013-07-08 Kai Tietz <ktietz@redhat.com> 6264 6265 Backport from mainline 6266 PR target/56892 6267 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as 6268 hook_bool_const_tree_true. 6269 62702013-07-08 Uros Bizjak <ubizjak@gmail.com> 6271 6272 Backport from mainline 6273 2013-07-07 Uros Bizjak <ubizjak@gmail.com> 6274 6275 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check 6276 signature_TM2_ebx, it interferes with signature_INTEL_ebx. 6277 6278 Backport from mainline 6279 2013-07-06 Uros Bizjak <ubizjak@gmail.com> 6280 6281 * config/i386/sse.md (sse_movlhps): Change alternative 3 6282 of operand 2 to "m". 6283 62842013-07-08 Eric Botcazou <ebotcazou@adacore.com> 6285 6286 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H). 6287 62882013-07-08 Jakub Jelinek <jakub@redhat.com> 6289 6290 PR rtl-optimization/57829 6291 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that 6292 mask bits outside of mode are just sign-extension from mode to HWI. 6293 62942013-07-03 Jakub Jelinek <jakub@redhat.com> 6295 6296 PR target/57777 6297 * config/i386/predicates.md (vsib_address_operand): Disallow 6298 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic. 6299 63002013-06-30 Terry Guo <terry.guo@arm.com> 6301 6302 Backport from mainline 6303 2013-03-27 Bin Cheng <bin.cheng@arm.com> 6304 6305 PR target/56102 6306 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix 6307 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with 6308 mult-word mode. 6309 63102013-06-28 Jakub Jelinek <jakub@redhat.com> 6311 6312 PR target/57736 6313 * config/i386/i386.c (ix86_expand_builtin): If target == NULL 6314 and mode is VOIDmode, don't create a VOIDmode pseudo to copy result 6315 into. 6316 63172013-06-27 Jakub Jelinek <jakub@redhat.com> 6318 6319 PR target/57623 6320 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and 6321 constraints of operand 1 and 2. 6322 6323 PR target/57623 6324 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments 6325 to match RTL canonicalization. Swap predicates and 6326 constraints of operand 1 and 2. 6327 6328 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var 6329 decl before the loop, initialize to NULL. 6330 (vectorizable_load): Initialize ptr_incr to NULL. 6331 63322013-06-24 Martin Jambor <mjambor@suse.cz> 6333 6334 PR tree-optimization/57358 6335 * ipa-prop.c (parm_ref_data_preserved_p): Always return true when 6336 not optimizing. 6337 63382013-06-24 Alan Modra <amodra@gmail.com> 6339 6340 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian. 6341 (gen_easy_altivec_constant): Likewise. 6342 * config/rs6000/predicates.md (easy_vector_constant_add_self, 6343 easy_vector_constant_msb): Likewise. 6344 63452013-06-21 Uros Bizjak <ubizjak@gmail.com> 6346 6347 Backport from mainline 6348 2013-06-20 Uros Bizjak <ubizjak@gmail.com> 6349 6350 PR target/57655 6351 * config/i386/i386.c (construct_container): Report error if 6352 long double is used with disabled x87 float returns. 6353 63542013-06-20 Wei Mi <wmi@google.com> 6355 6356 Backport from mainline 6357 2013-06-19 Wei Mi <wmi@google.com> 6358 6359 PR rtl-optimization/57518 6360 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno] 6361 if regno is used in paradoxical subreg. 6362 (update_equiv_regs): Check pdx_subregs[regno] before 6363 set a reg to be equivalent with a mem. 6364 6365 63662013-06-20 David Edelsohn <dje.gcc@gmail.com> 6367 6368 Backport from mainline 6369 2013-06-19 David Edelsohn <dje.gcc@gmail.com> 6370 6371 PR driver/57652 6372 * collect2.c (collect_atexit): New. 6373 (collect_exit): Delete. 6374 (main): Register collect_atexit with atexit. 6375 (collect_wait): Change collect_exit to exit. 6376 (do_wait): Same. 6377 * collect2.h (collect_exit): Delete. 6378 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit. 6379 63802013-06-19 Matthias Klose <doko@ubuntu.com> 6381 6382 PR driver/57651 6383 * file-find.h (find_a_file): Add a mode parameter. 6384 * file-find.c (find_a_file): Likewise. 6385 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin, 6386 with X_OK for the executables. 6387 * collect2.c (main): Call find_a_file with X_OK. 6388 63892013-06-19 Igor Zamyatin <igor.zamyatin@intel.com> 6390 6391 * doc/invoke.texi (core-avx2): Document. 6392 (atom): Updated with MOVBE. 6393 63942013-06-19 Jakub Jelinek <jakub@redhat.com> 6395 6396 PR driver/57651 6397 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for 6398 PERSONALITY in $PATH derived prefixes. 6399 64002013-06-19 Paolo Carlini <paolo.carlini@oracle.com> 6401 6402 PR c++/56544 6403 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document 6404 that now in C++ the value is correct per the C++ standards. 6405 64062013-06-19 Alan Modra <amodra@gmail.com> 6407 6408 Apply mainline patches 6409 2013-06-13 Alan Modra <amodra@gmail.com> 6410 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define. 6411 * config/rs6000/rs6000.md (signbittf2): New insn. 6412 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST. 6413 (abstf2_internal, cmptf_internal2): Likewise. 6414 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise. 6415 6416 2013-06-11 Anton Blanchard <anton@samba.org> 6417 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate 6418 correct shift value in little-endian mode. 6419 6420 2013-06-07 Alan Modra <amodra@gmail.com> 6421 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up 6422 va_list_gpr_size. 6423 6424 2013-06-04 Alan Modra <amodra@gmail.com> 6425 * config/rs6000/rs6000.c (output_toc): Correct little-endian float 6426 constant output. 6427 6428 2013-05-10 Alan Modra <amodra@gmail.com> 6429 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases. 6430 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text. 6431 * configure: Regenerate. 6432 6433 2013-05-09 Alan Modra <amodra@gmail.com> 6434 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and 6435 powerpc64le. 6436 * configure: Regenerate. 6437 6438 2013-05-07 Anton Blanchard <anton@samba.org> 6439 * configure.ac (HAVE_LD_LARGE_TOC): Use right linker emulation 6440 for powerpc64 little endian. 6441 * configure: Regenerate. 6442 6443 2013-05-06 Alan Modra <amodra@gmail.com> 6444 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define. 6445 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT. 6446 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define. 6447 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define. 6448 (LINK_TARGET_SPEC): Use ENDIAN_SELECT. 6449 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig. 6450 6451 2013-05-06 Alan Modra <amodra@gmail.com> 6452 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from 6453 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too. 6454 (DEFAULT_ASM_ENDIAN): Define. 6455 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT. 6456 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options. 6457 Update -K PIC clause from sysv4.h. 6458 (ASM_SPEC_COMMON): Use ENDIAN_SELECT. 6459 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise. 6460 6461 2013-05-06 Alan Modra <amodra@gmail.com> 6462 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words 6463 twice for little-endian. 6464 (ashrdi3_no_power, ashrdi3): Support little-endian. 6465 6466 2013-04-25 Alan Modra <amodra@gmail.com> 6467 * config.gcc: Support little-endian powerpc-linux targets. 6468 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define. 6469 (LINK_OS_LINUX_SPEC): Define. 6470 * config/rs6000/linuxspe.h (TARGET_DEFAULT): 6471 Preserve MASK_LITTLE_ENDIAN. 6472 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise. 6473 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise. 6474 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero. 6475 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define. 6476 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above. 6477 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF. 6478 Correct fp word order for little-endian. Don't shift toc entries 6479 smaller than a word for little-endian. 6480 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment. 6481 (bswapdi2 splits): Correct low-part subreg for little-endian. 6482 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove 6483 low/high where such is correct only for be. 6484 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow 6485 little-endian for -mcall-aixdesc. 6486 64872013-06-12 Martin Jambor <mjambor@suse.cz> 6488 6489 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is 6490 within bounds at the beginning of the function. 6491 64922013-06-12 Jakub Jelinek <jakub@redhat.com> 6493 6494 PR tree-optimization/57537 6495 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If 6496 vect_handle_widen_op_by_const, convert oprnd1 to half_type1. 6497 64982013-06-10 Uros Bizjak <ubizjak@gmail.com> 6499 6500 Backport from mainline 6501 2013-06-10 Uros Bizjak <ubizjak@gmail.com> 6502 6503 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use 6504 cmp_code to construct REG_EQUAL note. 6505 65062013-06-10 Oleg Endo <olegendo@gcc.gnu.org> 6507 6508 Backport from mainline 6509 2013-05-20 Oleg Endo <olegendo@gcc.gnu.org> 6510 6511 PR target/56547 6512 * config/sh/sh.md (fmasf4): Remove empty constraints strings. 6513 (*fmasf4, *fmasf4_media): New insns. 6514 65152013-06-09 Jakub Jelinek <jakub@redhat.com> 6516 6517 PR target/57568 6518 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure 6519 that operands[2] doesn't overlap with operands[0]. 6520 65212013-06-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com> 6522 6523 * recog.c (offsettable_address_addr_space_p): Fix calculation of 6524 address mode. Move pointer mode initialization to the same place. 6525 65262013-06-07 Sofiane Naci <sofiane.naci@arm.com> 6527 6528 Backport from mainline 6529 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute. 6530 65312013-06-07 Uros Bizjak <ubizjak@gmail.com> 6532 6533 Backport from mainline 6534 2013-06-05 Uros Bizjak <ubizjak@gmail.com> 6535 6536 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all 6537 GE, GT, GEU and GTU compares, modulo DImode compares with zero. 6538 6539 Backport from mainline 6540 2013-05-23 Uros Bizjak <ubizjak@gmail.com> 6541 6542 PR target/57379 6543 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE. 6544 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct 6545 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec. 6546 65472013-06-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 6548 6549 Backport from mainline. 6550 2013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 6551 6552 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define. 6553 65542013-06-03 James Greenhalgh <james.greenhalgh@arm.com> 6555 6556 Backport from mainline. 6557 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com> 6558 6559 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf 6560 format specifier in 'X' case. 6561 65622013-05-31 Richard Henderson <rth@redhat.com> 6563 6564 PR target/56742 6565 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New. 6566 (ix86_reorg): Call it. 6567 65682012-05-31 Jakub Jelinek <jakub@redhat.com> 6569 6570 * BASE-VER: Set to 4.8.2. 6571 * DEV-PHASE: Set to prerelease. 6572 65732013-05-31 Release Manager 6574 6575 * GCC 4.8.1 released. 6576 65772013-05-24 Greta Yorsh <Greta.Yorsh@arm.com> 6578 6579 Backport from mainline 6580 2013-05-02 Greta Yorsh <Greta.Yorsh@arm.com> 6581 6582 PR target/56732 6583 * config/arm/arm.c (arm_expand_epilogue): Check really_return before 6584 generating simple_return for naked functions. 6585 65862013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com> 6587 6588 PR tree-ssa/57385 6589 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check 6590 that index is not negative. 6591 65922013-05-23 Martin Jambor <mjambor@suse.cz> 6593 6594 PR middle-end/57347 6595 * tree.h (contains_bitfld_component_ref_p): Declare. 6596 * tree-sra.c (contains_bitfld_comp_ref_p): Move... 6597 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its caller. 6598 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does 6599 not access a bit-field. Assert all final offsets are byte-aligned. 6600 66012013-05-23 Richard Biener <rguenther@suse.de> 6602 6603 PR rtl-optimization/57341 6604 * ira.c (validate_equiv_mem_from_store): Use anti_dependence 6605 instead of true_dependence. 6606 66072013-05-23 Jakub Jelinek <jakub@redhat.com> 6608 6609 PR middle-end/57344 6610 * expmed.c (store_split_bit_field): If op0 is a REG or 6611 SUBREG of a REG, don't lower unit. Handle unit not being 6612 always BITS_PER_WORD. 6613 66142013-05-22 Uros Bizjak <ubizjak@gmail.com> 6615 6616 PR target/57356 6617 * config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups 6618 for non-sse2 targets. 6619 (*movti_internal): Simplify mode attribute calculation. 6620 66212013-05-22 Richard Biener <rguenther@suse.de> 6622 6623 Backport from mainline 6624 2013-05-21 Richard Biener <rguenther@suse.de> 6625 6626 PR tree-optimization/57318 6627 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not 6628 estimate stmts with side-effects as likely eliminated. 6629 6630 2013-05-21 Richard Biener <rguenther@suse.de> 6631 6632 PR tree-optimization/57330 6633 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly 6634 preserve the call stmts fntype. 6635 6636 2013-05-21 Richard Biener <rguenther@suse.de> 6637 6638 PR tree-optimization/57303 6639 * tree-ssa-sink.c (statement_sink_location): Properly handle 6640 self-assignments. 6641 66422013-05-21 Magnus Granberg <baldrick@free.fr> 6643 6644 PR plugins/56754 6645 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H). 6646 66472013-05-21 Eric Botcazou <ebotcazou@adacore.com> 6648 6649 Backport from mainline 6650 2013-05-14 Eric Botcazou <ebotcazou@adacore.com> 6651 6652 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete. 6653 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise. 6654 66552013-05-17 Jakub Jelinek <jakub@redhat.com> 6656 6657 PR rtl-optimization/57281 6658 PR rtl-optimization/57300 6659 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove. 6660 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo 6661 what the other splitter did if the registers are dead. 6662 66632013-05-17 Uros Bizjak <ubizjak@gmail.com> 6664 6665 Backport from mainline 6666 2013-05-16 Uros Bizjak <ubizjak@gmail.com> 6667 6668 * config/i386/driver-i386.c (host_detect_local_cpu): Determine 6669 cache parameters using detect_caches_amd also for CYRIX, 6670 NSC and TM2 signatures. 6671 6672 2013-05-16 Uros Bizjak <ubizjak@gmail.com> 6673 Dzianis Kahanovich <mahatma@eu.by> 6674 6675 PR target/45359 6676 PR target/46396 6677 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 6678 VIA/Centaur processors and determine their cache parameters 6679 using detect_caches_amd. 6680 6681 2013-05-15 Uros Bizjak <ubizjak@gmail.com> 6682 6683 * config/i386/i386.c (ix86_option_override_internal): Update 6684 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add 6685 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on 6686 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets. 6687 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead 6688 of TARGET_3DNOW. 6689 (*prefetch_3dnow): Enable for TARGET_PRFCHW only. 6690 66912013-05-17 Jakub Jelinek <jakub@redhat.com> 6692 6693 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread 6694 linking. 6695 6696 PR tree-optimization/57051 6697 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR, 6698 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling. 6699 67002013-05-16 Jakub Jelinek <jakub@redhat.com> 6701 6702 * omp-low.c (extract_omp_for_data): For collapsed loops, 6703 if at least one of the loops is known at compile time to 6704 iterate zero times, set count to 0. 6705 (expand_omp_regimplify_p): New function. 6706 (expand_omp_for_generic): For collapsed loops, if at least 6707 one of the loops isn't known to iterate at least once, 6708 add runtime check with setting count to 0. 6709 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): 6710 For unsigned types if it isn't known at compile time that 6711 the loop will iterate at least once, add runtime check to bypass 6712 the whole loop if initial condition isn't true. 6713 67142013-05-14 Jakub Jelinek <jakub@redhat.com> 6715 6716 PR middle-end/57251 6717 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle 6718 the case when both op0 and op1 have VOIDmode. 6719 67202013-05-13 Jakub Jelinek <jakub@redhat.com> 6721 6722 PR tree-optimization/57230 6723 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop 6724 check. 6725 67262013-05-12 Joern Rennecke <joern.rennecke@embecosm.com> 6727 6728 * config/epiphany/epiphany.c (epiphany_init): Check size of 6729 NUM_MODES_FOR_MODE_SWITCHING. 6730 (epiphany_expand_prologue): 6731 Remove CONFIG_REGNUM initial value handling code. 6732 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG. 6733 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise. 6734 (emit_set_fp_mode, epiphany_mode_after): Likewise. 6735 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>: 6736 Don't return 1 for FP_MODE_NONE. 6737 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING): 6738 Add value for EPIPHANY_MSW_ENTITY_CONFIG. 6739 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define. 6740 * config/epiphany/epiphany.md (save_config): New pattern. 6741 67422013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 6743 6744 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib. 6745 Add mthumb/march=armv7-a multilib. 6746 Add mthumb/march=armv7-r multilib. 6747 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib. 6748 67492013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org> 6750 6751 PR target/57237 6752 * config/v850/t-rtems: Add more multilibs. 6753 67542013-05-10 Richard Biener <rguenther@suse.de> 6755 6756 PR tree-optimization/57214 6757 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do 6758 not propagate from SSA names that occur in abnormal PHI nodes. 6759 67602013-05-10 Alan Modra <amodra@gmail.com> 6761 6762 PR target/55033 6763 * varasm.c (default_elf_select_section): Move !DECL_P check.. 6764 (get_named_section): ..to here before calling get_section_name. 6765 Adjust assertion. 6766 (default_section_type_flags): Add DECL_P check. 6767 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise. 6768 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise. 6769 67702013-05-09 Joern Rennecke <joern.rennecke@embecosm.com> 6771 6772 * config/epiphany/epiphany.c (epiphany_expand_prologue): 6773 When using gen_stack_adjust_str with a register offset, add a 6774 REG_FRAME_RELATED_EXPR note. 6775 67762013-05-09 Martin Jambor <mjambor@suse.cz> 6777 6778 PR middle-end/56988 6779 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref. 6780 * ipa-cp.c (find_aggregate_values_for_callers_subset): Fill in the 6781 by_ref flag of ipa_agg_replacement_value structures. 6782 (known_aggs_to_agg_replacement_list): Likewise. 6783 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag. 6784 (read_agg_replacement_chain): Likewise. 6785 (ipcp_transform_function): Also check that by_ref flags match. 6786 67872013-05-08 Diego Novillo <dnovillo@google.com> 6788 6789 PR bootstrap/54659 6790 6791 Revert: 6792 6793 2012-08-17 Diego Novillo <dnovillo@google.com> 6794 6795 PR bootstrap/54281 6796 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list. 6797 * config.in: Regenerate. 6798 * configure: Regenerate. 6799 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is 6800 set. 6801 68022013-05-08 Paolo Carlini <paolo.carlini@oracle.com> 6803 6804 PR tree-optimization/57200 6805 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations): 6806 Only call inform if the preceding warning_at returns true. 6807 68082013-05-07 Jakub Jelinek <jakub@redhat.com> 6809 6810 PR tree-optimization/57149 6811 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline. 6812 (can_skip_redundant_opnd, compute_uninit_opnds_pos, 6813 collect_phi_def_edges, execute_late_warn_uninitialized): Use 6814 uninit_undefined_value_p instead of ssa_undefined_value_p. 6815 6816 PR debug/57184 6817 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR 6818 for modifier == EXPAND_INITIALIZER. 6819 68202013-05-07 Richard Biener <rguenther@suse.de> 6821 6822 Backport from mainline 6823 2013-05-06 Richard Biener <rguenther@suse.de> 6824 6825 PR tree-optimization/57185 6826 * tree-parloops.c (add_field_for_reduction): Handle anonymous 6827 SSA names properly. 6828 6829 2013-04-19 Richard Biener <rguenther@suse.de> 6830 6831 PR tree-optimization/57000 6832 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals. 6833 68342013-05-06 Michael Meissner <meissner@linux.vnet.ibm.com> 6835 6836 Backport from trunk 6837 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com> 6838 6839 PR target/57150 6840 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode 6841 to save TFmode registers and DImode to save TImode registers for 6842 caller save operations. 6843 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to 6844 mark being partially clobbered since they only use the first 6845 double word. 6846 6847 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode 6848 and TDmode only use the upper 64-bits of each VSX register. 6849 68502013-05-06 Oleg Endo <olegendo@gcc.gnu.org> 6851 6852 PR target/57108 6853 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator. 6854 68552013-05-06 Uros Bizjak <ubizjak@gmail.com> 6856 6857 Backport from mainline 6858 2013-05-06 Uros Bizjak <ubizjak@gmail.com> 6859 6860 PR target/57106 6861 * config/i386/i386.c (add_parameter_dependencies): Add dependence 6862 between "first_arg" and "insn", not "last" and "insn". 6863 68642013-05-03 Jakub Jelinek <jakub@redhat.com> 6865 6866 PR rtl-optimization/57130 6867 * combine.c (make_compound_operation) <case SUBREG>: Pass 6868 SET instead of COMPARE as in_code to the recursive call 6869 if needed. 6870 6871 Backported from mainline 6872 2013-04-26 Jakub Jelinek <jakub@redhat.com> 6873 6874 PR tree-optimization/57051 6875 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR 6876 and VEC_RSHIFT_EXPR if shift count is a multiple of element 6877 bitsize. 6878 6879 2013-04-12 Marc Glisse <marc.glisse@inria.fr> 6880 6881 * fold-const.c (fold_binary_loc): Call const_binop also for mixed 6882 vector-scalar operations. 6883 68842013-05-03 Marek Polacek <polacek@redhat.com> 6885 6886 Backport from mainline 6887 2013-04-25 Marek Polacek <polacek@redhat.com> 6888 6889 PR tree-optimization/57066 6890 * builtins.c (fold_builtin_logb): Return +Inf for -Inf. 6891 68922013-05-02 Vladimir Makarov <vmakarov@redhat.com> 6893 6894 Backport from mainline 6895 2013-05-02 Vladimir Makarov <vmakarov@redhat.com> 6896 6897 * lra-constraints.c (process_alt_operands): Add checking alt 6898 number to choose the best alternative. 6899 6900 2013-05-01 Vladimir Makarov <vmakarov@redhat.com> 6901 6902 PR target/57091 6903 * lra-constraints.c (best_small_class_operands_num): Remove. 6904 (process_alt_operands): Remove small_class_operands_num. Take 6905 small classes operands into losers and only if the operand is not 6906 matched. Modify debugging output. 6907 (curr_insn_transform): Remove best_small_class_operands_num. 6908 Print insn name. 6909 69102013-05-02 Vladimir Makarov <vmakarov@redhat.com> 6911 6912 Backport from mainline 6913 2013-04-29 Vladimir Makarov <vmakarov@redhat.com> 6914 6915 PR target/57097 6916 * lra-constraints.c (process_alt_operands): Discourage a bit more 6917 using memory for pseudos. Print cost dump for alternatives. 6918 Modify cost values for conflicts with early clobbers. 6919 (curr_insn_transform): Spill pseudos reassigned to NO_REGS. 6920 69212013-05-02 Vladimir Makarov <vmakarov@redhat.com> 6922 6923 Backport from mainline 6924 2013-04-24 Vladimir Makarov <vmakarov@redhat.com> 6925 6926 PR rtl-optimizations/57046 6927 * lra-constraints (split_reg): Set up lra_risky_transformations_p 6928 for multi-reg splits. 6929 69302013-05-02 Vladimir Makarov <vmakarov@redhat.com> 6931 6932 Backport from mainline 6933 2013-04-22 Vladimir Makarov <vmakarov@redhat.com> 6934 6935 PR target/57018 6936 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of 6937 a set sp if no stack realignment. 6938 69392013-05-02 Vladimir Makarov <vmakarov@redhat.com> 6940 6941 Backport from mainline 6942 2013-04-18 Vladimir Makarov <vmakarov@redhat.com> 6943 6944 PR rtl-optimization/56999 6945 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and 6946 related code. 6947 (lra_coalesce): Remove split_origin_bitmap and related code. 6948 * lra.c (lra): Coalesce after undoing inheritance. Recreate live 6949 ranges if necessary. 6950 69512013-05-02 Vladimir Makarov <vmakarov@redhat.com> 6952 6953 Backport from mainline 6954 2013-04-19 Vladimir Makarov <vmakarov@redhat.com> 6955 6956 PR rtl-optimization/56847 6957 * lra-constraints.c (process_alt_operands): Discourage alternative 6958 with non-matche doffsettable memory constraint fro memory with 6959 known offset. 6960 69612013-05-02 Ian Bolton <ian.bolton@arm.com> 6962 6963 Backport from mainline 6964 2013-03-28 Ian Bolton <ian.bolton@arm.com> 6965 6966 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame 6967 record only when desired or required. 6968 69692013-04-30 Jakub Jelinek <jakub@redhat.com> 6970 6971 PR tree-optimization/57104 6972 * tsan.c (instrument_expr): Don't instrument accesses to 6973 DECL_HARD_REGISTER VAR_DECLs. 6974 69752013-04-30 Uros Bizjak <ubizjak@gmail.com> 6976 6977 Backport from mainline 6978 2013-04-29 Uros Bizjak <ubizjak@gmail.com> 6979 6980 PR target/44578 6981 * config/i386/i386.md (*zero_extendsidi2_rex64): Add "!" to m->?*y 6982 alternative. 6983 (*zero_extendsidi2): Ditto. 6984 6985 Backport from mainline 6986 2013-04-29 Uros Bizjak <ubizjak@gmail.com> 6987 6988 PR target/57098 6989 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory. 6990 69912013-04-29 Richard Biener <rguenther@suse.de> 6992 6993 PR middle-end/57103 6994 * tree-cfg.c (move_stmt_op): Fix condition under which to update 6995 TREE_BLOCK. 6996 (move_stmt_r): Remove redundant checking. 6997 69982013-04-29 Christian Bruel <christian.bruel@st.com> 6999 7000 PR target/57108 7001 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0. 7002 70032013-04-29 Jakub Jelinek <jakub@redhat.com> 7004 7005 PR tree-optimization/57083 7006 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with 7007 non-singleton shift count range, zero extend low_bound for uns case. 7008 70092013-04-28 Eric Botcazou <ebotcazou@gcc.gnu.org> 7010 7011 * stor-layout.c (finalize_size_functions): Allocate a structure and 7012 reset cfun before dumping the functions. 7013 70142013-04-27 Jakub Jelinek <jakub@redhat.com> 7015 7016 PR target/56866 7017 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't 7018 use xop_pmacsdqh if uns_p. 7019 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of 7020 the immediate rotate count. 7021 70222013-04-25 Jakub Jelinek <jakub@redhat.com> 7023 7024 PR rtl-optimization/57003 7025 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg, 7026 call note_stores with kill_clobbered_value callback again after 7027 killing regs_invalidated_by_call. 7028 70292013-04-25 Ian Bolton <ian.bolton@arm.com> 7030 7031 Backported from mainline. 7032 2013-03-22 Ian Bolton <ian.bolton@arm.com> 7033 7034 * config/aarch64/aarch64.c (aarch64_print_operand): New 7035 format specifier for printing a constant in hex. 7036 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X 7037 format specifier for printing second operand. 7038 70392013-04-24 James Greenhalgh <james.greenhalgh@arm.com> 7040 7041 Backported from mainline. 7042 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com> 7043 7044 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints. 7045 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise. 7046 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise. 7047 70482013-04-24 Greta Yorsh <Greta.Yorsh@arm.com> 7049 7050 Backported from mainline. 7051 PR target/56797 7052 * config/arm/arm.c (load_multiple_sequence): Require SP 7053 as base register for loads if SP is in the register list. 7054 70552013-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 7056 Steven Bosscher <steven@gcc.gnu.org> 7057 7058 Backported from mainline. 7059 PR rtl-optimization/56605 7060 * loop-iv.c (implies_p): Handle equal RTXs and subregs. 7061 70622013-04-22 Marek Polacek <polacek@redhat.com> 7063 7064 Backported from mainline. 7065 2013-04-22 Marek Polacek <polacek@redhat.com> 7066 7067 PR sanitizer/56990 7068 * tsan.c (instrument_expr): Don't instrument expression 7069 in case its size is zero. 7070 70712013-04-22 Yufeng Zhang <yufeng.zhang@arm.com> 7072 7073 Backported from mainline. 7074 2013-04-10 Yufeng Zhang <yufeng.zhang@arm.com> 7075 * config/aarch64/aarch64.c (aarch64_print_extension): New function. 7076 (aarch64_start_file): Use the new function. 7077 70782013-04-18 Jakub Jelinek <jakub@redhat.com> 7079 7080 PR tree-optimization/56984 7081 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N 7082 and (x >> M) >= N don't register any assertion if N << M is the 7083 minimum value. 7084 70852013-04-17 David Edelsohn <dje.gcc@gmail.com> 7086 7087 PR target/56948 7088 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative. 7089 70902013-04-15 Jakub Jelinek <jakub@redhat.com> 7091 7092 PR tree-optimization/56962 7093 * gimple-ssa-strength-reduction.c (record_increment): Only set 7094 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and 7095 either rhs1 or rhs2 is equal to c->base_expr. 7096 70972013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 7098 7099 * emit-rtl.c (reset_all_used_flags): New function. 7100 (verify_rtl_sharing): Call reset_all_used_flags before and after 7101 performing the checks. 7102 71032013-04-15 Eric Botcazou <ebotcazou@adacore.com> 7104 7105 PR target/56890 7106 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value. 7107 (S_MODES): Set H_MODE bit. 7108 (SF_MODES): Set only S_MODE and SF_MODE bits. 7109 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits. 7110 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes. 7111 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes. 7112 <MODE_FLOAT>: Likewise. 7113 71142013-04-12 Vladimir Makarov <vmakarov@redhat.com> 7115 7116 PR target/56903 7117 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add 7118 lra_in_progress for return. 7119 71202013-04-12 Jakub Jelinek <jakub@redhat.com> 7121 7122 PR tree-optimization/56918 7123 PR tree-optimization/56920 7124 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...) 7125 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second 7126 argument to rshift method. 7127 71282013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 7129 7130 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as 7131 well. 7132 71332013-04-11 Marek Polacek <polacek@redhat.com> 7134 7135 PR tree-optimization/48184 7136 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum 7137 value to 1. 7138 71392013-04-11 James Greenhalgh <james.greenhalgh@arm.com> 7140 7141 Backported from mainline. 7142 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com> 7143 7144 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix 7145 floating-point vector comparisons against 0. 7146 71472013-04-11 Jakub Jelinek <jakub@redhat.com> 7148 7149 PR tree-optimization/56899 7150 * fold-const.c (extract_muldiv_1): Apply distributive law 7151 only if TYPE_OVERFLOW_WRAPS (ctype). 7152 71532013-04-10 David S. Miller <davem@davemloft.net> 7154 7155 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc 7156 or -mcpu=hypersparc. 7157 71582013-04-10 Jakub Jelinek <jakub@redhat.com> 7159 7160 Backported from mainline 7161 2013-04-09 Jakub Jelinek <jakub@redhat.com> 7162 7163 PR middle-end/56883 7164 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk, 7165 expand_omp_for_static_chunk): Use simple_p = true in 7166 force_gimple_operand_gsi calls when assigning to addressable decls. 7167 71682013-04-09 Marek Polacek <polacek@redhat.com> 7169 7170 PR tree-optimization/48762 7171 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum 7172 value to 1. 7173 71742013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 7175 7176 * config/s390/s390.c (s390_expand_insv): Only accept insertions 7177 within mode size. 7178 71792013-04-08 Marek Polacek <polacek@redhat.com> 7180 7181 PR rtl-optimization/48182 7182 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum 7183 value to 1. 7184 71852013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 7186 7187 PR target/55487 7188 * config/pa/pa.c (legitimize_pic_address): Before incrementing label 7189 nuses, make sure we have a label. 7190 71912013-04-04 Ian Lance Taylor <iant@google.com> 7192 7193 Backport from mainline: 7194 * doc/standards.texi (Standards): The Go frontend supports the Go 7195 1 language standard. 7196 71972013-04-04 Marek Polacek <polacek@redhat.com> 7198 7199 Backport from mainline: 7200 2013-04-04 Marek Polacek <polacek@redhat.com> 7201 7202 PR tree-optimization/48186 7203 * predict.c (maybe_hot_frequency_p): Return false if 7204 HOT_BB_FREQUENCY_FRACTION is 0. 7205 (cgraph_maybe_hot_edge_p): Likewise. 7206 72072013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7208 7209 Backport from mainline: 7210 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7211 7212 PR target/56720 7213 * config/arm/iterators.md (v_cmp_result): New mode attribute. 7214 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases. 7215 72162013-04-04 Richard Biener <rguenther@suse.de> 7217 7218 PR tree-optimization/56837 7219 * tree-loop-distribution.c (classify_partition): For non-zero 7220 values require that the value has the same precision as its 7221 mode to be useful as memset value. 7222 72232013-04-03 Roland McGrath <mcgrathr@google.com> 7224 7225 Backport from mainline: 7226 2013-03-26 Roland McGrath <mcgrathr@google.com> 7227 7228 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather 7229 than fprintf with a non-constant, non-format string. 7230 72312013-04-03 Marek Polacek <polacek@redhat.com> 7232 7233 Backport from mainline: 7234 2013-04-03 Marek Polacek <polacek@redhat.com> 7235 7236 PR sanitizer/55702 7237 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN 7238 functions. 7239 72402013-04-03 Richard Biener <rguenther@suse.de> 7241 7242 PR tree-optimization/56817 7243 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): 7244 Split out ... 7245 (tree_unroll_loops_completely_1): ... new function to manually 7246 walk the loop tree, properly defering outer loops of unrolled 7247 loops to later iterations. 7248 72492013-04-02 Jakub Jelinek <jakub@redhat.com> 7250 7251 PR rtl-optimization/56745 7252 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize 7253 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR. 7254 72552013-04-02 Wei Mi <wmi@google.com> 7256 7257 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for 7258 ashl<mode>3_mask, *<shift_insn><mode>3_mask and 7259 *<rotate_insn><mode>3_mask in i386.md. 7260 72612013-04-01 Wei Mi <wmi@google.com> 7262 7263 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn. 7264 Truncate operand 2 using %b asm operand modifier. 7265 (*<shift_insn><mode>3_mask): Ditto. 7266 (*<rotate_insn><mode>3_mask): Ditto. 7267 72682013-04-01 Uros Bizjak <ubizjak@gmail.com> 7269 7270 * config/i386/i386.md (*movsf_internal): Change type of 7271 alternatives 3,4 to imov. 7272 72732013-03-29 Paolo Carlini <paolo.carlini@oracle.com> 7274 7275 PR lto/56777 7276 * doc/invoke.texi ([-fwhole-program]): Fix typo. 7277 72782013-03-29 Kirill Yukhin <kirill.yukhin@intel.com> 7279 7280 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256): 7281 Fix declaration name. 7282 72832013-03-28 Gerald Pfeifer <gerald@pfeifer.com> 7284 7285 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual. 7286 * doc/extend.texi (Named Address Spaces): Ditto. 7287 (Variable Attributes): Ditto. 7288 72892013-03-28 Eric Botcazou <ebotcazou@adacore.com> 7290 7291 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a 7292 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS 7293 is not enabled. 7294 72952013-03-27 Walter Lee <walt@tilera.com> 7296 7297 Backport from mainline: 7298 2013-03-27 Walter Lee <walt@tilera.com> 7299 7300 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid 7301 double-decrement of next_scratch_regno. 7302 73032013-03-27 Walter Lee <walt@tilera.com> 7304 7305 Backport from mainline: 7306 2013-03-27 Walter Lee <walt@tilera.com> 7307 7308 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on 7309 input operands. 7310 (insn_v1mulus): Ditto. 7311 (insn_v2muls): Ditto. 7312 73132013-03-27 Walter Lee <walt@tilera.com> 7314 7315 Backport from mainline: 7316 2013-03-27 Walter Lee <walt@tilera.com> 7317 7318 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete 7319 extra tab. 7320 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto. 7321 73222013-03-27 Walter Lee <walt@tilera.com> 7323 7324 Backport from mainline: 7325 2013-03-27 Walter Lee <walt@tilera.com> 7326 7327 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr. 7328 (*sibcall_value): Ditto. 7329 73302013-03-27 Walter Lee <walt@tilera.com> 7331 7332 Backport from mainline: 7333 2013-03-27 Walter Lee <walt@tilera.com> 7334 7335 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ... 7336 (insn_mnz_v8qi): ... this ... 7337 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the 7338 vector equivalent. 7339 (insn_v<n>mnz): Replaced by ... 7340 (insn_v1mnz): ... this ... 7341 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector 7342 equivalent. 7343 (insn_mz_<mode>): Replaced by ... 7344 (insn_mz_v8qi): ... this ... 7345 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the 7346 vector equivalent. 7347 (insn_v<n>mz): Replaced by ... 7348 (insn_v1mz): ... this ... 7349 (insn_v2mz): ... and this. Replace (const_int 0) with the vector 7350 equivalent. 7351 73522013-03-26 Eric Botcazou <ebotcazou@adacore.com> 7353 7354 * doc/invoke.texi (SPARC options): Remove -mlittle-endian. 7355 73562013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de> 7357 7358 * config/rtems.opt: Add -pthread option. 7359 73602013-03-26 Sofiane Naci <sofiane.naci@arm.com> 7361 7362 * config/aarch64/aarch64.c (aarch64_classify_address): Support 7363 PC-relative load in SI modes and above only. 7364 73652013-03-26 Walter Lee <walt@tilera.com> 7366 7367 Backport from mainline: 7368 2013-03-26 Walter Lee <walt@tilera.com> 7369 7370 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define. 7371 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define. 7372 73732013-03-26 Walter Lee <walt@tilera.com> 7374 7375 Backport from mainline: 7376 2013-03-25 Walter Lee <walt@tilera.com> 7377 7378 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add 7379 TILEGX_INSN_SHUFFLEBYTES1. 7380 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for 7381 shufflebytes1. 7382 (tilegx_builtins): Ditto. 7383 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern. 7384 73852013-03-26 Walter Lee <walt@tilera.com> 7386 7387 Backport from mainline: 7388 2013-03-25 Walter Lee <walt@tilera.com> 7389 7390 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline 7391 tests for constraint J, K, N, P. 7392 73932013-03-26 Walter Lee <walt@tilera.com> 7394 7395 Backport from mainline: 7396 2013-03-25 Walter Lee <walt@tilera.com> 7397 7398 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format): 7399 Use indirect/pcrel encoding. 7400 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format): 7401 Ditto. 7402 74032013-03-25 Richard Biener <rguenther@suse.de> 7404 7405 PR middle-end/56694 7406 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the 7407 must-not-throw stmt location. 7408 74092012-03-22 Jakub Jelinek <jakub@redhat.com> 7410 7411 * BASE-VER: Set to 4.8.1. 7412 * DEV-PHASE: Set to prerelease. 7413 74142013-03-22 Release Manager 7415 7416 * GCC 4.8.0 released. 7417 74182013-03-21 Walter Lee <walt@tilera.com> 7419 7420 * config/tilegx/sync.md (atomic_test_and_set): New pattern. 7421 74222013-03-21 Mark Wielaard <mjw@redhat.com> 7423 7424 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions. 7425 74262013-03-20 Richard Biener <rguenther@suse.de> 7427 7428 PR tree-optimization/56661 7429 * tree-ssa-sccvn.c (visit_use): Only value-number calls if 7430 the result does not have to be distinct. 7431 74322013-03-20 Jakub Jelinek <jakub@redhat.com> 7433 7434 PR tree-optimization/56635 7435 * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Give up 7436 if lhs of then_assign and else_assign don't have compatible types. 7437 74382013-03-17 Jakub Jelinek <jakub@redhat.com> 7439 7440 PR target/56640 7441 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG" 7442 class names. Remove trailing comma after "ALL_REGS". 7443 74442013-03-16 Jakub Jelinek <jakub@redhat.com> 7445 7446 * DEV-PHASE: Set to prerelease. 7447 74482013-03-14 Andi Kleen <ak@linux.intel.com> 7449 7450 PR target/56619 7451 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE, 7452 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs. 7453 Document _x* TSX intrinsics. 7454 74552013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com> 7456 David Holsgrove <david.holsgrove@xilinx.com> 7457 7458 * configure.ac: Add MicroBlaze TLS support detection. 7459 * configure: Regenerate. 7460 * config/microblaze/microblaze-protos.h 7461 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p, 7462 symbol_mentioned_p, label_mentioned_p): Add prototypes. 7463 * config/microblaze/microblaze.c (microblaze_address_type): Add 7464 ADDRESS_TLS and tls_reloc address types. 7465 (microblaze_address_info): Add tls_reloc. 7466 (TARGET_HAVE_TLS): Define. 7467 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1, 7468 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem, 7469 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p, 7470 load_tls_operand, microblaze_call_tls_get_addr, 7471 microblaze_legitimize_tls_address): New functions. 7472 (microblaze_classify_unspec): Handle UNSPEC_TLS. 7473 (get_base_reg): Use microblaze_tls_symbol_p. 7474 (microblaze_classify_address): Handle TLS. 7475 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p, 7476 label_mentioned_p and microblaze_tls_referenced_p. 7477 (microblaze_legitimize_address): Handle TLS. 7478 (microblaze_address_insns): Handle ADDRESS_TLS. 7479 (pic_address_needs_scratch): Handle TLS. 7480 (print_operand_address): Handle TLS. 7481 (microblaze_expand_prologue): Check TLS_NEEDS_GOT. 7482 (microblaze_expand_move): Handle TLS. 7483 (microblaze_legitimate_constant_p): Check 7484 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p. 7485 (TARGET_CANNOT_FORCE_CONST_MEM): Define. 7486 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define 7487 (PIC_OFFSET_TABLE_REGNUM): Set. 7488 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define. 7489 * config/microblaze/microblaze.md (UNSPEC_TLS): Define. 7490 (addsi3, movsi_internal2, movdf_internal): Update constraints 7491 * config/microblaze/predicates.md (arith_plus_operand): Define 7492 (move_operand): Redefine as move_src_operand, check 7493 microblaze_tls_referenced_p. 7494 74952013-03-14 Ian Bolton <ian.bolton@arm.com> 7496 7497 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ. 7498 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise. 7499 75002013-03-14 Ian Bolton <ian.bolton@arm.com> 7501 7502 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct 7503 CC mode for AND. 7504 75052013-03-14 Jakub Jelinek <jakub@redhat.com> 7506 7507 PR tree-optimization/53265 7508 * common.opt (Waggressive-loop-optimizations): New option. 7509 * tree-ssa-loop-niter.c: Include tree-pass.h. 7510 (do_warn_aggressive_loop_optimizations): New function. 7511 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds 7512 if number_of_latch_executions returned constant. 7513 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions 7514 early. If number_of_latch_executions returned constant, set 7515 nb_iterations_upper_bound back to it. 7516 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations 7517 field. 7518 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H). 7519 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document. 7520 7521 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove. 7522 (MULTILIB_OSDIRNAMES): Set. 7523 * genmultilib: If defaultosdirname doesn't start with :: , set 7524 defaultosdirname2 instead, clear it and emit two . multilib_raw 7525 entries instead of just one. 7526 75272013-03-14 Kaz Kojima <kkojima@gcc.gnu.org> 7528 7529 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE. 7530 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default. 7531 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE. 7532 (SUBTARGET_OVERRIDE_OPTIONS): New. 7533 75342013-03-13 Oleg Endo <olegendo@gcc.gnu.org> 7535 7536 PR target/49880 7537 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask. 7538 (musermode): Convert to Var(TARGET_USERMODE). 7539 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY, 7540 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY. 7541 * config/sh/sh.c (sh_option_override): Use 7542 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case. 7543 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4 7544 condition. 7545 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of 7546 TARGET_SH4. 7547 (udivsi3_i4_single, divsi3_i4_single): Use 7548 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4. 7549 75502013-03-13 Dave Korn <dave.korn.cygwin@....> 7551 7552 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the 7553 default setting. 7554 75552013-03-13 Richard Biener <rguenther@suse.de> 7556 7557 PR tree-optimization/56608 7558 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar 7559 calls when vectorizing basic-blocks. 7560 75612013-03-13 Jakub Jelinek <jakub@redhat.com> 7562 7563 PR plugins/45078 7564 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to 7565 tm_file. 7566 75672013-03-12 Jakub Jelinek <jakub@redhat.com> 7568 7569 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier. 7570 75712013-03-11 Jan Hubicka <jh@suse.cz> 7572 7573 PR lto/56557 7574 * lto-streamer-out.c (output_symbol_p): Skip references from 7575 constructors of external variables. 7576 75772013-03-11 Jan Hubicka <jh@suse.cz> 7578 7579 PR middle-end/56571 7580 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating 7581 from pseudos. 7582 * emit-rtl.c (verify_rtx_sharing): Likewise. 7583 (copy_insn_1): Likewise. 7584 * rtl.c (copy_rtx): Likewise. 7585 75862013-03-11 Georg-Johann Lay <avr@gjlay.de> 7587 7588 PR target/56591 7589 * config/avr/avr.c (avr_print_operand): Add space after '%c' in 7590 output_operand_lossage message. 7591 75922013-03-11 Richard Earnshaw <rearnsha@arm.com> 7593 7594 PR target/56470 7595 * arm.c (shift_op): Validate RTL pattern on the fly. 7596 (arm_print_operand, case 'S'): Don't use shift_operator to validate 7597 the RTL. 7598 75992013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 7600 7601 PR target/56347 7602 * config/pa/pa.md (call_value): Check for calls to powf and direct to 7603 new call patterns that clobber %fr12. 7604 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn, 7605 split and postreload patterns. 7606 * config/pa/pa.c (pa_conditional_register_usage): Revert marking 7607 registers %fr12 and %fr12R as call used. 7608 76092013-03-09 Steven Bosscher <steven@gcc.gnu.org> 7610 7611 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS. 7612 (canon_address, record_store, replace_read, check_mem_read_rtx, 7613 scan_insn, dse_step1, dse_step2_init, dse_step2_spill, 7614 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6, 7615 rest_of_handle_dse): Likewise. 7616 76172013-03-09 Richard Sandiford <rdsandiford@googlemail.com> 7618 7619 PR middle-end/56524 7620 * tree.h (tree_optimization_option): Rename target_optabs to optabs. 7621 Add base_optabs. 7622 (TREE_OPTIMIZATION_OPTABS): Update after previous field change. 7623 (TREE_OPTIMIZATION_BASE_OPTABS): New macro. 7624 (save_optabs_if_changed): Replace with... 7625 (init_tree_optimization_optabs): ...this. 7626 * optabs.c (save_optabs_if_changed): Rename to... 7627 (init_tree_optimization_optabs): ...this. Take the optimization node 7628 as argument. Do nothing if the base optabs are already correct. 7629 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need 7630 to recompute optabs. 7631 * function.h (function): Remove optabs field. 7632 * function.c (invoke_set_current_function_hook): Call 7633 init_tree_optimization_optabs. Use the result to initialize 7634 this_fn_optabs. 7635 76362013-02-27 Aldy Hernandez <aldyh@redhat.com> 7637 7638 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE 7639 if GTMA_HAS_NO_INSTRUMENTATION. 7640 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit. 7641 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION. 7642 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define. 7643 * gimple-pretty-print.c (dump_gimple_transaction): Handle 7644 GTMA_HAS_NO_INSTRUMENTATION. 7645 76462013-03-08 Jakub Jelinek <jakub@redhat.com> 7647 7648 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against 7649 libasan_preinit.o. 7650 76512013-03-08 Marek Polacek <polacek@redhat.com> 7652 Jakub Jelinek <jakub@redhat.com> 7653 7654 PR tree-optimization/56478 7655 * predict.c (is_comparison_with_loop_invariant_p): Change the 7656 type of loop_step to tree. 7657 (predict_loops): Adjust. 7658 (predict_iv_comparison): Perform the computations on double_ints. 7659 76602013-03-08 Richard Biener <rguenther@suse.de> 7661 7662 PR tree-optimization/56570 7663 * tree-cfg.c (verify_expr_location_1): Verify locations for 7664 DECL_DEBUG_EXPR. 7665 * tree-sra.c (create_access_replacement): Strip locations 7666 from DECL_DEBUG_EXPRs. 7667 76682013-03-08 Richard Biener <rguenther@suse.de> 7669 7670 * tree-inline.c (expand_call_inline): Do not associate 7671 a BLOCK with the location in BLOCK_SOURCE_LOCATION. 7672 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION. 7673 76742013-03-08 Richard Biener <rguenther@suse.de> 7675 7676 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location 7677 or block changes with -Og. Fix for location / block encoding 7678 changes and PHI arguments with locations. 7679 76802013-03-07 Steven Bosscher <steven@gcc.gnu.org> 7681 7682 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT 7683 for all counters. 7684 (struct output_info): Likewise. 7685 (register_overhead): Remove bad gcc_assert. 7686 (bitmap_find_bit): If there is only a single bitmap element, do not 7687 count a miss as a search. 7688 (print_statistics): Update for counter type changes. 7689 (dump_bitmap_statistics): Likewise. Print headers such that they 7690 are properly lined up with the printed counters. 7691 76922013-03-07 Jakub Jelinek <jakub@redhat.com> 7693 7694 PR tree-optimization/56559 7695 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2, 7696 check that it has only a single use. 7697 76982013-03-07 Richard Biener <rguenther@suse.de> 7699 7700 * doc/invoke.texi (fwhole-program): Discourage use in combination 7701 with -flto. 7702 77032013-03-06 Jakub Jelinek <jakub@redhat.com> 7704 7705 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def. 7706 7707 PR tree-optimization/56539 7708 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT 7709 instead of GSI_CONTINUE_LINKING as last argument to 7710 force_gimple_operand_gsi. Adjust function comment. 7711 7712 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add 7713 aarch64-cores.def. 7714 7715 PR middle-end/56548 7716 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in 7717 promoted mode, convert the result back to the original mode. 7718 77192013-03-06 Richard Biener <rguenther@suse.de> 7720 7721 PR middle-end/56294 7722 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping. 7723 (insert_updated_phi_nodes_compare_uids): New function. 7724 (update_ssa): Sort symbols_to_rename after UID before 7725 traversing it to insert PHI nodes. 7726 77272013-03-06 Richard Biener <rguenther@suse.de> 7728 7729 PR middle-end/50494 7730 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): 7731 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls. 7732 7733 Revert 7734 2013-02-13 Richard Biener <rguenther@suse.de> 7735 7736 PR lto/50494 7737 * varasm.c (output_constant_def_1): Get the decl representing 7738 the constant as argument. 7739 (output_constant_def): Wrap output_constant_def_1. 7740 (make_decl_rtl): Use output_constant_def_1 with the decl 7741 representing the constant. 7742 (build_constant_desc): Optionally re-use a decl already 7743 representing the constant. 7744 (tree_output_constant_def): Adjust. 7745 77462013-03-06 Joey Ye <joey.ye@arm.com> 7747 7748 PR lto/50293 7749 * gcc.c (convert_white_space): New function. 7750 (main): Handles white space in function name. 7751 77522013-03-06 Oleg Endo <olegendo@gcc.gnu.org> 7753 7754 PR target/56529 7755 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT 7756 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy 7757 to SH_DIV_CALL_TABLE for TARGET_SH2. 7758 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib 7759 list. 7760 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp, 7761 call-table options. 7762 77632013-03-05 Sterling Augustine <saugustine@google.com> 7764 Cary Coutant <ccoutant@google.com> 7765 7766 PR debug/55364 7767 * dwarf2out.c (resolve_addr): Don't call 7768 remove_loc_list_addr_table_entries a second time for the same 7769 expression. 7770 77712013-03-05 Jakub Jelinek <jakub@redhat.com> 7772 7773 PR debug/56510 7774 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming. 7775 (avoid_complex_debug_insns): New function. 7776 (expand_debug_locations): Call it. 7777 7778 PR rtl-optimization/56484 7779 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending 7780 lifetimes of hard registers on small register class machines. 7781 77822013-03-05 David Holsgrove <david.holsgrove@xilinx.com> 7783 7784 * config/microblaze/microblaze-protos.h: Rename 7785 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant. 7786 * config/microblaze/microblaze.c (microblaze_attribute_table): Add 7787 fast_interrupt. 7788 (microblaze_fast_interrupt_function_p): New function. 7789 (microblaze_is_interrupt_handler): Rename to 7790 microblaze_is_interrupt_variant and add fast_interrupt check. 7791 (microblaze_must_save_register): Use microblaze_is_interrupt_variant. 7792 (save_restore_insns): Likewise. 7793 (compute_frame_size): Likewise. 7794 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME. 7795 (microblaze_globalize_label): Likewise. 7796 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME. 7797 * config/microblaze/microblaze.md: Use wrapper 7798 microblaze_is_interrupt_variant. 7799 78002013-03-05 Kai Tietz <ktietz@redhat.com> 7801 7802 * sdbout.c (sdbout_one_type): Switch to current function's section 7803 supporting cold/hot. 7804 78052013-03-05 David Holsgrove <david.holsgrove@xilinx.com> 7806 7807 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian, 7808 -mxl-reorder. 7809 78102013-03-05 Jakub Jelinek <jakub@redhat.com> 7811 7812 PR middle-end/56461 7813 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING, 7814 if VALGRIND_GET_VBITS is defined, temporarily make object 7815 memory all defined, and restore previous valgrind addressability 7816 and definability afterwards. Free this_object at the end. 7817 7818 PR middle-end/56461 7819 * lra.c (lra): Call lra_clear_live_ranges if live_p, 7820 right before calling lra_create_live_ranges, also call it 7821 when clearing live_p. Only call lra_clear_live_ranges 7822 at the end if live_p. 7823 7824 PR middle-end/56461 7825 * sched-deps.c (delete_dep_node): Free DEP_REPLACE. 7826 78272013-03-05 Richard Biener <rguenther@suse.de> 7828 7829 PR tree-optimization/56521 7830 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize 7831 value-id. 7832 78332013-03-05 Steven Bosscher <steven@gcc.gnu.org> 7834 7835 PR c++/55135 7836 * except.h (remove_unreachable_eh_regions): New prototype. 7837 * except.c (remove_eh_handler_splicer): New function, split out 7838 of remove_eh_handler. 7839 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment 7840 warning about running it on many EH regions one at a time. 7841 (remove_unreachable_eh_regions_worker): New function, walk the 7842 EH tree in depth-first order and remove non-marked regions. 7843 (remove_unreachable_eh_regions): New function. 7844 * tree-eh.c (mark_reachable_handlers): New function, split out 7845 from remove_unreachable_handlers. 7846 (remove_unreachable_handlers): Use mark_reachable_handlers and 7847 remove_unreachable_eh_regions. 7848 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers 7849 and remove_unreachable_eh_regions. 7850 78512013-03-05 Richard Biener <rguenther@suse.de> 7852 7853 PR middle-end/56525 7854 * loop-init.c (fix_loop_structure): Remove loops in two stages, 7855 not freeing them until the end. 7856 78572013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 7858 7859 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO. 7860 78612013-03-05 Richard Biener <rguenther@suse.de> 7862 7863 PR tree-optimization/56270 7864 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts 7865 of loads after scheduling an SLP instance. 7866 78672013-03-05 Jakub Jelinek <jakub@redhat.com> 7868 7869 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and 7870 tic6x.exp. 7871 (check_gcc_parallelize): Run guality.exp as a separate job from 7872 vect.exp with unsorted.exp and $(dg_target_exps) separately from 7873 struct-layout-1.exp with stackalign.exp. 7874 7875 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap. 7876 7877 PR middle-end/56461 7878 * tree-vect-slp.c (vect_supported_load_permutation_p): Free 7879 load_index sbitmap even if some bit in it isn't set. 7880 7881 PR middle-end/56461 7882 * tree-ssa-loop-niter.c (bb_queue): Remove typedef. 7883 (discover_iteration_bound_by_body_walk): Change queues to 7884 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up 7885 spelling in comment. Call safe_push on queues[bound_index] directly. 7886 Release queues[queue_index] in every iteration unconditionally. 7887 Release bounds vector. 7888 7889 PR middle-end/56461 7890 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call 7891 free_stmt_vec_info on any left-over stmt_vec_info in the vector. 7892 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release 7893 inner_phis vector. 7894 78952013-03-05 Richard Biener <rguenther@suse.de> 7896 7897 PR lto/56515 7898 * tree-inline.c (remap_blocks_to_null): New function. 7899 (expand_call_inline): When expanding a call stmt without 7900 an associated block inline remap all callee blocks to NULL. 7901 79022013-03-05 Jakub Jelinek <jakub@redhat.com> 7903 7904 PR rtl-optimization/56494 7905 * simplify-rtx.c (simplify_truncation): If C is narrower than A, 7906 optimize (truncate:A (subreg:B (truncate:C X) 0)) into 7907 (subreg:A (truncate:C X) 0) instead of (truncate:A X). 7908 7909 PR middle-end/56461 7910 * sel-sched-ir.c (free_sched_pools): Release 7911 succs_info_pool.stack[succs_info_pool.max_top] vectors too 7912 if succs_info_pool.max_top isn't -1. 7913 7914 PR bootstrap/56509 7915 * opts.c (opts_obstack, opts_concat): Moved to... 7916 * opts-common.c (opts_obstack, opts_concat): ... here. 7917 79182013-03-04 Jakub Jelinek <jakub@redhat.com> 7919 7920 PR middle-end/56461 7921 * diagnostic.c (diagnostic_append_note): Save and restore old prefix. 7922 79232013-03-04 Martin Jambor <mjambor@suse.cz> 7924 7925 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in 7926 all appropriate places. 7927 79282013-01-04 Eric Botcazou <ebotcazou@adacore.com> 7929 7930 PR tree-optimization/56424 7931 * ipa-split.c (split_function): Do not set the RSO flag if result is 7932 not by reference and its type is a register type. 7933 79342013-03-04 David Holsgrove <david.holsgrove@xilinx.com> 7935 7936 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New. 7937 (microblaze_legitimate_pic_operand): Likewise. 7938 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): Call 7939 new function microblaze_legitimate_pic_operand. 7940 * config/microblaze/microblaze-protos.h 7941 (microblaze_legitimate_pic_operand): Declare. 7942 79432013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com> 7944 7945 * config/microblaze/predicates.md (call_insn_simple_operand): 7946 New predicate for supported rtx code types. 7947 * config/microblaze/microblaze.md (call_internal1): Use 7948 call_insn_simple_operand predicate. 7949 79502013-03-04 Jakub Jelinek <jakub@redhat.com> 7951 7952 PR middle-end/56461 7953 * tree-loop-distribution.c (ldist_gen): Call partition_free after each 7954 partitions.ordered_remove. 7955 7956 PR middle-end/56461 7957 * tree-vect-stmts.c (vectorizable_conversion): Don't call 7958 vec_oprnds0.create (1) for modifier == NONE. 7959 7960 PR middle-end/56461 7961 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods 7962 on vec_oprnds0 or vec_oprnds1 before loop, only call it on 7963 vec_oprnds1 right before pushing anything to it for 7964 scalar_shift_arg. 7965 7966 PR middle-end/56461 7967 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just 7968 set nbbs to 0 instead of having separate code path. 7969 (vect_analyze_loop_form): Call destroy_loop_vec_info with true 7970 instead of false as last argument if returning NULL. 7971 79722013-03-03 Sandra Loosemore <sandra@codesourcery.com> 7973 7974 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments; 7975 the attribute is now called "target" instead of "option". 7976 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma. 7977 * doc/tm.texi.in (Target Attributes): Likewise document the correct 7978 attribute/pragma name for TARGET_OPTION_VALID_P and 7979 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup. 7980 * doc/tm.texi: Regenerated. 7981 79822013-03-02 David Holsgrove <david.holsgrove@xilinx.com> 7983 7984 * config/microblaze/microblaze.c: 7985 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met. 7986 * config/microblaze/microblaze.h: Add -mxl-reorder to 7987 DRIVER_SELF_SPECS. 7988 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2. 7989 instructions emitted if TARGET_REORDER. 7990 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1 7991 or 0 for -m/-mno case, but initialises as 2 to detect default use case 7992 separately. 7993 79942013-03-01 Xinliang David Li <davidxl@google.com> 7995 7996 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom 7997 walk length. 7998 79992013-03-01 Jakub Jelinek <jakub@redhat.com> 8000 8001 PR middle-end/56461 8002 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path 8003 vector even when returning true. Fix up function comment formatting. 8004 8005 PR middle-end/56461 8006 * ira-build.c (ira_loop_nodes_count): New variable. 8007 (create_loop_tree_nodes): Initialize it. 8008 (finish_loop_tree_nodes): Use it instead of looking at current_loops. 8009 8010 PR middle-end/56461 8011 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy 8012 method on dr_chain and result_chain. 8013 * tree-vect-stmts.c (vectorizable_store): Only call 8014 result_chain.create if j == 0. 8015 8016 PR middle-end/56461 8017 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call 8018 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0) 8019 before overwriting it. 8020 80212013-03-01 Tobias Burnus <burnus@net-b.de> 8022 8023 * doc/extended.texi (C Extensions): Change order in @menu 8024 to match @node. 8025 (Other MIPS Built-in Functions): Move last MIPS entry before 8026 "picoChip Built-in Functions". 8027 (SH Built-in Functions): Move after RX Built-in Functions. 8028 * doc/gcc.texi (Introduction): Change order in @menu to match @node. 8029 * doc/md.texi (Constraints): Ditto. 8030 * gty.texi (Type Information): Ditto. 8031 (User-provided marking routines for template types): Make subsection. 8032 * doc/invoke.texi (AArch64 Options): Move before 8033 "Adapteva Epiphany Options". 8034 80352013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com> 8036 Jakub Jelinek <jakub@redhat.com> 8037 8038 PR sanitizer/56454 8039 * asan.c (gate_asan): Lookup no_sanitize_address instead of 8040 no_address_safety_analysis attribute. 8041 * doc/extend.texi (no_address_safety_attribute): Rename to 8042 no_sanitize_address attribute, mention no_address_safety_analysis 8043 attribute as deprecated alias. 8044 80452013-02-28 Jakub Jelinek <jakub@redhat.com> 8046 8047 PR middle-end/56461 8048 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument 8049 type to vec<vec<tree> > *. 8050 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs 8051 to be vec<tree> instead of vec<tree> *, set vec_defs 8052 to vNULL and call vec_defs.create (number_of_vects), adjust other 8053 uses of vec_defs. 8054 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call, 8055 vectorizable_condition): Adjust vect_get_slp_defs callers. 8056 80572013-02-28 James Greenhalgh <james.greenhalgh@arm.com> 8058 8059 * config/aarch64/aarch64.c 8060 (aarch64_float_const_representable): Remove unused variable. 8061 80622013-02-28 James Greenhalgh <james.greenhalgh@arm.com> 8063 8064 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static. 8065 80662013-02-28 James Greenhalgh <james.greenhalgh@arm.com> 8067 8068 * config/aarch64/aarch64-builtins.c 8069 (aarch64_init_simd_builtins): Make static. 8070 80712013-02-28 James Greenhalgh <james.greenhalgh@arm.com> 8072 8073 * config/aarch64/aarch64.c 8074 (aarch64_simd_make_constant): Make static. 8075 80762013-02-28 Martin Jambor <mjambor@suse.cz> 8077 8078 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements 8079 with no initialization to the RHS of debug statements. 8080 80812013-02-28 Martin Jambor <mjambor@suse.cz> 8082 8083 PR tree-optimization/56294 8084 * tree-sra.c (analyze_access_subtree): Create replacement declarations. 8085 Adjust dumping. 8086 (get_access_replacement): Do not call create_access_replacement. 8087 Assert a replacement exists. 8088 (get_repl_default_def_ssa_name): Create the replacement declaration 8089 itself. 8090 80912013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 8092 8093 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and 8094 final_end_function. 8095 80962013-02-28 Marek Polacek <polacek@redhat.com> 8097 8098 PR rtl-optimization/56466 8099 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure 8100 if we're changing a loop. 8101 (peel_loops_completely): Likewise. 8102 81032013-02-28 Paolo Carlini <paolo.carlini@oracle.com> 8104 8105 PR c++/55813 8106 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete. 8107 81082013-02-28 Georg-Johann Lay <avr@gjlay.de> 8109 8110 PR target/56445 8111 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty 8112 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX, 8113 INTX_FTYPE_FX, FX_FTYPE_INTX. 8114 * config/avr/builtins.def: Adjust respective DEF_BUILTIN. 8115 81162013-02-28 Georg-Johann Lay <avr@gjlay.de> 8117 8118 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285) 8119 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795) 8120 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb) 8121 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a) 8122 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1) 8123 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p) 8124 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb) 8125 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161) 8126 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e) 8127 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4) 8128 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3) 8129 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1) 8130 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva) 8131 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3) 8132 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU. 8133 (avrxmega6): Increase max flash segments from 5 to 6. 8134 * config/avr/t-multilib: Regenerate. 8135 * config/avr/avr-tables.opt: Regenerate. 8136 * doc/avr-mmcu.texi: Regenerate. 8137 81382013-02-28 Georg-Johann Lay <avr@gjlay.de> 8139 8140 * config/avr/avr.h (device_to_arch): Rename to device_to_ld. 8141 (avr_device_to_arch): Rename to avr_device_to_ld. 8142 (avr_device_to_as): New prototype. 8143 (EXTRA_SPEC_FUNCTIONS): Add device_to_as. 8144 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=. 8145 * config/avr/driver-avr.c (avr_device_to_as): New. 8146 (avr_device_to_arch): Rename to avr_device_to_ld. 8147 81482013-02-27 Jakub Jelinek <jakub@redhat.com> 8149 8150 PR middle-end/56461 8151 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy 8152 method on dr_chain and result_chain. 8153 8154 PR middle-end/56461 8155 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call 8156 pointer_set_destroy on not_executed_last_iteration. 8157 8158 PR middle-end/56461 8159 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector. 8160 8161 PR middle-end/56461 8162 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of 8163 FOR_EACH_DEFINED_FUNCTION when freeing state. 8164 8165 PR middle-end/56461 8166 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before 8167 pool_free. 8168 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before 8169 overwriting it. 8170 8171 PR middle-end/56461 8172 * ipa-cp.c (decide_whether_version_node): Call vec_free on 8173 known_aggs[i].items and release known_aggs vector. 8174 8175 PR middle-end/56461 8176 * ipa-reference.c (propagate): Free node_info even for alias nodes. 8177 81782013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com> 8179 8180 * config/microblaze/microblaze.c (microblaze_emit_compare): 8181 Use xor for EQ/NE comparisions. 8182 * config/microblaze/microblaze.md (cstoresf4): Add constraints 8183 (cbranchsf4): Adjust operator to comparison_operator. 8184 81852013-02-27 Jakub Jelinek <jakub@redhat.com> 8186 8187 PR middle-end/56461 8188 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed 8189 vector. 8190 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and 8191 vec_safe_push, always update *slot. 8192 (redirect_edge_var_map_clear): Use vec_free. 8193 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve. 8194 (free_var_map_entry): Use vec_free. 8195 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use 8196 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT. 8197 81982013-02-27 Andrey Belevantsev <abel@ispras.ru> 8199 8200 PR middle-end/45472 8201 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr 8202 when the may_trap_p bit of the exprs being merged differs. 8203 Reorder tests for speculativeness in the logical and operator. 8204 82052013-02-27 Jakub Jelinek <jakub@redhat.com> 8206 8207 * incpath.c (add_standard_paths): Use reconcat instead of concat 8208 where appropriate and avoid leaking memory. 8209 8210 * opts.h: Include obstack.h. 8211 (opts_concat): New prototype. 8212 (opts_obstack): New declaration. 8213 * opts.c (opts_concat): New function. 8214 (opts_obstack): New variable. 8215 (init_options_struct): Call gcc_init_obstack on opts_obstack. 8216 (finish_options): Use opts_concat instead of concat 8217 and XOBNEWVEC instead of XNEWVEC. 8218 * opts-common.c (generate_canonical_option, decode_cmdline_option, 8219 generate_option): Likewise. 8220 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H). 8221 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack. 8222 8223 PR target/56455 8224 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic 8225 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true. 8226 82272013-02-26 Jakub Jelinek <jakub@redhat.com> 8228 8229 PR middle-end/56461 8230 * lra-spills.c (lra_spill): Free spill_hard_reg at the end. 8231 82322013-02-26 Joern Rennecke <joern.rennecke@embecosm.com> 8233 8234 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change. 8235 (arm_block_move_unaligned_straight): Likewise. 8236 (arm_adjust_block_mem): Likewise. 8237 82382013-02-26 Joern Rennecke <joern.rennecke@embecosm.com> 8239 8240 PR target/48901 8241 * config/lm32/lm32.c (gen_int_relational): Remove unused variables 8242 temp, cond and label. 8243 * config/lm32/lm32.md (ashlsi3): Remove unused variable one. 8244 8245 PR target/52500 8246 * config/c6x/c6x.c (dbx_register_map): Change to unsigned. 8247 * config/c6x/c6x.h (dbx_register_map): Update declaration. 8248 8249 PR target/52501 8250 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end 8251 of prologue/epilogue functions. 8252 8253 PR target/52550 8254 * config/tilegx/tilegx.c (tilegx_expand_prologue): 8255 Remove unused variable cfa_offset. 8256 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise. 8257 8258 PR target/54639 8259 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset 8260 type promotion to unsigned. 8261 8262 PR target/54640 8263 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent 8264 for HOST_WIDE_INT of 32 bit / same size as int. 8265 (arm_block_move_unaligned_straight): Likewise. 8266 (arm_adjust_block_mem): Likewise. 8267 8268 PR target/54662 8269 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of 8270 ALL_CFLAGS. 8271 82722013-02-26 Marek Polacek <polacek@redhat.com> 8273 8274 PR tree-optimization/56426 8275 * tree-ssa-loop.c (tree_ssa_loop_init): Always call 8276 scev_initialize. 8277 82782013-02-26 Richard Biener <rguenther@suse.de> 8279 8280 PR target/56444 8281 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove 8282 unused variable loops. 8283 82842013-02-26 Jakub Jelinek <jakub@redhat.com> 8285 8286 PR tree-optimization/56448 8287 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at 8288 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF. 8289 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or 8290 later operands of the references, or even first operand for 8291 INDIRECT_REF, TARGET_MEM_REF or MEM_REF. 8292 8293 PR tree-optimization/56443 8294 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For 8295 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument 8296 to type_for_mode langhook. 8297 82982013-02-25 Matt Turner <mattst88@gmail.com> 8299 8300 * doc/invoke.texi: Document r4700. 8301 83022013-02-25 Richard Biener <rguenther@suse.de> 8303 8304 PR tree-optimization/56175 8305 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate, 8306 split out from ... 8307 (simplify_bitwise_binary): ... here. Also guard the conversion 8308 of (type) X op CST to (type) (X op ((type-x) CST)) with it. 8309 83102013-02-25 Catherine Moore <clm@codesourcery.com> 8311 8312 Revert: 8313 2013-02-24 Catherine Moore <clm@codesourcery.com> 8314 Maciej W. Rozycki <macro@codesourcery.com> 8315 Tom de Vries <tom@codesourcery.com> 8316 Nathan Sidwell <nathan@codesourcery.com> 8317 Iain Sandoe <iain@codesourcery.com> 8318 Nathan Froyd <froydnj@codesourcery.com> 8319 Chao-ying Fu <fu@mips.com> 8320 8321 * doc/extend.texi (micromips, nomicromips, nocompression): 8322 Document new function attributes. 8323 * doc/invoke.texi (minterlink-compressed, mmicromips, 8324 m14k, m14ke, m14kec): Document new options. 8325 (minterlink-mips16): Update documentation. 8326 * doc/md.texi (ZC, ZD): Document new constraints. 8327 * configure.ac (gcc_cv_as_micromips): Check if linker 8328 supports the .set micromips directive. 8329 * configure: Regenerate. 8330 * config.in: Regenerate. 8331 * config/mips/mips-tables.opt: Regenerate. 8332 * config/mips/micromips.md: New file. 8333 * constraints.md (ZC, AD): New constraints. 8334 * config/mips/predicates.md (movep_src_register): New predicate. 8335 (movep_src_operand): New predicate. 8336 (non_volatile_mem_operand): New predicate. 8337 * config/mips/mips.md (multimem): New type. 8338 (length): Differentiate between 17-bit and 18-bit branch offsets. 8339 (MOVEP1, MOVEP2): New mode iterator. 8340 (mov_<load>l): Use ZC constraint. 8341 (mov_<load>r): Likewise. 8342 (mov_<store>l): Likewise. 8343 (mov_<store>r): Likewise. 8344 (*branch_equality<mode>_inverted): Add microMIPS support. 8345 (*branch_equality<mode>): Likewise. 8346 (*jump_absolute): Likewise. 8347 (indirect_jump_<mode>): Likewise. 8348 (tablejump_<mode>): Likewise. 8349 (<optab>_internal): Likewise. 8350 (sibcall_internal): Likewise. 8351 (sibcall_value_internal): Likewise. 8352 (prefetch): Use constraint ZD. 8353 * config/mips/mips.opt (minterlink-compressed): New option. 8354 (minterlink-mips16): Now an alias for minterlink-compressed. 8355 (mmicromips): New option. 8356 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint. 8357 (compare_and_swap_12): Likewise. 8358 (sync_add<mode>): Likewise. 8359 (sync_<optab>_12): Likewise. 8360 (sync_old_<optab>_12): Likewise. 8361 (sync_new_<optab>_12): Likewise. 8362 (sync_nand_12): Likewise. 8363 (sync_old_nand_12): Likewise. 8364 (sync_new_nand_12): Likewise. 8365 (sync_sub<mode>): Likewise. 8366 (sync_old_add<mode>): Likewise. 8367 (sync_old_sub<mode>): Likewise. 8368 (sync_new_add<mode>): Likewise. 8369 (sync_new_sub<mode>): Likewise. 8370 (sync_<optab><mode>): Likewise. 8371 (sync_old_<optab><mode>): Likewise. 8372 (sync_new_<optab><mode>): Likewise. 8373 (sync_nand<mode>): Likewise. 8374 (sync_old_nand<mode>): Likewise. 8375 (sync_new_nand<mode>): Likewise. 8376 (sync_lock_test_and_set<mode>): Likewise. 8377 (test_and_set_12): Likewise. 8378 (atomic_compare_and_swap<mode>): Likewise. 8379 (atomic_exchange<mode>_llsc): Likewise. 8380 (atomic_fetch_add<mode>_llsc): Likewise. 8381 * config/mips/mips-cpus.def (m14kc, m14k): New processors. 8382 * config/mips/mips-protos.h (umips_output_save_restore): New prototype. 8383 (umips_save_restore_pattern_p): Likewise. 8384 (umips_load_store_pair_p): Likewise. 8385 (umips_output_load_store_pair): Likewise. 8386 (umips_movep_target_p): Likewise. 8387 (umips_12bit_offset_address_p): Likewise. 8388 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS. 8389 (mips_base_mips16): Rename this... 8390 (mips_base_compression_flags): ...to this. Update all uses. 8391 (mips_attribute_table): Add micromips, nomicromips and nocompression. 8392 (mips_mips16_decl_p): Delete. 8393 (mips_nomips16_decl_p): Delete. 8394 (mips_get_compress_on_flags): New function. 8395 (mips_get_compress_off_flags): New function. 8396 (mips_get_compress_mode): New function. 8397 (mips_get_compress_on_name): New function. 8398 (mips_get_compress_off_name): New function. 8399 (mips_insert_attributes): Support multiple compression types. 8400 (mips_merge_decl_attributes): Likewise. 8401 (umips_12bit_offset_address_p): New function. 8402 (mips_start_function_definition): Emit .set micromips directive. 8403 (mips_call_may_need_jalx_p): New function. 8404 (mips_function_ok_for_sibcall): Add microMIPS support. 8405 (mips_print_operand_punctuation): Support short delay slots and 8406 compact jumps. 8407 (umips_swm_mask, umips_swm_encoding): New. 8408 (umips_build_save_restore): New function. 8409 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support. 8410 (was_mips16_p): Remove. 8411 (old_compression_mode): New. 8412 (mips_set_compression_mode): New function. 8413 (mips_set_current_function): Add microMIPS support. 8414 (mips_option_override): Likewise. 8415 (umips_save_restore_pattern_p): New function. 8416 (umips_output_save_restore): New function. 8417 (umips_load_store_pair_p_1): New function. 8418 (umips_load_store_pair_p): New function. 8419 (umips_output_load_store_pair_1): New function. 8420 (umips_output_load_store_pair): New function. 8421 (umips_movep_target_p) New function. 8422 (mips_prepare_pch_save): Add microMIPS support. 8423 * config/mips/mips.h (TARGET_COMPRESSION): New. 8424 (TARGET_CPU_CPP_BUILTINS): Update macro 8425 to use new compression flags and to support microMIPS. 8426 (MIPS_ISA_LEVEL_SPEC): Add m14k processors. 8427 (MIPS_ARCH_FLOAT_SPEC): Likewise. 8428 (ISA_HAS_LWXS): Include TARGET_MICROMIPS. 8429 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS. 8430 (ASM_SPEC): Support mmicromips and mno-micromips. 8431 (M16STORE_REG_P): New macro. 8432 (MIPS_CALL): Support TARGET_MICROMIPS. 8433 (MICROMIPS_J): New macro. 8434 (mips_base_mips16): Rename this... 8435 (mips_base_compression_flags): ...to this. 8436 (UMIPS_12BIT_OFFSET_P): New macro. 8437 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS. 8438 (MULTILIB_DIRNAMES): Likewise. 8439 84402013-02-25 Tom de Vries <tom@codesourcery.com> 8441 8442 PR rtl-optimization/56131 8443 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment. 8444 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and 8445 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL. 8446 84472013-02-25 Tobias Burnus <burnus@net-b.de> 8448 8449 * doc/invoke.texi (-fsanitize=): Move from optimization 8450 to debugging options. 8451 84522013-02-25 Andrey Belevantsev <abel@ispras.ru> 8453 8454 * sched-deps.c (sched_analyze_insn): Fix typo in comment. 8455 84562013-02-25 Andrey Belevantsev <abel@ispras.ru> 8457 Alexander Monakov <amonakov@ispras.ru> 8458 8459 PR middle-end/56077 8460 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier, 8461 flush pending lists also on non-jumps. Adjust comment. 8462 84632013-02-24 Catherine Moore <clm@codesourcery.com> 8464 Maciej W. Rozycki <macro@codesourcery.com> 8465 Tom de Vries <tom@codesourcery.com> 8466 Nathan Sidwell <nathan@codesourcery.com> 8467 Iain Sandoe <iain@codesourcery.com> 8468 Nathan Froyd <froydnj@codesourcery.com> 8469 Chao-ying Fu <fu@mips.com> 8470 8471 * doc/extend.texi (micromips, nomicromips, nocompression): 8472 Document new function attributes. 8473 * doc/invoke.texi (minterlink-compressed, mmicromips, 8474 m14k, m14ke, m14kec): Document new options. 8475 (minterlink-mips16): Update documentation. 8476 * doc/md.texi (ZC, ZD): Document new constraints. 8477 * configure.ac (gcc_cv_as_micromips): Check if linker 8478 supports the .set micromips directive. 8479 * configure: Regenerate. 8480 * config.in: Regenerate. 8481 * config/mips/mips-tables.opt: Regenerate. 8482 * config/mips/micromips.md: New file. 8483 * constraints.md (ZC, AD): New constraints. 8484 * config/mips/predicates.md (movep_src_register): New predicate. 8485 (movep_src_operand): New predicate. 8486 (non_volatile_mem_operand): New predicate. 8487 * config/mips/mips.md (multimem): New type. 8488 (length): Differentiate between 17-bit and 18-bit branch offsets. 8489 (MOVEP1, MOVEP2): New mode iterator. 8490 (mov_<load>l): Use ZC constraint. 8491 (mov_<load>r): Likewise. 8492 (mov_<store>l): Likewise. 8493 (mov_<store>r): Likewise. 8494 (*branch_equality<mode>_inverted): Add microMIPS support. 8495 (*branch_equality<mode>): Likewise. 8496 (*jump_absolute): Likewise. 8497 (indirect_jump_<mode>): Likewise. 8498 (tablejump_<mode>): Likewise. 8499 (<optab>_internal): Likewise. 8500 (sibcall_internal): Likewise. 8501 (sibcall_value_internal): Likewise. 8502 (prefetch): Use constraint ZD. 8503 * config/mips/mips.opt (minterlink-compressed): New option. 8504 (minterlink-mips16): Now an alias for minterlink-compressed. 8505 (mmicromips): New option. 8506 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint. 8507 (compare_and_swap_12): Likewise. 8508 (sync_add<mode>): Likewise. 8509 (sync_<optab>_12): Likewise. 8510 (sync_old_<optab>_12): Likewise. 8511 (sync_new_<optab>_12): Likewise. 8512 (sync_nand_12): Likewise. 8513 (sync_old_nand_12): Likewise. 8514 (sync_new_nand_12): Likewise. 8515 (sync_sub<mode>): Likewise. 8516 (sync_old_add<mode>): Likewise. 8517 (sync_old_sub<mode>): Likewise. 8518 (sync_new_add<mode>): Likewise. 8519 (sync_new_sub<mode>): Likewise. 8520 (sync_<optab><mode>): Likewise. 8521 (sync_old_<optab><mode>): Likewise. 8522 (sync_new_<optab><mode>): Likewise. 8523 (sync_nand<mode>): Likewise. 8524 (sync_old_nand<mode>): Likewise. 8525 (sync_new_nand<mode>): Likewise. 8526 (sync_lock_test_and_set<mode>): Likewise. 8527 (test_and_set_12): Likewise. 8528 (atomic_compare_and_swap<mode>): Likewise. 8529 (atomic_exchange<mode>_llsc): Likewise. 8530 (atomic_fetch_add<mode>_llsc): Likewise. 8531 * config/mips/mips-cpus.def (m14kc, m14k): New processors. 8532 * config/mips/mips-protos.h (umips_output_save_restore): New prototype. 8533 (umips_save_restore_pattern_p): Likewise. 8534 (umips_load_store_pair_p): Likewise. 8535 (umips_output_load_store_pair): Likewise. 8536 (umips_movep_target_p): Likewise. 8537 (umips_12bit_offset_address_p): Likewise. 8538 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS. 8539 (mips_base_mips16): Rename this... 8540 (mips_base_compression_flags): ...to this. Update all uses. 8541 (mips_attribute_table): Add micromips, nomicromips and nocompression. 8542 (mips_mips16_decl_p): Delete. 8543 (mips_nomips16_decl_p): Delete. 8544 (mips_get_compress_on_flags): New function. 8545 (mips_get_compress_off_flags): New function. 8546 (mips_get_compress_mode): New function. 8547 (mips_get_compress_on_name): New function. 8548 (mips_get_compress_off_name): New function. 8549 (mips_insert_attributes): Support multiple compression types. 8550 (mips_merge_decl_attributes): Likewise. 8551 (umips_12bit_offset_address_p): New function. 8552 (mips_start_function_definition): Emit .set micromips directive. 8553 (mips_call_may_need_jalx_p): New function. 8554 (mips_function_ok_for_sibcall): Add microMIPS support. 8555 (mips_print_operand_punctuation): Support short delay slots and 8556 compact jumps. 8557 (umips_swm_mask, umips_swm_encoding): New. 8558 (umips_build_save_restore): New function. 8559 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support. 8560 (was_mips16_p): Remove. 8561 (old_compression_mode): New. 8562 (mips_set_compression_mode): New function. 8563 (mips_set_current_function): Add microMIPS support. 8564 (mips_option_override): Likewise. 8565 (umips_save_restore_pattern_p): New function. 8566 (umips_output_save_restore): New function. 8567 (umips_load_store_pair_p_1): New function. 8568 (umips_load_store_pair_p): New function. 8569 (umips_output_load_store_pair_1): New function. 8570 (umips_output_load_store_pair): New function. 8571 (umips_movep_target_p) New function. 8572 (mips_prepare_pch_save): Add microMIPS support. 8573 * config/mips/mips.h (TARGET_COMPRESSION): New. 8574 (TARGET_CPU_CPP_BUILTINS): Update macro 8575 to use new compression flags and to support microMIPS. 8576 (MIPS_ISA_LEVEL_SPEC): Add m14k processors. 8577 (MIPS_ARCH_FLOAT_SPEC): Likewise. 8578 (ISA_HAS_LWXS): Include TARGET_MICROMIPS. 8579 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS. 8580 (ASM_SPEC): Support mmicromips and mno-micromips. 8581 (M16STORE_REG_P): New macro. 8582 (MIPS_CALL): Support TARGET_MICROMIPS. 8583 (MICROMIPS_J): New macro. 8584 (mips_base_mips16): Rename this... 8585 (mips_base_compression_flags): ...to this. 8586 (UMIPS_12BIT_OFFSET_P): New macro. 8587 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS. 8588 (MULTILIB_DIRNAMES): Likewise. 8589 85902013-02-24 Jakub Jelinek <jakub@redhat.com> 8591 8592 PR target/52555 8593 * target-globals.c (save_target_globals): For init_reg_sets and 8594 target_reinit remporarily set this_fn_optabs to this_target_optabs. 8595 85962013-02-22 James Grennahlgh <james.greenhalgh@arm.com> 8597 8598 * config/aarch64/aarch64-simd-builtins.def: Add copyright header. 8599 * config/aarch64/t-aarch64 8600 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def. 8601 86022013-02-22 Vladimir Makarov <vmakarov@redhat.com> 8603 8604 PR inline-asm/56148 8605 * lra-constraints.c (process_alt_operands): Reload operand 8606 conflicting with earlier clobber only if no more other conflicting 8607 operands. 8608 86092013-02-22 Jakub Jelinek <jakub@redhat.com> 8610 8611 PR sanitizer/56393 8612 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o 8613 if not linking a shared library. 8614 86152013-02-22 Seth LaForge <sethml@google.com> 8616 8617 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian. 8618 86192013-02-22 Greta Yorsh <Greta.Yorsh@arm.com> 8620 8621 * config/arm/arm.md (split for extendsidi): Update condition. 8622 (zero_extend<mode>di2,extend<mode>di2): Add an alternative. 8623 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise. 8624 (qhs_zextenddi_cstr): Likewise. 8625 86262013-02-21 Jakub Jelinek <jakub@redhat.com> 8627 8628 PR middle-end/56420 8629 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to 8630 avoid signed wrapping. 8631 (expand_mult): Handle properly multiplication by 8632 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by 8633 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior 8634 in the compiler if coeff is HOST_WIDE_INT_MIN. 8635 (expand_divmod): Don't make ext_op1 static, change it's type to uhwi. 8636 Avoid undefined behavior in -INTVAL (op1). 8637 8638 PR rtl-optimization/50339 8639 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt 8640 field. 8641 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT. 8642 (compute_costs): Call compute_splitting_shift also for ASHIFTRT 8643 into splitting_ashiftrt field. 8644 (find_decomposable_shift_zext, resolve_shift_zext): Handle also 8645 ASHIFTRT. 8646 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT 8647 choices. 8648 86492013-02-20 Aldy Hernandez <aldyh@redhat.com> 8650 8651 PR middle-end/56108 8652 * trans-mem.c (execute_tm_mark): Do not expand transactions that 8653 are sure to go irrevocable. 8654 86552013-02-21 Hans-Peter Nilsson <hp@axis.com> 8656 8657 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that 8658 scalars are valid operands. 8659 86602013-02-21 Martin Jambor <mjambor@suse.cz> 8661 8662 PR tree-optimization/56310 8663 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy 8664 only matching indices and non-negative final offsets. 8665 (intersect_aggregates_with_edge): Pass src_idx to 8666 agg_replacements_to_vector. Pass src_idx insstead of index to 8667 intersect_with_agg_replacements. 8668 86692013-02-21 Martin Jambor <mjambor@suse.cz> 8670 8671 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold 8672 instead of hard-wired defaults. 8673 86742013-02-21 Maciej W. Rozycki <macro@codesourcery.com> 8675 8676 * doc/invoke.texi (MIPS Options): Update documentation of the 8677 floating-point multiply-accumulate instruction restrictions. 8678 86792013-02-21 Kostya Serebryany <kcc@google.com> 8680 8681 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as 8682 asan_shadow_offset on x86_64 linux. 8683 86842013-02-21 Richard Biener <rguenther@suse.de> 8685 8686 PR tree-optimization/56415 8687 Revert 8688 2013-02-11 Richard Biener <rguenther@suse.de> 8689 8690 PR tree-optimization/56273 8691 * tree-vrp.c (simplify_cond_using_ranges): Disable for the 8692 first VRP run. 8693 86942013-02-21 Jakub Jelinek <jakub@redhat.com> 8695 8696 PR bootstrap/56258 8697 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item 8698 instead of @itemx. 8699 8700 PR inline-asm/56405 8701 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't 8702 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier. 8703 87042013-02-20 Jan Hubicka <jh@suse.cz> 8705 8706 PR tree-optimization/56265 8707 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph when 8708 target is referenced for first time. 8709 87102013-02-20 Richard Biener <rguenther@suse.de> 8711 8712 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals. 8713 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise. 8714 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise. 8715 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do 8716 not return anything. 8717 (rename_ssa_copies): Do not remove unused locals. 8718 * tree-ssa-ccp.c (do_ssa_ccp): Likewise. 8719 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first. 8720 * passes.c (execute_function_todo): Do not schedule unused locals 8721 removal if cleanup_tree_cfg did something. 8722 * tree-ssa-live.c (remove_unused_locals): Dump statistics 8723 about the number of removed locals. 8724 87252013-02-20 Richard Biener <rguenther@suse.de> 8726 8727 PR tree-optimization/56398 8728 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip 8729 SSA default defs. 8730 87312013-02-20 Martin Jambor <mjambor@suse.cz> 8732 8733 PR tree-optimization/55334 8734 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to 8735 restricted pointers to arrays. 8736 87372013-02-20 Richard Biener <rguenther@suse.de> 8738 Jakub Jelinek <jakub@redhat.com> 8739 8740 PR tree-optimization/56396 8741 * tree-ssa-ccp.c (n_const_val): New static variable. 8742 (get_value): Return NULL for SSA names we don't have a lattice 8743 entry for. 8744 (ccp_initialize): Initialize n_const_val. 8745 * tree-ssa-copy.c (n_copy_of): New static variable. 8746 (init_copy_prop): Initialize n_copy_of. 8747 (get_value): Return NULL_TREE for SSA names we don't have a 8748 lattice entry for. 8749 87502013-02-20 Martin Jambor <mjambor@suse.cz> 8751 8752 * ipa-cp.c (initialize_node_lattices): Fix dumping condition. 8753 87542013-02-20 Richard Biener <rguenther@suse.de> 8755 8756 * genpreds.c (write_lookup_constraint): Do not compare first 8757 letter of the constraint again. 8758 87592013-02-20 Richard Biener <rguenther@suse.de> 8760 8761 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits 8762 and ceil_log2. 8763 (get_use_iv_cost): Terminate hashtable walk when coming across 8764 an empty entry. 8765 87662013-02-20 Igor Zamyatin <igor.zamyatin@intel.com> 8767 8768 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp 8769 reassociation for avx2 targets. 8770 87712012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com> 8772 8773 * config/microblaze/microblaze.c: microblaze_has_clz = 0 8774 Add version check for v8.10.a to enable microblaze_has_clz 8775 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined 8776 version and TARGET_PATTERN_COMPARE check 8777 * config/microblaze/microblaze.md: New clzsi2 instruction 8778 87792012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com> 8780 8781 * config/microblaze/microblaze.md (call_value_intern): Check symbol is 8782 function before branching. 8783 87842012-02-19 Andrey Belevantsev <abel@ispras.ru> 8785 8786 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set 8787 DUMP_INSN_RTX_UID. 8788 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim. 8789 87902012-02-19 Andrey Belevantsev <abel@ispras.ru> 8791 8792 PR middle-end/55889 8793 * sel-sched.c: Include ira.h. 8794 (implicit_clobber_conflict_p): New function. 8795 (moveup_expr): Use it. 8796 * Makefile.in (sel-sched.o): Depend on ira.h. 8797 87982013-02-19 Richard Biener <rguenther@suse.de> 8799 8800 PR tree-optimization/56384 8801 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member. 8802 (vn_hash_type): Split out from ... 8803 (vn_hash_constant_with_type): ... here. 8804 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type. 8805 (vn_phi_eq): Compare types from vn_phi_s structure. 8806 (vn_phi_lookup): Populate vn_phi_s type. 8807 (vn_phi_insert): Likewise. 8808 88092013-02-19 Jakub Jelinek <jakub@redhat.com> 8810 8811 PR tree-optimization/56350 8812 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false 8813 if haven't found reduction or nested cycle operand, rather than 8814 asserting we must find it. 8815 8816 PR tree-optimization/56381 8817 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument 8818 to fold_build3. 8819 88202013-02-18 Aldy Hernandez <aldyh@redhat.com> 8821 Jakub Jelinek <jakub@redhat.com> 8822 8823 PR target/52555 8824 * genopinit.c (raw_optab_handler): Use this_fn_optabs. 8825 (swap_optab_enable): Same. 8826 (init_all_optabs): Use argument instead of global. 8827 * tree.h (struct tree_optimization_option): New field target_optabs. 8828 * expr.h (init_all_optabs): Add argument to prototype. 8829 (TREE_OPTIMIZATION_OPTABS): New. 8830 (save_optabs_if_changed): Protoize. 8831 * optabs.h: Declare this_fn_optabs. 8832 * optabs.c (save_optabs_if_changed): New. 8833 Declare this_fn_optabs. 8834 (init_optabs): Add argument to init_all_optabs() call. 8835 * function.c (invoke_set_current_function_hook): Handle per 8836 function optabs. 8837 * function.h (struct function): New field optabs. 8838 * config/mips/mips.c (mips_set_mips16_mode): Handle when 8839 optimization_current_node has changed. 8840 * target-globals.h (save_target_globals_default_opts): Protoize. 8841 * target-globals.c (save_target_globals_default_opts): New. 8842 88432013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 8844 8845 PR target/56347 8846 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark 8847 registers %fr12 and %fr12R as call used. 8848 8849 PR target/56214 8850 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode 8851 and HImode, require all displacements to be an integer multiple of 8852 their mode size. 8853 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses, 8854 only allow QImode and HImode when reload is in progress and strict is 8855 true. Likewise for symbolic addresses. Use base14_operand to check 8856 displacements in REG+BASE addresses. 8857 88582013-02-18 Richard Biener <rguenther@suse.de> 8859 8860 PR tree-optimization/56366 8861 * tree-vect-loop.c (get_initial_def_for_induction): Properly 8862 handle sign-conversion of outer-loop initial induction value. 8863 88642013-02-18 Richard Biener <rguenther@suse.de> 8865 8866 PR middle-end/56349 8867 * cfghooks.c (merge_blocks): If we merge a latch into another 8868 block adjust references to it. 8869 * cfgloop.c (flow_loops_find): Reset latch before recomputing it. 8870 (verify_loop_structure): Verify that a recorded latch is in fact 8871 a latch. 8872 88732013-02-18 Richard Biener <rguenther@suse.de> 8874 8875 PR tree-optimization/56321 8876 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly 8877 order SSA name release and virtual operand unlinking. 8878 88792013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com> 8880 8881 * config/microblaze/microblaze.md (save_stack_block): Define. 8882 (restore_stack_block): Likewise. 8883 88842013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com> 8885 8886 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1. 8887 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1. 8888 * config/microblaze/microblaze.c (microblaze_option_override): 8889 Bail out early for PIC modes when target does not support PIC. 8890 88912013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com> 8892 8893 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template): 8894 Replace with a microblaze version. 8895 (microblaze_trampoline_init): Adapt for microblaze. 8896 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for 8897 microblaze. 8898 88992013-02-16 Jakub Jelinek <jakub@redhat.com> 8900 Dodji Seketeli <dodji@redhat.com> 8901 8902 PR asan/56330 8903 * asan.c (get_mem_refs_of_builtin_call): White space and style 8904 cleanup. 8905 (instrument_mem_region_access): Do not forget to always put 8906 instrumentation of the of 'base' and 'base + len' in a "if (len != 8907 0) statement, even for cases where either 'base' or 'base + len' 8908 are not instrumented -- because they have been previously 8909 instrumented. Simplify the logic by putting all the statements 8910 instrument 'base + len' inside a sequence, and then insert that 8911 sequence right before the current insertion point. Then, to 8912 instrument 'base + len', just get an iterator on that statement. 8913 And do not forget to update the pointer to iterator the function 8914 received as argument. 8915 89162013-02-15 Vladimir Makarov <vmakarov@redhat.com> 8917 8918 PR rtl-optimization/56348 8919 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos. 8920 89212013-02-15 Steven Bosscher <steven@gcc.gnu.org> 8922 8923 * graph.c (start_graph_dump): Print dumpfile base as digraph label. 8924 (clean_graph_dump_file): Pass base to start_graph_dump. 8925 89262013-02-14 Richard Henderson <rth@redhat.com> 8927 8928 PR target/55941 8929 * lower-subreg.c (simple_move): Check dest mode instead of src mode. 8930 89312013-02-14 Steven Bosscher <steven@gcc.gnu.org> 8932 8933 * collect2-aix.h: Define F_LOADONLY. 8934 89352013-02-14 Richard Biener <rguenther@suse.de> 8936 8937 PR lto/50494 8938 * varasm.c (output_constant_def_1): Get the decl representing 8939 the constant as argument. 8940 (output_constant_def): Wrap output_constant_def_1. 8941 (make_decl_rtl): Use output_constant_def_1 with the decl 8942 representing the constant. 8943 (build_constant_desc): Optionally re-use a decl already 8944 representing the constant. 8945 (tree_output_constant_def): Adjust. 8946 89472013-02-14 Dodji Seketeli <dodji@redhat.com> 8948 8949 Fix an asan crash 8950 * asan.c (instrument_builtin_call): Really put the length of the 8951 second source argument into src1_len. 8952 89532013-02-13 Jakub Jelinek <jakub@redhat.com> 8954 8955 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge 8956 argument. If it is false, don't create edge from then_bb to 8957 fallthru_bb. 8958 (insert_if_then_before_iter): Pass true to it. 8959 (build_check_stmt): Pass false to it. 8960 (transform_statements): Flush hash table only on extended basic 8961 block boundaries, rather than at the beginning of every bb. 8962 Don't flush hash table on nonfreeing_call_p calls. 8963 * tree-flow.h (nonfreeing_call_p): New prototype. 8964 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static. 8965 89662013-02-13 David S. Miller <davem@davemloft.net> 8967 8968 * expmed.c (expand_shift_1): Only strip scalar integer subregs. 8969 89702013-02-13 Vladimir Makarov <vmakarov@redhat.com> 8971 8972 PR target/56184 8973 * ira.c (max_regno_before_ira): Move from ... 8974 (ira): ... here. 8975 (fix_reg_equiv_init): Use max_regno_before_ira instead of 8976 vec_safe_length. 8977 89782013-02-13 Jakub Jelinek <jakub@redhat.com> 8979 8980 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change. 8981 89822013-02-13 Richard Biener <rguenther@suse.de> 8983 8984 PR lto/56295 8985 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping 8986 globals in MEM_REFs. 8987 89882013-02-13 Richard Biener <rguenther@suse.de> 8989 8990 * loop-init.c (loop_optimizer_init): Clear loop state when 8991 re-initializing preserved loops. 8992 * loop-unswitch.c (unswitch_single_loop): Return whether 8993 we unswitched the loop. Do not verify loop state here. 8994 (unswitch_loops): When we unswitched a loop discover new 8995 loops. 8996 89972013-02-13 Kostya Serebryany <kcc@google.com> 8998 8999 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset on x86_64 9000 linux. 9001 * sanitizer.def: Rename __asan_init to __asan_init_v1. 9002 90032013-02-12 Dodji Seketeli <dodji@redhat.com> 9004 9005 Avoid instrumenting duplicated memory access in the same basic block 9006 * Makefile.in (asan.o): Add new dependency on hash-table.h 9007 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types. 9008 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table) 9009 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table) 9010 (free_mem_ref_resources, has_mem_ref_been_instrumented) 9011 (has_stmt_been_instrumented_p, update_mem_ref_hash_table) 9012 (get_mem_ref_of_assignment): New functions. 9013 (get_mem_refs_of_builtin_call): Extract from 9014 instrument_builtin_call and tweak a little bit to make it fit with 9015 the new signature. 9016 (instrument_builtin_call): Use the new 9017 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead 9018 of is_gimple_builtin_call. 9019 (instrument_derefs, instrument_mem_region_access): Insert the 9020 instrumented memory reference into the hash table. 9021 (maybe_instrument_assignment): Renamed instrument_assignment into 9022 this, and change it to advance the iterator when instrumentation 9023 actually happened and return true in that case. This makes it 9024 homogeneous with maybe_instrument_assignment, and thus give a 9025 chance to callers to be more 'regular'. 9026 (transform_statements): Clear the memory reference hash table 9027 whenever we enter a new BB, when we cross a function call, or when 9028 we are done transforming statements. Use 9029 maybe_instrument_assignment instead of instrumentation. No more 9030 need to special case maybe_instrument_assignment and advance the 9031 iterator after calling it; it's now handled just like 9032 maybe_instrument_call. Update comment. 9033 90342013-02-13 Richard Biener <rguenther@suse.de> 9035 9036 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): 9037 Fix loop discovery code. 9038 90392013-02-12 Vladimir Makarov <vmakarov@redhat.com> 9040 9041 PR inline-asm/56148 9042 * lra-constraints.c (process_alt_operands): Match early clobber 9043 operand with itself. Check conflicts with earlyclobber only if 9044 the operand is not reloaded. Prefer to reload conflicting operand 9045 if earlyclobber and matching operands are the same. 9046 90472013-02-12 Richard Biener <rguenther@suse.de> 9048 9049 PR lto/56297 9050 * lto-streamer-out.c (write_symbol): Do not output symbols 9051 for hard register variables. 9052 90532013-02-12 Georg-Johann Lay <avr@gjlay.de> 9054 9055 PR target/54222 9056 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders. 9057 (umulsidi3_insn, mulsidi3_insn): New insns. 9058 90592013-02-12 Christophe Lyon <christophe.lyon@linaro.org> 9060 9061 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type. 9062 (struct tune_params): Add vec_costs field. 9063 * config/arm/arm.c (arm_builtin_vectorization_cost) 9064 (arm_add_stmt_cost): New functions. 9065 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST) 9066 (TARGET_VECTORIZE_ADD_STMT_COST): Define. 9067 (arm_default_vec_cost): New struct of type cpu_vec_costs. 9068 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune) 9069 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune) 9070 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune) 9071 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field. 9072 90732013-02-12 Richard Biener <rguenther@suse.de> 9074 9075 PR lto/56295 9076 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off 9077 decls again if possible. 9078 90792013-02-12 Richard Biener <rguenther@suse.de> 9080 9081 PR middle-end/56288 9082 * tree-ssa.c (verify_ssa_name): Fix check, move 9083 SSA_NAME_IN_FREE_LIST check up. 9084 90852013-02-12 Jakub Jelinek <jakub@redhat.com> 9086 Steven Bosscher <steven@gcc.gnu.org> 9087 9088 PR rtl-optimization/56151 9089 * optabs.c (add_equal_note): Don't return 0 if target is a MEM, 9090 equal to op0 or op1, and last_insn pattern is CODE operation 9091 with MEM dest and one of the operands matches that MEM. 9092 90932013-02-11 Sriraman Tallam <tmsriramgoogle.com> 9094 9095 * doc/extend.texi: Document Function Multiversioning and "default" 9096 parameter string to target attribute. 9097 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if 9098 target attribute parameter is "default". 9099 (ix86_compare_version_priority): Remove checks for target attribute. 9100 (ix86_mangle_function_version_assembler_name): Change error to sorry. 9101 Remove check for target attribute equal to NULL. Add assert. 9102 (ix86_generate_version_dispatcher_body): Change error to sorry. 9103 91042013-02-11 Iain Sandoe <iain@codesourcery.com> 9105 Jack Howarth <howarth@bromo.med.uc.edu> 9106 Patrick Marlier <patrick.marlier@gmail.com> 9107 9108 PR libitm/55693 9109 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and 9110 define ENDFILE_SPEC as TM_DESTRUCTOR. 9111 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR. 9112 91132013-02-11 Alexander Potapenko <glider@google.com> 9114 Jack Howarth <howarth@bromo.med.uc.edu> 9115 Jakub Jelinek <jakub@redhat.com> 9116 9117 PR sanitizer/55617 9118 * config/darwin.c (cdtor_record): Rename ctor_record. 9119 (sort_cdtor_records): Rename sort_ctor_records. 9120 (finalize_dtors): New routine to sort destructors by 9121 priority before use in assemble_integer. 9122 (machopic_asm_out_destructor): Use finalize_dtors if needed. 9123 91242013-02-11 Uros Bizjak <ubizjak@gmail.com> 9125 9126 PR rtl-optimization/56275 9127 * simplify-rtx.c (avoid_constant_pool_reference): Check that 9128 offset is non-negative and less than cmode size before 9129 calling simplify_subreg. 9130 91312013-02-11 Richard Biener <rguenther@suse.de> 9132 9133 PR tree-optimization/56264 9134 * cfgloop.h (fix_loop_structure): Adjust prototype. 9135 * loop-init.c (fix_loop_structure): Return the number of 9136 newly discovered loops. 9137 * tree-cfgcleanup.c (repair_loop_structures): When new loops 9138 are discovered, do a full loop-closed SSA rewrite. 9139 91402013-02-11 Richard Biener <rguenther@suse.de> 9141 9142 PR tree-optimization/56273 9143 * tree-vrp.c (simplify_cond_using_ranges): Disable for the 9144 first VRP run. 9145 (check_array_ref): Fix missing newline in dumps. 9146 (search_for_addr_array): Likewise. 9147 91482013-02-09 David Edelsohn <dje.gcc@gmail.com> 9149 9150 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine. 9151 91522013-02-09 Jakub Jelinek <jakub@redhat.com> 9153 9154 PR target/56256 9155 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define. 9156 91572013-02-08 Vladimir Makarov <vmakarov@redhat.com> 9158 9159 PR rtl-optimization/56246 9160 * lra-constraints.c (simplify_operand_subreg): Try to reuse 9161 reload pseudo. 9162 * lra.c (lra): Clear lra_optional_reload_pseudos only when all 9163 constraints are satisfied. 9164 91652013-02-08 Jeff Law <law@redhat.com> 9166 9167 PR debug/53948 9168 * emit-rtl.c (reg_is_parm_p): New function. 9169 * regs.h (reg_is_parm_p): New prototype. 9170 * ira-conflicts.c (ira_build_conflicts): Allow parameters in 9171 callee-clobbered registers. 9172 91732013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com> 9174 9175 PR target/56043 9176 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): 9177 If there is no implicit builtin declaration, just return NULL. 9178 91792013-02-08 Uros Bizjak <ubizjak@gmail.com> 9180 9181 * config/i386/sse.md (FMAMODEM): New mode iterator. 9182 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM 9183 mode iterator. Do not use TARGET_SSE_MATH in insn constraint. 9184 91852013-02-08 Uros Bizjak <ubizjak@gmail.com> 9186 9187 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only 9188 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set. 9189 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto. 9190 91912013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com> 9192 9193 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT. 9194 (microblaze*-*-elf): Likewise. 9195 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to 9196 LINK_SPEC. 9197 * config/microblaze/microblaze-c.c: Add builtin defines for 9198 _LITTLE_ENDIAN and _BIG_ENDIAN. 9199 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and 9200 add to TARGET_DEFAULT flags. 9201 Expand ASM_SPEC and LINK_SPEC. 9202 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN. 9203 * config/microblaze/microblaze.md: Update extendsidi2 and 9204 movdi_internal instructions to use low-order / high-order reg 9205 print_operands. 9206 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian 9207 options and inversemask / mask of LITTLE_ENDIAN. 9208 * config/microblaze/t-microblaze: Expand multilib options to 9209 include mlittle-endian (le) and update exceptions patterns. 9210 92112013-02-08 Jakub Jelinek <jakub@redhat.com> 9212 9213 PR rtl-optimization/56195 9214 * lra-constraints.c (get_reload_reg): Don't reuse regs 9215 if they have smaller mode than requested, if they have 9216 wider mode than requested, try to return a SUBREG. 9217 9218 PR tree-optimization/56250 9219 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize 9220 if type is unsigned and code isn't MULT_EXPR. 9221 92222013-02-08 Georg-Johann Lay <avr@gjlay.de> 9223 9224 PR tree-optimization/56064 9225 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload 9226 bits according to mode. 9227 * fixed-value.h (fixed_from_double_int) 9228 (const_fixed_from_double_int): Adjust comments. 9229 92302013-02-08 Richard Biener <rguenther@suse.de> 9231 9232 PR lto/56231 9233 * lto-streamer.h (struct data_in): Remove current_file, current_line 9234 and current_col members. 9235 * lto-streamer-out.c (lto_output_location): Stream changed bits 9236 en-block for efficiency. 9237 * lto-streamer-in.c (clear_line_info): Remove. 9238 (lto_input_location): Cache current file, line and column 9239 globally via local statics. Read changed bits en-block. 9240 (input_function): Do not call clear_line_info. 9241 (lto_read_body): Likewise. 9242 (lto_input_toplevel_asms): Likewise. 9243 92442013-02-08 Michael Matz <matz@suse.de> 9245 9246 PR tree-optimization/52448 9247 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member. 9248 (nt_call_phase): New static. 9249 (add_or_mark_expr): Only mark accesses with newer phase than any 9250 call seen. 9251 (nonfreeing_call_p): New. 9252 (nt_init_block): Update nt_call_phase, mark blocks as visited. 9253 (nt_fini_block): Keep blocks marked as visited. 9254 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer. 9255 92562013-02-08 Richard Biener <rguenther@suse.de> 9257 9258 * ira.c (ira): Free broken dominator information. 9259 92602013-02-08 Uros Bizjak <ubizjak@gmail.com> 9261 9262 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro. 9263 92642013-02-08 Marek Polacek <polacek@redhat.com> 9265 9266 * cfgloop.c (verify_loop_structure): Add more checking of headers. 9267 92682013-02-08 Richard Biener <rguenther@suse.de> 9269 9270 PR middle-end/56181 9271 * cfgloop.h (flow_loops_find): Adjust. 9272 (bb_loop_header_p): Declare. 9273 * cfgloop.c (bb_loop_header_p): New function split out from ... 9274 (flow_loops_find): ... here. Adjust function signature, 9275 support incremental loop structure update. 9276 (verify_loop_structure): Cleanup. Verify a loop is a loop. 9277 * cfgloopmanip.c (fix_loop_structure): Move ... 9278 * loop-init.c (fix_loop_structure): ... here. 9279 (apply_loop_flags): Split out from ... 9280 (loop_optimizer_init): ... here. 9281 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find 9282 in incremental mode, only remove dead loops here. 9283 92842013-02-08 Georg-Johann Lay <avr@gjlay.de> 9285 9286 PR target/54222 9287 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add. 9288 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators. 9289 (round<mode>3, round<mode>3_const): New expanders for fixed-mode. 9290 (*round<mode>3.libgcc): New insns for fixed-modes. 9291 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME. 9292 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs. 9293 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs. 9294 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline 9295 implementations. Define to __builtin_avr_absFX, 9296 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively. 9297 (roundFX, countlsFX): Define to __builtin_avr_roundFX, 9298 __builtin_avr_countlsFX, respectively. 9299 * config/avr/avr-c.c (target.h): Include it. 9300 (enum avr_builtin_id): New enum. 9301 (avr_resolve_overloaded_builtin): New static function. 9302 (avr_register_target_pragmas): Use it to set 9303 targetm.resolve_overloaded_builtin. 9304 * config/avr/avr.c (avr_init_builtins): Supply myriads of local 9305 tree nodes used by DEF_BUILTIN. 9306 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them. 9307 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR. 9308 <AVR_BUILTIN_xxBITS>: Same. 9309 93102013-02-08 Richard Biener <rguenther@suse.de> 9311 9312 * cfgloop.c (verify_loop_structure): Properly handle 9313 a loop exiting to another loop header. 9314 * ira-int.h (ira_loops): Remove. 9315 * ira.c (ira_loops): Remove. 9316 (ira): Use loop_optimizer_init and loop_optimizer_finalize. 9317 (do_reload): Use loop_optimizer_finalize. 9318 * ira-build.c (create_loop_tree_nodes): Use get_loops and 9319 number_of_loops to access the loop tree. 9320 (more_one_region_p): Likewise. 9321 (finish_loop_tree_nodes): Likewise. 9322 (rebuild_regno_allocno_maps): Likewise. 9323 (mark_loops_for_removal): Likewise. 9324 (mark_all_loops_for_removal): Likewise. 9325 (remove_unnecessary_regions): Likewise. 9326 (ira_build): Likewise. 9327 * ira-emit.c (setup_entered_from_non_parent_p): Likewise. 9328 93292013-02-08 Richard Biener <rguenther@suse.de> 9330 9331 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency. 9332 * ipa-pure-const.c (analyze_function): Avoid calling 9333 mark_irreducible_loops twice. 9334 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup. 9335 93362013-02-07 David S. Miller <davem@davemloft.net> 9337 9338 * dwarf2out.c (based_loc_descr): Perform leaf register remapping 9339 on 'reg'. 9340 * var-tracking.c (vt_add_function_parameter): Test the presence of 9341 HAVE_window_save properly and do not remap argument registers when 9342 we have a leaf function. 9343 93442013-02-07 Uros Bizjak <ubizjak@gmail.com> 9345 9346 PR bootstrap/56227 9347 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT 9348 instead of "ll". 9349 * config/i386/i386.c (ix86_print_operand): Ditto. 9350 93512013-02-07 Vladimir Makarov <vmakarov@redhat.com> 9352 9353 * lra-constraints.c (process_alt_operands): Fix recently added comment. 9354 93552013-02-07 Vladimir Makarov <vmakarov@redhat.com> 9356 9357 PR rtl-optimization/56225 9358 * lra-constraints.c (process_alt_operands): Check that reload hard 9359 reg can hold value for strict_low_part. 9360 93612013-02-07 Jakub Jelinek <jakub@redhat.com> 9362 9363 PR debug/56154 9364 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to 9365 dwarf2out_end_function. 9366 (in_first_function_p, maybe_at_text_label_p, 9367 first_loclabel_num_not_at_text_label): New variables. 9368 (dwarf2out_var_location): In the first function find out 9369 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0. 9370 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New 9371 functions. 9372 93732013-02-07 Eric Botcazou <ebotcazou@adacore.com> 9374 9375 PR rtl-optimization/56178 9376 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a 9377 SUBREG of a register. Tidy up related block of code. 9378 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL 9379 note if the source is a register or a SUBREG of a register. 9380 93812013-02-07 Jakub Jelinek <jakub@redhat.com> 9382 9383 PR target/56228 9384 * config/rs6000/rs6000.md (ptrm): New mode attr. 9385 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11, 9386 call_value_indirect_aix<pttrsize>, 9387 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of 9388 m in constraints. 9389 93902013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at> 9391 9392 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable 9393 if -bnortl. Convert to strcmp and strncmp. 9394 93952013-02-07 Alan Modra <amodra@gmail.com> 9396 9397 PR target/54009 9398 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM 9399 addresses won't wrap when offsetting. 9400 (rs6000_secondary_reload): Provide secondary reloads needed for 9401 wrapping LO_SUM addresses. 9402 94032013-02-06 Thomas Schwinge <thomas@codesourcery.com> 9404 9405 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define 9406 MACH, just __MACH__. 9407 94082013-02-06 Richard Biener <rguenther@suse.de> 9409 9410 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP 9411 instead of calling fix_loop_structure. 9412 94132013-02-06 Jakub Jelinek <jakub@redhat.com> 9414 9415 PR middle-end/56217 9416 * omp-low.c (use_pointer_for_field): Return false if 9417 lower_send_shared_vars doesn't generate any copy-out code. 9418 94192013-02-06 Tom de Vries <tom@codesourcery.com> 9420 9421 PR rtl-optimization/56131 9422 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN 9423 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb 9424 of the label is NULL. Add comment. 9425 94262013-02-05 Jakub Jelinek <jakub@redhat.com> 9427 9428 * tree.h (struct tree_decl_with_vis): Remove thread_local field. 9429 9430 PR sanitizer/55374 9431 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define. 9432 (STATIC_LIBTSAN_LIBS): Likewise. 9433 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define. 9434 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC 9435 is defined, don't add anything else beyond that. 9436 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define. 9437 (LINK_COMMAND_SPEC): Use them. 9438 9439 PR tree-optimization/56205 9440 * tree-stdarg.c (check_all_va_list_escapes): Return true if 9441 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME 9442 and some va_list_escape_vars SSA_NAME appears in some PHI argument. 9443 94442013-02-05 Richard Biener <rguenther@suse.de> 9445 9446 PR tree-optimization/53342 9447 PR tree-optimization/53185 9448 * tree-vectorizer.h (vect_check_strided_load): Remove. 9449 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do 9450 not disallow peeling for vectorized strided loads. 9451 (vect_check_strided_load): Make static and simplify. 9452 (vect_analyze_data_refs): Adjust. 9453 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops 9454 correctly when vectorizing strided loads. 9455 94562013-02-05 Richard Biener <rguenther@suse.de> 9457 9458 * doc/install.texi: Refer to ISL, not PPL. 9459 94602013-02-05 Jan Hubicka <jh@suse.cz> 9461 9462 PR tree-optimization/55789 9463 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1. 9464 94652013-02-05 Jan Hubicka <jh@suse.cz> 9466 9467 PR tree-optimization/55789 9468 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove 9469 the dead call anyway. 9470 94712013-02-05 Eric Botcazou <ebotcazou@adacore.com> 9472 9473 PR sanitizer/55374 9474 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard. 9475 94762013-02-04 Alexander Potapenko <glider@google.com> 9477 Jack Howarth <howarth@bromo.med.uc.edu> 9478 Jakub Jelinek <jakub@redhat.com> 9479 9480 PR sanitizer/55617 9481 * config/darwin.c (sort_ctor_records): Stabilized qsort 9482 on constructor priority by using original position. 9483 (finalize_ctors): New routine to sort constructors by 9484 priority before use in assemble_integer. 9485 (machopic_asm_out_constructor): Use finalize_ctors if needed. 9486 94872013-02-04 Jakub Jelinek <jakub@redhat.com> 9488 9489 PR libstdc++/54314 9490 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn 9491 about visibility on artificial decls. 9492 * config/sol2.c (solaris_assemble_visibility): Likewise. 9493 94942013-02-04 Kai Tietz <ktietz@redhat.com> 9495 9496 PR target/56186 9497 * config/i386/i386.c (function_value_ms_64): Add additional valtype 9498 argument and improve checking of return-argument types for 16-byte 9499 modes. 9500 (ix86_function_value_1): Add additional valtype argument on call 9501 of function_value_64. 9502 (return_in_memory_ms_64): Sync 16-byte sized mode handling with 9503 handling infunction_value_64 function. 9504 95052013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> 9506 9507 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue. 9508 95092013-02-04 Richard Biener <rguenther@suse.de> 9510 9511 PR tree-optimization/56188 9512 * tree-ssa-structalias.c (label_visit): Consider case with 9513 initially non-empty points-to set. 9514 (perform_var_substitution): Dump node mapping and clean up. 9515 95162013-02-04 Richard Guenther <rguenther@suse.de> 9517 9518 PR lto/56168 9519 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin 9520 node prevail as last resort. 9521 (lto_symtab_merge_decls): Remove guard on LTRANS here. 9522 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl. 9523 95242013-02-04 Richard Biener <rguenther@suse.de> 9525 9526 PR tree-optimization/56113 9527 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add): 9528 Merge into ... 9529 (equiv_class_lookup_or_add): ... this. 9530 (label_visit): Adjust and fix error in previous patch. 9531 (perform_var_substitution): Adjust. 9532 95332013-02-03 Oleg Endo <olegendo@gcc.gnu.org> 9534 9535 * config/sh/divtab.c: Fix formatting and comments throughout the file. 9536 * config/sh/sh4-300.md: Likewise. 9537 * config/sh/sh4a.md: Likewise. 9538 * config/sh/constraints.md: Likewise. 9539 * config/sh/sh.md: Likewise. 9540 * config/sh/netbsd-elf.h: Likewise. 9541 * config/sh/predicates.md: Likewise. 9542 * config/sh/sh-protos.h: Likewise. 9543 * config/sh/ushmedia.h: Likewise. 9544 * config/sh/linux.h: Likewise. 9545 * config/sh/sh.c: Likewise. 9546 * config/sh/superh.h: Likewise. 9547 * config/sh/elf.h: Likewise. 9548 * config/sh/sh4.md: Likewise. 9549 * config/sh/sh.h: Likewise. 9550 95512013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 9552 9553 * config/pa/constraints.md: Adjust unused letters. Change "T" 9554 constraint to match_test floating_point_store_memory_operand(). 9555 * config/pa/predicates.md (reg_plus_base_memory_operand): New. 9556 (base14_operand): New. 9557 (floating_point_store_memory_operand): New. 9558 (integer_store_memory_operand): Revise to use base14_operand and 9559 reg_plus_base_memory_operand. 9560 (move_dest_operand): Allow symbolic_memory_operands. 9561 (symbolic_memory_operand): Check for LO_SOM. 9562 (symbolic_operand): Change default case to break. 9563 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force 9564 CONST_DOUBLE values to be reloaded by putting them into memory when 9565 the destination is a floating point register. 9566 (movdf): Remove code to handle CONST_DOUBLE. 9567 (movsf): Likewise. 9568 (reload_indf_r1): New. 9569 (reload_insf_r1): New. 9570 Consistently use "Q" and "T" constraints with integer and floating 9571 point move instructions, respectively. 9572 (movdi): Remove FAIL. 9573 Change predicate for source operand unamed DImode move from 9574 general_operand to move_src_operand. 9575 (umulsidi3): Change predicate for destination operand to 9576 register_operand. 9577 Likewise for similar unamed patterns. 9578 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare. 9579 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis. 9580 (hppa_legitimize_address): Simplify mask calculation. 9581 (pa_emit_move_sequence): Revised handling of secondary reloads from 9582 REG+D addresses for floating point loads and stores. Directly handle 9583 loading CONST0_RTX (mode) to a floating point register. 9584 (pa_secondary_reload): Handle reloading DF and SFmode constant values 9585 to floating point registers. Don't restrict secondary reloads to 9586 floating point registers to integer modes. Revise some comments and 9587 cleanup some code. 9588 (TARGET_LEGITIMATE_ADDRESS_P): Define. 9589 (pa_legitimate_address_p): New. 9590 (pa_legitimize_reload_address): New. 9591 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New. 9592 (STRICT_REG_OK_FOR_BASE_P): New. 9593 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments. 9594 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address. 9595 95962013-02-03 David Edelsohn <dje.gcc@gmail.com> 9597 Andrew Dixie <andrewd@gentrack.com> 9598 9599 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY 9600 flag set. 9601 96022013-02-03 Richard Sandiford <rdsandiford@googlemail.com> 9603 9604 * expmed.c (extract_bit_field_1): Pass the full width of the 9605 structure to get_best_reg_extraction_insn. 9606 96072013-02-01 David Edelsohn <dje.gcc@gmail.com> 9608 9609 PR target/54601 9610 * configure.ac (use_cxa_atexit): Add AIX. 9611 * configure: Regenerate. 9612 9613 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o. 9614 96152013-02-01 Jakub Jelinek <jakub@redhat.com> 9616 9617 PR debug/54793 9618 * final.c (need_profile_function): New variable. 9619 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument. 9620 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG 9621 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED 9622 notes, targetm.asm_out.function_prologue doesn't emit anything, 9623 HAVE_prologue and profiler should be emitted before prologue, 9624 set need_profile_function instead of emitting it. 9625 (final_scan_insn): If need_profile_function, emit 9626 profile_function on the first NOTE_INSN_BASIC_BLOCK or 9627 NOTE_INSN_FUNCTION_BEG note. 9628 96292013-02-01 Richard Henderson <rth@redhat.com> 9630 9631 * config/rs6000/rs6000.md (smulditi3): New. 9632 (umulditi3): New. 9633 9634 * config/alpha/alpha.md (umulditi3): New. 9635 96362013-02-01 David Edelsohn <dje.gcc@gmail.com> 9637 9638 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2. 9639 (ASM_OUTPUT_ALIGNED_LOCAL): New. 9640 96412013-02-01 Richard Biener <rguenther@suse.de> 9642 9643 PR tree-optimization/56113 9644 * tree-ssa-structalias.c (label_visit): Reduce work for 9645 single-predecessor nodes. 9646 96472013-02-01 Eric Botcazou <ebotcazou@adacore.com> 9648 9649 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the 9650 range isn't testing for zero. 9651 96522013-01-31 Steven Bosscher <steven@gcc.gnu.org> 9653 9654 PR middle-end/56113 9655 * fwprop.c (fwprop_init): Set up loops without CFG modifications. 9656 96572013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com> 9658 Nick Clifton <nickc@redhat.com> 9659 9660 * config/v850/constraints.md (Q): Define as a memory constraint. 9661 * config/v850/predicates.md (label_ref_operand): New predicate. 9662 (e3v5_shift_operand): New predicate. 9663 (ior_operator): New predicate. 9664 * config/v850/t-v850: Add e3v5 multilib. 9665 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype. 9666 (v850_gen_movdi): Prototype. 9667 * config/v850/v850.c: Add support for e3v5 architecture. 9668 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to 9669 TARGET_V850E_UP. 9670 (construct_save_jarl): Add e3v5 long JARL support. 9671 (v850_adjust_insn_length): New function. Adjust length of call 9672 insns when using e3v5 instructions. 9673 (v850_gen_movdi): New function: Generate instructions to move a 9674 DImode value. 9675 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define. 9676 (CPP_SPEC): Define __v850e3v5__ as appropriate. 9677 (TARGET_USE_FPU): Enable for e3v5. 9678 (CONST_OK_FOR_W): New macro. 9679 (ADJUST_INSN_LENGTH): Define. 9680 * config/v850/v850.md (UNSPEC_LOOP): Define. 9681 (attr cpu): Add v850e3v5. 9682 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP. 9683 (movdi): New pattern. 9684 (movdi_internal): New pattern. 9685 (cbranchsf4): Conditionalize on TARGET_USE_FPU. 9686 (cbranchdf4): Conditionalize on TARGET_USE_FPU. 9687 (cstoresf4): Likewise. 9688 (cstoredf4): Likewise. 9689 (insv): New pattern. 9690 (rotlso3_a): New pattern. 9691 (rotlsi3_b): New pattern 9692 (rotlsi3_v850e3v5): New pattern. 9693 (doloop_begin): New pattern. 9694 (fix_loop_counter): New pattern. 9695 (doloop_end): New pattern. 9696 (branch_normal): Add e3v5 long branch support. 9697 (branch_invert): Likewise. 9698 (branch_z_normal): Likewise. 9699 (branch_z_invert): Likewise. 9700 (branch_nz_normal): Likewise. 9701 (branch_nz_invert): Likewise. 9702 (call_internal_short): Add e3v5 register-indirect JARL support. 9703 (call_internal_long): Likewise. 9704 (call_value_internal_short): Likewise. 9705 (call_value_internal_long): Likewise. 9706 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options. 9707 (mloop): New option. 9708 * config.gcc: Add support for configuring v840e3v5 target. 9709 * doc/invoke.texi: Document new v850 specific command line options. 9710 97112013-01-31 Paul Koning <ni1d@arrl.net> 9712 9713 PR debug/55059 9714 PR debug/54508 9715 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's 9716 children if parent is a class. 9717 (prune_unused_types_prune): Don't add DW_AT_declaration. 9718 97192013-01-31 Richard Biener <rguenther@suse.de> 9720 9721 PR tree-optimization/56157 9722 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to 9723 match up operand with SLP child. 9724 97252013-01-31 Jason Merrill <jason@redhat.com> 9726 9727 PR debug/54410 9728 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template 9729 parameters the first time. 9730 (gen_scheduled_generic_parms_dies): Check completeness here. 9731 97322013-01-31 Richard Biener <rguenther@suse.de> 9733 9734 PR middle-end/53073 9735 * common.opt (faggressive-loop-optimizations): New flag, 9736 enabled by default. 9737 * doc/invoke.texi (faggressive-loop-optimizations): Document. 9738 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard 9739 infer_loop_bounds_from_undefined by it. 9740 97412013-01-31 Richard Biener <rguenther@suse.de> 9742 9743 PR tree-optimization/56150 9744 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not 9745 visit virtual operands. 9746 (find_uses_to_rename_bb): Likewise. 9747 97482013-01-31 Richard Biener <rguenther@suse.de> 9749 9750 PR tree-optimization/56150 9751 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle 9752 mixed store non-store stmts. 9753 97542013-01-30 Jakub Jelinek <jakub@redhat.com> 9755 9756 PR sanitizer/55374 9757 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if 9758 LIBASAN_EARLY_SPEC is defined. 9759 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined. 9760 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address, 9761 before %o. 9762 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define. 9763 9764 PR c++/55742 9765 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose 9766 invalid args instead of ICEing on it. 9767 (ix86_valid_target_attribute_tree): Return error_mark_node if 9768 ix86_valid_target_attribute_inner_p failed. 9769 (ix86_valid_target_attribute_p): Return false only if 9770 ix86_valid_target_attribute_tree returned error_mark_node. Allow 9771 target("default") attribute. 9772 (sorted_attr_string): Change argument from const char * to tree, 9773 merge in all target attribute arguments rather than just one. 9774 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC 9775 instead of free. Avoid using strcat. 9776 (ix86_mangle_function_version_assembler_name): Mangle 9777 target("default") as if no target attribute is present. Adjust 9778 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC 9779 instead of xmalloc and XDELETEVEC instead of free. 9780 (ix86_function_versions): Don't return true if one of the decls 9781 doesn't have target attribute. If they don't and one of the decls 9782 is DECL_FUNCTION_VERSIONED, report an error. Adjust 9783 sorted_attr_string caller. Use XDELETEVEC instead of free. 9784 (ix86_supports_function_versions): Remove. 9785 (make_name): Fix up formatting. 9786 (make_dispatcher_decl): Remove resolver_name and its initialization. 9787 Avoid leaking memory. 9788 (is_function_default_version): Return true if there is 9789 target("default") attribute rather than no target attribute at all. 9790 (make_resolver_func): Avoid leaking memory. 9791 (ix86_generate_version_dispatcher_body): Likewise. 9792 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove. 9793 * target.def (supports_function_versions): Remove. 9794 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove. 9795 * doc/tm.texi: Regenerated. 9796 97972013-01-30 Vladimir Makarov <vmakarov@redhat.com> 9798 9799 PR rtl-optimization/56144 9800 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo 9801 for values with side effects. 9802 98032013-01-30 Richard Biener <rguenther@suse.de> 9804 9805 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert. 9806 (sparseset_pop): Likewise. 9807 * cfganal.c (compute_idf): Likewise. Increase work-stack size 9808 to be able to use quick_push in the worker loop. 9809 98102013-01-30 Marek Polacek <polacek@redhat.com> 9811 9812 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs. 9813 98142013-01-30 Richard Biener <rguenther@suse.de> 9815 9816 PR lto/56147 9817 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check. 9818 98192013-01-30 Georg-Johann Lay <avr@gjlay.de> 9820 9821 PR tree-optimization/56064 9822 * fixed-value.c (fixed_from_double_int): New function. 9823 * fixed-value.h (fixed_from_double_int): New prototype. 9824 (const_fixed_from_double_int): New static inline function. 9825 * fold-const.c (native_interpret_fixed): New static function. 9826 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it. 9827 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true. 9828 (native_encode_fixed): New static function. 9829 (native_encode_expr) <FIXED_CST>: Use it. 9830 (native_interpret_int): Move double_int worker code to... 9831 * double-int.c (double_int::from_buffer): ...this new static method. 9832 * double-int.h (double_int::from_buffer): Prototype it. 9833 98342013-01-30 Richard Biener <rguenther@suse.de> 9835 9836 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack): 9837 New pointer-map and obstack. 9838 (init_alias_vars): Allocate pointer-map and obstack. 9839 (delete_points_to_sets): Free them. 9840 (find_what_var_points_to): Cache result. 9841 (find_what_p_points_to): Adjust for changed interface of 9842 find_what_var_points_to. 9843 (compute_points_to_sets): Likewise. 9844 (ipa_pta_execute): Likewise. 9845 98462013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 9847 9848 * configure.ac (HAVE_AS_SPARC_NOBITS): New test. 9849 * configure: Regenerate. 9850 * config.in: Regenerate. 9851 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit 9852 #nobits/#progbits if supported. 9853 98542013-01-29 Oleg Endo <olegendo@gcc.gnu.org> 9855 9856 PR target/56121 9857 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a, 9858 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a, 9859 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition. 9860 98612013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> 9862 9863 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove. 9864 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all. 9865 98662013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> 9867 9868 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL. 9869 * config/arm/cortex-a7.md (cortex_a7_call): Update required units. 9870 98712013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> 9872 9873 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New 9874 declaration. 9875 * config/arm/arm.c (arm_mac_accumulator_is_result): New function. 9876 * config/arm/cortex-a7.md: New bypasses using 9877 arm_mac_accumulator_is_result. 9878 98792013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> 9880 9881 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation. 9882 (cortex_a7_neon_mla): Likewise. 9883 (cortex_a7_fpfmad): New reservation. 9884 (cortex_a7_fpmacs): Use ffmas and update required units. 9885 (cortex_a7_fpmuld): Update required units and latency. 9886 (cortex_a7_fpmacd): Likewise. 9887 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise. 9888 (cortex_a7_neon). Likewise. 9889 (bypass) Update participating units. 9890 98912013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> 9892 9893 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute. 9894 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type 9895 from fmac to ffma. 9896 * config/arm/vfp11.md (vfp_farith): Use ffmas. 9897 (vfp_fmul): Use ffmad. 9898 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas. 9899 (cortex_r4_fmacd): Use ffmad. 9900 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas. 9901 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas. 9902 (cortex_a9_fmacd): Use ffmad. 9903 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas. 9904 (cortex_a8_vfp_macd): Use ffmad. 9905 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas. 9906 (cortex_a5_fpmacd): Use ffmad. 9907 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas. 9908 (cortex_a15_vfp_macd): Use ffmad. 9909 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad. 9910 99112013-01-29 Jason Merrill <jason@redhat.com> 9912 9913 PR libstdc++/54314 9914 * varasm.c (default_assemble_visibility): Don't warn about 9915 visibility on artificial decls. 9916 99172013-01-29 Richard Biener <rguenther@suse.de> 9918 9919 PR tree-optimization/56113 9920 * tree-ssa-structalias.c (equiv_class_lookup): Also return 9921 the bitmap leader. 9922 (label_visit): Free duplicate bitmaps and record the leader instead. 9923 (perform_var_substitution): Adjust. 9924 99252013-01-29 Richard Biener <rguenther@suse.de> 9926 9927 PR tree-optimization/55270 9928 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed 9929 the CFG, schedule loops for fixup. 9930 99312013-01-29 Nick Clifton <nickc@redhat.com> 9932 9933 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow 9934 SP_REG. 9935 99362013-01-28 Leif Ekblad <leif@rdos.net> 9937 9938 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets. 9939 * config/i386/i386.h (TARGET_RDOS): New macro. 9940 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro. 9941 * config/i386/i386.c (ix86_option_override_internal): For 64bit 9942 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1. 9943 * config/i386/i386.opt (mlarge-data-threshold): Initialize to 9944 DEFAULT_LARGE_SECTION_THRESHOLD. 9945 * config/i386/i386.md (R14_REG, R15_REG): New constants. 9946 * config/i386/rdos.h: New file. 9947 * config/i386/rdos64.h: New file. 9948 99492013-01-28 Bernd Schmidt <bernds@codesourcery.com> 9950 9951 PR other/54814 9952 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of 9953 TEST_HARD_REG_BIT. 9954 99552013-01-28 Jakub Jelinek <jakub@redhat.com> 9956 9957 PR rtl-optimization/56117 9958 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib 9959 call cselib_lookup_from_insn on the MEM before calling 9960 add_insn_mem_dependence. 9961 99622013-01-28 Richard Biener <rguenther@suse.de> 9963 9964 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK 9965 to a stmt that didn't have one. 9966 (copy_phis_for_bb): Likewise for PHI arguments. 9967 (copy_debug_stmt): Likewise for debug stmts. 9968 99692013-01-28 Richard Biener <rguenther@suse.de> 9970 9971 PR tree-optimization/56034 9972 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION. 9973 (partition_builtin_p): Adjust. 9974 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert 9975 it is the last partition. 9976 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking 9977 up the vertex for the definition. 9978 (classify_partition): Classify whether a partition is a 9979 PKIND_REDUCTION, thus has uses outside of the loop. 9980 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions. 9981 Merge all PKIND_REDUCTION partitions into the last partition. 9982 (tree_loop_distribution): Seed partitions from reductions as well. 9983 99842013-01-28 Jakub Jelinek <jakub@redhat.com> 9985 9986 PR tree-optimization/56125 9987 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize 9988 pow(x,c) into sqrt(x) * powi(x, n/2) or 9989 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when 9990 optimizing for size. 9991 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or 9992 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an 9993 integer. 9994 9995 PR tree-optimization/56094 9996 * gimplify.c (force_gimple_operand_1): Temporarily set input_location 9997 to UNKNOWN_LOCATION while gimplifying expr. 9998 99992013-01-27 Uros Bizjak <ubizjak@gmail.com> 10000 10001 PR target/56114 10002 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around 10003 operand 0 in movabs insn template for -masm=intel asm alternative. 10004 (*movabs<mode>_2): Ditto for operand 1. 10005 100062013-01-26 David Holsgrove <david.holsgrove@xilinx.com> 10007 10008 PR target/54663 10009 * config.gcc (microblaze*-linux*): Add tmake_file to allow building 10010 of microblaze-c.o 10011 100122013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com> 10013 10014 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update 10015 tm_file. 10016 100172013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 10018 10019 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS): 10020 Undef to avoid warning. 10021 100222013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at> 10023 10024 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld. 10025 * configure: Regenerate. 10026 100272013-01-25 Jakub Jelinek <jakub@redhat.com> 10028 10029 PR tree-optimization/56098 10030 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr 10031 for stmts with volatile ops. 10032 (cond_store_replacement): Don't optimize if assign has volatile ops. 10033 (cond_if_else_store_replacement_1): Don't optimize if either 10034 then_assign or else_assign have volatile ops. 10035 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have 10036 volatile ops. 10037 100382013-01-25 Georg-Johann Lay <avr@gjlay.de> 10039 10040 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__. 10041 100422013-01-25 Georg-Johann Lay <avr@gjlay.de> 10043 10044 * doc/extend.texi (Example of asm with clobbered asm reg): Fix 10045 missing ':' in asm example. 10046 100472013-01-25 Tejas Belagod <tejas.belagod@arm.com> 10048 10049 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane 10050 entries into lane and laneq entries. 10051 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>): 10052 Remove AdvSIMD scalar modes. 10053 (aarch64_sq<r>dmulh_laneq<mode>): New. 10054 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD 10055 modes. 10056 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics' 10057 builtin implementations to relfect changes in RTL in aarch64-simd.md. 10058 * config/aarch64/iterators.md (VCOND): New. 10059 (VCONQ): New. 10060 100612013-01-25 Georg-Johann Lay <avr@gjlay.de> 10062 10063 PR target/54222 10064 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument. 10065 Add NULL LIBNAME argument to existing definitions. 10066 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New. 10067 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument. 10068 * config/avr/avr.c (DEF_BUILTIN): Same. 10069 (avr_init_builtins): Pass down LIBNAME to add_builtin_function. 10070 (avr_expand_builtin): Expand to a vanilla call if a libgcc 10071 implementation is available (DECL_ASSEMBLER_NAME is set). 10072 (avr_fold_absfx): New static function. 10073 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR, 10074 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR, 10075 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK, 10076 AVR_BUILTIN_ABSLLK. 10077 * config/avr/stdfix.h (abshr, absr, abslr, absllr) 10078 (abshk, absk, abslk, absllk): Provide as static inline functions. 10079 100802013-01-25 Marek Polacek <polacek@redhat.com> 10081 10082 PR tree-optimization/56035 10083 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition. 10084 100852012-01-24 Uros Bizjak <ubizjak@gmail.com> 10086 10087 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative. 10088 (*movtf_internal_rex64): Add (!o,C) alternative 10089 (*movxf_internal_rex64): Ditto. 10090 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives. 10091 100922013-01-24 Shenghou Ma <minux.ma@gmail.com> 10093 10094 * doc/invoke.texi: fix typo. 10095 * doc/objc.texi: fix typo. 10096 100972013-01-24 Richard Sandiford <rdsandiford@googlemail.com> 10098 10099 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint 10100 for the first two alternatives. 10101 101022013-01-24 Diego Novillo <dnovillo@google.com> 10103 10104 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o. 10105 (ggc-zone.o): Remove. 10106 * configure.ac: Remove option --with-gc. 10107 * configure: Re-generate. 10108 * doc/install.texi: Remove documentation for --with-gc. 10109 * gengtype.c (write_enum_defn): Remove. Update all users. 10110 (write_Types_process_field): Remove generation of gt_e_* argument. 10111 (output_type_enum): Remove. Update all users. 10112 (write_enum_defn): Remove. Update all users. 10113 (enum alloc_zone): Remove. Update all users. 10114 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument. 10115 * ggc-common.c (ggc_splay_alloc): Remove first argument. 10116 Update all callers. 10117 (struct ptr_data): Remove field TYPE. Update all users. 10118 (gt_pch_note_object): Remove argument TYPE. Update all users. 10119 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument. 10120 Update all users. 10121 * ggc-none.c (ggc_alloc_typed_stat): Remove. 10122 (struct alloc_zone): Remove. 10123 (ggc_internal_alloc_zone_stat): Remove. 10124 (ggc_internal_cleared_alloc_zone_stat): Remove. 10125 * ggc-page.c (ggc_alloc_typed_stat): Remove. 10126 (ggc_pch_count_object): Remove last argument. Update all users. 10127 (ggc_pch_alloc_object): Remove last argument. Update all users. 10128 (struct alloc_zone): Remove. 10129 * ggc-zone.c: Remove. 10130 * ggc.h (gt_pch_note_object): Remove last argument. Update all users. 10131 (struct alloc_zone): Remove. 10132 (ggc_alloc_typed_stat): Remove. 10133 (ggc_alloc_typed): Remove. 10134 (ggc_splay_alloc): Remove first argument. 10135 (rtl_zone): Remove. Update all users. 10136 (tree_zone): Remove. Update all users. 10137 (tree_id_zone): Remove. Update all users. 10138 (ggc_internal_zone_alloc_stat): Remove. Update all users. 10139 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users. 10140 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users. 10141 * tree-ssanames.c: Remove references to zone allocator in comments. 10142 101432013-01-24 Georg-Johann Lay <avr@gjlay.de> 10144 10145 * config/avr/avr.c (avr_out_fract): Make register numbers that 10146 might be outside of source operand signed. 10147 101482013-01-24 Uros Bizjak <ubizjak@gmail.com> 10149 10150 * config/i386/constraints.md (Yf): New constraint. 10151 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead 10152 of f constraint to conditionaly disable x87 register preferences. 10153 (*movdf_internal): Ditto. 10154 (*movsf_internal): Ditto. 10155 101562013-01-24 Steven Bosscher <steven@gcc.gnu.org> 10157 10158 PR inline-asm/55934 10159 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms 10160 that have operands with impossible constraints. 10161 Add a FIXME for a speed-up opportunity. 10162 * lra-constraints.c (process_alt_operands): Verify that a class 10163 selected from constraints on asms is valid for the operand mode. 10164 (curr_insn_transform): Remove incorrect comment. 10165 101662013-01-23 David Edelsohn <dje.gcc@gmail.com> 10167 10168 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that 10169 TOC operand is a valid symbol ref in the constant pool. 10170 101712013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com> 10172 10173 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS 10174 101752013-01-23 Georg-Johann Lay <avr@gjlay.de> 10176 10177 PR target/54222 10178 * config/avr/stdfix.h: New file. 10179 * t-avr (stdfix-gcc.h): New rule to build it. 10180 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h. 10181 101822013-01-23 Kostya Serebryany <kcc@google.com> 10183 10184 * config/darwin.h: remove dependency on 10185 CoreFoundation (asan on Mac OS). 10186 101872013-01-23 Jakub Jelinek <jakub@redhat.com> 10188 10189 PR target/49069 10190 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand 10191 instead of cmpdi_operand for first comparison operand. 10192 Don't assert that comparison operands aren't both constants. 10193 101942013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com> 10195 10196 * doc/install.texi (Downloading the Source): Update references to 10197 downloading separate components. 10198 101992013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com> 10200 10201 * doc/extend.texi (__int128): Improve grammar. 10202 102032013-01-22 Uros Bizjak <ubizjak@gmail.com> 10204 10205 PR target/56028 10206 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF) 10207 alternative to (o,r). 10208 (*movdi_internal_rex64): Remove (!o,n) alternative. 10209 (DImode immediate->memory splitter): Remove. 10210 (DImode immediate->memory peephole2): Remove. 10211 (movtf): Enable for TARGET_64BIT || TARGET_SSE. 10212 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r) 10213 alternative to (!o,*r). 10214 (*movtf_internal_sse): New pattern. 10215 (*movxf_internal_rex64): New pattern. 10216 (*movxf_internal): Disable for TARGET_64BIT. 10217 (*movdf_internal_rex64): Remove (!o,F) alternative. 10218 102192013-01-22 Jakub Jelinek <jakub@redhat.com> 10220 10221 PR middle-end/56074 10222 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc) 10223 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION. 10224 * tree-vect-loop-manip.c (find_loop_location): Also ignore 10225 stmt locations where LOCATION_LOCUS of the stmt location is 10226 UNKNOWN_LOCATION or BUILTINS_LOCATION. 10227 10228 PR target/55686 10229 * config/i386/i386.md (UNSPEC_STOS): New. 10230 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1, 10231 *strsetqi_1): Add UNSPEC_STOS. 10232 102332013-01-22 Paolo Carlini <paolo.carlini@oracle.com> 10234 10235 PR c++/56067 10236 * doc/invoke.texi: Remove left over -Wsynth example. 10237 102382013-01-21 Jakub Jelinek <jakub@redhat.com> 10239 10240 PR tree-optimization/56051 10241 * fold-const.c (fold_binary_loc): Don't fold 10242 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either 10243 a narrowing conversion, or widening conversion from signed 10244 to unsigned. 10245 102462013-01-21 Uros Bizjak <ubizjak@gmail.com> 10247 10248 PR rtl-optimization/56023 10249 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions, 10250 dependent on debug instruction. 10251 102522013-01-21 Martin Jambor <mjambor@suse.cz> 10253 10254 PR middle-end/56022 10255 * function.c (allocate_struct_function): Call 10256 invoke_set_current_function_hook earlier. 10257 102582013-01-21 Jakub Jelinek <jakub@redhat.com> 10259 10260 * reload1.c (init_reload): Only initialize reload_obstack 10261 during the first call. 10262 102632013-01-21 Marek Polacek <polacek@redhat.com> 10264 10265 * cfgloop.c (verify_loop_structure): Fix up grammar. 10266 102672013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com> 10268 10269 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift, 10270 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift. 10271 102722013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 10273 10274 PR target/56058 10275 * config/arm/marvell-pj4.md: Update copyright year. 10276 Fix up use of alu to alu_reg and simple_alu_imm. 10277 102782013-01-21 Uros Bizjak <ubizjak@gmail.com> 10279 10280 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA. 10281 102822013-01-20 Vladimir Makarov <vmakarov@redhat.com> 10283 10284 PR target/55433 10285 * lra-constraints.c (curr_insn_transform): Don't reuse original 10286 insn for secondary memory move when memory mode should be different. 10287 102882013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 10289 10290 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi, 10291 atomic_storedi_1): New patterns. 10292 102932013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 10294 10295 btver2 pipeline descriptions. 10296 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline 10297 descriptions. 10298 * config/i386/i386.md (btver2_decode): New type attributes. 10299 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New 10300 type attributes. 10301 * config/i386/btver2.md: New file describing btver2 pipelines. 10302 103032013-01-19 Andrew Pinski <apinski@cavium.com> 10304 10305 PR tree-optimization/52631 10306 * tree-ssa-sccvn (visit_use): Before looking up the original 10307 statement, try looking up the simplified expression. 10308 103092013-01-19 Anthony Green <green@moxielogic.com> 10310 10311 * config/moxie/moxie.c (moxie_expand_prologue): Set 10312 current_function_static_stack_size. 10313 103142013-01-18 Jakub Jelinek <jakub@redhat.com> 10315 10316 PR tree-optimization/56029 10317 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set 10318 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION. 10319 103202013-01-18 Sharad Singhai <singhai@google.com> 10321 10322 PR tree-optimization/55995 10323 * dumpfile.c (dump_loc): Print location only if available. 10324 * tree-vectorizer.c (increase_alignment): Intialize vect_location. 10325 103262013-01-18 Vladimir Makarov <vmakarov@redhat.com> 10327 10328 PR target/55433 10329 * lra-constraints.c (curr_insn_transform): Reuse original insn for 10330 secondary memory move. 10331 (inherit_reload_reg): Use rclass instead of cl for 10332 check_secondary_memory_needed_p. 10333 103342013-01-18 Jakub Jelinek <jakub@redhat.com> 10335 10336 PR middle-end/56015 10337 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle 10338 the case where writing real complex part of target modifies op1. 10339 103402013-01-18 James Greenhalgh <james.greenhalgh@arm.com> 10341 10342 * config/aarch64/aarch64-simd.md 10343 (aarch64_vcond_internal<mode>): Handle unordered cases. 10344 * config/aarch64/iterators.md (v_cmp_result): New. 10345 103462013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com> 10347 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 10348 10349 * config/arm/marvell-pj4.md: New file. 10350 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4. 10351 * config/arm/arm.md (generic_sched): Add marvell_pj4. 10352 (generic_vfp): Likewise. 10353 * config/arm/arm-cores.def: Add marvell-pj4. 10354 * config/arm/arm-tune.md: Regenerate. 10355 * config/arm/arm-tables.opt: Regenerate. 10356 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4. 10357 * doc/invoke.texi: Document marvell-pj4. 10358 103592013-01-18 Tejas Belagod <tejas.belagod@arm.com> 10360 10361 * config/aarch64/arm_neon.h: Map scalar types to standard types. 10362 103632013-01-18 Alexandre Oliva <aoliva@redhat.com> 10364 10365 PR debug/54114 10366 PR debug/54402 10367 PR debug/49888 10368 * var-tracking.c (negative_power_of_two_p): New. 10369 (global_get_addr_cache, local_get_addr_cache): New. 10370 (get_addr_from_global_cache, get_addr_from_local_cache): New. 10371 (vt_canonicalize_addr): Rewrite using the above. Adjust the 10372 heading comment. 10373 (vt_stack_offset_p): Remove. 10374 (vt_canon_true_dep): Always canonicalize loc's address. 10375 (clobber_overlapping_mems): Make sure we have a MEM. 10376 (local_get_addr_clear_given_value): New. 10377 (val_reset): Clear local cached entries. 10378 (compute_bb_dataflow): Create and release the local cache. 10379 Disable duplicate MEMs clobbering. 10380 (emit_notes_in_bb): Clobber MEMs likewise. 10381 (vt_emit_notes): Create and release the local cache. 10382 (vt_initialize, vt_finalize): Create and release the global 10383 cache, respectively. 10384 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs. 10385 103862013-01-18 Alexandre Oliva <aoliva@redhat.com> 10387 10388 PR libmudflap/53359 10389 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls 10390 not found in the symtab. 10391 103922013-01-18 Alexandre Oliva <aoliva@redhat.com> 10393 10394 PR debug/56006 10395 PR rtl-optimization/55547 10396 PR rtl-optimization/53827 10397 PR debug/53671 10398 PR debug/49888 10399 * alias.c (offset_overlap_p): New, factored out of... 10400 (memrefs_conflict_p): ... this. Use absolute sizes. Retain 10401 the conservative special case for symbolic constants. Don't 10402 adjust zero sizes on alignment. 10403 104042013-01-18 Bernd Schmidt <bernds@codesourcery.com> 10405 10406 PR rtl-optimization/52573 10407 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a 10408 REG_UNUSED for the same register. 10409 104102013-01-17 Richard Biener <rguenther@suse.de> 10411 Marek Polacek <polacek@redhat.com> 10412 10413 PR rtl-optimization/55833 10414 * loop-unswitch.c (unswitch_loops): Move loop verification... 10415 (unswitch_single_loop): ...here. Call mark_irreducible_loops. 10416 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter. 10417 Set it to true when we're removing a loop from hierarchy tree in 10418 an irreducible region. 10419 (fix_bb_placements): Adjust caller. 10420 (fix_loop_placements): Likewise. 10421 104222013-01-17 Georg-Johann Lay <avr@gjlay.de> 10423 10424 * config/avr/builtins.def (DEF_BUILTIN): Factor out 10425 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier. 10426 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'. 10427 Remove ID. Adjust comments. 10428 * config/avr/avr-c.c (avr_builtin_name): Remove. 10429 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop. 10430 * config/avr/avr.c (avr_tolower): New static function. 10431 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'. 10432 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it. 10433 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for 10434 default expansion. 10435 104362013-01-17 Jan Hubicka <jh@suse.cz> 10437 10438 PR tree-optimization/55273 10439 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case. 10440 104412013-01-17 Uros Bizjak <ubizjak@gmail.com> 10442 10443 PR target/55981 10444 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode 10445 store through atomic_store<mode>_1. 10446 (atomic_store<mode>_1): Macroize insn using SWI mode iterator. 10447 104482013-01-17 Martin Jambor <mjambor@suse.cz> 10449 10450 PR tree-optimizations/55264 10451 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true 10452 for virtual methods. 10453 * ipa.c (symtab_remove_unreachable_nodes): Never return true for 10454 virtual methods before inlining is over. 10455 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for 10456 virtual functions. 10457 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as 10458 non-virtual. 10459 104602013-01-16 Vladimir Makarov <vmakarov@redhat.com> 10461 10462 PR rtl-optimization/56005 10463 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding 10464 pending reads for prefetch. 10465 104662013-01-16 Ian Bolton <ian.bolton@arm.com> 10467 10468 * config/aarch64/aarch64.md 10469 (*cstoresi_neg_uxtw): New pattern. 10470 (*cmovsi_insn_uxtw): New pattern. 10471 (*<optab>si3_uxtw): New pattern. 10472 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern. 10473 (*<optab>si3_insn_uxtw): New pattern. 10474 (*bswapsi2_uxtw): New pattern. 10475 104762013-01-16 Richard Biener <rguenther@suse.de> 10477 10478 * tree-inline.c (tree_function_versioning): Remove set but 10479 never used variable. 10480 104812013-01-16 Richard Biener <rguenther@suse.de> 10482 10483 PR tree-optimization/55964 10484 * tree-flow.h (rename_variables_in_loop): Remove. 10485 (rename_variables_in_bb): Likewise. 10486 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove. 10487 (copy_loop_before): Adjust and delete update-ssa status. 10488 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static. 10489 (rename_variables_in_bb): Likewise. Properly walk over predecessors. 10490 (rename_variables_in_loop): Remove. 10491 (slpeel_update_phis_for_duplicate_loop): Likewise. 10492 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops, 10493 use available cfg machinery instead of duplicating it. 10494 Update PHI nodes and perform poor-mans SSA update here. 10495 (slpeel_tree_peel_loop_to_edge): Adjust. 10496 104972013-01-16 Richard Biener <rguenther@suse.de> 10498 10499 PR tree-optimization/54767 10500 PR tree-optimization/53465 10501 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465. 10502 (vrp_visit_phi_node): For PHI arguments coming via backedges 10503 drop all symbolical range information. 10504 (execute_vrp): Compute backedges. 10505 105062013-01-16 Richard Biener <rguenther@suse.de> 10507 10508 * doc/install.texi: Update CLooG and ISL requirements to 10509 0.18.0 and 0.11.1. 10510 105112013-01-16 Christian Bruel <christian.bruel@st.com> 10512 10513 PR target/55301 10514 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol. 10515 (broken_move): Handle UNSPECV_SP_SWITCH_B. 10516 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG). 10517 105182013-01-16 DJ Delorie <dj@redhat.com> 10519 10520 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New. 10521 (UNSPECV_SP_SWITCH_E): New. 10522 (sp_switch_1): Change to an unspec. 10523 (sp_switch_2): Change to an unspec. Don't use post-inc when we 10524 replace $r15. 10525 105262013-01-16 Uros Bizjak <ubizjak@gmail.com> 10527 10528 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument 10529 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types. 10530 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto. 10531 (expand_mem_thread_fence): Ditto. 10532 (expand_mem_signal_fence): Ditto. 10533 (expand_atomic_load): Ditto. 10534 (expand_atomic_store): Ditto. 10535 105362013-01-16 Alexandre Oliva <aoliva@redhat.com> 10537 10538 PR rtl-optimization/55547 10539 PR rtl-optimization/53827 10540 PR debug/53671 10541 PR debug/49888 10542 * alias.c (memrefs_conflict_p): Set sizes to negative after 10543 AND adjustments. 10544 105452013-01-15 Jakub Jelinek <jakub@redhat.com> 10546 10547 PR target/55940 10548 * function.c (thread_prologue_and_epilogue_insns): Always 10549 add crtl->drap_reg to set_up_by_prologue.set, even if 10550 stack_realign_drap is false. 10551 105522013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de> 10553 10554 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, 10555 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3, 10556 *call): Fix indention. 10557 105582013-01-15 Tom de Vries <tom@codesourcery.com> 10559 10560 PR target/55876 10561 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG. 10562 Update comment. 10563 105642013-01-15 Vladimir Makarov <vmakarov@redhat.com> 10565 10566 PR rtl-optimization/55153 10567 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch. 10568 105692013-01-15 Martin Jambor <mjambor@suse.cz> 10570 10571 PR tree-optimization/55920 10572 * tree-sra.c (analyze_access_subtree): Do not mark non-removable 10573 accesses as grp_to_be_debug_replaced. 10574 105752013-01-15 Jakub Jelinek <jakub@redhat.com> 10576 10577 PR tree-optimization/55920 10578 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced 10579 there is non-useless type conversion needed from debug rhs to lhs, 10580 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR. 10581 105822013-01-15 Joseph Myers <joseph@codesourcery.com> 10583 Mikael Pettersson <mikpe@it.uu.se> 10584 10585 PR target/43961 10586 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for 10587 Thumb. 10588 (ASM_OUTPUT_CASE_LABEL): Remove. 10589 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty. 10590 * final.c (shorten_branches): Update alignment of labels before 10591 jump tables if CASE_VECTOR_SHORTEN_MODE. 10592 105932013-01-15 Richard Biener <rguenther@suse.de> 10594 10595 PR bootstrap/55961 10596 * system.h: Do not include gmp.h for building host tools. 10597 105982013-01-15 Richard Biener <rguenther@suse.de> 10599 10600 PR middle-end/55882 10601 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly 10602 account for bitpos when computing alignment. 10603 106042013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com> 10605 10606 * config/i386/i386-c.c (ix86_target_macros_internal): New case. 10607 (ix86_target_macros_internal): Likewise. 10608 10609 * config/i386/i386.c (m_CORE2I7): Removed. 10610 (m_CORE_HASWELL): New macro. 10611 (m_CORE_ALL): Likewise. 10612 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL. 10613 (initial_ix86_arch_features): Likewise. 10614 (processor_target_table): Initializations for Core avx2. 10615 (cpu_names): New names "core-avx2". 10616 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by 10617 PROCESSOR_CORE_HASWELL. 10618 (ix86_issue_rate): New case. 10619 (ia32_multipass_dfa_lookahead): Likewise. 10620 (ix86_sched_init_global): Likewise. 10621 10622 * config/i386/i386.h (TARGET_HASWELL): New macro. 10623 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell. 10624 (processor_type): New PROCESSOR_HASWELL. 10625 106262013-01-15 Jakub Jelinek <jakub@redhat.com> 10627 10628 PR tree-optimization/55955 10629 * tree-vect-loop.c (vectorizable_reduction): Give up early on 10630 *SHIFT_EXPR and *ROTATE_EXPR codes. 10631 10632 PR tree-optimization/48766 10633 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for 10634 -ftrapv disable -fwrapv. 10635 106362013-01-14 Georg-Johann Lay <avr@gjlay.de> 10637 10638 PR target/55974 10639 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH 10640 etc. to 1 and not to __flash. 10641 Use LL suffix for __INT24_MAX__ with -mint8. 10642 Use ULL suffix for __UINT24_MAX__ with -mint8. 10643 106442013-01-14 Georg-Johann Lay <avr@gjlay.de> 10645 10646 * config/avr/avr-arch.h 10647 (struct base_arch_s): Use typedef avr_arch_t instead. 10648 (struct arch_info_s): Use typedef avr_arch_info_t instead. 10649 (struct mcu_type_s): Use typedef avr_mcu_t instead. 10650 * config/avr/avr.c: Same. 10651 * config/avr/avr-devices.c: Same. 10652 * config/avr/driver-avr.c: Same. 10653 * config/avr/gen-avr-mmcu-texi.c: Same. 10654 * config/avr/avr-mcus.def: Adjust comment. 10655 106562013-01-14 Tejas Belagod <tejas.belagod@arm.com> 10657 10658 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New. 10659 * config/aarch64/iterators.md (VALLDI): New. 10660 106612013-01-14 Uros Bizjak <ubizjak@gmail.com> 10662 Andi Kleen <ak@linux.intel.com> 10663 10664 PR target/55948 10665 * config/i386/sync.md (atomic_store<mode>_1): New pattern. 10666 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE 10667 memmodel flag. 10668 106692013-01-14 Georg-Johann Lay <avr@gjlay.de> 10670 10671 * config/avr/avr-stdint.h: Remove trailing blanks. 10672 * config/avr/avr-log.h: Same. 10673 * config/avr/avr-arch.h: Same. 10674 * config/avr/avr-devices.c: Same. 10675 * config/avr/avr-dimode.md: Same. 10676 * config/avr/predicates.md: Same. 10677 * config/avr/avr-c.c: Same. And fix typo. 10678 10679 * config/avr/avr-protos.h: Same. And: 10680 (function_arg_regno_p): Rename to avr_function_arg_regno_p. 10681 (init_cumulative_args): Rename to avr_init_cumulative_args. 10682 (expand_prologue): Rename to avr_expand_prologue. 10683 (expand_epilogue): Rename to avr_expand_epilogue. 10684 (adjust_insn_length): Rename to avr_adjust_insn_length. 10685 (notice_update_cc): Rename to avr_notice_update_cc. 10686 (final_prescan_insn): Rename to avr_final_prescan_insn. 10687 * config/avr/avr.c: Same. 10688 * config/avr/avr.h: Same. 10689 * config/avr/avr.md: Remove trailing blanks. 10690 (prologue): Use avr_expand_prologue. 10691 (epilogue, sibcall_epilogue): Use avr_expand_epilogue. 10692 106932013-01-14 Richard Biener <rguenther@suse.de> 10694 10695 * tree-cfg.c (verify_expr_location, verify_expr_location_1, 10696 verify_location, collect_subblocks): New functions. 10697 (verify_gimple_in_cfg): Verify that locations only reference 10698 BLOCKs in the functions BLOCK tree. 10699 107002013-01-14 Richard Biener <rguenther@suse.de> 10701 10702 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated 10703 PHI argument. 10704 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly 10705 unshare reference. 10706 (insert_out_of_ssa_copy_on_edge): Likewise. 10707 (rewrite_close_phi_out_of_ssa): Likewise. 10708 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare 10709 debug expressions. 10710 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare 10711 propagated constants. 10712 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs 10713 can not be shared. 10714 107152013-01-14 Georg-Johann Lay <avr@gjlay.de> 10716 10717 * config/avr/avr-modes.def: Add GPL copyright notice. 10718 107192013-01-13 Uros Bizjak <ubizjak@gmail.com> 10720 10721 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with 10722 MEMMODEL_MASK to determine memory model. 10723 (atomic_store<mode>): Ditto from operands[2]. 10724 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool. 10725 107262013-01-13 Jakub Jelinek <jakub@redhat.com> 10727 10728 PR fortran/55935 10729 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr. 10730 (fold_gimple_assign): Don't call unshare_expr here. 10731 (fold_ctor_reference): Call unshare_expr. 10732 107332013-01-13 Terry Guo <terry.guo@arm.com> 10734 10735 * Makefile.in (s-mlib): New argument MULTILIB_REUSE. 10736 * doc/fragments.texi: Document MULTILIB_REUSE. 10737 * gcc.c (multilib_reuse): New internal spec. 10738 (set_multilib_dir): Also search multilib from multilib_reuse. 10739 * genmultilib (tmpmultilib3): Refactor code. 10740 (tmpmultilib4): Ditto. 10741 (multilib_reuse): New multilib argument. 10742 107432013-01-13 Richard Sandiford <rdsandiford@googlemail.com> 10744 10745 * Makefile.in: Update copyright. 10746 107472013-01-12 Tom de Vries <tom@codesourcery.com> 10748 10749 PR middle-end/55890 10750 * calls.c (expand_call): Check if arg_nr is valid. 10751 107522013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com> 10753 10754 * doc/extend.texi (X86 Built-in Functions): Add whitespace in 10755 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256 10756 documentation. Add missing '__' in front of 10757 __builtin_ia32_packssdw256. 10758 107592013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 10760 10761 PR target/55719 10762 * config/s390/s390.c (s390_preferred_reload_class): Do not return 10763 NO_REGS for larl operands. 10764 (s390_reload_larl_operand): Use s390_load_address instead of 10765 emit_move_insn. 10766 107672013-01-11 Richard Biener <rguenther@suse.de> 10768 10769 * tree-cfg.c (verify_node_sharing_1): Split out from ... 10770 (verify_node_sharing): ... here. 10771 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree. 10772 107732013-01-11 Eric Botcazou <ebotcazou@adacore.com> 10774 10775 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled. 10776 Substitute TREECHECKING. 10777 * configure: Regenerate. 10778 * Makefile.in (TREECHECKING): New. 10779 107802013-01-11 Richard Guenther <rguenther@suse.de> 10781 10782 PR tree-optimization/44061 10783 * tree-vrp.c (extract_range_basic): Compute zero as 10784 value-range for __builtin_constant_p of function parameters. 10785 107862013-01-10 Richard Sandiford <rdsandiford@googlemail.com> 10787 10788 Update copyright years. 10789 107902013-01-10 Vladimir Makarov <vmakarov@redhat.com> 10791 10792 PR rtl-optimization/55672 10793 * lra-eliminations.c (mark_not_eliminable): Permit addition with 10794 const to be eliminable. 10795 107962013-01-10 David Edelsohn <dje.gcc@gmail.com> 10797 10798 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix. 10799 * configure: Regenerate. 10800 108012013-01-10 Richard Biener <rguenther@suse.de> 10802 10803 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes. 10804 108052013-01-10 Richard Biener <rguenther@suse.de> 10806 10807 PR bootstrap/55792 10808 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set 10809 locations for virtual PHI arguments. 10810 (rewrite_update_phi_arguments): Likewise. 10811 108122013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com> 10813 10814 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi 10815 on to assembler. 10816 108172013-01-10 Jakub Jelinek <jakub@redhat.com> 10818 10819 PR tree-optimization/55921 10820 * tree-complex.c (expand_complex_asm): New function. 10821 (expand_complex_operations_1): Call it for GIMPLE_ASM. 10822 108232013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 10824 10825 PR target/55718 10826 * config/s390/s390.c (s390_symref_operand_p) 10827 (s390_loadrelative_operand_p): Merge the two functions. 10828 (s390_check_qrst_address, print_operand_address): Add parameters 10829 to s390_loadrelative_operand_p invokation. 10830 (s390_check_symref_alignment): Use s390_loadrelative_operand_p. 10831 (s390_reload_larl_operand, s390_secondary_reload): Use 10832 s390_loadrelative_operand_p instead of s390_symref_operand_p. 10833 (legitimize_pic_address): Handle @GOTENT and @PLT + addend. 10834 108352013-01-09 Mike Stump <mikestump@comcast.net> 10836 10837 * dse.c (record_store): Remove unnecessary assert. 10838 108392013-01-09 Jan Hubicka <jh@suse.cz> 10840 10841 PR tree-optimization/55569 10842 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type. 10843 * cfgloop.h (scale_loop_profile): Likewise. 10844 108452013-01-09 Jan Hubicka <jh@suse.cz> 10846 10847 PR lto/45375 10848 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual 10849 functions. 10850 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data. 10851 108522013-01-09 Richard Sandiford <rdsandiford@googlemail.com> 10853 10854 PR middle-end/55114 10855 * expr.h (maybe_emit_group_store): Declare. 10856 * expr.c (maybe_emit_group_store): New function. 10857 * builtins.c (expand_builtin_int_roundingfn): Call it. 10858 (expand_builtin_int_roundingfn_2): Likewise. 10859 108602013-01-09 Vladimir Makarov <vmakarov@redhat.com> 10861 10862 PR rtl-optimization/55829 10863 * lra-constraints.c (match_reload): Add code for absent output. 10864 (curr_insn_transform): Add code for reloads of matched inputs 10865 without output. 10866 108672013-01-09 Uros Bizjak <ubizjak@gmail.com> 10868 10869 * config/i386/sse.md (*vec_interleave_highv2df): Change mode 10870 attribute of movddup insn to DF. 10871 (*vec_interleave_lowv2df): Ditto. 10872 (vec_dupv2df): Ditto. 10873 108742013-01-09 Jan Hubicka <jh@suse.cz> 10875 10876 PR tree-optimiation/55875 10877 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add 10878 EVERY_ITERATION parameter. 10879 (number_of_iterations_exit): Check if exit is executed every iteration. 10880 (idx_infer_loop_bounds): Similarly here. 10881 (n_of_executions_at_most): Simplify 10882 to only test for cases where statement is dominated by the 10883 particular bound; handle correctly the "postdominance" test. 10884 (scev_probably_wraps_p): Use max loop iterations info 10885 as a global bound first. 10886 108872013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com> 10888 Nick Clifton <nickc@redhat.com> 10889 10890 * config/v850/v850.md (cbranchsf4): New pattern. 10891 (cstoresf4): New pattern. 10892 (cbranchdf4): New pattern. 10893 (cstoredf4): New pattern. 10894 (movsicc): Disallow floating point comparisons. 10895 (cmpsf_le_insn): Fix order of operators. 10896 (cmpsf_lt_insn): Likewise. 10897 (cmpsf_eq_insn): Likewise. 10898 (cmpdf_le_insn): Likewise. 10899 (cmpdf_lt_insn): Likewise. 10900 (cmpdf_eq_insn): Likewise. 10901 (cmpsf_ge_insn): Use LE comparison. 10902 (cmpdf_ge_insn): Likewise. 10903 (cmpsf_gt_insn): Use LT comparison. 10904 (cmpdf_gt_insn): Likewise. 10905 (cmpsf_ne_insn): Delete pattern. 10906 (cmpdf_ne_insn): Delete pattern. 10907 * config/v850/v850.c (v850_gen_float_compare): Use 10908 gen_cmpdf_eq_insn for NE comparison. 10909 (v850_float_z_comparison_operator) 10910 (v850_float_nz_comparison_operator): Move from here ... 10911 * config/v850/predicates.md: ... to here. Move GT and GE 10912 comparisons into v850_float_z_comparison_operator. 10913 * config/v850/v850-protos.h (v850_float_z_comparison_operator): 10914 Delete prototype. 10915 (v850_float_nz_comparison_operator): Likewise. 10916 109172013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 10918 10919 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv 10920 with calls to gen_insvsi/gen_insvdi. 10921 109222013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 10923 10924 * config/i386/i386.c (initial_ix86_tune_features): Set up 10925 X86_TUNE_AVX128_OPTIMAL for m_BTVER2. 10926 109272013-01-09 Steven Bosscher <steven@gcc.gnu.org> 10928 Jakub Jelinek <jakub@redhat.com> 10929 10930 PR tree-optimization/48189 10931 * predict.c (predict_loops): If max is 0, don't call compare_tree_int. 10932 If nitercst is 0, don't predict the exit edge. 10933 109342013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> 10935 10936 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r 10937 in asm_fprintf with reg_names. 10938 (aarch64_print_operand_address): Likewise. 10939 (aarch64_return_addr): Likewise. 10940 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove. 10941 109422013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 10943 10944 * config/pa/pa.h (VAL_U6_BITS_P): Define. 10945 (INT_U6_BITS): Likewise. 10946 * config/pa/predicates.md (uint6_operand): New predicate. 10947 (shift5_operand, shift6_operand): Likewise. 10948 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of 10949 arith32_operand. 10950 (lshrdi3): Use shift6_operand. 10951 (shrpsi4, shrpdi4): New insn patterns. 10952 (extzv): Delete expander. 10953 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand 10954 predicates in unamed zero extract patterns. Tighten common constraint. 10955 (extv): Delete expander. 10956 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand 10957 predicates in unamed sign extract patterns. Tighten common constraint. 10958 (insv): Delete expander. 10959 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand 10960 predicates in unamed insert patterns. Tighten common constraint. 10961 Change uint32_operand predicate to uint6_operand predicate in unamed 10962 DImode pattern to insert constant values of type 1...1xxxx. 10963 109642013-01-04 Jan Hubicka <jh@suse.cz> 10965 10966 PR tree-optimization/55823 10967 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering 10968 issue. 10969 109702013-01-08 Jakub Jelinek <jakub@redhat.com> 10971 Uros Bizjak <ubizjak@gmail.com> 10972 10973 PR rtl-optimization/55845 10974 * df-problems.c (can_move_insns_across): Stop scanning at 10975 volatile_insn_p source instruction or give up if 10976 across_from .. across_to range contains any volatile_insn_p 10977 instructions. 10978 109792013-01-08 Tejas Belagod <tejas.belagod@arm.com> 10980 10981 * config/aarch64/aarch64-simd.md (vec_init<mode>): New. 10982 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init): 10983 Declare. 10984 * config/aarch64/aarch64.c (aarch64_simd_dup_constant, 10985 aarch64_simd_make_constant, aarch64_expand_vector_init): New. 10986 109872013-01-08 Jakub Jelinek <jakub@redhat.com> 10988 10989 PR fortran/55341 10990 * asan.c (asan_clear_shadow): New function. 10991 (asan_emit_stack_protection): Use it. 10992 109932013-01-08 Tejas Belagod <tejas.belagod@arm.com> 10994 10995 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>, 10996 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand 10997 with tab instead of space. 10998 109992013-01-08 Nick Clifton <nickc@redhat.com> 11000 11001 * config/rl78/rl78.c (rl78_expand_prologue): Always select 11002 register bank 0 at the start of an interrupt handler. 11003 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and 11004 MDBH registers. 11005 110062013-01-08 James Greenhalgh <james.greenhalgh@arm.com> 11007 11008 * config/aarch64/aarch64-simd.md 11009 (aarch64_simd_bsl<mode>_internal): Add floating-point modes. 11010 (aarch64_simd_bsl): Likewise. 11011 (aarch64_vcond_internal<mode>): Likewise. 11012 (vcond<mode><mode>): Likewise. 11013 (aarch64_cm<cmp><mode>): Fix constraints, add new modes. 11014 * config/aarch64/iterators.md (V_cmp_result): Add V2DF. 11015 110162013-01-08 James Greenhalgh <james.greenhalgh@arm.com> 11017 11018 * config/aarch64/aarch64-builtins.c 11019 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf. 11020 110212013-01-08 Martin Jambor <mjambor@suse.cz> 11022 11023 PR debug/55579 11024 * tree-sra.c (analyze_access_subtree): Return true also after 11025 potentially creating a debug-only replacement. 11026 110272013-01-08 Jakub Jelinek <jakub@redhat.com> 11028 11029 PR middle-end/55890 11030 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p. 11031 11032 PR tree-optimization/54120 11033 * tree-vrp.c (range_fits_type_p): Don't allow 11034 src_precision < precision from signed vr to unsigned_p 11035 if vr->min or vr->max is negative. 11036 (simplify_float_conversion_using_ranges): Test can_float_p 11037 against CODE_FOR_nothing. 11038 110392013-01-08 Jakub Jelinek <jakub@redhat.com> 11040 Richard Biener <rguenther@suse.de> 11041 11042 PR middle-end/55851 11043 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P 11044 types instead of just INTEGER_TYPE types. 11045 110462013-01-07 Mark Kettenis <kettenis@openbsd.org> 11047 11048 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, 11049 TF_SIZE): Define. 11050 110512013-01-07 Steve Ellcey <sellcey@mips.com> 11052 11053 PR target/42661 11054 * config/mips/mips.opt: Change mad to mmad to match documentation. 11055 110562013-01-07 Georg-Johann Lay <avr@gjlay.de> 11057 11058 PR target/55897 11059 * doc/extend.texi (AVR Named Address Spaces): __memx goes into 11060 .progmemx.data now. 11061 110622013-01-07 Georg-Johann Lay <avr@gjlay.de> 11063 11064 PR target/55897 11065 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum. 11066 (avr_addrspace_t): Add .section_name field. 11067 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as 11068 array size. 11069 (avr_addrspace): Same. Initialize .section_name. Remove last 11070 NULL entry. Put __memx into .progmemx.data. 11071 (progmem_section_prefix): Remove. 11072 (avr_asm_init_sections): No need to initialize progmem_section. 11073 (avr_asm_named_section): Use avr_addrspace[].section_name to get 11074 section name prefix. 11075 (avr_asm_select_section): Ditto. And use get_unnamed_section to 11076 retrieve the progmem section. 11077 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop 11078 boundary to run over avr_addrspace[]. 11079 (avr_register_target_pragmas): Ditto. 11080 110812013-01-06 Jakub Jelinek <jakub@redhat.com> 11082 11083 * varasm.c (output_constant_def_contents): For asan_protect_global 11084 protected strings, adjust DECL_ALIGN if needed, before testing for 11085 anchored symbols. 11086 (place_block_symbol): Adjust size for asan protected STRING_CSTs if 11087 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected 11088 normal decls. 11089 (output_object_block): For asan protected decls, emit asan padding 11090 after their contents. 11091 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here. 11092 (asan_finish_file): Test it here instead. 11093 110942013-01-07 Nick Clifton <nickc@redhat.com> 11095 Matthias Klose <doko@debian.org> 11096 Doug Kwan <dougkwan@google.com> 11097 H.J. Lu <hongjiu.lu@intel.com> 11098 11099 PR driver/55470 11100 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold. 11101 11102 * common.opt: Add fuse-ld=bfd and fuse-ld=gold. 11103 11104 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2. 11105 11106 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold. 11107 11108 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold. 11109 111102013-01-07 Georg-Johann Lay <avr@gjlay.de> 11111 11112 PR target/54461 11113 * doc/install.texi (Cross-Compiler-Specific Options): Document 11114 --with-avrlibc. 11115 111162013-01-07 Tejas Belagod <tejas.belagod@arm.com> 11117 11118 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32, 11119 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64, 11120 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16, 11121 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32, 11122 vqmovun_high_s64): Fix source operand number and update copyright. 11123 111242013-01-07 Richard Biener <rguenther@suse.de> 11125 11126 PR middle-end/55890 11127 * gimple.h (gimple_call_builtin_p): New overload. 11128 * gimple.c (validate_call): New function. 11129 (gimple_call_builtin_p): Likewise. 11130 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): 11131 Use gimple_call_builtin_p. 11132 (find_func_clobbers): Likewise. 11133 * tree-ssa-strlen.c (adjust_last_stmt): Likewise. 11134 (strlen_optimize_stmt): Likewise. 11135 111362013-01-07 James Greenhalgh <james.greenhalgh@arm.com> 11137 11138 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const. 11139 (vld1q_dup_*): Likewise. 11140 (vld1_*): Likewise. 11141 (vld1q_*): Likewise. 11142 (vld1_lane_*): Likewise. 11143 (vld1q_lane_*): Likewise. 11144 111452013-01-07 Richard Biener <rguenther@suse.de> 11146 11147 * lto-streamer.h (LTO_minor_version): Bump to 2. 11148 111492013-01-07 James Greenhalgh <james.greenhalgh@arm.com> 11150 11151 * config/aarch64/aarch64-protos.h 11152 (aarch64_const_double_zero_rtx_p): Rename to... 11153 (aarch64_float_const_zero_rtx_p): ...this. 11154 (aarch64_float_const_representable_p): New. 11155 (aarch64_output_simd_mov_immediate): Likewise. 11156 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor 11157 move immediate case. 11158 * config/aarch64/aarch64.c 11159 (aarch64_const_double_zero_rtx_p): Rename to... 11160 (aarch64_float_const_zero_rtx_p): ...this. 11161 (aarch64_print_operand): Allow printing of new constants. 11162 (aarch64_valid_floating_const): New. 11163 (aarch64_legitimate_constant_p): Check for valid floating-point 11164 constants. 11165 (aarch64_simd_valid_immediate): Likewise. 11166 (aarch64_vect_float_const_representable_p): New. 11167 (aarch64_float_const_representable_p): Likewise. 11168 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0. 11169 (aarch64_output_simd_mov_immediate): New. 11170 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative. 11171 (*movdf_aarch64): Likewise. 11172 * config/aarch64/constraints.md (Ufc): New. 11173 (Y): call aarch64_float_const_zero_rtx. 11174 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New. 11175 111762013-01-07 Richard Biener <rguenther@suse.de> 11177 11178 PR tree-optimization/55888 11179 PR tree-optimization/55862 11180 * tree-ssa-pre.c (phi_translate_1): Revert previous change. 11181 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT, 11182 not if it is contained therein. 11183 111842013-01-07 Georg-Johann Lay <avr@gjlay.de> 11185 11186 * config/avr/t-avr: Typo. 11187 111882013-01-07 Georg-Johann Lay <avr@gjlay.de> 11189 11190 PR55243 11191 * config/avr/t-avr: Don't automatically rebuild 11192 $(srcdir)/config/avr/t-multilib 11193 $(srcdir)/config/avr/avr-tables.opt 11194 $(srcdir)/doc/avr-mmcu.texi 11195 (avr-mcus): New phony target to build them on request. 11196 (s-avr-mlib, s-avr-mmcu-texi): Remove. 11197 * avr/avr-mcus.def: Adjust comments. 11198 111992013-01-07 Uros Bizjak <ubizjak@gmail.com> 11200 11201 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove. 11202 112032013-01-06 Richard Sandiford <rdsandiford@googlemail.com> 11204 11205 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder. 11206 112072013-01-06 Richard Sandiford <rdsandiford@googlemail.com> 11208 11209 * config/tilepro/gen-mul-tables.cc: Put copyright on one line. 11210 112112013-01-05 David Edelsohn <dje.gcc@gmail.com> 11212 11213 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling 11214 to generate profiling. 11215 * config/rs6000/aix64.h (LIB_SPEC): Same. 11216 112172013-01-04 Andrew Pinski <apinski@cavium.com> 11218 11219 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs): 11220 New function. 11221 (TARGET_FIXED_CONDITION_CODE_REGS): Define. 11222 112232013-01-04 Uros Bizjak <ubizjak@gmail.com> 11224 11225 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode 11226 unconditionally. 11227 (ix86_expand_move): Ditto. 11228 (ix86_zero_extend_to_Pmode): Ditto. 11229 (ix86_expand_call): Ditto. 11230 (ix86_expand_special_args_builtin): Ditto. 11231 (ix86_expand_builtin): Ditto. 11232 112332013-01-04 Richard Biener <rguenther@suse.de> 11234 11235 PR tree-optimization/55862 11236 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after 11237 translating them through PHI nodes. 11238 112392013-01-04 Martin Jambor <mjambor@suse.cz> 11240 11241 PR tree-optimization/55755 11242 * tree-sra.c (sra_modify_assign): Do not check that an access has no 11243 children when trying to avoid producing a VIEW_CONVERT_EXPR. 11244 112452013-01-04 Marek Polacek <polacek@redhat.com> 11246 11247 PR middle-end/55859 11248 * opts.c (default_options_optimization): Clarify error message. 11249 112502013-01-04 Richard Biener <rguenther@suse.de> 11251 11252 PR middle-end/55863 11253 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for 11254 reassociation. 11255 112562013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 11257 11258 PR target/53789 11259 * config/pa/pa.md (movsi): Revert previous change. 11260 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol 11261 references. 11262 112632013-01-03 Richard Henderson <rth@redhat.com> 11264 11265 * config/i386/i386.c (ix86_expand_move): Always assign to op1 11266 after eliminating TLS symbols. 11267 112682013-01-03 Marc Glisse <marc.glisse@inria.fr> 11269 11270 PR bootstrap/50167 11271 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf. 11272 * graphite-poly.c (debug_gmp_value): Likewise. 11273 112742013-01-03 Uros Bizjak <ubizjak@gmail.com> 11275 11276 PR target/55712 11277 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on 11278 selected code model, define __code_mode_small__, __code_model_medium__, 11279 __code_model_large__, __code_model_32__ or __code_model_kernel__. 11280 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix 11281 xchg temporary register with %k. Declare temporary register as 11282 early clobbered. 11283 [__x86_64__]: For medium and large code models, preserve %rbx register. 11284 112852013-01-03 Richard Biener <rguenther@suse.de> 11286 11287 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing. 11288 (dump_subscript): Adjust. 11289 (finalize_ddr_dependent): Do not dump redundant info. 11290 (analyze_siv_subscript): Adjust. 11291 (subscript_dependence_tester): Likewise. 11292 (compute_affine_dependence): Likewise. 11293 112942013-01-03 Richard Biener <rguenther@suse.de> 11295 11296 Revert 11297 2013-01-03 Richard Biener <rguenther@suse.de> 11298 11299 PR tree-optimization/55857 11300 * tree-vect-stmts.c (vectorizable_load): Do not setup 11301 re-alignment for invariant loads. 11302 11303 2013-01-02 Richard Biener <rguenther@suse.de> 11304 11305 * tree-vect-stmts.c (vectorizable_load): When vectorizing an 11306 invariant load do not generate a vector load from the scalar location. 11307 113082013-01-03 Richard Biener <rguenther@suse.de> 11309 11310 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason 11311 for not vectorizing. 11312 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do 11313 not build INDIRECT_REFs, call get_name once only. 11314 (vect_create_data_ref_ptr): Likewise. Dump base object kind 11315 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS. 11316 113172013-01-03 Richard Biener <rguenther@suse.de> 11318 11319 PR tree-optimization/55857 11320 * tree-vect-stmts.c (vectorizable_load): Do not setup 11321 re-alignment for invariant loads. 11322 113232013-01-03 Richard Biener <rguenther@suse.de> 11324 11325 PR lto/55848 11326 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always 11327 prefer a built-in decl. 11328 113292013-01-03 Jakub Jelinek <jakub@redhat.com> 11330 11331 * gcc.c (process_command): Update copyright notice dates. 11332 * gcov.c (print_version): Likewise. 11333 * gcov-dump.c (print_version): Likewise. 11334 11335 PR rtl-optimization/55838 11336 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on 11337 iv0.step, iv1.step and step. 11338 113392013-01-03 Jakub Jelinek <jakub@redhat.com> 11340 Marc Glisse <marc.glisse@inria.fr> 11341 11342 PR tree-optimization/55832 11343 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and 11344 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of 11345 integer_{one,zero}_node. 11346 113472013-01-03 Jakub Jelinek <jakub@redhat.com> 11348 11349 PR debug/54402 11350 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param. 11351 * var-tracking.c (reverse_op): Don't add reverse ops to 11352 VALUEs that have already 11353 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list. 11354 113552013-01-02 Gerald Pfeifer <gerald@pfeifer.com> 11356 11357 * doc/contrib.texi: Note years as release manager for Mark Mitchell. 11358 113592013-01-02 Teresa Johnson <tejohnson@google.com> 11360 11361 * dumpfile.c (dump_loc): Print filename with location. 11362 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use 11363 new location_t parameter to emit complete unroll message with 11364 new dump framework. 11365 (canonicalize_loop_induction_variables): Compute loops location 11366 and pass to try_unroll_loop_completely. 11367 * loop-unroll.c (report_unroll_peel): New function. 11368 (peel_loops_completely): Use new dump format with location 11369 for main dumpfile message, and invoke report_unroll_peel on success. 11370 (decide_unrolling_and_peeling): Ditto. 11371 (decide_peel_once_rolling): Remove old dumpfile message subsumed 11372 by report_unroll_peel. 11373 (decide_peel_completely): Ditto. 11374 (decide_unroll_constant_iterations): Ditto. 11375 (decide_unroll_runtime_iterations): Ditto. 11376 (decide_peel_simple): Ditto. 11377 (decide_unroll_stupid): Ditto. 11378 * cfgloop.c (get_loop_location): New function. 11379 * cfgloop.h (get_loop_location): Declare. 11380 113812013-01-02 Sriraman Tallam <tmsriram@google.com> 11382 11383 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for 11384 NULL. 11385 113862013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 11387 11388 PR middle-end/55198 11389 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non 11390 BLKmode objects when EXPAND_MEMORY is specified. 11391 113922013-01-02 Sriraman Tallam <tmsriram@google.com> 11393 11394 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug 11395 in loop predicate. 11396 (fold_builtin_cpu): Do not share cpu model decls across statements. 11397 113982013-01-02 Jason Merrill <jason@redhat.com> 11399 11400 PR c++/55804 11401 * tree.c (build_array_type_1): Revert earlier change. 11402 114032013-01-02 Yufeng Zhang <yufeng.zhang@arm.com> 11404 11405 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and 11406 "cortex-a57". 11407 * config/aarch64/aarch64-tune.md: Re-generate. 11408 114092013-01-02 Richard Biener <rguenther@suse.de> 11410 11411 * tree-vect-stmts.c (vectorizable_load): When vectorizing an 11412 invariant load do not generate a vector load from the scalar location. 11413 114142013-01-02 Richard Biener <rguenther@suse.de> 11415 11416 PR bootstrap/55784 11417 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS. 11418 * configure: Regenerate. 11419 114202013-01-02 Richard Sandiford <rdsandiford@googlemail.com> 11421 11422 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2) 11423 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3) 11424 (expand_builtin_int_roundingfn_2): Keep the original target around 11425 for the fallback case. 11426 114272013-01-02 Richard Sandiford <rdsandiford@googlemail.com> 11428 11429 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int 11430 to be clear for sign changes. 11431 114322013-01-01 Jan Hubicka <jh@suse.cz> 11433 11434 * ipa-inline-analysis.c: Fix formatting. 11435 114362013-01-01 Jakub Jelinek <jakub@redhat.com> 11437 11438 PR tree-optimization/55831 11439 * tree-vect-loop.c (get_initial_def_for_induction): Use 11440 gsi_after_labels instead of gsi_start_bb. 11441 11442Copyright (C) 2013 Free Software Foundation, Inc. 11443 11444Copying and distribution of this file, with or without modification, 11445are permitted in any medium without royalty provided the copyright 11446notice and this notice are preserved. 11447