12012-12-27 David Edelsohn <dje.gcc@gmail.com> 2 3 * config/rs6000/rs6000.c (rs6000_deligitimze_address): Do not 4 delegitimize TLS addresses on AIX. 5 (rs6000_legitimize_tls_address_aix): Append TLS symbol qualifier. 6 Set SYMBOL_FLAG_LOCAL on module symbol. 7 (output_toc): Do not append TLS symbol qualifier here. 8 * config/rs6000/rs6000.md (tls_get_addr_internal): Add GPR 4 to 9 clobbers. 10 112012-12-27 Andreas Schwab <schwab@linux-m68k.org> 12 13 * target.def (supports_function_versions): Fix typo. 14 152012-12-26 Sriraman Tallam <tmsriram@google.com> 16 17 * doc/tm.texi.in (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Document 18 new target hook. 19 * doc/tm.texi: Regenerate. 20 * c-family/c-common.c (handle_target_attribute): Retain target attribute 21 for targets that support versioning. 22 * target.def (supports_function_versions): New hook. 23 * cp/class.c (add_method): Remove calls 24 to DECL_FUNCTION_SPECIFIC_TARGET. 25 * config/i386/i386.c (ix86_function_versions): Use target string 26 to check for function versions instead of target flags. 27 * (ix86_supports_function_versions): New function. 28 * (is_function_default_version): Check target string. 29 * TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS: New macro. 30 312012-12-27 Steven Bosscher <steven@gcc.gnu.org> 32 33 * cgraph.c (verify_cgraph_node): Don't allocate/free visited_nodes set. 34 352012-12-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 36 37 PR target/53789 38 * config/pa/pa.md (movsi): Reject expansion of TLS symbol references 39 after reload starts. 40 412012-12-22 Jan Hubicka <jh@suse.cz> 42 43 PR lto/54728 44 * cgraph.h (symtab_real_symbol_p): Drop code looking for external functions. 45 * lto-streamer-out.c (output_symbol_p): New function. 46 (produce_symtab) Use it. 47 482012-12-21 Martin Jambor <mjambor@suse.cz> 49 50 PR tree-optimization/55355 51 * tree-sra.c (type_internals_preclude_sra_p): Also check that 52 bit_position is small enough to fit a single HOST_WIDE_INT. 53 542012-12-21 Eric Botcazou <ebotcazou@adacore.com> 55 56 * rtlanal.c (volatile_insn_p): Delete commented out code. 57 (side_effects_p): Likewise. 58 (may_trap_p_1) <UNSPEC_VOLATILE>: Return 1 again. 59 * target.def (unspec_may_trap_p): Adjust comment. 60 * targhooks.c (default_unspec_may_trap_p): Don't handle UNSPEC_VOLATILE. 61 * config/ia64/ia64.c (ia64_unspec_may_trap_p): Adjust to above change. 62 632012-12-21 Vladimir Makarov <vmakarov@redhat.com> 64 65 PR middle-end/55775 66 * lra-assigns.c (improve_inheritance): Do nothing after 67 LRA_MAX_INHERITANCE_PASSES pass. 68 * lra-constraints.c (MAX_CONSTRAINT_ITERATION_NUMBER): Rename to 69 LRA_MAX_CONSTRAINT_ITERATION_NUMBER. Move to lra-int.h. 70 (MAX_INHERITANCE_PASSES): Rename to LRA_MAX_INHERITANCE_PASSES. 71 Move to lra-int.h. 72 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Move from 73 lra-constraints.c. 74 (LRA_MAX_INHERITANCE_PASSES): Ditto. 75 762012-12-21 Steve Ellcey <sellcey@mips.com> 77 78 PR bootstrap/54128 79 * ira.c (build_insn_chain): Check only NONDEBUG instructions for 80 register usage. 81 822012-12-21 David Edelsohn <dje.gcc@gmail.com> 83 84 * varasm.c (bss_initializer_p): Remove static. 85 * output.h (bss_initializer_p): Declare. 86 * xcoffout.c (xcoff_tbss_section_name): Define. 87 * xcoffout.h (xcoff_tbss_section_name): Declare. 88 * config/rs6000/xcoff.h (TARGET_ENCODE_SECTION_INFO): Define. 89 (ASM_OUTPUT_TLS_COMMON): Merge strings. 90 * config/rs6000/rs6000.c (tls_private_data_section): New. 91 (output_toc): Only output CSECT decoration for TLS. 92 Output appropriate CSECT for data or bss. 93 (rs6000_xcoff_asm_init_sections) Define tls_private_data_section. 94 (rs6000_xcoff_select_section): Handle TLS bss and private data. 95 (rs6000_xcoff_file_start): Generate xcoff_tbss_section_name. 96 (rs6000_xcoff_encode_section_info): Strip SYMBOL_FLAG_HAS_BLOCK_INFO 97 from native TLS symbols. 98 992012-12-21 Richard Biener <rguenther@suse.de> 100 101 PR rtl-optimization/52996 102 * cprop.c (bypass_block): When loops are to be preserved 103 do not bypass loop headers. Revert earlier kludge to remove 104 loops when doing that. 105 1062012-12-21 Richard Biener <rguenther@suse.de> 107 108 PR bootstrap/54659 109 * system.h: Include gmp.h. 110 * tree-ssa-loop-niter.c: Do not include gmp.h here. 111 * double-int.h: Likewise. 112 * realmpfr.h: Likewise. 113 1142012-12-21 Greta Yorsh <Greta.Yorsh@arm.com> 115 116 * config/arm/cortex-a7.md: New file. 117 * config/arm/t-arm (MD_INCLUDES): Add cortex-a7.md. 118 * config/arm/arm.md: Include cortex-a7.md. 119 (generic_sched): Don't use generic scheduler for Cortex-A7. 120 (generic_vfp): Likewise. 121 * config/arm/arm.c: (TARGET_SCHED_REORDER): Use arm_sched_reorder. 122 (arm_sched_reorder,cortexa7_sched_reorder): New function. 123 (cortexa7_older_only,cortexa7_younger): Likewise. 124 (arm_issue_rate): Add Cortex-A7. 125 1262012-12-20 Ian Bolton <ian.bolton@arm.com> 127 128 * gcc/config/aarch64/aarch64.md 129 (*addsi3_aarch64_uxtw): New pattern. 130 (*addsi3_compare0_uxtw): New pattern. 131 (*add_<shift>_si_uxtw): New pattern. 132 (*add_<optab><SHORT:mode>_si_uxtw): New pattern. 133 (*add_<optab><SHORT:mode>_shft_si_uxtw): New pattern. 134 (*add_<optab><SHORT:mode>_mult_si_uxtw): New pattern. 135 (*add_<optab>si_multp2_uxtw): New pattern. 136 (*addsi3_carryin_uxtw): New pattern. 137 (*addsi3_carryin_alt1_uxtw): New pattern. 138 (*addsi3_carryin_alt2_uxtw): New pattern. 139 (*addsi3_carryin_alt3_uxtw): New pattern. 140 (*add_uxtsi_multp2_uxtw): New pattern. 141 (*subsi3_uxtw): New pattern. 142 (*subsi3_compare0_uxtw): New pattern. 143 (*sub_<shift>_si_uxtw): New pattern. 144 (*sub_mul_imm_si_uxtw): New pattern. 145 (*sub_<optab><SHORT:mode>_si_uxtw): New pattern. 146 (*sub_<optab><SHORT:mode>_shft_si_uxtw): New pattern. 147 (*sub_<optab>si_multp2_uxtw): New pattern. 148 (*sub_uxtsi_multp2_uxtw): New pattern. 149 (*negsi2_uxtw): New pattern. 150 (*negsi2_compare0_uxtw): New pattern. 151 (*neg_<shift>_si2_uxtw): New pattern. 152 (*neg_mul_imm_si2_uxtw): New pattern. 153 (*mulsi3_uxtw): New pattern. 154 (*maddsi_uxtw): New pattern. 155 (*msubsi_uxtw): New pattern. 156 (*mulsi_neg_uxtw): New pattern. 157 (*<su_optab>divsi3_uxtw): New pattern. 158 1592012-12-20 Jakub Jelinek <jakub@redhat.com> 160 161 PR middle-end/55750 162 * gimplify.c (gimplify_self_mod_expr): Don't force lvalue to 163 pass is_gimple_min_lval. 164 1652012-12-20 Richard Henderson <rth@redhat.com> 166 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 167 168 * config/s390/constraints.md (NxxDq, NxxSq): New. 169 * config/s390/predicates.md (contiguous_bitmask_operand): New. 170 * config/s390/s390.c (print_operand) ['e', 'f', 's', 't']: New 171 operand letters. 172 * config/s390/s390.md (bfstart, bfend): New mode attrs. 173 (*insv<GPR>_zEC12_noshift): Use them. 174 (*insv<GPR>_z10_noshift): Likewise. 175 (*insv<GPR>_or_z10_noshift): Likewise. 176 177 * config/s390/s390.md (*insv_l_di_reg_extimm): Un-macroize from :P. 178 179 * config/s390/s390.md (*anddi3_cc): Add risbg alternative. 180 (*anddi3_cconly, *anddi3): Likewise. 181 (*andsi3, *andsi3_cconly, *andsi3_zarch): Likewise. 182 183 * config/s390/s390.md (bitsize): New mode attr. 184 (*extzv<GPR>, *extzv<GPR>, *insv<GPR>_zEC12, *insv<GPR>_z10): Use it. 185 (extend<HQI><DSI>2, zero_extend<HQI>si2): Likewise. 186 (zero_extend<HQI>di2, fixuns_trunc<BFP><GPR>2): Likewise. 187 188 * config/s390/predicates.md (nonzero_shift_count_operand): New. 189 * config/s390/s390-protos.h (s390_extzv_shift_ok): Declare. 190 * config/s390/s390.c (s390_extzv_shift_ok): New function. 191 * config/s390/s390.md (extzv): New expander. 192 (*extzv<GPR>_zEC12, *extzv<GPR>_z10): New insns. 193 (*pre_z10_extzv<GPR>): Rename from *extzv<GPR>; simplify with 194 nonzero_shift_count_operand. 195 (*extzv_<GPR>_srl, *extzv_<GPR>_sll): New insns. 196 197 * config/s390/s390.md (IXOR): New code iterator. 198 (*r<IXOR>sbg_<GPR>_noshift): Rename from *insv<GPR>_or_z10_noshift; 199 macro-ize to handle XOR too. 200 (*r<IXOR>sbg_di_rotl, *r<IXOR>sbg_<GPR>_srl, *r<IXOR>sbg_<GPR>_sll): 201 New patterns. 202 203 * config/s390/s390.md (*insv_rnsbg_noshift, *insv_rnsbg_srl): New. 204 2052012-12-20 Thomas Schwinge <thomas@codesourcery.com> 206 207 PR bootstrap/55202 208 * configure.ac <PLUGIN_LD_SUFFIX>: Use POSIX shell syntax. 209 * configure: Regenerate. 210 2112012-12-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 212 213 PR target/55754 214 * config/arm/arm.c (arm_canonicalize_comparison): Remove 215 op0_preserve_value check for zero_extend to and transformation. 216 2172012-12-20 Teresa Johnson <tejohnson@google.com> 218 Jakub Jelinek <jakub@redhat.com> 219 220 PR gcov-profile/55734 221 * gcov-io.c (gcov_read_summary): Use __builtin_popcount instead 222 of __builtin_popcountll when building libgcov.a, otherwise use 223 popcount_hwi. 224 (gcov_histo_index): When not building libgcov.a, use floor_log2 225 instead of __builtin_clzll. 226 2272012-12-20 Richard Biener <rguenther@suse.de> 228 229 PR middle-end/55740 230 * cfghooks.c (merge_blocks): Properly handle merging of 231 two loop headers. 232 2332012-12-20 Roland Stigge <stigge@debian.org> 234 Matthias Klose <doko@ubuntu.com> 235 236 * config/rs6000/t-spe (MULTIARCH_DIRNAME): Remove. 237 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Define name for 238 powerpc-linux-gnuspe. 239 2402012-12-19 Matthias Klose <doko@ubuntu.com> 241 242 * config/i386/t-kfreebsd (MULTIARCH_DIRNAME): Add comma to 243 separate arguments in make function. 244 2452012-12-19 Uros Bizjak <ubizjak@gmail.com> 246 Yuri Rumyantsev <ysrumyan@gmail.com> 247 248 * config/i386/i386.h (enum ix86_tune_indices): Add 249 X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE. 250 (TARGET_AVOID_MEM_OPND_FOR_CMOVE): New define. 251 * config/i386/i386.c (initial_ix86_tune_features) 252 <X86TUNE_AVOID_MEM_OPND_FOR_CMOVE>: Initialize. 253 * config/i386/i386.md (splitters to avoid cmove memory operands): New. 254 (peephole2s to avoid cmove memory operands): New. 255 2562012-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 257 258 * config/arm/arm.md (f_minmaxs, f_minmaxd): New types. 259 * config/arm/vfp.md (smax<mode>3): New pattern. 260 (smin<mode>3): Likewise. 261 2622012-12-19 Richard Biener <rguenther@suse.de> 263 264 * targhooks.h (default_canonicalize_comparison): Fix prototype. 265 * targhooks.c (default_canonicalize_comparison): Define. 266 2672012-12-19 Richard Biener <rguenther@suse.de> 268 269 PR tree-optimization/55736 270 PR tree-optimization/55703 271 * gimplify.c (prune_expr_location): New function. 272 (unshare_expr_without_location): Likewise. 273 * tree.h (unshare_expr_without_location): Declare. 274 * ipa-prop.c (prune_expression_for_jf): Remove. 275 (prune_expression_for_jf_1): Likewise. 276 (ipa_set_jf_constant): Use unshare_expr_without_location. 277 (ipa_set_jf_arith_pass_through): Likewise. 278 (determine_known_aggregate_parts): Likewise. 279 * tree-switch-conversion.c (build_constructors): Use 280 unshare_expr_without_location on all constructor elements. 281 2822012-12-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 283 284 * target.def: Define canonicalize_comparison hook. 285 * targhooks.h (default_canonicalize_comparison): New prototype. 286 * targhooks.c (default_canonicalize_comparison): New function. 287 * doc/tm.texi: Add documentation for the new target hook. 288 * doc/tm.texi.in: Likewise. 289 * combine.c (try_combine): Adjust to use the target hook. 290 * config/alpha/alpha.h (CANONICALIZE_COMPARISON): Remove macro 291 definition. 292 * config/alpha/alpha.c (alpha_canonicalize_comparison): New function. 293 (TARGET_CANONICALIZE_COMPARISON): New macro definition. 294 * config/arm/arm-protos.h (arm_canonicalize_comparison): Remove 295 prototype. 296 * config/arm/arm.c (arm_canonicalize_comparison): Add new parameter. 297 (TARGET_CANONICALIZE_COMPARISON): New macro definition. 298 * config/arm/arm.h (CANONICALIZE_COMPARISON): Remove macro definition. 299 * config/s390/s390-protos.h (s390_canonicalize_comparison): Remove 300 prototype. 301 * config/s390/s390.c (s390_canonicalize_comparison): Add new parameter. 302 (TARGET_CANONICALIZE_COMPARISON): New macro definition. 303 * config/s390/s390.h (CANONICALIZE_COMPARISON): Remove macro definition. 304 * config/sh/sh-protos.h (sh_canonicalize_comparison): Remove prototype. 305 * config/sh/sh.c (sh_canonicalize_comparison): Add new prototype. New 306 function overloading the old one. 307 (TARGET_CANONICALIZE_COMPARISON): New macro definition. 308 * config/sh/sh.h (CANONICALIZE_COMPARISON): Remove macro definition. 309 * config/spu/spu.c (spu_canonicalize_comparison): New function. 310 (TARGET_CANONICALIZE_COMPARISON): New macro definition. 311 * config/spu/spu.h (CANONICALIZE_COMPARISON): Remove macro definition. 312 3132012-12-19 Jakub Jelinek <jakub@redhat.com> 314 315 PR debug/55730 316 * dwarf2out.c (mem_loc_descriptor): Ignore CLOBBER. 317 * valtrack.c (gen_lowpart_for_debug): New function. 318 (propagate_for_debug): Temporarily set rtl_hooks.gen_lowpart_no_emit 319 to gen_lowpart_for_debug. 320 3212012-12-18 Jan Hubicka <jh@suse.cz> 322 323 PR tree-optimization/55683 324 * ipa-prop.c (try_make_edge_direct_virtual_call): Look into constants 325 for binfo. 326 3272012-12-19 Terry Guo <terry.guo@arm.com> 328 329 * config/arm/arm.c (thumb_find_work_register): Check argument 330 register number based on current PCS. 331 3322012-12-18 Jakub Jelinek <jakub@redhat.com> 333 334 PR target/55562 335 * sbitmap.c (bitmap_and, bitmap_xor, bitmap_ior): Return whether 336 dst sbitmap changed even if it doesn't have popcount. 337 3382012-12-18 James Greenhalgh <james.greenhalgh@arm.com> 339 340 * config/aarch64/aarch64.md (insv_imm<mode>): Add modes 341 for source operands. 342 3432012-12-18 James Greenhalgh <james.greenhalgh@arm.com> 344 345 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): 346 Remove unused variables. 347 (aarch64_split_compare_and_swap): Likewise. 348 3492012-12-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 350 351 * config/arm/driver-arm.c (arm_cpu_table): Add Cortex-A7. 352 3532012-12-18 Aldy Hernandez <aldyh@redhat.com> 354 355 PR other/54324 356 * doc/install.texi (Tools/packages necessary for building GCC): 357 Suggest --disable-stage1-checking for older GCC's. 358 3592012-12-18 Aldy Hernandez <aldyh@redhat.com> 360 361 PR other/54324 362 * tree-ssa-coalesce.c (struct ssa_name_var_hash): Remove "union" 363 from template parameter. 364 3652012-12-18 Richard Biener <rguenther@suse.de> 366 367 PR middle-end/54838 368 * cfgloopmanip.c (fix_loop_structure): Re-discover latch 369 edges first and mark loops for removal if no latch edges remain. 370 Properly re-create LOOPS_HAVE_FALLTHRU_PREHEADERS. 371 * loop-init.c (loop_optimizer_finalize): Set 372 LOOPS_MAY_HAVE_MULTIPLE_LATCHES. 373 3742012-12-18 Richard Biener <rguenther@suse.de> 375 376 PR tree-optimization/55555 377 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Properly 378 analyze evolution of the index for the loop it is used in. 379 * tree-scalar-evolution.c (instantiate_scev_name): Take 380 inner loop we will be creating a chrec for. Generalize 381 fix for PR40281 and prune invalid SCEVs. 382 (instantiate_scev_poly): Likewise - pass down inner loop 383 we will be creating a chrec for. 384 (instantiate_scev_binary): Take and pass through inner loop. 385 (instantiate_array_ref): Likewise. 386 (instantiate_scev_convert): Likewise. 387 (instantiate_scev_not): Likewise. 388 (instantiate_scev_3): Likewise. 389 (instantiate_scev_2): Likewise. 390 (instantiate_scev_1): Likewise. 391 (instantiate_scev_r): Likewise. 392 (resolve_mixers): Adjust. 393 (instantiate_scev): Likewise. 394 3952012-12-18 Jakub Jelinek <jakub@redhat.com> 396 397 PR debug/55717 398 * rtlhooks-def.h (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Define to 399 gen_lowpart_if_possible. 400 (gen_lowpart_no_emit_general): Remove prototype. 401 * rtlhooks.c (gen_lowpart_no_emit_general): Removed. 402 * simplify-rtx.c (simplify_unary_operation_1, 403 simplify_binary_operation_1): Continue simplifying if 404 rtl_hooks.gen_lowpart_no_emit returns NULL_RTX. 405 * dwarf2out.c (mem_loc_descriptor) <case TRUNCATE>: Handle 406 truncation like lowpart SUBREG. 407 4082012-12-17 Gerald Pfeifer <gerald@pfeifer.com> 409 410 * doc/contrib.texi (Contributors): Update Kaveh Ghazi's entry; 411 remove broken link to Rutgers University. 412 4132012-12-17 Jan-Benedict Glaw <jbglaw@lug-owl.de> 414 415 * varasm.c (pending_assemble_externals_processed): Guard 416 with ASM_OUTPUT_EXTERNAL. 417 4182012-12-17 Andrew Stubbs <ams@codesourcery.com> 419 Ulrich Weigand <ulrich.weigand@linaro.org> 420 421 * config/arm/arm.md (zero_extend<mode>di2): Add extra alternatives 422 for NEON registers. 423 Add alternative for one-instruction extend-in-place. 424 (extend<mode>di2): Likewise. 425 Add constraints for Thumb-mode memory loads. 426 Prevent extend splitters doing NEON alternatives. 427 * config/arm/iterators.md (qhs_extenddi_cstr, qhs_zextenddi_cstr): 428 Adjust constraints to add new alternatives. 429 * config/arm/neon.md: Add splitters for zero- and sign-extend. 430 4312012-12-17 Greta Yorsh <Greta.Yorsh@arm.com> 432 433 * config/arm/arm.md (type): Add "simple_alu_shift" to attribute "type". 434 (core_cycles): Update for simple_alu_shift. 435 (thumb1_zero_extendhisi2,arm_zero_extendhisi2_v6): Use simple_alu_shift 436 instead of a CPU-speicific condition for "type" attribute. 437 (thumb1_zero_extendqisi2_v6,arm_zero_extendqisi2_v6): Likewise. 438 (thumb1_extendhisi2,arm_extendhisi2_v6,arm_extendqisi_v6): Likewise. 439 (thumb1_extendqisi2): Likewise. 440 * config/arm/thumb2.md (thumb2_extendqisi_v6): Likewise. 441 (thumb2_zero_extendhisi2_v6,thumb2_zero_extendqisi2_v6) Likewise. 442 * config/arm/arm1020e.md (alu_shift_op): Use simple_alu_shift. 443 * config/arm/arm1026ejs.md (alu_shift_op): Likewise. 444 * config/arm/arm1136jfs.md (11_alu_shift_op): Likewise. 445 * config/arm/arm926ejs.md (9_alu_op): Likewise. 446 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Likewise. 447 * config/arm/cortex-a5.md (cortex_a5_alu_shift): Likewise. 448 * config/arm/cortex-a8.md (cortex_a8_alu_shift,cortex_a8_mov): Likewise. 449 * config/arm/cortex-a9.md (cortex_a9_dp,cortex_a9_dp_shift): Likewise. 450 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise. 451 * config/arm/cortex-r4.md (cortex_r4_alu_shift): Likewise. 452 * config/arm/fa526.md (526_alu_shift_op): Likewise. 453 * config/arm/fa606te.md (fa606te_core): Likewise. 454 * config/arm/fa626te.md (626te_alu_shift_op): Likewise. 455 * config/arm/fa726te.md (726te_alu_shift_op): Likewise. 456 * config/arm/fmp626.md (mp626_alu_shift_op): Likewise. 457 4582012-12-17 Richard Biener <rguenther@suse.de> 459 460 PR middle-end/54781 461 * alias.c (ao_ref_from_mem): More appropriately constrain the 462 base object we feed to the tree oracle. Remove dead code. 463 4642012-12-17 James Greenhalgh <james.greenhalgh@arm.com> 465 Tejas Belagod <tejas.belagod@arm.com> 466 467 * config/aarch64/aarch64.c 468 (aarch64_autovectorize_vector_sizes): New. 469 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define. 470 4712012-12-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 472 473 PR middle-end/55709 474 Forward port from 4.7 branch: 475 2012-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 476 477 PR middle-end/52894 478 * varasm.c (process_pending_assemble_externals): Set 479 pending_assemble_externals_processed true. 480 (assemble_external): Call assemble_external_real if the pending 481 assemble externals have been processed. 482 4832012-12-16 Eric Botcazou <ebotcazou@adacore.com> 484 Tomash Brechko <tomash.brechko@gmail.com> 485 486 PR target/55673 487 * config/sparc/sparc.c (sparc_emit_membar_for_model): Fix reversed 488 handling of before and after cases. 489 * config/sparc/sync.md (atomic_store): Fix pasto. 490 4912012-12-16 Eric Botcazou <ebotcazou@adacore.com> 492 493 PR rtl-optimization/55630 494 * expr.c (expand_assignment): Do not call copy_blkmode_to_reg to move 495 BLKmode return values to the return register. 496 4972012-12-15 Alexandre Oliva <aoliva@redhat.com> 498 499 PR libmudflap/53952 500 * expr.c (mem_ref_refers_to_non_mem_p): Factor out 501 implementation into... 502 (addr_expr_of_non_mem_decl_p_1): ... this new function. 503 (addr_expr_of_non_mem_decl_p): New. 504 * tree.h (addr_expr_of_non_mem_decl_p): Declare. 505 * tree-mudflap.c (mf_xform_derefs_1): Don't change MEM_REFs 506 and TARGET_MEM_REFs that have an ADDR_EXPR of a non-mem DECL 507 as base operand. 508 5092012-12-14 Yvan Roux <yvan.roux@linaro.org> 510 511 * optabs.c (expand_atomic_store): Elide redundant model test. 512 5132012-12-14 Teresa Johnson <tejohnson@google.com> 514 515 PR gcov-profile/55674 516 * lto-cgraph.c (merge_profile_summaries): Set min correctly the 517 first time we merge into a histogram entry. 518 5192012-12-14 Richard Biener <rguenther@suse.de> 520 521 PR tree-optimization/55684 522 * tree-ssa-loop-ivcanon.c (remove_redundant_iv_tests): Handle 523 gracefully the case where we cannot compute the number of 524 iterations at an exit. 525 5262012-12-14 Richard Biener <rguenther@suse.de> 527 528 PR tree-optimization/55687 529 * tree-chrec.h (no_evolution_in_loop_p): Properly use 530 tree_contains_chrecs. 531 5322012-12-13 Richard Henderson <rth@redhat.com> 533 534 PR middle-end/55492 535 * optabs.c (expand_atomic_load): Emit acquire barrier after the load. 536 5372012-12-13 Richard Henderson <rth@redhat.com> 538 539 * config/alpha/alpha.c (alpha_pad_function_end): Consider barriers 540 when looking for NOTE_INSN_CALL_ARG_LOCATION. 541 5422012-12-13 Richard Biener <rguenther@suse.de> 543 544 PR middle-end/53476 545 * varpool.c (varpool_remove_unreferenced_decls): Revert to 4.7 546 behavior. 547 5482012-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 549 550 * config/arm/unspecs.md: Add copyright notice. 551 5522012-12-13 Jakub Jelinek <jakub@redhat.com> 553 554 * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Avoid 555 -Wsign-compare warning. 556 5572012-12-13 Richard Biener <rguenther@suse.de> 558 559 PR lto/55660 560 * tree-streamer.c (record_common_node): Check that we are not 561 recursively pre-loading nodes we want to skip. Handle 562 char_type_node appearing as part of va_list_type_node. 563 5642012-12-13 Jakub Jelinek <jakub@redhat.com> 565 566 PR gcov-profile/55650 567 * coverage.c (coverage_obj_init): Return false if no functions 568 are being emitted. 569 5702012-12-13 Steven Bosscher <steven@gcc.gnu.org> 571 572 * bitmap.c (struct bitmap_descriptor): Remove forward declaration. 573 (struct bitmap_head_def): Remove desc pointer. Add descriptor_id 574 field. Reorder fields for pointer alignment. 575 * bitmap.c: Include vec.h. 576 (struct bitmap_descriptor): Rename to bitmap_descriptor_d. 577 (bitmap_descriptor): New typedef, pointer to bitmap_descriptor_d. 578 Update all struct bitmap_descriptor references. 579 (next_bitmap_desc_id): New running index for bitmap desciptors. 580 (bitmap_descriptors): Vec of all bitmap descriptors by descriptor id. 581 (hash_descriptor, eq_descriptor): Update for struct bitmap_descriptor 582 change. 583 (bitmap_descriptor): Rename function to get_bitmap_descriptor. 584 Stuff newly allocated bitmap descriptor into bitmap_descriptors. 585 Set the bitmap descriptor id. 586 (bitmap_register): Lookup bitmap desciptor and store its ID in 587 the passed bitmap. 588 (register_overhead): Likewise. 589 (bitmap_find_bit): Lookup descriptor by id in bitmap_descriptors. 590 (print_statistics): Update for struct bitmap_descriptor change. 591 592 * Makefile.in: Fix bitmap.o dependencies. 593 5942012-12-13 Richard Biener <rguenther@suse.de> 595 596 * tree-ssa-pre.c (get_representative_for): Adjust dumping. 597 Mark created SSA names for release. 598 (eliminate_bb): Insert only when expr is not NULL. 599 6002012-12-12 Jakub Jelinek <jakub@redhat.com> 601 602 PR debug/55665 603 * tree-inline.c (remap_decls): Change nonlocalized_list 604 to pointer to pointer to vector from pointer to vector. 605 (remap_block): Pass address of BLOCK_NONLOCALIZED_VARS. 606 607 PR sanitizer/55508 608 * builtin-attrs.def (ATTR_TMPURE_NOTHROW_LEAF_LIST, 609 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST): New. 610 * asan.c (ATTR_TMPURE_NOTHROW_LEAF_LIST, 611 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST): Define. 612 * sanitizer.def: Make __asan_report_* and __asan_handle_no_return 613 builtins tm pure. 614 6152012-12-12 Steve Ellcey <sellcey@mips.com> 616 617 * config/mips/mips.c (mips_option_override): Set 618 mips_dbx_regno entries to IGNORED_DWARF_REGNUM by default. 619 6202012-12-12 Steven Bosscher <steven@gcc.gnu.org> 621 622 * graph.c: Include sbitmap.h and cfgloop.h. 623 (draw_cfg_nodes_no_loops): New function to dump basic blocks in 624 topological order if the function does not have a loop tree. 625 Handle unreachable blocks also. 626 (draw_cfg_nodes_for_loop): New function to dump basic blocks in 627 one loop tree node as a named cluster of nodes. 628 (draw_cfg_nodes): New function to draw all CFG nodes. 629 (draw_cfg_edges): New function to draw all CFG edges. 630 (print_graph_cfg): Simplify using the new functions. 631 * Makefile.in (graph.o): Fix dependencies. 632 6332012-12-12 Steven Bosscher <steven@gcc.gnu.org> 634 635 * dumpfile.h (enum tree_dump_index): Remove TDI_vcg. 636 * dumpfile.c (dump_files[]): Remove entry for TDI_vcg. 637 * tree-cfg.c (gimple_cfg2vcg): Remove. 638 (build_gimple_cfg): Don't call it. 639 * doc/invoke.texi (-fdump-tree-vcg): Remove documentation. 640 Correct GraphViz documentation, it does handle multiple functions 641 in a single dump. 642 6432012-12-12 Zdenek Dvorak <ook@ucw.cz> 644 645 PR tree-optimization/55481 646 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fall 647 back to general rewriting if we cannot leave an original biv 648 definition alone. 649 6502012-12-12 Jakub Jelinek <jakub@redhat.com> 651 652 PR target/55659 653 Revert 654 2012-12-11 Jakub Jelinek <jakub@redhat.com> 655 656 PR middle-end/43631 657 * var-tracking.c (emit_note_insn_var_location): If insn is followed 658 by BARRIER, put note after the BARRIER. 659 (next_non_note_insn_var_location): Skip over BARRIERs. 660 (emit_notes_in_bb): If call is followed by BARRIER, put note after 661 the BARRIER. 662 663 2012-12-06 Jakub Jelinek <jakub@redhat.com> 664 665 PR middle-end/43631 666 * var-tracking.c (emit_note_insn_var_location, emit_notes_in_bb): 667 Clear BLOCK_FOR_INSN on notes emitted in between basic blocks, 668 don't adjust BB_END when inserting note after BB_END of some bb. 669 6702012-12-12 Steven Bosscher <steven@gcc.gnu.org> 671 Jakub Jelinek <jakub@redhat.com> 672 673 PR middle-end/52640 674 * varasm.c (pending_assemble_externals_set): New pointer set. 675 (process_pending_assemble_externals): Destroy the pointer set. 676 (assemble_external): See if decl is in pending_assemble_externals_set, 677 and add it to pending_assemble_externals if necessary. 678 (init_varasm_once): Allocate pending_assemble_externals_set. 679 6802012-12-12 Jakub Jelinek <jakub@redhat.com> 681 682 PR fortran/55633 683 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): 684 Ignore bounds on which bound += double_int_one overflowed. 685 6862012-12-11 Eric Botcazou <ebotcazou@adacore.com> 687 688 PR target/54121 689 * config/sparc/sparc.md (tldo_stb_sp32): Fix pasto. 690 (tldo_stb_sp64): Likewise. 691 (tldo_sth_sp32): Likewise. 692 (tldo_sth_sp64): Likewise. 693 (tldo_stw_sp32): Likewise. 694 (tldo_stw_sp64): Likewise. 695 (tldo_stx_sp64): Likewise. 696 6972012-12-11 Jakub Jelinek <jakub@redhat.com> 698 699 PR rtl-optimization/55193 700 * lra-constraints.c (loc_equivalence_callback): New function. 701 (lra_constraints): Call simplify_replace_fn_rtx instead of 702 loc_equivalence_change_p on DEBUG_INSNs. 703 7042012-12-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 705 706 PR target/55642 707 * config/arm/thumb2.md (*thumb2_abssi2): 708 Set ce_count attribute to 2. 709 (*thumb2_neg_abssi2): Likewise. 710 7112012-12-11 Jakub Jelinek <jakub@redhat.com> 712 713 * varasm.c (get_variable_section): Don't return lcomm_section 714 for asan_protect_global decls. 715 * asan.c (asan_protect_global): Only avoid public common variables. 716 Don't call get_variable_section here. 717 718 PR middle-end/43631 719 PR bootstrap/55615 720 * var-tracking.c (emit_note_insn_var_location): If insn is followed 721 by BARRIER, put note after the BARRIER. 722 (next_non_note_insn_var_location): Skip over BARRIERs. 723 (emit_notes_in_bb): If call is followed by BARRIER, put note after 724 the BARRIER. 725 726 * sanitizer.def: Add comment about importance of ordering of 727 BUILT_IN_ASAN_REPORT* builtins. 728 * cfgcleanup.c (old_insns_match_p): Don't cross-jump __asan_report_* 729 builtins. 730 731 * sanitizer.def (BUILT_IN_ASAN_HANDLE_NO_RETURN): New builtin. 732 * asan.c (instrument_builtin_call): Change is_gimple_builtin_call 733 gcc_assert to gcc_checking_assert. 734 (maybe_instrument_call): Imit __builtin___asan_handle_no_return () 735 before noreturn calls other than __builtin_trap () and 736 __builtin_unreachable (). 737 7382012-12-11 Richard Biener <rguenther@suse.de> 739 740 PR other/54324 741 * doc/install.texi (Tools/packages necessary for building GCC): 742 State ISO C++98 host compiler requirement. Increment minimum 743 GCC version required for building all languages for a cross-compiler 744 to 3.4 or later. 745 7462012-12-11 Richard Biener <rguenther@suse.de> 747 748 PR tree-optimization/55079 749 * tree-vrp.c (extract_range_from_binary_expr_1): Handle MAX/MIN_EXPR 750 for more cases. 751 (register_edge_assert_for_2): Register asserts for post-in/decrement 752 tests. 753 (check_array_ref): Dump what expression we emit array bound 754 warnings for. 755 (search_for_addr_array): Likewise. 756 7572012-12-11 Eric Botcazou <ebotcazou@adacore.com> 758 759 * tree-ssa-loop-ivopts.c (prepare_decl_rtl) <ADDR_EXPR>: Generate RTL 760 only for a DECL which HAS_RTL_P. 761 7622012-12-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 763 764 * config/s390/predicates.md ("execute_operation"): New predicate. 765 * config/s390/s390.md ("*execute_rl", "*execute"): Use the new 766 predicate. 767 7682012-12-10 Xinliang David Li <davidxl@google.com> 769 770 * config/i386/i386.c: Enable push/pop in pro/epilogue for modern CPUs. 771 7722012-12-10 Steve Ellcey <sellcey@mips.com> 773 774 * config/mips/gnu-user.h (NO_SHARED_SPECS): Add space before option. 775 7762012-12-10 Steve Ellcey <sellcey@mips.com> 777 778 PR target/54061 779 * rtl.h (IGNORED_DWARF_REGNUM): New. 780 * dwarf2out.c (reg_loc_descriptor): Check for IGNORED_DWARF_REGNUM. 781 (mem_loc_descriptor): Ditto. 782 * config/mips/mips.h (ALL_COP_REG_FIRST): New. 783 (ALL_COP_REG_LAST): New. 784 (ALL_COP_REG_NUM): Redefine using above macros. 785 * config/mips/mips.c (mips_option_override): Set mips_dbx_regno 786 coprocessor entries to IGNORED_DWARF_REGNUM. 787 7882012-12-10 H.J. Lu <hongjiu.lu@intel.com> 789 790 PR lto/55466 791 * lto-symtab.c (lto_symtab_merge_decls_1): Don't record the 792 prevailing variable. 793 7942012-12-10 Richard Biener <rguenther@suse.de> 795 796 PR tree-optimization/55107 797 * tree-ssa-pre.c (struct pre_stats): Remove constified field. 798 (bitmap_set_replace_value): Add gcc_unreachable. 799 (do_regular_insertion): Re-write all_same handling. Insert 800 an assignment instead of a PHI in this case. 801 (eliminate_bb): Record availability also for SSA names defined 802 by a constant. 803 (do_pre): Do not record constified events. 804 (execute_fre): Likewise. 805 8062012-12-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 807 808 * config/spu/spu.md: Replace "operands" with "operands != NULL" in 809 insn conditions. 810 8112012-12-10 Jakub Jelinek <jakub@redhat.com> 812 813 * asan.c (asan_init_shadow_ptr_types): Move earlier in the file. 814 Call initialize_sanitizer_builtins at the end. 815 (asan_pp_string): Use TREE_TYPE (shadow_ptr_types[0]) 816 as character type instead of char_type_node. 817 (asan_emit_stack_protection): Call asan_init_shadow_ptr_types 818 if shadow_ptr_types isn't initialized. 819 (asan_protect_global): Return true for STRING_CSTs except those 820 created by asan_pp_string. 821 (count_string_csts, add_string_csts): New functions. 822 (struct asan_add_string_csts_data): New type. 823 (asan_finish_file): Clear flag_asan at the beginning, restore at the 824 end. Traverse constant_pool_htab () to look for protected 825 STRING_CSTs. Don't call initialize_sanitizer_builtins, 826 instead call asan_init_shadow_ptr_types if shadow_ptr_types isn't 827 initialized yet. 828 (asan_instrument): Don't call initialize_sanitizer_builtins. 829 * varasm.c (output_constant_def_contents): If STRING_CST should be 830 asan protected, align it sufficiently and emit padding after it. 831 (categorize_decl_for_section): If flag_asan, don't put STRING_CSTs 832 that should be asan protected into mergeable sections. For 833 -fmerge-all-constants, ignore it for -fmudflap or if decl is 834 asan protected. 835 8362012-12-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 837 838 * config/arm/neon.ml (opcode): Add Vrintn, Vrinta, Vrintp, Vrintm, 839 Vrintz to type. 840 (type features): Add Requires_arch type constructor. 841 (ops): Define Vrintn, Vrinta, Vrintp, Vrintm, Vrintz features. 842 * config/arm/neon-docgen.ml (intrinsic_groups): Define Vrintn, 843 Vrinta, Vrintp, Vrintm, Vrintz, Vrintx. 844 * config/arm/neon-testgen.ml (effective_target): Define check for 845 Requires_arch 8. 846 * config/arm/neon-gen.ml (print_feature_test_start): Handle 847 Requires_arch. 848 (print_feature_test_end): Likewise. 849 Add 2012 to Copyright notice. 850 * doc/arm-neon-intrinsics.texi: Regenerate. 851 * config/arm/arm_neon.h: Regenerate. 852 8532012-12-10 Kai Tietz <ktietz@redhat.com> 854 855 * stmt.c (expand_sjlj_dispatch_table): Fix off by one. 856 857 PR target/53912 858 * stmt.c (compute_cases_per_edge): Cast from pointer via intptr_t. 859 (expand_case): Likewise. 860 861 PR target/53912 862 * print-tree.c (print_node): Cast from pointer via uintptr_t. 863 8642012-12-10 Jakub Jelinek <jakub@redhat.com> 865 866 * asan.c (instrument_derefs): Handle bitfield COMPONENT_REFs 867 accesses as reads/writes to their DECL_BIT_FIELD_REPRESENTATIVE. 868 8692012-12-08 Eric Botcazou <ebotcazou@adacore.com> 870 871 * lto-streamer-out.c (lto_write_tree): Do not reset the DECL_INITIAL of 872 variables in the global constant pool. 873 8742012-12-08 Steven Bosscher <steven@gcc.gnu.org> 875 876 PR rtl-optimization/55158 877 * sched-rgn.c (bb_state_array, bb_state): Add some explaining 878 comment, and initialize to NULL explicitly. 879 (realloc_bb_state_array): New function. 880 (free_bb_state_array): New function. 881 (schedule_region): Call realloc_bb_state_array after schedule_block. 882 (sched_rgn_init): Use realloc_bb_state_array to initialize bb_state. 883 (sched_rgn_finish): Use free_bb_state_array to free it. 884 8852012-12-08 Eric Botcazou <ebotcazou@adacore.com> 886 887 * tree-ssa-loop-im.c (for_each_index) <CONST_DECL>: New case. 888 8892012-12-07 Sriraman Tallan <tmsriram@google.com> 890 891 * toplev.c (process_options): Do not warn when -ffunction-sections 892 and -fprofile are used together. 893 8942012-12-07 Steven Bosscher <steven@gcc.gnu.org> 895 896 * ree.c (struct ext_cand): Remove GTY markers. 897 8982012-12-07 Vladimir Makarov <vmakarov@redhat.com> 899 900 PR rtl-optimization/55141 901 * lra-constraints.c (lra_constraints): Use biggest mode for 902 df_set_regs_ever_live. 903 9042012-12-07 Jan Hubicka <jh@suse.cz> 905 906 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add UPPER_BOUND 907 parameter. 908 (try_unroll_loop_completely) Update. 909 9102012-12-07 Jakub Jelinek <jakub@redhat.com> 911 912 PR fortran/55395 913 * varpool.c (varpool_remove_node): Don't drop DECL_INITIAL 914 for -g for any kind of debug info. 915 9162012-12-07 Richard Biener <rguenther@suse.de> 917 918 PR tree-optimization/54886 919 * graphite-sese-to-poly.c (build_loop_iteration_domains): Properly 920 free all memory. 921 9222012-12-07 Martin Jambor <mjambor@suse.cz> 923 924 PR middle-end/55078 925 * ipa-inline-transform.c (inline_call): Turn #if 0 to 926 #ifdef ENABLE_CHECKING. 927 * ipa-prop.c (try_make_edge_direct_simple_call): Use 928 ipa_value_from_jfunc. 929 (try_make_edge_direct_virtual_call): Likewise. 930 (update_indirect_edges_after_inlining): Lookup new_root_info and pass 931 it to the functions above. 932 9332012-12-07 Martin Jambor <mjambor@suse.cz> 934 935 PR tree-optimization/55590 936 * tree-sra.c (build_ref_for_offset): Use get_object_alignment_1 to 937 get base alignment. 938 9392012-12-06 Uros Bizjak <ubizjak@gmail.com> 940 H.J. Lu <hongjiu.lu@intel.com> 941 942 PR target/55597 943 * config/i386/i386.c (legitimize_tls_address): Zero-extend x to Pmode, 944 before using it as insn or call equivalent. 945 9462012-12-06 Peter Bergner <bergner@vnet.ibm.com> 947 948 * config/rs6000/sysv4.h (TARGET_ASAN_SHADOW_OFFSET): Define. 949 * config/rs6000/rs6000.c (rs6000_asan_shadow_offset): New function. 950 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Disable if using ASAN. 951 9522012-12-06 Jakub Jelinek <jakub@redhat.com> 953 954 PR fortran/55395 955 * varpool.c (varpool_remove_node): Don't drop DECL_INITIAL 956 if -g and emitting DWARF2+. 957 9582012-12-06 Pat Haugen <pthaugen@us.ibm.com> 959 960 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set 961 default loop peeling limits. 962 9632012-12-06 Jason Merrill <jason@redhat.com> 964 965 PR c++/55032 966 PR c++/55245 967 * tree.c (build_array_type_1): Re-layout if we found it in the 968 hash table. 969 9702012-12-06 Jack Howarth <howarth@bromo.med.uc.edu> 971 972 PR 55599/sanitizer 973 * config/darwin.h (LINK_COMMAND_SPEC_A): Remove static libasan support. 974 9752012-12-06 Jakub Jelinek <jakub@redhat.com> 976 977 PR middle-end/43631 978 * var-tracking.c (emit_note_insn_var_location, emit_notes_in_bb): 979 Clear BLOCK_FOR_INSN on notes emitted in between basic blocks, 980 don't adjust BB_END when inserting note after BB_END of some bb. 981 982 PR c++/55137 983 * fold-const.c (fold_binary_loc) <associate>: Don't introduce 984 TREE_OVERFLOW through reassociation. If type doesn't have defined 985 overflow, but one or both of the operands do, use the wrapping type 986 for reassociation and only convert to type at the end. 987 9882012-12-06 Richard Biener <rguenther@suse.de> 989 990 * gimple-fold.c (fold_stmt_1): Remove code handling folding stmts away. 991 9922012-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 993 994 * doc/sourcebuild.texi: Document arm_v8_neon_ok. 995 9962012-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 997 998 * config/arm/arm.c (neon_itype): Define NEON_RINT enum element. 999 (neon_builtin_data): Register vrintn, vrinta, vrintp, vrintm, 1000 vrintz, vrintx neon builtins. 1001 (arm_init_neon_builtins): Handle NEON_RINT. 1002 (arm_expand_neon_builtin): Likewise. 1003 * config/arm/unspecs.md: New file. 1004 * config/arm/arm.md ("unspec"): Move to unspecs.md. 1005 * config/arm/iterators.md (NEON_VRINT): New int iterator. 1006 (nvrint_variant): New int attribute. 1007 * config/arm/neon.md 1008 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): New pattern. 1009 ("unspec"): Move to unspecs.md. 1010 * config/arm/iwmmxt2.md ("unspec"): Move to unspecs.md. 1011 10122012-12-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1013 1014 * config/pa/pa.md: Use "const_int 0" instead of match_test to simplify 1015 opaque cond in all call insns. 1016 10172012-12-05 Steven Bosscher <steven@gcc.gnu.org> 1018 1019 PR rtl-optimization/55604 1020 * lra-lives.c (lra_create_live_ranges): If there are no referenced 1021 pseudos left, do not compute live ranges. 1022 10232012-12-05 Steven Bosscher <steven@gcc.gnu.org> 1024 1025 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Update documentation. 1026 * doc/tm.texi: Regenerate. 1027 * regs.h (REG_LIVE_LENGTH): Update comments to not refer to no longer 1028 existing files global.c and local-alloc.c. 1029 * regmove.c (copy_src_to_dest): Likewise. 1030 * function.h (struct rtl_data): Likewise. 1031 * ira-color.c (allocno_priority_compare_func): Likewise. 1032 * regstat.c (regstat_compute_ri): Likewise. 1033 * config/epiphany/epiphany.h, config/vax/vax.h, config/cris/cris.h, 1034 config/h8300/h8300.h, config/alpha/alpha.h, config/sparc/sparc.h, 1035 config/rs6000/rs6000.h, config/pdp11/pdp11.h, config/pa/pa.h, 1036 config/v850/v850.h, config/mn10300/mn10300.h, config/m32r/m32r.h, 1037 config/i386/i386.h, config/mcore/mcore.h, config/sh/sh.h, 1038 config/arm/arm.h (REGNO_OK_FOR_BASE_P): Likewise. 1039 10402012-12-05 Aldy Hernandez <aldyh@redhat.com> 1041 1042 PR target/54160 1043 * config/t-darwin (darwin-c.o): Depend on $(CPP_INTERNAL_H). 1044 * config/darwin-c.c (darwin_cpp_builtins): Only set __OBJC2__ when 1045 in obj mode. 1046 Include libcpp/internal.h. 1047 10482012-12-05 Michael Eager <eager@eagercon.com> 1049 1050 PR rtl-optimization/54739 1051 * config/microblaze/microblaze.md: (anddi3, iordi3, xordi3): Delete 1052 patterns. 1053 10542012-12-05 James Greenhalgh <james.greenhalgh@arm.com> 1055 1056 * config/aarch64/aarch64-simd-builtins.def: Add new builtins. 1057 * config/aarch64/aarch64-simd.md (simd_type): Add uzp. 1058 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): New. 1059 * config/aarch64/aarch64.c (aarch64_evpc_trn): New. 1060 (aarch64_evpc_uzp): Likewise. 1061 (aarch64_evpc_zip): Likewise. 1062 (aarch64_expand_vec_perm_const_1): Check for trn, zip, uzp patterns. 1063 * config/aarch64/iterators.md (unspec): Add neccessary unspecs. 1064 (PERMUTE): New. 1065 (perm_insn): Likewise. 1066 (perm_hilo): Likewise. 1067 10682012-12-05 James Greenhalgh <james.greenhalgh@arm.com> 1069 1070 * config/aarch64/aarch64-protos.h 1071 (aarch64_split_combinev16qi): New. 1072 (aarch64_expand_vec_perm): Likewise. 1073 (aarch64_expand_vec_perm_const): Likewise. 1074 * config/aarch64/aarch64-simd.md (vec_perm_const<mode>): New. 1075 (vec_perm<mode>): Likewise. 1076 (aarch64_tbl1<mode>): Likewise. 1077 (aarch64_tbl2v16qi): Likewise. 1078 (aarch64_combinev16qi): New. 1079 * config/aarch64/aarch64.c 1080 (aarch64_vectorize_vec_perm_const_ok): New. 1081 (aarch64_split_combinev16qi): Likewise. 1082 (MAX_VECT_LEN): Define. 1083 (expand_vec_perm_d): New. 1084 (aarch64_expand_vec_perm_1): Likewise. 1085 (aarch64_expand_vec_perm): Likewise. 1086 (aarch64_evpc_tbl): Likewise. 1087 (aarch64_expand_vec_perm_const_1): Likewise. 1088 (aarch64_expand_vec_perm_const): Likewise. 1089 (aarch64_vectorize_vec_perm_const_ok): Likewise. 1090 (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Likewise. 1091 * config/aarch64/iterators.md 1092 (unspec): Add UNSPEC_TBL, UNSPEC_CONCAT. 1093 (V_cmp_result): Add mapping for V2DF. 1094 10952012-12-05 Yufeng Zhang <yufeng.zhang@arm.com> 1096 1097 * config/aarch64/aarch64.c (aarch64_simd_mangle_map_entry): New 1098 typedef. 1099 (aarch64_simd_mangle_map): New table. 1100 (aarch64_mangle_type): Locate and return the mangled name for 1101 a given AdvSIMD vector type. 1102 11032012-12-05 Yufeng Zhang <yufeng.zhang@arm.com> 1104 1105 * config/aarch64/aarch64.c (aarch64_mangle_type): New function. 1106 (TARGET_MANGLE_TYPE): Define. 1107 11082012-12-05 James Greenhalgh <james.greenhalgh@arm.com> 1109 1110 * config/aarch64/aarch64-builtins.c 1111 (aarch64_builtin_vectorized_function): New. 1112 * config/aarch64/aarch64-protos.h 1113 (aarch64_builtin_vectorized_function): Declare. 1114 * config/aarch64/aarch64-simd-builtins.def (frintz, frintp): Add. 1115 (frintm, frinti, frintx, frinta, fcvtzs, fcvtzu): Likewise. 1116 (fcvtas, fcvtau, fcvtps, fcvtpu, fcvtms, fcvtmu): Likewise. 1117 * config/aarch64/aarch64-simd.md 1118 (aarch64_frint_<frint_suffix><mode>): New. 1119 (<frint_pattern><mode>2): Likewise. 1120 (aarch64_fcvt<frint_suffix><su><mode>): Likewise. 1121 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Likewise. 1122 * config/aarch64/aarch64.c (TARGET_VECTORIZE_BUILTINS): Define. 1123 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise. 1124 * config/aarch64/aarch64.md 1125 (btrunc<mode>2, ceil<mode>2, floor<mode>2) 1126 (round<mode>2, rint<mode>2, nearbyint<mode>2): Consolidate as... 1127 (<frint_pattern><mode>2): ...this. 1128 (lceil<su_optab><mode><mode>2, lfloor<su_optab><mode><mode>2) 1129 (lround<su_optab><mode><mode>2) 1130 (lrint<su_optab><mode><mode>2): Consolidate as... 1131 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): ... this. 1132 * config/aarch64/iterators.md (fcvt_target): New. 1133 (FCVT_TARGET): Likewise. 1134 (FRINT): Likewise. 1135 (FCVT): Likewise. 1136 (frint_pattern): Likewise. 1137 (frint_suffix): Likewise. 1138 (fcvt_pattern): Likewise. 1139 11402012-12-05 Steven Bosscher <steven@gcc.gnu.org> 1141 1142 * passes.c (pass_init_dump_file): Only open a clean graph dump file if 1143 the dump was not already initialized. 1144 1145 Revert: 1146 2012-12-03 Steven Bosscher <steven@gcc.gnu.org> 1147 * passes.c (finish_optimization_passes): Don't finish graph dumps here. 1148 (pass_fini_dump_file): Wrap in TV_DUMP. Finish graph dumps. 1149 (execute_one_pass): Don't set up graph dumps here. 1150 11512012-12-05 Richard Biener <rguenther@suse.de> 1152 1153 PR lto/55525 1154 * gimple-streamer-in.c (input_gimple_stmt): Fixup ARRAY_REFs as well. 1155 11562012-12-04 Ian Lance Taylor <iant@google.com> 1157 1158 * godump.c (find_dummy_types): Output a dummy type if we couldn't 1159 output the real type. 1160 11612012-12-04 Steven Bosscher <steven@gcc.gnu.org> 1162 1163 * rtl.h (print_insn_with_notes): Remove prototype. 1164 (rtl_dump_bb_for_graph): New prototype. 1165 * sched-vis.c (print_insn_with_notes): Make static again. Fix 1166 printing of notes. 1167 (rtl_dump_bb_for_graph): New function. 1168 * cfghooks.h (struct cfg_hooks) <dump_bb_for_graph>: New hook. 1169 (dump_bb_for_graph): New prototype. 1170 * cfghooks.c (dump_bb_for_graph): New function. 1171 * tree-cfg.c (gimple_cfg_hooks): Register gimple_dump_bb_for_graph 1172 as dump_bb_for_graph hook implementation for GIMPLE. 1173 * cfgrtl.c (rtl_cfg_hooks): Likewise for rtl_dump_bb_for_graph. 1174 (cfg_layout_rtl_cfg_hooks): Likewise. 1175 * graph.c (draw_cfg_node): Don't include sbitmap.h, rtl.h, tree.h, 1176 gimple.h, and gimple-pretty-print.h. 1177 (draw_cfg_node, draw_cfg_node_succ_edges): Use the uniqe function 1178 definition number instead of the function declaration UID. 1179 (print_graph_cfg): Take a struct function instead of a tree. 1180 Use the dump_bb_for_graph hook to dump the basic block content. 1181 * graph.h (print_graph_cfg): Update prototype. 1182 * passes.c (execute_function_dump): Update print_graph_cfg call. 1183 * Makefile.in (graph.o): Fixup dependencies. 1184 11852012-12-04 Marcus Shawcroft <marcus.shawcroft@arm.com> 1186 1187 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Set 1188 TYPE_STUB_DECL. 1189 11902012-12-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 1191 1192 * config/s390/s390.c (s390_select_ccmode): Enable using CC of 1193 x + imm for higher immediates on z9-109 upwards. 1194 11952012-12-04 Richard Earnshaw <rearnsha@arm.com> 1196 1197 * arm.opt (cirrus-fix-invalid-insns): Delete option. 1198 * invoke.texi (cirrus-fix-invalid-insns): Remove documentation. 1199 12002012-12-04 Jakub Jelinek <jakub@redhat.com> 1201 1202 * tsan.c (instrument_expr): If expr_ptr isn't a gimple val, first 1203 store it into a SSA_NAME. 1204 1205 PR sanitizer/55439 1206 * Makefile.in (tsan.o): Depend on tree-ssa-propagate.h. 1207 * sanitizer.def: Add __tsan_atomic* builtins. 1208 * asan.c (initialize_sanitizer_builtins): Adjust to also 1209 initialize __tsan_atomic* builtins. 1210 * tsan.c: Include tree-ssa-propagate.h. 1211 (enum tsan_atomic_action): New enum. 1212 (tsan_atomic_table): New table. 1213 (instrument_builtin_call): New function. 1214 (instrument_gimple): Take pointer to gimple_stmt_iterator 1215 instead of gimple_stmt_iterator. Call instrument_builtin_call 1216 on builtin call stmts. 1217 (instrument_memory_accesses): Adjust instrument_gimple caller. 1218 * builtin-types.def (BT_FN_BOOL_VPTR_PTR_I1_INT_INT, 1219 BT_FN_BOOL_VPTR_PTR_I2_INT_INT, BT_FN_BOOL_VPTR_PTR_I4_INT_INT, 1220 BT_FN_BOOL_VPTR_PTR_I8_INT_INT, BT_FN_BOOL_VPTR_PTR_I16_INT_INT): New. 1221 12222012-12-04 Tejas Belagod <tejas.belagod@arm.com> 1223 1224 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment, 1225 aarch64_simd_vector_alignment_reachable): New. 1226 (TARGET_VECTOR_ALIGNMENT, TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): 1227 Define. 1228 12292012-12-04 Richard Biener <rguenther@suse.de> 1230 1231 PR tree-optimization/55124 1232 * tree-ssa-pre.c (find_or_generate_expression): Instead of 1233 ICEing when we are not able to generate an expression defer it 1234 by signalling failure. Fix possible wrong-code issue by 1235 not picking random REFERENCE expressions as fallback. 1236 (create_component_ref_by_pieces_1): Adjust. Add failure paths. 1237 (create_expression_by_pieces): Likewise. 1238 (insert_into_preds_of_block): When expression generation failed 1239 for one edge make sure to not insert a PHI node. 1240 12412012-12-03 Eric Botcazou <ebotcazou@adacore.com> 1242 1243 * config/ia64/ia64.c (ia64_compute_frame_size): Allocate the scratch 1244 area if the function allocates dynamic stack space. 1245 (ia64_initial_elimination_offset): Adjust offsets to above change. 1246 12472012-12-03 Steven Bosscher <steven@gcc.gnu.org> 1248 1249 * gcse.c (struct reg_use): Remove unused struct. 1250 (gcse_emit_move_after): Do not create REG_EQUAL notes that reference 1251 the SET_DEST of the instruction the note would be attached to. 1252 * cse.c (cse_main): Add the DF_NOTE problem. 1253 12542012-12-03 Jakub Jelinek <jakub@redhat.com> 1255 1256 * sanitizer.def: Add Address Sanitizer builtins. 1257 Rename BUILT_IN_TSAN_READ_* to BUILT_IN_TSAN_READ* and 1258 BUILT_IN_TSAN_WRITE_* to BUILT_IN_TSAN_WRITE*. 1259 * Makefile.in (asan.o): Depend on langhooks.h. 1260 (tsan.o): Depend on asan.h. 1261 * asan.h (initialize_sanitizer_builtins): New prototype. 1262 * asan.c: Include langhooks.h. 1263 (report_error_func): Use builtin_decl_implicit of corresponding 1264 BUILT_IN_ASAN_REPORT_{LOAD,STORE}*. 1265 (asan_init_func): Removed. 1266 (initialize_sanitizer_builtins): New function. 1267 (asan_finish_file): Call it. Use builtin_decl_implicit 1268 on BUILT_IN_ASAN_{INIT,{,UN}REGISTER_GLOBALS}. 1269 (asan_instrument): Call initialize_sanitizer_builtins. 1270 * builtins.def (DEF_SANITIZER_BUILTIN): Change condition to 1271 (flag_asan || flag_tsan). 1272 * tsan.c: Include asan.h and tsan.h. 1273 (get_memory_access_decl): Rename BUILT_IN_TSAN_{READ,WRITE}_* 1274 to BUILT_IN_TSAN_{READ,WRITE}*. 1275 (tsan_pass): Call initialize_sanitizer_builtins. 1276 (tsan_gate, tsan_gate_O0): Don't check if 1277 builtin_decl_implicit_p (BUILT_IN_TSAN_INIT) is true. 1278 (tsan_finish_file): Call initialize_sanitizer_builtins. 1279 * builtin-types.def (BT_FN_VOID_PTR_PTRMODE): New fn type. 1280 12812012-12-03 Aldy Hernandez <aldyh@redhat.com> 1282 1283 PR middle-end/55401 1284 * trans-mem.c (get_tm_region_blocks): Exclude uninstrumented 1285 blocks from vector if requested. 1286 (collect_bb2reg): Pass new argument to get_tm_region_blocks. 1287 (get_bb_regions_instrumented): Add INCLUDE_UNINSTRUMENTED_P 1288 argument, and pass it to expand_regions. 1289 (execute_tm_mark): Pass new argument to get_bb_regions_instrumented. 1290 (execute_tm_edges): Same. 1291 12922012-12-03 Jakub Jelinek <jakub@redhat.com> 1293 1294 * asan.c (instrument_mem_region_access): Don't instrument 1295 if base doesn't have pointer type or len integral type. 1296 Add cast if len doesn't have size_t compatible type. 1297 (instrument_builtin_call): Don't instrument BUILT_IN_ATOMIC_LOAD, 1298 BUILT_IN_ATOMIC_TEST_AND_SET, BUILT_IN_ATOMIC_CLEAR, 1299 BUILT_IN_ATOMIC_EXCHANGE, BUILT_IN_ATOMIC_COMPARE_EXCHANGE 1300 and BUILT_IN_ATOMIC_STORE. 1301 1302 * asan.c (instrument_assignment): Instrument lhs only 1303 for gimple_store_p and rhs1 only for gimple_assign_load_p. 1304 13052012-12-03 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 1306 1307 * Makefile.in: Add target mddump, build/genmddump.o. Extend 1308 genprogrtl with mddump. 1309 * genmddump.c: New. 1310 13112012-12-03 Steven Bosscher <steven@gcc.gnu.org> 1312 1313 * rtl.h (print_insn_with_notes): Prototype. 1314 * sched-vis.c (print_insn_with_notes): Export it. 1315 1316 * gimple-pretty-print.h (gimple_dump_bb_for_graph): Prototype. 1317 * gimple-pretty-print.c (print_gimple_expr): Flush the buffer. 1318 (pp_gimple_stmt_1): Don't do it here. 1319 (gimple_dump_bb_for_graph): New function. 1320 * tree-pretty-print.c (print_generic_expr): Flush the buffer here. 1321 (dump_generic_node): Don't flush the buffer here. 1322 1323 * graph.h (print_rtl_graph_with_bb): Rename to print_graph_cfg. 1324 * graph.c: Include gimple.h, dumpfile.h, and gimple-pretty-print.h. 1325 (draw_cfg_node): Handle GIMPLE basic blocks also. 1326 (print_rtl_graph_with_bb): Rename to print_graph_cfg. 1327 * passes.c (finish_optimization_passes): Don't finish graph dumps here. 1328 (execute_function_dump): Use print_graph_cfg. Enable dumping the CFG 1329 for GIMPLE also. 1330 (pass_init_dump_file): Wrap in TV_DUMP. Set up CFG graph dumps. 1331 (pass_fini_dump_file): Wrap in TV_DUMP. Finish graph dumps. 1332 (execute_one_pass): Don't set up graph dumps here. 1333 13342012-12-03 Eric Botcazou <ebotcazou@adacore.com> 1335 1336 * tree-ssa.c (warn_uninitialized_var): Use OPT_Wmaybe_uninitialized tag 1337 in the non-always executed case. 1338 13392012-12-03 Sofiane Naci <sofiane.naci@arm.com> 1340 1341 * config/aarch64/aarch64.c (aarch64_build_constant): Update prototype. 1342 Call emit_move_insn instead of printing movi/movn/movz instructions. 1343 Call gen_insv_immdi instead of printing movk instruction. 1344 (aarch64_add_constant): Update prototype. 1345 Generate RTL instead of printing add/sub instructions. 1346 (aarch64_output_mi_thunk): Update calls to aarch64_build_constant 1347 and aarch64_add_constant. 1348 13492012-12-03 Kai Tietz <ktietz@redhat.com> 1350 1351 PR target/53912 1352 * ggc-common.c (POINTER_HASH): Cast from pointer via intptr_t. 1353 1354 PR target/53912 1355 * tree-dump.c (dump_pointer): Print pointer via HOST_WIDE_INT_PRINT. 1356 1357 PR target/53912 1358 * pointer-set.c (hash1): Cast from pointer via uintptr_t. 1359 13602012-12-02 Marek Polacek <polacek@redhat.com> 1361 1362 PR middle-end/54838 1363 * cprop.c (bypass_block): Determine number of latches. Return 1364 when there is more than one latch edge. 1365 13662012-12-02 Teresa Johnson <tejohnson@google.com> 1367 1368 PR gcov-profile/55551 1369 * lto-cgraph.c (merge_profile_summaries): Handle scaled histogram 1370 entries that map to the same index. 1371 13722012-12-02 Steven Bosscher <steven@gcc.gnu.org> 1373 1374 * optabs.c (add_equal_note): Do not create self-referencing REG_EQUAL 1375 notes. 1376 * fwprop.c (forward_propagate_and_simplify): Likewise. 1377 13782012-12-02 Steven Bosscher <steven@gcc.gnu.org> 1379 1380 * function.h (struct rtl_data): Remove epilogue_delay_list. 1381 * reorg.c (find_end_label): Simplify always-true test. 1382 (optimize_skip): Likewise. 1383 * final.c (leaf_function_p): Don't loop over epilogue_delay_list. 1384 (leaf_renumber_regs): Likewise. 1385 * varasm.c (mark_constant_pool): Likewise. 1386 * except.c (set_nothrow_function_flags): Likewise. 1387 * cfgrtl.c (print_rtl_with_bb): Likewise. 1388 13892012-12-02 Hans-Peter Nilsson <hp@bitrange.com> 1390 1391 * config/mmix/mmix.c (mmix_function_value): Set the mode of the 1392 returned PARALLEL to that of the return-value, not VOIDmode. 1393 13942012-12-02 Sandra Loosemore <sandra@codesourcery.com> 1395 1396 * doc/extend.texi: Various corrections to punctuation and grammar 1397 throughout the file. Use consistent terminology and proper names. 1398 Correct some minor markup issues. 1399 14002010-12-01 Xinliang David Li <davidxl@google.com> 1401 1402 * config/i386/i386.c: Allow sign extend instructions (cltd etc) 1403 on modern CPUs. 1404 14052012-12-02 Steven Bosscher <steven@gcc.gnu.org> 1406 1407 * reorg.c: Remove an obsolete comment. 1408 * config/pa/pa.md: Add back the HP-PA comment here, with details. 1409 14102012-11-30 Eric Botcazou <ebotcazou@adacore.com> 1411 1412 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): 1413 Deal with degenerate cases where the bitsize isn't positive. 1414 Rework comment. 1415 14162012-11-30 David Edelsohn <dje.gcc@gmail.com> 1417 1418 * xcoffout.c (xcoff_tls_data_section_name): Define. 1419 * xcoffout.h (xcoff_tls_data_section_name): Declare. 1420 * config/rs6000/rs6000.c (tls_data_section): Define. 1421 (TARGET_USE_BLOCKS_FOR_DECL_P): Define. 1422 (rs6000_legitimize_tls_address_aix): New function. 1423 (rs6000_legitimize_tls_address): Use new function for AIX. 1424 (rs6000_cannot_force_const_mem): No sum in TLS TOC symbols. 1425 Allow TLS symbol in constant pool other than ELF. 1426 (rs6000_legitimate_address_p): Allow TLS symbol other than ELF. 1427 (rs6000_assemble_visibility): Do not emit anything on AIX. 1428 (output_toc): Handle alias of TLS general-dynamic symbols. 1429 Emit TLS decorations on symbols. 1430 (rs6000_use_blocks_for_decl_p): New function. 1431 (rs6000_xcoff_output_tls_section_asm_op): New function. 1432 (rs6000_xcoff_asm_init_sections): Initialize tls_data_section. 1433 (rs6000_xcoff_select_section): Choose tls_data_section for 1434 thread-local storage. 1435 (rs6000_xcoff_file_start): Generate xcoff_tls_data_section_name. 1436 (rs6000_legitimate_constant_p): Allow TLS symbol other than ELF. 1437 * config/rs6000/rs6000.md (tls_tls_): Restrict to ELF. 1438 (tls_get_tpointer): New. 1439 (tle_get_tpointer_internal): New. 1440 (tls_get_addr<mode>): New. 1441 (tls_get_addr_internal<mode>): New. 1442 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Define. 1443 14442012-11-30 Teresa Johnson <tejohnson@google.com> 1445 1446 * lto-cgraph.c (output_profile_summary): Stream out sum_all 1447 and histogram. 1448 (input_profile_summary): Stream in sum_all and histogram. 1449 (merge_profile_summaries): Merge sum_all and histogram, and 1450 change to use RDIV. 1451 (input_symtab): Call compute_working_sets after merging summaries. 1452 * gcov-io.c (gcov_histo_index): Make extern for compiler. 1453 * gcov-io.h (gcov_histo_index): Ditto. 1454 * profile.c (compute_working_sets): Remove static keyword. 1455 * profile.h (compute_working_sets): Ditto. 1456 * Makefile.in (lto-cgraph.o): Depend on profile.h. 1457 14582012-11-30 Martin Jambor <mjambor@suse.cz> 1459 1460 PR middle-end/52890 1461 PR tree-optimization/55415 1462 PR tree-optimization/54386 1463 PR target/55448 1464 * ipa-prop.c (ipa_modify_call_arguments): Be optimistic when 1465 get_pointer_alignment_1 returns false and the base was not a 1466 dereference. 1467 * tree-sra.c (access_precludes_ipa_sra_p): New parameter req_align, 1468 added check for required alignment. Update the user. 1469 14702012-11-30 Ramana Radhakrishnan <Ramana.Radhakrishnan@arm.com> 1471 Greta Yorsh <Greta.Yorsh@arm.com> 1472 1473 * config/arm/arm.md (type): Subdivide "alu" into "alu_reg" 1474 and "simple_alu_imm". 1475 (core_cycles): Use new names. 1476 (arm_addsi3): Set type of patterns to use to alu_reg and simple_alu_imm. 1477 (addsi3_compare0, addsi3_compare0_scratch): Likewise. 1478 (addsi3_compare_op1, addsi3_compare_op2, compare_addsi2_op0): Likewise. 1479 (compare_addsi2_op1, arm_subsi3_insn, subsi3_compare0): Likewise. 1480 (subsi3_compare, arm_decscc,arm_andsi3_insn): Likewise. 1481 (thumb1_andsi3_insn, andsi3_compare0_scratch): Likewise. 1482 (zeroextractsi_compare0_scratch,iorsi3_insn,iorsi3_compare0): Likewise. 1483 (iorsi3_compare0_scratch, arm_xorsi3, thumb1_xorsi3_insn): Likewise. 1484 (xorsi3_compare0, xorsi3_compare0_scratch): Likewise. 1485 (thumb1_zero_extendhisi2,arm_zero_extendhisi2_v6): Likewise. 1486 (thumb1_zero_extendqisi2_v, arm_zero_extendqisi2_v6): Likewise. 1487 (thumb1_extendhisi2, arm_extendqisi_v6): Likewise. 1488 (thumb1_extendqisi2, arm_movsi_insn): Likewise. 1489 (movsi_compare0, movhi_insn_arch4, movhi_bytes): Likewise. 1490 (arm_movqi_insn, thumb1_movqi_insn, arm_cmpsi_insn): Likewise. 1491 (movsicc_insn, if_plus_move, if_move_plus): Likewise. 1492 * config/arm/neon.md (neon_mov<mode>/VDX): Likewise. 1493 (neon_mov<mode>/VQXMOV): Likewise. 1494 * config/arm/arm1020e.md (1020alu_op): Likewise. 1495 * config/arm/fmp626.md (mp626_alu_op): Likewise. 1496 * config/arm/fa726te.md (726te_alu_op): Likewise. 1497 * config/arm/fa626te.md (626te_alu_op): Likewise. 1498 * config/arm/fa606te.md (606te_alu_op): Likewise. 1499 * config/arm/fa526.md (526_alu_op): Likewise. 1500 * config/arm/cortex-r4.md (cortex_r4_alu, cortex_r4_mov): Likewise. 1501 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise. 1502 * config/arm/cortex-a9.md (cprtex_a9_dp): Likewise. 1503 * config/arm/cortex-a8.md (cortex_a8_alu, cortex_a8_mov): Likewise. 1504 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise. 1505 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise. 1506 * config/arm/arm926ejs.md (9_alu_op): Likewise. 1507 * config/arm/arm1136jfs.md (11_alu_op): Likewise. 1508 * config/arm/arm1026ejs.md (alu_op): Likewise. 1509 15102012-11-30 Richard Biener <rguenther@suse.de> 1511 1512 * tree-ssa-pre.c (get_expr_value_id): Do not allocate value-ids here. 1513 15142012-11-30 Richard Biener <rguenther@suse.de> 1515 1516 * tree-ssa-sccvn.c (run_scc_vn): Remove iteration propagating 1517 value_ids. 1518 15192012-11-30 Steven Bosscher <steven@gcc.gnu.org> 1520 1521 * coretypes.h (struct pretty_print_info): Make a coretype. 1522 (typedef pretty_printer): Likewise. 1523 * pretty-print.h (typedef pretty_printer): Not needed here anymore. 1524 * pretty-print.c (pp_write_text_as_dot_label_to_stream): New function. 1525 * rtl.h (str_pattern_slim): New prototype. 1526 (print_value, print_pattern, print_insn): Adjust prototypes to take 1527 a pretty-printer rather than a char buffer. 1528 * sched-vis.c (safe_concat): Remove. 1529 (print_exp): Print into a pretty-printer. 1530 (print_value): Likewise. 1531 (print_pattern): Likewise. 1532 (print_insn): Likewise. 1533 (print_insn_with_notes): New static function. 1534 (init_rtl_slim_pretty_print): New function. 1535 (dump_value_slim): Simplify. Print into and flush a pretty-printer. 1536 (dump_insn_slim): Likewise. 1537 (dump_rtl_slim): Likewise. 1538 (str_pattern_slim): New function. 1539 * haifa-sched.c (model_recompute): Use str_pattern_slim instead of 1540 static buffers. 1541 (model_record_pressures): Likewise. 1542 (schedule_insn): Likewise. 1543 * sel-sched-dump.c (dump_insn_rtx_1): Likewise. 1544 (sel_prepare_string_for_dot_label): Refer to graph.c CFG dumper code. 1545 * graph.c: Include pretty-print.h. 1546 (init_graph_slim_pretty_print): New function. 1547 (print_escaped_line): Removed here, and reincarnated as 1548 pp_write_text_as_dot_label_to_stream. 1549 (draw_cfg_node): Print into a pretty printer. 1550 (draw_cfg_node_succ_edges): Likewise. 1551 (print_rtl_graph_with_bb): Likewise. 1552 * Makefile.in (graph.o): Fix dependencies. 1553 (tree-optimize.o, toplev.o, sched-vis.o): Likewise. 1554 15552012-11-30 Jakub Jelinek <jakub@redhat.com> 1556 1557 * tsan.c (is_load_of_const_p): Removed. 1558 (instrument_expr): Use result of get_inner_reference 1559 instead of get_base_address, avoid some unnecessary tests, 1560 use !pt_solution_includes and !may_be_aliased tests to 1561 check whether base might escape current function. 1562 15632012-11-30 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 1564 1565 * gensupport.c (maybe_eval_c_test): Remove not-null check for expr. 1566 * read-rtl.c (apply_iterators): Initialize condition with "" instead 1567 of NULL. 1568 15692012-11-30 Kai Tietz <ktietz@redhat.com> 1570 1571 * config/i386/host-mingw32.c (va_granularity): Make none-const. 1572 (mingw32_gt_pch_alloc_granularity): Return OS' allocation granularity. 1573 (mingw32_gt_pch_use_address): Retry mapping of used address 1574 as multiple instances might interfer. 1575 1576 * config/i386/mingw32.h (SHARED_LIBGCC_SPEC): Synchronize with 1577 cygwin-host. 1578 15792012-11-29 Eric Botcazou <ebotcazou@adacore.com> 1580 1581 PR middle-end/55321 1582 * calls.c (emit_library_call_value_1): Mark as no-nonlocal if no-throw. 1583 15842012-11-29 Vladimir Makarov <vmakarov@redhat.com> 1585 1586 PR middle-end/55456 1587 * lra-int.h (lra_new_regno_start): New external. 1588 * lra.c (lra_new_regno_start): New global. 1589 (lra): Set up lra_new_regno_start. 1590 * lra-constraints.c (match_reload): Sync values only for original 1591 pseudos. 1592 15932012-11-29 Kai Tietz <ktietz@redhat.com> 1594 1595 PR target/53912 1596 * prefix.c (lookup_key): Replace xmalloc/xrealloc 1597 use by XNEWVEC/XRESIZEVEC. 1598 15992012-11-29 Richard Earnshaw <rearnsha@arm.com> 1600 1601 PR target/55073 1602 * config/arm/neon.md (neon_vtrn<mode>_internal): Split into expand 1603 and insn patterns. Re-order insn arguments to tie inputs to outputs. 1604 (neon_vzip<mode>_internal): Likewise. 1605 (neon_vuzp<mode>_internal): Likewise. 1606 16072012-11-29 Marc Glisse <marc.glisse@inria.fr> 1608 1609 PR c++/53094 1610 * fold-const.c (fold): Replace a CONSTRUCTOR with a VECTOR_CST. 1611 16122012-11-29 Richard Biener <rguenther@suse.de> 1613 1614 * tree-ssa-pre.c (get_expr_value_id): Do not add expr 1615 to the set of value expressions here. 1616 (add_to_exp_gen, make_values_for_phi): Fold into ... 1617 (compute_avail): ... here, and avoid useless work. Dump 1618 avail sets in processing order. 1619 (do_pre): Do not dump avail sets here. 1620 16212012-11-29 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> 1622 1623 PR target/54974 1624 * config/arm/arm.md (thumb2_pool_range, pool_range): Add comment on 1625 Thumb pool ranges. 1626 (thumb1_extendhisi2): Reduce Thumb pool range. 1627 (arm_movdi): Likewise. 1628 (thumb1_movdi_insn): Likewise. 1629 (thumb1_movsi_insn): Likewise. 1630 (pic_load_addr_unified): Likewise. 1631 (pic_load_addr_32bit): Likewise. 1632 (pic_load_addr_thumb1): Likewise. 1633 (thumb1_movhf): Likewise. 1634 (arm_movsf_soft_insn): Likewise. 1635 (thumb1_movsf_soft_insn): Likewise. 1636 (movdf_soft_insn): Likewise. 1637 (thumb1_movdf_soft_insn): Likewise. 1638 * config/arm/neon.md (*neon_mov<mode>): Likewise. 1639 (*neon_mov<mode>): Likwise. 1640 * config/arm/thumb2.md: (*thumb2_movsi_insn): Likewise. 1641 (*thumb2_movhi_insn): Likewise. 1642 (*thumb2_extendqisi_v6): Likewise. 1643 (*thumb2_zero_extendqisi_v6): Likewise. 1644 (*thumb2_zero_extendqisi2_v6): Likewise. 1645 * config/arm/vfp.md: (*thumb2_movsi_vfp): Likewise. 1646 (*movdi_vfp): Likewise. 1647 (*movdi_vfp_cortexa8): Likewise. 1648 (*thumb2_movsf_vfp): Likewise. 1649 (*thumb2_movdf_vfp): Likewise. 1650 16512012-11-29 Kai Tietz <ktietz@redhat.com> 1652 1653 PR target/55171 1654 * config/i386/i386.c (get_scratch_register_on_entry): Handle 1655 thiscall-convention. 1656 (split_stack_prologue_scratch_regno): Likewise. 1657 (ix86_static_chain): Likewise. 1658 (x86_output_mi_thunk): Likewise. 1659 16602012-11-29 Marek Polacek <polacek@redhat.com> 1661 1662 * cprop.c (bypass_block): Improve debug message. 1663 16642012-11-29 Oleg Raikhman <oleg@adapteva.com> 1665 1666 * config/epiphany/epiphany.h (FIXED_REGISTERS, CALL_USED_REGISTERS): 1667 Make r40..r43 call-used. 1668 (REG_ALLOC_ORDER): Sort r40..r43 into the call-used registers. 1669 16702012-11-29 Joern Rennecke <joern.rennecke@embecosm.com> 1671 1672 * config/epiphany/predicates.md (addsub_operator): New predicate. 1673 * config/epiphany/epiphany-sched.md (sched_use_fpu): New attribute. 1674 * config/epiphany/epiphany.md (isub_i+1): New peephole2. 1675 * config/epiphany/epiphany-protos.h (get_attr_sched_use_fpu): Declare. 1676 1677 * config/epiphany/epiphany.h (EPIPHANY_LIBRARY_EXTRA_SPEC): Define. 1678 (EXTRA_SPECS, DRIVER_SELF_SPECS): Likewise. 1679 * config/epiphany/t-epiphany (SPECS): Set. 1680 (specs): New rule. 1681 1682 * config/epiphany/epiphany.md (isub_i+1): Work around generator bug. 1683 1684 * config/epiphany/epiphany.c (epiphany_adjust_cost): Use 1685 reg_overlap_mentioned_p. 1686 16872012-11-28 Jakub Jelinek <jakub@redhat.com> 1688 1689 PR debug/36728 1690 PR debug/55467 1691 PR middle-end/55507 1692 PR bootstrap/55511 1693 * cselib.c (cselib_process_insn): If cselib_preserve_constants, 1694 don't reset table and exit early on volatile insns and setjmp. 1695 Reset table afterwards on setjmp. 1696 16972012-11-28 Andrew Pinski <apinski@cavium.com> 1698 1699 PR bootstrap/54279 1700 * Makefile.in (${QMTEST_DIR}/context): Use xg++ instead of g++. 1701 17022012-11-28 Richard Sandiford <rdsandiford@googlemail.com> 1703 1704 PR rtl-optimization/55052 1705 * simplify-rtx.c (simplify_subreg): Restore SCALAR_INT_MODE_P check. 1706 17072012-11-28 David Edelsohn <dje.gcc@gmail.com> 1708 1709 * target.def (use_blocks_for_decl_p): New hook. 1710 * varasm.c (use_blocks_for_decl_p): Apply hook as final condition. 1711 * doc/tm.texi.in (USE_BLOCKS_FOR_DECL_P): New description. 1712 * doc/tm.texi: Regenerated. 1713 17142012-11-28 Richard Sandiford <rdsandiford@googlemail.com> 1715 1716 PR middle-end/55438 1717 * expmed.c (simple_mem_bitfield_p): New function, extracted from 1718 store_bit_field_1 and extract_bit_field_1. Use GET_MODE_ALIGNMENT 1719 rather than bitsize when checking the alignment. 1720 (store_bit_field_1, extract_bit_field_1): Call it. 1721 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): 1722 Don't limit ALIGN_. Assume that memory is mapped in chunks of at 1723 least word size, regardless of BIGGEST_ALIGNMENT. 1724 (bit_field_mode_iterator::get_mode): Use GET_MODE_ALIGNMENT rather 1725 than unit when checking the alignment. 1726 (get_best_mode): Use GET_MODE_ALIGNMENT. 1727 17282012-11-28 Vladimir Makarov <vmakarov@redhat.com> 1729 1730 PR rtl-optimization/55512 1731 * lra-assigns.c (assign_by_spills): Assigned arbitrary hard regs 1732 to failed reload pseudos instead of changing asm pattern. 1733 * lra-constraints.c (MAX_CONSTRAINT_ITERATION_NUMBER): Increase value. 1734 17352012-11-28 Markus Trippelsdorf <markus@trippelsdorf.de> 1736 1737 PR other/55358 1738 * dse.c (rest_of_handle_dse): Remove superfluous clearing. 1739 17402012-11-28 Joern Rennecke <joern.rennecke@embecosm.com> 1741 1742 * config/epiphany/predicates.md (move_double_src_operand): 1743 Check that misaligned addresses are offsettable. 1744 (move_dest_operand): Likewise. 1745 * config/epiphany/epiphany.c (REG_OK_FOR_BASE_P): Don't force a 1746 misaligned stack address to reg+index. 1747 1748 * config/epiphany/epiphany.opt (mfp-iarith): New option. 1749 * config/epiphany/epiphgany.md (addsi3): Check for TARGET_FP_IARITH. 1750 (subsi3, iadd, isub): Rename to .. 1751 (subsi3_i, iadd_i, isub_i): .. This. 1752 (subsi3, iadd, isub): New define_expands. 1753 1754 * config/epiphany/epiphgany.md (attribute type): Add v2fp. 1755 (attribute fp_mode): Test for v2fp. 1756 (<float_operation:insn_opname>v2sf3_i): Change type to v2fp. 1757 * config/epiphany/epiphany-sched.md (fp_arith_nearest, 1758 fp_arith_trunc): Combine to .. 1759 (fp_arith): .. this. 1760 (v2fp_arith): New insn reservation. 1761 1762 * config/epiphany/epiphgany.md (maddsi_combine): Fix output pattern. 1763 17642012-11-28 Oleg Raikhman <oleg@adapteva.com> 1765 1766 * config/epiphany/epiphany.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define. 1767 17682012-11-28 Joern Rennecke <joern.rennecke@embecosm.com> 1769 1770 * config/epiphany/epiphany.h (HARD_REGNO_RENAME_OK): Define. 1771 * config/epiphany/epiphany-protos.h (epiphany_regno_rename_ok): 1772 Declare. 1773 * config/epiphany/epiphany.c (epiphany_regno_rename_ok): New function. 1774 1775 * config/epiphany/epiphany.md (mov<mode>, *mov<mode>_insn): Check 1776 for misaligned memory operands. 1777 * config/epiphany/predicates.md (misaligned_operand): New predicate. 1778 1779 * config/epiphany/epiphany.opt (-may-round-for-trunc): New option. 1780 * config/epiphany/epiphany.md (*fix_truncsfsi2_i): Take it 1781 into account. 1782 17832012-11-28 Richard Biener <rguenther@suse.de> 1784 1785 PR tree-optimization/54547 1786 * tree-vrp.c (set_and_canonicalize_value_range): Handle 1787 1-bit anti-ranges explicitely. 1788 (extract_range_from_assert): Properly canonicalize all 1789 built anti-ranges. 1790 17912012-11-28 Eric Botcazou <ebotcazou@adacore.com> 1792 1793 * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not clear TREE_OVERFLOW 1794 on overflowed zeroes, except in one specific case. 1795 17962012-11-28 Marc Glisse <marc.glisse@inria.fr> 1797 1798 PR middle-end/55266 1799 * fold-const.c (fold_ternary_loc) [BIT_FIELD_REF]: Handle 1800 CONSTRUCTOR with vector elements. 1801 * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle CONSTRUCTOR 1802 and BIT_FIELD_REF. 1803 18042012-11-28 Richard Biener <rguenther@suse.de> 1805 1806 PR c/35634 1807 * gimple.h (gimplify_self_mod_expr): Declare. 1808 * gimplify.c (gimplify_self_mod_expr): Export. Take a different 1809 type for performing the arithmetic in. 1810 (gimplify_expr): Adjust. 1811 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Strip 1812 sign conversions we can re-apply after adjusting the IV. 1813 18142012-11-28 Steven Bosscher <steven@gcc.gnu.org> 1815 1816 PR rtl-optimization/55006 1817 * loop-unroll.c (struct iv_to_split): Add new 'orig_var' member. 1818 (analyze_iv_to_split_insn): Record it. 1819 (maybe_strip_eq_note_for_split_iv): New function to remove REG_EQUAL 1820 notes that refer to IVs that are being split. 1821 (apply_opt_in_copies): Use maybe_strip_eq_note_for_split_iv. Twice. 1822 Use FOR_BB_INSNS_SAFE. 1823 18242012-11-27 Steven Bosscher <steven@gcc.gnu.org> 1825 1826 * rtl.h (debug_bb_n_slim, debug_bb_slim, debug_insn_slim): Remove 1827 prototypes. 1828 (debug_rtl_slim): Rename to dump_rtl_slim. 1829 (print_value_slim): Rename to dump_value_slim. 1830 * ira.c (ira_update_equiv_info_by_shuffle_insn): Update 1831 print_value_slim user. 1832 * lra.c (lra_process_new_insns): Use dump_insn_slim to dump single 1833 insns. Use dump_rtl_slim for insn chains. 1834 * lra-constraints.c (get_reload_reg): Update print_value_slim user. 1835 (process_addr_reg): Likewise. 1836 (equiv_address_substitution): Likewise. 1837 (inherit_reload_reg): Likewise. Use dump_insn_slim to dump single 1838 insns. 1839 (check_and_process_move): Likewise. 1840 (lra_constraints): Likewise. 1841 (split_reg): Likewise. 1842 (update_ebb_live_info): Likewise. 1843 (remove_inheritance_pseudos): Likewise. 1844 * sched-vis.c: Don't include sched-int.h. 1845 Remove #ifdef INSN_SCHEDULING tests. 1846 (print_value_slim): Rename to dump_value_slim. Simplify a few 1847 cases using GET_RTX_NAME. 1848 (print_pattern): Do not handle UNSPEC and UNSPECV here, explain why. 1849 (print_insn): Reorganize code to be independent of INSN_SCHEDULING. 1850 Always print CALL_INSN patterns. Harmonize INSN_UID dumping template. 1851 Handle NOTE_INSN_CALL_ARG_LOCATION. 1852 (dump_rtl_slim): Copied from debug_rtl_slim. 1853 (debug_rtl_slim): Wrapper around dump_rtl_slim to stderr. 1854 * haifa-sched.c (schedule_insn): Update print_insn user. 1855 18562012-11-27 Vladimir Makarov <vmakarov@redhat.com> 1857 1858 PR rtl-optimization/55458 1859 * lra-assigns.c: Include rtl-error.h. 1860 (assign_by_spills): Report about asm impossible constraints. 1861 * Makefile.in (lra-assigns.c): Add $(RTL_ERROR_H). 1862 18632012-11-27 Paolo Bonzini <pbonzini@redhat.com> 1864 1865 PR rtl-optimization/55489 1866 * gcse.c (compute_transp): Precompute a canonical version 1867 of XEXP (x, 0), and pass it to canon_true_dependence. 1868 1869 * alias.c (init_alias_analysis): Fix allocation of reg_known_value. 1870 18712012-11-27 Diego Novillo <dnovillo@google.com> 1872 1873 * vec.h: Replace 'class vec' with 'struct vec' everywhere. 1874 (ggc_internal_cleared_alloc_stat): Remove. 1875 (va_gc::reserve): Add PASS_MEM_STAT to ggc_realloc_stat call. 1876 (va_stack::reserve): Add PASS_MEM_STAT to va_heap::reserve call. 1877 (vec<T, A, vl_embed>::copy): Replace ALONE_MEM_STAT_DECL with 1878 ALONE_CXX_MEM_STAT_INFO. 1879 (vec_safe_reserve): Replace MEM_STAT_DECL with CXX_MEM_STAT_INFO. 1880 (vec_safe_reserve_exact): Likewise. 1881 (vec_alloc): Likewise. 1882 (vec_safe_grow): Likewise. 1883 (vec_safe_grow_cleared): Likewise. 1884 (vec_safe_push): Likewise. 1885 (vec_safe_insert): Likewise. 1886 (vec_safe_splice): Likewise. 1887 (vec_alloc): Likewise. 1888 (vec_check_alloc): Likewise. 1889 18902012-11-27 Marc Glisse <marc.glisse@inria.fr> 1891 1892 * tree-cfg.c (verify_gimple_comparison): Verify that vector 1893 comparison returns a vector. 1894 18952012-11-27 Meador Inge <meadori@codesourcery.com> 1896 1897 * collect2.c (main): Call find_file_set_debug. 1898 (find_a_find, add_prefix, prefix_from_env, prefix_from_string): 1899 Factor out into ... 1900 * file-find.c (New file): ... here and ... 1901 * file-find.h (New file): ... here. 1902 * gcc-ar.c (standard_exec_prefix): New variable. 1903 (standard_libexec_prefix): Ditto. 1904 (tooldir_base_prefix) Ditto. 1905 (self_exec_prefix): Ditto. 1906 (self_libexec_prefix): Ditto. 1907 (self_tooldir_prefix): Ditto. 1908 (target_version): Ditto. 1909 (path): Ditto. 1910 (target_path): Ditto. 1911 (setup_prefixes): New function. 1912 (main): Rework how wrapped programs are found. 1913 * Makefile.in (OBJS-libcommon-target): Add file-find.o. 1914 (AR_OBJS): New variable. 1915 (gcc-ar$(exeext)): Add dependency on $(AR_OBJS). 1916 (gcc-nm$(exeext)): Ditto. 1917 (gcc-ranlib(exeext)): Ditto. 1918 (COLLECT2_OBJS): Add file-find.o. 1919 (collect2.o): Add file-find.h prerequisite. 1920 (file-find.o): New rule. 1921 19222010-11-27 Dehao Chen <dehao@google.com> 1923 1924 * ipa-prop.c (ipa_modify_call_arguments): Set loc correctly. 1925 * emit-rtl.c (last_location): Remove unused variable. 1926 19272012-11-27 Uros Bizjak <ubizjak@gmail.com> 1928 1929 * config/i386/i386.md 1930 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387 splitters): Remove 1931 unneeded temporary. 1932 19332012-11-27 Dehao Chen <dehao@google.com> 1934 1935 * cfgrtl.c (rtl_merge_blocks): Check with UNKNOWN_LOCATION correctly. 1936 (cfg_layout_merge_blocks): Likewise. 1937 19382012-11-27 Jakub Jelinek <jakub@redhat.com> 1939 1940 * passes.c (init_optimization_passes): Add pass_asan and pass_tsan 1941 to -Og optimization passes. 1942 19432012-11-27 H.J. Lu <hongjiu.lu@intel.com> 1944 Markus Trippelsdorf <markus@trippelsdorf.de> 1945 1946 PR lto/54795 1947 * lto-opts.c (lto_write_options): Also handle 1948 OPT_SPECIAL_unknown, OPT_SPECIAL_ignore and 1949 OPT_SPECIAL_program_name. 1950 1951 PR lto/55474 1952 * lto-wrapper.c (merge_and_complain): Handle 1953 OPT_SPECIAL_unknown, OPT_SPECIAL_ignore, 1954 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file. 1955 19562012-11-27 Jakub Jelinek <jakub@redhat.com> 1957 1958 PR middle-end/52650 1959 * function.c (instantiate_virtual_regs_in_insn): Don't delete invalid 1960 asm gotos, instead just clear their template and inputs. 1961 1962 PR tree-optimization/55110 1963 * tree-vect-loop.c (vectorizable_reduction): Don't assert 1964 that STMT_VINFO_RELATED_STMT of orig_stmt is stmt. 1965 19662012-11-27 Richard Biener <rguenther@suse.de> 1967 1968 * gimple-fold.c (fold_stmt_1): Remove unnecessary code. 1969 19702012-11-27 Bin Cheng <bin.cheng@arm.com> 1971 1972 * config/arm/arm.c (thumb1_reorg): New function. 1973 (arm_reorg): Call thumb1_reorg. 1974 (thumb1_final_prescan_insn): Record src operand in thumb1_cc_op0. 1975 * config/arm/arm.md : Remove peephole2 patterns which rewrite move 1976 into subtract of ZERO. 1977 19782012-11-27 Richard Biener <rguenther@suse.de> 1979 1980 PR middle-end/55331 1981 * gimple-fold.c (gimplify_and_update_call_from_tree): Replace 1982 stmt with a NOP instead of removing it. 1983 19842012-11-27 Steven Bosscher <steven@gcc.gnu.org> 1985 1986 * loop-invariant.c (check_invariant_table_size): Take sizeof of 1987 the right type. 1988 1989 * reorg.c (resource_conflicts_p): Use hard_reg_set_intersect_p. 1990 (rare_destination): Remove. 1991 (mostly_true_jump): Simplify. Base result on REG_BR_PROP notes if 1992 available, otherwise assume branches are not taken. 1993 (fill_eager_delay_slots): Update mostly_true_jump call. 1994 (relax_delay_slots): Likewise. 1995 19962012-11-26 Eric Botcazou <ebotcazou@adacore.com> 1997 1998 * reorg.c (redundant_insn): Do not handle DEBUG_INSNs. 1999 20002012-11-26 Vladimir Makarov <vmakarov@redhat.com> 2001 2002 PR target/55277 2003 * lra-constraints.c (in_class_p): Check reg class contents too. 2004 20052012-11-26 James Greenhalgh <james.greenhalgh@arm.com> 2006 2007 * config/aarch64/aarch64-builtins.c (aarch64_builtin_decls): New. 2008 (aarch64_init_simd_builtins): Store declaration after builtin 2009 initialisation. 2010 (aarch64_builtin_decl): New. 2011 * config/aarch64/aarch64-protos.h (aarch64_builtin_decl): New. 2012 * config/aarch64/aarch64.c (TARGET_BUILTIN_DECL): Define. 2013 20142012-11-26 Steven Bosscher <steven@gcc.gnu.org> 2015 2016 * doc/invoke.texi: Remove -dv documentation. Fix up graph dump related 2017 documentation. Document the '-graph' dump option. Complete the '-slim' 2018 dump option documentation. 2019 2020 * common.opt (Variable graph_dump_format): Remove. 2021 * flag-types.h (enum graph_dump_types): Remove. 2022 * flags.h (dump_for_graph): Remove. 2023 * opts.c (decode_d_option): Remove -dv handling. 2024 * sched-int.h (print_insn, print_pattern, print_value): Move prototypes 2025 from here ... 2026 * rtl.h: ...to here. Add note that these functions ought to be in 2027 another file. 2028 * sched-vis.c (print_insn): Add detailed dump for insn notes. 2029 * print-rtl.c (dump_for_graph): Remove. 2030 (print_rtx): Remove dump_for_graph related code. 2031 * graph.c: Almost complete re-write to dump DOT (GraphViz) dumps 2032 instead of VCG dumps. 2033 * graph.h (print_rtl_graph_with_bb): Update prototype. 2034 * passes.c (finish_optimization_passes): Fix profile dump finishing. 2035 Unconditionally loop over graph dumps to finalize. 2036 (execute_function_dump): Split code to dump graphs to separate block. 2037 (execute_one_pass): Don't set TDF_GRAPH here, let the dump option 2038 decoders do their job. 2039 2040 * ddg.c (vcg_print_ddg): Make it a DEBUG_FUNCTION. 2041 * toplev.c: Don't include graph.h. 2042 * tree-optimize.c: Don't include graph.h. 2043 20442012-11-26 Marek Polacek <polacek@redhat.com> 2045 2046 * cprop.c (hash_set): Remove variable. Use regno variable directly. 2047 20482012-11-26 Eric Botcazou <ebotcazou@adacore.com> 2049 2050 * tree.h (DECL_RESTRICTED_P): Delete. 2051 (DECL_READ_P): Add comment. 2052 (DECL_NONSHAREABLE): Likewise. 2053 (TYPE_NO_FORCE_BLK): Fix comment. 2054 (struct tree_decl_common): Remove decl_restricted_flag, add decl_flag_3. 2055 * tree-emutls.c (new_emutls_decl): Do not deal with DECL_RESTRICTED_P. 2056 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise. 2057 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. 2058 2059 * alias.c (nonoverlapping_component_refs_p): Fix thinko. 2060 20612012-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2062 2063 * doc/sourcebuild.texi: Document arm_v8_vfp_ok. 2064 20652012-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2066 2067 * config/arm/arm.h (TARGET_FPU_ARMV8): New macro. 2068 * config/arm/arm.md (UNSPEC_VRINTZ, UNSPEC_VRINTP, UNSPEC_VRINTM) 2069 (UNSPEC_VRINTR, UNSPEC_VRINTX, UNSPEC_VRINTA): New unspecs. 2070 (f_rints, f_rintd): New types. 2071 * config/arm/iterators.md (VRINT): New int iterator. 2072 (F_fma_type): Remove. 2073 (vfp_type): New mode attribute. 2074 (vfp_double_cond): Likewise. 2075 (vrint_pattern, vrint_variant, vrint_predicable): New int attribute. 2076 * config/arm/vfp.md (fma<SDF:mode>4): Use vfp_type iterator 2077 instead of F_fma_type. 2078 (*fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4): Likewise. 2079 (<vrint_pattern><SDF:mode>2): New pattern. 2080 20812012-11-26 Eric Botcazou <ebotcazou@adacore.com> 2082 2083 * fold-const.c (const_binop): Adjust comment. 2084 (extract_muldiv_1): Likewise. 2085 (fold_comparison): Likewise. 2086 * stor-layout.c (place_field): Fix typo. 2087 * tree.c (double_int_fits_to_tree_p): Remove obsolete comment. 2088 (force_fit_type_double): Likewise. Fix long line. 2089 20902012-11-26 Greta Yorsh <Greta.Yorsh@arm.com> 2091 2092 * config/arm/arm.h (TARGET_LDRD): Reject Thumb1 targets. 2093 20942012-11-26 Matthias Klose <doko@ubuntu.com> 2095 2096 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix unbalanced 2097 parentheses. 2098 20992012-11-26 Jakub Jelinek <jakub@redhat.com> 2100 2101 PR tree-optimization/54471 2102 * tree-vrp.c (extract_range_from_binary_expr_1): For MULT_EXPR, 2103 don't canonicalize range if min2 is zero. 2104 21052012-11-26 Hans-Peter Nilsson <hp@bitrange.com> 2106 2107 PR middle-end/55030 2108 * builtins.c (expand_builtin_setjmp_receiver): Update comment 2109 regarding purpose of blockage. 2110 * emit-rtl.c [!HAVE_blockage] (gen_blockage): Similarly for 2111 the head comment. 2112 * rtlanal.c (volatile_insn_p): Ditto. 2113 * doc/md.texi (blockage): Update similarly. Change wording to 2114 require one of two forms, rather than implying a wider choice. 2115 * cse.c (cse_insn): Where checking for blocking insns, use 2116 volatile_insn_p instead of manual check for volatile ASM. 2117 * dse.c (scan_insn): Ditto. 2118 * cselib.c (cselib_process_insn): Ditto. 2119 21202012-11-25 Uros Bizjak <ubizjak@gmail.com> 2121 2122 * config/i386/sse.md (<sse>_loadu<ssemodesuffix><avxsizesuffix>): 2123 Do not depend on TARGET_SSE_TYPELESS_STORES. 2124 (<sse2>_loaddqu<avxsizesuffix>): Ditto. 2125 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Fix handling of 2126 TARGET_SSE_TYPELESS_STORES. 2127 (<sse2>_storedqu<avxsizesuffix>): Ditto. 2128 21292012-11-25 Steven Bosscher <steven@gcc.gnu.org> 2130 2131 * doc/tm.texi.in (DELAY_SLOTS_FOR_EPILOGUE): Remove documentation. 2132 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. 2133 * doc/tm.texi: Regenerate. 2134 * reorg.c (fill_simple_delay_slots): Remove code conditional on 2135 DELAY_SLOTS_FOR_EPILOGUE being defined. 2136 (make_return_insns, dbr_schedule): Likewise. 2137 * system.h (DELAY_SLOTS_FOR_EPILOGUE): Poison. 2138 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. 2139 21402012-11-24 Jack Howarth <howarth@bromo.med.uc.edu> 2141 2142 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fsanitize=address. 2143 21442012-11-24 Matthias Klose <doko@ubuntu.com> 2145 2146 * configure.ac (multiarch): Use $enableval instead of $withval. 2147 * configure: Regenerate. 2148 * config/i386/t-kfreebsd (MULTILIB_OSDIRNAMES): Filter out x32. 2149 * gcc/config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use 2150 x86_64-linux-gnux32 as multiarch name for x32. 2151 21522012-11-23 Tobias Burnus <burnus@net-b.de> 2153 2154 * doc/invoke.texi (-fsanitize=address): Remove obsolete remark. 2155 21562012-11-23 Jakub Jelinek <jakub@redhat.com> 2157 2158 PR c++/54046 2159 * Makefile.in (gimple-low.o): Depend on langhooks.h. 2160 * gimple-low.c: Include langhooks.c. 2161 (block_may_fallthru): Handle TARGET_EXPR and ERROR_MARK, 2162 by default call lang_hooks.block_may_fallthru. 2163 * langhooks.h (struct lang_hooks): Add block_may_fallthru langhook. 2164 * langhooks-def.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Define. 2165 (LANG_HOOKS_INITIALIZER): Use it. 2166 21672012-11-23 Jan Hubicka <jh@suse.cz> 2168 2169 * i386-c.c (ix86_target_macros_internal): Update handling of core 2170 chips. 2171 * i386.c (DUMMY_STRINGOP_ALGS): Update 2172 (*_cost): Update. 2173 (core_cost): Copy from generic64_cost; fix stringop descriptors. 2174 (m_CORE2_32, m_CORE2_64, m_COREI7_32, m_COREI7_64, m_CORE2I7_32, 2175 m_CORE2I7_64): Remove. 2176 (m_CORE2, m_COREI7, m_CORE2I7): Update. 2177 (initial_ix86_tune_features): Update. 2178 (processor_target): Update. 2179 (ix86_option_override_internal): Update. 2180 (ix86_option_override_internal): Remove PROCESSOR_CORE2_64, 2181 PROCESSOR_COREI7_64 special cases. 2182 (decide_alg): Add noalign parameter; set it. 2183 (ix86_expand_movmem, ix86_expand_setmem): Update noalign handling. 2184 (ix86_issue_rate): Update. 2185 (ia32_multipass_dfa_lookahead): Update. 2186 (ix86_sched_init_global): Update. 2187 (get_builtin_code_for_version): Update. 2188 * i386.h (stringop_strategy): Add noalign flag. 2189 (TARGET_CORE2_32, TARGET_CORE2_64, TARGET_COREI7_32, TARGET_COREI7_64): 2190 Remove. 2191 (TARGET_CORE2, TARGET_COREI7): New. 2192 (enum processor_type): Remove PROCESSOR_CORE2_32, PROCESSOR_CORE2_64, 2193 PROCESSOR_COREI7_32, PROCESSOR_COREI7_64; add PROCESSOR_CORE2, 2194 PROCESSOR_COREI7. 2195 21962012-11-23 Eric Botcazou <ebotcazou@adacore.com> 2197 2198 PR rtl-optimization/55388 2199 * alias.c (nonoverlapping_component_refs_p): Handle bitfields. 2200 * emit-rtl.c (adjust_address_1): Deal with VOIDmode early. 2201 * expmed.c (store_bit_field): Turn the call to adjust_address 2202 into a call to adjust_bitfield_address_size. 2203 22042012-11-23 Vladimir Makarov <vmakarov@redhat.com> 2205 2206 * lra.c (lra): Move init_reg_info and expand_reg_info calls before 2207 init_insn_recog_data. 2208 22092012-11-23 Jakub Jelinek <jakub@redhat.com> 2210 2211 * tsan.c: Fix up comment formatting. 2212 (instrument_gimple): Ignore gimple_clobber_p stmts. 2213 (pass_tsan, pass_tsan_O0): Remove TODO_update_address_taken 2214 from todo_flags_finish. 2215 2216 PR sanitizer/55435 2217 * asan.c (gate_asan): Don't instrument functions with 2218 no_address_safety_analysis attribute. 2219 (gate_asan_O0): Use !optimize && gate_asan (). 2220 * doc/extend.texi (no_address_safety_analysis): Document new 2221 function attribute. 2222 22232012-11-22 Teresa Johnson <tejohnson@google.com> 2224 Jan Hubicka <jh@suse.cz> 2225 2226 * predict.c (maybe_hot_count_p): Use threshold from profiled working 2227 set instead of hard limit. 2228 (cgraph_maybe_hot_edge_p): Invoke maybe_hot_count_p() instead of 2229 directly checking limit. 2230 * params.def (HOT_BB_COUNT_FRACTION): Remove. 2231 (HOT_BB_COUNT_WS_PERMILLE): New parameter. 2232 * doc/invoke.texi (hot-bb-count-fraction): Remove. 2233 (hot-bb-count-ws-permille): Document. 2234 22352012-11-22 Vladimir Makarov <vmakarov@redhat.com> 2236 2237 PR middle-end/55430 2238 * lra.c: Move #include "hard-reg-set.h" before #include "rtl.h". 2239 (new_insn_reg): Update biggest_mode. 2240 (collect_non_operand_hard_regs): Check eliminable regs too. 2241 (initialize_lra_reg_info_element): Initialize biggest_mode. 2242 (add_regs_to_insn_regno_info): Ignore non-allocatable 2243 non-eliminable hard regs. 2244 (lra.c): Move setting lra_no_alloc_regs before 2245 init_insn_recog_data. 2246 * lra-constraints.c (simplify_operand_subreg): Add a comment. 2247 (lra_constraints): Ignore equivalent memory of 2248 regs occuring in paradoxical subregs. 2249 * lra-lives.c (lra_create_live_ranges): Add a comment. 2250 22512012-11-22 Dmitry Vyukov <dvyukov@google.com> 2252 Wei Mi <wmi@google.com> 2253 2254 * builtins.def (DEF_SANITIZER_BUILTIN): Define tsan builtins. 2255 * sanitizer.def: Ditto. 2256 * Makefile.in (tsan.o): Add tsan.o target. 2257 (BUILTINS_DEF): Add sanitizer.def. 2258 * passes.c (init_optimization_passes): Add tsan passes. 2259 * tree-pass.h (register_pass_info): Ditto. 2260 * toplev.c (compile_file): Ditto. 2261 * doc/invoke.texi: Document tsan related options. 2262 * gcc.c (LINK_COMMAND_SPEC): Add LIBTSAN_SPEC in link command if 2263 -fsanitize=thread. 2264 * tsan.c: New file about tsan. 2265 * tsan.h: Ditto. 2266 * common.opt: Add -fsanitize=thread. 2267 22682012-11-22 Uros Bizjak <ubizjak@gmail.com> 2269 2270 * doc/md.texi (RTL Templates Transformation): Use @pxref for 2271 cross-reference in parentheses. 2272 22732012-11-22 Marcus Shawcroft <marcus.shawcroft@arm.com> 2274 2275 * doc/md.texi (AArch64 family): Remove Utf. 2276 22772012-11-22 Uros Bizjak <ubizjak@gmail.com> 2278 2279 * config/i386/i386.md (*jcc<mode>_0_i387): Macroize insn 2280 from *fp_jcc_3_387 using X87MODEF mode iterator. 2281 (*jcc<mode>_0_r_i387): New. 2282 (*jccxf_i387): Ditto. 2283 (*jccxf_r_i387): Ditto. 2284 (*jcc<mode>_i387): Macroize insn from *fp_jcc_1_387 using 2285 MODEF mode iterator. 2286 (*jcc<mode>_r_i387): Macroize insn from *fp_jcc_1r_387 using 2287 MODEF mode iterator. 2288 (*jccu<mode>_i387): Macroize insn from *fp_jcc_2_387 using 2289 X87MODEF mode iterator. 2290 (*jccu<mode>_r_i387): Macroize insn from *fp_jcc_2r_387 using 2291 X87MODEF mode iterator. 2292 (*jcc{,u}<mode>_i387 splitters): Macroize splitters using 2293 X87MODEF mode iterator. 2294 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Macroize insn 2295 from *fp_jcc_4_<mode>_387 using X87MODEF mode iterator. 2296 (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): New. 2297 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387 splitters): Macroize 2298 splitters using X87MODEF and SWI24 mode iterators. 2299 23002012-11-22 Uros Bizjak <ubizjak@gmail.com> 2301 2302 * config/i386/i386.md (FPCMP): New mode iterator. 2303 (unord): New mode attribute. 2304 (*cmp<mode>_0_i387): Macroize insn from *cmpfp_0 2305 using X87MODEF mode iterator. 2306 (*cmp<mode>_0_cc_i387): Macroize insn from *cmpfp_0_cc using 2307 X87MODEF mode iterator. 2308 (*cmpxf_i387): Rename from *cmpfp_xf. 2309 (*cmpxf_cc_i387): Rename from *cmpfp_xf_cc. 2310 (*cmp<mode>_i387): Rename from *cmpfp_<mode>. 2311 (*cmp<mode>_cc_i387): Rename from *cmpfp_<mode>_cc. 2312 (*cmpu<mode>_i387): Macroize insn from *cmpfp_u using X87MODEF 2313 mode iterator. 2314 (*cmpu<mode>_cc_i387): Macroize insn from *cmpfp_u_cc using X87MODEF 2315 mode iterator. 2316 (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): Macroize_insn from 2317 *cmpfp_<mode> using X87MODEF mode iterator. 2318 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Macroize_insn from 2319 *cmpfp_<mode>_cc using X87MODEF mode iterator. 2320 (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Macroize insn from 2321 *cmpfp_i{,u}_mixed using FPCMP and MODEF mode iterators. 2322 (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Macroize insn from 2323 *cmpfp_i{,u}_sse using FPCMP and MODEF mode iterators. 2324 (*cmpi<CCFPCMP:unord><X87MODEF:mode>_i387): Macroize insn from 2325 *cmpfp_i{,u}_387 using FPCMP and X87MODEF mode iterators. 2326 23272012-11-22 Ian Bolton <ian.bolton@arm.com> 2328 2329 * config/aarch64/aarch64.md (bswaphi2): New pattern. 2330 23312012-11-22 H.J. Lu <hongjiu.lu@intel.com> 2332 2333 PR sanitizer/55379 2334 * gcc.c (LINK_COMMAND_SPEC): Issue an error for -static with 2335 -fsanitize=address. 2336 23372012-11-22 H.J. Lu <hongjiu.lu@intel.com> 2338 2339 * gcc.c (ADD_STATIC_LIBASAN_LIBS): New macro. Defined 2340 with STATIC_LIBASAN_LIBS. 2341 (LIBASAN_SPEC): Add STATIC_LIBASAN_LIBS. 2342 * config/gnu-user.h (STATIC_LIBASAN_LIBS): New macro. 2343 23442012-11-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2345 2346 * config/arm/arm.md (*arm_abssi2): Define predicable attribute. 2347 (*arm_neg_abssi2): Likewise. 2348 * config/arm/thumb2.md (*thumb2_abssi2): Likewise. 2349 (*thumb2_neg_abssi2): Likewise. 2350 23512012-11-22 Jakub Jelinek <jakub@redhat.com> 2352 2353 * ree.c (struct ext_modified): Add ATTRIBUTE_PACKED. 2354 23552012-11-22 Georg-Johann Lay <avr@gjlay.de> 2356 2357 Adjust decimal point of signed accum mode to GCC default. 2358 2359 PR target/54222 2360 * config/avr/avr-modes.def (HA, SA, DA): Remove mode adjustments. 2361 (TA): Move decimal point one bit to the right. 2362 * config/avr/avr.c (avr_out_fract): Rewrite. 2363 23642012-11-21 Matthias Klose <doko@ubuntu.com> 2365 2366 * config/alpha/t-linux: New file; define MULTIARCH_DIRNAME. 2367 * config.gcc <alpha*-*-linux*> (tmake_file): Include alpha/t-linux. 2368 23692012-11-21 Matthias Klose <doko@ubuntu.com> 2370 2371 * config/m68k/t-linux: Define MULTIARCH_DIRNAME. 2372 23732012-11-21 Matthias Klose <doko@ubuntu.com> 2374 2375 * config/ia64/t-linux: New file; define MULTIARCH_DIRNAME. 2376 * config.gcc <ia64*-*-linux*> (tmake_file): Include ia64/t-linux. 2377 23782012-11-21 Vladimir Makarov <vmakarov@redhat.com> 2379 2380 PR rtl-optimization/55414 2381 * lra-constraints.c (Index): New function. 2382 (lra_constraints): Check dead equiv init insns. 2383 23842012-11-21 Richard Henderson <rth@redhat.com> 2385 2386 * config/alpha/alpha.md (extvmisaligndi): Rename from extv; update 2387 mode of operand 1; remove ancient extract_bit_field workaround. 2388 (insvmisaligndi): Rename from insv and update similarly. 2389 (extzvmisaligndi): Rename from extzv and update similarly; split out... 2390 (extzvdi): New expander. 2391 23922012-11-21 H.J. Lu <hongjiu.lu@intel.com> 2393 2394 * doc/cpp.texi: Document __SANITIZE_ADDRESS__. 2395 23962012-11-21 H.J. Lu <hongjiu.lu@intel.com> 2397 2398 PR c/55397 2399 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): 2400 Define __SANITIZE_ADDRESS__ for flag_asan. 2401 24022012-11-21 Wei Mi <wmi@google.com> 2403 2404 * common.opt: Change faddress-sanitizer to fsanitize=address. 2405 * toplev.c (process_options): Likewise. 2406 * gcc.c (LINK_COMMAND_SPEC): Likewise. 2407 * testsuite/lib/asan-dg.exp 2408 (check_effective_target_faddress_sanitizer): Likewise. 2409 (asan_init): Likewise. 2410 * doc/invoke.texi (-fsanitize=address): Document. 2411 24122012-11-21 Martin Jambor <mjambor@suse.cz> 2413 2414 * ipa-prop.h (struct ipa_node_params): Rename clone_for_all_contexts to 2415 do_clone_for_all_contexts. Update all uses. New flag 2416 is_all_contexts_clone. 2417 * ipa-cp.c (cgraph_edge_brings_value_p): Also consider the case when cs 2418 leads to the clone for all contexts. 2419 (perhaps_add_new_callers): Likewise. 2420 (decide_whether_version_node): Remove bogus !plats->aggs test. Set 2421 is_all_contexts_clone when cloning for all contexts. 2422 24232012-11-21 Martin Jambor <mjambor@suse.cz> 2424 2425 PR tree-optimization/55260 2426 * ipa-cp.c (intersect_aggregates_with_edge): New function. 2427 (find_aggregate_values_for_callers_subset): Part moved to the function 2428 above. Call it. 2429 (cgraph_edge_brings_all_agg_vals_for_node): Reimplemented using 2430 intersect_aggregates_with_edge. 2431 24322012-11-21 Matthias Klose <doko@ubuntu.com> 2433 2434 * config/s390/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES. 2435 24362012-11-21 Teresa Johnson <tejohnson@google.com> 2437 2438 PR gcov-profile/55417 2439 * profile.c (compute_working_sets): Check index first 2440 to avoid out-of-bounds array access. 2441 24422012-11-21 Matthias Klose <doko@ubuntu.com> 2443 2444 * config/aarch64/t-aarch64-linux: Define MULTIARCH_DIRNAME for 2445 linux target. 2446 24472012-11-21 Uros Bizjak <ubizjak@gmail.com> 2448 2449 * config/i386/i386.md 2450 (*float<SWI48x:mode><MODEF:mode>2_mixed_with_temp): Use SWI48 mode 2451 iterator instead of SWI48x. Update insn constraint. 2452 (*float<SWI48x:mode><MODEF:mode>2_mixed_interunit): Ditto. 2453 (*float<SWI48x:mode><MODEF:mode>2_mixed_nointerunit): Ditto. 2454 (*float<SWI48x:mode><MODEF:mode>2_sse_with_temp): Ditto. 2455 (*float<SWI48x:mode><MODEF:mode>2_sse_interunit): Ditto. 2456 (*float<SWI48x:mode><MODEF:mode>2_sse_nointerunit): Ditto. 2457 (*float<SWI48x:mode><MODEF:mode>2 splitters): Ditto. 2458 (lrint<MODEF:mode><SWI48x:mode>2): Ditto. 2459 24602012-11-21 Marcus Shawcroft <marcus.shawcroft@arm.com> 2461 2462 * Makefile.in (gengtype-lex.o): Add dependency on $(BCONFIG_H). 2463 24642012-11-21 Bin Cheng <bin.cheng@arm.com> 2465 2466 * config/arm/arm-cores.def (cortex-m1, cortex-m0) 2467 (cortex-m0plus): Use v6m. 2468 * config/arm/arm-protos.h (tune_params): Add 2469 logical_op_non_short_circuit. 2470 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune) 2471 (arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune) 2472 (arm_cortex_tune, arm_cortex_a15_tune, arm_cortex_a5_tune) 2473 (arm_cortex_a9_tune, arm_fa726te_tune): Set 2474 logical_op_non_short_circuit field. 2475 (arm_v6m_tune): New tune_params struct. 2476 * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. 2477 24782012-11-20 Matthias Klose <doko@ubuntu.com> 2479 2480 * configure.ac: Substitute `with_cpu'. 2481 * configure: Regenerate. 2482 * Makefile.in: Define `with_cpu'. 2483 * config/rs6000/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES. 2484 * config/rs6000/t-linux: New file; define MULTIARCH_DIRNAME. 2485 * config/rs6000/t-fprules (SOFT_FLOAT_CPUS): New macro. Add e300c2 2486 to the list. 2487 (MULTILIB_MATCHES_FLOAT): Define in terms of SOFT_FLOAT_CPUS. 2488 * config/rs6000/t-spe: Define MULTIARCH_DIRNAME. 2489 * config.gcc <powerpc-*-linux* | powerpc64-*-linux*> (tmake_file): 2490 Include rs6000/t-linux for 32bit non-biarch configurations. 2491 24922012-11-20 Matthias Klose <doko@ubuntu.com> 2493 2494 * doc/install.texi: Move multiarch paragraph out of multilib 2495 documentation. 2496 24972012-11-20 Matthias Klose <doko@ubuntu.com> 2498 2499 * config/arm/t-linux-eabi: Define MULTIARCH_DIRNAME for linux target. 2500 25012012-11-20 Richard Sandiford <rdsandiford@googlemail.com> 2502 2503 * stor-layout.c (bit_field_mode_iterator::next_mode): Fix signedness. 2504 25052012-11-20 Vladimir Makarov <vmakarov@redhat.com> 2506 2507 PR rtl-optimization/55396 2508 * lra-constraints.c (get_reload_reg): Change class if it is 2509 different from reg class. 2510 25112012-11-20 Jakub Jelinek <jakub@redhat.com> 2512 2513 * vec.h (class vec_prefix): Change into struct. 2514 Rename field alloc_PRIVATE_ back to alloc_. 2515 Rename field num_PRIVATE_ to num_. 2516 Update all users. 2517 (class vec<T, A, vl_embed>): Rename field pfx_PRIVATE_ to vecpfx_. 2518 Rename field data_PRIVATE_ to vecdata_. 2519 Update all users. 2520 (class vec<T, A, vl_ptr>): Make every field public. 2521 Rename field vec_PRIVATE_ back to vec_. 2522 Update all users. 2523 25242012-11-20 Richard Sandiford <rdsandiford@googlemail.com> 2525 2526 PR middle-end/55403 2527 PR middle-end/55391 2528 * expmed.c (store_bit_field_1): Use adjust_bitfield_address_size 2529 rather than adjust_bitfield_address to change the mode of a reference. 2530 (extract_bit_field_1): Likewise. 2531 25322012-11-20 Michael Meissner <meissner@linux.vnet.ibm.com> 2533 2534 * config/rs6000/rs6000.md (movdf_hardfloat32): Add a comment 2535 explaining the register ordering preferences. 2536 25372012-11-20 Aldy Hernandez <aldyh@redhat.com> 2538 2539 PR tree-optimization/55350 2540 * gimple-ssa-strength-reduction.c (replace_dependent): Handle 2541 POINTER_PLUS_EXPR correctly. 2542 25432012-11-20 Uros Bizjak <ubizjak@gmail.com> 2544 2545 * config/i386/i386.md (fix_trunc<MODEF:mode><SWI48:mode>_sse): Macroize 2546 insn from fix_trunc<mode>{si,di}_sse using SWI48 mode iterator. 2547 (peephole2 to avoid vector decoded forms): Macroize peephole2 2548 using MODEF mode iterator. Use SWI48 mode iterator instead of SWI48x. 2549 25502012-11-20 Uros Bizjak <ubizjak@gmail.com> 2551 2552 PR target/19398 2553 * config/i386/i386.md 2554 (peephole2 to shorten x87->SSE reload sequences): Remove peephole2. 2555 * config/i386/i386.h (enum ix86_tune_indices) 2556 <IX86_TUNE_SHORTEN_X87_SSE>: Remove. 2557 (TARGET_SHORTEN_X87_SSE): Remove. 2558 * config/i386/i386.c (initial_ix86_tune_features): Update. 2559 25602012-11-20 Vladimir Makarov <vmakarov@redhat.com> 2561 2562 PR target/19398 2563 * lra-constraints.c (process_alt_operands): Discourage reloads 2564 through secondary memory. 2565 25662012-11-20 David Edelsohn <dje.gcc@gmail.com> 2567 2568 * config/rs6000/rs6000.md (largetoc_low): Revert. 2569 (largetoc_low_aix<mode>): New. 2570 25712012-11-20 Diego Novillo <dnovillo@google.com> 2572 Jakub Jelinek <jakub@redhat.com> 2573 2574 * vec.h (struct vnull): Declare. 2575 (vNULL): Declare. 2576 * vec.c (vNULL): Define. 2577 * bb-reorder.c: Replace all vec<T, A>() initializers with vNULL. 2578 * cfgexpand.c: Likewise. 2579 * cfgloop.c: Likewise. 2580 * cfgloopanal.c: Likewise. 2581 * cfgloopmanip.c: Likewise. 2582 * cgraph.c: Likewise. 2583 * config/c6x/c6x.c: Likewise. 2584 * config/i386/i386.c: Likewise. 2585 * df-core.c: Likewise. 2586 * dominance.c: Likewise. 2587 * dwarf2out.c: Likewise. 2588 * except.c: Likewise. 2589 * function.c: Likewise. 2590 * gcse.c: Likewise. 2591 * genautomata.c: Likewise. 2592 * graphds.c: Likewise. 2593 * graphite-scop-detection.c: Likewise. 2594 * graphite.c: Likewise. 2595 * haifa-sched.c: Likewise. 2596 * ifcvt.c: Likewise. 2597 * ipa-cp.c: Likewise. 2598 * ipa-inline-analysis.c: Likewise. 2599 * ipa-inline-transform.c: Likewise. 2600 * ipa-inline.c: Likewise. 2601 * ipa-prop.c: Likewise. 2602 * ipa-split.c: Likewise. 2603 * ipa-utils.c: Likewise. 2604 * ira-build.c: Likewise. 2605 * lto-cgraph.c: Likewise. 2606 * lto-streamer-in.c: Likewise. 2607 * lto-symtab.c: Likewise. 2608 * opts-global.c: Likewise. 2609 * passes.c: Likewise. 2610 * ree.c: Likewise. 2611 * sched-deps.c: Likewise. 2612 * sel-sched-ir.c: Likewise. 2613 * sel-sched-ir.h: Likewise. 2614 * sel-sched.c: Likewise. 2615 * stor-layout.c: Likewise. 2616 * trans-mem.c: Likewise. 2617 * tree-call-cdce.c: Likewise. 2618 * tree-cfg.c: Likewise. 2619 * tree-data-ref.c: Likewise. 2620 * tree-diagnostic.c: Likewise. 2621 * tree-eh.c: Likewise. 2622 * tree-loop-distribution.c: Likewise. 2623 * tree-predcom.c: Likewise. 2624 * tree-ssa-loop-im.c: Likewise. 2625 * tree-ssa-loop-ivcanon.c: Likewise. 2626 * tree-ssa-loop-manip.c: Likewise. 2627 * tree-ssa-loop-niter.c: Likewise. 2628 * tree-ssa-loop-prefetch.c: Likewise. 2629 * tree-ssa-math-opts.c: Likewise. 2630 * tree-ssa-phiopt.c: Likewise. 2631 * tree-ssa-pre.c: Likewise. 2632 * tree-ssa-propagate.c: Likewise. 2633 * tree-ssa-reassoc.c: Likewise. 2634 * tree-ssa-sccvn.c: Likewise. 2635 * tree-ssa-structalias.c: Likewise. 2636 * tree-ssa-threadedge.c: Likewise. 2637 * tree-ssa-uninit.c: Likewise. 2638 * tree-stdarg.c: Likewise. 2639 * tree-switch-conversion.c: Likewise. 2640 * tree-vect-data-refs.c: Likewise. 2641 * tree-vect-loop.c: Likewise. 2642 * tree-vect-slp.c: Likewise. 2643 * tree-vect-stmts.c: Likewise. 2644 * value-prof.c: Likewise. 2645 * varasm.c: Likewise. 2646 26472012-11-20 Diego Novillo <dnovillo@google.com> 2648 2649 * Makefile.in (tlink.o): Add dependency on VEC_H. 2650 26512012-11-20 Diego Novillo <dnovillo@google.com> 2652 2653 PR middle-end/55398 2654 * vec.h (class vec_prefix): Make every field public. 2655 Rename field alloc_ to alloc_PRIVATE_. 2656 Rename field num_ to num_PRIVATE_. 2657 Update all users. 2658 (class vec<T, A, vl_embed>): Make every field public. 2659 Rename field pfx_ to pfx_PRIVATE_. 2660 Rename field data_ to data_PRIVATE_. 2661 Update all users. 2662 (class vec<T, A, vl_ptr>): Make every field public. 2663 Rename field vec_ to vec_PRIVATE_. 2664 Update all users. 2665 26662012-11-20 Kai Tietz <ktietz@redhat.com> 2667 2668 PR target/55268 2669 * i386.c (ix86_mangle_decl_assembler_name): Use 2670 SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME if defined. 2671 * cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Rename 2672 to SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME. 2673 26742012-11-20 Uros Bizjak <ubizjak@gmail.com> 2675 2676 * config/i386/i386.c (ix86_expand_call): Emit CLOBBERs in VOIDmode. 2677 26782012-11-20 Nick Clifton <nickc@redhat.com> 2679 2680 * config/v850/v850.c (F): New function. Mark the given insn as 2681 being frame related. 2682 (v850_all_frame_related): New function. Mark the given push insn 2683 as being frame related. 2684 (v850_pass_by_reference): When using the RH850 ABI do not pass 2685 arguments by reference. 2686 (v850_strict_argument_naming): Delete function. 2687 (v850_function_arg): Use word alignment with the RH850 ABI. 2688 (v850_arg_partial_bytes): Likewise. 2689 (v850_function_arg_advance): Likewise. 2690 (v850_print_operand): Handle CONST_INT and CONST_DOUBLE. 2691 (compute_register_save_size): Use df_regs_ever_live_p. 2692 (increment_stack): Mark prologue adjustments as being frame related. 2693 (expand_prologue): Handle pretend args. Mark insns generated as 2694 being frame related. 2695 (expand_epilogue): Likewise. 2696 (v850_return_in_memory): When using the RH850 ABI return 2697 aggregates in memory. 2698 (v850_setup_incoming_varargs): Delete function. 2699 (v850_option_override): New function. 2700 (TARGET_DEBUG_UNWIND_INFO): Delete definition. 2701 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 2702 (TARGET_STRICT_ARGUMENT_NAMING): Likewise. 2703 (TARGET_OPTION_OVERRIDE): Define. 2704 * config/v850/v850.h (ASM_SPEC): Pass 8byte-align and gcc-abi 2705 options on to assembler. 2706 (LINK_SPEC): Likewise. 2707 (TARGET_CPU_CPP_BUILTINS): Define __V850_8BYTE_ALIGN__ and 2708 __V850_GCC_ABI__. 2709 (STACK_BOUNDARY): Set to BIGGEST_ALIGNMENT. 2710 (FUNCTION_BOUNDARY): With the RH850 ABI always 32-bit alignment. 2711 (BIGGEST_ALIGNMENT): With -8byte-align set to 64-bits. 2712 (BIGGEST_FIELD_ALIGNMENT): Likewise. 2713 (enum reg_class): Swap EVEN_REGS and GENERAL_REGS. 2714 (REG_CLASS_NAMES): Likewise. 2715 (REG_CLASS_CONTENTS): Likewise. 2716 (struct cum_arg): Delete anonymous_args field. 2717 (INIT_CUMULATIVE_ARGS): Update. 2718 (PREFERRED_DEBUG): Set to DWARF2_DEBUG. 2719 (DWARF2_FRAME_INFO): Define. 2720 (DWARF2_UNWIND_INFO): Define. 2721 (INCOMING_RETURN_ADDR_RTX): Define. 2722 (DWARF_FRAME_RETURN_COLUMN): Define. 2723 (TARGET_USE_FPU): Define. 2724 * config/v850/v850.md: Replace TARGET_V850E2V3 in floating point 2725 insns with TARGET_USE_FPU. 2726 (fixuns_truncsfsi2): New pattern. 2727 (fixuns_truncdfsi2): New pattern. 2728 (fix_truncsfdi2): New pattern. 2729 (fixuns_truncsfdi2): New pattern. 2730 (fix_truncdfdi2): New pattern. 2731 (fixuns_truncdfdi2): New pattern. 2732 (unsfloatsisf2): New pattern. 2733 (unsfloatsidf2): New pattern. 2734 (floatdisf2): New pattern. 2735 (unsfloatdisf2): New pattern. 2736 (floatdidf2): New pattern. 2737 (unsfloatdidf2): New pattern. 2738 (fnmasf4): Fix RTl description. 2739 (fnmssf4): Likewise. 2740 * config/v850/v850.opt (mrelax): New option. 2741 (mlong-jumps): Likewise. 2742 (msoft-float): Likewise. 2743 (mhard-float): Likewise. 2744 (mrh850-abi): Likewise. 2745 (mgcc-abi): Likewise. 2746 (m8byte-align): Likewise. 2747 * config/v850/t-v850 (MULTILIB_OPTIONS): Update multilib options. 2748 (MULTILIB_DIRNAMES): Likewise. 2749 27502012-11-20 Nick Clifton <nickc@redhat.com> 2751 2752 * config/rx/rx.c (rx_function_arg_boundary): When using the RX ABI 2753 align stack arguments to their natural alignment. 2754 (rx_narrow_volatile_bitfield): New function. Allows narrow 2755 volatile bitfields. 2756 (rx_ok_to_inline): New function. Do not inline functions with 2757 local variables into a naked caller. 2758 (TARGET_NARROW_VOLATILE_BITFIELD): Define. 2759 (TARGET_CAN_INLINE_P): Define. 2760 * config/rx/rx.c (TARGET_CPU_CPP_BUILTINS): Define __RX_ABI__ or 2761 __RX_GC_ABI__. 2762 (ASM_SPEC): Pass -mgcc-abi on to the assembler. 2763 (STRICT_ALIGNMENT): Set to false. 2764 (CTORS_SECTION_ASM_OP): Add executable attribute. 2765 (DTORS_SECTION_ASM_OP): Add executable attribute. 2766 (INIT_ARRAY_SECTION_ASM_OP): Add executable attribute. 2767 (FINI_ARRAY_SECTION_ASM_OP): Add executable attribute. 2768 * config/rx/rx.md (subdi3): Don't allow MEMs as the third operand, 2769 as it causes too much reload pressure. 2770 * config/rx/rx.opt (mgcc-abi): New option. 2771 (mrx-abi): New option. 2772 * config/rx/t-rx (MULTILIB_OPTIONS): Show how to add an ABI multilib. 2773 (MULTILIB_DIRNAMES): Likewise. 2774 27752012-11-20 James Greenhalgh <james.greenhalgh@arm.com> 2776 Tejas Belagod <tejas.belagod@arm.com> 2777 2778 * config/aarch64/aarch64-builtins.c 2779 (aarch64_simd_builtin_type_bits): Rename to... 2780 (aarch64_simd_builtin_type_mode): ...this, make sequential. 2781 (aarch64_simd_builtin_datum): Refactor members. 2782 (VAR1, VAR2, ..., VAR12): Update accordingly. 2783 (aarch64_simd_builtin_data): Include from aarch64-simd-builtins.def. 2784 (aarch64_builtins): Update accordingly. 2785 (init_aarch64_simd_builtins): Refactor, rename to... 2786 (aarch64_init_simd_builtins): ...this. 2787 (aarch64_simd_builtin_compare): Remove. 2788 (locate_simd_builtin_icode): Likewise. 2789 * config/aarch64/aarch64-protos.h (aarch64_init_builtins): New. 2790 (aarch64_expand_builtin): New. 2791 * config/aarch64/aarch64-simd-builtins.def: New file. 2792 * config/aarch64/aarch64.c (aarch64_init_builtins): 2793 Move to aarch64-builtins.c. 2794 (aarch64_expand_builtin): Likewise. 2795 * config/aarch64/aarch64.h 2796 (aarch64_builtins): Move to aarch64-builtins.c. 2797 27982012-11-20 Martin Jambor <mjambor@suse.cz> 2799 2800 PR tree-optimization/55260 2801 * ipa-cp.c (find_aggregate_values_for_callers_subset): Rename info to 2802 dest_info, use caller_info instead of info when determining whether 2803 callee is a clone. 2804 28052012-11-20 Andrey Turetskiy <andrey.turetskiy@gmail.com> 2806 2807 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3): Merge 2808 *avx2_pmulhrswv16hi3 and *ssse3_pmulhrswv8hi3 into one pattern. 2809 28102012-11-20 Sofiane Naci <sofiane.naci@arm.com> 2811 2812 * config/aarch64/aarch64.md 2813 (define_attr "sync_*"): Remove. 2814 (define_attr "length"): Update. 2815 Include atomics.md. 2816 * config/aarch64/aarch64-protos.h 2817 (aarch64_expand_compare_and_swap): Add function prototype. 2818 (aarch64_split_compare_and_swap): Likewise. 2819 (aarch64_split_atomic_op): Likewise. 2820 (aarch64_expand_sync): Remove function prototype. 2821 (aarch64_output_sync_insn): Likewise. 2822 (aarch64_output_sync_lock_release): Likewise. 2823 (aarch64_sync_loop_insns): Likewise. 2824 (struct aarch64_sync_generator): Remove. 2825 (enum aarch64_sync_generator_tag): Likewise. 2826 * config/aarch64/aarch64.c 2827 (aarch64_legitimize_sync_memory): Remove function. 2828 (aarch64_emit): Likewise. 2829 (aarch64_insn_count): Likewise. 2830 (aarch64_output_asm_insn): Likewise. 2831 (aarch64_load_store_suffix): Likewise. 2832 (aarch64_output_sync_load): Likewise. 2833 (aarch64_output_sync_store): Likewise. 2834 (aarch64_output_op2): Likewise. 2835 (aarch64_output_op3): Likewise. 2836 (aarch64_output_sync_loop): Likewise. 2837 (aarch64_get_sync_operand): Likewise. 2838 (aarch64_process_output_sync_insn): Likewise. 2839 (aarch64_output_sync_insn): Likewise. 2840 (aarch64_output_sync_lock_release): Likewise. 2841 (aarch64_sync_loop_insns): Likewise. 2842 (aarch64_call_generator): Likewise. 2843 (aarch64_expand_sync): Likewise. 2844 (* emit_f): Remove variable. 2845 (aarch64_insn_count): Likewise. 2846 (FETCH_SYNC_OPERAND): Likewise. 2847 (aarch64_emit_load_exclusive): New function. 2848 (aarch64_emit_store_exclusive): Likewise. 2849 (aarch64_emit_unlikely_jump): Likewise. 2850 (aarch64_expand_compare_and_swap): Likewise. 2851 (aarch64_split_compare_and_swap): Likewise. 2852 (aarch64_split_atomic_op): Likewise. 2853 * config/aarch64/iterators.md 2854 (atomic_sfx): New mode attribute. 2855 (atomic_optab): New code attribute. 2856 (atomic_op_operand): Likewise. 2857 (atomic_op_str): Likewise. 2858 (syncop): Rename to atomic_op. 2859 * config/aarch64/sync.md: Delete. 2860 * config/aarch64/atomics.md: New file. 2861 28622012-11-20 Jakub Jelinek <jakub@redhat.com> 2863 2864 PR middle-end/55094 2865 * builtins.c (expand_builtin_trap): Add REG_ARGS_SIZE note 2866 on the trap insn for !ACCUMULATE_OUTGOING_ARGS. 2867 * cfgcleanup.c (outgoing_edges_match): Don't look at debug insns 2868 on the first old_insns_match_p call. For !ACCUMULATE_OUTGOING_ARGS 2869 fail if the last real insn doesn't have REG_ARGS_SIZE note. 2870 2871 PR rtl-optimization/54921 2872 * cselib.h (fp_setter_insn): New prototype. 2873 * cselib.c (fp_setter_insn): New function. 2874 (cselib_process_insn): If frame_pointer_needed, 2875 call cselib_invalidate_rtx (stack_pointer_rtx) after 2876 processing a frame pointer setter. 2877 * var-tracking.c (fp_setter): Removed. 2878 (vt_initialize): Use fp_setter_insn instead of fp_setter. 2879 28802012-11-19 Michael Meissner <meissner@linux.vnet.ibm.com> 2881 2882 * config/rs6000/rs6000.md (movdf_hardfloat32): Reorder move 2883 constraints so that the traditional floating point loads, stores, 2884 and moves are done first, then the VSX loads, stores, and moves, 2885 and finally the GPR loads, stores, and moves so that reload 2886 chooses FPRs over GPRs, and uses the traditional load/store 2887 instructions which provide an offset. 2888 (movdf_hardfloat64): Likewise. 2889 28902012-11-19 Richard Sandiford <rdsandiford@googlemail.com> 2891 2892 PR middle-end/55359 2893 * simplify-rtx.c (simplify_subreg): Return null for invalid offsets. 2894 28952012-11-19 Aldy Hernandez <aldyh@redhat.com> 2896 2897 * trans-mem.c (execute_tm_mark): Release bb_regions. 2898 28992012-11-19 Aldy Hernandez <aldyh@redhat.com> 2900 2901 * trans-mem (collect_bb2reg): Stop scanning at irrevocable blocks. 2902 (get_bb_regions_instrumented): Add new traverse_clone argument and 2903 use it. 2904 (expand_regions_1): Same. 2905 (expand_region): Same. 2906 (execute_tm_mark): Pass new argument to expand_regions. 2907 (expand_block_edges): Pass new argument to get_bb_regions_instrumented. 2908 29092012-11-19 Sofiane Naci <sofiane.naci@arm.com> 2910 2911 * config/aarch64/aarch64.c 2912 (aarch64_output_mi_thunk): Refactor to generate RTL patterns. 2913 29142012-11-19 Mans Rullgard <mans@mansr.com> 2915 2916 PR target/55276 2917 * config/rs6000/rs6000.c (rs6000_stack_info): Always set vrsave_mask 2918 for TARGET_ALTIVEC_ABI. Zero vrsave_save_offset if 2919 !TARGET_ALTIVEC_VRSAVE. 2920 (rs6000_emit_prologue): For SAVE_INLINE_VLRs, check vrsave_size 2921 not vrsave_mask. 2922 29232012-11-19 David Edelsohn <dje.gcc@gmail.com> 2924 2925 PR bootstrap/55384 2926 * system.h (vec_free): Undef. 2927 29282012-11-19 Jakub Jelinek <jakub@redhat.com> 2929 2930 PR middle-end/54630 2931 * tree-ssa-coalesce.c (coalesce_ssa_name): Remove static 2932 keyword from ssa_name_hash var. 2933 29342012-11-19 Maxim Kuznetsov <maxim.kuznetsov@intel.com> 2935 Kirill Yukhin <kirill.yukhin@intel.com> 2936 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 2937 2938 * doc/md.texi: Document define_subst. 2939 * gensupport.c (MAX_OPERANDS): New define. 2940 (operand_data): New. 2941 (match_operand_entries_in_pattern): New. 2942 (used_operands_numbers): New. 2943 (subst_true): New. 2944 (subst_false): New. 2945 (define_subst_queue): New. 2946 (define_subst_tail): New. 2947 (define_subst_attr_queue): New. 2948 (define_subst_attr_tail): New. 2949 (has_subst_attribute): New. 2950 (subst_pattern_match): New. 2951 (get_alternatives_number): New. 2952 (alter_output_for_subst_insn): New. 2953 (alter_attrs_for_subst_insn): New. 2954 (process_substs_on_one_elem): New. 2955 (subst_dup): New. 2956 (process_define_subst): New. 2957 (duplicate_alternatives): New. 2958 (duplicate_each_alternative): New. 2959 (constraints_handler_t): New typedef. 2960 (alter_constraints): New. 2961 (adjust_operands_numbers): New. 2962 (replace_duplicating_operands_in_pattern): New. 2963 (remove_from_queue): New. 2964 (process_rtx): Handle define_subst and define_subst_attr. 2965 (change_subst_attribute): New. 2966 (alter_predicate_for_insn): Fix formatting. 2967 (alter_attrs_for_insn): Likewise. 2968 (alter_output_for_insn): Likewise. 2969 (mark_operands_from_match_dup): New. 2970 (mark_operands_used_in_match_dup): New. 2971 (find_first_unused_number_of_operand): New. 2972 (renumerate_operands_in_pattern): New. 2973 (generate_match_dup): New. 2974 (check_define_attr_duplicates): New. 2975 (init_rtx_reader_args_cb): Add checking for duplicated attrs and 2976 processing of define_subst. 2977 (read_md_rtx): Handle define_subst. 2978 * read-rtl.c (struct subst_attr_to_iter_mapping): New. 2979 (substs): New global. 2980 (apply_subst_iterator): New. 2981 (bind_subst_iter_and_attr): New. 2982 (find_subst_iter_by_attr): New. 2983 (map_attr_string): Handle subst-iterators. 2984 (add_condition_to_rtx): Handle define_subst. 2985 (apply_iterators): Likewise. 2986 (initialize_iterators): Likewise. 2987 (add_define_attr_for_define_subst): New. 2988 (add_define_subst_attr): New. 2989 (read_subst_mapping): New. 2990 (read_rtx): Handle define_subst_attr. 2991 (read_rtx_code): Add subst-attributes recognition during reading of 2992 strings. 2993 * rtl.def (DEFINE_EXPAND): Add vector of attributes. 2994 (DEFINE_SUBST): New. 2995 (DEFINE_SUBST_ATTR): New. 2996 29972012-11-19 Tom de Vries <tom@codesourcery.com> 2998 2999 PR rtl-optimization/55315 3000 3001 * rtlanal.c (nonzero_address_p): Don't assume a nonzero address plus a 3002 const is a nonzero address. 3003 30042012-11-18 Sandra Loosemore <sandra@codesourcery.com> 3005 3006 * doc/extend.texi: Use @smallexample consistently. Add @noindent 3007 when continuing a sentence or paragraph past an example. Change 3008 tabs to spaces in examples. 3009 30102012-11-18 Richard Sandiford <rdsandiford@googlemail.com> 3011 3012 * doc/md.texi (extv@var{m}, extvmisalign@var{m}, extzv@var{m}) 3013 (extzvmisalign@var{m}, insv@var{m}, insvmisalign@var{m}): Document. 3014 (insv, extv, extzv): Deprecate. 3015 * optabs.def (insv_optab, extv_optab, extzv_optab) 3016 (insvmisalign_optab, extvmisalign_optab, extzvmisalign_optab): 3017 New optabs. 3018 * optabs.c (get_optab_extraction_insn): New function. 3019 (get_extraction_insn): Use it. 3020 * config/mips/mips.md (extv): Split into... 3021 (extvmisalign<mode>, extv<mode>): ...these new patterns. Rename 3022 existing extv<mode> pattern to... 3023 (*extv<mode>): ...this. 3024 (extzv): Split into... 3025 (extzvmisalign<mode>, extzv<mode>): ...these new patterns. Rename 3026 existing extzv<mode> pattern to... 3027 (*extzv<mode>): ...this. 3028 (insv): Split into... 3029 (insvmisalign<mode>, insv<mode>): ...these new patterns. Rename 3030 existing insv<mode> pattern to... 3031 (*insv<mode>): ...this. Use const_int_operand rather than 3032 immediate_operand. 3033 * config/mips/mips.c (mips_block_move_straight): Use set_mem_size 3034 to set the size of BLKmode accesses. 3035 (mips_get_unaligned_mem): Require OP0 to be a BLKmode memory, 3036 turning it from an "rtx *" to an rtx. 3037 (mips_expand_ext_as_unaligned_load): Simplify for new optab 3038 interface. Update call to mips_get_unaligned_mem. 3039 (mips_expand_ins_as_unaligned_store): Update call to 3040 mips_get_unaligned_mem. 3041 30422012-11-18 Richard Sandiford <rdsandiford@googlemail.com> 3043 3044 * Makefile.in (recog.o): Add insn-codes.h. 3045 * expr.h (extraction_pattern): Move to optabs.h. 3046 (mode_for_extraction): Delete. 3047 * optabs.h (extraction_insn): New structure. 3048 (extraction_pattern): Moved from expr.h. 3049 (get_best_reg_extraction_insn, get_best_mem_extraction_insn): Declare. 3050 * optabs.c (HAVE_insv, CODE_FOR_insv, HAVE_extv, CODE_FOR_extv) 3051 (HAVE_extzv, CODE_FOR_extzv): Provide defaults. 3052 (extraction_type): New enum. 3053 (get_traditional_extraction_insn, get_extraction_insn) 3054 (get_best_reg_extraction_insn, get_best_mem_extraction_insn): 3055 New functions. 3056 * combine.c (make_extraction): Use get_best_reg_extraction_insn 3057 instead of mode_for_extraction. 3058 * expmed.c (HAVE_insv, CODE_FOR_insv, gen_insv, HAVE_extv) 3059 (CODE_FOR_extv, gen_extv, HAVE_extzv, CODE_FOR_extzv, gen_extzv): 3060 Remove fallback definitions. 3061 (mode_for_extraction): Delete. 3062 (adjust_bit_field_mem_for_reg): New function. 3063 (store_bit_field_using_insv): Replace OP_MODE parameter with 3064 an extraction_insn. Pass struct_mode to narrow_bit_field_mem. 3065 (extract_bit_field_using_extv): Likewise EXT_MODE. 3066 (store_bit_field_1): Use get_best_reg_extraction_insn and 3067 get_best_mem_extraction_insn instead of mode_for_extraction. 3068 Use adjust_bit_field_mem_for_reg when forcing memory to a 3069 register and doing a register insertion. Update calls to 3070 store_bit_field_using_insv. 3071 (extract_bit_field_1): Likewise extractions and calls to 3072 extract_bit_field_using_extv. 3073 (store_Bit_field): When narrowing to a bitregion, don't use the 3074 insv mode as a limit. 3075 * recog.c: (HAVE_extv, CODE_FOR_extv, HAVE_extzv, CODE_FOR_extzv): 3076 Provide defaults. 3077 (simplify_while_replacing): Use insn_data instead of 3078 mode_for_extraction. 3079 30802012-11-18 Richard Sandiford <rdsandiford@googlemail.com> 3081 3082 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): 3083 Set up a default value of bitregion_end_. 3084 (bit_field_mode_iterator::next_mode): Always apply bitregion_end_ 3085 check. Include SLOW_UNALIGNED_ACCESS in the alignment check. 3086 (get_best_mode): Ignore modes that are wider than the alignment. 3087 30882012-11-18 Richard Sandiford <rdsandiford@googlemail.com> 3089 3090 * machmode.h (bit_field_mode_iterator): New class. 3091 (get_best_mode): Change final parameter to bool. 3092 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator) 3093 (bit_field_mode_iterator::next_mode): New functions, split out from... 3094 (get_best_mode): ...here. Change final parameter to bool. 3095 Use bit_field_mode_iterator. 3096 30972012-11-18 Richard Sandiford <rdsandiford@googlemail.com> 3098 3099 * expmed.c (narrow_bit_field_mem): New function. 3100 (store_bit_field_using_insv, store_bit_field_1, store_fixed_bit_field) 3101 (extract_bit_field_1): Use it. 3102 31032012-11-18 Richard Sandiford <rdsandiford@googlemail.com> 3104 3105 * expr.h (adjust_address_1): Add a size parameter. 3106 (adjust_address, adjust_address_nv, adjust_bitfield_address) 3107 (adjust_bitfield_address_nv): Adjust accordingly. 3108 (adjust_bitfield_address_size): Define. 3109 * emit-rtl.c (adjust_address_1): Add a size parameter. 3110 Use it to set the size if MODE has no size. Check whether 3111 the size matches before returning the original memref. 3112 Require the size to be known for adjust_object. 3113 (adjust_automodify_address_1, widen_memory_access): Update calls 3114 to adjust_address_1. 3115 31162012-11-18 Richard Sandiford <rdsandiford@googlemail.com> 3117 3118 * combine.c (make_extraction): Handle TRUNCATEd INNERs. 3119 31202012-11-18 Richard Sandiford <rdsandiford@googlemail.com> 3121 3122 * expr.c (expand_assignment): Don't set MEM_KEEP_ALIAS_SET_P here. 3123 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle DECL_BIT_FIELDs, 3124 using their size instead of the COMPONENT_REF's. 3125 31262012-11-17 Matthias Klose <doko@ubuntu.com> 3127 3128 * config/mips/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES. 3129 31302012-11-17 Diego Novillo <dnovillo@google.com> 3131 3132 VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 3133 3134 * vec.c (register_overhead): Convert it into 3135 member function of vec_prefix. 3136 (release_overhead): Likewise. 3137 (calculate_allocation): Likewise. 3138 (vec_heap_free): Remove. 3139 (vec_gc_o_reserve_1): Remove. 3140 (vec_heap_o_reserve_1): Remove. 3141 (vec_stack_o_reserve_1): Remove. 3142 (vec_stack_o_reserve_exact): Remove. 3143 (register_stack_vec): New. 3144 (stack_vec_register_index): New. 3145 (unregister_stack_vec): New. 3146 (vec_assert_fail): Remove. 3147 * vec.h: Conditionally include ggc.h. Document conditional hackery. 3148 Update top-level documentation. 3149 (ALONE_VEC_CHECK_INFO): Remove. 3150 (VEC_CHECK_INFO): Remove. 3151 (ALONE_VEC_CHECK_DECL): Remove. 3152 (VEC_CHECK_DECL): Remove. 3153 (ALONE_VEC_CHECK_PASS): Remove. 3154 (VEC_CHECK_PASS): Remove. 3155 (VEC_ASSERT): Remove. 3156 (vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and va_stack. 3157 Mark fields alloc_ and num_ as protected. 3158 (struct vec_t): Remove. Remove all function members. 3159 (struct vl_embed): Declare. 3160 (struct vl_ptr): Declare. 3161 (free): Remove. 3162 (reserve_exact): Remove. 3163 (reserve): Remove. 3164 (safe_splice): Remove. 3165 (safe_push): Remove. 3166 (safe_grow): Remove. 3167 (safe_grow_cleared): Remove. 3168 (safe_insert): Remove. 3169 (DEF_VEC_I): Remove. 3170 (DEF_VEC_ALLOC_I): Remove. 3171 (DEF_VEC_P): Remove. 3172 (DEF_VEC_ALLOC_P): Remove. 3173 (DEF_VEC_O): Remove. 3174 (DEF_VEC_ALLOC_O): Remove. 3175 (DEF_VEC_ALLOC_P_STACK): Remove. 3176 (DEF_VEC_ALLOC_O_STACK): Remove. 3177 (DEF_VEC_ALLOC_I_STACK): Remove. 3178 (DEF_VEC_A): Remove. 3179 (DEF_VEC_ALLOC_A): Remove. 3180 (vec_stack_p_reserve_exact_1): Remove. 3181 (vec_stack_o_reserve): Remove. 3182 (vec_stack_o_reserve_exact): Remove. 3183 (VEC_length): Remove. 3184 (VEC_empty): Remove. 3185 (VEC_address): Remove. 3186 (vec_address): Remove. 3187 (VEC_last): Remove. 3188 (VEC_index): Remove. 3189 (VEC_iterate): Remove. 3190 (VEC_embedded_size): Remove. 3191 (VEC_embedded_init): Remove. 3192 (VEC_free): Remove. 3193 (VEC_copy): Remove. 3194 (VEC_space): Remove. 3195 (VEC_reserve): Remove. 3196 (VEC_reserve_exact): Remove. 3197 (VEC_splice): Remove. 3198 (VEC_safe_splice): Remove. 3199 (VEC_quick_push): Remove. 3200 (VEC_safe_push): Remove. 3201 (VEC_pop): Remove. 3202 (VEC_truncate): Remove. 3203 (VEC_safe_grow): Remove. 3204 (VEC_replace): Remove. 3205 (VEC_quick_insert): Remove. 3206 (VEC_safe_insert): Remove. 3207 (VEC_ordered_remove): Remove. 3208 (VEC_unordered_remove): Remove. 3209 (VEC_block_remove): Remove. 3210 (VEC_lower_bound): Remove. 3211 (VEC_alloc): Remove. 3212 (VEC_qsort): Remove. 3213 3214 (va_heap): Declare. 3215 (va_heap::default_layout): New typedef to vl_ptr. 3216 (va_heap::reserve): New. 3217 (va_heap::release): New. 3218 (va_gc): Declare. 3219 (va_gc::default_layout): New typedef to vl_embed. 3220 (va_gc::reserve): New. 3221 (va_gc::release): New. 3222 (va_gc_atomic): Declare. Inherit from va_gc. 3223 (va_stack): Declare. 3224 (va_stack::default_layout): New typedef to vl_ptr. 3225 (va_stack::alloc): New. 3226 (va_stack::reserve): New. 3227 (va_stack::release): New. 3228 (register_stack_vec): Declare. 3229 (stack_vec_register_index): Declare. 3230 (unregister_stack_vec): Declare. 3231 3232 (vec<T, A = va_heap, L = typename A::default_layout>): Declare 3233 empty vec template. 3234 (vec<T, A, vl_embed>): Partial specialization for embedded 3235 layout. 3236 (vec<T, A, vl_embed>::allocated): New. 3237 (vec<T, A, vl_embed>::length): New. 3238 (vec<T, A, vl_embed>::is_empty): New. 3239 (vec<T, A, vl_embed>::address): New. 3240 (vec<T, A, vl_embed>::operator[]): New. 3241 (vec<T, A, vl_embed>::last New. 3242 (vec<T, A, vl_embed>::space): New. 3243 (vec<T, A, vl_embed>::iterate): New. 3244 (vec<T, A, vl_embed>::iterate): New. 3245 (vec<T, A, vl_embed>::copy): New. 3246 (vec<T, A, vl_embed>::splice): New. 3247 (vec<T, A, vl_embed>::quick_push New. 3248 (vec<T, A, vl_embed>::pop New. 3249 (vec<T, A, vl_embed>::truncate): New. 3250 (vec<T, A, vl_embed>::quick_insert): New. 3251 (vec<T, A, vl_embed>::ordered_remove): New. 3252 (vec<T, A, vl_embed>::unordered_remove): New. 3253 (vec<T, A, vl_embed>::block_remove): New. 3254 (vec<T, A, vl_embed>::qsort): New. 3255 (vec<T, A, vl_embed>::lower_bound): New. 3256 (vec<T, A, vl_embed>::embedded_size): New. 3257 (vec<T, A, vl_embed>::embedded_init): New. 3258 (vec<T, A, vl_embed>::quick_grow): New. 3259 (vec<T, A, vl_embed>::quick_grow_cleared): New. 3260 (vec_safe_space): New. 3261 (vec_safe_length): New. 3262 (vec_safe_address): New. 3263 (vec_safe_is_empty): New. 3264 (vec_safe_reserve): New. 3265 (vec_safe_reserve_exact): New. 3266 (vec_alloc): New. 3267 (vec_free): New. 3268 (vec_safe_grow): New. 3269 (vec_safe_grow_cleared): New. 3270 (vec_safe_iterate): New. 3271 (vec_safe_push): New. 3272 (vec_safe_insert): New. 3273 (vec_safe_truncate): New. 3274 (vec_safe_copy): New. 3275 (vec_safe_splice): New. 3276 3277 (vec<T, A, vl_ptr>): New partial specialization for the space 3278 efficient layout. 3279 (vec<T, A, vl_ptr>::exists): New. 3280 (vec<T, A, vl_ptr>::is_empty): New. 3281 (vec<T, A, vl_ptr>::length): New. 3282 (vec<T, A, vl_ptr>::address): New. 3283 (vec<T, A, vl_ptr>::operator[]): New. 3284 (vec<T, A, vl_ptr>::operator!=): New. 3285 (vec<T, A, vl_ptr>::operator==): New. 3286 (vec<T, A, vl_ptr>::last): New. 3287 (vec<T, A, vl_ptr>::space): New. 3288 (vec<T, A, vl_ptr>::iterate): New. 3289 (vec<T, A, vl_ptr>::copy): New. 3290 (vec<T, A, vl_ptr>::reserve): New. 3291 (vec<T, A, vl_ptr>::reserve_exact): New. 3292 (vec<T, A, vl_ptr>::splice): New. 3293 (vec<T, A, vl_ptr>::safe_splice): New. 3294 (vec<T, A, vl_ptr>::quick_push): New. 3295 (vec<T, A, vl_ptr>::safe_push): New. 3296 (vec<T, A, vl_ptr>::pop): New. 3297 (vec<T, A, vl_ptr>::truncate): New. 3298 (vec<T, A, vl_ptr>::safe_grow): New. 3299 (vec<T, A, vl_ptr>::safe_grow_cleared): New. 3300 (vec<T, A, vl_ptr>::quick_grow): New. 3301 (vec<T, A, vl_ptr>::quick_grow_cleared): New. 3302 (vec<T, A, vl_ptr>::quick_insert): New. 3303 (vec<T, A, vl_ptr>::safe_insert): New. 3304 (vec<T, A, vl_ptr>::ordered_remove): New. 3305 (vec<T, A, vl_ptr>::unordered_remove): New. 3306 (vec<T, A, vl_ptr>::block_remove): New. 3307 (vec<T, A, vl_ptr>::qsort): New. 3308 (vec<T, A, vl_ptr>::lower_bound): New. 3309 (vec_stack_alloc): Define. 3310 (FOR_EACH_VEC_SAFE_ELT): Define. 3311 * vecir.h: Remove. Update all users. 3312 * vecprim.h: Remove. Update all users. 3313 Move uchar to coretypes.h. 3314 3315 * Makefile.in (VEC_H): Add $(GGC_H). 3316 Remove vecir.h and vecprim.h dependencies everywhere. 3317 33182012-11-16 Diego Novillo <dnovillo@google.com> 3319 3320 * gengtype-lex.l (VEC): Remove. 3321 Add characters in the set [\!\>\.-]. 3322 * gengtype-parse.c (token_names): Remove "VEC". 3323 (require_template_declaration): Remove handling of VEC_TOKEN. 3324 (type): Likewise. 3325 Call create_user_defined_type when parsing GTY((user)). 3326 * gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED. 3327 (write_state_undefined_type): New. 3328 (write_state_type): Call write_state_undefined_type for TYPE_UNDEFINED. 3329 (read_state_type): Call read_state_undefined_type for TYPE_UNDEFINED. 3330 * gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED. 3331 (create_user_defined_type): Make extern. 3332 (type_for_name): Factor out of resolve_typedef. 3333 (create_undefined_type): New 3334 (resolve_typedef): Call it when we cannot find a previous 3335 typedef and the type is not a template. 3336 (find_structure): Accept TYPE_UNDEFINED. 3337 (set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES, 3338 default to false. 3339 Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or 3340 ALLOWED_UNDEFINED_TYPES is set. 3341 Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT. 3342 (filter_type_name): Accept templates with more than one argument. 3343 (output_mangled_typename): Handle TYPE_UNDEFINED 3344 (walk_type): Likewise. 3345 (write_types_process_field): Likewise. 3346 (write_func_for_structure): If CHAIN_NEXT is set, ORIG_S 3347 should not be a user-defined type. 3348 (write_types_local_user_process_field): Handle TYPE_ARRAY, 3349 TYPE_NONE and TYPE_UNDEFINED. 3350 (write_types_local_process_field): Likewise. 3351 (contains_scalar_p): Return 0 for TYPE_USER_STRUCT. 3352 (write_root): Reject user-defined types that are not pointers. 3353 Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT 3354 and TYPE_PARAM_STRUCT. 3355 (output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and TYPE_ARRAY. 3356 (dump_typekind): Handle TYPE_UNDEFINED. 3357 * gengtype.h (enum typekind): Add TYPE_UNDEFINED. 3358 (create_user_defined_type): Declare. 3359 (enum gty_token): Remove VEC_TOKEN. 3360 33612012-11-16 Diego Novillo <dnovillo@google.com> 3362 3363 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 3364 3365 * coretypes.h (uchar): Define. 3366 * alias.c: Use new vec API in vec.h. 3367 * asan.c: Likewise. 3368 * attribs.c: Likewise. 3369 * basic-block.h: Likewise. 3370 * bb-reorder.c: Likewise. 3371 * builtins.c: Likewise. 3372 * calls.c: Likewise. 3373 * cfg.c: Likewise. 3374 * cfganal.c: Likewise. 3375 * cfgcleanup.c: Likewise. 3376 * cfgexpand.c: Likewise. 3377 * cfghooks.c: Likewise. 3378 * cfghooks.h: Likewise. 3379 * cfgloop.c: Likewise. 3380 * cfgloop.h: Likewise. 3381 * cfgloopanal.c: Likewise. 3382 * cfgloopmanip.c: Likewise. 3383 * cfgrtl.c: Likewise. 3384 * cgraph.c: Likewise. 3385 * cgraph.h: Likewise. 3386 * cgraphclones.c: Likewise. 3387 * cgraphunit.c: Likewise. 3388 * combine.c: Likewise. 3389 * compare-elim.c: Likewise. 3390 * coverage.c: Likewise. 3391 * cprop.c: Likewise. 3392 * data-streamer.h: Likewise. 3393 * dbxout.c: Likewise. 3394 * dce.c: Likewise. 3395 * df-core.c: Likewise. 3396 * df-problems.c: Likewise. 3397 * df-scan.c: Likewise. 3398 * dominance.c: Likewise. 3399 * domwalk.c: Likewise. 3400 * domwalk.h: Likewise. 3401 * dse.c: Likewise. 3402 * dwarf2cfi.c: Likewise. 3403 * dwarf2out.c: Likewise. 3404 * dwarf2out.h: Likewise. 3405 * emit-rtl.c: Likewise. 3406 * except.c: Likewise. 3407 * except.h: Likewise. 3408 * expr.c: Likewise. 3409 * expr.h: Likewise. 3410 * final.c: Likewise. 3411 * fold-const.c: Likewise. 3412 * function.c: Likewise. 3413 * function.h: Likewise. 3414 * fwprop.c: Likewise. 3415 * gcc.c: Likewise. 3416 * gcse.c: Likewise. 3417 * genattr.c: Likewise. 3418 * genattrtab.c: Likewise. 3419 * genautomata.c: Likewise. 3420 * genextract.c: Likewise. 3421 * genopinit.c: Likewise 3422 * ggc-common.c: Likewise. 3423 * ggc.h: Likewise. 3424 * gimple-low.c: Likewise. 3425 * gimple-ssa-strength-reduction.c: Likewise. 3426 * gimple-streamer-in.c: Likewise. 3427 * gimple.c: Likewise. 3428 * gimple.h: Likewise. 3429 * gimplify.c: Likewise. 3430 * graph.c: Likewise. 3431 * graphds.c: Likewise. 3432 * graphds.h: Likewise. 3433 * graphite-blocking.c: Likewise. 3434 * graphite-clast-to-gimple.c: Likewise. 3435 * graphite-dependences.c: Likewise. 3436 * graphite-interchange.c: Likewise. 3437 * graphite-optimize-isl.c: Likewise. 3438 * graphite-poly.c: Likewise. 3439 * graphite-poly.h: Likewise. 3440 * graphite-scop-detection.c: Likewise. 3441 * graphite-scop-detection.h: Likewise. 3442 * graphite-sese-to-poly.c: Likewise. 3443 * graphite.c: Likewise. 3444 * godump.c: Likewise. 3445 * haifa-sched.c: Likewise. 3446 * hw-doloop.c: Likewise. 3447 * hw-doloop.h: Likewise. 3448 * ifcvt.c: Likewise. 3449 * insn-addr.h: Likewise. 3450 * ipa-cp.c: Likewise. 3451 * ipa-inline-analysis.c: Likewise. 3452 * ipa-inline-transform.c: Likewise. 3453 * ipa-inline.c: Likewise. 3454 * ipa-inline.h: Likewise. 3455 * ipa-prop.c: Likewise. 3456 * ipa-prop.h: Likewise. 3457 * ipa-pure-const.c: Likewise. 3458 * ipa-ref-inline.h: Likewise. 3459 * ipa-ref.c: Likewise. 3460 * ipa-ref.h: Likewise. 3461 * ipa-reference.c: Likewise. 3462 * ipa-split.c: Likewise. 3463 * ipa-utils.c: Likewise. 3464 * ipa-utils.h: Likewise. 3465 * ipa.c: Likewise. 3466 * ira-build.c: Likewise. 3467 * ira-color.c: Likewise. 3468 * ira-emit.c: Likewise. 3469 * ira-int.h: Likewise. 3470 * ira.c: Likewise. 3471 * loop-invariant.c: Likewise. 3472 * loop-unroll.c: Likewise. 3473 * lower-subreg.c: Likewise. 3474 * lra-lives.c: Likewise. 3475 * lra.c: Likewise. 3476 * lto-cgraph.c: Likewise. 3477 * lto-section-out.c: Likewise. 3478 * lto-streamer-in.c: Likewise. 3479 * lto-streamer-out.c: Likewise. 3480 * lto-streamer.h: Likewise. 3481 * lto-symtab.c: Likewise. 3482 * mcf.c: Likewise. 3483 * modulo-sched.c: Likewise. 3484 * omp-low.c: Likewise. 3485 * opts-common.c: Likewise. 3486 * opts-global.c: Likewise. 3487 * opts.c: Likewise. 3488 * opts.h: Likewise. 3489 * passes.c: Likewise. 3490 * predict.c: Likewise. 3491 * print-tree.c: Likewise. 3492 * profile.c: Likewise. 3493 * profile.h: Likewise. 3494 * read-rtl.c: Likewise. 3495 * ree.c: Likewise. 3496 * reg-stack.c: Likewise. 3497 * regrename.c: Likewise. 3498 * regrename.h: Likewise. 3499 * reload.c: Likewise. 3500 * reload.h: Likewise. 3501 * reload1.c: Likewise. 3502 * rtl.h: Likewise. 3503 * sched-deps.c: Likewise. 3504 * sched-int.h: Likewise. 3505 * sdbout.c: Likewise. 3506 * sel-sched-dump.c: Likewise. 3507 * sel-sched-ir.c: Likewise. 3508 * sel-sched-ir.h: Likewise. 3509 * sel-sched.c: Likewise. 3510 * sese.c: Likewise. 3511 * sese.h: Likewise. 3512 * statistics.h: Likewise. 3513 * stmt.c: Likewise. 3514 * stor-layout.c: Likewise. 3515 * store-motion.c: Likewise. 3516 * tlink.c: Likewise. 3517 * toplev.c: Likewise. 3518 * trans-mem.c: Likewise. 3519 * tree-browser.c: Likewise. 3520 * tree-call-cdce.c: Likewise. 3521 * tree-cfg.c: Likewise. 3522 * tree-cfgcleanup.c: Likewise. 3523 * tree-chrec.c: Likewise. 3524 * tree-chrec.h: Likewise. 3525 * tree-complex.c: Likewise. 3526 * tree-data-ref.c: Likewise. 3527 * tree-data-ref.h: Likewise. 3528 * tree-dfa.c: Likewise. 3529 * tree-diagnostic.c: Likewise. 3530 * tree-dump.c: Likewise. 3531 * tree-eh.c: Likewise. 3532 * tree-emutls.c: Likewise. 3533 * tree-flow.h: Likewise. 3534 * tree-if-conv.c: Likewise. 3535 * tree-inline.c: Likewise. 3536 * tree-inline.h: Likewise. 3537 * tree-into-ssa.c: Likewise. 3538 * tree-iterator.c: Likewise. 3539 * tree-loop-distribution.c: Likewise. 3540 * tree-mudflap.c: Likewise. 3541 * tree-optimize.c: Likewise. 3542 * tree-outof-ssa.c: Likewise. 3543 * tree-parloops.c: Likewise. 3544 * tree-phinodes.c: Likewise. 3545 * tree-predcom.c: Likewise. 3546 * tree-pretty-print.c: Likewise. 3547 * tree-scalar-evolution.c: Likewise. 3548 * tree-sra.c: Likewise. 3549 * tree-ssa-address.c: Likewise. 3550 * tree-ssa-alias.c: Likewise. 3551 * tree-ssa-ccp.c: Likewise. 3552 * tree-ssa-coalesce.c: Likewise. 3553 * tree-ssa-dce.c: Likewise. 3554 * tree-ssa-dom.c: Likewise. 3555 * tree-ssa-forwprop.c: Likewise. 3556 * tree-ssa-live.c: Likewise. 3557 * tree-ssa-live.h: Likewise. 3558 * tree-ssa-loop-im.c: Likewise. 3559 * tree-ssa-loop-ivcanon.c: Likewise. 3560 * tree-ssa-loop-ivopts.c: Likewise. 3561 * tree-ssa-loop-manip.c: Likewise. 3562 * tree-ssa-loop-niter.c: Likewise. 3563 * tree-ssa-loop-prefetch.c: Likewise. 3564 * tree-ssa-math-opts.c: Likewise. 3565 * tree-ssa-operands.c: Likewise. 3566 * tree-ssa-phiopt.c: Likewise. 3567 * tree-ssa-phiprop.c: Likewise. 3568 * tree-ssa-pre.c: Likewise. 3569 * tree-ssa-propagate.c: Likewise. 3570 * tree-ssa-reassoc.c: Likewise. 3571 * tree-ssa-sccvn.c: Likewise. 3572 * tree-ssa-sccvn.h: Likewise. 3573 * tree-ssa-strlen.c: Likewise. 3574 * tree-ssa-structalias.c: Likewise. 3575 * tree-ssa-tail-merge.c: Likewise. 3576 * tree-ssa-threadedge.c: Likewise. 3577 * tree-ssa-threadupdate.c: Likewise. 3578 * tree-ssa-uncprop.c: Likewise. 3579 * tree-ssa-uninit.c: Likewise. 3580 * tree-ssa.c: Likewise. 3581 * tree-ssanames.c: Likewise. 3582 * tree-stdarg.c: Likewise. 3583 * tree-streamer-in.c: Likewise. 3584 * tree-streamer-out.c: Likewise. 3585 * tree-streamer.c: Likewise. 3586 * tree-streamer.h: Likewise. 3587 * tree-switch-conversion.c: Likewise. 3588 * tree-vect-data-refs.c: Likewise. 3589 * tree-vect-generic.c: Likewise. 3590 * tree-vect-loop-manip.c: Likewise. 3591 * tree-vect-loop.c: Likewise. 3592 * tree-vect-patterns.c: Likewise. 3593 * tree-vect-slp.c: Likewise. 3594 * tree-vect-stmts.c: Likewise. 3595 * tree-vectorizer.c: Likewise. 3596 * tree-vectorizer.h: Likewise. 3597 * tree-vrp.c: Likewise. 3598 * tree.c: Likewise. 3599 * tree.h: Likewise. 3600 * value-prof.c: Likewise. 3601 * value-prof.h: Likewise. 3602 * var-tracking.c: Likewise. 3603 * varasm.c: Likewise. 3604 * varpool.c: Likewise. 3605 * vmsdbgout.c: Likewise. 3606 * config/bfin/bfin.c: Likewise. 3607 * config/c6x/c6x.c: Likewise. 3608 * config/darwin.c: Likewise. 3609 * config/i386/i386.c: Likewise. 3610 * config/ia64/ia64.c: Likewise. 3611 * config/mep/mep.c: Likewise. 3612 * config/mips/mips.c: Likewise. 3613 * config/pa/pa.c: Likewise. 3614 * config/rs6000/rs6000-c.c: Likewise. 3615 * config/rs6000/rs6000.c: Likewise. 3616 * config/rx/rx.c: Likewise. 3617 * config/spu/spu-c.c: Likewise. 3618 * config/vms/vms.c: Likewise. 3619 * config/vxworks.c: Likewise. 3620 * config/epiphany/resolve-sw-modes.c: Likewise. 3621 36222012-11-17 Jakub Jelinek <jakub@redhat.com> 3623 3624 PR tree-optimization/55236 3625 * fold-const.c (make_range_step) <case NEGATE_EXPR>: For -fwrapv 3626 and signed ARG0_TYPE, force low and high to be non-NULL. 3627 36282012-11-17 H.J. Lu <hongjiu.lu@intel.com> 3629 3630 * common.opt (static-libasan): New option. 3631 * gcc.c (LIBASAN_SPEC): New macro. 3632 (LINK_COMMAND_SPEC): Replace -lasan with LIBASAN_SPEC. 3633 * doc/invoke.texi: Document -static-libasan. 3634 36352012-11-17 Vladimir Makarov <vmakarov@redhat.com> 3636 3637 PR rtl-optimization/55342 3638 * lra-assigns.c (spill_for): Try to allocate other reload pseudos 3639 before and after spilling. 3640 36412012-11-16 Sandra Loosemore <sandra@codesourcery.com> 3642 3643 * doc/extend.texi: Various copy-edits to comply with GCC coding 3644 standards for spelling, terminology, and markup, including use of 3645 American spelling, correct use of terms like "back end" and 3646 "run time", use correct name for GCC, use "@:" markup. 3647 36482012-11-16 Jakub Jelinek <jakub@redhat.com> 3649 3650 PR tree-optimization/55329 3651 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Never clear 3652 bits in needed_eh_cleanup while iterating over the bitmap. 3653 Look through all forwarder blocks at once. 3654 36552012-11-16 Jan Hubicka <jh@suse.cz> 3656 3657 * params.def (max-peeled-insns, max-completely-peeled-insns): Reduce 3658 to 100. 3659 36602012-11-16 Simon Baldwin <simonb@google.com> 3661 3662 * doc/cppopts.texi: Document -f[no-]canonical-system-headers. 3663 * doc/install.texi: Document --enable-canonical-system-headers. 3664 36652012-11-16 Vladimir Makarov <vmakarov@redhat.com> 3666 3667 PR rtl-optimization/55330 3668 * lra-constraints.c (MAX_INHERITANCE_PASSES): New macro. 3669 (lra_inheritance, lra_undo_inheritance): Use it to limit number of 3670 the passes. 3671 36722012-11-16 Matthias Klose <doko@ubuntu.com> 3673 3674 * config/pa/t-linux: New file; define MULTIARCH_DIRNAME. 3675 * config.gcc <hppa*64*-*-linux*, hppa*-*-linux*> (tmake_file): 3676 Include pa/t-linux. 3677 36782012-11-16 Jakub Jelinek <jakub@redhat.com> 3679 3680 PR target/54073 3681 * config/i386/i386.md (mov<mode>cc): Use comparison_operator 3682 instead of ordered_comparison_operator resp. 3683 ix86_fp_comparison_operator predicates. 3684 * config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode 3685 or for -m32 DImode comparisons. 3686 36872012-11-16 Jan Hubicka <jh@suse.cz> 3688 3689 PR tree-optimization/54717 3690 * tree-ssa-pre.c (do_partial_partial_insertion): Consider also edges 3691 with ANTIC_IN. 3692 36932012-11-16 Uros Bizjak <ubizjak@gmail.com> 3694 3695 * config/i386/i386-protos.h (ix86_emit_mode_set): Add third argument. 3696 * config/i386/i386.h (EMIT_MODE_SET): Update. 3697 * config/i386/i386.c (ix86_avx_emit_vzeroupper): New function. 3698 (ix86_emit_mode_set) <AVX_U128>: Call ix86_avx_emit_vzeroupper. 3699 37002012-11-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 3701 3702 bdver3 Enablement 3703 * doc/extend.texi: Add details about bdver3. 3704 * doc/invoke.texi: Add details about bdver3. 3705 * config.gcc (i[34567]86-*-linux* | ...): Add bdver3. 3706 (case ${target}): Add bdver3. 3707 * config/i386/i386.h (TARGET_BDVER3): New definition. 3708 * config/i386/i386.md (define_attr "cpu"): Add bdver3. 3709 * config/i386/sse.md (sseshuf, sseshuf1): New type attributes. 3710 * config/i386/athlon.md: Handle sseshuf attribute. 3711 * config/i386/atom.md: Likewise. 3712 * config/i386/ppro.md: Likewise. 3713 * config/i386/bdver1.md: Likewise. 3714 * config/i386/i386.opt (flag_dispatch_scheduler): Add bdver3. 3715 * config/i386/i386-c.c (ix86_target_macros_internal): Add 3716 bdver3 def_and_undef 3717 * config/i386/driver-i386.c (host_detect_local_cpu): Let 3718 -march=native recognize bdver3 processors. 3719 * config/i386/i386.c (struct processor_costs bdver3_cost): New. 3720 (m_BDVER3): New definition. 3721 (m_AMD_MULTIPLE): Includes m_BDVER3. 3722 (initial_ix86_tune_features): Add bdver3 tune. 3723 (processor_target_table): Add bdver3 entry. 3724 (static const char *const cpu_names): Add bdver3 entry. 3725 (software_prefetching_beneficial_p): Add bdver3. 3726 (ix86_option_override_internal): Add bdver3 instruction sets. 3727 (ix86_option_override_internal): Remove XSAVEOPT for bdver1 and bdver2. 3728 (ix86_issue_rate): Add bdver3. 3729 (ix86_adjust_cost): Add bdver3. 3730 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver3. 3731 (enum processor_type): Add PROCESSOR_BDVER3. 3732 * config/i386/bdver3.md: New file describing bdver3 pipelines. 3733 37342012-11-15 David S. Miller <davem@davemloft.net> 3735 3736 * expmed.c (expand_shift_1): Don't strip non-integral SUBREGs. 3737 3738 * configure.ac: Add check for assembler SPARC4 instruction support. 3739 * configure: Rebuild. 3740 * config.in: Add HAVE_AS_SPARC4 section. 3741 * config/sparc/sparc.opt (mcbcond): New option. 3742 * doc/invoke.texi: Document it. 3743 * config/sparc/constraints.md: New constraint 'A' for 5-bit signed 3744 immediates. 3745 * doc/md.texi: Document it. 3746 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_CBCOND. 3747 (sparc_option_override): Likewise. 3748 (emit_cbcond_insn): New function. 3749 (emit_conditional_branch_insn): Call it. 3750 (emit_cbcond_nop): New function. 3751 (output_ubranch): Use cbcond, remove label arg. 3752 (output_cbcond): New function. 3753 * config/sparc/sparc-protos.h (output_ubranch): Update. 3754 (output_cbcond): Declare it. 3755 (emit_cbcond_nop): Likewise. 3756 * config/sparc/sparc.md (type attribute): New types 'cbcond' 3757 and uncond_cbcond. 3758 (emit_cbcond_nop): New attribute. 3759 (length attribute): Handle cbcond and uncond_cbcond. 3760 (in_call_delay attribute): Reject cbcond and uncond_cbcond. 3761 (in_branch_delay attribute): Likewise. 3762 (in_uncond_branch_delay attribute): Likewise. 3763 (in_annul_branch_delay attribute): Likewise. 3764 (*cbcond_sp32, *cbcond_sp64): New insn patterns. 3765 (jump): Rewrite into an expander. 3766 (*jump_ubranch, *jump_cbcond): New patterns. 3767 * config/sparc/niagara4.md: Match 'cbcond' in 'n4_cti'. 3768 * config/sparc/sparc.h (AS_NIAGARA4_FLAG): New macro, use it 3769 when target default is niagara4. 3770 (SPARC_SIMM5_P): Define. 3771 * config/sparc/sol2.h (AS_SPARC64_FLAG): Adjust. 3772 (AS_SPARC32_FLAG): Define. 3773 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Use 3774 AS_NIAGARA4_FLAG as needed. 3775 37762012-11-15 Steve Ellcey <sellcey@mips.com> 3777 3778 * expr.c (expand_cond_expr_using_cmove): Use promoted mode for temp. 3779 37802012-11-15 Tom de Vries <tom@codesourcery.com> 3781 3782 PR tree-optimization/54619 3783 * tree-ssa-loop-ivopts.c (get_use_type): New function. 3784 (get_computation_at): Use get_use_type. 3785 (get_computation_cost_at): Declare and set mem_mode. Use mem_mode. 3786 37872012-11-15 Jakub Jelinek <jakub@redhat.com> 3788 3789 * asan.c (report_error_func): Set DECL_IGNORED_P, don't touch 3790 DECL_ASSEMBLER_NAME. 3791 (asan_init_func): Likewise. 3792 (asan_finish_file): Use void * instead of __asan_global * as type of 3793 __asan_{,un}register_globals. Set DECL_IGNORED_P on the decls. 3794 37952012-11-15 Matthias Klose <doko@ubuntu.com> 3796 3797 * Makefile.in (if_multiarch): Don't use a GNU make 3.81 feature. 3798 37992012-11-14 Jan Hubicka <jh@suse.cz> 3800 3801 PR bootstrap/55051 3802 * gcov-io.c (gcov_read_summary): Fix array bound check. 3803 38042012-11-14 Sterling Augustine <saugustine@google.com> 3805 3806 PR debug/55328 3807 * dwarf2out.c (index_address_table_entry): Check a node's refcount. 3808 38092012-11-14 Jan Hubicka <jh@suse.cz> 3810 3811 PR bootstrap/55051 3812 * ipa-inline.c (edge_badness): Improve dumping; fix overflow. 3813 38142012-11-14 Matthias Klose <doko@ubuntu.com> 3815 3816 * config/sparc/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES. 3817 * config/sparc/t-linux: New file; define MULTIARCH_DIRNAME. 3818 * config.gcc <sparc-*-linux*> (tmake_file): Include sparc/t-linux 3819 for 32bit non-biarch configurations. 3820 38212012-11-14 Matthias Klose <doko@ubuntu.com> 3822 3823 * doc/invoke.texi: Document -print-multiarch. 3824 * doc/install.texi: Document --enable-multiarch. 3825 * doc/fragments.texi: Document MULTILIB_OSDIRNAMES, MULTIARCH_DIRNAME. 3826 * configure.ac: Add --enable-multiarch option. 3827 * configure: Regenerate. 3828 * Makefile.in (s-mlib): Pass MULTIARCH_DIRNAME to genmultilib. 3829 enable_multiarch, with_float: New macros. 3830 if_multiarch: New macro, define in terms of enable_multiarch. 3831 * genmultilib: Add new argument for the multiarch name. 3832 * gcc.c (multiarch_dir): Define. 3833 (for_each_path): Search for multiarch suffixes. 3834 (driver_handle_option): Handle multiarch option. 3835 (do_spec_1): Pass -imultiarch if defined. 3836 (main): Print multiarch. 3837 (set_multilib_dir): Separate multilib and multiarch names 3838 from multilib_select. 3839 (print_multilib_info): Ignore multiarch names in multilib_select. 3840 * incpath.c (add_standard_paths): Search the multiarch include dirs. 3841 * cppdefault.h (default_include): Document multiarch in multilib 3842 member. 3843 * cppdefault.c: [LOCAL_INCLUDE_DIR, STANDARD_INCLUDE_DIR] Add an 3844 include directory for multiarch directories. 3845 * common.opt: New options --print-multiarch and -imultilib. 3846 * config.gcc <i[34567]86-*-linux* | x86_64-*-linux*> (tmake_file): 3847 Include i386/t-linux. 3848 <i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu> (tmake_file): 3849 Include i386/t-kfreebsd. 3850 <i[34567]86-*-gnu*> (tmake_file): Include i386/t-gnu. 3851 * config/i386/t-linux64: Add multiarch names in 3852 MULTILIB_OSDIRNAMES, define MULTIARCH_DIRNAME. 3853 * config/i386/t-gnu: New file. 3854 * config/i386/t-kfreebsd: Likewise. 3855 * config/i386/t-linux: Likewise. 3856 38572012-11-14 Jan Hubicka <jh@suse.cz> 3858 3859 * tree.c (set_call_expr_flags): New function. 3860 (local_define_builtin): Use it. 3861 * tree.h (set_call_expr_flags): Declare. 3862 38632012-11-14 Uros Bizjak <ubizjak@gmail.com> 3864 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com> 3865 3866 PR target/47440 3867 * config/i386/i386.c (gate_insert_vzeroupper): New function. 3868 (rest_of_handle_insert_vzeroupper): Ditto. 3869 (struct rtl_opt_pass pass_insert_vzeroupper): New. 3870 (ix86_option_override): Register vzeroupper insertion pass here. 3871 (ix86_check_avx256_register): Handle SUBREGs properly. 3872 (ix86_init_machine_status): Remove optimize_mode_switching[AVX_U128] 3873 initialization. 3874 38752012-11-14 David Edelsohn <dje.gcc@gmail.com> 3876 3877 * configure.ac (HAVE_LD_LARGE_TOC): Add AIX test. 3878 * configure: Regenerated. 3879 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Warn if 3880 other toc options used with cmodel. Disable TARGET_NO_FP_IN_TOC 3881 and TARGET_NO_SUM_IN_TOC if not CMODEL_SMALL. CMODEL_MEDIUM means 3882 CMODEL_LARGE on AIX. 3883 (ASM_SPEC): -mvsx implies -mpwr6. Add -many. 3884 (ASM_DEFAULT_SPEC): Use -mpwr4. 3885 (TARGET_CMODEL): Define. 3886 (SET_CMODEL): Define. 3887 * config/rs6000/rs6000.md (largetoc_high_aix<mode>): New. 3888 (largetoc_high_plus_aix<mode>): New. 3889 (largetoc_low<mode>): Change to mode iterator. Test TARGET_TOC 3890 instead of TARGET_ELF. 3891 (tocref): Remove TARGET_ELF test. 3892 * config/rs6000/rs6000.c (output_toc): Use [TE] for large TOC 3893 symbols on AIX. 3894 * config/rs6000/aix64.opt (mcmodel): New. 3895 38962012-11-14 Andreas Tobler <andreast@fgznet.ch> 3897 3898 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Guard 3899 variables with ASM_OUTPUT_TYPE_DIRECTIVE and 3900 HAVE_GNU_INDIRECT_FUNCTION where needed. 3901 39022012-11-13 Ian Lance Taylor <iant@google.com> 3903 3904 * common.opt (fPIC, fPIE, fpic, fpie): Create a Negative loop such 3905 that any of these options disables the others. 3906 39072012-11-13 Sriraman Tallam <tmsriram@google.com> 3908 3909 * cgraph.c (insert_new_cgraph_node_version): Use cgraph_get_node 3910 instead of cgraph_get_create_node. 3911 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Move 3912 ifunc not supported code to the end. 3913 39142012-11-13 Martin Jambor <mjambor@suse.cz> 3915 3916 PR tree-optimization/55253 3917 * ipa-cp.c (merge_aggregate_lattices): Propagate aggs_contain_variable 3918 flag. 3919 39202012-11-13 Eric Botcazou <ebotcazou@adacore.com> 3921 H.J. Lu <hongjiu.lu@intel.com> 3922 3923 PR middle-end/55142 3924 * config/i386/i386.c (legitimize_pic_address): Properly handle 3925 REG + CONST. 3926 (ix86_print_operand_address): Set code to 'k' when forcing 3927 addr32 prefix. For x32, zero-extend negative displacement if 3928 it < -16*1024*1024. 3929 39302012-11-13 Uros Bizjak <ubizjak@gmail.com> 3931 3932 PR target/41993 3933 * mode-switching.c (create_pre_exit): Set return_copy to last_insn if 3934 copy_start is not a function return regno. Skip debug instructions 3935 in instruction scan loop. 3936 39372012-11-13 Andrew Stubbs <ams@codesourcery.com> 3938 Ulrich Weigand <ulrich.weigand@linaro.org> 3939 3940 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Fix comment. 3941 * config/arm/arm.md (opt, opt_enabled): New attributes. 3942 (enabled): Use opt_enabled. 3943 (ashldi3, ashrdi3, lshrdi3): Add TARGET_NEON case. 3944 (ashldi3): Allow general operands for TARGET_NEON case. 3945 * config/arm/iterators.md (rshifts): New code iterator. 3946 (shift, shifttype): New code attributes. 3947 * config/arm/neon.md (UNSPEC_LOAD_COUNT): New unspec type. 3948 (neon_load_count, ashldi3_neon_noclobber, ashldi3_neon, 3949 signed_shift_di3_neon, unsigned_shift_di3_neon, 3950 ashrdi3_neon_imm_noclobber, lshrdi3_neon_imm_noclobber, 3951 <shift>di3_neon): New patterns. 3952 39532012-11-13 Jakub Jelinek <jakub@redhat.com> 3954 3955 * Makefile.in (asan.o): Depend on $(TM_P_H). 3956 3957 PR tree-optimization/55281 3958 * tree-vect-generic.c (expand_vector_condition): Accept any 3959 is_gimple_val rather than just SSA_NAME if not COMPARISON_CLASS_P. 3960 * fold-const.c (fold_ternary_loc): Fold VEC_COND_EXPR if arg0 is 3961 either integer_all_onesp or integer_zerop. 3962 * tree-vect-stmts.c (vectorizable_condition): Build the condition 3963 using corresponding vector integer type instead of vectype. 3964 3965 PR rtl-optimization/54127 3966 * cfgrtl.c (force_nonfallthru_and_redirect): When redirecting 3967 asm goto labels from BB_HEAD (e->dest) to target bb, decrement 3968 LABEL_NUSES of BB_HEAD (e->dest) and increment LABEL_NUSES of 3969 BB_HEAD (target) appropriately and adjust JUMP_LABEL and/or 3970 REG_LABEL_TARGET and REG_LABEL_OPERAND. 3971 39722012-11-12 Jakub Jelinek <jakub@redhat.com> 3973 3974 * asan.c (instrument_builtin_call) <case BUILT_IN_BCOPY>: Fix up 3975 dest assignment. 3976 39772012-11-13 Hans-Peter Nilsson <hp@axis.com> 3978 3979 PR target/55257 3980 * config/cris/cris.c (cris_asm_output_mi_thunk): Call 3981 final_start_function and final_end_function. 3982 39832012-11-12 David Edelsohn <dje.gcc@gmail.com> 3984 3985 * asan.c: Include tm_p.h. 3986 39872012-11-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 3988 3989 PR target/55195 3990 * config/pa/pa.md (attr type): Add sibcall and sh_func_adrs insn types. 3991 (in_branch_delay): Don't allow sibcall or sh_func_adrs insns. 3992 (in_nullified_branch_delay): Likewise. 3993 (in_call_delay): Likewise. 3994 Define delay for sibcall insns. Adjust Z3 and Z4 insn reservations for 3995 new types. Add opaque cond to mark all calls, sibcalls, dyncalls and 3996 the $$sh_func_adrs call as variable. Update type of sibcalls and 3997 $$sh_func_adrs call. 3998 * config/pa/pa.c (pa_adjust_insn_length): Revise to return updated 3999 length instead of adjustment. Handle negative and undefined call 4000 adjustments for insn_default_length. Remove adjustment for millicode 4001 insn with unfilled delay slot. 4002 (pa_output_millicode_call): Update for revised millicode length. 4003 * config/pa/pa.h (ADJUST_INSN_LENGTH): Revise to set LENGTH. 4004 40052012-11-12 Eric Botcazou <ebotcazou@adacore.com> 4006 4007 * tree-ssa-ccp.c (dump_lattice_value) <CONSTANT>: Fix duplication. 4008 40092012-11-12 Eric Botcazou <ebotcazou@adacore.com> 4010 4011 * common.opt (fvar-tracking-uninit): Document. 4012 * toplev.c (process_options): Fix handling of flag_var_tracking_uninit. 4013 * config/darwin.c (darwin_override_options): Likewise. 4014 40152012-11-12 Steven Bosscher <steven@gcc.gnu.org> 4016 4017 * sched-vis.c (print_pattern): Handle NULL patterns. 4018 40192012-11-12 Steven Bosscher <steven@gcc.gnu.org> 4020 Jakub Jelinek <jakub@redhat.com> 4021 4022 PR rtl-optimization/51447 4023 * df-scan.c (df_get_entry_block_def_set): Add global regs to the set. 4024 * df-problems.c (df_lr_local_compute): Make global regs always live. 4025 * dce.c (deletable_insn_p): Make insns setting a global reg 4026 inherently necessary. 4027 40282012-11-12 Ian Bolton <ian.bolton@arm.com> 4029 4030 * config/aarch64/aarch64.md (cmov<mode>_insn): Emit CSINC when 4031 one of the alternatives is constant 1. 4032 * config/aarch64/constraints.md: New constraint. 4033 * config/aarch64/predicates.md: Rename predicate 4034 aarch64_reg_zero_or_m1 to aarch64_reg_zero_or_m1_or_1. 4035 40362012-11-12 Ian Bolton <ian.bolton@arm.com> 4037 4038 * config/aarch64/aarch64.md (*compare_neg<mode>): New pattern. 4039 40402012-11-12 Tobias Burnus <burnus@net-b.de> 4041 4042 * doc/invoke.texi: Move -faddress-sanitizer from Optimization 4043 Options to Debugging Options. 4044 40452012-11-12 Jakub Jelinek <jakub@redhat.com> 4046 4047 * asan.c: Formatting cleanups. 4048 40492012-11-12 Wei Mi <wmi@google.com> 4050 4051 * gcc.c (LINK_COMMAND_SPEC): Add -lasan to link command if 4052 -faddress-sanitizer is on. 4053 40542012-11-12 Dodji Seketeli <dodji@redhat.com> 4055 4056 * gimple.h (is_gimple_builtin_call): Declare ... 4057 * gimple.c (is_gimple_builtin_call): ... new public function. 4058 * asan.c (insert_if_then_before_iter, instrument_mem_region_access, 4059 instrument_strlen_call, maybe_instrument_builtin_call, 4060 instrument_call): New static functions. 4061 (create_cond_insert_point): Renamed 4062 create_cond_insert_point_before_iter into this. Add a new 4063 parameter to decide whether to insert the condition before or 4064 after the statement iterator. 4065 (build_check_stmt): Adjust for the new create_cond_insert_point. 4066 Add a new parameter to decide whether to add the instrumentation 4067 code before or after the statement iterator. 4068 (instrument_assignment): Factorize from ... 4069 (transform_statements): ... here. Use maybe_instrument_call to 4070 instrument builtin function calls as well. 4071 (instrument_derefs): Adjust for the new parameter of 4072 build_check_stmt. Fix detection of bit-field access. 4073 40742012-11-12 Dodji Seketeli <dodji@redhat.com> 4075 4076 * asan.c (create_cond_insert_point_before_iter): Factorize out of ... 4077 (build_check_stmt): ... here. 4078 40792012-11-12 Dodji Seketeli <dodji@redhat.com> 4080 4081 * asan.c (create_cond_insert_point_before_iter): Factorize out of ... 4082 (build_check_stmt): ... here. 4083 40842012-11-12 Dodji Seketeli <dodji@redhat.com> 4085 4086 * asan.c (build_check_stmt): Accept the memory access to be 4087 represented by an SSA_NAME. 4088 40892012-11-12 Jakub Jelinek <jakub@redhat.com> 4090 Wei Mi <wmi@google.com> 4091 4092 * varasm.c: Include asan.h. 4093 (assemble_noswitch_variable): Grow size by asan_red_zone_size 4094 if decl is asan protected. 4095 (place_block_symbol): Likewise. 4096 (assemble_variable): If decl is asan protected, increase 4097 DECL_ALIGN if needed, and for decls emitted using 4098 assemble_variable_contents append padding zeros after it. 4099 * Makefile.in (varasm.o): Depend on asan.h. 4100 * asan.c: Include output.h. 4101 (asan_pp, asan_pp_initialized, asan_ctor_statements): New variables. 4102 (asan_pp_initialize, asan_pp_string): New functions. 4103 (asan_emit_stack_protection): Use asan_pp{,_initialized} 4104 instead of local pp{,_initialized} vars, use asan_pp_initialize 4105 and asan_pp_string helpers. 4106 (asan_needs_local_alias, asan_protect_global, 4107 asan_global_struct, asan_add_global): New functions. 4108 (asan_finish_file): Protect global vars that can be protected. Use 4109 asan_ctor_statements instead of ctor_statements 4110 * asan.h (asan_protect_global): New prototype. 4111 (asan_red_zone_size): New inline function. 4112 41132012-11-12 Jakub Jelinek <jakub@redhat.com> 4114 4115 * Makefile.in (asan.o): Depend on $(EXPR_H) $(OPTABS_H). 4116 (cfgexpand.o): Depend on asan.h. 4117 * asan.c: Include expr.h and optabs.h. 4118 (asan_shadow_set): New variable. 4119 (asan_shadow_cst, asan_emit_stack_protection): New functions. 4120 (asan_init_shadow_ptr_types): Initialize also asan_shadow_set. 4121 * cfgexpand.c: Include asan.h. Define HOST_WIDE_INT heap vector. 4122 (partition_stack_vars): If i is large alignment and j small 4123 alignment or vice versa, break out of the loop instead of continue, 4124 and put the test earlier. If flag_asan, break out of the loop 4125 if for small alignment size is different. 4126 (struct stack_vars_data): New type. 4127 (expand_stack_vars): Add DATA argument. Change PRED type to 4128 function taking size_t argument instead of tree. Adjust pred 4129 calls. Fill DATA in and add needed padding in between variables 4130 if -faddress-sanitizer. 4131 (defer_stack_allocation): Defer everything for flag_asan. 4132 (stack_protect_decl_phase_1, stack_protect_decl_phase_2): Take 4133 size_t index into stack_vars array instead of the decl directly. 4134 (asan_decl_phase_3): New function. 4135 (expand_used_vars): Return var destruction sequence. Adjust 4136 expand_stack_vars calls, add another one for flag_asan. Call 4137 asan_emit_stack_protection if expand_stack_vars added anything 4138 to the vectors. 4139 (expand_gimple_basic_block): Add disable_tail_calls argument. 4140 (gimple_expand_cfg): Pass true to it if expand_used_vars returned 4141 non-NULL. Emit the sequence returned by expand_used_vars after 4142 return_label. 4143 * asan.h (asan_emit_stack_protection): New prototype. 4144 (asan_shadow_set): New decl. 4145 (ASAN_RED_ZONE_SIZE, ASAN_STACK_MAGIC_LEFT, ASAN_STACK_MAGIC_MIDDLE, 4146 ASAN_STACK_MAGIC_RIGHT, ASAN_STACK_FRAME_MAGIC): Define. 4147 (asan_protect_stack_decl): New inline. 4148 * toplev.c (process_options): Also disable -faddress-sanitizer on 4149 !FRAME_GROWS_DOWNWARDS targets. 4150 41512012-11-12 Jakub Jelinek <jakub@redhat.com> 4152 4153 * asan.c (build_check_stmt): Rename join_bb variable to else_bb. 4154 (gate_asan_O0): New function. 4155 (pass_asan_O0): New variable. 4156 * passes.c (init_optimization_passes): Add pass_asan_O0. 4157 * tree-pass.h (pass_asan_O0): New declaration. 4158 41592012-11-12 Jakub Jelinek <jakub@redhat.com> 4160 Xinliang David Li <davidxl@google.com> 4161 Dodji Seketeli <dodji@redhat.com> 4162 4163 * Makefile.in (GTFILES): Add $(srcdir)/asan.c. 4164 (asan.o): Update the dependencies of asan.o. 4165 * asan.c (tm.h, tree.h, tm_p.h, basic-block.h, flags.h 4166 function.h, tree-inline.h, tree-dump.h, diagnostic.h, demangle.h, 4167 langhooks.h, ggc.h, cgraph.h, gimple.h): Remove these unused but 4168 included headers. 4169 (shadow_ptr_types): New variable. 4170 (report_error_func): Change is_store argument to bool, don't append 4171 newline to function name. 4172 (PROB_VERY_UNLIKELY, PROB_ALWAYS): Define. 4173 (build_check_stmt): Change is_store argument to bool. Emit GIMPLE 4174 directly instead of creating trees and gimplifying them. Mark 4175 the error reporting function as very unlikely. 4176 (instrument_derefs): Change is_store argument to bool. Use 4177 int_size_in_bytes to compute size_in_bytes, simplify size check. 4178 Use build_fold_addr_expr instead of build_addr. 4179 (transform_statements): Adjust instrument_derefs caller. 4180 Use gimple_assign_single_p as stmt test. Don't look at MEM refs 4181 in rhs2. 4182 (asan_init_shadow_ptr_types): New function. 4183 (asan_instrument): Don't push/pop gimplify context. 4184 Call asan_init_shadow_ptr_types if not yet initialized. 4185 * asan.h (ASAN_SHADOW_SHIFT): Adjust comment. 4186 41872012-11-12 Jakub Jelinek <jakub@redhat.com> 4188 4189 * toplev.c (process_options): Warn and turn off 4190 -faddress-sanitizer if not supported by target. 4191 * asan.c: Include target.h. 4192 (asan_scale, asan_offset_log_32, asan_offset_log_64, 4193 asan_offset_log): Removed. 4194 (build_check_stmt): Use ASAN_SHADOW_SHIFT and 4195 targetm.asan_shadow_offset (). 4196 (asan_instrument): Don't initialize asan_offset_log. 4197 * asan.h (ASAN_SHADOW_SHIFT): Define. 4198 * target.def (TARGET_ASAN_SHADOW_OFFSET): New hook. 4199 * doc/tm.texi.in (TARGET_ASAN_SHADOW_OFFSET): Add it. 4200 * doc/tm.texi: Regenerated. 4201 * Makefile.in (asan.o): Depend on $(TARGET_H). 4202 * config/i386/i386.c (ix86_asan_shadow_offset): New function. 4203 (TARGET_ASAN_SHADOW_OFFSET): Define. 4204 42052012-11-12 Wei Mi <wmi@google.com> 4206 Diego Novillo <dnovillo@google.com> 4207 Dodji Seketeli <dodji@redhat.com> 4208 4209 * Makefile.in: Add asan.c and its dependencies. 4210 * common.opt: Add -faddress-sanitizer option. 4211 * doc/invoke.texi: Document the new flag. 4212 * passes.c: Add the asan pass. 4213 * toplev.c (compile_file): Call asan_finish_file. 4214 * asan.c: New file. 4215 * asan.h: New file. 4216 * tree-pass.h: Declare pass_asan. 4217 42182012-11-12 Tobias Burnus <burnus@net-b.de> 4219 4220 * diagnostic.c (diagnostic_append_note): Also call va_end when 4221 inhibit_notes_p is true. 4222 42232012-11-12 Bin Cheng <bin.cheng@arm.com> 4224 4225 * gcse.c (struct bb_data): Add new fields, old_pressure, live_in 4226 and backup. 4227 (get_regno_pressure_class): Add prototype. 4228 (update_bb_reg_pressure): New. 4229 (should_hoist_expr_to_dom): Add new parameter from. 4230 Monitor the change of reg pressure and use it to drive hoisting. 4231 (hoist_code): Update LIVE and reg pressure information. 4232 (calculate_bb_reg_pressure): Initialize live_in and backup. 4233 42342012-11-12 Oleg Endo <olegendo@gcc.gnu.org> 4235 4236 * doc/md.texi (Standard Pattern Names For Generation): Fix swapped 4237 sine and cosine operands in the sincos description. 4238 42392012-11-12 Oleg Endo <olegendo@gcc.gnu.org> 4240 4241 PR target/53512 4242 * config/sh/sh.md (sincossf3): Fix swapped sin and cos operands. 4243 42442012-11-11 H.J. Lu <hongjiu.lu@intel.com> 4245 4246 * config/i386/i386.md (*movti_internal_rex64): Remove "!" from 4247 riF->o alternative. 4248 42492012-11-11 Eric Botcazou <ebotcazou@adacore.com> 4250 4251 * config/sparc/sparc.h (AS_NIAGARA3_FLAG): Tweak. 4252 * config/sparc/sol2.h (TARGET_CPU_niagara4 support): Fix pasto. 4253 42542012-11-11 Eric Botcazou <ebotcazou@adacore.com> 4255 H.J. Lu <hongjiu.lu@intel.com> 4256 4257 PR rtl-optimization/55247 4258 PR middle-end/55259 4259 * emit-rtl.c (adjust_address_1): If POINTERS_EXTEND_UNSIGNED > 0, 4260 handle ZERO_EXTEND. 4261 * recog.c (offsettable_address_addr_space_p): Likewise. 4262 42632012-11-11 Steven Bosscher <steven@gcc.gnu.org> 4264 4265 PR middle-end/55263 4266 * postreload.c (rest_of_handle_postreload): With non-call exceptions, 4267 if edges are purged call cleanup_cfg to remove unreachable blocks. 4268 42692012-11-11 Sandra Loosemore <sandra@codesourcery.com> 4270 4271 * doc/extend.texi: Copy-edit to use "built-in function" instead 4272 of "builtin", per GCC coding standards. Also use consistent 4273 capitalization in titles of sections describing built-in functions. 4274 42752012-11-11 Martin Jambor <mjambor@suse.cz> 4276 4277 PR tree-optimization/55238 4278 * ipa-cp.c (agg_pass_through_permissible_p): New function. 4279 (propagate_aggs_accross_jump_function): Use it. 4280 (find_aggregate_values_for_callers_subset): Likewise and relax an 4281 assert. 4282 42832012-11-10 Uros Bizjak <ubizjak@gmail.com> 4284 4285 PR target/47440 4286 * config/i386/i386.c (check_avx256_stores): Remove. 4287 (ix86_check_avx256_register): New. 4288 (ix86_avx_u128_mode_needed): Use ix86_check_avx256_register. 4289 Check the whole RTX for 256bit registers using for_each_rtx. 4290 (ix86_check_avx_stores): New. 4291 (ix86_avx_u128_mode_after): Change mode of CALL RTX to AVX_U128_CLEAN 4292 if there are no 256bit registers used in the function return register. 4293 (ix86_avx_u128_mode_entry): Use ix86_check_avx256_register. 4294 (ix86_avx_u128_mode_exit): Ditto. 4295 42962012-11-10 Jan Hubicka <jh@suse.cz> 4297 4298 PR middle-end/48636 4299 * ipa-inline.c (want_inline_small_function_p): Take aray index hint. 4300 (edge_badness): Likewise. 4301 * ipa-inline.h (inline_hints_vals): Add array_index and comments. 4302 (inline_summary): Add ARRAY_INDEX. 4303 * ipa-inline-analysis.c (dump_inline_hints): Dump array_index hint. 4304 (reset_inline_summary): Handle array_index hint. 4305 (inline_node_duplication_hook): Likewise. 4306 (dump_inline_summary): Likewise. 4307 (array_index_predicate): New function. 4308 (estimate_function_body_sizes): Use it. 4309 (estimate_node_size_and_time): Use array_index hint. 4310 (inline_merge_summary, inline_read_section): Likewise. 4311 43122012-11-10 Sandra Loosemore <sandra@codesourcery.com> 4313 4314 * doc/extend.texi: Copy-edit to use "bit-field" consistently 4315 instead of "bitfield" or "bit field". 4316 43172012-11-10 Sandra Loosemore <sandra@codesourcery.com> 4318 4319 * doc/extend.texi: Copy-edit to fix incorrect hyphenation phrases 4320 involving "bit", "byte", "word", "precision", and "floating" 4321 modifiers. 4322 43232012-11-10 Sandra Loosemore <sandra@codesourcery.com> 4324 4325 * doc/extend.texi: Copy-edit to fix incorrect uses of "which" 4326 and "that" throughout the file. 4327 43282012-11-10 Andrew Pinski <apinski@cavium.com> 4329 4330 PR bootstrap/55202 4331 * configure.ac: Set PLUGIN_LD_SUFFIX to just "ld" if it was "ld-new" 4332 or "collect-ld". 4333 * configure: Regenerate. 4334 43352012-11-10 Eric Botcazou <ebotcazou@adacore.com> 4336 4337 * expr.c (store_field): Remove TYPE parameter. Remove block of code 4338 dealing with BLKmode in registers. Reimplement this support using 4339 pseudo-registers and bit-field techniques. 4340 (store_constructor_field): Remove TYPE parameter and adjust calls to 4341 store_field. 4342 (expand_assignment): Adjust calls to store_field. Add comment. 4343 (store_expr): Add comment. 4344 (store_constructor): Adjust calls to store_constructor_field. 4345 (expand_expr_real_2): Adjust call to store_field. 4346 43472012-11-10 Vladimir Makarov <vmakarov@redhat.com> 4348 Uros Bizjak <ubizjak@gmail.com> 4349 4350 PR target/55247 4351 * config/i386/i386.md (*movti_internal_rex64): Add "!" to riF->o 4352 alternative. 4353 43542012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net> 4355 4356 PR c++/54413 4357 * doc/invoke.texi: Document f[no-]ext-numeric-literals flag. 4358 43592012-11-09 Eric Botcazou <ebotcazou@adacore.com> 4360 4361 * doc/install.texi (sparc64-x-solaris2): Mention MPC as well. 4362 43632012-11-09 Richard Henderson <rth@redhat.com> 4364 4365 * config/i386/i386.c (ix86_lra_p): Remove. 4366 (TARGET_LRA_P): Use hook_bool_void_true. 4367 43682012-11-09 Jason Merrill <jason@redhat.com> 4369 4370 * attribs.c (lookup_attribute_spec): Handle getting a TREE_LIST. 4371 43722012-11-09 Vladimir Makarov <vmakarov@redhat.com> 4373 4374 PR tree-optimization/55154 4375 * lra-int.h (LRA_LOSER_COST_FACTOR, LRA_MAX_REJECT): New macros. 4376 * lra.c (setup_operand_alternative): Use them. 4377 * lra-constraints.c (LOSER_COST_FACTOR, MAX_OVERALL_COST_BOUND): 4378 Remove. 4379 (process_alt_operands): Use LRA_LOSER_COST_FACTOR and LRA_MAX_REJECT. 4380 Accumulate reject instead of setting for non-const. 4381 (curr_insn_transform): Initialize best_losers and best_overall by 4382 INT_MAX. 4383 43842012-11-09 Christian Bruel <christian.bruel@st.com> 4385 4386 * config/sh/sh.c (sh_can_use_simple_return_p): Enable with 4387 -freorder-blocks-and-partition. 4388 43892012-11-09 Kenneth Zadeck <zadeck@naturalbridge.com> 4390 4391 * rtl.h (CONST_SCALAR_INT_P): New macro. 4392 * cfgexpand.c (expand_debug_locations): Changed to use 4393 CONST_SCALAR_INT_P macro. 4394 * combine.c (try_combine, subst, make_extraction, 4395 gen_lowpart_for_combine): Ditto. 4396 * cselib.c (entry_and_rtx_equal_p, rtx_equal_for_cselib_1): Ditto. 4397 * dwarf2out.c (loc_descriptor): Ditto. 4398 * emit-rtl.c (gen_lowpart_common): Ditto. 4399 * ira-costs.c (record_reg_classes, record_address_regs): Ditto. 4400 * ira-lives.c (single_reg_class): Ditto. 4401 * recog.c (simplify_while_replacing, asm_operand_ok, 4402 constrain_operands): Ditto. 4403 * reload.c (find_reloads): Ditto. 4404 * simplify-rtx.c (simplify_unary_operation_1, 4405 simplify_const_unary_operation, simplify_binary_operation_1, 4406 simplify_const_binary_operation, simplify_relational_operation_1, 4407 simplify_subreg): Ditto. 4408 44092012-11-09 Steven Bosscher <steven@gcc.gnu.org> 4410 4411 PR middle-end/54385 4412 * postreload.c (reload_cse_simplify): Return a bool indicating 4413 whether the CFG was changed. 4414 (reload_cse_regs_1): Traverse the CFG instead of the insns chain. 4415 Cleanup the CFG if edges may have been removed. 4416 (reload_cse_regs): Update. 4417 44182012-11-09 Andrey Belevantsev <abel@ispras.ru> 4419 4420 PR rtl-optimization/54472 4421 * sel-sched-ir.c (has_dependence_note_reg_set): Handle implicit sets. 4422 (has_dependence_note_reg_clobber, has_dependence_note_reg_use): 4423 Likewise. 4424 44252012-11-09 Eric Botcazou <ebotcazou@adacore.com> 4426 4427 * config/i386/i386.c (release_scratch_register_on_entry): Also adjust 4428 sp_offset manually. 4429 44302012-11-08 Christian Bruel <christian.bruel@st.com> 4431 4432 * tree-ssa-tail-merge.c (replace_block_by): Update bb2 profile count. 4433 Do not reset dead bb1->frequency. 4434 44352012-11-08 Steven Bosscher <steven@gcc.gnu.org> 4436 4437 PR tree-optimization/55191 4438 * cfganal.c (connect_infinite_loops_to_exit): Call dfs_deadend here. 4439 (flow_dfs_compute_reverse_execute): Don't call it here. 4440 44412012-11-08 Jakub Jelinek <jakub@redhat.com> 4442 4443 PR debug/53145 4444 * dwarf2out.c (gen_compile_unit_die): Don't call gen_producer_string 4445 here, instead add "" if producer_string is NULL. 4446 (dwarf2out_finish): Call gen_producer_string here, unconditionally 4447 decrease refcount of the old indirect string and set val_str to 4448 find_AT_string result. 4449 4450 PR debug/54499 4451 * cgraphunit.c (assemble_thunk): Don't call source_line debug hook 4452 here, instead call insn_locations_{init,finalize} and initialize 4453 prologue_location. 4454 44552012-11-08 Dmitry Gorbachev <d.g.gorbachev@gmail.com> 4456 4457 PR driver/54789 4458 * gcc.c (process_command): Use save_switch for synthesized 4459 -fcompare-debug=* option; mark the switch as known. 4460 44612012-11-08 Jakub Jelinek <jakub@redhat.com> 4462 4463 PR target/54308 4464 * config/rs6000/rs6000.c (legitimate_indirect_address_p): Remove 4465 inline keyword. 4466 44672012-11-08 Bernd Schmidt <bernds@codesourcery.com> 4468 4469 PR rtl-optimization/54850 4470 * sched-deps.c (find_inc): Add all dependencies from the inc_insn 4471 to the mem_insn. 4472 44732012-11-08 Jan Hubicka <jh@suse.cz> 4474 4475 PR middle-end/48636 4476 * ipa-inline.c (big_speedup_p): New function. 4477 (want_inline_small_function_p): Use it. 4478 (edge_badness): Dump it. 4479 * params.def (inline-min-speedup): New parameter. 4480 * doc/invoke.texi (inline-min-speedup): Document. 4481 44822012-11-08 Martin Jambor <mjambor@suse.cz> 4483 4484 * ipa-prop.c (determine_known_aggregate_parts): Skip writes to 4485 different declarations when tracking writes to a declaration. 4486 44872012-11-07 David S. Miller <davem@davemloft.net> 4488 4489 * config/sparc/constraints.md ("U"): Document, in detail, 4490 which this constraint is necessary. 4491 44922012-11-07 Uros Bizjak <ubizjak@gmail.com> 4493 4494 PR middle-end/55235 4495 * expr.c (store_expr): Do not call emit_block_move for 4496 non-BLKmode values. 4497 44982012-11-07 Eric Botcazou <ebotcazou@adacore.com> 4499 4500 PR middle-end/55219 4501 * fold-const.c (fold_binary_op_with_conditional_arg): Do not fold if 4502 the argument is itself a conditional expression. 4503 45042012-11-07 Vladimir Makarov <vmakarov@redhat.com> 4505 4506 PR rtl-optimization/55122 4507 * lra-constraints.c (match_reload): Sync values for dead input pseudos. 4508 45092012-11-07 Richard Henderson <rth@redhat.com> 4510 4511 * trans-mem.c (pass_ipa_tm): Don't use TODO_update_ssa. 4512 45132012-11-07 Peter Bergner <bergner@vnet.ibm.com> 4514 4515 * doc/invoke.texi (-mcpu=power8): Document. 4516 * config.in (HAVE_AS_POWER8): New. 4517 * config.gcc: Add cpu_type power8. 4518 * configure.ac: (HAVE_AS_POWER8): Check for assembler support for 4519 the POWER8 instructions. 4520 * configure: Regenerate. 4521 * config/rs6000/rs6000.h: (ASM_CPU_POWER8_SPEC): Define. 4522 (ASM_CPU_SPEC): Pass %(asm_cpu_power8) for -mcpu=power8. 4523 (EXTRA_SPECS): Add asm_cpu_power8 spec string. 4524 * config/rs6000/rs6000-cpus.def (processor_target_table): Alias 4525 POWER8 to POWER7. 4526 * config/rs6000/rs6000-tables.opt: Regenerate. 4527 * config/rs6000/driver-rs6000.c (ASM_CPU_SPEC): For -mcpu=power8, 4528 pass %(asm_cpu_power8)/-mpwr8. 4529 * config/rs6000/aix53.h: Likewise. 4530 * config/rs6000/aix61.h: Likewise. 4531 45322012-11-07 Uros Bizjak <ubizjak@gmail.com> 4533 4534 PR target/55224 4535 * config/i386/i386.c (ix86_function_ok_for_sibcall): Put back exception 4536 to make a sibcall if one of the functions has void return type. 4537 45382012-11-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 4539 4540 PR c/53063 4541 * doc/invoke.texi (Wformat): Update. 4542 45432012-11-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 4544 4545 * optc-gen.awk: Factor code out to... 4546 * opt-functions.awk (lang_enabled_by): ... this new function. 4547 45482012-11-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 4549 4550 PR c/53063 4551 * common.opt (Wswitch,Wswitch-default,Wswitch-enum): Move to c.opt. 4552 45532012-11-07 Yufeng Zhang <yufeng.zhang@arm.com> 4554 4555 * config/aarch64/aarch64.c (aarch64_expand_prologue): Add the missing 4556 argument 'Pmode' to the 'plus_constant' call. 4557 45582012-11-07 Martin Jambor <mjambor@suse.cz> 4559 4560 PR tree-optimization/53787 4561 * ipa-cp.c (ipcp_value_source): New field offset. 4562 (ipcp_agg_lattice): New type. 4563 (ipcp_param_lattices): Likewise, move virt_call from ipcp_lattice here. 4564 (ipcp_agg_lattice_pool): New variable. 4565 (ipa_get_parm_lattices): New function. 4566 (ipa_get_lattice): Turned into ipa_get_scalar_lat, use the above. 4567 Adjusted all callers. 4568 (print_lattice): New function. 4569 (print_all_lattices): Use the above, also print aggregate lattices. 4570 (set_agg_lats_to_bottom): New function. 4571 (set_agg_lats_contain_variable): Likewise. 4572 (set_all_contains_variable): Likewise. 4573 (initialize_node_lattices): Also handle aggregate lattices, set 4574 virt_call in ipcp_param_lattices. 4575 (add_value_source): Handle offsets. 4576 (add_value_to_lattice): Likewise. 4577 (add_scalar_value_to_lattice): New function. 4578 (propagate_vals_accross_pass_through): Use add_scalar_value_to_lattice. 4579 (propagate_vals_accross_ancestor): Likewise. 4580 (propagate_accross_jump_function): Renamed to 4581 propagate_scalar_accross_jump_function, use 4582 add_scalar_value_to_lattice. 4583 (set_check_aggs_by_ref): New function. 4584 (merge_agg_lats_step): Likewise. 4585 (set_chain_of_aglats_contains_variable): Likewise. 4586 (merge_aggregate_lattices): Likewise. 4587 (propagate_constants_accross_call): Also handle aggregate lattices. 4588 (hint_time_bonus): New function. 4589 (context_independent_aggregate_values): Likewise. 4590 (gather_context_independent_values): Also handle agggregate values. 4591 (agg_jmp_p_vec_for_t_vec): New function. 4592 (estimate_local_effects): Also handle agggregate values. 4593 (add_all_node_vals_to_toposort): Likewise. 4594 (ipcp_propagate_stage): Use struct ipcp_param_lattices. 4595 (get_clone_agg_value): New function. 4596 (cgraph_edge_brings_value_p): Also handle agggregate values. 4597 (create_specialized_node): Likewise. 4598 (find_more_values_for_callers_subset): Rename to 4599 find_more_scalar_values_for_callers_subset. Modify dump. 4600 (copy_plats_to_inter): New function. 4601 (intersect_with_plats): Likewise. 4602 (agg_replacements_to_vector): Likewise. 4603 (intersect_with_agg_replacements): Likewise. 4604 (find_aggregate_values_for_callers_subset): Likewise. 4605 (known_aggs_to_agg_replacement_list): Likewise. 4606 (cgraph_edge_brings_all_scalars_for_node): Likewise. 4607 (cgraph_edge_brings_all_agg_vals_for_node): Likewise. 4608 (perhaps_add_new_callers): Old functionality moved to 4609 cgraph_edge_brings_all_scalars_for_node, call it and 4610 cgraph_edge_brings_all_agg_vals_for_node. 4611 (ipcp_val_in_agg_replacements_p): New function. 4612 (decide_about_value): New function. 4613 (decide_whether_version_node): A lot of functionality moved to 4614 decide_about_value. Also handle agggregate values. 4615 (ipcp_driver): Also allocate ipcp_agg_lattice_pool. 4616 (pass_ipa_cp): Fill in new entries. 4617 * ipa-prop.c (ipa_node_agg_replacements): New variable. 4618 (free_parms_ainfo): New function. 4619 (ipa_analyze_node): Use free_parms_ainfo to free stuff. 4620 (ipa_find_agg_cst_for_param): Do not rely on offset ordering. 4621 (ipa_set_node_agg_value_chain): New function. 4622 (ipa_node_removal_hook): Also handle ipa_node_agg_replacements. 4623 (ipa_node_duplication_hook): Likewise. 4624 (ipa_free_all_structures_after_ipa_cp): Also free ipcp_agg_lattice_pool. 4625 (ipa_free_all_structures_after_iinln): Likewise. 4626 (ipa_dump_agg_replacement_values): New function. 4627 (write_agg_replacement_chain): Likewise. 4628 (read_agg_replacement_chain): Likewise. 4629 (ipa_prop_write_all_agg_replacement): Likewise. 4630 (read_replacements_section): Likewise. 4631 (ipa_prop_read_all_agg_replacement): Likewise. 4632 (adjust_agg_replacement_values): Likewise. 4633 (ipcp_transform_function): Likewise. 4634 * ipa-prop.h: Also define heap vector of ipa_agg_jf_item_t and of 4635 ipa_agg_jump_function_t. 4636 (ipa_node_params): Make lattices an array of ipcp_param_lattices. 4637 (ipa_agg_replacement_value): New type and its vector. 4638 (ipa_set_node_agg_value_chain) Declare. 4639 (ipa_node_agg_replacements): Likewise. 4640 (ipa_get_agg_replacements_for_node): New function. 4641 (ipcp_agg_lattice_pool): Declare. 4642 (ipa_dump_agg_replacement_values): Likewise. 4643 (ipa_prop_write_all_agg_replacement): Likewise. 4644 (ipa_prop_read_all_agg_replacement): Likewise. 4645 (ipcp_transform_function): Likewise. 4646 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time): Pass around 4647 known aggregates and hints. 4648 * ipa-inline.h: include ipa-prop.h. 4649 (estimate_ipcp_clone_size_and_time): Adjust declaration. 4650 * lto-streamer.h (lto_section_type): New item 4651 LTO_section_ipcp_transform. 4652 * lto-section-in.c (lto_section_name): New element ipcp_trans. 4653 * params.def (PARAM_IPA_CP_LOOP_HINT_BONUS): New parameter. 4654 * Makefile.in (IPA_INLINE_H): New. Use everywhee instead of 4655 ipa-inline.h. 4656 46572012-11-07 Uros Bizjak <ubizjak@gmail.com> 4658 4659 * config/i386/i386.c (enum upper_128bits_state): Remove. 4660 (check_avx256_store): Use bool pointer argument. 4661 (ix86_avx_u128_mode_needed): Use note_stores also for CALL insns. 4662 * config/i386/predicates.md (vzeroupper_operation): Use match_test. 4663 46642012-11-07 Yufeng Zhang <yufeng.zhang@arm.com> 4665 4666 * config/aarch64/aarch64.c (aarch64_expand_prologue): For the 4667 load-pair with writeback instruction, replace 4668 aarch64_set_frame_expr with add_reg_note (REG_CFA_ADJUST_CFA); 4669 add new local variable 'cfa_reg' and use it. 4670 46712012-11-07 Kaz Kojima <kkojima@gcc.gnu.org> 4672 4673 PR middle-end/49220 4674 * mode-switching.c (create_pre_exit): Set short_block if there 4675 are no copy insns. 4676 46772012-11-07 Martin Jambor <mjambor@suse.cz> 4678 4679 * lto-cgraph.c: Include tree-pass.h. 4680 (lto_output_node): Stream node->ipa_transforms_to_apply. 4681 (input_node): Likewise. 4682 * tree-pass.h (passes_by_id): Declare. 4683 (passes_by_id_size): Likewise. 4684 * Makefile.in (lto-cgraph.o): Add TREE_PASS_H to dependencies. 4685 46862012-11-07 Jan Hubicka <jh@suse.cz> 4687 4688 * ipa-inline-analysis.c (true_predicate, single_cond_predicate, 4689 reset_inline_edge_summary): Fix formatting. 4690 (account_size_time): Bump up the limit on number of size/time 4691 entries to 256. 4692 (estimate_function_body_sizes): Work in reverse postorder. 4693 46942012-11-07 David S. Miller <davem@davemloft.net> 4695 4696 PR bootstrap/55211 4697 Revert: 4698 * config/sparc/constraints.md ("U"): Delete. 4699 * config/sparc/sparc.md: Use 'r' constraint instead of 'U'. 4700 * config/sparc/sync.md: Likewise. 4701 And revert parts of: 4702 * doc/md.texi: Sync sparc constraint documentation with reality. 4703 47042012-11-07 Jakub Jelinek <jakub@redhat.com> 4705 4706 * config/i386/i386.c (ix86_avx_u128_mode_after): Don't 4707 look for reg in CALL operand. 4708 4709 PR debug/54693 4710 * tree-flow.h (propagate_threaded_block_debug_into): New prototype. 4711 * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): No 4712 longer static. 4713 * tree-ssa-loop-ch.c (copy_loop_headers): Use it. 4714 47152012-11-06 Sterling Augustine <saugustine@google.com> 4716 4717 * dwarf2out.c (output_comdat_type_unit): Check for OBJECT_FORMAT_ELF. 4718 47192012-11-06 Aldy Hernandez <aldyh@redhat.com> 4720 Richard Henderson <rth@redhat.com> 4721 4722 * cfg-flags.def (TM_UNINSTRUMENTED, TM_ABORT): New. 4723 * trans-mem.c (PROB_VERY_LIKELY, PROB_UNLIKELY, PROB_LIKELY): New. 4724 (struct tm_region): Add tm_state, restart_block, 4725 original_transaction_was_outer. 4726 (tm_region_init_0): Initialize them. 4727 (collect_bb2reg, get_bb_regions_instrumented): New. 4728 (tm_log_emit_save_or_restores): Merge into ... 4729 (expand_transaction): ... here. 4730 (generate_tm_state, propagate_tm_flags_out): New. 4731 (execute_tm_mark): Avoid processing blocks more than once. 4732 (split_bb_make_tm_edge): Split out from ... 4733 (make_tm_edge): ... here. And merge the rest into ... 4734 (expand_block_edges): ... here. 4735 (execute_tm_edges): Avoid processing blocks more than once. 4736 (ipa_uninstrument_transaction): New. 4737 (ipa_tm_scan_calls_transaction): Use it. Rebuild cgraph and ssa. 4738 (ipa_tm_execute): Init and free original_copy_tables. 4739 * trans-mem.h (PR_MULTIWAYCODE): New. 4740 * tree-cfg.c (make_edges): Use EDGE_TM_ABORT. 4741 47422012-11-06 Aldy Hernandez <aldyh@redhat.com> 4743 4744 * cfghooks.c (copy_bbs): Handle a null loop_father. 4745 4746 * cgraph.c (cgraph_debug_gimple_stmt): Handle a null 4747 current_function_decl. 4748 47492012-11-06 Richard Henderson <rth@redhat.com> 4750 4751 * tree-ssa-tail-merge.c (find_duplicate): Do not consider 4752 is_tm_ending_fndecl calls as mergable. 4753 47542012-11-06 Sterling Augustine <saugustine@google.com> 4755 Cary Coutant <ccoutant@google.com> 4756 4757 * common.opt (gno-split-dwarf, gsplit-dwarf): New switches. 4758 * doc/invoke.texi (Debugging Options): Document them. 4759 * gcc.c (replace_extension_spec_func): New function. 4760 (ASM_FINAL_SPEC): Adjust. 4761 (static_spec_functions): Add new field for replace-extension. 4762 (check_live_switch): Adjust comment. Add case for 'g'. 4763 * opts.c (finish_options): Set x_debug_generate_pub_sections based on 4764 x_dwarf_split_debug_info. 4765 (common_handle_option): Add case for OPT_gsplit_dwarf. 4766 * dwarf2out.h (addr_table_entry_struct): Add forward declaration. 4767 (dw_val_struct): Add val_entry pointer. 4768 * dwarf2out.c (debug_skeleton_info_section, 4769 debug_skeleton_abbrev_section, debug_addr_section, 4770 debug_skeleton_line_section, debug_str_offsets_section): New globals. 4771 (NOT_INDEXED, NO_INDEX_ASSIGNED): New defines. 4772 (indirect_string_node): New field index. 4773 (ate_kind): New enum with fields ate_kind_rtc, ate_kind_rtx_dtprel, 4774 ate_kind_label. 4775 (addr_table_entry): New structure and type. 4776 (dw_loc_list_struct): Add field begin_entry. 4777 (new_loc_desc): Initialize val_entry. 4778 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw): 4779 Add cases for DW_OP_GNU_addr_index and DW_OP_const_index. 4780 (build_cfa_loc): Initialize val_entry. 4781 (AT_index, add_addr_table_entry, remove_addr_table_entry, 4782 add_AT_lbl_id): New functions. 4783 (add_AT_addr, add_AT_range_list): New parameter force_direct. 4784 (output_die_abbrevs): New function. 4785 (add_ranges_by_labels): New parameter force_direct. 4786 (output_line_info): New parameter prologue_only. 4787 (dtprel_bool): New enum with dtprel_false and dtprel_true. 4788 (dw_addr_op, new_addr_loc_descr): New functions. 4789 (DEBUG_DWO_INFO_SECTION, DEBUG_DWO_ABBREV_SECTION, 4790 DEBUG_ADDR_SECTION, DEBUG_NORM_MACINFO_SECTION, 4791 DEBUG_DWO_MACINFO_SECTION, DEBUG_MACINFO_SECTION, 4792 DEBUG_NORM_MACRO_SECTION, DEBUG_DWO_MACRO_SECTION, 4793 DEBUG_MACRO_SECTION, DEBUG_DWO_LINE_SECTION, 4794 DEBUG_DWO_LOC_SECTION, DEBUG_NORM_STR_OFFSETS_SECTION, 4795 DEBUG_DWO_STR_OFFSETS_SECTION, DEBUG_STR_OFFSETS_SECTION, 4796 DEBUG_DWO_STR_SECTION, DEBUG_NORM_STR_SECTION, DEBUG_STR_SECTION, 4797 DEBUG_MACRO_SECTION_FLAGS, DEBUG_SKELETON_LINE_SECTION_LABEL, 4798 DEBUG_SKELETON_INFO_SECTION_LABEL, DEBUG_ADDR_SECTION_LABEL 4799 DEBUG_SKELETON_ABBREV_SECTION_LABEL): New macros. 4800 (DEBUG_STR_SECTION_FLAGS): Adjust. 4801 (TEXT_SECTION_LABEL, COLD_TEXT_SECTION_LABEL, 4802 DEBUG_LINE_SECTION_LABEL, DEBUG_INFO_SECTION_LABEL, 4803 DEBUG_ABBREV_SECTION_LABEL, DEBUG_ADDR_SECTION_LABEL, 4804 DEBUG_LOC_SECTION_LABEL, DEBUG_RANGES_SECTION_LABEL, 4805 DEBUG_MACINFO_SECTION_LABEL, DEBUG_MACRO_SECTION_LABEL): Adjust 4806 indentation. 4807 (debug_skeleton_abbrev_section_label, debug_addr_section_label, 4808 debug_skeleton_line_section_label, debug_skeleton_info_section_label): 4809 New global variables. 4810 (add_AT_flag, add_AT_int, add_AT_unsigned, add_AT_double, add_AT_vec, 4811 add_AT_data8): Initialize val_entry. 4812 (add_AT_low_high_pc): New parameter force_direct. Handle 4813 dwarf_split_debug_info. 4814 (set_indirect_string, find_AT_string_form): New functions. 4815 (AT_string_form): Adjust to call find_AT_string_from. 4816 (add_AT_die_ref, add_AT_fde_ref, add_AT_loc, add_AT_list): 4817 Initialize val_entry. 4818 (addr_index_table): New global variable. 4819 (addr_table_entry_do_hash, addr_table_entry_eq, add_addr_table_entry, 4820 init_addr_table_entry, remove_addr_table_entry, index_addr_table_entry, 4821 remove_loc_list_addr_table_entries): New functions. 4822 (add_AT_addr, add_AT_lbl_id, add_AT_range_list): New parameter 4823 force_direct. Handle dwarf_split_debug_info. 4824 (add_AT_file, add_AT_vms_delta, add_AT_lineptr, add_AT_macptr, 4825 add_AT_offset): Initialize val_entry. 4826 (UNRELOCATED_OFFSET, RELOCATED_OFFSET): New defines. 4827 (size_of_die): Handle dwarf_split_debug_info. 4828 (size_of_aranges, value_format): Call AT_class. Check AT_index. 4829 (output_die_abbrevs): New function. 4830 (output_abbrev_section): Call output_die_abbrevs. 4831 (new_loc_list): Initialize begin_entry. 4832 (output_loc_list): Handle dwarf_split_debug_info. 4833 (output_range_list_offset, output_loc_list_offset, 4834 output_attr_index_or_value, ): New functions. 4835 (output_die): Fix call to dw2_asm_output_data. Call 4836 output_attr_index_or_value and output_range_list_offset. 4837 Adjust logic around dw_val_class_str. 4838 (add_top_lebel_skeleton_die_attrs, get_skeleton_type_unit, 4839 output_skeleton_debug_sections): New functions. 4840 (output_comdat_type_unit, output_pubname, output_aranges): Handle 4841 dwarf_split_debug_info. 4842 (add_ranges_by_labels): New parameter force_direct. 4843 (mem_loc_descriptor, loc_descr): Call new_addr_loc_descr. 4844 (loc_list_from_tree, add_const_value_attribtue): Use dtprel_bools in 4845 place of generic integer. 4846 (dwarf2out_vms_debug_main_pointer, gen_entry_point_die, gen_label_die, 4847 gen_call_site_die, gen_subprogram_die, gen_variable_die, 4848 add_high_low_attributes): Adjust calls to add_AT_lbl_id. 4849 (output_macinfo_op): Adjust indirect_string_logic. 4850 (save_macinfo_strings): New function. 4851 (output_macinfo): Adjust. 4852 (dwarf2out_init): Handle dwarf_split_debug_info. 4853 (index_string, output_index_string_offset, output_index_string): New 4854 functions. 4855 (output_indirect_string): Adjust. 4856 (output_indirect_strings, output_addr_table_entry, output_addr_table): 4857 New functions. 4858 (resolve_addr_in_expr, hash_loc_operands): Handle DW_OP_GNU_addr_index 4859 and DW_OP_GNU_const_index. Handle dwarf_split_debug_info. Call 4860 remove_loc_list_addr_table_entries and remove_addr_table_entry. 4861 (index_location_lists): New function. 4862 (dwarf2out_finish): Handle dwarf_split_debug_info. New variable 4863 main_comp_unit_die. Adjust calls to add_AT_low_high_pc, 4864 add_ranges_by_labels, add_AT_addr, and add_AT_lineptr. Call 4865 save_macinfo_strings and output_indirect_strings. 4866 48672012-11-06 Gerald Pfeifer <gerald@pfeifer.com> 4868 4869 * config/i386/i386.c (make_dispatcher_decl): Guard with 4870 ASM_OUTPUT_TYPE_DIRECTIVE and HAVE_GNU_INDIRECT_FUNCTION. 4871 48722012-11-06 Jan Hubicka <jh@suse.cz> 4873 4874 * ipa-inline-analysis.c (estimate_function_body_sizes, 4875 inline_update_overall_summary): Cap time calculations. 4876 48772012-11-06 Uros Bizjak <ubizjak@gmail.com> 4878 4879 * config/i386/i386.c (ix86_init_machine_status): Do not 4880 explicitly clear tls_descriptor_call_expanded_p again. 4881 48822012-11-06 Uros Bizjak <ubizjak@gmail.com> 4883 4884 * config/i386/sse.md 4885 (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Mark operand 0 4886 as read and written by the instruction. 4887 48882012-11-06 Alexandre Oliva <aoliva@redhat.com> 4889 4890 PR debug/54693 4891 * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): 4892 Use a stack vector before allocating a pointer set. 4893 48942012-11-06 Martin Jambor <mjambor@suse.cz> 4895 4896 * ipa-prop.c (ipa_get_param_decl_index_1): New function. 4897 (ipa_get_param_decl_index): Just call ipa_get_param_decl_index_1. 4898 (ipa_populate_param_decls): Accept descriptors parameter rather 4899 than the whole info. 4900 (load_from_unmodified_param): Likewise. 4901 (ipa_load_from_parm_agg_1): Likewise. 4902 (ipa_load_from_parm_agg): Extract descriptors from info. 4903 (compute_complex_assign_jump_func): Likewise. 4904 (ipa_analyze_indirect_call_uses): Likewise. 4905 49062012-11-06 Jan Hubicka <jh@suse.cz> 4907 4908 * ipa-inline.c (compute_uninlined_call_time): Return gcov_type. 4909 (compute_inlined_call_time): Watch overflows. 4910 (relative_time_benefit): Compute in gcov_type. 4911 49122012-11-06 Jan Hubicka <jh@suse.cz> 4913 4914 * cfgloopanal.c (get_loop_hot_path): New function. 4915 * tree-ssa-lop-ivcanon.c (struct loop_size): Add CONSTANT_IV, 4916 NUM_NON_PURE_CALLS_ON_HOT_PATH, NUM_PURE_CALLS_ON_HOT_PATH, 4917 NUM_BRANCHES_ON_HOT_PATH. 4918 (tree_estimate_loop_size): Compute the new values. 4919 (try_unroll_loop_completely): Disable unrolling of loops with only 4920 calls or too many branches. 4921 (tree_unroll_loops_completely): Deal also with outer loops of hot loops. 4922 * cfgloop.h (get_loop_hot_path): Declare. 4923 * params.def (PARAM_MAX_PEEL_BRANCHES): New parameters. 4924 * invoke.texi (max-peel-branches): Document. 4925 49262012-11-06 Jan Hubicka <jh@suse.cz> 4927 4928 * ipa-pure-const.c (check_stmt): Fix debug info formatting. 4929 49302012-11-06 Uros Bizjak <ubizjak@gmail.com> 4931 4932 * config/i386/i386.c (TARGET_INSTANTIATE_DECLS): New define. 4933 (ix86_instantiate_decls): New function. 4934 (ix86_expand_builtin) <case IX86_BUILTIN_LDMXCSR>: Use SLOT_TEMP 4935 stack slot instead of SLOT_VIRTUAL. 4936 <case IX86_BUILTIN_STMXCSR>: Ditto. 4937 (assign_386_stack_local): Do not assert when virtual slot is valid. 4938 * config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_VIRTUAL. 4939 * config/i386/i386.md (truncdfsf2): Do not use SLOT_VIRTUAL stack slot. 4940 (truncxf<mode>2): Ditto. 4941 (floatunssi<mode>2): Ditto. 4942 (isinf<mode>2): Ditto. 4943 * config/i386/sync.md (atomic_load<mode>): Ditto. 4944 (atomic_store<mode>): Ditto. 4945 49462012-11-06 Jan Hubicka <jh@suse.cz> 4947 4948 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound, 4949 vect_do_peeling_for_alignment): Fix loop bound computation. 4950 * tree-vect-loop.c (vect_transform_loop): Maintain loop bounds. 4951 49522012-11-06 Oleg Endo <olegendo@gcc.gnu.org> 4953 4954 PR target/54089 4955 * config/sh/sh.c (and_xor_ior_costs, addsubcosts): Double the costs for 4956 ops larger than SImode. 4957 * config/sh/sh.md (rotcl, *rotcl): New insns and splits. 4958 (ashldi3_k): Convert to insn_and_split and use new rotcl insn. 4959 49602012-11-06 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com> 4961 4962 PR target/47440 4963 * config/i386/i386-protos.h (emit_i387_cw_initialization): Delete. 4964 (emit_vzero): Add prototype. 4965 (ix86_mode_entry): Likewise. 4966 (ix86_mode_exit): Likewise. 4967 (ix86_emit_mode_set): Likewise. 4968 4969 * config/i386/i386.c (typedef struct block_info_def): Delete. 4970 (define BLOCK_INFO): Delete. 4971 (check_avx256_stores): Add checking for MEM_P. 4972 (move_or_delete_vzeroupper_2): Delete. 4973 (move_or_delete_vzeroupper_1): Delete. 4974 (move_or_delete_vzeroupper): Delete. 4975 (ix86_maybe_emit_epilogue_vzeroupper): Delete. 4976 (function_pass_avx256_p): Delete. 4977 (ix86_function_ok_for_sibcall): Remove sibcall disabling. 4978 (nit_cumulative_args): Remove initialization of of avx256 fields of 4979 cfun->machine. 4980 (ix86_emit_restore_sse_regs_using_mov): Remove vzeroupper generation. 4981 (ix86_expand_epilogue): Likewise. 4982 (ix86_avx_u128_mode_needed): New. 4983 (ix86_i387_mode_needed): Rename from ix86_mode_needed. 4984 (ix86_mode_needed): New. 4985 (ix86_avx_u128_mode_after): New. 4986 (ix86_mode_after): New. 4987 (ix86_avx_u128_mode_entry): New. 4988 (ix86_mode_entry): New. 4989 (ix86_avx_u128_mode_exit): New. 4990 (ix86_mode_exit): New. 4991 (ix86_emit_mode_set): New. 4992 (ix86_expand_call): Delete vzeroupper generation. 4993 (ix86_split_call_vzeroupper): Delete. 4994 (ix86_init_machine_status): Initialize optimize_mode_switching. 4995 (ix86_expand_special_args_builtin): Change. 4996 (ix86_reorg): Delete a call of move_or_delete_vzeroupper. 4997 4998 * config/i386/i386.h (VALID_AVX256_REG_OR_OI_MODE): New. 4999 (AVX_U128): New. 5000 (avx_u128_state): New. 5001 (NUM_MODES_FOR_MODE_SWITCHING): Added AVX_U128_ANY. 5002 (MODE_AFTER): New. 5003 (MODE_ENTRY): New. 5004 (MODE_EXIT): New. 5005 (EMIT_MODE_SET): Change. 5006 (machine_function): Delete avx256 fields. 5007 5008 * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): Delete. 5009 (define_insn_and_split "*call_vzeroupper"): Delete. 5010 (define_insn_and_split "*call_rex64_ms_sysv_vzeroupper"): Delete. 5011 (define_insn_and_split "*sibcall_vzeroupper"): Delete. 5012 (define_insn_and_split "*call_pop_vzeroupper"): Delete. 5013 (define_insn_and_split "*sibcall_pop_vzeroupper"): Delete. 5014 (define_insn_and_split "*call_value_vzeroupper"): Delete. 5015 (define_insn_and_split "*sibcall_value_vzeroupper"): Delete. 5016 (define_insn_and_split "*call_value_rex64_ms_sysv_vzeroupper"): Delete. 5017 (define_insn_and_split "*call_value_pop_vzeroupper"): Delete. 5018 (define_insn_and_split "*sibcall_value_pop_vzeroupper"): Delete. 5019 (define_expand "return"): Remove vzeroupper emitting. 5020 (define_expand "simple_return"): Delete. 5021 5022 * config/i386/predicates.md (vzeroupper_operation): New. 5023 5024 * config/i386/sse.md (avx_vzeroupper): Change. 5025 50262012-11-06 Uros Bizjak <ubizjak@gmail.com> 5027 Kaz Kojima <kkojima@gcc.gnu.org> 5028 5029 PR target/41993 5030 * mode-switching.c (create_pre_exit): Set return_copy to 5031 last_insn when copy_start is a pseudo reg. 5032 50332012-11-06 Andrey Turetskiy <andrey.turetskiy@gmail.com> 5034 5035 * config/i386/i386.c (bdesc_args): Rename CODE_FOR_avx2_umulhrswv16hi3 5036 to CODE_FOR_avx2_pmulhrswv16hi3. 5037 * config/i386/predicates.md (const1_operand): Extend for vectors. 5038 * config/i386/sse.md (ssse3_avx2): Extend. 5039 (ssedoublemode): Ditto. 5040 (<sse2_avx2>_uavg<mode>3): Merge avx2_uavgv32qi3, sse2_uavgv16qi3, 5041 avx2_uavgv16hi3 and sse2_uavgv8hi3 into one. 5042 (*<sse2_avx2>_uavg<mode>3): Merge *avx2_uavgv32qi3, *sse2_uavgv16qi3, 5043 *avx2_uavgv16hi3 and *sse2_uavgv8hi3 into one. 5044 (PMULHRSW): New. 5045 (<ssse3_avx2>_pmulhrsw<mode>3): Merge avx2_umulhrswv16hi3, 5046 ssse3_pmulhrswv8hi3 and ssse3_pmulhrswv4hi3 into one. 5047 (*avx2_pmulhrswv16hi3): Replace const_vector with const1_operand 5048 predicate. 5049 (*ssse3_pmulhrswv8hi3): Ditto. 5050 (*ssse3_pmulhrswv4hi3): Ditto. 5051 50522012-11-06 Joern Rennecke <joern.rennecke@embecosm.com> 5053 5054 * config/epiphany/epiphany.c (epiphany_address_cost): 5055 Use MODE parameter. 5056 50572012-11-05 Sriraman Tallam <tmsriram@google.com> 5058 5059 * doc/tm.texi.in (TARGET_OPTION_FUNCTION_VERSIONS): New hook 5060 description. 5061 * (TARGET_COMPARE_VERSION_PRIORITY): New hook description. 5062 * (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): New hook description. 5063 * (TARGET_GENERATE_VERSION_DISPATCHER_BODY): New hook description. 5064 * doc/tm.texi: Regenerate. 5065 * target.def (compare_version_priority): New target hook. 5066 * (generate_version_dispatcher_body): New target hook. 5067 * (get_function_versions_dispatcher): New target hook. 5068 * (function_versions): New target hook. 5069 * cgraph.c (cgraph_fnver_htab): New htab. 5070 (cgraph_fn_ver_htab_hash): New function. 5071 (cgraph_fn_ver_htab_eq): New function. 5072 (version_info_node): New pointer. 5073 (insert_new_cgraph_node_version): New function. 5074 (get_cgraph_node_version): New function. 5075 (delete_function_version): New function. 5076 (record_function_versions): New function. 5077 * cgraph.h (cgraph_node): New bitfield dispatcher_function. 5078 (cgraph_function_version_info): New struct. 5079 (get_cgraph_node_version): New function. 5080 (insert_new_cgraph_node_version): New function. 5081 (record_function_versions): New function. 5082 (delete_function_version): New function. 5083 (init_lowered_empty_function): Expose function. 5084 * tree.h (DECL_FUNCTION_VERSIONED): New macro. 5085 (tree_function_decl): New bit-field versioned_function. 5086 * cgraphunit.c (cgraph_analyze_function): Generate body of multiversion 5087 function dispatcher. 5088 (cgraph_analyze_functions): Analyze dispatcher function. 5089 (init_lowered_empty_function): Make non-static. New parameter in_ssa. 5090 (assemble_thunk): Add parameter to call to init_lowered_empty_function. 5091 * config/i386/i386.c (add_condition_to_bb): New function. 5092 (get_builtin_code_for_version): New function. 5093 (ix86_compare_version_priority): New function. 5094 (feature_compare): New function. 5095 (dispatch_function_versions): New function. 5096 (ix86_function_versions): New function. 5097 (attr_strcmp): New function. 5098 (ix86_mangle_function_version_assembler_name): New function. 5099 (ix86_mangle_decl_assembler_name): New function. 5100 (make_name): New function. 5101 (make_dispatcher_decl): New function. 5102 (is_function_default_version): New function. 5103 (ix86_get_function_versions_dispatcher): New function. 5104 (make_attribute): New function. 5105 (make_resolver_func): New function. 5106 (ix86_generate_version_dispatcher_body): New function. 5107 (fold_builtin_cpu): Return integer for cpu builtins. 5108 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): New macro. 5109 (TARGET_COMPARE_VERSION_PRIORITY): New macro. 5110 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): New macro. 5111 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): New macro. 5112 (TARGET_OPTION_FUNCTION_VERSIONS): New macro. 5113 51142012-11-05 Joern Rennecke <joern.rennecke@embecosm.com> 5115 5116 * recog.c (extract_insn): Enabled alternative defaults to 1. 5117 51182012-11-05 H.J. Lu <hongjiu.lu@intel.com> 5119 5120 * config/i386/i386.c (print_reg): Replace REX_INT_REG_P with 5121 REX_INT_REGNO_P. 5122 51232012-11-05 Eric Botcazou <ebotcazou@adacore.com> 5124 5125 PR tree-optimization/54986 5126 * gimple-fold.c (canonicalize_constructor_val): Strip again all no-op 5127 conversions on entry but add them back on exit if needed. 5128 51292012-11-05 Andreas Schwab <schwab@linux-m68k.org> 5130 5131 * final.c (final_scan_insn) [HAVE_cc0]: Handle all comparison 5132 codes in non-jump and cmove insn. 5133 51342012-11-05 Uros Bizjak <ubizjak@gmail.com> 5135 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com> 5136 5137 * mode-switching.c (create_pre_exit): Force late switching if 5138 __builtin_{apply,return} emitted a load that require mode, 5139 other than MODE_EXIT. 5140 51412012-11-05 Richard Sandiford <rdsandiford@googlemail.com> 5142 5143 PR target/55204 5144 * config/i386/i386.c (ix86_address_subreg_operand): Remove stack 5145 pointer check. 5146 (print_reg): Use true_regnum rather than REGNO. 5147 (ix86_print_operand_address): Remove SUBREG handling. 5148 51492012-11-05 Jan Hubicka <jh@suse.cz> 5150 5151 * tree-ssa-loop-niter.c (finite_loop_p): Revamp to be just wrapper of 5152 max_loop_iterations. 5153 51542012-11-05 Joern Rennecke <joern.rennecke@embecosm.com> 5155 5156 * reorg.c (fill_simple_delay_slots): Avoid calling optimize_skip 5157 with a return instruction. 5158 51592012-11-05 Vladimir Makarov <vmakarov@redhat.com> 5160 5161 PR rtl-optimization/55151 5162 * lra-constraints.c (process_alt_operands): Permit putting reg 5163 value into memory. Increase reject for this case. 5164 51652012-11-05 Dehao Chen <dehao@google.com> 5166 5167 * final.c (reemit_insn_block_notes): Do not change scope if insn 5168 location is UNKNOWN_LOCATION. 5169 51702012-11-05 Joern Rennecke <joern.rennecke@embecosm.com> 5171 5172 * doc/md.texi (Defining Attributes): Document that we are defining 5173 HAVE_ATTR_name macros as 1 for defined attributes, and as 0 5174 for undefined special attributes. 5175 * final.c (asm_insn_count, align_fuzz): Always define. 5176 (insn_current_reference_address): Likewise. 5177 (init_insn_lengths): Use if (HAVE_ATTR_length) instead of 5178 #ifdef HAVE_ATTR_length. 5179 (get_attr_length_1, shorten_branches, final): Likewise. 5180 (final_scan_insn, output_asm_name): Likewise. 5181 * genattr.c (gen_attr): Define HAVE_ATTR_name macros for 5182 defined attributes as 1. 5183 Remove ancient get_attr_alternative compatibility code. 5184 For special purpose attributes not provided, define HAVE_ATTR_name 5185 as 0. 5186 In case no length attribute is given, provide stub definitions 5187 for insn_*_length* functions, and also include insn-addr.h. 5188 In case no enabled attribute is given, provide stub definition. 5189 * genattrtab.c (write_length_unit_log): Always write a definition. 5190 * hooks.c (hook_int_rtx_1, hook_int_rtx_unreachable): New functions. 5191 * hooks.h (hook_int_rtx_1, hook_int_rtx_unreachable): Declare. 5192 * lra-int.h (struct lra_insn_recog_data): Make member 5193 alternative_enabled_p unconditional. 5194 * lra.c (free_insn_recog_data): Use if (HAVE_ATTR_length) instead of 5195 #ifdef HAVE_ATTR_length. 5196 (lra_set_insn_recog_data): Likewise. Make initialization of 5197 alternative_enabled_p unconditional. 5198 (lra_update_insn_recog_data): Use #if instead of #ifdef for 5199 HAVE_ATTR_enabled. 5200 * recog.c [!HAVE_ATTR_enabled] (get_attr_enabled): Don't define. 5201 (extract_insn): Check HAVE_ATTR_enabled. 5202 (gate_handle_split_before_regstack): Use #if instead of 5203 #if defined for HAVE_ATTR_length. 5204 52052012-11-05 Jan Hubicka <jh@suse.cz> 5206 5207 * ipa-inline.c (compute_uninlined_call_time, 5208 compute_inlined_call_time): New functions. 5209 (RELATIVE_TIME_BENEFIT_RANGE): New macro. 5210 (relative_time_benefit): Rewrite. 5211 (edge_badness): Rewrite path with guessed profile and estimated profile. 5212 * ipa-inline.h (INLINE_HINT_declared_inline, INLINE_HINT_cross_module): 5213 New hints. 5214 (struct inline_summary): Add GROWTH filed. 5215 * ipa-inline-analysis.c (dump_inline_hints): Update. 5216 (reset_inline_summary): Update. 5217 (dump_inline_summary): Update. 5218 (will_be_nonconstant_predicate): Cleanup to use gimple_store_p and 5219 gimple_assign_load_p predicates. 5220 (estimate_node_size_and_time): Drop INLINE_HINT_declared_inline hint. 5221 (simple_edge_hints): New function. 5222 (do_estimate_edge_time): Return time of invocation of callee rather 5223 than the time scaled by edge frequency; update hints code. 5224 (do_estimate_edge_hints): Update. 5225 (do_estimate_growth): Cleanup. 5226 52272012-11-05 Jakub Jelinek <jakub@redhat.com> 5228 5229 PR target/55194 5230 * dwarf2out.c (value_format) <case dw_val_class_high_pc>: Handle 5231 also DWARF2_ADDR_SIZE 1 and 2. 5232 52332012-11-05 Jan Hubicka <jh@suse.cz> 5234 5235 * tree-ssa-loop-niter.c (find_loop_niter): Remove just_once_each_iteration_p. 5236 (maybe_lower_iteration_bound): Initialize not_executed_last_iteration to NULL 5237 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Skip 5238 just_once_each_iteration_p; record estimated bound when loop has only one 5239 likely exit; test just_once_each_iteration_p before IV canon itself. 5240 52412012-11-05 Jan Hubicka <jh@suse.cz> 5242 5243 * ipa-inline.c (leaf_node_p): Rename to ... 5244 (num_calls) ... this one. 5245 (want_early_inline_function_p): Allow smal growth on non-leafs. 5246 52472012-11-05 Jakub Jelinek <jakub@redhat.com> 5248 5249 PR debug/54402 5250 * var-tracking.c (fp_setter): Return false if there is REG_CFA_RESTORE 5251 hfp note. 5252 (vt_initialize): Look for fp_setter in any bb, not just successor of 5253 entry bb. 5254 52552012-11-05 Oleg Endo <olegendo@gcc.gnu.org> 5256 5257 * config/sh/sh.h (TARGET_CACHE32, TARGET_HARVARD): Delete macro. 5258 (TARGET_SUPERSCALAR): Add TARGET_SH2A. 5259 (CACHE_LOG): Use TARGET_HARD_SH4 and TARGET_SH5 instead of 5260 TARGET_CACHE32. 5261 (TRAMPOLINE_ALIGNMENT): Use TARGET_HARD_SH4 and TARGET_SH5 instead of 5262 TARGET_HARVARD. 5263 * config/sh/sh.c (sh_trampoline_init): Likewise. 5264 52652012-11-05 David Edelsohn <dje.gcc@gmail.com> 5266 5267 * system.h (loc_t): Poison. 5268 52692012-11-05 Marc Glisse <marc.glisse@inria.fr> 5270 5271 * fold-const.c (fold_unary_loc): Disable conversion optimization 5272 for void type. 5273 52742012-11-04 Thomas Schwinge <thomas@codesourcery.com> 5275 5276 * configure: Regenerate. 5277 52782012-11-04 Eric Botcazou <ebotcazou@adacore.com> 5279 5280 * combine.c: Adjust toplevel comment. 5281 (make_extraction): Adjust head comment and move up canonicalization. 5282 52832012-11-04 Alexandre Oliva <aoliva@redhat.com> 5284 Jakub Jelinek <jakub@redhat.com> 5285 5286 PR debug/54693 5287 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Emit debug temps 5288 for dropped IV sets. 5289 52902012-11-04 Alexandre Oliva <aoliva@redhat.com> 5291 5292 PR debug/54693 5293 * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): 5294 New, rewritten from debug stmt copying code... 5295 (thread_around_empty_block): ... removed from here. 5296 (thread_across_edge): Call propagate_threaded_block_debug_into. 5297 52982012-11-04 Dehao Chen <dehao@google.com> 5299 5300 * expr.c (expand_expr_real_1): Change to not using input_location. 5301 53022012-11-03 Jan Hubicka <jh@suse.cz> 5303 5304 * invoke.texi (profile-use): update documentation. 5305 * opts.c (common_handle_option): Enable tree-vectorize 5306 and tree-loop-distribute-patterns. 5307 * tree-loop-distribution.c (tree_loop_distribution): Skip loops 5308 optimized for size. 5309 * config/i386/i386.c (ix86_option_override_internal): Enabe 5310 prefetch_lop_arrays for profile-use. 5311 53122012-11-03 Robert Mason <rbmj@verizon.net> 5313 5314 * gcov-io.c (gcov_open): Add file mode to open call (need for VxWorks) 5315 53162012-11-03 Sandra Loosemore <sandra@codesourcery.com> 5317 5318 * doc/extend.texi: Copy-edit to use present tense except when 5319 explicitly describing future or past behavior. 5320 53212012-11-03 Oleg Endo <olegendo@gcc.gnu.org> 5322 5323 * config/sh/sh.c (output_movedouble, output_far_jump, 5324 output_ieee_ccmpeq): Use multi-line strings for asm. 5325 (find_regmode_weight): Wrap lines. 5326 (sh_optimize_target_register_callee_saved): Remove commented out 5327 variable. 5328 (emit_load_ptr): Remove prototype. 5329 53302012-11-03 Oleg Endo <olegendo@gcc.gnu.org> 5331 5332 PR target/51244 5333 * config/sh/sh.md (*cbranch_t): Allow splitting after reload. 5334 Allow going beyond current basic block before reload when looking for 5335 the reg set insn. 5336 * config/sh/sh.c (sh_find_set_of_reg): Don't stop at labels. 5337 53382012-11-02 Jan Hubicka <jh@suse.cz> 5339 5340 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Add 5341 missing sign to unsigned. 5342 53432012-11-02 Andrew Pinski <apinski@cavium.com> 5344 5345 PR rtl-opt/54524 5346 * simplify-rtx.c (simplify_relational_operation_1): Don't simplify 5347 (LTU/GEU (PLUS a 0) 0) into (GEU/LTU a 0) since they are not 5348 equivalent. 5349 53502012-11-02 Jan Hubicka <jh@suse.cz> 5351 5352 * tree-ssa-loop-niter.c (double_int_cmp, bound_index, 5353 discover_iteration_bound_by_body_walk): New functions. 5354 (discover_iteration_bound_by_body_walk): Use it. 5355 53562012-11-02 Jan Hubicka <jh@suse.cz> 5357 5358 * predict.c (predict_loops): Predict also exits not dominating latch. 5359 53602012-11-02 Jan Hubicka <jh@suse.cz> 5361 5362 * predict.c (predict_loops): Do not predict infinite loops. 5363 53642012-11-02 Jan Hubicka <jh@suse.cz> 5365 5366 PR middle-end/55079 5367 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update 5368 MAX field if NITER was folded to contant. 5369 (record_estimate): Sanity check. 5370 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): New 5371 function. 5372 (remove_redundant_iv_test): New function. 5373 (loops_to_unloop, loops_to_unloop_nunroll): New static vars. 5374 (unloop_loops): Break out from ... 5375 (try_unroll_loop_completely): ... here; Pass in MAXITER; use 5376 remove_exits_and_undefined_stmts; do not unloop. 5377 (canonicalize_loop_induction_variables): Compute MAXITER; 5378 use remove_redundant_iv_test; remove loop_close_ssa_invalidated 5379 and irred_invalidated arguments. 5380 (canonicalize_induction_variables): Compute fresh bound estimates; 5381 unloop; walk from innermost. 5382 (tree_unroll_loops_completely): Likewise. 5383 53842012-11-02 Vladimir Makarov <vmakarov@redhat.com> 5385 5386 PR middle-end/55130 5387 * lra-constraints.c (debug_loc_equivalence_change_p): Rename to 5388 loc_equivalence_change_p. 5389 (lra_constraints): Check equiv_insn_bitmap for debug insn. Call 5390 loc_equivalence_change_p for non-transformed insn. 5391 53922012-11-02 Eric Botcazou <ebotcazou@adacore.com> 5393 5394 * cfg-flags.def (ABNORMAL_CALL): Fix comment. 5395 (EH): Likewise. 5396 (SIBCALL): Likewise. 5397 * cfgrtl.c (rtl_verify_flow_info_1): Adjust error messages. 5398 Deal with EDGE_SIBCALL and fix the EDGE_ABNORMAL check. 5399 54002012-11-02 Jakub Jelinek <jakub@redhat.com> 5401 5402 PR target/55147 5403 * config/i386/i386.md (bswapdi2): Limit to TARGET_64BIT. 5404 (*bswapdi2_doubleword): Removed. 5405 54062012-11-02 Gerald Pfeifer <gerald@pfeifer.com> 5407 5408 * doc/install.texi (Specific): Remove moxie web reference. 5409 54102012-11-01 Marc Glisse <marc.glisse@inria.fr> 5411 5412 PR middle-end/55001 5413 * tree-vect-generic.c (expand_vector_condition): New function. 5414 (expand_vector_operations_1): Call it. 5415 54162012-11-01 Steve Ellcey <sellcey@mips.com> 5417 5418 * target-globals.c (save_target_globals): Save lra_int struct. 5419 54202012-11-01 Gerald Pfeifer <gerald@pfeifer.com> 5421 5422 * doc/standards.texi (Standards): Adjust reference to Go specification. 5423 54242012-11-01 Lawrence Crowl <crowl@google.com> 5425 5426 * ebitmap.h: Remove unused. 5427 * ebitmap.c: Remove unused. 5428 * Makefile.in: Remove ebitmap.h and ebitmap.c. 5429 * sbitmap.h (SBITMAP_SIZE_BYTES): Move to source file. 5430 (SET_BIT_WITH_POPCOUNT): Remove unused. 5431 (RESET_BIT_WITH_POPCOUNT): Remove unused. 5432 (bitmap_copy_n): Remove unused. 5433 (bitmap_range_empty_p): Remove unused. 5434 (sbitmap_popcount): Remove unused. 5435 (sbitmap_verify_popcount): Make private to source file. 5436 * sbitmap.c (SBITMAP_SIZE_BYTES): Move here from header. 5437 (bitmap_copy_n): Remove unused. 5438 (bitmap_range_empty_p): Remove unused. 5439 (sbitmap_popcount): Remove unused. 5440 (sbitmap_verify_popcount): Make private to source file. 5441 54422012-11-01 Lawrence Crowl <crowl@google.com> 5443 5444 * sbitmap.h (sbitmap_iter_init): Rename bmp_iter_set_init and add 5445 unused parameter to match bitmap iterator. Update callers. 5446 (sbitmap_iter_cond): Rename bmp_iter_set. Update callers. 5447 (sbitmap_iter_next): Rename bmp_iter_next and add unused parameter to 5448 match bitmap iterator. Update callers. 5449 (EXECUTE_IF_SET_IN_SBITMAP_REV): Remove unused. 5450 (EXECUTE_IF_SET_IN_SBITMAP): Rename EXECUTE_IF_SET_IN_BITMAP and 5451 adjust to be identical to the definition in bitmap.h. Conditionalize 5452 the definition based on not having been defined. Update callers. 5453 * bitmap.h (EXECUTE_IF_SET_IN_BITMAP): Conditionalize the definition 5454 based on not having been defined. (To match the above.) 5455 54562012-11-01 Lawrence Crowl <crowl@google.com> 5457 5458 * sbitmap.h (TEST_BIT): Rename bitmap_bit_p, normalizing parameter 5459 type. Update callers to match. 5460 (SET_BIT): Rename bitmap_set_bit, normalizing parameter type. Update 5461 callers to match. 5462 (SET_BIT_WITH_POPCOUNT): Rename bitmap_set_bit_with_popcount, 5463 normalizing parameter type. Update callers to match. 5464 (RESET_BIT): Rename bitmap_clear_bit, normalizing parameter type. 5465 Update callers to match. 5466 (RESET_BIT_WITH_POPCOUNT): Rename bitmap_clear_bit_with_popcount, 5467 normalizing parameter type. Update callers to match. 5468 * basic-block.h (sbitmap_intersection_of_succs): Rename 5469 bitmap_intersection_of_succs. Update callers to match. 5470 * basic-block.h (sbitmap_intersection_of_preds): Rename 5471 bitmap_intersection_of_preds. Update callers to match. 5472 * basic-block.h (sbitmap_union_of_succs): Rename 5473 bitmap_union_of_succs. Update callers to match. 5474 * basic-block.h (sbitmap_union_of_preds): Rename 5475 bitmap_union_of_preds. Update callers to match. 5476 54772012-11-01 Vladimir Makarov <vmakarov@redhat.com> 5478 5479 PR middle-end/55150 5480 * lra-constraints.c (lra_constraints): Check only pseudos with 5481 equivalences. Add insns with equivalence pseudos. 5482 54832012-11-01 Sharad Singhai <singhai@google.com> 5484 5485 PR other/55164 5486 * dumpfile.h (struct dump_file_info): Fix order of flags. 5487 54882012-11-01 Jan Hubicka <jh@suse.cz> 5489 5490 PR middle-end/55104 5491 * ipa-inline-transform.c (inline_call): Silence an sanity check until 5492 ipa-cp issue if fixed. 5493 54942012-11-01 Sharad Singhai <singhai@google.com> 5495 5496 * doc/invoke.texi: Update -fopt-info documentation. 5497 * dumpfile.c: Move dump_flags here from passes.c. 5498 Rename opt_info_options to optinfo_verbosity_options. 5499 Add optgroup_options. 5500 (dump_files): Add field for optinfo_flags in the static initializer. 5501 (dump_register): Handle additional parameter for optgroup_flags. 5502 (opt_info_enable_passes): Renamed opt_info_enable_all. Handle 5503 optgroup_flags. Fix documentation. 5504 (opt_info_switch_p_1): Handle optgroup options. 5505 (opt_info_switch_p): Handle optgroup_flags. Warn on multiple files. 5506 * dumpfile.h (dump_register): Additional argument for optgroup_flags. 5507 All callers updated. 5508 (struct dump_file_info): Add field for optgroup_flags. 5509 Define OPTGROUP_* flags. 5510 * tree-pass.h (struct opt_pass): Add addtional field for optinfo_flags. 5511 All opt_pass static initializers updated. 5512 * opts-global.c (dump_remap_tree_vectorizer_verbose): Use 'all' 5513 instead of 'optall'. 5514 (handle_common_deferred_options): Fix typo in error message. 5515 * passes.c (register_one_dump_file): Add argument for optgroup_flags. 5516 Turn on OPTGROUP_IPA for IPA passes. 5517 Move dump_flags from here to dumpfile.c. 5518 * statistics.c (statistics_early_init): Use OPTGROUP_NONE in call to 5519 dump_register. 5520 55212012-11-01 Joern Rennecke <joern.rennecke@embecosm.com> 5522 5523 PR target/55160 5524 * config/sh/sh.md (doloop_end): Use emit_jump_insn. 5525 55262012-10-31 Jakub Jelinek <jakub@redhat.com> 5527 5528 PR tree-optimization/53708 5529 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve 5530 user-supplied alignment when used with an explicit section name. 5531 55322012-10-31 Dehao Chen <dehao@google.com> 5533 5534 * tree-eh.c (do_return_redirection): Set location for jump statement. 5535 (do_goto_redirection): Likewise. 5536 (frob_into_branch_around): Likewise. 5537 (lower_try_finally_nofallthru): Likewise. 5538 (lower_try_finally_copy): Likewise. 5539 (lower_try_finally_switch): Likewise. 5540 * expr.c (store_expr): Use current insn location instead of expr 5541 location. 5542 (expand_expr_real): Likewise. 5543 (expand_expr_real_1): Likewise. 5544 55452012-10-31 Easwaran Raman <eraman@google.com> 5546 5547 PR target/54938 5548 PR middle-end/54957 5549 * optabs.c (emit_cmp_and_jump_insn_1): Add REG_BR_PROB note 5550 only if it doesn't already exist. 5551 * stmt.c (get_outgoing_edge_probs): Return 0 if BB is NULL. 5552 (emit_case_dispatch_table): Handle the case where STMT_BB is NULL. 5553 (expand_sjlj_dispatch_table): Pass BB containing before_case 5554 to emit_case_dispatch_table. 5555 55562012-10-31 Lawrence Crowl <crowl@google.com> 5557 5558 * is-a.h: New. 5559 (is_a <T> (U*)): New. Test for is-a relationship. 5560 (as_a <T> (U*)): New. Treat as a derived type. 5561 (dyn_cast <T> (U*)): New. Conditionally cast based on is_a. 5562 * cgraph.h (varpool_node): Rename to varpool_node_for_decl. 5563 Adjust callers to match. 5564 (is_a_helper <cgraph_node>::test (symtab_node_def *)): New. 5565 (is_a_helper <varpool_node>::test (symtab_node_def *)): New. 5566 (symtab_node_def::try_function): New. Change most calls to 5567 symtab_function_p with calls to dyn_cast <cgraph_node> (p). 5568 (symtab_node_def::try_variable): New. Change most calls to 5569 symtab_variable_p with calls to dyn_cast <varpool_node> (p). 5570 (symtab_function_p): Remove. Change callers to use 5571 is_a <cgraph_node> (p) instead. 5572 (symtab_variable_p): Remove. Change callers to use 5573 is_a <varpool_node> (p) instead. 5574 * cgraph.c (cgraph_node_for_asm): Remove redundant call to 5575 symtab_node_for_asm. 5576 * cgraphunit.c (symbol_finalized_and_needed): New. 5577 (symbol_finalized): New. 5578 (cgraph_analyze_functions): Split complicated conditionals out into 5579 above new functions. 5580 * Makefile.in (CGRAPH_H): Add is-a.h as used by cgraph.h. 5581 55822012-10-31 Steven Bosscher <steven@gcc.gnu.org> 5583 Jakub Jelinek <jakub@redhat.com> 5584 5585 PR tree-optimization/55018 5586 * basic-block.h (dfs_find_deadend): New prototype. 5587 * cfganal.c (dfs_find_deadend): No longer static. Use bitmap 5588 instead of sbitmap for visited. 5589 (flow_dfs_compute_reverse_execute): Use dfs_find_deadend here, too. 5590 * dominance.c (calc_dfs_tree): If saw_unconnected, traverse from 5591 dfs_find_deadend of unconnected b instead of b directly. 5592 55932012-10-31 Eric Botcazou <ebotcazou@adacore.com> 5594 5595 * config/i386/i386.c (ix86_expand_prologue): Emit frame info for the 5596 special register pushes before frame probing and allocation. 5597 55982012-10-31 Vladimir Makarov <vmakarov@redhat.com> 5599 5600 PR middle-end/55150 5601 * lra-constraints.c (lra_constraints): Update debug insn info 5602 after equivalence change. 5603 56042012-10-31 Jan Hubicka <jh@suse.cz> 5605 5606 * ipa-inline.c (ipa_inline): Avoid infinite loop on inlining 5607 empty virtual functions calling themselves. 5608 56092012-10-31 Tom Tromey <tromey@redhat.com> 5610 5611 PR other/50899 5612 * doc/gcc.texi: Add @direntry for gcov. 5613 56142012-10-31 Joern Rennecke <joern.rennecke@embecosm.com> 5615 5616 * expr.c (can_move_by_pieces): Apply ATTRIBUTE_UNUSED to len. 5617 56182012-10-31 Jakub Jelinek <jakub@redhat.com> 5619 5620 PR tree-optimization/19105 5621 PR tree-optimization/21643 5622 PR tree-optimization/46309 5623 * tree-ssa-reassoc.c (init_range_entry): Add STMT argument 5624 and use it if EXP is NULL. 5625 (update_range_test): Handle OPCODE equal to ERROR_MARK and oe->op NULL. 5626 (optimize_range_tests): Likewise. 5627 (final_range_test_p, suitable_cond_bb, no_side_effect_bb, get_ops, 5628 maybe_optimize_range_tests): New functions. 5629 (reassociate_bb): Call maybe_optimize_range_tests if last 5630 stmt of bb is GIMPLE_COND that hasn't been visited yet. 5631 56322012-10-31 Richard Sandiford <rdsandiford@googlemail.com> 5633 5634 * config/rs6000/rs6000.md (insvsi, insvdi, extvsi, extvdi): Rename 5635 to... 5636 (insvsi_internal, insvdi_internal, extvsi_internal) 5637 (extvdi_internal): ...this. 5638 (insv, extv): Update accordingly. 5639 56402012-10-31 Richard Sandiford <rdsandiford@googlemail.com> 5641 5642 * combine.c (simplify_comparison): If BITS_BIG_ENDIAN, always assume 5643 that zero_extracts of const_ints are doing word-sized extractions. 5644 56452012-10-31 Richard Sandiford <rdsandiford@googlemail.com> 5646 5647 * combine.c (make_extraction): Remove dead wanted_inner_mode- 5648 and pos_rtx-related code. 5649 56502012-10-31 Richard Sandiford <rdsandiford@googlemail.com> 5651 5652 * expmed.c (store_bit_field_1): Move generation of MEM insvs 5653 to the MEM_P block. 5654 (extract_bit_field_1): Likewise extvs and extzvs. 5655 56562012-10-31 Richard Sandiford <rdsandiford@googlemail.com> 5657 5658 * expmed.c (store_bit_field_using_insv): New function, 5659 split out from... 5660 (store_bit_field_1): ...here. 5661 (extract_bit_field_using_extv): New function, split out from... 5662 (extract_bit_field_1): ...here. 5663 56642012-10-31 Richard Sandiford <rdsandiford@googlemail.com> 5665 5666 * expmed.c (store_bit_field_1): Use OP_MODE to check whether an 5667 insv pattern is available. Remove redundant checks for OP_MODE 5668 being MAX_MACHINE_MODE. 5669 (extract_bit_field_1): Remove redundant checks for EXT_MODE being 5670 MAX_MACHINE_MODE. 5671 56722012-10-31 Richard Sandiford <rdsandiford@googlemail.com> 5673 5674 * expmed.c (store_bit_field_1): Remove test for BLKmode values. 5675 56762012-10-31 Ralf Corsépius <ralf.corsepius@rtems.org>, 5677 Joel Sherrill <joel.sherrill@oarcorp.com> 5678 5679 * config/sparc/t-rtems: New (Custom multilibs). 5680 * config/sparc/t-rtems-64: New (Custom multilibs). 5681 * config.gcc (sparc64-*-rtems*): Add sparc/t-rtems-64. 5682 (sparc-*-rtems*): Add sparc/t-rtems. 5683 56842012-10-31 Alan Modra <amodra@gmail.com> 5685 5686 * config/rs6000/rs6000.c (legitimize_reload_address): Remove code 5687 handling non-aligned ld/std. 5688 * config/rs6000/paired.md (movv2sf_paired): Use 'Y' instead of 'o'. 5689 * config/rs6000/vsx.md (vsx_mov, vsx_movti): Likewise. 5690 * config/rs6000/altivec.md (altivec_mov, altivec_movti): Likewise. 5691 * config/rs6000/dfp.md (movtd_internal): Use 'm' instead of 'o'. 5692 56932012-10-31 Alan Modra <amodra@gmail.com> 5694 5695 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Define _CALL_LINUX. 5696 56972012-10-31 Joern Rennecke <joern.rennecke@embecosm.com> 5698 5699 * lra-constraints.c (choose_split_class): Add ATTRIBUTE_UNUSED to 5700 hard_reg_class. 5701 5702 PR target/52498 5703 * vmsdbgout.c (vmsdbgout_write_source_line): Comment out names of 5704 last two parameters. 5705 57062012-10-30 Alexandre Oliva <aoliva@redhat.com> 5707 5708 PR debug/54551 5709 PR debug/54693 5710 * valtrack.c (dead_debug_promote_uses): Assert-check that 5711 global used bit was clear and initialize entry unconditionally. 5712 57132012-10-30 Eric Botcazou <ebotcazou@adacore.com> 5714 5715 * cse.c (hash_rtx_cb): Replace RTX_UNCHANGING_P with MEM_READONLY_P in 5716 head comment. 5717 (hash_rtx): Likewise. 5718 57192012-10-30 H.J. Lu <hongjiu.lu@intel.com> 5720 5721 PR rtl-optimization/55093 5722 * rtlanal.c (simplify_subreg_regno): Remove lra_in_progress 5723 check for ARG_POINTER_REGNUM. 5724 57252012-10-30 Steve Ellcey <sellcey@mips.com> 5726 5727 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Change order 5728 and add mabi=64. 5729 (DRIVER_SELF_SPECS): Make -n32 the default on mips64* archs. 5730 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Change order. 5731 (MULTILIB_DIRNAMES): Ditto. 5732 (MULTILIB_EXCEPTIONS): New. 5733 57342012-10-30 Joern Rennecke <joern.rennecke@embecosm.com> 5735 5736 * lra-constraints.c (check_secondary_memory_needed_p): 5737 Add ATTRIBUTE_UNUSED to parameters. 5738 57392012-10-30 Richard Sandiford <rdsandiford@googlemail.com> 5740 5741 * defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition. 5742 * expmed.c (SLOW_UNALIGNED_ACCESS): Remove default definition. 5743 * expr.c (SLOW_UNALIGNED_ACCESS): Likewise. 5744 * lra-constraints.c (SLOW_UNALIGNED_ACCESS): Likewise. 5745 (simplify_operand_subreg): Don't check STRICT_ALIGNMENT here. 5746 57472012-10-30 Jan Hubicka <jh@suse.cz> 5748 5749 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Cleanup. 5750 57512012-10-30 Jan Hubicka <jh@suse.cz> 5752 5753 * tree-ssa-loop-niter.c (number_of_iterations_exit): New parameter 5754 EVERY_ITERATION with implicit value of true. 5755 (record_estimate): Check dominance relationship of the basic block 5756 we are estimating on instead of relying on UPPER to be false. 5757 (struct ilb_data): Drop RELIABLE. 5758 (idx_infer_loop_bounds): Update. 5759 (infer_loop_bounds_from_ref): Drop parameter RELIABLE. 5760 (infer_loop_bounds_from_array): Drop parameter RELIABLE. 5761 (infer_loop_bounds_from_undefined): Update comments and handling 5762 of RELIABLE. 5763 (estimate_numbers_of_iterations_loop): Record all bounds. 5764 57652012-10-30 Richard Sandiford <r.sandiford@uk.ibm.com> 5766 5767 * lra-eliminations.c (lra_eliminate_regs_1): Use simplify_gen_subreg 5768 rather than gen_rtx_SUBREG. 5769 57702012-10-30 Richard Biener <rguenther@suse.de> 5771 5772 * gimple.h (gimple_store_p): New predicate. 5773 (gimple_assign_load_p): Likewise. 5774 * tree-inline.c (estimate_num_insns): Use it. 5775 57762012-10-30 Marc Glisse <marc.glisse@inria.fr> 5777 5778 * fold-const.c (fold_binary_op_with_conditional_arg): Handle vectors. 5779 (fold_binary_loc): Call it for VEC_COND_EXPR. 5780 57812012-10-30 James Greenhalgh <james.greenhalgh@arm.com> 5782 Tejas Belagod <tejas.belagod@arm.com> 5783 5784 * config/aarch64/aarch64-simd.md 5785 (aarch64_simd_bsl<mode>_internal): New pattern. 5786 (aarch64_simd_bsl<mode>): Likewise. 5787 (aarch64_vcond_internal<mode>): Likewise. 5788 (vcondu<mode><mode>): Likewise. 5789 (vcond<mode><mode>): Likewise. 5790 * config/aarch64/iterators.md (UNSPEC_BSL): Add to define_constants. 5791 57922012-10-30 Richard Biener <rguenther@suse.de> 5793 5794 PR tree-optimization/55111 5795 * tree-ssa-pre.c (eliminate_insert): Properly fold the built stmt. 5796 57972012-10-30 Oleg Endo <olegendo@gcc.gnu.org> 5798 5799 PR target/54963 5800 * config/sh/iterators.md (SIDI): New mode iterator. 5801 * config/sh/sh.md (negdi2): Use parallel around operation and T_REG 5802 clobber in expander. 5803 (*negdi2): Mark output operand as early clobbered. Add T_REG clobber. 5804 Split after reload. Simplify split code. 5805 (abssi2, absdi2): Fold expanders into abs<mode>2. 5806 (*abssi2, *absdi2): Fold into *abs<mode>2 insn_and_split. Split insns 5807 before reload. 5808 (*negabssi2, *negabsdi2): Fold into *negabs<mode>2. Add T_REG clobber. 5809 Split insns before reload. 5810 (negsi_cond): Reformat. Use emit_move_insn instead of gen_movesi. 5811 (negdi_cond): Reformat. Use emit_move_insn instead of a pair 5812 of gen_movsi. Split insn before reload. 5813 58142012-10-30 Oleg Endo <olegendo@gcc.gnu.org> 5815 5816 PR target/53988 5817 * config/sh/sh.md (tstqi_t_zero): Rename to *tstqi_t_zero. 5818 (*tst<mode>_t_zero): New insns. 5819 * config/sh/iterators.md (lowpart_be, lowpart_le): New mode attributes. 5820 58212012-10-30 H.J. Lu <hongjiu.lu@intel.com> 5822 5823 * gimple-pretty-print.c (dump_gimple_bb_header): Avoid alloca. 5824 58252012-10-30 Jakub Jelinek <jakub@redhat.com> 5826 5827 PR debug/54953 5828 * valtrack.h (DEBUG_TEMP_AFTER_WITH_REG_FORCE): New. 5829 * valtrack.c (dead_debug_insert_temp): Use emit_debug_insn_after 5830 even for where == DEBUG_TEMP_AFTER_WITH_REG_FORCE. 5831 * dce.c (word_dce_process_block, dce_process_block): Pass 5832 DEBUG_TEMP_AFTER_WITH_REG_FORCE if insn is needed and therefore 5833 not going to be eliminated. 5834 58352012-10-29 Lawrence Crowl <crowl@google.com> 5836 5837 * sbitmap.h (sbitmap_copy): Rename bitmap_copy. 5838 (sbitmap_copy_n): Rename bitmap_copy_n. 5839 (sbitmap_equal): Rename bitmap_equal_p. 5840 (sbitmap_empty_p): Rename bitmap_empty_p. 5841 (sbitmap_range_empty_p): Rename bitmap_range_empty_p. 5842 (sbitmap_zero): Rename bitmap_clear. 5843 (sbitmap_ones): Rename bitmap_ones. 5844 (sbitmap_vector_zero): Rename bitmap_vector_clear. 5845 (sbitmap_vector_ones): Rename bitmap_vector_ones. 5846 (sbitmap_not): Rename bitmap_not. 5847 (sbitmap_a_and_b_cg): Commented out. 5848 (sbitmap_a_and_b): Rename bitmap_and. Add bool return. 5849 (sbitmap_difference): Rename bitmap_and_compl. 5850 (sbitmap_a_or_b_cg): Commented out. 5851 (sbitmap_a_or_b): Rename bitmap_xor. Add bool return. 5852 (sbitmap_a_xor_b_cg): Commented out. 5853 (sbitmap_a_xor_b): Rename bitmap_xor. Add bool return. 5854 (sbitmap_a_and_b_or_c_cg): Rename bitmap_and_or. 5855 (sbitmap_a_and_b_or_c): Commented out. 5856 (sbitmap_a_or_b_and_c_cg): Rename bitmap_or_and. 5857 (sbitmap_a_or_b_and_c): Commented out. 5858 (sbitmap_union_of_diff_cg): Rename bitmap_ior_and_compl. 5859 (sbitmap_union_of_diff): Commented out. 5860 (dump_sbitmap): Rename dump_bitmap. 5861 (dump_sbitmap_file): Rename dump_bitmap_file. 5862 (debug_sbitmap): Rename debug_bitmap. 5863 (dump_sbitmap_vector): Rename dump_bitmap_vector. 5864 (sbitmap_first_set_bit): Rename bitmap_first_set_bit. 5865 (sbitmap_last_set_bit): Rename bitmap_last_set_bit. 5866 (sbitmap_a_subset_b_p): Rename bitmap_subset_p. 5867 (sbitmap_any_common_bits): Rename bitmap_intersect_p. 5868 (#define sbitmap_free): Reimplement as inline function. 5869 (#define sbitmap_vector_free): Reimplement as inline function. 5870 * bitmap.h (#define bitmap_zero): Remove as redundant. 5871 (#define bitmap_empty_p): Reimplement as inline function. 5872 (#define dump_bitmap): Reimplement as inline function. 5873 58742012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com> 5875 5876 PR c++/54930 5877 * doc/invoke.texi (Warning Options): Document -Wno-return-local-addr. 5878 58792012-10-29 H.J. Lu <hongjiu.lu@intel.com> 5880 5881 * lra-assigns.c: Remove trailing white spaces. 5882 * lra-coalesce.c: Likewise. 5883 * lra-constraints.c: Likewise. 5884 * lra-eliminations.c: Likewise. 5885 * lra-int.h: Likewise. 5886 * lra-spills.c: Likewise. 5887 * lra.c: Likewise. 5888 58892012-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org> 5890 5891 PR c/53066 5892 * tree.h (FUNCTION_POINTER_TYPE_P): New. 5893 58942012-10-29 Alexandre Oliva <aoliva@redhat.com> 5895 5896 PR debug/54693 5897 * valtrack.c (dead_debug_insert_temp): Defer rescan of 5898 newly-emitted debug insn. 5899 59002012-10-29 Alexandre Oliva <aoliva@redhat.com> 5901 5902 PR debug/54693 5903 * tree-ssa-threadedge.c (thread_around_empty_block): Copy 5904 debug temps from predecessor before threading. 5905 59062012-10-29 Alexandre Oliva <aoliva@redhat.com> 5907 5908 PR debug/54551 5909 PR debug/54693 5910 * valtrack.c (dead_debug_global_find): Accept NULL dtemp. 5911 (dead_debug_global_insert): Return new entry. 5912 (dead_debug_global_replace_temp): Return early if REG is no 5913 longer in place, or if dtemp was already substituted. 5914 (dead_debug_promote_uses): Insert for all defs and replace all 5915 debug uses at once. 5916 (dead_debug_local_finish): Release used after promotion. 5917 (dead_debug_insert_temp): Stop if dtemp is NULL. 5918 59192012-10-29 Alexandre Oliva <aoliva@redhat.com> 5920 5921 PR debug/54693 5922 * loop-unroll.c (loop_exit_at_end_p): Skip debug insns. 5923 59242012-10-29 Alexandre Oliva <aoliva@redhat.com> 5925 5926 PR debug/54693 5927 * config/i386/i386.c (add_parameter_dependencies): Stop 5928 backward scan at the insn before the incoming head. 5929 (ix86_dependencies_evaluation_hook): Skip debug insns. Stop 5930 if first_arg is head. 5931 59322012-10-29 Andrew Pinski <apinski@cavium.com> 5933 5934 * config/aarch64/aarch64-protos.h (aarch64_load_tp): New proto. 5935 * config/aarch64/aarch64.c (aarch64_load_tp): Export. 5936 (aarch64_init_builtins): Don't add __builtin_thread_pointer builtin. 5937 * config/aarch64/aarch64.h (aarch64_builtins): Delete 5938 AARCH64_BUILTIN_THREAD_POINTER. 5939 * config/aarch64/aarch64.md (get_thread_pointerdi): New pattern. 5940 59412012-10-29 Marc Glisse <marc.glisse@inria.fr> 5942 5943 PR middle-end/55027 5944 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep): 5945 Handle VECTOR_CST. 5946 59472012-10-29 Vladimir Makarov <vmakarov@redhat.com> 5948 5949 * rtlanal.c (strip_address_mutation): Use SUBREG_REG instead of XEXP. 5950 59512012-10-29 Uros Bizjak <ubizjak@gmail.com> 5952 5953 * config/i386/i386.c (ix86_decompose_address): Use simplify_gen_subreg 5954 for all addresses, zero-extended with AND. 5955 59562012-10-29 Vladimir Makarov <vmakarov@redhat.com> 5957 5958 PR middle-end/55116 5959 * rtlanal.c (strip_address_mutation): Add SUBREG case. 5960 59612012-10-29 Jan Hubicka <jh@suse.cz> 5962 5963 * ipa-inline.c (want_inline_function_called_once_p): Rename to ... 5964 (want_inline_function_to_all_callers_p): check also functions with 5965 multiple callers. 5966 (ipa_inline): Handle inlining for size into multiple callers. 5967 59682012-10-29 Richard Guenther <rguenther@suse.de> 5969 5970 PR middle-end/53695 5971 * tracer.c (tracer): Fixup loop structure. 5972 * cfgloopmanip.c (force_single_succ_latches): Add assert. 5973 (fix_loop_structure): Re-compute loop latches and disambiguate 5974 loops with multiple latches if required. 5975 59762012-10-29 Uros Bizjak <ubizjak@gmail.com> 5977 5978 * config/i386/i386.c (ix86_decompose_address): Use simplify_gen_subreg 5979 to check SImode equivalent of address, zero-extended with AND RTX. 5980 * config/i386/i386.md (ashift to lea splitter): Split to SImode mult. 5981 (simple lea to add/shift peephole2s): Remove peephole2s that operate 5982 on subregs of DImode operations. 5983 59842012-10-28 Vladimir Makarov <vmakarov@redhat.com> 5985 5986 PR rtl-optimization/55106 5987 * lra-constraints.c (skip_usage_debug_insns): New function. 5988 (check_secondary_memory_needed_p): Ditto. 5989 (inherit_reload_reg): Use the new functions. Improve debug output. 5990 59912012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com> 5992 5993 * doc/cpp.texi (Search Path): Fix outdated C++ path. 5994 59952012-10-28 Jan Hubicka <jh@suse.cz> 5996 5997 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle 5998 &this->field expressions. 5999 60002012-10-28 Vladimir Makarov <vmakarov@redhat.com> 6001 6002 * rtl.h (struct rtx_def): Add a comment for member unchanging. 6003 * lra-int.h (LRA_TEMP_CLOBBER_P): New macro. 6004 (lra_hard_reg_substitution): Rename to lra_final_code_change. 6005 * lra-constraints.c (match_reload): Mark temporary clobbers. 6006 * lra-spill.c (lra_hard_reg_substitution): Rename to 6007 lra_final_code_change. Remove temporary clobbers. 6008 * lra.c (lra): Rename to lra_final_code_change. 6009 60102012-10-28 Jan Hubicka <jh@suse.cz> 6011 6012 * ipa-inline.c (edge_badness): Fix overflow. 6013 (inline_small_functions): Initialize SCCs correctly. 6014 (do_estimate_edge_time, do_estimate_edge_hints): Skip self 6015 recursive functions in SCC hints. 6016 60172012-10-28 Steven Bosscher <steven@gcc.gnu.org> 6018 6019 PR rtl-optimization/38711 6020 * ira.c (ira): Remove DF_LIVE if the problem is in the stack. 6021 (do_reload): Add it back at the end for -O2 and higher. 6022 6023 * function.c (thread_prologue_and_epilogue_insns): Use 6024 REG_SET_TO_HARD_REG_SET instead of CLEAR_HARD_REG_SET and 6025 reg_set_to_hard_reg_set. 6026 60272012-10-28 Jan Hubicka <jh@suse.cz> 6028 6029 * ipa-inline.c (edge_badness): Reduce precision; use scc hints. 6030 (inline_small_functions): Fix dumps; update all callees after inlining. 6031 * ipa-inline.h (INLINE_HINT_in_scc, INLINE_HINT_same_scc): New 6032 constants. 6033 (inline summary): Add SCC_NO. 6034 * ipa-inline-analysis.c (dump_inline_hints): Dump SCC hints. 6035 (reset_inline_summary): Reset scc_no. 6036 (estimate_node_size_and_time): Set in_scc hint. 6037 (do_estimate_edge_time): Add same_scc hint. 6038 (do_estimate_edge_hints): Likewise. 6039 60402012-10-28 Andreas Schwab <schwab@linux-m68k.org> 6041 6042 * doc/cppopts.texi: Fix use of @item vs. @itemx inside @table. 6043 * doc/extend.texi: Likewise. 6044 * doc/generic.texi: Likewise. 6045 * doc/invoke.texi: Likewise. 6046 * doc/md.texi: Likewise. 6047 * doc/sourcebuild.texi: Likewise. 6048 6049 * doc/tm.texi.in (Misc): Add newline before @end. 6050 * doc/tm.texi: Update. 6051 60522012-10-27 Joern Rennecke <joern.rennecke@embecosm.com> 6053 6054 * lra-assigns.c (find_hard_regno_for): Fix use of WORDS_BIG_ENDIAN. 6055 60562012-10-27 Georg-Johann Lay <avr@gjlay.de> 6057 6058 PR target/55034 6059 * config/avr/avr.c (avr_out_lpm): Remove unused regno_dest. 6060 60612012-10-27 Oleg Endo <olegendo@gcc.gnu.org> 6062 6063 PR target/55042 6064 * config/sh/sh.c (sh1_builtin_p): Comment out unused function. 6065 60662012-10-27 Uros Bizjak <ubizjak@gmail.com> 6067 6068 * config/i386/i386.md (*lea<mode>): Remove unneeded temporary. 6069 60702012-10-26 David S. Miller <davem@davemloft.net> 6071 6072 * config/sparc/constraints.md: Update unused letter list, move 6073 "w" near other memory constraints. Remove no longer relevant 6074 comment. 6075 * doc/md.texi: Sync sparc constraint documentation with reality. 6076 60772012-10-26 DJ Delorie <dj@redhat.com> 6078 6079 * config/rl78/rl78.c (rl78_as_legitimate_address): Do not allow 6080 reg+addend addresses for the _far namespace. 6081 60822012-10-26 Segher Boessenkool <segher@kernel.crashing.org> 6083 6084 * config/rs6000/sync.md (ATOMIC): Correct DI condition. 6085 60862012-10-26 Jakub Jelinek <jakub@redhat.com> 6087 6088 PR debug/54970 6089 * cfgexpand.c (expand_debug_expr): Expand &MEM_REF[&var, n] 6090 as DEBUG_IMPLICIT_PTR + n if &var expands to DEBUG_IMPLICIT_PTR. 6091 * tree-sra.c (create_access_replacement): Allow also MEM_REFs 6092 with ADDR_EXPR first operand in DECL_DEBUG_EXPR expressions. 6093 * var-tracking.c (track_expr_p): Handle MEM_REFs in DECL_DEBUG_EXPR 6094 expressions. 6095 * dwarf2out.c (add_var_loc_to_decl): Likewise. 6096 60972012-10-26 Jeff Law <law@redhat.com> 6098 6099 * tree-ssa-threadedge.c (cond_arg_set_in_bb): Use last stmt. 6100 61012012-10-26 Gunther Nikl <gnikl@users.sourceforge.net> 6102 6103 * common/config/m68k/m68k-common.c (m68k_handle_option): Set 6104 gcc_options fields of opts_set for -m68020-40 and -m68020-60. 6105 61062012-10-26 Teresa Johnson <tejohnson@google.com> 6107 6108 * ree.c (add_removable_extension): Remove unnecessary 6109 mode check with other extension. 6110 * testsuite/gcc.c-torture/execute/20111227-2.c: New test. 6111 * testsuite/gcc.c-torture/execute/20111227-3.c: Ditto. 6112 61132012-10-26 Jan Hubicka <jh@suse.cz> 6114 6115 * ipa-inline-transform.c (inline_call): Only account size changes 6116 for !DECL_EXTERNAL. 6117 61182012-10-26 Martin Jambor <mjambor@suse.cz> 6119 6120 PR debug/54971 6121 * tree-sra.c (struct access): New flag grp_to_be_debug_replaced. 6122 (dump_access): Dump the new flag. 6123 (analyze_access_subtree): Set the new flag when appropriate. 6124 (create_access_replacement): Handle debug replacements differently. 6125 (generate_subtree_copies): Handle the grp_to_be_debug_replaced flag. 6126 (init_subtree_with_zero): Likewise. 6127 (sra_modify_expr): Likewise. 6128 (load_assign_lhs_subreplacements): Likewise. 6129 (sra_modify_assign): Likewise. 6130 61312012-10-23 Yuri Rumyantsev <ysrumyan@gmail.com> 6132 6133 * config/i386/i386.c (insn_is_function_arg) : Add check on CALL 6134 instruction. 6135 (ix86_dependencies_evaluation_hook): Insert dependencies in all 6136 predecessors of call block for non-trivial region avoiding creation 6137 of loop-carried dependency to avoid cross-block motion of HW registers. 6138 61392012-10-26 Richard Biener <rguenther@suse.de> 6140 6141 PR middle-end/54824 6142 * tree-optimize.c (execute_fixup_cfg): Insert __builtin_unreachable 6143 at the end of blocks with no successors. 6144 61452012-10-26 Alexander Ivchenko <alexander.ivchenko@intel.com> 6146 Uros Bizjak <ubizjak@gmail.com> 6147 6148 * common/config/i386/i386-common.c 6149 (OPTION_MASK_ISA_FXSR_SET): New. 6150 (OPTION_MASK_ISA_XSAVE_SET): Likewise. 6151 (OPTION_MASK_ISA_XSAVEOPT_SET): Likewise. 6152 (ix86_handle_option): Handle mfxsr, mxsave, mxsaveopt options. 6153 * config.gcc (i[34567]86-*-*): Add fxsrintrin.h, 6154 xsaveintrin.h, xsaveoptintrin.h. 6155 (x86_64-*-*): Likewise. 6156 * config/i386/fxsrintrin.h: New header. 6157 * config/i386/xsaveintrin.h: Likewise. 6158 * config/i386/xsaveoptintrin.h: Likewise. 6159 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 6160 FXSR/XSAVE/XSAVEOPT support. 6161 * config/i386/i386-builtin-types.def 6162 (VOID_FTYPE_PVOID_INT64): New function type. 6163 * config/i386/i386-c.c: Define __FXSR__, __XSAVE__ 6164 and __XSAVEOPT__ if needed. 6165 * config/i386/i386.c (ix86_target_string): Define -mfxsr, 6166 -mxsave and -mxsaveopt options. 6167 (PTA_FXSR): New. 6168 (PTA_XSAVE): Likewise. 6169 (PTA_XSAVEOPT): Likewise. 6170 (ix86_option_override_internal): Handle new option. 6171 (processor_alias_table): Added PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT. 6172 (ix86_valid_target_attribute_inner_p): Add OPT_mfxsr, 6173 OPT_mxsave, OPT_mxsaveopt. 6174 (ix86_builtins): Add IX86_BUILTIN_FXSAVE, IX86_BUILTIN_FXRSTOR, 6175 IX86_BUILTIN_FXSAVE64, IX86_BUILTIN_XSAVE, IX86_BUILTIN_XSAVE64, 6176 IX86_BUILTIN_XRSTOR, IX86_BUILTIN_XRSTOR64, IX86_BUILTIN_XSAVEOPT, 6177 IX86_BUILTIN_XSAVEOPT64. 6178 (ix86_expand_builtin): Handle these built-ins. 6179 * config/i386/i386.h (TARGET_FXSR): New. 6180 (TARGET_XSAVE): Likewise. 6181 (TARGET_XSAVEOPT): Likewise. 6182 * config/i386/i386.md (ANY_XSAVE): New int iterator. 6183 (ANY_XSAVE64): Likewise. 6184 (xsave): New int attribute. 6185 (fxsave): New instruction. 6186 (fxsave64): Likewise. 6187 (fxrstor): Likewise. 6188 (fxrstor64): Likewise. 6189 (<xsave>): Likewise. 6190 (<xsave>_rex64): Likewise. 6191 (xrstor): Likewise. 6192 (xrstor_rex64): Likewise. 6193 (xrstor64): Likewise. 6194 * config/i386/i386.opt (mfxsr): New. 6195 (mxsave): Likewise. 6196 (mxsaveopt): Likewise. 6197 * config/i386/x86intrin.h: Include 6198 xsaveintrin.h, fxsrintrin.h, xsaveoptintrin.h. 6199 62002012-10-26 Ralf Corsépius <ralf.corsepius@rtems.org> 6201 6202 * config/avr/t-rtems: Revert previous commit. 6203 62042012-10-26 Richard Sandiford <rdsandiford@googlemail.com> 6205 6206 PR bootstrap/55049 6207 * Makefile.in (rtlanal.o): Add dependency on addresses.h. 6208 * rtl.h (address_info): New structure. 6209 (strip_address_mutations, decompose_address, decompose_lea_address) 6210 (decompose_mem_address, update_address, get_index_scale) 6211 (get_index_code): Declare. 6212 * rtlanal.c: Include addresses.h. 6213 (strip_address_mutations, must_be_base_p, must_be_index_p) 6214 (set_address_segment, set_address_base, set_address_index) 6215 (set_address_disp, decompose_incdec_address, decompose_automod_address) 6216 (extract_plus_operands, baseness, decompose_normal_address) 6217 (decompose_address, decompose_lea_address, decompose_mem_address) 6218 (update_address, get_index_scale, get_index_code): New functions. 6219 * lra-constraints.c (strip_subreg): New function. 6220 (address, extract_loc_address_regs, extract_address_regs) 6221 (get_index_scale): Delete. 6222 (process_addr_reg): Apply strip_subreg to the location. 6223 (uses_hard_regs_p): Use decompose_mem_address. 6224 (valid_address_p, base_plus_disp_to_reg, can_add_disp_p) 6225 (equiv_address_substitution): Take an address_info rather 6226 than an address. Remove other arguments. Avoid using Pmode. 6227 (process_address): Use decompose_mem_address and decompose_lea_address. 6228 Update calls to above functions. 6229 62302012-10-26 Richard Sandiford <rdsandiford@googlemail.com> 6231 6232 * lra-constraints.c (process_address): Tighten arguments to 6233 base_reg_class. Use simplify_gen_binary to generate PLUS rtxes. 6234 62352012-10-26 Richard Sandiford <rdsandiford@googlemail.com> 6236 6237 * lra-constraints.c (get_index_scale, can_add_disp_p): New functions. 6238 (equiv_address_substitution): Use them. 6239 62402012-10-26 Richard Sandiford <rdsandiford@googlemail.com> 6241 6242 * lra-constraints.c (valid_address_p): New function, split out from... 6243 (process_address): ...here. 6244 62452012-10-26 Richard Sandiford <rdsandiford@googlemail.com> 6246 6247 * lra-constraints.c (process_address): Describe the kinds of address 6248 that we might see. 6249 62502012-10-25 Vladimir Makarov <vmakarov@redhat.com> 6251 6252 * lra-int.h (lra_assert): Redefine it gcc_checking_assert. 6253 * lra-constraints.c (check_and_process_move): Remove #if 6254 ENABLE_ASSERT_CHECKING. 6255 62562012-10-26 Ralf Corsépius <ralf.corsepius@rtems.org> 6257 6258 * config/avr/rtems.h (TARGET_OS_CPP_BUILTINS): Remove 6259 __USE_INIT_FINI__. 6260 * config/avr/t-rtems (LIB1ASMFUNCS): Filter out _exit. 6261 62622012-10-25 David S. Miller <davem@davemloft.net> 6263 6264 * config/sparc/constraints.md ("U"): Delete. 6265 * config/sparc/sparc.md: Use 'r' constraint instead of 'U'. 6266 * config/sparc/sync.md: Likewise. 6267 62682012-10-25 Lawrence Crowl <crowl@google.com> 6269 6270 * hash-table.h: Add usage documentation. 6271 (template struct typed_free_remove): Clarify documentation. 6272 Rename template parameter. 6273 (struct typed_noop_remove): Likewise. 6274 (descriptor concept): Change typedef T to value_type. 6275 Add typedef compare_type. Use more precise template parameter name, 6276 Descriptor instead of Descr. Update users to match. 6277 (struct hash_table): Change 'find' parameters to use compare_type 6278 instead of the value type. 6279 62802012-10-25 Jan Hubicka <jh@suse.cz> 6281 6282 * ipa-cp.c (ipcp_discover_new_direct_edges): If something was turned 6283 to direct call update the summary. 6284 * ipa-inline-transform.c (inline_call): Sanity check that summaries 6285 match the predicted effect; fix updating of summary after edge 6286 redirection. 6287 * ipa-inline-analysis.c (inline_node_duplication_hook): Do not try 6288 to update the summary and recompute it instead. 6289 (estimate_function_body_sizes): Fix self size estimation; double 6290 check that it agrees with inline_update_overall_summary. 6291 (estimate_edge_size_and_time): Handle devirtualizaiton costs. 6292 (estimate_edge_devirt_benefit): Update to be called from 6293 estimate_edge_size_and_time. 6294 (estimate_calls_size_and_time): Update. 6295 (estimate_node_size_and_time): Watch overflows. 6296 (inline_merge_summary): Likewise. 6297 * ipa-prob.c: Include ipa-inline.h 6298 (ipa_make_edge_direct_to_target): After redirection update the summary. 6299 63002012-10-25 Cary Coutant <ccoutant@google.com> 6301 6302 PR debug/55063 6303 * dwarf2out.c (prune_unused_types_prune): Check whether DIE is 6304 already a declaration. 6305 63062012-10-25 Vladimir Makarov <vmakarov@redhat.com> 6307 6308 * lra-assigns.c (assign_by_spills): Add non-reload pseudos 6309 assigned to hard register to changed_pseudo_bitmap. 6310 63112012-10-25 Ralf Corsépius <ralf.corsepius@rtems.org> 6312 6313 * config.gcc (microblaze*-*-rtems*): New target. 6314 * config/microblaze/rtems.h: New. 6315 * config/microblaze/t-rtems: New. 6316 63172012-10-25 Jan Hubicka <jh@suse.cz> 6318 6319 PR tree-optimize/54980 6320 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Fix obvious typo. 6321 (loop_edge_to_cancel): Be sure that the edge is from an conditional 6322 so we can cancel it. 6323 63242012-10-25 Marc Glisse <marc.glisse@inria.fr> 6325 6326 PR c++/54427 6327 * tree.c (signed_or_unsigned_type_for): Handle vectors. 6328 63292012-10-25 Jan Hubicka <jh@suse.cz> 6330 6331 * ipa-inline.c (recursive_inlining): Redirect to master 6332 clone before testing profitability. 6333 63342012-10-25 Richard Biener <rguenther@suse.de> 6335 6336 PR tree-optimization/54902 6337 * tree-ssa-pre.c (fini_eliminate): Return TODO. 6338 (do_pre): Adjust. 6339 (execute_fre): Likewise. 6340 * tree-ssa-tailmerge.c (tail_merge_optimize): Delete unreachable 6341 blocks before computing dominators. 6342 63432012-10-25 Richard Sandiford <rdsandiford@googlemail.com> 6344 6345 * expr.c (emit_block_move_via_loop): Use simplify_gen_binary 6346 rather than gen_rtx_PLUS. 6347 63482012-10-24 Vladimir Makarov <vmakarov@redhat.com> 6349 6350 PR bootstrap/55068 6351 PR regression/55050 6352 * ira.c (setup_reg_renumber): Fix assert. 6353 * ira-emit.c (emit_move_list): Update equivalences only for LRA. 6354 63552012-10-24 Vladimir Makarov <vmakarov@redhat.com> 6356 6357 PR bootstrap/55067 6358 * lra.c: Rename loc to sloc and loc_t to sloc_t. 6359 63602012-10-24 Sharad Singhai <singhai@google.com> 6361 6362 * config/rs6000/rs6000.c (rs6000_density_test): Use dump_enabled_p 6363 instead of dump_kind_p. 6364 63652012-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org> 6366 6367 PR c++/54928 6368 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): 6369 Use diagnostic_append_note. 6370 * diagnostic.c (diagnostic_build_prefix): Make diagnostic const. 6371 (default_diagnostic_finalizer): Do not destroy prefix here. 6372 (diagnostic_report_diagnostic): Destroy it here. 6373 (diagnostic_append_note): New. 6374 * diagnostic.h (diagnostic_append_note): Declare. 6375 63762012-10-24 Vladimir Makarov <vmakarov@redhat.com> 6377 6378 PR rtl-optimization/55055 6379 * lra-spills.c (alter_subregs): New function. 6380 (lra_hard_reg_substitution): Use it. 6381 63822012-10-24 Sharad Singhai <singhai@google.com> 6383 6384 * dumpfile.c (dump_enabled_p): Make it inline and move the definition 6385 to dumpfile.h. 6386 (dump_kind_p): Deleted. Functionality replaced by dump_enabled_p. 6387 Make alt_dump_file extern. 6388 * dumpfile.h (dump_enabled_p): Move inline definition here. 6389 (dump_kind_p): Delete declaration. 6390 Add extern declaration of alt_dump_file. 6391 * toplev.c: Move dump_file and dump_file_name to dumpfile.c. 6392 * tree-vect-loop-manip.c: Replace all uses of dump_kind_p with 6393 dump_enabled_p. 6394 * tree-vectorizer.c: Likewise. 6395 * tree-vect-loop.c: Likewise. 6396 * tree-vect-data-refs.c: Likewise. 6397 * tree-vect-patterns.c: Likewise. 6398 * tree-vect-stmts.c: Likewise. 6399 * tree-vect-slp.c: Likewise. 6400 64012012-10-24 Richard Sandiford <rdsandiford@googlemail.com> 6402 6403 * expmed.c (lowpart_bit_field_p): Add missing == 0 check. 6404 64052012-10-24 Vladimir Makarov <vmakarov@redhat.com> 6406 6407 PR bootstrap/55049 6408 * lra-constraints.c (extract_loc_address_regs): Pass top_p for 6409 ZERO_EXTEND operand. 6410 64112012-10-24 Vladimir Makarov <vmakarov@redhat.com> 6412 6413 PR bootstrap/55048 6414 * lra-constraints.c (update_ebb_live_info): Skip 6415 non-NOTE_INSN_BASIC_BLOCK notes. 6416 64172012-10-24 Jakub Jelinek <jakub@redhat.com> 6418 6419 PR rtl-optimization/55010 6420 * cse.c (fold_rtx) <RTX_COMPARE>: Call copy_rtx on folded_arg{0,1} 6421 before passing it to simplify_relational_operation. 6422 6423 PR debug/54828 6424 * gimple.h (is_gimple_sizepos): New inline function. 6425 * gimplify.c (gimplify_one_sizepos): Use it. Remove useless 6426 final assignment to expr variable. 6427 * tree.c (RETURN_TRUE_IF_VAR): Return true also if 6428 !TYPE_SIZES_GIMPLIFIED (type) and _t is going to be gimplified 6429 into a local temporary. 6430 64312012-10-23 David S. Miller <davem@davemloft.net> 6432 6433 * config/sparc/constraints.md ("T", "W"): Change 6434 definitions to use define_memory_constraint. Do not match 'reg'. 6435 * config/sparc/sparc.c (memory_ok_for_ldd): Remove all non-MEM 6436 handling code, update comment. 6437 64382012-10-23 Ian Lance Taylor <iant@google.com> 6439 6440 * doc/extend.texi (Extended Asm): The '+' constraint does not 6441 require a register. 6442 64432012-10-23 Jeff Law <law@redhat.com> 6444 6445 * tree-ssa-threadedge.c (thread_across_edge): Remove unused 6446 parameter in call to cond_arg_set_in_bb. 6447 6448 * tree-ssa-threadedge.c (cond_arg_set_in_bb): Remove unused 6449 debugging argument. 6450 6451 PR tree-optimization/54985 6452 * tree-ssa-threadedge.c (cond_arg_set_in_bb): New function extracted 6453 from thread_across_edge. 6454 (thread_across_edge): Use it in all cases where we might thread 6455 across a back edge. 6456 64572012-10-23 Vladimir Makarov <vmakarov@redhat.com> 6458 6459 * lra-constraints.c (update_ebb_live_info): Process empty blocks. 6460 64612012-10-23 Richard Sandiford <rdsandiford@googlemail.com> 6462 6463 * expmed.c (store_split_bit_field): Update the calls to 6464 extract_fixed_bit_field. In the big-endian case, always 6465 use the mode of OP0 to count the number of significant bits. 6466 (extract_bit_field_1): Remove unit, offset, bitpos and 6467 byte_offset from the outermost scope. Express conditions in terms 6468 of bitnum rather than offset, bitpos and byte_offset. Move the 6469 computation of MODE1 to the block that needs it. Use MODE unless 6470 the TMODE-based mode_for_size calculation succeeds. Split the 6471 plain move cases into two, one for memory accesses and one for 6472 register accesses. Generalize the memory case, freeing it from 6473 the old register-based endian checks. Move the INT_MODE calculation 6474 above the code that needs it. Use simplify_gen_subreg to handle 6475 multiword OP0s. If the field still spans several words, pass it 6476 directly to extract_split_bit_field. Assume after that point 6477 that both targets and register sources fit within a word. 6478 Replace x-prefixed variables with non-prefixed forms. 6479 Compute the bitpos for ext(z)v register operands directly in the 6480 chosen unit size, rather than going through an intermediate 6481 BITS_PER_WORD unit size. Simplify the containment check 6482 used when forcing OP0 into a register. Update the call to 6483 extract_fixed_bit_field. 6484 (extract_fixed_bit_field): Replace the bitpos and offset parameters 6485 with a single bitnum parameter, of the same form as extract_bit_field. 6486 Assume that OP0 contains the full field. Simplify the memory offset 6487 calculation and containment check for volatile bitfields. Make the 6488 offset explicit when volatile bitfields force a misaligned access. 6489 Remove WARNED and fix long lines. Assert that the processed OP0 6490 has an integral mode. 6491 (store_split_bit_field): Update the call to store_fixed_bit_field. 6492 64932012-10-23 Richard Sandiford <rdsandiford@googlemail.com> 6494 6495 * expmed.c (lowpart_bit_field_p): New function. 6496 (store_bit_field_1): Remove unit, offset, bitpos and byte_offset 6497 from the outermost scope. Express conditions in terms of bitnum 6498 rather than offset, bitpos and byte_offset. Split the plain move 6499 cases into two, one for memory accesses and one for register accesses. 6500 Allow simplify_gen_subreg to fail rather than calling validate_subreg. 6501 Move the handling of multiword OP0s after the code that coerces VALUE 6502 to an integer mode. Use simplify_gen_subreg for this case and assert 6503 that it succeeds. If the field still spans several words, pass it 6504 directly to store_split_bit_field. Assume after that point that 6505 both sources and register targets fit within a word. Replace 6506 x-prefixed variables with non-prefixed forms. Compute the bitpos 6507 for insv register operands directly in the chosen unit size, rather 6508 than going through an intermediate BITS_PER_WORD unit size. 6509 Update the call to store_fixed_bit_field. 6510 (store_fixed_bit_field): Replace the bitpos and offset parameters 6511 with a single bitnum parameter, of the same form as store_bit_field. 6512 Assume that OP0 contains the full field. Simplify the memory offset 6513 calculation. Assert that the processed OP0 has an integral mode. 6514 (store_split_bit_field): Update the call to store_fixed_bit_field. 6515 65162012-10-23 Paul Koning <ni1d@arrl.net> 6517 6518 PR debug/54508 6519 * dwarf2out.c (prune_unused_types_prune): If pruning a class and 6520 not all its children were marked, add DW_AT_declaration flag. 6521 65222012-10-23 Ian Bolton <ian.bolton@arm.com> 6523 James Greenhalgh <james.greenhalgh@arm.com> 6524 Jim MacArthur <jim.macarthur@arm.com> 6525 Marcus Shawcroft <marcus.shawcroft@arm.com> 6526 Nigel Stephens <nigel.stephens@arm.com> 6527 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 6528 Richard Earnshaw <rearnsha@arm.com> 6529 Sofiane Naci <sofiane.naci@arm.com> 6530 Stephen Thomas <stephen.thomas@arm.com> 6531 Tejas Belagod <tejas.belagod@arm.com> 6532 Yufeng Zhang <yufeng.zhang@arm.com> 6533 6534 * config.gcc: Add AArch64. 6535 * configure.ac: Add AArch64 TLS support detection. 6536 * configure: Regenerate. 6537 65382012-10-23 Ian Bolton <ian.bolton@arm.com> 6539 James Greenhalgh <james.greenhalgh@arm.com> 6540 Jim MacArthur <jim.macarthur@arm.com> 6541 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com> 6542 Marcus Shawcroft <marcus.shawcroft@arm.com> 6543 Nigel Stephens <nigel.stephens@arm.com> 6544 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 6545 Richard Earnshaw <rearnsha@arm.com> 6546 Sofiane Naci <sofiane.naci@arm.com> 6547 Stephen Thomas <stephen.thomas@arm.com> 6548 Tejas Belagod <tejas.belagod@arm.com> 6549 Yufeng Zhang <yufeng.zhang@arm.com> 6550 6551 * doc/invoke.texi (AArch64 Options): New. 6552 * doc/md.texi (Machine Constraints): Add AArch64. 6553 65542012-10-23 Ian Bolton <ian.bolton@arm.com> 6555 James Greenhalgh <james.greenhalgh@arm.com> 6556 Jim MacArthur <jim.macarthur@arm.com> 6557 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com> 6558 Marcus Shawcroft <marcus.shawcroft@arm.com> 6559 Nigel Stephens <nigel.stephens@arm.com> 6560 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 6561 Richard Earnshaw <rearnsha@arm.com> 6562 Sofiane Naci <sofiane.naci@arm.com> 6563 Stephen Thomas <stephen.thomas@arm.com> 6564 Tejas Belagod <tejas.belagod@arm.com> 6565 Yufeng Zhang <yufeng.zhang@arm.com> 6566 6567 * common/config/aarch64/aarch64-common.c: New file. 6568 * config/aarch64/aarch64-arches.def: New file. 6569 * config/aarch64/aarch64-builtins.c: New file. 6570 * config/aarch64/aarch64-cores.def: New file. 6571 * config/aarch64/aarch64-elf-raw.h: New file. 6572 * config/aarch64/aarch64-elf.h: New file. 6573 * config/aarch64/aarch64-generic.md: New file. 6574 * config/aarch64/aarch64-linux.h: New file. 6575 * config/aarch64/aarch64-modes.def: New file. 6576 * config/aarch64/aarch64-option-extensions.def: New file. 6577 * config/aarch64/aarch64-opts.h: New file. 6578 * config/aarch64/aarch64-protos.h: New file. 6579 * config/aarch64/aarch64-simd.md: New file. 6580 * config/aarch64/aarch64-tune.md: New file. 6581 * config/aarch64/aarch64.c: New file. 6582 * config/aarch64/aarch64.h: New file. 6583 * config/aarch64/aarch64.md: New file. 6584 * config/aarch64/aarch64.opt: New file. 6585 * config/aarch64/arm_neon.h: New file. 6586 * config/aarch64/constraints.md: New file. 6587 * config/aarch64/gentune.sh: New file. 6588 * config/aarch64/iterators.md: New file. 6589 * config/aarch64/large.md: New file. 6590 * config/aarch64/predicates.md: New file. 6591 * config/aarch64/small.md: New file. 6592 * config/aarch64/sync.md: New file. 6593 * config/aarch64/t-aarch64-linux: New file. 6594 * config/aarch64/t-aarch64: New file. 6595 65962012-10-23 Michael Matz <matz@suse.de> 6597 6598 * tree-ssa-operands.h (struct def_optype_d, def_optype_p): Remove. 6599 (ssa_operands.free_defs): Remove. 6600 (DEF_OP_PTR, DEF_OP): Remove. 6601 (struct ssa_operand_iterator_d): Remove 'defs', add 'flags' members, 6602 rename 'phi_stmt' to 'stmt', 'phi_i' to 'i' and 'num_phi' to 'numops'. 6603 * gimple.h (gimple_statement_with_ops.def_ops): Remove. 6604 (gimple_def_ops, gimple_set_def_ops): Remove. 6605 (gimple_vdef_op): Don't take const gimple, adjust. 6606 (gimple_asm_input_op, gimple_asm_input_op_ptr, 6607 gimple_asm_set_input_op, gimple_asm_output_op, 6608 gimple_asm_output_op_ptr, gimple_asm_set_output_op): Adjust asserts, 6609 and rewrite to move def operands to front. 6610 (gimple_asm_clobber_op, gimple_asm_set_clobber_op, 6611 gimple_asm_label_op, gimple_asm_set_label_op): Correct asserts. 6612 * tree-ssa-operands.c (build_defs): Remove. 6613 (init_ssa_operands): Don't initialize it. 6614 (fini_ssa_operands): Don't free it. 6615 (cleanup_build_arrays): Don't truncate it. 6616 (finalize_ssa_stmt_operands): Don't assert on it. 6617 (alloc_def, add_def_op, append_def): Remove. 6618 (finalize_ssa_defs): Remove building of def_ops list. 6619 (finalize_ssa_uses): Don't mark for SSA renaming here, ... 6620 (add_stmt_operand): ... but here, don't call append_def. 6621 (get_indirect_ref_operands): Remove recurse_on_base argument. 6622 (get_expr_operands): Adjust call to get_indirect_ref_operands. 6623 (verify_ssa_operands): Don't check def operands. 6624 (free_stmt_operands): Don't free def operands. 6625 * gimple.c (gimple_copy): Don't clear def operands. 6626 * tree-flow-inline.h (op_iter_next_use): Adjust to explicitely 6627 handle def operand. 6628 (op_iter_next_tree, op_iter_next_def): Ditto. 6629 (clear_and_done_ssa_iter): Clear new fields. 6630 (op_iter_init): Adjust to setup new iterator structure. 6631 (op_iter_init_phiuse): Adjust. 6632 66332012-10-23 Greta Yorsh <Greta.Yorsh@arm.com> 6634 6635 * config/arm/arm.c (offset_ok_for_ldrd_strd): Return false for Thumb1. 6636 66372012-10-23 Vladimir Makarov <vmakarov@redhat.com> 6638 6639 * dbxout.c (dbxout_symbol_location): Pass new argument to alter_subreg. 6640 * dwarf2out.c: Include ira.h and lra.h. 6641 (based_loc_descr, compute_frame_pointer_to_fb_displacement): Use 6642 lra_eliminate_regs for LRA instead of eliminate_regs. 6643 * expr.c (emit_move_insn_1): Pass an additional argument to 6644 emit_move_via_integer. Use emit_move_via_integer for LRA only if 6645 the insn is recognized. 6646 * emit-rtl.c (gen_rtx_REG): Add lra_in_progress. 6647 (validate_subreg): Don't check offset for LRA and floating point modes. 6648 * final.c (final_scan_insn, cleanup_subreg_operands): Pass new 6649 argument to alter_subreg. 6650 (walk_alter_subreg, output_operand): Ditto. 6651 (alter_subreg): Add new argument. 6652 * gcse.c (calculate_bb_reg_pressure): Add parameter to 6653 ira_setup_eliminable_regset call. 6654 * ira.c: Include lra.h. 6655 (ira_init_once, ira_init, ira_finish_once): Call lra_start_once, 6656 lra_init, lra_finish_once in anyway. 6657 (ira_setup_eliminable_regset): Add parameter. Remove need_fp. 6658 Call lra_init_elimination and mark HARD_FRAME_POINTER_REGNUM as 6659 living forever if frame_pointer_needed. 6660 (setup_reg_class_relations): Set up ira_reg_class_subset. 6661 (ira_reg_equiv_invariant_p, ira_reg_equiv_const): Remove. 6662 (find_reg_equiv_invariant_const): Ditto. 6663 (setup_reg_renumber): Use ira_equiv_no_lvalue_p instead of 6664 ira_reg_equiv_invariant_p. Skip caps for LRA. 6665 (setup_reg_equiv_init, ira_update_equiv_info_by_shuffle_insn): New 6666 functions. 6667 (ira_reg_equiv_len, ira_reg_equiv): New externals. 6668 (ira_reg_equiv): New. 6669 (ira_expand_reg_equiv, init_reg_equiv, finish_reg_equiv): New 6670 functions. 6671 (no_equiv, update_equiv_regs): Use ira_reg_equiv instead of 6672 reg_equiv_init. 6673 (setup_reg_equiv): New function. 6674 (ira_use_lra_p): New global. 6675 (ira): Set up lra_simple_p and ira_conflicts_p. Set up and 6676 restore flag_caller_saves and flag_ira_region. Move 6677 initialization of ira_obstack and ira_bitmap_obstack upper. Call 6678 init_reg_equiv, setup_reg_equiv, and setup_reg_equiv_init instead 6679 of initialization of ira_reg_equiv_len, ira_reg_equiv_invariant_p, 6680 and ira_reg_equiv_const. Call ira_setup_eliminable_regset with a 6681 new argument. Don't flatten IRA IRA for LRA. Don't reassign 6682 conflict allocnos for LRA. Call finish_reg_equiv. 6683 (do_reload): Prepare code for LRA call. Call LRA. 6684 * ira.h (ira_use_lra_p): New external. 6685 (struct target_ira): Add members x_ira_class_subset_p 6686 x_ira_reg_class_subset, and x_ira_reg_classes_intersect_p. 6687 (ira_class_subset_p, ira_reg_class_subset): New macros. 6688 (ira_reg_classes_intersect_p): New macro. 6689 (struct ira_reg_equiv): New. 6690 (ira_setup_eliminable_regset): Add an argument. 6691 (ira_expand_reg_equiv, ira_update_equiv_info_by_shuffle_insn): New 6692 prototypes. 6693 * ira-color.c (color_pass, move_spill_restore, coalesce_allocnos): 6694 Use ira_equiv_no_lvalue_p. 6695 (coalesce_spill_slots, ira_sort_regnos_for_alter_reg): Ditto. 6696 * ira-emit.c (ira_create_new_reg): Call ira_expand_reg_equiv. 6697 (generate_edge_moves, change_loop) Use ira_equiv_no_lvalue_p. 6698 (emit_move_list): Simplify code. Call 6699 ira_update_equiv_info_by_shuffle_insn. Use ira_reg_equiv instead 6700 of ira_reg_equiv_invariant_p and ira_reg_equiv_const. Change assert. 6701 * ira-int.h (struct target_ira_int): Remove x_ira_class_subset_p 6702 and x_ira_reg_classes_intersect_p. 6703 (ira_class_subset_p, ira_reg_classes_intersect_p): Remove. 6704 (ira_reg_equiv_len, ira_reg_equiv_invariant_p): Ditto. 6705 (ira_reg_equiv_const): Ditto. 6706 (ira_equiv_no_lvalue_p): New function. 6707 * jump.c (true_regnum): Always use hard_regno for subreg_get_info 6708 when lra is in progress. 6709 * haifa-sched.c (sched_init): Pass new argument to 6710 ira_setup_eliminable_regset. 6711 * loop-invariant.c (calculate_loop_reg_pressure): Pass new 6712 argument to ira_setup_eliminable_regset. 6713 * lra.h: New. 6714 * lra-int.h: Ditto. 6715 * lra.c: Ditto. 6716 * lra-assigns.c: Ditto. 6717 * lra-constraints.c: Ditto. 6718 * lra-coalesce.c: Ditto. 6719 * lra-eliminations.c: Ditto. 6720 * lra-lives.c: Ditto. 6721 * lra-spills.c: Ditto. 6722 * Makefile.in (LRA_INT_H): New. 6723 (OBJS): Add lra.o, lra-assigns.o, lra-coalesce.o, lra-constraints.o, 6724 lra-eliminations.o, lra-lives.o, and lra-spills.o. 6725 (dwarf2out.o): Add dependence on ira.h and lra.h. 6726 (ira.o): Add dependence on lra.h. 6727 (lra.o, lra-assigns.o, lra-coalesce.o, lra-constraints.o): New entries. 6728 (lra-eliminations.o, lra-lives.o, lra-spills.o): Ditto. 6729 * output.h (alter_subreg): Add new argument. 6730 * rtlanal.c (simplify_subreg_regno): Permit mode changes for LRA. 6731 Permit ARG_POINTER_REGNUM and STACK_POINTER_REGNUM for LRA. 6732 * recog.c (general_operand, register_operand): Accept paradoxical 6733 FLOAT_MODE subregs for LRA. 6734 (scratch_operand): Accept pseudos for LRA. 6735 * rtl.h (lra_in_progress): New external. 6736 (debug_bb_n_slim, debug_bb_slim, print_value_slim): New prototypes. 6737 (debug_rtl_slim, debug_insn_slim): Ditto. 6738 * sdbout.c (sdbout_symbol): Pass new argument to alter_subreg. 6739 * sched-vis.c (print_value_slim): New. 6740 * target.def (lra_p): New hook. 6741 (register_priority): Ditto. 6742 (different_addr_displacement_p): Ditto. 6743 (spill_class): Ditto. 6744 * target-globals.h (this_target_lra_int): New external. 6745 (target_globals): New member lra_int. 6746 (restore_target_globals): Restore this_target_lra_int. 6747 * target-globals.c: Include lra-int.h. 6748 (default_target_globals): Add &default_target_lra_int. 6749 * targhooks.c (default_lra_p): New function. 6750 (default_register_priority): Ditto. 6751 (default_different_addr_displacement_p): Ditto. 6752 * targhooks.h (default_lra_p): Declare. 6753 (default_register_priority): Ditto. 6754 (default_different_addr_displacement_p): Ditto. 6755 * timevar.def (TV_LRA, TV_LRA_ELIMINATE, TV_LRA_INHERITANCE): New. 6756 (TV_LRA_CREATE_LIVE_RANGES, TV_LRA_ASSIGN, TV_LRA_COALESCE): New. 6757 * config/arm/arm.c (load_multiple_sequence): Pass new argument to 6758 alter_subreg. 6759 (store_multiple_sequence): Ditto. 6760 * config/i386/i386.h (enum ix86_tune_indices): Add 6761 X86_TUNE_GENERAL_REGS_SSE_SPILL. 6762 (TARGET_GENERAL_REGS_SSE_SPILL): New macro. 6763 * config/i386/i386.c (initial_ix86_tune_features): Set up 6764 X86_TUNE_GENERAL_REGS_SSE_SPILL for m_COREI7 and m_CORE2I7. 6765 (ix86_lra_p, ix86_register_priority): New functions. 6766 (ix86_secondary_reload): Add NON_Q_REGS, SIREG, DIREG. 6767 (inline_secondary_memory_needed): Change assert. 6768 (ix86_spill_class): New function. 6769 (TARGET_LRA_P, TARGET_REGISTER_BANK, TARGET_SPILL_CLASS): New macros. 6770 * config/m68k/m68k.c (emit_move_sequence): Pass new argument to 6771 alter_subreg. 6772 * config/m32r/m32r.c (gen_split_move_double): Ditto. 6773 * config/pa/pa.c (pa_emit_move_sequence): Ditto. 6774 * config/sh/sh.md: Ditto. 6775 * config/v850/v850.c (v850_reorg): Ditto. 6776 * config/xtensa/xtensa.c (fixup_subreg_mem): Ditto. 6777 * doc/md.texi: Add new interpretation of hint * for LRA. 6778 * doc/passes.texi: Describe LRA pass. 6779 * doc/tm.texi.in: Add TARGET_LRA_P, TARGET_REGISTER_PRIORITY, 6780 TARGET_DIFFERENT_ADDR_DISPLACEMENT_P, and TARGET_SPILL_CLASS. 6781 * doc/tm.texi: Update. 6782 67832012-10-23 Jan Hubicka <jh@suse.cz> 6784 6785 * loop-unroll.c (decide_peel_simple): Simple peeling makes sense even 6786 with simple loops; bound number of branches only when FDO is not 6787 available. 6788 (decide_unroll_stupid): Mention that num_loop_branches heuristics 6789 is off. 6790 67912012-10-23 Nick Clifton <nickc@redhat.com> 6792 6793 PR target/54660 6794 * config/iq2000/iq2000.c (iq2000_function_arg_advance): Suppress 6795 compile time warning about pointer printing. 6796 67972012-10-23 Joseph Myers <joseph@codesourcery.com> 6798 6799 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | 6800 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Use 6801 glibc-c.o in c_target_objs and cxx_target_objs. Use t-glibc in 6802 tmake_file. Set target_has_targetcm. 6803 (tilegx-*-linux*, tilepro-*-linux*): Append to c_target_objs and 6804 cxx_target_objs rather than overriding previous value. 6805 * config/glibc-c.c, config/t-glibc: New. 6806 * doc/tm.texi.in (TARGET_C_PREINCLUDE): New @hook. 6807 * doc/tm.texi: Regenerate. 6808 * hooks.c (hook_constcharptr_void_null): New. 6809 * hooks.h (hook_constcharptr_void_null): Declare. 6810 68112012-10-23 Eric Botcazou <ebotcazou@adacore.com> 6812 6813 * config/mips/linux-common.h (STACK_CHECK_STATIC_BUILTIN): Define. 6814 (STACK_CHECK_PROTECT): Likewise. 6815 * config/mips/mips.h (MIPS_PROLOGUE_TEMP2_REGNUM): Likewise. 6816 (MIPS_PROLOGUE_TEMP2): Likewise. 6817 * config/mips/mips-protos.h (mips_output_probe_stack_range): Declare. 6818 * config/mips/mips.c: Include common/common-target.h. 6819 (mips_emit_probe_stack_range): New function. 6820 (mips_output_probe_stack_range): Likewise. 6821 (mips_expand_prologue): Invoke mips_emit_probe_stack_range if static 6822 builtin stack checking is enabled. 6823 * config/mips/mips.md (UNSPEC_PROBE_STACK_RANGE): New constant. 6824 (probe_stack_range_<P:mode>): New insn. 6825 68262012-10-23 Marc Glisse <marc.glisse@inria.fr> 6827 6828 * tree-ssa-forwprop.c (forward_propagate_into_cond): Handle vectors. 6829 * fold-const.c (fold_relational_const): Handle VECTOR_CST. 6830 * doc/generic.texi (VEC_COND_EXPR): Document current policy. 6831 68322012-10-23 Jan Hubicka <jh@suse.cz> 6833 6834 PR middle-end/54937 6835 * tree-ssa-loop-niter.c (record_estimate): Do not try to lower 6836 the bound of non-is_exit statements. 6837 (maybe_lower_iteration_bound): Do it here. 6838 (estimate_numbers_of_iterations_loop): Call it. 6839 68402012-10-23 Jan Hubicka <jh@suse.cz> 6841 6842 PR middle-end/54967 6843 * cfgloopmanip.c (fix_bb_placements): Add loop_closed_ssa_invalidated; 6844 track basic blocks that moved out of their loops. 6845 (unloop): Likewise. 6846 (remove_path): Update. 6847 (fix_loop_placements): Update. 6848 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add 6849 loop_closed_ssa_invalidated parameter; pass it around. 6850 (canonicalize_loop_induction_variables): Update loop closed 6851 SSA form if needed. 6852 (tree_unroll_loops_completely): Likewise; do irred update out of 6853 the outer loop; verify that SSA form is closed. 6854 * cfgloop.h (unrloop): Update. 6855 68562012-10-23 Terry Guo <terry.guo@arm.com> 6857 6858 PR target/55019 6859 * config/arm/arm.c (thumb1_expand_prologue): Don't push high regs with 6860 live argument regs. 6861 68622012-10-23 Hans-Peter Nilsson <hp@bitrange.com> 6863 6864 PR middle-end/55030 6865 Revert: 6866 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of 6867 expand_builtin_setjmp_receiver. 6868 (expand_label): Adjust, call expand_builtin_setjmp_receiver 6869 with NULL for the label parameter. 6870 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber 6871 the frame-pointer. Adjust comments. 6872 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver 6873 only if LABEL is non-NULL. 6874 68752012-10-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 6876 6877 PR tree-optimization/55008 6878 * gimple-ssa-strength-reduction.c (find_basis_for_candidate): 6879 Don't allow a candidate to be a basis for itself under another 6880 interpretation. 6881 68822012-10-22 Sharad Singhai <singhai@google.com> 6883 6884 * dumpfile.c (dump_phase_enabled_p): Renamed dump_enabled_p. Update 6885 all callers. 6886 (dump_enabled_p): A new function to check if any of the dump files 6887 is available. 6888 (dump_kind_p): Remove check for current_function_decl. Add check for 6889 dumpfile and alt_dump_file. 6890 * dumpfile.h: Add declaration of dump_enabled_p. 6891 68922012-10-22 Richard Biener <rguenther@suse.de> 6893 6894 PR lto/55021 6895 * tree-streamer-in.c (unpack_ts_int_cst_value_fields): Remove 6896 bogus truncations. 6897 68982012-10-22 Uros Bizjak <ubizjak@gmail.com> 6899 6900 * config/i386/i386.c (memory_address_length): Assert that non-null 6901 base or index RTXes are registers. Do not check for REG RTXes. 6902 Determine addr32 prefix using SImode_address_operand or 6903 from original base and index RTXes. Simplify code. 6904 69052012-10-22 Richard Biener <rguenther@suse.de> 6906 6907 PR tree-optimization/55011 6908 * tree-vrp.c (update_value_range): For invalid lattice transitions 6909 drop to VARYING. 6910 69112012-10-22 Julian Brown <julian@codesourcery.com> 6912 6913 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Avoid subreg'ing 6914 VFP D registers in big-endian mode. 6915 69162012-10-22 Georg-Johann Lay <avr@gjlay.de> 6917 6918 * doc/invoke.texi (AVR Options): Document __AVR_ARCH__. 6919 Note __AVR_<device>__ is not defined for cores. 6920 Don't point to --help=target. 6921 69222012-10-22 Sameera Deshpande <sameera.deshpande@arm.com> 6923 Greta Yorsh <Greta.Yorsh@arm.com> 6924 6925 * config/arm/arm.c (thumb2_emit_ldrd_pop): New function. 6926 (arm_expand_epilogue): Use the new function. 6927 69282012-10-22 Sameera Deshpande <sameera.deshpande@arm.com> 6929 Greta Yorsh <Greta.Yorsh@arm.com> 6930 6931 * config/arm/arm.c (thumb2_emit_strd_push): New function. 6932 (arm_expand_prologue): Use the new function. 6933 69342012-10-22 Sameera Deshpande <sameera.deshpande@arm.com> 6935 Greta Yorsh <Greta.Yorsh@arm.com> 6936 6937 * config/arm/arm-protos.h (offset_ok_for_ldrd_strd): New declaration. 6938 (operands_ok_ldrd_strd): Likewise. 6939 * config/arm/arm.c (offset_ok_for_ldrd_strd): New function. 6940 (operands_ok_ldrd_strd): Likewise. 6941 * config/arm/arm.md (thumb2_ldrd, thumb2_ldrd_base): New patterns. 6942 (thumb2_ldrd_base_neg): Likewise. 6943 (thumb2_strd, thumb2_strd_base, thumb_strd_base_neg): Likewise. 6944 * predicates.md (ldrd_strd_offset_operand): New predicate. 6945 * config/arm/constraints.md (Do): New constraint. 6946 69472012-10-22 Hans-Peter Nilsson <hp@bitrange.com> 6948 6949 * config/mmix/mmix.md ("nonlocal_goto_receiver"): Refer to the 6950 frame-pointer as an operand. 6951 ("*nonlocal_goto_receiver_expanded"): Ditto. Use 6952 mmix_output_register_setting instead of naked output_asm_insn for 6953 the offset from the frame-pointer to the saved rO. 6954 * config/mmix/mmix.c (mmix_output_register_setting): Emit NEGU for 6955 values -255..0. 6956 * config/mmix/predicates.md ("frame_pointer_operand"): New. 6957 * config/mmix/constraints.md ("Yf"): New. 6958 6959 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of 6960 expand_builtin_setjmp_receiver. 6961 (expand_label): Adjust, call expand_builtin_setjmp_receiver 6962 with NULL for the label parameter. 6963 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber 6964 the frame-pointer. Adjust comments. 6965 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver 6966 only if LABEL is non-NULL. 6967 69682012-10-21 Uros Bizjak <ubizjak@gmail.com> 6969 6970 * config/i386/i386-protos.h (memory_address_length): Add new bool 6971 argument. Update all uses. 6972 * config/i386/i386.c (memory_address_length): If not LEA insn, then 6973 add length of addr32 prefix based on mode of base or index register. 6974 (ix86_attr_length_address_default) <TYPE_LEA>: Do not handle SImode 6975 addresses here. Update call to memory_address_length. 6976 (ix86_print_address_operand): Use SImode_address_operand predicate. 6977 * config/i386/predicates.md (SImode_address_operand): New. 6978 * config/i386/i386.md (lea<mode>): Use SImode_address_operand 6979 to calculate "mode" attribute. Use SImode_address_operand predicate 6980 instead of open-coding accepted RTX codes. 6981 69822012-10-21 Joern Rennecke <joern.rennecke@embecosm.com> 6983 6984 * rtl.def (ADDR_DIFF_VEC): Fix comment typo. 6985 69862012-10-21 Eric Botcazou <ebotcazou@adacore.com> 6987 6988 PR rtl-optimization/44194 6989 * calls.c (expand_call): Allow sibling calls in the PARALLEL case. 6990 69912012-10-21 Tobias Burnus <burnus@net-b.de> 6992 6993 PR fortran/54725 6994 * Makefile.in (TARGET_SYSTEM_ROOT_DEFINE): New. 6995 69962012-10-21 Chung-Lin Tang <cltang@codesourcery.com> 6997 6998 * config/xtensa/xtensa.c (xtensa_expand_builtin): Remove unused 'arg' 6999 variable. 7000 70012012-10-20 Eric Botcazou <ebotcazou@adacore.com> 7002 7003 PR rtl-optimization/54315 7004 * calls.c (expand_call): Don't deal specifically with BLKmode values 7005 returned in naked registers. 7006 * expr.h (copy_blkmode_from_reg): Adjust prototype. 7007 * expr.c (copy_blkmode_from_reg): Rename first parameter into 7008 TARGET and make it required. Assert that SRCREG hasn't BLKmode. 7009 Add a couple of short-circuits for common cases and be prepared 7010 for sub-word registers. 7011 (expand_assignment): Call copy_blkmode_from_reg for BLKmode values 7012 returned in naked registers. 7013 (store_expr): Likewise. 7014 (store_field): Likewise. 7015 70162012-10-20 Jan Hubicka <jh@suse.cz> 7017 7018 * loop-unroll.c (decide_unroll_constant_iterations): Don't 7019 perform unrolling for loops with low iterations bounds or estimates. 7020 70212012-10-20 Jan Hubicka <jh@suse.cz> 7022 7023 * loop-iv.c (iv_number_of_iterations): Record the upper bound 7024 only if there are no further conditions on it. 7025 70262012-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org> 7027 7028 PR c/53063 7029 PR c/40989 7030 * opts.c (finish_options): Remove explicit handling from here. 7031 70322012-10-20 Joern Rennecke <joern.rennecke@embecosm.com> 7033 Richard Sandiford <rdsandiford@googlemail.com> 7034 7035 * emit-rtl.c (copy_delay_slot_insn): New function. 7036 * emit-rtl.h (copy_delay_slot_insn): Declare. 7037 * reorg.c: Include "emit-rtl.h". 7038 (steal_delay_list_from_target): Use copy_delay_slot_insn. 7039 (fill_slots_from_thread, fill_simple_delay_slots): Likewise. 7040 7041 * final.c (shorten_branches): When optimizing, start with small 7042 length and increase from there, and don't decrease lengths. 7043 70442012-10-19 Jan Hubicka <jh@suse.cz> 7045 7046 * builtins.def (BUILT_IN_UNREACHABLE): Make 7047 ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST. 7048 * builtin-attrs.def (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST): Define. 7049 70502012-10-19 Michael Meissner <meissner@linux.vnet.ibm.com> 7051 Dominique Dhumieres <dominiq@lps.ens.fr> 7052 7053 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Don't assume 7054 OPTION_MASK_STRICT_ALIGN is defined. 7055 (MASK_STRICT_ALIGN): If OPTION_MASK_STRICT_ALIGN is not defined, 7056 define this to 0 for the 3 ports that use it. 7057 7058 * config/rs6000/rs6000.c (OPTION_MASK_STRICT_ALIGN): Don't do 7059 check for ports not having -mstrict-align here, move test to 7060 rs6000-cpus.def. 7061 (MASK_STRICT_ALIGN): Likewise. 7062 (rs6000_debug_reg_global): Print out correct target flag words if 7063 -mdebug=reg. 7064 70652012-10-19 Marek Polacek <polacek@redhat.com> 7066 7067 PR middle-end/54945 7068 * fold-const.c (fold_sign_changed_comparison): Punt if folding 7069 pointer/non-pointer comparison. 7070 70712012-10-19 Greta Yorsh <Greta.Yorsh@arm.com> 7072 7073 * doc/sourcebuild.texi (Effective-Target Keywords): Document 7074 new effective target keyword arm_prefer_ldrd_strd. 7075 70762012-10-19 Richard Guenther <rguenther@suse.de> 7077 7078 PR tree-optimization/54981 7079 * tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p): 7080 Do not consider debug stmts as uses. 7081 70822012-10-19 Richard Biener <rguenther@suse.de> 7083 7084 PR tree-optimization/54976 7085 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): 7086 Robustify against odd inner_mode inputs. 7087 70882012-10-19 Zhenqiang Chen <zhenqiang.chen@linaro.org> 7089 7090 PR target/54892 7091 * config/arm/arm.c (arm_expand_compare_and_swap): Use SImode to make 7092 sure the mode is correct when falling through from above cases. 7093 70942012-10-19 Bin Cheng <bin.cheng@arm.com> 7095 7096 * common.opt (flag_ira_hoist_pressure): New. 7097 * doc/invoke.texi (-fira-hoist-pressure): Describe. 7098 * ira-costs.c (ira_set_pseudo_classes): New parameter. 7099 * ira.h: Update copyright dates. 7100 (ira_set_pseudo_classes): Update prototype. 7101 * haifa-sched.c (sched_init): Update call. 7102 * ira.c (ira): Update call. 7103 * regmove.c: Update copyright dates. 7104 (regmove_optimize): Update call. 7105 * loop-invariant.c: Update copyright dates. 7106 (move_loop_invariants): Update call. 7107 * gcse.c: (struct bb_data): New structure. 7108 (BB_DATA): New macro. 7109 (curr_bb, curr_reg_pressure): New static variables. 7110 (should_hoist_expr_to_dom): Rename from hoist_expr_reaches_here_p. 7111 Change parameter expr_index to expr. 7112 New parameters pressure_class, nregs and hoisted_bbs. 7113 Use reg pressure to determine the distance expr can be hoisted. 7114 (hoist_code): Use reg pressure to direct the hoist process. 7115 (get_regno_pressure_class, get_pressure_class_and_nregs) 7116 (change_pressure, calculate_bb_reg_pressure): New. 7117 (one_code_hoisting_pass): Calculate register pressure. Allocate 7118 and free data. 7119 71202012-10-19 Bin Cheng <bin.cheng@arm.com> 7121 7122 * gcse.c: Update copyright dates. 7123 (hoist_expr_reaches_here_p): Change parameter type from char * 7124 to sbitmap. 7125 71262012-10-19 Sebastian Huber <sebastian.huber@embedded-brains.de> 7127 7128 * config.gcc 7129 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename 7130 "arm*-*-rtemseabi*" to "arm*-*-rtems*". 7131 71322012-10-19 Alan Modra <amodra@gmail.com> 7133 7134 * configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold. 7135 (HAVE_LD_LARGE_TOC): Likewise. 7136 * configure: Regenerate. 7137 71382012-10-19 Alan Modra <amodra@gmail.com> 7139 7140 * config/rs6000/predicates.md (splat_input_operand): Don't call 7141 input_operand for MEMs. Instead check for volatile and call 7142 memory_address_addr_space_p with modified mode. 7143 71442012-10-18 Uros Bizjak <ubizjak@gmail.com> 7145 7146 * config/i386/i386.md (rdpmc): Remove expander. 7147 (rdtsc): Ditto. 7148 (rdtscp): Ditto. 7149 (rdpmc): Rename from *rdpmc. 7150 (rdpmc_rex64): Rename from *rdpmc_rex64. 7151 (rdtsc): Rename from *rdtsc. 7152 (rdtsc_rex64): Rename from *rdtsc_rex64. 7153 (rdtscp): Rename from *rdtscp. 7154 (rdtscp_rex64): Rename from *rdtscp_rex64. 7155 7156 * config/i386/i386.c (struct builtin_description bdesc_special_args) 7157 <IX86_BUILTIN_RDTSC>: Use CODE_FOR_NOTHING. 7158 <IX86_BUILTIN_RDTSCP>: Ditto. 7159 (struct builtin_description bdesc__args) <IX86_BUILTIN_RDPMC>: Ditto. 7160 (ix86_expand_builtin) <IX86_BUILTIN_{RDPMC,RDTSC,RDTSCP}>: Handle here. 7161 71622012-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de> 7163 7164 * config/sh/sh.c: Fix comment to silence warning. 7165 71662012-10-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 7167 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 7168 Sameera Deshpande <sameera.deshpande@arm.com> 7169 7170 * config/arm/cortex-a15-neon.md: New file. 7171 * config/arm/cortex-a15.md (cortex_a15_call): Adjust reservation. 7172 (cortex_a15_load1): Likewise. 7173 (cortex_a15_load3): Likewise. 7174 (cortex_a15_store1): Likewise. 7175 (cortex_a15_store3): Likewise. 7176 (cortex-a15-neon.md): Include. 7177 71782012-10-18 Segher Boessenkool <segher@kernel.crashing.org> 7179 7180 * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Add mode. 7181 (altivec_vsumsws_nomode): Delete. 7182 (reduc_splus_<mode>, reduc_uplus_<mode>): Call gen_altivec_vsumsws 7183 instead of gen_altivec_vsumsws_nomode. 7184 (altivec_lvlx, altivec_lvlxl, altivec_lvrx, altivec_lvrxl): Add mode. 7185 * config/rs6000/rs6000.md (probe_stack): Rename to... 7186 (probe_stack_<mode>): ... this. Add mode. Change pattern to 7187 use std instead of stw when appropriate. 7188 (probe_stack): New expander. 7189 (move_from_CR_ov_bit): Add mode. 7190 (splitter for compare_plus_ne0_<mode>, splitter for 7191 compare_plus_ne0_<mode>_1): Remove constraints. 7192 * config/rs6000/sync.md (loadsync): Rename to... 7193 (loadsync_<mode>): ... this. Add mode. 7194 (atomic_load<mode>): Adjust. 7195 71962012-10-18 Eric Botcazou <ebotcazou@adacore.com> 7197 7198 * loop-invariant.c: Include target.h. 7199 (check_dependency): Return false for an uninitialized argument register 7200 that is likely to be spilled. 7201 * Makefile.in (loop-invariant.o): Add $(TARGET_H). 7202 72032012-10-18 Eric Botcazou <ebotcazou@adacore.com> 7204 7205 * except.c (sjlj_emit_function_enter): Remove unused variable. 7206 72072012-10-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 7208 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 7209 7210 * config/arm/arm.c (neon_builtin_data): Add vfma and vfms builtins. 7211 * config/arm/neon-docgen.ml (intrinsic_groups): Add 7212 fused-multiply-* groups. 7213 * config/neon-gen.ml (print_feature_test_start): New function. 7214 (print_feature_test_end): Likewise. 7215 (print_variant): Print feature test macros. 7216 * config/arm/neon-testgen.ml (emit_prologue): Allow different 7217 tests to require different effective targets. 7218 (effective_target): New function. 7219 (test_intrinsic): Specify correct effective targets. 7220 * config/arm/neon.md (fma<VCVTF:mode>4_intrinsic): New pattern. 7221 (fmsub<VCVTF:mode>4_intrinsic): Likewise. 7222 (neon_vfma<VCVFT:mode>): New expand. 7223 (neon_vfms<VCVFT:mode>): Likewise. 7224 * config/neon.ml (opcode): Add Vfma and Vfms. 7225 (features): Add Requires_feature. 7226 (ops): Add VFMA and VFMS intrinsics. 7227 * config/arm/arm_neon.h: Regenerate. 7228 * doc/arm-neon-intrinsics.texi: Likewise. 7229 72302012-10-18 Richard Guenther <rguenther@suse.de> 7231 7232 * lto-streamer.h (enum LTO_tags): Add LTO_integer_cst. 7233 * lto-streamer-in.c (lto_input_tree): Use it. 7234 * lto-streamer-out.c (lto_output_tree): Likewise, for 7235 !TREE_OVERFLOW integer constants only. 7236 * tree-streamer-in.c (unpack_ts_int_cst_value_fields): New function. 7237 (unpack_value_fields): Call it. 7238 (streamer_read_integer_cst): Simplify. 7239 * tree-streamer-out.c (pack_ts_int_cst_value_fields): New function. 7240 (streamer_pack_tree_bitfields): Call it. 7241 (streamer_write_integer_cst): Adjust. 7242 72432012-10-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 7244 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 7245 7246 * config.gcc: Add support for ARMv8 for arm*-*-* targets. 7247 * config/arm/arm-arches.def: Add armv8-a 7248 * config/arm/arm-fpus.def: Add fp-armv8, neon-fp-armv8, 7249 crypto-neon-fp-armv8. Add crypto field. 7250 * config/arm/arm-tables.opt: Regenerate. 7251 * config/arm/arm.c (FL_FOR_ARCH8A): Likewise. 7252 (arm_arch8): New global variable. 7253 (ARM_FPU): Add crypto parameter. 7254 (arm_option_override): Set arm_arch8, update comments. 7255 * config/arm/arm.h (TARGET_CRYPTO): New macro. 7256 (arm_fpu_desc): Add crypto field. 7257 (base_architecture): Add ARMv8 entry. 7258 (arm_arch8): New variable declaration. 7259 * config/arm/bpabi.h: ARMv8 supports BE8. 7260 * doc/invoke.texi: Document ARMv8 options. 7261 72622012-10-17 Aldy Hernandez <aldyh@redhat.com> 7263 7264 PR middle-end/54893 7265 * trans-mem.c (diagnose_tm_1_op): Allow volatiles inside relaxed 7266 transactions. 7267 72682012-10-17 Aldy Hernandez <aldyh@redhat.com> 7269 7270 PR rtl-optimization/54900 7271 * ifcvt.c (noce_can_store_speculate_p): Call 7272 memory_must_be_modified_in_insn_p. 7273 * alias.c (memory_must_be_modified_in_insn_p): New. 7274 (set_dest_equal_p): New. 7275 * rtl.h (memory_must_be_modified_in_p): Protoize. 7276 72772012-10-17 Michael Meissner <meissner@linux.vnet.ibm.com> 7278 7279 * config/rs6000/rs6000.opt (rs6000_isa_flags): New flag word to 7280 replace target_flags that gives us 63 possible switches. 7281 (x_rs6000_isa_flags): Save area for rs6000_isa_flags. 7282 (x_rs6000_isa_flags_explicit): Save area for rs6000_isa_flags_explicit. 7283 (rs6000_target_flags_explicit): Delete in favor of 7284 x_rs6000_isa_flags_explicit. 7285 (-mpowerpc64): Change all switches that used to be in target_flags 7286 to now be in rs6000_isa_flags. In using rs6000_isa_flags, the 7287 options machinary will generate names of the form OPITON_<xxx> 7288 instead of TARGET_<xxx> and OPTION_MASK_<xxx> instead of MASK_<xxx>. 7289 (-mpowerpc-gpopt): Likewise. 7290 (-mpowerpc-gfxopt): Likewise. 7291 (-mmfcrf): Likewise. 7292 (-mpopcntb): Likewise. 7293 (-mfprnd): Likewise. 7294 (-mcmpb): Likewise. 7295 (-mmfpgpr): Likewise. 7296 (-maltivec): Likewise. 7297 (-mhard-dfp): Likewise. 7298 (-mmulhw): Likewise. 7299 (-mdlmzb): Likewise. 7300 (-mmultiple): Likewise. 7301 (-mstring): Likewise. 7302 (-msoft-float): Likewise. 7303 (-mhard-float): Likewise. 7304 (-mpopcntd): Likewise. 7305 (-mvsx): Likewise. 7306 (-mno-update): Likewise. 7307 (-mupdate): Likewise. 7308 (-mrecip-precision): Likewise. 7309 (-mminimal-toc): Likewise. 7310 (-misel): Likewise. 7311 * config/rs6000/aix64.opt (-maix64): Likewise. 7312 (-maix32): Likewise. 7313 * config/rs6000/sysv4.opt (-mstrict-align): Likewise. 7314 (-mrelocatable): Likewise. 7315 (-mlittle-endian): Likewise. 7316 (-mlittle): Likewise. 7317 (-mbig-endian): LIkewise. 7318 (-mbig): Likewise. 7319 (-meabi): Likewise. 7320 (-m64): Likewise. 7321 (-m32): Likewise. 7322 * config/rs6000/darwin.opt (-m64): Likewise. 7323 (-m32): Likewise. 7324 7325 * config/rs6000/rs6000-cpus.def (ISA_2_1_MASKS): Move the various 7326 masks used in rs6000.c here, since they are more logically in this 7327 file. Convert from being enums to just #defines, since the types 7328 of these masks is now HOST_WIDE_INT instead of int. For 7329 POWERPC_MASKS, add MASK_SOFT_FLOAT, since the only use case or'ed 7330 in the mask. Change the use in rs6000.c not to do the OR of 7331 MASK_SOFT_FLOAT. 7332 (ISA_2_1_MASKS): Likewise. 7333 (ISA_2_2_MASKS): Likewise. 7334 (ISA_2_4_MASKS): Likewise. 7335 (ISA_2_5_MASKS_EMBEDDED): Likewise. 7336 (ISA_2_5_MASKS_SERVER): Likewise. 7337 (POWERPC_7400_MASK): Likewise. 7338 (POWERPC_MASKS): Likewise. 7339 * config/rs6000/rs6000.c (ISA_2_1_MASKS): Likewise. 7340 (ISA_2_1_MASKS): Likewise. 7341 (ISA_2_2_MASKS): Likewise. 7342 (ISA_2_4_MASKS): Likewise. 7343 (ISA_2_5_MASKS_EMBEDDED): Likewise. 7344 (ISA_2_5_MASKS_SERVER): Likewise. 7345 (POWERPC_7400_MASK): Likewise. 7346 (POWERPC_MASKS): Likewise. 7347 (rs6000_option_override_internal): Likewise. 7348 7349 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Change 7350 all uses of target_flags to rs6000_isa_flags. Change all uses of 7351 target_flags_explicit to rs6000_isa_flags_explicit. Change the 7352 use of MASK_<xxx> to OPTION_MASK_<xxx> that options.h defines when 7353 we use a secondary flags word. Save/restore/print the new flags 7354 word when switching contexts with different target attributes. 7355 (rs6000_option_override_internal): Likewise. 7356 (rs6000_darwin_file_start): Likewise. 7357 (rs6000_opt_masks): Likewise. 7358 (rs6000_inner_target_options): Likewise. 7359 (rs6000_pragma_target_parse): Likewise. 7360 (rs6000_set_current_function): Likewise. 7361 (rs6000_function_specific_save): Likewise. 7362 (rs6000_function_specific_restore): Likewise. 7363 (rs6000_function_specific_print): Likewise. 7364 (rs6000_can_inline_p): Likewise. 7365 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise. 7366 (rs6000_cpu_cpp_builtins): Likewise. 7367 * common/config/rs6000/rs6000-driver.c (rs6000_handle_option): 7368 Likewise. 7369 7370 * config/rs6000/rs6000.h (MASK_ALTIVEC): In moving to using 7371 Var(...) for all of the isa switches, the options machinery now 7372 uses OPTION_MASK_<xxx> instead of MASK_<xxx> for the mask name. 7373 Use #define to map the old name into the new name. For switches 7374 that are defined in aix64.opt, sysv4.opt, and darwin.opt, only do 7375 the definition if those switches were defined. 7376 (MASK_ALTIVEC): Likewise. 7377 (MASK_CMPB): Likewise. 7378 (MASK_DFP): Likewise. 7379 (MASK_DLMZB): Likewise. 7380 (MASK_EABI): Likewise. 7381 (MASK_FPRND): Likewise. 7382 (MASK_HARD_FLOAT): Likewise. 7383 (MASK_ISEL): Likewise. 7384 (MASK_MFCRF): Likewise. 7385 (MASK_MFPGPR): Likewise. 7386 (MASK_MULHW): Likewise. 7387 (MASK_MULTIPLE): Likewise. 7388 (MASK_NO_UPDATE): Likewise. 7389 (MASK_POPCNTB): Likewise. 7390 (MASK_POPCNTD): Likewise. 7391 (MASK_PPC_GFXOPT): Likewise. 7392 (MASK_PPC_GPOPT): Likewise. 7393 (MASK_RECIP_PRECISION): Likewise. 7394 (MASK_SOFT_FLOAT): Likewise. 7395 (MASK_STRICT_ALIGN): Likewise. 7396 (MASK_STRING): Likewise. 7397 (MASK_UPDATE): Likewise. 7398 (MASK_VSX): Likewise. 7399 (MASK_POWERPC64): Likewise. 7400 (MASK_64BIT): Likewise. 7401 (MASK_RELOCATABLE): Likewise. 7402 (MASK_LITTLE_ENDIAN): Likewise. 7403 (MASK_MINIMAL_TOC): Likewise. 7404 (MASK_REGNAMES): Likewise. 7405 (MASK_PROTOTYPE): Likewise. 7406 (rs6000_isa_flags_explicit): Define in terms of the 7407 global_options_set structure. 7408 7409 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): 7410 Change use of target_flags to rs6000_isa_flags, target_flags_explicit 7411 to rs6000_isa_flags_explicit, and MASK_<xxx> to OPTION_MASK_<xxx>. 7412 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise. 7413 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise. 7414 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise. 7415 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise. 7416 * config/rs6000/freebsd64.h (RELOCATABLE_NEEDS_FIXUP): Likewise. 7417 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise. 7418 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Likewise. 7419 * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Likewise. 7420 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise. 7421 (OPTION_LITTLE_ENDIAN): Likewise. 7422 (OPTION_RELOCATABLE): Likewise. 7423 (OPTION_EABI): Likewise. 7424 (OPTION_PROTOTYPE): Likewise. 7425 * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Likewise. 7426 * config/rs6000/option-defaults.h (OPTION_MASK_64BIT): Likewise. 7427 (OPT_ARCH32): Likewise. 7428 (OPT_ARCH64): Likewise. 7429 * config/rs6000/sysv4.h (TARGET_TOC): Likewise. 7430 (SUBTARGET_OVERRIDE_OPTIONS): Likewise. 7431 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise. 7432 (TARGET_OS_SYSV_CPP_BUILTINS): Likewise. 7433 7434 * config/rs6000/t-rs6000 (rs6000.o): Add rs6000-cpus.def as a 7435 dependency. 7436 74372012-10-17 Jan Hubicka <jh@suse.cz> 7438 7439 * cfgloopmanip.c (copy_loop_info): New function. 7440 (duplicate_loop): Use it. 7441 (loop_version): Use it. 7442 * loop-unswitch.c (unswitch_loop): Use it. 7443 * cfgloop.h (copy_loop_info): Declare. 7444 74452012-10-17 Jan Hubicka <jh@suse.cz> 7446 7447 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add edge_to_cancel 7448 parameter and use it to estimate code optimized out in the final 7449 iteration. 7450 (loop_edge_to_cancel): New function. 7451 (try_unroll_loop_completely): New IRRED_IVALIDATED parameter; 7452 handle unrolling loops with bounds given via max_loop_iteratins; 7453 handle unrolling non-inner loops when code size shrinks; 7454 tidy dump output; when the last iteration loop still stays 7455 as loop in the CFG forcongly redirect the latch to 7456 __builtin_unreachable. 7457 (canonicalize_loop_induction_variables): Add irred_invlaidated 7458 parameter; record niter bound derrived; dump 7459 max_loop_iterations bounds; call try_unroll_loop_completely 7460 even if no niter bound is given. 7461 (canonicalize_induction_variables): Handle irred_invalidated. 7462 (tree_unroll_loops_completely): Handle non-innermost loops; 7463 handle irred_invalidated. 7464 * cfgloop.h (unlop): Declare. 7465 * cfgloopmanip.c (unloop): Export. 7466 * tree.c (build_common_builtin_nodes): Build BULTIN_UNREACHABLE. 7467 74682012-10-17 Michael Meissner <meissner@linux.vnet.ibm.com> 7469 7470 * opth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx> 7471 for Mask options, whether they use Var(...) or not. 7472 7473 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): Use 7474 TARGET_<xxx> instead of OPTION_<xxx>. 7475 * config/i386/i386.h (TARGET_64BIT): Likewise. 7476 (TARGET_MMX): Likewise. 7477 (TARGET_3DNOW): Likewise. 7478 (TARGET_3DNOW_A): Likewise. 7479 (TARGET_SSE): Likewise. 7480 (TARGET_SSE2): Likewise. 7481 (TARGET_SSE3): Likewise. 7482 (TARGET_SSSE3): Likewise. 7483 (TARGET_SSE4_1): Likewise. 7484 (TARGET_SSE4_2): Likewise. 7485 (TARGET_AVX): Likewise. 7486 (TARGET_AVX2): Likewise. 7487 (TARGET_FMA): Likewise. 7488 (TARGET_SSE4A): Likewise. 7489 (TARGET_FMA4): Likewise. 7490 (TARGET_XOP): Likewise. 7491 (TARGET_LWP): Likewise. 7492 (TARGET_ROUND): Likewise. 7493 (TARGET_ABM): Likewise. 7494 (TARGET_BMI): Likewise. 7495 (TARGET_BMI2): Likewise. 7496 (TARGET_LZCNT): Likewise. 7497 (TARGET_TBM): Likewise. 7498 (TARGET_POPCNT): Likewise. 7499 (TARGET_SAHF): Likewise. 7500 (TARGET_MOVBE): Likewise. 7501 (TARGET_CRC32): Likewise. 7502 (TARGET_AES): Likewise. 7503 (TARGET_PCLMUL): Likewise. 7504 (TARGET_CMPXCHG16B): Likewise. 7505 (TARGET_FSGSBASE): Likewise. 7506 (TARGET_RDRND): Likewise. 7507 (TARGET_F16C): Likewise. 7508 (TARGET_RTM): Likewise. 7509 (TARGET_HLE): Likewise. 7510 (TARGET_RDSEED): Likewise. 7511 (TARGET_PRFCHW): Likewise. 7512 (TARGET_ADX): Likewise. 7513 (TARGET_64BIT): Likewise. 7514 (TARGET_MMX): Likewise. 7515 (TARGET_3DNOW): Likewise. 7516 (TARGET_3DNOW_A): Likewise. 7517 (TARGET_SSE): Likewise. 7518 (TARGET_SSE2): Likewise. 7519 (TARGET_SSE3): Likewise. 7520 (TARGET_SSSE3): Likewise. 7521 (TARGET_SSE4_1): Likewise. 7522 (TARGET_SSE4_2): Likewise. 7523 (TARGET_AVX): Likewise. 7524 (TARGET_AVX2): Likewise. 7525 (TARGET_FMA): Likewise. 7526 (TARGET_SSE4A): Likewise. 7527 (TARGET_FMA4): Likewise. 7528 (TARGET_XOP): Likewise. 7529 (TARGET_LWP): Likewise. 7530 (TARGET_ROUND): Likewise. 7531 (TARGET_ABM): Likewise. 7532 (TARGET_BMI): Likewise. 7533 (TARGET_BMI2): Likewise. 7534 (TARGET_LZCNT): Likewise. 7535 (TARGET_TBM): Likewise. 7536 (TARGET_POPCNT): Likewise. 7537 (TARGET_SAHF): Likewise. 7538 (TARGET_MOVBE): Likewise. 7539 (TARGET_CRC32): Likewise. 7540 (TARGET_AES): Likewise. 7541 (TARGET_PCLMUL): Likewise. 7542 (TARGET_CMPXCHG16B): Likewise. 7543 (TARGET_FSGSBASE): Likewise. 7544 (TARGET_RDRND): Likewise. 7545 (TARGET_F16C): Likewise. 7546 (TARGET_RTM): Likewise. 7547 (TARGET_HLE): Likewise. 7548 (TARGET_RDSEED): Likewise. 7549 (TARGET_PRFCHW): Likewise. 7550 (TARGET_ADX): Likewise. 7551 (TARGET_LP64): Likewise. 7552 (TARGET_X32): Likewise. 7553 (TARGET_ISA_ROUND): Likewise. 7554 * config/i386/darwin.h (TARGET_64BIT): Likewise. 7555 7556 * doc/options.texi (Mask): Update documentation to specify only 7557 TARGET_<xxx> is generated. 7558 75592012-10-17 Greta Yorsh <Greta.Yorsh@arm.com> 7560 7561 * config/arm/arm.md (UNSPEC_PROLOGUE_USE): Rename this... 7562 (UNSPEC_REGISTER_USE): ... to this. 7563 (prologue_use): Rename this... 7564 (force_register_use): ... to this and update output assembly. 7565 (epilogue) Rename gen_prologue_use to gen_force_register_use. 7566 * config/arm/arm.c (arm_expand_prologue): Likewise. 7567 (thumb1_expand_epilogue): Likewise. 7568 (arm_expand_epilogue): Likewise. 7569 (arm_expand_epilogue): Likewise. 7570 75712012-10-17 Georg-Johann Lay <avr@gjlay.de> 7572 7573 * config/avr/avr-arch.h (avr_extra_arch_macro): Remove prototype. 7574 * config/avr/avr.c (avr_extra_arch_macro): Remove variable. 7575 (avr_option_override): Remove setting of avr_extra_arch_macro. 7576 * config/avr/avr-c.c (avr_extra_arch_macro): Replace with 7577 avr_current_device->macro. 7578 75792012-10-17 Richard Biener <rguenther@suse.de> 7580 7581 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): 7582 Do not write TREE_CHAIN of PARM_DECLs. 7583 (write_ts_decl_non_common_tree_pointers): Instead stream 7584 the DECL_ARGUMENTS chain. 7585 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): 7586 Do not read TREE_CHAIN of PARM_DECLs. 7587 (lto_input_ts_decl_non_common_tree_pointes): Instead read 7588 the DECL_ARGUMENTS as chain. 7589 75902012-10-17 Steven Bosscher <steven@gcc.gnu.org> 7591 7592 * config/iq2000/iq2000.h (call_used_regs): Remove definition. 7593 75942012-10-16 Eric Botcazou <ebotcazou@adacore.com> 7595 7596 PR rtl-optimization/54870 7597 * tree.h (TREE_ADDRESSABLE): Document special usage on SSA_NAME. 7598 * cfgexpand.c (update_alias_info_with_stack_vars ): Set it on the 7599 SSA_NAME pointer that points to a partition if there is at least 7600 one variable with it set in the partition. 7601 * dse.c (local_variable_can_escape): New predicate. 7602 (can_escape): Call it. 7603 * gimplify.c (mark_addressable): If this is a partitioned decl, also 7604 mark the SSA_NAME pointer that points to a partition. 7605 76062012-10-16 Steven Bosscher <steven@gcc.gnu.org> 7607 7608 * df-problems.c (df_kill_notes): Split up in two functions. 7609 (df_remove_dead_and_unused_notes): New function, first half of 7610 df_kill notes to remove all REG_DEAD and REG_UNUSED notes. 7611 (df_remove_dead_eq_notes): New function, second half of df_kill_notes 7612 to remove REG_EQUAL and REG_EQUIV notes referring to dead registers. 7613 (df_note_bb_compute): Call df_remove_dead_and_unused_notes instead 7614 of df_kill_notes. Call df_remove_dead_eq_notes after processing insn. 7615 7616 * web.c (web): Re-add DF_RD_PRUNE_DEAD_DEFS; 7617 76182012-10-16 Ian Lance Taylor <iant@google.com> 7619 7620 * doc/extend.texi (Return Address): Change 7621 __builtin_extract_return_address to 7622 __builtin_extract_return_addr. 7623 76242012-10-16 Steven Bosscher <steven@gcc.gnu.org> 7625 7626 * rtl.h (get_call_rtx_from): New prototype. 7627 * rtlanal.c (get_call_rtx_from): New function. 7628 * calls.c (emit_call_1): Use it. 7629 * dse.c (scan_insn): Likewise 7630 * dwarf2out.c (dwarf2out_var_location): Likewise. 7631 * sched-deps.c (call_may_noreturn_p): Likewise. 7632 * var-tracking.c (prepare_call_arguments): Likewise. 7633 * config/sh/sh.c (sh_adjust_cost): Likewise. 7634 76352012-10-16 Tom de Vries <tom@codesourcery.com> 7636 7637 * expr.c (move_by_pieces, move_by_pieces_ninsns, can_store_by_pieces) 7638 (store_by_pieces_1): Don't enter loop when no more data is left. 7639 76402012-10-16 Joern Rennecke <joern.rennecke@embecosm.com> 7641 7642 * loop-doloop.c (doloop_modify): Pass doloop_end pattern to 7643 gen_doloop_begin. 7644 (doloop_optimize): Pass flag to indicate if loop is entered at top 7645 to gen_doloop_end. 7646 * config/arm/thumb2.md (doloop_end): Accept extra operand. 7647 * config/bfin/bfin.md (doloop_end): Likewise. 7648 * config/c6x/c6x.md (doloop_end): Likewise. 7649 * config/ia64/ia64.md (doloop_end): Likewise. 7650 * config/mep/mep.md (doloop_begin, doloop_end): Likewise. 7651 * config/rs6000/rs6000.md (doloop_end): Likewise. 7652 * config/s390/s390.md (doloop_end): Likewise. 7653 * config/sh/sh.md (doloop_end): Likewise. 7654 * config/spu/spu.md (doloop_end): Likewise. 7655 * config/tilegx/tilegx.md (doloop_end): Likewise. 7656 * config/tilepro/tilepro.md (doloop_end): Likewise. 7657 * doc/md.texi (doloop_end): Document new operand. 7658 * basic-block.h (contains_no_active_insn_p): Declare. 7659 * cfgrtl.c (contains_no_active_insn_p): New function, factored 7660 out of ... 7661 (forwarder_block_p): ... here. 7662 76632012-10-16 Manuel López-Ibáñez <manu@gcc.gnu.org> 7664 7665 PR c/53063 7666 PR c/40989 7667 * doc/options.texi (EnabledBy): Document new form. 7668 * optc-gen.awk: Handle new form of EnabledBy. 7669 * common.opt (Wunused-but-set-parameter): Use EnabledBy. 7670 (Wunused-parameter): Likewise. 7671 * opts.c (finish_options): Do not handle them explicitly. 7672 * opt-functions.awk (search_var_name): New. 7673 76742012-10-16 Manuel López-Ibáñez <manu@gcc.gnu.org> 7675 7676 PR c/53063 7677 PR c/40989 7678 * optc-gen.awk: Handle new form of LangEnabledBy. 7679 * opts.c (set_Wstrict_aliasing): Declare here. Make static. 7680 * common.opt (Wstrict-aliasing=,Wstrict-overflow=): Do not use Init. 7681 * doc/options.texi (LangEnabledBy): Document new form. 7682 * flags.h (set_Wstrict_aliasing): Do not declare. 7683 76842012-10-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 7685 7686 * reload.c (find_reloads_subreg_address): Remove FORCE_REPLACE 7687 parameter. Always replace normal subreg with memory reference 7688 whenever possible. Return NULL otherwise. 7689 (find_reloads_toplev): Always call find_reloads_subreg_address 7690 for subregs of registers equivalent to a memory location. 7691 Only recurse further if find_reloads_subreg_address fails. 7692 (find_reloads_address_1): Only call find_reloads_subreg_address 7693 for subregs of registers equivalent to a memory location. 7694 Properly handle failure of find_reloads_subreg_address. 7695 76962012-10-16 Jakub Jelinek <jakub@redhat.com> 7697 7698 PR debug/54796 7699 * rtl.h: Document jump flag on VALUE. 7700 * cselib.h (cselib_set_value_sp_based, 7701 cselib_sp_based_value_p): New prototypes. 7702 * alias.c (find_base_term): For cselib_sp_based_value_p 7703 return static_reg_base_value[STACK_POINTER_REGNUM]. 7704 * cselib.c (SP_BASED_VALUE_P): Define. 7705 (cselib_set_value_sp_based, cselib_sp_based_value_p): New functions. 7706 * var-tracking.c (add_stores): Call cselib_set_value_sp_based 7707 for not yet preserved VALUEs of sp on sp assignments if 7708 hard_frame_pointer_adjustment != -1. 7709 (vt_initialize): When setting hard_frame_pointer_adjustment, 7710 disassociate sp from its previous value and call 7711 cselib_set_value_sp_based on a new VALUE created for sp. 7712 7713 PR tree-optimization/54889 7714 * tree-vect-stmts.c (vectorizable_load): Add VIEW_CONVERT_EXPR if 7715 ARRAY_REF newref doesn't have compatible type with vectype element 7716 type, use vectype element type for MEM_REF. 7717 77182012-10-16 Steven Bosscher <steven@gcc.gnu.org> 7719 7720 * combine.c (record_dead_and_set_regs): Iterate over hard register set 7721 with a hard_reg_set_iterator. 7722 * cse.c (invalidate_for_call): Likewise. 7723 * gcse.c (compute_hash_table_work): Likewise. 7724 * loop-iv.c (simplify_using_initial_values): Likewise. 7725 * postreload-gcse.c (record_opr_changes): Likewise. 7726 * regcprop.c (copyprop_hardreg_forward_1): Likewise. 7727 * var-tracking.c (dataflow_set_clear_at_call): Likewise. 7728 77292012-10-15 Easwaran Raman <eraman@google.com> 7730 7731 * optabs.c (emit_cmp_and_jump_insn_1): Add a new parameter to 7732 specificy the probability of taking the jump. 7733 (emit_cmp_and_jump_insns): Likewise. 7734 (expand_compare_and_swap_loop): Make the jump predicted not taken. 7735 * dojump.c (do_compare_rtx_and_jump): Remove the code attaching 7736 REG_BR_PROB note and pass probability to emit_cmp_and_jump_insns. 7737 * cfgbuild.c (compute_outgoing_frequencies): Do not guess outgoing 7738 probabilities for branches with more than two successors. 7739 * expr.c (emit_block_move_via_loop): Predict the loop backedge loop 7740 to be highly taken. 7741 (try_casesi): Pass the probability of jumping to the default label. 7742 (try_tablejump): Likewise. 7743 (do_tablejump): Likewise. 7744 * expr.h (try_tablejump): Add a new parameter. 7745 (try_casesi): Likewise. 7746 (emit_cmp_and_jump_insns): Add probability as default parameter with a 7747 default value of -1. 7748 * except.c (sjlj_emit_function_enter): Pass probability to 7749 emit_cmp_and_jump_insns. 7750 * stmt.c (case_node): Add new fields PROB and SUBTREE_PROB. 7751 (do_jump_if_equal): Pass probability for REG_BR_PROB note. 7752 (add_case_node): Pass estimated probability of jumping to the case 7753 label. 7754 (emit_case_decision_tree): Pass default_prob to emit_case_nodes. 7755 (get_outgoing_edge_probs): New function. 7756 (conditional_probability): Likewise. 7757 (reset_out_edges_aux): Likewise. 7758 (compute_cases_per_edge): Likewise. 7759 (emit_case_dispatch_table): Update probabilities of edges coming out 7760 of the switch statement. 7761 (expand_case): Compute and propagate default edge probability to 7762 emit_case_dispatch_table. 7763 (expand_sjlj_dispatch_table): Update calls to add_case_node and 7764 emit_case_dispatch_table. 7765 (balance_case_nodes): Update subtree_prob values. 7766 (emit_case_nodes): Compute edge probabilities and add pass them to 7767 emit_cmp_and_jump_insns. 7768 77692012-10-15 Oleg Endo <olegendo@gcc.gnu.org> 7770 7771 PR target/51244 7772 * config/sh/sh-protos.h (set_of_reg): New struct. 7773 (sh_find_set_of_reg, sh_is_logical_t_store_expr, 7774 sh_try_omit_signzero_extend): Declare... 7775 * config/sh/sh.c (sh_find_set_of_reg, sh_is_logical_t_store_expr, 7776 sh_try_omit_signzero_extend): ...these new functions. 7777 * config/sh/sh.md (*logical_op_t): New insn_and_split. 7778 (*zero_extend<mode>si2_compact): Use sh_try_omit_signzero_extend 7779 in splitter. 7780 (*extend<mode>si2_compact_reg): Convert to insn_and_split. 7781 Use sh_try_omit_signzero_extend in splitter. 7782 (*mov<mode>_reg_reg): Disallow t_reg_operand as operand 1. 7783 (*cbranch_t): Rewrite combine part in splitter using new 7784 sh_find_set_of_reg function. 7785 77862012-10-15 Oleg Endo <olegendo@gcc.gnu.org> 7787 7788 PR target/54760 7789 * config/sh/sh.c (sh_find_base_reg_disp): Stop searching insns when 7790 hitting a call insn if GBR is marked as call used. 7791 * config/sh/iterators.md (QIHISIDI): New mode iterator. 7792 * config/sh/predicates.md (gbr_address_mem): New predicate. 7793 * config/sh/sh.md (*movdi_gbr_load, *movdi_gbr_store): New 7794 insn_and_split. Use QIHISIDI instead of QIHISI in unnamed GBR 7795 addressing splits. 7796 77972012-10-15 Oleg Endo <olegendo@gcc.gnu.org> 7798 7799 * config/sh/sh.c: Update function attribute comments. 7800 * doc/extend.texi (function_vector): Rephrase SH2A specific part. 7801 (nosave_low_regs, renesas, trapa_handler): Document SH specific 7802 attributes. 7803 (sp_switch, trap_exit): Add to index. 7804 78052012-10-15 Matthias Klose <doko@ubuntu.com> 7806 7807 * config.gcc: Match arm*-*-linux-* for ARM Linux/GNU. 7808 * doc/install.texi: Use arm-*-*linux-* instead of arm-*-*linux-gnueabi. 7809 78102012-10-15 Uros Bizjak <ubizjak@gmail.com> 7811 7812 * config/i386/sse.md (UNSPEC_MOVU): Remove. 7813 (UNSPEC_LOADU): New. 7814 (UNSPEC_STOREU): Ditto. 7815 (<sse>_movu<ssemodesuffix><avxsizesuffix>): Split to ... 7816 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): ... this and ... 7817 (<sse>_storeu<ssemodesuffix><avxsizesuffix>) ... this. 7818 (<sse2>_movdqu<avxsizesuffix>): Split to ... 7819 (<sse2>_loaddqu<avxsizesuffix>): ... this and ... 7820 (<sse2>_storedqu<avxsizesuffix>): ... this. 7821 (*sse4_2_pcmpestr_unaligned): Update. 7822 (*sse4_2_pcmpistr_unaligned): Ditto. 7823 7824 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign): Use 7825 gen_avx_load{dqu,ups,upd}256 to load from unaligned memory and 7826 gen_avx_store{dqu,ups,upd}256 to store to unaligned memory. 7827 (ix86_expand_vector_move_misalign): Use gen_sse_loadups or 7828 gen_sse2_load{dqu,upd} to load from unaligned memory and 7829 gen_sse_loadups or gen_sse2_store{dqu,upd}256 to store to 7830 unaligned memory. 7831 (struct builtin_description bdesc_spec) <IX86_BUILTIN_LOADUPS>: 7832 Use CODE_FOR_sse_loadups. 7833 <IX86_BUILTIN_LOADUPD>: Use CODE_FOR_sse2_loadupd. 7834 <IX86_BUILTIN_LOADDQU>: Use CODE_FOR_sse2_loaddqu. 7835 <IX86_BUILTIN_STOREUPS>: Use CODE_FOR_sse_storeups. 7836 <IX86_BUILTIN_STOREUPD>: Use CODE_FOR_sse2_storeupd. 7837 <IX86_BUILTIN_STOREDQU>: Use CODE_FOR_sse2_storedqu. 7838 <IX86_BUILTIN_LOADUPS256>: Use CODE_FOR_avx_loadups256. 7839 <IX86_BUILTIN_LOADUPD256>: Use CODE_FOR_avx_loadupd256. 7840 <IX86_BUILTIN_LOADDQU256>: Use CODE_FOR_avx_loaddqu256. 7841 <IX86_BUILTIN_STOREUPS256>: Use CODE_FOR_avx_storeups256. 7842 <IX86_BUILTIN_STOREUPD256>: Use CODE_FOR_avx_storeupd256. 7843 <IX86_BUILTIN_STOREDQU256>: Use CODE_FOR_avx_storedqu256. 7844 78452012-10-15 Dodji Seketeli <dodji@redhat.com> 7846 7847 * alias.c: Cleanup comments. 7848 78492012-10-15 Marc Glisse <marc.glisse@inria.fr> 7850 7851 PR tree-optimization/54915 7852 * tree-ssa-forwprop.c (simplify_vector_constructor): Check 7853 argument's type. 7854 78552012-10-15 Richard Biener <rguenther@suse.de> 7856 7857 * data-streamer.h (bp_pack_string_with_length): New function. 7858 (bp_pack_string): Likewise. 7859 (bp_unpack_indexed_string): Likewise. 7860 (bp_unpack_string): Likewise. 7861 * data-streamer-out.c (bp_pack_string_with_length): Likewise. 7862 (bp_pack_string): Likewise. 7863 * data-streamer-in.c (bp_unpack_indexed_string): Likewise. 7864 (bp_unpack_string): Likewise. 7865 * tree-streamer-out.c (pack_ts_translation_unit_decl_value_fields): 7866 Pack TRANSLATION_UNIT_LANGUAGE here, not ... 7867 (write_ts_translation_unit_decl_tree_pointers): ... here. Remove. 7868 (streamer_pack_tree_bitfields): Adjust. 7869 (streamer_write_tree_body): Likewise. 7870 * tree-streamer-in.c (unpack_ts_translation_unit_decl_value_fields): 7871 Unpack TRANSLATION_UNIT_LANGUAGE here, not ... 7872 (lto_input_ts_translation_unit_decl_tree_pointers): ... here. Remove. 7873 (unpack_value_fields): Adjust. 7874 (streamer_read_tree_body): Likewise. 7875 78762012-10-15 J"orn Rennecke <joern.rennecke@arc.com> 7877 7878 * genoutput.c (process_template): Process '*' in '@' alternatives. 7879 * doc/md.texi (node Output Statement): Provide example for the above. 7880 78812012-10-15 Richard Guenther <rguenther@suse.de> 7882 7883 PR tree-optimization/54920 7884 * tree-ssa-pre.c (create_expression_by_pieces): Properly 7885 allocate temporary storage for all NARY elements. 7886 78872012-10-15 Joern Rennecke <joern.rennecke@embecosm.com> 7888 7889 * web.c (union_match_dups): Properly handle OP_INOUT match_dups. 7890 78912012-10-15 Eric Botcazou <ebotcazou@adacore.com> 7892 7893 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Do not unnecessarily 7894 copy the object in the MEM_P case. 7895 78962012-10-15 Richard Guenther <rguenther@suse.de> 7897 7898 * tree-streamer-out.c (streamer_pack_tree_bitfields): Back 7899 BINFO_BASE_ACCESSES and CONSTRUCTOR lengths here. 7900 (streamer_write_chain): Write TREE_CHAIN as null-terminated list. 7901 (write_ts_exp_tree_pointers): Adjust. 7902 (write_ts_binfo_tree_pointers): Likewise. 7903 (write_ts_constructor_tree_pointers): Likewise. 7904 * tree-streamer-in.c (streamer_read_chain): Read TREE_CHAIN as 7905 null-terminated list. 7906 (unpack_value_fields): Unpack BINFO_BASE_ACCESSES and 7907 CONSTRUCTOR lengths and materialize the arrays. 7908 (lto_input_ts_exp_tree_pointers): Adjust. 7909 (lto_input_ts_binfo_tree_pointers): Likewise. 7910 (lto_input_ts_constructor_tree_pointers): Likewise. 7911 79122012-10-14 Hans-Peter Nilsson <hp@bitrange.com> 7913 7914 * config/mmix/mmix.c (mmix_opposite_regno): Handle the 7915 return-value register too. 7916 79172012-10-14 Steven Bosscher <steven@gcc.gnu.org> 7918 7919 PR rtl-optimization/38711 7920 * df.h (df_get_live_out, df_get_live_in): Make static inline functions. 7921 * df-problems.c (df_get_live_out, df_get_live_in): Moved to df.h. 7922 * ira-lives.c (process_bb_node_lives): Use df_get_live_out instead of 7923 DF_LR_OUT. 7924 * ira-build.c (create_bb_allocnos): Likewise. 7925 (create_loop_allocnos): Likewise, and use df_get_live_in instead of 7926 DF_LR_IN. 7927 * ira-emit.c (generate_edge_moves): Likewise. 7928 (add_ranges_and_copies): Likewise. 7929 * ira-color.c (ira_loop_edge_freq): Use df_get_live_out instead of 7930 DF_LR_OUT, and df_get_live_in instead of DF_LR_IN. 7931 * ira.c (mark_elimination): Update DF_LR and DF_LIVE. 7932 (build_insn_chain): Use df_get_live_out instead of DF_LR_OUT. 7933 (do_reload): Remove the DF_LIVE problem for -O1. 7934 79352012-10-14 Steven Bosscher <steven@gcc.gnu.org> 7936 7937 PR rtl-optimization/54919 7938 * loop-unroll.c (struct var_to_expand): Remove accum_pos field. 7939 (analyze_insn_to_expand_var): Do not record accum_pos. 7940 (expand_var_during_unrolling): Use validate_replace_rtx_group to 7941 perform replacement of all references to SET_DEST (set) with the 7942 new register, including references in REG_EQUAL notes. 7943 (insert_var_expansion_initialization): Insert initializatio insns 7944 at the bottom of the pre-header of the loop. 7945 79462012-10-14 Jan Hubicka <jh@suse.cz> 7947 7948 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not 7949 predict loops with multiple exits realistically. 7950 * cfgloopanal.c (single_likely_exit): New function. 7951 79522012-10-14 Uros Bizjak <ubizjak@gmail.com> 7953 7954 * config/alpha/alpha.md: Remove empty predicates and/or constraints. 7955 * config/alpha/sync.md: Ditto. 7956 79572012-10-13 Uros Bizjak <ubizjak@gmail.com> 7958 7959 * config/alpha/alpha.md (I24MODE): New mode iterator. 7960 (any_divmod): New code iterator. 7961 (<code>si3): Macroize expander from {div,mod,udiv,umod}si3 using 7962 any_divmod code iterator. 7963 (<code>si3): Macroize expander from {div,mod,udiv,umod}di3 using 7964 any_divmod code iterator. 7965 (extendqi<mode>2): Macroize insn from extendqi{hi,si}2 using 7966 I24MODE mode iterator. 7967 (unaligned_store<mode>): Macroize expander from unaligned_store{qi,hi} 7968 using I12MODE mode iterator. 7969 (mov<mode>): Macroize expander from mov{qi,hi} using 7970 I12MODE mode iterator. 7971 79722012-10-13 Eric Botcazou <ebotcazou@adacore.com> 7973 7974 PR rtl-optimization/54871 7975 * loop-iv.c (simplify_using_initial_values): When scanning previous 7976 basic blocks, prune the recorded conditions if the current insn was 7977 not used to make a replacement. 7978 7979 * loop-unroll.c (decide_unroll_constant_iterations): Clean up message. 7980 (unroll_loop_constant_iterations): Clarify head comment. 7981 (decide_unroll_runtime_iterations): Clean up message. 7982 (unroll_loop_runtime_iterations): Clarify head comment. 7983 (decide_peel_simple): Clean up message. 7984 (peel_loop_simple): Clarify head comment. 7985 (decide_unroll_stupid): Clean up message. 7986 (unroll_loop_stupid): Clarify head comment. 7987 79882012-10-13 Andreas Schwab <schwab@linux-m68k.org> 7989 7990 PR gcov-profile/44728 7991 * gcov.c (create_file_names): When stripping extension only look 7992 at base name. 7993 79942012-10-13 Jan Hubicka <jh@suse.cz> 7995 7996 * loop-iv.c (determine_max_iter): Fix handling of AND. 7997 (iv_number_of_iterations): Record upper bounds as unsigned 7998 values. 7999 80002012-10-13 Steven Bosscher <steven@gcc.gnu.org> 8001 8002 * ira.c (ira): Set current_loops to &ira_loops before recording 8003 loop exits. Release recorded exits and loops early. 8004 80052012-10-13 Chung-Lin Tang <cltang@codesourcery.com> 8006 8007 * builtins.c (expand_builtin_set_thread_pointer): Use 8008 create_input_operand() instead of create_fixed_operand(). 8009 80102012-10-13 Uros Bizjak <ubizjak@gmail.com> 8011 8012 * config/alpha/alpha.md (FMODE): New mode iterator. 8013 (modesuffix): Handle SF and DF modes. 8014 (opmode): New mode attribute. 8015 (abs<mode>2): Macroize insn from abs{sf,df}2 using FMODE mode iterator. 8016 (*nabs<mode>2): Macroize insn from *nabs{sf,df}2 using 8017 FMODE mode iterator. 8018 (neg<mode>2): Macroize insn from neg{sf,df}2 using FMODE mode iterator. 8019 (copysign<mode>3): Macroize insn from copysign{sf,df}3 using 8020 FMODE mode iterator. 8021 (*ncopysign<mode>3): Macroize insn from *ncopysign{sf,df}3 using 8022 FMODE mode iterator. 8023 (*add<mode>3_ieee): Macroize insn from *add{sf,df}_ieee using 8024 FMODE mode iterator. 8025 (add<mode>3): Macroize insn from add{sf,df}3 using FMODE mode iterator. 8026 (*sub<mode>3_ieee): Macroize insn from *sub{sf,df}3_ieee using 8027 FMODE mode iterator. 8028 (sub<mode>3): Macroize insn from sub{sf,df}3 using FMODE mode iterator. 8029 (*mul<mode>3_ieee): Macroize insn from *mul{sf,df}3_ieee using 8030 FMODE mode iterator. 8031 (mul<mode>3): Macroize insn from mul{sf,df}3 using FMODE mode iterator. 8032 (*div<mode>3_ieee): Macroize insn from *div{sf,df}3_ieee using 8033 FMODE mode iterator. 8034 (div<mode>3): Macroize insn from div{sf,df}3 using FMODE mode iterator. 8035 (*sqrt<mode>2_ieee): Macroize insn from *sqrt{sf,df}2_ieee using 8036 FMODE mode iterator. 8037 (sqrt<mode>2): Macroize insn from sqrt{sf,df}2 8038 using FMODE mode iterator. 8039 (*mov<mode>cc_internal): Macroize insn from *mov{sf,df}cc_internal 8040 using FMODE mode iterator. 8041 (mov<mode>cc): Macroize expander from mov{sf,df}cc 8042 using FMODE mode iterator. 8043 80442012-10-12 Oleg Endo <olegendo@gcc.gnu.org> 8045 8046 PR target/54602 8047 * config/sh/sh.md: Correct define_delay for return insns. 8048 (*movsi_pop): Delete. 8049 80502012-10-12 Oleg Endo <olegendo@gcc.gnu.org> 8051 8052 PR target/54680 8053 * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_int2sf): Fix swapped 8054 comments. 8055 * config/sh/predicates.md (fpul_operand): Add comment. 8056 (fpul_fsca_operand, fsca_scale_factor): New predicates. 8057 * config/sh/sh.md (fsca): Move below sincossf3 expander. Convert to 8058 insn_and_split. Use fpul_fsca_operand and fsca_scale_factor 8059 predicates. Simplify fpul operand in splitter. 8060 80612012-10-12 Jan Hubicka <jh@suse.cz> 8062 8063 * tree-ssa-threadupdate.c (def_split_header_continue_p): Do not 8064 escape the loop. 8065 80662012-10-12 Jan Hubicka <jh@suse.cz> 8067 8068 * web.c (web_main): Do not set DF_RD_PRUNE_DEAD_DEFS flag. 8069 80702012-10-12 Aaron Gray <aaronngray.lists@gmail.com> 8071 Diego Novillo <dnovillo@google.com> 8072 8073 * gengtype-lex.l: Support for C++ single line comments. 8074 Support for classes. 8075 (CXX_KEYWORD): New. Support C++ keywords inline, public, 8076 protected, private, template, operator, friend, &, ~. 8077 (TYPEDEF): New. Support typedef. 8078 * gengtype-parser.c: updated 'token_names[]' 8079 (direct_declarator): Add support for parsing functions and ctors. 8080 80812012-10-12 Diego Novillo <dnovillo@google.com> 8082 8083 * doc/gty.texi: Document C++ limitations in gengtype. 8084 * gengtype-lex.l (CID): Rename from ID. 8085 (ID): Include scoping '::' as part of the identifier name. 8086 * gengtype-parse.c (token_names): Update. 8087 (token_value_format): Update. 8088 (consume_until_eos): Rename from consume_until_semi. 8089 Remove unused argument IMMEDIATE. Update all callers. 8090 Also consider '}' as a finalizer. 8091 (consume_until_comma_or_eos): Rename from 8092 consume_until_comma_or_semi. 8093 Remove unused argument IMMEDIATE. Update all callers. 8094 Also consider '}' as a finalizer. 8095 (direct_declarator): Add documentation on ctor support. 8096 Add argument IN_STRUCT. 8097 If the token following ID is a '(', consider ID a 8098 function and return NULL. 8099 If the token following '(' is not a '*', and IN_STRUCT is true, 8100 conclude that this is a ctor and return NULL. 8101 If the token is IGNORABLE_CXX_KEYWORD, return NULL. 8102 (inner_declarator): Add argument IN_STRUCT. 8103 Update all callers. 8104 (declarator): Add argument IN_STRUCT with default value false. 8105 Update all callers. 8106 (type): Document argument NESTED. 8107 Skip over C++ inheritance specifiers. 8108 If a token TYPEDEF is found, emit an error. 8109 If an enum is found inside a class/structure, emit an error. 8110 (typedefs, structures, param_structs, variables): Initialize. 8111 (new_structure): Do not complain about duplicate 8112 structures if S has a line location set. 8113 * gengtype-state.c (write_state_type): Remove default handler. 8114 Add handler for TYPE_NONE. 8115 (read_state_scalar_char_type): 8116 * gengtype.c: Fix spacing. 8117 * gengtype.h (enum gty_token): Add name. Add token 8118 IGNORABLE_CXX_KEYWORD. 8119 81202012-10-12 Chung-Lin Tang <cltang@codesourcery.com> 8121 8122 * config/arm/arm.md (get_thread_pointersi): Moved to place with 8123 other TLS related patterns. 8124 81252012-10-12 Richard Biener <rguenther@suse.de> 8126 8127 * tree-streamer-out.c (pack_ts_target_option): Rename from ... 8128 (write_ts_target_option): ... this. 8129 (pack_ts_optimization): Rename from ... 8130 (write_ts_optimization): ... this. 8131 (streamer_pack_tree_bitfields): Pack them in the bitfield section ... 8132 (streamer_write_tree_body): ... not here. 8133 * tree-streamer-in.c (unpack_ts_target_option): Rename from ... 8134 (lto_input_ts_target_option): ... this. 8135 (unpack_ts_optimization): Rename from ... 8136 (lto_input_ts_optimization): ... this. 8137 (unpack_value_fields): Unpack them from the bitfield section ... 8138 (streamer_read_tree_body): ... not from here. 8139 81402012-10-12 Uros Bizjak <ubizjak@gmail.com> 8141 8142 * config/alpha/alpha.md (vecmodesuffix): New mode attribute. 8143 (modesuffix): Handle V8QI and V4HI modes. 8144 (any_maxmin): New code iterator. 8145 (maxmin): New code attribute. 8146 (<code><mode>3): Macroize insn from {smax,smin,umax,umin}{qi,hi}3 8147 using any_maxmin code iterator and I12MODE mode iterator. 8148 (<code><mode>3): Macroize insn from {smax,smin,umax,umin}{v8qi,v4hi}3 8149 using any_maxmin code iterator and VEC12 mode iterator. 8150 81512012-10-12 Marc Glisse <marc.glisse@inria.fr> 8152 8153 * optabs.c (vector_compare_rtx): Change prototype. 8154 (expand_vec_cond_expr): Handle VEC_COND_EXPR whose first operand 8155 is not a comparison. 8156 * gimplify.c (gimplify_expr): Handle VEC_COND_EXPR. 8157 81582012-10-12 Richard Biener <rguenther@suse.de> 8159 8160 PR tree-optimization/54894 8161 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): 8162 Handle over-aligned scalar types properly. 8163 81642012-10-12 Oleg Endo <olegendo@gcc.gnu.org> 8165 8166 PR target/54760 8167 * config/sh/sh.c (bdesc): Remove thread pointer built-ins. 8168 * config/sh/sh.md (get_thread_pointer, set_thread_pointer): Append mode 8169 name 'si'. 8170 81712012-10-12 Oleg Endo <olegendo@gcc.gnu.org> 8172 8173 PR target/51244 8174 * config/sh/sh.md (negsi_cond, negdi_cond, stack_protect_test): Remove 8175 get_t_reg_rtx when invoking gen_branch_true or gen_branch_false. 8176 (*zero_extend<mode>si2_compact): Convert to insn_and_split. Convert 8177 zero extensions of T bit stores to reg moves in splitter. Remove 8178 obsolete unnamed peephole2 that caught zero extensions after negc T bit 8179 stores. 8180 (*branch_true_eq, *branch_false_ne): Delete. 8181 (branch_true, branch_false): Convert insn to expander. Move actual 8182 insn logic to... 8183 (*cbranch_t): ...this new insn_and_split. Try to find preceding 8184 redundant T bit stores and tests and combine them with the conditional 8185 branch if possible in the splitter. 8186 (movrt_xor, *movt_movrt): New insn_and_split. 8187 * config/sh/predicates.md (cbranch_treg_value): New predicate. 8188 * config/sh/sh-protos.h (sh_eval_treg_value): Forward declare... 8189 * config/sh/sh.c (sh_eval_treg_value): ...this new function. 8190 (expand_cbranchsi4, expand_cbranchdi4): Remove get_t_reg_rtx 8191 when invoking gen_branch_true or gen_branch_false. 8192 81932012-10-11 Uros Bizjak <ubizjak@gmail.com> 8194 8195 * config/alpha/alpha.md (IMODE): New mode iterator. 8196 (I124MODE): Ditto. 8197 (I248MODE): Ditto. 8198 (modesuffix): Handle QI and HI modes. 8199 (zero_extendqi<mode>2): Macroize insn from zero_extendqi{hi,si,di}2 8200 using I248MODE mode iterator. 8201 (zero_extendhi<mode>2): Macroize insn from zero_extendhi{si,di}2 8202 using I48MODE mode iterator. 8203 (andnot<mode>3): Macroize insn from andnot{si,di}3 using 8204 I48MODE mode iterator. 8205 (ins<modesuffix>l_const): Macroize insn from ins{b,w,l}l_const 8206 using I248MODE mode iterator. 8207 (ins<modesuffix>l): Macroize insn from ins{b,w,l}l 8208 using I248MODE mode iterator. 8209 (*mov<mode>cc_internal): Macroize insn from 8210 *mov{qi,hi,si,di}cc_internal using IMODE mode iterator. 8211 (*mov<mode>cc_lbc): Macroize insn from 8212 *mov{qi,hi,si,di}cc_lbc using IMODE mode iterator. 8213 (*mov<mode>cc_lbs): Macroize insn from 8214 *mov{qi,hi,si,di}cc_lbs using IMODE mode iterator. 8215 (mov<mode>cc): Macroize expander from mov{si,di}cc 8216 using I48MODE mode iterator. 8217 82182012-10-11 Steven Bosscher <steven@gcc.gnu.org> 8219 8220 * ira-build.c (ira_loop_tree_body_rev_postorder): New function. 8221 (ira_traverse_loop_tree): Traverse a loop's basic blocks in 8222 reverse post-order of the reversed control-flow direction. 8223 * ira-conflicts.c (ira_build_conflicts): Pass add_copies as 8224 the pre-order function to ira_traverse_loop_tree to preserve 8225 the existing semantics. 8226 8227 * ira-lives.c (remove_some_program_points_and_update_live_ranges): 8228 Squeeze out live range chain elements if their program points are 8229 connected. 8230 82312012-10-11 Jakub Jelinek <jakub@redhat.com> 8232 8233 * tree.def (REDUC_PLUS_EXPR): Fix up comment. 8234 8235 * fold-const.c (fold_unary_loc): Handle REDUC_MIN_EXPR, 8236 REDUC_MAX_EXPR and REDUC_PLUS_EXPR. 8237 82382012-10-11 James Lemke <jwlemke@codesourcery.com> 8239 8240 * config/rs6000/predicates.md (zero_fp_constant): Fix comment. 8241 * config/rs6000/rs6000.md (return_pred): Fix null return. 8242 * config/rs6000/rs6000.c (rs6000_emit_set_const): Fix indentation. 8243 (print_operand): Make FALLTHRU obvious. 8244 (output_cbranch): Correct comment. 8245 82462012-10-11 Uros Bizjak <ubizjak@gmail.com> 8247 8248 * config/alpha/alpha.md (DWI): New mode attribute. 8249 (*sadd<modesuffix>): Macroize insn from *saddl and *saddq using 8250 I48MODE mode iterator. 8251 (addv<mode>3): Macroize insn from addvsi3 and addvdi3 using 8252 I48MODE mode iterator. 8253 (neg<mode>2): Macroize insn from negsi2 and negdi2 using 8254 I48MODE mode iterator. 8255 (negv<mode>2): Macroize insn from negvsi2 and negvdi2 using 8256 I48MODE mode iterator. 8257 (sub<mode>3): Macroize insn from subsi3 and subdi3 using 8258 I48MODE mode iterator. 8259 (*ssub<modesuffix>): Macroize insn from *ssubl and *ssubq using 8260 I48MODE mode iterator. 8261 (subv<mode>3): Macroize insn from subvsi3 and subvdi3 using 8262 I48MODE mode iterator. 8263 (mul<mode>3): Macroize insn from mulsi3 and muldi3 using 8264 I48MODE mode iterator. 8265 (mulv<mode>3): Macroize insn from mulvsi3 and mulvdi3 using 8266 I48MODE mode iterator. 8267 (*iornot<mode>3): Macroize insn from *iornotsi3 and *iornotdi3 using 8268 I48MODE mode iterator. 8269 (*xornot<mode>3): Macroize insn from *xornotsi3 and *xornotdi3 using 8270 I48MODE mode iterator. 8271 82722012-10-11 Jason Merrill <jason@redhat.com> 8273 8274 * configure.ac (gcc_cv_as_aix_ref): Fix typo. 8275 * configure: Regenerate. 8276 82772012-10-11 Chung-Lin Tang <cltang@codesourcery.com> 8278 8279 * builtins.c (expand_builtin_thread_pointer): New. 8280 (expand_builtin_set_thread_pointer): New. 8281 (expand_builtin): Add BUILT_IN_THREAD_POINTER, 8282 BUILT_IN_SET_THREAD_POINTER expand cases. 8283 * builtins.def (BUILT_IN_THREAD_POINTER): 8284 New __builtin_thread_pointer builtin. 8285 (BUILT_IN_SET_THREAD_POINTER): 8286 New __builtin_set_thread_pointer builtin. 8287 * optabs.def (get_thread_pointer,set_thread_pointer): 8288 New standard names. 8289 * doc/md.texi (Standard Names): Document get_thread_pointer and 8290 set_thread_pointer patterns. 8291 * config/alpha/alpha.md (get_thread_pointerdi): Rename from load_tp. 8292 (set_thread_pointerdi): Rename from set_tp. 8293 * config/alpha/alpha.c (alpha_legitimize_address_1): Change 8294 gen_load_tp calls to gen_get_thread_pointerdi. 8295 (alpha_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER, 8296 ALPHA_BUILTIN_SET_THREAD_POINTER. 8297 (code_for_builtin): Remove CODE_FOR_load_tp, CODE_FOR_set_tp. 8298 (alpha_init_builtins): Remove __builtin_thread_pointer, 8299 __builtin_set_thread_pointer machine-specific builtins. 8300 (alpha_expand_builtin_thread_pointer): Add hook function for 8301 TARGET_EXPAND_BUILTIN_THREAD_POINTER. 8302 (alpha_expand_builtin_set_thread_pointer): Add hook function for 8303 TARGET_EXPAND_BUILTIN_SET_THREAD_POINTER. 8304 (alpha_fold_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER, 8305 ALPHA_BUILTIN_SET_THREAD_POINTER cases. 8306 * config/arm/arm.md (get_thread_pointersi): New pattern. 8307 * config/arm/arm-protos.h (arm_load_tp): Add extern declaration. 8308 * config/arm/arm.c (arm_load_tp): Remove static. 8309 (arm_builtins): Remove ARM_BUILTIN_THREAD_POINTER. 8310 (arm_init_tls_builtins): Remove function. 8311 (arm_init_builtins): Remove call to arm_init_tls_builtins(). 8312 (arm_expand_builtin): Remove ARM_BUILTIN_THREAD_POINTER case. 8313 * config/mips/mips.md (get_thread_pointer<mode>): New pattern. 8314 * config/mips/mips-protos.h (mips_expand_thread_pointer): 8315 Add extern declaration. 8316 * config/mips/mips.c (mips_expand_thread_pointer): 8317 Renamed from mips_get_tp. 8318 (mips_get_tp): New stub calling mips_expand_thread_pointer. 8319 * config/s390/s390.c (s390_builtin,code_for_builtin_64, 8320 code_for_builtin_31,s390_init_builtins,s390_expand_builtin): Remove. 8321 * config/s390/s390.md (get_tp_64,get_tp_31,set_tp_64,set_tp_31): 8322 Remove. 8323 (get_thread_pointer<mode>,set_thread_pointer<mode>): 8324 New, adapted from removed patterns. 8325 * config/xtensa/xtensa.md (get_thread_pointersi): 8326 Renamed from load_tp. 8327 (set_thread_pointersi): Renamed from set_tp. 8328 * config/xtensa/xtensa.c (xtensa_legitimize_tls_address): 8329 Change gen_load_tp calls to gen_get_thread_pointersi. 8330 (xtensa_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER and 8331 XTENSA_BUILTIN_SET_THREAD_POINTER. 8332 (xtensa_init_builtins): Remove __builtin_thread_pointer, 8333 __builtin_set_thread_pointer machine-specific builtins. 8334 (xtensa_fold_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER, 8335 XTENSA_BUILTIN_SET_THREAD_POINTER cases. 8336 (xtensa_expand_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER, 8337 XTENSA_BUILTIN_SET_THREAD_POINTER cases. 8338 83392012-10-11 Marc Glisse <marc.glisse@inria.fr> 8340 8341 * doc/extend.texi (Vector Extensions): C++ improvements. 8342 * doc/generic.texi (LSHIFT_EXPR, RSHIFT_EXPR): Mixed vector-scalar. 8343 (LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR, NE_EXPR): Specify 8344 the vector case. 8345 (VEC_COND_EXPR): Document it. 8346 83472012-10-11 Terry Guo <terry.guo@arm.com> 8348 8349 * config/arm/arm.c (arm_arch6m): New variable to denote armv6-m 8350 architecture. 8351 * config/arm/arm.h (TARGET_HAVE_DMB): The armv6-m also has DMB 8352 instruction. 8353 83542012-10-11 Hans-Peter Nilsson <hp@bitrange.com> 8355 8356 PR target/54373 8357 * configure.ac (out-of-tree linker .hidden support) Set to "no" 8358 for mmix-knuth-mmixware. 8359 * configure: Regenerate. 8360 8361 * configure.ac (gcc_cv_as_comdat_group_group): Default to no. 8362 * configure: Regenerate. 8363 8364 * acinclude.m4 (_gcc_COMPUTE_GAS_VERSION): Allow a single 8365 character to quote the VERSION= contents. Sanity-check contents. 8366 * configure.ac ("what linker to use" ld version extraction): Ditto. 8367 * configure: Regenerate. 8368 83692012-10-10 Segher Boessenkool <segher@kernel.crashing.org> 8370 8371 * config/rs6000/rs6000.h (PRINT_OPERAND_PUNCT_VALID_P): Delete '.'. 8372 83732012-10-10 Jakub Jelinek <jakub@redhat.com> 8374 8375 PR tree-optimization/54877 8376 * tree-vect-loop.c (vect_is_simple_reduction_1): For MINUS_EXPR 8377 use make_ssa_name instead of copy_ssa_name. 8378 83792012-10-10 Richard Biener <rguenther@suse.de> 8380 8381 * lto-streamer-in.c (lto_input_location_bitpack): Rename to ... 8382 (lto_input_location): ... this. Kill original. 8383 (input_eh_region): Adjust. 8384 (input_struct_function_base): Likewise. 8385 (lto_read_tree): Likewise. 8386 * lto-streamer-out.c (lto_output_location_bitpack): Rename to ... 8387 (lto_output_location): ... this. Kill original. 8388 (lto_write_tree): Adjust. 8389 (output_eh_region): Likewise. 8390 (output_struct_function_base): Likewise. 8391 * lto-streamer.c (lto_streamer_hooks_init): Initialize location hooks. 8392 * lto-streamer.h (lto_input_location): Adjust prototype. 8393 (lto_output_location): Likewise. 8394 * streamer-hooks.h (struct streamer_hooks): Adjust prototype 8395 of input_location and output_location hooks. 8396 (stream_input_location): New define. 8397 (stream_output_location): Likewise. 8398 * tree-streamer-in.c (unpack_ts_block_value_fields): Adjust. 8399 (unpack_value_fields): Likewise. 8400 (streamer_read_tree_bitfields): Likewise. 8401 (lto_input_ts_decl_minimal_tree_pointers): Likewise. 8402 (lto_input_ts_exp_tree_pointers): Likewise. 8403 (lto_input_ts_block_tree_pointers): Likewise. 8404 * tree-streamer-out.c (pack_ts_block_value_fields): Adjust. 8405 (streamer_pack_tree_bitfields): Likewise. 8406 (write_ts_decl_minimal_tree_pointers): Likewise. 8407 (write_ts_exp_tree_pointers): Likewise. 8408 (write_ts_block_tree_pointers): Likewise. 8409 * gimple-streamer-in.c (input_phi): Adjust. 8410 (input_gimple_stmt): Likewise. 8411 * gimple-streamer-out.c (output_phi): Adjust. 8412 (output_gimple_stmt): Likewise. 8413 * tree-streamer.h (streamer_read_tree_bitfields): Adjust prototype. 8414 (streamer_pack_tree_bitfields): Likewise. 8415 84162012-10-10 Michael Meissner <meissner@linux.vnet.ibm.com> 8417 8418 * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Fix signed 8419 vs. unsigned warnings by using enum type for function code. 8420 (paired_expand_builtin): Likewise. 8421 (spe_expand_builtin): Likewise. 8422 8423 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Change 8424 builtin mask, target flags masks type to HOST_WIDE_INT in 8425 preparation for growing the number of ISA switches from 31 to 63. 8426 8427 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Make mask type 8428 HOST_WIDE_INT. 8429 8430 * config/rs6000/rs6000.c (struct builtin_description): Make 8431 builtin mask field HOST_WIDE_INT. Make target flags field 8432 HOST_WIDE_INT in preparation for growing the # of ISA switches. 8433 (struct rs6000_builtin_info_type): Likewise. 8434 (struct rs6000_ptt): Likewise. 8435 (rs6000_builtin_mask_calculate): Likewise. 8436 (rs6000_invalid_builtin): Likewise. 8437 (rs6000_builtin_decl): Likewise. 8438 (rs6000_common_init_builtins): Likewise. 8439 (rs6000_darwin_file_start): Likewise. 8440 (rs6000_final_prescan_insn): Likewise. 8441 (rs6000_inner_target_options): Likewise. 8442 (build_target_option_node): Likewise. 8443 (rs6000_function_specific_print): Likewise. 8444 (DEBUG_FMT_W): New format for printing HOST_WIDE_INT in hex. 8445 8446 * config/rs6000/rs6000-protos.h (rs6000_builtin_mask_calculate): 8447 Make target flags, builtin masks arguments/return values 8448 HOST_WIDE_INT in preparation for growing the number of ISA from 31 8449 to 63. 8450 (rs6000_target_modify_macros): Likewise. 8451 (rs6000_target_modify_macros_ptr): Likewise. 8452 8453 * config/rs6000/rs6000.c (DEBUG_FMT_ID): Move "-32s" to a separate 8454 define and change DEBUG_FMT_<x> to use it. 8455 (DEBUG_FMT_D): Likewise. 8456 (DEBUG_FMT_S): Likewise. 8457 (DEBUG_FMT_X): Delete, no longer used. 8458 (DEBUG_FMT_W): Likewise. 8459 (DEBUG_FMT_WX): New debug format for printing options in a 8460 friendly fashion. 8461 (rs6000_debug_reg_global): If -mdebug=reg, print all of the 8462 options in target_flags and target_flags_explicit. Print the 8463 default options for -mcpu=<xxx>, -mtune=<xxx>, and the default 8464 options. Adjust printing out the builtin options. 8465 (rs6000_option_override_internal): Change printing the builtin 8466 options to use rs6000_print_builtin_options. 8467 (rs6000_function_specific_print): Change to use 8468 rs6000_print_isa_options to print ISA flags. 8469 (rs6000_print_options_internal): New function for expanded 8470 -mdebug=reg option printing to print both the ISA options, and the 8471 builtins that are enabled. 8472 (rs6000_print_isa_options): New function to print the ISA options. 8473 (rs6000_print_builtin_options): New function to print the builtin 8474 functions enabled. 8475 84762012-10-10 Jakub Jelinek <jakub@redhat.com> 8477 8478 PR target/51109 8479 * config/i386/bdver1.md (bdver1-mult): Remove. 8480 8481 PR middle-end/54879 8482 * combine.c (count_rtxs): Use RTX_BIN_ARITH resp. RTX_COMM_ARITH 8483 instead of '2' resp. 'c' for GET_RTX_CLASS comparisons. 8484 8485 PR middle-end/54862 8486 * simplify-rtx.c (simplify_truncation): Compare UINTVAL instead of 8487 INTVAL of second argument with precision resp. op_precision. 8488 84892012-10-10 Dodji Seketeli <dodji@redhat.com> 8490 8491 PR middle-end/54860 - Make sure attributes hash table is created 8492 * attribs.c (register_scoped_attributes): Ensure the attribute 8493 hash table is created. 8494 84952012-10-10 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 8496 8497 PR target/51109 8498 * config/i386/bdver1.md (bdver1_int): Automaton has been 8499 split to reduce state transitions. 8500 85012012-10-10 Richard Biener <rguenther@suse.de> 8502 8503 PR middle-end/54876 8504 * ipa-prop.c (prune_expression_for_jf_1): New function. 8505 (prune_expression_for_jf): Clear EXPR_LOCATION for all 8506 sub-expressions as well. 8507 85082012-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 8509 8510 * config.gcc: Enable zEC12 for with-arch and with-tune 8511 configure switches. 8512 * common/config/s390/s390-common.c (processor_flags_table): Add 8513 zEC12 entry. 8514 * config/s390/2827.md: New file. 8515 * config/s390/s390-opts.h (enum processor_type): Add 8516 PROCESSOR_2827_ZEC12. 8517 * config/s390/s390.h (enum processor_flags): Add PF_ZEC12. 8518 (TARGET_CPU_ZEC12, TARGET_ZEC12): New macro definitions. 8519 * config/s390/s390.c (zEC12_cost): New definition. 8520 (s390_option_override): Set costs for zEC12. 8521 Set parameter defaults for zEC12. 8522 (legitimate_reload_fp_constant_p): Adjust comment. 8523 (preferred_la_operand_p): Adjust comment. 8524 (s390_expand_insv): Generate insv pattern without CC clobber for zEC12. 8525 (s390_adjust_priority): Add zEC12 check. 8526 (s390_issue_rate): Return 2 for zEC12. 8527 (s390_reorg): Enable code optimizations for zEC12. 8528 (s390_sched_reorder): Reorder insns according to OOO attributes. 8529 (s390_get_sched_attrmask): New function. 8530 (s390_sched_score): New function. 8531 (s390_sched_variable_issue): Update s390_sched_state. 8532 (s390_sched_init): Reset s390_sched_state. 8533 (s390_loop_unroll_adjust): Enable for zEC12. 8534 * config/s390/s390.opt: Add zEC12 processor type value. 8535 * config/s390/s390.md: Enable mnemonic attribute. 8536 (attr cpu, cpu_facility): Add zEC12. 8537 Include 2827.md. 8538 ("*insv<mode>_zEC12", "*insv<mode>_zEC12_noshift") 8539 ("*load_and_trap<mode>"): New insn definition. 8540 ("*cmp_and_trap_unsigned_int<mode>"): Add clt and clgt. 8541 85422012-10-09 David S. Miller <davem@davemloft.net> 8543 8544 * config/sparc/sparc.md (type attribute): Add new types 'visl' 8545 (VIS logical operation), 'vismv' (VIS move), and 'pdistn'. Rename 8546 'fgm_pdist' to 'pdist'. 8547 (*movsi_insn): Use vismv and visl. 8548 (*movdi_insn_sp64): Likewise. 8549 (*movsf_insn): Likewise. 8550 (*movdf_insn_sp64): Likewise. 8551 (*mov<VM32:mode>_insn): Likewise, use 'fsrc2s' instead of 'fsrc1s'. 8552 (*mov<VM64:mode>_insn_sp64): Likewise, use 'fsrc2s' 8553 instead of 'fsrc1s'. 8554 (*mov<VM64:mode>_insn_sp32): Likewise, use 'fsrc2s' 8555 instead of 'fsrc1s'. 8556 (VIS logical instructions): Mark as visl. 8557 (pdist_vis): Use 'pdist'. 8558 (pditsn<mode>_vis): Use 'pdistn'. 8559 * config/sparc/ultra1_2.md: Adjust for new VIS attribute types. 8560 * config/sparc/ultra3.md: Likewise. 8561 * config/sparc/niagara.md: Likewise. 8562 * config/sparc/niagara2.md: Likewise. 8563 * config/sparc/niagara4.md: Add cpu units "n4_slot2" and 8564 "n4_load_store" for special store scheduling. Use them in load 8565 and store reservations. Integer divide and multiply can only 8566 issue in slot-1. Represent 1-cycle VIS moves and 3-cycle VIS 8567 logic operations. 8568 85692012-10-10 Dehao Chen <dehao@google.com> 8570 8571 * tree-eh.c (lower_try_finally_onedest): Set correct location for 8572 deallocator. 8573 * gimplify.c (gimplify_expr): Set correct location for TRY stmt. 8574 85752012-10-10 Oleg Endo <olegendo@gcc.gnu.org> 8576 8577 PR target/52480 8578 * config/sh/sh.md (extv, extzv): Check that operands[3] is zero, 8579 regardless of the endianness. 8580 85812012-10-09 Lawrence Crowl <crowl@google.com> 8582 8583 * Makefile.in (fold-const.o): Add depencence on hash-table.h. 8584 (dse.o): Likewise. 8585 (cfg.o): Likewise. 8586 * fold-const.c (fold_checksum_tree): Change to new 8587 type-safe hash table. 8588 * (print_fold_checksum): Likewise. 8589 * cfg.c (var bb_original): Likewise. 8590 * (var bb_copy): Likewise. 8591 * (var loop_copy): Likewise. 8592 * hash-table.h (template hash_table): Constify parameters for find... 8593 and remove_elt... member functions. 8594 (hash_table::empty) Correct size expression. 8595 (hash_table::clear_slot) Correct deleted entry assignment. 8596 * dse.c (var rtx_group_table): Change to new type-safe hash table. 8597 85982012-10-09 Steven Bosscher <steven@gcc.gnu.org> 8599 8600 * basic-block. (profile_record): New struct, moved from passes.c. 8601 * cfghooks.h (struct cfg_hooks) <account_profile_record>: New hook. 8602 (account_profile_record): New prototype. 8603 * cfghooks.c (account_profile_record): New function. 8604 * tree-cfg.c (gimple_account_profile_record): New function 8605 (gimple_cfg_hooks): Add it. 8606 * cfgrtl.c (rtl_account_profile_record): New function 8607 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Add it. 8608 * passes.c (check_profile_consistency): Simplify. Move IR-dependent 8609 code around using cfghooks machinery. 8610 86112012-10-09 Oleg Endo <olegendo@gcc.gnu.org> 8612 8613 PR target/54760 8614 * doc/extend.texi (Target Builtins): Add SH built-in section. 8615 Document __builtin_thread_pointer and __builtin_set_thread_pointer. 8616 86172012-10-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 8618 8619 PR middle-end/53397 8620 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): 8621 Perform non constant step prefetching in inner loop, only 8622 when it is invariant in the entire loop nest. 8623 * tree-ssa-loop-prefetch.c (dump_mem_details): New function to dump 8624 base, step and delta values of memeory reference analysed for 8625 prefetching. 8626 * tree-ssa-loop-prefetch.c (dump_mem_ref): Call dump_mem_details 8627 to print base, step and delta values of memory reference. 8628 * cfgloop.h (loop_outermost): New function that returns outermost 8629 loop for a given loop in a loop nest. 8630 86312012-10-09 Richard Guenther <rguenther@suse.de> 8632 8633 PR middle-end/54837 8634 * cfgexpand.c (expand_debug_source_expr): Move checking 8635 code conditional on a found decl_debug_args vector. 8636 86372012-10-09 Richard Guenther <rguenther@suse.de> 8638 8639 * tree-streamer.c (streamer_tree_cache_get): Move ... 8640 * tree-streamer.h (streamer_tree_cache_get): ... here as inline. 8641 86422012-10-09 Jan Hubicka <jh@suse.cz> 8643 8644 * loop-unroll.c (unroll_loop_constant_iterations): Add 8645 update of loop->nb_iterations_upper_bound I missed in my previous 8646 commit; use TRUNC_DIV_EXPR instead of FLOOR_DIV_EXPR to divide 8647 iteration count. 8648 (decide_unroll_runtime_iterations): Avoid overflow. 8649 (unroll_loop_runtime_iterations): Use TRUNC_DIV_EXPR instead of 8650 FLOOR_DIV_EXPR to update iteration bounds. 8651 (decide_peel_simple): Avoid integer overflow when deciding 8652 on number of peelings. 8653 (decide_unroll_stupid): Likewise. 8654 86552012-10-09 Tobias Burnus <burnus@net-b.de> 8656 8657 * lto-cgraph.c (input_node_opt_summary): Remove unused code. 8658 * lto-opts.c (append_to_collect_gcc_options): Fix condition. 8659 * lto-symtab.c (lto_cgraph_replace_node): Don't xstrdup string 8660 which is passed to fprintf. 8661 86622012-10-09 Paolo Carlini <paolo.carlini@oracle.com> 8663 8664 PR c++/54194 8665 * tree.h: Add EXPR_LOC_OR_LOC. 8666 86672012-10-09 Nick Clifton <nickc@redhat.com> 8668 8669 PR rtl-optimization/54739 8670 * config/mcore/mcore.md: (anddi3, iordi3, xordi3): Delete patterns. 8671 8672 PR target/54661 8673 * config/mcore/mcore.c (mcore_output_movedouble): Fix typo. 8674 86752012-10-09 Marc Glisse <marc.glisse@inria.fr> 8676 8677 PR c++/54427 8678 * fold-const.c (fold_binary_loc): Use build_zero_cst instead of 8679 build_int_cst for a potential vector. 8680 86812012-10-08 Uros Bizjak <ubizjak@gmail.com> 8682 8683 * config/i386/atom.md (atom_sse_4): Merge atom_sse_attr attibutes. 8684 (atom_sse_5): Ditto. 8685 86862012-10-08 Marc Glisse <marc.glisse@inria.fr> 8687 8688 PR target/54400 8689 * config/i386/i386.md (type attribute): Add sseadd1. 8690 (unit attribute): Add support for sseadd1. 8691 (memory attribute): Likewise. 8692 * config/i386/athlon.md: Likewise. 8693 * config/i386/core2.md: Likewise. 8694 * config/i386/atom.md: Likewise. 8695 * config/i386/ppro.md: Likewise. 8696 * config/i386/bdver1.md: Likewise. 8697 * config/i386/sse.md (sse3_h<plusminus_insn>v2df3): Split into... 8698 (sse3_haddv2df3): ... expander. 8699 (*sse3_haddv2df3): ... define_insn. Accept permuted operands. 8700 (sse3_hsubv2df3): ... define_insn. 8701 (*sse3_haddv2df3_low): New define_insn. 8702 (*sse3_hsubv2df3_low): New define_insn. 8703 87042012-10-08 Jan Hubicka <jh@suse.cz> 8705 8706 * loop-unswitch.c (unswitch_single_loop): Use 8707 estimated_loop_iterations_int to prevent unswitching when loop 8708 is known to not roll. 8709 * tree-ssa-loop-niter.c (estimated_loop_iterations): Do not segfault 8710 when SCEV is not initialized. 8711 (max_loop_iterations): Likewise. 8712 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Use 8713 estimated_loop_iterations_int to prevent unswithcing when 8714 loop is known to not roll. 8715 * tree-scalar-evolution.c (scev_initialized_p): New function. 8716 * tree-scalar-evolution.h (scev_initialized_p): Likewise. 8717 * loop-unroll.c (decide_peel_once_rolling): Use 8718 max_loop_iterations_int. 8719 (unroll_loop_constant_iterations): Update 8720 nb_iterations_upper_bound and nb_iterations_estimate. 8721 (decide_unroll_runtime_iterations): Use 8722 estimated_loop_iterations or max_loop_iterations; 8723 (unroll_loop_runtime_iterations): fix profile updating. 8724 (decide_peel_simple): Use estimated_loop_iterations 8725 and max_loop_iterations. 8726 (decide_unroll_stupid): Use estimated_loop_iterations 8727 ad max_loop_iterations. 8728 * loop-doloop.c (doloop_modify): Use max_loop_iterations_int. 8729 (doloop_optimize): Likewise. 8730 * loop-iv.c (iv_number_of_iterations): Use record_niter_bound. 8731 (find_simple_exit): Likewise. 8732 * cfgloop.h (struct niter_desc): Remove niter_max. 8733 87342012-10-08 Marek Polacek <polacek@redhat.com> 8735 8736 PR debug/54831 8737 * var-tracking.c (vt_add_function_parameter): Use condition instead 8738 of gcc_assert. 8739 87402012-10-08 Dehao Chen <dehao@google.com> 8741 8742 * predict.c (predict_loops): Predict for short-circuit conditions. 8743 (predict_extra_loop_exits): New Function. 8744 87452012-10-08 Steven Bosscher <steven@gcc.gnu.org> 8746 8747 * bitmap.h (bitmap_and_into): Update prototype. 8748 * bitmap.c (bitmap_and_into): Return true if the target bitmap 8749 changed, false otherwise. 8750 8751 * df.h (df_dump_insn_problem_function): New function type. 8752 (struct df_problem): Add two functions, to dump just before and 8753 just after an insn. 8754 (DF_RD_PRUNE_DEAD_DEFS): New changable flag. 8755 (df_dump_insn_top, df_dump_insn_bottom): New prototypes. 8756 * df-core (df_dump_region): Use dump_bb. 8757 (df_dump_bb_problem_data): New function. 8758 (df_dump_top, df_dump_bottom): Rewrite using df_dump_bb_problem_data. 8759 (df_dump_insn_problem_data): New function. 8760 (df_dump_insn_top, df_dump_insn_bottom): New functions. 8761 * df-scan.c (problem_SCAN): Add NULL fields for new members. 8762 * df-problems.c (df_rd_local_compute): Ignore hard registers if 8763 DF_NO_HARD_REGS is in effect. 8764 (df_rd_transfer_function): If DF_RD_PRUNE_DEAD_DEFS is in effect, 8765 prune reaching defs using the LR problem. 8766 (df_rd_start_dump): Fix dumping of DEFs map. 8767 (df_rd_dump_defs_set): New function. 8768 (df_rd_top_dump, df_rd_bottom_dump): Use it. 8769 (problem_RD): Add NULL fields for new members. 8770 (problem_LR, problem_LIVE): Likewise. 8771 (df_chain_bb_dump): New function. 8772 (df_chain_top_dump): Dump only for artificial DEFs and USEs, 8773 using df_chain_bb_dump. 8774 (df_chain_bottom_dump): Likewise. 8775 (df_chain_insn_top_dump, df_chain_insn_bottom_dump): New functions. 8776 (problem_CHAIN): Add them as new members. 8777 (problem_WORD_LR, problem_NOTE): Add NULL fields for new members. 8778 (problem_MD): Likewise. 8779 * cfgrtl.c (rtl_dump_bb): Use df_dump_insn_top and df_dump_insn_bottom. 8780 (print_rtl_with_bb): Likewise. 8781 8782 * dce.c (init_dce): Use DF_RD_PRUNE_DEAD_DEFS. 8783 * loop-invariant.c (find_defs): Likewise. 8784 * loop-iv.c (iv_analysis_loop_init): Likewise. 8785 * ree.c (find_and_remove_re): Likewise. 8786 * web.c (web_main): Likewise. 8787 87882012-10-08 Jason Merrill <jason@redhat.com> 8789 8790 * config/rs6000/rs6000.c (rs6000_code_end): Protect the use of 8791 ASM_WEAKEN_DECL with #if RS6000_WEAK. 8792 87932012-10-08 Richard Guenther <rguenther@suse.de> 8794 8795 PR tree-optimization/54825 8796 * tree-ssa-sccvn.c (vn_nary_length_from_stmt): Handle BIT_FIELD_REF. 8797 (init_vn_nary_op_from_stmt): Likewise. 8798 * tree-ssa-pre.c (compute_avail): Use vn_nary_op_lookup_stmt. 8799 * tree-ssa-sccvn.h (sizeof_vn_nary_op): Avoid overflow. 8800 88012012-10-08 Richard Guenther <rguenther@suse.de> 8802 8803 * tree-ssa-pre.c (postorder_num): New global. 8804 (compute_antic): Initialize all blocks and adjust for 8805 generic postorder. 8806 (my_rev_post_order_compute): Remove. 8807 (init_pre): Use inverted_post_order_compute. 8808 88092012-10-08 Bernd Schmidt <bernds@codesourcery.com> 8810 8811 * sched-int.h (schedule_block): Adjust declaration. 8812 * sched-rgn.c (bb_state_array, bb_state): New static variables. 8813 (sched_rgn_init): Initialize them. 8814 (sched_rgn_free): Free them. 8815 (schedule_region): Save scheduling state for future blocks, and 8816 pass such state to schedule_block. 8817 * params.def (PARAM_SCHED_STATE_EDGE_PROB_CUTOFF): New. 8818 * doc/invoke.texi (--param): Document it. 8819 * haifa-sched.c (schedule_block): New arg init_state. Use it to 8820 initialize state if nonnull. All callers changed. 8821 Call advance_one_cycle after scheduling. 8822 88232012-10-08 Georg-Johann Lay <avr@gjlay.de> 8824 8825 PR target/54854 8826 * doc/invoke.texi (AVR Options): Remove -mshort-calls. 8827 * config/avr/avr.opt (-mshort-calls): Remove option. 8828 * config/avr/avr.h (AVR_HAVE_JMP_CALL): Don't depend on 8829 TARGET_SHORT_CALLS. 8830 88312012-10-08 Oleg Endo <olegendo@gcc.gnu.org> 8832 8833 PR target/54685 8834 * config/sh/sh.md (one_cmplsi2): Make insn_and_split. Add manual 8835 combine matching for an insn sequence where a ge:SI pattern 8836 can be used. 8837 88382012-10-08 Dodji Seketeli <dodji@redhat.com> 8839 8840 PR c++/53528 C++11 attribute support 8841 * plugin.h (register_scoped_attributes): Declare new function. 8842 * tree.h (enu attribute_flags::ATTR_FLAG_CXX_11): New flag. 8843 (lookup_scoped_attribute_spec, cxx_11_attribute_p) 8844 (get_attribute_name, get_attribute_namespace): Declare new functions. 8845 (struct attribute_spec): Remove const qualifier from the members. 8846 * tree.c (comp_type_attributes, private_lookup_attribute) 8847 (lookup_ident_attribute, remove_attribute, merge_attribute) 8848 (attribute_hash_list, attribute_list_contained): Use 8849 get_attribute_name. 8850 * attribs.c (decl_attributes): Don't crash on error_mark_node. 8851 Forbid c++11 attributes appertaining to type-specifiers. 8852 (attribute_hash): Remove global variable. 8853 (attributes_table): New global variable. 8854 (find_attribute_namespace, register_scoped_attribute): New static 8855 functions. 8856 (register_scoped_attributes, lookup_scoped_attribute_spec) 8857 (cxx11_attribute_p, get_attribute_name, get_attribute_namespace): 8858 New public functions. 8859 (init_attributes): Register all the GNU attributes into the "gnu" 8860 namespace. 8861 (register_attribute): Use register_scoped_attribute to register 8862 the attribute into the "gnu" namespace. 8863 (lookup_attribute_spec): Use lookup_scoped_attribute_spec to 8864 lookup the attribute in the "gnu" namespace. 8865 (decl_attributes): Use new get_attribute_namespace and 8866 lookup_scoped_attribute_spec to consider attribute namespaces when 8867 looking up attributes. When operating in c++-11 mode, pass flag 8868 ATTR_FLAG_CXX11 to the spec handler. 8869 88702012-10-08 Georg-Johann Lay <avr@gjlay.de> 8871 8872 PR target/54815 8873 * config/avr/avr.md (*add<mode>3, add<mode>3, addpsi3): Make 8874 constraint alternative "r,0,r" slighly more expensive. 8875 (sub<mode>3, andqi3, andhi3, andpsi3, andsi3): Ditto. 8876 (iorqi3, iorhi3, iorpsi3, iorsi3): Ditto. 8877 (xorhi3, xorpsi3, xorsi3): Ditto. 8878 88792012-10-08 Oleg Endo <olegendo@gcc.gnu.org> 8880 8881 PR target/54760 8882 * config/sh/sh.md (*mov<mode>_gbr_load, *mov<mode>_gbr_store): New 8883 insns and accompanying unnamed splits. 8884 * config/sh/predicates.md (general_movsrc_operand, 8885 general_movdst_operand): Reject GBR addresses. 8886 * config/sh/sh-protos.h (sh_find_equiv_gbr_addr): New declaration. 8887 * config/sh/sh.c (sh_address_cost, sh_legitimate_address_p, 8888 sh_secondary_reload): Handle GBR addresses. 8889 (base_reg_disp): New class. 8890 (sh_find_base_reg_disp, sh_find_equiv_gbr_addr): New functions. 8891 88922012-10-08 Hans-Peter Nilsson <hp@bitrange.com> 8893 8894 * config/mmix/mmix.c (mmix_output_octa): Don't assume 8895 HOST_WIDEST_INT_PRINT_HEX starts with "0x". Instead use 8896 HOST_WIDE_INT_PRINT_HEX_PURE, falling back to 8897 HOST_WIDEST_INT_PRINT_UNSIGNED. 8898 88992012-10-07 Richard Sandiford <rdsandiford@googlemail.com> 8900 8901 * machmode.h (GET_MODE_UNIT_PRECISION): New macro. 8902 * simplify-rtx.c (simplify_truncation): New function, 8903 extracted from simplify_subreg and (in small part) from 8904 simplify_unary_operation_1. 8905 (simplify_unary_operation_1) <TRUNCATE>: Use it. Remove sign bit 8906 test for !TRULY_NOOP_TRUNCATION_MODES_P. 8907 (simplify_subreg): Use simplify_truncate for lowpart subregs 8908 where both the inner and outer modes are scalar integers. 8909 * config/mips/mips.c (mips_truncated_op_cost): New function. 8910 (mips_rtx_costs): Adjust test for BADDU. 8911 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands. 8912 89132012-10-07 Jan Hubicka <jh@suse.cz> 8914 8915 * ipa-inline-analysis.c (do_estimate_edge_time): Return actual 8916 time spent by the inlined sequence. 8917 (do_estimate_edge_growth): Rename to ... 8918 (do_estimate_edge_time): ... this one; return size of inlined sequence. 8919 * ipa-inline.h (do_estimate_edge_size): New. 8920 (do_estimate_edge_growth): Remove. 8921 (estimate_edge_size): New function. 8922 (estimate_edge_growth): Use it. 8923 89242012-10-07 Jan Hubicka <jh@suse.cz> 8925 8926 * lto-cgraph.c (lto_symtab_encoder_new): New parameter FOR_INPUT. 8927 (lto_symtab_encoder_delete): Update. 8928 (lto_symtab_encoder_encode): Update. 8929 (compute_ltrans_boundary): Update. 8930 (input_symtab): Update. 8931 * lto-streamer.h (lto_symtab_encoder_new): Update. 8932 89332012-10-07 Richard Sandiford <rdsandiford@googlemail.com> 8934 8935 * config/mips/mips-protos.h (mips_split_type): New enum. 8936 (mips_split_64bit_move_p, mips_split_doubleword_move): Delete. 8937 (mips_split_move_p, mips_split_move, mips_split_move_insn_p) 8938 (mips_split_move_insn): Declare. 8939 * config/mips/mips.c (mips_tuning_info): New variable. 8940 (mips_load_store_insns): Use mips_split_move_insn_p instead of 8941 mips_split_64bit_move_p. 8942 (mips_emit_move_or_split, mips_mult_move_p): New functions. 8943 (mips_split_64bit_move_p): Rename to... 8944 (mips_split_move_p): ...this and take a mips_split_type argument. 8945 Generalize to all moves. Call mips_mult_move_p. 8946 (mips_split_doubleword_move): Rename to... 8947 (mips_split_move): ...this and take a mips_split_type argument. 8948 Assert that mips_split_move_p holds. 8949 (mips_insn_split_type, mips_split_move_insn_p, mips_split_move_insn): 8950 New functions. 8951 (mips_output_move): Use mips_split_move_p instead of 8952 mips_split_64bit_move_p. Handle MULT $0, $0 moves. 8953 (mips_save_reg): Use mips_emit_move_or_split. 8954 (mips_sim_reset): Assign to curr_state. Call targetm.sched.init 8955 and advance_state. 8956 (mips_sim_init): Call targetm.sched.init_dfa_pre_cycle_insn and 8957 targetm.sched.init_dfa_post_cycle_insn, if defined. 8958 (mips_sim_next_cycle): Assign to curr_state. Use advance_state 8959 instead of state_transition. 8960 (mips_sim_issue_insn): Assign to curr_state. Use 8961 targetm.sched.variable_issue to see how many more insns can be issued. 8962 (mips_seq_time, mips_mult_zero_zero_cost) 8963 (mips_set_fast_mult_zero_zero_p, mips_set_tuning_info) 8964 (mips_expand_to_rtl_hook): New functions. 8965 (TARGET_EXPAND_TO_RTL_HOOK): Define. 8966 * config/mips/mips.md (move_type): Add imul. 8967 (type): Map imul move_types to imul. 8968 (*movdi_32bit, *movti): Add imul alternatives. 8969 Use mips_split_move_insn_p and mips_split_move_insn instead of 8970 mips_split_64bit_move_p and mips_split_doubleword_move in move 8971 splitters. 8972 89732012-10-06 Segher Boessenkool <segher@kernel.crashing.org> 8974 8975 * config/rs6000/rs6000.c (print_operand) ['A']: Delete. 8976 89772012-10-06 Paolo Carlini <paolo.carlini@oracle.com> 8978 8979 PR c++/52764 8980 * ginclude/stdint-wrap.h: In C++11 if __STDC_HOSTED__ define 8981 __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS. 8982 * ginclude/stdint-gcc.h: In C++11 unconditionally define 8983 limit and constant macros. 8984 89852012-10-06 Paolo Carlini <paolo.carlini@oracle.com> 8986 8987 PR c++/54249 8988 * ginclude/stddef.h: In C++11 mode declare nullptr_t in the global 8989 namespace. 8990 89912012-10-06 Jan Hubicka <jh@suse.cz> 8992 8993 PR lto/53831 8994 PR lto/54776 8995 * lto-streamer-out.c (produce_symtab): Cleanup; drop v1 API hack. 8996 89972012-10-06 Dehao Chen <dehao@google.com> 8998 8999 PR debug/54826 9000 * gimple-low.c (lower_stmt): Set the block for call args. 9001 90022012-10-06 Jan Hubicka <jh@suse.cz> 9003 9004 * doc/invoke.texi (-fprofile-report): Document. 9005 * common.opt (-fprofile-report): New option. 9006 * toplev.c (finalize): Call dump_profile_report. 9007 * toplev.h (profile_report): Declare. 9008 * passes.c (profile_record): New static var. 9009 (check_profile_consistency): New function. 9010 (dump_profile_record): New function. 9011 (execute_one_ipa_transform_pass): Call check_profile_consistency. 9012 (execute_one_pass): Likewise. 9013 90142012-10-06 Jan Hubicka <jh@suse.cz> 9015 9016 PR lto/54790 9017 * lto-streamer.h (lto_symtab_register_decl, lto_symtab_get_resolution, 9018 lto_mark_nothrow_fndecl, lto_fixup_nothrow_decls): Remove. 9019 * lto-symtab.c (lto_symtab_register_decl): Remove. 9020 90212012-10-06 Andreas Schwab <schwab@linux-m68k.org> 9022 9023 PR rtl-optimization/54739 9024 * config/m68k/m68k.md (anddi3, iordi3, xordi3, one_cmpldi2): Remove. 9025 90262012-10-06 Oleg Endo <olegendo@gcc.gnu.org> 9027 9028 PR target/54760 9029 * config/sh/sh.md (define_constants): Add UNSPECV_GBR. 9030 (get_thread_pointer, set_thread_pointer): New expanders. 9031 (load_gbr): Rename to store_gbr. Remove GBR_REG use. 9032 (store_gbr): New insn. 9033 * config/sh/sh.c (prepare_move_operands): Use gen_store_gbr instead of 9034 gen_load_gbr in TLS_MODEL_LOCAL_EXEC case. 9035 (sh1_builtin_p): New function. 9036 (signature_args): Add SH_BLTIN_VP. 9037 (bdesc): Add __builtin_thread_pointer and __builtin_set_thread_pointer. 9038 90392012-10-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 9040 9041 PR rtl-optimization/54739 9042 * config/pa/pa.md: Remove DImode and, not and, ior and xor patterns 9043 for 32-bit targets. Adjust expanders. 9044 9045 * config/pa/pa.md: Adjust unamed HImode add insn pattern. 9046 90472012-10-05 Oleg Endo <olegendo@gcc.gnu.org> 9048 9049 * config/sh/sh.c (builtin_description): Add is_enabled member. 9050 (shmedia_builtin_p): New function. 9051 (bdesc): Use shmedia_builtin_p for existing built-ins. 9052 (sh_media_init_builtins, sh_init_builtins): Merge into single function 9053 sh_init_builtins. Add is_enabled checking. Move variable declarations 9054 to where they are actually used. 9055 (sh_media_builtin_decl, sh_builtin_decl): Merge into single function 9056 sh_builtin_decl. Add is_enabled checking. 9057 (sh_expand_builtin): Move variable declarations to where they are 9058 actually used. 9059 90602012-10-05 Jakub Jelinek <jakub@redhat.com> 9061 9062 * tree-inline.c (expand_call_inline): Move VAR_DECLs with 9063 PARM_DECL origins from remapped DECL_INITIAL's BLOCK_VARS 9064 into id->block's BLOCK_VARS. 9065 9066 PR debug/54519 9067 * ipa-split.c (split_function): Add debug args and debug source 9068 and normal stmts for args_to_skip which are gimple regs. 9069 * tree-inline.c (copy_debug_stmt): When inlining, adjust source 9070 debug bind stmts to debug binds of corresponding DEBUG_EXPR_DECL. 9071 90722012-10-05 Georg-Johann Lay <avr@gjlay.de> 9073 9074 * config/avr/avr.md: Fix indentations of insn C snippets. 9075 90762012-10-05 Richard Guenther <rguenther@suse.de> 9077 9078 PR middle-end/54811 9079 * tree-ssa-live.c (clear_unused_block_pointer_1): Look at 9080 DECL_DEBUG_EXPR again. 9081 90822012-10-05 Jan Hubicka <jh@suse.cz> 9083 Jakub Jelinek <jakub@redhat.com> 9084 9085 PR tree-optimization/33763 9086 * tree-inline.c (expand_call_inline): Silently ignore always_inline 9087 attribute for redefined extern inline functions. 9088 90892012-10-04 Jan Hubicka <jh@suse.cz> 9090 9091 * tree-vectorizer.h (vect_estimate_min_profitable_iters): Remove. 9092 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Declare here. 9093 (vect_analyze_loop_operations): Use loop count estimate to rule out 9094 unprofitable vectorization. 9095 (vect_estimate_min_profitable_iters): Return 9096 ret_min_profitable_estimate. 9097 90982012-10-05 Jakub Jelinek <jakub@redhat.com> 9099 9100 PR tree-optimization/54810 9101 * tree-vrp.c (register_edge_assert_for_2): Handle 9102 NAME = (unsigned) NAME2; if (NAME cmp CST) for 9103 narrowing casts to unsigned integral type like 9104 NAME = NAME2 & CST2; if (NAME cmp CST) where CST2 9105 is the max value of the unsigned integral type. 9106 91072012-10-04 Jeff Law <law@redhat.com> 9108 9109 PR target/50356 9110 * config/h8300/h8300.c (h8300_rtx_costs): Fix typo in CONST_INT case. 9111 91122012-10-04 Jason Merrill <jason@redhat.com> 9113 9114 * config/rs6000/rs6000.c (rs6000_code_end): Protect the use of 9115 ASM_WEAKEN_DECL with #if RS6000_WEAK. 9116 91172012-10-04 Basile Starynkevitch <basile@starynkevitch.net> 9118 9119 * gengtype.c (walk_type): Emit mark_hook when inside a 9120 struct of a union member. 9121 91222012-10-04 Georg-Johann Lay <avr@gjlay.de> 9123 9124 * config/avr/predicates.md (flash_operand): New predicate. 9125 * config/avr/avr.md (reload_in<mode>): Use it in operand 1 instead 9126 of memory_operand. 9127 91282012-10-04 Tobias Burnus <burnus@net-b.de> 9129 9130 * gcc.c (record_temp_file, add_sysrooted_prefix, process_command, 9131 do_self_spec, compare_debug_dump_opt_spec_function): Plug memleaks. 9132 (do_spec_1): Ditto, fix out-of-bound access. 9133 * opts.c (common_handle_option): Plug memleak. 9134 91352012-10-04 Jason Merrill <jason@redhat.com> 9136 9137 * config/darwin.c (darwin_assemble_visibility): Treat 9138 VISIBILITY_INTERNAL as hidden. 9139 9140 * config/darwin-c.c (find_subframework_file): Add missing const. 9141 (framework_construct_pathname): Likewise. 9142 91432012-10-04 Florian Weimer <fweimer@redhat.com> 9144 9145 * doc/cpp.texi (Pragmas): Document #pragma GCC warning, #pragma 9146 GCC error. 9147 91482012-10-04 Richard Guenther <rguenther@suse.de> 9149 9150 PR middle-end/54735 9151 * tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before 9152 cleaning up the CFG. 9153 91542012-10-04 Richard Guenther <rguenther@suse.de> 9155 9156 PR lto/47799 9157 * tree-streamer-out.c (write_ts_block_tree_pointers): For 9158 inlined functions outer scopes write the ultimate origin 9159 as BLOCK_ABSTRACT_ORIGIN and BLOCK_SOURCE_LOCATION. 9160 Do not stream the fragment chains. 9161 * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Likewise. 9162 * dwarf2out.c (gen_subprogram_die): Handle NULL DECL_INITIAL. 9163 (dwarf2out_decl): Always output DECL_ABSTRACT function decls. 9164 91652012-10-04 Arnaud Charlet <charlet@adacore.com> 9166 9167 * dumpfile.h, dumpfile.c: Remove TDI_ada. 9168 91692012-10-04 Yuri Rumyantsev <ysrumyan@gmail.com> 9170 9171 * config/i386/i386.c (ix86_dep_by_shift_count_body) : Add 9172 check on reload_completed since it can be invoked before 9173 register allocation phase in pre-reload schedule. 9174 (ia32_multipass_dfa_lookahead) : Do not use dfa_lookahead for 9175 pre-reload schedule to save compile time. 9176 (ix86_sched_reorder) : Do not perform ready list reordering for 9177 pre-reload schedule to save compile time. 9178 (insn_is_function_arg) : New function. Returns true if lhs of insn is 9179 HW function argument register. 9180 (add_parameter_dependencies) : New function. Add output dependencies 9181 for chain of function adjacent arguments if only there is a move to 9182 likely spilled HW registers. Return first argument if at least one 9183 dependence was added or NULL otherwise. 9184 (avoid_func_arg_motion) : New function. Add output or anti dependency 9185 from insn to first_arg to restrict code motion. 9186 (add_dependee_for_func_arg) : New function. Avoid cross block motion of 9187 function argument through adding dependency from the first non-jump 9188 insn in bb. 9189 (ix86_dependencies_evaluation_hook) : New function. Hook for 9190 pre-reload schedule: avoid motion of function arguments passed in 9191 likely spilled HW registers. 9192 (ix86_adjust_priority) : New function. Hook for pre-reload schedule: 9193 set priority of moves from likely spilled HW registers to maximum to 9194 schedule them as soon as possible. 9195 (ix86_sched_init_global): Do not perform multipass scheduling for 9196 pre-reload schedule to save compile time. 9197 91982012-10-04 Uros Bizjak <ubizjak@gmail.com> 9199 9200 * configure.ac (noexception_flags): Add -fasynchronous-unwind-tables. 9201 * configure: Regenerate. 9202 92032012-10-04 Kaz Kojima <kkojima@gcc.gnu.org> 9204 9205 * config/sh/sh.c (sh_can_use_simple_return_p): Return false for 9206 SHmedia and SHcompact using call cookie. 9207 * config/sh/sh.md (epilogue): Emit non-inlined return insns for 9208 SHmedia and SHcompact using call cookie. 9209 92102012-10-03 Oleg Endo <olegendo@gcc.gnu.org> 9211 9212 PR target/51244 9213 * config/sh/sh.md (*mov_t_msb_neg): New insn and two accompanying 9214 unnamed split patterns. 9215 92162012-10-03 Oleg Endo <olegendo@gcc.gnu.org> 9217 9218 PR target/50457 9219 * config/sh/sh.c (parse_validate_atomic_model_option): Handle name 9220 strings in sh_atomic_model. 9221 * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Move macro implementation 9222 to ... 9223 * config/sh/sh-c.c (sh_cpu_cpp_builtins): ... this new function. 9224 Add __SH1__ and __SH2__ defines. Add __SH_ATOMIC_MODEL_*__ define. 9225 * config/sh/sh-protos.h (sh_atomic_model): Add name and cdef_name 9226 variables. 9227 (sh_cpu_cpp_builtins): Declare new function. 9228 92292012-10-03 Dehao Chen <dehao@google.com> 9230 9231 PR middle-end/54782 9232 * tree-cfg.c (move_block_to_fn): Update lexical block for phi_args. 9233 92342012-10-03 Vladimir Makarov <vmakarov@redhat.com> 9235 9236 * reginfo.c (max_regno_since_last_resize): New. 9237 (reg_preferred_class, reg_alternate_class): Add assert. 9238 (allocate_reg_info): Initialize allocated reg info. 9239 (resize_reg_info): Make bigger reg_info and initialize new memory. 9240 (reginfo_init): Initialize max_regno_since_last_resize. 9241 (setup_reg_classes): Change assert. 9242 92432012-10-03 Andrew W. Nosenko <andrew.w.nosenko@gmail.com> 9244 9245 * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic 9246 in SSE and YMM state support check for -march=native. 9247 92482012-10-03 Nick Clifton <nickc@redhat.com> 9249 9250 * config/rx/rx.c (struct decl_chain): New local structure. 9251 (warned_decls): New local variable. Contains a stack of decls for 9252 which warnings have been issued. 9253 (add_warned_decl): Adds a decl to the stack. 9254 (already_warned): Returns true if a given decl is on the stack. 9255 (rx_set_current_function): Issue a warning if multiple fast 9256 interrupt handlers are defined. 9257 * config/rx/rx.opt (mwarn-multiple-fast-interrupts): New option. 9258 * doc/invoke.texi: Document the option. 9259 92602012-10-03 Mark Kettenis <kettenis@openbsd.org> 9261 9262 * config.gcc (*-*-openbsd4.[3-9]|*-*-openbsd[5-9]*): Set 9263 default_use_cxa_atexit to yes. 9264 92652012-10-03 Jakub Jelinek <jakub@redhat.com> 9266 9267 PR rtl-optimization/54792 9268 * sched-deps.c (find_modifiable_mems): Scan also TAIL insn. 9269 92702012-10-02 H.J. Lu <hongjiu.lu@intel.com> 9271 9272 PR target/54785 9273 * doc/invoke.texi: Document -mprefer-avx128. 9274 92752012-10-02 Andrew Pinski <apinski@cavium.com> 9276 9277 * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>): 9278 Don't optimize a truncate of a mem if it is a vector mode. 9279 92802012-10-02 Alexandre Oliva <aoliva@redhat.com> 9281 9282 PR debug/54551 9283 * Makefile.in (VALTRACK_H): Add hash-table.h. 9284 * valtrack.h: Include hash-table.h. 9285 (struct dead_debug_global_entry): New. 9286 (struct dead_debug_hash_descr): New. 9287 (struct dead_debug_global): New. 9288 (struct dead_debug): Rename to... 9289 (struct dead_debug_local): ... this. Adjust all uses. 9290 (dead_debug_global_init, dead_debug_global_finish): New. 9291 (dead_debug_init): Rename to... 9292 (dead_debug_local_init): ... this. Adjust all callers. 9293 (dead_debug_finish): Rename to... 9294 (dead_debug_local_finish): ... this. Adjust all callers. 9295 * valtrack.c (dead_debug_global_init): New. 9296 (dead_debug_init): Rename to... 9297 (dead_debug_local_init): ... this. Take global parameter. 9298 Save it and initialize used bitmap from it. 9299 (dead_debug_global_find, dead_debug_global_insert): New. 9300 (dead_debug_global_replace_temp): New. 9301 (dead_debug_promote_uses): New. 9302 (dead_debug_finish): Rename to... 9303 (dead_debug_local_finish): ... this. Promote remaining uses. 9304 (dead_debug_global_finish): New. 9305 (dead_debug_add): Try to replace global temps first. 9306 (dead_debug_insert_temp): Support global replacements. 9307 * dce.c (word_dce_process_block, dce_process_block): Add 9308 global_debug parameter. Pass it on. 9309 (fast_dce): Initialize, pass on and finalize global_debug. 9310 * df-problems.c (df_set_unused_notes_for_mw): Adjusted. 9311 (df_create_unused_notes, df_note_bb_compute): Likewise. 9312 (df_note_compute): Justify local-only dead debug analysis. 9313 93142012-10-02 Alexandre Oliva <aoliva@redhat.com> 9315 9316 PR debug/53135 9317 * dwarf2out.c (value_format): Use block4 for dw_val_class_loc 9318 when needed. 9319 93202012-10-02 Alexandre Oliva <aoliva@redhat.com> 9321 9322 PR debug/54177 9323 * var-tracking.c (vt_add_function_parameter): Bail if 9324 var_lowpart fails. 9325 93262012-10-02 H.J. Lu <hongjiu.lu@intel.com> 9327 9328 PR target/54741 9329 * config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New. 9330 (XSTATE_FP): Likewise. 9331 (XSTATE_SSE): Likewise. 9332 (XSTATE_YMM): Likewise. 9333 (host_detect_local_cpu): Disable AVX, AVX2, FMA, FMA4 and XOP if 9334 SSE and YMM states aren't supported. 9335 93362012-10-02 Richard Sandiford <rdsandiford@googlemail.com> 9337 9338 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into... 9339 (*baddu_si): ...this new pattern. 9340 93412012-10-02 Richard Sandiford <rdsandiford@googlemail.com> 9342 9343 * ira-int.h (target_ira_int): Add x_ira_useful_class_mode_regs. 9344 (ira_useful_class_mode_regs): New macro. 9345 * ira.c (clarify_prohibited_class_mode_regs): Set up 9346 ira_useful_class_mode_regs. 9347 * ira-color.c (setup_profitable_hard_regs): Use it to initialise 9348 profitable_hard_regs. 9349 93502012-10-02 Richard Sandiford <rdsandiford@googlemail.com> 9351 9352 * ira.h (target_ira): Add x_ira_class_singleton. 9353 (ira_class_singleton): New macro. 9354 * ira.c (setup_prohibited_class_mode_regs): Set up ira_class_singleton. 9355 * ira-build.c (update_conflict_hard_reg_costs): Use 9356 ira_class_singleton to check for classes with a single 9357 allocatable register. 9358 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Likewise. 9359 (single_reg_class): Likewise. When more than one class is specified, 9360 check whether they have the same singleton register. 9361 (process_single_reg_class_operands): Require single_reg_class 9362 to return NO_REGS or a class with a single allocatable register. 9363 Obtain that register from ira_class_singleton. 9364 93652012-10-02 Michael Meissner <meissner@linux.vnet.ibm.com> 9366 9367 * config/rs6000/rs6000.c (rs6000_option_override_internal): If 9368 -mcpu=<xxx> is not specified and the compiler is not configured 9369 using --with-cpu=<xxx>, use the bits from the TARGET_DEFAULT to 9370 set the initial options. 9371 93722012-10-02 Sharad Singhai <singhai@google.com> 9373 9374 PR testsuite/54772 9375 * tree-vect-stmts.c (vectorizable_operation): Add missing return. 9376 93772012-10-02 David Edelsohn <dje.gcc@gmail.com> 9378 9379 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not 9380 set TARGET_ALTIVEC_VRSAVE for TARGET_ELF. 9381 (rs6000_stack_info): Only set vrsave_mask if TARGET_ALTIVEC_VRSAVE. 9382 93832012-10-02 Jakub Jelinek <jakub@redhat.com> 9384 9385 PR tree-optimization/54713 9386 * expr.c (categorize_ctor_elements_1): Don't assume purpose is 9387 non-NULL. 9388 * tree-cfg.c (verify_gimple_assign_single): Add verification of 9389 vector CONSTRUCTORs. 9390 * tree-ssa-sccvn.c (vn_reference_lookup_3): For VECTOR_TYPE 9391 CONSTRUCTORs, don't do anything if element type is VECTOR_TYPE, 9392 and don't check index. 9393 * tree-vect-slp.c (vect_get_constant_vectors): VIEW_CONVERT_EXPR ctor 9394 elements first if their type isn't compatible with vector element type. 9395 93962012-10-02 Eric Botcazou <ebotcazou@adacore.com> 9397 9398 * tree.h (DECL_NONLOCAL_FRAME): New macro. 9399 * tree-nested.c (get_frame_type): Set DECL_NONLOCAL_FRAME. 9400 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream in 9401 DECL_NONLOCAL_FRAME flag. 9402 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream out 9403 DECL_NONLOCAL_FRAME flag. 9404 94052012-10-02 Marc Glisse <marc.glisse@inria.fr> 9406 9407 * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use 9408 boolean_type_node for vectors. 9409 94102012-10-01 Michael Meissner <meissner@linux.vnet.ibm.com> 9411 9412 * config/rs6000/rs6000.c (toplevel): Include dumpfile.h. 9413 (rs6000_density_test): Rework to accommodate 09-30 change by 9414 Sharad Singhai. 9415 9416 * config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency. 9417 94182012-10-01 Dehao Chen <dehao@google.com> 9419 9420 PR middle-end/54759 9421 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Use 9422 LOCATION_LOCUS to compare with UNKNOWN_LOCATION. 9423 (slpeel_tree_peel_loop_to_edge): Likewise. 9424 * tree-vectorizer.c (vectorize_loops): Likewise. 9425 94262012-10-01 Andrew MacLeod <amacleod@redhat.com> 9427 9428 PR target/54087 9429 * optabs.c (expand_atomic_fetch_op_no_fallback): New. Factored code 9430 from expand_atomic_fetch_op. 9431 (expand_atomic_fetch_op): Try atomic_{add|sub} operations in terms of 9432 the other one if direct opcode fails. 9433 94342012-10-01 Uros Bizjak <ubizjak@gmail.com> 9435 9436 PR rtl-optimization/54457 9437 * simplify-rtx.c (simplify_subreg): 9438 Simplify (subreg:M (op:N ((x:N) (y:N)), 0) 9439 to (op:M (subreg:M (x:N) 0) (subreg:M (x:N) 0)), where 9440 the outer subreg is effectively a truncation to the original mode M. 9441 94422012-10-01 Richard Guenther <rguenther@suse.de> 9443 9444 * builtins.def (ATTR_MATHFN_FPROUNDING): Do not use no-vops 9445 with -frounding-math. 9446 * builtin-attrs.def (ATTR_PURE_NOTHROW_NOVOPS_LIST): Remove. 9447 (ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST): Likewise. 9448 94492012-10-01 Eric Botcazou <ebotcazou@adacore.com> 9450 9451 * tree.h (copy_mem_ref_info): Delete. 9452 * tree-ssa-address.c (copy_mem_ref_info): Likewise. 9453 (maybe_fold_tmr): Copy flags manually. 9454 * tree-ssa-loop-im.c (simple_mem_ref_in_stmt): Rewrite. 9455 94562012-10-01 Marc Glisse <marc.glisse@inria.fr> 9457 9458 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>: 9459 Detect the identity. 9460 <VEC_CONCAT>: Handle VEC_SELECTs from the same vector. 9461 94622012-10-01 Oleg Endo <olegendo@gcc.gnu.org> 9463 9464 PR target/50457 9465 * config/sh/sh.opt (matomic-model): New option. 9466 (msoft-atomic): Mark as deprecated and alias to 9467 matomic-model=soft-gusa. 9468 (mhard-atomic): Delete. 9469 * config/sh/predicates.md (gbr_displacement): New predicate. 9470 * config/sh/sh-protos.h (sh_atomic_model): New struct. 9471 (selected_atomic_model): New declaration. 9472 (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT, TARGET_ATOMIC_SOFT_GUSA, 9473 TARGET_ATOMIC_HARD_LLCS, TARGET_ATOMIC_SOFT_TCB, 9474 TARGET_ATOMIC_SOFT_TCB_GBR_OFFSET_RTX, TARGET_ATOMIC_SOFT_IMASK): 9475 New macros. 9476 * config/sh/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Adapt setting to 9477 default atomic model. 9478 * config/sh/sh.c (selected_atomic_model_): New global variable. 9479 (selected_atomic_model, parse_validate_atomic_model_option): New 9480 functions. 9481 (sh_option_override): Replace atomic selection checks with call to 9482 parse_validate_atomic_model_option. 9483 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS, 9484 UNSUPPORTED_HARD_ATOMIC_CPU): Delete. 9485 (DRIVER_SELF_SPECS): Remove atomic checks. 9486 config/sh/sync.md: Update documentation comments. 9487 (atomic_compare_and_swap<mode>, atomic_exchange<mode>, 9488 atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>, 9489 atomic_<fetchop_name>_fetch<mode>, atomic_nand_fetch<mode>): Use 9490 TARGET_ATOMIC_ANY as condition. Add TARGET_ATOMIC_STRICT check for 9491 SH4A case. Handle new TARGET_ATOMIC_SOFT_TCB and 9492 TARGET_ATOMIC_SOFT_IMASK cases. 9493 (atomic_test_and_set): Handle new TARGET_ATOMIC_SOFT_TCB and 9494 TARGET_ATOMIC_SOFT_IMASK cases. 9495 (atomic_compare_and_swapsi_hard, atomic_exchangesi_hard, 9496 atomic_fetch_<fetchop_name>si_hard, atomic_fetch_nandsi_hard, 9497 atomic_<fetchop_name>_fetchsi_hard, atomic_nand_fetchsi_hard): 9498 Add TARGET_ATOMIC_STRICT check. 9499 (atomic_compare_and_swap<mode>_hard, atomic_exchange<mode>_hard, 9500 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nand<mode>_hard, 9501 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetch<mode>_hard, 9502 atomic_test_and_set_hard): Use TARGET_ATOMIC_HARD_LLCS condition. 9503 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft, 9504 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft, 9505 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft, 9506 atomic_test_and_set_soft): Append _gusa to the insn names and use 9507 TARGET_ATOMIC_SOFT_GUSA as condition. 9508 (atomic_compare_and_swap<mode>_soft_tcb, 9509 atomic_exchange<mode>_soft_tcb, 9510 atomic_fetch_<fetchop_name><mode>_soft_tcb, 9511 atomic_fetch_nand<mode>_soft_tcb, 9512 atomic_<fetchop_name>_fetch<mode>_soft_tcb, 9513 atomic_nand_fetch<mode>_soft_tcb, atomic_test_and_set_soft_tcb): 9514 New insns. 9515 (atomic_compare_and_swap<mode>_soft_imask, 9516 atomic_exchange<mode>_soft_imask, 9517 atomic_fetch_<fetchop_name><mode>_soft_imask, 9518 atomic_fetch_nand<mode>_soft_imask, 9519 atomic_<fetchop_name>_fetch<mode>_soft_imask, 9520 atomic_nand_fetch<mode>_soft_imask, atomic_test_and_set_soft_imask): 9521 New insns. 9522 * doc/invoke.texi (SH Options): Document new matomic-model option. 9523 Remove msoft-atomic and mhard-atomic options. 9524 95252012-10-01 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 9526 9527 PR target/54746 9528 * config/s390/s390.c (s390_option_override): Add missing break. 9529 95302012-09-30 Sharad Singhai <singhai@google.com> 9531 9532 * dumpfile.c: New file with parts moved from tree-dump.c. 9533 (pflags): New variable. 9534 (alt_flags): Ditto. 9535 (alt_dump_file): Ditto. 9536 (dump_files): Update to include additional fields. 9537 (struct dump_option_value_info): Add additional entries. 9538 (get_dump_file_name): Use command line filename if available. 9539 (dump_open_alternate_stream): New function. 9540 (dump_loc): Ditto. 9541 (dump_gimple_stmt): Ditto. 9542 (dump_gimple_stmt_loc): Ditto. 9543 (dump_generic_expr): Ditto. 9544 (dump_generic_expr_loc): Ditto. 9545 (dump_printf): Ditto. 9546 (dump_printf_loc): Ditto. 9547 (dump_start): Ditto. 9548 (dump_finish): Ditto. 9549 (dump_begin): Ditto. 9550 (dump_enabled_p): Return true if either of the dump types is enabled. 9551 (dump_initialized_p): Return true if either type of dump is 9552 initialized. 9553 (dump_end): Do not close standard streams. 9554 (dump_enable_all): Handle filenames for regular dumps. 9555 (dump_switch_p_1): Handle command-line dump filenames. 9556 (opt_info_enable_all): New function. 9557 (opt_info_switch_p_1): Ditto. 9558 (opt_info_switch_p): Ditto. 9559 (dump_kind_p): Ditto. 9560 (dump_basic_block): Ditto. 9561 (dump_combine_total_stats): Ditto. 9562 (dump_remap_tree_vectorizer_verbose): Ditto. 9563 * gimple-pretty-print.h: Rename dump_gimple_stmt to 9564 pp_gimple_stmt_1. All callers updated. 9565 95662012-09-30 Sharad Singhai <singhai@google.com> 9567 9568 * doc/invoke.texi: Add documentation for the new -fopt-info option. 9569 * tree-dump.c: Move general dump file related functionality into 9570 dumpfile.c. Remove unneeded headers. 9571 * tree-dump.h: Move function declarations into dumpfile.h. 9572 * dumpfile.h: Include "line-map.h". Add defines for MSG flags. 9573 (struct dump_file_info): Move here from tree-dump.c. Rename flags 9574 to pflags, state to pstate, stream to pstream, filename to 9575 pfilename. All callers updated. Add alt_flags, alt_state, 9576 alt_filenmae, alt_stream. 9577 * tree-vectorizer.c: Include "dumpfile.h". Remove vect_dump. 9578 (vect_set_dump_settings): Remove. 9579 (vect_print_dump_info): Ditto. 9580 * tree-vectorizer.h: Remove declaration of vect_dump and 9581 vect_print_dump_info. 9582 * tree-vect-loop.c: Include "dumpfile.h". Use new dump style. 9583 * tree-vect-data-refs.c: Ditto. 9584 * tree-vect-stmts.c: Ditto. 9585 * tree-vect-slp.c: Ditto. 9586 * tree-vect-patterns.c: Ditto. 9587 * tree-vect-loop-manip.c: Ditto. 9588 * opts.c (vect_set_verbosity_level): Remove. 9589 (common_handle_option): Handle -fopt-info flag. Deprecate 9590 -ftree-vectorizer-verbose. 9591 * tree-parloops.c (gather_scalar_reductions): Remove reference to 9592 vect_dump. 9593 * flag-types.h: Remove vect_verbosity_levels. 9594 * common.opt: Add -fopt-info. Deprecate -ftree-vectorizer-verbose. 9595 * opts-global.c (dump_remap_tree_vectorizer_verbose): New function. 9596 (handle_common_deferred_options): Handle -fopt-info and 9597 -ftree-vectorizer-verbose. 9598 * Makefile.in: Add dumpfile.o. 9599 (tree-dump.o): Update dependencies. 9600 (tree-vect-loop.o): Ditto. 9601 (tree-vect-loop-manip.o): Ditto. 9602 (tree-vect-slp.o): Ditto. 9603 (tree-vect-stmts.o): Ditto. 9604 (tree-vectorizer.o): Ditto. 9605 (opts.o): Ditto. 9606 * passes.c (finish_optimization_passes): Instead of using 9607 dump_begin/dump_end, use dump_start/dump_finish. Do not use dump_file. 9608 (pass_init_dump_file): Ditto. 9609 96102012-09-30 Joern Rennecke <joern.rennecke@embecosm.com> 9611 9612 PR rtl-optimization/38449: 9613 * hooks.c (hook_bool_const_rtx_const_rtx_true): New function. 9614 * hooks.h (hook_bool_const_rtx_const_rtx_true): Declare. 9615 * target.def: Merge in definitions and documentation for 9616 TARGET_CAN_FOLLOW_JUMP. 9617 * doc/tm.texi.in: Add documentation locations for the above. 9618 * doc/tm.texi: Regenerate. 9619 * reorg.c (follow_jumps): New parameters jump and crossing. 9620 Changed all callers. 9621 96222012-09-30 Eric Botcazou <ebotcazou@adacore.com> 9623 9624 * reorg.c (relax_delay_slots): Use delay_insn consistently. 9625 9626 * config/sparc/sparc.c (gen_stack_pointer_dec): Delete. 9627 (sparc_expand_epilogue): Use gen_stack_pointer_inc and adjust. 9628 (sparc_flat_expand_epilogue): Likewise. 9629 (emit_and_preserve): Likewise. 9630 (sparc_fold_builtin): Fix thinko in latest change. 9631 96322012-09-30 Andreas Schwab <schwab@linux-m68k.org> 9633 9634 * config/m68k/m68k.md: Add names to bitfield insert and extract 9635 insns. 9636 (*insv_8_16_reg): Remove constraints and conditions that assume 9637 that operand 0 could be a MEM. 9638 (*extzv_8_16_reg, *extv_8_16_reg): Likewise, for operand 1. 9639 96402012-09-30 Jan Hubicka <jh@suse.cz> 9641 9642 * cfgloop.c (scale_loop_profile): Move to... 9643 * cfgloopmanip.c (scale_loop_profile): .. here; use 9644 scale_loop_frequencies. 9645 (loopify): Use RDIV. 9646 96472012-09-28 Jan Hubicka <jh@suse.cz> 9648 9649 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Update profile. 9650 96512012-09-28 Jan Hubicka <jh@suse.cz> 9652 9653 * function.c (dup_block_and_redirect): Update profile. 9654 96552012-09-29 Andreas Tobler <andreast@fgznet.ch> 9656 9657 * config.gcc: Replace 'host' with 'target' when configuring for 9658 powerpc64*-*-freebsd. 9659 96602012-09-29 Marc Glisse <marc.glisse@inria.fr> 9661 9662 * tree.c (truth_type_for): New function. 9663 * tree.h (truth_type_for): Declare. 9664 * gimple-fold.c (and_comparisons_1): Call it. 9665 (or_comparisons_1): Likewise. 9666 * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use 9667 boolean_type_node for vectors. 9668 96692012-09-28 Jan Hubicka <jh@suse.cz> 9670 9671 * basic-block.h (RDIV): Define. 9672 (EDGE_FREQUENCY): Simplify. 9673 (check_probability, combine_probabilities, apply_probability, 9674 inverse_probability): New. 9675 * cfgloop.c (scale_loop_profile): New function. 9676 * cfgloop.h (scale_loop_profile): Declare. 9677 (slpeel_add_loop_guard): Add probability parameter. 9678 (set_prologue_iterations): Add probability parameter. 9679 (slpeel_tree_peel_loop_to_edge): Add bound1 and bound2 parameters; 9680 update probabilities correctly. 9681 (vect_do_peeling_for_alignment, vect_gen_niters_for_prolog_loop): New. 9682 96832012-09-20 Bernd Schmidt <bernds@codesourcery.com> 9684 9685 PR bootstrap/54688 9686 * sched-deps.c (parse_add_or_inc): Remove MINUS handling. Take 9687 STACK_GROWS_DOWNWARD into account. 9688 96892012-09-28 Jakub Jelinek <jakub@redhat.com> 9690 9691 PR target/54716 9692 * config/i386/predicates.md (nonimmediate_or_const_vector_operand): 9693 New predicate. 9694 * config/i386/i386.c (ix86_expand_vector_logical_operator): New 9695 function. 9696 * config/i386/i386-protos.h (ix86_expand_vector_logical_operator): New 9697 prototype. 9698 * config/i386/sse.md (<code><mode>3 VI logic): Use it. 9699 9700 PR tree-optimization/54713 9701 * fold-const.c (vec_cst_ctor_to_array): Give up if vector CONSTRUCTOR 9702 has vector elements. 9703 (fold_ternary_loc) <case BIT_FIELD_REF>: Likewise. 9704 * tree-vect-generic.c (vector_element): Don't rely on CONSTRUCTOR elts 9705 indexes. Use BIT_FIELD_REF if CONSTRUCTOR has vector elements. 9706 (lower_vec_perm): Use NULL_TREE CONSTRUCTOR indexes. 9707 97082012-09-28 Georg-Johann Lay <avr@gjlay.de> 9709 9710 * config/avr/avr.md (adjust_len): Add lpm. 9711 (reload_in<mode>): Use avr_out_lpm for output. Use "lpm" for 9712 adjust_len. 9713 * config/avr/avr-protos.h (avr_out_lpm): New prototype. 9714 * config/avr/avr.c (avr_out_lpm): Make global. 9715 (adjust_insn_length): Handle ADJUST_LEN_LPM. 9716 97172012-09-28 Richard Guenther <rguenther@suse.de> 9718 9719 PR lto/47799 9720 * lto-streamer-out.c (tree_is_indexable): Make PARM_DECLs global. 9721 (lto_output_tree_ref): Handle references to them. 9722 (output_function): Do not output function arguments again. 9723 * lto-streamer-in.c (input_function): Do not input arguments 9724 again, nor overwrite them. 9725 97262012-09-28 Richard Guenther <rguenther@suse.de> 9727 9728 * cgraph.h (symtab_node_base): Re-order and pack fields. 9729 97302012-09-28 Georg-Johann Lay <avr@gjlay.de> 9731 9732 * config/avr/avr.c (avr_pgm_check_var_decl): Fix non-error diagnostic. 9733 97342012-09-28 Georg-Johann Lay <avr@gjlay.de> 9735 9736 PR rtl-optimization/52543 9737 * config/avr/avr.c (avr_mode_dependent_address_p): Return true for 9738 all non-generic address spaces. 9739 (TARGET_SECONDARY_RELOAD): New hook define to... 9740 (avr_secondary_reload): ...this new static function. 9741 * config/avr/avr.md (reload_in<mode>): New insns. 9742 9743 Undo r185605 (mostly): 9744 * config/avr/avr-protos.h (avr_load_lpm): Remove. 9745 * config/avr/avr.c (avr_load_libgcc_p): Don't restrict to __flash 9746 loads. 9747 (avr_out_lpm): Also handle loads > 1 byte. 9748 (avr_load_lpm): Remove. 9749 (avr_find_unused_d_reg): New static function. 9750 (avr_out_lpm_no_lpmx): New static function. 9751 (adjust_insn_length): Remove ADJUST_LEN_LOAD_LPM. 9752 * config/avr/avr.md (unspec): Remove UNSPEC_LPM. 9753 (load_<mode>_libgcc): Use MEM instead of UNSPEC_LPM. 9754 (load_<mode>, load_<mode>_clobber): Remove. 9755 (mov<mode>): For multi-byte move from non-generic 9756 16-bit address spaces: Expand to *mov<mode> again. 9757 (load<mode>_libgcc): New expander. 9758 (split-lpmx): Remove split. 9759 97602012-09-27 Dehao Chen <dehao@google.com> 9761 9762 * tree.h (tree_constructor): Remove IS_UNKNOWN_LOCATION. 9763 (extern void protected_set_expr_location): Likewise. 9764 (function_args_iter_next): Likewise. 9765 (inlined_function_outer_scope_p): Likewise. 9766 * input.h (IS_UNKNOWN_LOCATION): Likewise. 9767 * fold-const.c (expr_location_or): Likewise. 9768 * lto-cgraph.c (output_node_opt_summary): Likewise. 9769 * dwarf2out.c (add_src_coords_attributes): Likewise. 9770 * tree-eh.c (lower_try_finally_dup_block): Likewise. 9771 * profile.c (branch_prob): 9772 * cfgexpand.c (expand_gimple_cond): Likewise. 9773 (expand_gimple_basic_block): Likewise. 9774 (construct_exit_block): Likewise. 9775 (gimple_expand_cfg): Likewise. 9776 * cfgcleanup.c (try_forward_edges): Likewise. 9777 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. 9778 (dump_scope_block): Likewise. 9779 * ipa-prop.c (ipa_write_jump_function): Likewise. 9780 * rtl.h (extern void rtl_check_failed_flag): Likewise. 9781 * gimple.h (gimple_set_location): Likewise. 9782 (gimple_has_location): Likewise. 9783 * cfgrtl.c (unique_locus_on_edge_between_p): Likewise. 9784 (force_nonfallthru_and_redirect): Likewise. 9785 (fixup_reorder_chain): Likewise. 9786 (cfg_layout_merge_blocks): Likewise. 9787 97882012-09-27 Meador Inge <meadori@codesourcery.com> 9789 9790 * gcc-ar.c (main): Handle the returning of the sub-process error 9791 code correctly. 9792 97932012-09-27 Ulrich Weigand <ulrich.weigand@linaro.org> 9794 9795 * lower-subreg.c (enum classify_move_insn): Rename 9796 SIMPLE_PSEUDO_REG_MOVE to DECOMPOSABLE_SIMPLE_MOVE. 9797 (find_decomposable_subregs): Update. 9798 (decompose_multiword_subregs): Add DECOMPOSE_COPIES parameter. 9799 Only mark pseudo-to-pseudo copies as DECOMPOSABLE_SIMPLE_MOVE 9800 if that parameter is true. 9801 (rest_of_handle_lower_subreg): Call decompose_multiword_subregs 9802 with DECOMPOSE_COPIES false. 9803 (rest_of_handle_lower_subreg2): Call decompose_multiword_subregs 9804 with DECOMPOSE_COPIES true. 9805 98062012-09-27 Marek Polacek <polacek@redhat.com> 9807 9808 * doc/gcov.texi (Gcov Data Files): Fix a typo. 9809 98102012-09-27 Jakub Jelinek <jakub@redhat.com> 9811 9812 PR target/54703 9813 * simplify-rtx.c (simplify_binary_operation_1): Perform 9814 (x - (x & y)) -> (x & ~y) optimization only for integral modes. 9815 98162012-09-27 Marc Glisse <marc.glisse@inria.fr> 9817 9818 PR c/53024 9819 PR c++/54427 9820 * doc/extend.texi (Vector Extensions): C++ improvements. 9821 Power of 2 size requirement. 9822 98232012-09-27 Richard Guenther <rguenther@suse.de> 9824 9825 PR lto/54709 9826 * lto-symtab.c (resolution_guessed_p): Remove. 9827 (set_resolution_guessed): Likewise. 9828 (lto_symtab_register_decl): Remove assert. 9829 (lto_symtab_resolve_symbols): Do not alter symbol resolutions 9830 and return the prevailing symbol, checking for multiple prevailing 9831 symbols here. 9832 (lto_symtab_merge_decls_1): Use the result from 9833 lto_symtab_resolve_symbols. Do not alter symbol resolutions. 9834 98352012-09-26 Steve Ellcey <sellcey@mips.com> 9836 9837 PR web/54711 9838 * doc/install.texi: Fix example. 9839 98402012-09-26 Dehao Chen <dehao@google.com> 9841 9842 * tree-ssa-live.c (clear_unused_block_pointer): Use explicitit (void) 9843 for function parameter. 9844 (remove_unused_locals): Don't use LOCATION_BLOCK if it is NULL. 9845 98462012-09-26 Oleg Endo <olegendo@gcc.gnu.org> 9847 9848 * doc/extend.texi (bswap Builtins): Change signed types to unsigned 9849 types. 9850 98512012-09-26 Ian Lance Taylor <iant@google.com> 9852 9853 * diagnostic.c (bt_callback): Cast pc when calling fprintf. 9854 98552012-09-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 9856 9857 PR tree-optimization/54674 9858 * gimple-ssa-strength-reduction.c (analyze_increments): Don't 9859 introduce a multiplication with a pointer operand. 9860 98612012-09-26 Georg-Johann Lay <avr@gjlay.de> 9862 9863 PR middle-end/54635 9864 * doc/tm.texi.in (TARGET_MODE_DEPENDENT_ADDRESS_P): Document new 9865 parameter addrspace. 9866 * doc/tm.texi: Regenerate. 9867 * target.def (mode_dependent_address_p): Add addr_space_t parameter. 9868 * targhooks.h (default_mode_dependent_address_p): Ditto. 9869 * targhooks.c (default_mode_dependent_address_p): Ditto. 9870 * expr.c (convert_move): Pass address space to 9871 mode_dependent_address_p. 9872 * combine.c (combine_simplify_rtx): Ditto. 9873 (make_extraction): Ditto. 9874 (simplify_shift_const_1): Ditto. 9875 (gen_lowpart_for_combine): Ditto. 9876 * lower-subreg.c (simple_move_operand): Ditto. 9877 * recog.c (simplify_while_replacing): Ditto. 9878 (offsettable_address_addr_space_p): Ditto. 9879 (mode_dependent_address_p): Ditto. 9880 * simplify-rtx.c (simplify_unary_operation_1): Ditto. 9881 (simplify_subreg): Ditto. 9882 * config/m68k/m68k.md: Ditto. 9883 * config/vax/vax.md: Ditto. 9884 * config/vax/constraints.md (Q): Ditto. 9885 * config/vax/predicates.md (indexed_memory_operand): Ditto. 9886 * config/alpha/alpha.c (alpha_mode_dependent_address_p): Add 9887 unused addr_space_t parameter. 9888 * config/avr/avr.c (avr_mode_dependent_address_p): Ditto. 9889 * config/h8300/h8300.c (h8300_mode_dependent_address_p): Ditto. 9890 * config/m32r/m32r.c (m32r_mode_dependent_address_p): Ditto. 9891 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): Ditto. 9892 * config/rx/rx.c (rx_mode_dependent_address_p): Ditto. 9893 * config/sparc/sparc.c (sparc_mode_dependent_address_p): Ditto. 9894 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p): 9895 Ditto. 9896 * config/vax/vax.c (vax_mode_dependent_address_p): Ditto. 9897 * config/xtensa/xtensa.c (xtensa_mode_dependent_address_p): Ditto. 9898 98992012-09-26 Christophe Lyon <christophe.lyon@linaro.org> 9900 9901 * tree-ssa-math-opts.c (bswap_stats): Add found_16bit field. 9902 (execute_optimize_bswap): Add support for builtin_bswap16. 9903 99042012-09-26 Richard Guenther <rguenther@suse.de> 9905 9906 * tree.h (DECL_IS_BUILTIN): Compare LOCATION_LOCUS. 9907 99082012-09-26 Ian Lance Taylor <iant@google.com> 9909 9910 * diagnostic.c: Include "demangle.h" and "backtrace.h". 9911 (bt_stop): New static array. 9912 (bt_callback, bt_err_callback): New static functions. 9913 (diagnostic_action_after_output): Call backtrace_full for DK_ICE. 9914 * Makefile.in (BACKTRACE): New variable. 9915 (BACKTRACEINC, LIBBACKTRACE): New variables. 9916 (BACKTRACE_H): New variable. 9917 (LIBDEPS, LIBS): Add $(LIBBACKTRACE). 9918 (INCLUDES): Add $(BACKTRACEINC). 9919 (diagnostic.o): Depend upon $(DEMANGLE_H) and $(BACKTRACE_H). 9920 99212012-09-25 Segher Boessenkool <segher@kernel.crashing.org> 9922 9923 PR target/51274 9924 PR target/53087 9925 * config/rs6000/rs6000.md (ne0si): Remove unnecessary 9926 earlyclobber. Merge with... 9927 (ne0di): ... to... 9928 (ne0_<mode>): New. 9929 (plus_ne0si): Merge with... 9930 (plus_ne0di): ... to... 9931 (plus_ne0_<mode>): New. 9932 (compare_plus_ne0si): Merge with... 9933 (compare_plus_ne0di)... to... 9934 (compare_plus_ne0_<mode>): New. 9935 (compare_plus_ne0_<mode>_1): New. 9936 (plus_ne0si_compare): Merge with... 9937 (plus_ne0di_compare)... to... 9938 (plus_ne0_<mode>_compare): New. 9939 99402012-09-25 Oleg Endo <olegendo@gcc.gnu.org> 9941 9942 PR target/54089 9943 * config/sh/constraints.md (Jhb): New constraint. 9944 * config/sh/predicates.md (negt_reg_shl31_operand): New predicate. 9945 * config/sh/sh.md (rotrsi3): New expander. 9946 (rotrsi3_1, *rotrsi3_1, *rotlsi3_1): New insns. 9947 (rotlsi3, rotlhi3): Use const_int_operand predicate instead of 9948 immediate_operand and remove CONST_INT_P checks in expansion code. 9949 (*rotcr): Cleanup variable usage. Handle preceding nott insn. Add 9950 split with swapped operands. 9951 (*rotcr_neg_t, *movt_msb, *negt_msb): New insns and splits. 9952 99532012-09-25 Aldy Hernandez <aldyh@redhat.com> 9954 9955 PR middle-end/53850 9956 * trans-mem.c (expand_call_tm): Handle late built built-ins. 9957 99582012-09-25 Georg-Johann Lay <avr@gjlay.de> 9959 9960 PR other/54701 9961 * config/avr/avr-log.c (avr_double_int_pop_digit): Rewrite using 9962 double_int::udivmod. 9963 99642012-09-25 Georg-Johann Lay <avr@gjlay.de> 9965 9966 * config/avr/avr.c (avr_set_current_function): Check cfun->machine 9967 to be non-NULL. 9968 99692012-09-25 Georg-Johann Lay <avr@gjlay.de> 9970 9971 PR target/54641 9972 * config/avr/t-avr: Use ALL_COMPILERFLAGS instead of ALL_CFLAGS 9973 for sources compiled with COMPILER. 9974 99752012-09-25 Richard Guenther <rguenther@suse.de> 9976 9977 PR lto/54625 9978 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Do not merge 9979 cgraph nodes for builtins. 9980 99812012-09-25 Jakub Jelinek <jakub@redhat.com> 9982 9983 PR tree-optimization/54676 9984 * tree-vrp.c (set_and_canonicalize_value_range): Handle 9985 one bit precision properly. 9986 9987 PR other/54692 9988 * configure.ac (CFLAGS, CXXFLAGS): Remove -Ofast or -Og properly. 9989 * configure: Regenerated. 9990 99912012-09-25 Georg-Johann Lay <avr@gjlay.de> 9992 9993 PR other/54701 9994 * config/avr/avr.c (avr_map_decompose): Use double_int::from_uhwi 9995 instead of uhwi_to_double_int. 9996 99972012-09-25 Richard Guenther <rguenther@suse.de> 9998 9999 * lto-symtab.c (lto_symtab_merge_decls_1): Properly merge 10000 all of the chain. 10001 100022012-09-25 Richard Guenther <rguenther@suse.de> 10003 10004 PR tree-optimization/53663 10005 * tree-ssa-sccvn.c (vn_reference_lookup_3): Conditional 10006 native encode/interpret translation on VN_WALKREWRITE. 10007 100082012-09-24 Dehao Chen <dehao@google.com> 10009 10010 * tree-cfg.c (move_stmt_op): Reset the expr block only when necessary. 10011 (move_block_to_fn): Reset the edge's goto block even 10012 when the goto locus is unknown. 10013 100142012-09-24 Lawrence Crowl <crowl@google.com> 10015 10016 * double-int.h (double_int::from_pair): New. 10017 (double_int::wide_mul_with_sign): New. 10018 (double_int::sub_with_overflow): New. 10019 (double_int::neg_with_overflow): New. 10020 (double_int::divmod_with_overflow): New. 10021 (shwi_to_double_int): Remove. 10022 (uhwi_to_double_int): Remove. 10023 (double_int_to_shwi): Remove. 10024 (double_int_to_uhwi): Remove. 10025 (double_int_fits_in_uhwi_p): Remove. 10026 (double_int_fits_in_shwi_p): Remove. 10027 (double_int_fits_in_hwi_p): Remove. 10028 (double_int_mul): Remove. 10029 (double_int_mul_with_sign): Remove. 10030 (double_int_add): Remove. 10031 (double_int_sub): Remove. 10032 (double_int_neg): Remove. 10033 (double_int_div): Remove. 10034 (double_int_sdiv): Remove. 10035 (double_int_udiv): Remove. 10036 (double_int_mod): Remove. 10037 (double_int_smod): Remove. 10038 (double_int_umod): Remove. 10039 (double_int_divmod): Remove. 10040 (double_int_sdivmod): Remove. 10041 (double_int_udivmod): Remove. 10042 (double_int_multiple_of): Remove. 10043 (double_int_setbit): Remove. 10044 (double_int_ctz): Remove. 10045 (double_int_not): Remove. 10046 (double_int_ior): Remove. 10047 (double_int_and): Remove. 10048 (double_int_and_not): Remove. 10049 (double_int_xor): Remove. 10050 (double_int_lshift): Remove. 10051 (double_int_rshift): Remove. 10052 (double_int_lrotate): Remove. 10053 (double_int_rrotate): Remove. 10054 (double_int_negative_p): Remove. 10055 (double_int_cmp): Remove. 10056 (double_int_scmp): Remove. 10057 (double_int_ucmp): Remove. 10058 (double_int_max): Remove. 10059 (double_int_smax): Remove. 10060 (double_int_umax): Remove. 10061 (double_int_min): Remove. 10062 (double_int_smin): Remove. 10063 (double_int_umin): Remove. 10064 (double_int_ext): Remove. 10065 (double_int_sext): Remove. 10066 (double_int_zext): Remove. 10067 (double_int_mask): Remove. 10068 (double_int_max_value): Remove. 10069 (double_int_min_value): Remove. 10070 (double_int_zero_p): Remove. 10071 (double_int_one_p): Remove. 10072 (double_int_minus_one_p): Remove. 10073 (double_int_equal_p): Remove. 10074 (double_int_popcount): Remove. 10075 (extern add_double_with_sign): Remove. 10076 (#define add_double): Remove. 10077 (extern neg_double): Remove. 10078 (extern mul_double_with_sign): Remove. 10079 (extern mul_double_wide_with_sign): Remove. 10080 (#define mul_double): Remove. 10081 (extern lshift_double): Remove. 10082 (extern div_and_round_double): Remove. 10083 * double-int.c (add_double_with_sign): Make static. 10084 (#defined add_double): Localized from header. 10085 (neg_double): Make static. 10086 (mul_double_with_sign): Make static. 10087 (mul_double_wide_with_sign): Make static. 10088 (#defined mul_double): Localized from header. 10089 (lshift_double): Make static. 10090 (div_and_round_double): Make static. 10091 (double_int::wide_mul_with_sign): New. 10092 (double_int::sub_with_overflow): New. 10093 (double_int::neg_with_overflow): New. 10094 (double_int::divmod_with_overflow): New. 10095 * emit-rtl.c (init_emit_once): Change to new double_int API. 10096 * explow.c (plus_constant): Likewise. 10097 * expmed.c (choose_multiplier): Likewise. 10098 * fold-const.c (#define OVERFLOW_SUM_SIGN): Remove. 10099 (int_const_binop_1): Change to new double_int API. 10100 (fold_div_compare): Likewise. 10101 (maybe_canonicalize_comparison): Likewise. 10102 (pointer_may_wrap_p): Likewise. 10103 (fold_negate_const): Likewise. 10104 (fold_abs_const): Likewise. 10105 * simplify-rtx.c (simplify_const_unary_operation): Likewise. 10106 (simplify_const_binary_operation): Likewise. 10107 * tree-chrec.c (tree_fold_binomial): Likewise. 10108 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise. 10109 * config/sparc/sparc.c (sparc_fold_builtin): Likewise. 10110 * config/avr/avr.c (avr_double_int_push_digit): Likewise. 10111 (avr_map): Likewise. 10112 (avr_map_decompose): Likewise. 10113 (avr_out_insert_bits): Likewise. 10114 101152012-09-24 Janis Johnson <janisjo@codesourcery.com> 10116 10117 * doc/sourcebuild.texi (Selectors): Document the use of target 10118 and xfail used together. 10119 101202012-09-24 Richard Guenther <rguenther@suse.de> 10121 10122 PR middle-end/54632 10123 * tree-ssa-live.c (clear_unused_block_pointer_1): Do not 10124 handle DECL_DEBUG_EXPR_IS_FROM here... 10125 (clear_unused_block_pointer): ... but here when walking all 10126 local decls. 10127 101282012-09-24 Richard Guenther <rguenther@suse.de> 10129 10130 PR tree-optimization/54684 10131 * tree-ssa-ccp.c (optimize_unreachable): Properly update stmts. 10132 101332012-09-24 Marc Glisse <marc.glisse@inria.fr> 10134 10135 * tree-ssa-forwprop.c: Include tree-ssa-propagate.h. 10136 (simplify_bitfield_ref): Handle constructors. 10137 * Makefile.in (tree-ssa-forwprop.o): Depend on tree-ssa-propagate.h. 10138 101392012-09-24 Richard Guenther <rguenther@suse.de> 10140 10141 * tree-ssa-pre.c (bitmap_find_leader, create_expression_by_pieces, 10142 find_or_generate_expression): Remove dominating stmt argument. 10143 (find_leader_in_sets, phi_translate_1, bitmap_find_leader, 10144 create_component_ref_by_pieces_1, create_component_ref_by_pieces, 10145 do_regular_insertion, do_partial_partial_insertion): Adjust. 10146 (compute_avail): Do not set uids. 10147 101482012-09-24 Eric Botcazou <ebotcazou@adacore.com> 10149 10150 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream in 10151 TYPE_NONALIASED_COMPONENT flag. 10152 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream out 10153 TYPE_NONALIASED_COMPONENT flag. 10154 101552012-09-24 Jia Liu <proljc@gmail.com> 10156 10157 * doc/lto.texi: Separate sections. 10158 * doc/plugins.texi: Likewise. 10159 101602012-09-24 Richard Guenther <rguenther@suse.de> 10161 10162 PR middle-end/52173 10163 * gimple.c (gimple_copy): Properly mark the copy modified 10164 if SSA operands are present. 10165 101662012-09-23 Eric Botcazou <ebotcazou@adacore.com> 10167 10168 PR tree-optimization/54669 10169 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Invoke 10170 maybe_clean_or_replace_eh_stmt on the modified use statements. 10171 101722012-09-23 Marc Glisse <marc.glisse@inria.fr> 10173 10174 * expr.c (do_store_flag): Remove duplicated code. 10175 101762012-09-22 Segher Boessenkool <segher@kernel.crashing.org> 10177 10178 * config/rs6000/predicates.md (altivec_register_operand, 10179 vsx_register_operand, vfloat_operand, vint_operand, 10180 vlogical_operand, gpc_reg_operand, cc_reg_operand, 10181 cc_reg_not_cr0_operand, cc_reg_not_micro_cr0_operand): 10182 If op is a SUBREG, consider its SUBREG_REG instead. 10183 101842012-09-22 Uros Bizjak <ubizjak@gmail.com> 10185 10186 * optabs.c (prepare_cmp_insn): Expand comparison of the result 10187 of memcmp through generic comparison expansion code. 10188 101892012-09-21 Anthony Green <green@moxielogic.com> 10190 10191 * config/moxie/moxie.opt: Add -mno-crt0 option. 10192 * config/moxie/moxie.h (STARTFILE_SPEC): Handle -mno-crt0 option. 10193 * doc/invoke.texi (Option Summary): Document -mno-crt0 option. 10194 101952012-09-21 Jack Howarth <howarth@bromo.med.uc.edu> 10196 10197 PR bootstrap/54642 10198 * Makefile.in (lto-symtab.o): Remove gt-lto-symtab.h dependency. 10199 102002012-09-21 Dehao Chen <dehao@google.com> 10201 10202 PR go/54649 10203 * tree-eh.c (lower_try_finally_dup_block): Set the correct block for 10204 stmts in the duplicated EH block. 10205 102062012-09-21 Richard Guenther <rguenther@suse.de> 10207 10208 PR tree-optimization/54647 10209 * tree-ssa-pre.c (compute_avail): Do not put COND_EXPR 10210 or VEC_COND_EXPR into EXP_GEN again. 10211 102122012-09-21 Jakub Jelinek <jakub@redhat.com> 10213 10214 PR tree-optimization/54629 10215 * tree-loop-distribution.c (classify_partition): Free loop nest only 10216 after freeing ddr. Free ddr and loop nest also if successful. 10217 102182012-09-21 Matthias Klose <doko@ubuntu.com> 10219 10220 * config/arm/arm.c (arm_mangle_type): Don't warn anymore that 10221 4.4 has changed the `va_list' mangling. 10222 102232012-09-21 Eric Botcazou <ebotcazou@adacore.com> 10224 10225 PR rtl-optimization/54290 10226 PR rtl-optimization/54644 10227 * reload1.c (choose_reload_regs): Fix thinko in previous change. 10228 102292012-09-20 Segher Boessenkool <segher@kernel.crashing.org> 10230 10231 * config/rs6000/rs6000.md (define_split for plus_eqsi): 10232 Fix output pattern. 10233 102342012-09-20 Eric Botcazou <ebotcazou@adacore.com> 10235 10236 * reload1.c (choose_reload_regs): Add missing #ifdef/#endif pair. 10237 102382012-09-20 Bernd Schmidt <bernds@codesourcery.com> 10239 10240 PR bootstrap/54643 10241 * haifa-sched.c (schedule_block): Skip find_modifiable_mems if using 10242 SCHED_PRESSURE_MODEL. 10243 102442012-09-20 Joern Rennecke <joern.rennecke@embecosm.com> 10245 10246 * rtlanal.c (dead_or_set_regno_p): Fix COND_EXEC handling. 10247 102482012-09-20 Marek Polacek <polacek@redhat.com> 10249 10250 * tree-ssa-operands.c (get_expr_operands): Merge identical cases. 10251 102522012-09-20 Marek Polacek <polacek@redhat.com> 10253 10254 * tree-ssa-threadupdate.c (mark_threaded_blocks): Don't cast XNEWVEC's 10255 result. 10256 (create_edge_and_update_destination_phis): Likewise. 10257 102582012-09-20 Martin Jambor <mjambor@suse.cz> 10259 10260 * function.c (push_cfun): Check old current_function_decl matches 10261 old cfun, set new current_function_decl to the decl of the new cfun. 10262 (push_struct_function): Likewise. 10263 (pop_cfun): Likewise. 10264 (allocate_struct_function): Move call to 10265 invoke_set_current_function_hook to the end of the function. 10266 * cfgexpand.c (estimated_stack_frame_size): Do not set and restore 10267 current_function_decl. 10268 * cgraph.c (cgraph_release_function_body): Likewise. 10269 * cgraphunit.c (cgraph_process_new_functions): Likewise. 10270 (cgraph_add_new_function): Likewise. 10271 (cgraph_analyze_function): Likewise. 10272 (assemble_thunk): Set cfun to NULL at the end. 10273 (expand_function): Move call to set_cfun downwards. 10274 * gimple-low.c (record_vars_into): Only check current_function_decl 10275 before possibly doing push_cfun. 10276 * gimplify.c (gimplify_function_tree): Do not set and restore 10277 current_function_decl. 10278 * ipa-inline-analysis.c (compute_inline_parameters): Likewise. 10279 (inline_analyze_function): Likewise. 10280 * ipa-prop.c (ipa_analyze_node): Likewise. 10281 * ipa-pure-const.c (analyze_function): Likewise. 10282 * lto-streamer-in.c (lto_input_function_body): Do not set 10283 current_function_decl. 10284 * lto-streamer-out.c (output_function): Do not set and restore 10285 current_function_decl. 10286 * omp-low.c (finalize_task_copyfn): Likewise. 10287 (expand_omp_taskreg): Likewise. 10288 (create_task_copyfn): Likewise, move push_cfun up quite a bit. 10289 * passes.c (dump_passes): Do not set and restore current_function_decl. 10290 (do_per_function): Likewise. 10291 (do_per_function_toporder): Likewise. 10292 * trans-mem.c (ipa_tm_scan_irr_function): Likewise. 10293 (ipa_tm_transform_transaction): Likewise. 10294 (ipa_tm_transform_clone): Likewise. 10295 (ipa_tm_execute): Likewise. 10296 * tree-emutls.c (lower_emutls_function_body): Likewise. 10297 * tree-inline.c (initialize_cfun): Do not call pop_cfun. 10298 (tree_function_versioning): Do not call push_cfun, do not set and 10299 restore current_function_decl. Remove assert checking consistency of 10300 cfun and current_function_decl. 10301 * tree-profile.c (tree_profiling): Do not set and restore 10302 current_function_decl. 10303 * tree-sra.c (convert_callers_for_node): Do not set 10304 current_function_decl. 10305 (convert_callers): Do not restore current_function_decl. 10306 (modify_function): Do not set current_function_decl. 10307 * tree-ssa-structalias.c (ipa_pta_execute): Do not set and restore 10308 current_function_decl. 10309 103102012-09-20 Diego Novillo <dnovillo@google.com> 10311 10312 PR target/54631 10313 * config/vxworks.c (vxworks_emutls_var_init): Update for new 10314 VEC_quick_push interface. 10315 103162012-09-20 Richard Guenther <rguenther@suse.de> 10317 10318 PR tree-optimization/54634 10319 * tree-data-ref.c (get_references_in_stmt): For now give 10320 up for pure functions. 10321 103222012-09-20 Chen Wei-Ren <chenwj@iis.sinica.edu.tw> 10323 10324 * doc/lto.texi: Correct typo. 10325 103262012-09-19 Dehao Chen <dehao@google.com> 10327 10328 * config/s390/s390.c (s390_chunkify_start): Replacing INSN_LOCATOR. 10329 * config/spu/spu.c (emit_nop_for_insn): Likewise. 10330 (pad_bb): Likewise. 10331 (spu_emit_branch_hint): Likewise. 10332 (insert_hbrp_for_ilb_runout): Likewise. 10333 * config/mep/mep.c (mep_make_bundle): Likewise. 10334 (mep_bundle_insns): Likewise. 10335 * config/sh/sh.c (gen_block_redirect): Likewise. 10336 * config/c6x/c6x.c (gen_one_bundle): Likewise. 10337 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Likewise. 10338 * config/picochip/picochip.c (picochip_reorg): Likewise. 10339 * config/arm/arm.c (require_pic_register): Likewise. 10340 * config/mips/mips.c (mips16_gp_pseudo_reg): Likewise. 10341 * config/bfin/bfin.c (gen_one_bundle): Likewise. 10342 103432012-09-19 Mark Kettenis <kettenis@openbsd.org> 10344 10345 * config.gcc (hppa*-*-openbsd*): New target. 10346 * config/pa/pa-openbsd.h: New file. 10347 * config/pa/pa32-openbsd.h: New file. 10348 * config/host-openbsd.c: Update copyright year. 10349 (TRY_EXCEPT_VM_SPACE): Define for OpenBSD/hppa. 10350 103512012-09-19 Martin Jambor <mjambor@suse.cz> 10352 10353 * ipa-prop.c (prune_expression_for_jf): New function. 10354 (ipa_set_jf_constant): Use it. 10355 (ipa_set_jf_arith_pass_through): Likewise. 10356 (determine_known_aggregate_parts): Likewise. 10357 103582012-09-19 Steve Ellcey <sellcey@mips.com> 10359 10360 * config.gcc (mips*-mti-elf*): New target. 10361 * config/mips/mti-elf.h: New file. 10362 * config/mips/t-mti-elf: New file. 10363 103642012-09-19 Dehao Chen <dehao@google.com> 10365 10366 * toplev.c (general_init): Init block_locations. 10367 * tree.c (tree_set_block): New. 10368 (tree_block): Change to use LOCATION_BLOCK. 10369 * tree.h (TREE_SET_BLOCK): New. 10370 * final.c (reemit_insn_block_notes): Change to use LOCATION_BLOCK. 10371 (final_start_function): Likewise. 10372 * input.c (expand_location_1): Likewise. 10373 * input.h (LOCATION_LOCUS): New. 10374 (LOCATION_BLOCK): New. 10375 (IS_UNKNOWN_LOCATION): New. 10376 * fold-const.c (expr_location_or): Change to use new location. 10377 * reorg.c (emit_delay_sequence): Likewise. 10378 (try_merge_delay_insns): Likewise. 10379 * modulo-sched.c (dump_insn_location): Likewise. 10380 * lto-streamer-out.c (lto_output_location_bitpack): Likewise. 10381 * lto-cgraph.c (output_node_opt_summary): Likewise. 10382 * jump.c (rtx_renumbered_equal_p): Likewise. 10383 * ifcvt.c (noce_try_move): Likewise. 10384 (noce_try_store_flag): Likewise. 10385 (noce_try_store_flag_constants): Likewise. 10386 (noce_try_addcc): Likewise. 10387 (noce_try_store_flag_mask): Likewise. 10388 (noce_try_cmove): Likewise. 10389 (noce_try_cmove_arith): Likewise. 10390 (noce_try_minmax): Likewise. 10391 (noce_try_abs): Likewise. 10392 (noce_try_sign_mask): Likewise. 10393 (noce_try_bitop): Likewise. 10394 (noce_process_if_block): Likewise. 10395 (cond_move_process_if_block): Likewise. 10396 (find_cond_trap): Likewise. 10397 * ipa-prop.c (ipa_set_jf_constant): Likewise. 10398 (ipa_write_jump_function): Likewise. 10399 * dwarf2out.c (add_src_coords_attributes): Likewise. 10400 * expr.c (expand_expr_real): Likewise. 10401 * tree-parloops.c (create_loop_fn): Likewise. 10402 * recog.c (peep2_attempt): Likewise. 10403 * function.c (free_after_compilation): Likewise. 10404 (expand_function_end): Likewise. 10405 (set_insn_locations): Likewise. 10406 (thread_prologue_and_epilogue_insns): Likewise. 10407 * print-rtl.c (print_rtx): Likewise. 10408 * profile.c (branch_prob): Likewise. 10409 * trans-mem.c (ipa_tm_scan_irr_block): Likewise. 10410 * gimplify.c (gimplify_call_expr): Likewise. 10411 * except.c (duplicate_eh_regions_1): Likewise. 10412 * emit-rtl.c (try_split): Likewise. 10413 (make_insn_raw): Likewise. 10414 (make_debug_insn_raw): Likewise. 10415 (make_jump_insn_raw): Likewise. 10416 (make_call_insn_raw): Likewise. 10417 (emit_pattern_after_setloc): Likewise. 10418 (emit_pattern_after): Likewise. 10419 (emit_debug_insn_after): Likewise. 10420 (emit_pattern_before): Likewise. 10421 (emit_insn_before_setloc): Likewise. 10422 (emit_jump_insn_before): Likewise. 10423 (emit_call_insn_before_setloc): Likewise. 10424 (emit_call_insn_before): Likeise. 10425 (emit_debug_insn_before_setloc): Likewise. 10426 (emit_copy_of_insn_after): Likewise. 10427 (insn_locators_alloc): Remove. 10428 (insn_locators_finalize): Remove. 10429 (insn_locators_free): Remove. 10430 (set_curr_insn_source_location): Remove. 10431 (get_curr_insn_source_location): Remove. 10432 (set_curr_insn_block): Remove. 10433 (get_curr_insn_block): Remove. 10434 (locator_scope): Remove. 10435 (insn_scope): Change to use new location. 10436 (locator_location): Remove. 10437 (insn_line): Change to use new location. 10438 (locator_file): Remove. 10439 (insn_file): Change to use new location. 10440 (locator_eq): Remove. 10441 (insn_locations_init): New. 10442 (insn_locations_finalize): New. 10443 (set_curr_insn_location): New. 10444 (curr_insn_location): New. 10445 * cfgexpand.c (gimple_assign_rhs_to_tree): Change to use new location. 10446 (expand_gimple_cond): Likewise. 10447 (expand_call_stmt): Likewise. 10448 (expand_gimple_stmt_1): Likewise. 10449 (expand_gimple_basic_block): Likewise. 10450 (construct_exit_block): Likewise. 10451 (gimple_expand_cfg): Likewise. 10452 * cfgcleanup.c (try_forward_edges): Likewise. 10453 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. 10454 (dump_scope_block): Likewise. 10455 (remove_unused_locals): Likewise. 10456 * rtl.c (rtx_equal_p_cb): Likewise. 10457 (rtx_equal_p): Likewise. 10458 * rtl.h (XUINT): New. 10459 (INSN_LOCATOR): Remove. 10460 (CURR_INSN_LOCATION): Remove. 10461 (INSN_LOCATION): New. 10462 (INSN_HAS_LOCATION): New. 10463 * tree-inline.c (remap_gimple_op_r): Change to use new location. 10464 (copy_tree_body_r): Likewise. 10465 (copy_phis_for_bb): Likewise. 10466 (expand_call_inline): Likewise. 10467 * tree-streamer-in.c (lto_input_ts_exp_tree_pointers): Likewise. 10468 * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise. 10469 * gimple-streamer-out.c (output_gimple_stmt): Likewise. 10470 * combine.c (try_combine): Likewise. 10471 * tree-outof-ssa.c (set_location_for_edge): Likewise. 10472 (insert_partition_copy_on_edge): Likewise. 10473 (insert_value_copy_on_edge): Likewise. 10474 (insert_rtx_to_part_on_edge): Likewise. 10475 (insert_part_to_rtx_on_edge): Likewise. 10476 * basic-block.h (edge_def): Remove field. 10477 * gimple.h (gimple_statement_base): Remove field. 10478 (gimple_bb): Change to use new location. 10479 (gimple_set_block): Likewise. 10480 (gimple_has_location): Likewise. 10481 * tree-cfg.c (make_cond_expr_edges): Likewise. 10482 (make_goto_expr_edges): Likewise. 10483 (gimple_can_merge_blocks_p): Likewise. 10484 (move_stmt_op): Likewise. 10485 (move_block_to_fn): Likewise. 10486 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise. 10487 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. 10488 * config/i386/i386.c (x86_output_mi_thunk): Likewise. 10489 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise. 10490 * config/sh/sh.c (sh_output_mi_thunk): Likewise. 10491 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. 10492 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. 10493 * config/score/score.c (score_output_mi_thunk): Likewise. 10494 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise. 10495 * config/mips/mips.c (mips_output_mi_thunk): Likewise. 10496 * cfgrtl.c (unique_locus_on_edge_between_p): Likewise. 10497 (unique_locus_on_edge_between_p): Likewise. 10498 (emit_nop_for_unique_locus_between): Likewise. 10499 (force_nonfallthru_and_redirect): Likewise. 10500 (fixup_reorder_chain): Likewise. 10501 (cfg_layout_merge_blocks): Likewise. 10502 * stmt.c (emit_case_nodes): Likewise. 10503 105042012-09-19 Bernd Schmidt <bernds@codesourcery.com> 10505 10506 * dbgcnt.def (sched_breakdep): New counter. 10507 * haifa-sched.c (update_insn_after_change): New static function, 10508 broken out of haifa_change_pattern. 10509 (haifa_change_pattern): Call it. 10510 (dep_t heap vecs): Declare. 10511 (INSN_COST): Define earlier. 10512 (next_cycle_replace_deps, next_cycle_apply): New static variables. 10513 (apply_replacement): New static function. 10514 (recompute_todo_spec): New argument FOR_BACKTRACK. All callers 10515 changed. Handle DEP_REPLACE deps. 10516 (contributes_to_priority_p): False for replaceable deps. 10517 (must_restore_pattern_p, restore_pattern): New static functions. 10518 (schedule_insn): Use them. Apply replacements for broken deps. 10519 (struct haifa_saved_data): Add new fields to keep track of 10520 replacements. 10521 (save_backtrack_point): Initialize them. 10522 (undo_replacements_for_backtrack): New static function. 10523 (restore_last_backtrack_point, free_topmost_backtrack_point): 10524 Use it and keep track of replacements. 10525 (perform_replacements_new_cycle, undo_all_replacements): New static 10526 functions. 10527 (schedule_block): Call these two as necessary. Call 10528 find_modifiable_mems. 10529 (try_ready): Tweak the assert. Check for DEP_POSTPONED. 10530 * sched-deps.c: Include "emit-rtl.h". 10531 (init_dep_1): Initialize DEP_NONREG, DEP_MULTIPLE and DEP_REPLACE. 10532 (dep_spec_p): True for DEP_REPLACE deps. 10533 (mark_as_hard): New static variable. 10534 (update_dep): Update DEP_NONREG and DEP_MULTIPLE. 10535 (add_dependence_list): New argument hard. All callers changed. Set 10536 and clear mark_as_hard around function body. 10537 (add_dependence_list_and_free): Likewise. 10538 (haifa_note_mem_dep): Set DEP_NONREG. 10539 (haifa_note_dep): Likewise if mark_as_hard is true. 10540 (sched_analyze_insn): Switch loop with if statement testing for 10541 sel_sched_p. 10542 (struct mem_inc_info): New. 10543 (attempt_change, parse_add_or_inc, find_inc, find_mem): New static 10544 functions. 10545 (find_modifiable_mems): New function. 10546 * sched-int.h (struct dep_replacement): New. 10547 (struct _dep): Add replace, nonreg and multiple fields. Make type and 10548 cost bitfields. 10549 (UNKNOWN_DEP_COST): Change to match the bitfield. 10550 (DEP_NONREG, DEP_MULTIPLE, DEP_REPLACE): New macros. 10551 (DEP_POSTPONED): New macro. 10552 (DEP_CANCELLED): Renumber. 10553 (find_modifiable_mems): Declare. 10554 (enum SCHED_FLAGS): Add DONT_BREAK_DEPENDENCIES. 10555 * sched-rgn.c (init_ready_list): Set TODO_SPEC here. 10556 (new_ready): Don't set HARD_DEP, use DEP_POSTPONED. 10557 (debug_dependencies): Dump DEP_NONREG and DEP_MULTIPLE. 10558 * Makefile.in (sched-deps.o): Update dependencies. 10559 * config/c6x/c6x.c (in_hwloop): New static variable. 10560 (c6x_set_sched_flags): If it is true, add DONT_BREAK_DEPENDENCIES. 10561 (hwloop_optimize): Set and clear it around preliminary scheduling pass. 10562 105632012-09-19 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> 10564 10565 * config/rs6000/rs6000-builtin.def: Add __builtin_ppc_get_timebase 10566 and __builtin_ppc_mftb. 10567 * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): New function 10568 to expand an expression that calls a built-in without arguments. 10569 (rs6000_expand_builtin): Add __builtin_ppc_get_timebase and 10570 __builtin_ppc_mftb. 10571 (rs6000_init_builtins): Likewise. 10572 * config/rs6000/rs6000.md (rs6000_get_timebase): New pattern. 10573 (rs6000_get_timebase_ppc32): New pattern. 10574 (rs6000_mftb_<mode>): New pattern. 10575 10576 * doc/extend.texi (PowerPC Built-in Functions): New section. 10577 (PowerPC AltiVec/VSX Built-in Functions): Move some built-ins 10578 unrelated to Altivec/VSX to the new section. 10579 105802012-09-19 David Edelsohn <dje.gcc@gmail.com> 10581 10582 * rs6000.md (mac*): Remove extra spaces. 10583 (mulhw*): Same. 10584 105852012-09-19 Oleg Endo <olegendo@gcc.gnu.org> 10586 10587 PR target/54089 10588 * config/sh/predicates.md (arith_reg_or_t_reg_operand): New predicate. 10589 * config/sh/sh.md (*rotcr): Use arith_reg_or_t_reg_operand predicate. 10590 Handle the case where one of the operands is T_REG. 10591 Add new pattern to handle MSB extraction. 10592 105932012-09-19 Oleg Endo <olegendo@gcc.gnu.org> 10594 10595 PR target/54236 10596 * config/sh/sh.md (*addc): Add pattern to handle one bit left shifts. 10597 105982012-09-19 Oleg Endo <olegendo@gcc.gnu.org> 10599 10600 * config/sh/sh.md (prologue, epilogue): Use braced strings. 10601 106022012-09-19 Eric Botcazou <ebotcazou@adacore.com> 10603 10604 PR rtl-optimization/54290 10605 * reload1.c (choose_reload_regs): Also take into account secondary MEMs 10606 to remove address replacements for inherited reloads. 10607 (replaced_subreg): Move around. 10608 106092012-09-19 David Edelsohn <dje.gcc@gmail.com> 10610 10611 * config/rs6000/aix61.h (TARGET_DEFAULT): Add MASK_PPC_GPOPT, 10612 MASK_PPC_GFXOPT, and MASK_MFCRF. 10613 106142012-09-19 Richard Guenther <rguenther@suse.de> 10615 10616 * passes.c (init_optimization_passes): For -Og move 10617 pass_object_sizes inbetween CCP and copyprop. 10618 106192012-09-19 Richard Guenther <rguenther@suse.de> 10620 10621 * tree-ssa-forwprop.c (get_prop_source_stmt): Simplify. 10622 106232012-09-19 Jan Hubicka <jh@suse.cz> 10624 10625 * symtab.c (insert_to_assembler_name_hash): Do not insert 10626 register vars. 10627 (unlink_from_assembler_name_hash): NULL out pointers of unlinked var. 10628 (symtab_prevail_in_asm_name_hash): New. 10629 (symtab_initialize_asm_name_hash): Break out from ... 10630 (symtab_node_for_asm): ... here. 10631 (dump_symtab_base): Dump LTO file data. 10632 (verify_symtab_base): Register vars are not in symtab. 10633 * cgraph.h (symtab_initialize_asm_name_hash, 10634 symtab_prevail_in_asm_name_hash): New functions. 10635 (symtab_real_symbol_p): New inline. 10636 * lto-symtab.c: Do not include gt-lto-symtab.h. 10637 (lto_symtab_entry_def): Remove. 10638 (lto_symtab_entry_t): Remove. 10639 (lto_symtab_identifiers): Remove. 10640 (lto_symtab_free): Remove. 10641 (lto_symtab_entry_hash): Remove. 10642 (lto_symtab_entry_eq): Remove. 10643 (lto_symtab_entry_marked_p): Remove. 10644 (lto_symtab_maybe_init_hash_table): Remove. 10645 (resolution_guessed_p, set_resolution_guessed): New functions. 10646 (lto_symtab_register_decl): Only set resolution info. 10647 (lto_symtab_get, lto_symtab_get_resolution): Remove. 10648 (lto_symtab_merge): Reorg to work across symtab; do nothing if decls 10649 are same. 10650 (lto_symtab_resolve_replaceable_p): Reorg to work on symtab. 10651 (lto_symtab_resolve_can_prevail_p): Likewise; only real symbols can 10652 prevail. 10653 (lto_symtab_resolve_symbols): Reorg to work on symtab. 10654 (lto_symtab_merge_decls_2): Likewise. 10655 (lto_symtab_merge_decls_1): Likewise; add debug dumps. 10656 (lto_symtab_merge_decls): Likewise; do not merge at ltrans stage. 10657 (lto_symtab_merge_cgraph_nodes_1): Reorg to work on symtab. 10658 (lto_symtab_merge_cgraph_nodes): Likewise; do not merge at ltrans 10659 stage. 10660 (lto_symtab_prevailing_decl): Rewrite to lookup into symtab. 10661 * lto-streaer.h (lto_symtab_free): Remove. 10662 * lto-cgraph.c (add_references): Cleanup. 10663 * varpool.c (varpool_assemble_decl): Skip hard regs. 10664 106652012-09-19 Richard Guenther <rguenther@suse.de> 10666 10667 PR other/53316 10668 * common/common-target.h (OPT_LEVELS_1_PLUS_NOT_DEBUG): Add. 10669 106702012-09-19 Richard Guenther <rguenther@suse.de> 10671 10672 PR other/53316 10673 * common.opt (optimize_debug): New variable. 10674 (Og): New optimization level. 10675 * doc/invoke.texi (Og): Document. 10676 * opts.c (maybe_default_option): Add debug parameter. 10677 (maybe_default_options): Likewise. 10678 (default_options_optimization): Handle -Og. 10679 (common_handle_option): Likewise. 10680 * passes.c (gate_all_optimizations): Do not run with -Og. 10681 (gate_all_optimizations_g): New gate, run with -Og. 10682 (pass_all_optimizations_g): New container pass, run with -Og. 10683 (init_optimization_passes): Schedule pass_all_optimizations_g 10684 alongside pass_all_optimizations. 10685 106862012-09-19 Richard Guenther <rguenther@suse.de> 10687 10688 PR tree-optimization/54132 10689 * tree-loop-distribution.c (classify_partition): Properly 10690 check dependences for memmove. 10691 * tree-data-ref.h (compute_affine_dependence): Declare. 10692 * tree-data-ref.c (compute_affine_dependence): Export. 10693 106942012-09-19 Zhenqiang Chen <zhenqiang.chen@arm.com> 10695 10696 PR middle-end/54364 10697 * bb-reorder.c (connect_better_edge_p): New added. 10698 (find_traces_1_round): When optimizing for size, ignore edge frequency 10699 and probability, and handle all in one round. 10700 (bb_to_key): Use bb->index as key when optimizing for size. 10701 (better_edge_p): The bb with smaller index is better when optimizing 10702 for size. 10703 (connect_traces): When optimizing for size, connect block n with 10704 block n + 1; connect trace m with trace m + 1 if falling through. 10705 (gate_handle_reorder_blocks): Enable bbro when optimizing for -Os. 10706 107072012-09-19 Bin Cheng <bin.cheng@arm.com> 10708 10709 * fold-const.c (fold_truth_andor): Remove duplicated check on 10710 BRANCH_COST. 10711 107122012-09-18 Eric Botcazou <ebotcazou@adacore.com> 10713 10714 PR middle-end/54617 10715 * expr.c (store_field): Handle a PARALLEL in more cases. 10716 107172012-09-18 Segher Boessenkool <segher@kernel.crashing.org> 10718 10719 * config/rs6000/rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): Delete. 10720 (abssi2, abs<mode>2_isel, nabs<mode>2_isel, abssi2_nopower, 10721 nabs_nopower): Delete. 10722 (absdi2, absdi2_internal, nabsdi2): Delete. 10723 (smindi3, smaxdi3, umindi3, umaxdi3): Delete. 10724 107252012-09-18 Georg-Johann Lay <avr@gjlay.de> 10726 10727 * config/avr/avr.md: Tidy up empty "". Fix C code indentation. 10728 * config/avr/avr-fixed.md: Ditto. 10729 107302012-09-18 Maciej W. Rozycki <macro@codesourcery.com> 10731 10732 * config/rs6000/rs6000.c (print_operand) <'c'>: Remove. 10733 * config/rs6000/spe.md: Remove a leftover comment. 10734 107352012-09-18 Jakub Jelinek <jakub@redhat.com> 10736 10737 PR target/54592 10738 * config/i386/i386.c (ix86_rtx_costs): Limit > UNITS_PER_WORD 10739 AND/IOR/XOR cost calculation to MODE_INT class modes. 10740 107412012-09-18 Thomas Quinot <quinot@adacore.com> 10742 10743 * doc/invoke.texi: Document -fada-spec-parent. 10744 107452012-09-18 Jakub Jelinek <jakub@redhat.com> 10746 10747 PR tree-optimization/54610 10748 * tree-ssa-forwprop.c: Include optabs.h. Don't include 10749 tree-vectorizer.h. 10750 (simplify_vector_constructor): Don't use vect_gen_perm_mask, 10751 instead create the mask constant here. 10752 * Makefile.in (tree-ssa-forwprop.o): Depend on $(OPTABS_H). 10753 Don't depend on $(TREE_VECTORIZER_H). 10754 107552012-09-18 Florian Weimer <fweimer@redhat.com> 10756 10757 * Makefile.in (BASIC_BLOCK_H): Add cfg-flags.def. 10758 107592012-09-18 Richard Guenther <rguenther@suse.de> 10760 10761 * statistics.h (CXX_MEM_STAT_INFO): New define. 10762 * gimple.h (gimple_build_assign_with_ops_stat, 10763 gimple_build_assign_with_ops, gimple_build_assign_with_ops3): 10764 Turn into an overload of the function gimple_build_assign_with_ops. 10765 * gimple.c (gimple_build_assign_with_ops_stat): Rename to ... 10766 (gimple_build_assign_with_ops): ... this. 10767 * tree-ssa-loop-im.c (move_computations_stmt): Adjust. 10768 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise. 10769 * tree-vect-data-refs.c (vect_permute_store_chain): Likewise. 10770 (vect_permute_load_chain): Likewise. 10771 * tree-vect-generic.c (expand_vector_divmod): Likewise. 10772 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise. 10773 (vect_recog_divmod_pattern): Likewise. 10774 (vect_recog_mixed_size_cond_pattern): Likewise. 10775 (adjust_bool_pattern): Likewise. 10776 * tree-vect-slp.c (vect_create_mask_and_perm): Likewise. 10777 * tree-vect-stmts.c (vectorizable_operation): Likewise. 10778 (permute_vec_elements): Likewise. 10779 (vectorizable_load): Likewise. 10780 107812012-09-17 Paul Koning <ni1d@arrl.net> 10782 10783 * doc/invoke.text (-feliminate-unused-debug-types): Update to 10784 reflect that this is enabled by default. 10785 107862012-09-17 Ben Cheng <bccheng@google.com 10787 10788 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Suppress the 10789 dynamic linker commands for statically linked programs. 10790 107912012-09-17 Ulrich Weigand <ulrich.weigand@linaro.org> 10792 10793 * config/arm/arm.c (arm_rtx_costs_1): Handle vec_extract and vec_set 10794 patterns. 10795 * config/arm/arm.md ("vec_set<mode>_internal"): Support memory source 10796 operands, implemented via vld1 instruction. 10797 ("vec_extract<mode>"): Support memory destination operands, implemented 10798 via vst1 instruction. 10799 ("neon_vst1_lane<mode>"): Use UNSPEC_VST1_LANE instead of vec_select. 10800 * config/arm/predicates.md ("neon_lane_number"): Remove. 10801 108022012-09-17 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 10803 Ulrich Weigand <ulrich.weigand@linaro.org> 10804 10805 * config/arm/arm.c (output_move_neon): Update comment. 10806 Use vld1.64/vst1.64 instead of vldm/vstm where possible. 10807 (neon_vector_mem_operand): Support double-word modes. 10808 * config/arm/neon.md (*neon_mov VD): Call output_move_neon 10809 instead of output_move_vfp. Change constraint from Uv to Un. 10810 108112012-09-17 Richard Guenther <rguenther@suse.de> 10812 10813 PR lto/54598 10814 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Use ggc'ed 10815 FIXED_VALUE_TYPE instead of struct fixed_value. 10816 108172012-09-17 Georg-Johann Lay <avr@gjlay.de> 10818 10819 * config/avr/avr.c (CONST_FIXED_P): Remove define. 10820 * config/avr/avr.md (add<mode>3): Use CONST_FIXED_P. 10821 108222012-09-17 Georg-Johann Lay <avr@gjlay.de> 10823 10824 PR target/54607 10825 * config.gcc (tm_file,avr): Add avr/avr-arch.h. 10826 * config/avr/t-avr (gen-avr-mmcu-texi): Use CC_FOR_BUILD to 10827 compile. Don't depend on TM_H. Use CFLAGS_FOR_BUILD. 10828 * config/avr/avr.h (avr_arch, base_arch_s, mcu_type_s): Source out 10829 to... 10830 * config/avr/avr-arch.h: ...this new file. 10831 * config/avr/gen-avr-mmcu-texi.c: Include avr-arch.h, stdio.h, 10832 stdlib.h. 10833 * comparator: Make letters smaller than digits. 10834 * config/avr/avr-devices.c: Don't include headers if used in 10835 gen-avr-mmcu-texi.c. 10836 * doc/avr-mmcu.texi: Regenerate. 10837 108382012-09-17 Georg-Johann Lay <avr@gjlay.de> 10839 10840 * rtl.h (CONST_FIXED_P): New predicate macro. 10841 108422012-09-17 Eric Botcazou <ebotcazou@adacore.com> 10843 10844 * tree-cfgcleanup. (cleanup_control_expr_graph) <GIMPLE_COND>: Remove 10845 code doing propagation from degenerate PHI nodes. 10846 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): New function. 10847 (propagate_constants_for_unrolling): Likewise. 10848 (tree_unroll_loops_completely): If the current loop has been unrolled 10849 and its father isn't the entire function, propagate constants within 10850 the new basic blocks by means of propagate_constants_for_unrolling. 10851 108522012-09-17 Jakub Jelinek <jakub@redhat.com> 10853 10854 PR tree-optimization/54563 10855 * tree-ssa-math-opts.c (execute_cse_sincos): Call 10856 gimple_purge_dead_eh_edges if last call has been changed. 10857 108582012-09-17 Georg-Johann Lay <avr@gjlay.de> 10859 10860 PR target/54222 10861 * config/avr/avr.c (avr_out_plus_symbol): Fix typo if PLUS and PSImode. 10862 (avr_out_plus_1): Remove log comments from assembler output. 10863 108642012-09-17 Ruben Buchatskiy <ruben@ispras.ru> 10865 10866 * config/arm/vfp.md (*thumb2_movdf_vfp): Require one of the operands 10867 to be a register. 10868 108692012-09-16 Richard Sandiford <rdsandiford@googlemail.com> 10870 10871 * calls.c (expand_call): Use emit_group_move for PARALLEL->PARALLEL 10872 moves. 10873 108742012-09-15 Tom de Vries <tom@codesourcery.com> 10875 10876 * tree-vrp.c (extract_range_from_binary_expr_1): Fix bug in handling of 10877 LSHIFT_EXPR with shift range. Handle more LSHIFT_EXPR cases with shift 10878 range. 10879 108802012-09-15 Georg-Johann Lay <avr@gjlay.de> 10881 10882 PR target/54222 10883 * config/avr/avr-fixed.md (ALL2S, ALL4S, ALL24S, ALL124S, 10884 ALL124U): New mode iterators. 10885 (<code_stdname><mode>3): New insns for SS_PLUS, SS_MINUS. 10886 (<code_stdname><mode>3): New insns for US_PLUS, US_MINUS. 10887 (usneg<mode>2): New insns. 10888 (<code_stdname><mode>2): New expanders for SS_NEG, SS_ABS. 10889 (*<code_stdname><mode>2): New insns for SS_NEG, SS_ABS. 10890 * config/avr/avr-dimode.md (ALL8U, ALL8S): New mode iterators. 10891 (avr_out_plus64, avr_out_minus64): Use avr_out_plus instead. 10892 (<code_stdname><mode>3): New expanders for SS_PLUS, SS_MINUS. 10893 (<code_stdname><mode>3): New expanders for US_PLUS, US_MINUS. 10894 (<code_stdname><mode>3_insn): New insns. 10895 (<code_stdname><mode>3_const_insn): New insns. 10896 * config/avr/avr.md (cc): Add: plus. Remove: out_plus, 10897 out_plus_noclobber, minus. 10898 (length): Add: plus. Remove: out_plus, out_plus_noclobber, 10899 plus64, minus, minus64. 10900 (abelian): New code_attr. 10901 (code_stdname): Handle: ss_plus, ss_minus, ss_neg, ss_abs, 10902 us_plus, us_minus, us_neg. 10903 (*add<mode>3, add<mode>3_clobber, add<mode>3, addpsi3, sub<mode>3): 10904 Use avr_out_plus to output. 10905 * config/avr/avr-protos.h (avr_out_plus): Change prototype. 10906 (avr_out_plus_noclobber, avr_out_minus): Remove. 10907 (avr_out_plus64, avr_out_minus64): Remove. 10908 * config/avr/avr.c (avr_out_plus_1): Add new default arguments 10909 code_sat, sign. Saturate after operation if code_sat != UNKNOWN. 10910 (avr_out_plus_symbol): New static function. 10911 (avr_out_plus): Rewrite. 10912 (adjust_insn_length): Handle: ADJUST_LEN_PLUS. Remove handling 10913 of: ADJUST_LEN_OUT_PLUS, ADJUST_LEN_PLUS64, ADJUST_LEN_MINUS, 10914 ADJUST_LEN_MINUS64, ADJUST_LEN_OUT_PLUS_NOCLOBBER. 10915 (notice_update_cc): Handle: CC_PLUS. Remove handling of: CC_MINUS, 10916 CC_OUT_PLUS, CC_OUT_PLUS_NOCLOBBER 10917 (avr_out_plus_noclobber, avr_out_minus): Remove. 10918 (avr_out_plus64, avr_out_minus64): Remove. 10919 (avr_print_operand): Print raw REGNO if 'r' is used with REG. 10920 109212012-09-15 Oleg Endo <olegendo@gcc.gnu.org> 10922 10923 * config/sh/sh.c (sh_rtx_costs): Add handling of MEM, SIGN_EXTEND, 10924 ZERO_EXTEND and PARALLEL cases. 10925 (sh_address_cost): Correct rtx parsing and tweak cost estimations. 10926 109272012-09-14 Sandra Loosemore <sandra@codesourcery.com> 10928 10929 * doc/tm.texi.in (Stack Arguments): Update obsolete references 10930 to current_function_outgoing_args_size. 10931 (Function Entry): Likewise for current_function_pops_args, 10932 current_function_pretend_args_size, 10933 current_function_outgoing_args_size, and 10934 current_function_epilogue_delay_list. 10935 (Misc): Fix garbled sentence referencing nonexistent 10936 current_function_leaf_function. 10937 * doc/tm.texi: Regenerated. 10938 109392012-09-14 Dehao Chen <dehao@google.com> 10940 10941 * tree-eh.c (goto_queue_node): New field. 10942 (record_in_goto_queue): New parameter. 10943 (record_in_goto_queue_label): New parameter. 10944 (lower_try_finally_dup_block): New parameter. 10945 (maybe_record_in_goto_queue): Update source location. 10946 (lower_try_finally_copy): Likewise. 10947 (honor_protect_cleanup_actions): Likewise. 10948 * gimplify.c (gimplify_expr): Reset the location to unknown. 10949 109502012-09-14 David Edelsohn <dje.gcc@gmail.com> 10951 10952 * configure: Regenerated. 10953 109542012-09-14 Walter Lee <walt@tilera.com> 10955 10956 * doc/invoke.texi (Option Summary): fix typesetting for -mcpu 10957 option for TILEPro and TILE-Gx. 10958 (TILE-Gx Options): Fix grammar and spellings in documentation for 10959 -mcmodel. 10960 109612012-09-14 Marc Glisse <marc.glisse@inria.fr> 10962 10963 PR c++/54427 10964 * fold-const.c (fold_unary_loc): Disable for VECTOR_TYPE. 10965 (fold_binary_loc): Likewise. 10966 * gimple-fold.c (and_comparisons_1): Handle VECTOR_TYPE. 10967 (or_comparisons_1): Likewise. 10968 109692012-09-14 Richard Earnshaw <rearnsha@arm.com> 10970 10971 PR target/54516 10972 PR rtl-optimization/54540 10973 * reload.c (find_dummy_reload): Don't use OUT as a reload reg 10974 for IN if it overlaps a fixed register. 10975 109762012-09-14 Eric Botcazou <ebotcazou@adacore.com> 10977 10978 PR rtl-optimization/44194 10979 * calls.c (expand_call): In the PARALLEL case, copy the return value 10980 into pseudos instead of spilling it onto the stack. 10981 * emit-rtl.c (adjust_address_1): Rename ADJUST into ADJUST_ADDRESS and 10982 add new ADJUST_OBJECT parameter. 10983 If ADJUST_OBJECT is set, drop the underlying object if it cannot be 10984 proved that the adjusted memory access is still within its bounds. 10985 (adjust_automodify_address_1): Adjust call to adjust_address_1. 10986 (widen_memory_access): Likewise. 10987 * expmed.c (store_bit_field_1): Call adjust_bitfield_address instead 10988 of adjust_address. Do not drop the underlying object of a MEM. 10989 (store_fixed_bit_field): Likewise. 10990 (extract_bit_field_1): Likewise. Fix oversight in recursion. 10991 (extract_fixed_bit_field): Likewise. 10992 * expr.h (adjust_address_1): Adjust prototype. 10993 (adjust_address): Adjust call to adjust_address_1. 10994 (adjust_address_nv): Likewise. 10995 (adjust_bitfield_address): New macro. 10996 (adjust_bitfield_address_nv): Likewise. 10997 * expr.c (expand_assignment): Handle a PARALLEL in more cases. 10998 (store_expr): Likewise. 10999 (store_field): Likewise. 11000 11001 * dse.c: Fix typos in the head comment. 11002 110032012-09-14 Christian Bruel <christian.bruel@st.com> 11004 11005 PR target/54546 11006 * config/sh/sh-protos.h (sh_need_epilogue): Delete. 11007 (sh_can_use_simple_return_p): Declare. 11008 * config/sh/sh.c (sh_can_use_simple_return_p): Define. 11009 (sh_need_epilogue, sh_need_epilogue_known): Delete. 11010 (sh_output_function_epilogue): Remove sh_need_epilogue_known. 11011 * config/sh/sh.md (simple_return, return): Define. 11012 (epilogue): Use inline return rtl. 11013 (sh_expand_epilogue): Cleanup parameters boolean type. 11014 * config/sh/iterators.md (any_return): New iterator. 11015 110162012-09-14 Christian Bruel <christian.bruel@st.com> 11017 11018 * config/sh/predicates.md (t_reg_operand): Check REG_P for SUBREG. 11019 * config/sh/sh.c (sequence_insn_p): Check INSNP_P for SEQUENCE. 11020 110212012-09-14 Jakub Jelinek <jakub@redhat.com> 11022 11023 PR target/54564 11024 * config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1) 11025 instead of (match_dup 0) as second argument to vec_merge. 11026 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise. 11027 Remove third alternative. 11028 (*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise. Negate 11029 operand 2 instead of operand 1, but put it as first argument of fma. 11030 * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss, 11031 _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead 11032 of the first. 11033 110342012-09-14 Richard Guenther <rguenther@suse.de> 11035 11036 PR tree-optimization/54565 11037 * passes.c (init_optimization_passes): Adjust comments. 11038 (execute_function_todo): Do not execute execute_update_addresses_taken 11039 before processing TODO_rebuild_alias. 11040 * tree-ssa-ccp.c (do_ssa_ccp): Schedule TODO_update_address_taken. 11041 110422012-09-14 Richard Guenther <rguenther@suse.de> 11043 11044 * tree-vrp.c (register_new_assert_for): Simplify for backward walk. 11045 (find_assert_locations_1): Walk the basic-block backwards, properly 11046 add/prune from live. Use live for asserts derived from stmts. 11047 110482012-09-14 Marc Glisse <marc.glisse@inria.fr> 11049 11050 * tree-ssa-forwprop.c (simplify_bitfield_ref): Call 11051 get_prop_source_stmt. 11052 (simplify_permutation): Likewise. 11053 (simplify_vector_constructor): Likewise. 11054 110552012-09-14 Richard Guenther <rguenther@suse.de> 11056 11057 * builtin-types.def (BT_FN_CONST_STRING): Add. 11058 * builtins.def (BUILT_IN_FILE, BUILT_IN_FUNCTION, 11059 BUILT_IN_LINE): New builtins. 11060 * gimplify.c (gimplify_call_expr): Expand them. 11061 * doc/extend.texi (__builtin_LINE, __builtin_FUNCTION, 11062 __builtin_FILE): Document. 11063 110642012-09-13 Anthony Green <green@moxielogic.com> 11065 11066 * config/moxie/moxie.h (LINK_SPEC): Add bi-endian support. 11067 (MULTILIB_DEFAULTS): Define. 11068 (ASM_SPEC): Define. 11069 (BYTES_BIG_ENDIAN, WORDS_BIG_ENDIAN): Add bi-endian support. 11070 (TARGET_CPU_CPP_BUILTINS): Add __MOXIE_LITTLE_ENDIAN__ and 11071 __MOXIE_BIG_ENDIAN__. 11072 * config/moxie/t-moxie (MULTILIB_DIRNAMES, MULTILIB_OPTIONS): Define. 11073 * config/moxie/moxie.opt: New file. 11074 * doc/invoke.texi (Moxie Options): Add section documenting -mel 11075 and -meb. 11076 110772012-09-13 Paolo Carlini <paolo.carlini@oracle.com> 11078 Manuel López-Ibáñez <manu@gcc.gnu.org> 11079 11080 PR c++/53210 11081 * doc/invoke.texi ([Winit-self]): Document as enabled by -Wall in C++. 11082 110832012-09-13 Eric Botcazou <ebotcazou@adacore.com> 11084 11085 * config/sparc/predicates.md (input_operand): Do not consider TImode 11086 constants as 1-instruction integer constants. 11087 Use register_or_zero_operand instead of register_operand and tidy up. 11088 * config/sparc/sparc.md (movti): New expander. 11089 (movti_insn_sp64): New instruction. 11090 (movti_insn_sp64_hq): Likewise. 11091 (TImode splitters): New splitters. 11092 * config/sparc/sparc.c (sparc_expand_move) <TImode>: New case. 11093 (sparc_legitimate_address_p): Return 0 for REG+REG in TImode. 11094 11095 * config/sparc/sparc-protos.h (arith_double_4096_operand): Delete. 11096 (arith_4096_operand): Likewise. 11097 (zero_operand): Likewise. 11098 (fp_zero_operand): Likewise. 11099 (reg_or_0_operand): Likewise. 11100 111012012-09-13 Jakub Jelinek <jakub@redhat.com> 11102 11103 * configure.ac (CXXFLAGS): Remove -O2 when not bootstrapping. 11104 * configure: Regenerated. 11105 111062012-08-13 Uros Bizjak <ubizjak@gmail.com> 11107 11108 * config/i386/i386.md (prefetch): Do not assert mode of operand 0. 11109 (*prefetch_sse_<mode>): Do not set mode of address_operand predicate. 11110 Rename to ... 11111 (*prefetch_sse): ... this. 11112 (*prefetch_3dnow_<mode>): Do not set mode of address_operand predicate. 11113 Rename to ... 11114 (*prefetch_3dnow): ... this. 11115 111162012-09-13 Steven Bosscher <steven@gcc.gnu.org> 11117 11118 * ipa-pure-const.c (state_from_flags, local_pure_const): Use 11119 current_function_name instead of lang_hooks.decl_printable_name. 11120 11121 * function.h (fndecl_name): New prototype. 11122 * function.c (fndecl_name): New function. 11123 * vecir.h (cgraph_node_p): New standard IR VEC type. 11124 * trans-mem.c (cgraph_node_p): No need anymore to define it here. 11125 * ipa-utils.h (ipa_get_nodes_in_cycle): New prototype. 11126 * ipa-utils.c (ipa_get_nodes_in_cycle): New function. 11127 * ipa-reference.c: Don't include langhooks.h, and certainly not twice. 11128 Fix many formatting issues (long lines, short lines, spacing, etc.). 11129 (get_static_name): Use fndecl_name. 11130 (dump_static_vars_set_to_file): New function split out from propagate. 11131 (union_static_var_sets): New function, union two sets and collapse 11132 to all_module_statics as quickly as possible. 11133 (intersect_static_var_sets): New function, similar to above. 11134 (copy_static_var_set): Renamed from copy_global_bitmap and rewritten 11135 to allocate a copy on the same bitmap_obstack as the source set. 11136 (propagate_bits): Simplify, and clarify by using union_static_var_sets. 11137 (generate_summary): Remove bm_temp. Print UID of promotable globals. 11138 (read_write_all_from_decl): Use pass-by-reference, bless C++. 11139 (get_read_write_all_from_node): New function, split out from propagate. 11140 (propagate): Simplify and clarify with helper functions. Use 11141 ipa_get_nodes_in_cycle to walk all nodes in a reduced node. 11142 (ipa_reference_read_optimization_summary): Use fndecl_name instead of 11143 lang_hooks.decl_printable_name. 11144 11145 * rtl.h (print_rtl_single_with_indent): New prototype. 11146 * print-rtl.c (print_rtl_single_with_indent): New function. 11147 * cfghooks.h (empty_block_p, split_block_before_cond_jump): New hooks. 11148 * cfghooks.c (empty_block_p, split_block_before_cond_jump): Implement. 11149 * cfgrtl.c (rtl_block_empty_p, rtl_split_block_before_cond_jump): 11150 Implement RTL specific hooks. 11151 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Register the new hooks. 11152 * tree-cfg.c (gimple_empty_block_p, 11153 gimple_split_block_before_cond_jump): Implement GIMPLE specific hooks. 11154 (gimple_cfg_hooks): Register the new hooks. 11155 * tree-ssa-phiopt.c (empty_block_p): Remove in favor of new hook. 11156 111572012-09-13 Richard Guenther <rguenther@suse.de> 11158 11159 * tree-ssa-sccvn.h (enum vn_kind): New. 11160 (vn_get_stmt_kind): Likewise. 11161 * tree-ssa-sccvn.c (vn_get_stmt_kind): New function, adjust 11162 ADDR_EXPR handling. 11163 (visit_use): Use it. 11164 * tree-ssa-pre.c (compute_avail): Likewise, simplify further. 11165 111662012-09-13 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 11167 11168 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW 11169 for targets bdver1, bdver2, btver1 and btver2. 11170 111712012-09-13 Christophe Lyon <christophe.lyon@linaro.org> 11172 Richard Earnshaw <rearnsha@arm.com> 11173 11174 * config/arm/arm.md (arm_rev): Factorize thumb1, thumb2 and arm 11175 variants for rev instruction.. 11176 (thumb1_rev): Delete pattern. 11177 (arm_revsh): New pattern to support builtin_bswap16. 11178 (arm_rev16, bswaphi2): Likewise. 11179 111802012-09-12 Teresa Johnson <tejohnson@google.com> 11181 11182 PR gcov-profile/54487 11183 * configure.ac (HOST_HAS_F_SETLKW): Set based on compile 11184 test using F_SETLKW with fcntl. 11185 * configure, config.in: Regenerate. 11186 111872012-09-12 Jan Hubicka <jh@suse.cz> 11188 11189 PR fortran/48636 11190 * ipa-inline-analysis.c (dump_inline_hints): Dump loop stride. 11191 (set_hint_predicate): New function. 11192 (reset_inline_summary): Reset loop stride. 11193 (remap_predicate_after_duplication): New function. 11194 (remap_hint_predicate_after_duplication): New function. 11195 (inline_node_duplication_hook): Update. 11196 (dump_inline_summary): Dump stride summaries. 11197 (estimate_function_body_sizes): Compute strides. 11198 (remap_hint_predicate): New function. 11199 (inline_merge_summary): Use it. 11200 (inline_read_section): Read stride. 11201 (inline_write_summary): Write stride. 11202 * ipa-inline.c (want_inline_small_function_p): Handle strides. 11203 (edge_badness): Likewise. 11204 * ipa-inline.h (inline_hints_vals): Add stride hint. 11205 (inline_summary): Update stride. 11206 112072012-09-12 Uros Bizjak <ubizjak@gmail.com> 11208 11209 * config/i386/i386.c (x86_prefetch_sse): Change to unsigned char. 11210 * config/i386/i386.h (x86_prefetch_sse): Ditto. 11211 112122012-09-12 H.J. Lu <hongjiu.lu@intel.com> 11213 11214 PR target/54445 11215 * config/i386/predicates.md (x86_64_immediate_operand): Allow 11216 negative offset for UNSPEC_DTPOFF/UNSPEC_NTPOFF. 11217 112182012-09-12 Jan Hubicka <jh@suse.cz> 11219 11220 * common.opt (flto-partition): Add "max". 11221 * invoke.texi (flto-partition): Document "max" 11222 112232012-09-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 11224 11225 * config/i386/i386.md : Comments on fma4 instruction selection 11226 reflect requirement on register pressure based cost model. 11227 11228 * config/i386/driver-i386.c (host_detect_local_cpu): fma4 11229 flag is set-reset as informed by the cpuid flag. 11230 11231 * config/i386/i386.c (processor_alias_table): fma4 11232 flag is enabled for bdver2. 11233 112342012-09-12 Richard Guenther <rguenther@suse.de> 11235 11236 PR tree-optimization/54489 11237 * tree-ssa-pre.c: Include domwalk.h. 11238 (in_fre): Remove. 11239 (sccvn_valnum_from_value_id): New function. 11240 (debug_bitmap_sets_for): Simplify. 11241 (get_representative_for): Properly initialize the SCCVN valnum. 11242 (create_expression_by_pieces): Likewise. 11243 (insert_into_preds_of_block): Likewise. 11244 (can_PRE_operation): Remove. 11245 (make_values_for_phi): Simplify. 11246 (compute_avail): Likewise. 11247 (do_SCCVN_insertion): Remove. 11248 (eliminate_avail, eliminate_push_avail, eliminate_insert): 11249 New functions. 11250 (eliminate): Split and perform a domwalk. 11251 (eliminate_bb): Former eliminate part that is now dom-enter. 11252 (eliminate_leave_block): New function. 11253 (fini_eliminate): Likewise. 11254 (init_pre): Simplify. 11255 (fini_pre): Likewise. 11256 (execute_pre): Fold into do_pre and do_fre. 11257 (do_pre): Consume execute_pre. 11258 (do_fre): Likewise. 11259 * Makefile.in (tree-ssa-pre.o): Add domwalk.h dependency. 11260 112612012-09-12 Diego Novillo <dnovillo@google.com> 11262 11263 * vec.h: Remove compatibility notes for previous distinction 11264 between vectors of objects and vectors of pointers. 11265 112662012-09-12 Christian Bruel <christian.bruel@st.com> 11267 11268 * config/sh/newlib.h (NO_IMPLICIT_EXTERN_C): Define. 11269 112702012-09-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 11271 11272 * rtl.h (FFS, FLOAT, ABS, PC): Don't undef. 11273 * system.h (FFS, FLOAT, ABS, PC): Undef. 11274 112752012-09-12 Richard Guenther <rguenther@suse.de> 11276 11277 PR middle-end/54553 11278 * common.opt (finline): Mark with Optimization. 11279 112802012-09-12 Jakub Jelinek <jakub@redhat.com> 11281 11282 * config.gcc: Obsolete picochip-*. 11283 112842012-09-12 Nathan Froyd <froydnj@gcc.gnu.org> 11285 Hans-Peter Nilsson <hp@bitrange.com> 11286 11287 * config/mmix/mmix.h (MMIX_REG_OK_STRICT): Delete. 11288 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P): Delete. 11289 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete. 11290 * config/mmix/mmix-protos.h (mmix_intval): Declare. 11291 (mmix_const_ok_for_letter_p, mmix_extra_constraint): Delete. 11292 (mmix_const_double_ok_for_letter_p): Delete. 11293 * config/mmix/constraints.md: New file. 11294 * config/mmix/mmix.md: Include it. 11295 (iordi3): Fix typo; use "I" instead of undefined "H" constraint. 11296 ("*call_real"): Update comment about not using the "p" constraint. 11297 * config/mmix/predicates.md (mmix_reg_or_8bit_operand): Use 11298 satisfies_constraint_I. 11299 (mmix_address_operand): New predicate. 11300 (mmix_symbolic_or_address_operand): Use it instead of address_operand. 11301 * config/mmix/mmix.c: #include tm-constrs.h. 11302 (mmix_intval): Delete declaration. Make non-static. 11303 (mmix_const_ok_for_letter_p, mmix_extra_constraint): Delete. 11304 (mmix_const_double_ok_for_letter_p): Delete. 11305 (mmix_legitimate_address_p): Use satisfies_constraint_I. 11306 (mmix_print_operand_address): Likewise. 11307 (mmix_emit_sp_add): Adjust to use insn_const_int_ok_for_constraint 11308 when matching "L" constraint. 11309 113102012-09-11 Steven Bosscher <steven@gcc.gnu.org> 11311 11312 * tree.h (expand_case): Move prototype ... 11313 * expr.h (expand_case): ...here. 11314 (expand_sjlj_dispatch_table): New prototype. 11315 * stmt.c: Include pointer-set.h instead of bitmap.h. 11316 (expand_case): Use a pointer set instead of a bitmap for 11317 already-seen labels. Fold label values here. 11318 (add_case_node): Don't fold label values here. 11319 (expand_sjlj_dispatch_table): New function. 11320 * except.c (sjlj_emit_dispatch_table): Use it. 11321 113222012-09-11 Marc Glisse <marc.glisse@inria.fr> 11323 11324 * tree-ssa-forwprop.c (simplify_vector_constructor): New function. 11325 (ssa_forward_propagate_and_combine): Call it. 11326 113272012-09-11 Diego Novillo <dnovillo@google.com> 11328 11329 * var-tracking.c (vt_add_function_parameter): Adjust for VEC changes. 11330 113312012-09-11 Dominique Dhumieres <dominiq@lps.ens.fr> 11332 11333 * config/darwin.c (darwin_asm_named_section): Adjust for VEC changes. 11334 (darwin_asm_dwarf_section): Likewise. 11335 113362012-09-11 Martin Jambor <mjambor@suse.cz> 11337 11338 * dwarf2out.c (dwarf2out_abstract_function): Do not change cfun. 11339 (premark_used_types): New parameter fun, use it instead of cfun. 11340 (gen_subprogram_die): Use DECL_STRUCT_FUNCTION (decl) instead of cfun, 11341 also pass it to premark_used_types. 11342 113432012-09-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 11344 11345 * doc/sourcebuild.texi (arm_neon_v2_ok): Adjust command line. 11346 113472012-09-11 Tobias Burnus <burnus@net-b.de> 11348 11349 * doc/sourcebuild.texi (arm_neon_v2_ok): Fix @anchor. 11350 113512012-09-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 11352 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 11353 11354 * config/arm/neon.md (fma<VCVTF:mode>4): New pattern. 11355 (*fmsub<VCVTF:mode>4): Likewise. 11356 * doc/sourcebuild.texi (arm_neon_v2_ok, arm_neon_v2_hw): Document it. 11357 113582012-09-11 Aldy Hernandez <aldyh@redhat.com> 11359 11360 PR middle-end/54149 11361 * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set): Only set 11362 flag for writes. 11363 113642012-09-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 11365 11366 PR tree-optimization/55492 11367 * doc/invoke.texi (max-slsr-cand-scan): New description. 11368 * gimple-ssa-strength-reduction.c (find_basis_for_candidate): Limit 11369 the time spent searching for a basis. 11370 * params.def (PARAM_MAX_SLSR_CANDIDATE_SCAN): New param. 11371 113722012-09-11 Richard Guenther <rguenther@suse.de> 11373 11374 * gimple.h (gimple_register_type): Remove. 11375 (print_gimple_types_stats): Adjust prototype. 11376 * lto-streamer.h (print_lto_report): Likewise. 11377 * lto-streamer.c (print_lto_report): Adjust. 11378 * gimple.c (gimple_types, type_hash_cache, enum gtc_mode, 11379 struct type_pair_d, lookup_type_pair, struct sccs, 11380 next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s, 11381 gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p, 11382 gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p, 11383 visit, iterative_hash_name, struct type_hash_pair, 11384 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash, 11385 gimple_type_eq, gimple_register_type_1, gimple_register_type): 11386 Move to lto/lto.c. 11387 (print_gimple_types_stats): Adjust. 11388 (free_gimple_type_tables): Likewise. 11389 113902012-09-11 Richard Guenther <rguenther@suse.de> 11391 11392 * graphite-scop-detection.c (move_sd_regions): Adjust for VEC changes. 11393 (scopdet_basic_block_info): Likewise. 11394 (build_scops_1): Likewise. 11395 (limit_scops): Likewise. 11396 113972012-09-11 Richard Guenther <rguenther@suse.de> 11398 11399 PR middle-end/54515 11400 * gimple.c (get_base_address): Do not return NULL_TREE apart 11401 from for WITH_SIZE_EXPR. 11402 * gimple-fold.c (canonicalize_constructor_val): Do not call 11403 get_base_address when not necessary. 11404 114052012-09-10 Andrew Pinski <apinski@cavium.com> 11406 11407 PR tree-opt/54362 11408 * trans-mem.c (thread_private_new_memory): Handle COND_EXPR also. 11409 114102012-09-10 Maxim Kuvyrkov <maxim@codesourcery.com> 11411 11412 * config/m68k/m68k.c (m68k_sched_dfa_post_advance_cycle): Support 11413 starting scheduling from a pre-existing state. 11414 114152012-09-10 Diego Novillo <dnovillo@google.com> 11416 11417 * vec.h (vec_t::quick_push): Remove overload that accepts 'T *'. 11418 Update all users. 11419 (vec_t::safe_push): Likewise. 11420 (vec_t::quick_insert): Likewise. 11421 (vec_t::lower_bound): Likewise. 11422 (vec_t::safe_insert): Likewise. 11423 (vec_t::replace): Change second argument to 'T &'. 11424 114252012-09-10 Maciej W. Rozycki <macro@codesourcery.com> 11426 11427 * config/rs6000/rs6000.md: Move a splitter next to its insn. 11428 114292012-09-10 Oleg Endo <olegendo@gcc.gnu.org> 11430 11431 PR target/54089 11432 * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Set always to 1 if 11433 dynamic shifts are available. 11434 (SHIFT_COUNT_TRUNCATED): Always define to 0. Correct comment. 11435 * config/sh/sh.c (ashl_lshr_seq, ext_ashl_lshr_seq): Add comments. 11436 * config/sh/predicates.md (shift_count_operand): Allow 11437 arith_reg_operand even if TARGET_DYNSHIFT is false. 11438 * config/sh/sh.md (ashlsi3, lshrsi3): Expand library call patterns 11439 if needed. 11440 (ashlsi3_d_call, lshrsi3_d_call): New insns. 11441 114422012-09-10 Richard Sandiford <rdsandiford@googlemail.com> 11443 11444 * ira.c (setup_pressure_classes): Handle synonymous classes. 11445 114462012-09-10 Marc Glisse <marc.glisse@inria.fr> 11447 11448 * tree-ssa-forwprop.c (simplify_bitfield_ref): New function. 11449 (ssa_forward_propagate_and_combine): Call it. 11450 114512012-09-10 Steve Ellcey <sellcey@mips.com> 11452 11453 * config.gcc: Add mips*-mti-linux* target 11454 Handle with_synci like other options. 11455 * config/mips/gnu-user64.h (LINUX64_DRIVER_SELF_SPECS): New. 11456 (DRIVER_SELF_SPECS): Define in terms of LINUX64_DRIVER_SELF_SPECS. 11457 * config/mips/mips.h (MIPS_ISA_SYNCI_SPEC): New. 11458 * config/mips/mti-linux.h: New file. 11459 * config/mips/t-mti-linux: New file. 11460 114612012-09-10 Marc Glisse <marc.glisse@inria.fr> 11462 11463 * tree-ssa-forwprop.c (simplify_permutation): Handle CONSTRUCTOR. 11464 114652012-09-10 Martin Jambor <mjambor@suse.cz> 11466 11467 * params.def (PARAM_IPA_MAX_AGG_ITEMS): New parameter. 11468 * ipa-prop.c: Include params.h. 11469 (IPA_MAX_AFF_JF_ITEMS): Removed. 11470 (determine_known_aggregate_parts): Use param value of 11471 PARAM_IPA_MAX_AGG_ITEMS instead of IPA_MAX_AFF_JF_ITEMS. 11472 * Makefile.in (ipa-prop.o): Add PARAMS_H dependency. 11473 114742012-09-10 Richard Guenther <rguenther@suse.de> 11475 11476 PR tree-optimization/54520 11477 * tree-ssa-threadupdate.c (def_split_header_continue_p): 11478 Properly consider sub-loops. 11479 114802012-09-10 Richard Henderson <rth@redhat.com> 11481 11482 * config/alpha/predicates.md (small_symbolic_operand): Disallow 11483 large offsets. 11484 114852012-09-10 Georg-Johann Lay <avr@gjlay.de> 11486 11487 PR target/54536 11488 * config/avr/avr-mcus.def (at90usb1287): Set LIBRARY_NAME to "usb1287". 11489 114902012-09-10 Jan Hubicka <jh@suse.cz> 11491 11492 * lto-cgraph.c (compute_ltrans_boundary): Do not care about aliases. 11493 * symtab.c (symtab_make_decl_local): Remove user defined visibility 11494 when making symbol local. 11495 114962012-09-09 Mark Kettenis <kettenis@gnu.org> 11497 11498 * config/openbsd-stdint.h (INTMAX_TYPE, UINTMAX_TYPE): Define. 11499 115002012-09-09 Jan Hubicka <jh@suse.cz> 11501 11502 * passes.c (ipa_write_summaries_1): Set state; 11503 do not call compute_ltrans_boundary. 11504 (ipa_write_optimization_summaries): Likewise. 11505 (ipa_write_summaries): compute_ltrans_boundary here. 11506 * lto-streamer.h (lto_symtab_encoder_d): NODES are allocated in heap. 11507 (compute_ltrans_boundary): Update prototype. 11508 115092012-09-09 Ulrich Drepper <drepper@gmail.com> 11510 11511 * config/i386/cpuid.h: Define signature_*_e[bcd]x macros for 11512 matching results of level 0 calls to __cpuid to processor 11513 manufacturers. 11514 * config/i386/driver-i386.c (vendor_signatures): Removed. 11515 (processor_signatures): Removed. 11516 (host_detect_local_cpu): Replace uses of now-removed SIG_* 11517 constants with the new signature_*_ebx constants. 11518 115192012-09-08 Jan Hubicka <jh@suse.cz> 11520 11521 Replace cgraph_node_set and varpool_node_set by symtab_node_encoder 11522 in partitioning. 11523 * tree-pass.h (cgraph_node_set_def, varpool_node_set_def): Remove 11524 forward declaration. 11525 (lto_symtab_encoder_d): Forward declare. 11526 (ipa_write_optimization_summaries): Update. 11527 * lto-cgraph.c (lto_symtab_encoder_new): Do not initialize 11528 body, initializer and in_partition. 11529 (lto_symtab_encoder_delete): Update. 11530 (lto_symtab_encoder_encode): Update. 11531 (lto_symtab_encoder_lookup): Move inline. 11532 (lto_symtab_encoder_delete_node): New function. 11533 (lto_symtab_encoder_encode_body_p, lto_set_symtab_encoder_encode_body, 11534 lto_symtab_encoder_encode_initializer_p, 11535 lto_set_symtab_encoder_encode_initializer, 11536 lto_symtab_encoder_in_partition_p, 11537 lto_symtab_encoder_in_partition_p): Update. 11538 (compute_ltrans_boundary): Take encoder as an input. 11539 * passes.c (ipa_write_summaries_1): Update. 11540 (ipa_write_summaries_1): Update. 11541 (ipa_write_summaries): Update. 11542 (ipa_write_optimization_summaries): Update. 11543 * lto-streamer.c (print_lto_report): Report number of cgraph nodes. 11544 * lto-streamer.h (lto_stats_d): Replace num_output_cgraph_nodes by 11545 num_output_symtab_nodes. 11546 (lto_encoder_entry): New structure. 11547 (struct lto_symtab_encoder_d): Reorg. 11548 (lto_symtab_encoder_delete_node): Declare. 11549 (lto_symtab_encoder_lookup): Bring inline. 11550 (compute_ltrans_boundary): Update. 11551 (lto_symtab_encoder_size): Update. 11552 (lsei_node, lsei_cgraph_node, lsei_varpool_node): Update. 11553 (lto_symtab_encoder_deref): Update. 11554 115552012-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 11556 11557 * config/pa/pa.c (hppa_rtx_costs): Update costs for large 11558 integer modes. 11559 115602012-09-08 Andi Kleen <ak@linux.intel.com> 11561 11562 * lto/lto.c (do_whole_program_analysis): Fix last broken patch. 11563 115642012-09-08 Andi Kleen <ak@linux.intel.com> 11565 11566 * common.opt (-fmem-report-wpa): Add 11567 * doc/invoke.texi (-fmem-report-wpa): Document. 11568 * lto/lto.c (do_whole_program_analysis): Run mem_report 11569 when mem_report_wpa is set. 11570 115712012-09-07 Anthony Green <green@moxielogic.com> 11572 11573 * config/moxie/moxie.c (moxie_expand_prologue): Optimize prologue 11574 for functions with large static stack requirements. 11575 (moxie_expand_epilogue): Use $r12 instead of $r5 for pulling saved 11576 values off of the stack. 11577 115782012-09-07 Nick Clifton <nickc@redhat.com> 11579 11580 * config/v850/v850.h (DBX_DEBUGGING_INFO): Define. 11581 (ASM_GENERATE_INTERNAL_LABEL): Define if not already provided. 11582 * config/v850/v850.c (compute_register_save_size): Always include 11583 the link pointer. 11584 (increment_stack): New function - emits insns to increment or 11585 decrement the stack pointer. 11586 (expand_prologue, expand_epilogue): Use it. 11587 (expand_prologue): Set the function stack size, if requested. 11588 (v850_debug_unwind_info): New function. 11589 (TARGET_DEBUG_UNWIND_INFO): Define. 11590 115912012-09-07 Richard Earnshaw <rearnsha@arm.com> 11592 11593 PR tree-ssa/54295 11594 * tree-ssa-math-opts.c (widening_mult_conversion_strippable_p): 11595 Sign-extension of a zero-extended value can be simplified to 11596 just zero-extension. 11597 115982012-09-07 Richard Guenther <rguenther@suse.de> 11599 11600 PR middle-end/53667 11601 * tree-ssa-structalias.c (handle_rhs_call): Properly clobber 11602 EAF_NOESCAPED arguments. Transitively close non-EAF_DIRECT 11603 arguments separately. 11604 116052012-09-07 Steven Bosscher <steven@gcc.gnu.org> 11606 11607 * bitmap.c (bitmap_last_set_bit): Rewrite to return the correct bit. 11608 11609 * graphite.c (print_global_statistics): Use EDGE_COUNT instead 11610 of VEC_length. 11611 (print_graphite_scop_statistics): Likewise. 11612 * graphite-scop-detection.c (get_bb_type): Use single_succ_p. 11613 (print_graphite_scop_statistics): Use EDGE_COUNT, not VEC_length. 11614 (canonicalize_loop_closed_ssa): Use single_pred_p. 11615 11616 * alias.c (reg_seen): Make this an sbitmap. 11617 (record_set, init_alias_analysis): Update. 11618 11619 * tree-ssa-coalesce.c (ssa_conflicts_dump): Fix dumping. 11620 116212012-09-07 Tom de Vries <tom@codesourcery.com> 11622 11623 PR tree-optimization/53986 11624 * tree-vrp.c (extract_range_from_multiplicative_op_1): Allow 11625 LSHIFT_EXPR. 11626 (extract_range_from_binary_expr_1): Handle LSHIFT with constant 11627 range as shift amount. 11628 116292012-09-07 Segher Boessenkool <segher@kernel.crashing.org> 11630 11631 * config/rs6000/aix43.h (RS6000_CALL_GLUE): Delete. 11632 * config/rs6000/aix51.h (RS6000_CALL_GLUE): Delete. 11633 * config/rs6000/aix52.h (RS6000_CALL_GLUE): Delete. 11634 * config/rs6000/aix53.h (RS6000_CALL_GLUE): Delete. 11635 * config/rs6000/aix61.h (RS6000_CALL_GLUE): Delete. 11636 * config/rs6000/freebsd64.h (RS6000_CALL_GLUE): Delete. 11637 * config/rs6000/linux64.h (RS6000_CALL_GLUE): Delete. 11638 * config/rs6000/rs6000.c (print_operand) ['.']: Delete. 11639 * config/rs6000/rs6000.h (RS6000_CALL_GLUE): Delete. 11640 * config/rs6000/rs6000.md (tls_gd_aix<TLSmode:tls_abi_suffix>): 11641 Replace %. with nop. 11642 (tls_gd_call_aix<TLSmode:tls_abi_suffix>): Ditto. 11643 (tls_ld_aix<TLSmode:tls_abi_suffix>): Ditto. 11644 (tls_ld_call_aix<TLSmode:tls_abi_suffix>): Ditto. 11645 (call_nonlocal_aix32): Ditto. 11646 (call_nonlocal_aix64): Ditto. 11647 (call_value_nonlocal_aix32): Ditto. 11648 (call_value_nonlocal_aix64): Ditto. 11649 116502012-09-06 Andi Kleen <ak@linux.intel.com> 11651 11652 * doc/invoke.texi (-ffat-lto-objects): Clarify that gcc-ar 11653 et.al. should be used. 11654 116552012-09-06 Andi Kleen <ak@linux.intel.com> 11656 11657 * lto-streamer.h (res_pair): Add. 11658 (lto_file_decl_data): Replace resolutions with respairs. 11659 Add max_index. 11660 * lto/lto.c (lto_resolution_read): Remove max_index. Add rp. 11661 Initialize respairs. 11662 (lto_file_finalize): Set up resolutions vector lazily from respairs. 11663 116642012-09-06 Lawrence Crowl <crowl@google.com> 11665 11666 * double-int.h (double_int::operator &=): New. 11667 (double_int::operator ^=): New. 11668 (double_int::operator |=): New. 11669 (double_int::mul_with_sign): Modify overflow parameter to bool*. 11670 (double_int::add_with_sign): New. 11671 (double_int::ule): New. 11672 (double_int::sle): New. 11673 (binary double_int::operator *): Remove parameter name. 11674 (binary double_int::operator +): Likewise. 11675 (binary double_int::operator -): Likewise. 11676 (binary double_int::operator &): Likewise. 11677 (double_int::operator |): Likewise. 11678 (double_int::operator ^): Likewise. 11679 (double_int::and_not): Likewise. 11680 (double_int::from_shwi): Tidy formatting. 11681 (double_int::from_uhwi): Likewise. 11682 (double_int::from_uhwi): Likewise. 11683 * double-int.c (double_int::mul_with_sign): Modify overflow parameter 11684 to bool*. 11685 (double_int::add_with_sign): New. 11686 (double_int::ule): New. 11687 (double_int::sle): New. 11688 * builtins.c: Modify to use the new double_int interface. 11689 * cgraph.c: Likewise. 11690 * combine.c: Likewise. 11691 * dwarf2out.c: Likewise. 11692 * emit-rtl.c: Likewise. 11693 * expmed.c: Likewise. 11694 * expr.c: Likewise. 11695 * fixed-value.c: Likewise. 11696 * fold-const.c: Likewise. 11697 * gimple-fold.c: Likewise. 11698 * gimple-ssa-strength-reduction.c: Likewise. 11699 * gimplify-rtx.c: Likewise. 11700 * ipa-prop.c: Likewise. 11701 * loop-iv.c: Likewise. 11702 * optabs.c: Likewise. 11703 * stor-layout.c: Likewise. 11704 * tree-affine.c: Likewise. 11705 * tree-cfg.c: Likewise. 11706 * tree-dfa.c: Likewise. 11707 * tree-flow-inline.h: Likewise. 11708 * tree-object-size.c: Likewise. 11709 * tree-predcom.c: Likewise. 11710 * tree-pretty-print.c: Likewise. 11711 * tree-sra.c: Likewise. 11712 * tree-ssa-address.c: Likewise. 11713 * tree-ssa-alias.c: Likewise. 11714 * tree-ssa-ccp.c: Likewise. 11715 * tree-ssa-forwprop.c: Likewise. 11716 * tree-ssa-loop-ivopts.c: Likewise. 11717 * tree-ssa-loop-niter.c: Likewise. 11718 * tree-ssa-phiopt.c: Likewise. 11719 * tree-ssa-pre.c: Likewise. 11720 * tree-ssa-sccvn: Likewise. 11721 * tree-ssa-structalias.c: Likewise. 11722 * tree-ssa.c: Likewise. 11723 * tree-switch-conversion.c: Likewise. 11724 * tree-vect-loop-manip.c: Likewise. 11725 * tree-vrp.c: Likewise. 11726 * tree.h: Likewise. 11727 * tree.c: Likewise. 11728 * varasm.c: Likewise. 11729 117302012-09-06 Uros Bizjak <ubizjak@gmail.com> 11731 11732 * configure.ac (hle prefixes): Remove .code64 directive. 11733 * configure: Regenerated. 11734 117352012-09-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 11736 11737 * config/arm/arm.c: Use CONST_INT_P, CONST_DOUBLE_P, REG_P, MEM_P, 11738 LABEL_P, JUMP_P, CALL_P, NOTE_P, BARRIER_P consistently. 11739 * config/arm/arm.h: Use REG_P, MEM_P consistently. 11740 * config/arm/arm.md: Use CONST_INT_P, REG_P, MEM_P, CONST_DOUBLE_P 11741 consistently. 11742 * config/arm/neon.md: Use REG_P consistently. 11743 * config/arm/predicates.md: Use CONST_INT_P, REG_P, MEM_P consistently. 11744 * config/arm/thumb2.md: Use CONST_INT_P, REG_P consistently. 11745 * config/arm/vec-common.md: Use REG_P consistently. 11746 117472012-09-06 Richard Guenther <rguenther@suse.de> 11748 11749 PR tree-optimization/54498 11750 * tree-ssa-alias.h (get_continuation_for_phi): Add flag to 11751 abort when reaching an already visited region. 11752 * tree-ssa-alias.c (maybe_skip_until): Likewise. And do it. 11753 (get_continuation_for_phi_1): Likewise. 11754 (walk_non_aliased_vuses): When we translated the reference, 11755 abort when we re-visit a region. 11756 * tree-ssa-pre.c (translate_vuse_through_block): Adjust. 11757 117582012-09-06 David Edelsohn <dje.gcc@gmail.com> 11759 11760 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Add TLS 11761 section. 11762 * config/rs6000/rs6000.c (rs6000_debug_address_cost): Add new 11763 arguments to TARGET_ADDRESS_COST call. 11764 117652012-09-06 Richard Guenther <rguenther@suse.de> 11766 11767 * tree.h (MOVE_NONTEMPORAL): Remove. 11768 * tree-pretty-print.c (dump_generic_node): Remove 11769 MOVE_NONTEMPORAL handling. 11770 * expr.c (expand_expr_real_1): Likewise. 11771 117722012-09-06 Richard Guenther <rguenther@suse.de> 11773 11774 * passes.c (execute_function_todo): Call compute_may_aliases 11775 only if flag_tree_pta is set. 11776 117772012-09-06 Andrew Pinski <apinski@cavium.com> 11778 11779 PR tree-opt/54494 11780 * tree-inline.c (remap_gimple_op_r): Copy TREE_SIDE_EFFECTS also. 11781 117822012-09-06 Jakub Jelinek <jakub@redhat.com> 11783 11784 PR rtl-optimization/54455 11785 * sel-sched-ir.c (maybe_tidy_empty_bb): Give up if previous fallthru 11786 bb ends up with asm goto referencing bb's label. 11787 117882012-09-06 Chen Liqin <liqin.gcc@gmail.com> 11789 11790 * config/score/score.c: Remove TARGET_LEGITIMIZE_ADDRESS define and 11791 score_legitimize_address function, use compiler default code instead. 11792 117932012-09-05 Jan Hubicka <jh@suse.cz> 11794 11795 * ipa-inline.c (want_inline_small_function_p): Use 11796 INLINE_HINT_loop_iterations hint. 11797 117982012-09-05 Andrew Pinski <apinski@cavium.com> 11799 11800 * optabs.c (emit_conditional_add): Correct comment about the arguments. 11801 Remove code which might swap op2 and op3 since they cannot be swapped. 11802 * doc/md.texi (add@var{mode}cc): Fix document about how the arguments 11803 are used. 11804 118052012-09-05 Oleg Endo <olegendo@gcc.gnu.org> 11806 11807 * hooks.c (hook_int_rtx_mode_as_bool_0): New function. 11808 * hooks.h (hook_int_rtx_mode_as_bool_0): Declare it. 11809 * output.h (default_address_cost): Add machine_mode and address space 11810 arguments. 11811 * target.def (address_cost): Likewise. 11812 * rtlanal.c (address_cost): Pass mode and address space to target hook. 11813 (default_address_cost): Add unnamed machine_mode and address space 11814 arguments. 11815 * doc/tm.texi: Regenerate. 11816 * config/alpha/alpha.c (TARGET_ADDRESS_COST): Use 11817 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0. 11818 * config/arm/arm.c (arm_address_cost): Add machine_mode and address 11819 space arguments. 11820 * config/avr/avr.c (avr_address_cost): Likewise. 11821 * config/bfin/bfin.c (bfin_address_cost): Likewise. 11822 * config/cr16/cr16.c (cr16_address_cost): Likewise. 11823 * config/cris/cris.c (cris_address_cost): Likewise. 11824 * config/epiphany/epiphany.c (epiphany_address_cost): Likewise. 11825 * config/i386/i386.c (ix86_address_cost): Likewise. 11826 * config/ia64/ia64.c (TARGET_ADDRESS_COST): Use 11827 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0. 11828 * config/iq2000/iq2000.c (iq2000_address_cost): Add machine_mode and 11829 address space arguments. Pass them on in recursive invocation. 11830 * config/lm32/lm32.c (TARGET_ADDRESS_COST): Use 11831 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0. 11832 * config/m32c/m32c.c (m32c_address_cost): Add machine_mode and address 11833 space arguments. 11834 * config/m32r/m32r.c (TARGET_ADDRESS_COST): Use 11835 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0. 11836 * config/mcore/mcore.c (TARGET_ADDRESS_COST): Likewise. 11837 * config/mep/mep.c (mep_address_cost): Add machine_mode and address 11838 space arguments. 11839 * config/microblaze/microblaze.c (microblaze_address_cost): Likewise. 11840 * config/mips/mips.c (mips_address_cost): Likewise. 11841 * config/mmix/mmix.c (TARGET_ADDRESS_COST): Use 11842 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0. 11843 * config/mn10300/mn10300.c (mn10300_address_cost): Add machine_mode and 11844 address space arguments. 11845 (mn10300_rtx_costs): Pass GET_MODE (x) and MEM_ADDR_SPACE (x) to 11846 mn10300_address_cost. 11847 * config/pa/pa.c (hppa_address_cost): Add machine_mode and address 11848 space arguments. 11849 * config/rs6000/rs6000.c (rs6000_debug_address_cost): Likewise. 11850 (TARGET_ADDRESS_COST): Use hook_int_rtx_mode_as_bool_0 instead of 11851 hook_int_rtx_bool_0. 11852 * config/rx/rx.c (rx_address_cost): Add machine_mode and address 11853 space arguments. 11854 * config/s390/s390.c (s390_address_cost): Likewise. 11855 * config/score/score-protos.h (score_address_cost): Likewise. 11856 * config/score/score.c (score_address_cost): Likewise. 11857 * config/sh/sh.c (sh_address_cost): Likewise. 11858 * config/sparc/sparc.c (TARGET_ADDRESS_COST): Use 11859 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0. 11860 * config/spu/spu.c (TARGET_ADDRESS_COST): Likewise. 11861 * config/stormy16/stormy16.c (xstormy16_address_cost): Add machine_mode 11862 and address space arguments. 11863 * config/v850/v850.c (TARGET_ADDRESS_COST): Use 11864 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0. 11865 * config/vax/vax.c (vax_address_cost): Add machine_mode and address 11866 space arguments. 11867 * config/xtensa/xtensa (TARGET_ADDRESS_COST): Use 11868 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0. 11869 118702012-09-05 Diego Novillo <dnovillo@google.com> 11871 11872 PR bootstrap/54484 11873 * vec.h (vec_t::lower_bound): Fix spelling of LESSTHAN argument. 11874 118752012-09-05 Jakub Jelinek <jakub@redhat.com> 11876 11877 PR middle-end/54486 11878 * builtins.c (fold_builtin_strspn, fold_builtin_strcspn): Use 11879 build_int_cst with size_type_node instead of size_int. 11880 118812012-09-05 Uros Bizjak <ubizjak@gmail.com> 11882 11883 * config/i386/sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): 11884 Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}. 11885 Use nonimmediate_operand instead of 11886 nonimm_not_xmm0_operand{,_maybe_avx}. 11887 (<sse4_1_avx2>_pblendvb): Ditto. 11888 (sse4_2_pcmpestr): Ditto. 11889 (*sse4_2_pcmpestr_unaligned): Ditto. 11890 (sse4_2_pcmpistr): Ditto. 11891 (*sse4_2_pcmpistr_unaligned): Ditto. 11892 * config/i386/predicates.md (reg_not_xmm0_operand): Remove predicate. 11893 (nonimm_not_xmm0_operand): Ditto. 11894 (nonimm_not_xmm0_operand_maybe_avx): Ditto. 11895 (nonimm_not_xmm0_operand_maybe_avx): Ditto. 11896 * config/i386/i386.md (rdpmc): Do not force operand 1 into ecx. 11897 118982012-09-05 Eric Botcazou <ebotcazou@adacore.com> 11899 11900 * bb-reorder.c: Clarify a few points in the head comment and fix 11901 long lines in other comments. 11902 (find_traces): Fix long line. 11903 (find_traces_1_round): Likewise. 11904 (better_edge_p): Likewise. 11905 (connect_traces): Likewise. 11906 (duplicate_computed_gotos): Likewise. 11907 (find_rarely_executed_basic_blocks_and_cr): Remove trailing spaces. 11908 (fix_up_fall_thru_edges): Fix formatting. 11909 119102012-09-05 Richard Guenther <rguenther@suse.de> 11911 11912 PR tree-optimization/46590 11913 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Do not 11914 update SSA form here. 11915 (canonicalize_induction_variables): Assert we do not need to 11916 update SSA form. 11917 (tree_unroll_loops_completely): Update SSA form here. 11918 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge): 11919 Do not verify loop-closed SSA form if SSA form is not up-to-date. 11920 119212012-09-05 Georg-Johann Lay <avr@gjlay.de> 11922 11923 PR target/54461 11924 * config.gcc (tm_file,target=avr-*-*): Add avr/avrlibc.h if 11925 not configured --with-avrlibc=no. 11926 (tm_defines,target=avr-*-*): Add WITH_AVRLIBC if not configured 11927 --with-avrlibc=no. 11928 * config/avr/avrlibc.h: New file. 11929 * config/avr/avr-c.c: Build-in define __WITH_AVRLIBC__ if 11930 not configured --with-avrlibc=no. 11931 * doc/invoke.texi (AVR Built-in Macros): Document __WITH_AVRLIBC__ 11932 119332012-09-04 Teresa Johnson <tejohnson@google.com> 11934 11935 * gcov-io.c (gcov_write_summary): Write out non-zero histogram 11936 entries to function summary along with an occupancy bit vector. 11937 (gcov_read_summary): Read in the histogram entries. 11938 (gcov_histo_index): New function. 11939 (void gcov_histogram_merge): Ditto. 11940 * gcov-io.h (gcov_type_unsigned): New type. 11941 (struct gcov_bucket_type): Ditto. 11942 (struct gcov_ctr_summary): Include histogram. 11943 (GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries. 11944 (GCOV_HISTOGRAM_SIZE): New macro. 11945 (GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto. 11946 * profile.c (NUM_GCOV_WORKING_SETS): Ditto. 11947 (gcov_working_sets): New global variable. 11948 (compute_working_sets): New function. 11949 (find_working_set): Ditto. 11950 (get_exec_counts): Invoke compute_working_sets. 11951 * coverage.c (read_counts_file): Merge histograms, and 11952 fix bug with accessing summary info for non-summable counters. 11953 * basic-block.h (gcov_type_unsigned): New type. 11954 (struct gcov_working_set_info): Ditto. 11955 (find_working_set): Declare. 11956 * gcov-dump.c (tag_summary): Dump out histogram. 11957 119582012-09-04 Diego Novillo <dnovillo@google.com> 11959 11960 PR bootstrap/54484 11961 * vec.h (vec_t::embedded_init): Move default argument value 11962 to function declaration. 11963 119642012-09-04 Eric Botcazou <ebotcazou@adacore.com> 11965 11966 * bb-reorder.c (gate_handle_reorder_blocks): Move around. 11967 (rest_of_handle_reorder_blocks): Likewise. 11968 (pass_reorder_blocks): Likewise. 11969 (gate_handle_partition_blocks): Likewise. 11970 119712012-09-04 Eric Botcazou <ebotcazou@adacore.com> 11972 11973 PR rtl-optimization/54456 11974 * sched-rgn.c (gate_handle_sched): Return 1 only if optimize > 0. 11975 119762012-09-04 Diego Novillo <dnovillo@google.com> 11977 11978 PR bootstrap/54478 11979 * vec.h (vec_t::alloc): Remove explicit type specification 11980 in call to reserve. 11981 (vec_t::copy): Likewise. 11982 (vec_t::reserve): Likewise. 11983 (vec_t::reserve_exact): Likewise. 11984 (vec_t::safe_splice): Likewise. 11985 (vec_t::safe_push): Likewise. 11986 (vec_t::safe_grow): Likewise. 11987 (vec_t::safe_grow_cleared): Likewise. 11988 (vec_t::safe_insert): Likewise. 11989 119902012-09-04 Richard Henderson <rth@redhat.com> 11991 11992 * alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER. 11993 119942012-09-04 Richard Guenther <rguenther@suse.de> 11995 11996 * tree-ssa-pre.c (value_expressions): Make it a vector of 11997 bitmaps containing expression IDs. 11998 (add_to_value): Adjust. 11999 (sorted_array_from_bitmap_set): Likewise. 12000 (bitmap_set_replace_value): Likewise. 12001 (print_value_expressions): Likewise. 12002 (get_constant_for_value_id): Likewise. 12003 (get_representative_for): Likewise. 12004 (phi_translate_1): Likewise. 12005 (bitmap_find_leader): Likewise. 12006 (find_or_generate_expression): Likewise. 12007 (do_regular_insertion): Likewise. 12008 (init_pre): Likewise. 12009 (fini_pre): Likewise. 12010 120112012-09-04 Diego Novillo <dnovillo@google.com> 12012 12013 PR bootstrap/54479 12014 * vec.h (vec_t::copy): Add cast in call to reserve_exact. 12015 120162012-09-04 Richard Guenther <rguenther@suse.de> 12017 12018 * tree-ssa-pre.c (add_to_exp_gen): Adjust. 12019 (make_values_for_phi): Do not add to PHI_GEN for FRE. 12020 (compute_avail): Stop processing after adding all defs to 12021 AVAIL_OUT for FRE. 12022 (init_pre): Do not allocate not needed bitmap sets for FRE. 12023 120242012-09-04 Diego Novillo <dnovillo@google.com> 12025 12026 Rewrite VEC_* functions as member functions of vec_t. 12027 12028 * vec.h: Update documentation. 12029 (ALONE_VEC_CHECK_INFO): Define. 12030 (ALONE_VEC_CHECK_DECL): Define. 12031 (ALONE_VEC_CHECK_PASS): Define. 12032 (struct vec_prefix): Rename field NUM to NUM_. 12033 Rename field ALLOC to ALLOC_. 12034 Update all users. 12035 (struct vec_t): Rename field PREFIX to PREFIX_. 12036 Rename field VEC to VEC_. 12037 Update all users. 12038 (vec_t::length): Rename from VEC_length_1. Update all users. 12039 (vec_t::empty): Rename from VEC_empty_1. Update all users. 12040 (vec_t::address): Rename from VEC_address_1. Update all users. 12041 (vec_address): New. 12042 (vec_t::last): Rename from VEC_last_1. Update all users. 12043 (vec_t::operator[]): Rename from VEC_index_1. Update all users. 12044 (vec_t::iterate): Rename from VEC_iterate_1. Update all users. 12045 (vec_t::embedded_size): Rename from VEC_embedded_size_1. 12046 Update all users. 12047 (vec_t::embedded_init): Rename from VEC_embedded_init_1. 12048 Update all users. 12049 (vec_t::alloc): Rename from VEC_alloc_1. Update all users. 12050 (vec_t::free): Rename from VEC_free_1. Update all users. 12051 (vec_t::copy): Rename from VEC_copy_1. Update all users. 12052 (vec_t::space): Rename from VEC_space_1. Update all users. 12053 (vec_t::reserve): Rename from VEC_reserve_1. Update all users. 12054 (vec_t::reserve_exact): Rename from VEC_reserve_exact_1. 12055 Update all users. 12056 (vec_t::splice): Rename from VEC_splice_1. Update all users. 12057 (vec_t::safe_splice): Rename from VEC_safe_splice_1. Update all users. 12058 (vec_t::quick_push): Rename from VEC_quick_push_1. Update all users. 12059 (vec_t::safe_push): Rename from VEC_safe_push_1. Update all users. 12060 (vec_t::pop): Rename from VEC_pop_1. Update all users. 12061 (vec_t::truncate): Rename from VEC_truncate_1. Update all users. 12062 (vec_t::safe_grow): Rename from VEC_safe_grow_1. Update all users. 12063 (vec_t::safe_grow_cleared): Rename from VEC_safe_grow_cleared_1. 12064 Update all users. 12065 (vec_t::replace): Rename from VEC_replace_1. Update all users. 12066 (vec_t::quick_insert): Rename from VEC_quick_insert_1. 12067 Update all users. 12068 (vec_t::safe_insert): Rename from VEC_safe_insert_1. Update all users. 12069 (vec_t::ordered_remove): Rename from VEC_ordered_remove_1. 12070 Update all users. 12071 (vec_t::unordered_remove): Rename from VEC_unordered_remove_1. 12072 Update all users. 12073 (vec_t::block_remove): Rename from VEC_block_remove_1. Update all users. 12074 (vec_t::lower_bound): Rename from VEC_lower_bound_1. Update all users. 12075 120762012-09-04 Steven Bosscher <steven@gcc.gnu.org> 12077 12078 * gimple.h (gimple_build_switch): Remove. 12079 (gimple_build_switch_vec): Promote to the new gimple_build_switch. 12080 (gimple_switch_default_label): Assert the default case label is 12081 really a default case label. 12082 (gimple_switch_set_default_label): Likewise. 12083 * gimple.c (gimple_build_switch_nlabels): Make sure a default label 12084 is passed in, and simplify accordingly. 12085 (gimple_build_switch): Removed. 12086 (gimple_build_switch_vec): Rename to gimple_build_switch. 12087 * gimplify.c (gimplify_switch_expr): Update gimple_build_switch use. 12088 * gimple-pretty-print.c (dump_gimple_switch): Do not accept a NULL 12089 case label. 12090 * stmt.c (expand_case): Simplify using the fact that every GIMPLE 12091 switch must have a default case. 12092 * tree-cfg.c (group_case_labels_stmt): Likewise. 12093 (verify_gimple_switch): Use gimple_switch_label in verifier to get 12094 the label at index 0, and verify that it is a valid default case. 12095 * except.c (sjlj_emit_dispatch_table): Rewrite construction of the 12096 switch for dispatching. 12097 * tree-eh.c (lower_try_finally_switch): Update gimple_build_switch use. 12098 (lower_eh_dispatch): Likewise. 12099 * tree-vrp.c (execute_vrp): Use gimple_switch_label to get the case 12100 label at index 0 before turning it into a default case label. 12101 * omp-low.c (expand_omp_sections): Update gimple_build_switch use. 12102 * tree-switch-conversion.c (emit_case_bit_tests): Get the default case 12103 label using gimple_switch_default_label. 12104 (collect_switch_conv_info): Likewise. 12105 (process_switch): Likewise. 12106 * doc/gimple.texi: Update documentation of gimple_build_switch. 12107 121082012-09-04 Georg-Johann Lay <avr@gjlay.de> 12109 12110 PR target/54476 12111 * config/avr/avr.c (avr_expand_delay_cycles): Mask operand with 12112 SImode. 12113 121142012-09-04 Bin Cheng <bin.cheng@arm.com> 12115 12116 PR target/45070 12117 * config/arm/arm.c (thumb1_extra_regs_pushed): Handle return value 12118 of size less than 4 bytes by using macro ARM_NUM_INTS. 12119 (thumb1_unexpanded_epilogue): Use macro ARM_NUM_INTS. 12120 121212012-09-04 Richard Guenther <rguenther@suse.de> 12122 12123 PR tree-optimization/54458 12124 * tree-ssa-threadupdate.c (thread_through_loop_header): If we 12125 turn the loop into one with multiple latches mark it so. 12126 121272012-09-04 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> 12128 12129 PR target/54220 12130 * config/avr/avr.c (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): New 12131 define to... 12132 (avr_allocate_stack_slots_for_args): ...this new static function. 12133 121342012-09-04 Christophe Lyon <christophe.lyon@linaro.org> 12135 12136 * config/arm/arm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT 12137 by GEN_INT. 12138 (arm_emit_coreregs_64bit_shift): Likewise. 12139 121402012-09-04 Christophe Lyon <christophe.lyon@linaro.org> 12141 12142 * config/arm/arm.c (arm_evpc_neon_vext): New function. 12143 (arm_expand_vec_perm_const_1): Add call to arm_evpc_neon_vext. 12144 121452012-09-04 Oleg Endo <olegendo@gcc.gnu.org> 12146 12147 PR target/51244 12148 * config/sh/sh.c (prepare_cbranch_operands): Pull out comparison 12149 canonicalization code into... 12150 * (sh_canonicalize_comparison): This new function. 12151 * config/sh/sh-protos.h: Declare it. 12152 * config/sh/sh.h: Use it in new macro CANONICALIZE_COMPARISON. 12153 * config/sh/sh.md (cbranchsi4): Remove TARGET_CBRANCHDI4 check and 12154 always invoke expand_cbranchsi4. 12155 121562012-09-03 Andi Kleen <ak@linux.intel.com> 12157 12158 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Initialize 12159 addr_offset always. 12160 121612012-09-03 Andrew Pinski <apinski@cavium.com> 12162 12163 PR tree-opt/53395 12164 * tree-if-conv.c (constant_or_ssa_name): New function. 12165 (fold_build_cond_expr): New function. 12166 (predicate_scalar_phi): Use fold_build_cond_expr instead of build3. 12167 (predicate_mem_writes): Likewise. 12168 121692012-09-03 Marc Glisse <marc.glisse@inria.fr> 12170 12171 * fold-const.c (fold_ternary_loc): Constant-propagate after 12172 removing dead operands. 12173 121742012-09-03 Michael Matz <matz@suse.de> 12175 12176 PR tree-optimization/46590 12177 * tree-cfg.c (gimple_duplicate_sese_region): Don't update 12178 SSA web here ... 12179 * tree-ssa-loop-ch.c (copy_loop_headers): ... but here. 12180 121812012-09-03 Sandra Loosemore <sandra@codesourcery.com> 12182 12183 * doc/invoke.texi: Fix numerous typos and punctuation/grammatical 12184 errors throughout the file. Re-word some awkward sentences and 12185 paragraphs. 12186 121872012-09-03 Richard Guenther <rguenther@suse.de> 12188 12189 PR tree-optimization/54362 12190 * tree-ssa-structalias.c (find_func_aliases): Handle COND_EXPR. 12191 121922012-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 12193 12194 * config/s390/s390.c (s390_loadrelative_operand_p): New function. 12195 (s390_check_qrst_address, print_operand_address): Use 12196 s390_loadrelative_operand_p instead of s390_symref_operand_p. 12197 (s390_check_symref_alignment): Accept pointer size alignment for 12198 GOT slots. 12199 (legitimize_pic_address): Use load relative on z10 or later. 12200 122012012-09-03 Jakub Jelinek <jakub@redhat.com> 12202 12203 PR debug/53923 12204 * valtrack.c (dead_debug_insert_temp): Drop non-reg uses 12205 from the chain. 12206 122072012-09-03 Joseph Myers <joseph@codesourcery.com> 12208 12209 * common.opt (--no-sysroot-suffix): New driver option. 12210 * doc/invoke.texi (--no-sysroot-suffix): Document. 12211 * gcc.c (driver_handle_option): Handle --no-sysroot-suffix as not 12212 needing spec processing. 12213 (main): Do not process sysroot suffixes if no_sysroot_suffix. 12214 122152012-09-02 Oleg Endo <olegendo@gcc.gnu.org> 12216 12217 PR target/33135 12218 * common/config/sh/sh-common.c: Update copyright years. 12219 (sh_option_init_struct): Delete. 12220 (TARGET_OPTION_INIT_STRUCT): Likewise. 12221 122222012-09-02 Oleg Endo <olegendo@gcc.gnu.org> 12223 12224 PR target/54418 12225 * config/sh/sh.md (cmpgeusi_t): Remove N alternative. 12226 Check operands[1] in split condition instead of operands[0]. 12227 Add comments. 12228 122292012-09-02 Mark Kettenis <kettenis@openbsd.org> 12230 12231 * config.gcc (x86_64-*-openbsd*): New target. 12232 * config.host (*-*-openbsd*): New target. 12233 * config/openbsd.h (TARGET_C99_FUNCTIONS): Define. 12234 * config/i386/openbsdelf.h: Remove some superfluous defines and 12235 group things together in a more logical fashion. 12236 (DBX_REGISTER_NUMBER): Provide a 12237 definition that works on both 32-bit and 64-bit targets. 12238 (WCHAR_TYPE_SIZE): Hardcode as 32. 12239 (NO_DOLLAR_IN_LABEL): Remove undef. 12240 (TARGET_DEFAULT): Remove. 12241 (SET_ASM_OP): Remove. 12242 (DEFAULT_PCC_STRUCT_RETURN): Undef first to prevent warning. 12243 (ASM_OUTPUT_MAX_SKIP_ALIGN): Synch with x86-64.h 12244 (DWARF2_UNWIND_INFO): Remove define. 12245 (HAVE_ENABLE_EXECUTE_STACK): Define. 12246 * config/host-openbsd.c: New file. 12247 * config/t-openbsd (USER_H): Add EXTRA_HEADERS. 12248 * config/x-openbsd: New file. 12249 122502012-09-02 Oleg Endo <olegendo@gcc.gnu.org> 12251 12252 * config/sh/sh.md (*extend<mode>si2_compact_mem_disp): Pass iterated 12253 mode to sh_legitimate_index_p instead of QImode. 12254 122552012-09-02 Eric Botcazou <ebotcazou@adacore.com> 12256 12257 PR rtl-optimization/54369 12258 * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before 12259 calling dbr_schedule. 12260 * config/sparc/sparc.c (sparc_reorg): Likewise. 12261 122622012-09-01 Jakub Jelinek <jakub@redhat.com> 12263 12264 PR target/54436 12265 * config/i386/i386.md (*mov<mode>_insv_1_rex64, *movsi_insv_1): If 12266 operands[1] is CONST_INT_P, convert it to QImode before printing. 12267 122682012-09-01 Andrew Pinski <apinski@cavium.com> 12269 12270 * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>): 12271 A truncate of a memory is just loading the low part of the memory. 12272 122732012-09-01 Uros Bizjak <ubizjak@gmail.com> 12274 12275 PR target/46829 12276 PR target/46843 12277 * config/i386/i386.c (ix86_legitimate_combined_insn): New function. 12278 (TARGET_LEGITIMATE_COMBINED_INSN): New macro. 12279 122802012-09-01 Uros Bizjak <ubizjak@gmail.com> 12281 12282 * target.def (legitimate_combined_insn): New target hook. 12283 * doc/tm.texi.in (TARGET_LEGITIMATE_COMBINED_INSN): New hook. 12284 * doc/tm.texi: Regenerated. 12285 * combine.c (recog_for_combine): Call targetm.legitimate_combined_insn 12286 to allow targets to reject combined insn. 12287 * hooks.h (hook_bool_rtx_true): New. 12288 * hooks.c (hook_bool_rtx_true): Ditto. 12289 122902012-08-31 Martin Jambor <mjambor@suse.cz> 12291 12292 * ipa-inline-analysis.c (estimate_function_body_sizes): Allocate 12293 nonconstant_names after calculate_dominance_info and 12294 loop_optimizer_init. 12295 122962012-08-31 Greta Yorsh <Greta.Yorsh@arm.com> 12297 12298 * config/arm/arm.c (arm_expand_epilogue): Remove unused variable 12299 floats_from_frame. 12300 123012012-08-31 Martin Jambor <mjambor@suse.cz> 12302 12303 PR middle-end/54409 12304 * ipa-inline-analysis.c (remap_predicate): Fix the offset_map 12305 checking condition. 12306 123072012-08-31 Martin Jambor <mjambor@suse.cz> 12308 12309 * ipa-inline-analysis.c (phi_result_unknown_predicate): New function. 12310 (predicate_for_phi_result): Likewise. 12311 (estimate_function_body_sizes): Use the above two functions. 12312 123132012-08-31 Martin Jambor <mjambor@suse.cz> 12314 12315 PR middle-end/54394 12316 * ipa-inline-analysis.c (estimate_function_body_sizes): Compute 12317 dominance info and loops whenever optimizing. 12318 123192012-08-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 12320 Richard Earnshaw <richard.earnshaw@arm.com> 12321 12322 PR target/54252 12323 * config/arm/arm.c (neon_dereference_pointer): Adjust nelems by 12324 element size. Use elem_type from the formal parameter. New parameter 12325 fcode. 12326 (neon_expand_args): Adjust call to neon_dereference_pointer. 12327 123282012-08-29 Steven Bosscher <steven@gcc.gnu.org> 12329 12330 * cfg.c (dump_bb_info): Print a newline if there were no edges to dump. 12331 123322012-08-29 Chung-Lin Tang <cltang@codesourcery.com> 12333 12334 Revert: 12335 * config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use 12336 mapping style, add ../lib/mips16. 12337 (MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16. 12338 (MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32. 12339 123402012-08-29 Richard Sandiford <rdsandiford@googlemail.com> 12341 12342 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_synci 12343 if TARGET_SYNCI. 12344 123452012-08-29 Oleg Endo <olegendo@gcc.gnu.org> 12346 12347 * config/sh/sh.opt (menable-tas): Rename to mtas. 12348 * doc/invoke.texi (SH options): Likewise. 12349 * config/sh/sync.md: Update comments. 12350 123512012-08-29 Oleg Endo <olegendo@gcc.gnu.org> 12352 12353 * config/sh/iterators.md: New file. 12354 * config/sh/sync.md (I124, I12, i124suffix): Delete. Replace usage 12355 with new iterators QIHISI, QIHI, bw, bwl respectively throughout 12356 the file. 12357 * config/sh/sh.md: Include new file iterators.md. 12358 (zero_extendhisi2, zero_extendqisi2): Fold into zero_extend<mode>si2. 12359 (*zero_extendhisi2_compact, *zero_extendqisi2_compact): Fold into 12360 *zero_extend<mode>si2_compact. 12361 (*zero_extendqisi2_disp_mem, zero_extendhisi2_disp_mem): Fold into 12362 *zero_extend<mode>si2_disp_mem. 12363 (extendhisi2, extendqisi2): Fold into extend<mode>si2. 12364 (*extendqisi2_compact_reg, *extendhisi2_compact_reg): Fold into 12365 *extend<mode>si2_compact_reg. 12366 (*extendqisi2_compact_mem_disp, *extendhisi2_compact_mem_disp): Fold 12367 into *extend<mode>si2_compact_mem_disp. 12368 (*extendqisi2_compact_snd, *extendhisi2_compact_snd): Fold into 12369 *extend<mode>si2_compact_snd. 12370 (*movsi_index_disp, *movhi_index_disp): Fold with iterators and rename 12371 to *movsi_index_disp_load, *movhi_index_disp_load, 12372 *mov<mode>_index_disp_store. 12373 (*movqi_reg_reg, *movhi_reg_reg): Fold into *mov<mode>_reg_reg. 12374 (*movqi_store_mem_disp04, *movhi_store_mem_disp05): Fold into 12375 *mov<mode>_store_mem_disp04. 12376 (*movqi_store_mem_disp12, *movhi_store_mem_disp13): Fold into 12377 *mov<mode>_store_mem_disp12. 12378 (*movqi_load_mem_disp, *movhi_load_mem_disp): Fold into 12379 *mov<mode>_load_mem_disp04 and *mov<mode>_load_mem_disp12. 12380 123812012-08-29 Martin Jambor <mjambor@suse.cz> 12382 12383 * ipa-inline.h (estimate_edge_hints): Call do_estimate_edge_hints, not 12384 do_estimate_edge_time. 12385 123862012-08-29 Chung-Lin Tang <cltang@codesourcery.com> 12387 12388 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Add nomips16 asm 12389 directives, remove #ifndef __mips16 guards. 12390 * config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use 12391 mapping style, add ../lib/mips16. 12392 (MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16. 12393 (MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32. 12394 123952012-08-28 Walter Lee <walt@tilera.com> 12396 * confg/tilegx/tilegx.md: Fix code style. 12397 (*zero_extendsidi_truncdisi): Fix typo. 12398 * config/tilegx/tilegx.c: Fix code style. 12399 (tilegx_function_profiler): Fix typo. 12400 124012012-08-28 Walter Lee <walt@tilera.com> 12402 12403 * doc/invoke.texi: Document -mcmodel=small, -mcmodel=large. 12404 * config/tilegx/tilegx.h: Include config/tilegx/tilegx-opts.h. 12405 (CRT_CALL_STATIC_FUNCTION): Define. 12406 * config/tilegx/predicates.md (const_last_symbolic_operand): 12407 Handle UNSPEC_HW2_LAST_PCREL, UNSPEC_HW1_LAST_PLT_PCREL, and 12408 UNSPEC_HW2_LAST_PLT_PCREL. 12409 (const_symbolic_operand): Handle UNSPEC_HW1_PCREL, 12410 UNSPEC_HW0_PLT_PCREL, and UNSPEC_HW1_PLT_PCREL. 12411 * config/tilegx/tilegx.md (UNSPEC_MOV_LARGE_PCREL_STEP4): Define, 12412 and renumber the constants that follow. 12413 (UNSPEC_HW1_PCREL): Ditto. 12414 (UNSPEC_HW2_LAST_PCREL): Ditto. 12415 (UNSPEC_HW0_PLT_PCREL): Define. 12416 (UNSPEC_HW1_PLT_PCREL): Define. 12417 (UNSPEC_HW1_LAST_PLT_PCREL): Define. 12418 (UNSPEC_HW2_LAST_PLT_PCREL): Define. 12419 (mov_large_pcrel_step1): Define. 12420 (mov_large_pcrel_step2): Define. 12421 (mov_large_pcrel_step3): Define. 12422 (mov_large_pcrel_step4): Define. 12423 (mov_plt_pcrel_step1): Define. 12424 (mov_plt_pcrel_step2): Define. 12425 (mov_plt_pcrel_step3): Define. 12426 (mov_plt_pcrel_step1_32bit): Define. 12427 (mov_plt_pcrel_step2_32bit): Define. 12428 (call): Handle tilegx_cmodel == CM_LARGE, CM_LARGE_PIC. 12429 (call_value): Ditto. 12430 * config/tilegx/tilegx.opt: Include config/tilegx/tilegx-opts.h. 12431 (mcmodel): New option. 12432 (enum cmodel): Define. 12433 (CM_SMALL): Define. 12434 (CM_LARGE): Define. 12435 * config/tilegx/tilegx-opts.h: New file. 12436 * config/tilegx/tilegx-protos.h (tilegx_compute_pcrel_address): 12437 Declare. 12438 (tilegx_compute_pcrel_plt_address): Declare. 12439 * config/tilegx/tilegx.c (tilegx_option_override): Handle 12440 tilegx_cmodel. 12441 (tilegx_function_ok_for_sibcall): Ditto. 12442 (compute_pcrel_address): Rename to tilegx_compute_pcrel_address, 12443 and don't declare static. Handle tilegx_cmodel. 12444 (tilegx_compute_pcrel_plt_address): Define. 12445 (tilegx_legitimize_pic_address): Rename calls to 12446 compute_pcrel_address. 12447 (tilegx_delegitimize_address): Handle UNSPEC_HW1_PCREL, 12448 UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL, 12449 UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL. 12450 (load_pic_register): Rename call to compute_pcrel_address. 12451 (tilegx_print_operand): Handle UNSPEC_HW1_PCREL, 12452 UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL, 12453 UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL. 12454 124552012-08-27 Maxim Kuvyrkov <maxim@codesourcery.com> 12456 12457 * sched-deps.c (add_dependence_list_and_free): Simplify. 12458 (flush_pending_list_and_free): Fix a hack that was fixing a hack. Free 12459 lists when add_dependence_list_and_free doesn't free them. 12460 124612012-08-27 Uros Bizjak <ubizjak@gmail.com> 12462 12463 PR target/46254 12464 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Return 12465 true for TARGET_64BIT or !flag_pic. 12466 * config/i386/sync.md (*atomic_compare_and_swap_doubledi_pic): Remove. 12467 (atomic_compare_and_swap_double<mode>): Change operand 2 predicate 12468 to cmpxchg8b_pic_memory_operand. Use DWIH mode iterator. 12469 Add insn constraint. Conditionally emit xchg asm insns. 12470 (atomic_compare_and_swap<mode>): Update calls. Check only 12471 cmpxchg8b_pic_memory_operand in memory address fixup. 12472 (DCASMODE): Remove. 12473 (CASHMODE): Rename from DCASHMODE. 12474 (doublemodesuffix): Update modes. 12475 (regprefix): New mode attribute. 12476 12477 (unspecv) <UNSPECV_CMPXCHG_{1,2,3,4}>: Remove. 12478 <UNSPECV_CMPXCHG>: New constant. 12479 (atomic_compare_and_swap<mode>_1): Rename from 12480 atomic_compare_and_swap_single<mode>. Update calls and 12481 unspec_volatile constants. 12482 (atomic_compare_and_swap<mode>_doubleword): Rename from 12483 atomic_compare_and_swap_double<mode>. Update calls and 12484 unspec_volatile constants. 12485 124862012-08-27 Walter Lee <walt@tilera.com> 12487 12488 * doc/md.texi (TILE-Gx): Fix typo. 12489 124902012-08-27 Walter Lee <walt@tilera.com> 12491 12492 * config/tilegx/tilegx.c (tilegx_function_profiler): Fix typo. 12493 * config/tilepro/tilepro.c (tilepro_function_profiler): Ditto. 12494 124952012-08-27 Walter Lee <walt@tilera.com> 12496 12497 * config/tilegx/tilegx.md (*bfins): Rename to insn_bfins. 12498 (insn_bfins): Delete. 12499 125002012-08-27 Walter Lee <walt@tilera.com> 12501 12502 * config/tilegx/sync.md (atomic_compare_and_swap_bare<mode>, 12503 atomic_exchange_bare<mode>, 12504 atomic_fetch_<fetchop_name>_bare<mode>): Set type to X1_remote. 12505 * config/tilegx/tilegx-generic.md (X1_remote): New 12506 insn_reservation. 12507 * config/tilegx/tilegx.md (type): Add X1_remove. 12508 (insn_cmpexch<four_if_si>, insn_exch<four_if_si>, 12509 insn_fetchadd<four_if_si>, insn_fetchaddgez<four_if_si>, 12510 insn_fetchand<four_if_si>, insn_fetchor<four_if_si>): Set type to 12511 X1_remote. 12512 125132012-08-27 Andreas Schwab <schwab@linux-m68k.org> 12514 12515 * gdbinit.in: Fix syntax of skip command. 12516 125172012-08-27 Richard Sandiford <rdsandiford@googlemail.com> 12518 12519 * config/mips/mips.c (mips_pic_call_symbol_from_set): Check for 12520 SYMBOL_REF SET_SRCs. 12521 125222012-08-27 Richard Sandiford <rdsandiford@googlemail.com> 12523 12524 * config/mips/mips.c (vr4130_align_insns): Don't simulate 12525 ghost instructions. Assert that the required instructions exist. 12526 125272012-08-26 Richard Sandiford <rdsandiford@googlemail.com> 12528 12529 * config/mips/mips.h (AVOID_CCMODE_COPIES): Update rationale for 12530 definition. 12531 * config/mips/mips.c (machine_function): Add next_fcc. 12532 (mips_output_move): Remove handling of fcc moves. 12533 (mips_allocate_fcc): New function. 12534 (mips_emit_compare, mips_expand_vcondv2sf): Use it. 12535 (mips_hard_regno_mode_ok_p): Restrict CCmode to ST registers. 12536 Remove special case for CCmode reloads. 12537 (mips_expand_builtin_compare_1): Use mips_allocate_fcc and treat 12538 the result a fixed operand. 12539 * config/mips/mips.md (move_type): Remove lui_movf. 12540 (type, length): Remove references to it. 12541 (movcc, reload_incc, reload_outcc): Delete. 12542 125432012-08-26 Richard Sandiford <rdsandiford@googlemail.com> 12544 12545 * config/mips/mips.c (mips_has_long_branch_p): New function, 12546 split out from... 12547 (mips_expand_ghost_gp_insns): ...here. Look inside sequences. 12548 125492012-08-26 Richard Sandiford <rdsandiford@googlemail.com> 12550 12551 * config/mips/mips.c (r10k_safe_mem_expr_p): Use get_inner_reference. 12552 125532012-08-26 Richard Sandiford <rdsandiford@googlemail.com> 12554 12555 * config/mips/mips.c (mips_rtx_costs): Add costs for CINS. 12556 125572012-08-26 Richard Sandiford <rdsandiford@googlemail.com> 12558 12559 * config/mips/mips.c (mips_rtx_costs): Add missing COSTS_N_INSNS 12560 to the size cost of multiplication. 12561 125622012-08-26 Gerald Pfeifer <gerald@pfeifer.com> 12563 12564 * doc/install.texi (Specific): Clarify what needs to be added to 12565 this section. 12566 125672012-08-26 Gerald Pfeifer <gerald@pfeifer.com> 12568 12569 * doc/tm.texi.in (Misc): Move descriptions of NO_DOLLAR_IN_LABEL 12570 and NO_DOT_IN_LABEL from here... 12571 (Label Output): ...to here. 12572 * doc/tm.texi: Regenerate. 12573 125742012-08-26 Gerald Pfeifer <gerald@pfeifer.com> 12575 12576 * doc/invoke.texi (C++ Dialect Options): Add missing space. 12577 125782012-08-25 Eric Botcazou <ebotcazou@adacore.com> 12579 12580 PR rtl-optimization/54088 12581 * jump.c (delete_related_insns): Robustify latest change. 12582 125832012-08-25 Ricardo Catalinas Jiménez <jimenezrick@gmail.com> 12584 12585 * doc/extend.texi (__atomic Builtins): Remove space before comma. 12586 125872012-08-25 Richard Sandiford <rdsandiford@googlemail.com> 12588 Andrew Pinski <apinski@cavium.com> 12589 12590 * config/mips/mips.h (CASE_VECTOR_MODE): For not 12591 TARGET_MIPS16_SHORT_JUMP_TABLES use ptr_mode. 12592 (CASE_VECTOR_SHORTEN_MODE): Likewise. 12593 125942012-08-25 Uros Bizjak <ubizjak@gmail.com> 12595 12596 * config/i386/i386.h (FP_REG_P): Remove macro. 12597 (FP_REGNO_P): Ditto. 12598 (HARD_REGNO_NREGS): Use STACK_REGNO_P instead of FP_REGNO_P. 12599 (HARD_REGNO_NREGS_HAS_PADDING): Ditto. 12600 (ANY_FP_REGNO_P): Ditto. 12601 (HARD_REGNO_RENAME_OK): Use STACK_REGNO_P. 12602 * config/i386/i386.c (output_387_ffreep): Use STACK_REGNO_P 12603 instead of FP_REGNO_P. 12604 (ix86_hard_regno_mode_ok): Ditto. 12605 * config/i386/predicates.md (fp_register_operand): Ditto. 12606 (register_and_not_fp_reg_operand): Ditto. 12607 * config/i386/sync.md (atomic_loaddi_fpu): Use STACK_REG_P instead 12608 of FP_REG_P. 12609 12610 * reg-stack.c (get_true_reg): Use STACK_REG_P instead of FP_REG_P. 12611 126122012-08-24 Jason Merrill <jason@redhat.com> 12613 12614 * print-tree.c (print_node): Don't check TREE_LANG_FLAG_* 12615 on TREE_VEC or SSA_NAME. 12616 126172012-08-24 Jakub Jelinek <jakub@redhat.com> 12618 12619 PR c/54363 12620 * gimplify.c (optimize_compound_literals_in_ctor): Only recurse 12621 if init is a CONSTRUCTOR. 12622 126232012-08-24 Steven Bosscher <steven@gcc.gnu.org> 12624 12625 * tree-ssa-live.c (dump_var_map): Do not dump the partition 12626 map of virtual operands. 12627 126282012-08-24 Yuri Rumyantsev <ysrumyan@gmail.com> 12629 12630 * config/i386/i386.c (ia32_multipass_dfa_lookahead) : Add 12631 case for Atom processor. 12632 126332012-08-24 Simon Baldwin <simonb@google.com> 12634 12635 * dwarf2out.c (gen_producer_string): Omit command line switch if 12636 CL_NO_DWARF_RECORD flag set. 12637 * opts.h (CL_NO_DWARF_RECORD): New. 12638 * opt-functions.awk (switch_flags): Add NoDWARFRecord. 12639 * doc/options.texi: Document NoDWARFRecord option flag. 12640 126412012-08-24 H.J. Lu <hongjiu.lu@intel.com> 12642 12643 PR debug/52857 12644 * dwarf2out.c (mem_loc_descriptor): Allow arg_pointer_rtx and 12645 frame_pointer_rtx for based_loc_descr. 12646 126472012-08-24 Martin Jambor <mjambor@suse.cz> 12648 12649 * predict.c (maybe_hot_frequency_p): New parameter fun. Use its decl 12650 instead of current_function_decl, use profile_status_for_function and 12651 ENTRY_BLOCK_PTR_FOR_FUNCTION with fun instead of their cfun variants. 12652 (maybe_hot_count_p): New parameter fun, use 12653 profile_status_for_function instead of its cfun_variant. 12654 (maybe_hot_bb_p): New parameter fun, checking-assert it, pass it to 12655 all callees. 12656 (maybe_hot_edge_p): Pass cfun to maybe_hot_count_p and 12657 maybe_hot_frequency_p. 12658 (probably_never_executed_bb_p): New parameter fun, use its decl 12659 instead of current_function_decl. 12660 (optimize_bb_for_size_p): Pass cfun to maybe_hot_bb_p. 12661 (rtl_profile_for_bb): Likewise. 12662 (compute_function_frequency): Pass cfun to maybe_hot_bb_p and 12663 probably_never_executed_bb_p. 12664 * tree-ssa-operands.c (ssa_operands_active): New operator fun. Use it 12665 instead of cfun. 12666 (update_stmt_operands): Pass cfun as an argument of 12667 ssa_operands_active. 12668 (swap_tree_operands): Likewise. 12669 * gimple-iterator.c (update_modified_stmt): Likewise. 12670 (update_modified_stmts): Likewise. 12671 * tree-flow-inline.h (delink_stmt_imm_use): Likewise. 12672 * tree-ssa.c (delete_tree_ssa): Likewise. 12673 * bb-reorder.c (bb_to_key): Pass cfun to probably_never_executed_bb_p. 12674 (push_to_next_round_p): Likewise. 12675 (find_rarely_executed_basic_blocks_and_crossing_edges ): Likewise. 12676 * cfg.c: Inlude tree.h. 12677 (check_bb_profile): Use profile_status_for_function, 12678 EXIT_BLOCK_PTR_FOR_FUNCTION and ENTRY_BLOCK_PTR_FOR_FUNCTION with 12679 DECL_STRUCT_FUNCTION (current_function_decl) instead of their cfun 12680 variants. 12681 (dump_bb_info): Pass DECL_STRUCT_FUNCTION (current_function_decl) to 12682 maybe_hot_bb_p and probably_never_executed_bb_p. 12683 * gimple-pretty-print.c (gimple_dump_bb_buff): Checking-assert that 12684 DECL_STRUCT_FUNCTION (current_function_decl) is not NULL. Pass it to 12685 dump_histograms_for_stmt. 12686 (dump_gimple_mem_ops): Pass 12687 DECL_STRUCT_FUNCTION (current_function_decl) 12688 as an argument to dump_gimple_mem_ops. 12689 * tree-cfg.c (dump_function_to_file): Rename parameter fn to fndecl. 12690 Do not change cfun. Change and restore current_function_decl. 12691 * Makefile.in (cfg.o): Include TREE_H in dependencies. 12692 126932012-08-24 Georg-Johann Lay <avr@gjlay.de> 12694 12695 PR target/54222 12696 * avr-modes.def (HA, SA, DA, TA, UTA): Adjust modes. 12697 * avr/avr-fixed.md: New file. 12698 * avr/avr.md: Include it. 12699 (cc): Add: minus. 12700 (adjust_len): Add: minus, minus64, ufract, sfract. 12701 (ALL1, ALL2, ALL4, ORDERED234): New mode iterators. 12702 (MOVMODE): Add: QQ, UQQ, HQ, UHQ, HA, UHA, SQ, USQ, SA, USA. 12703 (MPUSH): Add: HQ, UHQ, HA, UHA, SQ, USQ, SA, USA. 12704 (pushqi1, xload8_A, xload_8, movqi_insn, *reload_inqi, addqi3, 12705 subqi3, ashlqi3, *ashlqi3, ashrqi3, lshrqi3, *lshrqi3, *cmpqi, 12706 cbranchqi4, *cpse.eq): Generalize to handle all 8-bit modes in ALL1. 12707 (*movhi, reload_inhi, addhi3, *addhi3, addhi3_clobber, subhi3, 12708 ashlhi3, *ashlhi3_const, ashrhi3, *ashirhi3_const, lshrhi3, 12709 *lshrhi3_const, *cmphi, cbranchhi4): Generalize to handle all 12710 16-bit modes in ALL2. 12711 (subhi3, casesi, strlenhi): Add clobber when expanding minus:HI. 12712 (*movsi, *reload_insi, addsi3, subsi3, ashlsi3, *ashlsi3_const, 12713 ashrsi3, *ashrhi3_const, *ashrsi3_const, lshrsi3, *lshrsi3_const, 12714 *reversed_tstsi, *cmpsi, cbranchsi4): Generalize to handle all 12715 32-bit modes in ALL4. 12716 * avr-dimode.md (ALL8): New mode iterator. 12717 (adddi3, adddi3_insn, adddi3_const_insn, subdi3, subdi3_insn, 12718 subdi3_const_insn, cbranchdi4, compare_di2, 12719 compare_const_di2, ashrdi3, lshrdi3, rotldi3, ashldi3_insn, 12720 ashrdi3_insn, lshrdi3_insn, rotldi3_insn): Generalize to handle 12721 all 64-bit modes in ALL8. 12722 * config/avr/avr-protos.h (avr_to_int_mode): New prototype. 12723 (avr_out_fract, avr_out_minus, avr_out_minus64): New prototypes. 12724 * config/avr/avr.c (TARGET_FIXED_POINT_SUPPORTED_P): Define to... 12725 (avr_fixed_point_supported_p): ...this new static function. 12726 (TARGET_BUILD_BUILTIN_VA_LIST): Define to... 12727 (avr_build_builtin_va_list): ...this new static function. 12728 (avr_adjust_type_node): New static function. 12729 (avr_scalar_mode_supported_p): Allow if ALL_FIXED_POINT_MODE_P. 12730 (avr_builtin_setjmp_frame_value): Use gen_subhi3 and return new 12731 pseudo instead of gen_rtx_MINUS. 12732 (avr_print_operand, avr_operand_rtx_cost): Handle: CONST_FIXED. 12733 (notice_update_cc): Handle: CC_MINUS. 12734 (output_movqi): Generalize to handle respective fixed-point modes. 12735 (output_movhi, output_movsisf, avr_2word_insn_p): Ditto. 12736 (avr_out_compare, avr_out_plus_1): Also handle fixed-point modes. 12737 (avr_assemble_integer): Ditto. 12738 (output_reload_in_const, output_reload_insisf): Ditto. 12739 (avr_compare_pattern): Skip all modes > 4 bytes. 12740 (avr_2word_insn_p): Skip movuqq_insn, movqq_insn. 12741 (avr_out_fract, avr_out_minus, avr_out_minus64): New functions. 12742 (avr_to_int_mode): New function. 12743 (adjust_insn_length): Handle: ADJUST_LEN_SFRACT, 12744 ADJUST_LEN_UFRACT, ADJUST_LEN_MINUS, ADJUST_LEN_MINUS64. 12745 * config/avr/predicates.md (const0_operand): Allow const_fixed. 12746 (const_operand, const_or_immediate_operand): New. 12747 (nonmemory_or_const_operand): New. 12748 * config/avr/constraints.md (Ynn, Y00, Y01, Y02, Ym1, Ym2, YIJ): 12749 New constraints. 12750 * config/avr/avr.h (LONG_LONG_ACCUM_TYPE_SIZE): Define. 12751 127522012-08-23 Kenneth Zadeck <zadeck@naturalbridge.com> 12753 12754 * alias.c (rtx_equal_for_memref_p): Convert constant cases. 12755 * combine.c (find_single_use_1, mark_used_regs_combine): Convert 12756 to CASE_CONST_ANY. 12757 * cse.c (exp_equiv_p, canon_reg, fold_rtx, cse_process_notes_1, 12758 count_reg_usage): Convert constant cases. 12759 * cselib.c (cselib_expand_value_rtx_1): Convert to CASE_CONST_ANY. 12760 (cselib_subst_to_values): Convert constant cases. 12761 * df-scan.c (df_uses_record): Ditto. 12762 * dse.c (const_or_frame_p): Convert case statements to explicit 12763 if-then-else using mode classes. 12764 * emit-rtl.c (verify_rtx_sharing, copy_insn_1): Convert constant cases. 12765 * explow.c (convert_memory_address_addr_space): Ditto. 12766 * gcse.c (want_to_gcse_p, oprs_unchanged_p, compute_transp): Ditto. 12767 * genattrtab.c (attr_copy_rtx, clear_struct_flag): Ditto. 12768 * ira.c (equiv_init_varies_p, contains_replace_regs, 12769 memref_referenced_p, rtx_moveable_p): Ditto. 12770 * jump.c (mark_jump_label_1): Remove constant cases. 12771 (rtx_renumbered_equal_p): Convert to CASE_CONST_UNIQUE. 12772 * loop-invariant.c (check_maybe_invariant, hash_invariant_expr_1, 12773 invariant_expr_equal_p): Convert to CASE_CONST_ANY. 12774 * postreload-gcse.c (oprs_unchanged_p): Convert constant cases. 12775 * reginfo.c (reg_scan_mark_refs): Ditto. 12776 * regrename.c (scan_rtx): Ditto. 12777 * reload1.c (eliminate_regs_1, elimination_effects, 12778 scan_paradoxical_subregs): Ditto. 12779 * reload.c (operands_match_p, subst_reg_equivs): Ditto. 12780 * resource.c (mark_referenced_resources, mark_set_resources): Ditto. 12781 * rtlanal.c (rtx_unstable_p, rtx_varies_p, count_occurrences) 12782 (reg_mentioned_p, modified_between_p, modified_in_p) 12783 (volatile_insn_p, volatile_refs_p, side_effects_p, may_trap_p_1, 12784 inequality_comparisons_p, computed_jump_p_1): Ditto. 12785 * rtl.c (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Ditto. 12786 * sched-deps.c (sched_analyze_2): Ditto. 12787 * valtrack.c (cleanup_auto_inc_dec): Ditto. 12788 * rtl.h: (CASE_CONST_SCALAR_INT, CASE_CONST_UNIQUE, 12789 CASE_CONST_ANY): New macros. 12790 127912012-08-23 Julian Brown <julian@codesourcery.com> 12792 Sandra Loosemore <sandra@codesourcery.com> 12793 12794 * config/mips/mips.md 12795 (UNSPEC_CASESI_DISPATCH): New. 12796 (MIPS16_T_REGNUM): New constant. 12797 (tablejump): Don't use for MIPS16_SHORT_JUMP_TABLES. 12798 (casesi): New. 12799 (casesi_internal_mips16_<mode>): New. 12800 * config/mips/mips.c (mips16_split_long_branches): Adjust test 12801 to ignore casesi jump tables. 12802 * config/mips/mips.h (TARGET_MIPS16_SHORT_JUMP_TABLES): Update 12803 comment. 12804 (CASE_VECTOR_MODE): Use SImode unconditionally. 12805 (CASE_VECTOR_SHORTEN_MODE): Define. 12806 (ASM_OUTPUT_ADDR_DIFF_ELT): Output word-sized addr_diff_elts 12807 when necessary for MIPS16_SHORT_JUMP_TABLES. 12808 128092012-08-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 12810 12811 * config/rs6000/rs6000.c (rs6000_density_test): Free loop body. 12812 128132012-08-23 H.J. Lu <hongjiu.lu@intel.com> 12814 12815 PR driver/54335 12816 * doc/invoke.texi: Add -da and remove -dm. 12817 128182012-08-23 Richard Guenther <rguenther@suse.de> 12819 12820 * tree-vect-stmts.c (vect_finish_stmt_generation): Update 12821 virtual SSA form. 12822 128232012-08-23 Jakub Jelinek <jakub@redhat.com> 12824 12825 * tree.c (copy_node_stat): Clear DECL_STRUCT_FUNCTION. 12826 128272012-08-23 Mingjie Xing <mingjie.xing@gmail.com> 12828 12829 * doc/gty.texi: Fix typo. 12830 128312012-08-23 Richard Guenther <rguenther@suse.de> 12832 12833 * tree-ssa-loop-manip.c (add_exit_phis_var): Allow virtual operands. 12834 (find_uses_to_rename_use): Likewise. 12835 (find_uses_to_rename_bb): Likewise. 12836 (find_uses_to_rename_stmt): Walk over all operands. 12837 128382012-08-22 Oleg Endo <olegendo@gcc.gnu.org> 12839 12840 PR target/54089 12841 * config/sh/predicates (p27_rshift_count_operand, 12842 not_p27_rshift_count_operand): New predicates. 12843 * config/sh/sh.c (sh_ashlsi_clobbers_t_reg_p, 12844 sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p): Handle special 12845 case when shift amount is 31. 12846 (gen_ashift): Emit gen_shlr instead of gen_lshrsi3_m. 12847 * config/sh/sh.md (ashlsi3_d): Set type to 'dyn_shift' instead 12848 of 'arith'. 12849 (ashlsi_c): Rename to shll. Adapt calls to gen_ashlsi_c throughout 12850 the file. 12851 (lshrsi3): Remove clobber from expander. Use shift_count_operand 12852 instead of nonmemory_operand predicate for second operand. Add 12853 handling of case lshrsi3_n_clobbers_t. 12854 (lshrsi3_k): Use p27_rshift_count_operand for second operand. 12855 (lshrsi3_d): Make insn_and_split. Split dynamic shift to constant 12856 shift sequences if beneficial. 12857 (lshrsi3_n): Make insn_and_split. Split constant shift sequence to 12858 dynamic shift if beneficial. 12859 (lshrsi3_n_clobbers_t): New insn_and_split. 12860 (lshrsi3_m): Delete. 12861 128622012-08-22 Steven Bosscher <steven@gcc.gnu.org> 12863 12864 * tracer.c (mark_bb_seen): Use SBITMAP_SIZE. 12865 12866 * alias.c (MAX_ALIAS_LOOP_PASSES): Update comment with rationale, 12867 or rather a lack thereof. 12868 (init_alias_analysis): Propagate the latest information across 12869 the CFG in topological order to propagate as far as possible in 12870 each iteration. Ignore debug insns. 12871 128722012-08-22 H.J. Lu <hongjiu.lu@intel.com> 12873 12874 * doc/invoke.texi: Document -mlong-double-64/-mlong-double-80. 12875 * config/i386/i386.c (flag_opts): Add -mlong-double-64. 12876 (TARGET_HAS_BIONIC): Default long double to 64-bit for Bionic. 12877 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 64 if 12878 TARGET_LONG_DOUBLE_64 is true. 12879 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New macro. 12880 (WIDEST_HARDWARE_FP_SIZE): Defined to 80. 12881 * config/i386/i386.opt (mlong-double-80): New option. 12882 (mlong-double-64): Likewise. 12883 * config/i386/i386-c.c (ix86_target_macros): Define 12884 __LONG_DOUBLE_64__ for TARGET_LONG_DOUBLE_64. 12885 128862012-08-22 H.J. Lu <hongjiu.lu@intel.com> 12887 12888 PR target/54347 12889 * config/i386/i386.c (ix86_split_to_parts): Replace 12890 REAL_VALUE_TO_TARGET_LONG_DOUBLE with real_to_target. 12891 128922012-08-22 Richard Guenther <rguenther@suse.de> 12893 12894 * tree-vectorizer.c (vectorize_loops): Do not call 12895 mark_virtual_operands_for_renaming. 12896 * tree-vect-slp.c (vect_slp_transform_bb): Likewise. 12897 Do not update SSA form here. 12898 128992012-08-22 Dodji Seketeli <dodji@redhat.com> 12900 12901 * tree.h (TREE_NOTHROW): Use the base.nothrow_flag. 12902 129032012-08-22 Richard Guenther <rguenther@suse.de> 12904 12905 PR tree-optimization/46590 12906 * tree-ssa-alias.h (get_continuation_for_phi): Add alias query 12907 counter output argument. 12908 (walk_non_aliased_vuses): Add alias query counter argument 12909 to the walker callback. 12910 * tree-ssa-alias.c (maybe_skip_until): Add alias query counter 12911 output argument and count alias queries. 12912 (get_continuation_for_phi_1): Likewise. 12913 (get_continuation_for_phi): Likewise. 12914 (walk_non_aliased_vuses): Add alias query counter argument 12915 to the walker callback and allow it to abort the walk by 12916 returning -1. 12917 * tree-ssa-pre.c (translate_vuse_through_block): Adjust. 12918 * tree-ssa-sccvn.c (vn_reference_lookup_2): Add alias query 12919 counter parmeter, abort walk if that is bigger than 12920 --param sccvn-max-alias-queries-per-access. 12921 * params.def (sccvn-max-alias-queries-per-access): New param. 12922 * doc/invoke.texi (sccvn-max-alias-queries-per-access): Document. 12923 129242012-08-22 Richard Guenther <rguenther@suse.de> 12925 12926 * tree-ssa-loop-ch.c (copy_loop_headers): Remove redundant checking. 12927 * tree-into-ssa.c (initialize_flags_in_bb): Use gcc_checking_assert 12928 instead of gcc_assert. 12929 (mark_block_for_update): Likewise. 12930 (add_new_name_mapping): Likewise. 12931 (mark_def_sites): Likewise. 12932 (insert_phi_nodes_for): Likewise. 12933 (rewrite_debug_stmt_uses): Likewise. 12934 (rewrite_stmt): Likewise. 12935 (maybe_register_def): Likewise. 12936 (rewrite_update_phi_arguments): Likewise. 12937 (rewrite_update_enter_block): Likewise. 12938 (mark_def_interesting): Likewise. 12939 (prepare_def_site_for): Likewise. 12940 (insert_updated_phi_nodes_for): Likewise. 12941 129422012-08-22 Jakub Jelinek <jakub@redhat.com> 12943 12944 * tree-vect-loop.c (vect_transform_loop): Initialize 12945 check_profitability to false. 12946 12947 * tree-predcom.c (try_combine_chains): Free the worklist vector 12948 at the end. 12949 129502012-08-22 Marc Glisse <marc.glisse@inria.fr> 12951 12952 PR tree-optimization/54317 12953 * tree-vrp.c (extract_range_from_binary_expr_1): Test for 12954 double_int overflow. 12955 Remove dead tests. 12956 129572012-08-22 Jakub Jelinek <jakub@redhat.com> 12958 12959 * tree-vrp.c (find_assert_locations): Skip also edges 12960 from the entry block. 12961 12962 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Call 12963 free_stmt_vec_info on orig_cond after gsi_removing it. 12964 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Always 12965 free body_cost_vec vector. 12966 (vect_analyze_data_refs): If gather is unsuccessful, 12967 free_data_ref (dr). 12968 * tree-inline.c (tree_function_versioning): Free 12969 old_transforms_to_apply vector. 12970 129712012-08-22 Steven Bosscher <steven@gcc.gnu.org> 12972 12973 * tree-ssa-coalesce.c (struct ssa_conflicts_d): Make contents 12974 of this a VEC and add a bitmap obstack. 12975 (ssa_conflicts_new): Allocate the obstack and grow the VEC cleared 12976 to the right size. 12977 (ssa_conflicts_delete): Free the VEC and release the obstack. 12978 (ssa_conflicts_test_p, ssa_conflicts_test_p, ssa_conflicts_add_one, 12979 ssa_conflicts_merge, ssa_conflicts_dump): Update for above changes. 12980 (truct live_track_d): Add another bitmap obstack here. 12981 (new_live_track): Initialize it and use it for all bitmaps. 12982 (delete_live_track): Don't free the bitmaps one at a time, just 12983 release the obstack. 12984 (create_outofssa_var_map): Fix to conform to GCC code style rules. 12985 129862012-08-21 Nathan Froyd <froydnj@gcc.gnu.org> 12987 12988 * config/m32c/constraints.md: New file. 12989 * config/m32c/t-m32c (MD_FILES): Add constraints. 12990 * config/m32c/m32c-protos.h (m32c_const_ok_for_constraint_p): Delete. 12991 (m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete. 12992 (m32c_reg_class_from_constraint): Delete. 12993 (m32c_extra_constraint_p, m32c_extra_constraint_p2): Delete. 12994 (m32c_matches_constraint_p): Declare. 12995 * config/m32c/m32c.h (CONSTRAINT_LEN): Delete. 12996 (REG_CLASS_FROM_CONSTRAINT): Delete. 12997 (CONST_OK_FOR_CONSTRAINT_P): Delete. 12998 (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Delete. 12999 (EXTRA_CONSTRAINT_STR): Delete. 13000 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Delete. 13001 * config/m32c/m32c.c: Include tm-constrs.h 13002 (m32c_reg_class_from_constraint): Delete. 13003 (m32c_const_ok_for_constraint_p): Delete. 13004 (m32c_extra_constraint_p2): Rename to... 13005 (m32c_matches_constraint_p): ...this. Make it return bool. Tweak 13006 formatting. 13007 (m32c_extra_constraint_p): Delete. 13008 (m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete. 13009 (m32c_split_move): Use satisfies_constraint_Ss. 13010 * config/m32c/predicates.md (memsym_operand): Use 13011 satisfies_constraint_Si. 13012 (memimmed_operand): Use satisfies_constraint_Sp. 13013 (m32c_psi_scale, m32c_1bit8_operand): Use satisfies_constraint_Ilb. 13014 (m32c_1bit16_operand): Use satisfies_constraint_Ilw. 13015 (m32c_1mask8_operand): Use satisfies_constraint_ImB. 13016 (m32c_1mask16_operand): Use satisfies_constraint_Imw. 13017 130182012-08-21 Nathan Froyd <froydnj@gcc.gnu.org> 13019 13020 * config/mep/mep.h (REG_CLASS_FROM_CONSTRAINT): Delete. 13021 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. 13022 (CONSTRAINT_LEN, EXTRA_CONSTRAINT): Delete. 13023 * config/mep/mep.c (mep_reg_class_from_constraint): Delete. 13024 (mep_const_ok_for_letter_p, mep_extra_constraint): Delete. 13025 * config/mep/mep-protos.h (mep_reg_class_from_constraint): Delete. 13026 (mep_const_ok_for_letter_p, mep_extra_constraint): Delete. 13027 130282012-08-21 Oleg Endo <olegendo@gcc.gnu.org> 13029 13030 * config/sh/sh.md (cmpeqdi_t, cmpgtdi_t, cmpgedi_t, cmpgeudi_t, 13031 cmpgtudi_t, *movsicc_t_false, *movsicc_t_true, divsi_inv20, negsi_cond, 13032 truncdihi2, ic_invalidate_line_i, ic_invalidate_line_sh4a, 13033 ic_invalidate_line_media, movdf_i4, calli_pcrel, call_valuei, 13034 call_valuei_pcrel, sibcalli_pcrel, sibcall_compact, 13035 sibcall_valuei_pcrel, sibcall_value_compact, casesi_worker_1, 13036 casesi_worker_2, bandreg_m2a, borreg_m2a, bxorreg_m2a, sp_switch_1, 13037 sp_switch_2, stack_protect_set_si, stack_protect_set_si_media, 13038 stack_protect_set_di_media, stack_protect_test_si, 13039 stack_protect_test_si_media, stack_protect_test_di_media): Convert to 13040 multi-line asm output strings. 13041 (divsi_inv_qitable, divsi_inv_hitable): Use single-alternative asm 13042 output. 13043 (*andsi3_bclr, rotldi3_mextr, rotrdi3_mextr, calli, 13044 call_valuei_tbr_rel, movml_push_banked, movml_pop_banked, bclr_m2a, 13045 bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a, bldsign_m2a, 13046 bld_reg, *bld_regqi, band_m2a, bor_m2a, bxor_m2a, mextr_rl, *mextr_lr): 13047 Use tab char instead of '\\t'. 13048 (iordi3): Use braced string. 13049 (*movsi_pop): Use tab chars instead of spaces. 13050 130512012-08-21 Oleg Endo <olegendo@gcc.gnu.org> 13052 13053 PR target/39423 13054 * config/sh/sh.md (*movhi_index_disp): Add support for SH2A 13055 movu.w insn. 13056 130572012-08-21 H.J. Lu <hongjiu.lu@intel.com> 13058 13059 PR middle-end/54332 13060 * df-scan.c (df_bb_verify): Restore df_free_collection_rec call 13061 inside the insn traversal loop. 13062 13063 * vec.h (vec_reserve): Remove the stack allocation check. 13064 130652012-08-21 Marc Glisse <marc.glisse@inria.fr> 13066 13067 * fold-const.c (fold_ternary_loc): Detect identity permutations. 13068 Canonicalize permutations more. 13069 * tree-ssa-forwprop.c (is_combined_permutation_identity): New function. 13070 (simplify_permutation): Likewise. 13071 (ssa_forward_propagate_and_combine): Call it. 13072 130732012-08-21 Richard Guenther <rguenther@suse.de> 13074 13075 * tree-ssa-loop-im.c (tree_ssa_lim_finalize): Properly free 13076 the affine expansion cache. 13077 * tree-ssa-dom.c (free_expr_hash_elt_contents): New function, 13078 split out from ... 13079 (free_expr_hash_elt): ... this one. 13080 (record_cond): Properly free a not needed hashtable element. 13081 (lookup_avail_expr): Likewise. 13082 * tree-into-ssa.c (init_ssa_renamer): Specify a free function 13083 for the var_infos hashtable. 13084 (update_ssa): Likewise. 13085 130862012-08-21 Richard Guenther <rguenther@suse.de> 13087 13088 * alloc-pool.c (pool_alloc): Fix valgrind annotation. 13089 * tree.h: Fix typo and complete flags documentation. 13090 130912012-08-21 Richard Guenther <rguenther@suse.de> 13092 13093 * tree.h (struct tree_base): Add union to make it possible to 13094 re-use the upper 4 bytes for tree codes that do not need as 13095 many flags as others. Move visited and default_def_flag to 13096 common bits section in exchange for saturating_flag and 13097 unsigned_flag. Add SSA name version and tree vec length 13098 fields here. 13099 (struct tree_vec): Remove length field here. 13100 (struct tree_ssa_name): Remove version field here. 13101 131022012-08-20 Jan Hubicka <jh@suse.cz> 13103 13104 PR fortran/48636 13105 * ipa-inline.c (want_inline_small_function_p): Take loop_iterations 13106 hint. 13107 (edge_badness): Likewise. 13108 * ipa-inline.h (inline_hints_vals): Add INLINE_HINT_loop_iterations. 13109 (inline_summary): Add loop_iterations. 13110 * ipa-inline-analysis.c: Include tree-scalar-evolution.h. 13111 (dump_inline_hints): Dump loop_iterations. 13112 (reset_inline_summary): Free loop_iterations. 13113 (inline_node_duplication_hook): Update loop_iterations. 13114 (dump_inline_summary): Dump loop_iterations. 13115 (will_be_nonconstant_expr_predicate): New function. 13116 (estimate_function_body_sizes): Analyze loops. 13117 (estimate_node_size_and_time): Set hint loop_iterations. 13118 (inline_merge_summary): Merge loop iterations. 13119 (inline_read_section): Stream in loop_iterations. 13120 (inline_write_summary): Stream out loop_iterations. 13121 131222012-08-20 Oleg Endo <olegendo@gcc.gnu.org> 13123 13124 PR target/54089 13125 * config/sh/sh.md (rotcr, *rotcr, shar, shlr): New insns and splits. 13126 (ashrdi3_k, lshrdi3_k): Rewrite as insn_and_split. 13127 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p): New function. 13128 * config/sh/sh-protos.h (sh_lshrsi_clobbers_t_reg_p): Declare it. 13129 131302012-08-20 Oleg Endo <olegendo@gcc.gnu.org> 13131 13132 PR target/51244 13133 * config/sh/sh.md (*cset_zero): New insns. 13134 131352012-08-20 Mark Wielaard <mjw@redhat.com> 13136 13137 * dwarf2out.h (enum dw_val_class): Add dw_val_class_high_pc. 13138 * dwarf2out.c (dw_val_equal_p): Handle dw_val_class_high_pc. 13139 (add_AT_low_high_pc): New function. 13140 (AT_lbl): Handle dw_val_class_high_pc. 13141 (print_die): Likewise. 13142 (attr_checksum): Likewise. 13143 (attr_checksum_ordered): Likewise. 13144 (same_dw_val_p): Likewise. 13145 (size_of_die): Likewise. 13146 (value_format): Likewise. 13147 (output_die): Likewise. 13148 (gen_subprogram_die): Use add_AT_low_high_pc. 13149 (add_high_low_attributes): Likewise. 13150 (dwarf2out_finish): Likewise. 13151 131522012-08-20 Jakub Jelinek <jakub@redhat.com> 13153 13154 PR rtl-optimization/54294 13155 * fwprop.c (all_uses_available_at): Ignore debug insns in between 13156 def_insn and target_insn when checking whether the shortcut is 13157 possible. 13158 131592012-08-20 Eric Botcazou <ebotcazou@adacore.com> 13160 13161 * config/sparc/sparc.h (MAX_FIXED_MODE_SIZE): Define. 13162 131632012-08-20 Patrick Marlier <patrick.marlier@gmail.com> 13164 13165 PR middle-end/53992 13166 * omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION. 13167 131682012-08-20 Richard Earnshaw <rearnsha@arm.com> 13169 13170 PR tree-ssa/54295 13171 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Delete rhs_code 13172 declaration and setter. 13173 131742012-08-20 Richard Earnshaw <rearnsha@arm.com> 13175 13176 PR tree-ssa/54295 13177 * tree-ssa-math-opts.c (widening_mult_conversion_strippable_p): 13178 New function. 13179 (is_widening_mult_rhs_p): Use it. 13180 131812012-08-20 Joseph Myers <joseph@codesourcery.com> 13182 13183 * configure.ac (ffs): Check for declaration. 13184 * configure, config.in: Regenerate. 13185 131862012-08-20 Richard Guenther <rguenther@suse.de> 13187 13188 * tree-flow.h (register_new_name_mapping): Remove. 13189 * tree-into-ssa.c (register_new_name_mapping): Likewise. 13190 (add_new_name_mapping): Do not push/pop timevar here. 13191 (create_new_def_for): Instead do it here. Initialize 13192 update-ssa here, handle a NULL def. 13193 * tree-vrp.c (build_assert_expr_for): Use create_new_def_for. 13194 131952012-08-20 Richard Guenther <rguenther@suse.de> 13196 13197 PR tree-optimization/54327 13198 * gimple-fold.c (get_maxval_strlen): Do not walk use-def chains 13199 if the use is registered for SSA update. 13200 132012012-08-20 Jakub Jelinek <jakub@redhat.com> 13202 13203 PR tree-optimization/54321 13204 * tree-ssa-forwprop.c (simplify_builtin_call): Pass 0 instead of 1 13205 as second argument to tree_low_cst call on val2. 13206 132072012-08-20 Richard Guenther <rguenther@suse.de> 13208 13209 * gimple.h (gimple_statement_base): Annotate with GTY chain_next. 13210 132112012-08-20 Richard Guenther <rguenther@suse.de> 13212 13213 PR bootstrap/54326 13214 * genoutput.c (note_constraint): Properly use CONST_CAST. 13215 132162012-08-19 Nick Clifton <nickc@redhat.com> 13217 13218 PR target/54306 13219 * config/arm/mmintrin.h: Remove spurious #endif. 13220 132212012-08-18 Jan-Benedict Glaw <jbglaw@lug-owl.de> 13222 13223 * config/avr/avr-log.c (avr_log_vadump): Properly use 13224 int-promoted enum values. 13225 * config/avr/avr.h (struct mcu_type_s): Change `arch' from 13226 int to enum avr_arch. 13227 * config/avr/gen-avr-mmcu-texi.c (main): Use correct initializer. 13228 132292012-08-18 Jan Hubicka <jh@suse.cz> 13230 13231 PR lto/45375 13232 * ipa-inline.c (want_inline_small_function_p): Bypass 13233 inline limits for hinted functions. 13234 (edge_badness): Dump hints; decrease badness for hinted funcitons. 13235 * ipa-inline.h (enum inline_hints_vals): New enum. 13236 (inline_hints): New type. 13237 (edge_growth_cache_entry): Add hints. 13238 (dump_inline_summary): Update. 13239 (dump_inline_hints): Declare. 13240 (do_estimate_edge_hints): Declare. 13241 (estimate_edge_hints): New inline function. 13242 (reset_edge_growth_cache): Update. 13243 * predict.c (cgraph_maybe_hot_edge_p): Do not ice on indirect edges. 13244 * ipa-inline-analysis.c (dump_inline_hints): New function. 13245 (estimate_edge_devirt_benefit): Return true when function should be 13246 hinted. 13247 (estimate_calls_size_and_time): New hints argument; set it when 13248 devritualization happens. 13249 (estimate_node_size_and_time): New hints argument. 13250 (do_estimate_edge_time): Cache hints. 13251 (do_estimate_edge_growth): Update. 13252 (do_estimate_edge_hints): New function 13253 132542012-08-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 13255 13256 PR middle-end/53823 13257 * expmed.c (expand_mult): Skip synth_mult for negative coefficients 13258 if the mode is larger than a wide int and it is too costly to multiply 13259 by a positive multiplier and negate the result. 13260 132612012-08-18 Steven Bosscher <steven@gcc.gnu.org> 13262 13263 * sparseset.c (sparseset_alloc): Use non-clearing allocation. Tell 13264 valgrind not to worry about reading from unitialized memory. 13265 132662012-08-18 Steven Bosscher <steven@gcc.gnu.org> 13267 13268 PR middle-end/54313 13269 * dse.c (dse_step7): Don't free kill_on_calls bitmap, it is 13270 freed when its obstack is release. 13271 132722012-08-18 Andrew Pinski <pinskia@gmail.com> 13273 13274 * alloc-pool.c (pool_alloc): Add valgrind markers. 13275 (pool_free): Likewise. 13276 132772012-08-17 Walter Lee <walt@tilera.com> 13278 13279 * config/tilegx/feedback.h (FEEDBACK_ENTER_EXPLICIT): Define. 13280 (FEEDBACK_ENTER): Define. 13281 (FEEDBACK_REENTER): Define. 13282 (FEEDBACK_ENTRY): Define. 13283 * config/tilepro/feedback.h: (FEEDBACK_ENTER_EXPLICIT): Define. 13284 (FEEDBACK_ENTER): Define. 13285 (FEEDBACK_REENTER): Define. 13286 (FEEDBACK_ENTRY): Define. 13287 132882012-08-17 H.J. Lu <hongjiu.lu@intel.com> 13289 Gary Funck <gary@intrepid.com> 13290 13291 PR target/20020 13292 * config/i386/i386.c (ix86_member_type_forces_blk): New function. 13293 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro. 13294 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): New macro. 13295 132962012-08-17 Marc Glisse <marc.glisse@inria.fr> 13297 13298 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of 13299 a concatenation. 13300 133012012-08-17 H.J. Lu <hongjiu.lu@intel.com> 13302 13303 * stor-layout.c (compute_record_mode): Replace 13304 MEMBER_TYPE_FORCES_BLK with targetm.member_type_forces_blk. 13305 (layout_type): Likewise. 13306 * system.h: Poison MEMBER_TYPE_FORCES_BLK. 13307 * target.def (member_type_forces_blk): New target hook. 13308 * targhooks.c (default_member_type_forces_blk): New. 13309 * targhooks.h (default_member_type_forces_blk): Likewise. 13310 * doc/tm.texi.in (MEMBER_TYPE_FORCES_BLK): Removed. 13311 (TARGET_MEMBER_TYPE_FORCES_BLK): New hook. 13312 * doc/tm.texi: Regenerated. 13313 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Removed. 13314 * config/ia64/ia64.c (ia64_member_type_forces_blk): New function. 13315 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro. 13316 * config/rs6000/rs6000.c (TARGET_MEMBER_TYPE_FORCES_BLK): New macro. 13317 (rs6000_member_type_forces_blk): New function. 13318 * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Removed. 13319 * config/xtensa/xtensa.c (xtensa_member_type_forces_blk): New function. 13320 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro. 13321 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Removed. 13322 133232012-08-17 Diego Novillo <dnovillo@google.com> 13324 13325 PR bootstrap/54281 13326 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list. 13327 * config.in: Regenerate. 13328 * configure: Regenerate. 13329 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set. 13330 133312012-08-17 Richard Guenther <rguenther@suse.de> 13332 13333 * bitmap.h (struct bitmap_element_def): GTY annotate next/prev. 13334 (struct bitmap_head_def): GTY skip current field. 13335 133362012-08-17 Steven Bosscher <steven@gcc.gnu.org> 13337 13338 PR middle-end/54146 13339 * tree-ssa-loop-im.c (lim_bitmap_obstack): New bitmap_obstack. 13340 (memref_free): Don't free the bitmaps individually here. 13341 (mem_ref_alloc): Allocate the bitmaps on the new bitmap obstack. 13342 (analyze_memory_references): Likewise. 13343 (tree_ssa_lim_initialize): Initialize the new bitmap obstack. 13344 (tree_ssa_lim_finalize): Release it. 13345 * dse.c (dse_bitmap_obstack): New bitmap obstack. 13346 (dse_obstack): New obstack. 13347 (get_group_info): Allocate the bitmaps on the new bitmap obstack. 13348 (dse_step0): Allocate the scratch bitmap on reg_obstack. Initialize 13349 the new bitmap obstack and normal obstack. Use XNEWVEC for bb_table. 13350 (record_store): Allocate regs_set on reg_obstack. 13351 (dse_step1): Allocate regs_live on reg_obstack. 13352 (dse_step2_init): Allocate offset_map_n and offset_map_p on the new 13353 obstack. 13354 (dse_step3_scan): Allocate bitmaps on the new bitmap obstack. 13355 (dse_step3): Likewise. 13356 (dse_confluence_0): Likewise. 13357 (dse_confluence_n): Likewise. 13358 (dse_transfer_function): Likewise. 13359 (dse_step7): Destroy the new obstacks, and everything allocated on 13360 them, in one big sweep. 13361 (rest_of_handle_dse): Update. 13362 * cfgexpand.c (stack_var_bitmap_obstack): New bitmap obstack. 13363 (add_stack_var_conflict): Allocate bitmaps on it. 13364 (add_scope_conflicts_1): Likewise. 13365 (add_scope_conflicts): Likewise. 13366 (update_alias_info_with_stack_vars): Likewise. 13367 (init_vars_expansion): Move TREE_USED fiddling expand_used_vars. 13368 Initialize the new bitmap obstack. 13369 (fini_vars_expansion): Release it. 13370 (estimated_stack_frame_size): Use init_vars_expansion to set things up 13371 and always clean up at the end. 13372 (expand_used_vars): Do the TREE_USED trickery here. Always call 13373 fini_vars_expansion. 13374 * tree-ssa-live.h (struct tree_live_info_d): Make livein and liveout 13375 arrays of bitmap_head to avoid one indirection per bitmap access. 13376 (live_on_entry, live_on_exit, live_var_map, live_merge_and_clear, 13377 make_live_on_entry): Update. 13378 * tree-ssa-live.c (partition_view_bitmap): Don't double-free 'used'. 13379 (liveness_bitmap_obstack): New bitmap obstack. 13380 (remove_unused_locals): Use it to allocate all bitmaps on. Update 13381 for livein/liveout changes in tree-ssa-live.h. 13382 (delete_tree_live_info): Release the bitmap obstack. 13383 (loe_visit_block, live_worklist, set_var_live_on_entry, 13384 calculate_live_on_exit, dump_live_info): Update. 13385 (calculate_live_ranges): Initialize the bitmap. 13386 * tree-ssa-ter.c (ter_bitmap_obstack): New bitmap obstack. 13387 (new_temp_expr_table): Allocate bitmap on it. 13388 (make_dependent_on_partition, add_to_partition_kill_list, 13389 add_dependence, process_replaceable): Likewise. 13390 (find_replaceable_exprs): Initialize and release the new obstack here. 13391 * df-problems.c (df_lr_add_problem): Allocate persistent bitmap 13392 for out_of_date_transfer_functions on df_bitmap_obstack. 13393 (df_live_add_problem): Likewise. 13394 (df_chain_add_problem): Likewise. 13395 (df_word_lr_add_problem): Likewise. 13396 133972012-08-17 Nick Clifton <nickc@redhat.com> 13398 13399 * config/fr30/fr30.md (cbranchsi4): Remove mode from comparison. 13400 (branch_true): Likewise. 13401 (branch_false): Likewise. 13402 13403 * config/mcore/mcore.md (cbranchsi4): Remove mode from comparison. 13404 13405 * config/iq2000/iq2000.md (cbranchsi4): Remove mode from 13406 comparison and label. 13407 (branch_zero): Likewise. 13408 (branch_zero_inverted): Likewise. 13409 (branch_equality): Likewise. 13410 (branch_equality_inverted): Likewise. 13411 (extend-and-compare): Disable until reload issues can be resolved. 13412 * config/iq2000/iq2000.c (gen_conditional_branch): Use VOIDmode 13413 for comparison. 13414 (iq2000_function_arg_advance): Remove CONST_CAST2. 13415 13416 * config/mep/t-mep (mep-pragma.o): Use $(COMPILER) to compile 13417 mep-pragma.c. 13418 134192012-08-17 Georg-Johann Lay <avr@gjlay.de> 13420 13421 * config/avr/t-avr (gen-avr-mmcu-texi): Use $(CC) to compile 13422 gen-avr-mmcu-texi.c. 13423 134242012-08-17 Richard Earnshaw <rearnsha@arm.com> 13425 13426 * arm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction. 13427 * arm.c (thumb2_reorg): Don't convert an ADD instruction that's 13428 already 16 bits. 13429 134302012-08-17 Richard Guenther <rguenther@suse.de> 13431 13432 * hash-table.h (class hash_table): Use a descriptor template 13433 argument instead of decomposed element type and support functions. 13434 (struct pointer_hash): New generic typed pointer-hash. 13435 (struct typed_free_remove, struct typed_noop_remove): Generic 13436 hash_table support pieces. 13437 * coverage.c (struct counts_entry): Add hash_table support members. 13438 * tree-ssa-ccp.c (gimple_htab): Use pointer_hash. 13439 * tree-ssa-coalesce.c (struct ssa_name_var_hash): New generic 13440 SSA name by SSA_NAME_VAR hash. 13441 (coalesce_ssa_name): Use it. 13442 * tree-ssa-pre.c (struct pre_expr_d): Add hash_table support. 13443 (expression_to_id): Adjust. 13444 (struct expr_pred_trans_d): Add hash_table support. 13445 (phi_translate_table): Adjust. 13446 (phi_trans_lookup): Likewise. 13447 (phi_trans_add): Likewise. 13448 (do_regular_insertion): Likewise. 13449 * tree-ssa-tail-merge.c (struct same_succ_def): Add hash_table support. 13450 (same_succ_htab): Adjust. 13451 (find_same_succ_bb): Likewise. 13452 (find_same_succ): Likewise. 13453 (update_worklist): Likewise. 13454 * tree-ssa-threadupdate.c (struct redirection_data): Add hash_table 13455 support. 13456 (redirection_data): Adjust. 13457 134582012-08-17 Richard Guenther <rguenther@suse.de> 13459 13460 * params.def (integer-share-limit): Decrease from 256 to 251, 13461 add rationale. 13462 134632012-08-17 Richard Guenther <rguenther@suse.de> 13464 13465 * tree-sra.c (modify_function): Free redirect_callers vector. 13466 * ipa-split.c (split_function): Free args_to_pass vector. 13467 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Free 13468 body_cost_vec properly. 13469 (vect_enhance_data_refs_alignment): Likewise. 13470 * tree-vect-stmts.c (vectorizable_operation): Do not pre-allocate 13471 vec_oprnds. 13472 (new_stmt_vec_info): Do not pre-allocate STMT_VINFO_SAME_ALIGN_REFS. 13473 * tree-vect-slp.c (vect_free_slp_instance): Free the instance. 13474 (vect_analyze_slp_instance): Free everything. 13475 (destroy_bb_vec_info): Free the SLP instances. 13476 134772012-08-17 Iain Sandoe <iain@codesourcery.com> 13478 13479 * config/rs6000/rs6000.c (macho_branch_islands): Adjust for changes 13480 to vec.h. 13481 134822012-08-17 Jakub Jelinek <jakub@redhat.com> 13483 13484 * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document. 13485 134862012-08-16 Sandra Loosemore <sandra@codesourcery.com> 13487 13488 * config/mips/mips-dsp.md (mips_dpau_h_qbl, mips_dpau_h_qbr) 13489 (mips_dpsu_h_qbl, mips_dpsu_h_qbr, mips_dpaq_s_w_ph) 13490 (mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph, mips_dpaq_sa_l_w) 13491 (mips_dpsq_sa_l_w, mips_maq_s_w_phl, mips_maq_s_w_phr) 13492 (mips_maq_sa_w_phl, mips_maq_sa_w_phr): Add accum_in attribute. 13493 134942012-08-16 Oleg Endo <olegendo@gcc.gnu.org> 13495 13496 PR target/54236 13497 * config/sh/sh.md (addc): Add commutative modifier. 13498 (*addc, *minus_plus_one, *subc, *negc): New insns and splits. 13499 135002012-08-16 Oleg Endo <olegendo@gcc.gnu.org> 13501 13502 PR target/39423 13503 * config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): Handle 13504 potential T_REG clobber. Convert zero extending split to 13505 insn_and_split. 13506 135072012-08-16 Oleg Endo <olegendo@gcc.gnu.org> 13508 13509 PR target/54089 13510 * config/sh/sh.md (ashlsi3_d): Do not split if it would result 13511 in a T_REG clobber. Correct comment. 13512 (ashlsi3_n): Correct comment. 13513 135142012-08-16 Hans-Peter Nilsson <hp@axis.com> 13515 13516 PR middle-end/54261 13517 * optabs.c (expand_atomic_fetch_op): Save and restore code when 13518 retrying after failed attempt. 13519 135202012-08-16 Yuri Rumyantsev <ysrumyan@gmail.com> 13521 13522 * config/i386/i386-protos.h (ix86_split_lea_for_addr) : Add 13523 additional argument. 13524 * config/i386/i386.md (ix86_split_lea_for_addr) : Add 13525 additional argument curr_insn. 13526 * config/i386/i386.c (ix86_split_lea_for_addr): Load base or index 13527 register first, depending on their defintion distances. 13528 (ix86_lea_outperforms): Prefer LEA only if split cost exceeds 13529 AGU stall. 13530 (find_nearest_reg-def): New function. Find register with 13531 nearest definition. 13532 135332012-08-16 Walter Lee <walt@tilera.com> 13534 13535 * config.gcc (tilegx-*-linux*): Add feedback.h. 13536 (tilepro-*-linux*): Likewise. 13537 * config/tilegx/feedback.h: New file. 13538 * config/tilepro/feedback.h: New file. 13539 135402012-08-16 Diego Novillo <dnovillo@google.com> 13541 13542 Revert 13543 13544 PR bootstrap/54281 13545 * double-int.h: Move including of gmp.h ... 13546 * system.h: ... here. 13547 * realmpfr.h: Do not include gmp.h. 13548 * tree-ssa-loop-niter.c: Do not include gmp.h. 13549 135502012-08-16 Segher Boessenkool <segher@kernel.crashing.org> 13551 13552 * config/rs6000/darwin.h (TARGET_IEEE_QUAD): Fix comment. 13553 135542012-08-16 Richard Guenther <rguenther@suse.de> 13555 13556 PR middle-end/54146 13557 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Free the 13558 exit vector. 13559 * ipa-pure-const.c (analyze_function): Use FOR_EACH_LOOP_BREAK. 13560 * cfgloop.h (FOR_EACH_LOOP_BREAK): Fix. 13561 * tree-ssa-structalias.c (handle_lhs_call): Properly free rhsc. 13562 * tree-into-ssa.c (get_ssa_name_ann): Allocate info only when needed. 13563 * tree-ssa-loop-im.c (analyze_memory_references): Adjust. 13564 (tree_ssa_lim_finalize): Free all mem_refs. 13565 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): Free 13566 scc when bailing out. 13567 * modulo-sched.c (sms_schedule): Use FOR_EACH_LOOP_BREAK. 13568 * ira-build.c (loop_with_complex_edge_p): Free loop exit vector. 13569 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): Use 13570 FOR_EACH_LOOP_BREAK. 13571 135722012-08-16 Diego Novillo <dnovillo@google.com> 13573 13574 PR bootstrap/54281 13575 * double-int.h: Move including of gmp.h ... 13576 * system.h: ... here. 13577 * realmpfr.h: Do not include gmp.h. 13578 * tree-ssa-loop-niter.c: Do not include gmp.h. 13579 135802012-08-16 Steven Bosscher <steven@gcc.gnu.org> 13581 13582 PR middle-end/54146 13583 * tree-flow.h (compute_global_livein): Remove prototype. 13584 * tree-into-ssa.c (compute_global_livein): Remove function. 13585 * tree-ssa-loop-manip.c: Include gimple-pretty-print.h. 13586 (find_sibling_superloop): New function. 13587 (compute_live_loop_exits): New function. 13588 (add_exit_phis_edge): Rename to add_exit_phi. Do not allow 13589 inserting a PHI in a block that is not a loop exit for VAR. 13590 Add dumping if TDF_DETAILS. 13591 (add_exit_phis_var): Rewrite. 13592 (add_exit_phis): Update. 13593 (get_loops_exits): Rewrite to return an array of per-loop exits 13594 rather than one bitmap with all loop exits. 13595 (find_uses_to_rename_bb): Ignore virtual PHI nodes. 13596 (rewrite_into_loop_closed_ssa): Update. 13597 135982012-08-16 Nick Clifton <nickc@redhat.com> 13599 13600 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes 13601 before passing it to ASM_OUTPUT_LIMITED_STRING. 13602 13603 * config/bfin/bfin.c (hwloop_optimize): Fix use of VEC_last macro. 13604 13605 * config/avr/t-avr: Replace occurrences of $(CC) with $(COMPILER). 13606 * config/avr/avr.c (avr_legitimize_reload_address): Add casts 13607 for reload_type enums. 13608 (DEF_BUILTIN): Cast the icode to enum insn_code. 13609 136102012-08-15 Segher Boessenkool <segher@kernel.crashing.org> 13611 13612 * config/rs6000/aix43.h (ASM_CPU_SPEC): Use %(asm_default) 13613 instead of -mppc. 13614 * config/rs6000/aix51.h (ASM_CPU_SPEC): Ditto. 13615 136162012-08-15 Segher Boessenkool <segher@kernel.crashing.org> 13617 13618 * config/rs6000/aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. 13619 (RS6000_CALL_GLUE): Adjust for single assembler syntax. 13620 * config/rs6000/aix51.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto. 13621 * config/rs6000/aix52.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto. 13622 * config/rs6000/aix53.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto. 13623 * config/rs6000/aix61.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto. 13624 * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto. 13625 * config/rs6000/darwin.md (whole file): Adjust to single 13626 assembler syntax. 13627 * config/rs6000/darwin64.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. 13628 * config/rs6000/default64.h (TARGET_DEFAULT): Ditto. 13629 * config/rs6000/dfp.md: (whole file): Adjust to single 13630 assembler syntax. 13631 * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. 13632 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto. 13633 * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto. 13634 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto. 13635 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto. 13636 * config/rs6000/rs6000-cpus.def (whole file): Delete POWERPC_BASE_MASK. 13637 * config/rs6000/rs6000-tables.opt: Regenerate. 13638 * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete. 13639 (num_insns_constant_wide): Adjust comments. 13640 (whole file): Adjust to single assembler syntax. 13641 (output_cbranch): Adjust comment. 13642 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Delete. 13643 * config/rs6000/rs6000.md: (whole file): Adjust to single 13644 assembler syntax. 13645 * config/rs6000/rs6000.opt (mnew-mnemonics): Delete. 13646 (mold-mnemonics): Delete. 13647 * config/rs6000/spe.md: (whole file): Adjust to single 13648 assembler syntax. 13649 * config/rs6000/sync.md: (whole file): Adjust to single 13650 assembler syntax. 13651 * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. 13652 (ASM_OUTPUT_REG_PUSH): Adjust. 13653 (ASM_OUTPUT_REG_POP): Adjust. 13654 * config/rs6000/sysv4le.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. 13655 * config/rs6000/vsx.md: (whole file): Adjust to single 13656 assembler syntax. 13657 * config/rs6000/vxworks.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. 13658 * doc/invoke.texi: Adjust documentation to reflect the 13659 removal of -mnew-mnemonics and -mold-mnemonics. 13660 136612012-08-15 Segher Boessenkool <segher@kernel.crashing.org> 13662 13663 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): 13664 Delete handling for -mno-powerpc and -mpowerpc. 13665 * config/rs6000/aix43.h (ASM_CPU_SPEC): Similar. 13666 (ASM_DEFAULT_SPEC): Use -mppc instead of -mcom. 13667 * config/rs6000/aix51.h (ASM_CPU_SPEC, ASM_DEFAULT_SPEC): Ditto. 13668 * config/rs6000/aix52.h (TARGET_DEFAULT): Delete MASK_POWERPC. 13669 * config/rs6000/aix53.h (TARGET_DEFAULT): Ditto. 13670 * config/rs6000/aix61.h (TARGET_DEFAULT): Ditto. 13671 * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto. 13672 * config/rs6000/darwin64.h (TARGET_DEFAULT): Ditto. 13673 * config/rs6000/default64.h (TARGET_DEFAULT): Ditto. 13674 * config/rs6000/driver-rs6000.c (asm_names): Delete handling 13675 for -mcpu=common and -mpowerpc. 13676 * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_POWERPC. 13677 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto. 13678 * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto. 13679 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto. 13680 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto. 13681 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): 13682 Use RS6000_BTM_ALWAYS instead of RS6000_BTM_POWERPC. 13683 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust. 13684 (rs6000_cpu_cpp_builtins): Adjust. 13685 * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete MASK_POWERPC. 13686 (rs6000_builtin_mask_calculate): Adjust. 13687 (rs6000_emit_move): Delete code for ! TARGET_POWERPC. 13688 (rs6000_init_libfuncs): Ditto. 13689 (rs6000_output_function_prologue): Ditto. 13690 (rs6000_opt_masks): Delete MASK_POWERPC. 13691 (rs6000_builtin_mask_names): Delete RS6000_BTM_POWERPC. 13692 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete handling for -mpowerpc. 13693 (RS6000_BTM_POWERPC): Delete. 13694 (RS6000_BTM_COMMON): Delete RS6000_BTM_POWERPC. 13695 * config/rs6000/rs6000.md (extendqisi2 patterns): Adjust for 13696 TARGET_POWERPC always on. 13697 (extendqihi2 patterns): Similar. 13698 (various unnamed subtract patterns): Similar. 13699 (bswaphi2 patterns): Similar. 13700 (divmodsi4): Similar. 13701 (udiv<GPR:mode>3): Similar. 13702 (div<GPR:mode>3 patterns): Similar. 13703 (udivmodsi4): Similar. 13704 (mulhcall): Delete. 13705 (mullcall): Delete. 13706 (divss_call): Delete. 13707 (divus_call): Delete. 13708 (quoss_call): Delete. 13709 (quous_call): Delete. 13710 (insvsi patterns): Adjust. 13711 (addsf3 patterns): Adjust. 13712 (subsf3 patterns): Adjust. 13713 (mulsf3 patterns): Adjust. 13714 (divsf3 patterns): Adjust. 13715 (*fmasf4_fpr): Adjust. 13716 (*fmssf4_fpr): Adjust. 13717 (*nfmasf4_fpr): Adjust. 13718 (*nfmssf4_fpr): Adjust. 13719 (*floatunssidf2_internal): Adjust. 13720 (fix_trunc<SFDF:mode>si2_internal): Adjust. 13721 (fctiwz_<SFDF:mode>): Adjust. 13722 (mulsidi3 patterns): Adjust. 13723 (smulsi3_highpart patterns): Adjust. 13724 (umulsi3_highpart patterns): Adjust. 13725 (fix_trunctfsi2 patterns): Adjust. 13726 (prefetch): Adjust. 13727 * config/rs6000/rs6000.opt (mpowerpc): Replace by stub option. 13728 (mno-powerpc): Delete. 13729 * config/rs6000/sync.md (load_locked<ATOMIC:mode>): Adjust. 13730 (store_conditional<ATOMIC:mode>): Adjust. 13731 (atomic_compare_and_swap<ATOMIC:mode>): Adjust. 13732 (atomic_exchange<ATOMIC:mode>): Adjust. 13733 (atomic_<fetchop_name><ATOMIC:mode>): Adjust. 13734 (atomic_nand<ATOMIC:mode>): Adjust. 13735 (atomic_fetch_<fetchop_name><ATOMIC:mode>): Adjust. 13736 (atomic_fetch_nand<ATOMIC:mode>): Adjust. 13737 (atomic_<fetchop_name>_fetch<ATOMIC:mode>): Adjust. 13738 (atomic_nand_fetch<ATOMIC:mode>): Adjust. 13739 * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_POWERPC. 13740 * config/rs6000/sysv4le.h (TARGET_DEFAULT): Ditto. 13741 * config/rs6000/vxworks.h (TARGET_DEFAULT): Ditto. 13742 * doc/invoke.texi: Adjust documentation. 13743 137442012-08-15 Segher Boessenkool <segher@kernel.crashing.org> 13745 13746 * config/rs6000/rs6000.h (RS6000_BTM_ALWAYS): New. 13747 137482012-08-15 Segher Boessenkool <segher@kernel.crashing.org> 13749 13750 * config/rs6000/aix52.h (ASM_CPU_SPEC): Fix typo. 13751 * config/rs6000/aix53.h (ASM_CPU_SPEC): Ditto. 13752 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto. 13753 * config/rs6000/driver-rs6000.c (asm_names): Ditto. 13754 137552012-08-15 Segher Boessenkool <segher@kernel.crashing.org> 13756 13757 PR target/54142 13758 * config/rs6000/driver-rs6000.c (asm_names): Use %(asm_default) 13759 instead of -mcom. 13760 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Ditto. 13761 137622012-08-15 Sandra Loosemore <sandra@codesourcery.com> 13763 Maxim Kuvyrkov <maxim@codesourcery.com> 13764 Julian Brown <julian@codesourcery.com> 13765 MIPS Technologies, Inc. 13766 13767 * config/mips/mips.md (dspmac, dspmacsat, accext, accmod, dspalu) 13768 (dspalusat): Add insn types. 13769 * config/mips/mips-dsp.md (add<DSPV:mode>3) 13770 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>) 13771 (sub<DSPV:mode>3, mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc) 13772 (mips_addwc, mips_modsub, mips_raddu_w_qb, mips_absq_s_<DSPQ:dspfmt2>) 13773 (mips_precrq_qb_ph, mips_precrq_ph_w, mips_precrq_rs_ph_w) 13774 (mips_precrqu_s_qb_ph, mips_preceq_w_phl, mips_preceq_w_phr) 13775 (mips_precequ_ph_qbl, mips_precequ_ph_qbr, mips_precequ_ph_qbla) 13776 (mips_precequ_ph_qbra, mips_preceu_ph_qbl, mips_preceu_ph_qbr) 13777 (mips_preceu_ph_qbla, mips_preceu_ph_qbra, mips_shll_<DSPV:dspfmt2>) 13778 (mips_shll_s_<DSPQ:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>, mips_shrl_qb) 13779 (mips_shra_ph, mips_shra_r_<DSPQ:dspfmt2>, mips_bitrev, mips_insv) 13780 (mips_repl_qb, mips_repl_ph) 13781 (mips_cmp<DSPV:dspfmt1_1>_eq_<DSPV:dspfmt2>) 13782 (mips_cmp<DSPV:dspfmt1_1>_lt_<DSPV:dspfmt2>) 13783 (mips_cmp<DSPV:dspfmt1_1>_le_<DSPV:dspfmt2>, mips_cmpgu_eq_qb) 13784 (mips_cmpgu_lt_qb, mips_cmpgu_le_qb, mips_pick_<DSPV:dspfmt2>) 13785 (mips_packrl_ph, mips_wrdsp, mips_rddsp): Change type to dspalu. 13786 (mips_dpau_h_qbl, mips_dpau_h_qbr, mips_dpsu_h_qbl, mips_dpsu_h_qbr) 13787 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph) 13788 (mips_maq_s_w_phl, mips_maq_s_w_phr, mips_maq_sa_w_phr): Set type to 13789 dspmac. 13790 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_sa_w_phl): Set type to 13791 dspmacsat. 13792 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w, mips_extp, mips_extpdp): 13793 Set type to accext. 13794 (mips_shilo, mips_mthlip): Set type to accmod. 13795 * config/mips/mips-dspr2.md (mips_absq_s_qb, mips_addu_s_ph) 13796 (mips_adduh_r_qb): Set type to dspalusat. 13797 (mips_addu_ph, mips_adduh_qb, mips_append, mips_balign) 13798 (mips_cmpgdu_eq_qb, mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb) 13799 (mips_precr_qb_ph, mips_precr_sra_ph_w, mips_precr_sra_r_ph_w) 13800 (mips_prepend, mips_shra_qb, mips_shra_r_qb, mips_shrl_ph) 13801 (mips_subu_ph, mips_subuh_qb, mips_subuh_r_qb, mips_addqh_ph) 13802 (mips_addqh_r_ph, mips_addqh_w, mips_addqh_r_w, mips_subqh_ph) 13803 (mips_subqh_r_ph, mips_subqh_w, mips_subqh_r_w): Set type to dspalu. 13804 (mips_dpa_w_ph, mips_dps_w_ph, mips_mulsa_w_ph, mips_dpax_w_ph) 13805 (mips_dpsx_w_ph, mips_dpaqx_s_w_ph, mips_dpsqx_s_w_ph): Set type to 13806 dspmac. Set accum_in attribute. 13807 (mips_subu_s_ph): Set type to dspalusat. 13808 (mips_dpaqx_sa_w_ph, mips_dpsqx_sa_w_ph): Set type to dspmacsat. 13809 Set accum_in attribute. 13810 * config/mips/mips-protos.h (mips_dspalu_bypass_p): Add prototype. 13811 * config/mips/mips.c (dspalu_bypass_table): New. 13812 (mips_dspalu_bypass_p): New. 13813 * config/mips/24k.md (r24k_dsp_alu, r24k_dsp_mac, r24k_dsp_mac_sat) 13814 (r24k_dsp_acc_ext, r24k_dsp_acc_mod): New insn reservations. 13815 (r24k_int_mult, r24k_int_mthilo, r24k_dsp_mac, r24k_dsp_mac_sat) 13816 (r24k_dsp_acc_ext, r24k_dsp_acc_mod, r24k_dsp_alu): New bypasses. 13817 * config/mips/74k.md (r74k_dsp_alu, r74k_dsp_alu_sat, r74k_dsp_mac) 13818 (r74k_dsp_mac_sat, r74k_dsp_acc_ext, r74k_dsp_acc_mod): New insn 13819 reservations. 13820 (r74k_dsp_mac, r74k_dsp_mac_sat, r74k_int_mult, r74k_int_mul3) 13821 (r74k_dsp_mac, r74k_dsp_mac_sat): New bypasses. 13822 138232012-08-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 13824 13825 * config/spu/spu.c: Include "cfgloop.h". 13826 (spu_machine_dependent_reorg): Call loop_optimizer_init and 13827 loop_optimizer_finalize. Use bb_loop_depth instead of loop_depth. 13828 Directly compare loop_father values where appropriate. 13829 * config/spu/t-spu-elf (spu.o): Update dependencies. 13830 138312012-08-15 H.J. Lu <hongjiu.lu@intel.com> 13832 13833 * Makefile.in (tree-cfg.o): Also depend on $(TARGET_H). 13834 138352012-08-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 13836 13837 PR tree-optimization/54245 13838 * gimple-ssa-strength-reduction.c (legal_cast_p_1): New function. 13839 (legal_cast_p): Split out logic to legal_cast_p_1. 13840 (analyze_increments): Avoid introducing multiplies in smaller types. 13841 138422012-08-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 13843 13844 PR tree-optimization/54240 13845 * tree-ssa-phiopt.c (hoist_adjacent_loads): Correct test for 13846 existence of conditional move with given mode. 13847 138482012-08-15 Richard Guenther <rguenther@suse.de> 13849 13850 * double-int.h (double_int::from_unsigned): Rename to ... 13851 (double_int::from_uhwi): ... this. 13852 (double_int::from_signed): Rename to ... 13853 (double_int::from_shwi): ... this. 13854 (double_int::to_signed): Rename to ... 13855 (double_int::to_shwi): ... this. 13856 (double_int::to_unsigned): Rename to ... 13857 (double_int::to_uhwi): ... this. 13858 (double_int::fits_unsigned): Rename to ... 13859 (double_int::fits_uhwi): ... this. 13860 (double_int::fits_signed): Rename to ... 13861 (double_int::fits_shwi): ... this. 13862 (double_int::fits): Rename to ... 13863 (double_int::fits_hwi): ... this. 13864 * double-int.c: Likewise. 13865 138662012-08-15 Steven Bosscher <steven@gcc.gnu.org> 13867 13868 * timevar.def (TV_VARPOOL, TV_WHOPR_WPA_LTRANS_EXEC, TV_LIFE, 13869 TV_LIFE_UPDATE, TV_DF_UREC, TV_INLINE_HEURISTICS, 13870 TV_TREE_LINEAR_TRANSFORM, TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI, 13871 TV_VPT, TV_LOCAL_ALLOC, TV_GLOBAL_ALLOC, TV_SEQABSTR): Remove. 13872 (TV_IPA_INLINING, TV_FLATTEN_INLINING, TV_EARLY_INLINING, 13873 TV_INLINE_PARAMETERS, TV_LOOP_INIT, TV_LOOP_FINI): New. 13874 * timevar.c (timevar_print): Make printing width of timevar names 13875 more flexible, but enforce maximum length. 13876 * ipa-inline.c (pass_early_inline): Use TV_EARLY_INLINING. 13877 (pass_ipa_inline): Use TV_IPA_INLINING. 13878 * ipa-inline-analysis.c (pass_inline_parameters): Use 13879 TV_INLINE_HEURISTICS. 13880 * tree-ssa-loop.c (pass_tree_loop_init): No timevar for wrapper pass. 13881 (pass_tree_loop_done): Likewise. 13882 * final.c (pass_shorten_branches): Use TV_SHORTEN_BRANCH. 13883 * loop-init.c (loop_optimizer_init): Push/pop TV_LOOP_INIT. 13884 (loop_optimizer_finalize): Push/pop TV_LOOP_FINI. 13885 138862012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 13887 13888 * config/arm/neon.md (neon_vaba<mode> VDQIW): Canonicalize operands. 13889 (neon_vabal<mode> VDQIW): Likewise. 13890 138912012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 13892 13893 PR target/54212 13894 * config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not 13895 mark as predicable. Adjust asm template. 13896 (vec_setv2di_internal): Likewise. 13897 (vec_extract<mode> VD, VQ): Likewise. 13898 (vec_extractv2di): Likewise. 13899 (neon_vget_lane<mode>_sext_internal VD, VQ): Likewise. 13900 (neon_vset_lane<mode>_sext_internal VD, VQ): Likewise. 13901 (neon_vdup_n<mode> VX, V32): Likewise. 13902 (neon_vdup_nv2di): Likewise. 13903 139042012-08-14 Maxim Kuvyrkov <maxim@codesourcery.com> 13905 13906 * config/mips/mips.md (define_attr accum_in): New instruction 13907 attribute. Set it for imadd and fmadd patterns. 13908 * config/mips/mips.c (mips_linked_madd_p): Use accum_in to extract 13909 accumulator register. 13910 139112012-08-14 Diego Novillo <dnovillo@google.com> 13912 13913 Merge from cxx-conversion branch. Configury. 13914 13915 * configure.ac (CXX_FOR_BUILD): Define and substitute. 13916 (BUILD_CXXFLAGS): Define. 13917 Remove all handlers of ENABLE_BUILD_WITH_CXX. 13918 Force all build to be with C++. 13919 * Makefile.in (BUILD_CXXFLAGS): Use it. 13920 Remove all handlers of ENABLE_BUILD_WITH_CXX. 13921 * configure: Regenerate. 13922 * config.in: Regenerate. 13923 * doc/install.texi: Remove documentation for --enable-build-with-cxx 13924 and --enable-build-poststage1-with-cxx. 13925 139262012-08-14 Diego Novillo <dnovillo@google.com> 13927 13928 Merge from cxx-conversion branch. Re-implement VEC in C++. 13929 13930 * vec.c (vec_heap_free): Convert into a template function. 13931 (vec_gc_o_reserve_1): Make extern. 13932 (vec_gc_p_reserve): Remove. 13933 (vec_gc_p_reserve_exact): Remove. 13934 (vec_gc_o_reserve): Remove. 13935 (vec_gc_o_reserve_exact): Remove. 13936 (vec_heap_o_reserve_1): Make extern. 13937 (vec_heap_p_reserve): Remove. 13938 (vec_heap_p_reserve_exact): Remove. 13939 (vec_heap_o_reserve): Remove. 13940 (vec_heap_o_reserve_exact): Remove. 13941 (vec_stack_p_reserve): Remove. 13942 (vec_stack_p_reserve_exact): Remove. 13943 * vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS, VEC_ASSERT, 13944 VEC_ASSERT_FAIL, vec_assert_fail): Move earlier in the file. 13945 (VEC): Define to vec_t<T>. 13946 (vec_allocation_t): Define. 13947 (struct vec_prefix): Move earlier in the file. 13948 (vec_t<T>): New template. 13949 (DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P, 13950 DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O, 13951 DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK, 13952 DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'. 13953 (DEF_VEC_A): Provide template instantiations for 13954 GC/PCH markers that do not traverse the vector. 13955 (vec_stack_p_reserve): Remove. 13956 (vec_stack_p_reserve_exact): Remove. 13957 (vec_stack_p_reserve_exact_1): Remove. 13958 (vec_stack_o_reserve): Remove. 13959 (vec_stack_o_reserve_exact): Remove. 13960 (vec_stack_free): Re-write as a template function. 13961 (vec_reserve): New template function. 13962 (vec_reserve_exact): New template function. 13963 (vec_heap_free): New template function if GATHER_STATISTICS is 13964 defined. Otherwise, macro that expands to free(). 13965 (VEC_length_1): New template function. 13966 (VEC_length): Call it. 13967 (VEC_empty_1): New template function. 13968 (VEC_empty): Call it. 13969 (VEC_address_1): New template function. 13970 (VEC_address): Call it. 13971 (VEC_last_1): New template function. 13972 (VEC_last): Call it. Change return type to T&. 13973 Change all users that used VEC_Os. 13974 (VEC_index_1): New template function. 13975 (VEC_index): Call it. Return a T& instead of a T*. 13976 Update all callers that were using VEC_O before. 13977 (VEC_iterate_1): New template function. 13978 (VEC_iterate): Call it. 13979 (VEC_embedded_size_1): New template function. 13980 (VEC_embedded_size): Call it. 13981 (VEC_embedded_init_1): New template function. 13982 (VEC_embedded_init): Call it. 13983 (VEC_alloc_1): New template function. 13984 (VEC_alloc): Call it. If A is 'stack', call XALLOCAVAR to 13985 do the allocation. 13986 (VEC_free_1): New template function. 13987 (VEC_free): Call it. 13988 (VEC_copy_1): New template function. 13989 (VEC_copy): Call it. 13990 (VEC_space_1): New template function 13991 (VEC_space): Call it. 13992 (VEC_reserve_1): New template function. 13993 (VEC_reserve): Call it. 13994 (VEC_reserve_exact_1): New template function. 13995 (VEC_reserve_exact): Call it. 13996 (VEC_splice_1): New template function. 13997 (VEC_splice): Call it. 13998 (VEC_safe_splice_1): New template function. 13999 (VEC_safe_splice): Call it. 14000 (VEC_quick_push_1): New template function. Create two overloads, one 14001 accepting T, the other accepting T *. Update all callers 14002 where T and T * are ambiguous. 14003 (VEC_quick_push): Call it. 14004 (VEC_safe_push_1): New template function. Create two overloads, one 14005 accepting T, the other accepting T *. Update all callers 14006 where T and T * are ambiguous. 14007 (VEC_safe_push): Call it. 14008 (VEC_pop_1): New template function. 14009 (VEC_pop): Call it. 14010 (VEC_truncate_1): New template function. 14011 (VEC_truncate): Call it. 14012 (VEC_safe_grow_1): New template function. 14013 (VEC_safe_grow): Call it. 14014 (VEC_safe_grow_cleared_1): New template function. 14015 (VEC_safe_grow_cleared): Call it. 14016 (VEC_replace_1): New template function. 14017 (VEC_replace): Call it. Always accept T instead of T*. 14018 Update all callers that used VEC_Os. 14019 (VEC_quick_insert_1): New template function. 14020 (VEC_quick_insert): Call it. 14021 (VEC_safe_insert_1): New template function. 14022 (VEC_safe_insert): Call it. 14023 (VEC_ordered_remove_1): New template function. 14024 (VEC_ordered_remove): Call it. 14025 (VEC_unordered_remove_1): New template function. 14026 (VEC_unordered_remove): Call it. 14027 (VEC_block_remove_1): New template function. 14028 (VEC_block_remove): Call it. 14029 (VEC_lower_bound_1): New template function. 14030 (VEC_lower_bound): Call it. 14031 (VEC_OP): Remove. 14032 (DEF_VEC_FUNC_P): Remove. 14033 (DEF_VEC_ALLOC_FUNC_P): Remove. 14034 (DEF_VEC_NONALLOC_FUNCS_P): Remove. 14035 (DEF_VEC_FUNC_O): Remove. 14036 (DEF_VEC_ALLOC_FUNC_O): Remove. 14037 (DEF_VEC_NONALLOC_FUNCS_O): Remove. 14038 (DEF_VEC_ALLOC_FUNC_I): Remove. 14039 (DEF_VEC_NONALLOC_FUNCS_I): Remove. 14040 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove. 14041 (DEF_VEC_ALLOC_FUNC_O_STACK): Remove. 14042 (DEF_VEC_ALLOC_FUNC_I_STACK): Remove. 14043 (vec_reserve_exact): New template function. 14044 14045 * gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove. 14046 * gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP]. 14047 (typedef_name): Emit vec_t<C1> instead of VEC_C1_C2. 14048 (def_vec_alloc): Remove. Update all callers. 14049 * gengtype.c (filter_type_name): New. 14050 (output_mangled_typename): Call it. 14051 (write_func_for_structure): Likewise. 14052 (write_types): Likewise. 14053 (write_root): Likewise. 14054 (write_typed_alloc_def): Likewise. 14055 (note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base. 14056 (note_def_vec_alloc): Remove. 14057 * gengtype.h (note_def_vec_alloc): Remove. 14058 (DEFVEC_ALLOC): Remove token code. 14059 14060 * df-scan.c (df_bb_verify): Remove call to df_free_collection_rec 14061 inside the insn traversal loop. 14062 * gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK. 14063 * ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP. 14064 * reg-stack.c (stack): Rename to STACK_PTR. Update all users. 14065 * tree-vrp.c (stack): Rename to EQUIV_STACK. Update all users. 14066 14067 * config/bfin/bfin.c (hwloop_optimize): Update some calls to 14068 VEC_* for vectors of non-pointers. 14069 * config/c6x/c6x.c (try_rename_operands): Likewise. 14070 (reshuffle_units): Likewise. 14071 * config/mips/mips.c (mips_multi_start): Likewise. 14072 (mips_multi_add): Likewise. 14073 (mips_multi_copy_insn): Likewise. 14074 (mips_multi_set_operand): Likewise. 14075 * hw-doloop.c (discover_loop): Likewise. 14076 (discover_loops): Likewise. 14077 (reorg_loops): Likewise. 14078 140792012-08-14 Diego Novillo <dnovillo@google.com> 14080 14081 Merge from cxx-conversion branch. C++ support in gengtype. 14082 14083 * coretypes.h (gt_pointer_operator): Move from ... 14084 * ggc.h: ... here. 14085 * doc/gty.texi: Document support for C++ templates and 14086 user-provided markers. 14087 * gengtype-lex.l: Update copyright year. 14088 Remove support for recognizing DEF_VEC_O, DEF_VEC_P and DEFVEC_I. 14089 * gengtype-parse.c: Update copyright year. 14090 (token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I. 14091 (require_template_declaration): New. 14092 (typedef_name): Call it. 14093 (type): Replace IS_UNION with KIND. Replace all users. 14094 (def_vec): Remove. Update all users. 14095 * gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT. 14096 (write_state_user_struct_type): New. 14097 (write_state_type): Call it. 14098 (read_state_user_struct_type): New. 14099 (read_state_type): Call it. 14100 * gengtype.c: Update copyright year. 14101 (dump_pair): Move declaration to the top. 14102 (dump_type): Likewise. 14103 (dump_type_list): Likewise. 14104 (dbgprint_count_type_at): Handle TYPE_USER_STRUCT. 14105 (create_user_defined_type): New. 14106 (resolve_typedef): Call it. 14107 (new_structure): Replace argument ISUNION with KIND. 14108 Change users to refer to KIND directly. 14109 Update all callers. 14110 (find_structure): Likewise. 14111 (set_gc_used_type): Handle TYPE_USER_STRUCT. 14112 (create_file): Update HDR to include new copyright year. 14113 (struct walk_type_data): Add field IN_PTR_FIELD. 14114 (output_mangled_typename): Handle TYPE_USER_STRUCT. 14115 (walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER. 14116 Clear it afterwards. 14117 Handle TYPE_USER_STRUCT. 14118 (write_types_process_field): Handle TYPE_USER_STRUCT. 14119 (get_type_specifier): Move earlier in the file. 14120 (write_type_decl): New. 14121 (write_marker_function_name): New. 14122 (write_user_func_for_structure_ptr): New. 14123 (write_user_func_for_structure_body): New. 14124 (write_user_marking_functions): New. 14125 (write_func_for_structure): Call write_marker_function_name 14126 and write_type_decl. 14127 Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user 14128 function directly. 14129 Call write_user_marking_functions on TYPE_USER_STRUCTs. 14130 (write_types_local_user_process_field): New. 14131 (write_pch_user_walking_for_structure_body): New. 14132 (write_pch_user_walking_functions): New. 14133 (write_types_local_process_field): Handle TYPE_USER_STRUCT. 14134 (write_local_func_for_structure): Do not call walk_type for 14135 TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly. 14136 Call write_pch_user_walking_functions for TYPE_USER_STRUCTs. 14137 (write_root): Handle TYPE_USER_STRUCT. 14138 (vec_prefix_type): Remove. Update all users. 14139 (note_def_vec): Remove. Update all users. 14140 (dump_typekind): Handle TYPE_USER_STRUCT. 14141 (dump_type): Initialize SEEN_TYPES, if needed. 14142 Handle TYPE_USER_STRUCT. 14143 (dump_everything): Do not initialize SEEN_TYPES. 14144 * gengtype.h: Update copyright year. 14145 (enum typekind): Add TYPE_USER_STRUCT. 14146 (union_or_struct_p): Rename from UNION_OR_STRUCT_P. 14147 Convert into function. 14148 Add an overload taking const_type_p. 14149 Update all callers. 14150 (new_structure): Change second field to type enum typekind. 14151 Update all users. 14152 (find_structure): Likewise. 14153 (note_def_vec): Remove. 14154 (DEFVEC_OP): Remove. 14155 (DEFVEC_I): Remove. 14156 * ggc-page.c (gt_ggc_mx): Add entry points for marking 14157 'const char *&', 'unsigned char *&' and 'unsigned char&'. 14158 * ggc-zone.c (gt_ggc_mx): Add entry points for marking 14159 'const char *&' and 'unsigned char *&'. 14160 * stringpool.c (gt_pch_nx): Add entry points for marking 14161 'const char *&', 'unsigned char *&' and 'unsigned char&'. 14162 Add an entry point for the overload taking arguments 'unsigned char 14163 *', 'gt_pointer_operator' and 'void *'. 14164 * vec.h (struct vec_prefix): Remove GTY marker. 14165 (struct vec_t): Remove GTY((length)) attribute from field 'vec'. 14166 (gt_ggc_mx (vec_t<T> *)): New template function. 14167 (gt_pch_nx (vec_t<T> *)): New template function. 14168 (gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template 14169 function. 14170 (gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template 14171 function. 14172 14173 * basic-block.h (struct edge_def): Mark GTY((user)). 14174 Remove all GTY markers from fields. 14175 (gt_ggc_mx): Declare. 14176 (gt_pch_nx): Declare. 14177 * tree-cfg.c (gt_ggc_mx): New. 14178 (gt_pch_nx): New. 14179 14180 * gengtype-lex.l (USER_GTY): Add pattern for "user". 14181 * gengtype-parse.c (option): Handle USER_GTY. 14182 (opts_have): New. 14183 (type): Call it. 14184 If the keyword 'user' is used, do not walk the fields 14185 of the structure. 14186 * gengtype.h (USER_GTY): Add. 14187 * doc/gty.texi: Update. 14188 141892012-08-14 Lawrence Crowl <crowl@google.com> 14190 14191 Merge cxx-conversion branch. Implement C++ hash table. 14192 14193 * hash-table.h: New. Implementation borrowed from libiberty/hashtab.c. 14194 * hash-table.c: Likewise. 14195 * tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h. 14196 (static htab_t same_succ_htab): Change type to hash_table; 14197 move specification of helper functions from create call to declaration. 14198 Change users to invoke member functions. 14199 (same_succ_print_traverse): Make extern ssa_.... Change callers. 14200 Remove void* casting. 14201 (same_succ_hash): Likewise. 14202 (same_succ_equal): Likewise. 14203 (same_succ_delete): Likewise. 14204 * tree-ssa-threadupdate.c: Include hash-table.h. 14205 (struct local_info): Rename to ssa_local_info_t to avoid overloading 14206 the type name local_info with the variable name local_info. 14207 (static htab_t redirection_data): Change type to hash_table. 14208 Move specification of helper functions from create call to declaration. 14209 Change users to invoke member functions. 14210 (redirection_data_hash): Make extern ssa_.... Change callers. 14211 Remove void* casting. 14212 (redirection_data_eq): Likewise. 14213 (fix_duplicate_block_edges): Likewise. 14214 (create_duplicates): Likewise. 14215 (fixup_template_block): Likewise. 14216 (redirect_edges): Likewise. 14217 (lookup_redirection_data): Change types associated with the hash table 14218 from void* to their actual type. Remove unnecessary casts. 14219 * tree-ssa-ccp.c: Include hash-table.h. 14220 (typedef gimple_htab): New. Uses hash_table. Replace specific uses 14221 of htab_t with gimple_htab. Change users to invoke member functions. 14222 Move specification of helper functions from create call to declaration. 14223 * tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h. 14224 (hash_ssa_name_by_var): Make extern. Remove void* casting. 14225 (eq_ssa_name_by_var): Likewise. 14226 (coalesce_ssa_name): Change type of local static htab_t ssa_name_hash 14227 to hash_table. Change users to invoke member functions. 14228 Move specification of helper functions from create call to declaration. 14229 * coverage.c: Include hash-table.h instead of hashtab.h. 14230 (static htab_t counts_hash): Change type to hash_table; 14231 move specification of helper functions from create call to declaration. 14232 Change users to invoke member functions. 14233 (htab_counts_entry_hash): Make extern. Rename with coverage_... instead 14234 of htab_... Remove void* casting. 14235 (htab_counts_entry_eq): Likewise. 14236 (htab_counts_entry_del): Likewise. 14237 * tree-ssa-pre.c: Include hash-table.h instead of hashtab.h. 14238 (static htab_t expression_to_id): Change type to hash_table. 14239 Move specification of helper functions from create call to declaration. 14240 Change users to invoke member functions. 14241 (static htab_t phi_translate_table): Likewise. 14242 (pre_expr_eq): Make extern ssa_.... Change callers. 14243 Remove void* casting. 14244 (pre_expr_hash): Likewise. 14245 (expr_pred_trans_hash): Likewise. 14246 (expr_pred_trans_eq): Likewise. 14247 (alloc_expression_id): Change types associated with the hash table 14248 from void* to their actual type. Remove unnecessary casts. 14249 (lookup_expression_id): Likewise. 14250 (phi_trans_lookup): Likewise. 14251 (phi_trans_add): Likewise. 14252 * stringpool.c: Rename uses of libcpp typedef hash_table to 14253 cpp_hash_table. 14254 * Makefile.in: Add hash-table.o to OBJS-libcommon-target. 14255 Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H). 14256 142572012-08-14 Lawrence Crowl <crowl@google.com> 14258 14259 Merge from cxx-conversion branch. Re-write double_int in C++. 14260 14261 * hash-table.h 14262 (typedef double_int): Change to struct (POD). 14263 (double_int::make): New overloads for int to double-int conversion. 14264 (double_int::mask): New. 14265 (double_int::max_value): New. 14266 (double_int::min_value): New. 14267 (double_int::operator ++): New. 14268 (double_int::operator --): New. 14269 (double_int::operator *=): New. 14270 (double_int::operator +=): New. 14271 (double_int::operator -=): New. 14272 (double_int::to_signed): New. 14273 (double_int::to_unsigned): New. 14274 (double_int::fits_unsigned): New. 14275 (double_int::fits_signed): New. 14276 (double_int::fits): New. 14277 (double_int::trailing_zeros): New. 14278 (double_int::popcount): New. 14279 (double_int::multiple_of): New. 14280 (double_int::set_bit): New. 14281 (double_int::mul_with_sign): New. 14282 (double_int::operator * (binary)): New. 14283 (double_int::operator + (binary)): New. 14284 (double_int::operator - (binary)): New. 14285 (double_int::operator - (unary)): New. 14286 (double_int::operator ~ (unary)): New. 14287 (double_int::operator & (binary)): New. 14288 (double_int::operator | (binary)): New. 14289 (double_int::operator ^ (binary)): New. 14290 (double_int::and_not): New. 14291 (double_int::lshift): New. 14292 (double_int::rshift): New. 14293 (double_int::alshift): New. 14294 (double_int::arshift): New. 14295 (double_int::llshift): New. 14296 (double_int::lrshift): New. 14297 (double_int::lrotate): New. 14298 (double_int::rrotate): New. 14299 (double_int::div): New. 14300 (double_int::sdiv): New. 14301 (double_int::udiv): New. 14302 (double_int::mod): New. 14303 (double_int::smod): New. 14304 (double_int::umod): New. 14305 (double_int::divmod): New. 14306 (double_int::sdivmod): New. 14307 (double_int::udivmod): New. 14308 (double_int::ext): New. 14309 (double_int::zext): New. 14310 (double_int::sext): New. 14311 (double_int::is_zero): New. 14312 (double_int::is_one): New. 14313 (double_int::is_minus_one): New. 14314 (double_int::is_negative): New. 14315 (double_int::cmp): New. 14316 (double_int::ucmp): New. 14317 (double_int::scmp): New. 14318 (double_int::ult): New. 14319 (double_int::ugt): New. 14320 (double_int::slt): New. 14321 (double_int::sgt): New. 14322 (double_int::max): New. 14323 (double_int::smax): New. 14324 (double_int::umax): New. 14325 (double_int::min): New. 14326 (double_int::smin): New. 14327 (double_int::umin): New. 14328 (double_int::operator ==): New. 14329 (double_int::operator !=): New. 14330 (shwi_to_double_int): Change implementation to use member function. 14331 (double_int_minus_one): Likewise. 14332 (double_int_zero): Likewise. 14333 (double_int_one): Likewise. 14334 (double_int_two): Likewise. 14335 (double_int_ten): Likewise. 14336 (uhwi_to_double_int): Likewise. 14337 (double_int_to_shwi): Likewise. 14338 (double_int_to_uhwi): Likewise. 14339 (double_int_fits_in_uhwi_p): Likewise. 14340 (double_int_fits_in_shwi_p): Likewise. 14341 (double_int_fits_in_hwi_p): Likewise. 14342 (double_int_mul): Likewise. 14343 (double_int_mul_with_sign): Likewise. 14344 (double_int_add): Likewise. 14345 (double_int_sub): Likewise. 14346 (double_int_neg): Likewise. 14347 (double_int_div): Likewise. 14348 (double_int_sdiv): Likewise. 14349 (double_int_udiv): Likewise. 14350 (double_int_mod): Likewise. 14351 (double_int_smod): Likewise. 14352 (double_int_umod): Likewise. 14353 (double_int_divmod): Likewise. 14354 (double_int_sdivmod): Likewise. 14355 (double_int_udivmod): Likewise. 14356 (double_int_multiple_of): Likewise. 14357 (double_int_setbit): Likewise. 14358 (double_int_ctz): Likewise. 14359 (double_int_not): Likewise. 14360 (double_int_ior): Likewise. 14361 (double_int_and): Likewise. 14362 (double_int_and_not): Likewise. 14363 (double_int_xor): Likewise. 14364 (double_int_lshift): Likewise. 14365 (double_int_rshift): Likewise. 14366 (double_int_lrotate): Likewise. 14367 (double_int_rrotate): Likewise. 14368 (double_int_cmp): Likewise. 14369 (double_int_scmp): Likewise. 14370 (double_int_ucmp): Likewise. 14371 (double_int_max): Likewise. 14372 (double_int_smax): Likewise. 14373 (double_int_umax): Likewise. 14374 (double_int_min): Likewise. 14375 (double_int_smin): Likewise. 14376 (double_int_umin): Likewise. 14377 (double_int_ext): Likewise. 14378 (double_int_sext): Likewise. 14379 (double_int_zext): Likewise. 14380 (double_int_mask): Likewise. 14381 (double_int_max_value): Likewise. 14382 (double_int_min_value): Likewise. 14383 (double_int_zero_p): Likewise. 14384 (double_int_one_p): Likewise. 14385 (double_int_minus_one_p): Likewise. 14386 (double_int_equal_p): Likewise. 14387 (double_int_popcount): Likewise. 14388 * hash-table.c 14389 (double_int_mask): Reuse implementation for double_int::mask. 14390 (double_int_max_value): Likewise. 14391 (double_int_min_value): Likewise. 14392 (double_int_ext): Likewise. 14393 (double_int_zext): Likewise. 14394 (double_int_sext): Likewise. 14395 (double_int_mul_with_sign): Likewise. 14396 (double_int_divmod): Likewise. 14397 (double_int_sdivmod): Likewise. 14398 (double_int_udivmod): Likewise. 14399 (double_int_div): Likewise. 14400 (double_int_sdiv): Likewise. 14401 (double_int_udiv): Likewise. 14402 (double_int_mod): Likewise. 14403 (double_int_smod): Likewise. 14404 (double_int_umod): Likewise. 14405 (double_int_multiple_of): Likewise. 14406 (double_int_lshift): Likewise. 14407 (double_int_rshift): Likewise. 14408 (double_int_lrotate): Likewise. 14409 (double_int_rrotate): Likewise. 14410 (double_int_cmp): Likewise. 14411 (double_int_ucmp): Likewise. 14412 (double_int_scmp): Likewise. 14413 (double_int_max): Likewise. 14414 (double_int_smax): Likewise. 14415 (double_int_umax): Likewise. 14416 (double_int_min): Likewise. 14417 (double_int_smin): Likewise. 14418 (double_int_umin): Likewise. 14419 (double_int_min): Likewise. 14420 (double_int_min): Likewise. 14421 (double_int_min): Likewise. 14422 (double_int_min): Likewise. 14423 (double_int_min): Likewise. 14424 (double_int_min): Likewise. 14425 (double_int::alshift): New. 14426 (double_int::arshift): New. 14427 (double_int::llshift): New. 14428 (double_int::lrshift): New. 14429 (double_int::ult): New. 14430 (double_int::ugt): New. 14431 (double_int::slt): New. 14432 (double_int::sgt): New. 14433 (double_int_setbit): Reuse implementation for double_int::set_bit, 14434 which avoids a name conflict with a macro. 14435 (double_int_double_int_ctz): Reuse implementation for 14436 double_int::trailing_zeros. 14437 (double_int_fits_in_shwi_p): Reuse implementation for 14438 double_int::fits_signed. 14439 (double_int_fits_in_hwi_p): Reuse implementation for double_int::fits. 14440 (double_int_mul): Reuse implementation for binary 14441 double_int::operator *. 14442 (double_int_add): Likewise. 14443 (double_int_sub): Likewise. 14444 (double_int_neg): Reuse implementation for unary 14445 double_int::operator -. 14446 (double_int_max_value): Likewise. 14447 * fixed-value.c: Change to use member functions introduced above. 14448 144492012-08-14 Lawrence Crowl <crowl@google.com> 14450 14451 Merge cxx-conversion branch. Support tree macro calling from gdb. 14452 14453 * tree.h (tree_check): New. 14454 (TREE_CHECK): Use inline function above instead of __extension__. 14455 (tree_not_check): New. 14456 (TREE_NOT_CHECK): Use inline function above instead of __extension__. 14457 (tree_check2): New. 14458 (TREE_CHECK2): Use inline function above instead of __extension__. 14459 (tree_not_check2): New. 14460 (TREE_NOT_CHECK2): Use inline function above instead of __extension__. 14461 (tree_check3): New. 14462 (TREE_CHECK3): Use inline function above instead of __extension__. 14463 (tree_not_check3): New. 14464 (TREE_NOT_CHECK3): Use inline function above instead of __extension__. 14465 (tree_check4): New. 14466 (TREE_CHECK4): Use inline function above instead of __extension__. 14467 (tree_not_check4): New. 14468 (TREE_NOT_CHECK4): Use inline function above instead of __extension__. 14469 (tree_check5): New. 14470 (TREE_CHECK5): Use inline function above instead of __extension__. 14471 (tree_not_check5): New. 14472 (TREE_NOT_CHECK5): Use inline function above instead of __extension__. 14473 (contains_struct_check): New. 14474 (CONTAINS_STRUCT_CHECK): Use inline function above instead of 14475 __extension__. 14476 (tree_class_check): New. 14477 (TREE_CLASS_CHECK): Use inline function above instead of __extension__. 14478 (tree_range_check): New. 14479 (TREE_RANGE_CHECK): Use inline function above instead of __extension__. 14480 (omp_clause_subcode_check): New. 14481 (OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of 14482 __extension__. 14483 (omp_clause_range_check): New. 14484 (OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of 14485 __extension__. 14486 (expr_check): New. 14487 (EXPR_CHECK): Use inline function above instead of __extension__. 14488 (non_type_check): New. 14489 (NON_TYPE_CHECK): Use inline function above instead of __extension__. 14490 (tree_vec_elt_check): New. 14491 (TREE_VEC_ELT_CHECK): Use inline function above instead of 14492 __extension__. 14493 (omp_clause_elt_check): New. 14494 (OMP_CLAUSE_ELT_CHECK): Use inline function above instead of 14495 __extension__. 14496 (tree_operand_check): New. 14497 (TREE_OPERAND_CHECK): Use inline function above instead of 14498 __extension__. 14499 (tree_operand_check_code): New. 14500 (TREE_OPERAND_CHECK_CODE): Use inline function above instead of 14501 __extension__. 14502 (TREE_CHAIN): Simplify implementation. 14503 (TREE_TYPE): Simplify implementation. 14504 (tree_operand_length): Move for compilation dependences. 14505 * gdbinit.in: (macro define __FILE__): New. 14506 (macro define __LINE__): New. 14507 (skip "tree.h"): New. 14508 145092012-08-14 Oleg Endo <olegendo@gcc.gnu.org> 14510 14511 PR target/52933 14512 * config/sh/sh.md (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, 14513 *cmp_div0s_1, *cbranch_div0s, *movsicc_div0s): New insns. 14514 * config/sh/sh.c (sh_rtx_costs): Handle div0s patterns. 14515 145162012-08-14 Oleg Endo <olegendo@gcc.gnu.org> 14517 14518 PR target/50751 14519 * config/sh/constraints.md (Sra): New constraint. 14520 * config/sh/predicates.md (simple_mem_operand, 14521 displacement_mem_operand, zero_extend_movu_operand): New predicates. 14522 (zero_extend_operand): Check zero_extend_movu_operand for SH2A. 14523 * config/sh/sh.md (*zero_extendqisi2_disp_mem, 14524 *zero_extendhisi2_disp_mem): Add new insns and two new related 14525 peephole2 patterns. 14526 145272012-08-14 Steven Bosscher <steven@gcc.gnu.org> 14528 14529 * graphite-scop-detection.c (create_sese_edges): Compute dominance 14530 info before trying to fix loop structure. 14531 * cfgloopmanip.c (fix_loop_structure): Require fast DOM queries. 14532 * tree-cfgcleanup.c (repair_loop_structures): Likewise. 14533 * cfgloop.c (verify_loop_structure): Verify loop fathers. 14534 14535 * dominance.c (init_dom_info): Use gcc_checking_assert, not gcc_assert. 14536 (dom_convert_dir_to_idx, compute_dom_fast_query, 14537 get_immediate_dominator, set_immediate_dominator, get_dominated_by, 14538 redirect_immediate_dominators, nearest_common_dominator, 14539 (dominated_by_p, bb_dom_dfs_in, bb_dom_dfs_out, recompute_dominator, 14540 iterate_fix_dominators, add_to_dominance_info, 14541 delete_from_dominance_info): Likewise. 14542 145432012-08-14 Richard Guenther <rguenther@suse.de> 14544 14545 * cfgexpand.c (expand_used_vars): Use virtual_operand_p. 14546 * gimple-pretty-print.c (dump_phi_nodes): Likewise. 14547 * gimple-streamer-out.c (output_bb): Likewise. 14548 * graphite-sese-to-poly.c (scalar_close_phi_node_p): Likewise. 14549 (rewrite_reductions_out_of_ssa): Likewise. 14550 (rewrite_commutative_reductions_out_of_ss): Likewise. 14551 * ipa-split.c (verify_non_ssa_vars): Likewise. 14552 (consider_split): Likewise. 14553 (visit_bb): Likewise. 14554 (split_function): Likewise. 14555 * lto-streamer-out.c (output_ssa_names): Likewise. 14556 * sese.c (rename_uses): Likewise. 14557 * tree-cfg.c (replace_uses_by): Likewise. 14558 (gimple_merge_blocks): Likewise. 14559 (gimple_cfg2dot): Likewise. 14560 (verify_gimple_phi): Likewise. 14561 (replace_ssa_name): Likewise. 14562 (move_block_to_fn): Likewise. 14563 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise. 14564 * tree-if-conv.c (if_convertible_phi_p): Likewise. 14565 (predicate_scalar_phi): Likewise. 14566 * tree-inline.c (update_ssa_across_abnormal_edges): Likewise. 14567 (copy_phis_for_bb): Likewise. 14568 * tree-loop-distribution.c (generate_loops_for_partition): Likewise. 14569 (destroy_loop): Likewise. 14570 * tree-outof-ssa.c (eliminate_useless_phis): Likewise. 14571 (insert_backedge_copies): Likewise. 14572 * tree-parloops.c (transform_to_exit_first_loop): Likewise. 14573 (gather_scalar_reductions): Likewise. 14574 (try_create_reduction_list): Likewise. 14575 * tree-scalar-evolution.c (analyze_scalar_evolution_for_all_loop_ph): 14576 Likewise. 14577 (scev_const_prop): Likewise. 14578 * tree-ssa-ccp.c (debug_lattice_value): Likewise. 14579 (get_default_value): Likewise. 14580 (ccp_initialize): Likewise. 14581 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise. 14582 * tree-ssa-copy.c (may_propagate_copy): Likewise. 14583 (init_copy_prop): Likewise. 14584 * tree-ssa-dce.c (propagate_necessity): Likewise. 14585 (remove_dead_phis): Likewise. 14586 (forward_edge_to_pdom): Likewise. 14587 (eliminate_unnecessary_stmts): Likewise. 14588 * tree-ssa-live.c (partition_view_init): Likewise. 14589 (remove_unused_locals): Likewise. 14590 (register_ssa_partition_check): Likewise. 14591 * tree-ssa-loop-im.c (movement_possibility): Likewise. 14592 (move_computations_stmt): Likewise. 14593 * tree-ssa-loop-ivopts.c (determine_biv_step): Likewise. 14594 (record_invariant): Likewise. 14595 (find_interesting_uses_outside): Likewise. 14596 (determine_set_costs): Likewise. 14597 * tree-ssa-loop-manip.c (add_exit_phis_var): Likewise. 14598 (find_uses_to_rename_use): Likewise. 14599 (check_loop_closed_ssa_use): Likewise. 14600 (rewrite_phi_with_iv): Likewise. 14601 (canonicalize_loop_ivs): Likewise. 14602 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise. 14603 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise. 14604 * tree-ssa-pre.c (make_values_for_phi): Likewise. 14605 (compute_avail): Likewise. 14606 (eliminate): Likewise. 14607 * tree-ssa-propagate.c (substitute_and_fold): Likewise. 14608 * tree-ssa-reassoc.c (phi_rank): Likewise. 14609 * tree-ssa-strlen.c (strlen_enter_block): Likewise. 14610 * tree-ssa-structalias.c (compute_points_to_sets): Likewise. 14611 (ipa_pta_execute): Likewise. 14612 * tree-ssa-tail-merge.c (same_succ_hash): Likewise. 14613 (release_last_vdef): Likewise. 14614 (same_phi_alternatives_1): Likewise. 14615 (bb_has_non_vop_phi): Likewise. 14616 (vop_phi): Likewise. 14617 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): 14618 Likewise. 14619 * tree-ssa-uninit.c (warn_uninitialized_phi): Likewise. 14620 (execute_late_warn_uninitialized): Likewise. 14621 * tree-ssa.c (verify_ssa_name): Likewise. 14622 (verify_phi_args): Likewise. 14623 (verify_ssa): Likewise. 14624 * tree-stdarg.c (execute_optimize_stdarg): Likewise. 14625 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): 14626 Likewise. 14627 (slpeel_tree_peel_loop_to_edge): Likewise. 14628 (vect_can_advance_ivs_p): Likewise. 14629 (vect_update_ivs_after_vectorizer): Likewise. 14630 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise. 14631 * tree-vrp.c (remove_range_assertions): Likewise. 14632 * value-prof.c (gimple_divmod_values_to_profile): Likewise. 14633 146342012-08-14 Richard Guenther <rguenther@suse.de> 14635 14636 PR tree-optimization/54146 14637 * tree-ssa-pre.c (do_regular_insertion): Use a VEC 14638 indexed by pred edge index for avail. 14639 (do_partial_partial_insertion): Likewise. 14640 (insert_into_preds_of_block): Adjust. 14641 146422012-08-14 Richard Guenther <rguenther@suse.de> 14643 14644 * gimplify.c (create_tmp_from_val): Mark temporary with 14645 DECL_GIMPLE_REG_P here ... 14646 (internal_get_tmp_var): ... instead of here. If we go into 14647 SSA create an SSA name instead of a VAR_DECL. 14648 (gimplify_modify_expr): Do not create SSA names here, assert 14649 we already got them. 14650 (force_gimple_operand_1): Create an SSA name if we go into SSA. 14651 * sese.c (rename_uses): Simplify. 14652 146532012-08-14 Richard Guenther <rguenther@suse.de> 14654 14655 * tree-into-ssa.c: Include diagnostic-core.h. 14656 * Makefile.in (tree-into-ssa.o): Adjust. 14657 146582012-08-14 Richard Guenther <rguenther@suse.de> 14659 14660 * tree-into-ssa.c (update_ssa): Verify we do not rename 14661 symbols that are already partly in SSA form. 14662 146632012-08-14 Jakub Jelinek <jakub@redhat.com> 14664 14665 PR middle-end/53411 14666 PR rtl-optimization/53495 14667 * ira.c (ira): Move delete_trivially_dead_insns call before 14668 find_moveable_pseudos call. 14669 146702012-08-13 Steven Bosscher <steven@gcc.gnu.org> 14671 14672 * tree-ssa-pre.c (do_regular_insertion): Add FIXME markers at points 14673 of potentially huge memset overhead. 14674 (do_partial_partial_insertion): Likewise. 14675 * cfgexpand.c (gimple_expand_cfg): Use XCNEWVEC instead of xcalloc. 14676 * tree-vrp.c (find_assert_locations): Use XNEWVEC instead of XCNEWVEC 14677 for arrays to be filled by pre_and_rev_post_order_compute. Allocate 14678 the right number of slots, not that number plus NUM_FIXED_BLOCKS. 14679 * tree-ssa-reassoc.c (init_reassoc): Likewise. 14680 * cfganal.c (dfs_enumerate_from): Use XNEWVEC instead of XCNEWVEC for 14681 array used as stack. 14682 * tree-ssa-sccvn.c (init_scc_vn): Use XNEWVEC instead of XCNEWVEC for 14683 arrays to be filled by pre_and_rev_post_order_compute. 14684 * cfgloopmanip.c (find_path): Use XNEWVEC instead of XCNEWVEC for 14685 array to be filled by dfs_enumerate_from. 14686 (remove_path): Likewise. 14687 (duplicate_loop_to_header_edge): Use XNEWVEC instead of XCNEWVEC for 14688 array of loops that is filled on the next lines. 14689 * cfgloop.c (get_loop_body): Use XNEWVEC instead of XCNEWVEC for 14690 array of basic blocks to be returned. 14691 (get_loop_body_in_dom_order): Likewise. 14692 (get_loop_body_in_bfs_order): Likewise. 14693 * tree-ssa-loop-manip.c (loop_renamer_obstack): New static obstack 14694 for all bitmaps used for rewriting into loop-closed SSA form. 14695 (add_exit_phis_var): Allocate the def bitmap on it. Clear the livein 14696 bitmap at the end to release a lot of memory. 14697 (add_exit_phis): Allocate the exits bitmap on the new obstack. 14698 (get_loops_exits): Allocate the exits bitmap on the new obstack. 14699 (find_uses_to_rename_use): Allocate a use_blocks bitmap if ver is 14700 seen for the first time. 14701 (find_uses_to_rename): Add "???" for why the whole function must 14702 be re-scanned if changed_bbs is empty. 14703 (rewrite_into_loop_closed_ssa): Allocate bitmaps on the new obstack. 14704 Use XNEWVEC to allocate the use_blocks array. Initialize the new 14705 obstack, and free it at the end. Remove loop over all SSA names. 14706 (check_loop_closed_ssa_stmt): Look only at SSA_OP_USE operands. 14707 * tree-cfg.c (move_sese_region_to_fn): Use XNEWVEC instead of 14708 xcalloc to allocate edge_pred and edge_flag arrays. 14709 147102012-08-13 Uros Bizjak <ubizjak@gmail.com> 14711 14712 * config/i386/i386.h (FIXED_REGISTERS): Do not mark REX registers here. 14713 (CALL_USED_REGISTERS): Use bitmaps to mark call-used registers 14714 for different ABIs. 14715 (enum reg_class): Move CLOBBERED_REGS just before GENERAL_REGS. 14716 (REG_CLASS_NAMES): Update. 14717 (REG_CLASS_CONTENTS): Update. Clear CLOBBERED_REGS members. 14718 * config/i386/i386.c (ix86_conditional_register_usage): Disable 14719 REX registers on 32bit targets. Handle bitmaps from 14720 CALL_USED_REGISTERS initializer. Calculate CLOBBERED_REGS register 14721 set from GENERAL_REGS also for 32bit targets. Do not change call 14722 used register set for TARGET_64BIT_MS_ABI separately. 14723 147242012-08-13 Richard Guenther <rguenther@suse.de> 14725 14726 * basic-block.h (struct basic_block): Remove loop_depth 14727 member, move flags and index members next to each other. 14728 * cfgloop.h (bb_loop_depth): New inline function. 14729 * cfghooks.c (split_block): Do not set loop_depth. 14730 (duplicate_block): Likewise. 14731 * cfgloop.c (flow_loop_nodes_find): Likewise. 14732 (flow_loops_find): Likewise. 14733 (add_bb_to_loop): Likewise. 14734 (remove_bb_from_loops): Likewise. 14735 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. 14736 * gimple-streamer-in.c (input_bb): Do not stream loop_depth. 14737 * gimple-streamer-out.c (output_bb): Likewise. 14738 * bt-load.c: Include cfgloop.h. 14739 (migrate_btr_defs): Use bb_loop_depth. 14740 * cfg.c (dump_bb_info): Likewise. 14741 * final.c (compute_alignments): Likewise. 14742 * ira.c (update_equiv_regs): Likewise. 14743 * tree-ssa-copy.c (init_copy_prop): Likewise. 14744 * tree-ssa-dom.c (loop_depth_of_name): Likewise. 14745 * tree-ssa-forwprop.c: Include cfgloop.h. 14746 (forward_propagate_addr_expr): Use bb_loop_depth. 14747 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise. 14748 * tree-ssa-sink.c (select_best_block): Likewise. 14749 * ipa-inline-analysis.c: Include cfgloop.h. 14750 (estimate_function_body_sizes): Use bb_loop_depth. 14751 * Makefile.in (tree-ssa-forwprop.o): Depend on $(CFGLOOP_H). 14752 (ipa-inline-analysis.o): Likewise. 14753 (bt-load.o): Likewise. 14754 147552012-08-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 14756 Jakub Jelinek <jakub@redhat.com> 14757 14758 PR driver/54210 14759 * config/i386/driver-i386.c (host_detect_local_cpu): Test bit_PRFCHW 14760 bit of CPUID 0x80000001 %ecx instead of CPUID 7 %ecx. 14761 * config/i386/cpuid.h (bits_PRFCHW): Move definition to CPUID 14762 0x80000001 %ecx flags. 14763 147642012-08-13 Richard Guenther <rguenther@suse.de> 14765 14766 * tree-cfg.c (print_loop): Avoid ICEing for loops marked for 14767 removal and loops with multiple latches. 14768 147692012-08-13 Jakub Jelinek <jakub@redhat.com> 14770 14771 PR c/53968 14772 * tree.c (integer_pow2p): Avoid undefined signed overflows. 14773 * simplify-rtx.c (neg_const_int): Likewise. 14774 * expr.c (fixup_args_size_notes): Likewise. 14775 * stor-layout.c (set_min_and_max_values_for_integral_type): Likewise. 14776 * double-int.c (mul_double_wide_with_sign): Likewise. 14777 (double_int_mask): Likewise. 14778 * tree-ssa-loop-ivopts.c (get_address_cost): Likewise. 14779 147802012-08-13 Richard Guenther <rguenther@suse.de> 14781 14782 PR tree-optimization/54200 14783 * tree-ssa-copyrename.c (rename_ssa_copies): Do not add 14784 PHI results to another partition if not all PHI arguments 14785 have the same partition. 14786 147872012-08-12 Jan Hubicka <jh@suse.cz> 14788 14789 * tree-pass.h (write_summary, write_optimization_summary): Remove 14790 set and vset arguments. 14791 * ipa-cp.c (ipcp_write_summary): Remove set and vset arugments. 14792 (write_node_summary_p): Likewise; use the encoder. 14793 (ipa_reference_write_optimization_summary): Likewise. 14794 * lto-cgraph.c (output_cgraph_opt_summary): Use encoder. 14795 (lto_symtab_encoder_new): Initialize in_partition field. 14796 (lto_symtab_encoder_delete): Destroy in_partition field. 14797 (LCC_NOT_FOUND): Move to lto-streamer.h 14798 (lto_symtab_encoder_deref): Likewise. 14799 (lto_symtab_encoder_in_partition_p, 14800 lto_set_symtab_encoder_in_partition): New functions. 14801 (referenced_from_other_partition_p): Rewrite to use encoder. 14802 (reachable_from_other_partition_p): Likewise. 14803 (referenced_from_this_partition_p): Likewise. 14804 (reachable_from_this_partition_p): Likewise. 14805 (lto_output_node): Likewise. 14806 (lto_output_varpool_node): Likewise. 14807 (output_refs): Likewise. 14808 (compute_ltrans_boundary): Initialize in_partition fileds of 14809 the encoder. 14810 (output_symtab): Likewise. 14811 (input_refs): Match the changes in output_refs. 14812 (output_cgraph_opt_summary_p): Remove set argument. 14813 (output_node_opt_summary): Replace set by encoder. 14814 (output_cgraph_opt_summary): Remove set argument; use 14815 the encoder. 14816 * ipa-pure-const.c (pure_const_write_summary): Remove set and vset 14817 arguments; use the encoder. 14818 * lto-streamer-out.c (lto_output): Remove set and vset argument; use 14819 the encoder. 14820 (produce_symtab): Likewise. 14821 * ipa-inline.h (inline_write_summary): Remove set and vset arguments. 14822 * ipa-inline-analysis.c (inline_write_summary): Likewise. 14823 * ipa-prop.c (ipa_prop_write_jump_functions): Remove set argument; 14824 use encoder. 14825 * ipa-prop.h (ipa_prop_write_jump_functions): Likewise. 14826 * passes.c (ipa_write_summaries_2): Remove set and vset arguments. 14827 (ipa_write_summaries_1): Update. 14828 (ipa_write_optimization_summaries_1): Likewise. 14829 (ipa_write_optimization_summaries): Likewise. 14830 * lto-streamer.h (lto_symtab_encoder_t): Add in_partition. 14831 (lto_symtab_encoder_iterator): New type. 14832 (lto_symtab_encoder_deref): Make inline. 14833 (output_symtab, referenced_from_other_partition_p, 14834 reachable_from_other_partition_p, referenced_from_this_partition_p, 14835 reachable_from_this_partition_p): Update. 14836 (lsei_end_p, lsei_next, lsei_node, lsei_cgraph_node, 14837 lsei_varpool_node): New inline functions. 14838 (LCC_NOT_FOUND): New macro. 14839 (lto_symtab_encoder_deref, lsei_start, lsei_next_in_partition, 14840 lsei_start_in_partition, lsei_next_function_in_partition, 14841 lsei_start_function_in_partition, lsei_next_variable_in_partition, 14842 lsei_start_variable_in_partition): New inline functions. 14843 148442012-08-12 Oleg Endo <olegendo@gcc.gnu.org> 14845 14846 * config/sh/sh.md (prefetch): Simplify expander. Fix condition to 14847 allow SH3. 14848 (*prefetch_media): Move insn below expander. 14849 (*prefetch): Fix condition to allow SH3. 14850 148512012-08-12 Oleg Endo <olegendo@gcc.gnu.org> 14852 14853 PR target/51244 14854 * config/sh/sh.md: Add splits for inverted compare and branch 14855 opportunities. 14856 (*cmpeqsi_t): New insn. 14857 (cmpgtsi_t, cmpgesi_t): Swap r and N alternatives. 14858 (cmpgeusi_t): Use satisfies_constraint_Z. Emit sett insn in 14859 replacement insn list and not in the preparation statements. 14860 (clrt, sett): Add mt_group attribute. 14861 148622012-08-12 Marc Glisse <marc.glisse@inria.fr> 14863 14864 PR middle-end/54193 14865 * gimple-pretty-print.c (dump_ternary_rhs): Handle 4 arguments. 14866 148672012-08-12 Oleg Endo <olegendo@gcc.gnu.org> 14868 14869 PR target/39423 14870 * config/sh/predicates.md (mem_index_disp_operand): Check for 14871 arith_reg_operand instead of REG_P. 14872 148732012-08-11 Bernd Schmidt <bernds@codesourcery.com> 14874 14875 * reload1.c (replaced_subreg, gen_reload): Add 14876 SECONDARY_MEMORY_NEEDED ifdefs as necessary. 14877 148782012-08-11 Jan Hubicka <jh@suse.cz> 14879 14880 * lto-section-in.c (lto_section_name): Do not use "symtab" as part of 14881 symtab_node sectoin name; it confuses plugin. 14882 148832012-08-11 Uros Bizjak <ubizjak@gmail.com> 14884 14885 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID 14886 index in the va_list_vars bitmap by num_ssa_names. 14887 148882012-08-11 Uros Bizjak <ubizjak@gmail.com> 14889 14890 * config/i386/sse.md (xop integer multiply/add insns): Use 14891 register_operand for operand 3 predicate. 14892 (xop_phadd<u>bq): Fix vec_select selectors. 14893 148942012-08-11 Martin Jambor <mjambor@suse.cz> 14895 14896 PR fortran/48636 14897 * ipa-inline.h (condition): New fields offset, agg_contents and by_ref. 14898 * ipa-inline-analysis.c (agg_position_info): New type. 14899 (add_condition): New parameter aggpos, also store agg_contents, by_ref 14900 and offset. 14901 (dump_condition): Also dump aggregate conditions. 14902 (evaluate_conditions_for_known_args): Also handle aggregate 14903 conditions. New parameter known_aggs. 14904 (evaluate_properties_for_edge): Gather known aggregate contents. 14905 (inline_node_duplication_hook): Pass NULL known_aggs to 14906 evaluate_conditions_for_known_args. 14907 (unmodified_parm): Split into unmodified_parm and unmodified_parm_1. 14908 (unmodified_parm_or_parm_agg_item): New function. 14909 (set_cond_stmt_execution_predicate): Handle values passed in 14910 aggregates. 14911 (set_switch_stmt_execution_predicate): Likewise. 14912 (will_be_nonconstant_predicate): Likewise. 14913 (estimate_edge_devirt_benefit): Pass new parameter known_aggs to 14914 ipa_get_indirect_edge_target. 14915 (estimate_calls_size_and_time): New parameter known_aggs, pass it 14916 recrsively to itself and to estimate_edge_devirt_benefit. 14917 (estimate_node_size_and_time): New vector known_aggs, pass it o 14918 functions which need it. 14919 (remap_predicate): New parameter offset_map, use it to remap aggregate 14920 conditions. 14921 (remap_edge_summaries): New parameter offset_map, pass it recursively 14922 to itself and to remap_predicate. 14923 (inline_merge_summary): Also create and populate vector offset_map. 14924 (do_estimate_edge_time): New vector of known aggregate contents, 14925 passed to functions which need it. 14926 (inline_read_section): Stream new fields of condition. 14927 (inline_write_summary): Likewise. 14928 * ipa-cp.c (ipa_get_indirect_edge_target): Also examine the aggregate 14929 contents. Let all local callers pass NULL for known_aggs. 14930 149312012-08-11 Jan Hubicka <jh@suse.cz> 14932 14933 * lto-cgraph.c (output_cgraph): Rename to ... 14934 (output_symtab): ... this one. Update for LTO_section_symtab_nodes. 14935 (input_cgraph): Rename to ... 14936 (input_symtab): ... this one. Update for LTO_section_symtab_nodes. 14937 * lto-streamer-out.c (create_output_block): Do not set 14938 section_type. 14939 (produce_asm): Likewise. 14940 (lto_output_toplevel_asms): Likewise. 14941 (produce_asm_for_decls): Likewise. 14942 (lto_output): Use output_symtab. 14943 * lto-section-in.c (lto_section_name): Update. 14944 * lto-section-out.c (lto_destroy_simple_output_block): Remove 14945 section_type. 14946 * lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool; 14947 rename LTO_section_cgraph to LTO_section_symtab_nodes. 14948 (struct lto_header): Remove section_type. 14949 149502012-08-11 Jan Hubicka <jh@suse.cz> 14951 14952 * cgraph.h (vector types for symtab_node): Add. 14953 * ipa-reference.c (ipa_reference_write_optimization_summary): Update 14954 for new symtab encoder. 14955 (ipa_reference_read_optimization_summary): Likewise. 14956 * lto-cgraph.c (output_varpool): Remove. 14957 (input_cgraph_opt_summary): Take symtab nodes vector as argument. 14958 (LTO_cgraph_tags): Rename to ... 14959 (LTO_symtab_tags): ... this one; add LTO_symtab_variable. 14960 (lto_cgraph_encoder_new): Rename to ... 14961 (lto_symtab_encoder_new): ... this on. 14962 (lto_cgraph_encoder_encode): Rename to ... 14963 (lto_symtab_encoder_encode): ... this one. 14964 (lto_cgraph_encoder_delete): Rename to ... 14965 (lto_symtab_encoder_delete): ... this one. 14966 (lto_cgraph_encoder_deref): Rename to ... 14967 (lto_symtab_encoder_deref): ... this one. 14968 (lto_cgraph_encoder_encode_body_p): Rename to ... 14969 (lto_symtab_encoder_encode_body_p): ... this one. 14970 (lto_varpool_encoder_new, lto_varpool_encoder_delete, 14971 lto_varpool_encoder_encode, lto_varpool_encoder_lookup, 14972 lto_varpool_encoder_deref): Remove. 14973 (lto_varpool_encoder_encode_initializer_p): Rename to ... 14974 (lto_symtab_encoder_encode_initializer_p): ... this one. 14975 (lto_set_varpool_encoder_encode_initializer): Rename to ... 14976 (lto_set_symtab_encoder_encode_initializer): ... this one. 14977 (lto_output_edge): Update. 14978 (lto_output_node): Update. 14979 (lto_output_varpool_node): Update; stream out LTO_symtab_variable tag. 14980 (lto_output_ref): Drop varpool_encoder; update. 14981 (add_node_to): Update. 14982 (add_references): Update. 14983 (output_outgoing_cgraph_edges): Update. 14984 (output_refs): Update. 14985 (compute_ltrans_boundary): Update. 14986 (output_cgraph): Update; output varpools too. 14987 (input_overwrite_node): Update. 14988 (output_varpool): Remove. 14989 (input_node): Update. 14990 (input_ref): Update. 14991 (input_edge): Update. 14992 (input_cgraph_1): Update; input varpool too; unify fixup code. 14993 (input_varpool_1): Remove. 14994 (input_refs): Update. 14995 (input_cgraph): Update. 14996 (output_node_opt_summary): Update. 14997 (input_cgraph_opt_section): Update. 14998 (input_cgraph_opt_summary): Update. 14999 * ipa-pure-const.c (pure_const_write_summary): Update. 15000 (pure_const_read_summary): Update. 15001 * lto-streamer-out.c (lto_write_tree): Update. 15002 (lto_output): Likewise. 15003 (produce_symtab): Update. 15004 (produce_asm_for_decls): Update. 15005 * ipa-inline-analysis.c (inline_read_section): Update. 15006 (inline_write_summary): Update. 15007 * ipa-prop.c (ipa_write_node_info): Update. 15008 (ipa_prop_read_section): Update. 15009 * lto-streamer.h (lto_cgraph_encoder_d): Rename to ... 15010 (lto_symtab_encoder_d): ... this one; add initializer. 15011 (lto_cgraph_encoder_t): Rename to ... 15012 (lto_symtab_encoder_t): ... this one. 15013 (lto_cgraph_encoder_size): Rename to ... 15014 (lto_symtab_encoder_size): ... this one. 15015 (lto_varpool_encoder_d): ... remove. 15016 (lto_varpool_encoder_t): Remove. 15017 (lto_out_decl_state): Remove cgraph_node_encoder, varpool_node_encoder 15018 add symtab_node_encoder. 15019 (lto_file_decl_data): Likewise. 15020 (lto_cgraph_encoder_deref, lto_cgraph_encoder_lookup, 15021 lto_cgraph_encoder_new, lto_cgraph_encoder_encode, 15022 lto_cgraph_encoder_delete, lto_cgraph_encoder_encode_body_p, 15023 lto_varpool_encoder_encode_body_p, lto_varpool_encoder_deref, 15024 lto_varpool_encoder_lookup, lto_varpool_encoder_new, 15025 lto_varpool_encoder_encode, lto_varpool_encoder_delete, 15026 lto_varpool_encoder_encode_initializer_p): Remove. 15027 (lto_symtab_encoder_deref, lto_symtab_encoder_lookup, 15028 lto_symtab_encoder_t, lto_symtab_encoder_encode, 15029 lto_symtab_encoder_delete, lto_symtab_encoder_encode_body_p, 15030 lto_symtab_encoder_encode_initializer_p): New. 15031 150322012-08-11 Uros Bizjak <ubizjak@gmail.com> 15033 15034 * config/i386/i386.md (isa): Add fma and fma4. 15035 (enabled): Handle fma and fma4. 15036 * config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>. 15037 (*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>. 15038 (*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>. 15039 (*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>. 15040 (*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>. 15041 (*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>. 15042 150432012-08-10 Uros Bizjak <ubizjak@gmail.com> 15044 15045 * config/i386/sse.md (*fma_fmadd_<mode>, *fma_fmsub_<mode>, 15046 *fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>, 15047 *fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns. 15048 150492012-08-10 Uros Bizjak <ubizjak@gmail.com> 15050 15051 * config/i386/i386.md (simple LEA peephole2s): Add zero-extend 15052 variants of PLUS and MULT simple LEA patterns. Disable PLUS 15053 patterns for TARGET_OPT_AGU. 15054 150552012-08-10 Richard Guenther <rguenther@suse.de> 15056 15057 * Makefile.in (OBJS): Remove matrix-reorg.o. 15058 (matrix-reorg.o): Remove dependence rule. 15059 (GTFILES): Remove matrix-reorg.c. 15060 * matrix-reorg.c: Remove. 15061 * passes.c (init_optimization_passes): Do not schedule 15062 pass_ipa_matrix_reorg. 15063 * tree-pass.h (pass_ipa_matrix_reorg): Remove. 15064 * common.opt (fipa-matrix-reorg): Stub out. 15065 * doc/invoke.texi (fipa-matrix-reorg): Remove documentation. 15066 150672012-08-10 Richard Guenther <rguenther@suse.de> 15068 15069 PR middle-end/54219 15070 * fold-const.c (fold_ternary_loc): Do not reverse the mask 15071 when canonicalizing it when folding VEC_PERM_EXPR. 15072 150732012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 15074 15075 PR middle-end/54211 15076 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace): 15077 Use cand_type to determine whether pointer arithmetic will be generated. 15078 150792012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 15080 15081 * doc/sourcebuild.texi: Document long_neq_int effective target. 15082 150832012-08-10 Richard Guenther <rguenther@suse.de> 15084 15085 PR tree-optimization/54109 15086 * tree-ssa-forwprop.c 15087 (forward_propagate_addr_into_variable_array_index): Remove. 15088 (forward_propagate_addr_expr_1): Adjust. 15089 150902012-08-10 Richard Guenther <rguenther@suse.de> 15091 15092 * tree-cfg.c (dump_function_to_file): Make sure to dump 15093 anonymous SSA names when there are no local decls. 15094 150952012-08-10 Steven Bosscher <steven@gcc.gnu.org> 15096 15097 * tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve. 15098 * tree-into-ssa.c (get_ssa_name_ann): Likewise. 15099 (mark_phi_for_rewrite): Likewise. 15100 (compute_global_livein): Use VEC_reserve outside the innermost 15101 loop and VEC_quick_push instead of VEC_safe_push in that loop. 15102 (update_ssa): Re-organize to avoid unnecessary sbitmap_zero'ing 15103 of new_ssa_names and old_ssa_names. Allocate phis_to_rewrite to 15104 the correct initial size. 15105 151062012-08-10 Richard Guenther <rguenther@suse.de> 15107 15108 * tree-ssa-pre.c (pretemp, storetemp, prephitemp): Remove. 15109 (need_creation): Remove. 15110 (get_representative_for): Use anonymous named SSA names. 15111 (create_expression_by_pieces): Likewise. 15112 (insert_into_preds_of_block): Likewise. 15113 (init_pre): Do not init removed vars. 15114 (fini_pre): Do not free need_creation. 15115 * tree-ssa-forwprop.c (simplify_bitwise_binary): Use anonymous 15116 SSA names. 15117 * tree-ssa-loop-manip.c (create_iv): Likewise. 15118 * value-prof.c (gimple_divmod_fixed_value): Likewise. 15119 (gimple_mod_pow2): Likewise. 15120 (gimple_mod_subtract): Likewise. 15121 (gimple_ic): Likewise. 15122 (gimple_stringop_fixed_value): Likewise. 15123 * tree-ssa-phiopt.c (condstoretemp): Remove. 15124 (tree_ssa_phiopt_worker): Use anonymous named SSA names. 15125 (conditional_replacement): Likewise. 15126 (abs_replacement): Likewise. 15127 (cond_store_replacement): Likewise. 15128 (cond_if_else_store_replacement_1): Likewise. 15129 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise. 15130 (rewrite_bittest): Likewise. 15131 * tree-ssa-reassoc.c (build_and_add_sum): Get type from callers 15132 and build anonymous SSA names. 15133 (undistribute_ops_list): Adjust. 15134 (eliminate_redundant_comparison): Use anonymous SSA names. 15135 (rewrite_expr_tree_parallel): Likewise. 15136 (get_reassoc_pow_ssa_name): Remove. 15137 (attempt_builtin_powi): Adjust. 15138 (reassociate_bb): Likewise. 15139 * tree-ssa-strlen.c (get_string_length): Use anonymous SSA names. 15140 * tree-switch-conversion.c (emit_case_bit_tests): Likewise. 15141 (build_arrays): Likewise. 15142 * tree-tailcall.c (adjust_return_value_with_ops): Likewise. 15143 (create_tailcall_accumulator): Likewise. 15144 * tree-vect-generic.c (expand_vector_divmod): Likewise. 15145 * tree-profile.c (gcov_type_tmp_var): Remove. 15146 (gimple_init_edge_profiler): Do not initialize it and use anonymous 15147 SSA names. 15148 (gimple_gen_ic_profiler): Likewise. 15149 (tree_profiling): Adjust. 15150 * tree-sra.c (build_ref_for_offset): Use anonymous SSA names. 15151 * tree-ssa-math-opts.c (execute_cse_sincos_1): Likewise. 15152 (powi_as_mults_1): Likewise. 15153 (powi_as_mults): Likewise. 15154 (build_and_insert_call): Adjust. 15155 (build_and_insert_binop): Likewise. 15156 (build_and_insert_ref): Likewise. 15157 (build_and_insert_cast): Likewise. 15158 (gimple_expand_builtin_pow): Likewise. 15159 (gimple_expand_builtin_cabs): Likewise. 15160 (execute_optimize_bswap): Use anonymous SSA names. 15161 (convert_mult_to_widen): Likewise. 15162 (convert_plusminus_to_widen): Likewise. 15163 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. 15164 * tree-ssa-propagate.c (update_call_from_tree): Likewise. 15165 * tree-if-conv.c (ifc_temp_var): Likewise. 15166 * tree-loop-distribution.c (generate_memset_builtin): Likewise. 15167 * tree-parloops.c (take_address_of): Likewise. 15168 * tree-vect-data-refs.c (vect_permute_store_chain): Likewise. 15169 (vect_permute_load_chain): Likewise. 15170 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise. 15171 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise. 15172 (vect_handle_widen_op_by_const): Likewise. 15173 (vect_operation_fits_smaller_type): Likewise. 15174 (vect_recog_over_widening_pattern): Likewise. 15175 * tree-vect-stmts.c (vect_init_vector): Likewise. 15176 * tree-vrp.c (simplify_truth_ops_using_ranges): Likewise. 15177 (simplify_float_conversion_using_ranges): Likewise. 15178 151792012-08-10 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15180 15181 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix 15182 target mask of __builtin_ia32_rdseed_di_step builtin. 15183 151842012-08-10 Richard Guenther <rguenther@suse.de> 15185 15186 PR tree-optimization/54027 15187 * tree-vrp.c (extract_range_from_binary_expr_1): Merge RSHIFT_EXPR 15188 and LSHIFT_EXPR handling, force -fwrapv for the multiplication used 15189 to handle LSHIFT_EXPR with a constant. 15190 151912012-08-10 Richard Guenther <rguenther@suse.de> 15192 15193 * tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE 15194 is recorded as var. 15195 (SSA_NAME_IDENTIFIER): Return the IDENTIFIER_NODE of the SSA_NAME 15196 or its SSA_NAME_VAR. 15197 (SET_SSA_NAME_VAR_OR_IDENTIFIER): New setter. 15198 * tree-ssanames.c (make_ssa_name_fn): Handle creating anonymous 15199 SSA names by passing a type instead of a variable decl. 15200 (release_ssa_name): Use SET_SSA_NAME_VAR_OR_IDENTIFIER. 15201 (copy_ssa_name_fn): Handle anonymous SSA names. 15202 (replace_ssa_name_symbol): Use SET_SSA_NAME_VAR_OR_IDENTIFIER. 15203 * tree-flow-inline.h (make_temp_ssa_name): New inline function. 15204 * tree-pretty-print.c (dump_generic_node): Use SSA_NAME_IDENTIFIER, 15205 dump SSA names without a name as <anon>. 15206 * cfgexpand.c (expand_used_vars): Assing anonymous SSA names we are 15207 going to expand a decl. 15208 (gimple_expand_cfg): Assign all SSA names of a partition the 15209 decl we created for its leader. 15210 * tree-ssa.c (target_for_debug_bind): Handle SSA_NAMEs. 15211 (verify_ssa_name): Handle anonymous SSA names. 15212 (verify_def): Likewise. 15213 * tree-predcom.c (eliminate_temp_copies): Likewise. 15214 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. 15215 * tree-ssa-live.c (var_map_base_init): Compute conflicts for 15216 anonymous SSA names with the same type. 15217 (mark_all_vars_used_1): Handle anonymous SSA names. 15218 (verify_live_on_entry): Likewise. 15219 * tree-ssa-coalesce.c (abnormal_corrupt): Remove. 15220 (create_outofssa_var_map): Adjust with respect to conflicts we 15221 compute for anonymous SSA names. Do not restrict abnormal 15222 coalescing. 15223 (coalesce_partitions): Do not restrict abnormal coalescing. 15224 Assert we only ever coalesce variables we computed conflicts for. 15225 * tree-ssa-ter.c (process_replaceable): Do not restrict TER 15226 of anonymous names. 15227 * expr.c (expand_expr_real_1): Handle anonymous SSA names 15228 expanded from IVOPTs by creating a raw REG here. 15229 * tree-cfg.c (replace_ssa_name): Handle anonymous SSA names. 15230 (dump_function_to_file): Dump anonymous SSA names alongside 15231 with their types in the variable list. 15232 (verify_gimple_return): Guard use of SSA_NAME_VAR. 15233 * tree-into-ssa.c (mark_for_renaming): Handle a NULL symbol. 15234 (rewrite_into_ssa): Make SSA names anonymous. 15235 * tree-ssa-structalias.c (alias_get_name): Rewrite. 15236 * tree-ssa-uninit.c (ssa_undefined_value_p): Handle anonymous 15237 SSA names. 15238 (warn_uninitialized_phi): Likewise. 15239 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Defer expanding 15240 anonymous SSA names to the expander. 15241 (determine_iv_cost): Anonymous SSA names are artificial. 15242 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): 15243 Handle anonymous SSA names. 15244 * lto-streamer-out.c (output_ssa_names): Stream SSA_NAME_VAR 15245 or if NULL, the type of the SSA name. 15246 * tree-inline.c (remap_ssa_name): Handle anonymous SSA names, 15247 remap names as anonymous where appropriate. 15248 (insert_init_stmt): Pass SSA names down to insert_init_debug_bind. 15249 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Adjust 15250 according to what we create conflicts for in out-of-SSA 15251 coalescing. 15252 * tree-parloops.c (separate_decls_in_region_name): Handle 15253 anonymous SSA names. 15254 (add_field_for_name): Likewise. 15255 * tree.c (get_name): Handle SSA names. 15256 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Defer to get_name for 15257 SSA_NAMEs. 15258 * tree-vect-loop-manip.c (adjust_debug_stmts): Use 15259 virtual_operand_p. 15260 * tree-sra.c (create_access_replacement): Give up generating 15261 a DECL_DEBUG_EXPR for SSA names in the memory reference. 15262 (replace_removed_params_ssa_names): Guard use of SSA_NAME_VAR. 15263 * tree-complex.c (get_component_ssa_name): Handle anonymous 15264 SSA names. 15265 (set_component_ssa_name): Likewise. 15266 * tree-ssa-sccvn.c (visit_reference_op_load): Likewise. 15267 * tree-object-size.c (collect_object_sizes_for): Handle 15268 uninitialized SSA names properly. 15269 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Guard use of 15270 SSA_NAME_VAR. 15271 * ipa-split.c (test_nonssa_use): Likewise. 15272 (consider_split): Likewise. 15273 (mark_nonssa_use): Likewise. 15274 152752012-08-09 Jan Hubicka <jh@suse.cz> 15276 15277 PR middle-end/54146 15278 * ipa-inline-transform.c (inline_call): Add UPDATE_OVERALL_SUMMARY 15279 parameter; honnor it. 15280 * ipa-inline.c (recursive_inlining): Update call 15281 of inline_call. 15282 (inline_small_functions): Likewise. 15283 (ipa_inline): Likewise. 15284 (inline_always_inline_functions): Likewise. 15285 (early_inline_small_functions): Likewise. 15286 (flatten_function): Do separate update of summary info. 15287 * ipa-inline.h (inline_update_overall_summary): Declare. 15288 (inline_call): Update. 15289 * ipa-inline-analysis.c (inline_merge_summary): Break out 15290 updating code to ... 15291 (inline_update_overall_summary): Likewise. 15292 152932012-08-09 Richard Henderson <rth@redhat.com> 15294 15295 * config/s390/s390.c (s390_expand_insv): Use VOIDmode in gen_rtx_SET. 15296 15297 * config/s390/s390.c (s390_expand_cs_hqi): Copy val to a temp before 15298 performing the compare for the restart loop. 15299 153002012-08-09 DJ Delorie <dj@redhat.com> 15301 15302 * config/rl78/rl78.c (rl78_alloc_physical_registers): Check for 15303 SET before extracting SET_SRC. 15304 (rl78_remove_unused_sets): Check for REG before extractnig REGNO. 15305 153062012-08-09 Oleg Endo <olegendo@gcc.gnu.org> 15307 15308 PR target/54089 15309 * config/sh/sh-protos (shift_insns_rtx): Delete. 15310 (sh_ashlsi_clobbers_t_reg_p): Add. 15311 * config/sh/sh.c (shift_insns, shift_amounts, ext_shift_insns, 15312 ext_shift_amounts): Merge arrays of ints to array of structs. 15313 Adapt usage of arrays throughout the file. 15314 (shift_insns_rtx): Delete unused function. 15315 (sh_ashlsi_clobbers_t_reg_p): New function. 15316 * config/sh/sh.md (ashlsi3): Emit ashlsi3_n_clobbers_t insn if the 15317 final shift sequence will clobber T_REG. 15318 (ashlsi3_n): Split only if the final shift sequence will not 15319 clobber T_REG. 15320 (ashlsi3_n_clobbers_t): New insn_and_split. 15321 153222012-08-09 Steven Bosscher <steven@gcc.gnu.org> 15323 15324 * calls.c (mem_overlaps_already_clobbered_arg_p): Use SBITMAP_SIZE 15325 instead of looking at sbitmap n_bits member directly. 15326 * gcse.c (hoist_code): Likewise. 15327 * sched-rgn.c (split_edges): Likewise. 15328 * tree-into-ssa.c (is_old_name, is_new_name, add_new_name_mapping, 15329 update_ssa): Likewise. 15330 153312012-08-09 Uros Bizjak <ubizjak@gmail.com> 15332 15333 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Return preferred 15334 single unit register class for classes that contain registers form 15335 multiple units. 15336 (REG_CLASS_CONTENTS): Add missing "frame" register to FLOAT_INT_REGS, 15337 INT_SSE_REGS and FLOAT_INT_SSE_REGS register classes. 15338 153392012-08-09 Martin Jambor <mjambor@suse.cz> 15340 15341 * cgraph.h (cgraph_indirect_call_info): Field anc_offse renamd to 15342 offset, updated all users. New field agg_contents. 15343 * ipa-prop.h (jump_func_type): Removed IPA_JF_CONST_MEMBER_PTR. 15344 (ipa_pass_through_data): New field agg_preserved. 15345 (ipa_ancestor_jf_data): Likewise. 15346 (ipa_member_ptr_cst): Removed. 15347 (ipa_agg_jf_item): New type. 15348 (ipa_agg_jump_function): Likewise. 15349 (ipa_jump_func): New field agg. Removed field member_cst. 15350 (ipa_get_jf_pass_through_agg_preserved): New function. 15351 (ipa_get_jf_ancestor_agg_preserved): Likewise. 15352 (ipa_get_jf_member_ptr_pfn): Removed. 15353 (ipa_find_agg_cst_for_param): Declare. 15354 (ipa_load_from_parm_agg): Likewise. 15355 * ipa-prop.c (param_analysis_info): Fields modified and 15356 visited_statements rename to parm_modified and parm_visited_statements 15357 respectively, added fields ref_modified, ref_visited_statements, 15358 pt_modified and pt_visited_statements. 15359 (ipa_print_node_jump_functions_for_edge): Do not dump const member 15360 functions. Dump agg_preserved flags and aggregate jump functions. 15361 (ipa_set_jf_simple_pass_through): Set also agg_preserved. 15362 (ipa_set_ancestor_jf): Likewise. 15363 (ipa_set_jf_arith_pass_through): Clear agg_preserved. 15364 (ipa_set_jf_member_ptr_cst): Removed. 15365 (is_parm_modified_before_stmt): Logic reversed, renamed to 15366 parm_preserved_before_stmt_p. Cache visited bitmap only for 15367 naked DECL parameters. All callers updated. 15368 (load_from_unmodified_param): Allow NULL parms_ainfo. 15369 (parm_ref_data_preserved_p): New function. 15370 (parm_ref_data_pass_through_p): Likewise. 15371 (ipa_load_from_parm_agg_1): Likewise. 15372 (ipa_load_from_parm_agg): Likewise. 15373 (compute_complex_assign_jump_func): Check if aggregate contents are 15374 preserved. 15375 (compute_complex_ancestor_jump_func): Likewise. 15376 (compute_scalar_jump_functions): Removed. 15377 (type_like_member_ptr_p): Also check field position are known and sane. 15378 (compute_pass_through_member_ptrs): Removed. 15379 (determine_cst_member_ptr): Likewise. 15380 (ipa_known_agg_contents_list): New type. 15381 (determine_known_aggregate_parts): New function. 15382 (compute_cst_member_ptr_arguments): Removed. 15383 (ipa_compute_jump_functions_for_edge): Compute all kinds of jump 15384 functions (scalar, aggregate and member pointer). 15385 (ipa_get_member_ptr_load_param): Incorporate into 15386 ipa_get_stmt_member_ptr_load_param, also pass back an offset. 15387 (ipa_note_param_call): Clear agg_contents. 15388 (ipa_analyze_indirect_call_uses): Also look for simple pointers loaded 15389 from aggregates. In such cases, store offset of the called field. 15390 (ipa_analyze_node): Initialize new fields of param_analysis_info. 15391 (update_jump_functions_after_inlining): Handle aggregate contents. 15392 (ipa_find_agg_cst_for_param): New function. 15393 (try_make_edge_direct_simple_call): Handle called aggregate values. 15394 (update_indirect_edges_after_inlining): Make sure aggregate preserving 15395 jump functions comply with type compatibility requirements. 15396 (ipa_edge_duplication_hook): Copy also aggregate jump functions. 15397 (ipa_write_jump_function): Stream agg_preserved flags and aggregate 15398 jump functions. Do not stream member pointer constant jump functions. 15399 (ipa_read_jump_function): Likewise. 15400 (ipa_write_indirect_edge_info): Stream new cgraph_indirect_call_info 15401 fields. 15402 (ipa_read_indirect_edge_info): Likewise. 15403 154042012-08-09 Oleg Endo <olegendo@gcc.gnu.org> 15405 15406 PR target/39423 15407 * config/sh/predicates.md (mem_index_disp_operand): New predicate. 15408 * config/sh/sh.md (*movsi_index_disp): Rewrite insns to use the new 15409 mem_index_disp_operand predicate. 15410 154112012-08-09 Oleg Endo <olegendo@gcc.gnu.org> 15412 15413 PR target/51244 15414 * config/sh/sh.md: Add negc extu sequence peephole. 15415 (movrt, movnegt, movrt_negc, nott): Use t_reg_operand predicate. 15416 (*movrt_negc): New insn. 15417 * config/sh/sync.md (atomic_test_and_set): Pass gen_t_reg_rtx to 15418 gen_movnegt. 15419 * config/sh/sh.c (expand_cbranchsi4, sh_emit_scc_to_t, 15420 sh_emit_compare_and_branch, sh_emit_compare_and_set): Use 15421 get_t_reg_rtx. 15422 (sh_expand_t_scc): Pass gen_t_reg_rtx to gen_movnegt. 15423 154242012-08-09 Oleg Endo <olegendo@gcc.gnu.org> 15425 15426 PR target/50751 15427 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg): 15428 Use arith_reg_operand predicate instead of register_operand. 15429 * config/sh/predicates.md (movsrc_no_disp_mem_operand): Accept 15430 only mem, simplify. 15431 154322012-08-09 Uros Bizjak <ubizjak@gmail.com> 15433 15434 * config/alpha/alpha.c (alpha_pad_noreturn): Rename to ... 15435 (alpha_pad_function_end): ... this. Also insert NOP between 15436 sibling call and GP load. 15437 (alpha_reorg): Update call to alpha_pad_function_end. Expand comment. 15438 154392012-08-09 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15440 15441 * config/i386/adxintrin.h: Remove guarding __ADX__ check. 15442 * config/i386/x86intrin.h: Likewise. 15443 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove 15444 OPTION_MASK_ISA_ADX from needed options for 15445 __builtin_ia32_addcarryx_u32 and __builtin_ia32_addcarryx_u64. 15446 (ix86_expand_builtin): Use add<mode>3_carry in expanding of 15447 IX86_BUILTIN_ADDCARRYX32 and IX86_BUILTIN_ADDCARRYX64. 15448 154492012-08-09 Andrey Belevantsev <abel@ispras.ru> 15450 15451 PR rtl-optimization/53701 15452 * sel-sched.c (vinsn_vec_has_expr_p): Clarify function comment. 15453 Process not only expr's vinsns but all old vinsns from expr's 15454 history of changes. 15455 (update_and_record_unavailable_insns): Clarify comment. 15456 154572012-08-09 Bernd Schmidt <bernds@codesourcery.com> 15458 15459 * reload.c (find_valid_class_1): New static function. 15460 (push_reload): Use it when reloading a SYMBOL_REG as the inner 15461 of a subreg. Keep better track of needed classes for the 15462 secondary memory case. 15463 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Limit INT_SSE_REGS to 15464 GENERAL_REGS. 15465 * reload1.c (replaced_subreg): New static function. 15466 (gen_reload): Use it when deciding whether to use secondary 15467 memory. 15468 154692012-08-09 Richard Guenther <rguenther@suse.de> 15470 15471 * tree.h (SSA_VAR_P): Simplify. 15472 * tree-ssanames.c (make_ssa_name_fn): Strengthen assert. 15473 * fold-const.c (fold_comparison): Check for default def first 15474 before checking for PARM_DECL. 15475 * tree-complex.c (get_component_ssa_name): Likewise. 15476 * tree-inline.c (remap_ssa_name): Likewise. 15477 * tree-ssa-loop-ivopts.c (parm_decl_cost): Likewise. 15478 * tree-ssa-structalias.c (get_fi_for_callee): Likewise. 15479 (find_what_p_points_to): Likewise. 15480 * tree-ssa-operands.c (add_stmt_operand): Simplify. 15481 154822012-08-08 Joseph Myers <joseph@codesourcery.com> 15483 15484 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify 15485 IOR to a constant if one operand has side effects. 15486 154872012-08-08 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 15488 15489 * builtins.c (expand_builtin_atomic_compare_exchange): Pass old 15490 value operand as MEM to expand_atomic_compare_and_swap. 15491 15492 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Accept 15493 nonimmediate_operand for old value; generate load and store if 15494 needed. 15495 * config/s390/s390.c (s390_expand_cs_hqi): Accept any operand 15496 as vtarget. 15497 154982012-08-08 Steven Bosscher <steven@gcc.gnu.org> 15499 15500 PR middle-end/54146 15501 * gimpify.c (gimplify_body): Only verify_gimple_in_seq with 15502 checking enabled. 15503 * tree-ssa-loop-manip.c (add_exit_phis_var): Assert that var is 15504 a gimple_reg if checking is enabled. 15505 (find_uses_to_rename_stmt): Only look at non-virtual USE operands. 15506 * tree-into-ssa (compute_global_livein): Change the worklist 15507 type from an array to a VEC. 15508 155092012-08-08 Richard Guenther <rguenther@suse.de> 15510 15511 * tree-ssa-operands.h (virtual_operand_p): Declare. 15512 * tree-ssa-operands.c (virtual_operand_p): New predicate. 15513 * gimple.c (is_gimple_reg): Use virtual_operand_p. 15514 * tree-into-ssa.c (prepare_block_for_update): Likewise. 15515 * tree-vect-loop-manip.c (adjust_debug_stmts): Likewise. 15516 155172012-08-08 Richard Guenther <rguenther@suse.de> 15518 15519 * tree-call-cdce.c (check_pow): Simplify. 15520 (gen_conditions_for_pow_int_base): Likewise. 15521 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not handle 15522 virtual operands here. 15523 * tree-ssa-operands.c (get_name_decl): Remove unused function. 15524 * gimplify.c (gimple_regimplify_operands): Remove dead code. 15525 * tree-vrp.c (get_value_range): Move SSA_NAME_VAR access. 15526 * tree-parloops.c (create_phi_for_local_result): Use copy_ssa_name. 15527 * value-prof.c (gimple_ic): Use duplicate_ssa_name. 15528 (gimple_stringop_fixed_value): Likewise. 15529 * tree.c (needs_to_live_in_memory): Remove SSA name handling. 15530 * tree-stdarg.c (find_va_list_reference): Store SSA_NAME_VERSIONs 15531 in the bitmap alongside shifted DECL_UIDs. 15532 (va_list_counter_struct_op): Likewise. 15533 (va_list_ptr_read): Likewise. 15534 (va_list_ptr_write): Likewise. 15535 (check_va_list_escapes): Likewise. 15536 (check_all_va_list_escapes): Likewise. 15537 (execute_optimize_stdarg): Likewise. 15538 * tree-outof-ssa.c (insert_backedge_copies): Use copy_ssa_name. 15539 155402012-08-08 Richard Sandiford <rdsandiford@googlemail.com> 15541 H.J. Lu <hongjiu.lu@intel.com> 15542 15543 PR rtl-optimization/54157 15544 * combine.c (gen_lowpart_for_combine): Don't return identity 15545 for CONST or symbolic reference. 15546 155472012-08-08 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 15548 15549 * common/config/i386/i386-common.c (OPTION_MASK_ISA_ADX_SET): New. 15550 (OPTION_MASK_ISA_ADX_UNSET): Likewise. 15551 (ix86_handle_option): Handle madx option. 15552 * config.gcc (i[34567]86-*-*): Add adxintrin.h. 15553 (x86_64-*-*): Likewise. 15554 * config/i386/adxintrin.h: New header. 15555 * config/i386/driver-i386.c (host_detect_local_cpu): Detect ADCX/ADOX 15556 support. 15557 * config/i386/i386-builtin-types.def 15558 (UCHAR_FTYPE_UCHAR_UINT_UINT_PUNSIGNED): New function type. 15559 (UCHAR_FTYPE_UCHAR_ULONGLONG_ULONGLONG_PULONGLONG): Likewise. 15560 * config/i386/i386-c.c: Define __ADX__ if needed. 15561 * config/i386/i386.c (ix86_target_string): Define -madx option. 15562 (PTA_ADX): New. 15563 (ix86_option_override_internal): Handle new option. 15564 (ix86_valid_target_attribute_inner_p): Add OPT_madx. 15565 (ix86_builtins): Add IX86_BUILTIN_ADDCARRYX32, 15566 IX86_BUILTIN_ADDCARRYX64. 15567 (ix86_init_mmx_sse_builtins): Define corresponding built-ins. 15568 (ix86_expand_builtin): Handle these built-ins. 15569 (ix86_expand_args_builtin): Handle new function types. 15570 * config/i386/i386.h (TARGET_ADX): New. 15571 * config/i386/i386.md (adcx<mode>3): New define_insn. 15572 * config/i386/i386.opt (madx): New. 15573 * config/i386/x86intrin.h: Include adxintrin.h. 15574 155752012-08-08 Nick Clifton <nickc@redhat.com> 15576 15577 * config/rl78/rl78.c: Include tree-pass.h. 15578 155792012-08-08 Steven Bosscher <steven@gcc.gnu.org> 15580 15581 PR middle-end/54146 15582 * ira.c (init_live_subregs): Take live_subregs_used as a bitmap. 15583 (build_insn_chain): Make live_subregs_used a bitmap. 15584 Use SBITMAP_SIZE to ignore the paradoxical bytes of subregs. 15585 Use sbitmap_free to free the live_subreg sbitmaps. 15586 15587 PR middle-end/54146 15588 * ifcvt.c: Include pointer-set.h. 15589 (cond_move_process_if_block): Change type of then_regs and 15590 else_regs from alloca'd array to pointer_sets. 15591 (check_cond_move_block): Update for this change. 15592 (cond_move_convert_if_block): Likewise. 15593 * Makefile.in: Fix dependencies for ifcvt.o. 15594 155952012-08-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 15596 15597 * gimple-ssa-strength-reduction.c (struct incr_info_d): New struct. 15598 (incr_vec): New static var. 15599 (incr_vec_len): Likewise. 15600 (address_arithmetic_p): Likewise. 15601 (stmt_cost): Remove dead assignment. 15602 (dump_incr_vec): New function. 15603 (cand_abs_increment): Likewise. 15604 (lazy_create_slsr_reg): Likewise. 15605 (incr_vec_index): Likewise. 15606 (count_candidates): Likewise. 15607 (record_increment): Likewise. 15608 (record_increments): Likewise. 15609 (unreplaced_cand_in_tree): Likewise. 15610 (optimize_cands_for_speed_p): Likewise. 15611 (lowest_cost_path): Likewise. 15612 (total_savings): Likewise. 15613 (analyze_increments): Likewise. 15614 (ncd_for_two_cands): Likewise. 15615 (nearest_common_dominator_for_cands): Likewise. 15616 (profitable_increment_p): Likewise. 15617 (insert_initializers): Likewise. 15618 (introduce_cast_before_cand): Likewise. 15619 (replace_rhs_if_not_dup): Likewise. 15620 (replace_one_candidate): Likewise. 15621 (replace_profitable_candidates): Likewise. 15622 (analyze_candidates_and_replace): Handle candidates with SSA-name 15623 strides. 15624 156252012-08-07 Steven Bosscher <steven@gcc.gnu.org> 15626 15627 * cfg.c (debug_bb): Do not set TDF_BLOCKS. 15628 * cfghooks.c (dump_bb): Honor ~TDF_BLOCKS. 15629 * pretty-print.c (pp_base_flush): Do not add a newline, and do not 15630 clear pp_needs_newline. 15631 * pretty-print.h (pp_newline_and_flush): New macro with the behavior 15632 of pp_base_flush before the above change. 15633 * langhooks.c (lhd_print_error_function): Use pp_newline_and_flush 15634 instead of pp_flush. 15635 * diagnostic.c (diagnostic_finish): Likewise. 15636 (diagnostic_report_diagnostic): Likewise. 15637 (verbatim): Likewise. 15638 (error_recursion): Likewise. 15639 * tree-pretty-print.c (print_generic_stmt): Likewise. 15640 (print_generic_stmt_indented): LIkewise. 15641 * gimple-pretty-print.c (print_gimple_stmt): Likewise. 15642 (print_gimple_seq): Likewise. 15643 (gimple_dump_bb_buff): Likewise. 15644 156452012-08-07 Uros Bizjak <ubizjak@gmail.com> 15646 15647 PR debug/54177 15648 * var-tracking.c (var_lowpart): Exit early for matched modes. 15649 156502012-08-07 Richard Henderson <rth@redhat.com> 15651 15652 * config/s390/s390.c (s390_emit_compare_and_swap): Update for 15653 atomic_compare_and_swapsi_internal name change. 15654 (s390_expand_insv): Try RISBG last, not requiring operands in 15655 registers but forcing them there. Try a limited form of ICM. 15656 (s390_two_part_insv): New. 15657 (s390_expand_cs_hqi): Use it. Update for atomic optabs. 15658 * config/s390/s390.md (UNSPEC_MOVA): New. 15659 (TDSI): Remove mode iterator. 15660 (DGPR, DINT, TDI): New mode iterators. 15661 (td): New mode attribute. 15662 (mem_signal_fence): New. 15663 (mem_thread_fence): Rename from memory_barrier; update for model arg. 15664 (mem_thread_fence_1): Rename from *memory_barrier. 15665 (atomic_load<DINT>, atomic_store<DINT>): New expanders. 15666 (atomic_loaddi_1, atomic_loadti_1): New. 15667 (atomic_storedi_1, atomic_storeti_1): New. 15668 (sync_compare_and_swap<TDSI>, sync_compare_and_swap<HQI>): Remove. 15669 (atomic_compare_and_swap<DGPR>, atomic_compare_and_swap<HQI>): New. 15670 (atomic_compare_and_swap<DGPR>_internal): New. 15671 (*sync_compare_and_swap<DW>, *sync_compare_and_swap<GPR>): Remove. 15672 (*atomic_compare_and_swap<TDI>_1): New. 15673 (*atomic_compare_and_swapdi_2, *atomic_compare_and_swapsi_3): New. 15674 (sync_<ATOMIC_Z196><GPR>, sync_old_<ATOMIC_Z196><GPR>): Remove. 15675 (atomic_fetch_<ATOMIC_Z196><GPR>): New. 15676 (atomic_fetch_<ATOMC_Z196><GPR>_iaf): New. 15677 (sync_<ATOMIC><HQI>, sync_old_<ATOMIC><HQI>): Remove. 15678 (sync_new_<ATOMIC><HQI>): Remove. 15679 (atomic_<ATOMIC><HQI>, atomic_fetch_<ATOMIC><HQI>): New. 15680 (atomic_<ATOMIC>_fetch<HQI>): New. 15681 (sync_lock_test_and_set<HQI>): Remove. 15682 (atomic_exchange<HQI>): New. 15683 156842012-08-07 Paul Brook <paul@codesourcery.com> 15685 Sandra Loosemore <sandra@codesourcery.com> 15686 15687 * except.c (switch_to_exception_section): Place tables for 15688 DECL_ONE_ONLY functions in comdat groups. 15689 156902012-08-07 Richard Guenther <rguenther@suse.de> 15691 15692 * tree-flow.h (copy_ssa_name_fn): New function. 15693 (duplicate_ssa_name_fn): Likewise. 15694 * tree-flow-inline.h (copy_ssa_name): New function. 15695 (duplicate_ssa_name): Likewise. 15696 * tree-ssanames.c (copy_ssa_name_fn): New function. 15697 (duplicate_ssa_name): Rename to ... 15698 (duplicate_ssa_name_fn): ... this and adjust. 15699 * tree-tailcall.c (update_accumulator_with_ops): Use copy_ssa_name. 15700 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): 15701 Likewise. 15702 (slpeel_update_phi_nodes_for_guard2): Likewise. 15703 (slpeel_tree_peel_loop_to_edge): Likewise. 15704 (vect_loop_versioning): Likewise. 15705 * tree-parloops.c (transform_to_exit_first_loop): Likewise. 15706 (create_parallel_loop): Likewise. 15707 * ipa-split.c (split_function): Likewise. 15708 * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise. 15709 (vect_create_epilog_for_reduction): Likewise. 15710 * tree-vect-data-refs.c (bump_vector_ptr): Likewise. 15711 (vect_setup_realignment): Likewise. 15712 * tree-vect-stmts.c (vectorizable_load): Likewise. 15713 * tree-switch-conversion.c (build_one_array): Likewise. 15714 (gen_def_assigns): Likewise. 15715 * tree-cfg.c (gimple_make_forwarder_block): Likewise. 15716 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Call 15717 create_zero_dim_array with the SSA name. 15718 (rewrite_phi_out_of_ssa): Likewise. 15719 (rewrite_cross_bb_scalar_dependence): Likewise. Use copy_ssa_name. 15720 157212012-08-07 Richard Guenther <rguenther@suse.de> 15722 15723 * tree-dfa.c (set_ssa_default_def): Clear the SSA_NAME_DEFAULT_DEF 15724 bit of the old name when we clear the slot. 15725 * tree-ssa-live.c (remove_unused_locals): Release any default 15726 def associated with an unused var. 15727 * tree-ssa-copy.c (may_propagate_copy_into_asm): Always return true. 15728 157292012-08-07 Richard Guenther <rguenther@suse.de> 15730 15731 * tree-into-ssa.c (rewrite_stmt): Remove clobbers for variables 15732 we rewrite into SSA form. 15733 (rewrite_enter_block): Adjust. 15734 * gimple-iterator.c (gsi_replace): Also allow replacement with 15735 a stmt without a lhs. 15736 * tree-ssa-live.c (remove_unused_locals): Remove code handling 15737 clobbers of SSA names. 15738 * tree-nested.c (convert_local_reference_stmt): Remove clobbers 15739 for variables we access through the local chain. 15740 * tree-cfg.c (verify_gimple_assign_single): Verify clobbers 15741 clobber full decls only. 15742 157432012-08-07 Richard Guenther <rguenther@suse.de> 15744 15745 * gimple.h (gimple_phi_set_result): Adjust SSA_NAME_DEF_STMT. 15746 * tree-phinodes.c (make_phi_node): Allow a NULL var. 15747 * tree-into-ssa.c (insert_phi_nodes_for): Simplify. 15748 * tree-complex.c (update_phi_components): Likewise. 15749 * tree-ssa-loop-manip.c (create_iv): Likewise. 15750 (add_exit_phis_edge): Likewise. 15751 (split_loop_exit_edge): Likewise. 15752 (tree_transform_and_unroll_loop): Likewise. 15753 * value-prof.c (gimple_ic): Likewise. 15754 (gimple_stringop_fixed_value): Likewise. 15755 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise. 15756 * omp-low.c (expand_parallel_call): Likewise. 15757 (expand_omp_for_static_chunk): Likewise. 15758 (expand_omp_atomic_pipeline): Likewise. 15759 * tree-parloops.c (create_phi_for_local_result): Likewise. 15760 (transform_to_exit_first_loop): Likewise. 15761 * tree-vect-data-refs.c (vect_setup_realignment): Likewise. 15762 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise. 15763 * tree-predcom.c (initialize_root_vars): Likewise. 15764 (initialize_root_vars_lm): Likewise. 15765 * sese.c (sese_add_exit_phis_edge): Likewise. 15766 * gimple-streamer-in.c (input_phi): Likewise. 15767 * tree-inline.c (copy_phis_for_bb): Likewise. 15768 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. 15769 * tree-cfg.c (gimple_make_forwarder_block): Likewise. 15770 (gimple_duplicate_bb): Likewise. 15771 157722012-08-07 Nick Clifton <nickc@redhat.com> 15773 15774 * config/mn10300/mn10300.c (mn10300_expand_prologue): Report 15775 stack usage if requested. 15776 157772012-08-06 Cary Coutant <ccoutant@google.com> 15778 15779 * cgraphunit.c (assemble_thunk): Add source line info. 15780 * final.c (final): Check for non-null cfg pointer. 15781 157822012-08-06 Sandra Loosemore <sandra@codesourcery.com> 15783 Maxim Kuvyrkov <maxim@codesourcery.com> 15784 Julian Brown <julian@codesourcery.com> 15785 15786 * config/mips/24k.md (r24k_unknown_store): Delete special handling 15787 for cprestore. 15788 (r24k_int_load, r24k_int_arith, r24k_int_mul3, r24k_int_mfhilo) 15789 (r24k_int_cop, r24k_int_multi) 15790 (r24kf2_1_fcvt_f2i, r24kf2_1_fxfer) 15791 (r24kf1_1_fcvt_f2i, r24kf1_1_fxfer): Use mips_store_data_bypass_p 15792 instead of store_data_bypass_p. 15793 * config/mips/74k.md (r74k_int_store): Delete special handling for 15794 cprestore. 15795 (r74k_int_load, r74k_int_logical, r74k_int_arith, r74k_int_cmove): 15796 Use mips_store_data_bypass_p instead of store_data_bypass_p. 15797 157982012-08-06 Marc Glisse <marc.glisse@inria.fr> 15799 15800 PR tree-optimization/51938 15801 PR tree-optimization/52005 15802 * tree-ssa-ifcombine.c (ifcombine_ifandif): New parameters for 15803 inverted conditions. 15804 (ifcombine_iforif): Remove, merge code into ifcombine_ifandif. 15805 (tree_ssa_ifcombine_bb): Update calls to the above. Detect !a&&b 15806 and !a||b patterns. 15807 158082012-08-06 Olivier Hainque <hainque@adacore.com> 15809 15810 * tree-emutls.c (new_emutls_decl): When a var_section is requested by 15811 the target, attach the new decl to that, not to the template section. 15812 158132012-08-06 Tom de Vries <tom@codesourcery.com> 15814 15815 * tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in 15816 unsigned type. 15817 158182012-08-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 15819 15820 * doc/invoke.texi: Document AMD btver2. 15821 * doc/extend.texi: Document AMD btver1 and btver2. 15822 158232012-08-04 Sandra Loosemore <sandra@codesourcery.com> 15824 Richard Sandiford <rdsandiford@googlemail.com> 15825 15826 * config/mips/mips.c (mips_option_override): Check -fpic 15827 for compatibility with -mabicalls and ABI. 15828 158292012-08-04 Catherine Moore <clm@codesourcery.com> 15830 Sandra Loosemore <sandra@codesourcery.com> 15831 15832 * config/mips/xlr.md (ir_xlr_alu_clz): New insn_reservation. 15833 (ir_xlr_alu): Remove clz. 15834 * config/mips/mips-cpus.def (xlr): Set PTF_AVOID_BRANCHLIKELY. 15835 158362012-08-04 Richard Earnshaw <rearnsha@arm.com> 15837 15838 * arm.c (arm_gen_constant): Use SImode when preparing operands for 15839 gen_extzv_t2. 15840 158412012-08-04 Uros Bizjak <ubizjak@gmail.com> 15842 15843 * config/i386/i386.h (QI_REGNO_P): New define. 15844 (ANY_QI_REGNO_P): Ditto. 15845 (GENERAL_REGNO_P): Use IN_RANGE macro. 15846 (QI_REG_P): Use QI_REGNO_P. 15847 (ANY_QI_REG_P): Use GENERAL_REGNO_P and QI_REGNO_P. 15848 (HARD_REGNO_CALLER_SAVE_MODE): Use QI_REGNO_P. 15849 * config/i386/i386.c (ix86_hard_regno_mode_ok): Ditto. 15850 (x86_extended_QIreg_mentioned_p): Ditto. Also check if 15851 register is a general register. 15852 158532012-08-03 Uros Bizjak <ubizjak@gmail.com> 15854 15855 * config/i386/sync.md (*atomic_fetch_add_cmp<mode>): Use 15856 incdec_operand predicate to return INC or DEC insn mnemonic. 15857 Add %K operand modifier. 15858 (atomic_add<mode>): Use incdec_operand predicate to 15859 return INC or DEC insn mnemonic. 15860 (atomic_dec<mode>): Ditto. 15861 158622012-08-03 Michael Matz <matz@suse.de> 15863 15864 PR tree-optimization/54146 15865 * cfgexpand.c (add_scope_conflicts_1): Use bitmap_ior_into. 15866 (add_scope_conflicts): Iterate in RPO order. 15867 (add_stack_protection_conflicts): Iterate over the other triangle. 15868 (fini_vars_expansion): Clear stack_vars_sorted. 15869 158702012-08-03 Marc Glisse <marc.glisse@inria.fr> 15871 15872 PR tree-optimization/30318 15873 * double-int.c (mul_double_wide_with_sign): New function. 15874 (mul_double_with_sign): Call the new function. 15875 * double-int.h (mul_double_wide_with_sign): Declare the new function. 15876 * tree-vrp.c (extract_range_from_binary_expr_1) [MULT_EXPR]: 15877 Handle integer types that wrap on overflow. 15878 (quad_int_cmp): New helper function. 15879 (quad_int_pair_sort): Likewise. 15880 158812012-08-03 Richard Guenther <rguenther@suse.de> 15882 15883 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Query 15884 is_gimple_reg on the SSA name, not its variable. 15885 (vect_update_ivs_after_vectorizer): Likewise. 15886 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise. 15887 * tree-if-conv.c (if_convertible_phi_p): Likewise. 15888 (predicate_scalar_phi): Likewise. 15889 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise. 15890 (vect_analyze_scalar_cycles_1): Likewise. 15891 * tree-ssa-live.c (register_ssa_partition_check): Likewise. 15892 * tree-outof-ssa.c (eliminate_useless_phis): Likewise. 15893 * tree-ssa-reassoc.c (phi_rank): Likewise. 15894 * tree-parloops.c (separate_decls_in_region_name): Use 15895 replace_ssa_name_symbol. 15896 * tree-predcom.c (base_names_in_chain_on): Likewise. 15897 * matrix-reorg.c (update_type_size): Query the type of the SSA name, 15898 not its variable. 15899 * gimple-ssa-strength-reduction.c (create_mul_ssa_cand): Likewise. 15900 (create_mul_imm_cand): Likewise. 15901 (create_add_ssa_cand): Likewise. 15902 (create_add_imm_cand): Likewise. 15903 (slsr_process_add): Likewise. 15904 * tree-inline.c (remap_ssa_name): Do not set the type of the 15905 new SSA_NAME. 15906 * tree-ssa-structalias.c (get_constraint_for_ssa_var): Clarify assert. 15907 Check for default def first. 15908 159092012-08-04 Steven Bosscher <steven@gcc.gnu.org> 15910 15911 * cfgrtl.c (print_rtl_with_bb): Do not print a newline between insns. 15912 15913 * sched-vis.c (print_pattern): Handle SEQUENCE also. 15914 159152012-08-02 Richard Henderson <rth@redhat.com> 15916 15917 Revert: 15918 PR 34548 15919 * function.h (struct rtl_data): Add max_dynamic_stack_alignment. 15920 * cfgexpand.c (gimple_expand_cfg): Initialise it. 15921 * explow.c (allocate_dynamic_stack_space): Set it. Simplify 15922 alignment requirements given the known alignment of dynamic_offset. 15923 * function.c (instantiate_virtual_regs): Align dtnamic_offset. 15924 159252012-08-02 Kenneth Zadeck <zadeck@naturalbridge.com> 15926 15927 * cfgexpand.c (expand_debug_locations): Encapsulate test for 15928 CONST_DOUBLE in macro. 15929 * combine.c (try_combine, gen_lowpart_for_combine): Ditto. 15930 * cprop.c (implicit_set_cond_p): Ditto. 15931 * cselib.c (rtx_equal_for_cselib_1): Ditto. 15932 * expmed.c (expand_mult): Ditto. 15933 * expr.c (convert_modes): Ditto. 15934 * ira-costs.c (record_reg_classes): Ditto. 15935 * ira-lives.c (single_reg_class): Ditto. 15936 * optabs.c (expand_copysign_absneg, expand_copysign): Ditto. 15937 * print-rtl.c (print_rtx): Ditto. 15938 * recog.c (simplify_while_replacing, const_double_operand) 15939 (asm_operand_ok, constrain_operands): Ditto. 15940 * reg-stack.c (subst_stack_regs_pat): Ditto. 15941 * reload.c (find_reloads, find_equiv_reg): Ditto. 15942 * rtlanal.c (replace_rtx): Remove test. 15943 * rtlanal.c (constant_pool_constant_p, split_double): Encapsulate 15944 test for CONST_DOUBLE in macro. 15945 * simplify-rtx.c (mode_signbit_p, avoid_constant_pool_reference) 15946 (simplify_unary_operation_1, simplify_const_unary_operation) 15947 (simplify_binary_operation_1, simplify_const_binary_operation) 15948 (simplify_relational_operation_1) 15949 (simplify_const_relational_operations) 15950 (implify_subreg): Ditto. 15951 * varasm.c (output_constant_pool_2): Ditto. 15952 * rtl.h (CONST_DOUBLE_AS_INT_P, CONST_DOUBLE_AS_FLOAT_P): New macros. 15953 * rtl.def (CONST_DOUBLE): Updated comments. 15954 159552012-08-02 Richard Sandiford <rdsandiford@googlemail.com> 15956 15957 PR target/51931 15958 * config/mips/mips-protos.h (mips_strip_unspec_address): Declare. 15959 * config/mips/mips.c (mips_strip_unspec_address): Make extern. 15960 (mips16_rewrite_pool_constant): Make a copy of the pool constant 15961 before adding to a PC-relative table. 15962 (mips16_lay_out_constants): Add a SPLIT_P parameter. 15963 (mips16_load_branch_target, mips16_split_long_branches): New functions. 15964 (mips_reorg): Update call to mips16_lay_out_constants. 15965 Call mips16_split_long_branches. 15966 * config/mips/predicates.md (pc_or_label_operand): Delete. 15967 * config/mips/mips.md (length): Add a calculation for MIPS16 branches. 15968 Move the extended_mips16 handling further down. 15969 (*branch_equality<mode>_mips16): Replace use pc_or_label_operand 15970 with explicit label_ref and pc. Follow the usual operand numbering. 15971 (*branch_equality<mode>_mips16_inverted): New pattern. 15972 (*jump_mips16): Add length attribute. 15973 (indirect_jump_and_restore_<mode>): New pattern. 15974 (consttable_int): Call mips_strip_unspec_address on the operand. 15975 159762012-08-02 Richard Sandiford <rdsandiford@googlemail.com> 15977 15978 * recog.c (split_insn): Copy the original SET_SRC before using 15979 it as a note. 15980 159812012-08-02 Richard Sandiford <rdsandiford@googlemail.com> 15982 15983 * reorg.c (dbr_schedule): Delete REG_BR_PRED loop. 15984 159852012-08-02 Marc Glisse <marc.glisse@inria.fr> 15986 15987 PR tree-optimization/53805 15988 * fold-const.c (invert_tree_comparison): Invert ORDERED_EXPR and 15989 UNORDERED_EXPR even for trapping floating point. 15990 159912012-08-02 H.J. Lu <hongjiu.lu@intel.com> 15992 15993 PR middle-end/53321 15994 PR middle-end/53865 15995 * ipa-inline-analysis.c (inline_free_summary): Return if 15996 inline_edge_summary_vec is NULL. 15997 * ipa-split.c (execute_split_functions): Check if a function 15998 is inlinable only if inline_edge_summary_vec != NULL. 15999 * ipa.c (symtab_remove_unreachable_nodes): Restore 16000 cgraph_propagate_frequency call when something was changed. 16001 (free_inline_summary): New function. 16002 (pass_ipa_free_inline_summary): New pass. 16003 * passes.c (init_optimization_passes): Add 16004 pass_ipa_free_inline_summary before pass_ipa_tree_profile. 16005 * timevar.def (TV_IPA_FREE_INLINE_SUMMARY): New. 16006 * tree-pass.h (pass_ipa_free_inline_summary): New. 16007 160082012-08-02 Richard Earnshaw <rearnsha@arm.com> 16009 16010 * arm.c (arm_gen_constant): Use UBFX for some AND operations when 16011 available. 16012 160132012-08-02 Richard Guenther <rguenther@suse.de> 16014 16015 * tree-into-ssa.c (struct common_info_d): New struct. 16016 (struct var_info_d, struct ssa_name_info): Use it. 16017 (get_ssa_name_ann): Adjust. 16018 (get_phi_state, set_phi_state): Remove. 16019 (get_common_info): New function. 16020 (get_current_def, set_current_def): Adjust. 16021 (get_def_blocks_for): Take a common info as param. 16022 (set_def_block): Call get_common_info once. 16023 (set_livein_block): Likewise. 16024 (find_def_blocks_for): Adjust. 16025 (insert_phi_nodes): Likewise. 16026 (register_new_def): Call get_common_info once. 16027 (get_reaching_def): Likewise. 16028 (rewrite_debug_stmt_uses): Likewise. 16029 (rewrite_leave_block): Likewise. 16030 (dump_currdefs): Likewise. 16031 (debug_var_infos_r): Adjust. 16032 (register_new_update_single): Call get_common_info once. 16033 (maybe_replace_use_in_debug_stmt): Likewise. 16034 (rewrite_update_leave_block): Likewise. 16035 (mark_use_interesting): Adjust. 16036 (create_new_def_for): Likewise. 16037 (update_ssa): Likewise. 16038 160392012-08-02 Michael Matz <matz@suse.de> 16040 16041 * tree-ssa-live.c (set_is_used): Return a bool. 16042 (mark_all_vars_used): Don't take data argument. 16043 (mark_all_vars_used_1): Adjust calls to above, merge handling 16044 of local and global vars. 16045 (remove_unused_scope_block_p): Don't take global_unused_vars, 16046 merge handling of local and global vars. 16047 (remove_unused_locals): Don't allocate/fill/pass global_unused_vars, 16048 use is_used_p for local and global vars. 16049 160502012-08-02 Richard Guenther <rguenther@suse.de> 16051 16052 * tree-flow.h (make_rename_temp): Remove. 16053 * tree-dfa.c (make_rename_temp): Likewise. 16054 * cgraphunit.c (thunk_adjust, assemble_thunk): Use create_tmp_reg 16055 instead of make_rename_temp. 16056 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk, 16057 expand_omp_atomic_pipeline): Likewise. 16058 * trans-mem.c (tm_log_emit_save_or_restores, build_tm_load, 16059 build_tm_store, expand_call_tm, expand_transaction, 16060 ipa_tm_insert_gettmclone_call): Likewise. 16061 * tree-complex.c (expand_complex_div_wide): Likewise. 16062 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for): 16063 Likewise. 16064 * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set, execute_sm): 16065 Likewise. 16066 * tree-ssa-math-opts.c (insert_reciprocals): Likewise. 16067 * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2, 16068 gimple_mod_subtract): Likewise. 16069 160702012-08-02 Richard Guenther <rguenther@suse.de> 16071 16072 * tree-flow.h (set_default_def): Rename to ... 16073 (set_ssa_default_def): ... this. Take a struct function argument. 16074 (gimple_default_def): Rename to ... 16075 (ssa_default_def): ... this. 16076 (get_or_create_ssa_default_def): New function. 16077 * tree-dfa.c: Likewise. 16078 (dump_variable): Adjust. 16079 * ipa-prop.c (ipa_analyze_params_uses): Adjust, properly check 16080 for used parameters. 16081 * ipa-split.c (consider_split): Adjust, avoid repeated default-def 16082 lookups. 16083 (split_function): Likewise. 16084 * lto-streamer-in.c (input_ssa_names): Adjust. 16085 * omp-low.c (expand_omp_taskreg): Likewise. 16086 * tree-cfg.c (replace_ssa_name): Adjust, no need to push/pop cfun. 16087 * tree-complex.c (init_parameter_lattice_values): Adjust. 16088 (get_component_ssa_name): Likewise. 16089 (update_parameter_components): Likewise. 16090 * tree-inline.c (remap_ssa_name): Likewise. 16091 (setup_one_parameter): Likewise. 16092 (initialize_inlined_parameters): Likewise. 16093 (declare_return_variable): Likewise. 16094 (expand_call_inline): Likewise. 16095 (tree_function_versioning): Likewise. 16096 * tree-into-ssa.c (get_default_def_for): Remove. 16097 (get_reaching_def): Use get_or_create_ssa_default_def instead. 16098 * tree-predcom.c (replace_ref_with): Adjust. 16099 * tree-sra.c (get_repl_default_def_ssa_name): Likewise. 16100 (is_unused_scalar_param): Likewise. 16101 (ptr_parm_has_direct_uses): Likewise. 16102 (sra_ipa_reset_debug_stmts): Likewise. 16103 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust. 16104 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. 16105 * tree-ssa-live.c (verify_live_on_entry): Likewise. 16106 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise, 16107 avoid repeated default def lookups. 16108 * tree-ssa-sccvn.c (run_scc_vn): Likewise. 16109 * tree-tailcall.c (arg_needs_copy_p): Adjust. 16110 (tree_optimize_tail_calls_1): Likewise. 16111 161122012-08-02 Richard Guenther <rguenther@suse.de> 16113 16114 PR tree-optimization/50672 16115 Revert 16116 2012-08-01 Richard Guenther <rguenther@suse.de> 16117 16118 * tree-ssa-tail-merge.c (release_last_vdef): Remove. 16119 (replace_block_by): Adjust. 16120 161212012-08-02 Richard Guenther <rguenther@suse.de> 16122 16123 * tree-dfa.c (referenced_var_lookup): Remove. 16124 (find_referenced_vars): Remove. 16125 (pass_referenced_vars): Likewise. 16126 (make_rename_temp): Do not add referenced vars. 16127 (dump_referenced_vars): Remove. 16128 (debug_referenced_vars): Likewise. 16129 (dump_dfa_stats): Do not dump referenced var stats. 16130 (find_vars_r): Remove. 16131 (find_referenced_vars_in): Likewise. 16132 (referenced_var_check_and_insert): Likewise. 16133 (add_referenced_var_1): Likewise. 16134 (remove_referenced_var): Likewise. 16135 * tree-flow.h (referenced_var_lookup): Likewise. 16136 (struct gimple_df): Remove referenced_vars member. 16137 (typedef referenced_var_iterator): Remove. 16138 (FOR_EACH_REFERENCED_VAR): Likewise. 16139 (num_referenced_vars): Likewise. 16140 (debug_referenced_vars, dump_referenced_vars): Likewise. 16141 (add_referenced_var_1, add_referenced_var): Likewise. 16142 (remove_referenced_var): Likewise. 16143 (find_referenced_vars_in): Likewise. 16144 * tree-flow-inline.h (gimple_referenced_vars): Remove. 16145 (first_referenced_var): Likewise. 16146 (end_referenced_vars_p): Likewise. 16147 (next_referenced_var): Likewise. 16148 * cfgexpand.c (update_alias_info_with_stack_vars): Remove assert. 16149 * gimple-pretty-print.c (pp_points_to_solution): Dump UIDs 16150 unconditionally. 16151 * tree-into-ssa.c (dump_decl_set): Likewise. 16152 (pass_build_ssa): Do not require PROP_referenced_vars. 16153 * tree-ssa.c (target_for_debug_bind): Virtual operands are 16154 not suitable, but all register type vars are. 16155 (init_tree_ssa): Do not allocate referenced vars. 16156 (delete_tree_ssa): Do not free referenced vars. 16157 * cgraphunit.c (init_lowered_empty_function): Do not set 16158 PROP_referenced_vars. 16159 (assemble_thunk): Do not add referenced vars. 16160 * gimple-fold.c (canonicalize_constructor_val): Likewise. 16161 (gimplify_and_update_call_from_tree): Likewise. 16162 * gimple-streamer-in.c (input_bb): Likewise. 16163 * passes.c (init_optimization_passes): Do not run 16164 pass_referenced_vars. 16165 (dump_properties): Do not dump PROP_referenced_vars. 16166 * tree-inline.c (remap_decl): Do not add referenced vars. 16167 (remap_gimple_op_r): Likewise. 16168 (copy_tree_body_r): Likewise. 16169 (copy_bb): Likewise. 16170 (setup_one_parameter): Likewise. 16171 (declare_return_variable): Likewise. 16172 (copy_decl_for_dup_finish): Likewise. 16173 (copy_arguments_for_versioning): Likewise. 16174 (tree_function_versioning): Likewise. 16175 * tree-pass.h (PROP_referenced_vars): Remove. 16176 (pass_referenced_vars): Likewise. 16177 * tree-profile.c (gimple_gen_edge_profiler): Do not add 16178 referenced vars. 16179 (gimple_gen_interval_profiler): Likewise. 16180 (gimple_gen_pow2_profiler): Likewise. 16181 (gimple_gen_one_value_profiler): Likewise. 16182 (gimple_gen_ic_profiler): Likewise. 16183 (gimple_gen_average_profiler): Likewise. 16184 (gimple_gen_ior_profiler): Likewise. 16185 * tree-ssa-live.c (remove_unused_locals): Do not touch referenced vars. 16186 * tree-cfg.c (replace_ssa_name): Do not add referenced vars. 16187 (move_stmt_op): Likewise. 16188 * tree-ssa-operands.c (create_vop_var): Likewise. 16189 * gimple-low.c (record_vars_into): Likewise. 16190 * gimplify.c (gimple_regimplify_operands): Likewise. 16191 (force_gimple_operand_1): Likewise. 16192 * omp-low.c (expand_omp_for_generic): Likewise. 16193 (expand_omp_for_static_chunk): Likewise. 16194 (expand_omp_atomic_pipeline): Likewise. 16195 * graphite-clast-to-gimple.c (graphite_create_new_loop): Likewise. 16196 (translate_clast_assignment): Likewise. 16197 * graphite-sese-to-poly.c (create_zero_dim_array): Likewise. 16198 (handle_scalar_deps_crossing_scop_limits): Likewise. 16199 * ipa-prop.c (ipa_modify_formal_parameters): Likewise. 16200 * ipa-split.c (split_function): Likewise. 16201 * matrix-reorg.c (transform_access_sites): Likewise. 16202 * trans-mem.c (tm_log_add): Likewise. 16203 (ipa_tm_insert_gettmclone_call): Likewise. 16204 * tree-complex.c (create_one_component_var): Likewise. 16205 * tree-if-conv.c (ifc_temp_var): Likewise. 16206 * tree-parloops.c (take_address_of): Likewise. 16207 (initialize_reductions): Likewise. 16208 (separate_decls_in_region_name): Likewise. 16209 (create_call_for_reduction_1): Likewise. 16210 (separate_decls_in_region): Likewise. 16211 * tree-predcom.c (predcom_tmp_var): Likewise. 16212 (reassociate_to_the_same_stmt): Likewise. 16213 * tree-sra.c (build_ref_for_offset): Likewise. 16214 (create_access_replacement): Likewise. 16215 (get_replaced_param_substitute): Likewise. 16216 (sra_ipa_reset_debug_stmts): Likewise. 16217 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise. 16218 (rewrite_bittest): Likewise. 16219 * tree-ssa-loop-ivopts.c (create_new_iv): Likewise. 16220 * tree-ssa-loop-manip.c (create_iv): Likewise. 16221 (tree_transform_and_unroll_loop): Likewise. 16222 * tree-ssa-math-opts.c (powi_as_mults): Likewise. 16223 (build_and_insert_call): Likewise. 16224 (gimple_expand_builtin_cabs): Likewise. 16225 (execute_optimize_bswap): Likewise. 16226 * tree-ssa-phiopt.c (conditional_replacement): Likewise. 16227 (abs_replacement): Likewise. 16228 (cond_store_replacement): Likewise. 16229 (cond_if_else_store_replacement_1): Likewise. 16230 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. 16231 * tree-ssa-pre.c (get_representative_for): Likewise. 16232 (create_expression_by_pieces): Likewise. 16233 (insert_into_preds_of_block): Likewise. 16234 * tree-ssa-propagate.c (update_call_from_tree): Likewise. 16235 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise. 16236 (eliminate_redundant_comparison): Likewise. 16237 (rewrite_expr_tree_parallel): Likewise. 16238 (get_reassoc_pow_ssa_name): Likewise. 16239 * tree-ssa-strlen.c (get_string_length): Likewise. 16240 * tree-switch-conversion.c (emit_case_bit_tests): Likewise. 16241 (build_arrays): Likewise. 16242 * tree-tailcall.c (adjust_return_value_with_ops): Likewise. 16243 (create_tailcall_accumulator): Likewise. 16244 * tree-vect-data-refs.c (vect_get_new_vect_var): Likewise. 16245 (vect_create_addr_base_for_vector_ref): Likewise. 16246 (vect_permute_store_chain): Likewise. 16247 (vect_permute_load_chain): Likewise. 16248 * tree-vect-generic.c (expand_vector_divmod): Likewise. 16249 * tree-vect-loop-manip.c (set_prologue_iterations): Likewise. 16250 (vect_build_loop_niters): Likewise. 16251 (vect_generate_tmps_on_preheader): Likewise. 16252 (vect_update_ivs_after_vectorizer): Likewise. 16253 (vect_gen_niters_for_prolog_loop): Likewise. 16254 (vect_do_peeling_for_alignment): Likewise. 16255 (vect_create_cond_for_align_checks): Likewise. 16256 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise. 16257 (vect_handle_widen_op_by_const): Likewise. 16258 (vect_operation_fits_smaller_type): Likewise. 16259 (vect_recog_over_widening_pattern): Likewise. 16260 * tree-vect-stmts.c (vect_init_vector): Likewise. 16261 162622012-08-01 Alexandre Oliva <aoliva@redhat.com> 16263 16264 PR debug/52983 16265 * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec. 16266 162672012-08-01 Alexandre Oliva <aoliva@redhat.com> 16268 16269 PR debug/52983 16270 * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally, 16271 falling back to copy_rtx on non-autoinc machines. 16272 (propagate_for_debug_subst): Always use cleanup_auto_inc_dec. 16273 162742012-08-01 Alexandre Oliva <aoliva@redhat.com> 16275 16276 PR debug/52983 16277 * valtrack.h, valtrack.c: New. 16278 * Makefile.in (VALTRACK_H): New. 16279 (OBJS): Add valtrack.o. 16280 (valtrack.o): New. 16281 (cselib.o, dce.o, df-problems.o, combine.o): Add VALTRACK_H. 16282 * combine.c: Include valtrack.h. 16283 (make_compound_operation): Publish. 16284 (cleanup_auto_inc_dec): Move to valtrack.c. 16285 (struct rtx_subst_pair, propagate_for_debug_subst): Likewise. 16286 (propagate_for_debug): Likewise. Add this_basic_block parameter. 16287 Adjust all callers. 16288 * cselib.c: Include valtrack.h. 16289 * dce.c: Likewise. 16290 * df-problems.c: Likewise. 16291 (dead_debug_init, dead_debug_reset_uses): Move to valtrack.c. 16292 (dead_debug_finish, dead_debug_add): Likewise. 16293 (dead_debug_insert_temp): Likewise. 16294 * df.h (struct dead_debug_use): Move to valtrack.h. 16295 (struct dead_debug, enum debug_temp_where): Likewise. 16296 (dead_debug_init, dead_debug_reset_uses): Move to valtrack.h. 16297 (dead_debug_finish, dead_debug_add): Likewise. 16298 (dead_debug_insert_temp): Likewise. 16299 * rtl.h (make_compound_operation): Declare. 16300 163012012-08-01 Catherine Moore <clm@codesourcery.com> 16302 Sandra Loosemore <sandra@codesourcery.com> 16303 16304 * config/mips/mips-cpus.def (34kn): New. 16305 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Add 34kn. 16306 (BASE_DRIVER_SELF_SPECS): Do not imply -mdsp for the 34kn. 16307 * config/mips/mips-tables.opt: Regenerate. 16308 * doc/invoke.texi (MIPS Options): Document -march=34kn. 16309 163102012-08-01 Richard Henderson <rth@redhat.com> 16311 16312 * expmed.h (NUM_MODE_PARTIAL_INT): New. 16313 (NUM_MODE_VECTOR_INT, NUM_MODE_IP_INT, NUM_MODE_IPV_INT): New. 16314 (struct expmed_op_cheap): Size one array on NUM_MODE_IPV_INT. 16315 (struct expmed_op_costs): Likewise. 16316 (struct target_expmed): Size x_convert_cost on NUM_MODE_IP_INT. 16317 (expmed_mode_index): New. 16318 (expmed_op_cheap_ptr, expmed_op_cost_ptr): Use expmed_mode_index. 16319 (convert_cost_ptr): Likewise. 16320 * expmed.c (struct init_expmed_rtl): Rename convert to trunc. 16321 (init_expmed_one_conv): Split out from ... 16322 (init_expmed_one_mode): ... here. Iterate conversions over 16323 partial integer modes too. 16324 (init_expmed): Iterate over partial integer modes too. 16325 163262012-08-01 Richard Henderson <rth@redhat.com> 16327 16328 * config/m32c/m32c.c (TARGET_INIT_LIBFUNCS): Remove. 16329 (m32c_init_libfuncs): Remove. 16330 * config/m32c/cond.md (cstore<QHPSI>4_16): Rename from cstore<QHPSI>4. 16331 (cstore<QHPSI>4): New expander. 16332 163332012-08-01 Richard Guenther <rguenther@suse.de> 16334 16335 * tree-flow-inline.h (referenced_var): Remove. 16336 * tree-ssa-coalesce.c (create_outofssa_var_map): Remove duplicate 16337 checking code. 16338 * tree-sra.c (candidates): New global hashtable. 16339 (candidate): New function. 16340 (sra_initialize): Initialize candidates. 16341 (sra_deinitialize): Free candidates. 16342 (disqualify_candidate): Remove candidate from candidates. 16343 (maybe_add_sra_candidate): New function. 16344 (find_var_candidates): Walk over all local decls and parameters, 16345 add candidates to candidates hashtable. 16346 (find_param_candidates): Add candidates to candidates hashtable. 16347 (analyze_all_variable_accesses): Use candidate instead of 16348 referenced_var. 16349 163502012-08-01 Tom de Vries <tom@codesourcery.com> 16351 16352 * tree-vrp.c (find_case_label_ranges): New function. 16353 (vrp_visit_switch_stmt, simplify_switch_using_ranges): Use 16354 find_case_label_ranges instead of find_case_label_range. Handle second 16355 range. 16356 163572012-08-01 Michael Matz <matz@suse.de> 16358 16359 * tree-complex.c (init_parameter_lattice_values): Don't call var_ann. 16360 * tree-dfa.c (struct dfa_stats_d): Remove num_var_anns member. 16361 (dump_dfa_stats): Don't dump stats about var anns. 16362 (collect_dfa_stats): Don't collect them. 16363 (add_referenced_var_1): Don't set var annotation pointers. 16364 (remove_referenced_var): Ditto, and only remove it it's in the 16365 hash table. 16366 16367 * tree-flow-inline.h (var_ann): Remove. 16368 * tree-flow.h (struct var_ann_d, var_ann_t): Remove. 16369 16370 * tree-inline.c (remapped_type): Remove. 16371 (can_be_nonlocal): Most variable will be considered live here, 16372 return false earlier. 16373 (remap_decls): Don't call var_ann, all variables will be considered 16374 referenced here. 16375 (copy_debug_stmt): Ditto, and use is_global_var. 16376 16377 * tree-into-ssa.c (rewrite_debug_stmt_uses): Use get_current_def to 16378 determine if a variable was referred to, not var_ann. 16379 * tree-ssa-live.c (remove_unused_scope_block_p): Don't check var_ann. 16380 (remove_unused_locals): Ditto. 16381 * tree-ssa.c (delete_tree_ssa): Don't free/clear var ann pointers. 16382 * tree-tailcall.c (arg_needs_copy_p): Don't check var_ann. 16383 * tree.c (copy_node_stat): Don't clear var ann pointer. 16384 * tree.h (tree_result_decl, tree_parm_decl, tree_var_decl): Remove 16385 ann member. 16386 (DECL_VAR_ANN_PTR): Remove. 16387 163882012-08-01 Michael Matz <matz@suse.de> 16389 16390 * tree-flow.h (struct var_ann_d): Rename used member. 16391 (set_is_used): Don't declare. 16392 * tree-flow-inline.h (clear_is_used): Remove. 16393 (set_is_used, is_used_p): Move to ... 16394 * tree-ssa-live.c (set_is_used, is_used_p): ... here, and use 16395 on the side bitmap. 16396 (usedvars): New bitmap. 16397 (dump_scope_block): Don't dump unusedness. 16398 (remove_unused_locals): Allocate and free usedvars. 16399 * tree-nrv.c (tree_nrv): Don't clear used flags here. 16400 164012012-08-01 Michael Matz <matz@suse.de> 16402 16403 * tree-flow.h (struct var_ann_d): Remove base_var_processed and 16404 base_index members. 16405 * tree-ssa-live.h (struct _var_map): Remove basevars member. 16406 (VAR_ANN_BASE_INDEX): Remove. 16407 * tree-ssa-live.c (var_map_base_init): Use a hash table instead 16408 of var annotation to compress index space. Don't deal with above 16409 removed members. 16410 (var_map_base_fini): Don't free basevars. 16411 (init_var_map): Don't clear basevars. 16412 164132012-08-01 Bill Schmidt <wschmidt@linux.ibm.com> 16414 16415 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Change 16416 base_name to base_expr. 16417 (struct cand_chain_d): Likewise. 16418 (base_cand_hash): Likewise. 16419 (base_cand_eq): Likewise. 16420 (record_potential_basis): Likewise. 16421 (alloc_cand_and_find_basis): Likewise. 16422 (create_mul_ssa_cand): Likewise. 16423 (create_mul_imm_cand): Likewise. 16424 (create_add_ssa_cand): Likewise. 16425 (create_add_imm_cand): Likewise. 16426 (slsr_process_cast): Likewise. 16427 (slsr_process_copy): Likewise. 16428 (dump_candidate): Likewise. 16429 (base_cand_dump_callback): Likewise. 16430 (unconditional_cands_with_known_stride_p): Likewise. 16431 (cand_increment): Likewise. 16432 164332012-08-01 Bill Schmidt <wschmidt@linux.ibm.com> 16434 16435 PR tree-optimization/46556 16436 * gimple-ssa-strength-reduction.c (enum cand_kind): Add CAND_REF. 16437 (base_cand_map): Change to hash table. 16438 (base_cand_hash): New function. 16439 (base_cand_free): Likewise. 16440 (base_cand_eq): Likewise. 16441 (lookup_cand): Change base_cand_map to hash table. 16442 (find_basis_for_candidate): Likewise. 16443 (base_cand_from_table): Exclude CAND_REF. 16444 (restructure_reference): New function. 16445 (slsr_process_ref): Likewise. 16446 (find_candidates_in_block): Call slsr_process_ref. 16447 (dump_candidate): Handle CAND_REF. 16448 (base_cand_dump_callback): New function. 16449 (dump_cand_chains): Change base_cand_map to hash table. 16450 (replace_ref): New function. 16451 (replace_refs): Likewise. 16452 (analyze_candidates_and_replace): Call replace_refs. 16453 (execute_strength_reduction): Change base_cand_map to hash table. 16454 164552012-08-01 Uros Bizjak <ubizjak@gmail.com> 16456 16457 * config/i386/i386.c (ix86_address_subreg_operand): Reject 16458 stack pointer. 16459 (ix86_print_operand_address): Assert that parts.base and parts.index 16460 are non-NULL after call to simplify_subreg. 16461 164622012-08-01 Richard Guenther <rguenther@suse.de> 16463 16464 * doc/tree-ssa.texi: Remove pieces mentioning mark_sym_for_renaming. 16465 164662012-08-01 Richard Guenther <rguenther@suse.de> 16467 16468 * graphite-clast-to-gimple.c (translate_clast_user): Rename 16469 virtual operands. 16470 * sese.c (graphite_copy_stmts_from_block): Do not rename virtual 16471 operands here. 16472 * tree-call-cdce.c (tree_call_cdce): Use 16473 mark_virtual_operands_for_renaming. 16474 * tree-eh.c (sink_clobbers): Simplify. 16475 * tree-flow.h (mark_sym_for_renaming): Remove. 16476 (mark_virtual_operands_for_renaming): New function. 16477 * tree-if-conv.c (tree_if_conversion): Use 16478 mark_virtual_operands_for_renaming. 16479 * tree-inline.c (update_ssa_across_abnormal_edges): Likewise. 16480 * tree-into-ssa.c (mark_sym_for_renaming): Remove. 16481 (mark_virtual_operands_for_renaming): New function. 16482 * tree-loop-distribution.c (tree_loop_distribution): Use 16483 mark_virtual_operands_for_renaming. 16484 * tree-ssa-dce.c (mark_virtual_operand_for_renaming): Do not 16485 update stmts, use mark_virtual_operands_for_renaming. 16486 * tree-ssa-tail-merge.c (release_last_vdef): Remove. 16487 (replace_block_by): Adjust. 16488 (tail_merge_optimize): Use mark_virtual_operands_for_renaming. 16489 * tree-tailcall.c (tree_optimize_tail_calls_1): Use 16490 mark_virtual_operands_for_renaming. 16491 * tree-vect-slp.c (vect_slp_transform_bb): Likewise. 16492 * tree-vectorizer.c (vectorize_loops): Likewise. 16493 164942012-08-01 Richard Guenther <rguenther@suse.de> 16495 16496 * tree-flow.h (struct gimple_df): Remove syms_to_rename member, 16497 add ssa_renaming_needed and rename_vops flags. 16498 (SYMS_TO_RENAME): Remove. 16499 (symbol_marked_for_renaming): Likewise. 16500 (mark_virtual_ops_for_renaming): Likewise. 16501 * tree-into-ssa.c (symbols_to_rename_set, symbols_to_rename): 16502 New globals. 16503 (mark_for_renaming, marked_for_renaming): New functions. 16504 (symbol_marked_for_renaming): Remove. 16505 (dump_currdefs): Adjust. 16506 (maybe_replace_use): Likewise. 16507 (maybe_replace_use_in_debug_stmt): Likewise. 16508 (maybe_register_def): Likewise. 16509 (rewrite_update_phi_arguments): Likewise. 16510 (rewrite_update_enter_block): Likewise. 16511 (fini_ssa_renamer): Clear update SSA status here ... 16512 (delete_update_ssa): ... not here. Free rename set. 16513 (prepare_block_for_update): Compute which decls need renaming. 16514 (dump_update_ssa): Adjust. 16515 (mark_sym_for_renaming): Adjust update SSA status for virtuals. 16516 (need_ssa_update_p): Adjust. 16517 (insert_updated_phi_nodes_for): Likewise. 16518 (update_ssa): Likewise. 16519 * tree-ssa-operands.c (finalize_ssa_defs): Adjust update SSA status 16520 for virtual and real operands. 16521 (finalize_ssa_uses): Likewise. 16522 * tree-ssanames.c (init_ssanames): Adjust. 16523 * tree-ssa.c (maybe_rewrite_mem_ref_base, maybe_optimize_var, 16524 execute_update_addresses_taken): Add bitmap to keep track of which 16525 candidates are suitable for rewriting and later renaming by SSA update. 16526 * matrix-reorg.c (transform_access_sites): Do not rename all defs. 16527 * tree-dfa.c (make_rename_temp): Do not mark real operands for 16528 renaming. 16529 * cgraphunit.c (assemble_thunk): Likewise. 16530 * gimplify.c (gimple_regimplify_operands): Likewise. 16531 (force_gimple_operand_1): Likewise. 16532 * ipa-prop.c (ipa_modify_formal_parameters): Likewise. 16533 * tree-inline.c (declare_return_variable): Likewise. 16534 * tree-parloops.c (separate_decls_in_region_stmt): Do not call 16535 mark_virtual_ops_for_renaming. 16536 (create_stores_for_reduction): Likewise. 16537 (create_loads_and_stores_for_name): Likewise. 16538 * tree-predcom.c (mark_virtual_ops_for_renaming): Remove. 16539 (initialize_root_vars_lm): Do not call mark_virtual_ops_for_renaming. 16540 (execute_load_motion): Likewise. 16541 (remove_stmt): Likewise. 16542 (execute_pred_commoning_chain): Likewise. 16543 * tree-sra.c (create_access_replacement): Do not rename real operands. 16544 (get_unrenamed_access_replacement): Unify with ... 16545 (get_access_replacement): ... this. 16546 (get_repl_default_def_ssa_name): Adjust. 16547 * tree-ssa-loop-im.c (move_computations_stmt): Manually update 16548 virtual SSA form. 16549 (rewrite_mem_ref_loc): Do not call mark_virtual_ops_for_renaming. 16550 * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise. 16551 165522012-07-31 DJ Delorie <dj@redhat.com> 16553 16554 * config/s390/s390.c (s390_option_override): Disable DWARF 3/4 16555 extensions for TPF, unless specifically selected. 16556 165572012-08-01 Alan Modra <amodra@gmail.com> 16558 16559 PR target/54131 16560 * config/rs6000/rs6000.c (mem_operand_gpr): Don't limit range 16561 of lo_sum offsets. Comment. Assert mode at least word size 16562 rather than bypassing powerpc64 word offset check. 16563 165642012-07-31 Bill Schmidt <wschmidt@linux.ibm.com> 16565 16566 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise 16567 costs for vec_perm and vec_promote_demote down to more natural values. 16568 (struct _rs6000_cost_data): New data structure. 16569 (rs6000_density_test): New function. 16570 (rs6000_init_cost): Change to use rs6000_cost_data. 16571 (rs6000_add_stmt_cost): Likewise. 16572 (rs6000_finish_cost): Perform density test when vectorizing a loop. 16573 165742012-07-31 Steven Bosscher <steven@gcc.gnu.org> 16575 16576 * sched-vis.c (print_exp): Handle FMA explicitly. Simplify handling 16577 of RTX_UNARY function-like operations. Print unknown expression 16578 RTX classes as pseudo-functions. 16579 (print_pattern): Simplify return pattern printing. 16580 (dump_insn_slim): Print the value of notes as a pattern for proper 16581 printing of CFA notes. 16582 165832012-07-31 Dehao Chen <dehao@google.com> 16584 16585 * predict.c (tree_estimate_probability_driver): Normalize the 16586 loop when initializing the loop optimizer. 16587 165882012-07-31 Richard Guenther <rguenther@suse.de> 16589 16590 * tree-flow.h (struct var_ann_d): Remove need_phi_state 16591 and current_def members. 16592 * tree-into-ssa.c (struct def_blocks_d): Remove var member. 16593 (def_blocks): Remove. 16594 (struct var_info_d): New. 16595 (var_infos): New hashtable. 16596 (struct ssa_name_info): Add def_blocks member. 16597 (get_ssa_name_ann): Adjust. 16598 (get_var_info): New function. 16599 (get_phi_state, set_phi_state, get_current_def, 16600 set_current_def, get_def_blocks_for, find_def_blocks_for): Adjust. 16601 (insert_phi_nodes_compare_def_blocks): Rename to ... 16602 (insert_phi_nodes_compare_var_infos): ... this and adjust. 16603 (insert_phi_nodes): Adjust. 16604 (dump_tree_ssa, dump_tree_ssa_stats): Adjust. 16605 (def_blocks_hash, def_blocks_eq, def_blocks_free): Remove. 16606 (debug_def_blocks_r): Rename to ... 16607 (debug_var_infos_r): ... this and adjust. 16608 (var_info_hash): New function. 16609 (var_info_eq): Likewise. 16610 (rewrite_blocks): Adjust. 16611 (init_ssa_renamer): Likewise. 16612 (fini_ssa_renamer): Likewise. 16613 (delete_update_ssa): Likewise. 16614 (update_ssa): Likewise. 16615 * tree-ssanames.c (release_dead_ssa_names): Do not clear current defs. 16616 166172012-07-31 Bill Schmidt <wschmidt@linux.ibm.com> 16618 16619 PR tree-optimization/53773 16620 * tree-vectorizer.h (struct _loop_vec_info): Add operands_swapped. 16621 (LOOP_VINFO_OPERANDS_SWAPPED): New macro. 16622 * tree-vect-loop.c (new_loop_vec_info): Initialize 16623 LOOP_VINFO_OPERANDS_SWAPPED field. 16624 (destroy_loop_vec_info): Restore canonical form. 16625 (vect_is_slp_reduction): Set LOOP_VINFO_OPERANDS_SWAPPED field. 16626 (vect_is_simple_reduction_1): Likewise. 16627 166282012-07-31 Steven Bosscher <steven@gcc.gnu.org> 16629 16630 * sched-vis.c (dump_insn_slim): Print print_rtx_head at the 16631 start of each new line. 16632 * final.c (final_scan_insn): If the final dump is requested as 16633 slim RTL, dump slim RTL to the assembly file also. 16634 166352012-07-31 Andrey Belevantsev <abel@ispras.ru> 16636 16637 PR target/53975 16638 16639 * sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment. 16640 16641 Revert 16642 2011-08-04 Sergey Grechanik <mouseentity@ispras.ru> 16643 16644 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge 16645 only if producer writes to the register given by regno. 16646 166472012-07-31 Nick Clifton <nickc@redhat.com> 16648 16649 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Add 16650 support for reporting stack usage. 16651 16652 * config/frv/frv.c (QUAD): Fix typo. 16653 (frv_expand_prologue): Report stack usage. 16654 166552012-07-31 Steven Bosscher <steven@gcc.gnu.org> 16656 16657 PR pch/53880 16658 * gengtype.c (struct walk_type_data): Add have_this_obj field. 16659 (walk_type): For functions that take a this_obj argument and 16660 that process fields with a GTY((length)) argument, write the 16661 test that write_types_local_process_field will write also at the 16662 head of the loop, effectively unswitching the loop. 16663 (write_func_for_structure, write_local_func_for_structure): Clear 16664 have_this_obj before calling walk_type. 16665 (write_local_func_for_structure): Set have_this_obj before walk_type. 16666 (write_array): Set have_this_obj for output of local pointer walking 16667 functions but not for marker functions. 16668 (write_types_local_process_field): Assert have_this_obj is set. 16669 16670 * rtl.h (simplify_using_condition): Adjust prototype using bitmap 16671 from coretypes.h. 16672 166732012-07-30 Nathan Froyd <froydnj@gcc.gnu.org> 16674 16675 16676 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 16677 * targhooks.c (default_mode_dependent_address_p): Delete code 16678 for GO_IF_MODE_DEPENDENT_ADDRESS. 16679 * system.h (GO_IF_MODE_DEPENDENT_ADDRESS): Poison. 16680 * doc/tm.texi.in (GO_IF_MODE_DEPENDENT_ADDRESS): Delete documention. 16681 * doc/tm.texi: Regenerate. 16682 * config/alpha.h (GO_IF_MODE_DEPENDENT_ADDRESS): Move code to... 16683 * config/alpha.c (alpha_mode_dependent_address_p): ...here. New 16684 function. 16685 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. 16686 * config/cr16/cr16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 16687 * config/mep/mep.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 16688 * config/vax/vax-protos.h (vax_mode_dependent_address_p): Delete. 16689 * config/vax/vax.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 16690 * config/vax/vax.c (vax_mode_dependent_address_p): Make static. 16691 Take a const_rtx. 16692 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. 16693 166942012-07-30 Nathan Froyd <froydnj@gcc.gnu.org> 16695 16696 * expmed.h (NUM_MODE_VECTOR_INT): Define. 16697 (struct expmed_op_cheap, struct expmed_op_costs): New structures. 16698 (struct target_expmed): Convert x_mul_highpart_cost and 16699 x_mul_widen_cost fields to be indexed by integer modes. 16700 Convert x_sdiv_pow2_cheap and x_smod_pow2_cheap fields to be 16701 of type struct expmed_op_cheap. Convert other cost fields to be 16702 of type struct_expmed_op_costs. 16703 (mul_widen_cost_ptr, mul_highpart_cost_ptr): Adjust for new 16704 indexing of respective fields. 16705 (expmed_op_cheap_ptr): New function. 16706 (sdiv_pow2_cheap_ptr, smod_pow2_cheap_ptr): Call it. 16707 (expmed_op_cost_ptr): New function. 16708 (add_cost_ptr, neg_cost_ptr, shift_cost_ptr, shiftadd_cost_ptr, 16709 shiftsub0_cost_ptr, shiftsub1_cost_ptr, mul_cost_ptr, 16710 sdiv_cost_ptr, udiv_cost_ptr): Call it. 16711 167122012-07-30 Sandra Loosemore <sandra@codesourcery.com> 16713 Julian Brown <julian@codesourcery.com> 16714 16715 * doc/invoke.texi (MIPS Options): Document -mno-float. 16716 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Make it know 16717 about -mno-float. 16718 167192012-07-30 Joseph Myers <joseph@codesourcery.com> 16720 16721 * doc/sourcebuild.texi (Subdirectories): Document common subdirectory. 16722 167232012-07-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 16724 16725 PR middle-end/53823 16726 * expmed.c (expand_mult): Skip synth_mult for constant double op1 except 16727 for special cases. Don't initialize coeff and is_neg. 16728 167292012-07-30 Ulrich Weigand <ulrich.weigand@linaro.org> 16730 Richard Earnshaw <rearnsha@arm.com> 16731 16732 * target.def (vector_alignment): New target hook. 16733 * doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook. 16734 * doc/tm.texi: Regenerate. 16735 * targhooks.c (default_vector_alignment): New function. 16736 * targhooks.h (default_vector_alignment): Add prototype. 16737 * stor-layout.c (layout_type): Use targetm.vector_alignment. 16738 * config/arm/arm.c (arm_vector_alignment): New function. 16739 (TARGET_VECTOR_ALIGNMENT): Define. 16740 16741 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use 16742 vector type alignment instead of size. 16743 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use 16744 element type size directly instead of computing it from alignment. 16745 Fix variable naming and comment. 16746 167472012-07-30 Kirill Yukhin <kirill.yukhin@intel.com> 16748 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 16749 16750 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDSEED_SET): New. 16751 (OPTION_MASK_ISA_RDSEED_UNSET): Likewise. 16752 (ix86_handle_option): Handle mrdseed option. 16753 * config.gcc (i[34567]86-*-*): Add rdseedintrin.h. 16754 (x86_64-*-*): Likewise. 16755 * config/i386/prfchwintrin.h: New header. 16756 * config/i386/cpuid.h (bit_RDSEED): New. 16757 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 16758 RDSEED support. 16759 * config/i386/i386-c.c: Define __RDSEED__ if needed. 16760 * config/i386/i386.c (ix86_target_string): Define -mrdseed option. 16761 (PTA_RDSEED): New. 16762 (ix86_option_override_internal): Handle new option. 16763 (ix86_valid_target_attribute_inner_p): Add OPT_mrdseed. 16764 (ix86_builtins): Add enum entries for RDSEED* builtins. 16765 (ix86_init_mmx_sse_builtins): Define new builtins. 16766 (ix86_expand_builtin): Expand RDSEED* builtins. 16767 * config/i386/i386.h (TARGET_RDSEED): New. 16768 * config/i386/i386.md (rdseed<mode>_1): New. 16769 * config/i386/i386.opt (mrdseed): New. 16770 * config/i386/x86intrin.h: Include rdseedintrin.h. 16771 167722012-07-30 Richard Guenther <rguenther@suse.de> 16773 16774 * tree-into-ssa.c (mark_def_sites): Also process virtual operands. 16775 (rewrite_stmt): Likewise. 16776 (rewrite_enter_block): Likewise. 16777 (pass_build_ssa): Do not update virtual SSA form during TODO. 16778 (mark_symbol_for_renaming): Do nothing if we are not in SSA form. 16779 * lto-streamer-in.c (lto_read_body): Set in_ssa_p earlier. 16780 167812012-07-30 Oleg Endo <olegendo@gcc.gnu.org> 16782 16783 PR target/39423 16784 * config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): New 16785 insns. 16786 167872012-07-30 Oleg Endo <olegendo@gcc.gnu.org> 16788 16789 PR target/51244 16790 * config/sh/sh.md (mov_neg_si_t): Move to Scc instructions section. 16791 Use t_reg_operand predicate. Add split for negated case. 16792 (ashrsi2_31): Pass get_t_reg_rtx to gen_mov_neg_si_t. 16793 * config/sh/sh.c (expand_ashiftrt): Likewise. 16794 167952012-07-30 Oleg Endo <olegendo@gcc.gnu.org> 16796 16797 PR target/54089 16798 * config/sh/sh.md (ashlsi3_d): Invoke gen_shifty_op directly instead 16799 of trying to emit ashlsi3_n. 16800 168012012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com> 16802 Steven Bosscher <steven@gcc.gnu.org> 16803 16804 * gengtype.c (adjust_field_type): Diagnose duplicate "length" 16805 option applications and option being applied to arrays of atomic types. 16806 (walk_type): Allow "atomic" option on strings too. 16807 * dwarf2out.h (struct dw_vec_struct): Use the "atomic" GTY option 16808 for the array field. 16809 * vec.h: Describe the atomic object "A" type of the macros in 16810 the header comment. 16811 (VEC_T_GTY_ATOMIC, DEF_VEC_A, DEF_VEC_ALLOC_A): Define. 16812 * emit-rtl.c (locations_locators_vals): use the atomic object vector. 16813 * doc/gty.texi: Clarify that GTY option "length" is only for 16814 arrays of non-atomic objects. Fix typo in the description of the 16815 "atomic" option. 16816 168172012-07-27 Uros Bizjak <ubizjak@gmail.com> 16818 16819 * config/i386/i386.c (ix86_avoid_lea_for_addr): Handle 16820 zero-extended addresses. Return false if the address has less 16821 than two components. 16822 (ix86_split_lea_for_addr): Unconditionally convert target and 16823 all address operands to requested mode. 16824 * config/i386/i386.md (*lea<mode>): Recover operands from curr_insn. 16825 Pass SImode to ix86_split_lea_for_addr when splitting zero-extended 16826 address. 16827 (zero-extended add splitter): New splitter to conditionally split 16828 non-destructive adds. 16829 (*zero_extendsidi2_rex64): Conditionally emit leal instead of movl. 16830 168312012-07-28 Alan Modra <amodra@gmail.com> 16832 16833 PR target/54093 16834 * config/rs6000/rs6000.c (rs6000_secondary_reload): Limit 32-bit 16835 multi-gpr reload to cases where predicate passes. Do the same for 16836 64-bit multi-gpr reload. 16837 168382012-07-27 Nathan Froyd <froydnj@gcc.gnu.org> 16839 16840 * expmed.h (alg_hash, alg_hash_used_p, sdiv_pow2_cheap, 16841 smod_pow2_cheap, zero_cost, add_cost, neg_cost, shift_cost) 16842 shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost, 16843 sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete 16844 macro definitions and re-purpose as inline functions. 16845 (alg_hash_entry_ptr, set_alg_hash_used_p, sdiv_pow2_cheap_ptr, 16846 set_sdiv_pow2_cheap, smod_pow2_cheap_ptr, set_smod_pow2_cheap, 16847 zero_cost_ptr, set_zero_cost, add_cost_ptr, set_add_cost, 16848 neg_cost_ptr, set_neg_cost, shift_cost_ptr, set_shift_cost, 16849 shiftadd_cost_ptr, set_shiftadd_cost, shiftsub0_cost_ptr, 16850 set_shiftsub0_cost, shiftsub1_cost_ptr, set_shiftsub1_cost, 16851 mul_cost_ptr, set_mul_cost, sdiv_cost_ptr, set_sdiv_cost, 16852 udiv_cost_ptr, set_udiv_cost, mul_widen_cost_ptr, 16853 set_mul_widen_cost, mul_highpart_cost_ptr, set_mul_highpart_cost): 16854 New functions. 16855 (convert_cost_ptr): New function, split out from... 16856 (set_convert_cost, convert_cost): ...here. 16857 * expmed.c, tree-ssa-loop-ivopts.c: Update for new functions. 16858 * gimple-ssa-strength-reduction.c: Likewise. 16859 168602012-07-20 Ryan Mansfield <rmansfield@qnx.com> 16861 16862 * gcc.c (main): Move GCC_DRIVER_HOST_INITIALIZATION after 16863 diagnostic_initialize. 16864 168652012-07-27 Oleg Endo <olegendo@gcc.gnu.org> 16866 16867 PR target/54089 16868 * config/sh/sh.c (shiftcosts): Remove case where first operand 16869 is a const_int. Move COSTS_N_INSNS usage into caller ... 16870 (sh_rtx_costs) ... here. Return false when shiftcosts cannot be 16871 calculated instead of MAX_COST. 16872 168732012-07-27 Richard Guenther <rguenther@suse.de> 16874 16875 * tree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained 16876 check whether SSA form is not up-to-date. 16877 * tree-flow.h (name_mappings_registered_p): Remove. 16878 * tree-into-ssa.c (struct repl_map_d): Remove. 16879 (repl_tbl): Likewise. 16880 (struct ssa_name_info): Add repl_set member. 16881 (update_ssa_obstack): New static global. 16882 (get_ssa_name_ann): Initialize repl_set. 16883 (clear_ssa_name_info): Assert age did not wrap. 16884 (repl_map_hash, repl_map_eq, repl_map_free): Remove. 16885 (names_replaced_by): Adjust. 16886 (add_to_repl_tbl): Likewise. 16887 (dump_tree_ssa_stats): Likewise. 16888 (init_update_ssa): Initialize update_ssa_obstack. 16889 (delete_update_ssa): Free update_ssa_obstack. 16890 (name_mappings_registered_p): Remove. 16891 (update_ssa): Adjust. 16892 168932012-07-27 Segher Boessenkool <segher@kernel.crashing.org> 16894 16895 * config/rs6000/constraints.md: Delete "q" constraint. 16896 * config/rs6000/dfp.md (movsd_hardfloat, movsd_softfloat): 16897 Delete the "q" alternative. 16898 * config/rs6000/predicates.md (gpc_reg_operand): Adjust. 16899 * config/rs6000/rs6000.c (rs6000_debug_reg_global) 16900 (rs6000_init_hard_regno_mode_ok, rs6000_dbx_register_number): 16901 adjust to MQ_REGNO removal. 16902 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust 16903 comment. 16904 (REG_ALLOC_ORDER): Adjust comment. Remove MQ from alloc order. 16905 (enum reg_class): Adjust comment. Delete MQ_REGS. 16906 (REG_CLASS_CONTENTS): Adjust. 16907 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust comment. 16908 * config/rs6000/rs6000.md: Delete MQ_REGNO. 16909 (movsi_internal1, movsi_internal1_single, movhi_internal, 16910 movqi_internal, movcc_internal1, movsf_hardfloat, 16911 movsf_softfloat): Delete the "q" alternative. 16912 (ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5, 16913 ctr<mode>_internal6): Delete "q" constraint. 16914 169152012-07-27 Richard Guenther <rguenther@suse.de> 16916 16917 * tree-into-ssa.c (def_blocks_p): New typedef. 16918 (insert_phi_nodes_compare_def_blocks): New function. 16919 (insert_phi_nodes): Do not walk over referenced vars, instead 16920 walk over recorded def_blocks, record relevant ones and sort 16921 them to avoid repeated hashtable lookups. 16922 169232012-07-27 Richard Guenther <rguenther@suse.de> 16924 16925 * doc/invoke.texi (min-virtual-mappings, virtual-mappings-ratio): 16926 Remove param documentation. 16927 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS, 16928 PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Remove. 16929 * tree-flow.h (mark_set_for_renaming): Remove. 16930 * tree-into-ssa.c (struct update_ssa_stats_d): Remove. 16931 (add_new_name_mapping): Remove bookkeeping code. 16932 (dump_update_ssa): Remove stats dumping code. 16933 (init_update_ssa): Remove stats allocation code. 16934 (delete_update_ssa): Remove stats freeing code. 16935 (mark_set_for_renaming): Remove. 16936 (switch_virtuals_to_full_rewrite_p): Likewise. 16937 (switch_virtuals_to_full_rewrite): Likewise. 16938 (update_ssa): Do not call switch_virtuals_to_full_rewrite. 16939 169402012-07-27 Marek Polacek <polacek@redhat.com> 16941 16942 * cgraphunit.c: Rename varpool_finalize_variable to 16943 varpool_finalize_decl in a comment. 16944 169452012-07-27 Segher Boessenkool <segher@kernel.crashing.org> 16946 16947 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): 16948 Delete code for -mno-power, -mpower, and -mpower2. 16949 * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete. 16950 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together 16951 with -maix64. 16952 (ASM_CPU_SPEC): Delete support for POWER and POWER2. 16953 * config/rs6000/aix51.h (NON_POWERPC_MASKS): Delete. 16954 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together 16955 with -maix64. 16956 (ASM_CPU_SPEC): Delete support for POWER and POWER2. 16957 * config/rs6000/aix52.h (NON_POWERPC_MASKS): Delete. 16958 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together 16959 with -maix64. 16960 (TARGET_POWER): Delete. 16961 * config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete. 16962 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together 16963 with -maix64. 16964 (TARGET_POWER): Delete. 16965 * config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete. 16966 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together 16967 with -maix64. 16968 (TARGET_POWER): Delete. 16969 * config/rs6000/darwin.h (TARGET_POWER): Delete. 16970 * config/rs6000/driver-rs6000.c (struct asm_names): Delete 16971 support for -mpower, -mpower2, and -mno-power. 16972 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): 16973 Likewise. 16974 (rs6000_cpu_cpp_builtins): Likewise. 16975 * config/rs6000/rs6000-cpus.def: Likewise. 16976 * config/rs6000/rs6000-tables.opt: Regenerate. 16977 * config/rs6000/rs6000.c (POWER_MASKS): Delete. 16978 (rs6000_option_override_internal): Adjust. 16979 (rs6000_conditional_register_usage): Adjust. 16980 (rs6000_emit_move): Adjust. 16981 (rs6000_common_init_builtins): Adjust. 16982 (rs6000_init_libfuncs): Adjust. 16983 (rs6000_output_function_prologue): Adjust. 16984 (rs6000_adjust_cost): Adjust. 16985 (struct rs6000_opt_masks): Delete MASK_POWER and MASK_POWER2. 16986 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for 16987 POWER and POWER2. 16988 (TARGET_DEFAULT): Adjust. 16989 (PROCESSOR_POWER): Delete. 16990 (SHIFT_COUNT_TRUNCATED): Adjust. 16991 * config/rs6000/rs6000.md (extendqisi2): Delete POWER support. 16992 (extendqisi2_power): Delete. 16993 (extendqisi2_no_power): Adjust. 16994 (extendqihi2, extendqihi2_power, extendqihi2_no_power): 16995 Likewise. 16996 (sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust. 16997 (anonymous doz insn patterns): Delete. 16998 (abssi2): Adjust. 16999 (abssi2_power): Delete. 17000 (abssi2_nopower): Adjust. 17001 (nabs_power, nabs_nopower): Likewise. 17002 (mulsi3, mulsi3_mq, mulsi3_no_mq, mulsi3_mq_internal1): 17003 Likewise. Delete anonymous post-reload splitter. 17004 (mulsi3_no_mq_internal1): rename to... 17005 (mulsi3_internal1): New define_insn. 17006 (mulsi3_mq_internal2, mulsi3_no_mq_internal2, mulsi3_internal2): 17007 Likewise. 17008 (divmodsi4, divmodsi4_internal, udiv<mode>3, udivsi3_mq, 17009 udivsi3_no_mq, udivsi3, div<mode>3, divsi3_mq, div<mode>3_no_mq, 17010 udivmodsi4_normal, udivmodsi4_tests, udivmodsi4): Likewise. 17011 (mulh_call, mull_call, divss_call, divus_call, quoss_call, 17012 quous_call): Likewise. 17013 (maskir_internal1, maskir_internal2, maskir_internal3, 17014 maskir_internal4, maskir_internal5, maskir_internal6, 17015 maskir_internal7, maskir_internal8): Delete. 17016 (ashlsi3, ashlsi3_power, ashlsi3_no_power): Adjust. 17017 (anonymous sl insn patterns): Delete. 17018 (lshrsi3, lshrsi3_power, lshrsi3_no_power): Adjust. 17019 (lshrsi3_64): Adjust. 17020 (anonymous sr insn patterns): Delete. 17021 (anonymous rrib insn patterns): Delete. 17022 (ashrsi3, ashrsi3_power, ashrsi3_no_power): Adjust. 17023 (anonymous sra insn patterns): Delete. 17024 (sqrtsf2, sqrtdf2, sqrtdf2_fpr): Adjust. 17025 (fix_trunc<mode>si2, fix_trunc<mode>si2_internal, 17026 fctiwz_<mode>): Adjust. 17027 (mulsidi3, mulsidi3_mq, mulsidi3_no_mq, umulsidi3, umulsidi3_mq, 17028 umulsidi3_no_mq, smulsi3_highpart, smulsi3_highpart_mq, 17029 smulsi3_highpart_no_mq, umulsi3_highpart, umulsi3_highpart_mq, 17030 umulsi3_highpart_no_mq): Adjust. 17031 (ashldi3_power, lshrdi3_power, ashrdi3_power): Delete. 17032 (ashrdi3_no_power, ashldi3, ashldi3_internal1, 17033 lshrdi3_internal1): Adjust. 17034 (fix_trunctfsi2, fix_trunctfsi2_fprs): Adjust. 17035 (movti_power): Delete. 17036 (movti_string): Adjust. 17037 (stmsi8, stmsi7, stmsi6, stmsi5, stmsi4, stmsi3): Adjust. 17038 (stmsi8_power, stmsi7_power, stmsi6_power, stmsi5_power, 17039 stmsi4_power, stmsi3_power): Delete. 17040 (anonymous movmemsi insn patterns): Adjust. 17041 (lfq_power2, stfq_power2): Delete. 17042 (eq<mode>, eq<mode>_compare): Adjust. 17043 (eqsi_power): Delete. 17044 (ne0si): Adjust. 17045 (anonymous le, lt, ge, gt insn patterns): Delete. 17046 * config/rs6000/rs6000.opt (mpower, mno-power, mpower2): Delete. 17047 * config/rs6000/sysv4.h (TARGET_POWER): Delete. 17048 * config/rs6000/t-aix43 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 17049 MULTILIB_MATCHES): Adjust. 17050 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete 17051 -mpower, -mno-power, -mpower2, -mno-power2 documentation. 17052 Delete -mcpu=power and -mcpu=power2 documentation. 17053 170542012-07-27 Segher Boessenkool <segher@kernel.crashing.org> 17055 17056 * config/rs6000/601.md: New file. 17057 * config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for 17058 RIOS CPUs. 17059 * config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise. 17060 * config/rs6000/driver-rs6000.c (detect_processor_aix, 17061 struct asm_names): Likewise. 17062 * config/rs6000/rios1.md: Delete file. 17063 * config/rs6000/rios2.md: Delete file. 17064 * config/rs6000/rs6000-cpus.def: Delete definitions for RIOS 17065 CPUs. 17066 * config/rs6000/rs6000-opts.h (enum processor_type): Delete 17067 PROCESSOR_RIOS1 and PROCESSOR_RIOS2. 17068 * config/rs6000/rs6000-tables.opt: Regenerated. 17069 * config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost): 17070 Delete. 17071 (rs6000_option_override_internal): Delete support for RIOS CPUs. 17072 (rs6000_conditional_register_usage): Adjust comment. 17073 (rs6000_issue_rate):Delete support for RIOS CPUs. 17074 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for 17075 RIOS CPUs. 17076 (PROCESSOR_POWER): Change to PROCESSOR_PPC601. 17077 (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603. 17078 * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1 17079 and rios2. 17080 (include "rios1.md", include "rios2.md"): Delete. 17081 (include "601.md"): New. 17082 * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to 17083 PROCESSOR_PPC603. 17084 * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support 17085 for RIOS CPUs. 17086 * config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and 17087 rios2.md . Add 601.md . 17088 170892012-07-26 Richard Henderson <rth@redhat.com> 17090 17091 * doc/extend.texi (attribute): Document hot/cold for labels. 17092 * predict.c (tree_estimate_probability_bb): Handle hot/cold 17093 attributes on user labels. 17094 * predict.def (PRED_HOT_LABEL, PRED_COLD_LABEL): New. 17095 170962012-07-26 Andrew Jenner <andrew@codesourcery.com> 17097 Sandra Loosemore <sandra@codesourcery.com> 17098 17099 * cse.c (find_comparison_args): Check for cycles of any length. 17100 171012012-07-26 Nick Clifton <nickc@redhat.com> 17102 17103 * config/mn10300/mn10300.c (REG_SAVE_BYTES): Delete. 17104 (mn10300_get_live_callee_saved_regs): If requested return a count 17105 of the number of bytes in the mask. 17106 (mn10300_expand_prologue): Add argument to invocation of 17107 mn10300_get_live_callee_regs. 17108 (mn10300_expand_epilogue): Compute reg_save_bytes by calling 17109 mn10300_get_live_callee_saved_regs. 17110 (mn10300_initial_offset): Likewise. 17111 * config/mn10300/mn10300-protos.h (mn10300_get_live_callee_saved_regs): 17112 Update prototype. 17113 * config/mn10300/mn10300.md (return_ret): Add argument to 17114 invocation of mn10300_get_live_callee_saved_regs. 17115 171162012-07-26 Steven Bosscher <steven@gcc.gnu.org> 17117 17118 PR regression/54084 17119 * sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix 17120 pointer difference check. 17121 171222012-07-26 Bill Schmidt <wschmidt@linux.ibm.com> 17123 17124 * tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove. 17125 (mbc_entry_eq): Likewise. 17126 (mult_costs): Likewise. 17127 (cost_tables_exist): Likewise. 17128 (initialize_costs): Likewise. 17129 (finalize_costs): Likewise. 17130 (tree_ssa_iv_optimize_init): Remove call to initialize_costs. 17131 (add_regs_cost): Remove. 17132 (multiply_regs_cost): Likewise. 17133 (add_const_cost): Likewise. 17134 (extend_or_trunc_reg_cost): Likewise. 17135 (negate_reg_cost): Likewise. 17136 (struct mbc_entry): Likewise. 17137 (multiply_by_const_cost): Likewise. 17138 (get_address_cost): Change add_regs_cost calls to add_cost lookups; 17139 change multiply_by_const_cost to mult_by_coeff_cost. 17140 (force_expr_to_var_cost): Likewise. 17141 (difference_cost): Change multiply_by_const_cost to mult_by_coeff_cost. 17142 (get_computation_cost_at): Change add_regs_cost calls to add_cost 17143 lookups; change multiply_by_const_cost to mult_by_coeff_cost. 17144 (determine_iv_cost): Change add_regs_cost calls to add_cost lookups. 17145 (tree_ssa_iv_optimize_finalize): Remove call to finalize_costs. 17146 * tree-ssa-address.c (expmed.h): New #include. 17147 (most_expensive_mult_to_index): Change multiply_by_const_cost to 17148 mult_by_coeff_cost. 17149 * gimple-ssa-strength-reduction.c (expmed.h): New #include. 17150 (stmt_cost): Change to use mult_by_coeff_cost, mul_cost, add_cost, 17151 neg_cost, and convert_cost instead of IVOPTS interfaces. 17152 (execute_strength_reduction): Remove calls to initialize_costs and 17153 finalize_costs. 17154 * expmed.c (struct init_expmed_rtl): Add convert rtx_def. 17155 (init_expmed_one_mode): Initialize convert rtx_def; initialize 17156 x_convert_cost for related modes. 17157 (mult_by_coeff_cost): New function. 17158 * expmed.h (NUM_MODE_INT): New #define. 17159 (struct target_expmed): Add x_convert_cost matrix. 17160 (set_convert_cost): New inline function. 17161 (convert_cost): Likewise. 17162 (mult_by_coeff_cost): New extern decl. 17163 * tree-flow.h (initialize_costs): Remove decl. 17164 (finalize_costs): Likewise. 17165 (multiply_by_const_cost): Likewise. 17166 (add_regs_cost): Likewise. 17167 (multiply_regs_cost): Likewise. 17168 (add_const_cost): Likewise. 17169 (extend_or_trunc_reg_cost): Likewise. 17170 (negate_reg_cost): Likewise. 17171 * Makefile.in (gimple-ssa-strength-reduction.o): Update dependencies. 17172 (tree-ssa-address.o): Update dependencies. 17173 171742012-07-26 Steven Bosscher <steven@gcc.gnu.org> 17175 17176 * bitmap.h: Add explanation of sparse set as linked-list bitmap. 17177 * sbitmap.h: Add explanation about non-sparse sets as simple bitmap. 17178 (TEST_BIT): Make a static inline function for stronger type checking. 17179 (SET_BIT): Don't handle sbitmaps with popcount. 17180 (RESET_BIT): Likewise. 17181 (SET_BIT_WITH_POPCOUNT): New, like SET_BIT but with popcount. 17182 (RESET_BIT_WITH_POPCOUNT): New, like RESET_BIT but with popcount. 17183 * ebitmap.c (ebitmap_clear_bit): Use SET_BIT_WITH_POPCOUNT and 17184 RESET_BIT_WITH_POPCOUNT on wordmask bitmaps. 17185 (ebitmap_set_bit, ebitmap_and_into, ebitmap_and, ebitmap_ior_into, 17186 ebitmap_and_compl_into, ebitmap_and_compl): Likewise. 17187 * sparseset.h: Add explanation of sparse set representation. 17188 171892012-07-26 Richard Guenther <rguenther@suse.de> 17190 17191 PR tree-optimization/54098 17192 * tree-vrp.c (vrp_visit_phi_node): Iterate once more if the 17193 original range was UNDEFINED. 17194 171952012-07-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 17196 17197 * config/arm/neon.ml (ops): Fix regexp for vld1Q_dups64 and 17198 vld1Q_dupu64 tests. 17199 172002012-07-26 Oleg Endo <olegendo@gcc.gnu.org> 17201 17202 PR target/51244 17203 * config/sh/sh.opt (mzdcbranch): New option. 17204 * doc/invoke.texi: Document it. 17205 * config/sh/sh.md (negsi_cond): Use TARGET_ZDCBRANCH as condition 17206 instead of TARGET_HARD_SH4. 17207 * config/sh/sh.c (sh_option_override): Set TARGET_ZDCBRANCH as default 17208 for TARGET_HARD_SH4. 17209 172102012-07-25 Oleg Endo <olegendo@gcc.gnu.org> 17211 17212 PR target/54089 17213 * config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA 17214 case. 17215 (p27_shift_count_operand, not_p27_shift_count_operand): New predicates. 17216 * config/sh/sh.md (ashlsi3): Remove parallel and T_REG clobber 17217 from expander. Do not emit shift insn for not-SHMEDIA case. 17218 (ashlsi3_std): Replace with ... 17219 (ashlsi3_k, ashlsi3_d): ... these new insns. 17220 * config/sh/sh.c (gen_ashift): Make static. Add sanity checks. 17221 Emit ashlsi3_k insn instead of ashlsi3_std in ASHIFT case. 17222 (gen_ashift_hi): Make static. 17223 * config/sh/sh-protos.h (gen_ashift, gen_ashift_hi): Remove forward 17224 declaration. 17225 172262012-07-25 Bharathi Seshadri <bseshadr@cisco.com> 17227 Jim Wilson <jimwilso@cisco.com> 17228 17229 * config/arm/bpabi.h (BE8_LINK_SPEC): Set according to 17230 TARGET_BIG_ENDIAN_DEFAULT. 17231 172322012-07-25 Eric Botcazou <ebotcazou@adacore.com> 17233 17234 * gimple-low.c (lower_try_catch): New function. 17235 (lower_stmt) <GIMPLE_TRY>: Use it to lower GIMPLE_TRY_CATCH. 17236 <GIMPLE_CATCH>: Delete. 17237 <GIMPLE_EH_FILTER>: Likewise. 17238 172392012-07-25 Eric Botcazou <ebotcazou@adacore.com> 17240 17241 * expr.c (expand_expr_real_1): Do not expand operand #1 and #2 17242 of BIT_FIELD_REF for ignored results. 17243 * fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the 17244 CONSTRUCTOR has vector type before using vector accessors on it. 17245 * gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and 17246 #2 of BIT_FIELD_REF. 17247 (gimplify_expr) <BIT_FIELD_REF>: Likewise. 17248 * tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do 17249 not process operand #1 and #2. 17250 (convert_local_reference_op): Likewise. 17251 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous 17252 breaks throughout. 17253 <BIT_FIELD_REF>: Reuse operand #1 and #2 directly. 17254 * tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize 17255 operand #1 and #2. 17256 (UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF. 17257 (build6_stat): Delete. 17258 * tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise. 17259 172602012-07-25 Marc Glisse <marc.glisse@inria.fr> 17261 17262 PR tree-optimization/30318 17263 * tree-vrp.c (extract_range_from_binary_expr_1) [PLUS_EXPR]: 17264 Handle __int128. 17265 [MINUS_EXPR]: Merge with PLUS_EXPR. 17266 172672012-07-25 Sandra Loosemore <sandra@codesourcery.com> 17268 Paul Brook <paul@codesourcery.com> 17269 17270 PR target/53633 17271 * target.def (warn_func_return): New hook. 17272 * doc/tm.texi.in (TARGET_WARN_FUNC_RETURN): New hook. 17273 * doc/tm.texi: Regenerate. 17274 * doc/sourcebuild.texi (Effective-Target Keywords): Document 17275 naked_functions. 17276 * ipa-pure-const.c (warn_function_noreturn): Check 17277 targetm.warn_func_return. 17278 * tree-cfg.c (execute_warn_function_return): Likewise. 17279 * config/spu/spu.c (spu_warn_func_return): New. 17280 (TARGET_WARN_FUNC_RETURN): Define. 17281 * config/rx/rx.c (rx_warn_func_return): New. 17282 (TARGET_WARN_FUNC_RETURN): Define. 17283 * config/avr/avr.c (avr_warn_func_return): New. 17284 (TARGET_WARN_FUNC_RETURN): Define. 17285 * config/arm/arm.c (arm_warn_func_return): New. 17286 (TARGET_WARN_FUNC_RETURN): Define. 17287 * config/mcore/mcore.c (mcore_warn_func_return): New. 17288 (TARGET_WARN_FUNC_RETURN): Define. 17289 (saved_warn_return_type, saved_warn_return_type_count): Remove. 17290 (mcore_reorg, mcore_handle_naked_attribute): Remove warn_return hack. 17291 172922012-07-25 Siddhesh Poyarekar <siddhesh@redhat.com> 17293 17294 * final.c [ASSEMBLER_DIALECT](do_assembler_dialects): New 17295 function to implement assembler dialects. 17296 (output_asm_insn): Use do_assembler_dialects. 17297 (asm_fprintf): Likewise. 17298 172992012-07-25 Richard Henderson <rth@redhat.com> 17300 17301 PR bootstrap/54092 17302 * libfuncs.h: Don't include optabs.h. 17303 (struct libfunc_entry): Use "int" for op, mode1, mode2 members. 17304 * optabs.c (hash_libfunc): Don't cast members to int. 17305 * Makefile.in (LIBFUNCS_H): Don't include OPTABS_H. 17306 173072012-07-25 Dodji Seketeli <dodji@redhat.com> 17308 17309 * basic-block.c: Fix typo in comment. 17310 173112012-07-25 Kirill Yukhin <kirill.yukhin@intel.com> 17312 Michael Zolotukhin <michael.v.zolotukhin@intel.com> 17313 17314 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New. 17315 (OPTION_MASK_ISA_PRFCHW_UNSET): Likewise. 17316 (ix86_handle_option): Handle mprfchw option. 17317 * config.gcc (i[34567]86-*-*): Add prfchwintrin.h. 17318 (x86_64-*-*): Likewise. 17319 * config/i386/prfchwintrin.h: New header. 17320 * config/i386/cpuid.h (bit_PRFCHW): New. 17321 (bit_BMI): Formatting fix. 17322 (bit_HLE): Likewise. 17323 (bit_RTM): Likewise. 17324 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 17325 PREFETCHW support. 17326 * config/i386/i386-c.c: Define __PRFCHW__ if needed. 17327 * config/i386/i386.c (ix86_target_string): Define 17328 -mprfchw option. Formatting fixes. 17329 (PTA_HLE): Formatting fix. 17330 (PTA_PRFCHW): New. 17331 (ix86_option_override_internal): Handle new option. 17332 (ix86_valid_target_attribute_inner_p): Add OPT_mprfchw. 17333 * config/i386/i386.h (TARGET_PRFCHW): New. 17334 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW. 17335 * config/i386/i386.opt (mprfchw): New. 17336 * config/i386/mm3dnow.h: Move _m_prefetchw from here to prfchwintrin.h. 17337 * config/i386/x86intrin.h: Include prfchwintrin.h. 17338 173392012-07-25 Sergey Melnikov <sergey.melnikov@intel.com> 17340 17341 * config/i386/i386.md (stack_protect_set): Disable the pattern 17342 for Android since Android libc (bionic) does not provide random 17343 value for stack protection guard at gs:0x14. Guard value 17344 will be provided from external symbol (default implementation). 17345 (stack_protect_set_<mode>): Likewise. 17346 (stack_protect_test): Likewise. 17347 (stack_protect_test_<mode>): Likewise. 17348 * defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does 17349 not have Bionic by default 17350 * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC) 17351 Macro OPTION_BIONIC is defined in this file and provides Bionic 17352 accessibility status 17353 173542012-07-25 Steven Bosscher <steven@gcc.gnu.org> 17355 17356 * gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush. 17357 173582012-07-25 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 17359 17360 btver2 Enablement 17361 * config.gcc (i[34567]86-*-linux* | ...): Add btver2. 17362 (case ${target}): Add btver2. 17363 * config/i386/driver-i386.c (host_detect_local_cpu): Let 17364 -march=native recognize btver2 processors. 17365 * config/i386/i386-c.c (ix86_target_macros_internal): Add 17366 btver2 def_and_undef 17367 * config/i386/i386.c (struct processor_costs btver2_cost): New 17368 btver2 cost table. 17369 (m_BTVER2): New definition. 17370 (m_AMD_MULTIPLE): Includes m_BTVER2. 17371 (initial_ix86_tune_features): Add btver2 tune. 17372 (processor_target_table): Add btver2 entry. 17373 (static const char *const cpu_names): Add btver2 entry. 17374 (software_prefetching_beneficial_p): Add btver2. 17375 (ix86_option_override_internal): Add btver2 instruction sets. 17376 (ix86_issue_rate): Add btver2. 17377 (ix86_adjust_cost): Add btver2. 17378 * config/i386/i386.h (TARGET_BTVER2): New definition. 17379 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver2. 17380 (enum processor_type): Add PROCESSOR_BTVER2. 17381 * config/i386/i386.md (define_attr "cpu"): Add btver2. 17382 173832012-07-24 Bill Schmidt <wschmidt@linux.ibm.com> 17384 17385 * doc/tm.texi: Regenerate. 17386 * targhooks.c (default_init_cost): Add prologue and epilogue costs. 17387 (default_add_stmt_cost): Likewise; also handle NULL stmt_info. 17388 (default_finish_cost): Add prologue and epilogue costs. 17389 * targhooks.h (default_add_stmt_cost): Change parameter list. 17390 (default_finish_cost): Likewise. 17391 * target.def (init_cost): Change documentation string. 17392 (add_stmt_cost): Change documentation string and parameter list. 17393 (finish_cost): Likewise. 17394 * target.h (vect_cost_model_location): New enum. 17395 * tree-vectorizer.h (struct _slp_tree): Remove cost substruct. 17396 (struct _slp_instance): Remove cost substruct; rename stmt_cost_vec 17397 to body_cost_vec. 17398 (SLP_INSTANCE_OUTSIDE_OF_LOOP_COST): Remove. 17399 (SLP_INSTANCE_STMT_COST_VEC): Rename to SLP_INSTANCE_BODY_COST_VEC. 17400 (SLP_TREE_OUTSIDE_OF_LOOP_COST): Remove. 17401 (struct _vect_peel_extended_info): Rename stmt_cost_vec to 17402 body_cost_vec. 17403 (struct _stmt_vec_info): Remove cost substruct. 17404 (STMT_VINFO_OUTSIDE_OF_LOOP_COST): Remove. 17405 (stmt_vinfo_set_outside_of_loop_cost): Remove. 17406 (builtin_vectorization_cost): New function. 17407 (vect_get_stmt_cost): Change to use builtin_vectorization_cost. 17408 (add_stmt_cost): Change parameter list. 17409 (finish_cost): Likewise. 17410 (vect_model_simple_cost): Likewise. 17411 (vect_model_store_cost): Likewise. 17412 (vect_model_load_cost): Likewise. 17413 (record_stmt_cost): Likewise. 17414 (vect_get_load_cost): Likewise. 17415 (vect_get_known_peeling_cost): Likewise. 17416 * tree-vect-loop.c (vect_get_known_peeling_cost): Change parameter 17417 list; call record_stmt_cost for prologue and epilogue costs. 17418 (vect_estimate_min_profitable_iters): Call add_stmt_cost for 17419 prologue and epilogue costs; remove computation of vec_outside_cost; 17420 return vec_prologue_cost and vec_epilogue_cost from finish_cost. 17421 (vect_model_reduction_cost): Revise call to add_stmt_cost for body 17422 costs; call add_stmt_cost for prologue and epilogue costs. 17423 (vect_model_induction_cost): Revise call to add_stmt_cost for body 17424 costs; call add_stmt_cost for prologue costs. 17425 * tree-vect-data-refs.c (vect_get_data_access_cost): Change parameter 17426 list for function and arguments for calls to vect_get_load_cost and 17427 vect_get_store_cost. 17428 (vect_peeling_hash_get_lowest_cost): Change argument list for calls to 17429 vect_get_data_access_cost and vect_get_known_peeling_cost; use 17430 temporary vectors prologue_cost_vec and epilogue_cost_vec for the 17431 latter call and discard their results; rename stmt_cost_vec to 17432 body_cost_vec; correct possible storage leak for body_cost_vec. 17433 (vect_peeling_hash_choose_best_peeling): Rename stmt_cost_vec to 17434 body_cost_vec. 17435 (vect_enhance_data_refs_alignment): Rename stmt_cost_vec to 17436 body_cost_vec; add extra dummy parameter on calls to 17437 vect_get_data_access_cost; tolerate null si->stmt; add vect_body to 17438 argument list on call to add_stmt_cost. 17439 * tree-vect-stmts.c (record_stmt_cost): Change parameter list; 17440 rename stmt_cost_vec to body_cost_vec; tolerate null stmt_info; call 17441 builtin_vectorization_cost; add "where" parameter on call to 17442 add_stmt_cost. 17443 (vect_model_simple_cost): Change parameter list; call record_stmt_cost 17444 for prologue costs; remove call to stmt_vinfo_set_outside_of_loop_cost; 17445 rename stmt_cost_vec to body_cost_vec. 17446 (vect_model_promotion_demotion_cost): Add vect_body argument to call 17447 to add_stmt_cost; call add_stmt_cost for prologue costs; remove call 17448 to stmt_vinfo_set_outside_of_loop_cost. 17449 (vect_model_store_cost): Change parameter list; call record_stmt_cost 17450 for prologue costs; add vect_body argument to call to record_stmt_cost; 17451 rename stmt_cost_vec to body_cost_vec; remove call to 17452 stmt_vinfo_set_outside_of_loop_cost. 17453 (vect_get_store_cost): Rename stmt_cost_vec to body_cost_vec; add 17454 vect_body argument to calls to record_stmt_cost. 17455 (vect_model_load_cost): Change parameter list; rename stmt_cost_vec to 17456 body_cost_vec; add vect_body argument to calls to record_stmt_cost; 17457 remove call to stmt_vinfo_set_outside_of_loop_cost. 17458 (vect_get_load_cost): Change parameter list; rename stmt_cost_vec to 17459 body_cost_vec; add vect_body argument to calls to record_stmt_cost; 17460 call record_stmt_cost for prologue costs. 17461 (vectorizable_store): Change argument list for call to 17462 vect_model_store_cost. 17463 (vectorizable_load): Change argument list for call to 17464 vect_model_load_cost. 17465 (new_stmt_vec_info): Remove assignment to 17466 STMT_VINFO_OUTSIDE_OF_LOOP_COST. 17467 * config/spu/spu.c (spu_init_cost): Add prologue and epilogue costs. 17468 (spu_add_stmt_cost): Likewise; also handle NULL stmt_info. 17469 (spu_finish_cost): Add prologue and epilogue costs. 17470 * config/i386/i386.c (i386_init_cost): Add prologue and epilogue costs. 17471 (i386_add_stmt_cost): Likewise; also handle NULL stmt_info. 17472 (i386_finish_cost): Add prologue and epilogue costs. 17473 * config/rs6000/rs6000.c (rs6000_init_cost): Add prologue and epilogue 17474 costs. 17475 (rs6000_add_stmt_cost): Likewise; also handle NULL stmt_info. 17476 (rs6000_finish_cost): Add prologue and epilogue costs. 17477 * tree-vect-slp.c (vect_free_slp_instance): Rename 17478 SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC. 17479 (vect_create_new_slp_node): Remove assignment to 17480 SLP_TREE_OUTSIDE_OF_LOOP_COST. 17481 (vect_get_and_check_slp_defs): Change parameter list; change argument 17482 lists to calls to vect_model_store_cost and vect_model_simple_cost. 17483 (vect_build_slp_tree): Change parameter list; change argument lists 17484 to calls to vect_model_load_cost, vect_get_and_check_slp_defs, and 17485 recursive self-calls; remove setting of outside_cost from 17486 SLP_TREE_OUTSIDE_OF_LOOP_COST; add vect_body argument to call to 17487 record_stmt_cost. 17488 (vect_analyze_slp_instance): Rename stmt_cost_vec to body_cost_vec; 17489 rename SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC; 17490 remove assignment to SLP_INSTANCE_OUTSIDE_OF_LOOP_COST; record SLP 17491 prologue costs. 17492 (vect_bb_vectorization_profitable_p): Rename stmt_cost_vec to 17493 body_cost_vec; handle null ci->stmt; add vect_body argument to call 17494 to add_stmt_cost; simplify calls to targetm.vectorize. 17495 builtin_vectorization_cost; return vec_prologue_cost and 17496 vec_epilogue_cost from finish_cost. 17497 (vect_update_slp_costs_according_to_vf): Rename stmt_cost_vec to 17498 body_cost_vec; add vect_body argument to call to add_stmt_cost. 17499 175002012-07-24 Richard Henderson <rth@redhat.com> 17501 17502 * system.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Poison. 17503 * config/cris/cris.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove. 17504 * config/h8300/h8300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove. 17505 * config/mn10300/mn10300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove. 17506 * config/rs6000/rs6000.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove 17507 comment reference. 17508 * config/v850/v850.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove. 17509 * config/v850/v850.md (fixuns_truncsfsi2, fixuns_truncdfsi2): New. 17510 (fix_truncsfsi2, fix_truncdfsi2): Avoid double FIX. 17511 * config/vax/vax.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove. 17512 * config/vax/vax.md (fixuns_trunc<VAXfp><VAXint>): New. 17513 * doc/tm.texi.in (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove. 17514 * doc/tm.texi: Rebuild. 17515 175162012-07-24 Richard Henderson <rth@redhat.com> 17517 17518 * optabs.def: New file. 17519 * Makefile.in (OPTABS_H): Add insn-opinit.h. 17520 (MOSTLYCLEANFILES): Likewise. 17521 (insn-opinit.o): Remove reload.h 17522 (simple_rtl_generated_c): Remove insn-opinit.c. 17523 (s-opinit): New rule. 17524 (build/genopinit.o): Add optabs.def. 17525 * genopinit.c (rtx_upname): New. 17526 (optabs): Extract to optabs.def 17527 (enum optab_tag, struct optab_def_d, optabs): New. 17528 (struct pattern_d, patterns): New. 17529 (match_pattern): Split out from ... 17530 (gen_insn): ... here. Push matches on patterns vec. 17531 (pattern_cmp, optab_kind_cmp, optab_rcode_cmp): New. 17532 (header_file_name, source_file_name, handle_arg): New. 17533 (open_outfile): New. 17534 (main): Sort and emit new tables. Generate lookup_handler, 17535 raw_optab_handler, swap_optab_enable. 17536 * libfuncs.h (libfunc_entry): Change "size_t optab" to "optab op". 17537 * optabs.c (code_to_optab_): Remove. 17538 (hash_libfunc): Update for optab name change. 17539 (eq_libfunc): Likewise. 17540 (convert_optab_libfunc): Update computation of optab member; 17541 use the new convlib_def table. 17542 (optab_libfunc): Similarly. 17543 (set_optab_libfunc, set_conv_libfunc): Likewise. 17544 (sign_expand_binop): Use swap_optab_enable instead of fake optabs. 17545 (init_insn_codes, init_optab, init_optabv, init_convert_optab): Remove. 17546 (init_optabs): Don't call them; export the data to optabs.def. 17547 (gen_int_libfunc, gen_fp_libfunc): Export non-static. 17548 (gen_fixed_libfunc, gen_signed_fixed_libfunc): Likewise. 17549 (gen_unsigned_fixed_libfunc, gen_int_fp_libfunc): Likewise. 17550 (gen_intv_fp_libfunc, gen_int_fp_fixed_libfunc): Likewise. 17551 (gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc): Likewise. 17552 (gen_int_signed_fixed_libfunc): Likewise. 17553 (gen_int_unsigned_fixed_libfunc): Likewise. 17554 (gen_interclass_conv_libfunc, gen_int_to_fp_conv_libfunc): Likewise. 17555 (gen_ufloat_conv_libfunc): Likewise. 17556 (gen_int_to_fp_nondecimal_conv_libfunc): Likewise. 17557 (gen_fp_to_int_conv_libfunc, gen_intraclass_conv_libfunc): Likewise. 17558 (gen_trunc_conv_libfunc, gen_extend_conv_libfunc): Likewise. 17559 (gen_fract_conv_libfunc, gen_fractuns_conv_libfunc): Likewise. 17560 (gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): Likewise. 17561 (debug_optab_libfuncs): Update for optab representation change. 17562 * optabs.h: Include insn-opinit.h. 17563 (optab, convert_optab, direct_optab): New typedefs. 17564 (struct optab_handlers, struct widening_optab_handlers): Remove. 17565 (struct optab_libcall_d): Rename from optab_d; remove code_, 17566 handlers, widening members. 17567 (struct convert_optab_libcall_d): Rename from convert_optab_d; 17568 remove code_ and handlers members. 17569 (enum optab_index, enum convert_optab_index): Remove. 17570 (enum direct_optab_index): Remove. 17571 (code_to_optab_): Fix array range. 17572 (optab_to_code): Covert to inline function. 17573 (optab_to_code_, convlib_def, normlib_def): Declare. 17574 (raw_optab_handler, swap_optab_enable): Declare. 17575 (unknown_optab): Remove; export to optabs.def 17576 (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab, 17577 usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab, 17578 ssashl_optab, usashl_optab, add_optab, sub_optab, smul_optab, 17579 addv_optab, subv_optab, smul_highpart_optab, umul_highpart_optab, 17580 smul_widen_optab, umul_widen_optab, usmul_widen_optab, 17581 smadd_widen_optab, umadd_widen_optab, ssmadd_widen_optab, 17582 usmadd_widen_optab, smsub_widen_optab, umsub_widen_optab, 17583 ssmsub_widen_optab, usmsub_widen_optab, sdiv_optab, smulv_optab, 17584 sdivv_optab, sdivmod_optab, udiv_optab, udivmod_optab, smod_optab, 17585 umod_optab, fmod_optab, remainder_optab, ftrunc_optab, and_optab, 17586 ior_optab, xor_optab, ashl_optab, lshr_optab, ashr_optab, rotl_optab, 17587 rotr_optab, vashl_optab, vlshr_optab, vashr_optab, vrotl_optab, 17588 vrotr_optab, smin_optab, smax_optab, umin_optab, umax_optab, pow_optab, 17589 atan2_optab, fma_optab, fms_optab, fnma_optab, fnms_optab, mov_optab, 17590 movstrict_optab, movmisalign_optab, storent_optab, neg_optab, 17591 negv_optab, abs_optab, absv_optab, one_cmpl_optab, bswap_optab, 17592 ffs_optab, clz_optab, ctz_optab, clrsb_optab, popcount_optab, 17593 parity_optab, sqrt_optab, sincos_optab, sin_optab, asin_optab, 17594 cos_optab, acos_optab, exp_optab, exp10_optab, exp2_optab, expm1_optab, 17595 ldexp_optab, scalb_optab, significand_optab, logb_optab, ilogb_optab, 17596 log_optab, log10_optab, log2_optab, log1p_optab, floor_optab, 17597 ceil_optab, btrunc_optab, round_optab, nearbyint_optab, rint_optab, 17598 tan_optab, atan_optab, copysign_optab, signbit_optab, isinf_optab, 17599 cmp_optab, ucmp_optab, eq_optab, ne_optab, gt_optab, ge_optab, 17600 lt_optab, le_optab, unord_optab, strlen_optab, cbranch_optab, 17601 cmov_optab, cstore_optab, ctrap_optab, push_optab, addcc_optab, 17602 reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab, 17603 reduc_splus_optab, reduc_uplus_optab, ssum_widen_optab, 17604 usum_widen_optab, sdot_prod_optab, udot_prod_optab, vec_set_optab, 17605 vec_extract_optab, vec_init_optab, vec_shl_optab, vec_shr_optab, 17606 vec_realign_load_optab, vec_widen_umult_hi_optab, 17607 vec_widen_umult_lo_optab, vec_widen_smult_hi_optab, 17608 vec_widen_smult_lo_optab, vec_widen_umult_even_optab, 17609 vec_widen_umult_odd_optab, vec_widen_smult_even_optab, 17610 vec_widen_smult_odd_optab, vec_widen_ushiftl_hi_optab, 17611 vec_widen_ushiftl_lo_optab, vec_widen_sshiftl_hi_optab, 17612 vec_widen_sshiftl_lo_optab, vec_unpacks_hi_optab, vec_unpacks_lo_optab, 17613 vec_unpacku_hi_optab, vec_unpacku_lo_optab, vec_unpacks_float_hi_optab, 17614 vec_unpacks_float_lo_optab, vec_unpacku_float_hi_optab, 17615 vec_unpacku_float_lo_optab, vec_pack_trunc_optab, vec_pack_ssat_optab, 17616 vec_pack_usat_optab, vec_pack_sfix_trunc_optab, 17617 vec_pack_ufix_trunc_optab, powi_optab, sync_compare_and_swap_optab, 17618 sync_lock_test_and_set_optab, sync_old_add_optab, sync_old_sub_optab, 17619 sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab, 17620 sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab, 17621 sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab, 17622 sync_new_nand_optab, sext_optab, zext_optab, trunc_optab, sfix_optab, 17623 ufix_optab, sfixtrunc_optab, ufixtrunc_optab, sfloat_optab, 17624 ufloat_optab, lrint_optab, lround_optab, lfloor_optab, lceil_optab, 17625 fract_optab, fractuns_optab, satfract_optab, satfractuns_optab, 17626 vec_load_lanes_optab, vec_store_lanes_optab, vcond_optab, vcondu_optab, 17627 movcc_optab, reload_in_optab, reload_out_optab, movmem_optab, 17628 setmem_optab, cmpstr_optab, cmpstrn_optab, cmpmem_optab, 17629 sync_lock_release_optab, sync_add_optab, sync_sub_optab, 17630 sync_ior_optab, sync_and_optab, sync_xor_optab, sync_nand_optab, 17631 atomic_exchange_optab, atomic_compare_and_swap_optab, 17632 atomic_load_optab, atomic_store_optab, atomic_add_fetch_optab, 17633 atomic_sub_fetch_optab, atomic_and_fetch_optab, 17634 atomic_nand_fetch_optab, atomic_xor_fetch_optab, atomic_or_fetch_optab, 17635 atomic_fetch_add_optab, atomic_fetch_sub_optab, atomic_fetch_and_optab, 17636 atomic_fetch_nand_optab, atomic_fetch_xor_optab, atomic_fetch_or_optab, 17637 atomic_add_optab, atomic_sub_optab, atomic_and_optab, 17638 atomic_nand_optab, atomic_xor_optab, atomic_or_optab, 17639 atomic_always_lock_free_optab, atomic_is_lock_free_optab, 17640 atomic_thread_fence_optab, atomic_signal_fence_optab, 17641 vec_perm_optab, vec_perm_const_optab): Likewise. 17642 (struct target_optabs): Remove x_optab_table, x_convert_optab_table, 17643 and x_direct_optab_table members; add pat_enable. 17644 (optab_table, convert_optab_table, direct_optab_table): Remove. 17645 (optab_handler): Use raw_optab_handler. 17646 (widening_optab_handler, convert_optab_handler): Likewise. 17647 (set_optab_handler, set_widening_optab_handler): Remove. 17648 (set_convert_optab_handler, set_direct_optab_handler): Remove. 17649 (direct_optab_handler): Defer to optab_handler. 17650 * rtl.h (NON_GENERATOR_NUM_RTX_CODE): New. 17651 176522012-07-24 Jason Merrill <jason@redhat.com> 17653 17654 * bitmap.c (bitmap_descriptor): Adjust order of parameters to 17655 match MEM_STAT_DECL. 17656 * statistics.h (ALONE_FINAL_MEM_STAT_DECL): Correct typo. 17657 176582012-07-24 Richard Henderson <rth@redhat.com> 17659 17660 * optabs.h (struct optab_d): Rename code member to code_. 17661 (struct convert_optab_h): Likewise. 17662 (code_to_optab_): Rename from code_to_optab. 17663 (code_to_optab, optab_to_code): New. 17664 * dojump.c (do_compare_rtx_and_jump): Use code_to_optab. 17665 * ifcvt.c (noce_emit_move_insn): Likewise. 17666 * optabs.c (simplify_expand_binop): Use optab_to_code. 17667 (expand_simple_binop, shift_optab_p, commutative_optab_p): Likewise. 17668 (avoid_expensive_constant, expand_binop_directly): Likewise. 17669 (expand_binop, expand_simple_unop, expand_unop_direct): Likewise. 17670 (expand_unop, prepare_float_lib_cmp, expand_fixed_convert): Likewise. 17671 (have_insn_for, debug_optab_libfuncs): Likewise. 17672 (init_optab, init_optabv, init_convert_optab): Update for optab 17673 member name change. 17674 17675 * libfuncs.h: Include optabs.h. 17676 * dwarf2out.c, lto-streamer.in.c: Don't include libfuncs.h. 17677 * Makefile.in (LIBFUNCS_H): Add OPTABS_H. 17678 (lto-streamer-in.o, dwarf2out.o): Update deps. 17679 17680 * optabs.h (unknown_optab): New. 17681 * builtins.c (interclass_mathfn_icode): Use it. 17682 * dojump.c (do_compare_rtx_and_jump): Likewise. 17683 * optabs.c (optab_for_tree_code, expand_binop): Likewise. 17684 * tree-vect-generic.c (add_rshift, expand_vector_divmod): Likewise. 17685 (expand_vector_operations_1): Likewise. 17686 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise. 17687 * tree-vect-stmts.c (supportable_narrowing_operation): Likewise. 17688 176892012-07-24 Steven Bosscher <steven@gcc.gnu.org> 17690 17691 * alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check. 17692 176932012-07-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 17694 17695 PR target/54051 17696 * config/arm/arm.c (arm_print_operand_address): Remove superfluous 17697 printing of 0. 17698 * config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment 17699 specifier. 17700 ("neon_vld3_lane<mode>":VMQ): Likewise. 17701 ("neon_vld3_dup<mode>":VDX): Likewise. 17702 ("neon_vst3_lane<mode>":VD): Likewise. 17703 ("neon_vst3_lane<mode>":VMQ): Likewise. 17704 177052012-07-24 Roland McGrath <mcgrathr@google.com> 17706 17707 * arm.c (arm_get_frame_offsets): Don't use fixed regs for 17708 stack alignment padding. 17709 177102012-07-24 Uros Bizjak <ubizjak@gmail.com> 17711 17712 PR target/53961 17713 * config/i386/i386.c (ix86_legitimate_address_p): Move check for 17714 negative constant address for TARGET_X32 ... 17715 (ix86_decompose_address): ... here. Reject constant addresses 17716 that don't satisfy x86_64_immediate_operand predicate. 17717 177182012-07-24 Julian Brown <julian@codesourcery.com> 17719 17720 * doc/sourcebuild.texi (arm_hf_eabi): Document effective-target check. 17721 177222012-07-24 Steven Bosscher <steven@gcc.gnu.org> 17723 17724 * sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS. 17725 Move test to check that there is a popcount function for the the number 17726 of bits in SBITMAP_ELT_BITS to sbitmap.c. 17727 * sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT. 17728 MEM_STAT_INFO): Define in terms of their ALONE counterparts. 17729 17730 * configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled. 17731 * configure: Regenerate. 17732 * statistics.h (GATHER_STATISTICS): Error out if it is not defined. 17733 (GCC_MEM_STAT_ARGUMENTS): New define. 17734 (ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS. 17735 (ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines. 17736 (MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT, 17737 FINAL_PASS_MEM_STAT): Define. 17738 * ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL. 17739 * ggc.h (ggc_record_overhead, ggc_free_overhead, 17740 ggc_prune_overhead_list): Remove internal prototypes, they are defined 17741 already in ggc-internal.h. 17742 * ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS 17743 wrappers. 17744 (add_statistics): Likewise. 17745 (dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0. 17746 * ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS 17747 wrappers around "survived" and "stats" members. 17748 (alloc_large_page): Always initialize survived. 17749 (ggc_internal_alloc_zone_stat): Likewise. 17750 Remove #ifdef GATHER_STATISTICS wrappers. Record overhead if 17751 GATHER_STATISTICS is non-0. 17752 (ggc_free): Convert #ifdef GATHER_STATISTICS to if-code. 17753 (sweep_pages): Always increase survived. 17754 (ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code. 17755 (calculate_average_page_survival): Always define. 17756 (ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code. 17757 (ggc_print_statistics): Likewise. 17758 (ggc_pch_read): Likewise. 17759 * ggc-page.c (struct globals): Always define "stats" member. 17760 (ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code. 17761 (ggc_free): Likewise. 17762 (ggc_collec): Likewise. 17763 (ggc_print_statistics): Likewise. 17764 * bitmap.h (struct bitmap_head_def): Always define "desc" member. 17765 (bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code. 17766 * gimple.h (enum gimple_alloc_kind): Always define. 17767 (gimple_alloc_kind): Likewise. 17768 * tree-flow.h (phinodes_print_statistics): Always define. 17769 (ssanames_print_statistics): Likewise. 17770 * vec.h (vec_heap_free): Always define. 17771 (VEC_stack_alloc): Define if GATHER_STATISTICS is non-0. 17772 * alloc-pool.c (alloc_pool_descriptor): Always define. 17773 (create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code. 17774 (empty_alloc_pool): Likewise. 17775 (pool_alloc): Likewise. 17776 (pool_free): Likewise. 17777 (dump_alloc_pool_statistics): Likewise. 17778 (print_statistics): Always define. 17779 * bitmap.c (struct bitmap_descriptor): Always define. 17780 (bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT. 17781 (register_overhead): Always define. 17782 (bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code. 17783 (bitmap_element_allocate): Likewise. 17784 (bitmap_elt_clear_from): Likewise. 17785 (bitmap_obstack_alloc_stat): Likewise. 17786 (bitmap_gc_alloc_stat): Likewise. 17787 (bitmap_obstack_free): Likewise. 17788 (bitmap_find_bit): Likewise. 17789 (bitmap_ior_and_into): Likewise. 17790 (bitmap_print): Likewise. 17791 (dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0. 17792 * gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define. 17793 (gimple_alloc_kind_names): Likewise. 17794 (gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code. 17795 (dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0. 17796 * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts, 17797 rtvec_alloc_sizes): Always define. 17798 (rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code. 17799 (rtx_alloc_stat): Likewise. 17800 (dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0. 17801 * tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts, 17802 tree_node_sizes, tree_node_kind_names): Always define. 17803 (record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS 17804 to if-code. 17805 (type_hash_canon): Likewise. 17806 (dump_tree_statistics): Likewise. 17807 * tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created): 17808 Always define. 17809 (ssanames_print_statistics): Likewise. 17810 (make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code. 17811 * tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define. 17812 (phinodes_print_statistics): Likewise. 17813 (allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code. 17814 * vec.c (struct vec_descriptor): Always define. 17815 (hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr, 17816 vec_descriptor, rester_overhead, free_overhead): Likewise. 17817 (cmp_statistic): Likewise. 17818 (vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code. 17819 (vec_heap_o_reserve_1): Likewise. 17820 (dump_vec_loc_statistics): Likewise. 17821 178222012-07-24 Richard Guenther <rguenther@suse.de> 17823 17824 PR tree-optimization/53616 17825 * tree-loop-distribution.c (ldist_gen): Do not change 17826 partition ordering when merging partitions. 17827 178282012-07-24 Alan Modra <amodra@gmail.com> 17829 17830 PR target/53914 17831 PR target/54009 17832 * config/rs6000/constraints.md (Y): Use mem_operand_gpr. 17833 * config/rs6000/predicates.md (word_offset_memref_operand): Delete. 17834 Adjust all rs6000_legitimate_offset_address_p calls. 17835 * config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare. 17836 (rs6000_secondary_reload_gpr): Declare. 17837 (rs6000_legitimate_offset_address_p): Update prototype. 17838 (rs6000_offsettable_memref_p): Delete. 17839 (rs6000_secondary_reload_ppc64): Delete. 17840 * config/rs6000/rs6000.c (address_offset): New function. 17841 (mem_operand_gpr): Likewise. 17842 (rs6000_legitimate_offset_address_p): Add worst_case param. When 17843 not worst_case assume class of regs with least restrictive offsets. 17844 Adjust all calls. 17845 (legitimate_lo_sum_address_p): Simplify register mode tests. 17846 (rs6000_legitimize_address): Likewise. Assume best case offset 17847 addressing. Combine ELF and MACHO lo_sum code. 17848 (rs6000_mode_dependent_address): Correct offset addressing limits. 17849 (rs6000_offsettable_memref_p): Make static, add reg_mode param. 17850 Use reg_mode to help rs6000_legitimate_offset_address_p. 17851 (rs6000_secondary_reload): Use address_offset. Handle 32-bit multi 17852 gpr load/store when offset too large. 17853 (rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64. 17854 (rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls. 17855 * config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint 17856 for gpr load/store. Order alternatives as r->Y,Y->r,r->r and 17857 d->m,m->d,d->d. Correct size of gpr load/store. 17858 (movdf_softfloat32): Use 'Y' constraint for gpr load/store. Order 17859 alternatives. 17860 (movti_ppc64): Likewise. 17861 (movdi_internal32): Likewise. Also disparage fprs. 17862 (movdi_mfpgpr, movdi_internal64): Likewise. 17863 (movtf_internal): Use 'm' for fpr load/store. Order alternatives. 17864 (movtf_softfloat): Order alternatives. 17865 (extenddftf2_internal): Use 'm' and 'Y' for store. 17866 (movti_power, movti_string): Use 'Y' for gpr load/store. Order. 17867 (stack_protect_setdi, stack_protect_testdi): Likewise. 17868 (movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives. 17869 (movdf_softfloat64): Likewise. 17870 (reload_<mode>_store): Adjust reload_di_store to provide 17871 reload_si_store as well. 17872 (reload_<mode>_load): Likewise. 17873 178742012-07-23 Oleg Endo <olegendo@gcc.gnu.org> 17875 17876 PR target/51244 17877 * config/sh/predicates.md (general_movsrc_operand, 17878 general_movdst_operand): Reject T_REG. 17879 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg, 17880 movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg): 17881 Remove T_REG alternatives. 17882 (*negtstsi): New insn. 17883 178842012-07-23 Oleg Endo <olegendo@gcc.gnu.org> 17885 17886 PR target/53511 17887 * config/sh/sh.md (mulsf3_ie): Delete. 17888 (mulsf3_i4): Rename to mulsf3_i. 17889 (mulsf3): Emit mulsf3_i insn. 17890 178912012-07-23 Oleg Endo <olegendo@gcc.gnu.org> 17892 17893 * config/sh/sh.md (addc1, subc1): Delete. 17894 (adddi3_compact): Use addc instead of addc1. 17895 (subdi3_compact): Use subc instead of subc1. 17896 178972012-07-23 Uros Bizjak <ubizjak@gmail.com> 17898 17899 * config/i386/i386-protos.h (ix86_lea_outperforms): Remove prototype. 17900 * config/i386/i386.c (ix86_lea_outperforms): Make static. Make 17901 split_cost argument signed. 17902 (ix86_avoid_lea_for_add): Cleanup. 17903 (ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1. 17904 (ix86_avoid_lea_for_addr): Ditto. Make split_cost signed. 17905 Use gen_lowpart instead of gen_rtx_SUBREG. Cleanup. 17906 179072012-07-23 Ulrich Weigand <ulrich.weigand@linaro.org> 17908 17909 * config/arm/arm.c (arm_reorg): Ensure all insns are split. 17910 179112012-07-23 Uros Bizjak <ubizjak@gmail.com> 17912 17913 PR target/53961 17914 * config/i386/i386.md (*lea): Add asserts to detect invalid addresses. 17915 * config/i386/i386.c (ix86_print_operand_address): Ditto. 17916 (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...))) 17917 addresses. Prevent zero extensions of CONST_INT operands. 17918 179192012-07-23 Steven Bosscher <steven@gcc.gnu.org> 17920 17921 * sbitmap.h (struct int_list): Remove. 17922 (sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc): 17923 Remove prototypes of non-existing function. 17924 (sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors, 17925 sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove 17926 unused defines. 17927 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds, 17928 sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to... 17929 * basic-block.h: ... here. 17930 * sbitmap.c: Do not include basic-block.h. 17931 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds, 17932 sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to... 17933 * cfganal.c: ... here. 17934 * bt-load.c (compute_out, link_btr_uses): Update for above changes. 17935 * gcse.c (compute_code_hoist_vbeinout): Likewise. 17936 * lcm.c (compute_antinout_edge, compute_available): Likewise. 17937 * Makefile.in: Fix sbitmap.o dependencies. 17938 179392012-07-23 Jan-Benedict Glaw <jbglaw@lug-owl.de> 17940 Nick Clifton <nickc@redhat.com> 17941 17942 * config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype. 17943 * config/frv/frv.c (frv_ifcvt_machdep_init): Change type of 17944 (unused) parameter to void *. 17945 179462012-07-23 Richard Guenther <rguenther@suse.de> 17947 17948 * tree-ssa-alias.c (dump_alias_info): Walk over local decls 17949 instead of referenced vars. 17950 179512012-07-23 Steven Bosscher <steven@gcc.gnu.org> 17952 17953 * coverage.c: Refer to "notes file" instead of "graph file" 17954 in all comments. Explain history of bbg prefix. 17955 * gcov-io.h: Likewise. 17956 * gcov.c: Likewise. 17957 (find_source): Likewise in fnotice. 17958 (read_graph_file): Likewise. 17959 (read_count_file): Likewise. 17960 * doc/gcov.texi: Document -fprofile-dir flag. Add "notes file" 17961 and "data file" explicitly in the explanation of the files. 17962 179632012-07-22 Steven Bosscher <steven@gcc.gnu.org> 17964 17965 PR tree-optimization/53881 17966 * tree-cfg.c (group_case_labels_stmt): Look up the basic block 17967 for each label and compare them instead of labels. 17968 179692012-07-22 Steven Bosscher <steven@gcc.gnu.org> 17970 17971 * opts.c (common_handle_option): Do not set 17972 flag_value_profile_transformations for -fprofile-generate. 17973 * profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE. 17974 (BB_TO_GCOV_INDEX): Remove. 17975 (output_location): Don't use it. 17976 (branch_prob): Likewise. Don't fiddle with the index of 17977 ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR. Use clear_aux_for_blocks. 17978 (find_spanning_tree): 17979 * gcov.c (struct function_info): Document that blocks 0 and 1 17980 are the entry resp. exit blocks in gcov, too, like in GCC itself. 17981 (solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special 17982 blocks identification. 17983 (output_lines): Likewise. 17984 * value-prof.c (gimple_value_profile_transformations): Do not 17985 test flag_value_profile_transformations again. 17986 (gimple_ic_transform): Take a gimple_stmt_iterator like all other 17987 transformation functions. 17988 (gimple_values_to_profile): 17989 Don't test flag_value_profile_transformations 17990 * tree-profile.c (tree_profiling): Assert that the cgraph is in 17991 the CGRAPH_STATE_IPA_SSA state. 17992 Do not set, or look at, after_tree_profile. 17993 * function.h (struct function): Remove after_tree_profile bit. 17994 * omp-low.c (expand_omp_taskreg): Don't set after_tree_profile. 17995 * tree-inline.c (initialize_cfun): Don't copy it. 17996 * lto-streamer-out.c (output_struct_function_base): Don't stream it. 17997 * lto-streamer-in.c (input_struct_function_base): Likewise. 17998 179992012-07-22 Oleg Endo <olegendo@gcc.gnu.org> 18000 18001 * config/sh/sh.h (TARGET_DYNSHIFT): New macro. 18002 (SH_DYNAMIC_SHIFT_COST): Use it. 18003 * config/sh/sh.c (expand_ashiftrt, shl_sext_kind): Likewise. 18004 (sh_dynamicalize_shift_p): Add TARGET_DYNSHIFT condition. 18005 Add sanity check for input value. Add function description. 18006 * config/sh/sh.md (ashlsi3, ashlsi3_std, ashrsi3_d, lshrsi3, 18007 lshrsi3_d): Use TARGET_DYNSHIFT. 18008 180092012-07-22 Oleg Endo <olegendo@gcc.gnu.org> 18010 18011 * config/sh/sh.md (negc): Delete expander. 18012 (*negc): Rename insn to negc. 18013 180142012-07-22 Uros Bizjak <ubizjak@gmail.com> 18015 18016 PR target/53961 18017 * config/i386/i386.md (*lea): New insn pattern. 18018 (*lea_1): Remove. 18019 (*lea<mode>_2): Ditto. 18020 (*lea_{3,4,5,6}_zext): Ditto. 18021 * config/i386/predicates.md (lea_address_operand): Do not reject 18022 zero-extended address operands. 18023 * config/i386/constraints.md (j): Remove address constraint. 18024 * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg 18025 of an address. 18026 (ix86_print_operand_address): Handle SImode subreg of an address. 18027 (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now. 18028 180292012-07-22 Hans-Peter Nilsson <hp@axis.com> 18030 18031 Emit executable-stack note correctly for CRIS targets. 18032 * config/cris/cris.c (cris_file_end): New function. 18033 (TARGET_ASM_FILE_END): Define. 18034 180352012-07-22 Chung-Lin Tang <cltang@codesourcery.com> 18036 Maxim Kuvyrkov <maxim@codesourcery.com> 18037 NetLogic Microsystems Inc. 18038 18039 * config/mips/mips.c (mips_issue_rate): Handle XLP. 18040 * config/mips/mips.md: Include xlp.md. 18041 * config/mips/xlp.md: New file. 18042 180432012-07-21 Steven Bosscher <steven@gcc.gnu.org> 18044 18045 PR gcov-profile/32543 18046 * profile.c (branch_prob): Update total_num_edges_instrumented and 18047 report the number of edges to instrument. 18048 180492012-07-21 Oleg Endo <olegendo@gcc.gnu.org> 18050 18051 * config/sh/sh.md: Correct comment regarding clrt and sett insns. 18052 180532012-07-21 Andrew Pinski <apinski@cavium.com> 18054 18055 * config/mips/mips.md (*popcountdi2_trunc): New pattern 18056 to handle popcount of a truncation. 18057 180582012-07-21 Andrew Pinski <apinski@cavium.com> 18059 18060 * config/mips/mips-protos.h (mips_expand_ext_as_unaligned_load): 18061 Add a bool argument. 18062 * config/mips/mips.c (mips_block_move_straight): Update call to 18063 mips_expand_ext_as_unaligned_load. 18064 (mips_expand_ext_as_unaligned_load): Add unsigned_p argument. 18065 Accept DImode dest when the width is that of SImode. 18066 * config/mips/mips.md (extv): Update call to 18067 mips_expand_ext_as_unaligned_load. 18068 (extzv): Likewise. 18069 180702012-07-21 Andrew Pinski <apinski@cavium.com> 18071 18072 * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling 18073 adjust_address. 18074 180752012-07-20 Maxim Kuvyrkov <maxim@codesourcery.com> 18076 18077 * config/mips/mips.md (define_attr sync_*): Move before "type". 18078 (define_attr "type"): New values "atomic" and "syncloop". 18079 * config/mips/sync.md (atomic_exchange<mode>, atomic_fetch_add<mode>): 18080 Set "type" attribute. 18081 * config/mips/generic.md (generic_atomic, generic_syncloop): 18082 New reservations. 18083 * config/mips/10000.md, config/mips/20kc.md, 18084 * config/mips/24k.md, config/mips/4130.md, 18085 * config/mips/4k.md, config/mips/5400.md, 18086 * config/mips/5500.md, config/mips/5k.md, 18087 * config/mips/7000.md, config/mips/74k.md, 18088 * config/mips/9000.md, config/mips/loongson2ef.md, 18089 * config/mips/loongson3a.md, config/mips/octeon.md, 18090 * config/mips/sb1.md, config/mips/sr71k.md, 18091 * config/mips/xlr.md: Handle "atomic" and "syncloop" types. 18092 180932012-07-20 Oleg Endo <olegendo@gcc.gnu.org> 18094 18095 * config/sh/sh.md: Group and sort shift related patterns. 18096 (ashlsi3_n, *ashlhi3_n, lshrsi3_n): Remove length attributes. 18097 180982012-07-20 Hans-Peter Nilsson <hp@axis.com> 18099 18100 * config/cris/cris.c (cris_asm_output_ident): Remove unused 18101 local variables section_asm_op, size, buf. 18102 181032012-07-20 Pat Haugen <pthaugen@us.ibm.com> 18104 Steven Bosscher <steven@gcc.gnu.org> 18105 18106 * config/rs6000/power4.md (power4-store-update): Fix reservation. 18107 (power4-three): Likewise. 18108 181092012-07-20 Sameera Deshpande <sameera.deshpande@arm.com> 18110 Greta Yorsh <Greta.Yorsh@arm.com> 18111 18112 * config/arm/arm.c (arm_cortex_a15_tune): New tune. 18113 * config/arm/arm-cores.def (cortex-a15): Use it. 18114 181152012-07-20 Sameera Deshpande <sameera.deshpande@arm.com> 18116 Greta Yorsh <Greta.Yorsh@arm.com> 18117 18118 * config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd. 18119 * config/arm/arm.c (arm_slowmul_tune): Initialize it. 18120 (arm_fastmul_tune, arm_strongarm_tune): Likewise. 18121 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise. 18122 (arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise. 18123 (arm_fa726te_tune): Likewise. 18124 181252012-07-20 Richard Guenther <rguenther@suse.de> 18126 18127 * tree-dfa.c (collect_dfa_stats): Simplify. 18128 * tree-ssa-structalias.c (compute_may_aliases): Do not dump 18129 referenced vars. 18130 * cfgexpand.c (estimated_stack_frame_size): Walk over local 18131 decls instead of referenced vars. 18132 * tree-ssa.c (delete_tree_ssa): Simplify. 18133 * tree-tailcall.c (find_tail_calls): Walk over local decls 18134 instead of referenced vars. 18135 (add_virtual_phis): Remove. 18136 (tree_optimize_tail_calls_1): Instead mark the virtual operand 18137 for renaming. 18138 181392012-07-20 Steven Bosscher <steven@gcc.gnu.org> 18140 18141 * basic-block.h (BB_FLAGS_TO_PRESERVE): New define. 18142 (brief_dump_cfg): Update prototype to take flags argument. 18143 (check_bb_profile): Remove prototype. 18144 * tracer.c (tracer): Update brief_dump_cfg calls. 18145 * cfghooks.c (dump_bb): Do not pass TDF_COMMENT to dump_bb_info. 18146 Call dump_bb_info before and after the cfghook dump_bb. Terminate 18147 the dump with a newline. 18148 (dump_flow_info): Do not call check_bb_profile. 18149 * cfg.c (clear_bb_flags): Update using BB_FLAGS_TO_PRESERVE. 18150 (check_bb_profile): Make static. Take indent and flags arguments. 18151 (dump_bb_info): Always dump loop depth. With TDF_DETAILS, call 18152 check_bb_profile. Print one edge per line. 18153 (brief_dump_cfg): Take a flags argument, and filter out 18154 TDF_COMMENT and TDF_DETAILS. 18155 * pretty-print.c (pp_base_newline): Set pp_needs_newline to false. 18156 * gimple-pretty-print.c (dump_gimple_bb_header): Do not use 18157 dump_bb_info here, it is already called from dump_bb. Idem for 18158 check_bb_profile. 18159 (dump_gimple_bb_footer): Likewise. 18160 (gimple_dump_bb_buff): Call pp_flush after dump_gimple_stmt to 18161 avoid broken dumps for statement histograms. 18162 (gimple_dump_bb): Handle ENTRY_BLOCK and EXIT_BLOCK. Do 18163 not call pp_flush here, the buffer should be empty. 18164 * sched-rgn.c (debug_region): Pass TDF_BLOCKS to dump_bb. 18165 * sched-vis.c (debug_bb_slim): Likewise. 18166 * tree-cfg.c (remove_bb): Pass dump_flags to dump_bb. 18167 (gimple_debug_bb): Pass TDF_BLOCKS to dump_bb. 18168 (gimple_dump_cfg): Do brief_dump_cfg with TDF_COMMENT. 18169 (dump_function_to_file): Do not call check_bb_profile on 18170 ENTRY_BLOCK and EXIT_BLOCK, check_bb_profile doesn't handle them. 18171 Use dump_bb instead of gimple_dump_bb. 18172 (print_loops_bb): Use dump_bb instead of gimple_dump_bb. 18173 * passes.c (execute_function_dump): Always call print_rtl_with_bb 18174 for RTL dumps. 18175 * cfgrtl.c (print_rtl_with_bb): Handle printing without an up-to-date 18176 CFG. With TDF_BLOCKS and TDF_DETAILS, do DF dumps at the top and 18177 bottom of each basic block. 18178 181792012-07-20 Richard Guenther <rguenther@suse.de> 18180 18181 PR tree-optimization/54031 18182 * tree-ssa-ccp.c (get_value_from_alignment): Use 18183 get_pointer_alignment_1. 18184 181852012-07-20 Richard Guenther <rguenther@suse.de> 18186 18187 * tree-inline.c (add_local_variables): Remove check_var_ann 18188 parameter and dead code. 18189 (expand_call_inline): Adjust. 18190 (tree_function_versioning): Likewise. 18191 181922012-07-20 Jakub Jelinek <jakub@redhat.com> 18193 18194 PR c++/28656 18195 * tree-vrp.c (nonnull_arg_p): Handle all nonnull attributes instead 18196 of just the first one. 18197 181982012-07-20 Richard Guenther <rguenther@suse.de> 18199 18200 * builtins.c (get_object_alignment_2): Correct offset handling 18201 when using type alignment of a MEM_REF kind base. 18202 182032012-07-20 Kirill Yukhin <kirill.yukhin@intel.com> 18204 18205 PR target/53877 18206 * config/i386/lzcntintrin.h (_lzcnt_u32): New. 18207 (_lzcnt_u64): Ditto. 18208 182092012-07-19 Eric Botcazou <ebotcazou@adacore.com> 18210 18211 * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber. 18212 182132012-07-19 Eric Botcazou <ebotcazou@adacore.com> 18214 18215 * tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the 18216 defining statement is a SSA name that occurs in abnormal PHIs. 18217 182182012-07-19 Eric Botcazou <ebotcazou@adacore.com> 18219 18220 * gimple-fold.c (canonicalize_constructor_val): Strip only useless type 18221 conversions. 18222 182232012-07-19 Jakub Jelinek <jakub@redhat.com> 18224 18225 PR rtl-optimization/53942 18226 * function.c (assign_parm_setup_reg): Avoid zero/sign extension 18227 directly from likely spilled non-fixed hard registers, move them 18228 to pseudo first. 18229 182302012-07-19 Steve Ellcey <sellcey@mips.com> 18231 18232 * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in 18233 MIPS16 mode. 18234 182352012-07-19 Jason Merrill <jason@redhat.com> 18236 18237 PR debug/53235 18238 * dwarf2out.c (get_die_parent): New. 18239 (generate_type_signature): Use it. 18240 182412012-07-19 Richard Henderson <rth@redhat.com> 18242 18243 * config/ia64/vect.md (smulv4hi3_highpart): New. 18244 (umulv4hi3_highpart): New. 18245 (vec_widen_smult_even_v4hi): Rename from pmpy2_even. 18246 (vec_widen_smult_odd_v4hi): Rename from pmpy2_odd. 18247 (udot_prodv8qi, sdot_prodv8qi): Remove. 18248 (sdot_prodv4hi, udot_prodv4hi): Remove. 18249 * config/ia64/ia64.c (ia64_expand_dot_prod_v8qi): Remove. 18250 * config/ia64/ia64-protos.h: Update. 18251 18252 * tree-vect-patterns.c (vect_recog_divmod_pattern): Do not require 18253 vectors larger than UNITS_PER_WORD. 18254 18255 * expr.c (store_constructor): Initialize icode with CODE_FOR_nothing. 18256 * tree-vect-stmts.c (vectorizable_operation): Use LAST_INSN_CODE for 18257 dummy != CODE_FOR_nothing value. 18258 182592012-07-19 Uros Bizjak <ubizjak@gmail.com> 18260 18261 * doc/tm.texi.in (MODE_AFTER): Add entity as the first macro argument. 18262 * doc/tm.texi: Regenerate. 18263 * mode-switching.c (optimize_mode_switching): Update MODE_AFTER call. 18264 * config/sh/sh.h (MODE_AFTER): Update. 18265 * config/epiphany/epiphany.h (MODE_AFTER): Update. 18266 182672012-07-19 Jakub Jelinek <jakub@redhat.com> 18268 18269 PR middle-end/54017 18270 * tree-cfgcleanup.c (cleanup_omp_return): Remove. 18271 (cleanup_tree_cfg_bb): Don't call it. 18272 * omp-low.c (expand_omp_sections): Fix up the !exit_reachable case 18273 handling. 18274 182752012-07-19 Christian Bruel <christian.bruel@st.com> 18276 18277 PR target/54029 18278 * config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps. 18279 182802012-07-19 Richard Guenther <rguenther@suse.de> 18281 Eric Botcazou <ebotcazou@adacore.com> 18282 18283 * tree-ssa-ccp.c (valid_lattice_transition): Clarify comment 18284 about transition from invariant to known bits. 18285 (likely_value): Addresses with UNDEFINED components are UNDEFINED. 18286 182872012-07-19 Richard Guenther <rguenther@suse.de> 18288 18289 PR tree-optimization/53970 18290 * tree-vect-data-refs.c (not_size_aligned): Avoid sign-compare warning. 18291 182922012-07-19 Tristan Gingold <gingold@adacore.com> 18293 Richard Henderson <rth@redhat.com> 18294 18295 * opts.c (finish_options): Handle UI_SEH. 18296 * expr.c (build_personality_function): Handle UI_SEH. 18297 * dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH. 18298 * coretypes.h (unwind_info_type): Add UI_SEH. 18299 * config/i386/winnt.c (i386_pe_seh_emit_except_personality): 18300 New function. 18301 (i386_pe_seh_init_sections): Likewise. 18302 * config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define. 18303 (TARGET_ASM_INIT_SECTIONS): Define. 18304 * common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define. 18305 (i386_except_unwind_info): New function. 18306 183072012-07-18 Maciej W. Rozycki <macro@codesourcery.com> 18308 Chao-ying Fu <fu@mips.com> 18309 18310 * config/mips/mips.opt (mmcu): New option. 18311 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define 18312 _mips_mcu when TARGET_MCU. 18313 (ASM_SPEC): Pass mcu options to the assembler. 18314 * doc/invoke.texi (MIPS Options): Document -mmcu and -mno-mcu. 18315 183162012-07-18 Ralf Corsépius <ralf.corsepius@rtems.org> 18317 18318 * config.gcc (v850-*-rtems*): New target. 18319 * config/v850/rtems.h: New. 18320 * config/v850/t-rtems: New. 18321 183222012-07-18 Bill Schmidt <wschmidt@linux.ibm.com> 18323 18324 * doc/invoke.texi: Add -fhoist-adjacent-loads and -ftree-slsr to list 18325 of flags controlling optimization; add -ftree-slsr to list of flags 18326 enabled by default at -O; add -fhoist-adjacent-loads to list of flags 18327 enabled by default at -O2; add -fvect-cost-model to list of flags 18328 enabled by default at -O3; document -fhoist-adjacent-loads and 18329 -ftree-slsr. 18330 * opts.c (default_option): Make -ftree-slsr default at -O1 and above. 18331 * gimple-ssa-strength-reduction.c (gate_strength_reduction): Use 18332 flag_tree_slsr. 18333 * common.opt: Add -ftree-slsr with flag_tree_slsr. 18334 183352012-07-18 Jie Zhang <jzhang918@gmail.com> 18336 Julian Brown <julian@codesourcery.com> 18337 18338 * config/arm/arm.c (arm_rtx_costs_1): Adjust cost for CONST_VECTOR. 18339 (arm_size_rtx_costs): Likewise. 18340 (neon_valid_immediate): Add a case for double 0.0. 18341 183422012-07-18 Andrew Stubbs <ams@codesourcery.com> 18343 Mark Shinwell <shinwell@codesourcery.com> 18344 Julian Brown <julian@codesourcery.com> 18345 18346 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp) 18347 (*movdi_vfp_cortexa8, *movsf_vfp, *thumb2_movsf_vfp) 18348 (*movdf_vfp, *thumb2_movdf_vfp, *movsfcc_vfp) 18349 (*thumb2_movsfcc_vfp, *movdfcc_vfp, *thumb2_movdfcc_vfp): Add 18350 neon_type. 18351 * config/arm/arm.md (neon_type): Update comment. 18352 183532012-07-18 Richard Guenther <rguenther@suse.de> 18354 18355 PR tree-optimization/53970 18356 * tree.h (contains_packed_reference): Remove. 18357 * expr.c (contains_packed_reference): Likewise. 18358 * tree-vect-data-refs.c (not_size_aligned): New function. 18359 (vector_alignment_reachable_p): Use it. 18360 (vect_supportable_dr_alignment): Likewise. 18361 183622012-07-18 Richard Guenther <rguenther@suse.de> 18363 18364 * tree.h (get_object_or_type_alignment): Remove. 18365 * builtins.c (get_object_alignment_2): New function copied from 18366 get_object_alignment_1. Take extra argument to indicate whether 18367 we take the address of EXP. Rework to use type alignment information 18368 if not, and return whether the result is an approximation or not. 18369 (get_object_alignment_1): Wrap around get_object_alignment_2. 18370 (get_pointer_alignment_1): Call get_object_alignment_2 indicating 18371 we take the address. 18372 (get_object_or_type_alignment): Remove. 18373 * expr.c (expand_assignment): Call get_object_alignment. 18374 (expand_expr_real_1): Likewise. 18375 183762012-07-18 Nick Clifton <nickc@redhat.com> 18377 18378 * doc/invoke.texi (ARM Options): Document -munaligned-access. 18379 183802012-07-18 Oleg Endo <olegendo@gcc.gnu.org> 18381 18382 * config/sh/sh.md (mulsidi3, umulsidi3): Remove constraints in 18383 expander. Use arith_reg_dest predicate. 18384 (rotldi3, rotrdi3): Remove constraints in expander. 18385 (adddi3_compact, subdi3_compact, mulsidi3_compact, umulsidi3_compact, 18386 ashlsi3_n, *ashlhi3_n, ashrsi2_16, ashrsi2_31, lshrsi3_n): Convert to 18387 insn_and_split. 18388 183892012-07-18 Oleg Endo <olegendo@gcc.gnu.org> 18390 18391 PR target/33135 18392 * config/sh/sh.opt (mieee): Use Var instead of Mask. Correct 18393 description. 18394 * config/sh/sh.c (sh_option_override): Do not change 18395 flag_finite_math_only. Set TARGET_IEEE to complement of 18396 flag_finite_math_only. 18397 * doc/invoke.texi (SH options): Add mno-ieee. Correct description 18398 of mieee and mno-ieee behavior. 18399 184002012-07-18 Steven Bosscher <steven@gcc.gnu.org> 18401 18402 * graphite-poly.c (print_pbb_body): Fixup dump_bb call. 18403 184042012-07-18 Steven Bosscher <steven@gcc.gnu.org> 18405 18406 * dumpfile.h (TDF_COMMENT): New define. 18407 * basic-block.h (EDGE_FALLTHRU, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL, 18408 EDGE_EH, EDGE_FAKE, EDGE_DFS_BACK, EDGE_CAN_FALLTHRU, 18409 EDGE_IRREDUCIBLE_LOOP, EDGE_SIBCALL, EDGE_LOOP_EXIT, EDGE_TRUE_VALUE, 18410 EDGE_FALSE_VALUE, EDGE_EXECUTABLE, EDGE_CROSSING, EDGE_PRESERVE): 18411 Move to new file cfg-flags.h. 18412 (enum cfg_edge_flags): New enum, using cfg-flags.h. 18413 (EDGE_ALL_FLAGS): Compute value automatically. 18414 (BB_NEW, BB_REACHABLE, BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK, 18415 BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION, 18416 BB_DUPLICATED, BB_NON_LOCAL_GOTO_TARGET, BB_RTL, 18417 BB_FORWARDER_BLOCK, BB_NONTHREADABLE_BLOCK, BB_MODIFIED, BB_VISITED, 18418 BB_IN_TRANSACTION): Move to new file cfg-flags.h. 18419 (enum bb_flags): Rename to cfg_bb_flags. Use cfg-flags.h. 18420 (BB_ALL_FLAGS): New, compute value automatically. 18421 (dump_bb_info): Update prototype. 18422 (dump_edge_info): Update prototype. 18423 * cfg-flags.h: New file. 18424 * cfg.c (dump_edge_info): Take flags argument. Be verbose only if 18425 TDF_DETAILS and not TDF_SLIM. Include cfg-flags.h for bitnames. 18426 Check that the edge flags are within the range of EDGE_ALL_FLAGS. 18427 (debug_bb): Update dump_bb call. 18428 (dump_cfg_bb_info): Remove. 18429 (dump_bb_info): New function. Use cfg-flags.h for bitnames. 18430 Adjust verbosity using TDF_* flags. Check that the basic block flags 18431 are within the range of BB_ALL_FLAGS. 18432 (brief_dump_cfg): Use dump_bb_info instead of dump_cfg_bb_info. 18433 * cfghooks.h (struct cfghooks): Update dump_bb hook, take a FILE 18434 first for consistency with other dump functions. 18435 (dump_bb): Update prototype accordingly. 18436 * cfghooks.c: Include dumpfile.h. 18437 (verify_flow_info): Update dump_edge_info calls. 18438 (dump_bb): Take a flags argument and pass it around. 18439 Use dump_bb_info to dump common information about a basic block. 18440 (dump_flow_info): Moved here from cfgrtl.c. Make IL agnostic. 18441 (debug_flow_info): Moved here from cfgrtl.c. 18442 * profile.c (is_edge_inconsistent): Update dump_bb calls. 18443 * loop-invariant.c (find_defs): Update print_rtl_with_bb call. 18444 * rtl.h (debug_bb_n_slim, debug_bb_slim, print_rtl_slim, 18445 print_rtl_slim_with_bb): Remove prototypes. 18446 (dump_insn_slim): Adjust prototype to take a const_rtx. 18447 (print_rtl_with_bb): Adjust prototype. 18448 * sched-rgn.c (debug_region): Use dump_bb instead of debug_bb_n_slim. 18449 * sched-vis.c (dump_insn_slim): Take a const_rtx. 18450 (debug_insn_slim): Prototype here near DEBUG_FUNCTION marker. 18451 (print_rtl_slim_with_bb): Remove. 18452 (print_rtl_slim): Rename to debug_rtl_slim. Print only insn info, 18453 not basic block info (print_rtl_with_bb with TDF_SLIM should be used 18454 for that. Prototype here near DEBUG_FUNCTION marker. 18455 (debug_bb_slim): Prototype here near DEBUG_FUNCTION marker. 18456 Use dump_bb. 18457 (debug_bb_n_slim): Prototype here near DEBUG_FUNCTION marker. 18458 * tree-cfg.c (gimple_can_merge_blocks_p): Use EDGE_COMPLEX. 18459 (remove_bb): Update dump_bb call. 18460 (gimple_debug_bb): Use dump_bb. 18461 (dump_function_to_file): Update gimple_dump_bb call. 18462 (print_loops_bb): Likewise. 18463 * tree-flow.h (gimple_dump_bb): Update prototype. 18464 * gimple-pretty-print.c (dump_bb_header): Rename to 18465 dump_gimple_bb_header. Write to a stream instead of a pretty 18466 printer. Use dump_bb_info to dump basic block info. 18467 (dump_bb_end): Rename to dump_gimple_bb_footer. Write to a 18468 stream instead of a pretty printer. Use dump_bb_info. 18469 (gimple_dump_bb_buff): Do not call dump_bb_header and dump_bb_end. 18470 (gimple_dump_bb): Do it here with dump_gimple_bb_header and 18471 dump_gimple_bb_footer. 18472 * cfgrtl.c (rtl_dump_bb): Update prototype. Only dump DF if the 18473 dump flags have TDF_DETAILS. Use dump_insn_slim if TDF_SLIM. 18474 (print_rtl_with_bb): Take a flags argument and pass it around. 18475 Use dump_insn_slim if TDF_SLIM. 18476 (dump_bb_info): Removed and re-incarnated in cfg.c. 18477 (dump_flow_info): Moved to cfghooks.c. 18478 (debug_flow_info): Moved to cfghooks.c. 18479 * passes.c (execute_function_dump): Unconditionally use 18480 print_rtl_with_bb for RTL dumps, now that it understands TDF_SLIM. 18481 * final.c (dump_basic_block_info): Update dump_edge_info calls. 18482 * tree-vrp.c (dump_asserts_for): Likewise. 18483 * ifcvt.c (if_convert): Unconditionally use print_rtl_with_bb. 18484 * tree-if-conv.c (if_convertible_bb_p): Don't look at 18485 EDGE_ABNORMAL_CALL, it has no meaning in the GIMPLE world. 18486 * trans-mem.c (make_tm_edge): Don't set EDGE_ABNORMAL_CALL, 18487 for the same reason. 18488 * config/rl78/rl78.c (rl78_reorg): Update print_rtl_with_bb calls. 18489 184902012-07-17 Richard Guenther <rguenther@suse.de> 18491 18492 * tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced 18493 vars here, use create_tmp_reg where appropriate. 18494 (vect_create_addr_base_for_vector_ref): Do not add referenced 18495 vars here, use create_tmp_reg where appropriate. 18496 (vect_create_data_ref_ptr): Likewise. 18497 (vect_create_destination_var): Likewise. 18498 (vect_permute_store_chain): Likewise. 18499 (vect_permute_load_chain): Likewise. 18500 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): 18501 Likewise. 18502 * tree-vect-loop.c (get_initial_def_for_induction): Likewise. 18503 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise. 18504 (vect_handle_widen_op_by_const): Likewise. 18505 * tree-vect-stmts.c (vect_init_vector): Likewise. 18506 (vectorizable_load): Likewise. 18507 185082012-07-17 Tom de Vries <tom@codesourcery.com> 18509 18510 * hwint.c: Fix loop range. 18511 185122012-07-17 Tom de Vries <tom@codesourcery.com> 18513 18514 * double-int.h (double_int_popcount): New inline function. 18515 * hwint.c (popcount_hwi): New function. 18516 * hwint.h (popcount_hwi): Declare function. New inline function. 18517 185182012-07-17 Richard Henderson <rth@redhat.com> 18519 18520 * tree-vect-stmts.c (supportable_widening_operation): Remove decl 18521 parameters. 18522 (vectorizable_conversion): Update supportable_widening_operation call. 18523 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise. 18524 (vect_recog_widen_shift_pattern): Likewise. 18525 * tree-vectorizer.h: Update decl. 18526 185272012-07-17 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 18528 Ulrich Weigand <ulrich.weigand@linaro.org> 18529 18530 * common/config/arm/arm-common.c (arm_option_optimization_table): 18531 Enable -fsched-pressure by default while optimizing. 18532 * config/arm/arm.c (arm_option_override): Use the alternate scheduler 18533 pressure algorithm by default. 18534 185352012-07-16 Oleg Endo <olegendo@gcc.gnu.org> 18536 18537 * config/sh/sh.h (CONST_OK_FOR_I06): Delete. 18538 (CONST_OK_FOR_I10): Move macro to ... 18539 * config/sh/sh.c: ... here. 18540 (sh_legitimate_index_p): Use satisfies_constraint_I06 instead of 18541 CONST_OK_FOR_I06. 18542 185432012-07-16 Oleg Endo <olegendo@gcc.gnu.org> 18544 18545 * config/sh/sh.md: Delete mov related define_peephole patterns. 18546 185472012-07-16 Jonathan Wakely <jwakely.gcc@gmail.com> 18548 18549 PR c++/53919 18550 * doc/install.texi (Installing GCC): Refer to instructions for 18551 released versions. Fix hyphenation. 18552 185532012-07-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 18554 18555 * config/spu/spu.c (targetm): Move to bottom of file. 18556 (spu_attribute_table): Likewise. 18557 (spu_option_override, spu_init_builtins, spu_builtin_decl, 18558 spu_scalar_mode_supported_p, spu_vector_mode_supported_p, 18559 spu_legitimate_address_p, spu_addr_space_legitimate_address_p, 18560 adjust_operand, get_pic_reg, need_to_save_reg, frame_emit_store, 18561 frame_emit_load, frame_emit_add_imm, emit_nop_for_insn, 18562 insn_clobbers_hbr, spu_emit_branch_hint, spu_emit_vector_compare, 18563 get_branch_target, spu_machine_dependent_reorg, spu_sched_issue_rate, 18564 spu_sched_variable_issue, spu_sched_adjust_cost, spu_sched_init_global, 18565 spu_sched_init, spu_sched_reorder, spu_handle_fndecl_attribute, 18566 spu_handle_vector_attribute, spu_pass_by_reference, spu_function_arg, 18567 spu_function_arg_advance, spu_build_builtin_va_list, spu_va_start, 18568 spu_gimplify_va_arg_expr, store_with_one_insn_p, reg_aligned_for_addr, 18569 spu_assemble_integer, spu_asm_globalize_label, spu_rtx_costs, 18570 spu_function_ok_for_sibcall, spu_init_libfuncs, spu_return_in_memory, 18571 spu_encode_section_info, spu_legitimize_address, 18572 spu_addr_space_legitimize_address, spu_builtin_mask_for_load, 18573 spu_builtin_vectorization_cost, spu_vector_alignment_reachable, 18574 spu_addr_space_pointer_mode, spu_addr_space_address_mode, 18575 spu_addr_space_subset_p, spu_addr_space_convert, spu_sms_res_mii, 18576 spu_section_type_flags, spu_select_section, spu_unique_section, 18577 spu_trampoline_init, spu_conditional_register_usage, 18578 spu_ref_may_alias_errno, spu_output_mi_thunk, spu_unwind_word_mode, 18579 spu_libgcc_cmp_return_mode, spu_libgcc_shift_count_mode, 18580 spu_setup_incoming_varargs): Remove prototypes. 18581 (spu_legitimize_address): Add "static" to definition. 18582 185832012-07-16 Jakub Jelinek <jakub@redhat.com> 18584 18585 * config/i386/rtmintrin.h (_xabort): Remove trailing semicolon. 18586 185872012-07-16 Ulrich Weigand <ulrich.weigand@linaro.org> 18588 18589 * tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p 18590 before calling gsi_stmt. 18591 185922012-07-16 Kirill Yukhin <kirill.yukhin@intel.com> 18593 18594 Revert 18595 2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com> 18596 18597 * config/i386/i386.md (stack_protect_set): Disable the pattern 18598 for Android since Android libc (bionic) does not provide random 18599 value for stack protection guard at gs:0x14. Guard value 18600 will be provided from external symbol (default implementation). 18601 (stack_protect_set_<mode>): Likewise. 18602 (stack_protect_test): Likewise. 18603 (stack_protect_test_<mode>): Likewise. 18604 186052012-07-16 H.J. Lu <hongjiu.lu@intel.com> 18606 18607 PR middle-end/53959 18608 PR bootstrap/53963 18609 * gimple.c (gimple_types_compatible_p_1): Restore type attribute 18610 comparison. 18611 186122012-07-16 Bill Schmidt <wschmidt@linux.ibm.com> 18613 18614 * opts.c (default_option): Add -fvect-cost-model to default options 18615 at -O3 and above. 18616 186172012-07-16 Steven Bosscher <steven@gcc.gnu.org> 18618 18619 * graphite-clast-to-gimple.c, graphite-dependences.c, 18620 graphite-sese-to-poly.c: Include tree-pass.h instead of dumpfile.h 18621 for pass TODO flags. 18622 * Makefile.in: Fix dependencies. 18623 186242012-07-16 Steven Bosscher <steven@gcc.gnu.org> 18625 18626 * haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU. 18627 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. 18628 18629 * function.c (stack_protect_epilogue): Use expand_call to expand 18630 targetm.stack_protect_fail. 18631 * stmt.c (expand_expr_stmt): Remove now-unused function. 18632 * tree.h (expand_expr_stmt): Remove prototype. 18633 * doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this 18634 hook must return a CALL_EXPR. 18635 * doc/tm.texi: Regenerate. 18636 18637 * emit-rtl.c (emit_label_before): Do not allow the same label 18638 to be emitted twice. 18639 (emit_label_after): Likewise. 18640 (emit_label): Likewise. 18641 18642 * flags.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, 18643 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): Move to tree.h. 18644 * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, 18645 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): New home. 18646 186472012-07-16 Steven Bosscher <steven@gcc.gnu.org> 18648 18649 * system.h (dump_file): Do not define. 18650 * tree-pass.h: Include dumpfile.h, which is a new file containing... 18651 (enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p, 18652 dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p, 18653 dump_flag_name, dump_file, dump_flags, dump_file_name, 18654 get_dump_file_info, struct dump_file_info): all of this, moved to... 18655 * dumpfile.h: Here, new file. 18656 * tree-dump.h: Include dumpfile.h, but not tree-pass.h. 18657 (dump_stmt): Remove prototype for C++ specific function. 18658 (dump_enumerated_decls): Move prototype from here... 18659 * tree-flow.h (dump_enumerated_decls): ... to here. 18660 (get_ref_base_and_extent) Move prototype from here ... 18661 * tree.h (get_ref_base_and_extent) ... to here. 18662 * tree-ssa-live.c: Do not inclde tree-pretty-print.h, because 18663 gimple-pretty-print.h is enough. Do not include tree-dump.h, 18664 include timevar.h and dumpfile.h instead. 18665 (struct numbered_tree_d, compare_decls_by_uid, 18666 dump_enumerated_decls_push, dump_enumerated_decls): Move from here ... 18667 * tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid, 18668 dump_enumerated_decls_push, dump_enumerated_decls):... to here. 18669 Do not include timevar.h. 18670 * tree.c: Do not include timevar.h. 18671 * tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and 18672 timevar.h. 18673 (dump_cfg_stats): Use current_function_name. 18674 (gimple_cfg2vcg): Likewise. 18675 (dump_function_to_file): Likewise. 18676 * df-scan.c: Do not include tree-pass.h and timevar.h. 18677 Include dumpfile.h. 18678 (df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not 18679 use print_current_pass. 18680 * df-problems.c: Include dumpfile.h. 18681 Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it 18682 leads to errors in the code not selected. 18683 (df_note_compute): Do not print_rtl_with_bb here. Fix compilation 18684 bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here. 18685 * lcm.c: Include dumpfile.h. 18686 Remove obsolete include of insn-attr.h. 18687 * dojump.c (do_compare_rtx_and_jump): Remove failure printing for 18688 missing probability notes. 18689 * stmt.c: Include dumpfile.h. 18690 (emit_case_decision_tree): Re-enable printing expand details only 18691 if TDF_DETAILS. 18692 * alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c, 18693 cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c, 18694 cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c, 18695 coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c, 18696 dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c, 18697 function.c, fwprop.c, gcse.c, gimple-fold.c, 18698 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, 18699 gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c, 18700 graphite-dependences.c, graphite-interchange.c, 18701 graphite-optimize-isl.c, graphite-poly.c, 18702 graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c, 18703 ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c, 18704 ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c, 18705 ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c, 18706 jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c, 18707 loop-unroll.c, loop-unswitch.c, lower-subreg.c, 18708 lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c, 18709 mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c, 18710 plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c, 18711 print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c, 18712 regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c, 18713 sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c, 18714 store-motion.c, tracer.c, trans-mem.c, tree-affine.c, 18715 tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c, 18716 tree-data-ref.c, tree-diagnostic.c, tree-dump.c, 18717 tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c, 18718 tree-mudflap.c, tree-nrv.c, tree-object-size.c, 18719 tree-optimize.c, tree-outof-ssa.c, tree-predcom.c, 18720 tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c, 18721 tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c, 18722 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c, 18723 tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c, 18724 tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c, 18725 tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c, 18726 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, 18727 tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, 18728 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c, 18729 tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c, 18730 tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c, 18731 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c, 18732 tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c, 18733 tree-ssa-threadedge.c, tree-ssa-threadupdate.c, 18734 tree-ssa-uncprop.c, tree-ssa-uninit.c, 18735 tree-switch-conversion.c, tree-tailcall.c, 18736 tree-vect-data-refs.c, tree-vect-loop.c, 18737 tree-vect-loop-manip.c, tree-vectorizer.c, 18738 tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, 18739 tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h 18740 only if needed. If tree-pass.h is included, do not include timevar.h 18741 and dumpfile.h. If tree-pass.h is not included but dump_file, or 18742 dump_flags, or the TDF_* flags are used, include dumpfile.h. 18743 If gimple-pretty-print.h is included, don't include 18744 tree-pretty-print.h. Remove assorted unnecessary includes. 18745 18746 * config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c, 18747 config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c, 18748 config/spu/spu.c, config/mep/mep.c, config/i386/i386.c: 18749 Include dumpfile.h. 18750 * config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h. 18751 * arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep, 18752 spu/t-spu-elf: Fix dependencies. 18753 187542012-07-16 Dehao Chen <dehao@google.com> 18755 18756 Revert 18757 2012-07-10 Dehao Chen <dehao@google.com> 18758 18759 * tree.h (phi_arg_d): New field. 18760 * tree-flow-inline.h (gimple_phi_arg_block): New function. 18761 (gimple_phi_arg_block_from_edge): New function. 18762 (gimple_phi_arg_set_block): New function. 18763 (gimple_phi_arg_has_block): New function. 18764 (redirect_edge_var_map_block): New function. 18765 * tree-flow.h (_edge_var_map): New field. 18766 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used. 18767 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for 18768 redirect_edge_var_map_add. 18769 * tree-outof-ssa.c (_elim_graph): New field. 18770 (insert_partition_copy_on_edge): New parameter. 18771 (insert_value_copy_on_edge): New parameter. 18772 (insert_rtx_to_part_on_edge): New parameter. 18773 (insert_part_to_rtx_on_edge): New parameter. 18774 (elim_graph_add_edge): New parameter. 18775 (elim_graph_remove_succ_edge): New parameter. 18776 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter. 18777 (FOR_EACH_ELIM_GRAPH_PRED): New parameter. 18778 (new_elim_graph): Add block debug info. 18779 (clear_elim_graph): Likewise. 18780 (delete_elim_graph): Likewise. 18781 (elim_graph_add_node): Likewise. 18782 (elim_graph_add_edge): Likewise. 18783 (elim_graph_remove_succ_edge): Likewise. 18784 (eliminate_build): Likewise. 18785 (elim_forward): Likewise. 18786 (elim_unvisited_predecessor): Likewise. 18787 (elim_backward): Likewise. 18788 (elim_create): Likewise. 18789 (eliminate_phi): Likewise. 18790 (insert_backedge_copies): Likewise. 18791 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for 18792 add_phi_arg. 18793 (rewrite_add_phi_arguments): Likewise. 18794 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise. 18795 * tree-ssa-tail-merge.c (replace_block_by): Likewise. 18796 * tree-ssa-threadupdate.c (copy_phi_args): Likewise. 18797 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise. 18798 * tree-ssa-loop-manip.c (create_iv): Likewise. 18799 (add_exit_phis_edge): Likewise. 18800 (split_loop_exit_edge): Likewise. 18801 (copy_phi_node_args): Likewise. 18802 (tree_transform_and_unroll_loop): Likewise. 18803 * value-prof.c (gimple_ic): Likewise. 18804 (gimple_stringop_fixed_value): Likewise. 18805 * tree-tailcall.c (add_successor_phi_arg): Likewise. 18806 (eliminate_tail_call): Likewise. 18807 (create_tailcall_accumulator): Likewise. 18808 (tree_optimize_tail_calls_1): Likewise. 18809 * tree-phinodes.c (add_phi_arg): Likewise. 18810 (make_phi_node): Likewise. 18811 (resize_phi_node): Likewise. 18812 (remove_phi_arg_num): Likewise. 18813 * omp-low.c (expand_parallel_call): Likewise. 18814 (expand_omp_for_static_chunk): Likewise. 18815 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop): 18816 Likewise. 18817 (slpeel_update_phi_nodes_for_guard1): Likewise. 18818 (slpeel_update_phi_nodes_for_guard2): Likewise. 18819 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise. 18820 (set_prologue_iterations): Likewise. 18821 (slpeel_tree_peel_loop_to_edge): Likewise. 18822 (vect_loop_versioning): Likewise. 18823 * tree-parloops.c (create_phi_for_local_result): Likewise. 18824 (transform_to_exit_first_loop): Likewise. 18825 (create_parallel_loop): Likewise. 18826 * ipa-split.c (split_function): Likewise. 18827 * tree-vect-loop.c (get_initial_def_for_induction): Likewise. 18828 (vect_create_epilog_for_reduction): Likewise. 18829 * tree-vect-data-refs.c (vect_setup_realignment): Likewise. 18830 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise. 18831 * tree-ssa-phiopt.c (cond_store_replacement): Likewise. 18832 (cond_if_else_store_replacement_1): Likewise. 18833 * tree-cfgcleanup.c (remove_forwarder_block): Likewise. 18834 (remove_forwarder_block_with_phi): Likewise. 18835 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise. 18836 * tree-predcom.c (initialize_root_vars): Likewise. 18837 (initialize_root_vars_lm): Likewise. 18838 * sese.c (sese_add_exit_phis_edge): Likewise. 18839 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise. 18840 * tree-ssa.c (flush_pending_stmts): Likewise. 18841 (redirect_edge_var_map_add): Likewise. 18842 (ssa_redirect_edge): Likewise. 18843 * gimple-streamer-in.c (input_phi): Likewise. 18844 * tree-vect-stmts.c (vectorizable_load): Likewise. 18845 * tree-inline.c (copy_phis_for_bb): Likewise. 18846 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. 18847 * tree-switch-conversion.c (fix_phi_nodes): Likewise. 18848 * tree-cfg.c (reinstall_phi_args): Likewise. 18849 (gimple_make_forwarder_block): Likewise. 18850 (add_phi_args_after_copy_edge): Likewise. 18851 (gimple_duplicate_sese_tail): Likewise. 18852 188532012-07-16 Sergey Melnikov <sergey.melnikov@intel.com> 18854 18855 * config/i386/i386.md (stack_protect_set): Disable the pattern 18856 for Android since Android libc (bionic) does not provide random 18857 value for stack protection guard at gs:0x14. Guard value 18858 will be provided from external symbol (default implementation). 18859 (stack_protect_set_<mode>): Likewise. 18860 (stack_protect_test): Likewise. 18861 (stack_protect_test_<mode>): Likewise. 18862 188632012-07-16 Hans-Peter Nilsson <hp@axis.com> 18864 18865 * config/cris/cris-protos.h (cris_legitimate_address_p): Declare. 18866 * config/cris/cris.h (CONSTANT_ADDRESS_P): Define in terms of 18867 CONSTANT_P and cris_legitimate_address_p. 18868 * config/cris/cris.c (cris_legitimate_address_p): Make non-static. 18869 (cris_preferred_reload_class): Don't return GENERAL_REGS as 18870 preferred to MOF_SRP_REGS. 18871 18872 * config/cris/cris.c (cris_init_libfuncs): Handle initialization 18873 of library functions for basic atomic compare-and-swap. 18874 * config/cris/cris.h (TARGET_ATOMICS_MAY_CALL_LIBFUNCS): New macro. 18875 * config/cris/cris.opt (munaligned-atomic-may-use-library): New option. 18876 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>") 18877 ("cris_atomic_fetch_<atomic_op_name><mode>_1") 18878 ("atomic_compare_and_swap<mode>") 18879 ("cris_atomic_compare_and_swap<mode>_1"): Make conditional on 18880 TARGET_ATOMICS_MAY_CALL_LIBFUNCS for sizes larger than byte. 18881 * config/cris/cris.c (cris_print_operand) <case 'P', 'q'>: New cases. 18882 * config/cris/sync.md (atomic_op_op_cnstr): New code_attr. 18883 (atomic_op_op_pred): Ditto. 18884 (atomic_op_mnem_pre_op2): Renamed from atomic_op_mnem_pre; to 18885 reflect the change to include %2 in expansion. All callers changed. 18886 (qm3): New mode_attr. 18887 ("atomic_fetch_<atomic_op_name><mode>"): Use <atomic_op_op_pred> 18888 as predicate for operand 2. 18889 ("cris_atomic_fetch_<atomic_op_name><mode>_1"): Update FIXME. Use 18890 "<atomic_op_op_pred>" "<atomic_op_op_cnstr>" for predicate and 18891 constraint for operand 2. 18892 ("atomic_compare_and_swap<mode>"): Add FIXME. Change predicate to 18893 nonmemory_operand for operand 3. 18894 ("cris_atomic_compare_and_swap<mode>_1"): Change operand 3 to 18895 exclude memory. Improve emitted sync code for v10 and v32. Use 18896 <qm3> instead of <m> for size designator for cmp. 18897 ("atomic_compare_and_swap<mode>"): Change predicate to 18898 nonmemory_operand for operand 3. Add FIXME. 18899 ("cris_atomic_compare_and_swap<mode>_1"): Change predicates and 18900 constraints for operand 3 to exclude memory. 18901 ("atomic_fetch_<atomic_op_name><mode>") 18902 ("atomic_compare_and_swap<mode>"): Gate expand_mem_thread_fence 18903 calls on result of call to need_atomic_barrier_p. 18904 189052012-07-15 Richard Sandiford <rdsandiford@googlemail.com> 18906 18907 * config/mips/mips.md (move_type): Replace mfhilo and mthilo 18908 with mflo and mtlo. 18909 (type): Split mfhilo into mfhi and mflo. Split mthilo into mthi 18910 and mtlo. Adjust move_type->type mapping. 18911 (may_clobber_hilo): Split mthilo into mthi and mtlo. 18912 (*movdi_32bit, *movdi_32bit_mips16, *movdi_64bit, *movdi_64bit_mips16) 18913 (*mov<mode>_internal, *mov<mode>_mips16, *movhi_internal) 18914 (*movhi_mips16, *movqi_internal, *movqi_mips16): Use mtlo and mflo 18915 instead of mthilo and mfhilo. 18916 (mfhi<GPR:mode>_<HILO:mode>): Use mfhi instead of mfhilo. 18917 (mthi<GPR:mode>_<HILO:mode>): Use mthi instead of mthilo. 18918 * config/mips/mips-dsp.md (mips_extr_w, mips_extr_r_w, mips_extr_rs_w) 18919 (mips_extr_s_h, mips_extp, mips_extpdp, mips_shilo, mips_mthlip): 18920 Use mflo instead of mfhilo. 18921 * config/mips/10000.md (r10k_arith): Split mthilo. 18922 (r10k_mfhi, r10k_mflo): Use mfhi and mflo directly. 18923 * config/mips/sb1.md (ir_sb1_mfhi, ir_sb1_mflo): Likewise. 18924 (ir_sb1_mthilo): Split mthilo into mthi and mtlo. 18925 * config/mips/20kc.md (r20kc_imthilo, r20kc_imfhilo): Split 18926 mthilo and mfhilo. 18927 * config/mips/24k.md (r24k_int_mfhilo, r24k_int_mthilo): Likewise. 18928 * config/mips/4130.md (vr4130_class, vr4130_mfhilo, vr4130_mthilo): 18929 Likewise. 18930 * config/mips/4k.md (r4k_int_mthilo, r4k_int_mfhilo): Likewise. 18931 * config/mips/5400.md (ir_vr54_hilo): Likewise. 18932 * config/mips/5500.md (ir_vr55_mthilo, ir_vr55_mfhilo): Likewise. 18933 * config/mips/5k.md (r5k_int_mthilo, r5k_int_mfhilo): Likewise. 18934 * config/mips/7000.md (rm7_mthilo, rm7_mfhilo): Likewise. 18935 * config/mips/74k.md (r74k_int_mfhilo, r74k_int_mthilo): Likewise. 18936 * config/mips/9000.md (rm9k_mfhilo, rm9k_mthilo): Likewise. 18937 * config/mips/generic.md (generic_hilo): Likewise. 18938 * config/mips/loongson2ef.md (ls2_alu): Likewise. 18939 * config/mips/loongson3a.md (ls3a_mfhilo): Likewise. 18940 * config/mips/octeon.md (octeon_imul_o1, octeon_imul_o2) 18941 (octeon_mfhilo_o1, octeon_mfhilo_o2): Likewise. 18942 * config/mips/sr71k.md (ir_sr70_hilo): Likewise. 18943 * config/mips/xlr.md (xlr_hilo): Likewise. 18944 189452012-07-14 Andrew Stubbs <ams@codesourcery.com> 18946 Sandra Loosemore <sandra@codesourcery.com> 18947 18948 * config/sh/sh.h (SH_ASM_SPEC): Add spaces between options. 18949 189502012-07-14 Uros Bizjak <ubizjak@gmail.com> 18951 18952 * config/i386/i386.c (ix86_set_reg_reg_cost): Enable TFmode/TCmode 18953 for TARGET_SSE. 18954 189552012-07-14 Steven Bosscher <steven@gcc.gnu.org> 18956 18957 * toplev.c (init_asm_output): Open asm_out_file in 'w' mode. 18958 189592012-07-13 Bill Schmidt <wschmidt@linux.ibm.com> 18960 18961 PR bootstrap/53955 18962 * config/spu/spu.c (spu_init_cost): Mark static. 18963 (spu_add_stmt_cost): Likewise. 18964 (spu_finish_cost): Likewise. 18965 (spu_destroy_cost_data): Likewise. 18966 * config/i386/i386.c (ix86_init_cost): Mark static. 18967 (ix86_add_stmt_cost): Likewise. 18968 (ix86_finish_cost): Likewise. 18969 (ix86_destroy_cost_data): Likewise. 18970 * config/rs6000/rs6000.c (rs6000_init_cost): Mark static. 18971 (rs6000_add_stmt_cost): Likewise. 18972 (rs6000_finish_cost): Likewise. 18973 (rs6000_destroy_cost_data): Likewise. 18974 189752012-07-13 Steven Bosscher <steven@gcc.gnu.org> 18976 18977 * ggc.h (ggc_internal_alloc_stat, ggc_alloc_typed_stat, 18978 ggc_internal_cleared_alloc_stat, ggc_cleared_alloc_htab_ignore_args, 18979 ggc_cleared_alloc_ptr_array_two_args, ggc_splay_alloc): Add 18980 ATTRIBUTE_MALLOC. 18981 * alloc-pool.h (pool_alloc): Likewise. 18982 18983 * final.c (final): Do not loop to find max_uid. 18984 189852012-07-13 Steven Bosscher <steven@gcc.gnu.org> 18986 18987 * emit-rtl.c (make_debug_insn_raw, make_jump_insn_raw): Make static. 18988 * rtl.h (make_debug_insn_raw, make_jump_insn_raw): Remove prototypes. 18989 189902012-07-13 Richard Guenther <rguenther@suse.de> 18991 18992 PR tree-optimization/53907 18993 * tree-ssa-forwprop.c (associate_pointerplus): New function. 18994 (ssa_forward_propagate_and_combine): Call it. 18995 189962012-07-13 Richard Guenther <rguenther@suse.de> 18997 18998 PR tree-optimization/53922 18999 * tree-vrp.c (value_inside_range): Change prototype to take 19000 min/max instead of value-range. 19001 (range_includes_zero_p): Likewise. Return the result from 19002 value_inside_range. 19003 (extract_range_from_binary_expr_1): Adjust to handle dont-know 19004 return value from range_includes_zero_p. 19005 (extract_range_from_unary_expr_1): Likewise. 19006 (compare_range_with_value): Likewise. 19007 (vrp_meet_1): Likewise. 19008 190092012-07-13 Bill Schmidt <wschmidt@linux.ibm.com> 19010 19011 * doc/tm.texi: Regenerate. 19012 * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): New hook. 19013 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise. 19014 (TARGET_VECTORIZE_FINISH_COST): Likewise. 19015 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. 19016 * targhooks.c (default_init_cost): New function. 19017 (default_add_stmt_cost): Likewise. 19018 (default_finish_cost): Likewise. 19019 (default_destroy_cost_data): Likewise. 19020 * targhooks.h (default_init_cost): New decl. 19021 (default_add_stmt_cost): Likewise. 19022 (default_finish_cost): Likewise. 19023 (default_destroy_cost_data): Likewise. 19024 * target.def (init_cost): New DEFHOOK. 19025 (add_stmt_cost): Likewise. 19026 (finish_cost): Likewise. 19027 (destroy_cost_data): Likewise. 19028 * target.h (struct _stmt_vec_info): New extern decl. 19029 (stmt_vectype): Likewise. 19030 (stmt_in_inner_loop_p): Likewise. 19031 * tree-vectorizer.h (stmt_info_for_cost): New struct/typedef. 19032 (stmt_vector_for_cost): New VEC/typedef. 19033 (add_stmt_info_to_vec): New function. 19034 (struct _slp_tree): Remove cost.inside_of_loop field. 19035 (struct _slp_instance): Remove cost.inside_of_loop field; add 19036 stmt_cost_vec field. 19037 (SLP_INSTANCE_INSIDE_OF_LOOP_COST): Remove macro. 19038 (SLP_INSTANCE_STMT_COST_VEC): New accessor macro. 19039 (SLP_TREE_INSIDE_OF_LOOP_COST): Remove macro. 19040 (struct _vect_peel_extended_info): Add stmt_cost_vec field. 19041 (struct _loop_vec_info): Add target_cost_data field. 19042 (LOOP_VINFO_TARGET_COST_DATA): New accessor macro. 19043 (struct _bb_vec_info): Add target_cost_data field. 19044 (BB_VINFO_TARGET_COST_DATA): New accessor macro. 19045 (struct _stmt_vec_info): Remove cost.inside_of_loop field. 19046 (STMT_VINFO_INSIDE_OF_LOOP_COST): Remove macro. 19047 (stmt_vinfo_set_inside_of_loop_cost): Remove function. 19048 (init_cost): New function. 19049 (add_stmt_cost): Likewise. 19050 (finish_cost): Likewise. 19051 (destroy_cost_data): Likewise. 19052 (vect_model_simple_cost): Change parameter list. 19053 (vect_model_store_cost): Likewise. 19054 (vect_model_load_cost): Likewise. 19055 (record_stmt_cost): New extern decl. 19056 (vect_get_load_cost): Change parameter list. 19057 (vect_get_store_cost): Likewise. 19058 * tree-vect-loop.c (new_loop_vec_info): Call init_cost. 19059 (destroy_loop_vec_info): Call destroy_cost_data. 19060 (vect_estimate_min_profitable_iters): Remove old calculation of 19061 inside costs; call finish_cost instead. 19062 (vect_model_reduction_cost): Call add_stmt_cost instead of old 19063 inside-costs calculation. 19064 (vect_model_induction_cost): Likewise. 19065 * tree-vect-data-refs.c (vect_get_data_access_cost): Change to 19066 return a stmt_vector_for_cost; modify calls to vect_get_load_cost 19067 and vect_get_store_cost to obtain the value to return. 19068 (vect_peeling_hash_get_lowest_cost): Obtain a stmt_cost_vec from 19069 vect_get_data_access_cost and store it in the minimum peeling 19070 structure. 19071 (vect_peeling_hash_choose_best_peeling): Change the parameter list 19072 to add a (stmt_vector_for_cost *) output parameter, and set its value. 19073 (vect_enhance_data_refs_alignment): Ignore the new return value from 19074 calls to vect_get_data_access_cost; obtain stmt_cost_vec from 19075 vect_peeling_hash_choose_best_peeling and pass its contents to the 19076 target cost model. 19077 * tree-vect-stmts.c (stmt_vectype): New function. 19078 (stmt_in_inner_loop_p): Likewise. 19079 (record_stmt_cost): Likewise. 19080 (vect_model_simple_cost): Add stmt_cost_vec parameter; call 19081 record_stmt_cost instead of old calculation; don't call 19082 stmt_vinfo_set_inside_of_loop_cost. 19083 (vect_model_promotion_demotion_cost): Call add_stmt_cost instead of 19084 old calculation; don't call stmt_vinfo_set_inside_of_loop_cost. 19085 (vect_model_store_cost): Add stmt_cost_vec parameter; call 19086 record_stmt_cost instead of old calculation; add stmt_cost_vec 19087 parameter to vect_get_store_cost call; don't call 19088 stmt_vinfo_set_inside_of_loop_cost. 19089 (vect_get_store_cost): Add stmt_cost_vec parameter; call 19090 record_stmt_cost instead of old calculation. 19091 (vect_model_load_cost): Add stmt_cost_vec parameter; call 19092 record_stmt_cost instead of old calculation; add stmt_cost_vec 19093 parameter to vect_get_load_cost call; don't call 19094 stmt_vinfo_set_inside_of_loop_cost. 19095 (vect_get_load_cost): Add stmt_cost_vec parameter; call 19096 record_stmt_cost instead of old calculation. 19097 (vectorizable_call): Add NULL parameter to vect_model_simple_cost call. 19098 (vectorizable_conversion): Likewise. 19099 (vectorizable_assignment): Likewise. 19100 (vectorizable_shift): Likewise. 19101 (vectorizable_operation): Likewise. 19102 (vectorizable_store): Add NULL parameter to vect_model_store_cost call. 19103 (vectorizable_load): Add NULL parameter to vect_model_load_cost call. 19104 (new_stmt_vec_info): Don't set STMT_VINFO_INSIDE_OF_LOOP_COST. 19105 * config/spu/spu.c (TARGET_VECTORIZE_INIT_COST): New macro def. 19106 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise. 19107 (TARGET_VECTORIZE_FINISH_COST): Likewise. 19108 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. 19109 (spu_init_cost): New function. 19110 (spu_add_stmt_cost): Likewise. 19111 (spu_finish_cost): Likewise. 19112 (spu_destroy_cost_data): Likewise. 19113 * config/i386/i386.c (ix86_init_cost): New function. 19114 (ix86_add_stmt_cost): Likewise. 19115 (ix86_finish_cost): Likewise. 19116 (ix86_destroy_cost_data): Likewise. 19117 (TARGET_VECTORIZE_INIT_COST): New macro def. 19118 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise. 19119 (TARGET_VECTORIZE_FINISH_COST): Likewise. 19120 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. 19121 * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): New macro def. 19122 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise. 19123 (TARGET_VECTORIZE_FINISH_COST): Likewise. 19124 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. 19125 (rs6000_init_cost): New function. 19126 (rs6000_add_stmt_cost): Likewise. 19127 (rs6000_finish_cost): Likewise. 19128 (rs6000_destroy_cost_data): Likewise. 19129 * tree-vect-slp.c (vect_free_slp_instance): Free stmt_cost_vec. 19130 (vect_create_new_slp_node): Don't set SLP_TREE_INSIDE_OF_LOOP_COST. 19131 (vect_get_and_check_slp_defs): Add stmt_cost_vec parameter; add 19132 stmt_cost_vec parameter to vect_model_store_cost and 19133 vect_model_simple_cost calls. 19134 (vect_build_slp_tree): Remove inside_cost parameter; add stmt_cost_vec 19135 parameter; add stmt_cost_vec parameter to vect_get_and_check_slp_defs, 19136 vect_model_load_cost, and recursive vect_build_slp_tree calls; prevent 19137 calculating cost more than once for loads; remove inside_cost 19138 parameter from recursive vect_build_slp_tree calls; call 19139 record_stmt_cost instead of old calculation. 19140 (vect_analyze_slp_instance): Allocate stmt_cost_vec and save it with 19141 the instance; free it on premature exit; remove inside_cost parameter 19142 from vect_build_slp_tree call; add stmt_cost_vec parameter to 19143 vect_build_slp_tree call; don't set SLP_INSTANCE_INSIDE_OF_LOOP_COST. 19144 (new_bb_vec_info): Call init_cost. 19145 (destroy_bb_vec_info): Call destroy_cost_data. 19146 (vect_bb_vectorization_profitable_p): Call add_stmt_cost for each 19147 statement recorded with an SLP instance; call finish_cost instead of 19148 the old calculation. 19149 (vect_update_slp_costs_according_to_vf): Record statement costs from 19150 SLP instances, multiplying by the appropriate number of copies; don't 19151 update SLP_INSTANCE_INSIDE_OF_LOOP_COST. 19152 191532012-07-13 Richard Guenther <rguenther@suse.de> 19154 19155 PR middle-end/53937 19156 * builtins.c (get_pointer_alignment_1): Handle constant 19157 pointers. 19158 191592012-07-13 Richard Sandiford <rdsandiford@googlemail.com> 19160 Steven Bosscher <steven@gcc.gnu.org> 19161 Bernd Schmidt <bernds@codesourcery.com> 19162 19163 PR rtl-optimization/53908 19164 * df-problems.c (can_move_insns_across): When doing 19165 memory-reference book-keeping, handle call insns. 19166 191672012-07-13 Richard Guenther <rguenther@suse.de> 19168 19169 * gimple.c (gimple_types_compatible_p_1): Remove redundant 19170 type attribute comparisons. 19171 (gimple_canonical_types_compatible_p): Likewise. 19172 191732012-07-12 Hans-Peter Nilsson <hp@axis.com> 19174 19175 PR rtl-optimization/53176 19176 * rtlanal.c (rtx_cost): Adjust default cost for X with a 19177 UNITS_PER_WORD factor for all X according to the size of 19178 its mode, not just for SUBREGs with untieable modes. 19179 Handle SET. Use factor * factor for MULT, DIV, UDIV, 19180 MOD, UMOD. 19181 191822012-07-12 Uros Bizjak <ubizjak@gmail.com> 19183 19184 * config/i386/i386.md (QImode and HImode cmove splitters): Merge 19185 QImode and HImode splitters. Use ix86_comparison_operator. 19186 Explicitly match FLAGS_REG. 19187 (DFmode cmove splitter): Explicitly match FLAGS_REG. 19188 191892012-07-11 Steven Bosscher <steven@gcc.gnu.org> 19190 19191 * expr.h (can_move_by_pieces): Move prototype from here ... 19192 * tree.h (can_move_by_pieces): ... to here. 19193 * optabs.h (set_widening_optab_handler): Use XCNEW. 19194 * gimplify.c: Do not include expr.h. 19195 19196 * toplev.c: Do not include dwarf2out.h. 19197 * config/ia64/ia64.c: Likewise. 19198 * config/sparc/sparc.c: Likewise. 19199 * config/sparc/t-sparc (sparc.o): Fix dependencies. 19200 19201 * Makefile.in (toplev.o): Fix dependencies 19202 (c-family/c-gimplify.o): Likewise. 19203 (c-family/c-common.o): Likewise. 19204 192052012-07-11 Steven Bosscher <steven@gcc.gnu.org> 19206 19207 * basic-block.h (struct edge_def): Use basic_block instead of 19208 basic_block_def *. 19209 * cfgloop.h (struct loop_exit, struct loop): Likewise. 19210 * gengenrtl.c (type_from_format): Likewise. Also for 'tree' 19211 instead of union tree_node *. 19212 * rtl.h (union rtunion_def, emit_insn_before_noloc, 19213 emit_insn_after_noloc, add_insn_before, add_insn_after, 19214 debug_bb_slim): Likewise. 19215 * tree-inline.h (struct copy_body_data): Likewise. 19216 * sched-rgn.c (dump_region_dot): Likewise. 19217 * gimple.h (struct gimple_statement_base, gimple_set_bb, 19218 gsi_move_to_bb_end): Likewise. 19219 * sched-vis.c (debug_bb_slim): Likewise. 19220 (debug_bb_n_slim): Likewise. 19221 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Likewise. 19222 (mn10300_block_contains_call): 19223 192242012-07-11 Greta Yorsh <Greta.Yorsh@arm.com> 19225 19226 PR target/53859 19227 * config/arm/arm.c (arm_early_load_addr_dep): Handle new 19228 epilogue patterns. 19229 192302012-07-11 Jonathan Wakely <jwakely.gcc@gmail.com> 19231 19232 * doc/extend.texi (Namespace Association): Alter cautionary text. 19233 192342012-07-10 Oleg Endo <olegendo@gcc.gnu.org> 19235 19236 PR target/53911 19237 * config/sh/sh.md: Remove displacement addresssing related splits. 19238 192392012-07-10 Xinliang David Li <davidxl@google.com> 19240 19241 * doc/invoke.texi: New option documented. 19242 * flag-types.h: New enum type. 19243 * gimplify.c (gimplify_bind_expr): Control 19244 clobber generation with new option. 19245 (gimplify_target_expr): Ditto. 19246 * common.opt: New option. 19247 192482012-07-10 Julian Brown <julian@codesourcery.com> 19249 19250 * config/arm/arm.md (movsi): Don't split symbol refs here. 19251 (define_split): New. 19252 192532012-07-10 Andreas Schwab <schwab@linux-m68k.org> 19254 19255 PR bootstrap/53913 19256 * config/m68k/m68k.c (m68k_epilogue_uses): New. 19257 * config/m68k/m68k.h (EPILOGUE_USES): Use it. 19258 * config/m68k/m68k-protos.h (m68k_epilogue_uses): Add prototype. 19259 192602012-07-10 Richard Henderson <rth@redhat.com> 19261 19262 * target.def (builtin_mul_widen_even, builtin_mul_widen_odd): Remove. 19263 * system.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Poison. 19264 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Poison. 19265 * config/i386/i386.c (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): Remove. 19266 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): Remove. 19267 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): Remove. 19268 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): Remove. 19269 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): Remove. 19270 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): Remove. 19271 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): Remove. 19272 (bdesc_args): Remove entries to match. 19273 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): Remove. 19274 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove. 19275 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove. 19276 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): Remove. 19277 (rs6000_builtin_mul_widen_odd): Remove. 19278 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove. 19279 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove. 19280 * config/spu/spu.c (spu_builtin_mul_widen_even): Remove. 19281 (spu_builtin_mul_widen_odd): Remove. 19282 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove. 19283 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove. 19284 * doc/tm.texi.in: Don't document the removed hooks. 19285 19286 * tree-vect-stmts.c (supportable_widening_operation): Expand 19287 WIDEN_MULT_EXPR via VEC_WIDEN_MULT_EVEN/ODD_EXPR if possible. 19288 19289 * expmed.c (expmed_mult_highpart): Rename from expand_mult_highpart. 19290 (expmed_mult_highpart_optab): Rename from expand_mult_highpart_optab. 19291 * optabs.c (can_mult_highpart_p): New. 19292 (expand_mult_highpart): New. 19293 * expr.c (expand_expr_real_2) [MULT_HIGHPART_EXPR): Use it. 19294 * tree-vect-generic.c (expand_vector_operations_1): Don't expand 19295 by pieces if can_mult_highpart_p. 19296 (expand_vector_divmod): Use can_mult_highpart_p and always 19297 generate MULT_HIGHPART_EXPR. 19298 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise. 19299 * tree-vect-stmts.c (vectorizable_operation): Likewise. 19300 19301 * config/spu/spu-builtins.md (spu_mpy): Move to spu.md. 19302 (spu_mpyu, spu_mpyhhu, spu_mpyhh): Likewise. 19303 * config/spu/spu.md (vec_widen_smult_odd_v8hi): Rename from spu_mpy. 19304 (vec_widen_umult_odd_v8hi): Rename from spu_mpyu. 19305 (vec_widen_smult_even_v8hi): Rename from spu_mpyhh. 19306 (vec_widen_umult_even_v8hi): Rename from spu_mpyhhu. 19307 * config/spu/spu-builtins.def: Update pattern names to match. 19308 19309 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Rename 19310 from altivec_vmuleub. 19311 (vec_widen_smult_even_v16qi): Rename from altivec_vmulesb. 19312 (vec_widen_umult_even_v8hi): Rename from altivec_vmuleuh. 19313 (vec_widen_smult_even_v8hi): Rename from altivec_vmulesh. 19314 (vec_widen_umult_odd_v16qi): Rename from altivec_vmuloub. 19315 (vec_widen_smult_odd_v16qi): Rename from altivec_vmulosb. 19316 (vec_widen_umult_odd_v8hi): Rename from altivec_vmulouh. 19317 (vec_widen_smult_odd_v8hi): Rename from altivec_vmulosh. 19318 * config/rs6000/rs6000-builtin.def: Update pattern names to match. 19319 19320 * config/i386/sse.md (vec_widen_umult_even_v8si): Rename from 19321 avx2_umulv4siv4di3. 19322 (vec_widen_umult_even_v4si): Rename from sse2_umulv2siv2di3. 19323 (vec_widen_smult_even_v8si): Rename from avx2_mulv4siv4di3. 19324 (mulv4si3): Remove XOP test shadowed by SSE4 test. 19325 * config/i386/i386.c (bdesc_args): Update pattern names. 19326 (ix86_expand_sse2_mulvxdi3): Likewise. 19327 (ix86_expand_mul_widen_evenodd): Likewise. Remove XOP test 19328 shadowed by SSE4 test. 19329 19330 * tree.def (VEC_WIDEN_MULT_EVEN_EXPR, VEC_WIDEN_MULT_ODD_EXPR): New. 19331 * cfgexpand.c (expand_debug_expr): Handle them. 19332 * expr.c (expand_expr_real_2): Likewise. 19333 * fold-const.c (fold_binary_loc): Likewise. 19334 * gimple-pretty-print.c (dump_binary_rhs): Likewise. 19335 * optabs.c (optab_for_tree_code): Likewise. 19336 * tree-cfg.c (verify_gimple_assign_binary): Likewise. 19337 * tree-inline.c (estimate_operator_cost): Likewise. 19338 * tree-pretty-print.c (dump_generic_node): Likewise. 19339 * tree.c (commutative_tree_code): Likewise. 19340 * tree-vect-generic.c (expand_vector_operations_1): Likewise. 19341 Handle type change before looking up optab. 19342 * optabs.h (OTI_vec_widen_umult_even, OTI_vec_widen_umult_odd): New. 19343 (OTI_vec_widen_smult_even, OTI_vec_widen_smult_odd): New. 19344 (vec_widen_umult_even_optab, vec_widen_umult_odd_optab): New. 19345 (vec_widen_smult_even_optab, vec_widen_smult_odd_optab): New. 19346 * genopinit.c (optabs): Initialize them. 19347 * doc/md.texi: Document them. 19348 193492012-07-10 Dehao Chen <dehao@google.com> 19350 19351 * tree.h (phi_arg_d): New field. 19352 * tree-flow-inline.h (gimple_phi_arg_block): New function. 19353 (gimple_phi_arg_block_from_edge): New function. 19354 (gimple_phi_arg_set_block): New function. 19355 (gimple_phi_arg_has_block): New function. 19356 (redirect_edge_var_map_block): New function. 19357 * tree-flow.h (_edge_var_map): New field. 19358 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used. 19359 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for 19360 redirect_edge_var_map_add. 19361 * tree-outof-ssa.c (_elim_graph): New field. 19362 (insert_partition_copy_on_edge): New parameter. 19363 (insert_value_copy_on_edge): New parameter. 19364 (insert_rtx_to_part_on_edge): New parameter. 19365 (insert_part_to_rtx_on_edge): New parameter. 19366 (elim_graph_add_edge): New parameter. 19367 (elim_graph_remove_succ_edge): New parameter. 19368 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter. 19369 (FOR_EACH_ELIM_GRAPH_PRED): New parameter. 19370 (new_elim_graph): Add block debug info. 19371 (clear_elim_graph): Likewise. 19372 (delete_elim_graph): Likewise. 19373 (elim_graph_add_node): Likewise. 19374 (elim_graph_add_edge): Likewise. 19375 (elim_graph_remove_succ_edge): Likewise. 19376 (eliminate_build): Likewise. 19377 (elim_forward): Likewise. 19378 (elim_unvisited_predecessor): Likewise. 19379 (elim_backward): Likewise. 19380 (elim_create): Likewise. 19381 (eliminate_phi): Likewise. 19382 (insert_backedge_copies): Likewise. 19383 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for 19384 add_phi_arg. 19385 (rewrite_add_phi_arguments): Likewise. 19386 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise. 19387 * tree-ssa-tail-merge.c (replace_block_by): Likewise. 19388 * tree-ssa-threadupdate.c (copy_phi_args): Likewise. 19389 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise. 19390 * tree-ssa-loop-manip.c (create_iv): Likewise. 19391 (add_exit_phis_edge): Likewise. 19392 (split_loop_exit_edge): Likewise. 19393 (copy_phi_node_args): Likewise. 19394 (tree_transform_and_unroll_loop): Likewise. 19395 * value-prof.c (gimple_ic): Likewise. 19396 (gimple_stringop_fixed_value): Likewise. 19397 * tree-tailcall.c (add_successor_phi_arg): Likewise. 19398 (eliminate_tail_call): Likewise. 19399 (create_tailcall_accumulator): Likewise. 19400 (tree_optimize_tail_calls_1): Likewise. 19401 * tree-phinodes.c (add_phi_arg): Likewise. 19402 (make_phi_node): Likewise. 19403 (resize_phi_node): Likewise. 19404 (remove_phi_arg_num): Likewise. 19405 * omp-low.c (expand_parallel_call): Likewise. 19406 (expand_omp_for_static_chunk): Likewise. 19407 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop): 19408 Likewise. 19409 (slpeel_update_phi_nodes_for_guard1): Likewise. 19410 (slpeel_update_phi_nodes_for_guard2): Likewise. 19411 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise. 19412 (set_prologue_iterations): Likewise. 19413 (slpeel_tree_peel_loop_to_edge): Likewise. 19414 (vect_loop_versioning): Likewise. 19415 * tree-parloops.c (create_phi_for_local_result): Likewise. 19416 (transform_to_exit_first_loop): Likewise. 19417 (create_parallel_loop): Likewise. 19418 * ipa-split.c (split_function): Likewise. 19419 * tree-vect-loop.c (get_initial_def_for_induction): Likewise. 19420 (vect_create_epilog_for_reduction): Likewise. 19421 * tree-vect-data-refs.c (vect_setup_realignment): Likewise. 19422 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise. 19423 * tree-ssa-phiopt.c (cond_store_replacement): Likewise. 19424 (cond_if_else_store_replacement_1): Likewise. 19425 * tree-cfgcleanup.c (remove_forwarder_block): Likewise. 19426 (remove_forwarder_block_with_phi): Likewise. 19427 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise. 19428 * tree-predcom.c (initialize_root_vars): Likewise. 19429 (initialize_root_vars_lm): Likewise. 19430 * sese.c (sese_add_exit_phis_edge): Likewise. 19431 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise. 19432 * tree-ssa.c (flush_pending_stmts): Likewise. 19433 (redirect_edge_var_map_add): Likewise. 19434 (ssa_redirect_edge): Likewise. 19435 * gimple-streamer-in.c (input_phi): Likewise. 19436 * tree-vect-stmts.c (vectorizable_load): Likewise. 19437 * tree-inline.c (copy_phis_for_bb): Likewise. 19438 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. 19439 * tree-switch-conversion.c (fix_phi_nodes): Likewise. 19440 * tree-cfg.c (reinstall_phi_args): Likewise. 19441 (gimple_make_forwarder_block): Likewise. 19442 (add_phi_args_after_copy_edge): Likewise. 19443 (gimple_duplicate_sese_tail): Likewise. 19444 194452012-07-09 Oleg Endo <olegendo@gcc.gnu.org> 19446 19447 PR target/53886 19448 * config/sh/sh.c (sequence_insn_p): New function. 19449 (find_barrier, sh_insn_length_adjustment): Use it. 19450 194512012-07-09 Iain Sandoe <iain@codesourcery.com> 19452 19453 PR target/53283 19454 * config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN 19455 if defined. 19456 * config/darwin.h: Rename TARGET_FOLD_BUILTIN to 19457 SUBTARGET_FOLD_BUILTIN. 19458 * config/rs6000/darwin.h: Map TARGET_FOLD_BUILTIN onto 19459 SUBTARGET_FOLD_BUILTIN. 19460 194612012-07-09 Iain Sandoe <iain@codesourcery.com> 19462 19463 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Move NeXT 19464 runtime exceptions model setting from here ... 19465 * config/darwin.c (darwin_override_options): ... to here. 19466 194672012-07-09 Steven Bosscher <steven@gcc.gnu.org> 19468 19469 PR tree-optimization/53887 19470 * tree-cfg.c (group_case_labels_stmt): Make non-static. 19471 * tree-flow.h (group_case_labels_stmt): Add prototype. 19472 * tree-switch-conversion.c (process_switch): Use group_case_labels_stmt 19473 to pre-process every switch. 19474 194752012-07-09 Jason Merrill <jason@redhat.com> 19476 19477 PR c++/53882 19478 * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE. 19479 (type_hash_eq): Likewise. 19480 194812012-07-09 Tom de Vries <tom@codesourcery.com> 19482 Richard Guenther <rguenther@suse.de> 19483 19484 * tree-ssa-ccp.c (optimize_unreachable): New function. 19485 (execute_fold_all_builtins): Use optimize_unreachable to optimize 19486 BUILT_IN_UNREACHABLE. Don't optimize after BUILT_IN_UNREACHABLE. 19487 194882012-07-09 Richard Guenther <rguenther@suse.de> 19489 19490 PR bootstrap/53898 19491 * graphite-optimize-isl.c: Make sure CU is not empty. 19492 194932012-07-09 Steven Bosscher <steven@gcc.gnu.org> 19494 19495 * gensupport.c (init_rtx_reader_args_cb): Start counting code 19496 generating patterns from 1 to free up 0 for CODE_FOR_nothing. 19497 * gencodes.c (main): Give CODE_FOR_nothing the value 0. Add 19498 the LAST_INSN_CODE marker at the end. 19499 * genoutput.c (nothing): New static struct data. 19500 (idata): Initialize to ¬hing. 19501 (idata_end): Initialize to ¬hing.next. 19502 (init_insn_for_nothing): New function to create dummy 'nothing' insn. 19503 (main): Use it. 19504 * genpeep.c (insn_code_number): Remove global variable. 19505 (gen_peephole): Take it as an argument instead. 19506 (main): Take insn_code_number from read_md_rtx. 19507 * optabs.h: Revert r161809: 19508 (optab_handlers): Change type of insn_code back to insn_code. 19509 (optab_handler, widening_optab_handler, set_optab_handler, 19510 set_widening_optab_handler, convert_optab_handler, 19511 set_convert_optab_handler, direct_optab_handler, 19512 set_direct_optab_handler): Remove int casts. 19513 Revert to treating the insn_code field as "insn_code". 19514 195152012-07-08 Oleg Endo <olegendo@gcc.gnu.org> 19516 19517 * config/sh/sh.md (*return_i): Move trap_exit attribute check to ... 19518 * config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function. 19519 * config/sh/sh-protos.h: Declare it. 19520 195212012-07-08 Steven Bosscher <steven@gcc.gnu.org> 19522 19523 * mcf.c: Do not include tm.h, tree.h, and langhooks.h. 19524 (dump_fixup_graph): Use current_function_name. 19525 (adjust_cfg_counts): Likewise. 19526 * ira-conflicts.c: Do not include tree.h. 19527 (ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL. 19528 195292012-07-08 Oleg Endo <olegendo@gcc.gnu.org> 19530 19531 PR target/51244 19532 * config/sh/sh.md (*branch_true_eq, *branch_false_ne, nott): New insns. 19533 195342012-07-08 Steven Bosscher <steven@gcc.gnu.org> 19535 19536 * basic-block.h: Re-group most prototypes per file. 19537 (struct edge_list): Remove num_blocks field. 19538 (dump_bb_info): Adjust prototypes. 19539 (dump_reg_info): Move prototype to regs.h. 19540 * function.h: Do not include tree.h. 19541 Include vec.h, vecir.h, input.h and machmode.h to compensate. 19542 (function_name): New prototype. 19543 * gimple.h: Include tree.h to compensate for basic-block.h change. 19544 * langhooks.h: Note that tree.h is only necessary for enum tree_code. 19545 * regs.h (dump_reg_info): Prototype here. 19546 * regset.h: Adjust file reference in comment. 19547 (debug_regset): Remove prototype. 19548 * rtl.h: Include flags.h for flag_var_tracking_assignments. 19549 (MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments 19550 instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS. 19551 (dump_reg_info, dump_flow_info): Remove prototypes. 19552 * bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c 19553 to here, the only user. Make static. 19554 (reorder_basic_blocks): Call dump_reg_info before dump_flow_info. 19555 * cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h, 19556 flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h, 19557 tree-pass.h, cfgloop.h, and tree-flow.h. 19558 Include basic-block.h, the first header I'd expect to be included. 19559 (reg_obstack): Move to df-core.c. 19560 (free_edge): Remove bogus ATTRIBUTE_UNUSED. 19561 (remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear. 19562 (redirect_edge_succ_nodup): Move to cfghooks.c. 19563 (dump_regset, debug_regset): Move to df-core.c. 19564 (dump_bb_info): Move to cfgrtl.c. 19565 (dump_reg_info): Move to regstat.c. 19566 (dump_flow_info): Move to cfgrtl.c. 19567 (debug_flow_info): Likewise. 19568 (dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense. 19569 * cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h, 19570 insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h. 19571 (flow_active_insn_p, forwarder_block_p, can_fallthru, 19572 could_fall_through): Move to cfgrtl.c. 19573 (set_edge_can_fallthru_flag): Moved to bb-reorder.c. 19574 (create_edge_list): Do not set edge_list's removed num_blocks. 19575 (print_edge_list): Look at n_basic_blocks instead of num_blocks. 19576 (flow_nodes_print): Remove. 19577 (flow_edge_list_print): Remove. 19578 (inverted_post_order_compute): Use FOR_ALL_BB. 19579 * cfgrtl.c (dump_flow_info): Moved from cfg.c. 19580 Do not call dump_reg_info. 19581 (debug_flow_info): Moved from cfg.c 19582 (dump_bb_info): Moved from cfg.c. Take 'verbose' argument 19583 to avoid looking at TDF_* flags from tree-pass.h. 19584 (flow_active_insn_p, forwarder_block_p, can_fallthru, 19585 could_fall_through): Moved from cfganal.c. 19586 (print_rtl_with_bb): Adjust dump_bb_info calls. 19587 * cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c. 19588 (remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE. 19589 (cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS. 19590 * cselib.c: Include tree.h with a FIXME. 19591 * df-core.c (reg_obstack): Moved from cfg.c. 19592 (dump_regset): Likewise. 19593 (debug_regset): Likewise. Make a DEBUG_FUNCTION. 19594 * final.c (compute_alignments): Call dump_reg_info before 19595 dump_flow_info. 19596 * function.c (function_name): New function. 19597 (current_function_name): Use it. 19598 * ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before 19599 dump_flow_info. 19600 * ira-conflicts.c: Include tree.h with a note. 19601 * regstat.c (dump_reg_info): Moved here from cfg.c. 19602 * loop-init.c: Include regs.h instead of hard-reg-set.h. 19603 (rtl_loop_init): Call dump_reg_info before dump_flow_info. 19604 (rtl_loop_done): Likewise. 19605 * mcf.c: Include tree.h before langhooks.h. 19606 * predict.c (maybe_hot_count_p): Assert we have cfun. 19607 (probably_never_executed_bb_p): Likewise. 19608 * profile.c (compute_branch_probabilities): Use gimple_dump_cfg 19609 instead of dump_flow_info. 19610 * sched-deps.c: Include tree.h with a FIXME. 19611 (call_may_noreturn_p): Add FIXME note why this function has to 19612 look at function decls instead of function decl flags. 19613 * sched-vis.c: Include tree.h with a FIXME. 19614 (print_rtl_slim): Adjust dump_bb_info uses. 19615 * statistics.c (statistics_fini_pass_2): Use current_function_name 19616 to avoid including tree.h. 19617 (statistics_counter_event): Use function_name for the same reason. 19618 (statistics_histogram_event): Likewise. 19619 * tracer.c (tracer): Remove bogus gcc_assert. Use brief_dump_cfg 19620 instead of dump_flow_info. 19621 * var-tracking.c (variable_tracking_main_1): Call dump_reg_info 19622 before dump_flow_info. 19623 * doc/cfg.texi: Update CFG documentation. 19624 * Makefile.in (RTL_H): Depend on FLAGS_H. 19625 (GIMPLE_H): Depend on TREE_H. 19626 (FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H, 19627 but no longer on TREE_H. 19628 (C_COMMON_H): Depend on TREE_H. 19629 (cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o, 19630 sched-deps.o, sched-vis.o): Fixup dependencies. 19631 196322012-07-08 Steven Bosscher <steven@gcc.gnu.org> 19633 19634 * alias.h: Do not include coretypes.h in header files. 19635 * cppbuiltin.h: Likewise. 19636 * double-int.h: Likewise. 19637 * gimple-fold.h: Likewise. 19638 * flags.h: Likewise. 19639 * tree-ssa-alias.h: Likewise. 19640 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free, 19641 OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h. 19642 * Makefile.in (RTL_BASE_H): Depend on coretypes.h. 19643 (TREE_H): Likewise. 19644 (ALIAS_H): Do not depend on coretypes.h. 19645 (FLAGS_H): Likewise. 19646 (realmpfr.o): Depend on coretypes.h. 19647 196482012-07-08 Steven Bosscher <steven@gcc.gnu.org> 19649 19650 * Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, 19651 gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects. 19652 196532012-07-07 Richard Earnshaw <rearnsha@arm.com> 19654 19655 * arm.h (TARGET_CPU_CPP_BUILTINS): Remove Maverick support. 19656 (TARGET_FPA): Delete definition. 19657 (TARGET_MAVERICK): Likewise. 19658 (TARGET_FPA_EMU2): Likewise. 19659 (arm_fp_model): Remove FPA and Maverick models. 19660 (arm_arch_cirrus): Delete declaration. 19661 (FLOAT_WORDS_BIG_ENDIAN): Delete definition. 19662 (FIXED_REGISTERS): Remove FPA and Maverick support. Reorganize. 19663 (CALL_USED_REGISTERS): Likewise. 19664 (FIRST_FPA_REGNUM, LAST_FPA_REGNUM): Delete definition. 19665 (FIRST_VFP_REGNUM): Renumbered. 19666 (D7_VFP_REGNUM): Chain definition. 19667 (LAST_LO_VFP_REGNUM): Likewise. 19668 (FIRST_HI_VFP_REGNUM): Likewise. 19669 (LAST_HI_VFP_REGNUM): Likewise. 19670 (FIRST_IWMMXT_GR_REGNUM): Likewise. 19671 (LAST_IWMMXT_GR_REGNUM): Likewise. 19672 (FIRST_IWMMXT_REGNUM): Likewise. 19673 (LAST_IWMMXT_REGNUM): Likewise. 19674 (FRAME_POINTER_REGNUM): Renumbered. 19675 (ARG_POINTER_REGNUM): Renumbered. 19676 (FIRST_PSEUDO_REGISTER): Remove FPA and Maverick registers. 19677 (FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): Delete definitions. 19678 (HARD_REGNO_REGNUM): Remove FPA support. 19679 (REG_ALLOC_ORDER): Remove FPA and Maverick registers. Reorganize. 19680 (reg_class): Likewise. 19681 (REG_CLASS_NAMES): Likewise. 19682 (REG_CLASS_CONTENTS): Likewise. 19683 (CANNOT_CHANGE_MODE_CLASS): Never true. Update comment. 19684 (SECONDARY_INPUT_RELOAD_CLASS): Remove Maverick support. 19685 (CLASS_MAX_NREGS): Remove FPA and Maverick support. 19686 * aout.h (REGISTER_NAMES): Remove FPA and Maverick registers. 19687 Reorganize. Use AAPCS preferred names. 19688 (ADDITIONAL_REGISTER_NAMES): Remove aliases for Maverick. Update 19689 comments. 19690 (OVERLAPPING_REGISTER_NAMES): Update register numbering. 19691 * arm.c (FL_CIRRUS): Delete definition. 19692 (arm_arch_cirrus): Delete variable. 19693 (arm_float_words_big_endian): Delete function. 19694 (cirrus_memory_offset): Delete function. 19695 (output_mov_long_double_fpa_from_arm): Delete function. 19696 (output_mov_long_double_arm_from_fpa): Delete function. 19697 (output_mov_double_fpa_from_arm): Delete function. 19698 (output_mov_double_arm_from_fpa): Delete function. 19699 (emit_sfm): Delete function. 19700 (maybe_get_arm_condition_code): Update comment. 19701 (arm_file_start): Always use softvfp for softfloat systems. 19702 (thumb_core_reg_alloc_order): Adjust for updated register allocation. 19703 (arm_option_override): Remove FPA and Maverick support. Always 19704 default to vfp as the fallback FPU format. 19705 (use_return_insn): Remove FPA support. 19706 (arm_get_frame_offsets): Likewise. 19707 (arm_save_coproc_regs): Likewise. 19708 (arm_canonicalize_comparison): Remove Maverick support. 19709 (arm_select_cc_mode): Likewise. 19710 (arm_gen_compare_reg): Likewise. 19711 (arm_print_operand): Likewise. 19712 (arm_libcall_value_1): Remove FPA and Maverick support. 19713 (arm_function_value_regno_p): Likewise. 19714 (arm_apply_result_size): Likewise. 19715 (arm_legitimate_index_p): Likewise. 19716 (thumb2_legitimate_index_p): Likewise. 19717 (legitimize_reload_address): Likewise. 19718 (arm_register_move_cost): Likewise. 19719 (arm_hard_regno_mode_ok): Likewise. 19720 (arm_regno_class): Likewise. 19721 (arm_dbx_register_number): Likewise. 19722 (arm_emit_unwind_sequence): Likewise. 19723 (arm_conditional_register_usage): Likewise. 19724 * arm-protos.h (neg_const_double_rtx_ok_for_fpa): Remove declaration. 19725 (cirrus_memory_offset): Likewise. 19726 (output_move_long_double_fpa_from_arm): Likewise. 19727 (output_move_long_double_arm_from_fpa): Likewise. 19728 (output_move_double_fpa_from_arm): Likewise. 19729 (output_move_double_arm_from_fpa): Likewise. 19730 (arm_float_words_big_endian): Likewise. 19731 * arm.md (CC_REGNUM): Renumbered. 19732 (VFPCC_REGNUM): Moved here. Renumbered. 19733 (FPA_F0_REGNUM, FPA_F7_REGNUM): Delete. 19734 (attr fpu): Remove FPA and Maverick support. 19735 * vfp.md (VFPCC_REGNUM): Delete. Moved to arm.md. 19736 * arm-cores.def (ep9312): Remove Maverick support. 19737 * arm-arches.def (ep9312): Delete architecture. 19738 * arm-tables.opt: Regenerated. 19739 19740 * arm/linux-elf.h (FPUTYPE_DEFAULT): Set to vfp. 19741 197422012-07-07 Steven Bosscher <steven@gcc.gnu.org> 19743 19744 PR tree-optimization/53881 19745 * tree-switch-conversion.c (emit_case_bit_tests): Do not rely on 19746 comparing labels to establish uniqueness of a switch case target, 19747 use the CFG instead. 19748 197492012-07-07 Ulrich Weigand <ulrich.weigand@linaro.org> 19750 19751 * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour 19752 due to negative shift amount. 19753 197542012-07-07 Hans-Peter Nilsson <hp@axis.com> 19755 19756 Fix configure test for "stack protector support in target C library". 19757 * configure.ac (test_prefix, test_exec_prefix): Move setting from 19758 inside sysroot handling to before and outside it. 19759 * configure: Regenerate. 19760 197612012-07-06 Kai Tietz <ktietz@redhat.com> 19762 19763 PR bootstrap/52947 19764 * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always 19765 as "/mingw/include". 19766 197672012-07-06 Alexandre Oliva <aoliva@redhat.com> 19768 19769 PR debug/53820 19770 * var-tracking.c (vt_add_function_parameter): Convert 19771 internal_arg_pointer into arg_pointer-based address even 19772 without DRAP. 19773 197742012-07-06 Alexandre Oilva <aoliva@redhat.com> 19775 19776 PR rtl-optimization/53827 19777 PR debug/53671 19778 PR debug/49888 19779 * alias.c (memrefs_conflict_p): Adjust offset and size by the 19780 same amount for alignment ANDs. 19781 197822012-07-06 Tom de Vries <tom@codesourcery.com> 19783 19784 PR tree-optimization/51879 19785 * tree-ssa-sccvn.c (copy_reference_ops_from_call) 19786 (visit_reference_op_call): Handle case that lhs is not an SSA_NAME. 19787 (visit_use): Also call visit_reference_op_call for calls with a vdef. 19788 197892012-07-06 Tom de Vries <tom@codesourcery.com> 19790 19791 PR tree-optimization/52009 19792 * tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare 19793 value numbers of gimple_vdef. 19794 * tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to 19795 prototype. 19796 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR. 19797 (vn_reference_insert): Add and handle vdef parameter. 19798 (visit_reference_op_load): Add argument to vn_reference_insert call. 19799 (visit_reference_op_store): Find value number of vdef of store. Insert 19800 value number of vdef of store. 19801 198022012-07-06 Uros Bizjak <ubizjak@gmail.com> 19803 19804 * config/i386/i386.md (simple lea to add peephole): Also transform 19805 RTXes where second PLUS operand matches output. 19806 198072012-07-06 Uros Bizjak <ubizjak@gmail.com> 19808 19809 * config/i386/i386.c (construct_plt_address): Make static. 19810 * config/i386/i386-protos.h (construct_plt_address): Remove. 19811 198122012-07-06 Nick Clifton <nickc@redhat.com> 19813 19814 * config/mn10300/mn10300.c (mn10300_encode_section_info): Call 19815 default_encode_section_info. 19816 198172012-07-06 Uros Bizjak <ubizjak@gmail.com> 19818 19819 PR target/53853 19820 * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model, 19821 emit PIC sequence for fnaddr symbol reference in advance. 19822 198232012-07-06 Eric Botcazou <ebotcazou@adacore.com> 19824 19825 Revert 19826 2012-06-14 Eric Botcazou <ebotcazou@adacore.com> 19827 19828 * dwarf2out.c (function_possibly_abstracted_p): New static function. 19829 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of 19830 cgraph_function_possibly_inlined_p. 19831 (gen_inlined_subroutine_die): Return if the origin is to be ignored. 19832 (process_scope_var): Do not emit concrete instances of abstracted 19833 nested functions from here. 19834 (gen_decl_die): Emit the abstract instance if the function is possibly 19835 abstracted and not only possibly inlined. 19836 (dwarf2out_finish): Find the first non-abstract parent instance and 19837 attach concrete instances on the limbo list to it. 19838 198392012-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 19840 Julian Brown <julian@codesourcery.com> 19841 19842 PR target/48941 19843 PR target/51980 19844 * config/arm/neon-gen.ml (return_by_ptr): Delete. 19845 (print_function): Handle empty strings. 19846 (return): Delete use of return_by_ptr. 19847 (mask_shape_for_shuffle): New function. 19848 (mask_elems): Likewise. 19849 (shuffle_fn): Likewise. 19850 (params): Simplify and remove use of return_by_ptr. 19851 (get_shuffle): New function. 19852 (print_variant): Update. 19853 * config/arm/neon.ml (rev_elems): New function. 19854 (permute_range): Likewise. 19855 (zip_range): Likewise. 19856 (uzip_range): Likewise. 19857 (trn_range): Likewise. 19858 (zip_elems): Likewise. 19859 (uzip_elems): Likewise. 19860 (trn_elems): Likewise. 19861 (features): New enumeration Use_shuffle. Delete ReturnPtr. 19862 (pf_su_8_16): New. 19863 (suf_32): New. 19864 (ops): Update entries for Vrev64, Vrev32, Vrev16, Vtr, Vzip, Vuzp. 19865 * config/arm/arm_neon.h: Regenerate. 19866 198672012-07-05 Richard Guenther <rguenther@suse.de> 19868 19869 * tree-pretty-print.c (dump_generic_node): Properly test 19870 the result of exact_log2. 19871 198722012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 19873 19874 * config/s390/s390-protos.h (s390_expand_movmem) 19875 (s390_expand_cmpmem): Add return value. 19876 * config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem): 19877 Return FALSE to use the library function in some cases. 19878 * config/s390/s390.md (movmem, cmpmem): Evaluate return value of C 19879 helper functions. 19880 198812012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 19882 19883 * config.gcc: Enable ifunc attribute by default on s390 and s390x. 19884 198852012-07-05 Steven Bosscher <steven@gcc.gnu.org> 19886 19887 * expr.c (try_casesi): Remove bogus ATTRIBUTE_UNUSED markers. 19888 * stmt.c (dump_case_nodes): New. 19889 (expand_case): Split out code generation parts into new functions. 19890 (expand_switch_as_decision_tree_p): Split out from expand_case. 19891 (emit_case_decision_tree): Likewise. 19892 (emit_case_dispatch_table): Likewise. 19893 198942012-07-05 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 19895 19896 * config/arm/iterators.md (SDF): New mode iterator. 19897 (V_if_elem): Add support for SF and DF modes. 19898 (V_reg): Likewise. 19899 (F_constraint): New mode iterator attribute. 19900 (F_fma_type): Likewise. 19901 config/arm/vfp.md (fma<SDF:mode>4): New pattern. 19902 (*fmsub<SDF:mode>4): Likewise. 19903 (*fmnsub<SDF:mode>4): Likewise. 19904 (*fmnadd<SDF:mode>4): Likewise. 19905 199062012-07-04 Uros Bizjak <ubizjak@gmail.com> 19907 19908 * expmed.c (expand_mult): Initialize coeff and is_neg. 19909 199102012-07-04 Oleg Endo <olegendo@gcc.gnu.org> 19911 19912 * config/sh/predicates.md (zero_extend_operand): New predicate. 19913 * config/sh/sh.md (zero_extendhisi2): Simplify by using new 19914 zero_extend_operand predicate. 19915 (zero_extendqisi2): Likewise. 19916 199172012-07-04 Uros Bizjak <ubizjak@gmail.com> 19918 19919 PR middle-end/53321 19920 * ipa.c (symtab_remove_unreachable_nodes): Partially revert r187375 19921 to not call cgraph_propagate_frequency if something was changed. 19922 199232012-07-04 Richard Guenther <rguenther@suse.de> 19924 19925 PR middle-end/53433 19926 * gimple-fold.c (get_base_constructor): Do not return an 19927 error_mark_node DECL_INITIAL. 19928 199292012-07-04 Richard Guenther <rguenther@suse.de> 19930 19931 PR tree-optimization/53844 19932 * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle 19933 the loop virtual PHI. 19934 199352012-07-04 Richard Guenther <rguenther@suse.de> 19936 19937 PR tree-optimization/53849 19938 * tree-cfg.c (move_stmt_op): Only call add_referenced_var 19939 for duplicated locals. Use add_referenced_var_1 to avoid 19940 pushing/popping cfun. 19941 199422012-07-04 Kai Tietz <ktietz@redhat.com> 19943 19944 * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function. 19945 * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add 19946 prototype. 19947 * config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define 19948 as i386_pe_reloc_rw_mask. 19949 199502012-07-04 Richard Guenther <rguenther@suse.de> 19951 19952 * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same 19953 as in free_lang_data_in_type. 19954 199552012-07-04 Tobias Grosser <tobias@grosser.es> 19956 Michael Matz <matz@suse.de> 19957 19958 * Makefile.in (OBJS): Add graphite-optimize-isl.o. 19959 (graphite-optimize-isl.o): Add dependencies. 19960 * common.opt (floop-nest-optimize): New flag. 19961 * doc/invoke.texi (floop-nest-optimize): Document. 19962 * graphite-dependences.c (compute_deps): Export. 19963 * graphite-poly.h (compute_deps): Declare. 19964 * graphite-optimize-isl.c: New file. 19965 * graphite-poly.c (apply_poly_transforms): Run the loop 19966 nest optimizer. 19967 * tree-ssa-loop.c (gate_graphite_transforms): Enable graphite 19968 if -floop-nest-optimize is enabled. 19969 199702012-07-03 Oleg Endo <olegendo@gcc.gnu.org> 19971 19972 * config/sh/predicates.md (logical_and_operand): New predicate. 19973 * config/sh/constraints.md (Jmb, Jmw): New constraints. 19974 * config/sh/sh.md (andsi3): Move expander above insns. Add handling 19975 of 0xFFFF constant. Use logical_and_operand predicate and 19976 satisfies_constraint_Jmb, satisfies_constraint_Jmw. 19977 (*andsi3_compact): Make it an insn_and_split. Use 19978 logical_and_operand predicate. Add Jmb,Jmw alternatives. 19979 199802012-07-03 Jason Merrill <jason@redhat.com> 19981 19982 PR c++/53826 19983 * tree.c (build_zero_cst): Handle NULLPTR_TYPE. 19984 199852012-07-03 Nick Clifton <nickc@redhat.com> 19986 19987 * config/mep/mep.c (mep_reorg_regmove): Use 19988 next_nonnote_non_debug_insn to advance to the next insn. Do not 19989 expect delete_insn to return an rtx. 19990 199912012-07-03 Richard Guenther <rguenther@suse.de> 19992 19993 * doc/install.texi (CLooG): Clarify how CLooG needs to be 19994 configured and that it needs to be built against ISL 0.10. 19995 199962012-07-03 Uros Bizjak <ubizjak@gmail.com> 19997 19998 * config/i386/i386.c (ix86_option_override_internal): Fix wrong 19999 code model string in the error message. 20000 200012012-07-03 Uros Bizjak <ubizjak@gmail.com> 20002 20003 PR target/53811 20004 * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies 20005 sibcall_insn_operand. Move it to a temporary register if not. 20006 200072012-07-03 Andreas Schwab <schwab@linux-m68k.org> 20008 20009 PR target/28896 20010 * config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx 20011 if !TARGET_68020. 20012 200132012-07-03 Uros Bizjak <ubizjak@gmail.com> 20014 20015 * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause. 20016 200172012-07-03 Roland McGrath <mcgrathr@google.com> 20018 20019 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the 20020 assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'. 20021 * configure: Regenerated. 20022 * config/i386/i386.md (simple_return_internal_long): Use %; 20023 (ctz<mode>2): Likewise. 20024 (*pause): Likewise. 20025 200262012-07-02 Oleg Endo <olegendo@gcc.gnu.org> 20027 20028 PR target/51244 20029 * config/sh/predicates.md (t_reg_operand, negt_reg_operand): New 20030 predicates. 20031 * config/sh/sh-protos.h (get_t_reg_rtx): New prototype. 20032 * config/sh/sh.c (get_t_reg_rtx): New function. Use it when invoking 20033 gen_branch_true and gen_branch_false. 20034 * config/sh/sh.md: Use get_t_reg_rtx when invoking gen_branch_true and 20035 gen_branch_false. 20036 (branch_true, branch_false): Use t_reg_operand predicate. 20037 (*branch_true, *branch_false): Delete. 20038 (movt): Use t_reg_operand predicate. 20039 (*negnegt): Use negt_reg_operand predicate and fold little and big 20040 endian variants. 20041 (*movtt): Use t_reg_operand and fold little and big endian variants. 20042 (*movt_qi): Delete. 20043 200442012-07-02 Steven Bosscher <steven@gcc.gnu.org> 20045 20046 * stmt.c (emit_case_bit_tests): Remove. 20047 (expand_case): Remove expand_switch_using_bit_tests_p code. 20048 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): New. 20049 (MAX_CASE_BIT_TESTS): Moved from stmt.c to here. 20050 (lshift_cheap_p): Likewise. 20051 (expand_switch_using_bit_tests_p): Likewise. 20052 (struct case_bit_test): Likewise. 20053 (case_bit_test_cmp): Likewise. 20054 (emit_case_bit_tests): New implementation for GIMPLE. 20055 (gen_inbound_check): Do not release post-dominator info here. 20056 (process_switch): Reorder code. Expand as bit tests if it 20057 looks like a win. 20058 (do_switchconv): Release post-dominator info here if something changed. 20059 (struct gimple_opt_pass): Verify more. 20060 * tree.h (expand_switch_using_bit_tests_p): Remove prototype. 20061 200622012-07-02 Martin Jambor <mjambor@suse.cz> 20063 20064 PR middle-end/38474 20065 * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a 20066 dynamic type change check. 20067 200682012-07-02 Richard Guenther <rguenther@suse.de> 20069 Michael Matz <matz@suse.de> 20070 Tobias Grosser <tobias@grosser.es> 20071 Sebastian Pop <sebpop@gmail.com> 20072 20073 * Makefile.in: Remove PPL flags in favor of ISL ones. 20074 (BACKENDLIBS): Remove PPL libs. 20075 (INCLUDES): Remove PPL includes in favor of ISL ones. 20076 (graphite-clast-to-gimple.o): Remove graphite-dependences.h and 20077 graphite-cloog-compat.h dependencies. 20078 (graphite-dependences.o): Likewise. 20079 (graphite-poly.o): Likewise. 20080 * configure.ac: Declare ISL vars instead of PPL ones. 20081 * configure: Regenerated. 20082 * doc/install.texi: Replace PPL requirement documentation with ISL one. 20083 * graphite-blocking.c: Remove PPL code, add ISL equivalent. 20084 * graphite-clast-to-gimple.c: Likewise. 20085 * graphite-dependences.c: Likewise. 20086 * graphite-interchange.c: Likewise. 20087 * graphite-poly.h: Likewise. 20088 * graphite-poly.c: Likewise. 20089 * graphite-sese-to-poly.c: Likewise. 20090 * graphite.c: Likewise. 20091 * graphite-scop-detection.c: Re-arrange includes. 20092 * graphite-cloog-util.c: Remove. 20093 * graphite-cloog-util.h: Likewise. 20094 * graphite-ppl.h: Likewise. 20095 * graphite-ppl.c: Likewise. 20096 * graphite-dependences.h: Likewise. 20097 200982012-07-02 Richard Guenther <rguenther@suse.de> 20099 20100 Merge from graphite branch 20101 2011-07-21 Tobias Grosser <tobias@grosser.es> 20102 20103 * Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o): 20104 Remove graphite-cloog-util.h. 20105 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop, 20106 build_iv_mapping, translate_clast_user, translate_clast, 20107 free_scattering, initialize_cloog_names, build_cloog_prog, 20108 create_params_index): Do not use old compatibility functions. 20109 (clast_name_to_index, set_cloog_options): Remove code for legacy cloog. 20110 * graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old 20111 compatibility functions. 20112 (new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy 20113 cloog. 20114 * graphite-cloog-util.h: Remove include of graphite-cloog-util.h. 20115 * graphite.c (graphite.c): Do not call outdated cloog_initialize() and 20116 cloog_finalize(). 20117 * graphite-cloog-compat.h: Remove. 20118 20119 2011-08-09 Tobias Grosser <tobias@grosser.es> 20120 20121 * graphite-clast-to-gimple.c (new_clast_name_index): Store a copy 20122 of the string, no just a reference. 20123 (clast_name_index): Add a new field, that specifies if we need to free 20124 the name. 20125 (free_clast_name_index): If necessary, free the name string. 20126 (clast_name_index_elt_info): Calculate the hash based on the string 20127 content, not the memory location it is stored in. 20128 (clast_name_to_level): Specify that we do not need to free the name. 20129 (clast_name_to_index): Dito. 20130 (clast_name_to_lb_ub): Dito. 20131 (eq_clast_name_indexes): Compare the strings, not their base pointers. 20132 (free_scattering): Removed. 20133 (initialize_cloog_names): Renamed to add_names_to_union_domain(). 20134 (add_names_to_union_domain): Changed to work on a union_domain, 20135 instead of a CloogNames structure. 20136 (build_cloog_prog): Removed. 20137 (build_cloog_union_domain): New. 20138 (generate_cloog_input): New. 20139 (scop_to_clast): Use CloogInput instead of CloogProgram. 20140 (print_generated_program): Adapt to new scop_to_clast() and do not 20141 print the CloogProgram any more. 20142 (create_params_index): Removed, functionality integrated in 20143 add_names_to_union_domain(). 20144 (gloog): Adapt to new scop_to_clast(). 20145 * graphite-clast-to-gimple.h (scop_to_clast): Remove. 20146 20147 2012-01-11 Tobias Grosser <tobias@grosser.es> 20148 20149 * graphite-clast-to-gimple.c (clast_name_to_index, 20150 clast_name_to_lb_ub, clast_name_to_gcc): Change types. 20151 (clast_to_gcc_expression): Add clast_expr_name as a new 20152 case. Do not assume a clast_expr_term points always to a 20153 clast_expr_name. 20154 (type_for_clast_term): Do not assume a clast_expr_term points always to 20155 a clast_expr_name. 20156 (type_for_clast_name): New. 20157 (type_for_clast_expr): Add clast_expr_name as a new case. 20158 20159 2011-08-03 Sebastian Pop <sebpop@gmail.com> 20160 20161 * graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron, 20162 new_Cloog_Scattering_from_ppl_Polyhedron, 20163 new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED. 20164 201652012-07-02 Jakub Jelinek <jakub@redhat.com> 20166 20167 PR tree-optimization/53645 20168 * tree-vect-generic.c (expand_vector_divmod): Use TYPE_MODE (type) 20169 instead of TYPE_MODE (wider_type) as can_vec_perm_p argument. 20170 201712012-07-01 Wei Guozhi <carrot@google.com> 20172 20173 PR target/53447 20174 * config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype. 20175 * config/arm/arm.c (const_ok_for_dimode_op): New function. 20176 * config/arm/constraints.md (Dd): New constraint. 20177 * config/arm/predicates.md (arm_adddi_operand): New predicate. 20178 * config/arm/arm.md (adddi3): Extend it to handle constants. 20179 (arm_adddi3): Likewise. 20180 (addsi3_carryin_<optab>): Extend it to handle sbc case. 20181 (addsi3_carryin_alt2_<optab>): Likewise. 20182 * config/arm/neon.md (adddi3_neon): Extend it to handle constants. 20183 201842012-06-30 Nathan Sidwell <nathan@acm.org> 20185 20186 * coverage.c (bbg_file_stamp): New. 20187 (read_counts_file): Merge incoming stamp with bbg_file_stamp. 20188 (build_info): Write bbg_file_stamp. 20189 (coverage_init): Initialize bbg_file_stamp. Read counts file 20190 before writing graph header. 20191 (coverage_finish): Don't unlink the data file if we can generate a 20192 unique file stamp. 20193 * tree.h (crc32_unsigned): Declare. 20194 * tree.c (crc32_unsigned_bits): New, broken out of ... 20195 (crc32_byte): ... here. Use it. 20196 (crc32_unsigned): New. 20197 201982012-06-29 Cary Coutant <ccoutant@google.com> 20199 20200 * dwarf2out.c (add_pubname_string): Don't check for want_pubnames. 20201 (gen_subprogram_die): Don't add pubname if want_pubnames is false. 20202 (gen_variable_die): Likewise. 20203 (gen_namespace_die): Likewise. 20204 202052012-06-29 Eric Botcazou <ebotcazou@adacore.com> 20206 20207 * tree-eh.c (lower_try_finally_switch): Really put the location of the 20208 last statement of the finally block onto the switch. 20209 202102012-06-29 H.J. Lu <hongjiu.lu@intel.com> 20211 20212 PR target/53539 20213 * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for 20214 TARGET_LP64. 20215 202162012-06-29 Sterling Augustine <saugustine@google.com> 20217 20218 * dwarf2out.c (add_pubname): Add comment. 20219 (add_pubtype): Fix indentation. 20220 (gen_enumeration_type_die): Likewise. 20221 202222012-06-29 Jakub Jelinek <jakub@redhat.com> 20223 20224 * tree-vect-generic.c (expand_vector_divmod): For even/odd 20225 widening multiply, put even always as first argument to VEC_PERM_EXPR. 20226 202272012-06-29 Richard Henderson <rth@redhat.com> 20228 20229 * tree-vect-generic.c: Include target.h. 20230 (expand_vector_divmod): Use builtin_mul_widen_even/odd if supported. 20231 * Makefile.in (tree-vect-generic.o): Update. 20232 202332012-06-29 Steven Bosscher <steven@gcc.gnu.org> 20234 20235 * configure.ac: Remove special gtfiles case for C. 20236 * configure: Regenerate. 20237 * Makefile.in: Remove C front-end hooks and build hooks that 20238 will be picked up from c/Make-lang.in now. 20239 Add tree-mudflap to C_COMMON_OBJS. 20240 * gengtype.c (files_rules): Adjust gt-files for c/c-decl.c. 20241 * config/vms/vms.c: Look for c-tree.h in c/. 20242 * doc/gty.texi: Remove reference to c-config-lang.in. 20243 * doc/sourcebuild.texi: Document the c/ subdirectory. 20244 202452012-06-29 Steven Bosscher <steven@gcc.gnu.org> 20246 20247 * system.h (CASE_USE_BIT_TESTS): Poison. 20248 * stmt.c (CASE_USE_BIT_TESTS): Fold away into its only user ... 20249 (expand_switch_using_bit_tests_p): ...here. 20250 * doc/tm.texi.in (CASE_USE_BIT_TESTS): Remove documentation. 20251 * doc/tm.texi (CASE_USE_BIT_TESTS): Regenerate. 20252 202532012-06-29 Steven Bosscher <steven@gcc.gnu.org> 20254 20255 * system.h (IFCVT_EXTRA_FIELDS): Poison. 20256 (IFCVT_INIT_EXTRA_FIELDS): Poison. 20257 * basic-block.h (struct ce_if_block): Remove IFCVT_EXTRA_FIELDS. 20258 * ifcvt.c (find_if_header): Use IFCVT_MACHDEP_INIT instead of 20259 IFCVT_INIT_EXTRA_FIELDS. 20260 * gengtype-parse.c (struct_field_seq): Remove obsolete comment. 20261 * config/frv/frv.h (IFCVT_INIT_EXTRA_FIELDS): Rename to 20262 IFCVT_MACHDEP_INIT. 20263 * config/frv/frv.c (frv_ifcvt_init_extra_fields): Rename to 20264 frv_ifcvt_machdep_init. 20265 * doc/tm.texi.in (IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS): 20266 Remove documentation. 20267 (IFCVT_MACHDEP_INIT): Document. 20268 * doc/tm.texi: Regenerate. 20269 202702012-06-29 Nick Clifton <nickc@redhat.com> 20271 20272 * config/lm32/lm32.c (lm32_compute_frame_size): Fix typo. 20273 202742012-06-29 Jakub Jelinek <jakub@redhat.com> 20275 20276 * tree-vect-stmts.c (vectorizable_operation): Check both 20277 VEC_WIDEN_MULT_LO_EXPR and VEC_WIDEN_MULT_HI_EXPR optabs. 20278 Verify that operand[0]'s mode is TYPE_MODE (wide_vectype). 20279 202802012-06-28 Richard Henderson <rth@redhat.com> 20281 20282 * doc/generic.texi (MULT_HIGHPART_EXPR): Document it. 20283 202842012-06-28 Jakub Jelinek <jakub@redhat.com> 20285 20286 PR tree-optimization/51581 20287 * tree-vect-stmts.c (permute_vec_elements): Add forward decl. 20288 (vectorizable_operation): Handle vectorization of MULT_HIGHPART_EXPR 20289 also using VEC_WIDEN_MULT_*_EXPR or builtin_mul_widen_* plus 20290 VEC_PERM_EXPR if vector MULT_HIGHPART_EXPR isn't supported. 20291 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use 20292 MULT_HIGHPART_EXPR instead of VEC_WIDEN_MULT_*_EXPR and shifts. 20293 20294 PR tree-optimization/53645 20295 * tree-vect-generic.c (expand_vector_divmod): Use MULT_HIGHPART_EXPR 20296 instead of VEC_WIDEN_MULT_{HI,LO}_EXPR followed by VEC_PERM_EXPR 20297 if possible. 20298 202992012-06-28 Georg-Johann Lay <avr@gjlay.de> 20300 20301 PR 53595 20302 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New. 20303 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New. 20304 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to 20305 avr_hard_regno_call_part_clobbered. 20306 203072012-06-28 Richard Guenther <rguenther@suse.de> 20308 20309 PR middle-end/53790 20310 * expr.c (expand_expr_real_1): Verify if the type is complete 20311 before inspecting its size. 20312 203132012-06-28 Andreas Schwab <schwab@linux-m68k.org> 20314 20315 * doc/include/gpl.texi: Remove. 20316 * doc/sourcebuild.texi (Texinfo Manuals): Don't mention gpl.texi. 20317 203182012-06-28 Jakub Jelinek <jakub@redhat.com> 20319 20320 PR tree-optimization/53645 20321 * tree-vect-generic.c (add_rshift): New function. 20322 (expand_vector_divmod): New function. 20323 (expand_vector_operation): Use it for vector integer 20324 TRUNC_{DIV,MOD}_EXPR by VECTOR_CST. 20325 * tree-vect-patterns.c (vect_recog_divmod_pattern): Replace 20326 unused lguup variable with dummy_int. 20327 203282012-06-28 OLivier Hainque <hainque@adacore.com> 20329 20330 * expr.c (convert_move): Latch mem integer inputs into a 20331 register before expanding a multi-instructions sequence. 20332 203332012-06-28 Alexandre Oliva <aoliva@redhat.com> 20334 Uros Bizjak <ubizjak@gmail.com> 20335 Jakub Jelinek <jakub@redhat.com> 20336 20337 PR debug/53706 20338 PR debug/47624 20339 * var-tracking.c (vt_emit_notes): Release loc_exp_dep_pool... 20340 (vt_finalize): ... here instead, if needed. 20341 203422012-06-28 Alexandre Oliva <aoliva@redhat.com> 20343 20344 PR debug/53740 20345 PR debug/52983 20346 PR debug/48866 20347 * dce.c (word_dce_process_block): Check whether inserting debug 20348 temps are needed even for needed insns. 20349 (dce_process_block): Likewise. 20350 * df-problems.c (dead_debug_add): Add comment about multi-regs. 20351 (dead_debug_insert_temp): Likewise. Don't subreg when we're 20352 setting fewer regs than a multi-reg requires. 20353 203542012-06-27 Richard Henderson <rth@redhat.com> 20355 20356 * config/alpha/alpha.c (alpha_dimode_u): New. 20357 (alpha_init_builtins): Initialize it, and use it. 20358 (alpha_fold_builtin_cmpbge): Use alpha_dimode_u. 20359 (alpha_fold_builtin_zapnot, alpha_fold_builtin_insxx): Likewise. 20360 (alpha_fold_vector_minmax, alpha_fold_builtin_perr): Likewise. 20361 (alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb): Likewise. 20362 (alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw): Likewise. 20363 (alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz): Likewise. 20364 (alpha_fold_builtin_ctpop): Likewise. 20365 (alpha_fold_builtin_umulh): Remove. 20366 (alpha_fold_builtin): Use MULT_HIGHPART_EXPR for UMULH; fix 20367 typo in MAX_ARGS check. 20368 203692012-06-27 Richard Henderson <rth@redhat.com> 20370 20371 * tree.def (MULT_HIGHPART_EXPR): New. 20372 * cfgexpand.c (expand_debug_expr): Ignore it. 20373 * expr.c (expand_expr_real_2): Handle it. 20374 * fold-const.c (int_const_binop_1): Likewise. 20375 * optabs.c (optab_for_tree_code): Likewise. 20376 * tree-cfg.c (verify_gimple_assign_binary): Likewise. 20377 * tree-inline.c (estimate_operator_cost): Likewise. 20378 * tree-pretty-print.c (dump_generic_node): Likewise. 20379 (op_code_prio, op_symbol_code): Likewise. 20380 * tree.c (commutative_tree_code): Likewise. Also handle 20381 WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR. 20382 203832012-06-27 Richard Henderson <rth@redhat.com> 20384 20385 PR target/53749 20386 * config/i386/i386.c (ix86_rtx_costs): Fix typo vs UNITS_PER_WORD 20387 in 2012-06-23 change. Adjust two other DImode tests as well. 20388 203892012-06-27 Nick Clifton <nickc@redhat.com> 20390 20391 * config/rx/rx.md (comparesi3_extend): Remove = modifier from 20392 input operand. 20393 203942012-06-27 Richard Guenther <rguenther@suse.de> 20395 20396 PR middle-end/53676 20397 * tree-chrec.c (chrec_convert_1): Represent truncation to 20398 a type with undefined overflow as truncation to an unsigned 20399 type converted to the type with undefined overflow. 20400 * tree-scalar-evolution.c (interpret_rhs_expr): For computing 20401 the scalar evolution of a truncated widened operation avoid 20402 looking at the non-existing evolution of the widened operation 20403 result. 20404 204052012-06-27 Richard Guenther <rguenther@suse.de> 20406 20407 PR tree-optimization/53774 20408 * tree-ssa-reassoc.c (get_rank): All default defs have 20409 precomputed rank. 20410 (init_reassoc): Precompute rank for all SSA default defs. 20411 204122012-06-27 Nick Clifton <nickc@redhat.com> 20413 20414 * config/rx/rx.md (simple_return): Use the simple_return rtx. 20415 204162012-06-26 Richard Henderson <rth@redhat.com> 20417 20418 * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p 20419 and don't fall thru from standard_80387_constant_p to the memory 20420 fallback. 20421 204222012-06-26 Richard Henderson <rth@redhat.com> 20423 20424 * config/i386/i386.c (bdesc_args): Update. Change 20425 IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2. 20426 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New. 20427 (ix86_builtin_mul_widen_even): Use it. 20428 (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2. 20429 (ix86_expand_mul_widen_evenodd): Handle signed for sse2. 20430 * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow 20431 for all SSE2. 20432 (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise. 20433 (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise. Relax from V124_AVX2. 20434 (vec_widen_smult_even_v4si): New. 20435 204362012-06-26 Richard Henderson <rth@redhat.com> 20437 20438 * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split 20439 to expander; move guts to ... 20440 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here. Add 20441 highparts before shifting up. 20442 * config/i386/i386-protos.h: Update. 20443 204442012-06-26 Steven Bosscher <steven@gcc.gnu.org> 20445 20446 * system.h (USE_COMMON_FOR_ONE_ONLY): Poison. 20447 * defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default. 20448 * config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define. 20449 204502012-06-26 Alexandre Oliva <aoliva@redhat.com> 20451 20452 * var-tracking.c (vt_add_function_parameter): Use a preserved 20453 VALUE for the MEM address of an incoming parameter. 20454 204552012-06-26 Sterling Augustine <saugustine@google.com> 20456 20457 * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator. 20458 (prune_unused_types): Likewise. 20459 204602012-06-26 Steven Bosscher <steven@gcc.gnu.org> 20461 20462 * system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, 20463 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison. 20464 * vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, 20465 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to 20466 VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP, 20467 VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP. 20468 * config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP, 20469 UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define. 20470 * doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the 20471 documentation. 20472 * doc/tm.texi: Regenerate. 20473 * doc/cpp.texi: Make example for #error generic. 20474 * config/frv/frv.h: Fix example text to match tm.texi. 20475 204762012-06-26 Bill Schmidt <wschmidt@linux.ibm.com> 20477 20478 * tree-pass.h (pass_strength_reduction): New decl. 20479 * tree-ssa-loop-ivopts.c (initialize_costs): Make non-static. 20480 (finalize_costs): Likewise. 20481 * timevar.def (TV_TREE_SLSR): New timevar. 20482 * gimple-ssa-strength-reduction.c: New. 20483 * tree-flow.h (initialize_costs): New decl. 20484 (finalize_costs): Likewise. 20485 * Makefile.in (tree-ssa-strength-reduction.o): New dependencies. 20486 * passes.c (init_optimization_passes): Add pass_strength_reduction. 20487 204882012-06-26 Matt Turner <mattst88@gmail.com> 20489 20490 * doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter. 20491 (__builtin_arm_tinsrh): Likewise. 20492 (__builtin_arm_tinsrw): Likewise. 20493 (__builtin_arm_wsadb): Add missing v2si parameter. 20494 (__builtin_arm_wsadh): Likewise. 20495 (__builtin_arm_getwcx): Delete. 20496 (__builtin_arm_setwcx): Delete. 20497 (__builtin_arm_getwcgr0): Add. 20498 (__builtin_arm_getwcgr1): Add. 20499 (__builtin_arm_getwcgr2): Add. 20500 (__builtin_arm_getwcgr3): Add. 20501 (__builtin_arm_setwcgr0): Add. 20502 (__builtin_arm_setwcgr1): Add. 20503 (__builtin_arm_setwcgr2): Add. 20504 (__builtin_arm_setwcgr3): Add. 20505 205062012-06-26 Richard Guenther <rguenther@suse.de> 20507 20508 Revert 20509 2012-06-21 Richard Guenther <rguenther@suse.de> 20510 20511 * tree-inline.c (estimate_num_insns): Estimate call cost for 20512 tailcalls properly. 20513 205142012-06-26 Steven Bosscher <steven@gcc.gnu.org> 20515 20516 PR other/33190 20517 * doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT. 20518 * doc/tm.texi: Regenerate. 20519 205202012-06-26 Steven Bosscher <steven@gcc.gnu.org> 20521 20522 PR other/33190 20523 * config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES. 20524 * config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P. 20525 * doc/tm.texi.in: Remove documentation for unused target macros 20526 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN, 20527 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE, 20528 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and 20529 TARGET_NARROW_VOLATILE_BITFIELDS. 20530 Document that MD_HANDLE_UNWABI is a macro in libgcc. 20531 * doc/tm.texi: Regenerate. 20532 * system.h: Poison target macros 20533 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN, 20534 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE, 20535 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and 20536 TARGET_NARROW_VOLATILE_BITFIELDS 20537 205382012-06-26 Jan Hubicka <jh@suse.cz> 20539 20540 PR lto/53572 20541 * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of 20542 used symbols. 20543 205442012-06-26 Dehao Chen <dehao@google.com> 20545 20546 * tree-inline.c: (expand_call_inline): Ensure that lexical block's 20547 source location is consistant with the call stmt. 20548 205492012-06-26 Ulrich Weigand <ulrich.weigand@linaro.org> 20550 20551 PR tree-optimization/53729 20552 PR tree-optimization/53636 20553 * tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to 20554 vect_verify_datarefs_alignment until after statements have 20555 been marked as relevant/irrelevant. 20556 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): 20557 Skip irrelevant statements. 20558 (vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P 20559 instead of STMT_VINFO_RELEVANT. 20560 (vect_get_data_access_cost): Do not check for supportable 20561 alignment before calling vect_get_load_cost/vect_get_store_cost. 20562 * tree-vect-stmts.c (vect_get_store_cost): Do not abort when 20563 handling unsupported alignment. 20564 (vect_get_load_cost): Likewise. 20565 205662012-06-25 Steven Bosscher <steven@gcc.gnu.org> 20567 20568 * config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP. 20569 Do not define JMP_BUF_SIZE. 20570 205712012-06-26 Jakub Jelinek <jakub@redhat.com> 20572 20573 PR tree-optimization/53748 20574 * tree-ssa-phiopt.c (conditional_replacement): Only optimize 20575 if arg0/arg1 have integral or pointer types. 20576 205772012-06-25 Richard Henderson <rth@redhat.com> 20578 20579 * config/i386/sse.md (sse2_sse4_1): Remove code attr. 20580 (<s>dot_prodv4si, <s>dot_prodv8si): Remove 20581 (sdot_prodv4si): New; handle only XOP. 20582 205832012-06-25 Richard Henderson <rth@redhat.com> 20584 20585 * config/i386/i386-builtin-types.def (V4UDI, V8USI): New. 20586 (V2UDI_FUNC_V4USI_V4USI): New. 20587 (V4UDI_FUNC_V8USI_V8USI): New. 20588 * config/i386/i386.c (ix86_expand_args_builtin): Handle them. 20589 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New. 20590 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New. 20591 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New. 20592 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New. 20593 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New. 20594 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New. 20595 (bdesc_args): Add them. 20596 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New. 20597 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New. 20598 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New. 20599 (ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh. 20600 * config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New. 20601 206022012-06-25 Richard Henderson <rth@redhat.com> 20603 20604 * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd. 20605 206062012-06-25 Richard Henderson <rth@redhat.com> 20607 20608 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost 20609 to V16QImode. 20610 (ix86_expand_vec_interleave): New. 20611 (ix86_expand_mul_widen_evenodd): New. 20612 (ix86_expand_mul_widen_hilo): New. 20613 (ix86_expand_sse2_mulv4si3): Use ix86_expand_mul_widen_evenodd. 20614 * config/i386/i386.md (u_bool) New code attr. 20615 * config/i386/predicates.md 20616 (nonimmediate_or_const_vector_operand): Remove. 20617 * config/i386/sse.md (mul<VI4_AVX2>3): Don't use it; don't test 20618 both AVX and SSE4_1. 20619 (vec_widen<s>mult_hi_<VI2_AVX2>): Remove. 20620 (vec_widen<s>mult_lo_<VI2_AVX2>): Remove. 20621 (vec_widen<s>mult_hi_v8si): Remove. 20622 (vec_widen<s>mult_lo_v8si): Remove. 20623 (vec_widen_smult_hi_v4si): Remove. 20624 (vec_widen_smult_lo_v4si): Remove. 20625 (vec_widen_umult_hi_v4si): Remove. 20626 (vec_widen_umult_lo_v4si): Remove. 20627 (vec_widen_<s>mult_hi_<VI124_AVX2>): New. 20628 (vec_widen_<s>mult_lo_<VI124_AVX2>): New. 20629 * config/i386/i386-protos.h: Update. 20630 206312012-06-25 Christophe Lyon <christophe.lyon@st.com> 20632 20633 * config/arm/neon.md (UNSPEC_VLD1_DUP): Remove. 20634 (neon_vld1_dup): Restrict to VQ operands. 20635 (neon_vld1_dupv2di): New, fixes vld1q_dup_s64. 20636 206372012-06-25 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 20638 James Greenhalgh <james.greenhalgh@arm.com> 20639 20640 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins. 20641 (TARGET_FMA): New macro. 20642 (TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise. 20643 (TARGET_ARM_ARCH): Likewise. 20644 (TARGET_ARM_ARCH_ISA_THUMB): Likewise. 20645 (TARGET_V6M, TARGET_V7M): Likewise. 20646 (TARGET_ARM_ARCH_PROFILE): Likewise. 20647 (TARGET_ARM_FEATURE_LDREX): Likewise. 20648 (TARGET_ARM_FP, TARGET_NEON_FP): Likewise. 20649 (ARM_MIN_ENUM_SIZE): Likewise. 20650 * config/arm/arm.c (arm_file_start): Refactor appropriately. 20651 (base_architecture): New enumeration. 20652 (arm_base_arch): New global variable. 20653 (processors): Add field base_arch. 20654 (ARM_ARCH, ARM_CORE): Adjust accordingly. 20655 (arm_option_override): Add initialization of arm_base_arch. 20656 * doc/cpp.texi (system-specific predefined macros.): Change. 20657 206582012-06-25 Jakub Jelinek <jakub@redhat.com> 20659 20660 PR target/53759 20661 * config/i386/sse.md (sse_loadlps): Use x m x constraints instead 20662 of x x x in the vmovlps load alternative. 20663 206642012-06-25 Richard Sandiford <rdsandiford@googlemail.com> 20665 20666 PR debug/53740 20667 * df.h (dead_debug_add): Remove third argument. 20668 * df-problems.c (dead_debug_add): Likewise. Use the REGNO of the 20669 REG that we want to replace instead. 20670 (dead_debug_insert_temp): Use the REGNO of the reg that we want 20671 to replace instead of DF_REF_REGNO. Require there to always be 20672 at least one such use. Check for cases where the same location 20673 has more than df_ref associated with it. 20674 (df_note_bb_compute): Remove third dead_debug_add argument. 20675 * dce.c (word_dce_process_block): Likewise. 20676 206772012-06-25 Steven Bosscher <steven@gcc.gnu.org> 20678 20679 * config/v850/v850.c: Remove redundant extern declarations for 20680 last_assemble_variable_decl and size_directive_output. 20681 20682 * doc/tm.texi.in: Document JMP_BUF_SIZE. 20683 * doc/tm.texi: Regenerate. 20684 * config/sparc/sparc.h (JMP_BUF_SIZE): Do not define. 20685 * config/pa/pa.h (JMP_BUF_SIZE): Likewise. 20686 * config/stormy16/stormy16.h: Likewise. 20687 20688 * config/picochip/picochip.c: Do not define DONT_USE_BUILTIN_SETJMP. 20689 20690 * doc/sourcebuild.texi: Add missing subdirectories. 20691 206922012-06-25 Tristan Gingold <gingold@adacore.com> 20693 20694 * config/i386/i386.h: Fix typo. 20695 206962012-06-25 Tristan Gingold <gingold@adacore.com> 20697 20698 * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ... 20699 (seh_cfa_adjust_cfa): ... that function. 20700 (seh_emit_stackalloc): Do not emit out of range values. 20701 * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE, 20702 UNSPEC_DEF_CFA constants. 20703 * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define. 20704 * config/i386/i386.c (ix86_frame_pointer_required): Required 20705 for very large frames on SEH target. 20706 (ix86_compute_frame_layout): Save area is before frame pointer 20707 on SEH target. Handle very large frames. 20708 (ix86_expand_prologue): Likewise. 20709 207102012-06-24 Steven Bosscher <steven@gcc.gnu.org> 20711 20712 * output.h: (current_function_is_leaf, 20713 current_function_sp_is_unchanging, 20714 current_function_uses_only_leaf_regs): Remove. 20715 * function.c (current_function_is_leaf, 20716 current_function_sp_is_unchanging, 20717 current_function_uses_only_leaf_regs): Remove. 20718 (rest_of_handle_check_leaf_regs): Set crtl->uses_only_leaf_regs 20719 instead of current_function_uses_only_leaf_regs. 20720 * function.h (struct rtl_data): New fields sp_is_unchanging, 20721 is_leaf, uses_only_leaf_regs. 20722 * resource.c (init_resource_info): Replace current_function_is_leaf, 20723 current_function_sp_is_unchanging, and 20724 current_function_uses_only_leaf_regs with new crtl fields. 20725 * sdbout.c (sdbout_symbol): Likewise. 20726 * df-core.c (rest_of_handle_df_initialize): Likewise. 20727 * ira.c (ira): Likewise. 20728 * final.c (final_start_function): Likewise. 20729 * reorg.c (fill_simple_delay_slots): Likewise. 20730 * regrename.c (check_new_reg_p): Likewise. 20731 * stack-ptr-mod.c (notice_stack_pointer_modification_1): Likewise. 20732 (notice_stack_pointer_modification): Likewise. 20733 * dbxout.c (dbxout_symbol): Likewise. 20734 (dbxout_parms): Likewise. 20735 * sel-sched.c (init_regs_for_mode): Likewise. 20736 * dwarf2out.c (dbx_reg_number): Likewise. 20737 (multiple_reg_loc_descriptor): Likewise. 20738 * config/i386/i386.c (ix86_frame_pointer_required): Likewise. 20739 (gen_pop): Likewise. 20740 (ix86_select_alt_pic_regnum): Likewise. 20741 (ix86_compute_frame_layout): Likewise. 20742 (ix86_finalize_stack_realign_flags): Likewise. 20743 (ix86_expand_epilogue): Likewise. 20744 * config/rs6000/rs6000.c (rs6000_stack_info): Likewise. 20745 * config/h8300/h8300.c (byte_reg): Likewise. 20746 * config/c6x/c6x.c (must_reload_pic_reg_p): Likewise. 20747 (c6x_save_reg): Likewise. 20748 (c6x_compute_frame_layout): Likewise. 20749 * config/pa/pa.c (pa_compute_frame_size): Likewise. 20750 (pa_output_function_prologue): Likewise. 20751 * config/stormy16/stormy16.c (struct xstormy16_stack_layout): Likewise. 20752 * config/sparc/sparc.md (attr "leaf_function"): Likewise. 20753 * config/sparc/sparc.c (sparc_initial_elimination_offset): Likewise. 20754 (sparc_expand_prologue): Likewise. 20755 (sparc_flat_expand_prologue): Likewise. 20756 (sparc_asm_function_prologue): Likewise. 20757 (sparc_output_mi_thunk): Likewise. 20758 (sparc_frame_pointer_required): Likewise. 20759 * config/epiphany/epiphany.c (epiphany_compute_function_type): 20760 Likewise. 20761 (epiphany_compute_frame_size): Likewise. 20762 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise. 20763 * config/cris/cris.c (cris_md_asm_clobbers): Likewise. 20764 (cris_frame_pointer_required): Likewise. 20765 * config/tilepro/tilepro.c (emit_sp_adjust): Likewise. 20766 (tilepro_current_function_is_leaf): Likewise. 20767 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Likewise. 20768 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise. 20769 * config/ia64/ia64.c (find_gr_spill): Likewise. 20770 (ia64_compute_frame_size): Likewise. 20771 (ia64_can_eliminate): Likewise. 20772 (ia64_initial_elimination_offset): Likewise. 20773 * config/m68k/m68k.c (m68k_save_reg): Likewise. 20774 (m68k_expand_epilogue): Likewise. 20775 * config/rx/rx.c (rx_get_stack_layout): Likewise. 20776 * config/tilegx/tilegx.c (tilegx_current_function_is_leaf): Likewise. 20777 * config/picochip/picochip.c (picochip_can_eliminate_link_sp_save): 20778 Likewise. 20779 (picochip_output_frame_debug): Likewise. 20780 * config/sh/sh.c (sh_media_register_for_return): Likewise. 20781 (sh_allocate_initial_value): Likewise. 20782 (sh_output_mi_thunk): Likewise. 20783 * config/microblaze/microblaze.c (microblaze_must_save_register): 20784 Likewise. 20785 (compute_frame_size): Likewise. 20786 (microblaze_initial_elimination_offset): Likewise. 20787 (microblaze_expand_prologue): Likewise. 20788 (microblaze_expand_epilogue): Likewise. 20789 * config/frv/frv.c (frv_expand_epilogue): Likewise. 20790 (frv_frame_pointer_required): Likewise. 20791 * config/spu/spu.c (get_pic_reg): Likewise. 20792 (direct_return): Likewise. 20793 (spu_expand_prologue): Likewise. 20794 (spu_expand_epilogue): Likewise. 20795 (spu_initial_elimination_offset): Likewise. 20796 * config/mips/mips.c (mips_global_pointer): Likewise. 20797 (mips_cfun_might_clobber_call_saved_reg_p): Likewise. 20798 (mips_compute_frame_info): Likewise. 20799 * config/mep/mep.c (mep_interrupt_saved_reg): Likewise. 20800 (mep_reload_pointer): Likewise. 20801 * config/rl78/rl78.c (need_to_save): Likewise. 20802 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise. 20803 * config/score/score.c (score_compute_frame_size): Likewise. 20804 (score_function_prologue): Likewise. 20805 * config/bfin/bfin.c (must_save_p): Likewise. 20806 (expand_prologue_reg_save): Likewise. 20807 (expand_epilogue_reg_restore): Likewise. 20808 (bfin_frame_pointer_required): Likewise. 20809 (n_regs_saved_by_prologue): Likewise. 20810 (add_to_reg): Likewise. 20811 (expand_interrupt_handler_prologue): Likewise. 20812 (expand_interrupt_handler_epilogue): Likewise. 20813 (bfin_expand_prologue): Likewise. 20814 * config/avr/avr.c (avr_regs_to_save): Likewise. 20815 (avr_prologue_setup_frame): Likewise. 20816 (expand_epilogue): Likewise. 20817 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise. 20818 (s390_register_info): Likewise. 20819 (s390_frame_info): Likewise. 20820 (s390_init_frame_layout): Likewise. 20821 (s390_emit_prologue): Likewise. 20822 20823 208242012-06-24 Steven Bosscher <steven@gcc.gnu.org> 20825 20826 * system.h: Poison ASM_BYTE_OP and ASM_OUTPUT_BYTE. 20827 * vmsdbgout: Do not undefine it if defined. 20828 Rename local ASM_BYTE_OP definition to VMS_ASM_BYTE_OP. 20829 * config/microblaze/microblaze/h: Do no define ASM_BYTE_OP. 20830 * config/mep/mep.h: Do not define ASM_OUTPUT_BYTE. 20831 208322012-06-24 Richard Sandiford <rdsandiford@googlemail.com> 20833 20834 * config/mips/mips.c (mips_process_sync_loop): Add missing enum cast. 20835 208362012-06-23 Richard Henderson <rth@redhat.com> 20837 20838 PR target/53749 20839 * config/i386/i386.c (ix86_rtx_costs): Add reasonable costs for 20840 V*QImode shifts and multiply. 20841 (ix86_expand_vecop_qihi): Support shifts. 20842 * config/i386/i386.md (any_shift): New code iterator. 20843 * config/i386/sse.md (ashlv16qi3): Merge ... 20844 (<any_shiftrt>v16qi3): ... into ... 20845 (<any_shift><VI1_AVX2>3): ... here. Use ix86_expand_vecop_qihi 20846 to support SSE and AVX. 20847 20848 * config/i386/i386.c (ix86_expand_sse_unpack): Split operands[] 20849 parameter into src and dest. 20850 * config/i386/sse.md (vec_unpacku_hi_<V124_AVX2>): Update call. 20851 (vec_unpacks_hi_<V124_AVX2>): Likewise. 20852 (vec_unpacku_lo_<V124_AVX2>): Likewise. 20853 (vec_unpacks_lo_<V124_AVX2>): Likewise. 20854 * config/i386/i386-protos.h: Update. 20855 20856 * config/i386/sse.md (mul<VI1_AVX2>3): Change from insn_and_split to 20857 pure expander; move expansion code ... 20858 * config/i386/i386.c (ix86_expand_vecop_qihi): ... here. New function. 20859 * config/i386/i386-protos.h: Update. 20860 208612012-06-22 Edmar Wienskoski <edmar@freescale.com> 20862 20863 * config/rs6000/rs6000.md (define_attr "type"): New type popcnt. 20864 (popcntb<mode>2): Add attribute type popcnt. 20865 (popcntd<mode>2): Ditto. 20866 * config/rs6000/power4.md (define_insn_reservation): Add type popcnt. 20867 * config/rs6000/power5.md (define_insn_reservation): Ditto. 20868 * config/rs6000/power7.md (define_insn_reservation): Ditto. 20869 * config/rs6000/476.md (define_insn_reservation): Ditto. 20870 * config/rs6000/power6.md (define_insn_reservation): New 20871 reservation for popcnt instructions. 20872 208732012-06-22 H.J. Lu <hongjiu.lu@intel.com> 20874 20875 * doc/invoke.texi: Update -mpreferred-stack-boundary=3 warning. 20876 208772012-06-22 H.J. Lu <hongjiu.lu@intel.com> 20878 20879 PR target/53383 20880 * doc/invoke.texi: Add a warning for -mpreferred-stack-boundary=3. 20881 * config/i386/i386.c (ix86_option_override_internal): Allow 20882 -mpreferred-stack-boundary=3 for 64-bit if SSE is disabled. 20883 * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to 64 for 64-bit 20884 if SSE is disabled. 20885 208862012-06-22 Bill Schmidt <wschmidt@linux.ibm.com> 20887 20888 * double-int.c (double_int_multiple_of): New function. 20889 * double-int.h (double_int_multiple_of): New decl. 20890 * tree-ssa-loop-ivopts.c (add_cost, zero_cost): Remove undefs. 20891 (mbc_entry_hash): New forward decl. 20892 (mbc_entry_eq): Likewise. 20893 (zero_cost): Change to no_cost. 20894 (mult_costs): New static var. 20895 (cost_tables_exist): Likewise. 20896 (initialize_costs): New function. 20897 (finalize_costs): Likewise. 20898 (tree_ssa_iv_optimize_init): Call initialize_costs. 20899 (add_cost): Change to add_regs_cost; distinguish costs by speed. 20900 (multiply_regs_cost): New function. 20901 (add_const_cost): Likewise. 20902 (extend_or_trunc_reg_cost): Likewise. 20903 (negate_reg_cost): Likewise. 20904 (multiply_by_cost): Change to multiply_by_const_cost; distinguish 20905 costs by speed. 20906 (get_address_cost): Change add_cost to add_regs_cost; change 20907 multiply_by_cost to multiply_by_const_cost. 20908 (force_expr_to_var_cost): Change zero_cost to no_cost; change 20909 add_cost to add_regs_cost; change multiply_by_cost to 20910 multiply_by_const_cost. 20911 (split_cost): Change zero_cost to no_cost. 20912 (ptr_difference_cost): Likewise. 20913 (difference_cost): Change zero_cost to no_cost; change multiply_by_cost 20914 to multiply_by_const_cost. 20915 (get_computation_cost_at): Change add_cost to add_regs_cost; change 20916 multiply_by_cost to multiply_by_const_cost. 20917 (determine_use_iv_cost_generic): Change zero_cost to no_cost. 20918 (determine_iv_cost): Change add_cost to add_regs_cost. 20919 (iv_ca_new): Change zero_cost to no_cost. 20920 (tree_ssa_iv_optimize_finalize): Call finalize_costs. 20921 * tree-ssa-address.c (most_expensive_mult_to_index): Change 20922 multiply_by_cost to multiply_by_const_cost. 20923 * tree-flow.h (multiply_by_cost): Change to multiply_by_const_cost. 20924 (add_regs_cost): New decl. 20925 (multiply_regs_cost): Likewise. 20926 (add_const_cost): Likewise. 20927 (extend_or_trunc_reg_cost): Likewise. 20928 (negate_reg_cost): Likewise. 20929 209302012-06-22 Richard Guenther <rguenther@suse.de> 20931 20932 Merge from graphite branch 20933 2011-08-10 Sebastian Pop <sebpop@gmail.com> 20934 20935 * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak. 20936 20937 2012-01-13 Tobias Grosser <tobias@grosser.es> 20938 20939 * tree-flow.h (parallelized_function_p): Declare. 20940 * tree-parloops.c (parallelized_function_p): Export. 20941 * graphite.c (graphite_transform_loops): Do not run graphite on 20942 already parallel functions. 20943 209442012-06-22 Alan Modra <amodra@gmail.com> 20945 20946 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and 20947 return mem. Convert to indirect addressing if not indirect or 20948 indexed. Adjust all callers. 20949 209502012-06-22 Richard Guenther <rguenther@suse.de> 20951 20952 * gcov-iov.c: Include bconfig.h and system.h. 20953 209542012-06-22 Andreas Schwab <schwab@linux-m68k.org> 20955 20956 * doc/include/texinfo.tex: Update to version 2012-06-05.14. 20957 209582012-06-22 Richard Guenther <rguenther@suse.de> 20959 20960 PR gcov-profile/53744 20961 * gcov-iov.c (main): Treat "" and "prerelease" the same. 20962 209632012-06-22 Eric Botcazou <ebotcazou@adacore.com> 20964 20965 PR debug/53704 20966 * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Fortran90 as language 20967 for GNU Fortran if in strict DWARF2 mode. 20968 209692012-06-22 Eric Botcazou <ebotcazou@adacore.com> 20970 20971 * tree-ssa-live.c (remove_unused_scope_block_p): Remove again 20972 DECL_IGNORED_P non-reg vars even if they are used. 20973 209742012-06-21 Alexandre Oliva <aoliva@redhat.com> 20975 20976 PR debug/53671 20977 PR debug/49888 20978 * var-tracking.c (vt_get_canonicalize_base): New. 20979 (vt_canonicalize_addr, vt_stack_offset_p): New. 20980 (vt_canon_true_dep): New. 20981 (drop_overlapping_mem_locs): Use vt_canon_true_dep. 20982 (clobber_overlaping_mems): Use vt_canonicalize_addr. 20983 209842012-06-21 Alexandre Oliva <aoliva@redhat.com> 20985 20986 PR debug/53671 20987 PR debug/49888 20988 * var-tracking.c (vt_initialize): Record initial offset between 20989 arg pointer and stack pointer. 20990 209912012-06-21 Alexandre Oliva <aoliva@redhat.com> 20992 20993 PR debug/53671 20994 PR debug/49888 20995 * var-tracking.c (vt_init_cfa_base): Drop redundant recording of 20996 CFA base. 20997 209982012-06-21 Alexandre Oliva <aoliva@redhat.com> 20999 21000 PR debug/53671 21001 PR debug/49888 21002 * alias.c (memrefs_conflict_p): Improve handling of AND for alignment. 21003 210042012-06-21 Alexandre Oliva <aoliva@redhat.com> 21005 21006 * ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug. 21007 210082012-06-21 Alexandre Oliva <aoliva@redhat.com> 21009 21010 PR debug/53682 21011 * cselib.c (promote_debug_loc): Don't crash on NULL argument. 21012 210132012-06-21 Meador Inge <meadori@codesourcery.com> 21014 21015 PR c/53702 21016 * c-decl.c (c_push_function_context): Restore the behavior to reuse 21017 the language function allocated for -Wunused-local-typedefs. 21018 (c_pop_function_context): If necessary, clear the language function 21019 created in c_push_function_context. Always clear out the 21020 x_cur_stmt_list field of the restored language function. 21021 210222012-06-21 Sterling Augustine <saugustine@google.com> 21023 Cary Coutant <ccoutant@google.com> 21024 21025 * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die, 21026 add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions. 21027 (comdat_type_struct): New field 'skeleton_die'. 21028 (breakout_comdat_types): Update it. 21029 (add_pubname): Rework logic. Call is_class_die, is_cu_die and 21030 is_namespace_die. Fix minor style violation. Call want_pubnames. 21031 (add_pubname_string): Call want_pubnames. 21032 (add_pubtype): Rework logic for calculating type name. Call 21033 is_namespace_die. Call want_pubnames. 21034 (output_pubnames): Move conditional logic deciding when to produce the 21035 section from dwarf2out_finish. Use new skeleton_die field. 21036 (base_type_die): Call add_pubtype. 21037 (gen_enumeration_type_die): Unconditionally call add_pubtype. 21038 (gen_subprogram_die): Adjust calls to add_pubname. 21039 (gen_namespace_die): Call add_pubname_string. 21040 (dwarf2out_finish): Call add_AT_pubnames; Move logic on when to 21041 produce pubnames and pubtypes sections to output_pubnames. 21042 * common.opt (-gpubnames): New option. 21043 * doc/invoke.texi: Document it. 21044 210452012-06-21 Steven Bosscher <steven@gcc.gnu.org> 21046 21047 * config/m32c/m32c-pragma.c: Remove unnecessary includes. 21048 210492012-06-21 Michael Matz <matz@suse.de> 21050 21051 PR middle-end/53688 21052 * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF 21053 with correct size. 21054 210552012-06-21 Richard Guenther <rguenther@suse.de> 21056 21057 * tree-inline.c (estimate_num_insns): Estimate call cost for 21058 tailcalls properly. 21059 210602012-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de> 21061 21062 * tree.h (DECL_SOURCE_COLUMN): New accessor. 21063 210642012-06-20 Uros Bizjak <ubizjak@gmail.com> 21065 21066 * config/i386/i386.md (SINCOS): New int iterator. 21067 (sincos): New int attribute. 21068 (*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using 21069 SINCOS int iterator. 21070 (*<sincos>_extend<mode>xf2_i387): Macroize insn from 21071 *{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator. 21072 210732012-06-20 Uros Bizjak <ubizjak@gmail.com> 21074 21075 * config/i386/i386.md (RDFSGSBASE): New int iterator. 21076 (WRFSGSBASE): Ditto. 21077 (fsgs): New int attribute. 21078 (rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using 21079 RDFSGSBASE int iterator. 21080 (wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using 21081 WRFSGSBASE int iterator. 21082 210832012-06-20 Uros Bizjak <ubizjak@gmail.com> 21084 21085 * config/i386/i386.md (<rounding_insn><mode>2): Macroize expander 21086 from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator. 21087 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander 21088 from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING 21089 int iterator. 21090 210912012-06-20 Steven Bosscher <steven@gcc.gnu.org> 21092 21093 * system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP. 21094 210952012-06-20 Richard Guenther <rguenther@suse.de> 21096 21097 PR tree-optimization/30318 21098 * tree-vrp.c (range_int_cst_p): Do not reject overflowed 21099 constants here. 21100 (range_int_cst_singleton_p): But explicitely here. 21101 (zero_nonzero_bits_from_vr): And here. 21102 (extract_range_from_binary_expr_1): Re-implement PLUS_EXPR 21103 to cover all cases we can perform arbitrary precision 21104 arithmetic with double-ints. 21105 (intersect_ranges): Handle adjacent anti-ranges. 21106 211072012-06-20 Uros Bizjak <ubizjak@gmail.com> 21108 21109 * config/i386/i386.md (rounding_insn): New int attribute. 21110 (<rounding_insn>xf2): Macroize insn from 21111 {floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator. 21112 (l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2. 21113 211142012-06-20 Uros Bizjak <ubizjak@gmail.com> 21115 21116 * config/i386/i386.md (IEEE_MAXMIN): New int iterator. 21117 (ieee_maxmin): New int attribute. 21118 (*ieee_s<ieee_maxmin><mode>3): Macroize insn from 21119 *ieee_s{max,min}<mode>3 using IEEE_MAXMIN int iterator. 21120 211212012-06-20 Steven Bosscher <steven@gcc.gnu.org> 21122 21123 * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove. 21124 * config/arm/arm.c: Do not include c-pragma.h. 21125 (arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE. 21126 (arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls 21127 to arm_emit_eabi_attribute. 21128 * arm-c.c: Do not include output.h. 21129 (arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a 21130 call to arm_emit_eabi_attribute. 21131 * config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it. 21132 211332012-06-20 Richard Guenther <rguenther@suse.de> 21134 21135 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): 21136 Allow adjusting alignment of user-aligned decls again. 21137 211382012-06-20 Steven Bosscher <steven@gcc.gnu.org> 21139 21140 * config/rl78/rl78-c.c: Remove unnecessary includes. 21141 211422012-06-20 Steven Bosscher <steven@gcc.gnu.org> 21143 21144 * config/cris/cris.c: Include cgraph.h. 21145 (cris_option_override): Do not set non-existing flag_no_gcc_ident. 21146 211472012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com> 21148 21149 * emit-rtl.c (need_atomic_barrier_p): New function. 21150 * emit-rtl.h (need_atomic_barrier_p): Declare it. 21151 * config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it. 21152 * config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it. 21153 * config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it. 21154 * config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove. 21155 (mips_process_sync_loop): Use generic version instead. 21156 211572012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com> 21158 21159 * config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if 21160 it is used. 21161 211622012-06-19 Tom de Vries <vries@codesourcery.com> 21163 Maxim Kuvyrkov <maxim@codesourcery.com> 21164 21165 * config/mips/constraints.md (ZR): New constraint. 21166 * config/mips/predicates.md (mem_noofs_operand): New predicate. 21167 * config/mips/mips.c (mips_print_operand): Handle new print modifier. 21168 * config/mips/mips.h (TARGET_XLP): Define. 21169 (TARGET_SYNC_AFTER_SC): Update. 21170 (ISA_HAS_SWAP, ISA_HAS_LDADD): Define. 21171 * config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use 21172 XLP-specific swap and ldadd patterns. 21173 (atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns. 21174 211752012-06-19 Tom de Vries <vries@codesourcery.com> 21176 Maxim Kuvyrkov <maxim@codesourcery.com> 21177 21178 * config/mips/mips.c (mips_emit_pre_atomic_barrier_p,) 21179 (mips_emit_post_atomic_barrier_p): New static functions. 21180 (mips_process_sync_loop): Use them. Emit sync memory barriers in 21181 accordance with memory model semantics. Add return of CMP result for 21182 compare_and_swap. 21183 * config/mips/mips.md: Update comment. 21184 (sync_cmp): New attribute. 21185 (sync_memmodel): New attribute replacing sync_release_barrier. 21186 * config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,) 21187 (UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants. 21188 (sync_lock_test_and_set, test_and_set_12): Update. 21189 (atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,) 21190 (atomic_fetch_add, atomic_fetch_add_llsc): New patterns. 21191 211922012-06-19 Joseph Myers <joseph@codesourcery.com> 21193 21194 * config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to 21195 mov_si<mode>_e500_subreg0. 21196 (*mov_si<mode>_e500_subreg0_elf_low) 21197 (*mov_si<mode>_e500_subreg4_elf_low): New patterns. 21198 211992012-06-19 Richard Henderson <rth@redhat.com> 21200 21201 * config/alpha/alpha.c: Include params.h. 21202 (alpha_option_override): Initialize PARAM_L1_CACHE_LINE_SIZE, 21203 PARAM_L1_CACHE_SIZE, PARAM_L2_CACHE_SIZE for the cpu tuning. 21204 212052012-06-19 Steven Bosscher <steven@gcc.gnu.org> 21206 21207 * doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE, 21208 TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks. 21209 (ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE): 21210 Remove. 21211 * doc/tm.texi: Regenerate. 21212 * config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for 21213 .objc_class_name_*. 21214 * config/darwin-c.c: Include target.h. 21215 (darwin_objc_declare_unresolved_class_reference): New function. 21216 (darwin_objc_declare_class_definition): New function. 21217 (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define. 21218 (TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define. 21219 212202012-06-19 Steven Bosscher <steven@gcc.gnu.org> 21221 21222 * target.def (output_ident): New hook. 21223 * targhooks.h (default_asm_output_ident_directive): Add prototype. 21224 * varasm.c (assemble_asm): Only prefix a tab if the string does not 21225 already start with one. 21226 (default_asm_output_ident_directive): New function to emit 21227 .ident as a top-level asm node while parsing, or directly to 21228 asm_out_file after parsing. 21229 * toplev.c (compile_file): Print a GCC .ident with 21230 targetm.asm_out.output_ident. 21231 * doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro. 21232 (TARGET_ASM_OUTPUT_IDENT): Add @hook for this. 21233 * doc/tm.texi: Update. 21234 21235 * config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove. 21236 (TARGET_ASM_OUTPUT_IDENT): Define. 21237 * config/i386/djgpp.h (IDENT_ASM_OP): Remove. 21238 * config/i386/gas.h (ASM_OUTPUT_IDENT): Remove. 21239 * config/arm/aout.h (ASM_OUTPUT_IDENT): Remove. 21240 * config/sparc/sparc.h (IDENT_ASM_OP): Remove. 21241 (TARGET_ASM_OUTPUT_IDENT): Define. 21242 * config/picochip/picochip.h (IDENT_ASM_OP): Remove. 21243 (TARGET_ASM_OUTPUT_IDENT): Define. 21244 21245 * config/cris/cris-protos.h (cris_asm_output_ident): Add prototype. 21246 * config/cris/cris.c (cris_asm_output_ident): New function. 21247 * config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove. 21248 21249 * config/microblaze/microblaze-protos.h (microblaze_asm_output_ident): 21250 Add prototype. 21251 * config/microblaze/microblaze.c: Include cgraph.h for add_asm_node. 21252 (microblaze_asm_output_ident): Rewrite to work similar to 21253 default_asm_output_ident_directive for front-end .idents. 21254 * config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove. 21255 (TARGET_ASM_OUTPUT_IDENT): Define. 21256 21257 * config/mips/mips.h (ASM_OUTPUT_IDENT): Remove. 21258 * config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove. 21259 21260 * config/rx/rx.c: Include cgraph.h for add_asm_node. 21261 (rx_asm_output_ident): New function, similar to 21262 default_asm_output_ident_directive, but handle AS100 syntax also, so 21263 that #ident also works for rx in AS100 syntax. 21264 (TARGET_ASM_OUTPUT_IDENT): Define. 21265 * config/rx/rx.h (IDENT_ASM_OP): Remove. 21266 21267 * Makefile.in: Fix dependencies for c-family/c-lex.o. 21268 212692012-06-19 Uros Bizjak <ubizjak@gmail.com> 21270 21271 * config/i386/i386.md (FIST_ROUNDING): New int iterator. 21272 (rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}. 21273 (ROUNDING): Ditto. 21274 (*fist<mode>2_<rounding>_1): Macroize insn from 21275 *fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator. 21276 (fistdi2_<rounding>): Macroize insn from 21277 fistdi2_{floor,ceil} using FIST_ROUNDING int iterator. 21278 (fistdi2_<rounding>_with_temp and splitters): Macroize insn and 21279 corresponding splitters from fistdi2_{floor,ceil} and corresponding 21280 splitters using FIST_ROUNDING int iterator. 21281 (fist<mode>2_<rounding>): Macroize insn from 21282 fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator. 21283 (fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and 21284 corresponding splitters from fist<mode>2_{floor,ceil} and corresponding 21285 splitters using FIST_ROUNDING int iterator. 21286 (l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2 21287 using FIST_ROUNDING int iterator. 21288 212892012-06-19 Richard Henderson <rth@redhat.com> 21290 21291 * config/i386/i386-protos.h (ix86_expand_sse2_mulv4si3): Declare. 21292 * config/i386/i386.c (ix86_expand_sse2_mulv4si3): New. 21293 * config/i386/predicates.md (nonimmediate_or_const_vector_operand): New. 21294 * config/i386/sse.md (sse2_mulv4si3): Delete. 21295 (mul<VI4_AVX2>3): Use ix86_expand_sse2_mulv4si3 and 21296 nonimmediate_or_const_vector_operand. 21297 212982012-06-19 Richard Henderson <rth@redhat.com> 21299 21300 * expmed.c (struct init_expmed_rtl): Split ... 21301 (init_expmed_one_mode): ... out of ... 21302 (init_expmed): ... here. Initialize integer vector modes also. 21303 (synth_mult): Handle integer vector modes. 21304 (choose_mult_variant): Likewise. 21305 (expand_mult_const): Likewise. 21306 (expand_mult): Likewise. 21307 * machmode.h (GET_MODE_UNIT_BITSIZE): New. 21308 213092012-06-19 Richard Henderson <rth@redhat.com> 21310 21311 * config/i386/i386.c (ix86_rtx_costs): Handle CONST_VECTOR, and 21312 integral vector modes. 21313 213142012-06-19 Uros Bizjak <ubizjak@gmail.com> 21315 21316 * config/i386/i386.md (FRNDINT_ROUNDING): New int iterator. 21317 (rounding): New int attribute. 21318 (ROUNDING): Ditto. 21319 (frndintxf2_<rounding>): Macroize insn from 21320 frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator. 21321 (frndintxf2_<rounding>_i387): Macroize insn from 21322 frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator. 21323 213242012-06-19 Richard Guenther <rguenther@suse.de> 21325 21326 * tree-vrp.c (union_ranges): New function. 21327 (vrp_meet_1): Use union_ranges. 21328 (vrp_meet): Dump what we union and call vrp_meet_1. 21329 213302012-06-19 Richard Earnshaw <rearnsha@arm.com> 21331 21332 * arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS. 21333 (attr type): Remove fmul, ffmul, farith, ffarith, float_em 21334 f_fpa_load, f_fpa_store, f_mem_r, r_mem_f. 21335 (attr write_conflict, attr core_cycles): Update. 21336 * arm-generic.md (r_mem_f_wbuf): Delete reservation. 21337 213382012-06-19 Richard Guenther <rguenther@suse.de> 21339 21340 * tree-vrp.c (intersect_ranges): Handle more cases. 21341 (vrp_intersect_ranges): Dump what we intersect and call ... 21342 (vrp_intersect_ranges_1): ... this. 21343 213442012-06-19 Richard Guenther <rguenther@suse.de> 21345 21346 PR tree-optimization/53708 21347 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve 21348 user-supplied alignment and alignment of decls with the used 21349 attribute. 21350 213512012-06-18 Lawrence Crowl <crowl@google.com> 21352 21353 * timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM. 21354 (TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN. 21355 (TV_PHASE_STREAM_IN): New. 21356 (TV_PHASE_STREAM_OUT): New. 21357 * timevar.c (validate_phases): New. 21358 (timevar_print): Call validate_phases. 21359 * c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH 21360 to TV_PHASE_OPT_GEN. 21361 * langhooks.c (write_global_declarations): Rename use of 21362 TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Use TV_PHASE_DBGINFO instead of 21363 TV_PHASE_CHECK_DBGINFO. 21364 * toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to 21365 TV_PHASE_LATE_ASM. Move start of TV_PHASE_LATE_ASM to after call to 21366 lang_hooks.decls.final_write_globals. 21367 213682012-06-18 David Edelshn <dje.gcc@gmail.com> 21369 21370 * config/rs6000/aix52.h (TARGET_EXTRA_BUILTINS): Define as 0. 21371 213722012-06-18 Uros Bizjak <ubizjak@gmail.com> 21373 21374 PR target/53712 21375 * config/i386/sse.md (*sse4_2_pcmpestr_unaligned): New. 21376 (*sse4_2_pcmpistr_unaligned): New. 21377 213782012-06-18 Ian Bolton <ian.bolton@arm.com> 21379 Sameera Deshpande <sameera.deshpande@arm.com> 21380 Greta Yorsh <greta.yorsh@arm.com> 21381 21382 * config/arm/arm-protos.h (arm_output_epilogue): Remove. 21383 * config/arm/arm.c (print_multi_reg): Remove. 21384 (vfp_output_fldmd): Likewise. 21385 (arm_output_epilogue): Likewise. 21386 * config/arm/arm.md (epilogue_insns): Update condition and code. 21387 213882012-06-18 Ian Bolton <ian.bolton@arm.com> 21389 Sameera Deshpande <sameera.deshpande@arm.com> 21390 Greta Yorsh <greta.yorsh@arm.com> 21391 21392 * config/arm/arm-protos.h (thumb2_expand_return): New declaration. 21393 * config/arm/arm.c (thumb2_expand_return): New function. 21394 * config/arm/arm.md (return): Update condition and code. 21395 213962012-06-18 Ian Bolton <ian.bolton@arm.com> 21397 Sameera Deshpande <sameera.deshpande@arm.com> 21398 Greta Yorsh <greta.yorsh@arm.com> 21399 21400 * config/arm/arm-protos.h (output_return_instruction): New parameter 21401 and int to bool change of parameter types. 21402 * config/arm/arm.c (output_return_instruction): Likewise. 21403 * config/arm/arm.md (arm_simple_return): New pattern. 21404 (arm_return, cond_return, cond_return_inverted): Add new arguments. 21405 * config/arm/thumb2.md (thumb2_return): Update condition and code. 21406 214072012-06-18 Ian Bolton <ian.bolton@arm.com> 21408 Sameera Deshpande <sameera.deshpande@arm.com> 21409 Greta Yorsh <greta.yorsh@arm.com> 21410 21411 * config/arm/arm-protos.h (arm_expand_epilogue): New declaration. 21412 * config/arm/arm.c (arm_expand_epilogue): New function. 21413 * config/arm/arm.md (epilogue): Update condition and code. 21414 (sibcall_epilogue): Likewise. 21415 214162012-06-18 Ian Bolton <ian.bolton@arm.com> 21417 Sameera Deshpande <sameera.deshpande@arm.com> 21418 Greta Yorsh <greta.yorsh@arm.com> 21419 21420 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function. 21421 * config/arm/arm.md (arm_addsi3) Add an alternative. 21422 214232012-06-18 Ian Bolton <ian.bolton@arm.com> 21424 Sameera Deshpande <sameera.deshpande@arm.com> 21425 Greta Yorsh <greta.yorsh@arm.com> 21426 21427 * config/arm/arm.md (vfp_pop_multiple_with_writeback) New define_insn. 21428 * config/arm/predicates.md (pop_multiple_fp) New special predicate. 21429 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function. 21430 214312012-06-18 Ian Bolton <ian.bolton@arm.com> 21432 Sameera Deshpande <sameera.deshpande@arm.com> 21433 Greta Yorsh <greta.yorsh@arm.com> 21434 21435 * config/arm/arm.md (load_multiple_with_writeback) New define_insn. 21436 (load_multiple, pop_multiple_with_writeback_and_return) Likewise. 21437 (pop_multiple_with_return, ldr_with_return) Likewise. 21438 * config/arm/predicates.md (pop_multiple_return) New special predicate. 21439 * config/arm/arm-protos.h (arm_output_multireg_pop) New declaration. 21440 * config/arm/arm.c (arm_output_multireg_pop) New function. 21441 (arm_emit_multi_reg_pop): New function. 21442 214432012-06-18 Greta Yorsh <Greta.Yorsh@arm.com> 21444 21445 * config/arm/arm.c (ldm_stm_operation_p): Require SP 21446 as base register for loads if SP is in the register list. 21447 214482012-06-18 Richard Guenther <rguenther@suse.de> 21449 21450 PR tree-optimization/53693 21451 * tree-vect-patterns.c (vect_operation_fits_smaller_type): 21452 Reject operands with more than one use. 21453 214542012-06-18 Bill Schmidt <wschmidt@linux.ibm.com> 21455 21456 PR tree-optimization/53703 21457 * tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis; 21458 correctly set bb_for_def[12]. 21459 214602012-06-18 Steven Bosscher <steven@gcc.gnu.org> 21461 21462 * config/vax/vax.h (VMS_TARGET): Remove. 21463 214642012-06-18 Richard Guenther <rguenther@suse.de> 21465 21466 * tree-vrp.c (extract_range_from_assert): Split out range 21467 intersecting code. 21468 (intersect_ranges): New function. 21469 (vrp_intersect_ranges): Likewise. 21470 214712012-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 21472 21473 * config/s390/s390.c (s390_gimplify_va_arg): Revert change from 21474 r187965. 21475 214762012-06-18 Tejas Belagod <tejas.belagod@arm.com> 21477 21478 * doc/md.texi: Document int iterators. 21479 * read-rtl.c (ints): New iterator group. 21480 (find_int): Int iterator group callback. 21481 (apply_int_iterator): Likewise. 21482 (apply_iterators): Traverse int iterator table and add all the used 21483 iterators to list. 21484 (initialize_iterators): Initialize data structures and callbacks for 21485 int iterators. 21486 (read_rtx): Parse and read mappings for int iterators. 21487 (read_rtx_code): Record int iterator usage. 21488 214892012-06-18 Richard Sandiford <rdsandiford@googlemail.com> 21490 21491 PR middle-end/53698 21492 * expr.c (expand_expr_addr_expr_1): Convert to tmode before 21493 performing an addition. 21494 214952012-06-17 Steven Bosscher <steven@gcc.gnu.org> 21496 21497 * output.h (split_double): Move prototype to rtl.h. 21498 (constructor_static_from_elts_p): Move prototype to tree.c. 21499 * rtl.h (split_double): Moved here from output.h. 21500 * tree.h (constructor_static_from_elts_p): Moved here from output.h. 21501 * final.c (split_double): Move from here ... 21502 * rtlanal.c (split_double): ... to here. 21503 * expr.c: Do not include output.h. 21504 215052012-06-17 Steven Bosscher <steven@gcc.gnu.org> 21506 21507 * cfglayout.h: Remove. 21508 * cfglayout.c: Remove. 21509 * function.h (struct function): Remove x_last_location field. 21510 * function.c: Do not include cfglayout.h. 21511 (expand_function_start): Do not call no-op force_next_line_note. 21512 (expand_function_end): Likewise. 21513 * cfgrtl.c: Do not include cfglayout.h. Include gt-cfgrtl.h. 21514 (unlink_insn_chain): Moved here from cfglayout.c. 21515 (skip_insns_after_block, label_for_bb, record_effective_endpoints, 21516 into_cfg_layout_mode, outof_cfg_layout_mode, 21517 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode, 21518 relink_block_chain, fixup_reorder_chain, verify_insn_chain, 21519 fixup_fallthru_exit_predecessor, force_one_exit_fallthru, 21520 cfg_layout_can_duplicate_bb_p, duplicate_insn_chain, 21521 cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks, 21522 cfg_layout_finalize): Likewise. 21523 (rtl_can_remove_branch_p): Likewise. 21524 * rtl.h (insn_scope): Move prototype from cfglayout.h here. 21525 (duplicate_insn_chain): Likewise. 21526 (force_next_line_note): Remove prototype. 21527 * emit-rtl.c: Do not include tree-flow.h, egad. Include vecprim.h. 21528 (last_location): Remove #define to emit.x_last_location. 21529 (force_next_line_note): Remove no-op function. 21530 (init_emit): Don't set x_last_location. 21531 (block_locators_locs, block_locators_blocks, locations_locators_locs, 21532 locations_locators_vals, prologue_locator, epilogue_locator, 21533 curr_location, last_location, curr_block, last_block, curr_rtl_loc): 21534 Move POD to here from cfglayout.c. 21535 (insn_locators_alloc, insn_locators_finalize, insn_locators_free, 21536 set_curr_insn_source_location, get_curr_insn_source_location, 21537 set_curr_insn_block, get_curr_insn_block, curr_insn_locator, 21538 locator_scope, insn_scope, locator_location, locator_line, insn_line, 21539 locator_file, insn_file, locator_eq): Move to here from cfglayout.c. 21540 * cfghooks.h: Remove double-include protection. 21541 (can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here. 21542 * cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c. 21543 * final.c: Do not include cfglayout.h. 21544 (choose_inner_scope, change_scope): Move to here from cfglayout.c. 21545 (reemit_insn_block_notes): Likewise. Make static. 21546 * tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p, 21547 operation_could_trap_p, tree_could_throw_p): Move from here... 21548 * tree.h: ... to here. 21549 * gengtype.c (open_base_files): Remove cfglayout.h from the list. 21550 * profile.c: Do not include cfghooks.h. 21551 * cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h. 21552 * modulo-sched.c: Likewise. 21553 * loop-unswitch.c: Do not include cfglayout.h. 21554 * sched-ebb.c: Likewise. 21555 * tracer.c: Likewise. 21556 * ddg.c: Likewise. 21557 * tree-vect-loop-manip.c: Likewise. 21558 * loop-init.c: Likewise. 21559 * dwarf2out.c: Likewise. 21560 * hw-doloop.c: Likewise. 21561 * loop-unroll.c: Likewise. 21562 * cfgcleanup.c: Likewise. 21563 * bb-reorder.c: Likewise. 21564 * sched-rgn.c: Likewise. 21565 * tree-cfg.c: Likewise. 21566 * config/alpha/alpha.c: Likewise. 21567 * config/spu/spu.c: Likewise. 21568 * config/sparc/sparc.c: Likewise. 21569 * config/sh/sh.c: Likewise. 21570 * config/c6x/c6x.c: Likewise. 21571 * config/ia64/ia64.c: Likewise. 21572 * config/rs6000/rs6000.c: Likewise. 21573 * config/score/score.c: Likewise. 21574 * config/mips/mips.c: Likewise. 21575 * config/bfin/bfin.c: Likewise. 21576 * Makefile.in (CFGAYOUT_H): Remove, and fixup users. 21577 * config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h. 21578 * config/spu/t-spu-elf (spu.o: $): Likewise. 21579 * config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H. 21580 215812012-06-17 Steven Bosscher <steven@gcc.gnu.org> 21582 21583 * cfgloop.h: Do not include rtl.h. 21584 (enum iv_extend_code): New. 21585 (struct rtx_iv): Use iv_extend_code instead of rtx_code. 21586 * Makefile.in (CFGLOOP_H): Do not depend on RTL_H. 21587 * loop-iv.c (iv_extend_to_rtx_code): New function to translate 21588 an IV_EXTEND_CODE to an RTX_CODE. 21589 (dump_iv_info): Update for rtx_iv field type change. 21590 (iv_constant): Likewise. 21591 (iv_subreg): Likewise. 21592 (iv_extend): Likewise. 21593 (iv_neg): Likewise. 21594 (iv_add): Likewise. 21595 (iv_mult): Likewise. 21596 (iv_shift): Likewise. 21597 (get_biv_step_1): Likewise. 21598 (get_biv_step): Likewise. 21599 (iv_analyze_biv): Likewise. 21600 (get_iv_value): Likewise. 21601 (shorten_into_mode): Likewise. 21602 (canonicalize_iv_subregs): Likewise. 21603 * sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead 21604 of MAY_HAVE_DEBUG_INSNS. 21605 * tree-ssa-loop-ivopts.c: Include recog.h after expr.h. 21606 * tree-ssa-loop-prefetch.c: Likewise. 21607 216082012-06-17 Steven Bosscher <steven@gcc.gnu.org> 21609 21610 * expmed.c (ceil_log2): Move from here... 21611 * hwint.c: ... to here for older GCCs... 21612 * hwint.h: ... and here for newer GCCs. 21613 * rtl.h (ceil_log2): Remove prototype. 21614 21615 * tree-phinodes.c: Do not include rtl.h. 21616 * Makefile.in (tree-phinodes.o): Do not depend on RTL_H. 21617 216182012-06-17 Steven Bosscher <steven@gcc.gnu.org> 21619 21620 * config/cris/cris.h (TARGET_ELF): Remove. 21621 (FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove. 21622 (CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1. 21623 (LOCAL_LABEL_PREFIX): Likewise. 21624 * config/cris/cris.c (cris_target_asm_named_section): Remove. 21625 (cris_option_override): Simpify using TARGET_ELF==1. 21626 (cris_file_start): Likewise. 21627 * config/cris/cris-protos.h (cris_target_asm_named_section): Remove. 21628 216292012-06-17 Uros Bizjak <ubizjak@gmail.com> 21630 21631 * config/i386/sse.md (vcvtph2ps): Fix vec_select selector. 21632 216332012-06-16 Eric Botcazou <ebotcazou@adacore.com> 21634 21635 PR middle-end/53590 21636 * tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions. 21637 216382012-06-15 Easwaran Raman <eraman@google.com> 21639 21640 * passes.c (init_optimization_passes): Remove pass_call_cdce 21641 from its current position and insert after pass_dce. 21642 216432012-06-15 Walter Lee <walt@tilera.com> 21644 21645 * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo. 21646 216472012-06-15 Richard Earnshaw <rearnsha@arm.com> 21648 21649 * arm.c (note_invalid_constants): Don't return a result. 21650 (arm_memory_load_p): Delete function. 21651 (arm_const_double_rtx): Delete iterator variable i; 21652 (fp_immediate_constant): Likewise. 21653 (fp_const_from_val): Likewise. 21654 21655 * arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void. 21656 216572012-06-15 Marc Glisse <marc.glisse@inria.fr> 21658 21659 PR c++/51033 21660 * c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c. 21661 * c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h. 21662 216632012-06-15 Georg-Johann Lay <avr@gjlay.de> 21664 21665 * config/avr/avr.c (avr_default_expand_builtin): New function. 21666 (avr_expand_builtin): Use it. 21667 (avr_expand_unop_builtin): Remove. 21668 (avr_expand_binop_builtin): Remove. 21669 (avr_expand_triop_builtin): Remove. 21670 216712012-06-15 Michael Matz <matz@suse.de> 21672 21673 PR middle-end/38474 21674 * cfgexpand.c (add_alias_set_conflicts): Remove. 21675 (expand_used_vars): Don't call it. 21676 (aggregate_contains_union_type): Remove. 21677 * function.c (n_temp_slots_in_use): New static data. 21678 (make_slot_available, assign_stack_temp_for_type): Update it. 21679 (init_temp_slots): Zero it. 21680 (remove_unused_temp_slot_addresses): Use it for quicker removal. 21681 (remove_unused_temp_slot_addresses_1): Use htab_clear_slot. 21682 216832012-06-15 Michael Matz <matz@suse.de> 21684 21685 * gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f 21686 argument, don't emit assign statement if value is directly usable. 21687 (gimplify_expr): Adjust. 21688 216892012-06-15 Michael Matz <matz@suse.de> 21690 21691 * gimplify.c (gimplify_modify_expr): Fold generated statements. 21692 * gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans. 21693 216942012-06-15 Richard Guenther <rguenther@suse.de> 21695 21696 * tree-vrp.c (set_and_canonicalize_value_range): Use canonical 21697 predicates to set VR_UNDEFINED and VR_VARYING. Drop a case 21698 we assert for in set_value_range to VR_VARYING. 21699 217002012-06-15 Richard Earnshaw <rearnsha@arm.com> 21701 21702 * arm.md (addsf3, adddf3): Use s_register_operand. 21703 (subsf3, subdf3): Likewise. 21704 (mulsf3, muldf3): Likewise. 21705 (difsf3, divdf3): Likewise. 21706 (movsfcc, movdfcc): Likewise. 21707 * predicates.md (f_register_operand): Delete. 21708 (arm_float_rhs_operand): Delete. 21709 (arm_float_add_operand): Delete. 21710 (arm_float_compare_operand): Use s_register_operand when 21711 there's no VFP. 21712 (cirrus_register_operand): Delete. 21713 (cirrus_fp_register): Delete. 21714 (cirrus_shift_const): Delete. 21715 (cmpdi_operand): Remove Maverick support. 21716 * constraints.md (f, v, H): Delete constraints. 21717 (G): Update documentation. 21718 * arm.c (fp_consts_inited): Convert to bool. 21719 (strings_fp): Delete. 21720 (values_fp): Delete. 21721 (value_fp0): New variable. 21722 (init_fp_table): Simplify logic. 21723 (arm_const_double_rtx): Likewise. 21724 (fp_immediate_constant): Likewise. 21725 (fp_const_from_val): Likewise. 21726 (neg_const_double_rtx_ok_for_fpa): Delete. 21727 * doc/md.texi (ARM constraints): Update documentation. 21728 217292012-06-15 Ulrich Weigand <ulrich.weigand@linaro.org> 21730 21731 PR tree-optimization/53636 21732 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify 21733 stride when doing basic-block vectorization. 21734 217352012-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 21736 21737 * tree-vect-generic.c (lower_vec_perm): Propagate vector constants 21738 into VEC_PERM_EXPR. 21739 217402012-06-15 Jakub Jelinek <jakub@redhat.com> 21741 21742 * tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily 21743 allocate and free bbs array for the SLP case. 21744 21745 PR tree-optimization/51581 21746 * expr.h (choose_multiplier): New prototype. 21747 * expmed.c (choose_multiplier): No longer static. 21748 Change multiplier_ptr from rtx * to UHWI *. 21749 (expand_divmod): Adjust callers. 21750 * tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern): Renamed to... 21751 (vect_recog_divmod_pattern): ... this. Pass bb_vinfo as last 21752 argument to new_stmt_vec_info. Attempt to optimize also divisions 21753 by non-pow2 constants if integer vector division isn't supported. 21754 * tree-vect-stmts.c (vect_analyze_stmt): If node != NULL, 21755 don't look at pattern stmts and sequences. 21756 217572012-06-15 Eric Botcazou <ebotcazou@adacore.com> 21758 21759 PR middle-end/53590 21760 * common.opt (-fdelete-dead-exceptions): New switch. 21761 * doc/invoke.texi (Code Gen Options): Document it. 21762 * cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of 21763 insn_could_throw_p predicate. Do not skip an insn that could throw 21764 if dead exceptions can be deleted. 21765 (insn_live_p): Likewise, do not return true in that case. 21766 * dce.c (can_alter_cfg): New flag. 21767 (deletable_insn_p): Do not return false for an insn that can throw if 21768 the CFG can be altered and dead exceptions can be deleted. 21769 (init_dce): Set can_alter_cfg to false for fast DCE, true otherwise. 21770 * dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_ 21771 predicate. Do not preserve an insn that could throw if dead exceptions 21772 can be deleted. 21773 * function.h (struct function): Add can_delete_dead_exceptions flag. 21774 * function.c (allocate_struct_function): Set it. 21775 * lto-streamer-in.c (input_struct_function_base): Stream it. 21776 * lto-streamer-out.c (input_struct_function_base): Likewise. 21777 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a 21778 statement that could throw as necessary if dead exceptions can be 21779 deleted. 21780 217812012-06-14 Maxim Kuvyrkov <maxim@codesourcery.com> 21782 21783 * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo. 21784 217852012-06-14 Oleg Endo <olegendo@gcc.gnu.org> 21786 21787 PR target/53568 21788 * config/sh/sh.md: Add peephole for swapbsi2. 21789 (*swapbisi2_and_shl8, *swapbhisi2): New insns and splits. 21790 217912012-06-14 Uros Bizjak <ubizjak@gmail.com> 21792 21793 * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative. 21794 (*zero_extendsidi2_rex64): Ditto. Remove isa attribute. 21795 217962012-06-14 Jakub Jelinek <jakub@redhat.com> 21797 21798 PR target/53639 21799 * config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New. 21800 218012012-06-14 Richard Earnshaw <rearnsha@arm.com> 21802 21803 * arm.c (arm_cirrus_insn_p): Delete. 21804 (cirrus_reorg): Delete. 21805 (arm_reorg): Don't call cirrus_reorg. 21806 (arm_final_prescan_insn_p): Don't check for cirrus insns. 21807 * arm.md (define_attr "type"): Remove mav_farith and mav_dmult. 21808 (adddi3, subdi3): Remove Maverick support. 21809 (arm_adddi3): Likewise. 21810 (adddi_sesidi_di, adddi_zesidi_di): Likewise. 21811 (addsf3, adddf3): Likewise. 21812 (subsf3, subdf3): Likewise. 21813 (mulsf3, muldf3): Likewise. 21814 (ashldi3, ashrdi3, lshrdi3): Likewise. 21815 (floatsisf2, floatsidf2): Likewise. 21816 (fix_truncsfsi2, fix_truncdfsi2): Likewise. 21817 (arm_movdi, thumb1_movdi_insn): Likewise. 21818 (arm_cmpdi_insn): Likewise. 21819 (cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise. 21820 (cirrus.md): Don't include. 21821 * cirrus.md: Delete file. 21822 * t-arm (MD_INCLUDES): Remove cirrus.md. 21823 218242012-06-14 Eric Botcazou <ebotcazou@adacore.com> 21825 21826 * dwarf2out.c (function_possibly_abstracted_p): New static function. 21827 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of 21828 cgraph_function_possibly_inlined_p. 21829 (gen_inlined_subroutine_die): Return if the origin is to be ignored. 21830 (process_scope_var): Do not emit concrete instances of abstracted 21831 nested functions from here. 21832 (gen_decl_die): Emit the abstract instance if the function is possibly 21833 abstracted and not only possibly inlined. 21834 (dwarf2out_finish): Find the first non-abstract parent instance and 21835 attach concrete instances on the limbo list to it. 21836 218372012-06-14 Richard Earnshaw <rearnsha@arm.com> 21838 21839 * arm.md (divsf3, divdf3): Remove FPA support. 21840 (negsf2, negdf2): Likewise. 21841 (sqrtsf2, sqrtdf2): Likewise. 21842 (movdfcc): Likewise. 21843 (modsf3, moddf3, movxf): Delete. 21844 (push_fp_multi): Delete. 21845 (fpa.md): Don't include it. 21846 * fpa.md: Delete file. 21847 * t-arm (MD_INCLUDES): Remove fpa.md. 21848 218492012-06-14 Bill Schmidt <wschmidt@linux.ibm.com> 21850 21851 * tree-vectorizer.h (vect_get_stmt_cost): Move from tree-vect-stmts.c. 21852 (cost_for_stmt): Remove decl. 21853 (vect_get_single_scalar_iteration_cost): Correct typo in name. 21854 * tree-vect-loop.c (vect_get_cost): Remove. 21855 (vect_get_single_scalar_iteration_cost): Correct typo in name; use 21856 vect_get_stmt_cost rather than vect_get_cost. 21857 (vect_get_known_peeling_cost): Use vect_get_stmt_cost rather than 21858 vect_get_cost. 21859 (vect_estimate_min_profitable_iters): Correct typo in call to 21860 vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather 21861 than vect_get_cost. 21862 (vect_model_reduction_cost): Use vect_get_stmt_cost rather than 21863 vect_get_cost. 21864 (vect_model_induction_cost): Likewise. 21865 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Correct 21866 typo in call to vect_get_single_scalar_iteration_cost. 21867 * tree-vect-stmts.c (vect_get_stmt_cost): Move to tree-vectorizer.h. 21868 (cost_for_stmt): Remove unnecessary function. 21869 * Makefile.in (TREE_VECTORIZER_H): Update dependencies. 21870 218712012-06-14 Richard Earnshaw <rearnsha@arm.com> 21872 21873 * arm.opt (mfp=2, mfp=3, mfpe, mfpe=2, mfpe=3): Delete options. 21874 * arm-fpus.def (fpa, fpe2, fpe3, maverick): Delete FPU types. 21875 * arm-tables.opt: Regenerated. 21876 * doc/invoke.texi: Remove references to deleted options. 21877 218782012-06-14 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com> 21879 21880 * config/h8300/genmova.sh: Modified to add offset bits of 21881 mova/Sz assembly instruction for memory access. 21882 * config/h8300/h8300.c: Likewise. 21883 * config/h8300/mova.md: Likewise. 21884 218852012-06-12 Christian Bruel <christian.bruel@st.com> 21886 21887 PR target/53621 21888 * config/sh/sh.c (sh_option_override): Don't force 21889 flag_omit_frame_pointer and maccumulate_outgoing_args. 21890 * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var. 21891 218922012-06-14 Richard Guenther <rguenther@suse.de> 21893 21894 * tree-vrp.c (VR_INITIALIZER): New define. 21895 (ranges_from_anti_range): New function. 21896 (extract_range_from_binary_expr_1): Decompose operations on 21897 VR_ANTI_RANGEs to operations on VR_RANGE. 21898 (extract_range_from_unary_expr_1): Likewise. 21899 (extract_range_from_binary_expr_1, extract_range_from_binary_expr, 21900 extract_range_from_unary_expr_1, extract_range_from_unary_expr, 21901 extract_range_from_cond_expr, adjust_range_with_scev, 21902 vrp_visit_assignment_or_call, vrp_visit_phi_node, 21903 simplify_bit_ops_using_ranges): Use VR_INITIALIZER. 21904 219052012-06-13 Richard Henderson <rth@redhat.com> 21906 21907 * hwint.h (HOST_WIDEST_INT_C): New. 21908 (HOST_WIDE_INT_C): New. 21909 (HOST_WIDE_INT_1): Use it. 21910 * config/alpha/alpha.c (alpha_trampoline_init): Use it. 21911 219122012-06-13 Alexandre Oliva <aoliva@redhat.com> 21913 21914 PR debug/49888 21915 * var-tracking.c: Include alias.h. 21916 (overlapping_mems): New struct. 21917 (drop_overlapping_mem_locs): New. 21918 (clobber_overlapping_mems): New. 21919 (var_mem_delete_and_set, var_mem_delete): Call it. 21920 (val_bind): Likewise, but only if modified. 21921 (compute_bb_dataflow, emit_notes_in_bb): Call it on MEMs. 21922 * Makefile.in (var-tracking.o): Depend in $(ALIAS_H). 21923 219242012-06-13 Alexandre Oliva <aoliva@redhat.com> 21925 21926 PR debug/47624 21927 * var-tracking.c (loc_exp_dep_pool): New. 21928 (vt_emit_notes): Create and release the pool. 21929 (compute_bb_dataflow): Use value-based locations in MO_VAL_SET. 21930 (emit_notes_in_bb): Likewise. 21931 (loc_exp_dep_insert): Deal with NOT_ONEPART vars. 21932 (notify_dependents_of_changed_value): Likewise. 21933 (notify_dependents_of_resolved_value): Check that NOT_ONEPART 21934 variables don't have a VAR_LOC_DEP_LST. 21935 (emit_note_insn_var_location): Expand NOT_ONEPART locs that are 21936 VALUEs or MEMs of VALUEs. 21937 219382012-06-13 Alexandre Oliva <aoliva@redhat.com> 21939 21940 PR debug/52983 21941 PR debug/48866 21942 * dce.c (word_dce_process_block): Insert debug temps only if the 21943 insn is not marked. 21944 (dce_process_block): Likewise, and if debug.used is not empty, 21945 and only after iterating over all DEFs that might mark the insn. 21946 219472012-06-13 Alexandre Oliva <aoliva@redhat.com> 21948 21949 * common.opt (ftree-coalesce-inlined-vars): New. 21950 (ftree-coalesce-vars): New. 21951 * doc/invoke.texi: Document them. 21952 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): 21953 Implement them. 21954 219552012-06-13 Richard Sandiford <rdsandiford@googlemail.com> 21956 21957 * read-rtl.c (mapping): Remove index field. Add current_value field. 21958 Define heap vectors. 21959 (iterator_group): Fix long line. Remove num_builtins field and 21960 uses_iterator fields. Make apply_iterator take a void * parameter. 21961 (iterator_use, atttribute_use): New structures. 21962 (iterator_traverse_data, BELLWETHER_CODE, bellwether_codes): Delete. 21963 (current_iterators, iterator_uses, attribute_uses): New variables. 21964 (uses_mode_iterator_p, uses_code_iterator_p): Delete. 21965 (apply_mode_iterator, apply_code_iterator): Take a void * parameter. 21966 (map_attr_string, apply_iterator_to_string): Remove iterator 21967 and value parameters. Look through all current iterator values 21968 for a matching attribute. 21969 (mode_attr_index, apply_mode_maps): Delete. 21970 (apply_iterator_to_rtx): Replace with... 21971 (copy_rtx_for_iterators): ...this new function. 21972 (uses_iterator_p, apply_iterator_traverse): Delete. 21973 (apply_attribute_uses, add_current_iterators, apply_iterators): New 21974 functions. 21975 (add_mapping): Remove index field. Set current_value field. 21976 (initialize_iterators): Don't set num_builtins and uses_iterator_p 21977 fields. 21978 (find_iterator): Delete. 21979 (record_iterator_use, record_attribute_use): New functions. 21980 (record_potential_iterator_use): New function. 21981 (check_code_iterator): Remove handling of bellwether codes. 21982 (read_rtx): Remove mode maps. Truncate iterator and attribute uses. 21983 (read_rtx_code, read_nested_rtx, read_rtx_variadic): Remove mode_maps 21984 parameter. Use the first code iterator value instead of the 21985 bellwether_codes array. Use record_potential_iterator_use for modes. 21986 219872012-06-13 Oleg Endo <olegendo@gcc.gnu.org> 21988 21989 PR target/53568 21990 * config/sh/sh.md (bswapsi2): New expander. 21991 (swapbsi2): New insn. 21992 219932012-06-13 H.J. Lu <hongjiu.lu@intel.com> 21994 21995 PR target/53647 21996 * config/i386/i386.c (ix86_tune_cost): New variable. 21997 (ix86_option_override_internal): Set ix86_tune_cost. Use 21998 ix86_tune_cost for simultaneous_prefetches, prefetch_block, 21999 l1_cache_size and l2_cache_size. 22000 220012012-06-13 Richard Guenther <rguenther@suse.de> 22002 22003 * tree-vrp.c (vrp_meet): Properly meet equivalent ranges. 22004 Handle meeting two VR_RANGE to an VR_ANTI_RANGE. Implement 22005 all possible meetings of VR_RANGE with VR_ANTI_RANGE and 22006 VR_ANTI_RANGE with VR_ANTI_RANGE. 22007 220082012-06-13 Richard Earnshaw <rearnsha@arm.com> 22009 22010 * config.gcc (unsupported): Move obsoleted FPA-based configurations 22011 here from ... 22012 (obsolete): ... here. 22013 (arm*-*-freebsd*): Remove. 22014 (arm*-*-linux*): Only accept EABI variants. Simplify logic. 22015 (arm*-*-uclinux*): Likewise. 22016 (arm*-*-ecos-elf): Remove. 22017 (arm*-*-rtems*): Remove. 22018 (arm*-*-elf): Remove. 22019 (arm*-wince-pe*): Remove. 22020 (arm, --with-fpu): Remove support for fpa and Maverick variants. 22021 * arm/ecos-elf.h: Delete. 22022 * arm/t-strongarm-elf: Delete. 22023 * arm/rtems-elf.h: Delete. 22024 * arm/wince-pe.h: Delete. 22025 * arm/pe.c: Delete. 22026 * arm/pe.h: Delete. 22027 * arm/t-wince-pe: Delete. 22028 220292012-06-13 Bill Schmidt <wschmidt@linux.ibm.com> 22030 22031 PR tree-optimization/53647 22032 * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for 22033 targets with no defined cache line size. 22034 220352012-06-13 Bill Schmidt <wschmidt@linux.ibm.com> 22036 22037 * targhooks.c (default_builtin_vectorized_conversion): Handle 22038 vec_construct, using vectype to base cost on subparts. 22039 * target.h (enum vect_cost_for_stmt): Add vec_construct. 22040 * tree-vect-stmts.c (vect_model_load_cost): Use vec_construct 22041 instead of scalar_to-vec. 22042 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle 22043 vec_construct in same way as default for now. 22044 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise. 22045 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): 22046 Handle vec_construct, including special case for 32-bit loads. 22047 220482012-06-13 Xinyu Qi <xyqi@marvell.com> 22049 22050 * config/arm/arm.c (FL_IWMMXT2): New define. 22051 (arm_arch_iwmmxt2): New variable. 22052 (arm_option_override): Enable use of iWMMXt with VFP. 22053 Disable use of iWMMXt with NEON. Disable use of iWMMXt under 22054 Thumb mode. Set arm_arch_iwmmxt2. 22055 (arm_expand_binop_builtin): Accept VOIDmode op. 22056 (enum arm_builtins): Revise built-in fcode. 22057 (IWMMXT2_BUILTIN): New define. 22058 (IWMMXT2_BUILTIN2): Likewise. 22059 (iwmmx2_mbuiltin): Likewise. 22060 (builtin_description bdesc_2arg): Revise built in declaration. 22061 (builtin_description bdesc_1arg): Likewise. 22062 (arm_init_iwmmxt_builtins): Revise built in initialization. 22063 (arm_expand_builtin): Revise built in expansion. 22064 (arm_output_iwmmxt_shift_immediate): New function. 22065 (arm_output_iwmmxt_tinsr): Likewise. 22066 * config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Declare. 22067 (arm_output_iwmmxt_tinsr): Likewise. 22068 * config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant. 22069 (iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete. 22070 (rorv4hi3, rorv2si3, rordi3): Likewise. 22071 (rorv4hi3_di, rorv2si3_di, rordi3_di): Likewise. 22072 (ashrv4hi3_di, ashrv2si3_di, ashrdi3_di): Likewise. 22073 (lshrv4hi3_di, lshrv2si3_di, lshrdi3_di): Likewise. 22074 (ashlv4hi3_di, ashlv2si3_di, ashldi3_di): Likewise. 22075 (iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi): Likewise 22076 (*iwmmxt_clrv8qi, *iwmmxt_clrv4hi, *iwmmxt_clrv2si): Likewise. 22077 (tbcstv8qi, tbcstv4hi, tbsctv2si): New pattern. 22078 (iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_clrv2si): Likewise. 22079 (*and<mode>3_iwmmxt, *ior<mode>3_iwmmxt, *xor<mode>3_iwmmxt): Likewise. 22080 (ror<mode>3, ror<mode>3_di): Likewise. 22081 (ashr<mode>3_di, lshr<mode>3_di, ashl<mode>3_di): Likewise. 22082 (ashli<mode>3_iwmmxt, iwmmxt_waligni, iwmmxt_walignr): Likewise. 22083 (iwmmxt_walignr0, iwmmxt_walignr1): Likewise. 22084 (iwmmxt_walignr2, iwmmxt_walignr3): Likewise. 22085 (iwmmxt_setwcgr0, iwmmxt_setwcgr1): Likewise. 22086 (iwmmxt_setwcgr2, iwmmxt_setwcgr3): Likewise. 22087 (iwmmxt_getwcgr0, iwmmxt_getwcgr1): Likewise. 22088 (iwmmxt_getwcgr2, iwmmxt_getwcgr3): Likewise. 22089 (All instruction patterns): Add wtype attribute. 22090 (*iwmmxt_arm_movdi, *iwmmxt_movsi_insn): iWMMXt coexist with vfp. 22091 (iwmmxt_uavgrndv8qi3, iwmmxt_uavgrndv4hi3): Revise the pattern. 22092 (iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3): Likewise. 22093 (ashr<mode>3_iwmmxt, ashl<mode>3_iwmmxt, lshr<mode>3_iwmmxt): Likewise. 22094 (iwmmxt_tinsrb, iwmmxt_tinsrh, iwmmxt_tinsrw):Likewise. 22095 (eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3): Likewise. 22096 (gtuv4hi3, gtuv2si3, gtv8qi3, gtv4hi3, gtv2si3): Likewise. 22097 (iwmmxt_wunpckihh, iwmmxt_wunpckihw, iwmmxt_wunpckilh): Likewise. 22098 (iwmmxt_wunpckilw, iwmmxt_wunpckehub, iwmmxt_wunpckehuh): Likewise. 22099 (iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh): Likewise. 22100 (iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh): Likewise. 22101 (iwmmxt_wunpckeluw, iwmmxt_wunpckelsb, iwmmxt_wunpckelsh): Likewise. 22102 (iwmmxt_wunpckelsw, iwmmxt_wmadds, iwmmxt_wmaddu): Likewise. 22103 (iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Likewise. 22104 (iwmmxt2.md): Include. 22105 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __IWMMXT2__. 22106 (TARGET_IWMMXT2): New define. 22107 (TARGET_REALLY_IWMMXT2): Likewise. 22108 (arm_arch_iwmmxt2): Declare. 22109 * config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics. 22110 Use __IWMMXT2__ to enable iWMMXt2 intrinsics. 22111 Use C name-mangling for intrinsics. 22112 (__v8qi): Redefine. 22113 (_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise. 22114 (_mm_sad_pu16, _mm_align_si64, _mm_setwcx, _mm_getwcx): Likewise. 22115 (_m_from_int): Likewise. 22116 (_mm_sada_pu8, _mm_sada_pu16): New intrinsic. 22117 (_mm_alignr0_si64, _mm_alignr1_si64, _mm_alignr2_si64): Likewise. 22118 (_mm_alignr3_si64, _mm_tandcb, _mm_tandch, _mm_tandcw): Likewise. 22119 (_mm_textrcb, _mm_textrch, _mm_textrcw, _mm_torcb): Likewise. 22120 (_mm_torch, _mm_torcw, _mm_tbcst_pi8, _mm_tbcst_pi16): Likewise. 22121 (_mm_tbcst_pi32): Likewise. 22122 (_mm_abs_pi8, _mm_abs_pi16, _mm_abs_pi32): New iWMMXt2 intrinsic. 22123 (_mm_addsubhx_pi16, _mm_absdiff_pu8, _mm_absdiff_pu16): Likewise. 22124 (_mm_absdiff_pu32, _mm_addc_pu16, _mm_addc_pu32): Likewise. 22125 (_mm_avg4_pu8, _mm_avg4r_pu8, _mm_maddx_pi16, _mm_maddx_pu16): Likewise. 22126 (_mm_msub_pi16, _mm_msub_pu16, _mm_mulhi_pi32): Likewise. 22127 (_mm_mulhi_pu32, _mm_mulhir_pi16, _mm_mulhir_pi32): Likewise. 22128 (_mm_mulhir_pu16, _mm_mulhir_pu32, _mm_mullo_pi32): Likewise. 22129 (_mm_qmulm_pi16, _mm_qmulm_pi32, _mm_qmulmr_pi16): Likewise. 22130 (_mm_qmulmr_pi32, _mm_subaddhx_pi16, _mm_addbhusl_pu8): Likewise. 22131 (_mm_addbhusm_pu8, _mm_qmiabb_pi32, _mm_qmiabbn_pi32): Likewise. 22132 (_mm_qmiabt_pi32, _mm_qmiabtn_pi32, _mm_qmiatb_pi32): Likewise. 22133 (_mm_qmiatbn_pi32, _mm_qmiatt_pi32, _mm_qmiattn_pi32): Likewise. 22134 (_mm_wmiabb_si64, _mm_wmiabbn_si64, _mm_wmiabt_si64): Likewise. 22135 (_mm_wmiabtn_si64, _mm_wmiatb_si64, _mm_wmiatbn_si64): Likewise. 22136 (_mm_wmiatt_si64, _mm_wmiattn_si64, _mm_wmiawbb_si64): Likewise. 22137 (_mm_wmiawbbn_si64, _mm_wmiawbt_si64, _mm_wmiawbtn_si64): Likewise. 22138 (_mm_wmiawtb_si64, _mm_wmiawtbn_si64, _mm_wmiawtt_si64): Likewise. 22139 (_mm_wmiawttn_si64, _mm_merge_si64): Likewise. 22140 (_mm_torvscb, _mm_torvsch, _mm_torvscw): Likewise. 22141 (_m_to_int): New define. 22142 * config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2. 22143 * config/arm/arm-arches.def (iwmmxt2): Likewise. 22144 * config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md and 22145 iwmmxt2.md. 22146 * config/arm/arm.md (marvell-f-iwmmxt.md): Include. 22147 (arch): Add "iwmmxt2". 22148 (arch_enabled): Handle "iwmmxt2". 22149 (wtype): New attribute. 22150 (UNSPEC_WMADDS, UNSPEC_WMADDU): Delete. 22151 (UNSPEC_WALIGNI): New unspec. 22152 * config/arm/predicates.md (imm_or_reg_operand): New predicate. 22153 * config/arm/iterators.md (VMMX2): New mode_iterator. 22154 * config/arm/marvell-f-iwmmxt.md: New file. 22155 * config/arm/iwmmxt2.md: New file. 22156 221572012-06-12 Jakub Jelinek <jakub@redhat.com> 22158 22159 PR c/53532 22160 PR c/51034 22161 PR c/53196 22162 * c-decl.c (build_compound_literal): Call c_incomplete_type_error 22163 if type isn't complete. 22164 221652012-06-12 Uros Bizjak <ubizjak@gmail.com> 22166 22167 * config/ia64/sync.md (fetchop_name): Change ior attribute to "or". 22168 221692012-06-12 Richard Henderson <rth@redhat.com> 22170 22171 * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode 22172 iterator instead of INT. 22173 221742012-06-12 Bill Schmidt <wschmidt@linux.ibm.com> 22175 22176 * opts.c: Add -fhoist-adjacent-loads to -O2 and above. 22177 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add argument to forward 22178 declaration. 22179 (hoist_adjacent_loads, gate_hoist_loads): New forward declarations. 22180 (tree_ssa_phiopt): Call gate_hoist_loads. 22181 (tree_ssa_cs_elim): Add parm to tree_ssa_phiopt_worker call. 22182 (tree_ssa_phiopt_worker): Add do_hoist_loads to formal arg list; call 22183 hoist_adjacent_loads. 22184 (local_mem_dependence): New function. 22185 (hoist_adjacent_loads): Likewise. 22186 (gate_hoist_loads): Likewise. 22187 * common.opt (fhoist-adjacent-loads): New switch. 22188 * Makefile.in (tree-ssa-phiopt.o): Added dependencies. 22189 221902012-06-12 Michael Matz <matz@suse.de> 22191 22192 * alias.c (nonoverlapping_component_refs_p): Take two rtx arguments. 22193 (nonoverlapping_memrefs_p): Don't call it here ... 22194 (true_dependence_1): ... but here. 22195 221962012-06-12 Richard Guenther <rguenther@suse.de> 22197 22198 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code. 22199 * alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET 22200 and MEM_SIZE only refines it. Reflect that and be less conservative 22201 if either of the latter is not known. 22202 222032012-06-12 Jakub Jelinek <jakub@redhat.com> 22204 22205 PR rtl-optimization/53589 22206 * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge 22207 discovery even when e->dest != target. If any LABEL_REF points 22208 to e->dest label, redirect it to target's label. 22209 222102012-06-12 Chung-Lin Tang <cltang@codesourcery.com> 22211 22212 * config/sh/sh.c (output_stack_adjust): Remove !epilogue_p 22213 condition for generating REG_FRAME_RELATED_EXPR note. 22214 (pop): Add code for generating REG_CFA_RESTORE, 22215 REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1. 22216 (sh_expand_epilogue): Use frame_insn() for FP to SP move. 22217 Set 'frame_p' of calls to output_stack_adjust() to 'true'. 22218 222192012-06-11 Richard Henderson <rth@redhat.com> 22220 22221 * config/alpha/alpha.c (HWI_HEX2): Add missing shift. 22222 * vmsdbgout.c (VMS_EPOCH_OFFSET): Add LL suffix. 22223 22224 * config/alpha/alpha.c (alpha_trampoline_init): Split large constants. 22225 222262012-06-12 Hans-Peter Nilsson <hp@axis.com> 22227 22228 * doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>: 22229 Mention that this hook needs to be defined for native TLS. 22230 * doc/tm.texi: Regenerate. 22231 222322012-06-11 Mike Stump <mikestump@comcast.net> 22233 22234 * emit-rtl.c (init_emit_once): Iterate through the 22235 MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and 22236 MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through 22237 all the MIN_MODE_PARTIAL_INT modes anymore. 22238 222392012-06-12 Maxim Kuvyrkov <maxim@codesourcery.com> 22240 22241 * config/mips/mips-tables.opt (xlp): Fix merge typo. 22242 222432012-06-11 Roland McGrath <mcgrathr@google.com> 22244 22245 * dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using 22246 SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's 22247 not a VAR_DECL. Also don't limit it to UNSPECs with exactly one 22248 operand. 22249 222502012-06-11 Oleg Endo <olegendo@gcc.gnu.org> 22251 22252 PR target/53511 22253 * config/sh/sh.md (fmasf4): New expander. 22254 (*macsf3): Rename to fmasf4_i. Adapt to fma pattern. 22255 (mac_media): Rename to fmasf4_media. Adapt to fma pattern. 22256 * config/sh/sh.opt (mfused-madd): Remove. 22257 * config/sh/sh.c (sh_option_override): Remove mfused-madd handling. 22258 (builtin_description bdesc): Remove __builtin_sh_media_FMAC_S. 22259 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add fused-madd.opt 22260 as extra options. 22261 * doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd 22262 descriptions. 22263 222642012-06-11 Richard Henderson <rth@redhat.com> 22265 22266 * dwarf2cfi.c (scan_trace): Handle annulled branch-taken delay slots. 22267 222682012-06-11 Richard Guenther <rguenther@suse.de> 22269 22270 PR middle-end/53470 22271 * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but 22272 replace it with the first non-BLOCK context. 22273 222742012-06-11 Richard Guenther <rguenther@suse.de> 22275 22276 * alias.c (aliases_everything_p): Remove. 22277 (DIFFERENT_ALIAS_SETS_P): Likewise. 22278 (true_dependence_1): Use mems_in_disjoint_alias_sets_p directly. 22279 Do not use aliases_everything_p or special-case ANDs. Do not 22280 special-case BLKmode moves. 22281 (may_alias_p): Likewise. Handle BLKmode similar like everywhere 22282 - for SCATCH only. 22283 222842012-06-09 Hans-Peter Nilsson <hp@axis.com> 22285 22286 Fix CRIS build errors with --enable-build-with-cxx. 22287 * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename 22288 variable "and" to "andop". 22289 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use 22290 temporary variable for memory model, passing C++-type-correct 22291 parameter type to expand_mem_thread_fence. 22292 ("atomic_compare_and_swap<mode>"): Ditto. 22293 222942012-06-09 Richard Henderson <rth@redhat.com> 22295 22296 PR c++/53602 22297 * cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2. 22298 (pass_jump): Rename from pass_jump2. 22299 (execute_jump2, pass_jump2): New. 22300 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't 22301 perform cfg cleanup here. Move the test of PUSH_ROUNDING 22302 and ACCUMULATE_OUTGOING_ARGS test... 22303 (gate_handle_stack_adjustments): ... here. 22304 * passes.c (init_optimization_passes): Update for pass_jump2 rename. 22305 Place new pass_jump2 after pass_stack_adjustments. 22306 * tree-pass.h (pass_jump): Declare. 22307 223082012-06-09 Kenneth Zadeck <zadeck@naturalbridge.com> 22309 22310 * simplify-rtx.c (simplify_const_binary_operation): Fixed shift 22311 count trucation. 22312 223132012-06-08 Richard Henderson <rth@redhat.com> 22314 22315 PR c++/53602 22316 * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE 22317 note to a clobber insn when no other insn is available. 22318 223192012-06-08 Georg-Johann Lay <avr@gjlay.de> 22320 22321 * config/avr/avr.c (avr_case_values_threshold): Return 7. 22322 223232012-06-07 Andreas Schwab <schwab@linux-m68k.org> 22324 22325 * genhooks.c (main): Set progname. 22326 (emit_documentation): Remove variable found_start, always bail out 22327 when a place is missing. 22328 * doc/tm.texi.in (C++ ABI): Add @hook TARGET_CXX_DECL_MANGLING_CONTEXT. 22329 223302012-06-07 Jakub Jelinek <jakub@redhat.com> 22331 22332 PR middle-end/53580 22333 * omp-low.c (scan_omp): Change first argument to gimple_seq *, 22334 call walk_gimple_seq_mod instead of walk_gimple_seq. 22335 (scan_sharing_clauses, scan_omp_parallel, scan_omp_task, 22336 scan_omp_for, scan_omp_sections, scan_omp_single, 22337 execute_lower_omp): Adjust callers. 22338 (scan_omp_1_stmt): Likewise. If check_omp_nesting_restrictions 22339 returns false, replace stmt with GIMPLE_NOP. 22340 (check_omp_nesting_restrictions): Instead of issuing warnings, 22341 issue errors and return false if any errors were reported. 22342 223432012-06-06 Steven Bosscher <steven@gcc.gnu.org> 22344 22345 * doc/invoke.texi (fconserve-space): Remove documentation. 22346 223472012-06-06 Edmar Wienskoski <edmar@freescale.com> 22348 22349 * config/rs6000/rs6000-tables.opt: Regenerated. 22350 223512012-06-06 Richard Guenther <rguenther@suse.de> 22352 22353 PR tree-optimization/53081 22354 * tree-data-ref.h (adjacent_store_dr_p): Rename to ... 22355 (adjacent_dr_p): ... this and make it work for reads, too. 22356 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY. 22357 (struct partition_s): Change main_stmt to main_dr, add 22358 secondary_dr member. 22359 (build_size_arg_loc): Change to date data-reference and not 22360 gimplify here. 22361 (build_addr_arg_loc): New function split out from ... 22362 (generate_memset_builtin): ... here. Use it and simplify. 22363 (generate_memcpy_builtin): New function. 22364 (generate_code_for_partition): Adjust. 22365 (classify_partition): Streamline pattern detection. Detect memcpy. 22366 (ldist_gen): Adjust. 22367 (tree_loop_distribution): Adjust seed statements for memcpy 22368 recognition. 22369 223702012-06-06 Matt Turner <mattst88@gmail.com> 22371 22372 * config/arm/mmintrin.h (_mm_empty): New. 22373 (_m_empty): New. 22374 223752012-06-06 Richard Sandiford <r.sandiford@uk.ibm.com> 22376 22377 * doc/invoke.texi (sched-pressure-algorithm): Document new --param. 22378 * common.opt (fsched-pressure-algorithm=): Remove. 22379 * flag-types.h (sched_pressure_algorithm): Move to... 22380 * sched-int.h (sched_pressure_algorithm): ...here. 22381 * params.def (sched-pressure-algorithm): New param. 22382 * haifa-sched.c (sched_init): Use it to initialize sched_pressure. 22383 * common/config/s390/s390-common.c (s390_option_optimization_table): 22384 Remove OPT_fsched_pressure_algorithm_ entry. 22385 * config/s390/s390.c (s390_option_override): Set a default value for 22386 PARAM_SCHED_PRESSURE_ALGORITHM. 22387 223882012-06-05 Michael Meissner <meissner@linux.vnet.ibm.com> 22389 22390 PR target/53487 22391 * config/rs6000/rs6000.c (rs6000_generate_compare): If we are 22392 doing an unsigned compare, make sure the second argument is not a 22393 negative constant. 22394 (rs6000_emit_cmove): Don't allow floating point comparisons when 22395 generating ISEL moves. 22396 223972012-06-05 Edmar Wienskoski <edmar@freescale.com> 22398 22399 * config/rs6000/e5500.md: New file. 22400 * config/rs6000/e6500.md: New file. 22401 * config/rs6000/rs6000.c (processor_costs): Add new costs for 22402 e5500 and e6500. 22403 (rs6000_option_override_internal): Altivec and Spe options not 22404 allowed with e5500. Spe options not allowed with e6500. Increase 22405 move inline limit for e5500 and e6500. Disable string instructions 22406 for e5500 and e6500. Enable branch targets alignment for e5500 and 22407 e6500. Initialize rs6000_cost for e5500 and e6500. 22408 (rs6000_adjust_cost): Add extra scheduling cycles between compare 22409 and brnach for e5500 and e6500. 22410 (rs6000_issue_rate): Set issue rate for e5500 and e6500. 22411 * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and 22412 e6500. 22413 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500. 22414 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and 22415 ppce6500. 22416 Include e5500.md and e6500.md. 22417 * config/rs6000/rs6000-opt.h (processor_type): Add 22418 PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500. 22419 * config.gcc (cpu_is_64bit): Add new cores e5500, e6500. 22420 (powerpc*-*-*): Add new cores e5500, e6500. 22421 * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus. 22422 224232012-06-05 Richard Guenther <rguenther@suse.de> 22424 22425 * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last change. 22426 224272012-06-05 H.J. Lu <hongjiu.lu@intel.com> 22428 22429 PR target/53575 22430 * config.gcc: Select x32 run-time library if --with-abi={x32|mx32} 22431 is used for x86_64-*-*. 22432 224332012-06-05 Richard Guenther <rguenther@suse.de> 22434 22435 PR tree-optimization/30442 22436 * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block 22437 vectorization stop analysis at the first stmt we cannot compute 22438 a data-reference for instead of giving up completely. 22439 224402012-06-05 Richard Guenther <rguenther@suse.de> 22441 22442 * tree-loop-distribution.c (struct partition_s): Add has_writes member. 22443 (partition_alloc): Initialize it. 22444 (partition_has_writes): New function. 22445 (rdg_flag_uses): Adjust. 22446 (rdg_flag_vertex): Likewise. 22447 (rdg_flag_vertex_and_dependent): Likewise. 22448 (rdg_flag_loop_exits): Likewise. 22449 (build_rdg_partition_for_component): Likewise. 22450 (rdg_build_partitions): Likewise. 22451 224522012-06-05 Richard Guenther <rguenther@suse.de> 22453 22454 PR tree-optimization/53081 22455 * tree-loop-distribution.c (generate_memset_builtin): Handle all 22456 kinds of byte-sized stores. 22457 (classify_partition): Likewise. 22458 (tree_loop_distribution): Adjust seed statements used for 22459 !flag_tree_loop_distribution. 22460 224612012-06-05 Alan Modra <amodra@gmail.com> 22462 22463 * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment. 22464 (rs6000_emit_prologue): Ensure register used for inline saves 22465 of vector regs is not the static chain register. Revise comment. 22466 224672012-06-04 Oleg Endo <olegendo@gcc.gnu.org> 22468 22469 * doc/md.texi (Standard Pattern Names For Generation): Document 22470 sincos pattern. 22471 224722012-06-04 H.J. Lu <hongjiu.lu@intel.com> 22473 22474 PR bootstrap/53555 22475 * config/i386/i386.c (ix86_sched_reorder): Skip debug insns. 22476 224772012-06-04 Jason Merrill <jason@redhat.com> 22478 22479 * dwarf2out.c (is_unit_die): New. 22480 (copy_declaration_context, copy_ancestor_tree): Use it. 22481 (copy_decls_walk): Likewise. 22482 224832012-06-04 Paolo Carlini <paolo.carlini@oracle.com> 22484 22485 PR c++/53524 22486 * doc/invoke.texi (Wenum-compare): Update documentation. 22487 224882012-06-04 Dodji Seketeli <dodji@redhat.com> 22489 22490 PR preprocessor/53463 22491 * parser.c (cp_parser_assignment_expression): Use the location 22492 for the '=' as the default location for the expression. 22493 224942012-06-04 Edmar Wienskoski <edmar@freescale.com> 22495 22496 PR target/53559 22497 * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of 22498 operands. 22499 (altivec_stvlxl): Ditto. 22500 (altivec_stvrx): Ditto. 22501 (altivec_stvrxl): Ditto. 22502 225032012-06-04 Vladimir Makarov <vmakarov@redhat.com> 22504 22505 * ira-int.h (struct target_ira_int): Add member x_ira_uniform_class_p. 22506 (ira_uniform_class_p): New macro. 22507 22508 * ira.c (setup_uniform_class_p): New function. 22509 (setup_allocno_and_important_classes): Call the function. 22510 (print_unform_and_important_classes): New function. 22511 (print_classes): Rename to print_translated_classes. 22512 (ira_debug_allocno_classes): Add call of 22513 print_unform_and_important_classes. 22514 22515 * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform 22516 classes instead of pressure classes. 22517 225182012-06-04 Aldy Hernandez <aldyh@redhat.com> 22519 22520 PR middle-end/47530 22521 * trans-mem.c (expand_block_edges): Do not skip the first 22522 statement when resetting the BB. 22523 225242012-06-04 Richard Guenther <rguenther@suse.de> 22525 22526 * tree-data-ref.c (stores_from_loop): Remove. 22527 (stmt_with_adjacent_zero_store_dr_p): Likewise. 22528 (stores_zero_from_loop): Likewise. 22529 * tree-data-ref.h (stores_from_loop, stores_zero_from_loop, 22530 stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove. 22531 (adjacent_store_dr_p): New function. 22532 * tree-loop-distribution.c (generate_memset_builtin): Pass 22533 the RDG, use the already available data-reference. 22534 (generate_code_for_partition): Pass down RDG. 22535 (classify_partition): Inline parts of the former 22536 stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p. 22537 (ldist_gen): Remember if there was any detected builtin and 22538 do less work if not and flag_tree_loop_distribution is not set. 22539 (tree_loop_distribution): Inline and fuse stores_from_loop 22540 and stores_zero_from_loop here. 22541 225422012-06-04 Richard Guenther <rguenther@suse.de> 22543 22544 PR middle-end/53471 22545 * dwarf2out.c (dwarf2out_finish): If generating LTO do not 22546 create new assembler names. 22547 225482012-06-04 Richard Guenther <rguenther@suse.de> 22549 22550 * tree-data-ref.c (struct rdg_vertex_info): Remove. 22551 (rdg_vertex_for_stmt): Simplify using gimple_uid. 22552 (create_rdg_vertices): Pass loop argument, remove stmt to RDG index 22553 hashtable. Record stmt data-references. 22554 (hash_stmt_vertex_info): Remove. 22555 (eq_stmt_vertex_info): Likewise. 22556 (hash_stmt_vertex_del): Likewise. 22557 (build_empty_rdg): Simplify. 22558 (build_rdg): Adjust. 22559 (free_rdg): Likewise. 22560 (ref_base_address): Remove. 22561 (have_similar_memory_accesses): Likewise. 22562 * tree-data-ref.h (create_rdg_vertices): Remove. 22563 (struct rdg_vertex): Add datarefs member. 22564 (RDGV_DATAREFS): New define. 22565 (RDG_DATAREFS): Likewise. 22566 (have_similar_memory_accesses): Remove. 22567 (rdg_has_similar_memory_accesses): Likewise. 22568 * tree-loop-distribution.c (ref_base_address): Re-implement here. 22569 (similar_memory_accesses): Re-implement using existing data-references. 22570 (tree_loop_distribution): Initialize stmt uids for the stmt to 22571 RDG index mapping. 22572 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only 22573 access stmt vinfo for stmts in loop. 22574 225752012-06-04 Andreas Schwab <schwab@linux-m68k.org> 22576 22577 PR target/53461 22578 * config/m68k/m68k.md ("tablejump"): Fix check for 22579 CASE_VECTOR_PC_RELATIVE. 22580 225812012-06-04 Steven Bosscher <steven@gcc.gnu.org> 22582 22583 * output.h (merge_weak, assemble_alias, 22584 initializer_constant_valid_p, 22585 initializer_constant_valid_for_bitfield_p): Move protos from here... 22586 * tree.h: ... to here. 22587 * cgraphclones.c: Do not include output.h. 22588 * gimplify.c: Likewise. 22589 * reload.c: Likewise. 22590 * recog.c: Likewise. 22591 * tree-ssa-loop-ivopts.c: Likewise. 22592 * tree-switch-conversion.c: Likewise. 22593 * c-parser.c: Likewise. 22594 * c-typeck.c: Likewise. 22595 * Makefile.in: Fix dependencies. 22596 225972012-06-04 Georg-Johann Lay <avr@gjlay.de> 22598 22599 PR target/46261 22600 * config/avr/avr-stdint.h: New file. 22601 * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of 22602 newlib-stdint.h 22603 226042012-06-04 Jakub Jelinek <jakub@redhat.com> 22605 22606 PR tree-optimization/53550 22607 * tree-ssa-loop-niter.c (number_of_iterations_cond): If type 22608 is POINTER_TYPE_P, use sizetype as step type instead of type. 22609 226102012-06-04 Richard Guenther <rguenther@suse.de> 22611 22612 * tree-data-ref.c (have_similar_memory_accesses_1): Remove. 22613 (ref_base_address_1): Likewise. 22614 (remove_similar_memory_refs): Likewise. 22615 * tree-data-ref.h (remove_similar_memory_refs): Remove. 22616 * tree-loop-distribution.c (classify_partition): Do not classify 22617 as builtin if -ftree-loop-distribute-patterns is not enabled. 22618 (fuse_partitions_with_similar_memory_accesses): Inline ... 22619 (ldist_gen): ... here. Fuse all non-builtin partitions if 22620 -ftree-loop-distribution is not enabled. Properly return 22621 the number of created partitions. Do not update SSA form here but ... 22622 (tree_loop_distribution): ... once here for the whole function. 22623 Only walk innermost loops, constrain loops we consider here 22624 further. Do not call remove_similar_memory_refs. 22625 (distribute_loop): Do not check number of loop nodes here. 22626 226272012-06-04 Steven Bosscher <steven@gcc.gnu.org> 22628 22629 * Makefile.in (GIMPLE_H): Do not depend on TARGET_H. 22630 226312012-06-03 Martin Jambor <mjambor@suse.cz> 22632 22633 * ipa-prop.h (ipa_get_jf_known_type_offset): New function. 22634 (ipa_get_jf_known_type_base_type): Likewise. 22635 (ipa_get_jf_known_type_component_type): Likewise. 22636 (ipa_get_jf_constant): Likewise. 22637 (ipa_get_jf_pass_through_formal_id): Likewise. 22638 (ipa_get_jf_pass_through_operation): Likewise. 22639 (ipa_get_jf_ancestor_offset): Likewise. 22640 (ipa_get_jf_ancestor_type): Likewise. 22641 (ipa_get_jf_ancestor_formal_id): Likewise. 22642 (ipa_get_jf_member_ptr_pfn): Likewise. 22643 * ipa-prop.c (ipa_set_jf_known_type): New function. 22644 (ipa_set_jf_constant): Likewise. 22645 (ipa_set_jf_simple_pass_through): Likewise. 22646 (ipa_set_jf_arith_pass_through): Likewise. 22647 (ipa_set_ancestor_jf): Likewise. 22648 (fill_member_ptr_cst_jump_function): Moved up and renamed to 22649 ipa_set_jf_member_ptr_cst. 22650 (detect_type_change_1): Use the new jump function creation functions. 22651 (compute_complex_assign_jump_func): Likewise. 22652 (compute_complex_ancestor_jump_func): Likewise. 22653 (compute_known_type_jump_func): Likewise. 22654 (compute_scalar_jump_functions): Likewise. 22655 (compute_pass_through_member_ptrs): Likewise. 22656 (determine_cst_member_ptr): Likewise. 22657 (combine_known_type_and_ancestor_jfs): Likewise. 22658 (try_make_edge_direct_simple_call): Likewise. 22659 (try_make_edge_direct_virtual_call): Likewise. 22660 (update_indirect_edges_after_inlining): Likewise. 22661 * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function 22662 access functions. Incorporat NOP_EXPR and BINFO handling from its 22663 callers. 22664 (ipa_get_jf_ancestor_result): Likewise. Incorporate handling BINFOs 22665 which was in its callers. 22666 (ipa_value_from_jfunc): Use jump function access functions. Some 22667 functionality moved to functions above. 22668 (propagate_vals_accross_ancestor): Likewise. 22669 (propagate_vals_accross_pass_through): Use jump function access 22670 functions. 22671 (propagate_accross_jump_function): Likewise. 22672 * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function 22673 access functions. 22674 (inline_merge_summary): Likewise. 22675 226762012-06-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 22677 22678 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define. 22679 * config/pa/pa.c (pa_attr_length_millicode_call): Use 22680 MAX_PCREL17F_OFFSET instead of fixed offset. 22681 (pa_attr_length_call): Likewise. 22682 (pa_attr_length_indirect_call): Likewise. 22683 226842012-06-03 Oleg Endo <olegendo@gcc.gnu.org> 22685 22686 PR target/53512 22687 * config/sh/sh.opt (mfsca, mfsrra): New options. 22688 * config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA 22689 condition. 22690 (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition. 22691 (sinssf2, cossf2): Fold expanders to ... 22692 (sincossf3): ... this new expander. Use TARGET_FPU_ANY and 22693 TARGET_FSCA condition. 22694 * config/sh/sh.c (sh_option_override): Handle TARGET_FSRRA and 22695 TARGET_FSCA. 22696 * doc/invoke.texi (SH Options): Add descriptions for -mfsca, 22697 -mno-fsca, -mfsrra, -mno-fsrra. 22698 226992012-06-03 Matt Turner <mattst88@gmail.com> 22700 22701 * config/mips/4600.md (r4700_imul_si): New. 22702 (r4700_imul_di): New. 22703 (r4700_fmul_single): New. 22704 (r4700_fmul_double): New. 22705 * config/mips/mips-cpus.def: Add r4700. 22706 * config/mips/mips.c: Likewise. 22707 * config/mips/mips.md: Likewise. 22708 * config/mips/mips-tables.opt: Regenerate. 22709 227102012-06-02 Steven Bosscher <steven@gcc.gnu.org> 22711 22712 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to 22713 new function sparc_initial_elimination_offset. 22714 * config/sparc/sparc.c (sparc_initial_elimination_offset): New 22715 function. 22716 * config/sparc/sparc-protos.h (sparc_initial_elimination_offset): 22717 Prototype it. 22718 227192012-06-02 Kenneth Zadeck <zadeck@naturalbridge.com> 22720 22721 * expmed.c (expand_mult, choose_multiplier): Change 22722 "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT". 22723 * expr.c (convert_modes): Likewise. 22724 * explow.c (plus_constant): Likewise. 22725 * fixed-value.c (fixed_saturate1, fixed_saturate2) 22726 (do_fixed_add, do_fixed_multiply, do_fixed_multiply) 22727 (do_fixed_multiply, do_fixed_multiply, do_fixed_divide) 22728 (do_fixed_divide, do_fixed_divide, do_fixed_divide) 22729 (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift) 22730 (do_fixed_shift, fixed_convert, fixed_convert) 22731 (fixed_convert_from_int, fixed_convert_from_int) 22732 (fixed_convert_from_real): Likewise. 22733 * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p) 22734 (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise. 22735 * varasm.c (output_constructor_bitfield): Likewise. 22736 * tree-vrp.c (register_edge_assert_for_2): Likewise. 22737 * double-int.c (rshift_double, lshift_double): Likewise. 22738 * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int): 22739 Likewise. 22740 * simplify-rtx.c (mode_signbit_p) 22741 (simplify_const_unary_operation, simplify_binary_operation_1) 22742 (simplify_immed_subreg): Likewise. 22743 * builtins.c (c_readstr, fold_builtin_bitop): Likewise. 22744 * tree-vect-generic.c (build_replicated_const): Likewise. 22745 * dbxout.c (stabstr_O): Likewise. 22746 * emit-rtl.c (immed_double_int_const, immed_double_const) 22747 (gen_lowpart_common, init_emit_once): Likewise. 22748 * tree.c (integer_pow2p, tree_log2, tree_floor_log2) 22749 (widest_int_cst_value, upper_bound_in_type): Likewise. 22750 * stor-layout.c (initialize_sizetypes, fixup_signed_type) 22751 (fixup_unsigned_type): Likewise. 22752 * real.c (real_to_integer2, real_from_integer): Likewise. 22753 * dwarf2out.c (size_of_loc_descr, size_of_die, output_die) 22754 (clz_loc_descriptor, mem_loc_descriptor): Likewise. 22755 227562012-06-01 Eric Botcazou <ebotcazou@adacore.com> 22757 22758 PR middle-end/53501 22759 * fold-const.c (fold_binary_loc): Refine previous change. 22760 227612012-06-01 Olivier Hainque <hainque@adacore.com> 22762 22763 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore 22764 the "do {" part of the do-while(0) loop. 22765 227662012-06-01 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com> 22767 22768 * config/i386/i386.c (x86_sched_reorder): New function. 22769 Added new function x86_sched_reorder. 22770 227712012-06-01 Richard Guenther <rguenther@suse.de> 22772 22773 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop): 22774 Handle PHIs. 22775 (classify_partition): Likewise. 22776 227772012-06-01 Richard Guenther <rguenther@suse.de> 22778 22779 * tree-loop-distribution.c (enum partition_kind): New enum. 22780 (struct partition_s): Add kind and main_stmt members. 22781 (partition_alloc): Initialize kind to PKIND_NORMAL. 22782 (partition_builtin_p): New function. 22783 (copy_loop_before): Remove failure path and assert instead. 22784 (generate_loops_for_partition): Likewise. 22785 (generate_memset_zero): Fold into ... 22786 (generate_memset_builtin): ... this. 22787 (classify_partition): New function with code from 22788 can_generate_builtin and generate_builtin. 22789 (generate_builtin): Remove. 22790 (can_generate_builtin): Likewise. 22791 (fuse_partitions_with_similar_memory_accesses): Call 22792 partition_builtin_p instead of can_generate_builtin. 22793 (rdg_build_partitions): Do not call 22794 fuse_partitions_with_similar_memory_accesses here... 22795 (ldist_gen): ... but here after classifying all partitions. 22796 Remove failure path of generate_code_for_partition. 22797 (generate_code_for_partition): Generate code according 22798 to partition classification. 22799 228002012-06-01 Manuel López-Ibáñez <manu@gcc.gnu.org> 22801 Jonathan Wakely <jwakely.gcc@gmail.com> 22802 22803 PR c++/50134 22804 * doc/invoke.texi (Warning Options): Explain purpose and differences 22805 between -Wmissing-prototypes and -Wmissing-declarations. 22806 228072012-06-01 Christian Bruel <christian.bruel@st.com> 22808 22809 * gcc.c (save_switch): Add user_p parameter. 22810 (read_specs): Likewise. 22811 (set_specs): Likewise. 22812 (validate_switches): Likewise. 22813 (validate_switches_from_spec): Likewise. 22814 (validate_all_switches): Pass on user_p parameter. 22815 (struct spec_list): Add user_p field. 22816 (struct switchstr): Add known field. 22817 (save_switch): Add known parameter. 22818 (INIT_STATIC_SPEC): Initialize user_p; 22819 (driver_unknown_option_callbac): call save_switch if 22820 OPT_SPECIAL_unknown. 22821 (driver_handle_option): Propagate OPT_specs. 22822 (do_spec_1): Set validated only if known. 22823 (check_live_switch): Likewise. 22824 (validate_switches): Set validated if known or user_spec. 22825 228262012-06-01 Hans-Peter Nilsson <hp@axis.com> 22827 22828 Add CRIS atomic patterns for 1, 2, and 4 bytes. 22829 * config/cris/cris.c (cris_emit_trap_for_misalignment): New function. 22830 * config/cris/cris-protos.h: Declare it. 22831 * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32] 22832 (TARGET_DEFAULT): Add alignment by 32. 22833 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New 22834 case, as TARGET_CPU_DEFAULT == 0 but with alignment as for 22835 TARGET_CPU_DEFAULT == 32. 22836 (TARGET_TRAP_UNALIGNED_ATOMIC): New macro. 22837 * config/cris/cris.md: Include sync.md. Avoid allocating specific 22838 numbers by replacing the define_constants for all UNSPECs with the 22839 equivalent define_c_enum construct. 22840 * config/cris/cris.opt (mtrap-unaligned-atomic): New option. 22841 * config/cris/sync.md: New file. 22842 228432012-05-31 Matt Turner <mattst88@gmail.com> 22844 22845 * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul. 22846 (r4600_imul_di): New. 22847 (r4600_idiv_si): Rename from r4600_idiv. 22848 (r4600_idiv_di): New. 22849 228502012-05-31 Steven Bosscher <steven@gcc.gnu.org> 22851 22852 * output.h (__gcc_host_wide_int__): Move to hwint.h. 22853 (decl_default_tls_model): Move to tree.h 22854 (dump_file): Move to system.h. 22855 (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor, 22856 dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline, 22857 dbxout_begin_empty_stabs, dbxout_begin_simple_stabs, 22858 dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero, 22859 dbxout_stab_value_zero, dbxout_stab_value_label_diff, 22860 dbxout_stab_value_internal_label, 22861 dbxout_stab_value_internal_label_diff): Move from here ... 22862 * dbxout.h: ... to here. 22863 * system.h (dump_file): Moved here from output.h. 22864 * hwint.h (__gcc_host_wide_int__): Moved here from output.h. 22865 * tree.h (decl_default_tls_model): Moved here from output.h. 22866 * varasm.c (default_stabs_asm_out_destructor, 22867 default_stabs_asm_out_constructor): Move from here ... 22868 * dbxout.c: ... to here. 22869 22870 * gcov-dump.c (dump_file): Rename to dump_gcov_file. Update callers. 22871 22872 * collect2.h (dump_file): Rename to dump_ld_file. 22873 * collect2.c: Likewise. 22874 * tlink.c: Likewise. 22875 22876 * alias.c: Do not include output.h. 22877 * auto-inc-dec.c: Likewise. 22878 * bt-load.c: Likewise. 22879 * caller-save.c: Likewise. 22880 * cfg.c: Likewise. 22881 * cfgbuild.c: Likewise. 22882 * cfgcleanup.c: Likewise. 22883 * cfglayout.c: Likewise. 22884 * cfgloop.c: Likewise. 22885 * cfgloopanal.c: Likewise. 22886 * cfgloopmanip.c: Likewise. 22887 * cfgrtl.c: Likewise. 22888 * cgraph.c: Likewise. 22889 * cgraphclones.c: Likewise. 22890 * combine-stack-adj.c: Likewise. 22891 * combine.c: Likewise. 22892 * cprop.c: Likewise. 22893 * cse.c: Likewise. 22894 * cselib.c: Likewise. 22895 * dbgcnt.c: Likewise. 22896 * df-problems.c: Likewise. 22897 * df-scan.c: Likewise. 22898 * dojump.c: Likewise. 22899 * fwprop.c: Likewise. 22900 * gcse.c: Likewise. 22901 * graph.c: Likewise. 22902 * haifa-sched.c: Likewise. 22903 * hw-doloop.c: Likewise. 22904 * ipa-inline-transform.c: Likewise. 22905 * ipa-pure-const.c: Likewise. 22906 * ipa-reference.c: Likewise. 22907 * ipa-utils.c: Likewise. 22908 * ira-build.c: Likewise. 22909 * ira-emit.c: Likewise. 22910 * lcm.c: Likewise. 22911 * loop-doloop.c: Likewise. 22912 * loop-invariant.c: Likewise. 22913 * loop-iv.c: Likewise. 22914 * loop-unroll.c: Likewise. 22915 * loop-unswitch.c: Likewise. 22916 * lto-cgraph.c: Likewise. 22917 * lto-section-in.c: Likewise. 22918 * lto-streamer-in.c: Likewise. 22919 * mcf.c: Likewise. 22920 * mode-switching.c: Likewise. 22921 * postreload-gcse.c: Likewise. 22922 * postreload.c: Likewise. 22923 * predict.c: Likewise. 22924 * profile.c: Likewise. 22925 * ree.c: Likewise. 22926 * reg-stack.c: Likewise. 22927 * regcprop.c: Likewise. 22928 * regmove.c: Likewise. 22929 * regstat.c: Likewise. 22930 * reload1.c: Likewise. 22931 * sched-ebb.c: Likewise. 22932 * sel-sched-dump.c: Likewise. 22933 * simplify-rtx.c: Likewise. 22934 * stor-layout.c: Likewise. 22935 * store-motion.c: Likewise. 22936 * tracer.c: Likewise. 22937 * tree-affine.c: Likewise. 22938 * tree-cfg.c: Likewise. 22939 * tree-cfgcleanup.c: Likewise. 22940 * tree-dfa.c: Likewise. 22941 * tree-into-ssa.c: Likewise. 22942 * tree-nomudflap.c: Likewise. 22943 * tree-optimize.c: Likewise. 22944 * tree-pretty-print.c: Likewise. 22945 * tree-profile.c: Likewise. 22946 * tree-ssa-address.c: Likewise. 22947 * tree-ssa-ccp.c: Likewise. 22948 * tree-ssa-copy.c: Likewise. 22949 * tree-ssa-dom.c: Likewise. 22950 * tree-ssa-loop-ch.c: Likewise. 22951 * tree-ssa-loop-im.c: Likewise. 22952 * tree-ssa-loop-manip.c: Likewise. 22953 * tree-ssa-loop-niter.c: Likewise. 22954 * tree-ssa-loop-prefetch.c: Likewise. 22955 * tree-ssa-loop-unswitch.c: Likewise. 22956 * tree-ssa-loop.c: Likewise. 22957 * tree-ssa-propagate.c: Likewise. 22958 * tree-ssa-structalias.c: Likewise. 22959 * tree-ssa-tail-merge.c: Likewise. 22960 * tree-ssa-threadedge.c: Likewise. 22961 * tree-ssa-threadupdate.c: Likewise. 22962 * tree-ssa-uncprop.c: Likewise. 22963 * tree-ssa-uninit.c: Likewise. 22964 * tree-ssa.c: Likewise. 22965 * value-prof.c: Likewise. 22966 * var-tracking.c: Likewise. 22967 * web.c: Likewise. 22968 22969 * config/m32r/m32r.c: Include dbxout.h. 22970 * config/pa/pa.c: Likewise. 22971 * config/rs6000/rs6000.c: Likewise. 22972 22973 * Makefile.in: Fix dependencies. 22974 * config/rs6000/t-rs5000: Likewise. 22975 229762012-05-31 Aldy Hernandez <aldyh@redhat.com> 22977 22978 * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm. 22979 * gimple.h (block_in_transaction): Check for flag_tm. 22980 229812012-05-31 Aldy Hernandez <aldyh@redhat.com> 22982 22983 PR tree-optimization/52558 22984 * cfg.c (alloc_aux_for_edge): Fix comment. 22985 (alloc_aux_for_edge): Remove static. 22986 * basic-block.h (alloc_aux_for_edge): Protoize. 22987 * tree-ssa-loop-im.c (execute_sm_if_changed): New. 22988 (execute_sm_if_changed_flag): New. 22989 (execute_sm_if_changed_flag_set): New. 22990 (execute_sm): Do not generate data races unless requested. 22991 (tree_ssa_lim_initialize): Call alloc_aux_for_edges. 22992 (tree_ssa_lim_finalize): Call free_aux_for_edges. 22993 * gimple.h (block_in_transaction): New. 22994 (gimple_in_transaction): Use block_in_transaction. 22995 229962012-05-31 Georg-Johann Lay <avr@gjlay.de> 22997 22998 PR target/51345 22999 * config/avr/avr.opt (-msp8): Document it. 23000 * doc/invoke.texi (AVR Options): Ditto. And document related 23001 built-in macros. 23002 230032012-05-31 Diego Novillo <dnovillo@google.com> 23004 23005 * configure.ac (CXX_FOR_BUILD): Define and substitute. 23006 (BUILD_CXXFLAGS): Define and substitute. 23007 * Makefile.in (BUILD_CXXFLAGS): Define. 23008 (CXX_FOR_BUILD): Define. 23009 (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++. 23010 (LINKER_FOR_BUILD): Likewise. 23011 (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++. 23012 (BUILD_LINKERFLAGS): Likewise. 23013 * configure: Regenerate. 23014 230152012-05-31 Steven Bosscher <steven@gcc.gnu.org> 23016 23017 * Makefile.in: Fix many dependencies. 23018 * tree-profile.c: Don't include regs.h. 23019 * tree-vectorizer.c: Don't include cfglayout.h. 23020 * tree-vect-stmts.c: Likewise. 23021 * tree-vect-slp.c: Likewise. 23022 * tree-vect-loop.c: Likewise. 23023 * reg-stack.c: Likewise. 23024 * tree-ssa-loop-manip.c: Likewise. 23025 * toplev.c: Likewise. 23026 * varasm.c: Don't include cfglayout.h, basic-block.h, 23027 and tree-iterator.h. 23028 * tree-cfgcleanup.c: Don't include cfglayout.h. 23029 * passes.c: Don't include cfglayout.h, dwarf2asm.h, 23030 dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h. 23031 * cgraphclones.c: Don't include plugin.h. 23032 230332012-05-31 Georg-Johann Lay <avr@gjlay.de> 23034 23035 * config/avr/t-avr: Correct avr-mmcu.texi dependencies. 23036 (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output. 23037 * doc/avr-mmcu.texi (svn:eol-style): Set to native. 23038 230392012-05-31 Richard Guenther <rguenther@suse.de> 23040 23041 * tree-loop-distribution.c (struct partition_s): New struct, 23042 typedef and vector type. 23043 (partition_alloc, partition_free): New functions. 23044 (generate_loops_for_partition, generate_builtin, 23045 generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex, 23046 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits, 23047 build_rdg_partition_for_component, can_generate_builtin, 23048 similar_memory_accesses, fuse_partitions_with_similar_memory_accesses, 23049 rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions, 23050 number_of_rw_in_partition, partition_contains_all_rw, 23051 ldist_gen): Use partition_t instead of bitmap. 23052 230532012-05-31 Georg-Johann Lay <avr@gjlay.de> 23054 23055 * config/avr/gen-avr-mmcu-texi.c: Sort MCUs. 23056 * doc/avr-mmcu.texi: Regenerate. 23057 230582012-05-31 Richard Guenther <rguenther@suse.de> 23059 23060 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop): 23061 Use FOR_EACH_SSA_DEF_OPERAND. 23062 (generate_builtin): Adjust. 23063 (stmt_generated_in_another_partition): Remove. 23064 (add_scalar_computations_to_partition): Likewise. 23065 (rdg_build_partitions): Do not call 23066 add_scalar_computations_to_partition. 23067 230682012-05-31 Eric Botcazou <ebotcazou@adacore.com> 23069 23070 * tree-dfa.c (get_ref_base_and_extent): Compute the offset using 23071 double ints throughout. 23072 * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>: 23073 Check that the position of the field is representable as an integer. 23074 230752012-05-31 Richard Guenther <rguenther@suse.de> 23076 23077 * tree-data-ref.c (dr_analyze_innermost): Properly convert 23078 the MEM_REF offset to sizetype. 23079 230802012-05-31 Georg-Johann Lay <avr@gjlay.de> 23081 23082 * doc/invoke.texi (AVR Options): Fix typos. 23083 230842012-05-31 Hans-Peter Nilsson <hp@axis.com> 23085 23086 * config/cris/cris.h (CC1_SPEC): Pass through all -march= 23087 and -mcpu= options. 23088 (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10, 23089 non-v32 into --march=v0_v10. 23090 230912012-05-31 Richard Sandiford <rdsandiford@googlemail.com> 23092 23093 * ira-int.h (target_ira_int): Rename x_move_cost to 23094 x_ira_register_move_cost, x_may_move_in_cost to 23095 x_ira_may_move_in_cost and x_may_move_out_cost to 23096 x_ira_may_move_out_cost. Delete the old fields with 23097 those names and also x_ira_max_register_move_cost, 23098 x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost. 23099 (move_cost, may_move_in_cost, may_move_out_cost) 23100 (ira_max_register_move_cost, ira_max_may_move_in_cost) 23101 (ira_max_may_move_out_cost): Delete. 23102 * ira.c (init_move_cost): Rename to... 23103 (ira_init_register_move_cost): ...this, deleting the old 23104 function with that name. Apply above variable renamings. 23105 Retain asserts for null fields. 23106 (ira_init_once): Don't initialize register move costs here. 23107 (free_register_move_costs): Apply above variable renamings. 23108 Remove code for deleted fields. 23109 231102012-05-31 Richard Sandiford <rdsandiford@googlemail.com> 23111 23112 * ira.c (init_move_cost): Adjust choice of subclasses to match 23113 the current ira_init_register_move_cost choice. Use 23114 ira_class_subset_p instead of reg_class_subset_p. 23115 (ira_init_register_move_cost): Assert that move_cost, 23116 may_move_in_cost and may_move_out_cost already hold the desired 23117 values for their ira_* equivalents. For the latter two, 23118 ignore classes that can't store a register of the given mode. 23119 231202012-05-31 Richard Sandiford <rdsandiford@googlemail.com> 23121 23122 * ira.c (setup_allocno_and_important_classes): Use 23123 ira_class_hard_regs_num to check whether a class has any 23124 allocatable registers. 23125 (ira_init_register_move_cost): Likewise. 23126 231272012-05-31 Richard Sandiford <rdsandiford@googlemail.com> 23128 23129 * ira.c (init_move_cost): Adjust local variable names to match 23130 file conventions. Use ira_assert instead of gcc_assert. 23131 231322012-05-31 Richard Sandiford <rdsandiford@googlemail.com> 23133 23134 * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost): 23135 Move these definitions and associated target_globals fields to... 23136 * ira-int.h: ...here. 23137 * rtl.h (init_move_cost): Delete. 23138 * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to... 23139 * ira.c: ...here, making the latter static. 23140 231412012-05-31 Richard Sandiford <rdsandiford@googlemail.com> 23142 23143 * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary 23144 and ira_register_move_cost instead of init_move_cost and move_cost. 23145 231462012-05-31 Richard Sandiford <rdsandiford@googlemail.com> 23147 23148 * ira.h (target_ira): Delete x_ira_available_class_regs. 23149 (ira_available_class_regs): Delete. 23150 * ira.c (setup_available_class_regs): Delete. 23151 (setup_alloc_classes): Don't call it. 23152 (setup_pressure_classes): Use ira_class_hard_regs_num instead of 23153 ira_available_class_regs. 23154 * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info) 23155 (model_spill_cost): Likewise. 23156 * ira-build.c (low_pressure_loop_node_p): Likewise. 23157 * ira-color.c (color_pass): Likewise. 23158 * ira-emit.c (change_loop): Likewise. 23159 * ira-lives.c (inc_register_pressure, dec_register_pressure) 23160 (single_reg_class, ira_implicitly_set_insn_hard_regs) 23161 (process_bb_node_lives): Likewise. 23162 * loop-invariant.c (gain_for_invariant): Likewise. 23163 231642012-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 23165 23166 PR target/52999 23167 * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define. 23168 (pa_section_type_flags): New. 23169 (pa_legitimate_constant_p): Revert previous change. 23170 231712012-05-30 Steven Bosscher <steven@gcc.gnu.org> 23172 23173 * ira.c (allocate_initial_values): Make static. 23174 231752012-05-30 Uros Bizjak <ubizjak@gmail.com> 23176 23177 * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: 23178 Generate tls_initial_exec_64_sun only when !TARGET_X32. 23179 231802012-05-30 Richard Guenther <rguenther@suse.de> 23181 23182 PR middle-end/53501 23183 * fold-const.c (fold_binary_loc): Make sure to call 23184 fold_plusminus_mult_expr with the original sign of operands. 23185 231862012-05-30 Steven Bosscher <steven@gcc.gnu.org> 23187 23188 * Makefile.in: Fix many dependencies. 23189 (DWARF2_H): Depend on dwarf2.def. 23190 (RTL_ERROR_H): Depend on rtl-error.h. 23191 (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New. Replace 23192 all gimple-pretty-print.h and tree-pretty-print.h references. 23193 231942012-05-30 Marc Glisse <marc.glisse@inria.fr> 23195 23196 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of 23197 concatenations. 23198 231992012-05-30 Richard Guenther <rguenther@suse.de> 23200 23201 PR middle-end/53522 23202 * tree-emutls.c (gen_emutls_addr): Do not add globals to 23203 referenced-vars. 23204 232052012-05-30 Eric Botcazou <ebotcazou@adacore.com> 23206 23207 * explow.c (probe_stack_range): Restore simple control flow and stop 23208 again when the probe cannot be generated if HAVE_check_stack. 23209 232102012-05-30 Jakub Jelinek <jakub@redhat.com> 23211 23212 PR rtl-optimization/53519 23213 * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx 23214 instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR. 23215 232162012-05-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 23217 23218 * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error. 23219 232202012-05-29 Jack Howarth <howarth@bromo.med.uc.edu> 23221 23222 PR debug/53453 23223 * doc/tm.texi: Update. 23224 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook. 23225 * target.def (force_at_comp_dir): New hook. 23226 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define. 23227 * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir. 23228 232292012-05-29 Jack Howarth <howarth@bromo.med.uc.edu> 23230 23231 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when 23232 Darwin >= 10. 23233 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10. 23234 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10. 23235 232362012-05-29 Oleg Endo <olegendo@gcc.gnu.org> 23237 23238 PR target/51340 23239 * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if 23240 flag_unsafe_math_optimizations is set. 23241 * doc/invoke.texi (SH Options): Add -mno-fused-madd description. 23242 Update description of -mfused-madd. 23243 232442012-05-29 Oleg Endo <olegendo@gcc.gnu.org> 23245 23246 PR target/52941 23247 * config/sh/predicates.md (atomic_arith_operand, 23248 atomic_logical_operand): New predicates. 23249 * config/sh/sh.c (sh_option_override): Check atomic options. 23250 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS, 23251 UNSUPPORTED_HARD_ATOMIC_CPU): New macros. 23252 (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and 23253 UNSUPPORTED_HARD_ATOMIC_CPU. 23254 * config/sh/sync.md: Update description comments. 23255 (I12): New mode iterator. 23256 (fetchop_predicate, fetchop_constraint): New code attributes. 23257 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard, 23258 atomic_exchangesi_hard, atomic_exchange<mode>_hard, 23259 atomic_fetch_<fetchop_name>si_hard, 23260 atomic_fetch_<fetchop_name><mode>_hard, 23261 atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard, 23262 atomic_<fetchop_name>_fetchsi_hard, 23263 atomic_<fetchop_name>_fetch<mode>_hard, 23264 atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard, 23265 atomic_test_and_set_hard): New insns. 23266 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft, 23267 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft, 23268 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft, 23269 atomic_test_and_set_soft): Use same formatting for the first line of 23270 the asm block as in new insns above. 23271 (atomic_compare_and_swap<mode>, atomic_exchange<mode>, 23272 atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>, 23273 atomic_test_and_set): Integrate new *_hard insns into expanders. 23274 * config/sh/sh.opt (mhard-atomic): New option. 23275 * doc/invoke.texi (SH Options): Document it. 23276 232772012-05-29 Meador Inge <meadori@codesourcery.com> 23278 23279 * c-decl.c (c_push_function_context): Always create a new language 23280 function. 23281 (c_pop_function_context): Clear the language function created in 23282 c_push_function_context. 23283 232842012-05-29 Matt Turner <mattst88@gmail.com> 23285 23286 * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New. 23287 (define_bypass "ev6_fcmov"): New. 23288 232892012-05-29 Steven Bosscher <steven@gcc.gnu.org> 23290 23291 * integrate.c: Remove. 23292 * integrate.h: Remove. 23293 * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H. 23294 * config/arm/t-arm: Remove INTEGRATE_H dependency for target files. 23295 * config/rs6000/t-rs6000: Likewise 23296 * config/spu/t-spu-elf: Likewise. 23297 * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val, 23298 get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes 23299 from integrate.h to here. 23300 (initial_value_entry): New prototype. 23301 * reload.h (allocate_initial_values): Remove prototype. 23302 * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise. 23303 * cse.c (fixed_base_plus_p): Don't handle virtual registers for 23304 integrate.c. 23305 * dwarf2out.c (set_decl_origin_self, set_block_origin_self, 23306 set_decl_abstract_flags, set_block_abstract_flags): Move from 23307 integrate.c to here, the only user. 23308 * expmed.c (extract_fixed_bit_field): Remove outdated comment 23309 about integrate.c. 23310 * function.c: Don't include integrate.h. 23311 (struct initial_value_pair, struct initial_value_struct, 23312 get_hard_reg_initial_val, has_hard_reg_initial_val, 23313 get_hard_reg_initial_reg, emit_initial_value_sets): Move from 23314 integrate.c to here. 23315 (initial_value_entry): New function. 23316 * genemit.c (main): Don't print integrate.h include line. 23317 * ira.c: Don't include integrate.h. 23318 (allocate_initial_values): Move from integrate.c to here. 23319 (ira): Update allocate_initial_values call. 23320 * tree-inline.c: Don't include integrate.h. 23321 (function_attribute_inlinable_p): Moved from integrate.c to here. 23322 * cfgexpand.c: Don't include integrate.h. 23323 * except.c: Likewise. 23324 * langhooks.c: Likewise. 23325 * passes.c: Likewise. 23326 * toplev.c: Likewise. 23327 * config/frv/frv.c: Likewise. 23328 * config/pa/pa.c: Likewise. 23329 * config/spu/spu.c: Likewise. 23330 * config/epiphany/epiphany.c: Likewise. 23331 * config/mep/mep.c: Likewise. 23332 * config/score/score.c: Likewise. 23333 * config/picochip/picochip.c: Likewise. 23334 * config/sh/sh.c: Likewise. 23335 * config/alpha/alpha.c: Likewise. 23336 * config/microblaze/microblaze.c: Likewise. 23337 * config/mips/mips.c: Likewise. 23338 * config/v850/v850.c: Likewise. 23339 * config/mmix/mmix.c: Likewise. 23340 * config/bfin/bfin.c: Likewise. 23341 * config/arm/arm.c: Likewise. 23342 * config/s390/s390.c: Likewise. 23343 * config/m32r/m32r.c: Likewise. 23344 * config/rs6000/rs6000.c: Likewise. 23345 * config/c6x/c6x.c: Include function.h instead of integrate.h. 23346 * config/tilegx/tilegx.c: Likewise. 23347 * config/tilepro/tilepro.c: Likewise. 23348 233492012-05-29 Georg-Johann Lay <avr@gjlay.de> 23350 23351 * config/avr/t-avr (s-avr-mmcu-texi): Call 23352 gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH. 23353 233542012-05-29 Michael Matz <matz@suse.de> 23355 23356 * rtl.h (assign_stack_temp, assign_stack_temp_for_type, 23357 assign_temp): Remove 'keep' argument. 23358 (mark_temp_addr_taken): Remove prototype. 23359 * tree.h (expand_decl): Remove prototype. 23360 * function.c (struct temp_slot): Remove addr_taken and keep member. 23361 (assign_stack_temp_for_type) Don't initialize above, remove 23362 keep argument. 23363 (assign_stack_temp, assign_temp): Remove keep argument. 23364 (mark_temp_addr_taken): Remove. 23365 (preserve_temp_slots): Remove handling of addr_taken and keep members. 23366 (free_temp_slots): Ditto. 23367 * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove 23368 dead code. 23369 * stmt.c (expand_asm_operands): Remove dead code. 23370 (expand_decl): Remove. 23371 * c-decl.c (finish_struct): Don't call expand_decl. 23372 * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp 23373 and assign_stack_temp. 23374 * calls.c (save_fixed_argument_area, initialize_argument_information, 23375 expand_call, emit_library_call_value_1, store_one_arg): Ditto. 23376 * expmed.c (extract_bit_field_1): Ditto. 23377 * expr.c (emit_group_load_1, emit_group_store, 23378 copy_blkmode_from_reg, emit_push_insn, expand_assignment, 23379 store_field, expand_constructor, expand_cond_expr_using_cmove, 23380 expand_expr_real_2, expand_expr_real_1): Ditto. 23381 * stmt.c (expand_asm_operands, expand_return): Ditto. 23382 23383 * function.c (pop_temp_slots): Call free_temp_slots. 23384 * calls.c (store_one_arg): Don't call preserve_temp_slots or 23385 free_temp_slots. 23386 * expr.c (expand_assignment): Don't call free_temp_slots. 23387 23388 * config/arm/arm.c (neon_expand_vector_init): Ditto. 23389 * config/i386/i386.c (ix86_expand_vector_set): Ditto. 23390 (ix86_expand_vector_extract): Ditto. 23391 * config/ia64/ia64.c (spill_xfmode_rfmode_operand, 23392 ia64_expand_movxf_movrf): Ditto. 23393 * config/mips/mips.c (mips_expand_vi_general): Ditto. 23394 * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2, 23395 extendsfdf2): Ditto. 23396 * config/rs6000/rs6000.c (rs6000_expand_vector_init, 23397 rs6000_expand_vector_set, rs6000_expand_vector_extract, 23398 rs6000_allocate_stack_temp): Ditto. 23399 * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto. 23400 * config/sparc/sparc.c (emit_soft_tfmode_libcall, 23401 sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp, 23402 sparc_expand_vector_init): Ditto. 23403 234042012-05-29 Michael Matz <matz@suse.de> 23405 23406 * c-tree.h (c_expand_decl): Remove prototype. 23407 23408 * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate 23409 a kept temp. 23410 (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable. 23411 * gimple-fold.c (canonicalize_constructor_val): Canonicalize 23412 COMPOUND_LITERAL_EXPR. 23413 * function.c (expand_function_start): Don't call expand_decl, 23414 instead assert that we have RTL assigned. 23415 * tree-ssa-live.c (remove_unused_locals): Clear 23416 nonlocal_goto_save_area if its backing variable is removed. 23417 * stmt.c (expand_asm_operands): Remove handling of non-lvalues 23418 as mem inputs. 23419 (expand_decl): Assert that this does nothing. 23420 * calls.c (expand_call): Don't call mark_temp_addr_taken. 23421 234222012-05-29 Richard Guenther <rguenther@suse.de> 23423 23424 PR tree-optimization/53516 23425 * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject 23426 bitfield accesses. 23427 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. 23428 234292012-05-29 Joseph Myers <joseph@codesourcery.com> 23430 23431 * LANGUAGES: Fix typos. 23432 * Makefile.in: Fix typos. 23433 * alias.c: Fix typos. 23434 * auto-inc-dec.c: Fix typos. 23435 * bb-reorder.c: Fix typos. 23436 * cfgcleanup.c: Fix typos. 23437 * cgraph.c: Fix typos. 23438 * cgraph.h: Fix typos. 23439 * cgraphunit.c: Fix typos. 23440 * collect2-aix.h: Fix typos. 23441 * collect2.c: Fix typos. 23442 * compare-elim.c: Fix typos. 23443 * config/alpha/vms.h: Fix typos. 23444 * config/arm/README-interworking: Fix typos. 23445 * config/arm/arm.c: Fix typos. 23446 * config/arm/iterators.md: Fix typos. 23447 * config/arm/vxworks.h: Fix typos. 23448 * config/avr/avr.c: Fix typos. 23449 * config/avr/avr.h: Fix typos. 23450 * config/avr/avr.md: Fix typos. 23451 * config/avr/builtins.def: Fix typos. 23452 * config/c6x/c6x.c: Fix typos. 23453 * config/cr16/cr16.c: Fix typos. 23454 * config/cr16/cr16.md: Fix typos. 23455 * config/cris/cris.md: Fix typos. 23456 * config/darwin.c: Fix typos. 23457 * config/darwin.opt: Fix typos. 23458 * config/i386/i386-c.c: Fix typos. 23459 * config/i386/i386.c: Fix typos. 23460 * config/ia64/ia64.c: Fix typos. 23461 * config/m68k/cf.md: Fix typos. 23462 * config/mep/mep.c: Fix typos. 23463 * config/microblaze/microblaze.c: Fix typos. 23464 * config/microblaze/microblaze.h: Fix typos. 23465 * config/mn10300/mn10300.c: Fix typos. 23466 * config/mn10300/mn10300.md: Fix typos. 23467 * config/pa/pa.c: Fix typos. 23468 * config/picochip/picochip.h: Fix typos. 23469 * config/rs6000/a2.md: Fix typos. 23470 * config/rs6000/rs6000.c: Fix typos. 23471 * config/rs6000/vector.md: Fix typos. 23472 * config/rx/rx.md: Fix typos. 23473 * config/rx/rx.opt: Fix typos. 23474 * config/s390/2097.md: Fix typos. 23475 * config/s390/s390.c: Fix typos. 23476 * config/s390/s390.h: Fix typos. 23477 * config/sh/sh.c: Fix typos. 23478 * config/sh/sh.md: Fix typos. 23479 * config/sparc/sync.md: Fix typos. 23480 * config/spu/spu.c: Fix typos. 23481 * config/spu/spu.md: Fix typos. 23482 * config/vms/vms.c: Fix typos. 23483 * config/vxworks-dummy.h: Fix typos. 23484 * config/vxworks.h: Fix typos. 23485 * cselib.c: Fix typos. 23486 * df-scan.c: Fix typos. 23487 * df.h: Fix typos. 23488 * doc/extend.texi: Fix typos. 23489 * doc/install.texi: Fix typos. 23490 * doc/invoke.texi: Fix typos. 23491 * doc/md.texi: Fix typos. 23492 * doc/plugins.texi: Fix typos. 23493 * doc/rtl.texi: Fix typos. 23494 * dse.c: Fix typos. 23495 * dwarf2asm.c: Fix typos. 23496 * dwarf2out.c: Fix typos. 23497 * except.h: Fix typos. 23498 * expr.c: Fix typos. 23499 * fold-const.c: Fix typos. 23500 * gcc.c: Fix typos. 23501 * gcse.c: Fix typos. 23502 * genautomata.c: Fix typos. 23503 * gengtype-state.c: Fix typos. 23504 * gengtype.c: Fix typos. 23505 * genhooks.c: Fix typos. 23506 * gimple-fold.c: Fix typos. 23507 * gimple-pretty-print.c: Fix typos. 23508 * gimple.c: Fix typos. 23509 * gimple.h: Fix typos. 23510 * gimplify.c: Fix typos. 23511 * graphite-interchange.c: Fix typos. 23512 * graphite-sese-to-poly.c: Fix typos. 23513 * ifcvt.c: Fix typos. 23514 * input.c: Fix typos. 23515 * ipa-cp.c: Fix typos. 23516 * ipa-inline-analysis.c: Fix typos. 23517 * ipa-inline-transform.c: Fix typos. 23518 * ipa-inline.c: Fix typos. 23519 * ipa-pure-const.c: Fix typos. 23520 * ipa-ref.h: Fix typos. 23521 * ipa-reference.c: Fix typos. 23522 * ipa-utils.c: Fix typos. 23523 * ipa.c: Fix typos. 23524 * ira-emit.c: Fix typos. 23525 * ira-lives.c: Fix typos. 23526 * lto-streamer.c: Fix typos. 23527 * lto-streamer.h: Fix typos. 23528 * lto-wrapper.c: Fix typos. 23529 * mcf.c: Fix typos. 23530 * mode-switching.c: Fix typos. 23531 * modulo-sched.c: Fix typos. 23532 * plugin.c: Fix typos. 23533 * postreload.c: Fix typos. 23534 * sched-deps.c: Fix typos. 23535 * sel-sched-ir.c: Fix typos. 23536 * sel-sched-ir.h: Fix typos. 23537 * sel-sched.c: Fix typos. 23538 * sese.c: Fix typos. 23539 * stor-layout.c: Fix typos. 23540 * target-hooks-macros.h: Fix typos. 23541 * target.def: Fix typos. 23542 * trans-mem.c: Fix typos. 23543 * tree-eh.c: Fix typos. 23544 * tree-predcom.c: Fix typos. 23545 * tree-sra.c: Fix typos. 23546 * tree-ssa-address.c: Fix typos. 23547 * tree-ssa-loop-ivopts.c: Fix typos. 23548 * tree-ssa-loop-niter.c: Fix typos. 23549 * tree-ssa-math-opts.c: Fix typos. 23550 * tree-ssa-pre.c: Fix typos. 23551 * tree-ssa-propagate.c: Fix typos. 23552 * tree-ssa-reassoc.c: Fix typos. 23553 * tree-ssa-sccvn.c: Fix typos. 23554 * tree-ssa-ter.c: Fix typos. 23555 * tree-ssa-uninit.c: Fix typos. 23556 * tree-ssanames.c: Fix typos. 23557 * tree-vect-generic.c: Fix typos. 23558 * tree-vect-slp.c: Fix typos. 23559 * tree.c: Fix typos. 23560 * tree.h: Fix typos. 23561 * varasm.c: Fix typos. 23562 * varpool.c: Fix typos. 23563 235642012-05-29 Joseph Myers <joseph@codesourcery.com> 23565 23566 * doc/include/texinfo.tex: Update to version 2012-05-16.16. 23567 235682012-05-29 Richard Guenther <rguenther@suse.de> 23569 23570 * tree-dfa.c (find_vars_r): Do not call add_referenced_vars 23571 for globals. 23572 (add_referenced_var_1): Re-organize. Assert we are not 23573 called for globals. 23574 (remove_referenced_var): Likewise. 23575 * varpool.c (add_new_static_var): Use create_tmp_var_raw. 23576 * tree-mudflap.c (execute_mudflap_function_ops): Do not 23577 call add_referenced_var on globals. 23578 * matrix-reorg.c (transform_access_sites): Likewise. 23579 235802012-05-29 Steven Bosscher <steven@gcc.gnu.org> 23581 23582 * alias.c (reg_known_value): Make this a VEC. 23583 (reg_known_equiv_p): Make this an sbitmap. 23584 (reg_known_value_size): Remove. 23585 (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p, 23586 set_reg_known_equiv_p): Update for reg_known_value and 23587 reg_known_value_size data structure change. 23588 (init_alias_analysis, end_alias_analysis): Likewise. 23589 235902012-05-29 Jakub Jelinek <jakub@redhat.com> 23591 23592 PR middle-end/53510 23593 * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC 23594 to avoid leaking memory. No need to handle memory allocation 23595 failure. Double string_len on each reallocation instead of adding 2. 23596 * gcov.c (read_line): Likewise. 23597 235982012-05-29 Hans-Peter Nilsson <hp@axis.com> 23599 23600 * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8): 23601 New macros. 23602 * config/cris/cris.md ("trap"): Define, enabled for 23603 TARGET_TRAP_USING_BREAK8. 23604 * config/cris/cris.opt (mtrap-using-break8): New option. 23605 236062012-05-28 Paolo Carlini <paolo.carlini@oracle.com> 23607 23608 PR c++/25137 23609 * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall 23610 for C++. 23611 236122012-05-28 Hans-Peter Nilsson <hp@axis.com> 23613 23614 * doc/md.texi (stack_protect_test): Remove negation of branch to label. 23615 (Standard Names): Fix typos in documentation of atomic patterns. 23616 236172012-05-27 Nathan Sidwell <nathan@acm.org> 23618 23619 * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS. 23620 236212012-05-26 Jason Merrill <jason@redhat.com> 23622 23623 PR c++/53220 23624 * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning 23625 about array compound literals. 23626 236272012-05-26 Eric Botcazou <ebotcazou@adacore.com> 23628 23629 * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks 23630 if CLEANUP_NO_INSN_DEL. 23631 * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted 23632 from cfg_layout_merge_blocks. 23633 (emit_nop_for_unique_locus_between): New function. 23634 (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between. 23635 (cfg_layout_merge_blocks): Likewise. 23636 236372012-05-26 Dimitrios Apostolou <jimis@gmx.net> 23638 Paolo Bonzini <bonzini@gnu.org> 23639 23640 * df-scan.c (df_def_record_1): Assert a parallel must contain an 23641 EXPR_LIST at this point. Receive the LOC and move its extraction... 23642 (df_defs_record): ... here. Change if-else to a switch statement. 23643 (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New. 23644 (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET 23645 and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE 23646 DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for 23647 regs_invalidated_by_call. 23648 (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after 23649 df_get_call_refs(). 23650 236512012-05-25 Eric Botcazou <ebotcazou@adacore.com> 23652 23653 PR lto/52178 23654 * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL. 23655 * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR. 23656 236572012-05-25 Michael Meissner <meissner@linux.vnet.ibm.com> 23658 23659 * config/rs6000/t-linux64: Delete the 32-bit multilib that uses 23660 software floating point emulation. No longer build the multilibs 23661 with -mstrict-align. 23662 236632012-05-25 Aldy Hernandez <aldyh@redhat.com> 23664 23665 PR middle-end/53008 23666 * trans-mem.c (ipa_tm_create_version_alias): Output new_node if 23667 accessed indirectly. 23668 (ipa_tm_create_version): Same. 23669 236702012-05-25 Uros Bizjak <ubizjak@gmail.com> 23671 23672 PR target/53474 23673 * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here. 23674 <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c. 23675 236762012-05-25 Alexander Ivchenko <alexander.ivchenko@intel.com> 23677 23678 PR target/53435 23679 * config/i386/i386.c (ix86_expand_vec_perm): Use correct op. 23680 (ix86_expand_vec_perm): Use int mode instead of float. 23681 (expand_vec_perm_pshufb): Remove handling of useseless type 23682 conversion. 23683 236842012-05-25 Eric Botcazou <ebotcazou@adacore.com> 23685 23686 PR ada/52362 23687 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and 23688 gnu_ld variables to yes. 23689 * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion. 23690 (HAVE_GNU_AS): Likewise. 23691 * config.in: Regenerate. 23692 * configure: Likewise. 23693 236942012-05-25 Tristan Gingold <gingold@adacore.com> 23695 23696 * config/i386/i386.c (struct ix86_frame): Remove unused frame field. 23697 (ix86_compute_frame_layout): Fix type of stack_alignment_needed 23698 and preferred_alignment. 23699 237002012-05-25 Tristan Gingold <gingold@adacore.com> 23701 23702 * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo. 23703 237042012-05-25 Thomas Schwinge <thomas@codesourcery.com> 23705 23706 * fold-const.c (optimize_bit_field_compare): Abort early in the strict 23707 volatile bitfields case. 23708 237092012-05-24 Pat Haugen <pthaugen@us.ibm.com> 23710 23711 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change 23712 rs6000_sched_costly_dep default to true_store_to_load_dep_costly. 23713 (adjacent_mem_locations): Move some code to and call... 23714 (get_memref_parts): ...new function. 23715 (mem_locations_overlap): New function. 23716 (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn. 23717 (is_mem_ref): Rename to... 23718 (find_mem_ref): ...this. Return MEM rtx. 23719 (get_store_dest): Remove function. 23720 (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add 23721 new parameter and adjust calls. 23722 (rs6000_is_costly_dependence): Update calls for extra arg. Make sure 23723 mem refs overlap for true_store_to_load_dep_costly. 23724 (rs6000_sched_reorder2): Update calls for extra arg. Adjust args 23725 passed to adjacent_mem_locations. 23726 (is_costly_group): Walk resolved dependency list. 23727 (force_new_group): Emit group ending nop for Power6/Power7. 23728 * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value. 23729 (group_ending_nop): New define_insn. 23730 237312012-05-24 Dodji Seketeli <dodji@redhat.com> 23732 23733 Make unwound macro expansion trace less redundant 23734 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print 23735 context of macro definition in the trace, when it's redundant. 23736 Update comments. 23737 237382012-05-24 Richard Guenther <rguenther@suse.de> 23739 23740 PR middle-end/53460 23741 * tree-profile.c (tree_profiling): Cleanup the CFG if 23742 execute_fixup_cfg requests it. 23743 237442012-05-24 Richard Guenther <rguenther@suse.de> 23745 23746 * tree-flow.h (create_var_ann): Remove. 23747 * tree-dfa.c (create_var_ann): Remove and inline into its 23748 single caller ... 23749 (add_referenced_var_1): ... here. 23750 * varpool.c (add_new_static_var): Do not call add_referenced_var 23751 for global vars. 23752 * gimple-fold.c (canonicalize_constructor_val): Likewise. 23753 * tree-switch-conversion.c (build_one_array): Likewise. 23754 * tree-profile.c (gimple_gen_ic_profiler): Likewise. 23755 * tree-flow-inline.h (gimple_referenced_vars): Guard against 23756 NULL fn argument. 23757 * tree-inline.c (remap_gimple_op_r): Likewise. Check 23758 gimple_referenced_vars instead of gimple_in_ssa_p. 23759 (copy_tree_body_r): Likewise. 23760 (setup_one_parameter): Likewise. 23761 (declare_return_variable): Likewise. 23762 (tree_function_versioning): Likewise. 23763 237642012-05-24 Jakub Jelinek <jakub@redhat.com> 23765 23766 PR tree-optimization/53465 23767 * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range 23768 vr0 into *vr, then vrp_meet that. 23769 (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't 23770 have any equivalences. 23771 (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the 23772 first time. 23773 237742012-05-24 Jim MacArthur <jim.macarthur@arm.com> 23775 23776 * recog.c (reg_fits_class_p): Check both regno and regno + offset are 23777 hard registers. 23778 * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and 23779 check end_regno - 1 is a hard register. 23780 237812012-05-24 Richard Guenther <rguenther@suse.de> 23782 23783 * varpool.c (add_new_static_var): Remove call to create_var_ann. 23784 * tree-ssa-operands.c (create_vop_var): Likewise. 23785 237862012-05-24 Richard Guenther <rguenther@suse.de> 23787 23788 PR bootstrap/53466 23789 * tree-ssa-live.c (remove_unused_scope_block_p): Properly 23790 handle globals. 23791 (remove_unused_locals): Pass global_unused_vars to 23792 remove_unused_scope_block_p. Restore code walking all 23793 referenced vars and pruning them. 23794 237952012-05-23 Jan Hubicka <jh@suse.cz> 23796 23797 * tree.h (alias_diag_flags): Remove. 23798 (alias_pair): Remove emitted_diags. 23799 (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs, 23800 symbol_alias_set_t, symbol_alias_set_destroy, 23801 symbol_alias_set_contains, propagate_aliases_backward): Remove. 23802 * toplev.c (compile_file): Do not call finish_aliases_2 23803 * cgraphunit.c (cgraph_process_new_functions): Do not call 23804 finish_aliases_1. 23805 (handle_alias_pairs): Output diagnostics about aliases to externals. 23806 (assemble_thunks_and_aliases): Use do_assemble_alias. 23807 (output_weakrefs): Likewise. 23808 (finalize_compilation_unit): Do not call finish_aliases_1. 23809 * ipa.c (symtab_remove_unreachable_nodes): De not call 23810 remove_unreachable_alias_pairs. 23811 * varasm.c (do_assemble_alias): Export. 23812 (symbol_alias_set_create, symbol_alias_set_destroy, 23813 symbol_alias_set_contains, symbol_alias_set_insert, 23814 propagate_aliases_forward, propagate_aliases_backward, 23815 propagate_aliases_backward, trivially_visible_alias, 23816 trivially_defined_alias, remove_unreachable_alias_pairs, 23817 finish_aliases_1, finish_aliases_2, assemble_alias): Remove. 23818 * output.h (do_assemble_alias): Declare. 23819 * varpool.c (varpool_remove_unreferenced_decls): Do not call 23820 finish_aliases_1. 23821 238222012-05-23 Martin Jambor <mjambor@suse.cz> 23823 23824 * ipa-inline-analysis.c (inline_merge_summary): Free operand_map. 23825 238262012-05-23 Eric Botcazou <ebotcazou@adacore.com> 23827 23828 * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus 23829 size handling. 23830 (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise. 23831 (iterative_hash_gimple_type): Adjust comment. 23832 (iterative_hash_canonical_type): Likewise. Hash the bounds of the 23833 domain for an array type instead of the domain type itself. 23834 238352012-05-23 Richard Guenther <rguenther@suse.de> 23836 23837 PR tree-optimization/53438 23838 * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion. 23839 238402012-05-23 Georg-Johann Lay <avr@gjlay.de> 23841 23842 PR target/53448 23843 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1. 23844 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use 23845 ASM_OUTPUT_ALIGN. 23846 238472012-05-23 Richard Guenther <rguenther@suse.de> 23848 23849 * tree-dfa.c (add_referenced_var_1): Do not add global vars. 23850 * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars 23851 via the global_unused_vars bitmap. 23852 (remove_unused_locals): Handle global vars in local-decls via 23853 a global_unused_vars bitmap instead of the used flag in the 23854 var annotation. Simplify global variable handling and removal. 23855 238562012-05-22 Jan Hubicka <jh@suse.cz> 23857 23858 PR middle-end/53426 23859 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors 23860 from other partitions. 23861 238622012-05-22 Jan Hubicka <jh@suse.cz> 23863 23864 PR middle-end/53161 23865 * symtab.c (symtab_register_node): Fix ordering issue. 23866 238672012-05-22 Steven Drake <sbd@NetBSD.org> 23868 23869 * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir. 23870 238712012-05-22 David Edelsohn <dje.gcc@gmail.com> 23872 23873 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref): 23874 Use strip_name_encoding target hook. 23875 238762012-05-22 Richard Guenther <rguenther@suse.de> 23877 23878 * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New. 23879 (init_function_for_compilation): Remove. 23880 * tree-dfa.c (find_vars_r): Take struct function argument. 23881 (find_referenced_vars_in): Adjust. 23882 * tree-ssa-operands.c (clobber_stats): Remove. 23883 (create_vop_var): Take struct function argument. Mark 23884 virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND. 23885 (init_ssa_operands): Take struct function argument. 23886 (fini_ssa_operands): Do not dump dead stats. 23887 * tree-ssa-operands.h (init_ssa_operands): Take struct function 23888 argument. 23889 * cgraphunit.c (init_lowered_empty_function): Adjust. 23890 * lto-streamer-in.c (input_cfg): Likewise. 23891 * tree-inline.c (initialize_cfun): Likewise. 23892 * tree-into-ssa.c (rewrite_into_ssa): Likewise. 23893 * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun. 23894 * gimple.c (is_gimple_reg): Optimize the SSA_NAME case, 23895 virtual operands are not registers. 23896 238972012-05-22 Richard Guenther <rguenther@suse.de> 23898 23899 * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit. 23900 239012012-05-22 Richard Guenther <rguenther@suse.de> 23902 23903 PR middle-end/53437 23904 * tree-inline.c (setup_one_parameter): Create a dummy init 23905 statement for unused parameters when not optimizing. 23906 239072012-05-22 Richard Guenther <rguenther@suse.de> 23908 23909 * tree-flow.h (add_referenced_var_1): Declare. 23910 (add_referenced_var): Define. 23911 * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup. 23912 (add_referenced_var): Rename to ... 23913 (add_referenced_var_1): ... this. Take struct function argument. 23914 239152012-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 23916 23917 PR target/53334 23918 * config/arm/arm-protos.h (arm_validize_comparison): Declare. 23919 * config/arm/arm.c (arm_validize_comparison): Define. 23920 * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use 23921 arm_validize_comparison. 23922 ("cbranchdi4"): Likewise. 23923 ("cstoredi4"): Likewise. 23924 ("movsicc"): Likewise. 23925 ("movsfcc"): Likewise. 23926 ("movdfcc"): Likewise. 23927 239282012-05-22 Dimitrios Apostolou <jimis@gmx.net> 23929 23930 * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce 23931 the mw_reg_pool size. 23932 239332012-05-22 Paolo Bonzini <bonzini@gnu.org> 23934 23935 PR tree-optimization/53336 23936 * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from 23937 non-integer integral types to offset type and vice versa. 23938 239392012-05-22 Alan Modra <amodra@gmail.com> 23940 23941 * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete. 23942 * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete. 23943 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE, 23944 V_SAVE_INLINE): Delete. 23945 * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete. 23946 (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic. 23947 For ELF targets, use out-of-line restores for -Os and any number 23948 of regs if the restore exits, and out-of-line gp save for two or 23949 more regs. Use save_reg_p to test for holes in reg restore set. 23950 Replace "#if" with "if". 23951 239522012-05-22 Alan Modra <amodra@gmail.com> 23953 23954 * config/rs6000/rs6000.c (save_reg_p): New function. 23955 (first_reg_to_save, first_fp_reg_to_save): Use it here. 23956 (first_altivec_reg_to_save, restore_saved_cr): Likewise. 23957 (emit_frame_save): Use gen_frame_store. 23958 (gen_frame_mem_offset): Correct SPE condition requiring reg+reg. 23959 (rs6000_emit_prologue): Use save_reg_p. Use gen_frame_store for 23960 vrsave and toc. 23961 (rs6000_emit_epilogue): Use save_reg_p. Use gen_frame_load for 23962 vrsave, toc, gp and fp restores. 23963 239642012-05-22 Alan Modra <amodra@gmail.com> 23965 23966 * config/rs6000/rs6000.c: Delete unnecessary forward declarations. 23967 Move those with ATTRIBUTE_UNUSED to immediately before definitions. 23968 Move function pointer variables after forward declarations. 23969 (rs6000_builtin_support_vector_misalignment): Make static. 23970 (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise. 23971 (rs6000_function_value, rs6000_can_eliminate): Likewise. 23972 239732012-05-21 Bernd Schmidt <bernds@codesourcery.com> 23974 23975 PR rtl-optimization/53373 23976 * caller-save.c (save_call_clobbered_regs): Look into a possible 23977 PARALLEL manually rather than using single_set on a call insn. 23978 239792012-05-21 Jakub Jelinek <jakub@redhat.com> 23980 23981 PR tree-optimization/53436 23982 * omp-low.c (omp_build_component_ref): New function. 23983 (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it. 23984 239852012-05-21 Uros Bizjak <ubizjak@gmail.com> 23986 23987 * config/i386/i386.c (put_condition_code): Change "reverse" and "fp" 23988 arguments to bool. 23989 (ix86_print_operand) <case 'O'>: Look at mode size of the operand. 23990 Do not print '.' here. Output operand lossage error for unhandled 23991 sizes. Move. 23992 <case '*'>: Move. 23993 <case '&'>: Ditto. 23994 <case 'Y'>: Ditto. 23995 <case 'z'>: Hardcode "code" argument into error strings. 23996 <case 'Z'>: Ditto. 23997 <case 'D'>: Merge AVX and non-AVX codes. 23998 <case 'C', case 'c', case 'F', case 'f'>: Merge. Fix error string. 23999 Update call to put_condition_code. 24000 240012012-05-21 Andreas Schwab <schwab@linux-m68k.org> 24002 24003 * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2. Call 24004 CC_STATUS_INIT. 24005 (clzsi2): New expander. 24006 (*clzsi2_68k): New insn. 24007 * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO. 24008 240092012-05-21 Aldy Hernandez <aldyh@redhat.com> 24010 24011 * gimple.h (gimple_set_in_transaction): Remove. 24012 (gimple_in_transaction): Look in BB instead. 24013 (gimple_statement_base): Remove in_transaction field. 24014 * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION. 24015 * trans-mem.c (compute_transaction_bits): Place transaction bit 24016 information into basic blocks. 24017 240182012-05-21 Andreas Schwab <schwab@linux-m68k.org> 24019 24020 * expr.c (get_def_for_expr_class): Define only if 24021 HAVE_conditional_move. 24022 (convert_tree_comp_to_rtx): Likewise. 24023 240242012-05-21 Uros Bizjak <ubizjak@gmail.com> 24025 24026 PR target/53399 24027 * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare 24028 for TARGET_BMI. 24029 (ffssi2_no_cmove): Ditto. 24030 (*ffs<mode>_1): Remove insn pattern. 24031 (*tzcnt<mode>_1): New insn pattern. 24032 (*bsf<mode>1): Ditto. 24033 240342012-05-21 Richard Guenther <rguenther@suse.de> 24035 24036 * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for 24037 more referenced vars. 24038 * tree-ssa-live.c (mark_all_vars_used_1): Only set the used 24039 flag on variables that have a var-annotation. 24040 240412012-05-21 Joseph Myers <joseph@codesourcery.com> 24042 24043 PR c/53418 24044 * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR 24045 from folded operands before wrapping another around the 24046 conditional expression. 24047 240482012-05-21 Jakub Jelinek <jakub@redhat.com> 24049 24050 PR tree-optimization/53366 24051 * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut 24052 tests if complex_numbers == 2, but there are non-complex number loads 24053 too. 24054 24055 PR tree-optimization/53409 24056 * tree-vect-loop.c (vect_analyze_loop_operations): Don't check 24057 vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop. 24058 24059 PR tree-optimization/53410 24060 * fold-const.c (fold_binary_loc): Use build_zero_cst (type) 24061 instead of build_int_cst (type, 0) where vector types might be 24062 involved. Instead of build_int_cst (type, 1) convert the original 24063 integer_onep argument to the desired type. 24064 240652012-05-21 Michael Matz <matz@suse.de> 24066 24067 * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1. 24068 (simplify_test_exp): Handle one more case of distributive law, 24069 decrease cost threshold. 24070 (tests_attr_p, get_attr_order): New functions. 24071 (optimize_attrs): Use topological order, inline only cheap values. 24072 (write_attr_set): Reset our_known_true after some time. 24073 240742012-05-21 H.J. Lu <hongjiu.lu@intel.com> 24075 24076 PR target/53425 24077 * config/i386/i386.c (type_natural_mode): Warn passing SSE 24078 vector argument without SSE enabled changes the ABI. 24079 240802012-05-21 Richard Guenther <rguenther@suse.de> 24081 24082 PR tree-optimization/53408 24083 * tree-vect-loop.c (vectorizable_induction): Properly check 24084 the restriction that we cannot handle induction results from 24085 the inner loop outside of the outer loop. 24086 240872012-05-21 H.J. Lu <hongjiu.lu@intel.com> 24088 24089 PR target/53416 24090 * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ... 24091 (UNSPECV_RDRAND): This. 24092 (rdrand<mode>_1): Updated. 24093 240942012-05-21 Richard Guenther <rguenther@suse.de> 24095 24096 * tree-loop-distribution.c (can_generate_builtin): Reject 24097 volatile stmts. 24098 240992012-05-21 Chung-Lin Tang <cltang@codesourcery.com> 24100 24101 * Makefile.in (options.c): Add options.h to included header 24102 files, before tm.h. 24103 241042012-05-21 Razya Ladelsky <razya@il.ibm.com> 24105 24106 * tree-parloops.c : Add myself to contributors, update 24107 TODO list, add link to wiki. 24108 241092012-05-21 Alan Modra <amodra@gmail.com> 24110 24111 * config/rs6000/predicates.md (input_operand): Don't match 24112 constant pool addresses. Remove label_ref, high and plus from 24113 match_code list. Remove redundant CONSTANT_P test. 24114 (splat_input_operand): Similarly update match_code list. 24115 (small_toc_ref): New predicate. 24116 * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype. 24117 * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const. 24118 (legitimate_constant_pool_address_p): Move TARGET_TOC test and 24119 register checks to.. 24120 (toc_relative_expr_p): ..here. Add "strict" param. Match new rtl 24121 generated by create_TOC_reference. 24122 (rs6000_legitimize_address): Update cerate_TOC_reference call. 24123 (rs6000_delegitimize_address): Handle new rtl for toc refs. 24124 (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise. 24125 (use_toc_relative_ref): New function, split out from.. 24126 (rs6000_emit_move): ..here. Remove redundant tests. Update 24127 create_TOC_reference calls. 24128 (rs6000_legitimize_reload_address): Formatting. Handle splitting 24129 of medium/large model toc addresses. Use use_toc_relative_ref. 24130 (print_operand): Formatting, style. Adjust for toc changes. 24131 (print_operand_address): Likewise. 24132 (rs6000_output_addr_const_extra): Likewise. 24133 (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather 24134 than a PLUS. Use this formulation for both high and low part 24135 of -mcmodel=medium/large toc reference too. Before reload, 24136 always use the small model formulation. 24137 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid 24138 a PLUS in high part of addresses here. 24139 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise. 24140 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise. 24141 (largetoc_high, largetoc_low): Move earlier. Cope when no 24142 base reg available. 24143 (largetoc_high_plus): New insn. 24144 (movsi_internal1, movsi_internal1_single, movsf_softfloat, 24145 movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here.. 24146 (tocref): ..instead do so here, new insn and split. 24147 241482012-05-20 H.J. Lu <hongjiu.lu@intel.com> 24149 24150 * config/i386/driver-i386.c (host_detect_local_cpu): Support 24151 RDRND, F16C and FSGSBASE. 24152 241532012-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 24154 24155 PR rtl-optimzation/53373 24156 * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in 24157 call pattern. Update split patterns. 24158 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic, 24159 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise. 24160 241612012-05-20 Razya Ladelsky <razya@il.ibm.com> 24162 24163 * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond 24164 for outer loops. 24165 241662012-05-18 Jan Hubicka <jh@suse.cz> 24167 24168 * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs 24169 (cgraph_process_new_functions): Process also aliases. 24170 * lto-streamer-out.c (struct sets): Remove. 24171 (trivally_defined_alias): Remove. 24172 (output_alias_pair_p): Remove. 24173 (output_unreferenced_globals): Remove. 24174 (produce_symtab); Do not handle alias pairs. 24175 (produce_asm_for_decls): Likewise. 24176 * lto-streamer-in.c (input_alias_pairs): Remove. 24177 (lto_read_body): Do not input alias pairs. 24178 (lto_input_constructors_and_inits): Remove. 24179 241802012-05-18 Jan Hubicka <jh@suse.cz> 24181 24182 * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of 24183 aliases. 24184 241852012-05-18 Jan Hubicka <jh@suse.cz> 24186 24187 * cgraphbuild.c (record_reference): Update. 24188 * lto-cgraph.c (lto_output_varpool_node): External vars 24189 are not in other partition even if they are not output 24190 in current partition. 24191 * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL 24192 argument; fix. 24193 (canonicalize_constructor_val): Take FROM_DECL argument. 24194 (fold_ctor_reference, fold_string_cst_ctor_reference, 24195 fold_array_ctor_reference, fold_nonarray_ctor_reference, 24196 fold_ctor_reference): Likewise. 24197 (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update. 24198 * gimple.h (gimple_fold_builtin): Likewise. 24199 242002012-05-18 Olivier Hainque <hainque@adacore.com> 24201 24202 * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of 24203 $(libsubdir) as libexecsubdir. 24204 242052012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 24206 24207 * config/rs6000/rs6000.c (print_operand): Revise code that unsafely 24208 relied on signed overflow behavior. 24209 242102012-05-18 Richard Guenther <rguenther@suse.de> 24211 24212 PR tree-optimization/53346 24213 * tree-loop-distribution.c (ldist_gen): Make sure to apply 24214 builtin transform even when only a single partition with 24215 all reads/writes exists. 24216 242172012-05-18 Richard Guenther <rguenther@suse.de> 24218 24219 PR tree-optimization/53390 24220 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore 24221 strided loads. 24222 242232012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 24224 24225 * tree-ssa-reassoc.c (bip_map): Remove decl. 24226 (completely_remove_stmt): Remove function. 24227 (remove_def_if_absorbed_call): Remove function. 24228 (remove_visited_stmt_chain): Remove __builtin_powi handling. 24229 (possibly_move_powi): Remove function. 24230 (rewrite_expr_tree): Remove calls to possibly_move_powi. 24231 (rewrite_expr_tree_parallel): Likewise. 24232 (attempt_builtin_powi): Build multiplies explicitly rather than 24233 relying on the ops vector and rank system. 24234 (transform_stmt_to_copy): New function. 24235 (transform_stmt_to_multiply): Likewise. 24236 (reassociate_bb): Handle leftover operations after __builtin_powi 24237 optimization; build a final multiply if necessary. 24238 242392012-05-18 Jan Hubicka <jh@suse.cz> 24240 24241 * cgraphunit.c (varpool_finalize_decl): Allow external decls. 24242 (mark_functions_to_output): Fix sanity check. 24243 * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check. 24244 242452012-05-18 Richard Guenther <rguenther@suse.de> 24246 24247 * tree-flow.h (mark_symbols_for_renaming): Remove. 24248 * tree-dfa.c (mark_symbols_for_renaming): Likewise. 24249 * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming. 24250 (copy_debug_stmt): Likewise. 24251 (expand_call_inline): Likewise. 24252 (declare_return_variable): Mark the return variable for renaming 24253 if necessary. 24254 242552012-05-18 Andrew Stubbs <ams@codesourcery.com> 24256 24257 * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New 24258 prototype. 24259 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function. 24260 * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift. 24261 (ashrdi3,lshrdi3): Likewise. 24262 (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch. 24263 242642012-05-18 Meador Inge <meadori@codesourcery.com> 24265 24266 PR rtl-optimization/53352 24267 * cse.c (equiv_constant): Ignore paradoxical subregs. 24268 242692012-05-17 Steven Bosscher <steven@gcc.gnu.org> 24270 24271 PR rtl-optimization/53125 24272 * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid 24273 argument. Simplify calculation of REG_LIVE_LENGTH for regnos that 24274 die in the basic block. Correctly top off REG_FREQ and 24275 REG_FREQ_CALLS_CROSSED. 24276 Remove do_not_gen. 24277 (regstat_compute_ri): Allocate and free local_live_last_luid. 24278 Remove do_not_gen. 24279 (regstat_bb_compute_calls_crossed): Correctly top off 24280 REG_FREQ_CALLS_CROSSED. 24281 242822012-05-17 Jan Hubicka <jh@suse.cz> 24283 24284 * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with 24285 constructor over decl without. 24286 * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes. 24287 * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly. 24288 * cgraphunit.c (process_function_and_variable_attributes): Finalize 24289 extrnal decls. 24290 (mark_functions_to_output): Also accept bodies for functions with 24291 clones. 24292 (output_in_order): Skip external vars. 24293 * lto-cgraph.c (lto_output_node): External functions are never in other 24294 partition. 24295 (lto_output_varpool_node): Likewise. 24296 * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for 24297 forgotten initializers. 24298 * ipa.c (process_references): Handle external vars. 24299 (symtab_remove_unreachable_nodes): Update to handle external vars. 24300 (varpool_externally_visible_p): External vars are externally visible. 24301 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update. 24302 * varpool.c (varpool_remove_node): Remove constructor. 24303 (decide_is_variable_needed): Handle externals. 24304 (varpool_remove_unreferenced_decls): Likewise. 24305 243062012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org> 24307 24308 * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic. 24309 (enable_warning_as_error): Do not special case Wuninitialized. 24310 * optc-gen.awk: Add sanity checks. 24311 243122012-05-17 Jan Hubicka <jh@suse.cz> 24313 24314 * ipa-reference.c (is_proper_for_analysis): Do not check flags 24315 that might change as result of global optimization. 24316 (analyze_function): Do not check analyzed and externally_visible 24317 flags; be happy about address dereferences. 24318 (propagate): Prune all_module_statics so it really contains just 24319 statics; prune all the local summaries. 24320 (ipa_reference_write_optimization_summary): Simplify. 24321 243222012-05-17 Kwok Cheung Yeung <kcy@codesourcery.com> 24323 24324 * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm. 24325 * config/m68k/m68k-tables.opt: Regenerated. 24326 * doc/invoke.texi (M680x0 Options): Document. 24327 243282012-05-16 Dave Boutcher <daveboutcher@gmail.com> 24329 Patrick Marlier <patrick.marlier@gmail.com> 24330 24331 * trans-mem.c (ipa_tm_transform_clone): Transform functions with 24332 indirect calls. 24333 243342012-05-16 H.J. Lu <hongjiu.lu@intel.com> 24335 24336 * configure: Regenerated. 24337 243382012-05-16 Andrew Pinski <apinski@cavium.com> 24339 24340 * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under 24341 GIMPLE_ASSIGN. 24342 243432012-05-16 David S. Miller <davem@davemloft.net> 24344 24345 * jump.c (delete_related_insns): If we remove a CALL, make sure 24346 we delete it's NOTE_INSN_CALL_ARG_LOCATION note too. 24347 243482012-05-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 24349 24350 PR tree-optimization/53217 24351 * tree-ssa-reassoc.c (bip_map): New static variable. 24352 (possibly_move_powi): Move feeding multiplies with __builtin_powi call. 24353 (attempt_builtin_powi): Save feeding multiplies on a stack. 24354 (reassociate_bb): Create and destroy bip_map. 24355 243562012-05-16 Olivier Hainque <hainque@adacore.com> 24357 24358 * Makefile.in (install-no-fixedincludes): New target, former toplevel 24359 gcc-no-fixedincludes. Stash "include-fixed" in addition to "include". 24360 Add comments and improve stamp preservation across the whole sequence. 24361 (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h. 24362 243632012-05-16 Richard Guenther <rguenther@suse.de> 24364 24365 * tree-inline.c (insert_init_stmt): Do not call 24366 mark_symbols_for_renaming. 24367 (setup_one_parameter): Avoid initializing unused parameters. 24368 (declare_return_variable): Properly handle DECL_BY_REFERENCE 24369 return vars in SSA form. 24370 243712012-05-16 Richard Guenther <rguenther@suse.de> 24372 24373 * tree-flow.h (get_virtual_var): Remove. 24374 * tree-dfa.c (get_virtual_var): Likewise. 24375 243762012-05-16 Richard Guenther <rguenther@suse.de> 24377 24378 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): 24379 Remove set-only bitmap of new names. 24380 (slpeel_tree_peel_loop_to_edge): Likewise. Do not set 24381 CFG hooks. 24382 * tree-flow.h (ssa_names_to_replace): Remove. 24383 * tree-into-ssa.c (ssa_names_to_replace): Likewise. 24384 243852012-05-16 Richard Guenther <rguenther@suse.de> 24386 24387 PR tree-optimization/53364 24388 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly 24389 detect a view-conversion of the decl. 24390 243912012-05-16 Dodji Seketeli <dodji@redhat.com> 24392 24393 PR preprocessor/7263 24394 * c-tree.h (enum c_declspec_word): Declare new enum. 24395 (struct c_declspecs::locations): New member. 24396 (declspecs_add_qual, declspecs_add_scspec) 24397 (declspecs_add_addrspace, declspecs_add_alignas): Take a new 24398 location parameter. 24399 * c-decl.c (build_null_declspecs): Initialize the new struct 24400 c_declspecs::locations member. 24401 (declspecs_add_addrspace): Take a location parameter for the 24402 address space. Store it onto declaration specifiers. 24403 (declspecs_add_qual): Likewise, take a location parameter for the 24404 qualifier. 24405 (declspecs_add_type): Likewise, take a location parameter for the 24406 type specifier. 24407 (declspecs_add_scspec): Likewise, take a location parameter for 24408 the storage class specifier. 24409 (declspecs_add_attrs): Likewise, take a location parameter for the 24410 first attribute. 24411 (declspecs_add_alignas): Likewise, take a location parameter for 24412 the alignas token. 24413 (finish_declspecs): For diagnostics, use the location of the 24414 relevant declspec, instead of the global input_location. 24415 * c-parser.c (c_parser_parameter_declaration): Pass the precise 24416 virtual location of the declspec to the declspecs-setters. 24417 (c_parser_declspecs): Likewise. Avoid calling c_parser_peek_token 24418 repeatedly. 24419 244202012-05-16 Igor Zamyatin <igor.zamyatin@intel.com> 24421 24422 * configure.ac: Stack protector enabling for Android targets. 24423 * configure: Regenerate. 24424 244252012-05-16 Richard Sandiford <r.sandiford@uk.ibm.com> 24426 24427 * ira.c (pseudo_move_insn): Delete. 24428 (find_moveable_pseudos): Don't set it. 24429 (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find 24430 the definitions of the original pseudo. Delete all of them. 24431 244322012-05-16 Olivier Hainque <hainque@adacore.com> 24433 24434 * config/rs6000/rs6000-opts.h (enum processor_type): Add 24435 PROCESSOR_PPC8548. 24436 * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548". 24437 * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548. 24438 * config/rs6000/8540.md: indicate that the units/patterns apply to 24439 ppc8548 as well. 24440 24441 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename 24442 default_cpu into implicit_cpu, conveying what --with-cpu was passed at 24443 configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE 24444 related flags, check that what is queried is supported by the selected 24445 configuration. Rework the single/double_float and MASK_STRING resets to 24446 hit for all the E500 cores (854x + E500MC variants). Select the ppc8540 24447 costs for PROCESSOR_PPC8548 as well. 24448 (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540. 24449 (rs6000_use_sched_lookahead): Likewise, rewriting function as a case 24450 statement instead of a sequence of ifs. 24451 24452 * config/rs6000/rs6000.h (TARGET_E500): Remove. 24453 (TARGET_NO_LWSYNC): Adjust accordingly. 24454 * config/rs6000/e500.h (TARGET_E500): Remove. 24455 (CHECK_E500_OPTIONS): Adjust accordingly. 24456 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove. 24457 (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h. 24458 * config/rs6000/linuxspe.h: Likewise. 24459 * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and 24460 superfluous comments. 24461 * config/rs6000/e500-double.h: Remove. 24462 24463 * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*, 24464 default to with_cpu=8548 if --enable-e500-double, and to 8540 24465 otherwise. 24466 (set misc flags section): For powerpc*|rs6000*, remove inclusion 24467 of e500-double.h for --enable-e500-double. 24468 244692012-05-16 Olivier Hainque <hainque@adacore.com> 24470 24471 * Makefile.in (s-header-vars): Resort to -n instead of trailing 24472 -e d in sed invocation. 24473 244742012-05-16 Hans-Peter Nilsson <hp@axis.com> 24475 24476 * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to 24477 source-code. 24478 * doc/tm.texi: Regenerate. 24479 244802012-05-15 Paolo Carlini <paolo.carlini@oracle.com> 24481 24482 * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P. 24483 244842012-05-15 Jakub Jelinek <jakub@redhat.com> 24485 24486 PR target/53358 24487 * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check 24488 that operands[2] is either immediate, or q_regs_operand. 24489 244902012-05-15 Richard Guenther <rguenther@suse.de> 24491 24492 * cgraphunit.c (thunk_adjust): Use make_rename_temp. 24493 (assemble_thunk): Likewise. Manually rename and register 24494 function arguments. 24495 244962012-05-15 Richard Guenther <rguenther@suse.de> 24497 24498 PR tree-optimization/53355 24499 * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs 24500 by constants. 24501 245022012-05-15 Tristan Gingold <gingold@adacore.com> 24503 24504 * tree-ssa-strlen.c (get_string_length): Convert lhs if needed. 24505 245062012-05-15 Richard Guenther <rguenther@suse.de> 24507 24508 * gimple.c (gimple_set_modified): Move ... 24509 * gimple.h (gimple_set_modified): ... here. 24510 245112012-05-15 Tristan Gingold <gingold@adacore.com> 24512 24513 * ira-color.c (move_spill_restore): Add a guard. 24514 245152012-05-15 Tristan Gingold <gingold@adacore.com> 24516 24517 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to 24518 plus_constant. 24519 245202012-05-15 Eric Botcazou <ebotcazou@adacore.com> 24521 24522 * gimplify.c (gimplify_init_constructor): Do a block move for very 24523 small objects as well. 24524 245252012-05-15 Bernd Schmidt <bernds@codesourcery.com> 24526 24527 * ira.c (find_moveable_pseudos): Skip registers whose 24528 DF_REG_EQ_USE_COUNT is nonzero. 24529 245302012-05-15 Kenneth Zadeck <zadeck@naturalbridge.com> 24531 24532 * doc/md.texi (fma): Define to only be applicable for single rounding. 24533 245342012-05-14 Uros Bizjak <ubizjak@gmail.com> 24535 24536 PR target/46098 24537 * config/i386/i386.c (ix86_expand_special_args_builtin): Always 24538 generate target register for "load" class builtins. 24539 24540 Revert: 24541 2010-10-22 Uros Bizjak <ubizjak@gmail.com> 24542 24543 PR target/46098 24544 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>): 24545 Rename from avx_movu<ssemodesuffix><avxmodesuffix>. 24546 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander. 24547 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>. 24548 (<sse>_movu<ssemodesuffix>): New expander. 24549 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>. 24550 (avx_movdqu<avxmodesuffix>): New expander. 24551 (*sse2_movdqu): Rename from sse2_movdqu. 24552 (sse2_movdqu): New expander. 24553 245542012-05-14 Marc Glisse <marc.glisse@inria.fr> 24555 24556 PR target/52607 24557 * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ... 24558 (canonicalize_perm): ... new function. 24559 (expand_vec_perm_2vperm2f128_vshuf): New function. 24560 (ix86_expand_vec_perm_const_1): Call it. 24561 245622012-05-14 Andrew Pinski <apinski@cavium.com> 24563 H.J. Lu <hongjiu.lu@intel.com> 24564 Jakub Jelinek <jakub@redhat.com> 24565 24566 PR target/53315 24567 * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup. 24568 (xbegin): Updated. 24569 245702012-05-14 Jakub Jelinek <jakub@redhat.com> 24571 24572 * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat 24573 lineno 1 the same as lineno 0 before first start file directive. 24574 (optimize_macinfo_range): Likewise. 24575 24576 * dwarf2out.c (have_macinfo): Define. 24577 (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info 24578 attribute, don't force empty compilation unit and don't emit any 24579 .debug_macinfo/.debug_macro section if macinfo_table is empty. 24580 245812012-05-14 Georg-Johann Lay <avr@gjlay.de> 24582 24583 PR target/53344 24584 * config/avr/avr.c (avr_const_address_lo16): Remove. 24585 (avr_assemble_integer): Print ".byte lo8(x)", 24586 ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler 24587 .warning if 3-byte address is assembled. 24588 * doc/extend.texi (AVR Named Address Spaces): Document that 24589 binutils 2.23 is needed to assemble 3-byte addresses. 24590 245912012-05-14 Richard Guenther <rguenther@suse.de> 24592 24593 * tree-vect-data-refs.c (vect_setup_realignment): Remove 24594 call to mark_symbols_for_renaming. 24595 (vect_permute_load_chain): Likewise. 24596 * tree-vect-loop.c (vect_is_slp_reduction): Update stmt 24597 instead of calling mark_symbols_for_renaming. 24598 * tree-vect-stmts.c (read_vector_array): Remove call to 24599 mark_symbols_for_renaming. 24600 (write_vector_array): Likewise. 24601 (vectorizable_call): Likewise. 24602 (vectorizable_store): Likewise. 24603 (vectorizable_load): Likewise. 24604 * matrix-reorg.c (transform_allocation_sites): Likewise. 24605 * tree-ssa-pre.c (create_expression_by_pieces): Likewise. 24606 (create_expression_by_pieces): Likewise. 24607 246082012-05-14 Richard Guenther <rguenther@suse.de> 24609 24610 * gimplify.c (gimple_regimplify_operands): Only mark the LHS 24611 of statements for renaming. 24612 (force_gimple_operand_1): Likewise, consistently for both 24613 calls to force_gimple_operand and force_gimple_operand_gsi. 24614 246152012-05-14 Richard Guenther <rguenther@suse.de> 24616 24617 * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form. 24618 * omp-low.c (expand_omp_taskreg): Properly conditionalize call 24619 to update_ssa. 24620 (expand_omp_for): Likewise. 24621 (expand_omp_for_generic): Adjust conditional add to referenced vars. 24622 Use make_rename_temp for temporaries that should be rewritten into 24623 SSA form. 24624 (expand_omp_for_static_nochunk): Likewise. 24625 (expand_omp_atomic_pipeline): Likewise. 24626 246272012-05-14 Richard Guenther <rguenther@suse.de> 24628 24629 PR tree-optimization/53331 24630 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore 24631 strided loads. 24632 * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads. 24633 246342012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org> 24635 24636 PR 53063 24637 * doc/options.texi: (LangEnabledBy): Document it. 24638 * optc-gen.awk: Handle LangEnabledBy. 24639 * opth-gen.awk: Generate declaration for lang-specific functions. 24640 * opt-read.awk: Record lang numbers. 24641 * opt-functions.awk (flag_set_p): Ignore the arguments of flags. 24642 (lang_sanitized_name): New. 24643 246442012-05-14 Bernd Schmidt <bernds@codesourcery.com> 24645 24646 * attribs.c (decl_attributes): Avoid emitting a warning if 24647 ATTR_FLAG_BUILT_IN. 24648 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx 24649 codes. Document meaning of sets inside CALL_INSN_FUNCTION_USAGE. 24650 * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define. Use it to 24651 define a string "1". 24652 (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition. 24653 * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, 24654 BUILT_IN_STRCPY): Use it for these functions. 24655 * postreload.c (reload_combine): Deal with SETs inside 24656 CALL_INSN_FUNCTION_USAGE. 24657 * caller-save.c (setup_save_areas, save_call_clobbered_regs): 24658 Look for REG_RETURNED notes and use a cheap restore if possible. 24659 * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num. 24660 (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro. 24661 * ira-build.c (ira_create_allocno, create_cap_allocno, 24662 propagate_allocno_info, propagate_some_info_from_allocno, 24663 copy_info_to_removed_store_destination, ira_flattening): Handle it. 24664 * ira-lives.c (pseudo_regno_single_word_and_live_p, 24665 find_call_crossed_cheap_reg): New static functions. 24666 (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE, 24667 and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible. Also make 24668 a REG_RETURNED note in that case. 24669 * ira.c (setup_reg_renumber): Change assert to allow cases where 24670 allocnos only cross calls for which they are cheap to restore. 24671 * ira-costs.c (ira_tune_allocno_costs): Compare 24672 ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather 24673 than 0. 24674 * reg-notes.def (REG_RETURNED): New note. 24675 * cse.c (cse_insn): Likewise. 24676 * sched-deps.c (sched_analyze_insn): Likewise. 24677 * expr.c (init_block_move_fn): Set a "fn spec" attribute. 24678 * calls.c (decl_return_flags): New static function. 24679 (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for 24680 functions that return one of their arguments. 24681 * regcprop.c (struct kill_set_value_data): New. 24682 (kill_set_value): Interpret data as a pointer to such a struct. 24683 Do nothing if the caller wants the register to be ignored. 24684 (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE. 24685 246862012-05-14 Richard Guenther <rguenther@suse.de> 24687 24688 PR tree-optimization/53340 24689 * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit. 24690 246912012-05-14 Richard Guenther <rguenther@suse.de> 24692 24693 * gimplify.c (gimplify_expr): Remove odd code. 24694 246952012-05-14 Eric Botcazou <ebotcazou@adacore.com> 24696 24697 * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype 24698 into a PLUS_EXPR byte offset. 24699 24700 * tree-ssa-pre.c (can_value_number_call): Delete. 24701 (compute_avail): Skip all statements with side effects. 24702 <GIMPLE_CALL>: Skip calls to internal functions. 24703 247042012-05-13 Steven Bosscher <steven@gcc.gnu.org> 24705 24706 * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv". 24707 247082012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org> 24709 24710 * common.opt (Wtype-limits): Use EnabledBy. 24711 247122012-05-13 Uros Bizjak <ubizjak@gmail.com> 24713 24714 * config/i386/i386.md (*pushtf): Enable for TARGET_SSE. 24715 (pushtf splitter): Ditto. 24716 (movtf): Ditto. 24717 (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2. 24718 (<code>tf2): Enable for TARGET_SSE. 24719 (*absnegtf2_sse): Ditto. 24720 (copysign<mode>3): Enable TFmode for TARGET_SSE. 24721 (copysign<mode>3_const): Ditto. 24722 (copysign<mode>3_var): Ditto. 24723 * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE. 24724 (*andnottf3): Ditto. Use V4SFmode for !TARGET_SSE2. 24725 (*<code>tf3): Ditto. 24726 * config/i386/i386.c (struct builtin_description bdesc_args) 24727 <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE. 24728 <IX86_BUILTIN_COPYSIGNQ>: Ditto. 24729 (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>: 24730 Emit a normal call if SSE isn't available. 24731 247322012-05-13 Uros Bizjak <ubizjak@gmail.com> 24733 24734 * config/i386/sse.md (<sse>_andnot<mode>3): Handle 24735 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. 24736 (<code><mode>3): Ditto. 24737 (*andnot<mode>3): Ditto. 24738 (*andnottf3): Ditto. 24739 (*<code><mode>3): Ditto. 24740 (<code>tf3): Ditto. 24741 247422012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org> 24743 24744 * optc-gen.awk: Error instead of warning for conflicting help. 24745 247462012-05-12 Jason Merrill <jason@redhat.com> 24747 24748 PR debug/53235 24749 * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for 24750 comdat types. 24751 247522012-05-12 Eric Botcazou <ebotcazou@adacore.com> 24753 24754 * function.c (requires_stack_frame_p): If the function can throw 24755 non-call exceptions, return true if the insn can throw internally. 24756 247572012-05-12 Paolo Carlini <paolo.carlini@oracle.com> 24758 24759 * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P. 24760 247612012-05-12 Uros Bizjak <ubizjak@gmail.com> 24762 24763 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle 24764 ORDERED and UNORDERED conditions. 24765 247662012-05-11 Richard Guenther <rguenther@suse.de> 24767 24768 * tree-flow.h (referenced_var_check_and_insert): Remove. 24769 (find_new_referenced_vars): Likewise. 24770 * tree-dfa.c (referenced_var_check_and_insert): Make static. 24771 (find_new_referenced_vars_1, find_new_referenced_vars): Remove. 24772 * tree-inline.c (copy_bb): Use find_referenced_vars_in 24773 instead of find_new_referenced_vars. 24774 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise. 24775 247762012-05-11 Richard Guenther <rguenther@suse.de> 24777 24778 * tree-pass.h (pass_rest_of_compilation, 24779 pass_all_optimizations, pass_postreload, pass_all_early_optimizations): 24780 Remove. 24781 * passes.c (pass_all_optimizations, pass_postreload, 24782 pass_all_early_optimizations): Make static. 24783 (pass_rest_of_compilation): Likewise. Make it an RTL_PASS. 24784 * tree-phinodes.c (init_phinodes, fini_phinodes): Remove. 24785 * tree-ssa.c (init_tree_ssa): Do not call init_phinodes. 24786 (delete_tree_ssa): Do not call fini_phinodes. 24787 * tree-flow.h (init_phinodes, fini_phinodes): Remove. 24788 247892012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org> 24790 24791 PR 53063 24792 * doc/options.texi (EnabledBy): Document 24793 * opts.c: Include opts.h and options.h before tm.h. 24794 (finish_options): Do not handle some sub-options here... 24795 (common_handle_option): ... instead call common_handle_option_auto 24796 here. 24797 * optc-gen.awk: Handle EnabledBy. 24798 * opth-gen.awk: Declare common_handle_option_auto. 24799 * common.opt (Wuninitialized): Use EnabledBy. Delete Init. 24800 (Wmaybe-uninitialized): Likewise. 24801 (Wunused-but-set-variable): Likewise. 24802 (Wunused-function): Likewise. 24803 (Wunused-label): Likewise. 24804 (Wunused-value): Likewise. 24805 (Wunused-variable): Likewise. 24806 * opt-read.awk: Create opt_numbers array. 24807 248082012-05-11 Richard Guenther <rguenther@suse.de> 24809 24810 PR tree-optimization/53295 24811 * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant 24812 strides. 24813 * tree-data-ref.c (dr_analyze_innermost): Allow non-constant 24814 strides when analyzing data-references in a loop context. 24815 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject 24816 non-constant strides for now. 24817 (vect_enhance_data_refs_alignment): Ignore data references 24818 that are strided loads. 24819 (vect_analyze_data_ref_access): Handle non-constant strides. 24820 (vect_check_strided_load): Verify the data-reference is a load. 24821 (vect_analyze_data_refs): Restructure to make strided load 24822 support not dependent on gather support. 24823 * tree-vect-stmts.c (vectorizable_load): Avoid useless work 24824 when doing strided or gather loads. 24825 * tree-vect-loop-manip.c (vect_vfa_segment_size): Use 24826 integer_zerop to compare stride with zero. 24827 248282012-05-11 H.J. Lu <hongjiu.lu@intel.com> 24829 24830 * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM. 24831 248322012-05-11 Jan Hubicka <jh@suse.cz> 24833 24834 PR bootstrap/53300 24835 * varpool.c (varpool_assemble_decl): Also output constat pool entries 24836 that output_constant_pool missed. 24837 248382012-05-11 Mingjie Xing <mingjie.xing@gmail.com> 24839 24840 * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to 24841 MULTILIB_EXTRA_OPTS. 24842 248432012-05-11 Uros Bizjak <ubizjak@gmail.com> 24844 24845 PR target/53291 24846 * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc. 24847 248482012-05-11 Uros Bizjak <ubizjak@gmail.com> 24849 24850 * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size 24851 optimization for TARGET_AVX. 24852 (*movti_internal_sse): Ditto. 24853 (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. 24854 (*movdi_internal): Ditto. 24855 (*movsi_internal): Ditto. 24856 (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX. 24857 (*movdf_internal_rex64): Ditto. 24858 (*movfd_internal): Ditto. 24859 (*movsf_internal): Ditto. 24860 * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR. 24861 248622012-05-10 Eric Botcazou <ebotcazou@adacore.com> 24863 24864 * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable 24865 reference as size attribute. 24866 248672012-05-10 Eric Botcazou <ebotcazou@adacore.com> 24868 Tristan Gingold <gingold@adacore.com> 24869 24870 * doc/md.texi (Standard Names): Document probe_stack_address. 24871 * explow.c (emit_stack_probe): Handle probe_stack_address. 24872 * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant. 24873 (UNSPECV_PROBE_STACK_RANGE): Likewise. 24874 (probe_stack_address): New insn. 24875 (probe_stack_range): Likewise. 24876 * config/ia64/ia64.c: Include common/common-target.h. 24877 (ia64_compute_frame_size): Mark r2 and r3 as used if static stack 24878 checking is enabled. 24879 (ia64_emit_probe_stack_range): New function. 24880 (output_probe_stack_range): Likewise. 24881 (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static 24882 builtin stack checking is enabled. 24883 (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE 24884 and UNSPECV_PROBE_STACK_ADDRESS. 24885 (unknown_for_bundling_p): New predicate. 24886 (group_barrier_needed): Use important_for_bundling_p. 24887 (ia64_dfa_new_cycle): Use unknown_for_bundling_p. 24888 (issue_nops_and_insn): Likewise. 24889 (bundling): Likewise. 24890 (final_emit_insn_group_barriers): Likewise. 24891 * config/ia64/ia64-protos.h (output_probe_stack_range): Declare. 24892 * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define. 24893 (STACK_CHECK_PROTECT): Likewise. 24894 * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise. 24895 248962012-05-10 Jan Hubicka <jh@suse.cz> 24897 24898 * ipa-inline.c (update_all_callee_keys): Remove. 24899 (inline_small_functions): Simplify priority updating. 24900 249012012-05-10 Jan Hubicka <jh@suse.cz> 24902 24903 * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones. 24904 249052012-05-10 Jan Hubicka <jh@suse.cz> 24906 24907 * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ... 24908 (symtab_remove_unreachable_nodes): ... this one. 24909 * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes. 24910 * cgraphunit.c (ipa_passes): Update. 24911 * cgraphclones.c (cgraph_materialize_all_clones): Update. 24912 * cgraph.c (cgraph_release_function_body): Only turn initial 24913 into error mark when initial was previously set. 24914 * ipa-inline.c (ipa_inline): Update. 24915 * ipa.c: Include ipa-inline.h 24916 (enqueue_cgraph_node, enqueue_varpool_node): Remove. 24917 (enqueue_node): New function. 24918 (process_references): Update. 24919 (symtab_remove_unreachable_nodes): Cleanup. 24920 * passes.c (execute_todo, execute_one_pass): Update. 24921 249222012-05-10 Vladimir Makarov <vmakarov@redhat.com> 24923 24924 PR rtl-optimization/53125 24925 * ira.c (ira): Call find_moveable_pseudos and 24926 move_unallocated_pseudos if only ira_conflicts_p is true. 24927 249282012-05-10 Uros Bizjak <ubizjak@gmail.com> 24929 24930 * config/i386/i386.md (*movoi_internal_avx): Handle 24931 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES. 24932 (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. 24933 (*movti_internal_sse): Ditto. 24934 (*movtf_internal): Ditto. 24935 * config/i386/sse.md (ssePSmode): New mode attribute. 24936 (*move<mode>_internal): Use ssePSmode. 24937 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto. 24938 (*<sse2>_movdqu<avxsizesuffix>): Ditto. 24939 * config/i386/i386.c (standard_sse_constant_opcode): Do not handle 24940 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here. 24941 249422012-05-10 Eric Botcazou <ebotcazou@adacore.com> 24943 24944 * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the 24945 DECL_ORIGINAL_TYPE if it is present. 24946 249472012-05-10 Nick Clifton <nickc@redhat.com> 24948 24949 PR target/53120 24950 * config/m32c/bitops.md (bset_qi): Change operand 2 from having 24951 a "0" constraint to being a (match_dup 0). 24952 249532012-05-10 Richard Guenther <rguenther@suse.de> 24954 24955 * stor-layout.c (byte_from_pos): Amend comment. 24956 249572012-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 24958 24959 * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init): 24960 Document requirement to call in constructors. 24961 24962 * config/i386/i386.c: Update comments for i386-cpuinfo.c name change. 24963 249642012-05-10 Richard Guenther <rguenther@suse.de> 24965 24966 * tree.h (TYPE_IS_SIZETYPE): Remove. 24967 * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use. 24968 (extract_muldiv_1): Likewise. 24969 * gimple.c (gtc_visit): Likewise. 24970 (gimple_types_compatible_p): Likewise. 24971 (iterative_hash_canonical_type): Likewise. 24972 (gimple_canonical_types_compatible_p): Likewise. 24973 * gimplify.c (gimplify_one_sizepos): Likewise. 24974 * print-tree.c (print_node): Likewise. 24975 * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE. 24976 249772012-05-09 Uros Bizjak <ubizjak@gmail.com> 24978 24979 PR target/52908 24980 * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using 24981 xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high. 24982 (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern 24983 instead of xop_mulv2div2di3_low. 24984 (xop_p<macs>dql): Fix vec_select selector. 24985 (xop_p<macs>dqh): Ditto. 24986 (xop_mulv2div2di3_low): Remove insn_and_split pattern. 24987 (xop_mulv2div2di3_high): Ditto. 24988 249892012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org> 24990 24991 PR c++/53289 24992 * diagnostic.h (diagnostic_context): Add last_location. 24993 * diagnostic.c (diagnostic_initialize): Initialize it. 24994 (diagnostic_show_locus): Use it. 24995 249962012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org> 24997 24998 * doc/extend.texi (Function Attributes): Point xref to section 24999 about Pragmas. 25000 250012012-05-09 Uros Bizjak <ubizjak@gmail.com> 25002 25003 * config/i386/i386.c (*movdf_internal_rex64): Remove 25004 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code. 25005 Calculate "mode" attribute according to 25006 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag. 25007 (*movdf_internal): Ditto. 25008 250092012-05-09 Uros Bizjak <ubizjak@gmail.com> 25010 25011 PR target/44141 25012 * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle 25013 128 bit vectors specially for TARGET_AVX. Emit sse2_movupd and 25014 sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL 25015 or when optimizing for size. 25016 * config/i386/sse.md (*mov<mode>_internal): Remove 25017 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code. 25018 Calculate "mode" attribute according to optimize_function_for_size_p 25019 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag. 25020 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template 25021 depending on the mode of the instruction. Calculate "mode" attribute 25022 according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES 25023 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags. 25024 (*<sse2>_movdqu<avxsizesuffix>): Ditto. 25025 250262012-05-09 Georg-Johann Lay <avr@gjlay.de> 25027 25028 PR target/53256 25029 * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove. 25030 * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove. 25031 * config/avr/avr.h (struct machine_function): Add attributes_checked_p. 25032 * config/avr/avr.c (avr_asm_declare_function_name): Remove. 25033 (expand_prologue): Move initialization of cfun->machine->is_naked, 25034 is_interrupt, is_signal, is_OS_task, is_OS_main from here to... 25035 (avr_set_current_function): ...this new static function. 25036 (TARGET_SET_CURRENT_FUNCTION): New define. 25037 (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of 25038 checking attributes of current_function_decl. 25039 (avr_regs_to_save): Ditto. 25040 (signal_function_p): Rename to avr_signal_function_p. 25041 (interrupt_function_p): Rename to avr_interrupt_function_p. 25042 25043 * doc/extend.texi (Function Attributes): Better explanation of 25044 'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish 25045 alphabetical order. 25046 250472012-05-09 Michael Matz <matz@suse.de> 25048 25049 PR tree-optimization/53185 25050 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable 25051 peeling when we see strided loads. 25052 250532012-05-09 Matthias Klose <doko@ubuntu.com> 25054 25055 * gcc-ar.c (main): Don't check for execute bits for the plugin. 25056 250572012-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 25058 25059 * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost): 25060 Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with 25061 USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately. 25062 * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New. 25063 (USE_LOAD_POST_INCREMENT): Define. 25064 (USE_LOAD_PRE_INCREMENT): Define. 25065 (USE_LOAD_POST_DECREMENT): Define. 25066 (USE_LOAD_PRE_DECREMENT): Define. 25067 (USE_STORE_PRE_DECREMENT): Define. 25068 (USE_STORE_PRE_INCREMENT): Define. 25069 (USE_STORE_POST_DECREMENT): Define. 25070 (USE_STORE_POST_INCREMENT): Define. 25071 (arm_auto_incmodes): Add enumeration. 25072 * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare. 25073 * config/arm/arm.c (arm_autoinc_modes_ok_p): Define. 25074 250752012-05-09 Jakub Jelinek <jakub@redhat.com> 25076 25077 PR tree-optimization/53226 25078 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove 25079 prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false) 25080 before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it 25081 doesn't need to be revisited, look for earliest stmt with 25082 !gimple_plf (stmt, GF_PLF_1) if something changed. 25083 250842012-05-09 Terry Guo <terry.guo@arm.com> 25085 25086 * genmultilib: Update copyright dates. 25087 * doc/fragments.texi: Ditto. 25088 250892012-05-09 Terry Guo <terry.guo@arm.com> 25090 25091 * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED. 25092 * genmultilib (MULTILIB_REQUIRED): New. 25093 * doc/fragments.texi: Document the MULTILIB_REQUIRED. 25094 250952012-05-09 Richard Guenther <rguenther@suse.de> 25096 25097 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype. 25098 (vect_do_peeling_for_loop_bound): Likewise. 25099 (vect_do_peeling_for_alignment): Likewise. 25100 * tree-vect-loop-manip.c (conservative_cost_threshold): Remove. 25101 (vect_do_peeling_for_loop_bound): Get check_profitability and 25102 threshold as parameters. 25103 (vect_do_peeling_for_alignment): Likewise. 25104 (vect_loop_versioning): Likewise. 25105 * tree-vect-loop.c (vect_transform_loop): Compute check_profitability 25106 and threshold here. Control where to put the check here. 25107 251082012-05-09 Richard Sandiford <rdsandiford@googlemail.com> 25109 25110 PR middle-end/53249 25111 * dwarf2out.h (get_address_mode): Move declaration to... 25112 * rtl.h: ...here. 25113 * dwarf2out.c (get_address_mode): Move definition to... 25114 * rtlanal.c: ...here. 25115 * var-tracking.c (get_address_mode): Delete. 25116 * combine.c (find_split_point): Use get_address_mode instead of 25117 targetm.addr_space.address_mode. 25118 * cselib.c (cselib_record_sets): Likewise. 25119 * dse.c (canon_address, record_store): Likewise. 25120 * emit-rtl.c (adjust_address_1, offset_address): Likewise. 25121 * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces) 25122 (store_by_pieces_1, expand_assignment, store_expr, store_constructor) 25123 (expand_expr_real_1): Likewise. 25124 * ifcvt.c (noce_try_cmove_arith): Likewise. 25125 * optabs.c (maybe_legitimize_operand_same_code): Likewise. 25126 * reload.c (find_reloads): Likewise. 25127 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise. 25128 * sel-sched-dump.c (debug_mem_addr_value): Likewise. 25129 251302012-05-09 Maciej W. Rozycki <macro@codesourcery.com> 25131 25132 * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line 25133 information from the instruction produced. 25134 251352012-05-09 Richard Guenther <rguenther@suse.de> 25136 25137 * stor-layout.c (bit_from_pos): Document. 25138 (byte_from_pos): Likewise. Optimize. 25139 (pos_from_bit): Likewise. 25140 (normalize_offset): Use pos_from_bit instead of replicating it. 25141 251422012-05-09 Alan Modra <amodra@gmail.com> 25143 25144 PR target/53271 25145 * config/rs6000/rs6000.c (gen_frame_set): New function. 25146 (gen_frame_load, gen_frame_store): New functions. 25147 (rs6000_savres_rtx): Use the above. 25148 (rs6000_emit_epilogue, rs6000_emit_prologue): Here too. 25149 Correct mode used for CR2 in save/restore_world patterns. 25150 Don't emit instructions for eh_return frame unwind reg info. 25151 251522012-05-08 Jan Hubicka <jh@suse.cz> 25153 25154 * cgraphbuild.c (build_cgraph_edges): Do not finalize vars 25155 with VALUE_EXPR. 25156 * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR 25157 are removable. 25158 * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR 25159 need to wrapup. 25160 (compile_file): Do not output variables. 25161 * cgraphbuild.c (varpool_finalize_decl): When var is finalized late, 25162 output it. 25163 * langhooks.c: Include timevar.h 25164 (write_global_declarations): Finalize compilation unit after wrapup; 25165 set timevars correctly. 25166 * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs 25167 not to be added to varpool. 25168 * varpool.c (varpool_assemble_decl): Sanity check that we are called 25169 only on cases where it makes sense; skip constant pool and value expr 25170 vars. 25171 251722012-05-08 David S. Miller <davem@davemloft.net> 25173 25174 * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option. 25175 * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise. 25176 * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise. 25177 251782012-05-08 Richard Sandiford <rdsandiford@googlemail.com> 25179 25180 PR rtl-optimization/53278 25181 * lower-subreg.c (decompose_multiword_subregs): Remove left-over 25182 speed_p code from earlier patch. 25183 251842012-05-08 Oleg Endo <olegendo@gcc.gnu.org> 25185 25186 PR target/51244 25187 * config/sh/sh.md (*branch_true, *branch_false): New insns. 25188 251892012-05-08 Teresa Johnson <tejohnson@google.com> 25190 25191 * gcov-io.h (__gcov_reset, __gcov_dump): Declare. 25192 * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump. 25193 251942012-05-08 Jan Hubicka <jh@suse.cz> 25195 25196 * cgraph.c (cgraph_call_edge_duplication_hooks): Export. 25197 (cgraph_create_node_1): Rename to ... 25198 (cgraph_create_empty_node): ... this one; export. 25199 (cgraph_create_node): Update. 25200 (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c 25201 (cgraph_create_edge_including_clones): Likewise. 25202 (cgraph_find_replacement_node): Likewise. 25203 (cgraph_clone_edge): Likewise. 25204 (cgraph_clone_node): Likewise. 25205 (clone_function_name): Likewise. 25206 (cgraph_create_virtual_clone): Likewise. 25207 (cgraph_remove_node_and_inline_clones): Likewise. 25208 (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c 25209 * cgraph.h: Reorder declarations so they match file of origin. 25210 (cgraph_create_empty_node): Declare. 25211 * cgraphunit.c (update_call_expr): Move to cgraphclones.c 25212 (cgraph_copy_node_for_versioning): Likewise. 25213 (cgraph_function_versioning): Likewise. 25214 (cgraph_materialize_clone): Likewise. 25215 (cgraph_redirect_edge_call_stmt_to_callee): Likewise. 25216 (cgraph_materialize_all_clones): Likewise. 25217 * cgraphclones.c: New file. 25218 * Makefile.in: Update for cgraphclones. 25219 252202012-05-08 Uros Bizjak <ubizjak@gmail.com> 25221 25222 PR target/53176 25223 * config/i386/i386.c (ix86_set_reg_reg_cost): New function. 25224 (ix86_rtx_costs): Handle SET. 25225 252262012-05-08 Michael Matz <matz@suse.de> 25227 25228 * basic-block.h (struct rtl_bb_info): Remove visited member and 25229 move head_ member to ... 25230 (struct basic_block_def.basic_block_il_dependent): ... the new 25231 member x, replacing but containing old member rtl. 25232 (enum bb_flags): New BB_VISITED flag. 25233 (BB_HEADER, BB_FOOTER): New macros. 25234 25235 * jump.c (mark_all_labels): Adjust. 25236 * cfgcleanup.c (try_optimize_cfg): Adjust. 25237 * cfglayout.c (record_effective_endpoints): Adjust. 25238 (relink_block_chain): Ditto (and don't fiddle with visited). 25239 (fixup_reorder_chain): Adjust. 25240 (fixup_fallthru_exit_predecessor): Ditto. 25241 (cfg_layout_duplicate_bb): Ditto. 25242 * combine.c (update_cfg_for_uncondjump): Adjust. 25243 * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member. 25244 (bb_visited_trace): New accessor. 25245 (mark_bb_visited): Move in front. 25246 (rotate_loop): Use bb_visited_trace. 25247 (find_traces_1_round): Ditto. 25248 (emit_barrier_after): Ditto. 25249 (copy_bb): Ditto, and initialize visited on resize. 25250 (reorder_basic_blocks): Initize visited member. 25251 (duplicate_computed_gotos): Clear bb flags at start, use 25252 BB_VISITED flags. 25253 25254 * cfgrtl.c (try_redirect_by_replacing_jump): Adjust. 25255 (rtl_verify_flow_info_1): Ditto. 25256 (cfg_layout_split_block): Ditto. 25257 (cfg_layout_delete_block): Ditto. 25258 (cfg_layout_merge_blocks): Ditto. 25259 (init_rtl_bb_info): Adjust and initialize il.x.head_ member. 25260 252612012-05-08 Hans-Peter Nilsson <hp@axis.com> 25262 25263 PR target/53272 25264 * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32, 25265 when a constant source operand matches an "I" constraint, the "no 25266 CC0 change" applies to a register-destination only, not a 25267 strict_low_part-destination. 25268 252692012-05-08 Richard Guenther <rguenther@suse.de> 25270 25271 * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2 25272 to zero or to (X * CST1) & CST2' when CST1 has trailing zeros. 25273 252742012-05-08 Georg-Johann Lay <avr@gjlay.de> 25275 25276 * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi. 25277 25278 * doc/avr-mmcu.texi: New auto-generated file. 25279 * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order 25280 to document all valid -mmcu= arguments. 25281 25282 * config/avr/avr.h (arch_info_s): New struct definition. 25283 * config/avr/avr-devices.c (avr_texinfo): New variable. 25284 * config/avr/gen-avr-mmcu-texi.c: New file. 25285 * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi. 25286 252872012-05-08 Dehao Chen <dehao@google.com> 25288 25289 * predict.c (find_qualified_ssa_name): New. 25290 (find_ssa_name_in_expr): New. 25291 (find_ssa_name_in_assign_stmt): New. 25292 (is_comparison_with_loop_invariant_p): New. 25293 (is_bound_expr_similar): New. 25294 (predict_iv_comparison): New. 25295 (predict_loops): Add heuristic for loop-nested branches that compare an 25296 induction variable to a loop bound variable. 25297 * predict.def (PRED_LOOP_IV_COMPARE): New macro. 25298 252992012-05-08 Uros Bizjak <ubizjak@gmail.com> 25300 25301 * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and 25302 TARGET_BDVER2 defines where appropriate. 25303 253042012-05-07 Eric Botcazou <ebotcazou@adacore.com> 25305 25306 * configure.ac (PLUGIN_LD): Rename into... 25307 (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet. 25308 * config.in: Regenerate. 25309 * configure: Likewise. 25310 * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX. 25311 253122012-05-07 Eric Botcazou <ebotcazou@adacore.com> 25313 25314 * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset 25315 computation using the precision of the index type. 25316 * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise. 25317 (fold_array_ctor_reference): Do index computations in the index type. 25318 253192012-05-07 Georg-Johann Lay <avr@gjlay.de> 25320 25321 * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed 25322 down to plus_constant. 25323 (expand_epilogue): Ditto. 25324 253252012-05-07 Steven Bosscher <steven@gcc.gnu.org> 25326 25327 * postreload.c (reload_cse_regs): Make static. 25328 * reload.h (reload_cse_regs): Remove prototype. 25329 253302012-05-07 Richard Henderson <rth@redhat.com> 25331 25332 * config/alpha/alpha.md (clear_cache): New pattern. 25333 253342012-05-07 Steven Bosscher <steven@gcc.gnu.org> 25335 25336 PR middle-end/53245 25337 * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high 25338 is folded to a type boundary value, verify that the resulting case 25339 label is still a care range. 25340 253412012-05-07 Uros Bizjak <ubizjak@gmail.com> 25342 25343 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf 25344 only for TARGET_GENERIC, when not optimizing for size. 25345 (*ffs<mode>_1): Ditto. 25346 253472012-05-07 Steven Bosscher <steven@gcc.gnu.org> 25348 25349 * tree-cfg.c (verify_gimple_switch): Tighten checks. 25350 253512012-05-07 Jakub Jelinek <jakub@redhat.com> 25352 25353 PR tree-optimization/53239 25354 * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF 25355 of DECL_BY_REFERENCE RESULT_DECL to nonnull. 25356 253572012-05-07 Richard Guenther <rguenther@suse.de> 25358 25359 PR tree-optimization/53195 25360 * tree-inline.c (setup_one_parameter): Properly add referenced 25361 vars from the parameters new known value. 25362 253632012-05-07 Steven Bosscher <steven@gcc.gnu.org> 25364 25365 * config/m68k/m68k.c (m68k_sched_branch_type): Remove. 25366 (sched_branch_type): Remove. 25367 (m68k_sched_md_init_global): Don't allocate it. 25368 (m68k_sched_md_finish_global): Don't free it. 25369 * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype. 25370 * config/m68k/m68k.md: Set the type of insns using 25371 m68k_sched_branch_type to bcc directly. 25372 253732012-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 25374 25375 * config/sol2.c (solaris_override_options): New function. 25376 * config/sol2-protos.h (solaris_override_options): Declare. 25377 * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define. 25378 253792012-05-07 Richard Guenther <rguenther@suse.de> 25380 25381 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return 25382 whether we failed to compute data dependences. 25383 (loop_prefetch_arrays): Fail if we failed. 25384 253852012-05-07 Uros Bizjak <ubizjak@gmail.com> 25386 Paolo Bonzini <bonzini@gnu.org> 25387 25388 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI. 25389 Emit bsf when optimizing for size. 25390 (*ffs<mode>_1): Ditto. 25391 253922012-05-07 Oleg Endo <olegendo@gcc.gnu.org> 25393 25394 PR target/53250 25395 * config/sh/sh.c (sh_rtx_costs): Handle SET. 25396 253972012-05-06 Uros Bizjak <ubizjak@gmail.com> 25398 25399 PR target/53227 25400 * config/i386/i386.md (swap<mode>): Rename from *swap<mode>. 25401 (bswapdi2): Split from bswap<mode>2. Use nonnimediate_operand 25402 predicate for operand 1. Force operand 1 to register for TARGET_BSWAP. 25403 (bswapsi2): Ditto. 25404 (*bswapdi2_doubleword): New insn pattern. 25405 (*bswap<mode>2): Rename from *bswap<mode>2_1. 25406 254072012-05-06 Richard Sandiford <rdsandiford@googlemail.com> 25408 25409 * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function. 25410 (mips_set_reg_reg_cost): Likewise. 25411 (mips_rtx_costs): Handle SET. 25412 254132012-05-06 Richard Sandiford <rdsandiford@googlemail.com> 25414 25415 * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET. 25416 (compute_costs): Likewise for the zero extension. Use set_rtx_cost 25417 to compute the cost of moves. Set the mode of the target register. 25418 254192012-05-05 Richard Sandiford <rdsandiford@googlemail.com> 25420 25421 * rtl.h (plus_constant, plus_constant_mode): Merge into a single 25422 plus_constant function. 25423 * explow.c (plus_constant, plus_constant_mode): Likewise. Assert 25424 that the mode is sensible. 25425 (use_anchored_address, round_push, allocate_dynamic_stack_space) 25426 (probe_stack_range, anti_adjust_stack_and_probe): Update calls to 25427 plus_constant. 25428 25429 * alias.c (canon_rtx): Likewise. 25430 (init_alias_analysis): Likewise. 25431 * builtins.c (expand_builtin_return_addr) 25432 (expand_builtin_setjmp_setup, expand_builtin_longjmp) 25433 (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf) 25434 (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr) 25435 (expand_builtin_stpcpy): Likewise. 25436 * calls.c (save_fixed_argument_area, restore_fixed_argument_area) 25437 (compute_argument_addresses, internal_arg_pointer_based_exp) 25438 (expand_call, emit_library_call_value_1): Likewise. 25439 * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise. 25440 * combine-stack-adj.c (try_apply_stack_adjustment): Likewise. 25441 * combine.c (combine_simplify_rtx, force_to_mode): Likewise. 25442 * cse.c (insert_const_anchor, find_reg_offset_for_const) 25443 (use_related_value, fold_rtx): Likewise. 25444 * cselib.c (cselib_subst_to_values): Likewise. 25445 * dse.c (record_store, check_mem_read_rtx): Likewise. 25446 * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise. 25447 * emit-rtl.c (adjust_address_1): Likewise. 25448 * except.c (sjlj_emit_function_enter) 25449 (expand_builtin_extract_return_addr) 25450 (expand_builtin_frob_return_addr): Likewise. 25451 * expmed.c (expand_divmod): Likewise. 25452 * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1) 25453 (emit_move_resolve_push, push_block, emit_push_insn, store_expr) 25454 (expand_expr_addr_expr_1, expand_expr_real_1): Likewise. 25455 * function.c (assign_stack_local_1) 25456 (instantiate_virtual_regs_in_rtx): Likewise. 25457 * optabs.c (prepare_cmp_insn): Likewise. 25458 * recog.c (offsettable_address_addr_space_p): Likewise. 25459 * reload.c (find_reloads_address, form_sum) 25460 (find_reloads_subreg_address): Likewise. 25461 * reload1.c (init_reload, eliminate_regs_1) 25462 (eliminate_regs_in_insn): Likewise. 25463 * simplify-rtx.c (simplify_unary_operation_1) 25464 (simplify_binary_operation_1, simplify_plus_minus): Likewise. 25465 * var-tracking.c (compute_cfa_pointer, prepare_call_arguments) 25466 (vt_add_function_parameter): Likewise. 25467 25468 * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise. 25469 * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise. 25470 * config/alpha/alpha.c (alpha_legitimize_address_1) 25471 (get_unaligned_address, alpha_expand_unaligned_load) 25472 (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words) 25473 (alpha_expand_unaligned_store_words, alpha_expand_block_clear) 25474 (alpha_expand_builtin_establish_vms_condition_handler) 25475 (alpha_setup_incoming_varargs, emit_frame_store_1) 25476 (alpha_expand_prologue, alpha_expand_epilogue) 25477 (alpha_use_linkage): Likewise. 25478 * config/alpha/alpha.md: Likewise. 25479 25480 * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address) 25481 (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address) 25482 (thumb_legitimize_address, arm_gen_load_multiple_1) 25483 (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq) 25484 (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight) 25485 (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi) 25486 (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push) 25487 (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue) 25488 (thumb1_emit_multi_reg_push, thumb1_expand_prologue) 25489 (thumb_expand_movmemqi, arm_set_return_address) 25490 (thumb_set_return_address): Likewise. 25491 * config/arm/arm.md: Likewise. 25492 25493 * config/avr/avr.c (avr_incoming_return_addr_rtx) 25494 (avr_prologue_setup_frame, expand_epilogue) 25495 (avr_const_address_lo16): Likewise. 25496 25497 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise. 25498 * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg) 25499 (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call) 25500 (bfin_output_mi_thunk): Likewise. 25501 25502 * config/c6x/c6x.c (c6x_initialize_trampoline) 25503 (c6x_output_mi_thunk): Likewise. 25504 25505 * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise. 25506 * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise. 25507 25508 * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx) 25509 (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load) 25510 (cris_emit_movem_store, cris_trampoline_init): Likewise. 25511 * config/cris/cris.md: Likewise. 25512 25513 * config/darwin.c (machopic_indirect_data_reference) 25514 (machopic_legitimize_pic_address): Likewise. 25515 25516 * config/epiphany/epiphany.c (epiphany_emit_save_restore) 25517 (epiphany_expand_prologue, epiphany_expand_epilogue) 25518 (epiphany_trampoline_init): Likewise. 25519 * config/epiphany/epiphany.md: Likewise. 25520 25521 * config/fr30/fr30.c (fr30_move_double): Likewise. 25522 25523 * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue) 25524 (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx) 25525 (frv_index_memory, unspec_got_name, frv_find_base_term) 25526 (frv_output_dwarf_dtprel): Likewise. 25527 25528 * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx) 25529 (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise. 25530 25531 * config/i386/i386.h (RETURN_ADDR_RTX): Likewise. 25532 * config/i386/i386.c (setup_incoming_varargs_64) 25533 (setup_incoming_varargs_ms_64, choose_baseaddr) 25534 (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe) 25535 (ix86_emit_probe_stack_range, ix86_expand_prologue) 25536 (ix86_emit_restore_reg_using_pop, ix86_emit_leave) 25537 (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address) 25538 (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem) 25539 (ix86_static_chain, ix86_trampoline_init, x86_this_parameter) 25540 (x86_output_mi_thunk): Likewise. 25541 * config/i386/i386.md: Likewise. 25542 25543 * config/ia64/ia64.c (ia64_expand_load_address) 25544 (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode) 25545 (do_spill, ia64_trampoline_init): Likewise. 25546 25547 * config/iq2000/iq2000.c (iq2000_va_start) 25548 (iq2000_emit_frame_related_store, iq2000_expand_prologue) 25549 (iq2000_expand_eh_return, iq2000_setup_incoming_varargs) 25550 (iq2000_print_operand, iq2000_legitimize_address): Likewise. 25551 25552 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise. 25553 25554 * config/m32c/m32c.c (m32c_return_addr_rtx) 25555 (m32c_expand_insv): Likewise. 25556 25557 * config/m32r/m32r.c (m32r_setup_incoming_varargs) 25558 (m32r_legitimize_pic_address, m32r_print_operand) 25559 (m32r_print_operand_address): Likewise. 25560 25561 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise. 25562 * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise. 25563 (EH_RETURN_HANDLER_RTX): Likewise. 25564 * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue) 25565 (m68k_expand_epilogue, legitimize_pic_address) 25566 (m68k_output_mi_thunk): Likewise. 25567 * config/m68k/m68k.md: Likewise. 25568 25569 * config/mcore/mcore.c (mcore_expand_prolog): Likewise. 25570 (mcore_expand_epilog): Likewise. 25571 * config/mcore/mcore.md: Likewise. 25572 25573 * config/mep/mep.c (mep_allocate_initial_value) 25574 (mep_expand_prologue, mep_expand_epilogue): Likewise. 25575 25576 * config/microblaze/microblaze.c (double_memory_operand) 25577 (microblaze_block_move_loop): Likewise. 25578 25579 * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset) 25580 (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop) 25581 (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg) 25582 (mips_expand_prologue, mips_epilogue_set_cfa) 25583 (mips_expand_epilogue): Likewise. 25584 * config/mips/mips.md: Likewise. 25585 25586 * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx) 25587 (mmix_expand_prologue, mmix_expand_epilogue): Likewise. 25588 25589 * config/mn10300/mn10300.c (mn10300_gen_multiple_store) 25590 (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise. 25591 25592 * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise. 25593 (EH_RETURN_HANDLER_RTX): Likewise. 25594 * config/moxie/moxie.c (moxie_static_chain): Likewise. 25595 25596 * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address) 25597 (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg) 25598 (pa_return_addr_rtx, hppa_builtin_saveregs) 25599 (pa_trampoline_init): Likewise. 25600 * config/pa/pa.md: Likewise. 25601 25602 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise. 25603 25604 * config/picochip/picochip.c (picochip_static_chain): Likewise. 25605 25606 * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise. 25607 * config/rs6000/rs6000.c (rs6000_legitimize_address) 25608 (setup_incoming_varargs, print_operand, rs6000_return_addr) 25609 (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range) 25610 (rs6000_emit_epilogue) 25611 (rs6000_machopic_legitimize_pic_address): Likewise. 25612 25613 * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise. 25614 25615 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise. 25616 (DYNAMIC_CHAIN_ADDRESS): Likewise. 25617 * config/s390/s390.c (s390_decompose_address, legitimize_pic_address) 25618 (s390_delegitimize_address, print_operand, annotate_constant_pool_refs) 25619 (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx) 25620 (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue) 25621 (s390_emit_epilogue, s390_function_profiler): Likewise. 25622 * config/s390/s390.md: Likewise. 25623 25624 * config/score/score.c (score_add_offset, score_prologue): Likewise. 25625 25626 * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs) 25627 (sh_output_mi_thunk): Likewise. 25628 * config/sh/sh.md: Likewise. 25629 25630 * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX) 25631 (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise. 25632 * config/sparc/sparc.c (sparc_legitimize_pic_address) 25633 (sparc_emit_probe_stack_range, emit_save_or_restore_regs) 25634 (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx) 25635 (emit_and_preserve): Likewise. 25636 * config/sparc/sparc.md: Likewise. 25637 25638 * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise. 25639 * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg) 25640 (spu_setup_incoming_varargs, ea_load_store_inline) 25641 (spu_expand_load): Likewise. 25642 25643 * config/stormy16/stormy16.c (xstormy16_expand_prologue) 25644 (combine_bnp): Likewise. 25645 25646 * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise. 25647 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs) 25648 (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise. 25649 25650 * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise. 25651 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs) 25652 (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise. 25653 25654 * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise. 25655 * config/v850/v850.md: Likewise. 25656 25657 * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise. 25658 (EH_RETURN_HANDLER_RTX): Likewise. 25659 * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise. 25660 * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue) 25661 (print_operand_address, vax_trampoline_init): Likewise. 25662 25663 * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr) 25664 (xtensa_function_value_regno_p): Likewise. 25665 256662012-05-04 Andrew Pinski <apinski@cavium.com> 25667 25668 * expr.c (get_def_for_expr_class): New function. 25669 (convert_tree_comp_to_rtx): New function. 25670 (expand_cond_expr_using_cmove): New function. 25671 (expand_expr_real_2 <case COND_EXPR>): Call 25672 expand_cond_expr_using_cmove first and return if it succeeds. 25673 Remove the check for HAVE_conditional_move since we should have 25674 already converted it to a conditional move. 25675 * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison 25676 modes of DImode for 32bits and TImode. 25677 256782012-05-04 Steven Bosscher <steven@gcc.gnu.org> 25679 25680 PR other/29442 25681 * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions. 25682 (print_md_ptr_loc, print_c_condition): Use them. 25683 * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes. 25684 * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name, 25685 attr_file, dfa_file, latency_file): New global variables. 25686 (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value, 25687 write_upcase, write_indent, write_length_unit_log, write_test_expr, 25688 write_attr_get, write_insn_cases, write_eligible_delay, 25689 write_const_num_delay_slots): Accept FILE pointer and toss it around. 25690 Update all callers. 25691 (write_header, open_outfile, handle_arg): New funcions. 25692 (make_automaton_attrs): Write prototypes as extern to the output 25693 files. 25694 (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file 25695 names from the command line. Open the output files and write out 25696 internal functions for DFA functions to dfa_file_name, insn latency 25697 functions to latency_file_name, and everything else to attr_file. 25698 * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o. 25699 (BACKEND): Build libbackend first. 25700 (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c. 25701 (.PRECIOUS): Likewise. 25702 (insn-dfatab.o): New rule. 25703 (insn-latencytab.o): New rule. 25704 (simple_rtl_generated_c): Do not include insn-attrtab.c. 25705 (s-attrtab): New rule. 25706 257072012-05-04 Steven Bosscher <steven@gcc.gnu.org> 25708 25709 * rtl.def (ATTR_FLAG): Remove probability indicating flags. 25710 * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely, 25711 ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely. 25712 * reorg.c (get_jump_flags): Do not set the removed flags. 25713 25714 * doc/md.texi (attr_flag): Update for abovementioned changes. 25715 257162012-05-04 Uros Bizjak <ubizjak@gmail.com> 25717 25718 PR target/53228 25719 * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE. 25720 (TARGET_CMOV): Rename from TARGET_CMOVE. 25721 (TARGET_CMOVE): New define. 25722 * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV. 25723 Do not set TARGET_CMOVE here. 25724 257252012-05-04 Dodji Seketeli <dodji@redhat.com> 25726 25727 Enable -Wunused-local-typedefs when -Wall or -Wunused is on 25728 * opts.c (finish_options): Activate -Wunused-local-typedefs if 25729 -Wunused is activated. 25730 * doc/invoke.texi: Update blurb of -Wunused-local-typedefs. 25731 257322012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 25733 25734 * config/s390/s390.md (*movmem_short, *clrmem_short) 25735 (*cmpmem_short): Move the mode check from the insn condition to 25736 the match_scratch. 25737 257382012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org> 25739 25740 PR tree-optimization/52633 25741 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of 25742 vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern. 25743 (vect_recog_over_widening_pattern): Remove handling of code that was 25744 already detected as over-widening pattern. Remove special handling 25745 of "unsigned" cases. Instead, support general case of conversion 25746 of the shift result to another type. 25747 257482012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org> 25749 25750 * tree-vect-patterns.c (vect_single_imm_use): New function. 25751 (vect_recog_widen_mult_pattern): Use it instead of open-coding loop. 25752 (vect_recog_over_widening_pattern): Likewise. 25753 (vect_recog_widen_shift_pattern): Likewise. 25754 257552012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org> 25756 25757 * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function. 25758 (vect_handle_widen_op_by_const): Use it instead of open-coding test. 25759 (vect_recog_widen_mult_pattern): Likewise. 25760 (vect_operation_fits_smaller_type): Likewise. 25761 (vect_recog_over_widening_pattern): Likewise. 25762 (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test. 25763 257642012-05-04 Richard Guenther <rguenther@suse.de> 25765 25766 PR lto/50602 25767 * lto-wrapper.c (merge_and_complain): Complain about mismatches 25768 of -freg-struct-return and -fpcc-struct-return. 25769 (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return 25770 from the input file options and ignore those from the link 25771 command line. 25772 257732012-05-04 Richard Guenther <rguenther@suse.de> 25774 25775 PR tree-optimization/53168 25776 * tree-ssa-pre.c (phi_translate_1): Only handle type-punned 25777 memory reads when the result is a constant we can pun. 25778 257792012-05-04 Richard Guenther <rguenther@suse.de> 25780 25781 * common.opt (flto-report): Do not mark as Optimization. 25782 257832012-05-04 Eric Botcazou <ebotcazou@adacore.com> 25784 25785 PR target/48496 25786 * recog.c (constrain_operands): If extra constraints are present, also 25787 accept pseudo-registers with equivalent memory locations during reload. 25788 257892012-05-04 Olivier Hainque <hainque@adacore.com> 25790 25791 * collect2.c (may_unlink_output_file): New global. 25792 (maybe_unlink): Honor it. 25793 * collect2.h: Add extern for it. 25794 * tlink.c (do_tlink): Set it to true if the link succeeded. 25795 257962012-05-04 Olivier Hainque <hainque@adacore.com> 25797 25798 * gcc.c (eval_spec_function): Finalize/restore the current string 25799 obstack state as part of the context push/pop operations. 25800 258012012-05-04 Bin Cheng <bin.cheng@arm.com> 25802 25803 PR rtl-optimization/52804 25804 * reload1.c (reload_reg_reaches_end_p): Check whether successor 25805 reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register 25806 of current one with type RELOAD_FOR_INPADDR_ADDRESS. 25807 Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and 25808 RELOAD_FOR_OUTADDR_ADDRESS. 25809 258102012-05-04 Manuel López-Ibáñez <manu@gcc.gnu.org> 25811 25812 PR c++/24985 25813 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret 25814 for macro expansion. 25815 258162012-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org> 25817 25818 * flags.h (flag_permissive): Do not declare. 25819 * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive 25820 option specially. 25821 * toplev.c (flag_permissive): Do not define. 25822 * c-tree.h (system_header_p): Delete unused. 25823 258242012-05-03 David S. Miller <davem@davemloft.net> 25825 25826 PR target/52684 25827 * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a 25828 MEM directly into a libcall, mark it's MEM_EXPR as addressable. 25829 (sparc_emit_float_lib_cmp): Likewise. 25830 258312012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com> 25832 25833 PR target/53199 25834 * config/rs6000/rs6000.md (bswapdi splitters): If 25835 -mavoid-indexed-addresses (or -mcpu=power6 which sets it by 25836 default) is used, generate an alternate sequence that does not 25837 depend on using indexed addressing. 25838 258392012-05-03 Jason Merrill <jason@redhat.com> 25840 25841 * gengtype.c (write_types): Fix warning message. 25842 (write_local): Likewise. 25843 258442012-05-02 Jason Merrill <jason@redhat.com> 25845 25846 * dwarf2out.c (struct external_ref, build_local_stub): New. 25847 (hash_external_ref, external_ref_eq, lookup_external_ref): New. 25848 (optimize_external_refs, optimize_external_refs_1): New. 25849 (change_AT_die_ref): New. 25850 (clone_as_declaration): Add DW_AT_signature when cloning a declaration. 25851 (build_abbrev_table): Take the external refs hashtable. 25852 (output_comp_unit): Get it from optimize_external_refs and pass it in. 25853 258542012-05-03 Jan Hubicka <jh@suse.cz> 25855 25856 PR middle-end/53093 25857 * tree-emutls.c (new_emutls_decl): Fix handling of aliases. 25858 258592012-05-03 Jan Hubicka <jh@suse.cz> 25860 25861 PR middle-end/53106 25862 * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones. 25863 258642012-05-03 Jason Merrill <jason@redhat.com> 25865 25866 * dwarf2out.c (die_struct): Add comdat_type_p flag. Use it instead of 25867 use_debug_types to discriminate the die_id union. 25868 (print_die, assign_symbol_names, copy_decls_walk): Likewise. 25869 (build_abbrev_table, output_die): Likewise. 25870 (prune_unused_types_walk_attribs): Likewise. 25871 (generate_type_signature, copy_declaration_context): Set it. 25872 (remove_child_or_replace_with_skeleton): Set it. 25873 (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't 25874 check use_debug_types. 25875 (dwarf2out_finish): Do break_out_includes after .debug_types. 25876 258772012-05-03 Jason Merrill <jason@redhat.com> 25878 25879 * dwarf2out.c (modified_type_die): Use scope_die_for. 25880 (gen_type_die_with_usage, dwarf2out_finish): Likewise. 25881 (uses_local_type_r, uses_local_type): New. 25882 (scope_die_for): Keep a type that uses a local type in local scope. 25883 Use get_context_die for namespace and type scope. 25884 258852012-05-03 Jason Merrill <jason@redhat.com> 25886 25887 * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the 25888 pc thunk. 25889 * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions. 25890 (dwarf2out_finish): Likewise. 25891 258922012-05-03 Martin Jambor <mjambor@suse.cz> 25893 25894 * builtins.c (get_object_alignment_1): Return whether we can determine 25895 the alignment or conservatively assume byte alignment. Return the 25896 alignment by reference. Use get_pointer_alignment_1 for dereference 25897 alignment. 25898 (get_pointer_alignment_1): Return whether we can determine the 25899 alignment or conservatively assume byte alignment. Return the 25900 alignment by reference. Use get_ptr_info_alignment to get SSA name 25901 alignment. 25902 (get_object_alignment): Update call to get_object_alignment_1. 25903 (get_object_or_type_alignment): Likewise, fall back to type alignment 25904 only when it returned false. 25905 (get_pointer_alignment): Update call to get_pointer_alignment_1. 25906 * fold-const.c (get_pointer_modulus_and_residue): Update call to 25907 get_object_alignment_1. 25908 * ipa-prop.c (ipa_modify_call_arguments): Update call to 25909 get_pointer_alignment_1. 25910 * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type 25911 of MEM_REF or TARGET_MEM_REF only when it returns false. 25912 * tree-ssa-ccp.c (get_value_from_alignment): Update call to 25913 get_object_alignment_1. 25914 (ccp_finalize): Use set_ptr_info_alignment. 25915 * tree.h (get_object_alignment_1): Update declaration. 25916 (get_pointer_alignment_1): Likewise. 25917 * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment. 25918 (dump_gimple_stmt): Likewise. 25919 * tree-flow.h (ptr_info_def): Updated comments of fields align and 25920 misalign. 25921 (get_ptr_info_alignment): Declared. 25922 (mark_ptr_info_alignment_unknown): Likewise. 25923 (set_ptr_info_alignment): Likewise. 25924 (adjust_ptr_info_misalignment): Likewise. 25925 * tree-ssa-address.c (copy_ref_info): Use new access functions to get 25926 and set alignment of SSA names. 25927 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call 25928 mark_ptr_info_alignment_unknown. 25929 * tree-ssanames.c (get_ptr_info_alignment): New function. 25930 (mark_ptr_info_alignment_unknown): Likewise. 25931 (set_ptr_info_alignment): Likewise. 25932 (adjust_ptr_info_misalignment): Likewise. 25933 (get_ptr_info): Call mark_ptr_info_alignment_unknown. 25934 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): 25935 Likewise. 25936 (bump_vector_ptr): Likewise. 25937 * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment. 25938 (vectorizable_store): Likewise. 25939 (vectorizable_load): Likewise. 25940 259412012-05-03 Michael Matz <matz@suse.de> 25942 25943 * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move 25944 in front of basic_block_def. 25945 (struct basic_block_def): Make il.gimple the full struct, not a 25946 pointer. 25947 (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef. 25948 25949 * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members. 25950 * gimple-iterator.c (gimple_stmt_iterator): Don't special case 25951 NULL il.gimple, which can't happen anymore. 25952 * gimple.h (bb_seq): il.gimple can't be NULL. 25953 (bb_seq_add): Ditto. 25954 (set_bb_seq): Adjust. 25955 (gsi_start_bb, gsi_last_bb): Tidy. 25956 * lto-streamer-in.c (make_new_block): Don't zero members that 25957 are zeroed already, don't allocate a gimple_bb_info. 25958 * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info. 25959 (remove_bb): Clear all il.gimple members. 25960 (gimple_verify_flow_info): Adjust for flat il.gimple. 25961 * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust. 25962 25963 * coretypes.h (const_gimple_seq): Remove typedef. 25964 * gimple.h (gimple_seq_first): Take gimple_seq. 25965 (gimple_seq_first_stmt): Ditto. 25966 (gimple_seq_last): Ditto. 25967 (gimple_seq_last_stmt): Ditto. 25968 (gimple_seq_empty_p): Ditto. 25969 259702012-05-03 Richard Guenther <rguenther@suse.de> 25971 25972 * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping 25973 operations. 25974 (prune_clobbered_mems): Do it here. Do not uselessly sort expressions. 25975 (compute_avail): Do not add possibly trapping operations to 25976 EXP_GEN if they might not be executed in the block. 25977 259782012-05-03 Uros Bizjak <ubizjak@gmail.com> 25979 25980 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove. 25981 259822012-05-03 Steven Bosscher <steven@gcc.gnu.org> 25983 25984 * tree-switch-conversion.c (gen_inbound_check): Free post-dominance 25985 information as early as possible. Update dominance info instead of 25986 discarding it. 25987 259882012-05-03 Richard Guenther <rguenther@suse.de> 25989 25990 * tree-ssa-pre.c (debug_bitmap_sets_for): New function. 25991 (union_contains_value): Remove. 25992 (vro_valid_in_sets): Likewise. 25993 (op_valid_in_sets): New function. 25994 (valid_in_sets): Use op_valid_in_sets. 25995 (insert_into_preds_of_block): Move dumping ... 25996 (do_regular_insertion): ... here. 25997 (do_partial_partial_insertion): ... and here. Dump that 25998 we've found a partial partial redundancy. 25999 (insert): Dump the current insert iteration. 26000 260012012-05-03 Jakub Jelinek <jakub@redhat.com> 26002 26003 PR plugins/53126 26004 * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env, 26005 append program name to it and pass that as first argument 26006 to make_relative_prefix. Always pass standard_libexec_prefix 26007 as last argument to make_relative_prefix. If 26008 make_relative_prefix returns NULL, fall back to 26009 standard_libexec_prefix. 26010 26011 PR debug/53174 26012 * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being 26013 removed. 26014 26015 PR target/53187 26016 * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class 26017 mode, return that mode. 26018 26019 PR target/53194 26020 * config/i386/i386-c.c (ix86_target_macros_internal): Don't 26021 define __ATOMIC_HLE_* macros here. 26022 (ix86_target_macros): But here, using cpp_define_formatted. 26023 260242012-05-03 Richard Guenther <rguenther@suse.de> 26025 26026 PR tree-optimization/53144 26027 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces): 26028 Rename to ... 26029 (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal 26030 with SSA name values. 26031 (vn_reference_lookup_3): Adjust callers. 26032 260332012-05-03 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> 26034 26035 * config/i386/driver-i386.c (host_detect_local_cpu): Reset 26036 has_fma4 for AMD processors with both fma3 and fma4 support. 26037 260382012-05-03 Kirill Yukhin <kirill.yukhin@intel.com> 26039 26040 PR target/53201 26041 * config/i386/driver-i386.c (host_detect_local_cpu): Add space to 26042 "-mno-hle". 26043 260442012-05-03 Michael Matz <matz@suse.de> 26045 26046 PR bootstrap/53197 26047 * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator. 26048 (dse_enter_block): Properly iterate the whole sequence even 26049 if the last statement was removed. 26050 260512012-05-02 Steven Bosscher <steven@gcc.gnu.org> 26052 26053 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code, 26054 unset flag_jump_tables. 26055 * stmt.c (expand_case): Remove special flag_pic case conditional 26056 on ASM_OUTPUT_ADDR_DIFF_ELT not being defined. 26057 260582012-05-02 Ulrich Weigand <ulrich.weigand@linaro.org> 26059 26060 * common/config/s390/s390-common.c (s390_option_optimization_table): 26061 Enable -fsched-pressure using -fsched-pressure-algorithm=model by 26062 default when optimizing. 26063 260642012-05-02 Martin Jambor <mjambor@suse.cz> 26065 26066 PR lto/52605 26067 * dwarf2out.c (dwarf2out_decl): Only lookup die representing context 26068 of a variable when the contect is a function. 26069 260702012-05-02 Michael Matz <matz@suse.de> 26071 26072 * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple. 26073 * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove. 26074 (const_gimple_seq_node): Remove. 26075 (gimple_seq_node): Typedef as gimple. 26076 (struct gimple_statement_base): Add next and prev members, 26077 adjust all WORD markers in using structs. 26078 (union gimple_statement_d): Link via gsbase.next field for GC and PCH. 26079 (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last, 26080 gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and 26081 gimple are the same. 26082 (gimple_seq_set_last, gimple_seq_set_first): Don't allocate 26083 gimple_seq, adjust. 26084 (gimple_init_singleton): New function. 26085 (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust. 26086 (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly. 26087 (gsi_stmt): Adjust. 26088 (gsi_stmt_ptr): Remove. 26089 (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member. 26090 26091 * gimple-iterator.c (update_bb_for_stmts): Take last parameter 26092 again, adjust for above changes. 26093 (update_call_edge_frequencies): Adjust for above changes. 26094 (gsi_insert_seq_nodes_before): Rewrite for new data structure. 26095 (gsi_insert_seq_nodes_after): Ditto. 26096 (gsi_split_seq_after): Ditto. 26097 (gsi_set_stmt): Ditto. 26098 (gsi_split_seq_before): Ditto. 26099 (gsi_remove): Ditto. 26100 (gsi_insert_seq_before_without_update): Don't free sequence. 26101 (gsi_insert_seq_after_without_update): Ditto. 26102 (gsi_replace): Assert some more invariants. 26103 (gsi_insert_before_without_update, gsi_insert_after_without_update): 26104 Tidy. 26105 (gsi_for_stmt): Don't search for stmt. 26106 (gsi_insert_on_edge_immediate): Tidy. 26107 26108 * gimple.c (gimple_alloc_k): Remove "sequences". 26109 (gimple_seq_cache): Remove. 26110 (gimple_alloc_stat): Make stmt a singleton sequence. 26111 (gimple_seq_alloc, gimple_seq_free): Remove. 26112 (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton. 26113 (gimple_copy): Ditto. 26114 * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt, 26115 create iterator from correct sequence. 26116 * tree-phinodes.c (make_phi_node): Make stmt a singleton. 26117 261182012-05-02 Michael Matz <matz@suse.de> 26119 26120 * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to 26121 gimple_seq. 26122 (gimple_seq_set_last, gimple_seq_set_first): Take pointer to 26123 sequence, lazily allocate it. 26124 (bb_seq_addr): New function. 26125 (gsi_start_1): Rename from gsi_start, but take pointer to sequence. 26126 (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument. 26127 (gsi_none): New function. 26128 (gsi_start_bb): Adjust. 26129 (gsi_last_1): Rename from gsi_last, but take pointer to sequence. 26130 (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument. 26131 (gsi_last_bb): Adjust. 26132 (gsi_seq): Adjust. 26133 * tree-flow-inline.h (phi_nodes_ptr): New function. 26134 26135 * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to 26136 datastructure and interface change. 26137 (gsi_insert_seq_before_without_update): Ditto. 26138 (gsi_insert_seq_nodes_after): Ditto. 26139 (gsi_insert_seq_after_without_update): Ditto. 26140 (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc. 26141 (gsi_split_seq_before): Ditto. 26142 (gsi_start_phis): Adjust. 26143 * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none. 26144 (vect_transform_loop): Ditto. 26145 * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq, 26146 gimple_seq_copy): Don't use gimple_seq_alloc. 26147 * gimplify.c (gimple_seq_add_stmt_without_update): Ditto. 26148 (gimplify_seq_add_seq): Ditto. 26149 * lto-streamer-in.c (make_new_block): Ditto. 26150 * tree-cfg.c (create_bb): Ditto. 26151 * tree-sra.c (initialize_parameter_reductions): Ditto. 26152 261532012-05-02 Michael Matz <matz@suse.de> 26154 26155 * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last, 26156 gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first, 26157 gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq, 26158 set_bb_seq): Move down to after gimple_statement_d definition. 26159 261602012-05-02 Michael Matz <matz@suse.de> 26161 26162 * gimple-fold.c (gimplify_and_update_call_from_tree): Use 26163 gsi_replace_with_seq, instead of inserting itself. 26164 * gimple-iterator.c (gsi_replace_with_seq): New function. 26165 * tree-ssa-forwprop.c (forward_propagate_comparison): Take 26166 iterator instead of statement, advance it. 26167 (ssa_forward_propagate_and_combine): Adjust call to above. 26168 261692012-05-02 Michael Matz <matz@suse.de> 26170 26171 * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use 26172 gimple_seq_alloc. 26173 * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc. 26174 * tree-nested.c (walk_gimple_omp_for): Ditto. 26175 * trans-mem.c (lower_transaction): Ditto. 26176 * tree-eh.c (do_return_redirection): Ditto. 26177 (do_goto_redirection): Ditto. 26178 (lower_try_finally_switch): Ditto. 26179 * gimplify.c (gimplify_stmt): Ditto. 26180 (gimplify_scan_omp_clauses): Ditto. 26181 (gimplify_omp_for): Ditto. 26182 (gimplify_function_tree): Ditto. 26183 * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto. 26184 * tree-mudflap.c (mf_decl_cache_locals): Ditto. 26185 (mf_build_check_statement_for): Ditto. 26186 (mx_register_decls): Ditto. 26187 * graphite-sese-to-poly.c (remove_invariant_phi): Ditto, 26188 and don't use itertors to append. 26189 (insert_stmts): Ditto. 26190 (insert_out_of_ssa_copy): Ditto. 26191 (insert_out_of_ssa_copy_on_edge): Ditto. 26192 261932012-05-02 Michael Matz <matz@suse.de> 26194 26195 * gimple.h (gimple_bind_body_ptr): New function. 26196 (gimple_bind_body): Use it. 26197 (gimple_catch_handler): Use gimple_catch_handler_ptr. 26198 (gimple_eh_filter_failure_ptr): New function. 26199 (gimple_eh_filter_failure): Use it. 26200 (gimple_eh_else_n_body_ptr): New function. 26201 (gimple_eh_else_n_body): Use it. 26202 (gimple_eh_else_e_body_ptr): New function. 26203 (gimple_eh_else_e_body): Use it. 26204 (gimple_try_eval_ptr): New function. 26205 (gimple_try_eval): Use it. 26206 (gimple_try_cleanup_ptr): New function. 26207 (gimple_try_cleanup): Use it. 26208 (gimple_wce_cleanup_ptr): New function. 26209 (gimple_wce_cleanup): Use it. 26210 (gimple_omp_body_ptr): New function. 26211 (gimple_omp_body): Use it. 26212 (gimple_omp_for_pre_body_ptr): New function. 26213 (gimple_omp_for_pre_body): Use it. 26214 (gimple_transaction_body_ptr): New function. 26215 (gimple_transaction_body): Use it. 26216 (gsi_split_seq_before): Adjust to return nothing and take pointer 26217 to sequence. 26218 (gsi_set_stmt): Declare. 26219 (gsi_replace_with_seq): Declare. 26220 (walk_gimple_seq_mod): Declare. 26221 * function.h (struct function <gimple_body>): Use typedef gimple_seq. 26222 26223 * gimple-iterator.c (gsi_set_stmt): New function. 26224 (gsi_split_seq_before): Return new sequence via pointer argument. 26225 (gsi_replace): Use gsi_set_stmt. 26226 26227 * tree-ssa-loop-im.c (move_computations_stmt): First remove 26228 then insert stmt. 26229 * tree-complex.c (update_complex_components_on_edge): Don't copy gsi. 26230 * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place, 26231 return new stmt. 26232 (reserve_phi_args_for_new_edge): Change call to above, 26233 use gsi_set_stmt. 26234 26235 * omp-low.c (lower_omp): Change prototype to take pointer to sequence. 26236 (lower_rec_input_clauses): Use gimple_seq_add_seq instead of 26237 iterators. Adjust call to lower_omp. 26238 (lower_lastprivate_clauses): Adjust call to lower_omp. 26239 (lower_reduction_clauses): Ditto. 26240 (expand_omp_taskreg): Nullify non-cfg body of child_fn. 26241 (lower_omp_sections): Don't explicitely count sequence length, 26242 nullify lowered bodies earlier, ensure stmts are part of only 26243 one sequence, adjust call to lower_omp. 26244 (lower_omp_single): Ensure stmts are part of only one sequence, 26245 adjust call to lower_omp. 26246 (lower_omp_master): Ditto. 26247 (lower_omp_ordered): Ditto. 26248 (lower_omp_critical): Ditto. 26249 (lower_omp_for): Ditto. 26250 (lower_omp_taskreg): Ditto, tidy. 26251 (lower_omp_1): Adjust calls to lower_omp. 26252 (execute_lower_omp): Ditto. 26253 (lower_omp): Adjust to take pointer to sequence. 26254 (diagnose_sb_2): Use walk_gimple_seq_mod. 26255 (diagnose_omp_structured_block_errors): Ditto and set possibly 26256 changed function body. 26257 * gimple-low.c (lower_function_body): Set function body after 26258 it stabilizes. 26259 (lower_sequence): Adjust to take pointer to sequence. 26260 (lower_omp_directive): Ensure stmt isn't put twice into the 26261 sequence, adjust call to lower_sequence. 26262 (lower_stmt): Adjust calls to lower_sequence. 26263 (lower_gimple_bind): Ditto. 26264 (gimple_try_catch_may_fallthru): Call gsi_start with lvalue. 26265 * tree-nested.c (walk_body): Take pointer to sequence, use 26266 walk_gimple_seq_mod. 26267 (walk_function): Adjust call to walk_body, set possibly changed body. 26268 (walk_gimple_omp_for): Adjust calls to walk_body. 26269 (convert_nonlocal_omp_clauses): Ditto. 26270 (convert_nonlocal_reference_stmt): Ditto. 26271 (convert_local_omp_clauses): Ditto. 26272 (convert_local_reference_stmt): Ditto. 26273 (convert_tramp_reference_stmt): Ditto. 26274 (convert_gimple_call): Ditto. 26275 (convert_nl_goto_reference): Use local iterator copy. 26276 * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq, 26277 but taking pointer to sequence, ensure gsi_start is called with 26278 callers lvalue. 26279 (walk_gimple_seq): New wrapper around walk_gimple_seq_mod, 26280 asserting that the sequence head didn't change. 26281 (walk_gimple_stmt): Replace all calls to walk_gimple_seq with 26282 walk_gimple_seq_mod. 26283 * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod. 26284 (execute_lower_tm): Ditto, and set possibly changed body. 26285 * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence, 26286 call gsi_start with that lvalue. 26287 (replace_goto_queue_stmt_list): Ditto. 26288 (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list. 26289 (replace_goto_queue): Ditto. 26290 (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1. 26291 (lower_try_finally_onedest): Ditto. 26292 (lower_try_finally_copy): Ditto. 26293 (lower_try_finally_switch): Ditto. 26294 (lower_try_finally): Ditto. 26295 (lower_eh_filter): Ditto. 26296 (lower_eh_must_not_throw): Ditto. 26297 (lower_cleanup): Ditto. 26298 (lower_eh_constructs_2): Ditto. 26299 (lower_catch): Ditto, and ensure gsi_start is called with lvalue. 26300 (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and 26301 set possibly changed body. 26302 (optimize_double_finally): Call gsi_start with lvalue. 26303 26304 * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before. 26305 (gimple_split_block): Ditto. 26306 (gimple_merge_blocks): Use gsi_start_phis. 26307 (move_stmt_r): Use walk_gimple_seq_mod. 26308 * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb. 26309 * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis. 26310 (rebuild_cgraph_edges): Ditto. 26311 (cgraph_rebuild_references): Ditto. 26312 * ipa-prop.c (ipa_analyze_params_uses): Ditto. 26313 * tree-inline.c (copy_phis_for_bb): Ditto. 26314 * tree-ssa-dce.c: Ditto. 26315 26316 * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p. 26317 263182012-05-02 Kirill Yukhin <kirill.yukhin@intel.com> 26319 Andi Kleen <ak@linux.intel.com> 26320 26321 * coretypes.h (MEMMODEL_MASK): New. 26322 * builtins.c (get_memmodel): Add val. Call target.memmodel_check 26323 and return new variable. 26324 (expand_builtin_atomic_exchange): Mask memmodel values. 26325 (expand_builtin_atomic_compare_exchange): Ditto. 26326 (expand_builtin_atomic_load): Ditto. 26327 (expand_builtin_atomic_store): Ditto. 26328 (expand_builtin_atomic_clear): Ditto. 26329 * doc/extend.texi: Mention port-dependent memory model flags. 26330 * config/i386/cpuid.h (bit_HLE): New. 26331 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 26332 HLE support. 26333 * config/i386/i386-protos.h (ix86_generate_hle_prefix): New. 26334 * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines. 26335 (ix86_target_string)<-mhle>: New. 26336 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto. 26337 * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New. 26338 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto. 26339 (ix86_option_override_internal) <PTA_HLE>: New switch, set it 26340 enabled for generic, generic64 and core-avx2. 26341 (ix86_print_operand): Generate HLE lock prefixes. 26342 (ix86_memmodel_check): New. 26343 (TARGET_MEMMODEL_CHECK): Ditto. 26344 * config/i386/i386.h (OPTION_ISA_HLE): Ditto. 26345 (IX86_HLE_ACQUIRE): Ditto. 26346 (IX86_HLE_RELEASE): Ditto. 26347 * config/i386/i386.h (ix86_generate_hle_prefix): Ditto. 26348 * config/i386/i386.opt (mhle): Ditto. 26349 * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass 26350 success model to instruction emitter. 26351 (atomic_fetch_add<mode>): Ditto. 26352 (atomic_exchange<mode>): Ditto. 26353 (atomic_add<mode>): Ditto. 26354 (atomic_sub<mode>): Ditto. 26355 (atomic_<code><mode>): Ditto. 26356 (*atomic_compare_and_swap_doubledi_pic): Ditto. 26357 (atomic_compare_and_swap_single<mode>): Define and use argument 26358 for success model. 26359 (atomic_compare_and_swap_double<mode>): Ditto. 26360 * configure.ac: Check if assembler support HLE prefixes. 26361 * configure: Regenerate. 26362 * config.in: Ditto. 26363 263642012-05-02 Steven Bosscher <steven@gcc.gnu.org> 26365 26366 PR middle-end/53153 26367 * gimplify.c (preprocess_case_label_vec_for_gimple): New function, 26368 split out from ... 26369 (gimplify_switch_expr): ... here. 26370 * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype. 26371 * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function 26372 to clean up case labels with values outside the index type range. 26373 (simplify_gimple_switch): Call it if something changed. 26374 Remove strange and unnecessary assert. 26375 263762012-05-02 Richard Guenther <rguenther@suse.de> 26377 26378 * fold-const.c (div_if_zero_remainder): sizetypes no longer 26379 sign-extend. 26380 (int_const_binop_1): New worker for int_const_binop with 26381 overflowable parameter. Pass it through to force_fit_type_double. 26382 (int_const_binop): Wrap around int_const_binop_1 with overflowable 26383 equal to one. 26384 (size_binop_loc): Call int_const_binop_1 with overflowable equal 26385 to minus one, forcing overflow detection for even unsigned types. 26386 (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing. 26387 (fold_binary_loc): Call try_move_mult_to_index with signed offset. 26388 * stor-layout.c (initialize_sizetypes): sizetypes no longer 26389 sign-extend. 26390 (layout_type): For zero-sized arrays ignore overflow on the 26391 size calculations. 26392 * tree-ssa-ccp.c (bit_value_unop_1): Likewise. 26393 (bit_value_binop_1): Likewise. 26394 * tree.c (double_int_to_tree): Likewise. 26395 (double_int_fits_to_tree_p): Likewise. 26396 (force_fit_type_double): Likewise. 26397 (host_integerp): Likewise. 26398 (int_fits_type_p): Likewise. 26399 * varasm.c (output_constructor_regular_field): Sign-extend the 26400 field-offset to cater for negative offsets produced by the Ada 26401 frontend. 26402 * omp-low.c (extract_omp_for_data): Convert the loop step to 26403 signed for pointer adjustments. 26404 264052012-05-02 Richard Guenther <rguenther@suse.de> 26406 26407 * tree.c (valid_constant_size_p): New function. 26408 * tree.h (valid_constant_size_p): Declare. 26409 * cfgexpand.c (expand_one_var): Adjust check for too large 26410 variables by using valid_constant_size_p. 26411 * varasm.c (assemble_variable): Likewise. 26412 26413 * c-decl.c (grokdeclarator): Properly check for sizes that 26414 cover more than half of the address-space. 26415 264162012-05-02 Jakub Jelinek <jakub@redhat.com> 26417 26418 PR tree-optimization/53163 26419 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore 26420 return value from compute_all_dependences. 26421 26422 PR rtl-optimization/53160 26423 * ree.c (combine_reaching_defs): Handle the case where cand->insn 26424 has been modified by ree pass already. 26425 264262012-05-01 Ian Lance Taylor <iant@google.com> 26427 26428 PR c/37303 26429 * c-decl.c (build_compound_literal): Make the decl readonly if it 26430 an array of a readonly type. 26431 * gimplify.c (gimplify_compound_literal_expr): Add fallback 26432 parameter. Change all callers. If the decl is not addressable 26433 and is not an l-value, make it readonly. 26434 264352012-05-01 Bernd Schmidt <bernds@codesourcery.com> 26436 26437 * ira.c (allocated_reg_info_size): New static variable. 26438 (expand_reg_info): Manage it. Call 26439 setup_preferred_alternate_classes_for_new_pseudos. 26440 (ira): Don't do it here. Remove local allocated_reg_info_size, 26441 set the global before calling find_moveable_pseudos. 26442 (find_moveable_pseudos): Call expand_reg_info rather than 26443 resize_reg_info. 26444 264452012-05-01 Richard Henderson <rth@redhat.com> 26446 26447 * common.opt (fsync-libcalls): New. 26448 * doc/invoke.texi: Document it. 26449 * optabs.c (init_sync_libfuncs): Honor it. 26450 264512012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com> 26452 Richard Sandiford <r.sandiford@uk.ibm.com> 26453 26454 PR rtl-optimization/52543 26455 * Makefile.in (lower-subreg.o, target-globals.o): Depend on 26456 lower-subreg.h. 26457 * lower-subreg.h: New file. 26458 * target-globals.h (this_target_lower_subreg): Declare. 26459 (target_globals): Add lower_subreg; 26460 (restore_target_globals): Restore this_target_lower_subreg. 26461 * target-globals.c: Include it. 26462 (default_target_globals): Add default_target_lower_subreg. 26463 (save_target_globals): Initialize target_lower_subreg. 26464 * rtl.h (init_lower_subreg): Added declaration. 26465 * toplev.c (backend_init_target): Call initializer for lower-subreg 26466 pass. 26467 * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros. 26468 (default_target_lower_subreg): New variable. 26469 (this_target_lower_subreg): Likewise. 26470 (twice_word_mode, choices): New macros. 26471 (shift_cost, compute_splitting_shift, compute_costs) 26472 (init_lower_subreg): New functions. 26473 (resolve_simple_move): Add speed_p argument. Check choices. 26474 (find_pseudo_copy): Don't check the mode size here. 26475 (resolve_simple_move): Assert the mode size. 26476 (find_decomposable_shift_zext): Add speed_p argument and return 26477 a bool. Check choices. 26478 (resolve_shift_zext): Add comment. 26479 (dump_shift_choices, dump_choices): New functions. 26480 (decompose_multiword_subregs): Dump list of profitable 26481 transformations. Add code to skip non profitable transformations. 26482 Update calls to simple_move and find_decomposable_shift_zext. 26483 264842012-05-01 Ian Bolton <ian.bolton@arm.com> 26485 Sameera Deshpande <sameera.deshpande@arm.com> 26486 Greta Yorsh <greta.yorsh@arm.com> 26487 26488 * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to... 26489 (thumb1_unexpanded_epilogue): ...this. 26490 * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to... 26491 (thumb1_unexpanded_epilogue): ...this. 26492 * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to... 26493 (thumb1_unexpanded_epilogue): ...this. 26494 264952012-05-01 Richard Earnshaw <rearnsha@arm.com> 26496 26497 * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef 26498 comparing enumeration values. Update comments. 26499 265002012-05-01 Alan Modra <amodra@gmail.com> 26501 26502 PR target/53038 26503 * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr, 26504 load_cr_save, add_crlr_cfa_restore): New functions. 26505 (rs6000_restore_saved_cr): Rename to.. 26506 (restore_saved_cr): ..this. Add cfa_restore notes for cr. 26507 (rs6000_emit_epilogue): Use new functions. Adjust condition 26508 for emitting lr and cr cfa_restore. Emit cfa_restores for fp 26509 regs when using out-of-line restore only when shrink wrapping. 26510 265112012-04-30 Uros Bizjak <ubizjak@gmail.com> 26512 26513 PR middle-end/53136 26514 * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple 26515 calls to cgraph_node_name in xstrdup. 26516 (ipa_make_edge_direct_to_target): Ditto. 26517 * cgraph.c (dump_cgraph_node): Ditto. 26518 * tree-sra.c (convert_callers_for_node): Ditto. 26519 * lto-symtab.c (lto_cgraph_replace_node): Ditto. 26520 * ipa-cp.c (perhaps_add_new_callers): Ditto. 26521 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto. 26522 (cgraph_materialize_all_clones): Ditto. 26523 * ipa-inline.c (report_inline_failed_reason): Ditto. 26524 (want_early_inline_function_p): Ditto. 26525 (edge_badness): Ditto. 26526 (update_edge_key): Ditto. 26527 (flatten_function): Ditto. 26528 (ipa_inline): Ditto. 26529 (inline_always_inline_functions): Ditto. 26530 (early_inline_small_functions): Ditto. 26531 265322012-04-30 Uros Bizjak <ubizjak@gmail.com> 26533 26534 PR target/53141 26535 * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of 26536 constraints 0 and 1. 26537 26538012-04-30 Jan Hubicka <jh@suse.cz> 26539 26540 * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c 26541 (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c 26542 (cgraph_add_to_same_comdat_group): Remove. 26543 (cgraph_add_asm_node): Move to cgraphunit.c. 26544 (cgraph_make_decl_local): Move to symtab.c 26545 (cgraph_make_node_local_1): Update. 26546 (cgraph_can_remove_if_no_direct_calls_and): Update. 26547 (used_from_object_file_p): Update. 26548 (resolution_used_from_other_file_p): Move to symtab.c 26549 (cgraph_used_from_object_file_p): move to symtab.c 26550 (verify_cgraph_node): Verify same comdat groups. 26551 * cgraph.h (cgraph_asm_node): Rename to ... 26552 (asm_node): ... this one. 26553 (cgraph_asm_nodes): Rename to ... 26554 (asm_nodes): ... this one. 26555 (symtab_add_to_same_comdat_group): New function. 26556 (symtab_dissolve_same_comdat_group_list): New function. 26557 (symtab_used_from_object_file_p): Declare. 26558 (symtab_make_decl_local): Declare. 26559 (cgraph_add_to_same_comdat_group): Remove. 26560 (cgraph_add_asm_node): Remove. 26561 (cgraph_used_from_object_file_p, varpool_used_from_object_file_p): 26562 Remove. 26563 (cgraph_finalize_compilation_unit): Rename to ... 26564 (finalize_compilation_unit): ... this one. 26565 (cgraph_optimize): Rename to .... 26566 (compile): ... this one. 26567 (add_asm_node): Declare. 26568 (fixup_same_cpp_alias_visibility): Declare. 26569 (cgraph_make_decl_local): Remove. 26570 (varpool_assemble_pending_decls): Rename to ... 26571 (varpool_output_variables): ... this one. 26572 (varpool_remove_unreferenced_decls): Remove. 26573 * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups. 26574 (preserve_function_body_p): Make static. 26575 * toplev.c (compile_file): Update comments; update. 26576 * cgraphunit.c: Update comments. 26577 (cgraph_expand_all_functions): Rename to ... 26578 (expand_all_functions): ... this one; update. 26579 (cgraph_mark_functions_to_output): Rename to ... 26580 (mark_functions_to_output): ... this one; cleanup. 26581 (cgraph_output_pending_asms): Remove prototype. 26582 (asm_nodes, asm_last_node): New static vars. 26583 (cgraph_process_new_functions): Update. 26584 (cgraph_reset_node): Cleanup; add comment. 26585 (cgraph_add_new_function): Update. 26586 (cgraph_output_pending_asms): Rename to ... 26587 (output_asm_statements): ... this one. 26588 (add_asm_node): New function. 26589 (fixup_same_cpp_alias_visibility): New function based on code 26590 in cgraph_analyze_function. 26591 (cgraph_analyze_function): Use it. 26592 (cgraph_order_sort): Update. 26593 (cgraph_output_in_order): Update. 26594 (cgraph_function_versioning): Update. 26595 (cgraph_optimize): Rename to ... 26596 (compile): ... this one; initialize streamer hooks here. 26597 (cgraph_finalize_compilation_unit): Rename to ... 26598 (finalize_compilation_unit): ... this one; do not initialize streamer 26599 hook here. 26600 * lto-streamer-out.c (lto_output_toplevel_asms): Update. 26601 * dwarf2out.c: Update ocmment. 26602 * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group. 26603 * method.c (use_thunk): Likewise. 26604 * semantics.c (maybe_add_lambda_conv_op): Likewise. 26605 * decl2.c (maybe_emit_vtables): Likewise. 26606 (cp_write_global_declarations): Use finalize_compilation_unit. 26607 * parser.c (cp_parser_asm_definition): Use add_asm_node. 26608 * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node 26609 * c-decl.c (c_write_global_declarations): Use 26610 finalize_compilation_unit. 26611 * langhooks.c (write_global_declarations): Update. 26612 * ipa.c (cgraph_externally_visible_p): Update. 26613 (dissolve_same_comdat_group_list): Remove. 26614 (function_and_variable_visibility): Update. 26615 * symtab.c: Inlcude lto-streamer.h and rtl.h 26616 (ld_plugin_symbol_resolution_names): New. 26617 (symtab_add_to_same_comdat_group): New. 26618 (symtab_dissolve_same_comdat_group_list): New. 26619 (resolution_used_from_other_file_p): Move here from cgraph.c 26620 (symtab_used_from_object_file_p): New. 26621 (symtab_make_decl_local): New. 26622 * passes.c (register_pass): Update comments. 26623 * c-parser.c (c_parser_asm_definition): Update. 26624 * varpool.c (varpool_analyze_node): Use 26625 fixup_same_cpp_alias_visibility. 26626 (varpool_remove_unreferenced_decls): Make static. 26627 (varpool_assemble_pending_decls): Rename to ... 26628 (varpool_output_variables): ... this one; call 26629 varpool_remove_unreferenced_decls. 26630 (varpool_used_from_object_file_p): Remove. 26631 266322012-04-30 Marc Glisse <marc.glisse@inria.fr> 26633 26634 PR c++/51033 26635 * c-typeck.c (build_array_ref): Call 26636 convert_vector_to_pointer_for_subscript. 26637 * doc/extend.texi (Vector Extensions): Subscripting not just for C. 26638 266392012-04-30 Uros Bizjak <ubizjak@gmail.com> 26640 26641 * config/i386/i386.md (and<mode>3): Change runtime operand mode checks 26642 to compile-time "mode == <MODE>mode" checks. 26643 (and splitter): Ditto. 26644 266452012-04-30 Richard Henderson <rth@redhat.com> 26646 26647 * config/arm/arm.md (UNSPEC_LL): New. 26648 * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New. 26649 (arm_load_exclusivedi): Use %H0. 26650 266512012-04-30 Jason Merrill <jason@redhat.com> 26652 26653 * dwarf2out.c (comdat_symbol_id): Add const. 26654 (union die_symbol_or_type_node): Add const to die_symbol. 26655 (output_die_symbol, output_die, output_comp_unit): Adjust. 26656 266572012-04-30 Andrew Stubbs <ams@codesourcery.com> 26658 26659 * config/arm/arm.md (negdi2): Use gen_negdi2_neon. 26660 * config/arm/neon.md (negdi2_neon): New insn. 26661 Also add splitters for core and NEON registers. 26662 266632012-04-30 Andrew Stubbs <ams@codesourcery.com> 26664 26665 * config/arm/arm.c (neon_valid_immediate): Allow const_int. 26666 (arm_print_operand): Add 'x' format. 26667 * config/arm/constraints.md (Dn): Allow const_int. 26668 * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode. 26669 Use 'x' format to print constants. 26670 * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int. 26671 * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon 26672 is enabled. 26673 (movdi_vfp_cortexa8): Likewise. 26674 266752012-04-30 Ian Bolton <ian.bolton@arm.com> 26676 Sameera Deshpande <sameera.deshpande@arm.com> 26677 Greta Yorsh <greta.yorsh@arm.com> 26678 26679 * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration. 26680 * config/arm/arm.c (ldm_stm_operation_p): New function. 26681 * config/arm/predicates.md (load_multiple_operation): Update predicate. 26682 (store_multiple_operation): Likewise. 26683 26684 * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters. 26685 * config/arm/arm.c (ldm_stm_operation_p): New parameters. 26686 * config/arm/predicates.md (load_multiple_operation): Add arguments. 26687 (store_multiple_operation): Likewise. 26688 266892012-04-30 Uros Bizjak <ubizjak@gmail.com> 26690 26691 * config/i386/i386.md (and<mode>3): Expand masking operations with 26692 0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX. 26693 (and splitter): Split to DImode zero_extend RTX for DImode operand[0]. 26694 266952012-04-30 Dodji Seketeli <dodji@redhat.com> 26696 26697 Add -Wvarargs option 26698 * builtins.c (fold_builtin_next_arg): Use OPT_Wvarargs as an 26699 argument for the various warning_at calls. 26700 * docs/invoke.texi: Update the documentation. 26701 267022012-04-30 Dodji Seketeli <dodji@redhat.com> 26703 26704 Switch -ftrack-macro-expansion=2 on by default. 26705 * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2 26706 by default. 26707 26708 Fix va_start related location 26709 * builtins.c (fold_builtin_next_arg): Unwinds to the first 26710 location in real source code. 26711 26712 Make conversion warnings work on NULL with -ftrack-macro-expansion 26713 * input.h (expansion_point_location_if_in_system_header): Declare 26714 new function. 26715 * input.c (expansion_point_location_if_in_system_header): Define it. 26716 26717 Fix -Wuninitialized for -ftrack-macro-expansion 26718 * tree-ssa.c (warn_uninit): Use the spelling location of the variable 26719 declaration. Use linemap_location_before_p for source locations. 26720 26721 Strip "<built-in>" loc from displayed expansion context 26722 * input.c (expand_location_1): When expanding to spelling location 26723 in a context of a macro expansion, skip reserved system header 26724 locations. Update comments. * tree-diagnostic.c 26725 (maybe_unwind_expanded_macro_loc): Likewise. 26726 26727 Make expand_location resolve to locus in main source file 26728 * input.c (expand_location_1): New. Takes a parameter to choose 26729 whether to resolve the location to spelling or expansion point. 26730 Was factorized from ... 26731 (expand_location): ... here. 26732 (expand_location_to_spelling_point): New. Implemented in terms of 26733 expand_location_1. 26734 * diagnostic.c (diagnostic_build_prefix): Use the new 26735 expand_location_to_spelling_point instead of expand_location. 26736 26737 Fix PCH crash on GTYed pointer-to-scalar field of a struct 26738 * gengtype.c (write_types_process_field): Force second argument of 26739 the call to the PCH object hierarchy walker to be 'x'. 26740 267412012-04-30 Eric Botcazou <ebotcazou@adacore.com> 26742 26743 * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper 26744 predicate to discriminate types. 26745 267462012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org> 26747 26748 * doc/invoke.texi (Wmissing-format-attribute): Document as an 26749 alias of Wsuggest-attribute=format. 26750 * c-typeck.c (convert_for_assignment): Replace 26751 Wmissing-format-attribute with Wsuggest-attribute=format. 26752 (digest_init): Likewise. 26753 267542012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org> 26755 26756 * opts.c (finish_options): Do not handle -Wmissing-noreturn here. 26757 * common.opt (Wmissing-noreturn): Alias of 26758 -Wsuggest-attribute=noreturn. 26759 267602012-04-29 Hans-Peter Nilsson <hp@axis.com> 26761 26762 PR target/53156 26763 * config/cris/cris.md (andqu): New peephole2. 26764 (andu): Tweak head comment. 26765 267662012-04-28 Joern Rennecke <joern.rennecke@embecosm.com> 26767 Steven Bosscher <steven@gcc.gnu.org> 26768 Maxim Kuvyrkov <maxim@codesourcery.com> 26769 26770 PR tree-optimization/38785 26771 * common.opt (ftree-partial-pre): New option. 26772 * doc/invoke.texi: Document it. 26773 * opts.c (default_options_table): Initialize flag_tree_partial_pre. 26774 * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will 26775 benefit speed path. 26776 (execute_pre): Use flag_tree_partial_pre. 26777 267782012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 26779 26780 PR target/52999 26781 * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels 26782 in constant pool. 26783 267842012-04-27 Ollie Wild <aaw@google.com> 26785 26786 * doc/invoke.texi (Wliteral-suffix): Document new option. 26787 267882012-04-27 Tom Tromey <tromey@redhat.com> 26789 26790 * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name. 26791 (dwarf_tag_name): Use get_DW_TAG_name. 26792 (dwarf_attr_name): Use get_DW_AT_name. 26793 (dwarf_form_name): Use get_DW_FORM_name. 26794 * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name. 26795 267962012-04-27 Paolo Bonzini <bonzini@gnu.org> 26797 26798 * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose 26799 arguments are -1 and 0, by negating the result of the conditional. 26800 268012012-04-27 Paolo Bonzini <bonzini@gnu.org> 26802 26803 PR target/53138 26804 * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber. 26805 268062012-04-27 Richard Guenther <rguenther@suse.de> 26807 26808 * tree-flow.h (is_hidden_global_store): Remove. 26809 * tree-ssa-sink.c (is_hidden_global_store): Likewise. 26810 * tree-ssa-alias.h (ref_may_alias_global_p): Declare. 26811 (stmt_may_clobber_global_p): Likewise. 26812 * tree-ssa-alias.c (ref_may_alias_global_p): New function. 26813 (stmt_may_clobber_global_p): Likewise. 26814 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call 26815 stmt_may_clobber_global_p. 26816 * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise. 26817 268182012-04-27 Steven Bosscher <steven@gcc.gnu.org> 26819 26820 * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right 26821 place. 26822 26823 * tree-switch-conversion.c (struct switch_conv_info): Add range_max, 26824 reorganize some fields and update comments. Rename bit_test_uniq 26825 and bit_test_count to uniq resp. count. Remove bit_test_bb. 26826 (collect_switch_conv_info): New function, collects info about a 26827 GIMPLE_SWITCH into a struct switch_conv_info. 26828 (check_range): Simplify to use pre-recorded info. Fix think-o in 26829 range-branch ratio check. 26830 (check_process_case): Remove function. 26831 (check_all_empty_except_final): New function, verifies that all 26832 non-final basic blocks are empty. 26833 (process_switch): Simplify to use pre-recorded info. Call 26834 collect_switch_conv_info to do that. Assert that degenerate switch 26835 statements have been cleaned up. 26836 268372012-04-27 Marc Glisse <marc.glisse@inria.fr> 26838 26839 PR middle-end/27139 26840 * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT. 26841 268422012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org> 26843 26844 PR c/53130 26845 * c-typeck.c (pop_init_level): Use %qD instead of %qT. 26846 268472012-04-27 Tom de Vries <tom@codesourcery.com> 26848 26849 PR tree-optimization/51879 26850 * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field. 26851 * tree-ssa-sccvn.c (mark_use_processed): New function, factored out 26852 of ... 26853 (defs_to_varying): ... here. Don't set use_processed. 26854 (visit_reference_op_call): Handle gimple_vdef. 26855 Handle case that lhs is NULL_TREE. 26856 (visit_use): Use mark_use_processed. Handle calls with side-effect 26857 using visit_reference_op_call. 26858 268592012-04-26 Richard Sandiford <richard.sandiford@linaro.org> 26860 26861 * sched-deps.c (fixup_sched_groups): Rename to... 26862 (chain_to_prev_insn): ...this. 26863 (chain_to_prev_insn_p): New function. 26864 (deps_analyze_insn): Use it instead of SCHED_GROUP_P. 26865 268662012-04-26 Richard Sandiford <richard.sandiford@linaro.org> 26867 26868 * sched-int.h (_haifa_insn_data): Move priority_status. 26869 Add model_index. 26870 (INSN_MODEL_INDEX): New macro. 26871 * haifa-sched.c (insn_delay): New function. 26872 (sched_regno_pressure_class): Update commentary. 26873 (mark_regno_birth_or_death): Pass the liveness bitmap and 26874 pressure array as arguments, instead of using curr_reg_live and 26875 curr_reg_pressure. Only update the pressure if the bit in the 26876 liveness set has changed. 26877 (initiate_reg_pressure_info): Always trust the live-in set for 26878 SCHED_PRESSURE_MODEL. 26879 (initiate_bb_reg_pressure_info): Update call to 26880 mark_regno_birth_or_death. 26881 (dep_list_size): Take the list as argument. 26882 (calculate_reg_deaths): New function, extracted from... 26883 (setup_insn_reg_pressure_info): ...here. 26884 (MODEL_BAR): New macro. 26885 (model_pressure_data, model_insn_info, model_pressure_limit) 26886 (model_pressure_group): New structures. 26887 (model_schedule, model_worklist, model_insns, model_num_insns) 26888 (model_curr_point, model_before_pressure, model_next_priority): 26889 New variables. 26890 (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE) 26891 (MODEL_INSN_INFO, MODEL_INSN): New macros. 26892 (model_index, model_update_limit_points_in_group): New functions. 26893 (model_update_limit_points, model_last_use_except): Likewise. 26894 (model_start_update_pressure, model_update_pressure): Likewise. 26895 (model_recompute, model_spill_cost, model_excess_group_cost): Likewise. 26896 (model_excess_cost, model_dump_pressure_points): Likewise. 26897 (model_set_excess_costs): Likewise. 26898 (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to 26899 SCHED_PRIORITY_MODEL. Use insn_delay. Use the order in the model 26900 schedule as an alternative tie-breaker. Update the call to 26901 dep_list_size. 26902 (ready_sort): Call model_set_excess_costs. 26903 (update_register_pressure): Update call to mark_regno_birth_or_death. 26904 Rely on that function to check liveness rather than doing it here. 26905 (model_classify_pressure, model_order_p, model_add_to_worklist_at) 26906 (model_remove_from_worklist, model_add_to_worklist, model_promote_insn) 26907 (model_add_to_schedule, model_analyze_insns, model_init_pressure_group) 26908 (model_record_pressure, model_record_pressures): New functions. 26909 (model_record_final_pressures, model_add_successors_to_worklist) 26910 (model_promote_predecessors, model_choose_insn): Likewise. 26911 (model_reset_queue_indices, model_dump_pressure_summary): Likewise. 26912 (model_start_schedule, model_finalize_pressure_group): Likewise. 26913 (model_end_schedule): Likewise. 26914 (schedule_insn): Say when we're scheduling the next instruction 26915 in the model schedule. 26916 (schedule_insn): Handle SCHED_PRESSURE_MODEL. 26917 (queue_to_ready): Do not add instructions that are 26918 MAX_SCHED_READY_INSNS beyond the current point of the model schedule. 26919 Always allow the next instruction in the model schedule to be added. 26920 (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE 26921 and delay for SCHED_PRESSURE_MODEL too. 26922 (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to 26923 SCHED_PRIORITY_MODEL, but also take the DFA into account. 26924 (schedule_block): Call model_start_schedule and model_end_schedule. 26925 Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL. 26926 (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling 26927 to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or 26928 region_ref_regs. 26929 (sched_finish): Update accordingly. 26930 (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling 26931 to SCHED_PRESSURE_MODEL. 26932 (add_jump_dependencies): Update call to dep_list_size. 26933 (haifa_finish_h_i_d): Fix leak of max_reg_pressure. 26934 (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling 26935 to SCHED_PRESSURE_MODEL. 26936 * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't 26937 allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL. 26938 (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE 26939 handling to SCHED_PRESSURE_MODEL. 26940 269412012-04-26 Richard Sandiford <richard.sandiford@linaro.org> 26942 26943 * common.opt (fsched-pressure-algorithm=): New option. 26944 * flag-types.h (sched_pressure_algorithm): New enum. 26945 * sched-int.h (sched_pressure_p): Replace with... 26946 (sched_pressure): ...this new variable. 26947 * haifa-sched.c (sched_pressure_p): Replace with... 26948 (sched_pressure): ...this new variable. 26949 (sched_regno_pressure_class, rank_for_schedule, ready_sort) 26950 (update_reg_and_insn_max_reg_pressure, schedule_insn) 26951 (debug_ready_list, prune_ready_list, schedule_block, sched_init) 26952 (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly. 26953 * sched-deps.c (init_insn_reg_pressure_info): Likewise. 26954 (sched_analyze_insn): Likewise. 26955 * sched-rgn.c (schedule_region): Likewise. 26956 * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise. 26957 269582012-04-26 Bernd Schmidt <bernds@codesourcery.com> 26959 26960 PR middle-end/52997 26961 * ira.c (find_moveable_pseudos): Call resize_reg_info. 26962 26963 PR middle-end/52940 26964 * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT. 26965 * expr.c (convert_move): Honor unsignedp when extending partial int 26966 modes. 26967 * genmodes.c (complete_mode): Don't clear component field of partial 26968 int modes. 26969 (emit_mode_inner): Don't emit it however. 26970 (calc_wider_mode): Partial int modes widen to their component. 26971 269722012-04-26 David S. Miller <davem@davemloft.net> 26973 26974 * config/sparc/niagara4.md: New file. 26975 * config/sparc/sparc.md: Include it. 26976 * config/sparc/sparc.c (niagara4_costs): New processor costs. 26977 (sparc_option_override): Use it. 26978 (sparc_use_sched_lookahead): Return 2 for niagara4. 26979 (sparc_issue_rate): Likewise. 26980 26981 * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'. 26982 (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack. 26983 (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis, 26984 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul. 26985 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, 26986 alignaddrldi_vis): Set type to gsr. 26987 (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit. 26988 (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis, 26989 cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis, 26990 v<vis3_shift_patname><mode>3, fmean16_vis, 26991 fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3, 26992 fucmp<code>8<P:mode>_vis): Set type to fga. 26993 * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp. 26994 * config/sparc/niagara.md: Likewise. 26995 * config/sparc/niagara2.md: Likewise. 26996 * config/sparc/ultra3.md: Likewise, and fix type matching for 26997 us3_ialuX reservation. 26998 269992012-04-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 27000 27001 * reload.c (find_reloads): Change the loop nesting when trying an 27002 alternative with swapped operands. 27003 270042012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org> 27005 27006 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix 27007 comment. Delete unused parameter first_exp_point_map. 27008 (virt_loc_aware_diagnostic_finalizer): Update call. 27009 270102012-04-26 Michael Hope <michael.hope@linaro.org> 27011 Richard Earnshaw <rearnsha@arm.com> 27012 27013 * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define. 27014 (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define. 27015 (GLIBC_DYNAMIC_LINKER_DEFAULT): Define. 27016 (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path. 27017 270182012-04-25 Sriraman Tallam <tmsriram@google.com> 27019 27020 * doc/extend.texi: Document avx2 support. 27021 * config/i386/i386.c (fold_builtin_cpu): Add avx2. 27022 270232012-04-26 Hans-Peter Nilsson <hp@axis.com> 27024 27025 PR target/53120 27026 * config/cris/cris.md ("*andhi_lowpart_v32") 27027 ("*andqi_lowpart_v32"): Change first input-only operand from 27028 a (match_operand ...) to (match_dup 0). Drop alternatives with 27029 const_int-matching constraints for redundancy. 27030 ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop 27031 three-operand alternative. 27032 270332012-04-25 Jakub Jelinek <jakub@redhat.com> 27034 27035 PR target/53110 27036 * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg 27037 instead expand it as zero extension. 27038 270392012-04-25 H.J. Lu <hongjiu.lu@intel.com> 27040 27041 PR debug/52857 27042 * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM. 27043 270442012-04-25 Jakub Jelinek <jakub@redhat.com> 27045 27046 * common.opt (flag_debug_types_section): Default to 0. 27047 (dwarf_version): Default to 4. 27048 (dwarf_record_gcc_switches): Default to 1. 27049 (dwarf_strict): Default to 0. 27050 * toplev.c (process_options): Don't handle dwarf_strict 27051 or dwarf_version here. 27052 * config/vxworks.c (vxworks_override_options): Don't 27053 test whether dwarf_strict or dwarf_version are negative, 27054 instead test !global_options_set.x_dwarf_*. 27055 * config/darwin.c (darwin_override_options): Default to 27056 dwarf_version 2. 27057 * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches 27058 and -fno-debug-types-section are now the default. 27059 270602012-04-25 Jan Hubicka <jh@suse.cz> 27061 27062 * cgraphunit.c: Update toplevel comment. 27063 (tree_rest_of_compilation): Merge into cgraph_expand_function. 27064 (cgraph_analyze_function): Make static. 27065 (cgraph_decide_is_function_needed): Make static. 27066 (cgraph_add_new_function): Use expand_function instead of 27067 rest_of_compilation. 27068 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt, 27069 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph): 27070 Move to cgraph.c 27071 (cgraph_inline_p): Remove. 27072 (cgraph_preserve_function_body_p): Move to ipa-inline-transform. 27073 (init_cgraph): Add comment. 27074 * cgraphbuild.c (record_reference, mark_address, mark_load, 27075 mark_store): Do not call analyze_expr hook. 27076 * cgraph.c: Update toplevel comment. 27077 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt, 27078 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph): 27079 Move fere from cgraphunit.c 27080 (cgraph_mark_force_output_node): Move to cgraph.h 27081 * cgraph.h: Reorder so the comments match the function placement. 27082 (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove. 27083 (cgraph_mark_force_output_node): Move here from cgraph.c 27084 * tree.c (free_lang_data): Do not clear analyze_expr hook. 27085 * ipa-inline-transform.c (preserve_function_body_p): New function. 27086 (inline_transform): Update. 27087 * langhooks.c (lhd_callgraph_analyze_expr): Remove. 27088 * langhooks.h (lang_hooks_for_callgraph): Remove. 27089 (lang_hooks): Remove callgraph. 27090 * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p. 27091 * varpool.c: Remove out of date comment. 27092 * langhooks-def.h (lhd_callgraph_analyze_expr): Remove. 27093 (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove. 27094 270952012-04-25 Jan Hubicka <jh@suse.cz> 27096 27097 PR middle-end/53089 27098 * cgraphunit.c (referred_to_p): Move ahead in file to avoid 27099 forward declaration. 27100 (cgraph_finalize_function): Finalize them here. 27101 * symtab.c (dump_symtab): Dump ctors and dtors. 27102 271032012-04-25 Jakub Jelinek <jakub@redhat.com> 27104 27105 PR middle-end/52979 27106 * stor-layout.c (get_best_mode): Don't return mode with bitsize 27107 larger than maxbits. Don't compute maxbits modulo align. 27108 Also check that unit bytes long store at bitpos / unit * unit 27109 doesn't affect bits beyond bitregion_end. 27110 * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM 27111 would not fit into bitregion_start ... bitregion_end + 1 bit region. 27112 (store_split_bit_field): Decrease unit close to end of bitregion_end 27113 if access is restricted in order to avoid mutual recursion. 27114 27115 PR tree-optimization/53058 27116 * double-int.h (double_int_max_value, double_int_min_value): New 27117 prototypes. 27118 * double-int.c (double_int_max_value, double_int_min_value): New 27119 functions. 27120 * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR 27121 or GT_EXPR with double_int_max_value instead of double_int_mask. 27122 271232012-04-25 Richard Guenther <rguenther@suse.de> 27124 27125 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype. 27126 * tree-vect-loop.c (vect_transform_loop): Adjust. 27127 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record 27128 the maximum number of iterations for the epilogue loop. 27129 (vect_loop_versioning): Remove case re-using the peeled epilogue loop. 27130 271312012-04-25 Jakub Jelinek <jakub@redhat.com> 27132 27133 PR c/52880 27134 * c-typeck.c (set_nonincremental_init, 27135 set_nonincremental_init_from_string): Pass true instead of false 27136 as IMPLICIT to add_pending_init. 27137 271382012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org> 27139 27140 * c-typeck.c (pop_init_level): Improve diagnostics. 27141 271422012-04-25 Uros Bizjak <ubizjak@gmail.com> 27143 27144 * compare-elim.c (try_eliminate_compare): Also handle operands with 27145 implicit extensions. 27146 271472012-04-25 Alan Modra <amodra@gmail.com> 27148 27149 * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS, 27150 V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG, 27151 SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define. 27152 (no_global_regs_above): Delete. 27153 (no_global_regs): New function. 27154 (rs6000_savres_strategy): Handle vector regs. Use proper lr_save_p 27155 value for load multiple test. 27156 (savres_routine_syms): Increase size. 27157 (rs6000_savres_routine_name, rs6000_savres_routine_sym, 27158 ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector 27159 rather than a number of boolean flags. Update all callers. 27160 (rs6000_savres_routine_name): Generate vector save/restore names. 27161 (rs6000_savres_routine_sym): Handle vector regs. Delete forward decl. 27162 (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise. 27163 (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline 27164 and using_store_multiple. Expand uses. Don't always use r11 as 27165 frame reg when needed for out-of-line saves. Set up initial offset 27166 for out-of-line vector saves when buying stack frame. Handle pointer 27167 reg setup for out-of-line fp save. Emit call to out-of-line vector 27168 save function. Choose r11 or r12 for vrsave reg when available for 27169 better scheduling. 27170 (rs6000_output_function_prologue): Don't emit .extern for ELF. 27171 (rs6000_emit_epilogue): Choose a better frame reg when restoring 27172 from back-chain to suit out-of-line vector restore functions. Emit 27173 call to out-of-line vector restore function. Adjust register used 27174 for cr restore. Tweak pointer register setup for gpr restore. 27175 * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account 27176 FIXED_R13. 27177 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify. 27178 (V_SAVE_INLINE): Define. 27179 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns. 27180 271812012-04-25 Alan Modra <amodra@gmail.com> 27182 27183 * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow 27184 out-of-line save/restore for large frames. Don't disable 27185 out-of-line saves on ABI_AIX when using static chain reg. 27186 (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not 27187 clobber static chain reg, and tweak for out-of-line gpr saves 27188 that use r1. 27189 271902012-04-25 Alan Modra <amodra@gmail.com> 27191 27192 * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define. 27193 (rs6000_emit_prologue): Use the above to catch register overlap. 27194 271952012-04-25 Alan Modra <amodra@gmail.com> 27196 27197 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward 27198 decl. Move logic selecting update reg to callers. Update all callers. 27199 (rs6000_emit_allocate_stack): Add copy_off param. 27200 (emit_frame_save): Don't handle reg+reg addressing. 27201 (ptr_regno_for_savres): New function, extracted from.. 27202 (rs6000_emit_savres_rtx): ..here. Add lr_offset param. 27203 (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it. 27204 Set frame_reg_rtx to r11 whenever r11 is needed, and merge 27205 frame offset adjustment for out-of-line save with copy from sp. 27206 Simplify condition controlling whether cr is saved early or 27207 late. Use ptr_regno_for_savres to verify correct reg is set 27208 up for out-of-line saves. Pass the actual pointer reg used to 27209 rs6000_emit_savres_rtx so rtl matches insns in out-of-line 27210 function. Rearrange spe vars so code is similar to that 27211 elsewhere in this function. Don't update frame_off when spe 27212 save code will restore r11. Use emit_frame_save for spe and 27213 gpr saves. Consolidate darwin out-of-line gpr setup with that 27214 for other abis. Don't assume frame_offset is zero and frame 27215 reg is sp when setting up altivec reg saves, and calculate 27216 exact offset requirement. 27217 (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off. Tidy 27218 spe restore code. Consolidate darwin out-of-line gpr setup 27219 with that for other abis. 27220 272212012-04-25 Alan Modra <amodra@gmail.com> 27222 27223 * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a 27224 REG_FRAME_RELATED_EXPR note when the instruction exactly matches 27225 the replacement. 27226 (emit_frame_save): Delete frame_ptr param. Rename total_size to 27227 frame_reg_to_sp. 27228 (rs6000_emit_prologue): Add sp_off. Update rs6000_frame_related 27229 and emit_frame_save calls. Cope with possibly missing note. 27230 272312012-04-24 Sriraman Tallam <tmsriram@google.com> 27232 27233 * config/i386/i386.c (build_processor_model_struct): New function. 27234 (make_var_decl): New function. 27235 (fold_builtin_cpu): New function. 27236 (ix86_fold_builtin): New function. 27237 (make_cpu_type_builtin): New function. 27238 (ix86_init_platform_type_builtins): New function. 27239 (ix86_expand_builtin): Expand new builtins by folding them. 27240 (ix86_init_builtins): Make new builtins to detect CPU type. 27241 (TARGET_FOLD_BUILTIN): New macro. 27242 (IX86_BUILTIN_CPU_INIT): New enum value. 27243 (IX86_BUILTIN_CPU_IS): New enum value. 27244 (IX86_BUILTIN_CPU_SUPPORTS): New enum value. 27245 * config/i386/i386-builtin-types.def: New function type. 27246 * doc/extend.texi: Document builtins. 27247 272482012-04-24 Olivier Hainque <hainque@adacore.com> 27249 27250 * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2. 27251 * toplev.c (process_options): Default to dwarf_version 2. 27252 * config/vxworks.c (vxworks_override_options): Default to strict-dwarf 27253 and dwarf_version 2. 27254 272552012-04-24 Manuel López-Ibáñez <manu@gcc.gnu.org> 27256 27257 * tree-pretty-print.h (default_tree_printer): Do not declare. 27258 * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and 27259 intl.h. 27260 (default_tree_diagnostic_starter): Make static. 27261 (default_tree_printer): Move to here. Make static. 27262 (tree_diagnostics_defaults): New. 27263 * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare. 27264 * tree.c (free_lang_data): Use tree_diagnostics_defaults. 27265 * toplev.c: Do not include tree-pass.h. 27266 (default_tree_printer): Move from here. 27267 (general_init): Use tree_diagnostics_defaults. 27268 272692012-04-24 Chao-ying Fu <fu@mips.com> 27270 27271 * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file. 27272 (mips*-*-linux*): Append mips/linux-common.h to tm_file. 27273 * config/mips/gnu-user.h 27274 (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly. 27275 (GNU_USER_TARGET_LINK_SPEC): New define. 27276 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC. 27277 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly. 27278 (GNU_USER_TARGET_MATHFILE_SPEC): New define. 27279 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and 27280 GNU_USER_TARGET_ENDFILE_SPEC. 27281 * config/mips/gnu-user64.h (LIB_SPEC): Remove. 27282 (GNU_USER_TARGET_LINK_SPEC): New define. 27283 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC. 27284 * config/mips/linux-common.h: New file. 27285 272862012-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 27287 27288 PR target/47197 27289 * config/rs6000/rs6000-c.c (fully_fold_convert): New function. 27290 (altivec_build_resolved_builtin): Call fully_fold_convert. 27291 272922012-04-24 Georg-Johann Lay <avr@gjlay.de> 27293 27294 PR target/53065 27295 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define. 27296 272972012-04-24 Richard Guenther <rguenther@suse.de> 27298 27299 PR tree-optimization/53085 27300 * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant 27301 stores. 27302 273032012-04-24 Richard Guenther <rguenther@suse.de> 27304 27305 * tree-if-conv.c (main_tree_if_conversion): Move bb under 27306 ENABLE_CHECKING. 27307 273082012-04-24 Jim Meyering <meyering@redhat.com> 27309 27310 * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing 27311 absence of an define_enum call. 27312 273132012-04-24 Richard Guenther <rguenther@suse.de> 27314 27315 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If 27316 the epilogue loop is not re-used as unvectorized version 27317 record the its maximum number of iterations. 27318 273192012-04-24 Andrew Pinski <apinski@cavium.com> 27320 27321 * tree-ssa-forwprop.c (simplify_bitwise_binary): 27322 Don't directly use def1/def2. 27323 273242012-04-24 Richard Guenther <rguenther@suse.de> 27325 27326 PR tree-optimization/53098 27327 * tree-vect-loop.c (vect_analyze_loop_operations): Fixup 27328 comparison sign. 27329 273302012-04-24 Andrew Pinski <apinski@cavium.com> 27331 27332 PR tree-opt/33512 27333 * tree-ssa-forwprop.c (defcodefor_name): New function. 27334 (simplify_bitwise_binary): Use defcodefor_name instead of manually 27335 Simplify "( X | Y) & X" to X and "( X & Y) | X" to X. 27336 Simplify "(~X | Y) & X" to "X & Y" and 27337 "(~X & Y) | X" to "X | Y". 27338 273392012-04-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 27340 27341 * recog.c (insn_invalid_p): Add IN_GROUP parameter and use 27342 validate_change to add clobbers if IN_GROUP is nonzero. 27343 (verify_changes): Call insn_invalid_p with IN_GROUP set to true. 27344 * recog.h (insn_invalid_p): Add IN_GROUP parameter to function 27345 prototype. 27346 * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP 27347 set to false. 27348 * config/s390/s390.c (insn_invalid_p): Likewise. 27349 273502012-04-24 Jakub Jelinek <jakub@redhat.com> 27351 27352 PR middle-end/53084 27353 * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF. 27354 (output_addressed_constants): Likewise. 27355 27356 PR middle-end/52999 27357 * varasm.c (get_section): Don't ICE for section conflicts with 27358 built-in section kinds. 27359 273602012-04-23 DJ Delorie <dj@redhat.com> 27361 27362 * config/s390/s390.h (LINK_SPEC): Remove, no longer needed. 27363 (LIBSTDCXX): Change to CPP2. 27364 273652012-04-23 H.J. Lu <hongjiu.lu@intel.com> 27366 27367 PR bootstrap/52878 27368 * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for 27369 extra_masks. 27370 273712012-04-23 Uros Bizjak <ubizjak@gmail.com> 27372 27373 * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative. 27374 (*addsi_2_zext): Ditto. 27375 (*add<mode>_3): Ditto. 27376 (*addsi_3_zext): Ditto. 27377 (*add<mode>_5): Ditto. 27378 273792012-04-23 Andrew Pinski <apinski@cavium.com> 27380 27381 * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0 27382 (C & B) to (A OP0) & B. 27383 273842012-04-23 Martin Jambor <mjambor@suse.cz> 27385 27386 * expr.c (expand_expr_real_1): Remove setting parent's alias set for 27387 temporaries created for a bitfield (reverting revision 122014). 27388 273892012-04-23 Richard Guenther <rguenther@suse.de> 27390 27391 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify 27392 the condition using is_gimple_condexpr and avoid the not necessary 27393 boolification. 27394 (set_prologue_iterations): Likewise. 27395 (vect_loop_versioning): Likewise. 27396 273972012-04-23 Richard Guenther <rguenther@suse.de> 27398 27399 PR tree-optimization/53070 27400 * tree-if-conv.c (combine_blocks): Free predicates in all blocks. 27401 (main_tree_if_conversion): Verify we succeeded in that. 27402 274032012-04-23 Jan Hubicka <jh@suse.cz> 27404 27405 * lto-symtab.c (lto_cgraph_replace_node): Do not call 27406 mark_reahcable_node. 27407 * cgraph.c (cgraph_remove_node): Do not clear reachable. 27408 (cgraph_mark_reachable_node): Remove. 27409 (cgraph_mark_force_output_node): Do not set reachable. 27410 (dump_cgraph_node): Do not dump reachable. 27411 (cgraph_create_virtual_clone): Do not set reachable. 27412 * cgraph.h (cgraph_node): Remove reachable flag. 27413 (varpool_node): Remove reachable flag. 27414 (cgraph_mark_if_needed): Remove. 27415 (cgraph_mark_reachable_node): Remove. 27416 * tree-emutls.c (ipa_lower_emutls): Do not check reachable. 27417 * cgraphunit.c (cgraph_finalize_function): Do not mark node as 27418 reachable. 27419 (cgraph_add_new_function): Likewise. 27420 (cgraph_mark_if_needed): Remove. 27421 (cgraph_analyze_function): Do not set target as reachable. 27422 (process_function_and_variable_attributes): Do not care about 27423 dllexport. 27424 (cgraph_analyze_functions): Do not set reachable flags. 27425 (cgraph_mark_functions_to_output): Do not check reachability. 27426 (cgraph_copy_node_for_versioning): Do not set reachable flag. 27427 (dbxout_expand_expr): Update. 27428 * c-decl.c (merge_decls): Do not track changed externs. 27429 * ipa.c: Include pointer-set.h 27430 (enqueue_cgraph_node): Use reachable pointer set. 27431 (process_references): Likewise. 27432 (cgraph_remove_unreachable_nodes): Likewise. 27433 (whole_program_function_and_variable_visibility): Do not recompute 27434 reachable. 27435 * trans-mem.c (ipa_tm_execute): Do not check reachable flag. 27436 274372012-04-23 Georg-Johann Lay <avr@gjlay.de> 27438 27439 * doc/extend.texi (AVR Named Address Spaces): Fix typos. 27440 274412012-04-23 Richard Guenther <rguenther@suse.de> 27442 27443 PR c/53060 27444 * c-typeck.c (build_binary_op): Fix typo. 27445 274462012-04-23 Jakub Jelinek <jakub@redhat.com> 27447 27448 PR tree-optimizations/52891 27449 * tree-vect-patterns.c (adjust_bool_pattern): Use 27450 build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE, 27451 but with non-standard precision. 27452 274532012-04-22 Jan Hubicka <jh@suse.cz> 27454 27455 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL 27456 tree refs. 27457 274582012-04-22 Jan Hubicka <jh@suse.cz> 27459 27460 * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags. 27461 * cgraphbuild.c (record_reference, record_type_list, mark_address, 27462 mark_load, mark_store): Do not mark varpool nodes as needed. 27463 * cgraph.c (cgraph_new_nodes): Remove. 27464 (cgraph_create_function_alias): Do not mark nodes as reachable. 27465 (cgraph_add_thunk): Likewise. 27466 (cgraph_mark_reachable_node): Do not manage the queue. 27467 * cgraph.h (cgraph_node): Remove next_needed. 27468 (varpool_nodes_queue): Remove next_needed and prev_needed. 27469 (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove. 27470 (cgraph_new_nodes): Declare. 27471 (x_varpool_nodes_queue, varpool_nodes_queue); Remove. 27472 (varpool_analyze_pending_decls): Remove. 27473 (varpool_analyze_node): New. 27474 (varpool_mark_needed_node): Remove. 27475 (varpool_first_variable, varpool_next_variable): New inlines. 27476 (varpool_first_static_initializer, varpool_next_static_initializer): 27477 Update. 27478 (FOR_EACH_STATIC_VARIABLE): Remove unused walker. 27479 (varpool_first_defined_variable): New inline. 27480 (varpool_next_defined_variable): New inline 27481 (FOR_EACH_VARIABLE): Reimplement. 27482 (FOR_EACH_DEFINED_VARIABLE): Reimplement. 27483 * toplev.c (wrapup_global_declaration_2): Use analyzed instead of 27484 needed flag. 27485 * cgraphunit.c (cgraph_new_nodes): Declare here. 27486 (enqueue_node): New function. 27487 (cgraph_process_new_functions): update for new 27488 node set; when constructing cgraph enqueue node for processing. 27489 (cgraph_add_new_function): Use new node set. 27490 (process_function_and_variable_attributes): Do not set varpool needed 27491 flags. 27492 (referred_to_p): New function. 27493 (varpool_finalize_decl): Move here from varpool.c; enqueue needed node 27494 when varpool is in construction. 27495 (cgraph_analyze_functions): Rewrite. 27496 (cgraph_expand_all_functions): Update. 27497 (cgraph_output_in_order): Do not analyze pending decls; do not set 27498 needed flags. 27499 (cgraph_optimize): Do not analyze pending decls. 27500 * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects 27501 in other partition; do not mark node as needed. 27502 * dwarf2out.c (reference_to_unused): Use analyzed flag. 27503 (premark_types_used_by_global_vars_helper): Likewise. 27504 * ipa.c (process_references): Do not call varpool_mark_needed_node. 27505 (cgraph_remove_unreachable_nodes): Do not rely on varpool and 27506 cgrpah queues. 27507 (function_and_variable_visibility): Do not mark node as needed. 27508 (whole_program_function_and_variable_visibility): Likewise. 27509 * Makefile.in (gt-varpool.h): No longer needed. 27510 * passes.c (execute_one_pass, execute_ipa_pass_list): Update. 27511 (ipa_write_summaries): Do not use needed flag. 27512 * varpool.c: Do not include gt-varpool.h 27513 (x_varpool_nodes_queue, x_varpool_last_needed_node, 27514 x_varpool_last_needed_node, x_varpool_first_unanalyzed_node, 27515 x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue): 27516 Remove. 27517 (varpool_remove_node): Do not update the lists. 27518 (dump_varpool_node): Do not dump needed flag. 27519 (varpool_enqueue_needed_node): Remove. 27520 (varpool_mark_needed_node): Remove. 27521 (varpool_reset_queue): Remove. 27522 (varpool_finalize_decl): Move to cgraphunit.c 27523 (varpool_analyze_node): New functions based on former 27524 varpool_analyze_pending_decls. 27525 (varpool_analyze_pending_decls): Remove. 27526 (varpool_assemble_decl): Do not update the lists. 27527 (enqueue_node): New function. 27528 (varpool_remove_unreferenced_decls): Rewrite. 27529 (varpool_empty_needed_queue): Remove. 27530 (add_new_static_var): Do not mark node as needed. 27531 (varpool_create_variable_alias): Handle expansion state 27532 creation. 27533 * except.c (output_ttype): Do not mark node as needed. 27534 * varasm.c (mark_decl_referenced): Do not use mark_needed_node. 27535 * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars): 27536 Likewise. 27537 * tree-switch-conversion.c (build_one_array): Likewise. 27538 275392012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org> 27540 27541 PR c/44774 27542 * doc/invoke.texi (pedantic): Rename to Wpedantic. 27543 * common.opt (Wpedantic): New. 27544 (pedantic): Alias Wpedantic. 27545 * diagnostic.c (warning_at): Likewise. 27546 * c-decl.c (diagnose_mismatched_decls): Likewise. 27547 (build_array_declarator): Likewise. 27548 (mark_forward_parm_decls): 27549 (check_bitfield_type_and_width): Likewise. 27550 (grokdeclarator): Likewise. 27551 (grokfield): Likewise. 27552 (finish_struct): Likewise. 27553 (build_enumerator): Likewise. 27554 (store_parm_decls_oldstyle): Likewise. 27555 (declspecs_add_qual): Likewise. 27556 (declspecs_add_type): Likewise. 27557 (finish_declspecs): Likewise. 27558 * c-typeck.c (composite_type): Likewise. 27559 (comp_target_types): Likewise. 27560 (build_array_ref): Likewise. 27561 (pointer_diff): Likewise. 27562 (build_unary_op): Likewise. 27563 (build_conditional_expr): Likewise. 27564 (build_c_cast): Likewise. 27565 (convert_for_assignment): Likewise. 27566 (maybe_warn_string_init): Likewise. 27567 (digest_init): Likewise. 27568 (pop_init_level): Likewise. 27569 (set_init_index): Likewise. 27570 (c_finish_goto_label): Likewise. 27571 (c_finish_return): Likewise. 27572 (do_case): Likewise. 27573 (build_binary_op): Likewise. 27574 * c-parser.c (static): Likewise. 27575 (c_parser_external_declaration): Likewise. 27576 (c_parser_declaration_or_fndef): Likewise. 27577 (c_parser_static_assert_declaration_no_se): Likewise. 27578 (c_parser_enum_specifier): Likewise. 27579 (c_parser_struct_or_union_specifier): Likewise. 27580 (c_parser_struct_declaration): Likewise. 27581 (c_parser_alignas_specifier): Likewise. 27582 (c_parser_braced_init): Likewise. 27583 (c_parser_initelt): Likewise. 27584 (c_parser_compound_statement_nostart): Likewise. 27585 (c_parser_conditional_expression): Likewise. 27586 (c_parser_alignof_expression): Likewise. 27587 (c_parser_postfix_expression): Likewise. 27588 (c_parser_postfix_expression_after_paren_): Likewise. 27589 (c_parser_objc_class_instance_variables): Likewise. 27590 (c_parser_objc_method_definition): Likewise. 27591 (c_parser_objc_methodprotolist): Likewise. 27592 275932012-04-22 Ian Lance Taylor <iant@google.com> 27594 27595 * godump.c (go_output_typedef): Dump size of structs. 27596 275972012-04-22 Razya Ladelsky <razya@il.ibm.com> 27598 27599 Correcting transform_to_exit_first_loop + fix to PR46886 27600 * tree-parloops.c (transform_to_exit_first_loop): Remove 27601 setting of number of iterations according to the loop pattern. 27602 Duplicate from entry to exit->src instead of loop->latch. 27603 (pallelize_loops): Remove the condition preventing do-while loops. 27604 * tree-cfg.c (bool bb_in_region_p): New. 27605 (gimple_duplicate_sese_tail): Adjust duplication of the the subloops. 27606 Adjust redirection of the duplicated iteration. 27607 276082012-04-21 Richard Sandiford <rdsandiford@googlemail.com> 27609 27610 PR bootstrap/53021 27611 * rtl.def (ADDRESS): Use "i" rather than "w". 27612 * rtl.h (find_base_term): Delete. 27613 (may_be_sp_based_p): Declare. 27614 * rtl.c (rtx_code_size): Remove ADDRESS special case. 27615 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP) 27616 (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to... 27617 * alias.c: ...here. 27618 (find_base_term): Make static. 27619 (may_be_sp_based_p): New function. 27620 * dse.c (record_store): Use it. 27621 * store-motion.c (store_killed_in_insn): Likewise. 27622 276232012-04-21 Richard Sandiford <rdsandiford@googlemail.com> 27624 27625 * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case. 27626 276272012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org> 27628 27629 PR 35441 27630 * c-typeck.c (inform_declaration): New. 27631 (build_function_call_vec): Do not pretty-print 27632 expressions when caret is enabled. 27633 (convert_arguments): Use inform_declaration. 27634 276352012-04-20 Jim Meyering <meyering@redhat.com> 27636 27637 * genmodes.c (make_complex_modes): Don't truncate a mode name of 27638 length 7 or more when prepending a "C". Suggested by Richard Guenther. 27639 276402012-04-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 27641 27642 PR rtl-optimization/44214 27643 * fold-const.c (exact_inverse): New function. 27644 (fold_binary_loc): Fold vector and complex division by constant into 27645 multiply by recripocal with flag_reciprocal_math; fold vector division 27646 by constant into multiply by reciprocal with exact inverse. 27647 276482012-04-20 Jan Hubicka <jh@suse.cz> 27649 27650 * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of 27651 force flags. 27652 * cgraph.c (cgraph_add_thunk): Use mark_reachable_node. 27653 (cgraph_remove_node): Update. 27654 (cgraph_mark_needed_node): Remove. 27655 (cgraph_mark_force_output_node): New. 27656 (dump_cgraph_node): Do not dump needed flag. 27657 (cgraph_node_cannot_be_local_p_1): Update. 27658 (cgraph_can_remove_if_no_direct_calls_and_refs): Update. 27659 * cgraph.h (symtab_node_base): Add force_output flag. 27660 (cgraph_node): Remove needed flag. 27661 (varpool_node): Remove force_output flag. 27662 (cgraph_mark_needed_node): Remove. 27663 (cgraph_mark_force_output_node): New. 27664 (cgraph_only_called_directly_or_aliased_p, 27665 varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update. 27666 * ipa-cp.c (ipcp_generate_summary): Remove out of date assert. 27667 * cgraphunit.c (cgraph_decide_is_function_needed): rewrite. 27668 (cgraph_add_new_function): Update. 27669 (cgraph_mark_if_needed): Update. 27670 (verify_cgraph_node): Update. 27671 (cgraph_analyze_function): Alias target is reachable. 27672 (process_function_and_variable_attributes): Update: externally_visible 27673 flag makes function reachable. 27674 (cgraph_analyze_functions): Update dumping. 27675 * lto-cgraph.c (lto_output_node, lto_output_varpool_node, 27676 input_overwrite_node, input_varpool_node): Update streaming. 27677 * lto-streamer-out.c (produce_symtab): Use force_output. 27678 * ipa.c (process_references): Weakrefs must be processed. 27679 (cgraph_remove_unreachable_nodes): Likewise; update for new 27680 force_output flag. 27681 (varpool_externally_visible_p): Weakrefs are externally visible 27682 even if they are not. 27683 (function_and_variable_visibility): Update; when processing alias 27684 pair force the targets to be output. 27685 (whole_program_function_and_variable_visility): Use 27686 mark_reachable_node. 27687 * trans-mem.c (ipa_tm_mark_needed_node): Remove 27688 (ipa_tm_mark_force_output_node): New function. 27689 (ipa_tm_create_version_alias, ipa_tm_create_version): Update. 27690 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about 27691 aliases. 27692 * varasm.c (mark_decl_referenced): Update. 27693 (find_decl_and_mark_needed): Remove. 27694 (find_decl): New function. 27695 (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark 27696 alias targets as needed. 27697 (dump_tm_clone_pairs): Update. 27698 * tree-inline.c (copy_bb): Update check. 27699 * symtab.c (dump_symtab_base): Dump force_output. 27700 * tree-ssa-structalias.c (ipa_pta_execute): Use force_output. 27701 * passes.c (execute_todo): Fix dumping. 27702 * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update. 27703 (varpool_analyze_pending_decls): Alias target is reachable. 27704 (varpool_create_variable_alias): Finalize weakrefs. 27705 277062012-04-20 Jakub Jelinek <jakub@redhat.com> 27707 27708 PR bootstrap/53021 27709 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP, 27710 UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define. 27711 * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_* 27712 macros instead of constants. 27713 * dse.c (record_store): Check for SP ADDRESS by comparing 27714 XWINT to UNIQUE_BASE_VALUE_SP instead of expecting 27715 XEXP to be stack_pointer_rtx. 27716 277172012-04-20 Richard Guenther <rguenther@suse.de> 27718 27719 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use 27720 update_call_from_tree when propagating into a call. 27721 277222012-04-20 Alan Modra <amodra@gmail.com> 27723 27724 * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting. 27725 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. Rename 27726 sp_offset to frame_off. Move world save code earlier. 27727 277282012-04-20 Richard Guenther <rguenther@suse.de> 27729 27730 PR tree-optimization/53050 27731 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): 27732 Do only one transform on COND_EXPRs at the same time. 27733 277342012-04-19 Jan Hubicka <jh@suse.cz> 27735 27736 * symtab.c (dump_symtab_base): Revert accidental checkin. 27737 277382012-04-20 Alan Modra <amodra@gmail.com> 27739 27740 PR target/53040 27741 * config/rs6000/rs6000.c (rs6000_savres_strategy): When using 27742 static chain, set REST_INLINE_FPRS too. 27743 277442012-04-20 Thomas Schwinge <thomas@codesourcery.com> 27745 27746 * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child 27747 nodes. 27748 277492012-04-20 Richard Guenther <rguenther@suse.de> 27750 27751 * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize 27752 loops that can never run more often than the vectorization factor. 27753 277542012-04-19 Jan Hubicka <jh@suse.cz> 27755 27756 * symtab.c (dump_symtab_base): Fix dumping of asm lists. 27757 277582012-04-19 David Edelsohn <dje.gcc@gmail.com> 27759 27760 * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or". 27761 277622012-04-19 Jim Meyering <meyering@redhat.com> 27763 27764 * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy. 27765 We verified above that the string(including trailing NUL) fits in buf, 27766 so just use memcpy. 27767 277682012-04-19 Richard Guenther <rguenther@suse.de> 27769 27770 * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER 27771 for dumping DECL_SECTION_NAME. 27772 277732012-04-19 Michael Matz <matz@suse.de> 27774 27775 PR middle-end/52977 27776 * tree.h (VECTOR_CST_NELTS): Use part number of types again. 27777 (struct tree_vector): Adjust GTY length. 27778 * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS. 27779 27780 * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter 27781 members. 27782 (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our 27783 caller emitted the length calulation already. 27784 (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations 27785 before handling any of the fields for structs. 27786 277872012-04-19 Richard Guenther <rguenther@suse.de> 27788 27789 PR tree-optimization/53031 27790 * tree-vrp.c (adjust_range_with_scev): Revert back to 27791 using max_loop_iterations. 27792 277932012-04-19 Michael Matz <matz@suse.de> 27794 27795 * diagnostic.c (emit_diagnostic): Move va_end call after user 27796 of the va_list. 27797 (warning, warning_at, pedwarn, permerror): Ditto. 27798 277992012-04-19 Richard Guenther <rguenther@suse.de> 27800 27801 * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound 27802 array access. 27803 278042012-04-19 Georg-Johann Lay <avr@gjlay.de> 27805 27806 PR target/53033 27807 * config/avr/avr.c (avr_out_load_psi): Fix assembler template for 27808 the case *(X+const). 27809 278102012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 27811 27812 * config/arm/sync.md (sync_optab): Change ior attribute to "or". 27813 278142012-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org> 27815 27816 PR c/52283/37985 27817 * stmt.c (warn_if_unused_value): Skip NOP_EXPR. 27818 * convert.c (convert_to_integer): Don't set TREE_NO_WARNING. 27819 278202012-04-19 Richard Guenther <rguenther@suse.de> 27821 27822 PR rtl-optimization/44688 27823 * loop-iv.c (determine_max_iter): Only return max_iter. 27824 (iv_number_of_iterations): Also use the recorded loop bound 27825 on the maximum number of iterations. 27826 * loop-unroll.c (decide_unroll_runtime_iterations): Use 27827 max_iter to avoid unrolling loops that do not roll. 27828 (decide_unroll_stupid): Likewise. 27829 278302012-04-18 Steven Bosscher <steven@gcc.gnu.org> 27831 27832 * targhooks.c (default_case_values_threshold): Fix code style nit. 27833 27834 * stmt.c (add_case_node, expand_case): Move logic to remove/reduce 27835 case range and type folding from here... 27836 * gimplify.c (gimplify_switch_expr): ... to here. Expect NULL_TREE 27837 type, as documented in tree.def. 27838 278392012-04-18 Jan Hubicka <jh@suse.cz> 27840 27841 * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base): 27842 Declare. 27843 * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify 27844 cgraph hash and same comdat groups. 27845 (cgraph_optimize): Verify symbol table. 27846 * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table. 27847 (dissolve_same_comdat_group_list): Work on symtab nodes. 27848 (function_and_variable_visibility): Dissolve variable same comdat group 27849 lists, too. 27850 * symtab.c: Include timevar.h 27851 (verify_symtab_base, verify_symtab_node, verify_symtab): New functions. 27852 278532012-04-18 Steven Bosscher <steven@gcc.gnu.org> 27854 27855 * tree-switch-conversion.c (info): Remove global pass info. 27856 (check_range, check_process_case, check_final_bb, create_temp_arrays, 27857 free_temp_arrays, gather_default_values, build_constructors, 27858 array_value_type, build_one_array, build_arrays, gen_def_assigns, 27859 fix_phi_nodes, gen_inbound_check): Pass info around from ... 27860 (process_switch): ... here. Unify message format. Return a const 27861 char pointer to the failure reason message. 27862 (do_switchconv): Unify message format. Update process_switch usage. 27863 27864 * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands. 27865 * tree-cfg.c (edge_to_cases): Fix documentation. 27866 278672012-04-18 Uros Bizjak <ubizjak@gmail.com> 27868 27869 * config/alpha/sync.md (fetchop_name): Change ior attribute to "or". 27870 278712012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 27872 27873 PR tree-optimization/52976 27874 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete. 27875 (possibly_move_powi): New function. 27876 (rewrite_expr_tree): Call possibly_move_powi. 27877 (rewrite_expr_tree_parallel): Likewise. 27878 (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to 27879 call add_to_ops_vec instead. 27880 278812012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 27882 27883 PR tree-optimization/52976 27884 * tree-ssa-reassoc.c (stmt_is_power_of_op): New function. 27885 (decrement_power): Likewise. 27886 (propagate_op_to_single_use): Likewise. 27887 (zero_one_operation): Handle __builtin_pow* calls in linearized 27888 expression trees; factor logic into propagate_op_to_single_use. 27889 (undistribute_ops_list): Allow operands with repeat counts > 1. 27890 278912012-04-18 Richard Guenther <rguenther@suse.de> 27892 27893 PR tree-optimization/44688 27894 * cfgloop.h (record_niter_bound): Declare. 27895 * tree-ssa-loop-niter.c (record_niter_bound): Export. 27896 Update the estimation with the upper bound here... 27897 (estimate_numbers_of_iterations_loop): ... instead of here. 27898 Do not forcefully reset a recorded upper bound. 27899 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment): 27900 Record the maximum number of loop iterations of the prologue loop. 27901 279022012-04-18 Jan Hubicka <jh@suse.cz> 27903 27904 * lto-symtab.c (lto_cgraph_replace_node): Update. 27905 * cgraphbuild.c (record_reference, record_type_list, 27906 record_eh_tables, mark_address, mark_load, mark_store): Update. 27907 * cgraph.c (cgraph_same_body_alias, dump_cgraph_node, 27908 cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases): 27909 Update. 27910 * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove. 27911 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update. 27912 * reload.c: Fix typo in comment. 27913 * rtlanal.c: Likewise. 27914 * tree-emultls.c (gen_emutls_addr): Update. 27915 * ipa-reference.c (analyze_function): Update. 27916 * cgraphunit.c (cgraph_analyze_function, 27917 cgraph_process_same_body_aliases, assemble_thunks_and_aliases): 27918 Update. 27919 * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types. 27920 (ipa_remove_reference): Likewise. 27921 (ipa_remove_all_refering): Rename to ... 27922 (ipa_remove_all_referring): ... this one; update. 27923 (ipa_dump_references): Update. 27924 (ipa_dump_referring): Update. 27925 (ipa_clone_references): Update. 27926 (ipa_clone_refering): Rename to ... 27927 (ipa_clone_referring): ... this one; update. 27928 (ipa_ref_cannot_lead_to_return): Update. 27929 (ipa_ref_has_aliases_p): Update. 27930 * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New 27931 forward typedefs. 27932 (ipa_ref_type): Remove. 27933 (ipa_ref_ptr_u): Remove. 27934 (ipa_ref): Remove referencing, refered, refered_index, refering_type 27935 and refered_type; add referring, referred and referred_index. 27936 (ipa_ref_list): Rename refering to referring. 27937 (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring, 27938 ipa_clone_references, ipa_clone_referring): Update prototypes. 27939 * lto-cgraph.c (referenced_from_other_partition_p): Update. 27940 (lto_output_ref): Update. 27941 (add_references): Update. 27942 (input_varpool_node): Update. 27943 (input_refs): Update. 27944 * ipa-ref-inline.h (ipa_ref_node): Update. 27945 (ipa_ref_varpool_node): Update. 27946 (ipa_ref_referring_node): Update. 27947 (ipa_ref_referring_varpool_node): Update. 27948 (ipa_ref_referring_ref_list): Update. 27949 (ipa_ref_referred_ref_list): Update. 27950 (ipa_ref_list_first_referring): Update. 27951 (ipa_empty_ref_list): Update. 27952 (ipa_ref_list_refering_iterate): Rename to ... 27953 (ipa_ref_list_referring_iterate): ... this one. 27954 * cse.c: Update comment. 27955 * ipa-utils.c (ipa_reverse_postorder): Update. 27956 * tree-ssa-alias.c: Update. 27957 * ipa-inline.c (reset_edge_caches): Update. 27958 (update_caller_keys): Update. 27959 * ipa-inline.h: Update comments. 27960 * jump.c: Update comment. 27961 * alias.c: Likewise. 27962 * ipa.c (process_references): Update. 27963 (cgraph_remove_unreachable_nodes): Likewise. 27964 (ipa_discover_readonly_nonaddressable_var): Likewise. 27965 (cgraph_address_taken_from_non_vtable_p): Likewise. 27966 * trans-mem.c (ipa_tm_execute): Update. 27967 * simplify-rtx.c: Fix comment. 27968 * rtl.c: Fix comment. 27969 * symtab.c (symtab_unregister_node): Update. 27970 * varpool.c (dump_varpool_node): Update. 27971 (varpool_analyze_pending_decls): Update. 27972 (assemble_aliases): Update. 27973 (varpool_for_node_and_aliases): Update. 27974 279752012-04-18 Richard Guenther <rguenther@suse.de> 27976 27977 * cfgloop.h (estimate_numbers_of_iterations_loop): Remove 27978 use_undefined_p parameter. 27979 * tree-flow.h (estimate_numbers_of_iterations): Likewise. 27980 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): 27981 Likewise. 27982 (estimate_numbers_of_iterations): Likewise. 27983 (estimated_loop_iterations): Adjust. 27984 (max_loop_iterations): Likewise. 27985 (scev_probably_wraps_p): Likewise. 27986 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise. 27987 * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions, 27988 not max_loop_iterations. 27989 (execute_vrp): Remove explicit number of iterations estimation. 27990 279912012-04-18 Enkovich Ilya <ilya.enkovich@intel.com> 27992 27993 * config/i386/linux-common.h: New. 27994 27995 * config.gcc: Add i386/linux-common.h before 27996 all i386/linux.h and i386/linux64.h usages. 27997 27998 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New. 27999 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC. 28000 * config/i386/gnu-user64.h: Likewise. 28001 28002 * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New. 28003 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC. 28004 (GNU_USER_TARGET_MATHFILE_SPEC): New. 28005 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC. 28006 280072012-04-18 Jan Hubicka <jh@suse.cz> 28008 28009 * cgraph.c (cgraph_node_name): Remove. 28010 (dump_cgraph_node): Use dump_symtab_base; reformat. 28011 * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab, 28012 debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base): 28013 Declare. 28014 (cgraph_node_name, varpool_node_name): Remove. 28015 (cgraph_node_asm_name, varpool_node_asm_name, 28016 cgraph_node_name, varpool_node_name): New. 28017 * tree-pass.h (TODO_dump_cgraph): Rename to ... 28018 (TODO_dump_symtab): ... this one. 28019 * ipa-cp (pass_ipa_cp): Update. 28020 * ia-reference.c (generate_summary, read_write_all_from_decl, 28021 propagate, ipa_reference_read_optimization_summary): Update. 28022 * cgraphunit.c (cgraph_analyze_functions): Update. 28023 (cgraph_optimize): Update. 28024 * ipa-ref.c (ipa_dump_references): Update. 28025 (ipa_dump_refering): Update. 28026 * ipa-inline.c (pass_ipa_inline): Update. 28027 * matrix-reorg.c (pass_ipa_matrix_reorg): Update. 28028 * ipa.c (pass_ipa_function_visibility, 28029 pass_ipa_whole_program_visibility): Update. 28030 * tree-sra.c (pass_early_ipa_sra): Update. 28031 * symtab.c: Include langhooks.h 28032 (symtab_node_asm_name): New. 28033 (symtab_node_name): New. 28034 (symtab_type_names): New static var. 28035 (dump_symtab_base): New. 28036 (dump_symtab_node, dump_symtab): New. 28037 (debug_symtab_node, debug_symtab): New. 28038 * tree-ssa-structalias.c: Dump symbol table. 28039 * pases.c (execute_todo): Handle TODO_dump_symtab instead 28040 of TODO_dump_cgraph. 28041 * varpoo.c (varpool_node_name): Remove. 28042 (dump_varpool_node): Use dump_symtab_base; reformat. 28043 280442012-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org> 28045 28046 * doc/invoke.texi (Language Independent Options): @item should be 28047 before @opindex. 28048 280492012-04-17 Richard Sandiford <rdsandiford@googlemail.com> 28050 28051 PR bootstrap/53021 28052 * rtl.c (rtx_code_size): Handle ADDRESS. 28053 280542012-04-17 Tom de Vries <tom@codesourcery.com> 28055 28056 * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p 28057 is not a STMT_LIST. 28058 280592012-04-17 Uros Bizjak <ubizjak@gmail.com> 28060 28061 PR target/53020 28062 * config/i386/sync.md (atomic_<code><mode>): Rename to 28063 atomic_<logic><mode>. 28064 280652012-04-17 Richard Sandiford <rdsandiford@googlemail.com> 28066 28067 * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT. 28068 * alias.c (reg_base_value): Expand and update comment. 28069 (arg_base_value): New variable. 28070 (unique_id): Move up file. 28071 (unique_base_value, unique_base_value_p, known_base_value_p): New. 28072 (find_base_value): Use arg_base_value and known_base_value_p. 28073 (record_set): Document REG_NOALIAS handling. Use unique_base_value. 28074 (find_base_term): Use known_base_value_p. 28075 (base_alias_check): Use unique_base_value_p. 28076 (init_alias_target): Initialize arg_base_value. Use unique_base_value. 28077 (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases. 28078 280792012-04-17 Pat Haugen <pthaugen@us.ibm.com> 28080 28081 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode. 28082 280832012-04-17 Michael Matz <matz@suse.de> 28084 28085 PR tree-optimization/18437 28086 * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member. 28087 (STMT_VINFO_STRIDE_LOAD_P): New accessor. 28088 (vect_check_strided_load): Declare. 28089 * tree-vect-data-refs.c (vect_check_strided_load): New function. 28090 (vect_analyze_data_refs): Use it to accept strided loads. 28091 * tree-vect-stmts.c (vectorizable_load): Ditto and handle them. 28092 280932012-04-17 Richard Guenther <rguenther@suse.de> 28094 28095 PR middle-end/53011 28096 * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard 28097 loops when redirecting an entry or latch edge. 28098 280992012-04-17 Bernd Schmidt <bernds@codesourcery.com> 28100 28101 * sel-sched.c (sel_global_init): Revert previous change. 28102 281032012-04-17 Richard Guenther <rguenther@suse.de> 28104 28105 * tree-flow.h (array_at_struct_end_p): Move declaration ... 28106 * tree.h (array_at_struct_end_p): ... here. 28107 * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ... 28108 * expr.c (array_at_struct_end_p): ... here. Rewrite. 28109 281102012-04-17 Steven Bosscher <steven@gcc.gnu.org> 28111 28112 * stmt.c (cost_table_, use_cost_table, cost_table_initialize, 28113 COST_TABLE): Remove. 28114 (estimate_case_costs): Remove. 28115 (expand_case): Do not call estimate_case_costs 28116 to set use_cost_table. 28117 (balance_case_nodes): Do not use use_cost_table. 28118 281192012-04-16 Jan Hubicka <jh@suse.cz> 28120 28121 * cgraph.c (cgraph_hash, assembler_name_hash): Remove. 28122 (hash_node, eq_node): Remove. 28123 (cgraph_create_node): Do not handle hashtable. 28124 (cgraph_get_node): Remove. 28125 (cgraph_insert_node_to_hashtable): Remove. 28126 (hash_node_by_assembler_name): Remove. 28127 (eq_assembler_name): Remove. 28128 (cgraph_node_for_asm): Rewrite. 28129 (cgraph_find_replacement_node): Break out from ... 28130 (cgraph_remove_node): ... here; do not maintain hashtables. 28131 (change_decl_assembler_name): Remove. 28132 (cgraph_clone_node): Do not maintain hashtables. 28133 * cgraph.h (const_symtab_node): New typedef. 28134 (cgraph_insert_node_to_hashtable): Remove. 28135 (symtab_get_node, symtab_node_for_asm, 28136 symtab_insert_node_to_hashtable): Declare. 28137 (cgraph_find_replacement_node): Declare. 28138 (cgraph_get_node, varpool_get_node): Turn into inlines. 28139 (cgraph, varpool): Work sanely on NULL pointers. 28140 (FOR_EACH_SYMBOL): New walker. 28141 * ipa-inline-transform.c (save_inline_function_body): Use 28142 symtab_insert_node_to_hashtable. 28143 * symtab.c: Include ggc.h and diagnostics.h 28144 (symtab_hash, assembler_name_hash): New static vars; 28145 (hash_node, eq_node, hash_node_by_assembler_name, 28146 eq_assembler_name, insert_to_assembler_name_hash, 28147 unlink_from_assembler_name_hash): New. 28148 (symtab_register_node): Update hashtables. 28149 (symtab_insert_node_to_hashtable): New. 28150 (symtab_unregister_node): Update hashtables. 28151 (symtab_get_node): New. 28152 (symtab_node_for_asm): New. 28153 (change_decl_assembler_name): New. 28154 * Makefile.in (symtab.o): Needs GTY. 28155 * varpool.c (varpool_hash): Remove. 28156 (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove. 28157 (varpool_node): Rewrite using varpool_get_node. 28158 (varpool_remove_node): DO not maintain hashtables. 28159 (varpool_node_for_asm): Rewrite. 28160 281612012-04-16 Sandra Loosemore <sandra@codesourcery.com> 28162 28163 * doc/invoke.texi: Copy-edit to put verbs in the present tense 28164 when describing the current behavior of GCC. 28165 281662012-04-16 Richard Sandiford <rdsandiford@googlemail.com> 28167 28168 * genemit.c (gen_exp): Remove ADDRESS handling. 28169 * genoutput.c (scan_operands): Likewise. 28170 * genpeep.c (match_rtx): Likewise. 28171 * genrecog.c (add_to_sequence): Likewise. 28172 281732012-04-16 David Edelsohn <dje.gcc@gmail.com> 28174 28175 * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status. 28176 281772012-04-16 Martin Jambor <mjambor@suse.cz> 28178 28179 * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for 28180 bit-fields. 28181 281822012-04-16 Ulrich Weigand <ulrich.weigand@linaro.org> 28183 28184 PR target/51819 28185 * config/arm/arm.c (arm_print_operand): Fix invalid alignment 28186 hints for 'A' operand types. 28187 281882012-04-16 Jan Hubicka <jh@suse.cz> 28189 28190 * cgraph.h (symtab_node_base): Add next and previous pointers. 28191 (cgraph_node): Remove next and preivous pointers. 28192 (varpool_node): Likewise; remove next/previous GTY marker; 28193 it is not type safe. 28194 (symtab_node_def): Update GTY marker 28195 (x_cgraph_nodes, cgraph_nodes): Remove. 28196 (symtab_nodes): New function. 28197 (cgraph_order): Rename to ... 28198 (symtab_order): ... this one. 28199 (symtab_register_node, symtab_unregister_node, symtab_remove_node): 28200 Declare. 28201 (x_varpool_nodes, varpool_nodes): Remove. 28202 (FOR_EACH_STATIC_VARIABLE): Update. 28203 (symtab_function_p, symtab_variable_p): New function. 28204 (FOR_EACH_VARIABLE): Update. 28205 (varpool_first_variable, varpool_next_variable): New functions. 28206 (FOR_EACH_VARIABLE): Update. 28207 (cgraph_first_defined_function): Update. 28208 (cgraph_next_defined_function, cgraph_next_defined_function): Update. 28209 (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update. 28210 (cgraph_first_function, cgraph_next_function): New. 28211 (FOR_EACH_FUNCTION): Update. 28212 (cgraph_first_function_with_gimple_body, 28213 cgraph_next_function_with_gimple_body): Update. 28214 * symtab.c: New file. 28215 * cgraph.c: Update copyright dates. 28216 (x_cgraph_nodes, cgraph_order): Remove. 28217 (NEXT_FREE_NODE): Update. 28218 (SET_NEXT_FREE_NODE): New. 28219 (cgraph_create_node_1): Remove common code. 28220 (cgraph_create_node): Remove common code; call symtab_register_node. 28221 (cgraph_remove_node): Remove common code; call symtab_unregister-node. 28222 (cgraph_add_asm_node): Update. 28223 (cgraph_clone_node): Register new node. 28224 * cgraphunit.c (process_function_and_variable_attributes): Update. 28225 (cgraph_analyze_functions): Update. 28226 (cgraph_analyze_functions): Update. 28227 (cgraph_output_in_order): Update. 28228 * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1): 28229 Update. 28230 * ipa-inline.c (recursive_inlining): Update. 28231 * lto-streamer-in.c (lto_input_toplevel_asms): Update. 28232 * ipa.c (cgraph_remove_unreachable_nodes): Update. 28233 * Makefile.in: Add symtab.o 28234 * varpool.c (x_varpool_nodes): Remove 28235 (varpool_node): Remove common code; call symtab_register_node. 28236 (varpool_remove_node): Remove common code; call symtab_unregister_node. 28237 282382012-04-16 Richard Guenther <rguenther@suse.de> 28239 28240 PR middle-end/52977 28241 * tree.h (VECTOR_CST_NELTS): Adjust. 28242 (struct tree_vector): Add explicit length field. 28243 (make_vector_stat): Declare. 28244 (make_vector): Define. 28245 * tree.c (make_vector_stat): New function. 28246 (build_vector_stat): Use it. 28247 * tree-streamer-in.c (streamer_alloc_tree): Likewise. 28248 282492012-04-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 28250 28251 PR tree-optimization/52976 28252 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function. 28253 (undistribute_ops_list): Ops with repeat counts aren't eligible for 28254 undistribution. 28255 (attempt_builtin_powi): Call add_to_ops_vec_max_rank. 28256 282572012-04-16 Jan Hubicka <jh@suse.cz> 28258 28259 * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION): 28260 New macros. 28261 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH 28262 walkers to walk cgraph and varpool. 28263 * cgraph.c (cgraph_node_for_asm): Likewise. 28264 (dump_cgraph): Likewise. 28265 * value-prof.c (init_node_map): Likewise. 28266 * tree.c (free_lang_data_in_cgraph): Likewise. 28267 * tree-emutls.c: (ipa_lower_emutls): Likewise. 28268 * ipa-reference.c (generate_summary, propagate): Likewise. 28269 * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases, 28270 cgraph_mark_functions_to_output, cgraph_output_in_order, 28271 output_weakrefs, cgraph_materialize_all_clones, 28272 cgraph_optimize): Likewise. 28273 * lto-cgraph.c (merge_profile_summaries): Likewise. 28274 (input_cgraph): Likewise. 28275 * ipa-pure-const.c (generate_summary): Likewise. 28276 (propagate): Likwise. 28277 * ipa-utils.c (ipa_reduced_postorder): Likewise. 28278 (ipa_free_postorder_info): Likewise. 28279 (ipa_reverse_postorder): Likewise. 28280 * ipa-inline.c (ipa_inline): Likewise. 28281 * matrix-reorg.c (find_matrices_decl): Likewise. 28282 (matrix_reorg): Likewise. 28283 * tree-vectorizer.c (increase_alignment): Likewise. 28284 * ipa.c (cgraph_remove_unreachable_nodes): Likewise. 28285 (function_and_variable_visibility): Likewise. 28286 (whole_program_function_and_variable_visibility): Likewise. 28287 (ipa_cdtor_merge): Likewise. 28288 * trans-mem.c (ipa_tm_execute): Likewise. 28289 * ipa-inline-analysis.c (dump_inline_summaries): Likewise. 28290 * ipa-prop.c (ipa_print_all_jump_functions): Likewise. 28291 (ipa_print_all_params): Likewise. 28292 (ipa_update_after_lto_read): Likewise. 28293 * tree-profie.c (tree_profiling): Likewise. 28294 * tree-ssa-structalias.c (ipa_pta_execute): Likewise. 28295 * passes.c (dump_passes): Likewise. 28296 (do_per_function): Likewise. 28297 (ipa_write_summaries): Likewise. 28298 * varpool.c (dump_varpool): Likewise. 28299 (varpool_node_for_asm): Likewise. 28300 (varpool_assemble_pending_decls): Likewise. 28301 283022012-04-16 Richard Guenther <rguenther@suse.de> 28303 28304 PR tree-optimization/52975 28305 * tree-if-conv.c (predicate_bbs): Do not simplify inverted 28306 condition but always mark it with TRUTH_NOT_EXPR. 28307 283082012-04-16 Richard Guenther <rguenther@suse.de> 28309 28310 PR tree-optimization/52975 28311 * tree-ssa-forwprop.c (combine_cond_exprs): New function. 28312 (ssa_forward_propagate_and_combine): Call it for COND_EXPRs 28313 and VEC_COND_EXPRs. Also combine into VEC_COND_EXPRs condition. 28314 * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF. 28315 283162012-04-14 Uros Bizjak <ubizjak@gmail.com> 28317 28318 * config/i386/sse.md (ssse3_plusminus): New code iterator. 28319 (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from 28320 avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator. 28321 (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from 28322 ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator. 28323 (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from 28324 ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator. 28325 28326 (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from 28327 avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator. 28328 (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from 28329 ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator. 28330 (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from 28331 ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator. 28332 28333 (xop_plus): New code iterator. 28334 (macs): New code attribute. 28335 (macds): Ditto. 28336 (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from 28337 xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode 28338 iterator. 28339 (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using 28340 xop_plus code iterator. 28341 (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using 28342 xop_plus code iterator. 28343 (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using 28344 xop_plus code iterator. 28345 (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using 28346 xop_plus code iterator. 28347 28348 (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign 28349 any_extend code iterator. 28350 (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign 28351 any_extend code iterator. 28352 (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign 28353 any_extend code iterator. 28354 (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign 28355 any_extend code iterator. 28356 (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign 28357 any_extend code iterator. 28358 (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign 28359 any_extend code iterator. 28360 283612012-04-14 Tom de Vries <tom@codesourcery.com> 28362 28363 * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by 28364 call to delete_insn. Remove code to reorder BASIC_BLOCK note and 28365 DELETED_LABEL note, and move it to ... 28366 * cfgrtl.c (delete_insn): ... here. Change return type to void. 28367 (delete_insn_and_edges): Likewise. 28368 (delete_insn_chain): Handle new return type of delete_insn. Delete 28369 chain backwards rather than forwards. 28370 * rtl.h (delete_insn, delete_insn_and_edges): Change return type to 28371 void. 28372 * cfglayout.c (fixup_reorder_chain): Delete unused label. 28373 283742012-04-14 Jan Hubicka <jh@suse.cz> 28375 28376 * cgraph.h: Update copyrights; 28377 (symtab_node): Turn to union typedef. 28378 (symtab_node_base): New structure. 28379 (symtab_type): Add SYMTAB_SYMBOL tag. 28380 (cgraph_node): Annotate some pinters with nested_ptr. 28381 (varpool_node): Likewise. 28382 (cgraph_local_info): Remove lto_file_data 28383 and externally_visible. 28384 (cgraph_node): Remove decl; same_comdat_group list; 28385 aux; ref_list; order; address_taken; reachable_from_other_parittion, 28386 in_other_partition; resolution. 28387 (varpool_node): Remove decl; same_comdat_group; 28388 ref_list; lto_file_data; aux; order; resolution; externally_visible; 28389 used_from_other_partition; in_other_partition. 28390 (symtab_node_def): New union. 28391 (cgraph, varpool): Update. 28392 (varpool_first_static_initializer, varpool_next_static_initializer, 28393 cgraph_only_called_directly_or_aliased_p, 28394 varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs, 28395 varpool_all_refs_explicit_p, cgraph_alias_aliased_node, 28396 varpool_alias_aliased_node, cgraph_edge_recursive_p): Update 28397 field references. 28398 * cgraph.c: Likewise. 28399 (cgraph_hash, assembler_name_hash): Turn into symtab_node. 28400 * cgraphbuild.c: Likewise. 28401 * lto-symtab.c: Likewise. 28402 * c-gimplify.c: Likewise. 28403 * value-prof.c: Likewise. 28404 * tree.c: Likewise. 28405 * ipa-cp.c: Likewise. 28406 * tree-emutls.c: Likewise. 28407 * ipa-inline-transform.c: Likwise. 28408 * ipa-reference.c: Likewise. 28409 * cgraphunit.c: Likewise. 28410 * ipa-ref.c: Likewise. 28411 * lto-cgraph.c: Likewise. 28412 * ipa-ref-inline.h: Likewise. 28413 * ipa-pure-const.c: Likewise. 28414 * lto-streamer-out.c: Likewise. 28415 * ipa-utils.c: Likewise. 28416 * ipa-inline.c: Likewise. 28417 * matrix-reorg.c: Likewise. 28418 * tree-eh.c: Likewise. 28419 * tree-vectorizer.c: Likewise. 28420 * ipa-split.c: Likewise. 28421 * ipa.c: Likewise. 28422 * trans-mem.c: Likewise. 28423 * ipa-inline-analysis.c: Likewise. 28424 * gimplify.c: Likewise. 28425 * cfgexpand.c: Likewise. 28426 * tree-sra.c: Likewise. 28427 * ipa-prop.c: Likewise. 28428 * varasm.c: Likewise. 28429 * tree-nested.c: Likewise. 28430 * tree-inline.c: Likewise. 28431 * tree-profile.c: Likewise. 28432 * tree-ssa-structalias.c: Likewise. 28433 * passes.c: Likewise. 28434 * varpool.c: Likewise. 28435 284362012-04-14 Tom de Vries <tom@codesourcery.com> 28437 28438 * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of 28439 same_succ_hash, with local_def inlined. Use SINGLE_SSA_DEF_OPERAND. 28440 Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. Remove use 28441 of find_edge. 28442 (gsi_advance_fw_nondebug_nonlocal): New function. 28443 (local_def): Removed function. 28444 (same_succ_hash): Use stmt_local_def. 28445 (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal. 28446 (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def. 28447 284482012-04-13 H.J. Lu <hongjiu.lu@intel.com> 28449 28450 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 28451 and __ILP32__ for x32. 28452 284532012-04-13 Martin Jambor <mjambor@suse.cz> 28454 28455 PR middle-end/52939 28456 * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if 28457 fold_ctor_reference returns a zero constant. 28458 284592012-04-13 Enkovich Ilya <ilya.enkovich@intel.com> 28460 28461 * config.gcc: Add i386/gnu-user-common.h before all 28462 i386/gnu-user.h and i386/gnu-user64.h usages. 28463 28464 * config/i386/gnu-user-common.h: New. 28465 28466 * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h. 28467 (CC1_SPEC): Likewise. 28468 (ENDFILE_SPEC): Likewise. 28469 (DEFAULT_PCC_STRUCT_RETURN): Likewise. 28470 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise. 28471 (TARGET_OS_CPP_BUILTINS): Likewise. 28472 (LIBGCC2_HAS_TF_MODE): Likewise. 28473 (LIBGCC2_TF_CEXT): Likewise. 28474 (TF_SIZE): Likewise. 28475 (TARGET_ASM_FILE_END): Likewise. 28476 (STACK_CHECK_MOVING_SP): Likewise. 28477 (STACK_CHECK_STATIC_BUILTIN): Likewise. 28478 * config/i386/gnu-user64.h: Likewise. 28479 284802012-04-13 Martin Jambor <mjambor@suse.cz> 28481 28482 * expr.c (expand_expr_real_1): Pass type, not the expression, to 28483 set_mem_attributes for a memory temporary. Do not call the function 28484 for the memory temporary created for a bitfield. 28485 284862012-04-13 Alexandre Oliva <aoliva@redhat.com> 28487 28488 PR debug/48866 28489 * df.h (enum debug_temp_where): New. 28490 (dead_debug_init, dead_debug_finish) Declare. 28491 (dead_debug_add, dead_debug_insert_temp): Declare. 28492 (struct dead_debug_use, struct dead_debug): Moved from... 28493 * df-problems.c: ... here. 28494 (df_set_unused_notes_for_mw): Bind debug uses of unused regno 28495 to a debug temp. 28496 (df_create_unused_note): Likewise. 28497 (df_set_dead_notes_for_mw): Move comment where it belongs. 28498 (dead_debug_init): Export. 28499 (dead_debug_reset_uses): New, factored out of... 28500 (dead_debug_finish): ...this. Export. 28501 (dead_debug_reset): Remove. 28502 (dead_debug_add): Export. 28503 (dead_debug_insert_before): Rename to... 28504 (dead_debug_insert_temp): ... this. Add where argument. Export. 28505 Locate stored value for BEFORE_WITH_VALUE. Avoid repeat inserts. 28506 Return insertion count. 28507 (df_note_bb_compute): Adjust. 28508 * dce.c (word_dce_process_block): Adjust dead debug uses. 28509 (dce_process_block): Likewise. 28510 285112012-04-13 Alexandre Oliva <aoliva@redhat.com> 28512 28513 * df-problems.c (df_note_bb_compute): Do not take note of 28514 debug uses for whose REGs we won't emit DEAD or UNUSED notes. 28515 285162012-04-13 Alexandre Oliva <aoliva@redhat.com> 28517 28518 PR debug/51570 28519 * var-tracking.c (expand_depth): New type. 28520 (onepart_aux, expand_loc_callback_data): Change depth type to it. 28521 (loc_exp_dep_alloc): Adjust initializer. 28522 (update_depth): Use new type. Add entryvals. 28523 (vt_expand_var_loc_chain): Take note of expansions with 28524 ENTRY_VALUEs, but don't accept them right away. Run an optional 28525 second pass accepting the minimum ENTRY_VALUE count found in the 28526 first pass. 28527 (vt_expand_loc_callback, INIT_ELCD): Adjust. 28528 285292012-04-13 Tom de Vries <tom@codesourcery.com> 28530 28531 * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add 28532 parameters vuse and vuse_escaped. 28533 (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to 28534 gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and 28535 vuse1 != vuse2. 28536 285372012-04-13 Richard Guenther <rguenther@suse.de> 28538 28539 PR tree-optimization/52969 28540 * tree-if-conv.c (predicate_mem_writes): Properly gimplify 28541 the condition for the COND_EXPR and handle predicate negation 28542 by swapping the COND_EXPR arms. 28543 285442012-04-13 Nick Clifton <nickc@redhat.com> 28545 28546 * config/rl78/rl78.c (rl78_devirt_pass): Remove use of 28547 TODO_dump_func flag. 28548 285492012-04-13 Andrey Belevantsev <abel@ispras.ru> 28550 28551 PR rtl-optimization/52203 28552 PR rtl-optimization/52715 28553 28554 Revert the 2012-03-07 fix for PR 52203. 28555 * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that 28556 the insn does not modify DFA right before issuing, adjust 28557 issue_rate accordingly. 28558 285592012-04-13 Richard Guenther <rguenther@suse.de> 28560 28561 PR c/52549 28562 * c-typeck.c (pointer_diff): Remove bogus assert. 28563 285642012-04-13 Richard Guenther <rguenther@suse.de> 28565 28566 PR c/52862 28567 * convert.c (convert_to_pointer): Remove special-casing of zero. 28568 285692012-04-13 Joey Ye <joey.ye@arm.com> 28570 28571 * config/arm/constraints.md (Pe): New constraint. 28572 * config/arm/arm.md: New split for imm 256-510. 28573 285742012-04-13 Terry Guo <terry.guo@arm.com> 28575 28576 * config/arm/arm-cores.def: Added core cortex-m0plus. 28577 * config/arm/arm-tune.md: Regenerated. 28578 * config/arm/arm-tables.opt: Regenerated. 28579 * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus. 28580 285812012-04-13 Alan Modra <amodra@gmail.com> 28582 28583 PR target/52828 28584 * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with 28585 tie regs on destination of sets. Delete forward declaration. 28586 (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls. 28587 (rs6000_emit_prologue): Likewise. 28588 (rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie 28589 and gen_stack_tie. 28590 (is_mem_ref): Use tie_operand to recognise stack ties. 28591 * config/rs6000/predicates.md (tie_operand): New. 28592 * config/rs6000/rs6000.md (restore_stack_block): Generate new 28593 stack tie rtl. 28594 (restore_stack_nonlocal): Likewise. 28595 (stack_tie): Update. 28596 (frame_tie): Delete. 28597 285982012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 28599 28600 * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to 28601 HOST_WIDE_INT_PRINT_DEC in format strings. 28602 286032012-04-12 Uros Bizjak <ubizjak@gmail.com> 28604 28605 PR target/52932 28606 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second 28607 argument type to __m256i. Update call to __builtin_ia32_permvarsf256. 28608 * config/i386/sse.md (UNSPEC_VPERMVAR): New. 28609 (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove. 28610 (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2. 28611 (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and 28612 avx2_permvarv8si using VI4F_256 mode iterator. 28613 * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>: 28614 Update builtin type to V8SF_FTYPE_V8SF_V8SI. 28615 (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and 28616 gen_avx2_permvarv8sf. 28617 (expand_vec_perm_pshufb): Ditto. 28618 286192012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com> 28620 28621 PR target/52775 28622 * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to 28623 the list of options to enable the FCFID instruction. 28624 (TARGET_EXTRA_BUILTINS): Adjust comment. 28625 286262012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 28627 28628 PR tree-optimization/18589 28629 * tree-ssa-reassoc.c (reassociate_stats): Add two fields. 28630 (operand_entry): Add count field. 28631 (add_repeat_to_ops_vec): New function. 28632 (completely_remove_stmt): Likewise. 28633 (remove_def_if_absorbed_call): Likewise. 28634 (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls. 28635 (acceptable_pow_call): New function. 28636 (linearize_expr_tree): Look for builtin pow/powi calls and add operand 28637 entries with repeat counts when found. 28638 (repeat_factor_d): New struct and associated typedefs. 28639 (repeat_factor_vec): New static vector variable. 28640 (compare_repeat_factors): New function. 28641 (get_reassoc_pow_ssa_name): Likewise. 28642 (attempt_builtin_powi): Likewise. 28643 (reassociate_bb): Call attempt_builtin_powi. 28644 (fini_reassoc): Two new calls to statistics_counter_event. 28645 286462012-04-12 Richard Guenther <rguenther@suse.de> 28647 28648 * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency. 28649 * cgraph.h (tree_rest_of_compilation): Remove. 28650 * cgraph.c (cgraph_add_new_function): Move ... 28651 * cgraphunit.c (cgraph_add_new_function): ... here. 28652 (tree_rest_of_compilation): Make static. 28653 (cgraph_expand_function): Do not set cgraph_function_flags_ready. 28654 * tree-optimize.c (gate_all_optimizations, pass_all_optimizations, 28655 gate_all_early_local_passes, execute_all_early_local_passes, 28656 pass_early_local_passes, gate_all_early_optimizations, 28657 pass_all_early_optimizations): Move ... 28658 * passes.c (gate_all_optimizations, pass_all_optimizations, 28659 gate_all_early_local_passes, execute_all_early_local_passes, 28660 pass_early_local_passes, gate_all_early_optimizations, 28661 pass_all_early_optimizations): ... here. 28662 * tree-optimize.c (execute_free_datastructures): Remove. 28663 * tree-flow.h (execute_free_datastructures): Remove. 28664 * tree-optimize.c (execute_init_datastructures, 28665 pass_init_datastructures): Move ... 28666 * tree-ssa.c (execute_init_datastructures, 28667 pass_init_datastructures): ... here. 28668 * cfgexpand.c (gimple_expand_cfg): Inline-expand call to 28669 execute_free_datastructures. 28670 286712012-04-12 Bernd Schmidt <bernds@codesourcery.com> 28672 28673 * dbgcnt.def (ira_move): New counter. 28674 * ira-int.h (ira_create_new_reg): Declare function. 28675 (first_moveable_pseudo, last_moveable_pseudo): Declare variables. 28676 * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and 28677 no longer static. All callers changed. 28678 * ira.c: Include "dbgcnt.h". 28679 (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos, 28680 move_unallocated_pseudos): New static functions. 28681 (first_moveable_pseudo, last_moveable_pseudo): New global variables. 28682 (pseudo_replaced_reg, pseudo_move_insn): New static variables. 28683 (ira): Call find_moveable_pseudos and move_unallocated_pseudos. 28684 * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero 28685 to the pseudos generated in find_moveable_pseudos. 28686 * Makefile.in (ira.o): Add $(DBGCNT_H). 28687 286882012-04-12 Richard Guenther <rguenther@suse.de> 28689 28690 PR tree-optimization/52943 28691 * tree-chrec.h (chrec_is_positive): Remove. 28692 * tree-scalar-evolution.c (chrec_is_positive): Move ... 28693 * tree-data-ref.c (chrec_is_positive): ... here. Make static. 28694 Return false for a constant zero instead of negative. 28695 (analyze_siv_subscript_cst_affine): Handle zero difference 28696 in the initial condition explicitely. 28697 286982012-04-12 Richard Guenther <rguenther@suse.de> 28699 28700 * tree-parloops.c (parallelize_loops): Also consult the upper 28701 bound for the number of iterations. 28702 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 28703 (loop_prefetch_arrays): Likewise. 28704 287052012-04-12 Richard Guenther <rguenther@suse.de> 28706 28707 * cfgloop.h (estimated_loop_iterations_int): Ditch 28708 'conservative' parameter. 28709 (max_stmt_executions_int): Likewise. 28710 (estimated_loop_iterations): Likewise. 28711 (max_stmt_executions): Likewise. 28712 (max_loop_iterations): Declare. 28713 (max_loop_iterations_int): Likewise. 28714 (estimated_stmt_executions): Likewise. 28715 (estimated_stmt_executions_int): Likewise. 28716 * tree-ssa-loop-niter.c (estimated_loop_iterations): 28717 Split parts to ... 28718 (max_loop_iterations): ... this. 28719 (estimated_loop_iterations_int): Split parts to ... 28720 (max_loop_iterations_int): ... this. 28721 (max_stmt_executions_int): Split parts to ... 28722 (estimated_stmt_executions_int): ... this. 28723 (max_stmt_executions): Split parts to ... 28724 (estimated_stmt_executions): ... this. 28725 * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust. 28726 * predict.c (predict_loops): Likewise. 28727 * tree-data-ref.c (max_stmt_executions_tree): Likewise. 28728 (analyze_siv_subscript_cst_affine): Likewise. 28729 (compute_overlap_steps_for_affine_1_2): Likewise. 28730 (analyze_subscript_affine_affine): Likewise. 28731 (init_omega_for_ddr_1): Likewise. 28732 * tree-parloops.c (parallelize_loops): Likewise. 28733 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise. 28734 (may_eliminate_iv): Likewise. 28735 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 28736 (loop_prefetch_arrays): Likewise. 28737 * tree-vrp.c (adjust_range_with_scev): Likewise. 28738 287392012-04-12 Oleg Endo <olegendo@gcc.gnu.org> 28740 28741 * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0. 28742 * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE): 28743 Fix line width. 28744 (dump_table): Use bool type for need_align and have_df variables. 28745 (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0. 28746 (regs_used): Remove register modifier. 28747 (barrier_align): Move variables slot, credit, jump_to_next 28748 into if block above for loop. Use bool type for jump_to_next. 28749 (sh_function_arg): Use NULL_RTX instead of 0. 28750 287512012-04-11 Andreas Schwab <schwab@linux-m68k.org> 28752 28753 * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart. 28754 (bswapsi2): New expander. 28755 287562012-04-11 H.J. Lu <hongjiu.lu@intel.com> 28757 28758 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to 28759 0x60000000 if __x86_64 is defined and __LP64__ isn't defined. 28760 287612012-04-11 H.J. Lu <hongjiu.lu@intel.com> 28762 28763 PR rtl-optimization/52876 28764 * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value. 28765 Don't call mark_reg_pointer for incompatible pointer sign extension. 28766 * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value 28767 directly. 28768 287692012-04-11 Bernd Schmidt <bernds@codesourcery.com> 28770 28771 * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for 28772 comparisons against TYPE_PRECISION. 28773 * tree-ssa-forwprop.c (combine_conversions): Likewise. 28774 287752012-04-11 Xinliang David Li <davidxl@google.com> 28776 28777 * tree-passes.h: Remove TODO_dump_func. 28778 * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func. 28779 * trans-mem.c: Remove TODO_dump_func. 28780 * ira.c: Remove TODO_dump_func. 28781 287822012-04-11 H.J. Lu <hongjiu.lu@intel.com> 28783 28784 * config/i386/i386.c (ix86_option_override_internal): Check 28785 SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS 28786 after TARGET_64BIT is updated. 28787 287882012-04-11 Oleg Endo <olegendo@gcc.gnu.org> 28789 28790 * config/sh/sh.h: Remove old secondary reload code. 28791 287922012-04-11 Oleg Endo <olegendo@gcc.gnu.org> 28793 28794 * config/sh/sh.c (SCHED_REORDER): Merge macro into ... 28795 (ready_reorder): ... this function. 28796 287972012-04-11 Bernd Schmidt <bernds@codesourcery.com> 28798 28799 * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and 28800 sched_init calls. 28801 28802 * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P 28803 insns so that no other insn is queued for a time before them. 28804 28805 * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to 28806 unknown. 28807 288082012-04-11 Richard Guenther <rguenther@suse.de> 28809 28810 PR middle-end/52621 28811 * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly 28812 consider loop nesting. 28813 (evolution_function_is_univariate_p): Properly check the remainder 28814 for chrecs. 28815 288162012-04-11 Richard Guenther <rguenther@suse.de> 28817 28818 PR middle-end/52918 28819 * except.c (sjlj_emit_dispatch_table): Properly update loop structure. 28820 288212012-04-11 Nick Clifton <nickc@redhat.com> 28822 28823 * config/rl78/rl78.c (rl78_expand_prologue): Set stack use 28824 information, if requested. 28825 28826 * config/rx/rx.c (rx_expand_prologue): Likewise. 28827 288282012-04-11 Peter Bergner <bergner@vnet.ibm.com> 28829 Michael Matz <matz@suse.de> 28830 28831 PR target/16458 28832 * rtlanal.c (unsigned_reg_p): New function. 28833 Update copyright notice dates. 28834 * rtl.h (unsigned_reg_p): Prototype it. 28835 Update copyright notice dates. 28836 * config/rs6000/rs6000.c (rs6000_generate_compare): Use it. 28837 Update comment. 28838 * expr.c (expand_expr_real_1): Set register attributes. 28839 * stmt.c (expand_case): Likewise. 28840 288412012-04-11 Oleg Endo <olegendo@gcc.gnu.org> 28842 28843 PR target/50751 28844 * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments 28845 consider_sh2a and allow_zero. 28846 * config/sh/sh.c (sh_legitimate_index_p): Likewise. 28847 (disp_addr_displacement): New function. 28848 (sh_address_cost): Use disp_addr_displacement function instead 28849 of DISP_ADDR_OFFSET. 28850 (sh_legitimate_address_p): Adapt to changed 28851 sh_legitimate_index_p declaration. 28852 (sh_find_mov_disp_adjust): Remove HImode check. 28853 (sh_secondary_reload): Add HImode case. Use satisfies_constraint_Sdd, 28854 disp_addr_displacement and max_mov_insn_displacement. 28855 (max_mov_insn_displacement): Remove HImode check. 28856 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, 28857 DISP_ADDR_P, DISP_ADDR_OFFSET): Remove. 28858 * config/sh/constraints.md (K05, K13): New constraints. 28859 (K12): Correct comment. 28860 (Sdd): Do not use DISP_ADDR_P macro. 28861 (Snd, Sbw): Use satisfies_constraint_Sdd. 28862 * config/sh/sh.md (extendhisi2): Remove constraints from expander. 28863 (*extendhisi2_compact, movhi_i): Remove. 28864 (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp, 28865 *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd, 28866 *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13, 28867 *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns. 28868 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp, 28869 *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp, 28870 *movqi_load_mem_disp): Use sh_legitimate_index_p instead of 28871 CONST_OK_FOR_Kxx. 28872 Add new peepholes for HImode displacement addressing. 28873 288742012-04-11 Oleg Endo <olegendo@gcc.gnu.org> 28875 28876 * config/sh/sh.h (SIDI_OFF): Remove. 28877 * config/sh/sh.md: Use gen_highpart and gen_lowpart to access 28878 DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg 28879 or operand_subword. 28880 288812012-04-11 Eric Botcazou <ebotcazou@adacore.com> 28882 28883 PR target/52624 28884 * doc/extend.texi (Other Builtins): Document __builtin_bswap16. 28885 (PowerPC AltiVec/VSX Built-in Functions): Remove it. 28886 * doc/md.texi (Standard Names): Add bswap. 28887 * builtin-types.def (BT_UINT16): New primitive type. 28888 (BT_FN_UINT16_UINT16): New function type. 28889 * builtins.def (BUILT_IN_BSWAP16): New. 28890 * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument. 28891 (expand_builtin) <BUILT_IN_BSWAP16>: New case. Pass TARGET_MODE to 28892 expand_builtin_bswap. 28893 (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case. 28894 (fold_builtin_1): Likewise. 28895 (is_inexpensive_builtin): Likewise. 28896 * optabs.c (expand_unop): Deal with bswap in HImode specially. Add 28897 missing bits for bswap to libcall code. 28898 * tree.c (build_common_tree_nodes): Build uint16_type_node. 28899 * tree.h (enum tree_index): Add TI_UINT16_TYPE. 28900 (uint16_type_node): New define. 28901 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete. 28902 * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of 28903 above builtin. 28904 (rs6000_init_builtins): Likewise. 28905 * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate. 28906 289072012-04-11 Tristan Gingold <gingold@adacore.com> 28908 28909 * doc/extend.texi (Type Attributes): Move paragraph. 28910 289112012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org> 28912 28913 PR 24985 28914 * diagnostic.h (show_caret): Declare. 28915 (caret_max_width): Declare. 28916 (diagnostic_show_locus): Declare. 28917 * diagnostic.c (diagnostic_initialize): Initialize to false. 28918 (diagnostic_show_locus): New. 28919 (diagnostic_report_diagnostic): Call it. 28920 (getenv_columns): New. 28921 (adjust_line): New. 28922 (diagnostic_set_caret_max_width): New. 28923 * input.c (read_line): New. 28924 (location_get_source_line): New. 28925 * input.h (location_get_source_line): Declare. 28926 * toplev.c (general_init): Initialize show_caret from options. 28927 * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret. 28928 * opts.c (common_handle_option): Likewise. 28929 * pretty-print.h (pp_get_prefix): New. 28930 (pp_base_get_prefix): New. 28931 * common.opt (fdiagnostics-show-caret): New option. 28932 * doc/invoke.texi (fdiagnostics-show-caret): Document it. 28933 289342012-04-11 Richard Guenther <rguenther@suse.de> 28935 28936 PR rtl-optimization/52881 28937 * ifcvt.c (find_if_case_2): Avoid speculating loop latches. 28938 289392012-04-11 Richard Guenther <rguenther@suse.de> 28940 28941 PR tree-optimization/52912 28942 * tree-ssa-threadupdate.c (thread_block): Tell the cfg 28943 manipulation code we are threading through a loop header 28944 to an exit destination. 28945 289462012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org> 28947 28948 * tree.h (warn_if_unused_value): Move declaration from here. 28949 * stmt.c (warn_if_unused_value): Move definition from here. 28950 289512012-04-10 Michael Matz <matz@suse.de> 28952 28953 * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to 28954 grouped_stores. 28955 (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES. 28956 (struce _bb_vec_info.strided_stores): Rename to grouped_stores. 28957 (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES. 28958 (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS. 28959 (vect_strided_store_supported): Rename to vect_grouped_store_supported. 28960 (vect_strided_load_supported): Rename to vect_grouped_load_supported. 28961 (vect_transform_strided_load): Rename to vect_transform_grouped_load. 28962 (vect_record_strided_load_vectors): Rename to 28963 vect_record_grouped_load_vectors. 28964 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): 28965 Rename use of above macros. 28966 (vect_verify_datarefs_alignment): Ditto. 28967 (vector_alignment_reachable_p): Ditto. 28968 (vect_peeling_hash_get_lowest_cost): Ditto. 28969 (vect_enhance_data_refs_alignment): Ditto. 28970 (vect_analyze_group_access): Ditto and rename stride to groupsize. 28971 (vect_analyze_data_ref_access): Rename "strided" to "grouped". 28972 (vect_strided_store_supported): Rename to vect_grouped_store_supported. 28973 (vect_strided_load_supported): Rename to vect_grouped_load_supported. 28974 (vect_transform_strided_load): Rename to vect_transform_grouped_load. 28975 (vect_record_strided_load_vectors): Rename to 28976 vect_record_grouped_load_vectors. 28977 * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros. 28978 (destroy_loop_vec_info): Ditto. 28979 (vect_transform_loop): Ditto and rename strided_store to grouped_store. 28980 * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros. 28981 (vect_analyze_slp): Ditto. 28982 (new_bb_vec_info): Ditto. 28983 (destroy_bb_vec_info): Ditto. 28984 (vect_schedule_slp_instance): Ditto and rename strided_store to 28985 grouped_store. 28986 * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to 28987 vect_cost_group_size. 28988 (vect_model_store_cost): Rename use of above macros and call 28989 to vect_cost_strided_group_size. 28990 (vect_model_load_cost): Ditto. 28991 (vectorizable_store): Ditto, rename strided_store to grouped_store 28992 and calls to renamed tree-vectorizer.h functions. 28993 (vectorizable_load): Ditto. 28994 (vect_transform_stmt): Rename use of above macros and strided_store 28995 to grouped_store. 28996 289972012-04-10 Jan Hubicka <jh@suse.cz> 28998 28999 * cgraph.h: Remove misledaing comment on ipa-ref.h. 29000 (symtab_type): New enum. 29001 (symtab_node): New structure. 29002 (cgraph_node, varpool_node): Add symbol base type. 29003 (cgraph, varpool): New accestor functions. 29004 * cgraph.c (cgraph_create_node_1): Set symbol type. 29005 * varpool.c (varpool_node): Set symbol type. 29006 290072012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org> 29008 Richard Sandiford <rdsandiford@googlemail.com> 29009 29010 * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs. 29011 290122012-04-10 Richard Guenther <rguenther@suse.de> 29013 29014 PR middle-end/52888 29015 * gimple-low.c (gimple_check_call_args): Properly account for 29016 compatible aggregate types. 29017 290182012-04-10 Richard Guenther <rguenther@suse.de> 29019 29020 * toplev.h (tree_rest_of_compilation): Remove. 29021 * tree-optimize.c (tree_rest_of_compilation): Likewise. 29022 * cgraph.h (tree_rest_of_compilation): Declare. 29023 * tree-optimize.c (tree_rest_of_compilation): Move ... 29024 * cgraphunit.c (tree_rest_of_compilation): ... here. 29025 * cgraph.c (cgraph_add_new_function): Adjust. 29026 * Makefile.in (tree-optimize.o): Adjust. 29027 (cgraphunit.o): Likewise. 29028 290292012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org> 29030 29031 PR tree-optimization/52870 29032 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that 29033 presumed pattern statement is within the same loop or basic block. 29034 290352012-04-10 Tristan Gingold <gingold@adacore.com> 29036 29037 * gengtype.c (main): Make uintptr_t a known type. 29038 290392012-04-10 Richard Guenther <rguenther@suse.de> 29040 29041 * tree-pass.h (tree_lowering_passes): Remove. 29042 * tree-optimize.c (tree_lowering_passes): Remove. 29043 * cgraph.c (cgraph_add_new_function): Inline relevant parts 29044 of tree_lowering_passes, avoid redundant call of early local passes. 29045 * cgraphunit.c (cgraph_lower_function): Fold into ... 29046 (cgraph_analyze_function): ... its single caller. Inline 29047 relevant parts of tree_lowering_passes. 29048 290492012-04-09 H.J. Lu <hongjiu.lu@intel.com> 29050 29051 PR other/52777 29052 * config/pa/pa.opt: Remove SIO and GNU_LD. 29053 290542012-04-09 Jan Hubicka <jh@suse.cz> 29055 29056 PR lto/52722 29057 PR lto/51765 29058 PR lto/52634 29059 * lto-cgraph.c (compute_ltrans_boundary): When alias is in the 29060 boundary, add its target too. 29061 * lto.c (add_references_to_partition): Add also aliased nodes. 29062 (add_cgraph_node_to_partition, 29063 add_varpool_node_to_partition): Work on nodes, not functions/variables; 29064 when adding alias, add also the aliased object. 29065 290662012-04-09 Uros Bizjak <ubizjak@gmail.com> 29067 29068 PR target/52883 29069 * config/i386/predicates.md (x86_64_zext_general_operand): Prevent 29070 VOIDmode immediate operands. 29071 * config/i386/constraints.md (Wz): New constraint. 29072 * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z. 29073 290742012-04-09 Eric Botcazou <ebotcazou@adacore.com> 29075 29076 PR target/52717 29077 * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on 29078 the DECL generated for the special GOT helper. 29079 290802012-04-09 Oleg Endo <olegendo@gcc.gnu.org> 29081 29082 * config/sh/constraints.md: Update list of constraints in 29083 comment block. 29084 (Sr0): Remove unused memory constraint. 29085 290862012-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org> 29087 29088 * tree-pretty-print.h: Update comment. 29089 290902012-04-08 Oleg Endo <olegendo@gcc.gnu.org> 29091 29092 * config/sh/sh.md: Use braced string notation where applicable. 29093 (*prefetch_i4, prefetch_m2a): Merge into ... 29094 (*prefetch): ... this new insn. 29095 290962012-04-07 Oleg Endo <olegendo@gcc.gnu.org> 29097 29098 * config/sh/sh.h (high_life_started): Remove 29099 * config/sh/predicates.md (general_movdst_operand): Use 29100 'reload_in_progress' instead of 'high_life_started'. 29101 * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine, 29102 divsi_inv_fp): Likewise. 29103 291042012-04-07 Oleg Endo <olegendo@gcc.gnu.org> 29105 29106 * config/sh/sh-protos.h (prepare_move_operands): Return void 29107 instead of int. 29108 * config/sh/sh.c (prepare_move_operands): Likewise. 29109 * config/sh/sh.md: Remove return value checks of prepare_move_operands. 29110 291112012-04-07 Oleg Endo <olegendo@gcc.gnu.org> 29112 29113 * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand, 29114 general_movsrc_operand, general_movdst_operand, arith_reg_operand, 29115 fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand, 29116 logical_operand, fpscr_operand, fpul_operand, expand_fp_branch, 29117 commutative_float_operator, noncommutative_float_operator, 29118 sh_handle_pragma): Remove. 29119 291202012-04-06 Sandra Loosemore <sandra@codesourcery.com> 29121 29122 * doc/invoke.texi: Clean up Texinfo markup throughout the file. 29123 Use @option markup on command-line options. Use @samp markup on 29124 literal keywords to options. Use @code markup on code fragments. 29125 Use other markup in preference to quotation marks in the text. 29126 Add markup to some passages without any. 29127 291282012-04-06 Mike Stump <mikestump@comcast.net> 29129 29130 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning. 29131 291322012-04-06 Oleg Endo <olegendo@gcc.gnu.org> 29133 29134 * config/sh/sh.c (hi_const): Remove. 29135 (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead 29136 of hi_const. 29137 291382012-04-06 Oleg Endo <olegendo@gcc.gnu.org> 29139 29140 * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int 29141 to bool. 29142 * config/sh/sh.c (sh_expand_t_scc): Likewise. 29143 * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before 29144 calling sh_expand_t_scc. 29145 291462012-04-06 Oleg Endo <olegendo@gcc.gnu.org> 29147 29148 * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand, 29149 nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt, 29150 sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand, 29151 reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok, 29152 sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p, 29153 sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p, 29154 check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p, 29155 sh2a_is_function_vector_call): Use bool as return type. 29156 (sh_pass_in_reg_p): Remove. 29157 * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure, 29158 flow_dependent_p, sh2a_function_vector_p, expand_block_move, 29159 expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, 29160 sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p, 29161 sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p, 29162 sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand, 29163 fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch, 29164 sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p, 29165 sh_loads_bankedreg_p): Use bool as return type. 29166 (nonpic_symbol_mentioned_p): Use bool as return type. Remove 29167 'register' modifier. 29168 291692012-04-06 Matt Turner <mattst88@gmail.com> 29170 29171 * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc". 29172 291732012-04-06 Eric Botcazou <ebotcazou@adacore.com> 29174 29175 * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member 29176 of the destination isn't also a FP_REGS register. 29177 291782012-04-05 Teresa Johnson <tejohnson@google.com> 29179 H.J. Lu <hongjiu.lu@intel.com> 29180 29181 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL. 29182 * config/i386/i386.md (move immediate to memory peephole2): 29183 Add cases for HImode move when LCP stall avoidance is needed. 29184 * config/i386/i386.c (initial_ix86_tune_features): Initialize 29185 X86_TUNE_LCP_STALL entry. 29186 291872012-04-05 Uros Bizjak <ubizjak@gmail.com> 29188 29189 PR target/52882 29190 * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode 29191 CONST_INT operands, zero-extended with AND. 29192 291932012-04-05 Oleg Endo <olegendo@gcc.gnu.org> 29194 29195 PR target/50751 29196 * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the 29197 first argument instead of mode size. Move displacement calculations 29198 to ... 29199 (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask): 29200 ... these new functions. 29201 (disp_adjust): Remove max_mov_disp field. 29202 (sh_legitimate_index_p): Use max_mov_insn_displacement and 29203 mov_insn_alignment_mask. 29204 (sh_address_cost): Use max_mov_insn_displacement. 29205 292062012-04-05 Andrew Stubbs <ams@codesourcery.com> 29207 29208 * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8. 29209 (arch_enabled): Handle new arch types. 29210 (one_cmpldi2): Add NEON support. 29211 292122012-04-05 Richard Guenther <rguenther@suse.de> 29213 29214 * gimple.c (walk_gimple_op): Compute val_only for the LHS 29215 of an assigment in the canonical way, avoiding is_gimple_mem_rhs. 29216 (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ... 29217 * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): 29218 ... here and make static. 29219 * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): 29220 Remove. 29221 292222012-04-05 Richard Guenther <rguenther@suse.de> 29223 29224 * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt 29225 basic-block before removing it. 29226 292272012-04-05 Richard Guenther <rguenther@suse.de> 29228 29229 * tree-ssanames.c (release_dead_ssa_names): Compact the SSA 29230 version namespace as we release the freelist. 29231 292322012-04-05 Richard Guenther <rguenther@suse.de> 29233 29234 * tree-nrv.c (tree_nrv): Release VDEFs. 29235 * tree-sra.c (sra_modify_constructor_assign): Likewise. 29236 (sra_modify_assign): Likewise. 29237 * tree-vect-stmts.c (vect_remove_stores): Likewise. 29238 * tree-vect-loop.c (vect_transform_loop): Likewise. 29239 * tree-ssa-dom.c (optimize_stmt): Likewise. 29240 * tree-vect-slp.c (vect_schedule_slp): Likewise. 29241 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise. 29242 292432012-04-05 Richard Guenther <rguenther@suse.de> 29244 29245 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be 29246 cleanup. 29247 * gimple.h (gsi_remove): Adjust. 29248 * tree-ssa-operands.c (unlink_stmt_vdef): Optimize. 29249 * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result. 29250 * tree-ssa-dse.c (dse_optimize_stmt): Likewise. 29251 * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise. 29252 * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise. 29253 * tree-ssa-pre.c (eliminate): Likewise. 29254 292552012-04-04 Mike Stump <mikestump@comcast.net> 29256 29257 * doc/rtl.texi (const_double): Document as sign-extending. 29258 * expmed.c (expand_mult): Ensure we don't use shift incorrectly. 29259 * emit-rtl.c (immed_double_int_const): Refine to state the 29260 value is signed. 29261 * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than 29262 CONST_DOUBLE integers. 29263 (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no 29264 negative values are converted. Fix conversions bigger than 29265 HOST_BITS_PER_WIDE_INT. 29266 (simplify_binary_operation_1): Ensure we don't use shift incorrectly. 29267 (simplify_immed_subreg): Sign-extend CONST_DOUBLEs. 29268 * explow.c (plus_constant_mode): Add. 29269 (plus_constant): Implement with plus_constant_mode. 29270 * rtl.h (plus_constant_mode): Add. 29271 292722012-04-04 Richard Guenther <rguenther@suse.de> 29273 29274 PR tree-optimization/52808 29275 * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks. 29276 * Makefile.in (tracer.o): Depend on $(CFGLOOP_H). 29277 292782012-04-04 Tristan Gingold <gingold@adacore.com> 29279 29280 * expr.c (expand_expr_real_2): Handle larger sizetype in 29281 POINTER_PLUS_EXPR. 29282 292832012-04-03 Kaz Kojima <kkojima@gcc.gnu.org> 29284 29285 * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only 29286 to m2a-single instead of m2e. 29287 292882012-04-03 Eric Botcazou <ebotcazou@adacore.com> 29289 29290 * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS. 29291 Change type of BITOFFSET to signed. Make sure the lower bound of 29292 the computed range is non-negative by adjusting OFFSET and BITPOS. 29293 (expand_assignment): Adjust call to get_bit_range. 29294 292952012-04-03 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com> 29296 29297 * h8300/h8300.c (h8300_current_function_monitor_function_p): 29298 New function. Added to check monitor functions. 29299 (h8300_option_override): Modified to generate error/warning 29300 messages for invalid combinations of different command line 29301 options. 29302 * h8300/h8300.md: Generate 'rte' for monitor functions. Do not 29303 save EXR on stack for monitor function in case of H8S target 29304 when "-mno-exr" is passed. 29305 * h8300/h8300-protos.h (h8300_current_function_monitor_function_p): 29306 Add prototype. 29307 * doc/invoke.texi: Document H8S options. 29308 293092012-04-03 Tristan Gingold <gingold@adacore.com> 29310 29311 * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead 29312 of gcc_AC_FUNC_MMAP_BLACKLIST. 29313 * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove. 29314 * Makefile.in (aclocal_deps): Add mmap.m4. 29315 * configure: Regenerate. 29316 * aclocal.m4: Regenerate. 29317 293182012-04-03 Richard Guenther <rguenther@suse.de> 29319 29320 PR tree-optimization/52808 29321 * tracer.c (tail_duplicate): Return whether we have duplicated 29322 any block. 29323 (tracer): If we have duplicated any block, cleanup the CFG. 29324 * cfghooks.c (duplicate_block): If we duplicated a loop 29325 header but not its loop, destroy the loop because it now has 29326 multiple entries. 29327 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell 29328 the cfg manipulation routines we are not creating a multiple 29329 entry loop. 29330 293312012-04-03 Tristan Gingold <gingold@adacore.com> 29332 29333 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle 29334 'byte' alignment. 29335 (vms_c_common_override_options): Allow parameterless variadic 29336 functions. 29337 293382012-04-03 Jakub Jelinek <jakub@redhat.com> 29339 29340 PR tree-optimization/52835 29341 * tree-data-ref.c (build_rdg): Return NULL if 29342 compute_data_dependences_for_loop failed. 29343 293442012-04-03 Eric Botcazou <ebotcazou@adacore.com> 29345 29346 * varasm.c (initializer_constant_valid_for_bitfield_p): Return true 29347 for REAL_CST as well. 29348 (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate. 29349 In the bitfield case, if the value is a REAL_CST, convert it first to 29350 an INTEGER_CST. 29351 293522012-04-02 H.J. Lu <hongjiu.lu@intel.com> 29353 29354 * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h 29355 for --with-abi={x32|mx32} or --with-multilib-list=mx32. 29356 (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*. 29357 29358 * config/i386/biarchx32.h: New. 29359 293602012-04-02 Anatoly Sokolov <aesok@post.ru> 29361 29362 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove. 29363 * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define. 29364 (arm_preferred_reload_class): New function. 29365 293662012-04-02 Richard Guenther <rguenther@suse.de> 29367 29368 PR tree-optimization/52756 29369 * tree-ssa-threadupdate.c (def_split_header_continue_p): New function. 29370 (thread_through_loop_header): After threading through the loop latch 29371 remove the split part from the loop and clear further threading 29372 opportunities that would create a multiple entry loop. 29373 293742012-04-02 Richard Guenther <rguenther@suse.de> 29375 29376 PR rtl-optimization/52800 29377 * cprop.c (execute_rtl_cprop): Call cleanup_cfg with 29378 CLEANUP_CFG_CHANGED. 29379 293802012-04-02 Richard Guenther <rguenther@suse.de> 29381 29382 PR middle-end/52803 29383 * loop-init.c (gate_handle_loop2): Destroy loops here if 29384 we don't enter RTL loop optimizers. 29385 293862012-04-02 Uros Bizjak <ubizjak@gmail.com> 29387 29388 Partially revert: 29389 2012-03-29 Richard Guenther <rguenther@suse.de> 29390 29391 * rtl.h (extended_count): Remove. 29392 * combine.c (extended_count): Remove. 29393 293942012-04-02 Dodji Seketeli <dodji@redhat.com> 29395 29396 PR c++/40942 29397 * pt.c (more_specialized_fn): Don't apply decay conversion to 29398 types of function parameters. 29399 294002012-04-02 Tristan Gingold <gingold@adacore.com> 29401 29402 * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2) 29403 (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry) 29404 (alloc_page, init_ggc, clear_marks, struct ggc_pch_data) 29405 (ggc_pch_this_base): Use uintptr_t instead of size_t. 29406 294072012-03-31 H.J. Lu <hongjiu.lu@intel.com> 29408 29409 PR bootstrap/52784 29410 * config/i386/i386.c (ix86_option_override_internal): Don't 29411 check TARGET_64BIT if TARGET_64BIT_DEFAULT is false. 29412 294132012-03-31 Eric Botcazou <ebotcazou@adacore.com> 29414 29415 * tree-cfg.c (call_can_make_abnormal_goto): New predicate. 29416 (stmt_can_make_abnormal_goto): Use it. 29417 (is_ctrl_altering_stmt): Likewise. 29418 294192012-03-30 Naveen H.S <naveen.S@kpitcummins.com> 29420 Kaz Kojima <kkojima@gcc.gnu.org> 29421 29422 * config/sh/sh.c (push_regs): Skip banked registers when 29423 resbank attribute is specified. 29424 (sh_expand_epilogue): Likewise. 29425 294262012-03-30 Richard Henderson <rth@redhat.com> 29427 29428 PR debug/52727 29429 * combine-stack-adj.c (prev_active_insn_bb): New. 29430 (next_active_insn_bb): New. 29431 (force_move_args_size_note): New. 29432 (combine_stack_adjustments_for_block): Use it. 29433 294342012-03-30 Richard Henderson <rth@redhat.com> 29435 29436 * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p. 29437 (ix86_expand_vector_init_duplicate): Initialize it. 29438 (expand_vec_perm_palignr): Likewise. 29439 (ix86_expand_vec_perm_const): Likewise. 29440 (ix86_vectorize_vec_perm_const_ok): Likewise. 29441 (expand_vec_perm_blend): Use it. 29442 (expand_vec_perm_vpermil): Likewise. 29443 (expand_vec_perm_pshufb): Likewise. 29444 (expand_vec_perm_1): Likewise. 29445 (expand_vec_perm_pshuflw_pshufhw): Likewise. 29446 (expand_vec_perm_interleave2): Likewise. 29447 (expand_vec_perm_vpermq_perm_1): Likewise. 29448 (expand_vec_perm_vperm2f128): Likewise. 29449 (expand_vec_perm_interleave3): Likewise. 29450 (expand_vec_perm_vperm2f128_vblend): Likewise. 29451 (expand_vec_perm_vpshufb2_vpermq): Likewise. 29452 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,. 29453 (expand_vec_perm_broadcast): Likewise. 29454 (expand_vec_perm_vpshufb4_vpermq2): Likewise. 29455 294562012-03-30 Richard Henderson <rth@redhat.com> 29457 29458 * dwarf2out.c (gen_variable_die): Initialize off. 29459 294602012-03-30 Tristan Gingold <gingold@adacore.com> 29461 29462 * config/vms/vms-f.c: New file. 29463 * config/vms/t-vms (vms-f.o): New rule. 29464 * config.gcc (*-*-*vms*): Define fortran_target_objs. 29465 294662012-03-30 Richard Guenther <rguenther@suse.de> 29467 29468 PR tree-optimization/52754 29469 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only 29470 propagate arbitrary addresses into really plain dereferences. 29471 294722012-03-30 Richard Guenther <rguenther@suse.de> 29473 29474 PR middle-end/52772 29475 * except.c (emit_to_new_bb_before): Move loop updating ... 29476 (dw2_build_landing_pads): ... here. Use a proper block for 29477 querying the loop father. 29478 294792012-03-30 Tristan Gingold <gingold@adacore.com> 29480 29481 * config/ia64/ia64.c (ia64_section_type_flags): Remove 29482 common_object attribute handling. 29483 (SECTION_VMS_OVERLAY): Remove 29484 (ia64_vms_common_object_attribute): Replace abort with an assert. 29485 Do not set DECL_SECTION_NAME. 29486 (ia64_vms_output_aligned_decl_common): Handle common_object 29487 attribute. 29488 (ia64_vms_elf_asm_named_section): Remove. 29489 * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove. 29490 294912012-03-30 Richard Guenther <rguenther@suse.de> 29492 29493 PR middle-end/52786 29494 * double-int.c (rshift_double): Remove not needed cast. 29495 294962012-03-30 Richard Guenther <rguenther@suse.de> 29497 29498 * tree-affine.h (print_aff): Remove. 29499 * tree-affine.c (print_aff): Make static. 29500 * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove. 29501 (get_references_in_stmt): Likewise. 29502 (print_direction_vector): Likewise. 29503 (print_dir_vectors): Likewise. 29504 (print_dist_vectors): Likewise. 29505 (dump_subscript): Likewise. 29506 (dump_ddrs): Likewise. 29507 (dump_dist_dir_vectors): Likewise. 29508 (dump_data_references): Likewise. 29509 (dump_data_dependence_relation): Likewise. 29510 (dump_data_dependence_direction): Likewise. 29511 (dump_rdg_vertex): Likewise. 29512 (dump_rdg_component): Likewise. 29513 (debug_ddrs): Declare. 29514 (struct data_ref_loc_d): Move ... 29515 * tree-data-ref.c (struct data_ref_loc_d): ... here. 29516 (get_references_in_stmt): Make static. 29517 (dump_data_references): Likewise. 29518 (dump_subscript): Likewise. 29519 (print_direction_vector): Likewise. 29520 (print_dir_vectors): Likewise. 29521 (print_dist_vectors): Likewise. 29522 (dump_data_dependence_relation): Likewise. 29523 (dump_dist_dir_vectors): Likewise. 29524 (dump_ddrs): Likewise. 29525 (dump_rdg_vertex): Likewise. 29526 (dump_rdg_component): Likewise. 29527 (debug_ddrs): New function. 29528 (access_matrix_get_index_for_parameter): Remove. 29529 295302012-03-30 Tristan Gingold <gingold@adacore.com> 29531 29532 * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename. 29533 (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New. 29534 (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL) 29535 (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE) 29536 (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New. 29537 (vms_patch_builtins): Handle new flags 29538 * config/vms/vms-crtlmap.map: Completed using nm on 29539 c and math system libraries. 29540 * config/vms/make-crtlmap.awk: Handle any number of flags. 29541 295422012-03-30 Martin Jambor <mjambor@suse.cz> 29543 29544 * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there 29545 is a builtin_stack_save in a dominating BB. 29546 295472012-03-29 Uros Bizjak <ubizjak@gmail.com> 29548 29549 * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results 29550 crossing 128bit lane boundary. 29551 295522012-03-29 Vladimir Makarov <vmakarov@redhat.com> 29553 29554 * ira-color.c (setup_left_conflict_sizes_p): Process all 29555 conflicting objects. 29556 295572012-03-29 Jakub Jelinek <jakub@redhat.com> 29558 29559 PR tree-optimization/52760 29560 * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p 29561 shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type). 29562 295632012-03-29 Richard Guenther <rguenther@suse.de> 29564 29565 * cgraph.h (cgraph_materialize_all_clones): Remove. 29566 (reset_inline_failed): Likewise. 29567 * cgraphunit.c (cgraph_materialize_all_clones): Make static. 29568 * cgraphbuild.c (reset_inline_failed): Remove. 29569 * rtl.h (cse_main): Remove. 29570 (extended_count): Likewise. 29571 * cse.c (dump_class): Mark as DEBUG_FUNCTION. 29572 (cse_main): Make static. 29573 * combine.c (extended_count): Remove. 29574 (dump_combine_stats): Mark as DEBUG_FUNCTION. 29575 * basic-block.h (reorder_basic_blocks): Remove. 29576 * bb-reorder.c (reorder_basic_blocks): Make static. 29577 * Makefile.in (dse.o): Remove dse.h dependency. 29578 * dse.h: Remove. 29579 * dse.c (gate_dse): Remove. 29580 (clear_alias_mode_eq): Likewise. 29581 (clear_alias_mode_hash): Likewise. 29582 (dse_record_singleton_alias_set): Likewise. 29583 (dse_invalidate_singleton_alias_set): Likewise. 29584 295852012-03-29 H.J. Lu <hongjiu.lu@intel.com> 29586 29587 * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use 29588 crtbegin_so%O%s for -shared. 29589 (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared. 29590 295912012-03-29 Richard Guenther <rguenther@suse.de> 29592 29593 * tree-flow.h (struct pre_expr_d): Remove forward declaration. 29594 (add_to_value): Remove. 29595 (print_value_expressions): Likewise. 29596 * tree-ssa-pre.c (add_to_value): Make static. 29597 (print_value_expressions): Likewise. 29598 * gimple.h (gimple_adjust_this_by_delta): Remove. 29599 * gimple-fold.c (gimple_adjust_this_by_delta): Likewise. 29600 296012012-03-29 Richard Guenther <rguenther@suse.de> 29602 29603 PR middle-end/50708 29604 * double-int.h (rshift_double): Remove. 29605 * double-int.c (lshift_double): Use absu_hwi to make count positive. 29606 (rshift_double): Make static, take unsigned count argument, 29607 remove handling of negative count argument. 29608 (double_int_rshift): Dispatch to lshift_double. 29609 296102012-03-28 H.J. Lu <hongjiu.lu@intel.com> 29611 29612 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add 29613 OPTION_MASK_ABI_64. 29614 * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2. 29615 (SPEC_X32): Likewise. 29616 (MULTILIB_DEFAULTS): Likewise. 29617 * config/i386/i386.c (isa_opts): Remove -m64. 29618 (ix86_target_string): Properly handle -m32/-m64/-mx32. 29619 (ix86_option_override_internal): Properly 29620 set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as 29621 handle -m32, -m64 and -mx32. 29622 * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32 29623 with OPTION_ABI_X32. Moved after TARGET_LP64. 29624 (TARGET_LP64): Changed to OPTION_ABI_64. 29625 * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64. 29626 (mx32): Replace ISA_X32 with ABI_X32. 29627 296282012-03-28 Eric Botcazou <ebotcazou@adacore.com> 29629 29630 * tree.c (tree_size) <VECTOR_CST>: New case. 29631 296322012-03-28 Uros Bizjak <ubizjak@gmail.com> 29633 29634 * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes. 29635 (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls. 29636 296372012-03-28 Jakub Jelinek <jakub@redhat.com> 29638 29639 PR middle-end/52691 29640 * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize 29641 __builtin_va_start to __builtin_next_arg if the latter is 29642 builtin_decl_explicit_p rather than when it is not. 29643 29644 PR middle-end/52750 29645 * tree-vect-generic.c (vector_element): Perform multiplication 29646 for pos in bitsizetype type instead of idx type. 29647 296482012-03-28 Richard Guenther <rguenther@suse.de> 29649 29650 * loop-init.c (loop_optimizer_init): If loops are preserved 29651 perform incremental initialization of required loop features. 29652 (loop_optimizer_finalize): If loops are to be preserved only 29653 clean up optional loop features. 29654 (rtl_loop_done): Forcefully free loops here. 29655 * cgraph.c (cgraph_release_function_body): Forcefully free loops. 29656 * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks 29657 to existing loops. 29658 (construct_init_block): Likewise. 29659 (construct_exit_block): Likewise. 29660 (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup 29661 the CFG after expanding. 29662 * cfgloop.c (verify_loop_structure): Calculate or verify dominators. 29663 If we needed to calculate them, free them afterwards. 29664 * tree-pass.h (PROP_loops): New define. 29665 * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops. 29666 * basic-block.h (CLEANUP_CFG_CHANGED): New. 29667 * cfgcleanup.c (merge_blocks_move): Protect loop latches. 29668 (cleanup_cfg): If we did something and have loops around, fix them up. 29669 * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg 29670 with CLEANUP_CFG_CHANGED. 29671 * cfghooks.c (merge_blocks): If we merge a loop header into 29672 its predecessor, update the loop structure. 29673 (duplicate_block): If we copy a loop latch, adjust loop state 29674 to note we may have multiple latches. 29675 (delete_basic_block): Mark loops for fixup if we remove a loop. 29676 * cfganal.c (forwarder_block_p): Protect loop latches, headers 29677 and preheaders. 29678 * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches. 29679 (cfg_layout_can_merge_blocks_p): Likewise. 29680 * cprop.c (bypass_block): If we create a loop with multiple 29681 entries, mark it for removal. 29682 * except.c (emit_to_new_bb_before): Add the new basic-block 29683 to existing loops. 29684 * tree-eh.c (lower_resx): Likewise. 29685 * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops. 29686 (expand_omp_taskreg): Likewise. 29687 * tree-inline.c (initialize_cfun): Likewise. 29688 * tree-mudflap.c (add_bb_to_loop): Prototype. 29689 (mf_build_check_statement_for): Properly add new basic-blocks 29690 to existing loops. 29691 * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup 29692 if we remove a loop. 29693 (thread_through_loop_header): Likewise. 29694 * trans-mem.c (tm_log_emit_save_or_restores): Properly add 29695 new basic-blocks to existing loops. 29696 (expand_transaction): Likewise. 29697 * Makefile.in (except.o): Add $(CFGLOOP_H). 29698 (expr.o): Likewise. 29699 (cgraph.o): Likewise. 29700 (cprop.o): Likewise. 29701 (cfgexpand.o): Likewise. 29702 (cfganal.o): Likewise. 29703 (trans-mem.o): Likewise. 29704 (tree-eh.o): Likewise. 29705 297062012-03-28 Georg-Johann Lay <avr@gjlay.de> 29707 29708 PR target/52692 29709 * config/avr/avr.c (TARGET_BUILTIN_DECL): New define. 29710 (avr_builtin_decl): New static function. 29711 (struct avr_builtin_description, avr_bdesc): Move up. 29712 Add GTY marker. Add field fndecl. Remove redundant field id. 29713 (avr_init_builtins): Initialize avr_bdesc[ID].fndecl. 29714 (avr_expand_builtin): Code cleanup because .id is removed. 29715 297162012-03-28 Georg-Johann Lay <avr@gjlay.de> 29717 29718 PR target/52737 29719 * config.gcc (tm_file): Remove avr/multilib.h. 29720 29721 * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack. 29722 29723 * config/avr/genmultilib.awk: Remove code to generate multilib.h. 29724 (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack. 29725 * config/avr/t-avr: Remove generation of multilib.h. 29726 * config/avr/t-multilib: Regenerate. 29727 * config/avr/multilib.h: Remove. 29728 * config/avr/avr.opt (-msp8): New option. 29729 (avr_sp8): New variable. 29730 * config/avr/driver-avr.c (avr_device_to_sp8): New function. 29731 * config/avr/avr.h (AVR_HAVE_SPH): New define. 29732 (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8. 29733 (avr_device_to_sp8): New prototype. 29734 (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 } 29735 (DRIVER_SELF_SPECS): New define. 29736 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines: 29737 __AVR_SP8__, __AVR_HAVE_SPH__. 29738 * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of 29739 AVR_HAVE_8BIT_SP to decide if SP_H is present. 29740 (avr_file_start): Ditto. 29741 297422012-03-28 Jakub Jelinek <jakub@redhat.com> 29743 29744 PR target/52736 29745 * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0 29746 instead of 8 in adjust_address. 29747 297482012-03-27 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com> 29749 29750 PR middle-end/51893 29751 * expmed.c (store_bit_field_1): Fix wordnum value for big-endian 29752 targets. 29753 297542012-03-27 Oleg Endo <olegendo@gcc.gnu.org> 29755 29756 PR target/50751 29757 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address): 29758 Rearrange conditional logic. Move displacement address calculations 29759 to ... 29760 (sh_find_mov_disp_adjust): ... this new function. 29761 297622012-03-27 H.J. Lu <hongjiu.lu@intel.com> 29763 29764 * config/arm/arm.opt (mapcs): Remove MaskExists. 29765 * config/cris/linux.opt (mno-gotplt): Likewise. 29766 * config/i386/i386.opt (mhard-float): Likewise. 29767 (msse4): Likewise. 29768 (mno-sse4): Likewise. 29769 * config/m68k/m68k.opt (mhard-float): Likewise. 29770 * config/mep/mep.op (mcop32): Likewise. 29771 * config/pa/pa-hpux.opt (msio): Likewise. 29772 * config/pa/pa64-hpux.opt (mgnu-ld): Likewise. 29773 * config/picochip/picochip.opt (mlittle): Likewise. 29774 * config/sh/sh.opt (mrenesas): Likewise. 29775 * config/sparc/long-double-switch.opt (mlong-double-128): Likewise. 29776 * config/sparc/sparc.opt (mhard-float): Likewise. 29777 * config/v850/v850.opt (mv850es): Likewise. 29778 * config/vax/vax.opt (mg-float): Likewise. 29779 297802012-03-27 Martin Jambor <mjambor@suse.cz> 29781 29782 PR middle-end/52693 29783 * tree-sra.c (sra_modify_assign): Do not call 29784 load_assign_lhs_subreplacements when working with an unscalarizable 29785 region. 29786 297872012-03-27 Uros Bizjak <ubizjak@gmail.com> 29788 29789 PR target/52698 29790 * config/i386/i386-protos.h (ix86_legitimize_reload_address): 29791 New prototype. 29792 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define. 29793 * config/i386/i386.c: Include reload.h. 29794 (ix86_legitimize_reload_address): New function. 29795 297962012-03-27 H.J. Lu <hongjiu.lu@intel.com> 29797 29798 * opth-gen.awk: Allocated a bit for Mask and InverseMask if it 29799 hasn't been allocated. Define a target macro for Mask and 29800 InverseMask if it hasn't been defined. Remove MaskExists handling. 29801 29802 * doc/options.texi: Remove MaskExists. 29803 298042012-03-27 Chung-Lin Tang <cltang@codesourcery.com> 29805 29806 PR target/52667 29807 * config/sh/sh.c (find_barrier): Add equality check of last_got 29808 to avoid going above orig insn. Update comments. 29809 298102012-03-27 Richard Guenther <rguenther@suse.de> 29811 29812 PR middle-end/52720 29813 * fold-const.c (try_move_mult_to_index): Handle &x.array more 29814 explicitely. 29815 298162012-03-27 Eric Botcazou <ebotcazou@adacore.com> 29817 29818 * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple 29819 of a unit before computing the offset in units. 29820 * expr.c (get_bit_range): Return the null range if the enclosing record 29821 is part of a larger bit field. 29822 298232012-03-27 Tristan Gingold <gingold@adacore.com> 29824 29825 * config/ia64/vms.h (CASE_VECTOR_MODE): Define. 29826 * config/ia64/ia64.md: Remove mode in template. 29827 Sign extend operand in expand_simple_binop. 29828 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use 29829 CASE_VECTOR_MODE instead of TARGET_ILP32. 29830 (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE. 29831 298322012-03-26 Steven Bosscher <steven@gcc.gnu.org> 29833 29834 * varasm.c (assemble_external): #if 0 out the new assert from the 29835 previous commit, it breaks the Java and Go front ends. 29836 298372012-03-26 Steven Bosscher <steven@gcc.gnu.org> 29838 29839 * toplev.c (check_global_declaration_1): Do not call assemble_external. 29840 * expr.c (emit_block_move_libcall_fn): Likewise. 29841 (clear_storage_libcall_fn): Likewise. 29842 (expand_expr_addr_expr_1): Likewise. 29843 (expand_expr_real_1): Likewise. 29844 * calls.c (rtx_for_function_call): Likewise. 29845 29846 * varasm.c (assemble_external): Assert this function is only called 29847 during or after expanding to RTL. 29848 298492012-03-26 Martin Jambor <mjambor@suse.cz> 29850 29851 PR tree-optimization/50052 29852 * tree-sra.c (tree_non_aligned_mem_p): Removed. 29853 (tree_non_aligned_mem_for_access_p): Likewise. 29854 (build_accesses_from_assign): Removed strict alignment requirements 29855 checks. 29856 (access_precludes_ipa_sra_p): Likewise. 29857 298582012-03-26 Richard Guenther <rguenther@suse.de> 29859 29860 PR tree-optimization/52701 29861 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always 29862 compute and set the evolution part of PHI nodes. 29863 298642012-03-26 Richard Guenther <rguenther@suse.de> 29865 29866 PR tree-optimization/52721 29867 * tree-vect-stmts.c (vect_init_vector): Handle scalars. 29868 298692012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org> 29870 29871 PR tree-optimization/52686 29872 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle 29873 WIDEN_LSHIFT_EXPR. 29874 298752012-03-26 Tristan Gingold <gingold@adacore.com> 29876 29877 * config/alpha/vms.h (LINK_SPEC): Simplify. 29878 (STARTFILE_SPEC): Remove -mvms-return-codes handling. 29879 (NAME__MAIN, SYMBOL__MAIN): Remove. 29880 (VMS_DEBUG_MAIN_POINTER): Remove. 29881 * config/ia64/vms.h: Likewise. 29882 * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main 29883 code to vms.c. Call vms_start_function. 29884 * config/ia64/ia64.c (ia64_start_function): Likewise. 29885 * config/vms/vms-protos.h (vms_start_function): Declare. 29886 * config/vms/vms.c (vms_start_function): New function. 29887 * config/vms/vms.h (MATH_LIBRARY): Define. 29888 (VMS_DEBUG_MAIN_POINTER): Define. 29889 298902012-03-26 Eric Botcazou <ebotcazou@adacore.com> 29891 29892 PR rtl-optimization/52629 29893 * reload1.c (count_pseudo): Short-circuit common case. 29894 (count_spilled_pseudo): Return early for pseudos without hard regs. 29895 Assert that the pseudo has got a hard reg before manipulating it. 29896 298972012-03-24 Jan Hubicka <jh@suse.cz> 29898 29899 PR lto/51663 29900 * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here. 29901 (decide_is_variable_needed): Do not handle toplevel reorder here. 29902 * cgraph.h (varpool_can_remove_if_no_refs): Likewise. 29903 * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars 29904 even at -O0. 29905 299062012-03-24 Eric Botcazou <ebotcazou@adacore.com> 29907 29908 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode 29909 and str_bitsize instead of more convoluted expressions. 29910 299112012-03-24 Eric Botcazou <ebotcazou@adacore.com> 29912 29913 PR target/52610 29914 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon. 29915 299162012-03-24 Eric Botcazou <ebotcazou@adacore.com> 29917 29918 PR target/52656 29919 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto. 29920 299212012-03-23 Martin Jambor <mjambor@suse.cz> 29922 29923 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment. 29924 299252012-03-23 Richard Guenther <rguenther@suse.de> 29926 29927 PR tree-optimization/52678 29928 * tree-vectorizer.h (struct _stmt_vec_info): Add 29929 loop_phi_evolution_part member. 29930 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define. 29931 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize 29932 STMT_VINFO_LOOP_PHI_EVOLUTION_PART. 29933 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): 29934 Use the cached evolution part and the PHI nodes value from 29935 the loop preheader edge instead of re-analyzing the evolution. 29936 299372012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com> 29938 29939 * config/mips/mips-tables.opt: Update. 29940 * config/mips/mips.md (processor): Add xlp. 29941 * config/mips/mips-cpus.def: Add xlp. 29942 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from 29943 5KF for now. 29944 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp. 29945 * doc/invoke.texi: Mention XLP. 29946 299472012-03-22 Jakub Jelinek <jakub@redhat.com> 29948 29949 PR middle-end/52547 29950 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars 29951 on any new_local_var_chain vars declared during recursing on 29952 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body. 29953 299542012-03-22 Uros Bizjak <ubizjak@gmail.com> 29955 29956 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h 29957 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h 29958 (ASM_OUTPUT_LOCAL): Ditto. 29959 (ASM_OUTPUT_COMMON): Remove. 29960 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF. 29961 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define. 29962 299632012-03-22 Jan Hubicka <jh@suse.cz> 29964 29965 PR middle-end/51737 29966 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE 29967 parameter. 29968 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype. 29969 * ipa-inline-transform.c (save_inline_function_body): Remove 29970 copied clone if needed. 29971 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update. 29972 299732012-03-22 Richard Guenther <rguenther@suse.de> 29974 29975 PR middle-end/52666 29976 * fold-const.c (fold_ternary_loc): Fix typo. 29977 299782012-03-22 Georg-Johann Lay <avr@gjlay.de> 29979 29980 PR target/52496 29981 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER. 29982 (unspecv): Add UNSPECV_MEMORY_BARRIER. 29983 (cli_sei): Use unspec_volatile instead of unspec for memory barrier. 29984 (delay_cycles_1, delay_cycles_2): Ditto. 29985 (delay_cycles_3, delay_cycles_4): Ditto. 29986 (nopv, *nopv): Ditto. 29987 (sleep, *sleep): Ditto. 29988 (wdr, *wdr): Ditto. 29989 299902012-03-22 Richard Guenther <rguenther@suse.de> 29991 29992 PR tree-optimization/52548 29993 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation 29994 because of clobbers. 29995 (prune_clobbered_mems): New function. 29996 (compute_antic_aux): Use it to prune ANTIC_OUT. 29997 (compute_partial_antic_aux): Use it to prune PA_IN. 29998 (compute_avail): Only insert expressions into EXP_GEN that are not 29999 invalidated when translated up to the beginning of the block. 30000 300012012-03-22 Richard Guenther <rguenther@suse.de> 30002 30003 PR tree-optimization/52638 30004 * tree-vect-stmts.c (vect_init_vector_1): New function, split 30005 out from ... 30006 (vect_init_vector): ... here. Handle scalar vector inits. 30007 (vect_get_vec_def_for_operand): Adjust. 30008 (vectorizable_load): Likewise. 30009 300102012-03-22 Uros Bizjak <ubizjak@gmail.com> 30011 30012 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file. 30013 (alpha*-*-freebsd*): Ditto. 30014 (alpha*-*-netbsd*): Ditto. 30015 (alpha*-*-openbsd*): Ditto. 30016 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove. 30017 (DWARF2_DEBUGGING_INFO): Remove. 30018 (PREFERRED_DEBUGGING_TYPE): Remove. 30019 (ASM_FINAL_SPEC): Remove. 30020 (IDENT_ASM_OP): Remove. 30021 (ASM_OUTPUT_IDENT): Remove. 30022 (SKIP_ASM_OP): Remove. 30023 (ASM_OUTPUT_SKIP): Remove. 30024 (ALIGN_ASM_OP): Remove. 30025 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove. 30026 (ASM_OUTPUT_CASE_LABEL): Remove. 30027 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove. 30028 (COMMON_ASM_OP): Remove. 30029 (ASM_OUTPUT_ALIGNED_COMMON): Remove. 30030 (ASCII_DATA_ASM_OP): Remove. 30031 (READONLY_DATA_SECTION_ASM_OP): Remove. 30032 (INIT_SECTION_ASM_OP): Remove. 30033 (FINI_SECTION_ASM_OP): Remove. 30034 (ASM_SECTION_START_OP): Remove. 30035 (ASM_OUTPUT_SECTION_START_FILE): Remove. 30036 (TARGET_ASM_NAMED_SECTION): Remove. 30037 (TARGET_ASM_SELECT_SECTION): Remove. 30038 (MAKE_DECL_ONE_ONLY): Remove. 30039 (TYPE_ASM_OP): Remove. 30040 (SIZE_ASM_OP): Remove. 30041 (ASM_WEAKEN_LABEL): Remove. 30042 (TYPE_OPERAND_FMT): Remove. 30043 (ASM_DECLARE_RESULT): Remove. 30044 (ASM_DECLARE_OBJECT_NAME): Remove. 30045 (ASM_FINISH_DECLARE_OBJECT): Remove. 30046 (ELF_ASCII_ESCAPES): Remove. 30047 (ELF_STRING_LIMIT): Remove. 30048 (STRING_ASM_OP): Remove. 30049 (ASM_OUTPUT_EXTERNAL): Remove. 30050 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false. 30051 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine 30052 before define. 30053 (ASM_DECLARE_FUNCTION_NAME): Ditto. 30054 (ASM_DECLARE_FUNCTION_SIZE): Ditto. 30055 (ASM_GENERATE_INTERNAL_LABEL): Ditto. 30056 (ASM_OUTPUT_SKIP): Ditto. 30057 (READONLY_DATA_SECTION_ASM_OP): Remove. 30058 (USER_LABEL_PREFIX): Remove. 30059 (ASM_OUTPUT_ASCII): Remove. 30060 (ASM_OUTPUT_CASE_LABEL): Remove. 30061 (NO_DOLLAR_IN_LABEL): Undefine. 30062 300632012-03-22 Richard Guenther <rguenther@suse.de> 30064 30065 PR tree-optimization/52459 30066 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit 30067 PHI insertion for calls. 30068 300692012-03-21 Steven Bosscher <steven@gcc.gnu.org> 30070 30071 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg, 30072 find_sets_in_insn, canonicalize_insn): Split out from ... 30073 (cse_insn): ... here. 30074 (invalidate_from_clobbers): Take an insn instead of the pattern. 30075 300762012-03-21 Oleg Endo <olegendo@gcc.gnu.org> 30077 30078 PR target/52479 30079 * config/sh/sh-protos.h (sh_fsca_df2int): Remove. 30080 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove. 30081 * config/sh/sh.md (sindf2, cosdf2): Remove. 30082 300832012-03-21 Kaz Kojima <kkojima@gcc.gnu.org> 30084 30085 PR target/52642 30086 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of 30087 prologue for unwinder and profiler. 30088 300892012-03-21 Andreas Tobler <andreast@fgznet.ch> 30090 30091 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*. 30092 Introduce emul_name to select the right linker emulation for 30093 powerpc64-*-freebsd*. 30094 * configure: Regenerate. 30095 * config.gcc: Add bits to support powerpc64-*-freebsd*. 30096 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define. 30097 * config/rs6000/freebsd64.h: New file. 30098 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use 30099 POWERPC_FREEBSD. 30100 (rs6000_savres_strategy): Likewise. 30101 (rs6000_savres_routine_name): Likewise. 30102 (rs6000_elf_file_end): Likewise. 30103 * config/rs6000/t-freebsd64: New file. 30104 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the 30105 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX. 30106 30107 * config/rs6000/freebsd64.h: Remove duplicated entries from last 30108 commit. 30109 * config/rs6000/t-freebsd64: Likewise. 30110 301112012-03-21 Georg-Johann Lay <avr@gjlay.de> 30112 30113 PR rtl-optimization/52543 30114 PR target/52461 30115 * config/avr/avr-protos.h (avr_load_lpm): New prototype. 30116 * config/avr/avr.c (avr_mode_dependent_address_p): New function. 30117 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define. 30118 (avr_load_libgcc_p): Restrict to __flash loads. 30119 (avr_out_lpm): Only handle 1-byte loads from __flash. 30120 (avr_load_lpm): New function. 30121 (avr_find_unused_d_reg): Remove. 30122 (avr_out_lpm_no_lpmx): Remove. 30123 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM. 30124 * config/avr/avr.md (unspec): Add UNSPEC_LPM. 30125 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM. 30126 (load_<mode>, load_<mode>_clobber): New insns. 30127 (mov<mode>): For multi-byte move from non-generic 30128 16-bit address spaces: Expand to load_<mode> resp. 30129 load_<mode>_clobber. 30130 (load<mode>_libgcc): Remove expander. 30131 (split-lpmx): Remove split. 30132 301332012-03-21 Richard Earnshaw <rearnsha@arm.com> 30134 30135 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart. 30136 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg. 30137 All callers changed. 30138 (Fixed_core_reg): New feature. 30139 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in 30140 disassembly. 30141 * neon-testgen.ml: Handle Fixed_core_reg. 30142 301432012-03-21 Andrew Stubbs <ams@codesourcery.com> 30144 30145 * config/arm/arm.c (thumb2_reorg): Add complete support 30146 for 16-bit instructions. 30147 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes. 30148 301492012-03-21 Richard Guenther <rguenther@suse.de> 30150 30151 PR tree-optimizer/52636 30152 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants 30153 to the appropriate type. 30154 301552012-03-21 Richard Guenther <rguenther@suse.de> 30156 30157 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H) 30158 dependencies. 30159 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function, 30160 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl. 30161 * passes.c (init_optimization_passes): Remove pass_init_function, 30162 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl. 30163 * tree-pass.h (pass_init_function): Remove. 30164 (pass_jump): Remove. 30165 (pass_initial_value_sets): Remove. 30166 (pass_unshare_all_rtl): Remove. 30167 * integrate.c (pass_initial_value_sets): Remove. 30168 * emit-rtl.c (pass_unshare_all_rtl): Remove. 30169 * tree.h (init_function_for_compilation): Remove. 30170 * function.c (init_function_for_compilation): Remove. 30171 (pass_init_function): Remove. 30172 * cfgcleanup.c (rest_of_handle_jump): Remove. 30173 (pass_jump): Remove. 30174 301752012-03-20 Jason Merrill <jason@redhat.com> 30176 30177 * tree-streamer-in.c (streamer_alloc_tree): Call 30178 ggc_alloc_zone_cleared_tree_node instead of 30179 ggc_alloc_zone_cleared_tree_node_stat. 30180 301812012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com> 30182 30183 * doc/extend.texi (Template Instantiation): Remove anachronisms. 30184 301852012-03-20 Jakub Jelinek <jakub@redhat.com> 30186 30187 PR target/52607 30188 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function. 30189 (ix86_expand_vec_perm_const_1): Call it. 30190 30191 * config/i386/i386.c (vselect_insn): New variable. 30192 (init_vselect_insn): New function. 30193 (expand_vselect, expand_vselect_insn): Add testing_p argument. 30194 Call init_vselect_insn if vselect_insn is NULL. Adjust 30195 PATTERN (vselect_insn), instead of creating a new insn each time, 30196 only emit a copy of it if not testing and recog has been successful. 30197 (expand_vec_perm_pshufb, expand_vec_perm_1, 30198 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust 30199 callers. 30200 30201 PR target/52607 30202 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2. 30203 ("enabled" attribute): Handle avx2 and noavx2 isas. 30204 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1): 30205 New insns. 30206 (vec_dup<mode>): Add avx2 =x,x alternative. 30207 (vec_dup<mode> splitter): Don't split if TARGET_AVX2. 30208 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2. 30209 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss. 30210 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps 30211 for V8SFmode. 30212 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1 30213 if possible, handle also V8SFmode. 30214 302152012-03-20 Richard Earnshaw <rearnsha@arm.com> 30216 30217 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates. 30218 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use 30219 reg_or_zero_operand predicate. 30220 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate. 30221 302222012-03-20 Jakub Jelinek <jakub@redhat.com> 30223 30224 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>: 30225 If operand isn't UNSPEC, return 0. 30226 302272012-03-20 Richard Guenther <rguenther@suse.de> 30228 30229 * tree-pass.h (pass_rtl_eh): Remove. 30230 * except.c (gate_handle_eh): Likewise. 30231 (rest_of_handle_eh): Likewise. 30232 (pass_rtl_eh): Likewise. 30233 (finish_eh_generation): Export. 30234 * except.h (finish_eh_generation): Declare. 30235 * passes.c (init_optimization_passes): Remove pass_rtl_eh. 30236 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation 30237 after expanding stack alignment. Instead of compacting blocks 30238 call cleanup_cfg. 30239 302402012-03-20 Richard Guenther <rguenther@suse.de> 30241 30242 * stor-layout.c (finish_bitfield_representative): Fallback 30243 to conservative maximum size if the padding up to the next 30244 field cannot be computed as a constant. 30245 (finish_bitfield_layout): If we cannot compute the distance 30246 between the start of the bitfield representative and the 30247 bitfield member start a new representative. 30248 * expr.c (get_bit_range): The distance between the start of 30249 the bitfield representative and the bitfield member is zero 30250 if the field offsets are not constants. 30251 302522012-03-20 Tristan Gingold <gingold@adacore.com> 30253 30254 * tree.h (enum size_type_kind): Add stk_ prefix to constants, 30255 convert in lowercase. 30256 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype) 30257 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust. 30258 * stor-layout.c (sizetype_tab): Adjust. 30259 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE. 30260 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last 30261 instead of type_kind_last. 30262 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int 30263 instead of size_int_kind. 30264 * doc/tm.texi.in (Type Layout): Document SIZETYPE. 30265 * doc/tm.texi: Regenerate. 30266 * defaults.h (SIZETYPE): Provide a default value. 30267 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int". 30268 (SIZETYPE): Define. 30269 302702012-03-20 Oleg Endo <olegendo@gcc.gnu.org> 30271 30272 * config/sh/sh.md: Use braced string notation where applicable. 30273 302742012-03-19 Uros Bizjak <ubizjak@gmail.com> 30275 30276 * config/i386/i386.md (allocate_stack): Simplify. 30277 302782012-03-19 Uros Bizjak <ubizjak@gmail.com> 30279 30280 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of 30281 copy_to_mode_reg (Pmode, ...). 30282 (expand_builtin_frame_address): Ditto. 30283 * expr.c (emit_block_move_via_libcall): Ditto. 30284 (set_storage_via_libcall): Ditto. 30285 30286 * config/i386/i386.c (ix86_expand_movmem): Ditto. 30287 (ix86_expand_setmem): Ditto. 30288 (ix86_trampoline_init): DItto. 30289 * config/i386/i386.md (cmpstrnsi): Ditto. 30290 302912012-03-19 Sandra Loosemore <sandra@codesourcery.com> 30292 30293 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete. 30294 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL. 30295 * doc/invoke.texi (Option Summary): Remove -madjust-unroll. 30296 (SH Options): Likewise. 30297 302982012-03-19 Uros Bizjak <ubizjak@gmail.com> 30299 30300 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument. 30301 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode. 30302 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate 30303 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT. 30304 (ix86_decompose_address): Allow zero extended UNSPEC_TP references. 30305 30306 Revert: 30307 2012-03-13 Uros Bizjak <ubizjak@gmail.com> 30308 30309 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New. 30310 * config/i386/i386.c (ix86_decompose_address): Use 30311 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses. 30312 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load 30313 thread pointer to a register. 30314 30315 Revert: 30316 2012-03-10 H.J. Lu <hongjiu.lu@intel.com> 30317 30318 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg) 30319 if Pmode != word_mode. 30320 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if 30321 Pmode == SImode for TARGET_X32. 30322 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New. 30323 (tls_initial_exec_x32): Likewise. 30324 303252012-03-19 Oleg Endo <olegendo@gcc.gnu.org> 30326 30327 PR target/50751 30328 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P, 30329 DISP_ADDR_OFFSET): New macros. 30330 * config/sh/sh.c (sh_address_cost): Add SH2A special case. 30331 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A. 30332 (sh_legitimize_address): Add QImode displacement handling. 30333 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode 30334 vector subregs. 30335 (sh_secondary_reload): Add QImode displacement handling. 30336 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate. 30337 * config/sh/constraints.md (K04, Snd, Sdd): New constraints. 30338 * config/sh/sh.md (extendqisi2): Remove constraints from expander. 30339 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict 30340 to register operands only. 30341 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns. 30342 (extendqihi2): Change insn to expander. 30343 (*extendqihi2_compact_reg): New insn. 30344 (movqi_i, movqi): Replace with ... 30345 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12, 30346 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these. 30347 Add new peepholes for QImode displacement addressing. 30348 303492012-03-19 Paolo Carlini <paolo.carlini@oracle.com> 30350 30351 PR c++/14710 30352 * doc/invoke.texi: Document -Wuseless-cast. 30353 303542012-03-19 Eric Botcazou <ebotcazou@adacore.com> 30355 30356 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move. 30357 * tree.h (handled_component_p): Reorder cases. 30358 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do 30359 not initialize unsignedp. 30360 (loc_list_from_tree): Likewise. 30361 (fortran_common): Likewise. 30362 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. 30363 303642012-03-19 Uros Bizjak <ubizjak@gmail.com> 30365 30366 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode 30367 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode. 30368 (ix86_expand_split_stack_prologue): Use ix86_gen_add3. 30369 (ix86_split_long_move): Ditto. 30370 (legitimize_tls_address): Use ix86_gen_sub3. 30371 (construct_plt_address): Assert that Pmode == DImode. 30372 303732012-03-18 Uros Bizjak <ubizjak@gmail.com> 30374 30375 * config/i386/i386.md: Remove empty predicates and/or constraints. 30376 * config/i386/sync.md: Ditto. 30377 * config/i386/sse.md: Ditto. 30378 * config/i386/mmx.md: Ditto. 30379 * config/i386/pentium.md: Ditto. 30380 * config/i386/athlon.md: Ditto. 30381 303822012-03-16 Richard Guenther <rguenther@suse.de> 30383 30384 PR tree-optimization/52603 30385 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify 30386 comment. 30387 30388 Revert 30389 2012-03-14 Richard Guenther <rguenther@suse.de> 30390 30391 PR tree-optimization/52571 30392 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move 30393 flag_section_anchors check ... 30394 (vect_can_force_dr_alignment_p): ... here. 30395 303962012-03-16 Martin Jambor <mjambor@suse.cz> 30397 30398 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from 30399 memory through MEM_REFs by calling extract_bit_field. 30400 304012012-03-16 Richard Guenther <rguenther@suse.de> 30402 30403 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE 30404 and REFERENCE_TYPE interpretations. 30405 (can_native_interpret_type_p): New function. 30406 (fold_ternary_loc): Use native encode/interpret to fold 30407 BIT_FIELD_REFs of constants. 30408 304092012-03-16 Richard Guenther <rguenther@suse.de> 30410 30411 PR middle-end/52584 30412 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs 30413 of vector constants and constructors. 30414 304152012-03-16 Richard Guenther <rguenther@suse.de> 30416 30417 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use 30418 VIEW_CONVERT_EXPR to convert constants. 30419 (vect_is_simple_use): Treat all constants as vec_constant_def. 30420 304212012-03-16 Richard Guenther <rguenther@suse.de> 30422 Kai Tietz <ktietz@redhat.com> 30423 30424 PR middle-end/48814 30425 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix 30426 side-effects completely in the pre-queue and use a temporary 30427 for the result. 30428 304292012-03-16 Richard Guenther <rguenther@suse.de> 30430 30431 * stor-layout.c (finish_bitfield_representative): Fall back 30432 to the conservative maximum size if we cannot compute the 30433 size of the tail padding. 30434 304352012-03-16 Tristan Gingold <gingold@adacore.com> 30436 30437 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define 30438 __CRTL_VER and __VMS_VER. 30439 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver 30440 and vms_c_get_vms_ver. 30441 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New 30442 functions. 30443 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER) 30444 (VMS_DEFAULT_VMS_VER): Define. 30445 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER) 30446 (VMS_DEFAULT_VMS_VER): Define. 30447 304482012-03-16 Richard Guenther <rguenther@suse.de> 30449 30450 * tree-vect-loop.c (get_initial_def_for_induction): Use 30451 build_constructor directly. 30452 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use 30453 build_vector_from_val. 30454 * tree.c (build_vector_from_val): Avoid creating a constructor 30455 first when we want a constant vector. 30456 304572012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30458 30459 * doc/install.texi (Specific, *-*-solaris2*): Improve wording. 30460 304612012-03-16 Richard Guenther <rguenther@suse.de> 30462 30463 * tree.h (TREE_VECTOR_CST_ELTS): Remove. 30464 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines. 30465 (struct tree_vector): Remove elements member, add variable size 30466 elts array member. 30467 (build_vector_stat): Declare. 30468 (build_vector): Define in terms of build_vector_stat. 30469 * tree.c (build_vector): Rename to ... 30470 (build_vector_stat): ... this. Take array of trees as parameter. 30471 (build_vector_from_ctor): Adjust. 30472 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr, 30473 initializer_zerop): Adjust. 30474 * cfgexpand.c (expand_debug_expr): Likewise. 30475 * expr.c (categorize_ctor_elements_1, expand_expr_real_1, 30476 const_vector_from_tree): Likewise. 30477 * fold-const.c (const_binop, operand_equal_p, native_encode_vector, 30478 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array, 30479 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise. 30480 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR. 30481 (lto_input_ts_vector_tree_pointers): Adjust. 30482 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR. 30483 (write_ts_vector_tree_pointers): Adjust. 30484 * varasm.c (const_hash_1, compare_constant, copy_constant, 30485 output_constant): Adjust. 30486 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust. 30487 * print-tree.c (print_node): Adjust. 30488 * tree-pretty-print.c (dump_generic_node): Adjust. 30489 * tree-vect-generic.c (uniform_vector_p, vector_element, 30490 lower_vec_perm): Adjust. 30491 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust. 30492 * tree-vect-slp.c (vect_get_constant_vectors, 30493 vect_transform_slp_perm_load): Adjust. 30494 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust. 30495 * expmed.c (make_tree): Adjust. 30496 * config/i386/i386.c (ix86_expand_builtin): Adjust. 30497 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface 30498 and implementation. 30499 (sparc_fold_builtin): Adjust. 30500 305012012-03-16 Tristan Gingold <gingold@adacore.com> 30502 30503 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file. 30504 * config/vms/vms-stdint.h: New file. 30505 305062012-03-16 Tristan Gingold <gingold@adacore.com> 30507 30508 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*) 30509 (ia64-hp-*vms*): Replaced by ... 30510 (*-*-*vms*): ... This new entry. 30511 305122012-03-15 Jakub Jelinek <jakub@redhat.com> 30513 30514 PR target/52568 30515 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function. 30516 (ix86_expand_vec_perm_const_1): Use it. 30517 30518 PR target/52568 30519 * config/i386/sse.md (UNSPEC_VPERMDF): Remove. 30520 (avx2_permv4df): Remove. 30521 (avx2_permv4di): Macroize into... 30522 (avx2_perm<mode>): ... this using VI8F_256 iterator. 30523 (avx2_permv4di_1): Macroize into... 30524 (avx2_perm<mode>_1): ... this using VI8F_256 iterator. 30525 305262012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org> 30527 30528 * combine.c (apply_distributive_law): Do not distribute SUBREG. 30529 305302012-03-15 Ira Rosen <irar@il.ibm.com> 30531 Ulrich Weigand <ulrich.weigand@linaro.org> 30532 30533 * tree-vect-patterns.c (widened_name_p): Rename to ... 30534 (type_conversion_p): ... this. Add new argument to determine 30535 if it's a promotion or demotion operation. Check for 30536 CONVERT_EXPR_CODE_P instead of NOP_EXPR. 30537 (vect_recog_dot_prod_pattern): Call type_conversion_p instead 30538 widened_name_p. 30539 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern, 30540 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern): 30541 Likewise. 30542 (vect_recog_mixed_size_cond_pattern): Likewise and allow 30543 non-constant then and else clauses. 30544 305452012-03-15 Ira Rosen <irar@il.ibm.com> 30546 Ulrich Weigand <ulrich.weigand@linaro.org> 30547 30548 * tree-vectorizer.h (vect_pattern_recog): Add new argument. 30549 * tree-vect-loop.c (vect_analyze_loop_2): Update call to 30550 vect_pattern_recog. 30551 * tree-vect-patterns.c (widened_name_p): Pass basic block 30552 info to vect_is_simple_use. 30553 (vect_recog_dot_prod_pattern): Fail for basic blocks. 30554 (vect_recog_widen_sum_pattern): Likewise. 30555 (vect_handle_widen_op_by_const): Support basic blocks. 30556 (vect_operation_fits_smaller_type, 30557 vect_recog_over_widening_pattern): Likewise. 30558 (vect_recog_vector_vector_shift_pattern): Support basic blocks. 30559 Update call to vect_is_simple_use. 30560 (vect_recog_mixed_size_cond_pattern): Support basic blocks. 30561 Add printing. 30562 (check_bool_pattern): Add an argument, update call to 30563 vect_is_simple_use and the recursive calls. 30564 (vect_recog_bool_pattern): Update relevant function calls. 30565 Add printing. 30566 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info. 30567 (vect_pattern_recog_1): Check for reduction only in loops. 30568 (vect_pattern_recog): Add new argument. Support basic blocks. 30569 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block 30570 info to vect_is_simple_use_1. 30571 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks. 30572 (vect_slp_analyze_bb_1): Call vect_pattern_recog. 30573 305742012-03-15 Jakub Jelinek <jakub@redhat.com> 30575 Andrew Pinski <apinski@cavium.com> 30576 30577 PR middle-end/52592 30578 * builtins.c (expand_builtin_int_roundingfn_2): If expanding 30579 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}* 30580 calls instead of __builtin_ir{int,ound}*. 30581 305822012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 30583 30584 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update 30585 documentation. 30586 305872012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 30588 30589 * config.gcc (target_type_format_char): New. Document it. Set it for 30590 arm*-*-* . 30591 * configure.ac (gnu_unique_option): Use target_type_format_char 30592 in test. Comment rationale. 30593 * configure: Regenerate . 30594 305952012-03-15 Jakub Jelinek <jakub@redhat.com> 30596 30597 PR tree-optimization/52267 30598 * tree-vrp.c (masked_increment): New function. 30599 (register_edge_assert_for_2): Derive ASSERT_EXPRs 30600 from (X & CST1) cmp CST2 tests. 30601 306022012-03-15 Richard Guenther <rguenther@suse.de> 30603 30604 PR middle-end/52580 30605 * tree-data-ref.c (subscript_dependence_tester_1): Check 30606 all dimensions for non-conflicting access functions. 30607 306082012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org> 30609 30610 PR c++/44783 30611 * doc/invoke.texi [C++ Language Options]: Document 30612 -ftemplate-backtrace-limit. 30613 306142012-03-15 Tristan Gingold <gingold@adacore.com> 30615 30616 * c-parser.c (c_parser_parameter_declaration): Handle #pragma 30617 before a parameter. 30618 306192012-03-15 Tristan Gingold <gingold@adacore.com> 30620 30621 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to 30622 use DW_OP_call_frame_cfa. 30623 306242012-03-14 H.J. Lu <hongjiu.lu@intel.com> 30625 30626 PR target/50797 30627 * config/i386/i386-opts.h (pmode): New. 30628 * config/i386/i386.c (ix86_option_override_internal): Properly 30629 check and set ix86_pmode. 30630 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT. 30631 * config/i386/i386.opt (maddress-mode=): New. 30632 * doc/invoke.texi: Document -maddress-mode=short|long for x86. 30633 306342012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30635 30636 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling. 30637 (dwarf2out_do_cfi_asm): Likewise. 30638 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO 30639 handling. 30640 (add_data_member_location_attribute): Likewise. 30641 (gen_array_type_die): Likewise. 30642 (gen_subprogram_die): Likewise. 30643 (gen_producer_string): Likewise. 30644 * sdbout.c (sdbout_begin_prologue): Declare unconditionally. 30645 Remove MIPS_DEBUGGING_INFO handling. 30646 (sdb_debug_hooks): Likewise. 30647 (sdbout_begin_block): Likewise. 30648 (sdbout_end_block): Likewise. 30649 (sdbout_begin_prologue): Likewise. 30650 (sdbout_start_source_file): Likewise. 30651 (sdbout_end_source_file): Likewise. 30652 (sdbout_init): Likewise. 30653 * system.h (MIPS_DEBUGGING_INFO): Poison. 30654 306552012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30656 30657 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove. 30658 (alpha_file_start) [MS_STAMP]: Remove. 30659 30660 * config/alpha/elf.h (TARGET_GAS): Remove. 30661 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove. 30662 * config/alpha/linux.h (TARGET_DEFAULT): Remove. 30663 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove. 30664 * config/alpha/vms.h (TARGET_DEFAULT): Remove. 30665 * config.gcc (alpha*-*-linux*): Remove target_cpu_default. 30666 (alpha*-*-freebsd*): Likewise. 30667 (alpha*-*-netbsd*): Likewise. 30668 (alpha*-*-openbsd*): Likewise. 30669 (alpha*-*-*): Remove target_cpu_default2. 30670 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS 30671 handling. 30672 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove. 30673 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove. 30674 * config/alpha/alpha.c (print_operand): Always assume 30675 TARGET_AS_SLASH_BEFORE_SUFFIX. 30676 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"): 30677 Remove TARGET_AS_CAN_SUBTRACT_LABELS. 30678 ("*builtin_setjmp_receiver_er_1"): Remove. 30679 * config/alpha/alpha.opt (malpha-as): Remove. 30680 (mgas): Ignore. 30681 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove 30682 -malpha-as, -mgas. 30683 Remove DEC Unix reference. 30684 30685 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove. 30686 (EXTENDED_COFF): Remove. 30687 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef. 30688 (EXTENDED_COFF): Don't undef. 30689 * config/alpha/alpha.c (alpha_file_start): Always assume 30690 OBJECT_FORMAT_ELF. 30691 Don't set targetm.asm_file_start_file_directive. 30692 [!OBJECT_FORMAT_ELF]: Remove. 30693 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove. 30694 30695 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove. 30696 (DBX_DEBUGGING_INFO): Remove. 30697 (MIPS_DEBUGGING_INFO): Remove. 30698 (PREFERRED_DEBUGGING_TYPE): Remove. 30699 (DBX_OUTPUT_SOURCE_LINE): Remove. 30700 (SDB_OUTPUT_SOURCE_LINE): Remove. 30701 (DBX_CONTIN_LENGTH): Remove. 30702 (NO_DBX_FUNCTION_END): Remove. 30703 (ASM_STABS_OP): Remove. 30704 (ASM_STABN_OP): Remove. 30705 (ASM_STABD_OP): Remove. 30706 (SDB_ALLOW_FORWARD_REFERENCES): Remove. 30707 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove. 30708 (PUT_SDB_DEF): Remove. 30709 (PUT_SDB_PLAIN_DEF): Remove. 30710 (PUT_SDB_TYPE): Remove. 30711 (sdb_label_count): Remove. 30712 (PUT_SDB_BLOCK_START): Remove. 30713 (PUT_SDB_BLOCK_END): Remove. 30714 (PUT_SDB_FUNCTION_START): Remove. 30715 (PUT_SDB_FUNCTION_END): Remove. 30716 (PUT_SDB_EPILOGUE_END): Remove. 30717 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef. 30718 (MIPS_DEBUGGING_INFO): Don't undef. 30719 (DBX_DEBUGGING_INFO): Don't undef. 30720 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef. 30721 (MIPS_DEBUGGING_INFO): Don't undef. 30722 (DBX_DEBUGGING_INFO): Don't undef. 30723 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove. 30724 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG 30725 handling. 30726 (alpha_start_function): Likewise. 30727 (sdb_label_count): Remove. 30728 (alpha_output_filename): Remove DBX_DEBUG handling. 30729 (alpha_file_start): Likewise. 30730 307312012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30732 30733 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*. 30734 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported. 30735 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove 30736 Solaris 8 support. 30737 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*. 30738 (ld_tls_support): Remove Solaris 8 references. 30739 (lwp_dir, lwp_spec): Remove support for alternate thread library. 30740 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests. 30741 * configure: Regenerate. 30742 * config.in: Regenerate. 30743 30744 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC. 30745 * config/i386/sol2.h: Remove Solaris 8 references. 30746 30747 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ... 30748 (i?86-*-solaris2.9): ... this. 30749 Remove Solaris 8 references. 30750 (Specific, *-*-solaris2*): Document Solaris 8 removal. 30751 Remove Solaris 8 references. 30752 307532012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30754 30755 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5. 30756 (mips-sgi-irix6.5*): Remove. 30757 * config.host (mips-sgi-irix*): Remove. 30758 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*. 30759 (set_have_as_tls): Remove *-*-irix6*. 30760 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*. 30761 * configure: Regenerate. 30762 30763 * config/mips/iris6.h: Remove. 30764 * config/mips/iris6.opt: Remove. 30765 * config/mips/t-irix6: Remove. 30766 30767 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling. 30768 (TARGET_IRIX6): Remove. 30769 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling. 30770 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C. 30771 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6 30772 handling. 30773 (mips_file_start): Likewise. 30774 * config/mips/mips-protos.h (irix_asm_output_align): Remove. 30775 30776 * config/mips/driver-native.c [__sgi__]: Remove. 30777 (host_detect_local_cpu) [__sgi__]: Remove. 30778 30779 * config/mips/gnu-user.h: Remove iris5.h reference. 30780 30781 * config/mips/mips-modes.def: Remove IRIX 6 reference. 30782 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove. 30783 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]: 30784 Remove. 30785 30786 * gcc.c (main): Move asm_debug initialization ... 30787 (asm_debug): ... here. 30788 30789 * ginclude/stddef.h (__STDDEF_H__): Don't define. 30790 30791 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove. 30792 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison. 30793 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove. 30794 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove. 30795 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove. 30796 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): 30797 Remove. 30798 * doc/tm.texi: Regenerate. 30799 30800 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove 30801 IRIX 6 reference. 30802 (MIPS Options, -march): Remove IRIX reference. 30803 * doc/install.texi (Binaries, SGI IRIX): Remove. 30804 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest 30805 of section. 30806 * doc/trouble.texi (Interoperation): Remove -lgl_s handling. 30807 308082012-03-14 Martin Jambor <mjambor@suse.cz> 30809 30810 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE 30811 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases. 30812 (expand_expr_real_1): Do not handle misalignment if modifier is 30813 EXPAND_WRITE. 30814 308152012-03-14 Richard Guenther <rguenther@suse.de> 30816 30817 PR middle-end/52584 30818 * tree-vect-generic.c (type_for_widest_vector_mode): Take 30819 element type instead of mode, use build_vector_type_for_mode 30820 instead of the langhook, build a vector of proper signedness. 30821 (expand_vector_operations_1): Adjust. 30822 308232012-03-14 Richard Guenther <rguenther@suse.de> 30824 30825 PR middle-end/52582 30826 * gimple-fold.c (canonicalize_constructor_val): Make sure we have 30827 a cgraph node for a FUNCTION_DECL that comes from a constructor. 30828 (gimple_get_virt_method_for_binfo): Likewise. 30829 308302012-03-14 Richard Guenther <rguenther@suse.de> 30831 30832 PR tree-optimization/52571 30833 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move 30834 flag_section_anchors check ... 30835 (vect_can_force_dr_alignment_p): ... here. Do not re-align 30836 DECL_COMMON variables. 30837 308382012-03-14 Richard Guenther <rguenther@suse.de> 30839 30840 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define. 30841 * stor-layout.c (start_bitfield_representative): New function. 30842 (finish_bitfield_representative): Likewise. 30843 (finish_bitfield_layout): Likewise. 30844 (finish_record_layout): Call finish_bitfield_layout. 30845 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER 30846 for QUAL_UNION_TYPE fields. 30847 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers): 30848 Stream DECL_BIT_FIELD_REPRESENTATIVE. 30849 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise. 30850 30851 PR middle-end/52080 30852 PR middle-end/52097 30853 PR middle-end/48124 30854 * expr.c (get_bit_range): Unconditionally extract bitrange 30855 from DECL_BIT_FIELD_REPRESENTATIVE. 30856 (expand_assignment): Adjust call to get_bit_range. 30857 308582012-03-14 Richard Guenther <rguenther@suse.de> 30859 30860 PR middle-end/52578 30861 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if 30862 the outermost conversion is a sign-change only. 30863 (fold_binary_loc): Disregard widening and sign-changing 30864 conversions when we determine if two variables are equal 30865 for reassociation. 30866 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to 30867 (T1)x if the outermost conversion is a sign-change only. 30868 308692012-03-14 Uros Bizjak <ubizjak@gmail.com> 30870 30871 Revert: 30872 2012-03-14 Uros Bizjak <ubizjak@gmail.com> 30873 30874 * config/i386/predicates.md (constant_call_address_operand): Declare 30875 as special predicate. Update all uses. 30876 308772012-03-13 Jakub Jelinek <jakub@redhat.com> 30878 30879 PR c/52577 30880 * c-parser.c (c_parser_postfix_expression) 30881 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values. 30882 30883 * config/i386/smmintrin.h: Avoid /* within a comment. 30884 * config/i386/nmmintrin.h: Likewise. 30885 308862012-03-13 Uros Bizjak <ubizjak@gmail.com> 30887 30888 * config/i386/i386.md (xbegin): Remove constraint from expander. 30889 308902012-03-13 Uros Bizjak <ubizjak@gmail.com> 30891 30892 * config/i386/predicates.md (constant_call_address_operand): Declare 30893 as special predicate. Update all uses. 30894 * config/i386/i386.md: Remove mode from constant_call_address_operand 30895 predicates. 30896 * config/i386/i386.c (ix86_output_call_insn): Call 30897 constant_call_address_operand with VOIDmode. 30898 308992012-03-13 Uros Bizjak <ubizjak@gmail.com> 30900 30901 * config/i386/i386.c (ix86_decompose_address): Handle subregs of 30902 AND zero extended address correctly. 30903 309042012-03-13 Uros Bizjak <ubizjak@gmail.com> 30905 30906 * config/i386/predicates.md (tls_symbolic_operand): Declare as 30907 special predicate. 30908 (tls_modbase_operand): Ditto. 30909 * config/i386/i386.md: Remove mode from tls_symbolic_operand and 30910 tls_modbase_operand predicates. 30911 309122012-03-13 Martin Jambor <mjambor@suse.cz> 30913 30914 * expr.c (expand_assignment): Handle misaligned scalar writes to 30915 memory through top-level MEM_REFs by calling store_bit_field. 30916 309172012-03-13 Richard Guenther <rguenther@suse.de> 30918 30919 PR middle-end/52134 30920 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y 30921 if Y is a constant multiple of 1 << CST. 30922 309232012-03-13 Georg-Johann Lay <avr@gjlay.de> 30924 30925 PR target/52488 30926 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack 30927 offset (size) to a value the insns can deal with. 30928 (expand_epilogue): Ditto. 30929 309302012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 30931 30932 * config/arm/neon.ml (ops): Fixup expected instructions for 30933 unsigned vector compares. 30934 309352012-03-13 Uros Bizjak <ubizjak@gmail.com> 30936 30937 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg) 30938 addresses only when %reg is not in word mode. 30939 309402012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30941 30942 * config/microblaze/microblaze.md: Fix typo. 30943 * tree-if-conv.c: Likewise. 30944 * tree-vect-patterns.c: Likewise. 30945 309462012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30947 30948 * config.gcc (extra_passes): Remove. 30949 * configure.ac (extra_passes): Don't substitute. 30950 * configure: Regenerate. 30951 * Makefile.in (EXTRA_PASSES): Remove. 30952 (GCC_PASSES): Remove $(EXTRA_PASSES). 30953 (MOSTLYCLEANFILES): Likewise. 30954 (native): Likewise. 30955 (install-common): Likewise. 30956 309572012-03-13 Uros Bizjak <ubizjak@gmail.com> 30958 30959 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New. 30960 * config/i386/i386.c (ix86_decompose_address): Use 30961 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses. 30962 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load 30963 thread pointer to a register. 30964 309652012-03-12 H.J. Lu <hongjiu.lu@intel.com> 30966 30967 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P 30968 on tls_symbolic_operand. 30969 (tls_global_dynamic_64_<mode>): Likewise. 30970 309712012-03-12 Georg-Johann Lay <avr@gjlay.de> 30972 30973 PR other/52545 30974 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use 30975 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE. 30976 309772012-03-12 Georg-Johann Lay <avr@gjlay.de> 30978 30979 PR target/52499 30980 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return 30981 type from reg_class_t to enum reg_class. 30982 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto. 30983 309842012-03-12 Andrew Pinski <apinski@cavium.com> 30985 30986 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function. 30987 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges. 30988 (value_replacement): Likewise. 30989 (empty_block_p): Check also if the PHIs for the block are empty. 30990 309912012-03-12 Georg-Johann Lay <avr@gjlay.de> 30992 30993 PR target/52148 30994 * config/avr/avr.c (avr_out_movmem): Fix typo in output template 30995 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in 30996 r184615 from 2012-02-28. 30997 309982012-03-12 H.J. Lu <hongjiu.lu@intel.com> 30999 31000 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New. 31001 (ix86_gen_tls_local_dynamic_base_64): Likewise. 31002 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64 31003 and ix86_gen_tls_local_dynamic_base_64. 31004 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and 31005 ix86_gen_tls_local_dynamic_base_64. 31006 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ... 31007 (*tls_global_dynamic_64_<mode>): This. 31008 (tls_global_dynamic_64): Renamed to ... 31009 (tls_global_dynamic_64_<mode>): This. 31010 (*tls_local_dynamic_base_64): Renamed to ... 31011 (*tls_local_dynamic_base_64_<mode>): This. 31012 (tls_local_dynamic_base_64): Renamed to ... 31013 (tls_local_dynamic_base_64_<mode>): This. 31014 310152012-03-12 H.J. Lu <hongjiu.lu@intel.com> 31016 31017 * config/i386/i386.c (ix86_option_override_internal): Properly 31018 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode, 31019 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3, 31020 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker, 31021 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range. 31022 * config/i386/sse.md (sse3_monitor64): Renamed to ... 31023 (sse3_monitor64_<mode>): This. 31024 310252012-03-12 Tristan Gingold <gingold@adacore.com> 31026 31027 * config/ia64/ia64.c (ia64_function_arg_1): Move code around. 31028 (ia64_function_arg_advance): Ditto. 31029 310302012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 31031 31032 * config.gcc (mips*-*-openbsd*): Remove. 31033 * config/mips/openbsd.h: Remove. 31034 * config/mips/sdb.h: Remove. 31035 31036 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove. 31037 * config/mips/mips.c (sdb_label_count): Remove. 31038 (mips_debugger_offset): Remove #if 0 code. 31039 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove. 31040 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef. 31041 310422012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 31043 31044 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update 31045 binutils reference. 31046 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference. 31047 Update binutils references. 31048 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11. 31049 Update binutils reference. 31050 Update Sun as/GNU ld caveat. 31051 Document binutils largefile requirement for LTO plugin. 31052 Remove reference to alternate libpthread. 31053 310542012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 31055 31056 * config.gcc (alpha*-dec-osf5.1*): Remove. 31057 * config.host (alpha*-dec-osf*): Remove. 31058 * configure.ac (*-*-osf*): Remove. 31059 (alpha*-dec-osf*): Remove. 31060 * configure: Regenerate. 31061 31062 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt, 31063 config/alpha/va_list.h, config/alpha/x-osf: Remove. 31064 31065 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove. 31066 * config/alpha/alpha.c (struct machine_function): Update comment. 31067 (alpha_start_function): Remove Tru64 UNIX as handling for 31068 max_frame_size. 31069 * config/alpha/alpha.md ("exception_receiver"): Remove 31070 TARGET_LD_BUGGY_LDGP. 31071 ("*exception_receiver_2"): Likewise. 31072 * except.c (finish_eh_generation): Remove Tru64 reference. 31073 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST. 31074 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison. 31075 * target.def (handle_pragma_extern_prefix): Remove. 31076 31077 * Makefile.in (mips-tfile.o-warn): Remove. 31078 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o. 31079 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove. 31080 * mips-tdump.c, mips-tfile.c: Remove. 31081 31082 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma 31083 extern_prefix. 31084 * doc/install.texi (Binaries): Remove Tru64 UNIX reference. 31085 (Specific, alpha*-dec-osf5.1): Note removal. 31086 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): 31087 Remove. 31088 * doc/tm.texi: Regenerate. 31089 * doc/trouble.texi (Cross-Compiler Problems): Remove. 31090 310912012-03-12 Richard Guenther <rguenther@suse.de> 31092 31093 * config/arm/arm.c (neon_dereference_pointer): Do not call 31094 covert during RTL expansion. 31095 310962012-03-12 Tristan Gingold <gingold@adacore.com> 31097 31098 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS 31099 Options. Mention -mpointer-size. 31100 311012012-03-12 Richard Guenther <rguenther@suse.de> 31102 31103 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use 31104 build_nonstandard_integer_type. 31105 311062012-03-12 Richard Guenther <rguenther@suse.de> 31107 31108 * tree.c (signed_or_unsigned_type_for): Use 31109 build_nonstandard_integer_type. 31110 (signed_type_for): Adjust documentation. 31111 (unsigned_type_for): Likewise. 31112 * tree-pretty-print.c (dump_generic_node): Use standard names 31113 for non-standard integer types if available. 31114 311152012-03-12 Tristan Gingold <gingold@adacore.com> 31116 31117 * config/vms/vms.opt: Add vms-opts.h header. 31118 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64 31119 target mask. 31120 (-mvms-return-codes): Document. 31121 (-mpointer-size): New option. 31122 (vms_pointer_size): Add enumeration. 31123 * config/vms/vms-opts.h: New file. 31124 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define 31125 __INITIAL_POINTER_SIZE. 31126 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition. 31127 (C_COMMON_OVERRIDE_OPTIONS): Define. 31128 (DWARF2_ADDR_SIZE): Define. 31129 * config/vms/vms.c (vms_patch_builtins): Adjust condition. 31130 * config/vms/vms-protos.h (vms_c_common_override_options): 31131 New prototype. 31132 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma 31133 if -mno-pointer-size. 31134 (vms_c_common_override_options): New function. 31135 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64. 31136 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64. 31137 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64 31138 and flag_vms_pointer_size. 31139 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size. 31140 * config.gcc (*-*-*vms*): Define xm_file. 31141 (alpha*-dec-*vms*): Do not define xm_file. 31142 (alpha64-dec-*vms*): Remove. 31143 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file 31144 and tmake_file. 31145 311462012-03-12 Jakub Jelinek <jakub@redhat.com> 31147 31148 PR tree-optimization/51721 31149 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar 31150 if (int) unsvar cmp CST. 31151 311522012-03-12 Richard Guenther <rguenther@suse.de> 31153 31154 * tree-sra.c (create_access_replacement): Only rename the replacement 31155 if we can rewrite it into SSA form. Properly mark register typed 31156 replacements that we cannot rewrite with TREE_ADDRESSABLE. 31157 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification 31158 for aggregate or BLKmode results. 31159 311602012-03-12 Jakub Jelinek <jakub@redhat.com> 31161 31162 PR tree-optimization/52533 31163 * tree-vrp.c (register_edge_assert_for_2): Use double_int 31164 type for mask, only handle shifts by non-zero in-range 31165 shift count, for LE_EXPR and GT_EXPR if new_val is 31166 maximum, don't add the assertion. 31167 311682012-02-12 Kirill Yukhin <kirill.yukhin@intel.com> 31169 31170 * doc/invoke.texi: Document -mrtm option. 31171 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New. 31172 (OPTION_MASK_ISA_RTM_UNSET): Ditto. 31173 (ix86_handle_option): Handle OPT_mrtm. 31174 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and 31175 xtestintrin.h. 31176 (x86_64-*-*): Ditto. 31177 * i386-builtin-types.def (INT_FTYPE_VOID): New. 31178 * config/i386/i386-c.c (ix86_target_macros_internal): Define 31179 __RTM__ if needed. 31180 (ix86_target_string): Define -mrtm option. 31181 (PTA_RTM): New. 31182 (ix86_option_override_internal): Extend "corei7-avx" with RTM option. 31183 Handle new option. 31184 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm. 31185 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND, 31186 IX86_BUILTIN_XTEST. 31187 (bdesc_special_args): Ditto. 31188 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT. 31189 (ix86_expand_special_args_builtin): Handle new built-in type. 31190 (ix86_expand_builtin): Handle XABORT instruction. 31191 * config/i386/i386.h (TARGET_RTM): New. 31192 * config/i386/i386.md (UNSPECV_XBEGIN): New. 31193 (UNSPECV_XEND): Ditto. 31194 (UNSPECV_XABORT): Ditto. 31195 (UNSPECV_XTEST): Ditto. 31196 (xbegin): Ditto. 31197 (xbegin_1): Ditto. 31198 (xend): Ditto. 31199 (xabort): Ditto 31200 (xtest): Ditto. 31201 (xtest_1): Ditto. 31202 * config/i386/i386.opt (mrtm): New. 31203 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h. 31204 * config/i386/rtmintrin.h: New header. 31205 * config/i386/xtestintrin.h: Ditto. 31206 312072012-03-12 Tristan Gingold <gingold@adacore.com> 31208 31209 * ginclude/stddef.h: Adjust previous patch. 31210 Use __VMS__ instead of VMS. 31211 312122012-03-12 Uros Bizjak <ubizjak@gmail.com> 31213 31214 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2): 31215 Also convert sequences with CC setting arithmetic instruction. 31216 312172012-03-11 Sandra Loosemore <sandra@codesourcery.com> 31218 31219 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp 31220 from C Language Options to Preprocessor Options. 31221 (C Dialect Options): Move -no-integrated-cpp documentation 31222 from here... 31223 (Preprocessor Options): ...to here. Rewrite the description 31224 so it makes more sense, and remove discussion of merging front ends. 31225 312262012-03-11 H.J. Lu <hongjiu.lu@intel.com> 31227 31228 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size 31229 needed for loop. 31230 (ix86_expand_setmem): Likewise. 31231 312322012-03-11 Uros Bizjak <ubizjak@gmail.com> 31233 31234 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using 31235 convert_to_mode. 31236 312372012-03-11 H.J. Lu <hongjiu.lu@intel.com> 31238 31239 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if 31240 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode. 31241 312422012-03-11 H.J. Lu <hongjiu.lu@intel.com> 31243 31244 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode. 31245 312462012-03-11 H.J. Lu <hongjiu.lu@intel.com> 31247 31248 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of 31249 TARGET_64BIT. 31250 312512012-03-11 H.J. Lu <hongjiu.lu@intel.com> 31252 Uros Bizjak <ubizjak@gmail.com> 31253 31254 * config/i386/predicates.md (call_insn_operand): Allow 31255 constant_call_address_operand in Pmode only. 31256 (sibcall_insn_operand): Ditto. 31257 * config/i386/i386.md (*call): Use W mode iterator instead of P mode. 31258 (*call_vzeroupper): Ditto. 31259 (*sibcall): Ditto. 31260 (*sibcall_vzeroupper): Ditto. 31261 (*call_value): Ditto. 31262 (*call_value_vzeroupper): Ditto. 31263 (*sibcall_value): Ditto. 31264 (*sibcall_value_vzeroupper): Ditto. 31265 (*indirect_jump): Ditto. 31266 (*tablejump_1): Ditto. 31267 (indirect_jump): Convert memory address to word mode for TARGET_X32. 31268 (tablejump): Ditto. 31269 * config/i386/i386.c (ix86_expand_call): Convert indirect operands 31270 to word mode. 31271 312722012-03-11 Oleg Endo <olegendo@gcc.gnu.org> 31273 31274 PR target/51244 31275 * config/sh/sh.md (movnegt): Expand into respective insns immediately. 31276 Use movrt_negc instead of negc pattern for non-SH2A. 31277 (*movnegt): Remove. 31278 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits. 31279 312802012-03-10 H.J. Lu <hongjiu.lu@intel.com> 31281 31282 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg) 31283 if Pmode != word_mode. 31284 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if 31285 Pmode == SImode for TARGET_X32. 31286 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New. 31287 (tls_initial_exec_x32): Likewise. 31288 312892012-03-10 Chung-Lin Tang <cltang@codesourcery.com> 31290 31291 PR rtl-optimization/52528 31292 * combine.c (can_combine_p): Add setting of subst_low_luid 31293 before call to expand_field_assignment(). 31294 312952012-03-09 Sandra Loosemore <sandra@codesourcery.com> 31296 31297 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld", 31298 and related program names. 31299 313002012-03-09 Sandra Loosemore <sandra@codesourcery.com> 31301 31302 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF". 31303 313042012-03-09 Uros Bizjak <ubizjak@gmail.com> 31305 31306 PR target/52530 31307 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier. 31308 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback 31309 to set code to 'q'. 31310 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec. 31311 (*movdi_internal_rex64): Use %E operand modifier for lea. 31312 (*movsi_internal): Ditto. 31313 (*lea_1): Ditto. 31314 (*lea<mode>_2): Ditto. 31315 (*lea_{3,4,5,6}_zext): Ditto. 31316 (*tls_global_dynamic_32_gnu): Ditto. 31317 (*tls_global_dynamic_64): Ditto. 31318 (*tls_dynamic_gnu2_lea_32): Ditto. 31319 (*tls_dynamic_gnu2_lea_64): Ditto. 31320 (pro_epilogue_adjust_stack_<mode>_add): Ditto. 31321 313222012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com> 31323 31324 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not 31325 redefine to be NULL if the current bit-size is different from the 31326 configured bit-size. 31327 31328 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the 31329 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to 31330 set the default tuning. Add asserts to make sure the cpu and tune 31331 indexes are defined. Fix tests for cpu/tune index to use >= 0 to 31332 test whether the index is set, instead of > 0. 31333 (rs6000_file_start): Do not reset the default cpu if the current 31334 bit-size is different from the configured bit-size. 31335 313362012-03-09 Tristan Gingold <gingold@adacore.com> 31337 31338 * config/vms/vms-crtlmap.map: Add comments. 31339 Add entries needed to build Ada RTS. 31340 313412012-03-09 Tristan Gingold <gingold@adacore.com> 31342 31343 * ginclude/stddef.h: Do not define __size_t on VMS. 31344 313452012-03-09 Tristan Gingold <gingold@adacore.com> 31346 31347 * c-tree.h (c_default_pointer_mode): New variable. 31348 * c-decl.c (c_default_pointer_mode): New variable. 31349 (c_build_pointer_type): New function. 31350 (grokdeclarator): Call c_build_pointer_type instead 31351 of build_pointer_type. 31352 31353 * config/vms/vms-c.c: Include c-tree.h 31354 (saved_pointer_mode): New variable. 31355 (handle_pragma_pointer_size): New function. 31356 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise. 31357 (vms_c_register_pragma): Register __pointer_size and 31358 __required_pointer_size pragmas. 31359 313602012-03-09 Tristan Gingold <gingold@adacore.com> 31361 31362 * config/vms/vms-c.c (vms_construct_include_filename): New function. 31363 (vms_c_register_includes): Reference it. 31364 313652012-03-09 Andrew Pinski <apinski@cavium.com> 31366 31367 PR middle-end/51988 31368 * tree-ssa-phiopt.c: Include tree-pretty-print.h for 31369 print_generic_expr. 31370 (tree_ssa_phiopt_worker): Go through all the PHIs for 31371 value_replacement instead of just the singleton one. 31372 (value_replacement): Change return type to int. Return 0 instead of 31373 false. 31374 Allow the middle basic block to contain more than just the defining 31375 statement. 31376 Handle non empty middle basic blocks. 31377 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h. 31378 313792012-03-09 Jiangning Liu <jiangning.liu@arm.com> 31380 31381 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for 31382 array reference and component reference. 31383 (analyze_scalar_evolution_for_address_of): New. 31384 313852012-03-08 Jie Zhang <jzhang918@gmail.com> 31386 31387 PR target/49862 31388 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings. 31389 (hwloop_pattern_reg): Fix set but not used warning. 31390 (bfin_reorg_loops): Remove unused parameter. 31391 (bfin_reorg): Update use of bfin_reorg_loops. 31392 313932012-03-08 H.J. Lu <hongjiu.lu@intel.com> 31394 31395 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode 31396 with integer parameters in registers. 31397 (gen_push): Push register in word_mode instead of Pmode. 31398 (ix86_emit_save_regs): Likewise. 31399 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode. 31400 (gen_pop): Pop register in word_mode instead of Pmode. 31401 (ix86_emit_restore_regs_using_pop): Likewise. 31402 (ix86_expand_prologue): Replace Pmode with word_mode for push 31403 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and 31404 restore RAX and R10 in word_mode. 31405 (ix86_emit_restore_regs_using_mov): Restore integer registers 31406 in word_mode. 31407 (ix86_expand_split_stack_prologue): Save R10_REG and restore in 31408 word_mode. 31409 (ix86_split_to_parts): Use word_mode with PUT_MODE for push. 31410 (ix86_split_long_move): Likewise. 31411 * config/i386/i386.md (W): New. 31412 (*push<mode>2_prologue): Replace :P with :W. 31413 (*pop<mode>1): Likewise. 31414 (*pop<mode>1_epilogue): Likewise. 31415 (push/pop peephole2): Use word_mode scratch registers. 31416 314172012-03-08 Uros Bizjak <ubizjak@gmail.com> 31418 31419 * config/i386/predicates.md (indirect_branch_operand): Simplify. 31420 314212012-03-08 Georg-Johann Lay <avr@gjlay.de> 31422 31423 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative 31424 for constants in [-63,63]. 31425 314262012-03-08 Uros Bizjak <ubizjak@gmail.com> 31427 31428 PR target/52530 31429 Revert: 31430 2012-03-04 H.J. Lu <hongjiu.lu@intel.com> 31431 31432 * config/i386/i386.c (ix86_print_operand_address): Only handle 31433 zero-extended DImode addresses. 31434 314352012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 31436 31437 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label. 31438 * configure: Regenerate. 31439 314402012-03-08 Georg-Johann Lay <avr@gjlay.de> 31441 31442 PR target/52496 31443 * config/avr/avr.c (avr_mem_clobber): New static function. 31444 (avr_expand_delay_cycles): Add memory clobber operand to 31445 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4. 31446 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER. 31447 (enable_interrupt, disable_interrupt): New expander. 31448 (nopv, sleep, wdr): New expanders. 31449 (delay_cycles_1): Add memory clobber. 31450 (delay_cycles_2): Add memory clobber. 31451 (delay_cycles_3): Add memory clobber. 31452 (delay_cycles_4): Add memory clobber. 31453 (cli_sei): New insn from former "enable_interrupt", 31454 "disable_interrupt" with memory clobber. 31455 (*wdt): New insn from former "wdt" with memory clobber. 31456 (*nopv): Similar, but for "nopv". 31457 (*sleep): Similar, but for "sleep". 31458 314592012-03-07 Oleg Endo <olegendo@gcc.gnu.org> 31460 Kaz Kojima <kkojima@gcc.gnu.org> 31461 31462 PR target/52503 31463 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask. 31464 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC. 31465 (SUBTARGET_OVERRIDE_OPTIONS): Define. 31466 314672012-03-07 Uros Bizjak <ubizjak@gmail.com> 31468 31469 * config/i386/predicates.md (x86_64_zext_general_operand): New. 31470 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1 31471 predicate to x86_64_zext_general_operand. Accept "Z" constraint. 31472 314732012-03-07 Walter Lee <walt@tilera.com> 31474 31475 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate 31476 REG_CFA_* notes for the stack pointer. 31477 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by 31478 EH_RETURN_STACKADJ_RTX. 31479 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't 31480 generate REG_CFA_* notes for the stack pointer. 31481 (tilepro_expand_epilogue): Restore stack pointer by adjusting it 31482 by EH_RETURN_STACKADJ_RTX. 31483 314842012-03-07 Georg-Johann Lay <avr@gjlay.de> 31485 31486 * doc/invoke.texi (AVR Built-in Macros): Correct condition for 31487 when __AVR_3_BYTE_PC__ is defined. 31488 314892012-03-07 Uros Bizjak <ubizjak@gmail.com> 31490 31491 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'. 31492 (ix86_print_operand): Handle '^'. 31493 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands 31494 using P mode iterator. Add %^ to asm template to conditionally emit 31495 addr32 prefix. 31496 (*rep_movdi_rex64): Ditto. 31497 (*strsetdi_rex_1): Ditto. 31498 (*rep_stosdi_rex64): Ditto. 31499 (*strmov{si,hi,qi}_1): Add %^ to asm template to 31500 conditionally emit addr32 prefix. 31501 (*rep_mov{si,qi}): Ditto. 31502 (*strset{si,hi,qi}): Ditto. 31503 (*rep_stos{si,qi}): Ditto. 31504 (*cmpstrnqi_nz_1): Ditto. 31505 (*cmpstrnqi_1): Ditto. 31506 (*strlenqi_1): Ditto. 31507 315082012-03-07 H.J. Lu <hongjiu.lu@intel.com> 31509 31510 * config/i386/i386.c (function_value_64): Return pointers in 31511 word_mode instead of Pmode. 31512 (ix86_promote_function_mode): Likewise. 31513 315142012-03-07 Richard Guenther <rguenther@suse.de> 31515 31516 * coverage.c (get_gcov_type): Use type_for_mode. 31517 (get_gcov_unsigned_t): Likewise. 31518 * expr.c (store_constructor): Use type_for_mode. 31519 (try_casesi): Likewise. 31520 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove. 31521 (add_standard_iv_candidates): Use standard type trees. 31522 * dojump.c (do_jump): Remove dead code. 31523 315242012-03-07 Richard Guenther <rguenther@suse.de> 31525 31526 * c-typeck.c (pointer_diff): Use c_common_type_for_size. 31527 315282012-03-07 Richard Guenther <rguenther@suse.de> 31529 31530 * convert.c (strip_float_extensions): Move ... 31531 * tree.c (strip_float_extensions): ... here. 31532 315332012-03-07 Georg-Johann Lay <avr@gjlay.de> 31534 31535 PR target/52484 31536 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint. 31537 315382012-03-07 Richard Guenther <rguenther@suse.de> 31539 31540 * omp-low.c (extract_omp_for_data): Use signed_type_for. 31541 (expand_omp_for_generic): Likewise. 31542 (expand_omp_for_static_nochunk): Likewise. 31543 (expand_omp_for_static_chunk): Likewise. 31544 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode. 31545 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. 31546 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): 31547 Use unsigned_type_for. 31548 (vect_create_cond_for_align_checks): Use signed_type_for. 31549 315502012-03-07 Andrey Belevantsev <abel@ispras.ru> 31551 31552 PR rtl-optimization/52203 31553 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust 31554 all callers to pass NULL except ... 31555 (reset_sched_cycles_in_current_ebb): ... here, save the value 31556 in new variable 'empty'. Increase issue_rate only for 31557 non-empty insns. 31558 315592012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org> 31560 31561 PR target/51417 31562 * Makefile.in: Let install-gcc-ar depend on installdirs, 31563 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext). 31564 Don't double canonicalize if cross-compiling. 31565 315662012-03-07 Georg-Johann Lay <avr@gjlay.de> 31567 31568 PR target/52506 31569 * config/avr/avr.c (expand_epilogue): Fix order of restoration 31570 to: RAMPZ, RAMPY, RAMPX, RAMPD. 31571 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read. 31572 315732012-03-07 Georg-Johann Lay <avr@gjlay.de> 31574 31575 PR target/52505 31576 * config/avr/avr.c (avr_out_xload): Don't read unintentionally 31577 from RAM. 31578 * config/avr/avr.md (xload_8): Adjust insn length. 31579 315802012-03-07 Georg-Johann Lay <avr@gjlay.de> 31581 31582 PR target/52461 31583 * config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage 31584 if RAMPZ affects reading from RAM. 31585 315862012-03-07 Richard Guenther <rguenther@suse.de> 31587 31588 PR pch/52518 31589 PR pch/38987 31590 * doc/invoke.texi (Precompiled Headers): Remove sentence that 31591 suggests you can include PCHs from inside another header. 31592 315932012-03-07 Richard Sandiford <rdsandiford@googlemail.com> 31594 31595 PR middle-end/52515 31596 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers. 31597 315982012-03-07 Kai Tietz <ktietz@redhat.com> 31599 31600 * doc/invoke.texi (fwritable-relocated-rdata): Document 31601 new Cygwin/MinGW target option. 31602 * config/i386/winnt.c (i386_pe_unique_section): Ignore 31603 reloc if flag -fwritable-relocated-rdata is not set. 31604 (i386_pe_section_type_flags): Likewise. 31605 * config/i386/cygming.opt (fwritable-relocated-rdata): 31606 Add new flag variable flag_writable_rel_rdata. 31607 316082012-03-07 Richard Guenther <rguenther@suse.de> 31609 31610 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual 31611 precision against gimple constraints. 31612 316132012-03-06 Richard Sandiford <rdsandiford@googlemail.com> 31614 31615 PR middle-end/52372 31616 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as 31617 variables. 31618 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete. 31619 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New 31620 variables. 31621 (init_emit_regs): Move associated initialization to... 31622 (init_emit_once): ...here. 31623 316242012-03-06 Richard Henderson <rth@redhat.com> 31625 31626 * config/m68k/m68k.h (ISA_HAS_TAS): New. 31627 * config/m68k/sync.md (atomic_test_and_set): Use it. 31628 (atomic_test_and_set_1): Likewise. 31629 316302012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com> 31631 31632 PR target/50310 31633 * config/rs6000/vector.md (vector_uneq<mode>): Add support for 31634 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons. 31635 (vector_ltgt<mode>): Likewise. 31636 (vector_ordered<mode>): Likewise. 31637 (vector_unordered<mode>): Likewise. 31638 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise. 31639 316402012-03-06 Aldy Hernandez <aldyh@redhat.com> 31641 31642 * trans-mem.c: New typedef for tm_region_p. 31643 Define vector types for tm_region_p. 31644 (tm_region_init): Replace region_worklist to a vector called 31645 bb_regions. 31646 316472012-03-06 Richard Guenther <rguenther@suse.de> 31648 31649 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold 31650 MEM_REF with constant pointer operand. 31651 316522012-03-06 Richard Guenther <rguenther@suse.de> 31653 31654 PR middle-end/52493 31655 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify. 31656 316572012-03-06 Tristan Gingold <gingold@adacore.com> 31658 31659 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword. 31660 (external_model_kind): Improve documentation. 31661 (vms_pragma_extern_model): Handle relaxed_redef. 31662 (vms_c_register_pragma): Allow expansion for nomember_alignment. 31663 316642012-03-06 Georg-Johann Lay <avr@gjlay.de> 31665 31666 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores. 31667 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc. 31668 Some more notes on EIND usage and reorder EIND subsection. 31669 316702012-03-06 Tristan Gingold <gingold@adacore.com> 31671 31672 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF. 31673 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL. 31674 316752012-03-06 Tristan Gingold <gingold@adacore.com> 31676 31677 * config/vms/t-vmsnative (version): Define. 31678 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove. 31679 316802012-03-06 Andrey Belevantsev <abel@ispras.ru> 31681 31682 PR rtl-optimization/52250 31683 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb 31684 to put note list into. Unconditionally call move_bb_info. 31685 (move_bb_info): Do not assert the blocks being in the same region, 31686 just drop the note list if they are not. 31687 316882012-03-06 Oleg Endo <olegendo@gcc.gnu.org> 31689 31690 PR target/51244 31691 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case 31692 and use unified expansion logic. 31693 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move 31694 closer to the existing movt insn. 31695 (negc): Rename insn to *negc. Add new expander. 31696 (movnegt): Use xor pattern for T bit negation. Reserve helper 31697 constant for negc pattern. 31698 (*movnegt): New insn and splitter. 31699 317002012-03-05 Bernd Schmidt <bernds@codesourcery.com> 31701 31702 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not 31703 PLUS_EXPR. 31704 317052012-03-05 Richard Henderson <rth@redhat.com> 31706 31707 * genemit.c (main): Include "target.h" in insn-emit.c. 31708 * Makefile.in (insn-emit.o): Depend on TARGET_H. 31709 * config/sh/sync.md (atomic_test_and_set): Reference 31710 targetm.atomic_test_and_set_trueval instead of 31711 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL. 31712 317132012-03-05 Joern Rennecke <joern.rennecke@embecosm.com> 31714 31715 * config/epiphany/epiphany.c (epiphany_function_value_regno_p): 31716 Make static. 31717 317182012-03-05 Steven Bosscher <steven@gcc.gnu.org> 31719 31720 * langhooks.c (add_builtin_type): New function. 31721 * langhooks.h (add_builtin_type): Export it. 31722 * config/mep/mep.c (mep_init_builtins): Use it. 31723 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it. 31724 317252012-03-05 Jakub Jelinek <jakub@redhat.com> 31726 31727 PR debug/51902 31728 * tree.h (BLOCK_SAME_RANGE): Define. 31729 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE 31730 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared. 31731 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment 31732 isn't equal to supercontext fragment's fragment chain. 31733 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's 31734 fragment origin. 31735 (blocks_nreverse_all): Likewise. 31736 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set 31737 BLOCK_SUPERCONTEXT to supercontext fragment instead of 31738 supercontext fragment's fragment origin. 31739 * dwarf2out.c (add_high_low_attributes): If stmt has the same 31740 range as its parent (or parents thereof etc.), use the parent's 31741 DW_AT_ranges value instead of creating a new .debug_ranges range. 31742 317432012-03-05 Richard Henderson <rth@redhat.com> 31744 31745 PR tree-opt/52242 31746 Revert: 2011-11-26 Richard Henderson <rth@redhat.com> 31747 * omp-low.c (expand_omp_atomic): Assume anything aligned to 31748 BIGGEST_ALIGNMENT is aligned. 31749 317502012-03-05 Richard Henderson <rth@redhat.com> 31751 31752 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move... 31753 * config/sh/sh.c: ... here. 31754 317552012-03-05 Richard Henderson <rth@redhat.com> 31756 31757 PR target/52481 31758 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop 31759 instead of calling negqi2 directly. 31760 317612012-03-05 Aldy Hernandez <aldyh@redhat.com> 31762 31763 PR middle-end/52463 31764 * trans-mem.c (tm_region_init): Use last_basic_block. 31765 317662012-03-05 Oleg Endo <olegendo@gcc.gnu.org> 31767 31768 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook. 31769 * config/sh/sync.md (atomic_test_and_set): New expander. 31770 (tasb, atomic_test_and_set_soft): New insns. 31771 * config/sh/sh.opt (menable-tas): New option. 31772 * doc/invoke.texi (SH Options): Document it. 31773 317742012-03-05 Richard Guenther <rguenther@suse.de> 31775 31776 * cfgloop.c (verify_loop_structure): Verify dominators before 31777 using them. 31778 * graphite-clast-to-gimple.c (graphite_verify): Do not verify 31779 dominators from here. 31780 * graphite-scop-detection.c (create_sese_edges): Likewise. 31781 * loop-doloop.c (doloop_optimize_loops): Likewise. 31782 * loop-init.c (loop_optimizer_init): Likewise. 31783 * loop-unroll.c (unroll_and_peel_loops): Likewise. 31784 * loop-unswitch.c (unswitch_loops): Likewise. 31785 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise. 31786 * tree-parloops.c (parallelize_loops): Likewise. Verify 31787 only when checking is enabled. 31788 * tree-loop-distribution.c (tree_loop_distribution): Likewise. 31789 317902012-03-05 Bernd Schmidt <bernds@codesourcery.com> 31791 31792 * genautomata.c (parse_automata_opt): New static function. 31793 (initiate_automaton_gen): Remove all option handling code. Remove 31794 argc argument. All callers changed. 31795 (main): Call init_rtx_reader_args_cb with the new function as argument. 31796 317972012-03-05 Richard Guenther <rguenther@suse.de> 31798 31799 * cfgexpand.c (gimple_expand_cfg): Free dominator info. 31800 * tree-if-conv.c (combine_blocks): Free post-dominator info 31801 after breaking it. 31802 * tree-parloops.c (create_parallel_loop): Free and re-compute 31803 dominator info after breaking it. 31804 318052012-03-05 Richard Guenther <rguenther@suse.de> 31806 31807 PR middle-end/52353 31808 * optabs.h (trapv_unoptab_p): New function. 31809 (trapv_binoptab_p): Likewise. 31810 * optabs.c (expand_binop): Use emit_libcall_block_1 with 31811 a proper equiv_may_trap argument. 31812 (expand_unop): Likewise. 31813 (emit_libcall_block_1): Take extra argument whether the 31814 instruction may trap. Renamed from ... 31815 (emit_libcall_block): ... this. New wrapper. 31816 318172012-03-05 Jakub Jelinek <jakub@redhat.com> 31818 31819 PR tree-optimization/51721 31820 * tree-vrp.c (register_edge_assert_for_2): If comparing 31821 lhs of right shift by constant with an integer constant, 31822 add ASSERT_EXPRs for the rhs1 of the right shift. 31823 31824 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup. 31825 318262012-03-05 Richard Guenther <rguenther@suse.de> 31827 31828 * tree.c (integer_zerop): Handle VECTOR_CSTs. 31829 (integer_onep): Likewise. 31830 (integer_all_onesp): Likewise. 31831 318322012-03-05 Georg-Johann Lay <avr@gjlay.de> 31833 31834 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split. 31835 318362012-03-04 H.J. Lu <hongjiu.lu@intel.com> 31837 31838 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode 31839 instead of TARGET_64BIT. 31840 318412012-03-04 H.J. Lu <hongjiu.lu@intel.com> 31842 31843 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set 31844 adjust_stack_insn. 31845 318462012-03-04 H.J. Lu <hongjiu.lu@intel.com> 31847 31848 * config/i386/i386.c (ix86_print_operand_address): Only handle 31849 zero-extended DImode addresses. 31850 318512012-03-04 Uros Bizjak <ubizjak@gmail.com> 31852 31853 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare 31854 taken and cputaken as bool. 31855 318562012-03-04 Uros Bizjak <ubizjak@gmail.com> 31857 31858 * config/i386/constraints.md (Ya): New internal constraint. 31859 * config/i386/i386.md (zero_extendsidi2): Remove expansion. 31860 (*zero_extendsidi2_rex64): Add x,x alternative. 31861 (*zero_extendsidi2): Ditto. Add o,0 alternative. 31862 Remove flags reg clobber. Adjust corresponding splits. 31863 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and 31864 zero_extendqisi2 expanders using SWI12 mode iterator. 31865 (zero_extend<mode>si2_and): Macroize insn from 31866 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding 31867 splitters. 31868 (*zero_extend<mode>si2): Macroize insn from 31869 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl. 31870 (*zero_extend*2_movzbl_and): Remove insn patterns. 31871 (zero_extendqihi2_and): Merge corresponding splitter. 31872 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl. 31873 (*zero_extend*2_movzbl_and): Remove insn patterns. 31874 (*anddi_1): Split TYPE_IMOVX instructions. 31875 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions. 31876 (*andhi_1): Ditto. 31877 (and->zext splitter): Add splitter pattern. 31878 (zero extend with andsi3 splitter): Adjust zero_extend pattern. 31879 318802012-03-04 Sandra Loosemore <sandra@codesourcery.com> 31881 31882 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to 31883 x86-specific text. 31884 (Debugging Options): Likewise. 31885 (Optimize Options): Likewise. 31886 (i386 and x86-64 Options): Discuss -march before -mtune, consistently 31887 with other architectures. Use official processor names with correct 31888 spelling/capitalization. Fix formatting and grammar issues. 31889 (i386 and x86-64 Windows Options): Similar cleanup here. 31890 318912012-03-03 Kaz Kojima <kkojima@gcc.gnu.org> 31892 31893 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition. 31894 318952012-03-03 Kaz Kojima <kkojima@gcc.gnu.org> 31896 31897 * config/sh/sh.c (sh_dwarf_register_span): Don't apply 31898 DBX_REGISTER_NUMBER. 31899 319002012-03-03 Kaz Kojima <kkojima@gcc.gnu.org> 31901 31902 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first 31903 operand is CONST_INT. Take COSTS_N_INSNS into account. 31904 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value 31905 of shiftcosts. 31906 319072012-03-02 Richard Henderson <rth@redhat.com> 31908 31909 * optabs.c (expand_atomic_test_and_set): Honor 31910 atomic_test_and_set_trueval even when atomic_test_and_set 31911 optab is not in use. 31912 319132012-03-02 Kaz Kojima <kkojima@gcc.gnu.org> 31914 31915 PR target/48596 31916 PR target/48806 31917 * config/sh/sh.c (sh_register_move_cost): Increase cost between 31918 GENERAL_REGS and FP_REGS for SImode. 31919 319202012-03-02 Oleg Endo <olegendo@gcc.gnu.org> 31921 31922 PR target/49486 31923 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition. 31924 (absdi2): New expander. 31925 (*absdi2, *negabsdi2, negdi_cond): New insns and splits. 31926 319272012-03-02 Oleg Endo <olegendo@gcc.gnu.org> 31928 31929 * config/sh/sync.md (atomic_exchange<mode>): New expander. 31930 (atomic_exchange<mode>_soft): New insn. 31931 319322012-03-02 Oleg Endo <olegendo@gcc.gnu.org> 31933 31934 * config/sh/sync.md: Update copyright notice dates. 31935 (atomic_compare_and_swap<mode>): Use SImode for return value instead 31936 of QImode. 31937 (atomic_compare_and_swap<mode>_soft): Likewise. 31938 319392012-03-02 Oleg Endo <olegendo@gcc.gnu.org> 31940 31941 PR target/31640 31942 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align. 31943 * config/sh/sh.c: Update copyright notice dates. 31944 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop 31945 alignment for TARGET_HARD_SH4. 31946 (sh_option_override): Reduce default function alignment. Set 31947 loop alignment to 4 bytes when not optimizing for size. 31948 319492012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com> 31950 31951 PR middle-end/50335 31952 * doc/invoke.texi (floop-flatten): Remove. 31953 * toplev.c (process_options): Remove references to flag_loop_flatten. 31954 * tree-ssa-loop.c (gate_graphite_transform): Same. 31955 * common.opt (floop-flatten): Obsolete. 31956 * graphite-poly.c (apply_poly_transforms): Remove reference to 31957 flag_loop_flatten. 31958 * Makefile.in (graphite-flattening.o): Remove. 31959 * graphite-flattening.c: Remove. 31960 319612012-03-02 Uros Bizjak <ubizjak@gmail.com> 31962 31963 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares 31964 having mode compatible with the mode of previous compare. Substitute 31965 compare mode of previous compare with the mode, compatible 31966 with eliminated and previous compare. 31967 319682012-03-02 Peter Bergner <bergner@vnet.ibm.com> 31969 31970 * config/rs6000/dfp.md (floatdidd2): New define_insn. 31971 319722012-03-02 Uros Bizjak <ubizjak@gmail.com> 31973 31974 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode 31975 compatible with CCGOCmode and CCGCmode. 31976 319772012-03-02 Peter Bergner <bergner@vnet.ibm.com> 31978 31979 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands. 31980 319812012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org> 31982 31983 * config/arm/arm.c (arm_sat_operator_match): New function. 31984 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype. 31985 * config/arm/arm.md ("insn" attribute): Add "sat" value. 31986 ("SAT", "SATrev"): New code iterators. 31987 ("SATlo", "SAThi"): New code iterator attributes. 31988 ("*satsi_<SAT:code>"): New pattern. 31989 ("*satsi_<SAT:code>_shift"): Likewise. 31990 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn" 31991 and "shift" attributes. 31992 ("arm_usatsihi"): Add "insn" attribute. 31993 * config/arm/predicates.md (sat_shift_operator): Allow multiplication 31994 by powers of two. Do not allow shift by 32. 31995 319962012-03-02 Uros Bizjak <ubizjak@gmail.com> 31997 31998 PR target/46716 31999 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel 32000 to pass the argument in the register of "natural" mode. 32001 320022012-03-02 Richard Guenther <rguenther@suse.de> 32003 32004 PR tree-optimization/52406 32005 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT. 32006 (struct indices): Add unconstrained_base member. 32007 (struct dr_alias): Remove unused vops member. 32008 (DR_UNCONSTRAINED_BASE): New define. 32009 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs 32010 add indices to allow their disambiguation. Make DR_BASE_OBJECT 32011 be an artificial access that covers the whole indexed object, 32012 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize 32013 plain decl base-objects to their MEM_REF variant. 32014 (dr_may_alias_p): When the base-object of either data reference 32015 has unknown size use only points-to information. 32016 (compute_affine_dependence): Make dumps easier to read and 32017 more verbose. 32018 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use 32019 DR_REF when looking for packed references. 32020 (vect_supportable_dr_alignment): Likewise. 32021 320222012-03-02 Greta Yorsh <Greta.Yorsh@arm.com> 32023 32024 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole): 32025 Improve conditions for peepholes of loads followed by commutative 32026 operators. 32027 * config/arm/ldmstm.md: Regenerated. 32028 320292012-03-02 Richard Guenther <rguenther@suse.de> 32030 32031 * BASE-VER: Set to 4.8.0. 32032 320332012-03-01 Richard Earnshaw <rearnsha@arm.com> 32034 32035 * config.gcc (obsolete): Add all ARM targets using the FPA. 32036 (with_fpu): Obsolete selection of the FPA or Maverick on ARM. 32037 * doc/install.texi: Avoid references to obsolete ARM ports. 32038 320392012-03-01 Joern Rennecke <joern.rennecke@embecosm.com> 32040 32041 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns. 32042 320432012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com> 32044 Joern Rennecke <joern.rennecke@embecosm.com> 32045 32046 * doc/extend.texi: Expand and update information on interrupt 32047 attribute for Epiphany. 32048 320492012-03-01 Oleg Endo <olegendo@gcc.gnu.org> 32050 32051 * config/sh/sh-protos.h: Update copyright notice dates. 32052 * config/sh/sh.h: Likewise. 32053 * config/sh/sh.md: Likewise. 32054 * config/sh/constraints.md: Likewise. 32055 * config/sh/predicates.md: Likewise. 32056 320572012-03-01 Oleg Endo <olegendo@gcc.gnu.org> 32058 32059 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function. 32060 * config/sh/sh.c (tertiary_reload_operand): Likewise. 32061 320622012-03-01 Oleg Endo <olegendo@gcc.gnu.org> 32063 32064 * config/sh/constraints.md: Fix comment typo. 32065 320662012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 32067 32068 PR target/52408 32069 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to 32070 unsigned HOST_WIDE_INT. 32071 (zvdep_imm64): Likewise. 32072 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT. 32073 (vdepi_and): Likewise. 32074 Likewise for unamed 64-bit patterns. 32075 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment. 32076 320772012-03-01 Alexandre Oliva <aoliva@redhat.com> 32078 32079 PR debug/52001 32080 PR rtl-optimization/52417 32081 * cselib.c (cselib_any_perm_equivs): New variable. 32082 (cselib_reset_table): Check that it's not set when not 32083 preserving constants. 32084 (cselib_add_permanent_equiv): Set it. 32085 (cselib_have_permanent_equivalences): New. 32086 (cselib_init, cselib_finish): Reset it. 32087 * cselib.h (cselib_have_permanent_equivalences): Declare. 32088 * alias.c (get_addr): Restore earlier behavior when there 32089 aren't permanent equivalences. 32090 320912012-03-01 Steven Bosscher <steven@gcc.gnu.org> 32092 32093 * config/mn10300/mn10300-modes.def: Fix copyright notice. 32094 * config/v850/v850-modes.def: Fix copyright notice. 32095 320962012-03-01 Georg-Johann Lay <avr@gjlay.de> 32097 32098 * doc/extend.texi (AVR Built-in Functions): Document 32099 __builtin_avr_flash_segment. 32100 32101 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry. 32102 * config/avr/avr.md (flash_segment, flash_segment1): New expanders. 32103 (*split.flash_segment): New insn-and-split. 32104 * config/avr/avr.c (avr_init_builtins): Add local variables: 32105 const_memx_void_node, const_memx_ptr_type_node, 32106 char_ftype_const_memx_ptr. 32107 321082012-03-01 Jakub Jelinek <jakub@redhat.com> 32109 32110 PR tree-optimization/52445 32111 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field, 32112 add ssa_name_ver, offset and size fields and change store field 32113 to bool. 32114 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes. 32115 (add_or_mark_expr): Likewise. Only consider previous stores 32116 with the same size and offset. 32117 (nt_init_block): Only look at gimple_assign_single_p stmts, 32118 doesn't look at rhs2. 32119 321202012-03-01 Richard Guenther <rguenther@suse.de> 32121 32122 PR middle-end/52443 32123 * tree-cfg.c (verify_gimple_assign_unary): Allow any 32124 conversions from integral types to pointer types. 32125 321262012-03-01 Georg-Johann Lay <avr@gjlay.de> 32127 32128 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in 32129 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__ 32130 unintentionally removed in r184616. 32131 321322012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 32133 32134 * doc/invoke.texi: Document AMD bdver2 and remove mentioning 32135 3DNow from bdver1. 32136 321372012-02-29 Jakub Jelinek <jakub@redhat.com> 32138 Uros Bizjak <ubizjak@gmail.com> 32139 32140 PR target/52437 32141 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF" 32142 alternatives, add "e" constraint to the new last alternative 32143 and ! to last 3 alternatives. 32144 321452012-02-29 Eric Botcazou <ebotcazou@adacore.com> 32146 32147 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and 32148 DW_AT_artificial attributes at the end of the processing. 32149 (gen_array_type_die): Likewise. 32150 (gen_enumeration_type_die): Likewise. 32151 (gen_struct_or_union_type_die): Likewise. 32152 (add_gnat_descriptive_type_attribute): Do not suppress debug info for 32153 the parent type. 32154 321552012-02-29 Jakub Jelinek <jakub@redhat.com> 32156 32157 PR middle-end/52419 32158 * expr.c (expand_assignment): If doing misaligned store that doesn't 32159 cover all mode bits, perform a RMW cycle. 32160 32161 PR tree-optimization/52429 32162 * tree-parloops.c (separate_decls_in_region_debug): Return early 32163 if var is LABEL_DECL. 32164 321652012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 32166 32167 PR tree-optimization/52424 32168 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before 32169 calling dom_thread_across_edge. 32170 321712012-02-29 Georg-Johann Lay <avr@gjlay.de> 32172 32173 * config/avr/avr.c: Move definition of TARGET macros to end of file. 32174 321752012-02-29 Georg-Johann Lay <avr@gjlay.de> 32176 32177 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype. 32178 * config/avr/avr.c (avr_output_bld): Remove unused function. 32179 (avr_out_sbxx_branch): Use "%T" to print bit position. 32180 321812012-02-29 Georg-Johann Lay <avr@gjlay.de> 32182 32183 * config/avr/avr.md: Untabify. 32184 321852012-02-29 Georg-Johann Lay <avr@gjlay.de> 32186 32187 * config/avr/avr.md (eqne): New code iterator. 32188 (*dec-and-branchsi): Use it in text peephole's condition. 32189 (*dec-and-branchhi): Ditto. 32190 (*dec-and-branchqi): Ditto. 32191 321922012-02-29 Georg-Johann Lay <avr@gjlay.de> 32193 32194 PR target/49939 32195 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that 32196 the device does not have the skip-bug. 32197 321982012-02-29 Oleg Endo <olegendo@gcc.gnu.org> 32199 32200 * doc/invoke.texi (-msoft-atomic): Add more detailed description. 32201 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd 32202 -mpretend-cmove): New. 32203 322042012-02-29 Jakub Jelinek <jakub@redhat.com> 32205 32206 PR bootstrap/52397 32207 * df.h (struct df_d): Adjust comment that hard_regs_live_count 32208 doesn't count DEBUG_INSN refs. 32209 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE 32210 for DEBUG_INSN refs. 32211 322122012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 32213 32214 Partially revert: 32215 32216 2012-02-20 Richard Guenther <rguenther@suse.de> 32217 PR tree-optimization/52298 32218 * tree-vect-stmts.c (vectorizable_load): Properly use 32219 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops. 32220 322212012-02-28 Aldy Hernandez <aldyh@redhat.com> 32222 32223 PR middle-end/51752 32224 * gimple.h (gimple_in_transaction): New. 32225 (gimple_set_in_transaction): New. 32226 (struct gimple_statement_base): Add in_transaction field. 32227 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of 32228 transaction loads. 32229 (tree_ssa_lim_initialize): Compute transaction bits. 32230 * tree.h (compute_transaction_bits): Protoize. 32231 * trans-mem.c (tm_region_init): Use the heap to store BB 32232 auxilliary data. 32233 (compute_transaction_bits): New. 32234 322352012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 32236 32237 * gcc.c (display_help): Document --help=common and sort entries 32238 alphabetically. 32239 322402012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 32241 32242 * doc/install.texi: Document check-$LANG specific shortcuts 32243 322442012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 32245 32246 PR target/51534 32247 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu 32248 and vcgtu. 32249 * config/arm/arm_neon.h: Regenerate. 32250 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU. 32251 (neon_vcgeu): New insn. 32252 (neon_vcgtu): Likewise. 32253 * config/arm/neon.ml (s_8_32, u_8_32): New lists. 32254 (ops): Unsigned comparison intrinsics call a different builtin. 32255 322562012-02-28 Richard Guenther <rguenther@suse.de> 32257 32258 PR target/52407 32259 * config/i386/i386.c (ix86_expand_vector_set): Fix element 32260 ordering for the VEC_CONCAT for two element vectors for 32261 V2SFmode, V2SImode and V2DImode. 32262 322632012-02-28 Richard Earnshaw <rearnsha@arm.com> 32264 32265 PR target/49448 32266 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for 32267 detecting big-endian triplets. 32268 322692012-02-28 Richard Earnshaw <rearnsha@arm.com> 32270 32271 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine 32272 mode if there is no type information available. 32273 322742012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org> 32275 32276 PR tree-optimization/53207 32277 * doc/invoke.texi: Document as experimental and relying on graphite. 32278 322792012-02-28 Georg-Johann Lay <avr@gjlay.de> 32280 32281 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part 32282 of initializer to changes from r184614. 32283 322842012-02-28 Richard Guenther <rguenther@suse.de> 32285 32286 PR tree-optimization/52395 32287 * tree-sra.c (build_ref_for_offset): Also look at the base 32288 TYPE_ALIGN when figuring out the alignment of the replacement. 32289 322902012-02-28 Richard Guenther <rguenther@suse.de> 32291 32292 PR tree-optimization/52402 32293 * ipa-prop.c (ipa_modify_call_arguments): Properly use 32294 mis-aligned types when creating the accesses at the call site. 32295 322962012-02-28 Georg-Johann Lay <avr@gjlay.de> 32297 32298 * config/avr/builtins.def: New file. 32299 * config/avr/t-avr (avr.o, avr-c.o): Depend on it. 32300 * config/avr/avr.c (enum avr_builtin_id): Use it. 32301 (avr_init_builtins): Use it. And use avr_bdesc. 32302 (bdesc_1arg): Remove. 32303 (bdesc_2arg): Remove. 32304 (bdesc_3arg): Remove. 32305 (struct avr_builtin_description): Add field n_args. 32306 (avr_bdesc): New static variable using builtins.def. 32307 (avr_expand_builtin): Use it. 32308 Don't call avr_expand_delay_cycles if op0 is not CONST_INT. 32309 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP. 32310 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST. 32311 323122012-02-28 Georg-Johann Lay <avr@gjlay.de> 32313 32314 PR target/52148 32315 * config/avr/avr.md (movmem_<mode>): Replace match_operand that 32316 match only one single hard register with respective hard reg rtx. 32317 (movmemx_<mode>): Ditto. 32318 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new 32319 insn anatomy of movmem[x]_<mode>. 32320 (avr_out_movmem): Same for printing assembler and operand usage. 32321 323222012-02-28 Georg-Johann Lay <avr@gjlay.de> 32323 32324 PR target/49868 32325 PR target/52261 32326 * doc/extend.texi (AVR Named Address Spaces): No more try to fix 32327 address spaces located outside of device flash. 32328 32329 * config/avr/avr.h (base_arch_s): Remove field n_segments. 32330 (mcu_type_s): Add field n_flash. 32331 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments. 32332 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5. 32333 (AVR_MCU): Add N_FLASH argument. 32334 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash. 32335 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in 32336 macro __FLASH<n> if that address space makes sense for the device. 32337 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces 32338 outside of target flash. 32339 (avr_asm_named_section): Ditto. 32340 (avr_asm_select_section): Ditto. 32341 (avr_addr_space_convert): Ditto. 32342 (avr_emit_movmemhi): Ditto. 32343 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if 32344 address space is outside of device flash. 32345 (avr_insert_attributes): Ditto. 32346 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of 32347 avr_current_arch->n_segments. 32348 323492012-02-27 H.J. Lu <hongjiu.lu@intel.com> 32350 32351 PR target/52352 32352 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64. 32353 (*movabs<mode>_2): Likewise. 32354 323552012-02-27 Jakub Jelinek <jakub@redhat.com> 32356 32357 PR target/52375 32358 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use 32359 s_register_operand in the test instead of REG_P. Don't call 32360 gen_reg_rtx if it won't be used. 32361 32362 PR tree-optimization/52376 32363 * ipa-split.c (split_function): Ignore CLOBBER stmts. 32364 323652012-02-27 Stuart Henderson <shenders@gcc.gnu.org> 32366 32367 * ifcvt.c (noce_get_condition): Check condition variable is not 32368 small_register_classes_for_mode_p before accepting. 32369 323702012-02-27 Uros Bizjak <ubizjak@gmail.com> 32371 32372 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints. 32373 323742012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 32375 32376 Revert: 32377 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 32378 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for 32379 tuning parameters. 32380 * config/arm/arm.c (arm_cortex_a15_tune): New static variable. 32381 323822012-02-27 Oleg Endo <olegendo@gcc.gnu.org> 32383 32384 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro. 32385 323862012-02-26 Oleg Endo <olegendo@gcc.gnu.org> 32387 32388 * config/sh/predicates.md: Remove blank lines. 32389 * config/sh/sh.c: Fix typos in comments. 32390 * config/sh/constraints.md: Likewise. 32391 * config/sh/sh.md: Remove blank lines. 32392 Fix typos in comments. Use ;; as comment characters. 32393 323942012-02-26 Walter Lee <walt@tilera.com> 32395 32396 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern. 32397 (replace_mov_pcrel_step2): Ditto. 32398 323992012-02-25 Alexandre Oliva <aoliva@redhat.com> 32400 32401 PR debug/52001 32402 * alias.c (refs_newer_value_cb, refs_newer_value_p): New. 32403 (get_addr): Walk canonical value's locs. Avoid returning VALUEs 32404 and locs that reference values newer than the non-canonical value 32405 at hand. Return the canonical value as a worst case. 32406 (memrefs_conflict_p): Walk canonical value's locs. 32407 32408 PR debug/52001 32409 * cselib.c (preserve_only_constants): Rename to... 32410 (preserve_constants_and_equivs): ... this. Split out... 32411 (invariant_or_equiv_p): ... this. Preserve plus expressions 32412 of other preserved expressions too. 32413 (cselib_reset_table): Adjust. 32414 * var-tracking.c (reverse_op): Use canonical value to build 32415 reverse operation. 32416 324172012-02-23 Kai Tietz <ktietz@redhat.com> 32418 32419 * config/i386/i386.c (ix86_delegitimize_address): Handle 32420 UNSPEC_PCREL plus displacement. 32421 324222012-02-24 Georg-Johann Lay <avr@gjlay.de> 32423 32424 PR target/52261 32425 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base 32426 to test for unusedness in st X addressing. 32427 324282012-02-24 Richard Guenther <rguenther@suse.de> 32429 32430 PR middle-end/52361 32431 * gimple.c (walk_gimple_op): Use predicates with less redundant tests. 32432 (is_gimple_reg_type): Move inline ... 32433 * gimple.h (is_gimple_reg_type): ... here. 32434 324352012-02-24 Richard Guenther <rguenther@suse.de> 32436 32437 PR middle-end/52361 32438 * passes.c (execute_function_todo): When verifying SSA form 32439 verify gimple form first. 32440 * tree-ssa.c (verify_ssa): Do not verify gimple form here. 32441 324422012-02-24 Richard Guenther <rguenther@suse.de> 32443 32444 PR middle-end/52355 32445 * fold-const.c (fold_addr_of_array_ref_difference): New function. 32446 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding. 32447 324482012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 32449 32450 * tree-if-conv (predicate_scalar_phi): Commentary typo fix. 32451 324522012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 32453 32454 * tree-phinodes.c (make_phi_node): Mark static. 32455 * tree-flow.h (make_phi_node): Remove extern decl. 32456 * doc/gimple.texi (make_phi_node): Remove documentation. 32457 324582012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 32459 32460 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file. 32461 * tree-ssa-sccvn.c (print_scc): Ditto. 32462 324632012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 32464 32465 * doc/passes.texi (Full redundancy elimination): Fix typo. 32466 324672012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 32468 32469 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries. 32470 324712012-02-23 Eric Botcazou <ebotcazou@adacore.com> 32472 32473 PR bootstrap/52287 32474 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns. 32475 324762012-02-23 Uros Bizjak <ubizjak@gmail.com> 32477 32478 PR c/52290 32479 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL. 32480 324812012-02-23 Georg-Johann Lay <avr@gjlay.de> 32482 32483 * config/avr/avr.md (code_stdname): Add ior, xor. 32484 (xior): New code iterator. 32485 (*<code_stdname><mode>qi.byte0): Use xior instead of ior. 32486 (*<code_stdname><mode>qi.byte1-3): Ditto. 32487 324882012-02-23 Jakub Jelinek <jakub@redhat.com> 32489 32490 PR tree-optimization/52019 32491 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore 32492 CLOBBER stmts. 32493 324942012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 32495 32496 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of 32497 HAVE_INITFINI_ARRAY to work around namespace pollution in 32498 certain versions of newlib system headers. 32499 * config.in: Regenerate. 32500 * configure: Regenerate. 32501 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT 32502 instead of HAVE_INITFINI_ARRAY. 32503 325042012-02-22 Uros Bizjak <ubizjak@gmail.com> 32505 32506 PR target/52330 32507 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x 32508 is not offsettable memory reference. 32509 325102012-02-22 Georg-Johann Lay <avr@gjlay.de> 32511 32512 PR target/18145 32513 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip 32514 setting avr_need_clear_bss_p for __gnu_lto* symbols. 32515 325162012-02-22 Georg-Johann Lay <avr@gjlay.de> 32517 32518 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int. 32519 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int. 32520 325212012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 32522 32523 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread 32524 library on Solaris 8 even without TLS support. 32525 * configure: Regenerate. 32526 325272012-02-22 Richard Guenther <rguenther@suse.de> 32528 32529 PR middle-end/52329 32530 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs 32531 for GIMPLE_DEBUG stmts. 32532 325332012-02-22 Martin Jambor <mjambor@suse.cz> 32534 32535 PR middle-end/51782 32536 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space 32537 according to the base object. 32538 325392012-02-22 Georg-Johann Lay <avr@gjlay.de> 32540 32541 PR rtl-optimization/50063 32542 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state) 32543 and 2 (8-bit SP) in operand 2. 32544 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue 32545 setup to use movhi_sp_r instead of vanilla move to write SP. 32546 Adjust REG_CFA notes to superseed unspec. 32547 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead 32548 of vanilla move. 32549 As function body might contain CLI or SEI: Use irq_state 0 (IRQ 32550 known to be off) only with TARGET_NO_INTERRUPTS. Never use 32551 irq_state 1 (IRQ known to be on) here. 32552 325532012-02-21 Bernd Schmidt <bernds@codesourcery.com> 32554 32555 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not 32556 WORDS_BIG_ENDIAN. 32557 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p, 32558 assign_hard_reg): Likewise. 32559 325602012-02-21 Georg-Johann Lay <avr@gjlay.de> 32561 32562 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0". 32563 325642012-02-21 Georg-Johann Lay <avr@gjlay.de> 32565 32566 * config/avr/avr.md 32567 (*dec-and-branchhi!=-1.d.clobber): New text peephole. 32568 (*dec-and-branchhi!=-1.l.clobber): New text peephole. 32569 325702012-02-21 Georg-Johann Lay <avr@gjlay.de> 32571 32572 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move 32573 prototype from here to... 32574 * config/avr/avr.h: ...here. 32575 325762012-02-21 Richard Earnshaw <rearnsha@arm.com> 32577 32578 PR target/52294 32579 * thumb2.md (thumb2_shiftsi3_short): Split register and 32580 immediate shifts. For register shifts tie operands 0 and 1. 32581 (peephole2 for above): Check that register-controlled shifts 32582 have suitably tied operands. 32583 325842012-02-21 Quentin Neill <quentin.neill@amd.com> 32585 32586 PR target/52137 32587 * config/i386/bdver1.md (bdver1_call, bdver1_push, 32588 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul, 32589 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem, 32590 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov, 32591 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore, 32592 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store, 32593 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf, 32594 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load, 32595 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn, 32596 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc, 32597 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load, 32598 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom, 32599 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load, 32600 bdver1_ssevector_avx256_unaligned_load, 32601 bdver1_ssevector_sse128_unaligned_load, 32602 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load, 32603 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load, 32604 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load, 32605 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store, 32606 bdver1_mmxsse_store_short, bdver1_ssevector_avx256, 32607 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256, 32608 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog, 32609 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load, 32610 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256, 32611 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd, 32612 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd, 32613 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps, 32614 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps, 32615 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd, 32616 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd, 32617 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si, 32618 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi, 32619 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq, 32620 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi, 32621 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256, 32622 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load, 32623 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd, 32624 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256, 32625 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256, 32626 bdver1_ssediv_double_load, bdver1_ssediv_double, 32627 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins): 32628 Add "bdver2" attribute. 32629 326302012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 32631 32632 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the 32633 default if possible and not specified otherwise. 32634 326352012-02-21 Richard Guenther <rguenther@suse.de> 32636 32637 PR middle-end/52314 32638 * gimplify.c (create_tmp_from_val): Use the main variant type 32639 for the type of the temporary we create. 32640 326412012-02-21 Richard Guenther <rguenther@suse.de> 32642 32643 PR tree-optimization/52324 32644 * gimplify.c (gimplify_expr): When re-gimplifying expressions 32645 do not gimplify a MEM_REF address operand if it is already 32646 in suitable form. 32647 326482012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 32649 32650 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace 32651 TARGET_HARD_FLOAT with TARGET_HARD_DFP. 32652 326532012-02-21 Richard Guenther <rguenther@suse.de> 32654 32655 * tree-vect-stmts.c (vectorizable_load): Use pre-computed 32656 nested_in_vect_loop. 32657 326582012-02-21 Jakub Jelinek <jakub@redhat.com> 32659 32660 PR tree-optimization/52318 32661 * gimple-fold.c (gimplify_and_update_call_from_tree): Add 32662 vdef also to non-pure/const call stmts in the sequence. 32663 326642012-02-21 Tristan Gingold <gingold@adacore.com> 32665 32666 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding. 32667 326682012-02-20 David S. Miller <davem@davemloft.net> 32669 32670 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we 32671 don't use the "rd %pc" instruction on v9 for PIC register loads. 32672 326732012-02-20 Aldy Hernandez <aldyh@redhat.com> 32674 32675 PR middle-end/52141 32676 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's 32677 in a transaction safe function. 32678 326792012-02-20 Kai Tietz <ktietz@redhat.com> 32680 32681 PR target/52238 32682 * stor-layout.c (place_field): Handle desired_align for 32683 ms-bitfields, too. 32684 326852012-02-20 Richard Guenther <rguenther@suse.de> 32686 32687 PR tree-optimization/52298 32688 * tree-vect-stmts.c (vectorizable_store): Properly use 32689 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing 32690 outer loops. 32691 (vectorizable_load): Likewise. 32692 * tree-vect-data-refs.c (vect_analyze_data_ref_access): 32693 Access DR_STEP after ensuring it is not NULL. 32694 326952012-02-20 Jakub Jelinek <jakub@redhat.com> 32696 32697 PR tree-optimization/52286 32698 * fold-const.c (fold_binary_loc): For (X & C1) | C2 32699 optimization use double_int_to_tree instead of build_int_cst_wide, 32700 rewrite to use double_int vars. 32701 327022012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 32703 32704 PR target/50166 32705 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION. 32706 Define _start. 32707 Remove -e 0 from $gcc_cv_ld invocation. 32708 Only use __GLIBC_PREREQ if defined. 32709 Enable on Solaris since Solaris 8 patch. 32710 (gcc_SUN_LD_VERSION): New macro. 32711 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to 32712 gcc_SUN_LD_VERSION for version number format. 32713 * configure: Regenerate. 32714 * varasm.c (get_elf_initfini_array_priority_section): Set 32715 SECTION_NOTYPE for non-default priority. 32716 Use get_section instead of get_unnamed_section to emit 32717 .init_array/.fini_array with default priority. 32718 327192012-02-19 Richard Sandiford <rdsandiford@googlemail.com> 32720 32721 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable. 32722 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally. 32723 (mips_start_unique_function, mips_output_mips16_rdhwr) 32724 (mips_code_end): New functions. 32725 (TARGET_ASM_CODE_END): Define. 32726 327272012-02-19 Richard Sandiford <rdsandiford@googlemail.com> 32728 32729 * config/mips/mips.c (mips16_build_call_stub): Add CFI information 32730 to stubs with non-sibling calls. 32731 327322012-02-18 Sandra Loosemore <sandra@codesourcery.com> 32733 32734 * doc/invoke.texi (-fira-* options): Copy-edit. 32735 (ira-* parameters): Copy-edit. 32736 327372012-02-17 Sandra Loosemore <sandra@codesourcery.com> 32738 32739 * doc/invoke.texi: Minor copy-edits to bring into conformance with 32740 GCC coding conventions. 32741 327422012-02-17 Sandra Loosemore <sandra@codesourcery.com> 32743 32744 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian" 32745 when used as adjectives. 32746 327472012-02-16 Sandra Loosemore <sandra@codesourcery.com> 32748 32749 * doc/invoke.texi: Clean up "that"/"which" confusion. 32750 327512012-02-17 Steven Bosscher <steven@gcc.gnu.org> 32752 32753 * system.h: Poison SMALL_REGISTER_CLASSES 32754 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook. 32755 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES. 32756 327572012-02-16 Jakub Jelinek <jakub@redhat.com> 32758 32759 PR tree-optimization/52285 32760 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts 32761 when deciding if a call is a tail call or tail recursion. 32762 327632012-02-16 Kai Tietz <ktietz@redhat.com> 32764 32765 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow 32766 interger-constant displacement for UNSPEC_PCREL. 32767 327682012-02-16 Jakub Jelinek <jakub@redhat.com> 32769 32770 PR rtl-optimization/52208 32771 * ira-costs.c (scan_one_insn): Don't decrease mem_cost 32772 for MEMs with REG_EQUIV, if the MEM isn't general_operand. 32773 32774 PR tree-optimization/52255 32775 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If 32776 loop->header has virtual PHI, but exit_e->dest doesn't, add 32777 virtual PHI to exit_e->dest and adjust all uses after the loop. 32778 32779 PR debug/52260 32780 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing 32781 children with clone_tree_hash, not after it. 32782 327832012-02-16 Iain Sandoe <iains@gcc.gnu.org> 32784 32785 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for 32786 extended identifiers. 32787 327882012-02-16 Jakub Jelinek <jakub@redhat.com> 32789 32790 PR middle-end/51929 32791 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is 32792 a same_body_alias, also test whether e->callee isn't a former 32793 or current clone of the decl this is a same body alias of. 32794 32795 PR translation/52264 32796 * cgraphunit.c (verify_cgraph_node): Fix a typo. 32797 327982012-02-15 Sandra Loosemore <sandra@codesourcery.com> 32799 32800 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers. 32801 328022012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com> 32803 32804 PR target/52199 32805 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use 32806 force_reg instead of copy_to_reg for better optimization. Force 32807 non-register or memory operands into a register. 32808 328092012-02-15 Andrew MacLeod <amacleod@redhat.com> 32810 32811 * extend.texi: Reserve upper bits of memory model for future use. 32812 328132012-01-15 Georg-Johann Lay <avr@gjlay.de> 32814 Anatoly Sokolov <aesok@post.ru> 32815 Eric Weddington <eric.weddington@atmel.com> 32816 32817 PR target/52261 32818 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2, 32819 avrxmega4, avrxmega5, avrxmega6, avrxmega7. 32820 Rewrite initializers for .macro. 32821 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs: 32822 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4 32823 atxmega32d4, atxmega32x1. 32824 avrxmega4: atxmega64a3, atxmega64d3. 32825 avrxmega5: atxmega64a1, atxmega64a1u. 32826 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3, 32827 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3. 32828 avrxmega7: atxmega128a1, atxmega128a1u. 32829 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2, 32830 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7. 32831 (struct base_arch_s): Rename reserved to xmega_p. 32832 Rename reserved2 to have_rampd. 32833 (AVR_XMEGA): New define. 32834 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines. 32835 (AVR_HAVE_RAMPZ): Change definition to fit xmega. 32836 * config/avr/predicates.md (io_address_operand): Take into 32837 account SFR offset. 32838 (low_io_address_operand): Ditto. 32839 (high_io_address_operand): Ditto. 32840 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega. 32841 (enabled, movhi_sp_r): Use them. 32842 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use 32843 cpp_define_formatted to built-in define __AVR_ARCH__. 32844 (__AVR_XMEGA__): New built-in define. 32845 (__AVR_HAVE_RAMPD__): New built-in define. 32846 (__AVR_HAVE_RAMPX__): New built-in define. 32847 (__AVR_HAVE_RAMPY__): New built-in define. 32848 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it. 32849 32850 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy. 32851 (avr_option_override): Initialize them. 32852 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx. 32853 (avr_init_expanders): Initialize them. No more block several calls. 32854 (emit_push_sfr): New static function. 32855 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed. 32856 Handle AVR_XMEGA. 32857 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed. 32858 (avr_print_operand): Print addreeses as symbols for 32859 RAMPX, RAMPY, RAMPD, CCP. 32860 (output_movhi): Handle AVR_XMEGA when writing to SP. 32861 (avr_out_movhi_mr_r_xmega): New static function. 32862 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA. 32863 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__, 32864 __RAMPD__, __CCP__ as needed. 32865 32866 * config/avr/multilib.h: Regenerate. 32867 * config/avr/t-multilib: Regenerate. 32868 * config/avr/avr-tables.opt: Regenerate. 32869 328702012-02-15 Tobias Grosser <grosser@fim.uni-passau.de> 32871 32872 PR tree-optimization/50561 32873 * graphite-flattening.c (lst_project_loop): Do not 32874 remove old scattering dimensions after flattening. 32875 (lst_do_flatten): Likewise. 32876 328772012-02-15 Georg-Johann Lay <avr@gjlay.de> 32878 32879 * doc/extend.texi (AVR Built-in Functions): Remove doc for 32880 __builtin_avr_map8, __builtin_avr_map16. 32881 Document __builtin_avr_insert_bits. 32882 32883 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove. 32884 (insert_bits): New insn. 32885 (adjust_len.map_bits): Rename to insert_bits. 32886 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS. 32887 * avr-protos.h (avr_out_map_bits): Remove. 32888 (avr_out_insert_bits, avr_has_nibble_0xf): New. 32889 * config/avr/constraints.md (Cxf,C0f): New. 32890 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in 32891 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16. 32892 New built-in define __BUILTIN_AVR_INSERT_BITS. 32893 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define. 32894 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS. 32895 (avr_move_bits): Rewrite. 32896 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static 32897 functions. 32898 (avr_map_op_t): New typedef. 32899 (avr_map_op): New static variable. 32900 (avr_out_insert_bits, avr_has_nibble_0xf): New functions. 32901 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS. 32902 (avr_init_builtins): Add definition for __builtin_avr_insert_bits. 32903 (bdesc_3arg, avr_expand_triop_builtin): New. 32904 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS. 32905 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove. 32906 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove. 32907 (avr_map_equal_p, avr_map_sig_p): Remove. 32908 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove. 32909 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16. 32910 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS. 32911 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16. 32912 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16. 32913 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16. 32914 329152012-02-14 Bernd Schmidt <bernds@codesourcery.com> 32916 32917 * config/c6x/c6x.md (reserve_cycles): New attribute. 32918 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate 32919 don't reserve functional units after the branch occurs. 32920 329212012-02-14 Aldy Hernandez <aldyh@redhat.com> 32922 32923 PR middle-end/52142 32924 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure 32925 functions into non-tm_pure functions. 32926 329272012-02-14 Eric Botcazou <ebotcazou@adacore.com> 32928 32929 PR lto/52178 32930 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P. 32931 (iterative_hash_canonical_type): Likewise. 32932 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all 32933 the dead edges. 32934 329352012-02-14 Bernd Schmidt <bernds@codesourcery.com> 32936 32937 * haifa-sched.c (prune_ready_list): Ensure that if there is a 32938 sched-group insn, it either remains alone or the entire list is pruned. 32939 329402012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com> 32941 32942 * doc/install.texi (Prerequisites): Fix grammar. 32943 (Configuration): Likewise. 32944 329452012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com> 32946 32947 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and 32948 MPC as part of GCC before describing configuring with --with-gmp etc. 32949 (Installing GCC: Configuration): --with-gmp etc. aren't needed if 32950 sources are present. 32951 329522012-02-14 Jakub Jelinek <jakub@redhat.com> 32953 32954 PR debug/51950 32955 * dwarf2out.c (clone_tree_hash): New function. 32956 (copy_decls_walk): Use it instead of clone_tree. 32957 329582012-02-14 Richard Guenther <rguenther@suse.de> 32959 32960 PR tree-optimization/52244 32961 PR tree-optimization/51528 32962 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE 32963 replacements for integral types. 32964 329652012-02-14 Walter Lee <walt@tilera.com> 32966 32967 * config.gcc: Handle tilegx and tilepro. 32968 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for 32969 tilegx and tilepro. 32970 Add HAVE_AS_TLS check for tilegx and tilepro. 32971 * configure: Regenerate. 32972 * doc/contrib.texi: Add Mat Hostetter and self. 32973 * doc/extend.texi (TILE-Gx Built-in Functions): New node. 32974 Document instruction intrinsics and network accessing intrinsics. 32975 (TILEPro Built-in Functions): New node. Document instruction 32976 intrinsics and network accessing intrinsics. 32977 * doc/install.texi (Specific, tilegx-*-linux*): Document it. 32978 (Specific, tilepro-*-linux*): Likewise. 32979 * doc/invoke.texi (TILE-Gx Options): New section. 32980 (TILEPro Options): New section. 32981 * doc/md.texi (TILE-Gx): New section. 32982 (TILEPro): New section. 32983 * common/config/tilegx/tilegx-common.c: New file. 32984 * common/config/tilepro/tilepro-common.c: New file. 32985 * config/tilegx/constraints.md: New file. 32986 * config/tilegx/linux.h: New file. 32987 * config/tilegx/mul-tables.c: New file. 32988 * config/tilegx/predicates.md: New file. 32989 * config/tilegx/sync.md: New file. 32990 * config/tilegx/t-tilegx: New file. 32991 * config/tilegx/tilegx-builtins.h: New file. 32992 * config/tilegx/tilegx-c.c: New file. 32993 * config/tilegx/tilegx-generic.md: New file. 32994 * config/tilegx/tilegx-modes.def: New file. 32995 * config/tilegx/tilegx-multiply.h: New file. 32996 * config/tilegx/tilegx-protos.h: New file. 32997 * config/tilegx/tilegx.c: New file. 32998 * config/tilegx/tilegx.h: New file. 32999 * config/tilegx/tilegx.md: New file. 33000 * config/tilegx/tilegx.opt: New file. 33001 * config/tilepro/constraints.md: New file. 33002 * config/tilepro/gen-mul-tables.cc: New file. 33003 * config/tilepro/linux.h: New file. 33004 * config/tilepro/mul-tables.c: New file. 33005 * config/tilepro/predicates.md: New file. 33006 * config/tilepro/t-tilepro: New file. 33007 * config/tilepro/tilepro-builtins.h: New file. 33008 * config/tilepro/tilepro-c.c: New file. 33009 * config/tilepro/tilepro-generic.md: New file. 33010 * config/tilepro/tilepro-modes.def: New file. 33011 * config/tilepro/tilepro-multiply.h: New file. 33012 * config/tilepro/tilepro-protos.h: New file. 33013 * config/tilepro/tilepro.c: New file. 33014 * config/tilepro/tilepro.h: New file. 33015 * config/tilepro/tilepro.md: New file. 33016 * config/tilepro/tilepro.opt: New file. 33017 330182012-02-14 Jakub Jelinek <jakub@redhat.com> 33019 33020 PR tree-optimization/52210 33021 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call 33022 vect_model_simple_cost with two entry vect_def_type array instead 33023 of an address of dt. 33024 330252012-02-14 Richard Guenther <rguenther@suse.de> 33026 33027 PR lto/52178 33028 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers): 33029 Do not stream DECL_QUALIFIER. 33030 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise. 33031 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER. 33032 (find_decls_types_r): Do not walk DECL_QUALIFIER. 33033 330342012-02-14 Jakub Jelinek <jakub@redhat.com> 33035 33036 PR c/52181 33037 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to 33038 newdecl. 33039 330402012-02-13 Jakub Jelinek <jakub@redhat.com> 33041 33042 PR bootstrap/52172 33043 * cselib.h (cselib_subst_to_values_from_insn): New prototype. 33044 * cselib.c (cselib_subst_to_values_from_insn): New function. 33045 * sched-deps.c (add_insn_mem_dependence, 33046 sched_analyze_1, sched_analyze_2): Use it. 33047 330482012-02-13 Jan Hubicka <jh@suse.cz> 33049 33050 PR middle-end/52214 33051 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch. 33052 330532012-02-13 Eric Botcazou <ebotcazou@adacore.com> 33054 33055 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm. 33056 (GTM_SELF_SPECS): Define if not already defined. 33057 (driver_self_specs): Add GTM_SELF_SPECS. 33058 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm. 33059 (GTM_SELF_SPECS): Define. 33060 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise. 33061 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise. 33062 330632012-02-13 Jakub Jelinek <jakub@redhat.com> 33064 33065 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right 33066 away if seen. 33067 33068 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL. 33069 33070 PR middle-end/52230 33071 * omp-low.c (expand_omp_for): If a static schedule without chunk size 33072 has NULL region->cont, force fd.chunk_size to be integer_zero_node. 33073 330742012-02-13 Andrew MacLeod <amacleod@redhat.com> 33075 33076 PR c/52190 33077 * doc/extend.texi : Fix another __atomic_compare_exchange typo. 33078 330792012-02-13 Richard Guenther <rguenther@suse.de> 33080 33081 PR translation/52211 33082 * passes.c (enable_disable_pass): Fix typo. 33083 330842012-02-13 Jakub Jelinek <jakub@redhat.com> 33085 33086 PR middle-end/52209 33087 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using 33088 XOR for reduce_bit_field if type is unsigned. 33089 330902012-02-12 Eric Botcazou <ebotcazou@adacore.com> 33091 33092 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode, 33093 disallow changes from SFmode to mode with different size in FP regs. 33094 330952012-02-12 Robert Millan <rmh@gnu.org> 33096 Gerald Pfeifer <gerald@pfeifer.com> 33097 33098 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define. 33099 Tweak comment. 33100 331012012-02-11 Richard Sandiford <rdsandiford@googlemail.com> 33102 33103 PR rtl-optimization/52175 33104 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization 33105 to frame-related instructions. 33106 331072012-02-10 Jason Merrill <jason@redhat.com> 33108 33109 PR c++/51910 33110 * tlink.c (demangled_hash_entry): Change mangled to a VEC. 33111 (demangle_new_symbols): Fill it. 33112 (scan_linker_output): Walk it. 33113 (start_tweaking): Split out from scan_linker_output. 33114 (maybe_tweak): Update sym->chosen. 33115 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o 33116 331172012-02-11 Jakub Jelinek <jakub@redhat.com> 33118 33119 PR debug/52132 33120 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg. 33121 331222012-02-11 Uros Bizjak <ubizjak@gmail.com> 33123 33124 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares 33125 having the same mode as previous compare. 33126 331272012-02-10 Eric Botcazou <ebotcazou@adacore.com> 33128 33129 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use. 33130 * config/sparc/sparc.md (UNSPECV_GOTO): Delete. 33131 (nonlocal_goto_internal): Likewise. 33132 (nonlocal_goto): Emit a use and an indirect jump directly. 33133 331342012-02-10 Andrew MacLeod <amacleod@redhat.com> 33135 33136 PR c/52190 33137 * doc/extend.texi : Update comments for __atomic_compare_exchange and 33138 __atomic_{is,always}_lock_free. 33139 331402012-02-10 Uros Bizjak <ubizjak@gmail.com> 33141 33142 PR target/52146 33143 * config/i386/i386.c (ix86_legitimate_address_p): Disallow 33144 negative constant address for TARGET_X32. 33145 331462012-02-10 Richard Henderson <rth@redhat.com> 33147 33148 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION. 33149 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands 33150 for GIMPLE_TRANSACTION. Tidy if's into a switch. 33151 331522012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 33153 Ira Rosen <irar@il.ibm.com> 33154 33155 PR tree-optimization/50031 33156 * targhooks.c (default_builtin_vectorization_cost): Handle 33157 vec_promote_demote. 33158 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote. 33159 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle 33160 all types of reduction and pattern statements. 33161 (vect_estimate_min_profitable_iters): Likewise. 33162 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function. 33163 (vect_get_load_cost): Use vec_perm for permutations; add dump logic 33164 for explicit realigns. 33165 (vectorizable_conversion): Call vect_model_promotion_demotion_cost. 33166 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle 33167 vec_promote_demote. 33168 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise. 33169 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update 33170 vec_perm for VSX and handle vec_promote_demote. 33171 331722012-02-10 Jakub Jelinek <jakub@redhat.com> 33173 33174 PR middle-end/52177 33175 * builtins.c (fold_builtin_atomic_always_lock_free, 33176 expand_builtin_atomic_always_lock_free, 33177 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free): 33178 Return and/or test boolean_true_node/boolean_false_node instead of 33179 integer_one_node/integer_zero_node. 33180 331812012-02-10 Jan Hubicka <jh@suse.cz> 33182 33183 PR middle-end/48600 33184 * predict.c (predict_paths_for_bb): Prevent looping. 33185 (predict_paths_leading_to_edge, predict_paths_leading_to): Update. 33186 331872012-02-10 Roman Zhuykov <zhroma@ispras.ru> 33188 33189 * config/arm/arm.c (output_move_double): In one case properly 33190 count number of instructions that will be emitted. 33191 331922012-02-10 Richard Guenther <rguenther@suse.de> 33193 33194 PR translation/52193 33195 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo. 33196 331972012-02-09 Peter Bergner <bergner@vnet.ibm.com> 33198 33199 PR middle-end/52140 33200 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P. 33201 332022012-02-09 Jakub Jelinek <jakub@redhat.com> 33203 33204 PR debug/52165 33205 * var-tracking.c (emit_note_insn_var_location): If 33206 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION, 33207 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION 33208 non-NOTE_DURING_CALL_P insn. 33209 332102012-02-09 Bin Cheng <bin.cheng@arm.com> 33211 33212 PR middle-end/51867 33213 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P. 33214 332152012-02-08 Magnus Granberg <zorry@gentoo.org> 33216 33217 PR driver/48524 33218 * gcc.c (switch_matches) Support switches with separated form, 33219 -D and -U. 33220 332212012-02-08 Georg-Johann Lay <avr@gjlay.de> 33222 33223 * config/avr/avr.md (SREG_ADDR): Remove constant definition. 33224 (SP_ADDR): Ditto. 33225 (RAMPZ_ADDR): Ditto. 33226 * config/avr/avr.c (avr_addr_t): New typedef. 33227 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG. 33228 (avr_init_expanders): Initialize it. 33229 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR, 33230 SREG_ADDR. 33231 (expand_epilogue): Ditto. 33232 (avr_print_operand): Ditto. 33233 (avr_file_start): Ditto. 33234 (avr_emit_movmemhi): Ditto. 33235 332362012-02-08 Richard Guenther <rguenther@suse.de> 33237 33238 PR tree-optimization/46886 33239 * tree-flow.h (do_while_loop_p): Declare. 33240 * tree-ssa-loop-ch.c (do_while_loop_p): Export. 33241 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops. 33242 332432012-02-08 Andrew MacLeod <amacleod@redhat.com> 33244 33245 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will 33246 always succeed for integers larger than a native word. 33247 332482012-02-08 Richard Guenther <rguenther@suse.de> 33249 33250 PR rtl-optimization/52170 33251 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to 33252 properly handle integer vector modes. 33253 332542012-02-08 Jakub Jelinek <jakub@redhat.com> 33255 33256 PR gcov-profile/52150 33257 * coverage.c: Include target.h. 33258 (build_var): Call targetm.strip_name_encoding on the assembler name. 33259 Change one _ into . or $ if the target allows it. 33260 * Makefile.in (coverage.o): Depend on $(TARGET_H). 33261 33262 PR rtl-optimization/52139 33263 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END 33264 is a BARRIER after emit_insn_after_noloc, move BB_END 33265 to the last non-BARRIER insn before it. 33266 332672012-02-07 Richard Sandiford <rdsandiford@googlemail.com> 33268 33269 PR middle-end/24306 33270 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function. 33271 (mips_gimplify_va_arg_expr): Call it instead of 33272 std_gimplify_va_arg_expr. 33273 332742012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> 33275 33276 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error 33277 message for -mno-pointers-to-nested-function. 33278 332792012-02-07 Eric Botcazou <ebotcazou@adacore.com> 33280 33281 PR middle-end/51994 33282 * expr.c (get_inner_reference): If there is an offset, add a negative 33283 bit position to it (if any). 33284 332852012-02-07 Jakub Jelinek <jakub@redhat.com> 33286 33287 PR rtl-optimization/52060 33288 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables, 33289 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already 33290 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy 33291 and/or i0src_copy2 when needed. 33292 332932012-02-07 Jakub Jelinek <jakub@redhat.com> 33294 33295 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper 33296 or LTOPLUGINSONAME if have_c. 33297 33298 * config/freebsd-spec.h: Add comment about what macros can be defined 33299 in this header. 33300 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here. 33301 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But 33302 here instead. 33303 333042012-02-07 Richard Guenther <rguenther@suse.de> 33305 33306 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive 33307 newline in -alias dumps. 33308 333092012-02-07 Kai Tietz <ktietz@redhat.com> 33310 Dave Korn <dave.korn.cygwin@gmail.com> 33311 33312 PR target/40068 33313 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): 33314 Take care that typinfo gets dllexport-attribute. 33315 333162012-02-07 Jakub Jelinek <jakub@redhat.com> 33317 33318 PR middle-end/52074 33319 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL 33320 if modifier < EXPAND_SUM call force_operand on the result. 33321 333222012-02-07 Joern Rennecke <joern.rennecke@embecosm.com> 33323 33324 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine, 33325 adding __forwarder_dst__ prefix if a forwarder_section attribute is 33326 present. 33327 (epiphany_function_type): Replace types for specific interrupts with 33328 EPIPHANY_FUNCTION_INTERRUPT. 33329 (EPIPHANY_INTERRUPT_P): Update. 33330 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute): 33331 New static function. 33332 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9. 33333 <disinterrupt>: Affects type identity. 33334 (epiphany_handle_interrupt_attribute): Handle variable number of 33335 arguments. 33336 (epiphany_compute_function_type): Update for new 33337 epiphany_function_type definition. 33338 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt 33339 handlers with a longcall forwarder. 33340 (epiphany_start_function): Handle multiple interrupt arguments and/or 33341 forwarder_section attribute. 33342 33343 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after 33344 libgloss. 33345 333462012-02-07 Alan Modra <amodra@gmail.com> 33347 33348 PR target/52107 33349 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode 33350 subregs of TFmode. 33351 333522012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 33353 33354 PR tree-optimization/50969 33355 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to 33356 use vec_perm rather than vector_stmt. 33357 (vect_model_load_cost): Likewise. 33358 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of 33359 vec_perm to be the same as other vector statements. 33360 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise 33361 cost of vec_perm for TARGET_VSX. 33362 333632012-02-06 Richard Guenther <rguenther@suse.de> 33364 33365 PR tree-optimization/52115 33366 * tree-sra.c (access_has_replacements_p): New function. 33367 (sra_modify_assign): Use it to decide whether a use is uninitialized. 33368 333692012-02-06 Patrick Marlier <patrick.marlier@gmail.com> 33370 33371 PR middle-end/52047 33372 * trans-mem.c (expand_call_tm): Add an assertion. 33373 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops' 33374 functions. 33375 333762012-02-06 Richard Guenther <rguenther@suse.de> 33377 33378 PR tree-optimization/50955 33379 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially 33380 raise cost of expressions that replace an address with an 33381 expression based on a different pointer. 33382 333832012-02-06 Jakub Jelinek <jakub@redhat.com> 33384 33385 PR target/52129 33386 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is 33387 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it. 33388 333892012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com> 33390 33391 PR c++/48680 33392 * doc/invoke.texi (C++ Dialect Options): Use @option markup for 33393 -Weffc++ and specify guidelines come from second edition. 33394 333952012-02-05 Richard Sandiford <rdsandiford@googlemail.com> 33396 33397 * config/mips/mips.md (sibcall_internal, sibcall_value_internal) 33398 (sibcall_value_multiple_internal, call_split, call_internal_direct) 33399 (call_direct_split, call_value_split, call_value_internal_direct) 33400 (call_value_direct_split, call_value_multiple_split): Use jal and 33401 jal_macro attributes. 33402 334032012-02-05 Richard Sandiford <rdsandiford@googlemail.com> 33404 33405 * reload1.c (reload_regs_reach_end_p): Replace with... 33406 (reload_reg_rtx_reaches_end_p): ...this function. 33407 (new_spill_reg_store): Update commentary. 33408 (emit_input_reload_insns): Don't clear new_spill_reg_store here. 33409 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p 33410 before setting new_spill_reg_store. 33411 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store. 33412 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p. 33413 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store 33414 for non-spill reload registers. 33415 334162012-02-05 Ira Rosen <irar@il.ibm.com> 33417 33418 PR tree-optimization/52091 33419 * tree-vectorizer.h (vect_is_simple_use): Add an argument. 33420 (vect_is_simple_use_1): Likewise. 33421 * tree-vect-loop.c (vectorizable_reduction): Update calls 33422 to vect_is_simple_use_1 and vect_is_simple_use. 33423 (vectorizable_live_operation): Likewise. 33424 * tree-vect-patterns.c (widened_name_p, 33425 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise. 33426 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand, 33427 vectorizable_call, vectorizable_conversion, vectorizable_assignment, 33428 vectorizable_shift,vectorizable_operation, vectorizable_store, 33429 vectorizable_load): Likewise. 33430 (vect_is_simple_cond): Add an argument, pass it to 33431 vect_is_simple_use_1. 33432 (vectorizable_condition): Update calls to vect_is_simple_cond, 33433 vect_is_simple_use. 33434 (vect_is_simple_use): Add an argument, the statement in which 33435 OPERAND is used. Check that if OPERAND's def stmt is a double 33436 reduction phi node, the use is a phi node too. 33437 (vect_is_simple_use_1): Add an argument, pass it to 33438 vect_is_simple_use. 33439 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call 33440 to vect_is_simple_use. 33441 334422012-02-04 Jakub Jelinek <jakub@redhat.com> 33443 33444 PR rtl-optimization/52095 33445 * modulo-sched.c (dump_insn_locator): New function. 33446 (loop_canon_p, sms_schedule): Use it. 33447 33448 PR rtl-optimization/52113 33449 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized 33450 even for decomposable shift/zext insns. 33451 334522012-02-03 Jakub Jelinek <jakub@redhat.com> 33453 Zdenek Dvorak <ook@ucw.cz> 33454 33455 PR rtl-optimization/52092 33456 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared 33457 on get_iv_value result. 33458 334592012-02-02 Andrew Pinski <apinski@cavium.com> 33460 33461 PR middle-end/47982 33462 PR middle-end/43967 33463 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo. 33464 334652012-02-02 Jakub Jelinek <jakub@redhat.com> 33466 33467 PR middle-end/48071 33468 * diagnostic.c (diagnostic_finish): Remove trailing newlines. 33469 334702012-02-02 Vladimir Makarov <vmakarov@redhat.com> 33471 33472 PR rtl-optimization/49800 33473 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs. 33474 (sched_finish): Call regstat_free_n_sets_and_refs. 33475 334762012-02-02 Jia Liu <proljc@gmail.com> 33477 33478 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather 33479 than operand 2. 33480 334812012-02-02 Jan Hubicka <jh@suse.cz> 33482 Tom de Vries <tom@codesourcery.com> 33483 33484 PR middle-end/51998 33485 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases. 33486 * varpool.c (varpool_analyze_pending_decls): Likewise. 33487 334882012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com> 33489 Jayant R Sonar <jayant.sonar@kpitcummins.com> 33490 33491 * config.gcc: Add cr16-* support. 33492 33493 * doc/extend.texi: Document cr16 extensions. 33494 * doc/install.texi: Document cr16 install. 33495 * doc/invoke.texi: Document cr16 options. 33496 * doc/md.texi: Document cr16 constraints. 33497 33498 * common/config/cr16/cr16-common.c: New file. 33499 * config/cr16/cr16.c: New file. 33500 * config/cr16/cr16.h: New file. 33501 * config/cr16/cr16.md: New file. 33502 * config/cr16/cr16.opt: New file. 33503 * config/cr16/cr16-protos.h: New file. 33504 * config/cr16/predicates.md: New file. 33505 * config/cr16/constraints.md: New file. 33506 * config/cr16/t-cr16: New file. 33507 335082012-02-02 Jakub Jelinek <jakub@redhat.com> 33509 33510 PR target/52086 33511 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check 33512 that operands[2] is either immediate, or q_regs_operand. 33513 33514 PR tree-optimization/52073 33515 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of 33516 a pattern stmt for pattern uses, ignore uses outside of the loop. 33517 335182012-02-01 Georg-Johann Lay <avr@gjlay.de> 33519 33520 * config/avr/avr.c: Resolve all AS1 and AS2 macros. 33521 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove. 33522 (OUT_AS1, OUT_AS2): Remove. 33523 335242012-02-01 Georg-Johann Lay <avr@gjlay.de> 33525 33526 PR rtl-optimization/51374 33527 * combine.c (can_combine_p): Don't allow volatile_refs_p insns 33528 to cross other volatile_refs_p insns. 33529 335302012-02-01 Richard Guenther <rguenther@suse.de> 33531 33532 * doc/invoke.texi (fno-inline): Clarify documentation. 33533 (finline-small-functions): Likewise. 33534 (finline-functions): Likewise. 33535 * common.opt (finline): Adjust comment and documentation. 33536 (finline-small-functions): Clarify documentation. 33537 (finline-functions): Likewise. 33538 (finline-functions-called-once): Likewise. 33539 335402012-02-01 Tristan Gingold <gingold@adacore.com> 33541 33542 * c-typeck.c (composite_type): Keep mode for pointers. 33543 335442012-01-31 Richard Sandiford <rdsandiford@googlemail.com> 33545 33546 * function.h (regno_reg_rtx): Adjust comment. 33547 * reginfo.c (init_reg_modes_target): Only use the previous mode 33548 if it fits within one register. Remove MIPS comment. 33549 335502012-01-31 Jakub Jelinek <jakub@redhat.com> 33551 33552 PR bootstrap/52058 33553 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0. 33554 335552012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 33556 33557 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag 33558 to srak instruction. 33559 335602012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 33561 33562 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition. 33563 335642012-01-31 Jakub Jelinek <jakub@redhat.com> 33565 33566 PR bootstrap/52041 33567 PR bootstrap/52039 33568 PR target/51974 33569 * ipa-prop.c (detect_type_change_1): Call ao_ref_init. 33570 335712012-01-31 Richard Guenther <rguenther@suse.de> 33572 33573 PR tree-optimization/51528 33574 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate 33575 assigns. 33576 335772012-01-31 Jakub Jelinek <jakub@redhat.com> 33578 33579 PR bootstrap/52041 33580 PR bootstrap/52039 33581 PR target/51974 33582 * ree.c (add_removable_extension): Change def_map argument 33583 to unsigned *, store in def_map 1 + offset into *insn_list vector 33584 instead of pointers into the vector. 33585 (find_removable_extensions): Adjust caller. 33586 335872012-01-30 Georg-Johann Lay <avr@gjlay.de> 33588 33589 * config/avr/avr.md: Resolve all AS1 and AS2 macros. 33590 Transform all "* quoted-c-code" to { c-code }. 33591 Remove redundant test for "optimize" in combine patterns. 33592 Move (include "avr-dimode.md") to end of file. 33593 335942012-01-30 Bin Cheng <bin.cheng@arm.com> 33595 33596 PR target/51835 33597 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI 33598 for __aeabi_d2iz/__aeabi_d2uiz with hard-float. 33599 336002012-01-30 Richard Guenther <rguenther@suse.de> 33601 33602 PR tree-optimization/52028 33603 * tree-loop-distribution.c (ldist_gen): Properly update 33604 virtual SSA form. 33605 336062012-01-30 Jakub Jelinek <jakub@redhat.com> 33607 33608 PR debug/52027 33609 * dwarf2out.c (dwarf2out_switch_text_section): Don't call 33610 set_cur_line_info_table if not emitting debug info. 33611 33612 PR tree-optimization/52046 33613 * tree-vect-patterns.c (check_bool_pattern): Give up if 33614 a comparison could throw. 33615 33616 PR debug/52048 33617 * tree-ssa-tail-merge.c (local_def): Ignore debug uses. 33618 336192012-01-30 Richard Guenther <rguenther@suse.de> 33620 33621 PR tree-optimization/52045 33622 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update 33623 SSA form if cfgcleanup did anything. 33624 336252012-01-30 Richard Guenther <rguenther@suse.de> 33626 33627 PR tree-optimization/52045 33628 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg 33629 before computing final todo. 33630 336312012-01-30 Richard Guenther <rguenther@suse.de> 33632 33633 PR tree-optimization/51528 33634 * tree-sra.c (sra_modify_assign): Re-factor in preparation 33635 for PR51528 fix. 33636 336372012-01-30 Paolo Bonzini <bonzini@gnu.org> 33638 33639 * df-problems.c (df_kill_notes): Check that the use refers 33640 to the note under examination. 33641 336422012-01-30 Eric Botcazou <ebotcazou@adacore.com> 33643 33644 PR target/51920 33645 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE 33646 parameter and use short-lived pseudos. 33647 (vector_init_faligndata): Remove INNER_MODE parameter and use loop. 33648 (sparc_expand_vector_init): Const-ify local variables and adjust 33649 calls to above functions. 33650 336512012-01-30 Georg-Johann Lay <avr@gjlay.de> 33652 33653 * config/avr/avr.c (out_movqi_mr_r): Fix length computation. 33654 336552012-01-29 Sandra Loosemore <sandra@codesourcery.com> 33656 33657 * doc/invoke.texi: Make usage of "compile time" and 33658 "run time"/"runtime" consistent throughout the file. 33659 336602012-01-29 Uros Bizjak <ubizjak@gmail.com> 33661 33662 * config/alpha/alpha.c (alpha_option_override): Default to 33663 full IEEE compliance mode for Go language. 33664 336652012-01-29 Tijl Coosemans <tijl@coosemans.org> 33666 33667 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP] 33668 (LINK_SSP_SPEC): Define. 33669 336702012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 33671 33672 PR target/51871 33673 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export 33674 stubs. 33675 336762012-01-28 Sandra Loosemore <sandra@codesourcery.com> 33677 33678 * doc/invoke.texi: Correct hyphenation of "floating point", 33679 "double precision", and related terminology throughout the file. 33680 336812012-01-28 Jakub Jelinek <jakub@redhat.com> 33682 33683 PR target/52006 33684 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use 33685 arm_general_register_operand predicate for operand 2 instead of 33686 register_operand. 33687 336882012-01-27 Ian Lance Taylor <iant@google.com> 33689 33690 PR go/47656 33691 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define. 33692 * builtins.c (expand_builtin_init_trampoline): Add onstack 33693 parameter. Change caller. 33694 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE. 33695 * tree.c (build_common_builtin_nodes): Declare 33696 __builtin_init_heap_trampoline. 33697 336982012-01-27 Georg-Johann Lay <avr@gjlay.de> 33699 33700 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx, 33701 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global. 33702 * config/avr/avr.c: Ditto. 33703 (avr_regnames): Remove because unused. 33704 * config/avr/avr.md (*cpse.ne): New peephole. 33705 (*cpse.eq): New peephole from former cpse peepholes. 33706 337072012-01-27 Michael Eager <eager@eagercon.com> 33708 33709 * config/microblaze.c (microblaze_emit_compare): Correct 33710 test after pcmp instruction. 33711 337122012-01-27 Richard Guenther <rguenther@suse.de> 33713 33714 PR tree-optimization/52020 33715 * tree-sra.c (sra_modify_assign): Do not transform clobbers. 33716 337172012-01-27 Richard Guenther <rguenther@suse.de> 33718 33719 * ipa-pure-const.c (check_stmt): Clobbers do not make a 33720 function non-const/pure. 33721 337222012-01-27 Richard Guenther <rguenther@suse.de> 33723 33724 PR tree-optimization/50444 33725 * tree-sra.c (build_ref_for_offset): Properly adjust the 33726 MEM_REF type for unaligned accesses. 33727 337282012-01-27 Richard Guenther <rguenther@suse.de> 33729 33730 PR tree-optimization/50444 33731 * expr.c (mem_ref_refers_to_non_mem_p): New function. 33732 (expand_assignment): Use it. Properly handle misaligned 33733 bases when expanding stores to component references. 33734 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and 33735 refactor that case. 33736 337372012-01-27 Andrey Belevantsev <abel@ispras.ru> 33738 33739 PR middle-end/51389 33740 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H). 33741 * tree-data-ref.h (find_data_references_in_loop): Remove declaration. 33742 * tree-data-ref.c (find_data_references_in_loop): Make static. 33743 (compute_all_dependences): Change return type to bool. Bail out 33744 for too many datarefs in a loop. Move the hunk resetting the data 33745 dependences vector from ... 33746 (compute_data_dependences_for_loop): ... here. Account for 33747 compute_all_dependences returning false. 33748 (compute_data_dependences_for_bb): Likewise. 33749 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param. 33750 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it. 33751 337522012-01-27 Richard Guenther <rguenther@suse.de> 33753 33754 PR middle-end/51959 33755 * expr.c (store_field): Use the alias-set of the scratch memory 33756 for storing to it. 33757 337582012-01-27 Tom de Vries <tom@codesourcery.com> 33759 33760 PR tree-optimization/51990 33761 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle 33762 WITH_SIZE_EXPR. 33763 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same. 33764 337652012-01-27 Jakub Jelinek <jakub@redhat.com> 33766 33767 PR debug/52001 33768 * var-tracking.c (reverse_op): Don't add any reverse operation 33769 if V already has any constant locations. 33770 337712012-01-27 Sandra Loosemore <sandra@codesourcery.com> 33772 33773 * doc/invoke.texi: Correct usage of "command line" (noun) 33774 vs "command-line" (adjective) throughout. 33775 337762012-01-27 Sandra Loosemore <sandra@codesourcery.com> 33777 33778 * doc/invoke.texi (Language Independent Options): Move 33779 -Wcoverage-mismatch blurb from here.... 33780 (Warning Options): ...to here. 33781 337822012-01-27 Peter Bergner <bergner@vnet.ibm.com> 33783 33784 * config/rs6000/rs6000.c (rs6000_option_override_internal): 33785 Set rs6000_always_hint to false for 476. 33786 337872012-01-27 Matthias Klose <doko@ubuntu.com> 33788 33789 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from 33790 system root. 33791 * incpath.c (add_standard_paths): Likewise. 33792 337932012-01-27 Richard Henderson <rth@redhat.com> 33794 33795 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New. 33796 * config/m68k/sync.md (atomic_test_and_set): Rename from 33797 sync_test_and_setqi and adjust the operands. 33798 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1 33799 and unconditionally enable. 33800 338012012-01-27 Richard Henderson <rth@redhat.com> 33802 33803 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New. 33804 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode. 33805 (ldstub): Rename from ldstubqi. 33806 (ldstub<I24MODE>): Remove. 33807 338082012-01-27 Richard Henderson <rth@redhat.com> 33809 33810 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New. 33811 * c-cppbuiltin.c (cpp_atomic_builtins): Define 33812 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL. 33813 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook. 33814 * doc/tm.texi: Rebuild. 33815 338162012-01-27 Richard Henderson <rth@redhat.com> 33817 33818 * optabs.c (gen_atomic_test_and_set): Remove default. 33819 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn. 33820 338212012-01-26 Jakub Jelinek <jakub@redhat.com> 33822 33823 PR rtl-optimization/51978 33824 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx. 33825 (combine_reaching_defs): Likewise. 33826 (struct re_info): Remove. 33827 (add_removable_extension): Remove x and data arguments, 33828 add insn, insn_list and def_map. Use the arguments directly 33829 instead of using struct re_info. 33830 (find_removable_extensions): Don't call add_removable_extension 33831 through note_stores, instead just call it with single_set 33832 result if non-NULL. 33833 (find_and_remove_re): Pass curr_cand->expr instead of 33834 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs. 33835 338362012-01-26 Michael Matz <matz@suse.de> 33837 33838 PR tree-optimization/46590 33839 * cfgexpand.c: Revert last change (r183305). 33840 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple 33841 regs. 33842 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before 33843 checking for emptiness. 33844 338452012-01-26 Jakub Jelinek <jakub@redhat.com> 33846 33847 PR middle-end/51895 33848 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of 33849 non-addressable non-BLKmode base correctly. 33850 338512012-01-26 Michael Matz <matz@suse.de> 33852 33853 PR tree-optimization/48794 33854 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove 33855 regions referenced from RESX/EH_DISPATCH. 33856 338572012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 33858 33859 * config/s390/s390.h: Make BRANCH_COST an option. 33860 * config/s390/s390.opt: New option -mbranch-cost. 33861 338622012-01-26 Richard Henderson <rth@redhat.com> 33863 33864 Revert 2012-01-24 change: 33865 * trans-mem.c (requires_barrier): Do not instrument thread local 33866 variables and emit save/restore for them. 33867 338682012-01-25 Jakub Jelinek <jakub@redhat.com> 33869 33870 PR middle-end/51986 33871 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test 33872 for pat == 0. 33873 338742012-01-25 Richard Sandiford <rdsandiford@googlemail.com> 33875 33876 * config/mips/mips.c (mips_small_data_pattern_1): Don't process 33877 ASM_OPERANDS. 33878 338792012-01-25 Georg-Johann Lay <avr@gjlay.de> 33880 33881 PR target/49868 33882 Rename __pgm to __flash. 33883 Rename __pgm1 to __flash1. 33884 Rename __pgm2 to __flash2. 33885 Rename __pgm3 to __flash3. 33886 Rename __pgm4 to __flash4. 33887 Rename __pgm5 to __flash5. 33888 Rename __pgmx to __memx. 33889 * doc/extend.texi (AVR Named Address Spaces) 33890 Rename address space names as indicated above. 33891 * config/avr/avr.c (avr_addrspace): Ditto. 33892 33893 * config/avr/avr-protos.h 33894 (avr_mem_pgmx_p): Rename to avr_mem_memx_p. 33895 (avr_mem_pgm_p): Rename to avr_mem_flash_p. 33896 * config/avr/predicates.md: Ditto. 33897 * config/avr/avr.c Ditto, and 33898 (avr_decl_pgmx_p): Rename to avr_decl_memx_p. 33899 (avr_decl_pgm_p): Rename to avr_decl_flash_p. 33900 33901 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH. 33902 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1. 33903 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2. 33904 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3. 33905 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4. 33906 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5. 33907 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX. 33908 * config/avr/avr.c: Ditto. 33909 * config/avr/avr.md: Ditto. 33910 339112012-01-25 Jason Merrill <jason@redhat.com> 33912 33913 PR c++/51992 33914 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype. 33915 339162012-01-25 Jakub Jelinek <jakub@redhat.com> 33917 33918 PR tree-optimization/51987 33919 * tree-data-ref.c (get_references_in_stmt): Handle references in 33920 non-volatile GIMPLE_ASM. 33921 339222012-01-25 Richard Guenther <rguenther@suse.de> 33923 33924 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both 33925 bases are dereferenced. 33926 339272012-01-25 Andrey Belevantsev <abel@ispras.ru> 33928 33929 PR rtl-optimization/48374 33930 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors. 33931 339322012-01-25 Andrey Belevantsev <abel@ispras.ru> 33933 33934 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when 33935 compute_data_dependences_for_loop returns false. 33936 * tree-parloops.c (loop_parallel_p): Likewise. 33937 339382012-01-25 Richard Guenther <rguenther@suse.de> 33939 33940 * tree.h (get_pointer_alignment_1): Declare. 33941 * builtins.c (get_pointer_alignment_1): New function. 33942 (get_pointer_alignment): Use it. 33943 339442012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 33945 33946 PR rtl-optimization/48308 33947 * combine.c (enum undo_kind): Add UNDO_LINKS. 33948 (struct undo): Add member l to other_contents and where. 33949 (do_SUBST_LINK): New. 33950 (SUBST_LINK): New. 33951 (try_combine): Handle LOG_LINKS for the dummy i1 case. 33952 (undo_all): Handle UNDO_LINKS. 33953 339542012-01-25 Richard Henderson <rth@redhat.com> 33955 33956 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode 33957 mem inputs. 33958 339592012-01-24 Richard Sandiford <rdsandiford@googlemail.com> 33960 33961 * optabs.c (gen_atomic_test_and_set): Use each argument. 33962 339632012-01-24 Richard Sandiford <rdsandiford@googlemail.com> 33964 33965 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf) 33966 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>) 33967 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t) 33968 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>) 33969 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than 33970 TARGET_PAIRED_SINGLE_FLOAT. 33971 339722012-01-24 Richard Sandiford <rdsandiford@googlemail.com> 33973 33974 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete. 33975 (in_struct, return_val): Remove MEM documentation. 33976 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val. 33977 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete. 33978 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P 33979 and MEM_SCALAR. 33980 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. 33981 * cfgexpand.c (add_alias_set_conflicts): Likewise. 33982 * expr.c (store_field): Likewise. 33983 * function.c (assign_stack_temp_for_type): Likewise. 33984 * ifcvt.c (noce_try_cmove_arith): Likewise. 33985 * reload1.c (reload): Likewise. 33986 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise. 33987 (alpha_set_memflags): Likewise. 33988 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify. 33989 339902012-01-24 Richard Sandiford <rdsandiford@googlemail.com> 33991 33992 * rtl.h (true_dependence, canon_true_dependence): Remove varies 33993 parameter. 33994 * alias.c (fixed_scalar_and_varying_struct_p): Delete. 33995 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it. 33996 (true_dependence_1, true_dependence, canon_true_dependence): Remove 33997 varies parameter. 33998 * cselib.c (cselib_rtx_varies_p): Delete. 33999 (cselib_invalidate_mem): Update call to canon_true_dependence. 34000 * dse.c (record_store, check_mem_read_rtx): Likewise. 34001 (scan_reads_nospill): Likewise. 34002 * cse.c (check_dependence): Likewise. 34003 (cse_rtx_varies_p): Delete. 34004 * expr.c (safe_from_p): Update call to true_dependence. 34005 * ira.c (validate_equiv_mem_from_store): Likewise. 34006 (memref_referenced_p): Likewise. 34007 * postreload-gcse.c (find_mem_conflicts): Likewise. 34008 * sched-deps.c (sched_analyze_2): Likewise. 34009 * store-motion.c (load_kills_store): Likewise. 34010 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise. 34011 * gcse.c (mems_conflict_for_gcse_p): Likewise. 34012 (compute_transp): Update call to canon_true_dependence. 34013 340142012-01-25 Richard Henderson <rth@redhat.com> 34015 34016 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default. 34017 (maybe_emit_atomic_test_and_set): New. 34018 (expand_sync_lock_test_and_set): Use it. 34019 (expand_atomic_test_and_set): Likewise. 34020 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match 34021 the implementation; clarify implementation defined details. 34022 * doc/md.texi (atomic_test_and_set): Document. 34023 340242012-01-25 Richard Henderson <rth@redhat.com> 34025 34026 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code. 34027 340282012-01-25 Richard Henderson <rth@redhat.com> 34029 34030 PR target/51968 34031 * config/arm/arm.c (neon_split_vcombine): Emit deleted note 34032 to effect no-op split. 34033 340342012-01-24 Aldy Hernandez <aldyh@redhat.com> 34035 34036 PR lto/51698 34037 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New. 34038 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New. 34039 (BT_FN_VOID_PTR_INT_SIZE): New. 34040 (BT_FN_UINT_UINT_VAR): Remove. 34041 (BT_FN_UINT32_UINT32_VAR): New. 34042 (BT_FN_DOUBLE_VPTR): Remove. 34043 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New. 34044 34045 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void. 34046 (_ITM_changeTransactionMode): Same. 34047 (_ITM_memmoveRtWt): Change return type to void. 34048 (_ITM_memcpyRtWt): Same. 34049 (_ITM_memsetW): Same. 34050 (_ITM_RaRD): Change types to double. 34051 (_ITM_RD): Same. 34052 (_ITM_RaWD): Same. 34053 (_ITM_RfWD): Same. 34054 34055 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true. 34056 340572012-01-24 Aldy Hernandez <aldyh@redhat.com> 34058 Patrick Marlier <patrick.marlier@gmail.com> 34059 34060 * trans-mem.c (requires_barrier): Do not instrument thread local 34061 variables and emit save/restore for them. 34062 340632012-01-24 Jason Merrill <jason@redhat.com> 34064 34065 PR c++/51812 34066 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always 34067 output static aliases. 34068 340692012-01-24 Jakub Jelinek <jakub@redhat.com> 34070 34071 PR driver/47249 34072 * common.opt (-pie, -shared, pie, shared): Change from Common to 34073 Driver. 34074 * gcc.c (display_help): Display help for -pie and -shared. 34075 340762012-01-24 Georg-Johann Lay <avr@gjlay.de> 34077 34078 PR target/49868 34079 * doc/extend.texi (AVR Named Address Spaces): Move sample code up. 34080 Remove note on size/offset limitation. 34081 (AVR Variable Attributes): Add example how to read data located 34082 with progmem. Refer to named address spaces. 34083 * doc/invoke.texi (AVR Options): Fix typo. 34084 340852012-01-24 Richard Guenther <rguenther@suse.de> 34086 34087 Forward-port to trunk 34088 2010-09-21 Jakub Jelinek <jakub@redhat.com> 34089 34090 PR middle-end/45678 34091 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If 34092 op0 isn't sufficiently aligned and there is movmisalignM 34093 insn for mode, use it to load op0 into a temporary register. 34094 340952012-01-24 Jakub Jelinek <jakub@redhat.com> 34096 34097 PR target/51957 34098 * target.def (const_not_ok_for_debug_p): New hook. 34099 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook 34100 documentation. 34101 * doc/tm.texi: Regenerated. 34102 * dwarf2out.c (const_ok_for_output_1): If 34103 targetm.const_not_ok_for_debug_p returns true, fail. 34104 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New 34105 function. 34106 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine. 34107 341082012-01-23 Kai Tietz <ktietz@redhat.com> 34109 34110 PR target/51900 34111 * config/i386/predicates.md (symbolic_operand): Allow 34112 UNSPEC_PCREL as PIC expression for lea. 34113 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked. 34114 * config/i386/i386.c (ix86_delegitimize_address): Handle 34115 UNSPEC_PCREL for none-MEM, too. 34116 341172012-01-23 Aldy Hernandez <aldyh@redhat.com> 34118 34119 * trans-mem.c (ipa_tm_create_version): Set externally_visible. 34120 (ipa_tm_create_version_alias): Same. 34121 341222012-01-23 Uros Bizjak <ubizjak@gmail.com> 34123 34124 PR libitm/51830 34125 * builtin-types.def (BT_FN_UINT_UINT_VAR): New. 34126 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR. 34127 341282012-01-23 Aldy Hernandez <aldyh@redhat.com> 34129 Patrick Marlier <patrick.marlier@gmail.com> 34130 Iain Sandoe <developer@sandoe-acoustics.co.uk> 34131 34132 PR lto/51916 34133 * lto-wrapper.c (run_gcc): Pass the LTO section name to 34134 simple_object_start_read. 34135 341362012-01-23 Richard Guenther <rguenther@suse.de> 34137 34138 34139 PR tree-optimization/51895 34140 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal 34141 parameter decomposition into BLKmode components. 34142 341432012-01-23 Eric Botcazou <ebotcazou@adacore.com> 34144 34145 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create 34146 fake variables for restrict-qualified pointers whose pointed-to type 34147 contains a placeholder. 34148 341492012-01-23 Richard Guenther <rguenther@suse.de> 34150 34151 PR tree-optimization/51949 34152 * ipa-split.c (execute_split_functions): Do not split malloc functions. 34153 341542012-01-23 Jakub Jelinek <jakub@redhat.com> 34155 34156 PR rtl-optimization/51933 34157 * ree.c (transform_ifelse): Return true right away if dstreg is 34158 already wider or equal to cand->mode. 34159 (enum ext_modified_kind, struct ext_modified, ext_state): New types. 34160 (make_defs_and_copies_lists): Remove defs_list and copies_list 34161 arguments, add state argument, just truncate state->work_list 34162 instead of always allocating and freeing the vector. Assert that 34163 get_defs succeeds instead of returning 2. Changed return type to bool. 34164 (merge_def_and_ext): Add state argument. If SET_DEST doesn't 34165 have ext_src_mode, see if it has been modified already with the 34166 right kind of extension and has been extended before from the 34167 ext_src_mode. If SET_DEST is already wider or equal to cand->mode, 34168 just return true. Remember the original mode in state->modified array. 34169 (combine_reaching_defs): Add state argument. Don't allocate and 34170 free here def_list, copied_list and vec vectors, instead just 34171 VEC_truncate the vectors in *state. Don't handle outcome == 2 here. 34172 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag. 34173 Add state variable, clear vectors in it, initialize state.modified 34174 if needed. Free all the vectors at the end and state.modified too. 34175 Don't skip a candidate if the extension expression has been modified. 34176 341772012-01-22 Douglas B Rupp <rupp@gnat.com> 34178 34179 PR target/47096 34180 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete 34181 configurations. Change triplet to i[34567]86-*-interix[3-9]*. 34182 (extra_options) interix.opt -> i386/interix.opt" 34183 (extra_objs):Add winnt-stubs.o 34184 * configure.ac: Add interix to target_os .comm on PE check. 34185 * configure: Regenerate. 34186 * config/interix3.h: Delete and move bits to.. 34187 * config/interix.h: Delete and move bits to.. 34188 * config/i386/i386-interix3.h: Delete and move bits to.. 34189 * config/i386/i386-interix.h: ..here. 34190 (TARGET_CPU_DEFAULT): Remove redefinition. 34191 (TARGET_ASM_CONSTRUCTOR): Undefine. 34192 (SUBTARGET_SWITCHES): Define for ms-bitfields. 34193 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec. 34194 (PTRDIFF_TYPE): Define. 34195 (LONG_DOUBLE_TYPE_SIZE): Define. 34196 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define. 34197 (SUBTARGET_OVERRIDE_OPTIONS): Remove. 34198 (TARGET_SECTION_TYPE_FLAGS): Define. 34199 (ASM_DECLARE_FUNCTION_NAME): Define. 34200 (ASM_OUTPUT_EXTERNAL): Define. 34201 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define. 34202 (ASM_OUTPUT_ALIGNED_BSS): Define. 34203 (PCC_BITFIELD_TYPE_MATTERS): Define. 34204 (USE_CONST_SECTION): Define. 34205 (SUBTARGET_ENCODE_SECTION_INFO): Remove. 34206 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove. 34207 (SUPPORTS_ONE_ONLY): Remove. 34208 (I386_PE_STRIP_ENCODING): Define. 34209 * config/interix.opt: Delete and move bits to.. 34210 * config/i386/interix.opt: ..here. New. 34211 (mpe-aligned-commons): Add. 34212 * config/i386/t-interix: Add copyright header. 34213 (winnt-stubs.o): Add rule. 34214 342152012-01-22 Jason Merrill <jason@redhat.com> 34216 34217 PR c++/51832 34218 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL 34219 for extra name aliases. 34220 342212012-01-22 Eric Botcazou <ebotcazou@adacore.com> 34222 34223 PR rtl-optimization/51924 34224 * ree.c (combine_set_extension): Improve debugging message. 34225 (combine_reaching_defs): Likewise. 34226 (get_defs): Rename confusingly named variable. 34227 (find_and_remove_re): Skip a candidate if the extension expression has 34228 been modified. 34229 342302012-01-21 Robert Millan <rmh@gnu.org> 34231 Gerald Pfeifer <gerald@pfeifer.com> 34232 34233 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro. 34234 (GNU_USER_DYNAMIC_LINKER): Adjust indentation. 34235 342362012-01-20 Jakub Jelinek <jakub@redhat.com> 34237 34238 PR tree-optimization/51914 34239 * tree-vect-stmts.c (vectorizable_conversion): For 34240 cvt_type && modifier == WIDEN, put temporary with cvt_type 34241 at the beginning of vec_dsts and set vec_dest to temporary 34242 with vectype_out. 34243 342442012-01-20 Eric Botcazou <ebotcazou@adacore.com> 34245 34246 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK. 34247 342482012-01-20 Tijl Coosemans <tijl@coosemans.org> 34249 34250 * config/i386/i386.c: Fix checks for !TARGET_MACHO. 34251 * config/rs6000/rs6000.c: Likewise. 34252 342532012-01-20 Jakub Jelinek <jakub@redhat.com> 34254 34255 PR target/51915 34256 * config/arm/arm.c (arm_count_output_move_double_insns): Call 34257 output_move_double on a copy of operands array. 34258 342592012-01-20 Cary Coutant <ccoutant@google.com> 34260 Dodji Seketeli <dodji@redhat.com> 34261 34262 PR debug/45682 34263 * dwarf2out.c (copy_declaration_context): Return ref to parent 34264 of declaration DIE, if necessary. 34265 (remove_child_or_replace_with_skeleton): Add new parameter; update 34266 caller. Place skeleton DIE under parent DIE of original declaration. 34267 Move call to copy_declaration_context to here ... 34268 (break_out_comdat_types): ... from here. 34269 342702012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 34271 34272 PR rtl-optimization/51856 34273 * reload.c (find_reloads_subreg_address): Set the address_reloaded 34274 flag to reloaded. 34275 342762012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 34277 34278 PR target/51819 34279 * config/arm/arm.c (arm_print_operand): Correct output of alignment 34280 hints for neon loads and stores. 34281 342822012-01-20 Georg-Johann Lay <avr@gjlay.de> 34283 34284 PR target/49868 34285 PR target/50887 34286 * doc/extend.texi (Named Address Spaces): Split into subsections. 34287 (AVR Named Address Spaces): New subsection. 34288 (M32C Named Address Spaces): New subsection. 34289 (RL78 Named Address Spaces): New subsection. 34290 (SPU Named Address Spaces): New subsection. 34291 (Variable Attributes): New anchor "AVR Variable Attributes". 34292 (AVR Variable Attributes): Rewrite and avoid wording 34293 "address space" in this context. 34294 * doc/invoke.texi (AVR Options): Rewrite and add documentation 34295 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls. 34296 (AVR Built-in Macros): New subsubsection therein. 34297 * doc/md.texi (AVR constraints): Remove "C04", "R". 34298 342992012-01-20 Richard Guenther <rguenther@suse.de> 34300 34301 PR tree-optimization/51903 34302 * tree-ssa-pre.c (eliminate): Properly purging of EH edges 34303 when removing stmts. 34304 343052012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 34306 34307 PR target/50313 34308 * config/arm/arm.c (arm_load_pic_register): Use 34309 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit 34310 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four. 34311 (arm_pic_static_addr): Likewise. 34312 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED. 34313 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED. 34314 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define. 34315 (pic_load_addr_unified): New. 34316 343172012-01-20 Andrey Belevantsev <abel@ispras.ru> 34318 34319 PR target/51106 34320 * function.c (instantiate_virtual_regs_in_insn): Use 34321 delete_insn_and_edges when removing a wrong asm insn. 34322 343232012-01-19 Vladimir Makarov <vmakarov@redhat.com> 34324 34325 PR rtl-optimization/40761 34326 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop. 34327 Add new member loop_num. 34328 (IRA_LOOP_NODE_BY_INDEX): Modify the check. 34329 (ira_build): Remove the parameter. 34330 34331 * ira.c (ira_print_disposition): Use loop_num instead of loop->num. 34332 (ira.c): Do not build CFG loops for one region allocation. Remove 34333 argument from ira_build call. 34334 34335 * ira-build.c (init_loop_tree_node): New function. 34336 (create_loop_tree_nodes): Use it. Separate the case when CFG 34337 loops are not built. 34338 (more_one_region_p): Check current_loops. 34339 (finish_loop_tree_nodes): Separate the case when CFG loops are not 34340 built. 34341 (add_loop_to_tree): Process loop equal to NULL too. 34342 (form_loop_tree): Separate the case when CFG loops are not built. 34343 Use explicitly number for the root. 34344 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add 34345 an assertion. 34346 (ira_print_expanded_allocno, loop_compare_func): Use loop_num 34347 instead of loop->num. 34348 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num. 34349 (mark_all_loops_for_removal): Ditto. 34350 (remove_unnecessary_regions): Separate the case when CFG loops 34351 are not built. 34352 (ira_build): Remove the parameter. Use explicit number of regions 34353 when CFG loops are not built. 34354 34355 * ira-color.c (print_loop_title): Separate the case for the root node. 34356 Use loop_num instead of loop->num. 34357 (move_spill_restore): Use loop_num instead of loop->num. 34358 34359 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion. 34360 (change_loop): Ditto. 34361 (change_loop): Use loop_num instead of loop->num. 34362 34363 * ira-lives.c (process_bb_node_lives): Ditto. 34364 34365 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto. 34366 34367 * ira-conflicts.c (print_allocno_conflicts): Ditto. 34368 343692012-01-19 Jakub Jelinek <jakub@redhat.com> 34370 34371 PR libmudflap/40778 34372 * tree-mudflap.c (mf_artificial): New function. 34373 (execute_mudflap_function_ops, execute_mudflap_function_decls, 34374 mx_register_decls, mudflap_enqueue_decl): Use it. 34375 34376 PR target/51876 34377 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand 34378 numbers in the insn pattern. 34379 343802012-01-19 Michael Matz <matz@suse.de> 34381 34382 PR tree-optimization/46590 34383 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument, 34384 use it in remembering which conflicts we already created. 34385 (add_scope_conflicts): Adjust call to above, (de)allocate helper 34386 bitmap. 34387 343882012-01-19 Aldy Hernandez <aldyh@redhat.com> 34389 34390 PR lto/51280 34391 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on. 34392 (merge_and_complain): Same. 34393 343942012-01-19 Jakub Jelinek <jakub@redhat.com> 34395 34396 PR bootstrap/50237 34397 * config/initfini-array.h: Guard content of the header 34398 with #ifdef HAVE_INITFINI_ARRAY. 34399 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file. 34400 Add initfini-array.h to tm_file here. 34401 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test. 34402 * config.gcc: Don't add initfini-array.h to tm_file here. 34403 * configure: Regenerated. 34404 344052012-01-19 Andrey Belevantsev <abel@ispras.ru> 34406 34407 PR rtl-optimization/51505 34408 * df-problems.c (df_kill_notes): New parameter live. Update comment. 34409 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers. 34410 (df_note_bb_compute): Update the call to df_kill_notes. 34411 344122012-01-18 Aldy Hernandez <aldyh@redhat.com> 34413 34414 * trans-mem.c (requires_barrier): Remove call to is_global_var. 34415 344162012-01-18 Richard Guenther <rguenther@suse.de> 34417 34418 * tree-ssa.c (useless_type_conversion_p): Remove special-casing 34419 of conversions to void *. 34420 344212012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 34422 Richard Sandiford <rdsandiford@googlemail.com> 34423 34424 PR middle-end/50325 34425 PR middle-end/51192 34426 * optabs.h (simplify_expand_binop): Declare. 34427 * optabs.c (simplify_expand_binop): Make global. 34428 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big 34429 endian targets if the source cannot be exactly covered by word 34430 mode chunks. 34431 344322012-01-17 Jakub Jelinek <jakub@redhat.com> 34433 34434 PR bootstrap/51872 34435 * hard-reg-set.h (struct hard_reg_set_container): New type. 34436 * target.h (struct hard_reg_set_container): Forward declare. 34437 * target.def (set_up_by_prologue): New target hook. 34438 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it. 34439 * doc/tm.texi: Regenerated. 34440 * function.c (thread_prologue_and_epilogue_insns): Change 34441 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container. 34442 Call targetm.set_up_by_prologue on it. 34443 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function. 34444 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it. 34445 344462012-01-17 Nick Clifton <nickc@redhat.com> 34447 34448 * config/rx/rx.c (rx_can_use_simple_return): New function. 34449 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype. 34450 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return. 34451 344522012-01-17 Richard Guenther <rguenther@suse.de> 34453 34454 PR middle-end/51782 34455 * expr.c (expand_assignment): Take address-space information 34456 from the address operand of MEM_REF and TARGET_MEM_REF. 34457 (expand_expr_real_1): Likewise. 34458 344592012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 34460 34461 * ira.c (do_reload): Make sure ira_dump_file is re-set if no 34462 reload dump is requested. 34463 344642012-01-17 Aldy Hernandez <aldyh@redhat.com> 34465 34466 PR other/51165 34467 * trans-mem.c (requires_barrier): Call may_be_aliased. 34468 344692012-01-17 Jakub Jelinek <jakub@redhat.com> 34470 34471 PR tree-optimization/51877 34472 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever 34473 call arguments and fndecls compare equal, instead return false if they 34474 don't. Return true only if lhs1 and lhs2 are either both NULL, or 34475 both SSA_NAMEs that are valueized the same, or they satisfy 34476 operand_equal_p. 34477 344782012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 34479 34480 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on 34481 Solaris 11+. 34482 * configure: Regenerate. 34483 344842012-01-16 Jan Hubicka <jh@suse.cz> 34485 34486 PR c/12245 34487 PR c++/14179 34488 * convert.c (convert_to_integer): Use fold_convert for 34489 converting an INTEGER_CST to integer type. 34490 344912012-01-16 Jason Merrill <jason@redhat.com> 34492 34493 PR c++/14179 34494 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size. 34495 344962012-01-16 Jakub Jelinek <jakub@redhat.com> 34497 34498 PR bootstrap/51860 34499 * config/s390/s390.c (s390_chunkify_start): Don't skip 34500 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip 34501 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes. 34502 If insn is followed by NOTE_INSN_VAR_LOCATION or 34503 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes. 34504 Don't use location of note insns. 34505 34506 PR tree-optimization/51865 34507 * tree-inline.c (tree_function_versioning): Call remap_decl 34508 on DECL_RESULT whenever it has VOID_TYPE_P type. 34509 345102012-01-15 Richard Sandiford <rdsandiford@googlemail.com> 34511 34512 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub 34513 for calls to locally-binding MIPS16 functions if only the return 34514 type uses float regs. 34515 345162012-01-15 Chung-Lin Tang <cltang@codesourcery.com> 34517 Richard Sandiford <rdsandiford@googlemail.com> 34518 34519 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete. 34520 (SYMBOL_32_HIGH): Likewise. 34521 (mips_output_tls_reloc_directive): Declare. 34522 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md. 34523 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare. 34524 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable. 34525 (mips_lo_relocs, mips_hi_relocs): Make extern. 34526 (mips16_stub_function): Move up file. 34527 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling. 34528 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too. 34529 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p. 34530 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of 34531 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false. 34532 (mips_get_tp): Add MIPS16 support. 34533 (mips_legitimize_tls_address): Remove MIPS16 sorry(). 34534 Generalize DTPREL and TPREL handling. 34535 (mips_init_relocs): Initialize mips_use_pcrel_pool_p. 34536 Add MIPS16 TLS support. 34537 (mips_output_tls_reloc_directive): New function. 34538 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs. 34539 * config/mips/predicates.md (symbolic_operand_with_high) 34540 (tls_reloc_operand): New predicates. 34541 (force_to_mem_operand): Use mips_use_pcrel_pool_p. 34542 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec. 34543 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h. 34544 (*unshifted_high): New instruction. Use it for MIPS16 high splitter. 34545 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns. 34546 (*tls_get_tp_mips16_call_<mode>): Likewise. 34547 345482012-01-15 Uros Bizjak <ubizjak@gmail.com> 34549 34550 PR rtl-optimization/51821 34551 * recog.c (peep2_find_free_register): Determine clobbered registers 34552 from insn pattern. 34553 345542012-01-14 Denis Chertykov <chertykov@gmail.com> 34555 34556 PR target/50925 34557 * config/avr/avr-protos.h: Revert change of 2012-01-09. 34558 * config/avr/avr.c: Likewise. 34559 * config/avr/avr.h: Likewise. 34560 345612012-01-13 Ian Lance Taylor <iant@google.com> 34562 34563 PR c++/50012 34564 * tree.h (TYPE_QUALS): Add cast to int. 34565 (TYPE_QUALS_NO_ADDR_SPACE): Likewise. 34566 345672012-01-13 Ian Lance Taylor <iant@google.com> 34568 34569 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when 34570 comparing param_index to VEC_length result. 34571 345722012-01-13 Steven Bosscher <steven@gcc.gnu.org> 34573 34574 * c-decl.c: Do not include tree-mudflap.h 34575 * tree-optimize.c: Likewise. 34576 * Makefile.in: Update dependencies. 34577 345782012-01-13 Richard Guenther <rguenther@suse.de> 34579 34580 PR middle-end/8081 34581 * gimplify.c (gimplify_modify_expr_rhs): For calls with a 34582 variable-sized result always use RSO. 34583 345842012-01-12 DJ Delorie <dj@redhat.com> 34585 34586 * cfgexpand.c (convert_debug_memory_address): Allow any valid 34587 pointer type, not just the default pointer type. 34588 345892012-01-09 Richard Henderson <rth@redhat.com> 34590 Denis Chertykov <chertykov@gmail.com> 34591 34592 PR target/50925 34593 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare. 34594 * config/avr/avr.c (avr_can_eliminate): Simplify. 34595 (avr_initial_elimination_offset): Likewise. 34596 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx. 34597 (expand_epilogue): Likewise. 34598 (avr_legitimize_address): Gut. 34599 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx. 34600 (avr_hard_regno_nregs): New. 34601 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers. 34602 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers. 34603 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer, 34604 add soft frame pointer. 34605 (CALL_USED_REGISTERS): Likewise. 34606 (REG_CLASS_CONTENTS): Likewise. 34607 (REGISTER_NAMES): Likewise. 34608 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs. 34609 (HARD_FRAME_POINTER_REGNUM): New. 34610 (FRAME_POINTER_REGNUM): Use soft frame pointer. 34611 (ELIMINABLE_REGS): Eliminate from the soft frame pointer, 34612 remove the HARD_FRAME_POINTER self-elimination. 34613 346142012-01-12 Georg-Johann Lay <avr@gjlay.de> 34615 34616 PR target/51756 34617 * config/avr/avr.c (avr_encode_section_info): Test for absence of 34618 DECL_EXTERNAL when checking for initializers of progmem variables. 34619 346202012-01-12 Ira Rosen <irar@il.ibm.com> 34621 34622 PR tree-optimization/51799 34623 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check 34624 that the last operation is a type demotion. 34625 346262012-01-12 Uros Bizjak <ubizjak@gmail.com> 34627 34628 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template. 34629 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3. 34630 346312012-01-11 Jakub Jelinek <jakub@redhat.com> 34632 34633 PR bootstrap/51796 34634 * combine.c (distribute_notes): If i3 is a noreturn call, 34635 allow old_size to be equal to args_size and make sure the 34636 noreturn call gets REG_ARGS_SIZE note. 34637 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes 34638 on noreturn calls even when the delta is 0. 34639 346402012-01-11 Nathan Sidwell <nathan@acm.org> 34641 34642 * gcov.c (STRING_SIZE): Remove. 34643 (generate_results): Erase annotations for source files with no 34644 coverage information. 34645 (read_line): New. 34646 (output_lines): Use it. 34647 346482012-01-11 Eric Botcazou <ebotcazou@adacore.com> 34649 34650 * gimple.h (gimplify_body): Remove first argument. 34651 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the 34652 pointer set here, instead just pass DATA to walk_tree. 34653 (unshare_body): Remove BODY_P argument and adjust. Create the pointer 34654 set here and invoke copy_if_shared on the size trees of DECL_RESULT. 34655 (unvisit_body): Likewise, but with unmark_visited. 34656 (gimplify_body): Remove BODY_P argument and adjust. 34657 (gimplify_function_tree): Adjust call to gimplify_body. 34658 * omp-low.c (finalize_task_copyfn): Likewise. 34659 346602012-01-11 Eric Botcazou <ebotcazou@adacore.com> 34661 34662 * tree.h (build_function_decl_skip_args): Add boolean parameter. 34663 (build_function_type_skip_args): Delete. 34664 * tree.c (build_function_type_skip_args): Make static and add 34665 SKIP_RETURN parameter. Fix thinko in the handling of variants. 34666 (build_function_decl_skip_args): Add SKIP_RETURN parameter and 34667 pass it to build_function_type_skip_args. 34668 * cgraph.h (cgraph_function_versioning): Add boolean parameter. 34669 (tree_function_versioning): Likewise. 34670 * cgraph.c (cgraph_create_virtual_clone): Adjust call to 34671 build_function_decl_skip_args. 34672 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter 34673 and pass it to build_function_decl_skip_args/tree_function_versioning. 34674 (cgraph_materialize_clone): Adjust call to tree_function_versioning. 34675 * ipa-inline-transform.c (save_inline_function_body): Likewise. 34676 * trans-mem.c (ipa_tm_create_version): Likewise. 34677 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning. 34678 * tree-inline.c (declare_return_variable): Remove always-true test. 34679 (tree_function_versioning): Add SKIP_RETURN parameter. If the function 34680 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL. 34681 * ipa-split.c (split_function): Skip the return value for the split 34682 part if it doesn't return. 34683 346842012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 34685 34686 PR tree-optimization/49642 34687 * ipa-split.c (forbidden_dominators): New variable. 34688 (check_forbidden_calls): New function. 34689 (dominated_by_forbidden): Likewise. 34690 (consider_split): Check for forbidden dominators. 34691 (execute_split_functions): Initialize and free forbidden 34692 dominators info; call check_forbidden_calls. 34693 346942012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 34695 34696 * config/arm/arm.md (mov_notscc): Use MVN for false condition. 34697 346982012-01-11 Nick Clifton <nickc@redhat.com> 34699 34700 * config/rx/rx.md (return): Define pattern. 34701 347022012-01-11 Richard Guenther <rguenther@suse.de> 34703 34704 * doc/extend.texi (malloc attribute): Adjust according to 34705 implementation. 34706 347072012-01-10 Aldy Hernandez <aldyh@redhat.com> 34708 Patrick Marlier <patrick.marlier@gmail.com> 34709 34710 PR middle-end/51516 34711 * trans-mem.c (get_cg_data): Traverse aliases if requested. 34712 (ipa_tm_scan_calls_block): Update parameters to get_cg_data. 34713 (ipa_tm_note_irrevocable): Same. 34714 (ipa_tm_scan_irr_block): Same. 34715 (ipa_tm_decrement_clone_counts): Same. 34716 (ipa_tm_scan_irr_function): Same. 34717 (ipa_tm_create_version_alias): Same. 34718 (ipa_tm_create_version): Same. 34719 (ipa_tm_transform_calls_redirect): Same. 34720 (ipa_tm_transform_calls): Same. 34721 (ipa_tm_transform_transaction): Same. 34722 (ipa_tm_execute): Same. 34723 347242012-01-10 Richard Guenther <rguenther@suse.de> 34725 34726 PR middle-end/51806 34727 * opts.c (common_handle_option): Handle -Werror. 34728 347292012-01-10 Andreas Schwab <schwab@linux-m68k.org> 34730 34731 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix 34732 operand number. 34733 347342012-01-10 Jason Merrill <jason@redhat.com> 34735 34736 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6 34737 information. 34738 347392012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 34740 34741 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker 34742 supports R_386_TLS_GD_PLT reloc. 34743 (gcc_cv_as_ix86_tlsldmplt): Check if linker 34744 supports R_386_TLS_LDM_PLT reloc. 34745 * configure: Regenerate. 34746 * config.in: Regenerate. 34747 347482012-01-10 Georg-Johann Lay <avr@gjlay.de> 34749 34750 PR target/49868 34751 Extend __pgmx semantics to linearize memory. 34752 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to 34753 determine if code comes inline or from libgcc. 34754 (MOVMEM_r_d:HI): Add "w" to constraint for better preference. 34755 (movmem_qi, movmem_qi): Set constraint #2 to "n". 34756 (movmem_qi_elpm, movmem_hi_elpm): Remove insns. 34757 (movmemx_qi, movmemx_hi): New insns. 34758 (xload_<mode>_libgcc): Rewrite to new insn condition. 34759 (xload_<mode>): Remove insns. 34760 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle 34761 cases that don't satisfy avr_xload_libgcc_p(). 34762 (avr_addr_space_convert): Allow converting in any direction. 34763 (avr_addr_space_subset_p): Return always true. 34764 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics. 34765 (avr_emit_movmemhi): Ditto. 34766 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more. 34767 (avr_out_movmem): Ditto. 34768 (AVR_SYMBOL_FLAG_PROGMEM): New macro. 34769 (AVR_SYMBOL_SET_ADDR_SPACE): New macro. 34770 (AVR_SYMBOL_GET_ADDR_SPACE): New macro. 34771 (avr_encode_section_info): Encode 'progmem' in symbol flags. 34772 (output_reload_in_const): Don't zero-extend any 24-bit symbols. 34773 347742012-01-10 Richard Guenther <rguenther@suse.de> 34775 34776 PR tree-optimization/50913 34777 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): 34778 Require data-refs to be representable by Graphite with respect 34779 to any loop nest. 34780 347812012-01-10 Uros Bizjak <ubizjak@gmail.com> 34782 34783 * config/i386/constraints.md ("L"): Return true for 0xffffffff. 34784 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV. 34785 347862012-01-10 Tom de Vries <tom@codesourcery.com> 34787 34788 PR rtl-optimization/51271 34789 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when 34790 handling annulled branch. 34791 347922012-01-10 Richard Henderson <rth@redhat.com> 34793 34794 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok, 34795 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN, 34796 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm, 34797 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev, 34798 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1, 34799 arm_expand_vec_perm_const): New. 34800 * config/arm/arm-protos.h: Update. 34801 * config/arm/neon.md (UNSPEC_VCONCAT): New. 34802 (*neon_vswp<VDQX>): New. 34803 (neon_vcombine<VDX>): Use neon_split_vcombine. 34804 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New. 34805 * config/arm/vec-common.md (vec_perm_const<VALL>): New. 34806 (vec_perm<VE>): New. 34807 348082012-01-10 Richard Henderson <rth@redhat.com> 34809 34810 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument; 34811 use it if reload_completed. 34812 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count, 34813 arm_output_asm_insn, arm_process_output_memory_barrier, 34814 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex, 34815 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3, 34816 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND, 34817 arm_process_output_sync_insn, arm_output_sync_insn, 34818 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove. 34819 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New. 34820 (arm_emit_load_exclusive, arm_emit_store_exclusive): New. 34821 (emit_unlikely_jump): New. 34822 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New. 34823 (arm_split_atomic_op): New. 34824 * config/arm/arm-protos.h: Update. 34825 * config/arm/arm.h (enum arm_sync_generator_tag): Remove. 34826 (struct arm_sync_generator): Remove. 34827 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK, 34828 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove. 34829 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New. 34830 (VUNSPEC_LL, VUNSPEC_SC): New. 34831 (sync_result, sync_memory, sync_required_value, sync_new_value, 34832 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove. 34833 (attr length): Don't use arm_sync_loop_insns. 34834 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg. 34835 (movsfcc, movdfcc): Likewise. 34836 * config/arm/constraints.md (Ua): New. 34837 * config/arm/prediates.md (mem_noofs_operand): New. 34838 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove. 34839 (sync_clobber, sync_t2_reqd): Remove. 34840 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove. 34841 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove. 34842 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove. 34843 (arm_sync_compare_and_swap<SIDI>): Remove. 34844 (arm_sync_compare_and_swap<NARROW>): Remove. 34845 (arm_sync_lock_test_and_set<SIDI>): Remove. 34846 (arm_sync_lock_test_and_set<NARROW>): Remove. 34847 (arm_sync_new_<syncop><SIDI>): Remove. 34848 (arm_sync_new_<syncop><NARROW>): Remove. 34849 (arm_sync_new_nand<SIDI>): Remove. 34850 (arm_sync_new_nand<NARROW>): Remove. 34851 (arm_sync_old_<syncop><SIDI>): Remove. 34852 (arm_sync_old_<syncop><NARROW>): Remove. 34853 (arm_sync_old_nand<SIDI>): Remove. 34854 (arm_sync_old_nand<NARROW>): Remove. 34855 (*memory_barrier): Merge arm_output_memory_barrier. 34856 (atomic_compare_and_swap<QHSD>): New. 34857 (atomic_compare_and_swap<NARROW>_1): New. 34858 (atomic_compare_and_swap<SIDI>_1): New. 34859 (atomic_exchange<QHSD>): New. 34860 (cas_cmp_operand, cas_cmp_str): New. 34861 (atomic_op_operand, atomic_op_str): New. 34862 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New. 34863 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New. 34864 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New. 34865 (arm_load_exclusive<NARROW>): New. 34866 (arm_load_exclusivesi, arm_load_exclusivedi): New. 34867 (arm_store_exclusive<QHSD>): New. 34868 348692012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com> 34870 34871 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF 34872 reload patterns if -mvsx-scalar-memory. 34873 34874 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be 34875 generated, even -mno-vsx-scalar-double was used. 34876 (vsx_xscvdpsp_scalar): Likewise. 34877 (vsx_xscvspdp_scalar2): Likewise. 34878 348792012-01-09 Tom de Vries <tom@codesourcery.com> 34880 Andrew Pinski <apinski@cavium.com> 34881 34882 PR debug/51471 34883 * reorg.c (fill_slots_from_thread): Don't speculate 34884 frame-related insns. 34885 348862012-01-09 Richard Sandiford <rdsandiford@googlemail.com> 34887 34888 * sched-int.h (bb_note): Move to... 34889 * basic-block.h: ...here. 34890 * haifa-sched.c (bb_note): Move to... 34891 * cfgrtl.c: ...here. 34892 * function.c (next_block_for_reg): New function. 34893 (move_insn_for_shrink_wrap): Likewise. 34894 (prepare_shrink_wrap): Rewrite to use the above. 34895 348962012-01-09 Aldy Hernandez <aldyh@redhat.com> 34897 34898 * gimple.c (is_gimple_non_addressable): Remove. 34899 * gimple.h: Remove is_gimple_non_addressable. 34900 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of 34901 is_gimple_non_addressable. 34902 * trans-mem.c (expand_assign_tm): Same. 34903 349042012-01-09 Richard Guenther <rguenther@suse.de> 34905 34906 PR tree-optimization/51775 34907 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts. 34908 * tree-ssa-pre.c (eliminate): Properly fixup EH info. 34909 349102012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> 34911 34912 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for 34913 tuning parameters. 34914 * config/arm/arm.c (arm_cortex_a15_tune): New static variable. 34915 349162012-01-09 Richard Guenther <rguenther@suse.de> 34917 34918 * tree-streamer-out.c (write_ts_optimization): Fix spelling. 34919 349202012-01-08 Jan Hubicka <jh@suse.cz> 34921 34922 PR tree-optimize/51680 34923 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition 34924 on when known_vals needs to be computed; cleanup. 34925 349262012-01-08 Jan Hubicka <jh@suse.cz> 34927 34928 PR tree-optimize/51694 34929 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks. 34930 349312012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com> 34932 34933 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined 34934 for -std=c++98 and -std=c++11 too. 34935 349362012-01-08 Chung-Lin Tang <cltang@codesourcery.com> 34937 34938 * cfgloop.c (cancel_loop): Add free() of bbs array. 34939 349402012-01-07 Jan Hubicka <jh@suse.cz> 34941 34942 PR tree-optimization/51600 34943 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code 34944 that benefits small functions. 34945 349462012-01-07 Jan Hubicka <jh@suse.cz> 34947 34948 * ipa-inline.c (want_inline_small_function_p): Fix formating. 34949 349502012-01-07 Jan Hubicka <jh@suse.cz> 34951 34952 PR tree-optimization/51680 34953 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions 34954 whose inlining reduce unit size. 34955 349562012-01-07 Alexandre Oliva <aoliva@redhat.com> 34957 34958 PR bootstrap/51725 34959 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node. 34960 Add canonical node to containing_mem chain after the non-canonical 34961 one, even if there weren't any locs to propagate. 34962 (remove_useless_values): Keep only canonical values. 34963 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr. 34964 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and 34965 canonicalize mem_chain elements that are not discarded. 34966 349672012-01-06 Jakub Jelinek <jakub@redhat.com> 34968 34969 PR target/47333 34970 * cgraphunit.c (cgraph_optimize): Call output_weakrefs 34971 before emitting functions. 34972 34973 PR gcov-profile/50127 34974 * bb-reorder.c (partition_hot_cold_basic_blocks): Call 34975 clear_aux_for_blocks. 34976 349772012-01-06 Alexandre Oliva <aoliva@redhat.com> 34978 34979 PR debug/51746 34980 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too. 34981 349822012-01-06 Arnaud Charlet <charlet@adacore.com> 34983 34984 * c-decl.c (ext_block): Moved up. 34985 (collect_all_refs, for_each_global_decl): Take ext_block into account. 34986 349872012-01-06 Han Shen <shenhan@google.com> 34988 34989 Translate built-in include paths for sysroot. 34990 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New. 34991 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT. 34992 34993 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with 34994 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field. 34995 34996 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to 34997 control whether sysroot should be prepended to gxx include dir. 34998 34999 * configure: Regenerate. 35000 350012012-01-06 Torvald Riegel <triegel@redhat.com> 35002 35003 PR rtl-optimization/51771 35004 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New. 35005 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib. 35006 350072012-01-05 Eric Botcazou <ebotcazou@adacore.com> 35008 35009 PR tree-optimization/51315 35010 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate. 35011 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p. 35012 350132012-01-05 Uros Bizjak <ubizjak@gmail.com> 35014 35015 PR target/51681 35016 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands 35017 for shrp pattern. Correctly handle and fixup shift variable. 35018 Return false when shift > nelt for BYTES_BIG_ENDIAN target. 35019 350202012-01-05 Jakub Jelinek <jakub@redhat.com> 35021 35022 PR debug/51762 35023 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE 35024 note when !ACCUMULATE_OUTGOING_ARGS. 35025 350262012-01-05 Eric Botcazou <ebotcazou@adacore.com> 35027 35028 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated 35029 condition. 35030 (extract_range_from_unary_expr_1): Avoid useless computations. 35031 350322012-01-05 Jakub Jelinek <jakub@redhat.com> 35033 35034 PR rtl-optimization/51767 35035 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition 35036 of jump_block and add an extra edge for degenerated asm gotos. 35037 35038 PR middle-end/51768 35039 * stmt.c (check_unique_operand_names): Don't ICE during error 35040 reporting if i is from labels chain. 35041 35042 PR middle-end/44777 35043 * profile.c (branch_prob): Split bbs that have exit edge 35044 and need a fake entry edge too. 35045 350462012-01-05 Jan Hubicka <jh@suse.cz> 35047 35048 PR middle-end/49710 35049 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when 35050 unlooping loops. 35051 350522012-01-05 Richard Guenther <rguenther@suse.de> 35053 35054 PR lto/50490 35055 * tree-streamer-out.c (write_ts_optimization): New function. 35056 (streamer_write_tree_body): Call it. 35057 * tree-streamer-in.c (lto_input_ts_optimization): New function. 35058 (streamer_read_tree_body): Call it. 35059 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE. 35060 350612012-01-05 Jakub Jelinek <jakub@redhat.com> 35062 35063 PR middle-end/51761 35064 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field. 35065 * gimplify.c (gimplify_cleanup_point_expr): Save and set 35066 in_cleanup_point_expr before gimplify_stmt call and restore it 35067 afterwards. 35068 (gimplify_target_expr): Don't add {CLOBBER} cleanup if 35069 in_cleanup_point_expr is false. 35070 350712012-01-05 Richard Guenther <rguenther@suse.de> 35072 35073 PR middle-end/51764 35074 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move 35075 to c.opt. 35076 * toplev.c (process_options): Reject combining mudflap and LTO. 35077 * tree-nomudflap.c (nogo): Use sorry instead of internal_error. 35078 350792012-01-05 Richard Guenther <rguenther@suse.de> 35080 35081 PR tree-optimization/51760 35082 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT, 35083 not VARYING. 35084 (bit_value_unop): Handle UNDEFINED operands. 35085 (bit_value_binop): Likewise. 35086 350872012-01-05 Georg-Johann Lay <avr@gjlay.de> 35088 35089 * config/avr/avr.c (avr_replace_prefix): Remove. 35090 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix. 35091 (avr_asm_function_rodata_section): Ditto. 35092 (avr_asm_select_section): Ditto. 35093 350942012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com> 35095 35096 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND 35097 insertion. 35098 350992012-01-05 Jakub Jelinek <jakub@redhat.com> 35100 35101 PR bootstrap/51648 35102 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn 35103 calls that have any non-fake successor edges. 35104 35105 PR debug/51746 35106 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL. 35107 351082012-01-04 Eric Botcazou <ebotcazou@adacore.com> 35109 35110 PR tree-optimization/51624 35111 * tree-sra.c (build_ref_for_model): When replicating a chain of 35112 COMPONENT_REFs, stop as soon as the offset would become negative. 35113 351142012-01-04 Jakub Jelinek <jakub@redhat.com> 35115 35116 PR debug/51695 35117 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions 35118 in .debug_loc on the floor. 35119 351202012-01-04 Andrew Pinski <apinski@cavium.com> 35121 35122 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2. 35123 351242012-01-04 Andrew Pinski <apinski@cavium.com> 35125 Adam Nemet <anemet@caviumnetworks.com> 35126 35127 * config/mips/mips.md (size): Add SI and DI. 35128 (SIZE): New mode attribute. 35129 (U): New code attribute. 35130 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi. 35131 (mips_lbux_<mode>): Delete. 35132 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern. 35133 (mips_lhx): Use gen_mips_lhx_extsi. 35134 (mips_lhx_<mode>): Delete. 35135 (mips_lwx): Delete. 35136 (mips_l<size>x): New expand. 35137 (mips_lwx_<mode>): Delete. 35138 (mips_l<GPR:size>x_<P:mode>): New pattern. 35139 (*mips_lw<u>x_<P:mode>_ext): Likewise. 35140 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type. 35141 * config/mips/mips.c (mips_lx_address_p): New function. 35142 (mips_rtx_costs <case MEM>): Call mips_lx_address_p. 35143 (dsp64): New availability predicate. 35144 (mips_builtins): Add an entry for __builtin_mips_ldx. 35145 * config/mips/mips.h (ISA_HAS_LBX): New define. 35146 (ISA_HAS_LBUX): Likewise. 35147 (ISA_HAS_LHX): Likewise. 35148 (ISA_HAS_LHUX): Likewise. 35149 (ISA_HAS_LWX): Likewise. 35150 (ISA_HAS_LWUX): Likewise. 35151 (ISA_HAS_LDX): Likewise. 35152 * doc/extend.texi (__builtin_mips_ldx): Document. 35153 351542012-01-04 Tristan Gingold <gingold@adacore.com> 35155 35156 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define 35157 when long pointers are used. 35158 * config.build (*-*-*vms*): Handle all OpenVMS targets. 35159 (alpha64-dec-*vms*, alpha*-dec-*vms*) 35160 (ia64-hp-*vms*): Remove. 35161 * config/vms/xm-vms64.h: Delete. 35162 351632012-01-04 Aldy Hernandez <aldyh@redhat.com> 35164 35165 PR middle-end/51472 35166 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly. 35167 351682012-01-04 Aldy Hernandez <aldyh@redhat.com> 35169 35170 * opts.c (finish_options): Remove duplicate sorry. 35171 351722012-01-04 Aldy Hernandez <aldyh@redhat.com> 35173 35174 PR middle-end/51696 35175 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name 35176 correctly. 35177 351782012-01-04 Richard Guenther <rguenther@suse.de> 35179 35180 PR middle-end/51750 35181 * tree.c (size_low_cst): New function. 35182 * tree.h (size_low_cst): Declare. 35183 * fold-const.c (fold_comparison): Use it to extract the low 35184 part of the POINTER_PLUS_EXPR offset. 35185 351862012-01-04 Georg-Johann Lay <avr@gjlay.de> 35187 35188 Fix clearing ZERO_REG 35189 * config/avr/avr.md (cc): Add alternative "ldi". 35190 (movqi_insn): Use it in cc attribute. 35191 * config/avr/avr.c (notice_update_cc): Handle CC_LDI. 35192 (output_reload_in_const): Use CLR to move 0 to ZERO_REG. 35193 (output_reload_insisf): Use ZERO_REG to pre-clear register. 35194 351952012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 35196 35197 * configure: Regenerate. 35198 351992012-01-04 Richard Guenther <rguenther@suse.de> 35200 35201 PR tree-optimization/49651 35202 * tree-ssa-structalias.c (type_can_have_subvars): New function. 35203 (var_can_have_subvars): Use it. 35204 (get_constraint_for_1): Only consider subfields if there can be any. 35205 352062012-01-03 Jakub Jelinek <jakub@redhat.com> 35207 35208 PR bootstrap/51725 35209 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val 35210 to its new canonical_cselib_val and the cselib_val was in 35211 first_containing_mem chain, but the canonical_cselib_val was not, 35212 add the latter into the chain. 35213 (cselib_invalidate_mem): Compare canonical_cselib_val of 35214 addr_list chain elt with v. 35215 35216 PR pch/51722 35217 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define, 35218 dwarf2out_undef): Allocate e.info using ggc_strdup instead 35219 of xstrdup. 35220 (output_macinfo_op): Don't ggc_strdup fd->filename. 35221 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC, 35222 then ggc_strdup it. Don't free inc->info or cur->info. 35223 (output_macinfo): Don't free ref->info or file->info. 35224 352252012-01-03 Ira Rosen <irar@il.ibm.com> 35226 35227 PR tree-optimization/51269 35228 * tree-vect-loop-manip.c (set_prologue_iterations): Make 35229 first_niters a pointer. 35230 (slpeel_tree_peel_loop_to_edge): Likewise. 35231 (vect_do_peeling_for_loop_bound): Update call to 35232 slpeel_tree_peel_loop_to_edge. 35233 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters 35234 here. Remove it from the parameters list. 35235 (vect_do_peeling_for_alignment): Update calls and compute 35236 wide_prolog_niters. 35237 352382012-01-03 Richard Guenther <rguenther@suse.de> 35239 35240 PR tree-optimization/51070 35241 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop): 35242 Properly handle calls. 35243 352442012-01-03 Richard Guenther <rguenther@suse.de> 35245 35246 PR tree-optimization/51692 35247 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove 35248 the LHS of allocation stmts. 35249 352502012-01-03 Olivier Hainque <hainque@adacore.com> 35251 35252 * system.h: Prior to #define, #undef fopen and freopen unconditionally. 35253 352542012-01-03 Olivier Hainque <hainque@adacore.com> 35255 35256 * collect2.c (main): In AIX specific computations for vector 35257 insertions, use CONST_CAST2 to cast from char ** to const char **. 35258 352592012-01-03 Richard Guenther <rguenther@suse.de> 35260 35261 PR debug/51650 35262 * dwarf2out.c (dwarf2out_finish): Always create a DIE for 35263 the context of a limbo DIE when it does not already exist. 35264 352652012-01-03 Jakub Jelinek <jakub@redhat.com> 35266 35267 PR tree-optimization/51719 35268 * value-prof.c (gimple_ic): When indirect call isn't noreturn, 35269 but direct call is, clear direct call's lhs and don't add fallthrough 35270 edge from dcall_bb to join_bb and PHIs. 35271 352722012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 35273 35274 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning 35275 the instructions emitted by the pattern. 35276 ("*TDC_insn_<mode>"): Add comment. 35277 352782012-01-03 Richard Guenther <rguenther@suse.de> 35279 35280 PR middle-end/51730 35281 * fold-const.c (fold_comparison): Properly canonicalize 35282 tree offset and HOST_WIDE_INT bit position. 35283 352842012-01-02 Uros Bizjak <ubizjak@gmail.com> 35285 35286 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct 35287 operands for extzv pattern. 35288 352892012-01-02 Jakub Jelinek <jakub@redhat.com> 35290 35291 PR bootstrap/51725 35292 * cselib.c (add_mem_for_addr): Call canonical_cselib_val 35293 on mem_elt first. 35294 352952012-01-02 Sandra Loosemore <sandra@codesourcery.com> 35296 35297 * doc/invoke.texi (-flto and related options): Copy-edit. 35298 352992012-01-02 Richard Sandiford <rdsandiford@googlemail.com> 35300 35301 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber. 35302 353032012-01-02 Jakub Jelinek <jakub@redhat.com> 35304 35305 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4): 35306 New patterns. 35307 353082012-01-02 Richard Sandiford <rdsandiford@googlemail.com> 35309 35310 * expr.h (move_by_pieces_ninsns): Declare. 35311 * expr.c (move_by_pieces_ninsns): Make external. 35312 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare. 35313 (mips_store_by_pieces_p): Likewise. 35314 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p. 35315 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p. 35316 * config/mips/mips.c (mips_move_by_pieces_p): New function. 35317 (mips_store_by_pieces_p): Likewise. 35318 353192012-01-02 Jakub Jelinek <jakub@redhat.com> 35320 35321 * passes.c (register_one_dump_file): Free full_name. 35322 35323 * reload1.c (reload): Don't allocate reg_max_ref_width here. 35324 (calculate_elim_costs_all_insns): Free offsets_at and 35325 offsets_known_at at the end and clear the pointers. 35326 353272012-01-02 Georg-Johann Lay <avr@gjlay.de> 35328 35329 * config/avr/avr.opt (-mbranch-cost): Fix double definition of 35330 this option introduced in r180739. 35331 353322012-01-02 Georg-Johann Lay <avr@gjlay.de> 35333 35334 PR target/51345 35335 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h 35336 (tmake_file target=avr): Add avr/t-multilib. 35337 35338 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP 35339 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__. 35340 * config/avr/genmultilib.awk: New file. 35341 * config/avr/t-multilib: New auto-generated file. 35342 * config/avr/multilib.h: New auto-generated file. 35343 * config/avr/t-avr (AVR_MCUS): New variable. 35344 (genopt.sh): Use it. 35345 (s-mlib): Depend on t-multilib. 35346 (t-multilib, multilib.h): New dependencies. 35347 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS. 35348 (MULTILIB_OPTIONS): Remove. 35349 (MULTILIB_MATCHES): Remove. 35350 (MULTILIB_DIRNAMES): Remove. 35351 (MULTILIB_EXCEPTIONS): Remove: 35352 * config/avr/genopt.sh: Don't use hard coded file name; 35353 pass AVR_MCUS from t-avr instead. 35354 353552012-01-02 Georg-Johann Lay <avr@gjlay.de> 35356 35357 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23". 35358 353592012-01-02 Georg-Johann Lay <avr@gjlay.de> 35360 35361 Implement light-weight DImode support. 35362 * config/avr/avr-dimode.md: New file. 35363 * config/avr/avr.md: Include it. 35364 (adjust_len): Add plus64, compare64. 35365 (HIDI): Remove code iterator. 35366 (code_stdname): New code attribute. 35367 (rotx, rotsmode): Remove DI. 35368 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI 35369 as code iterator. 35370 * config/avr/avr-protos.h (avr_have_dimode): New. 35371 (avr_out_plus64, avr_out_compare64): New. 35372 * config/avr/avr.c (avr_out_compare): Handle DImode. 35373 (avr_have_dimode): New variable definition and initialization. 35374 (avr_out_compare64, avr_out_plus64): New functions. 35375 (avr_out_plus_1): Use simplify_unary_operation to negate xval. 35376 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64. 35377 (avr_compare_pattern): Skip DImode comparisons. 35378 353792012-01-02 Revital Eres <revital.eres@linaro.org> 35380 35381 * ddg.c (def_has_ccmode_p): New function. 35382 (add_cross_iteration_register_deps, 35383 create_ddg_dep_from_intra_loop_link): Call it. 35384 353852012-01-02 Richard Guenther <rguenther@suse.de> 35386 35387 PR other/51679 35388 * invoke.texi (fassociative-math): Remove spurious paranthesis. 35389 353902012-01-01 Jakub Jelinek <jakub@redhat.com> 35391 35392 * gcc.c (process_command): Update copyright notice dates. 35393 * gcov.c (print_version): Likewise. 35394 * gcov-dump.c (print_version): Likewise. 35395 * mips-tfile.c (main): Likewise. 35396 * mips-tdump.c (main): Likewise. 35397 353982012-01-01 Ira Rosen <irar@il.ibm.com> 35399 35400 PR tree-optimization/51704 35401 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that 35402 a use is inside the basic block or loop before accessing its vect info. 35403 354042012-01-01 Jan Hubicka <jhjh@suse.cz> 35405 35406 PR rtl-optimization/51069 35407 * cfgloopmanip.c (remove_path): Removing path making irreducible 35408 region unconditional makes BB part of the region. 35409 354102012-01-01 Jakub Jelinek <jakub@redhat.com> 35411 35412 PR tree-optimization/51683 35413 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away 35414 calls with side-effects. 35415 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise. 35416 35417Copyright (C) 2012 Free Software Foundation, Inc. 35418 35419Copying and distribution of this file, with or without modification, 35420are permitted in any medium without royalty provided the copyright 35421notice and this notice are preserved. 35422