12008-12-31 Uros Bizjak <ubizjak@gmail.com> 2 3 * sched-deps.c (sched_analyze_2) [UNSPEC_VOLATILE]: Flush pending 4 memory loads and stores. 5 62008-12-31 Jakub Jelinek <jakub@redhat.com> 7 8 PR middle-end/38505 9 * tree-ssa-ccp.c (may_propagate_address_into_dereference): Return 10 false if ADDR's operand has incomplete type. 11 12 Revert: 13 2008-12-15 Jakub Jelinek <jakub@redhat.com> 14 PR middle-end/38505 15 * tree-ssa.c (useless_type_conversion_p_1): Return 16 false if inner_type is incomplete and outer_type is complete. 17 182008-12-31 Jakub Jelinek <jakub@redhat.com> 19 20 PR middle-end/38676 21 * gimplify.c (gimple_regimplify_operands): For GIMPLE_SWITCH 22 only regimplify switch index. 23 242008-12-30 Richard Guenther <rguenther@suse.de> 25 26 PR tree-optimization/38645 27 * tree-ssa-ccp.c (fold_gimple_assign): Use the correct pointer 28 type. 29 * tree-ssa-dom.c (cprop_operand): Simplify. Do not propagate 30 volatileness changing operands. 31 322008-12-30 Steven Bosscher <steven@gcc.gnu.org> 33 34 * tree-cfg.c (verify_eh_throw_stmt_node): Return nonzero, 35 to visit all EH statement and fix EH checking. 36 372008-12-31 Seongbae Park <seongbae.park@gmail.com> 38 39 Revert: 40 2008-12-29 Seongbae Park <seongbae.park@gmail.com> 41 * tree-profile.c (tree_init_ic_make_global_vars): Make static 42 variables TLS. 43 442008-12-30 Andrew Pinski <pinskia@gmail.com> 45 46 PR middle-end/38661 47 * tree-switch-conversion.c (build_constructors): Test for wrapping of 48 pos case. 49 502008-12-30 Steven Bosscher <steven@gcc.gnu.org> 51 52 PR middle-end/38584 53 * ipa-inline.c (compute_inline_parameters): When not optimizing, 54 don't compute the inline parameters, just set them to 0 instead. 55 562008-12-30 Paolo Bonzini <bonzini@gnu.org> 57 58 PR tree-optimization/38572 59 * tree-vrp.c (vrp_visit_phi_node): Look out for invalid ranges 60 and change them to VARYING. 61 622008-12-30 Richard Guenther <rguenther@suse.de> 63 64 PR middle-end/38564 65 * fold-const.c (fold_comparison): Use the correct result type. 66 672008-12-30 Dorit Nuzman <dorit@il.ibm.com> 68 Ira Rosen <irar@il.ibm.com> 69 70 PR tree-optimization/38529 71 * tree-vect-transform (vect_transform_stmt): Handle inner-loop stmts 72 whose DEF is used in the loop-nest that is being vectorized, but 73 outside the immediately enclosing loop. 74 752008-12-29 Seongbae Park <seongbae.park@gmail.com> 76 77 * tree-profile.c (tree_init_ic_make_global_vars): Make static 78 variables TLS. 79 802008-12-29 Jakub Jelinek <jakub@redhat.com> 81 82 PR c++/36191 83 * tree-complex.c (expand_complex_libcall): Call 84 maybe_clean_or_replace_eh_stmt and gimple_purge_dead_eh_edges 85 instead of passing true as 3rd argument to gsi_replace. 86 872008-12-28 Uros Bizjak <ubizjak@gmail.com> 88 89 PR middle-end/38652 90 * dse.c: Include target.h. 91 * Makefile.in (dse.o): Depend on $(TARGET_H). 92 932008-12-29 Jakub Jelinek <jakub@redhat.com> 94 95 PR driver/38381 96 * gcc.c (process_command): Accept also -b with configuration name 97 in the next argument. 98 * doc/invoke.texi (-b): Document that no hyphen is required if 99 configuration name is in the next argument after -b. 100 1012008-12-27 Jakub Jelinek <jakub@redhat.com> 102 103 PR middle-end/38641 104 * gimple-pretty-print.c (dump_binary_rhs): Print 105 VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, 106 VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR, VEC_PACK_FIX_TRUNC_EXPR, 107 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR 108 VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR similarly 109 to COMPLEX_EXPR, MIN_EXPR and MAX_EXPR. 110 111 PR middle-end/38633 112 * tree-cfg.c (replace_block_vars_by_duplicates): Only call 113 replace_by_duplicate_decl for VAR_DECLs or CONST_DECLs. 114 1152008-12-24 Kazu Hirata <kazu@codesourcery.com> 116 117 * Makefile.in (GTFILES): Add $(srcdir)/expr.h. 118 * expr.h: Fix the declaration of block_clear_fn. 119 1202008-12-23 Andrew Pinski <pinski@gmail.com> 121 122 PR middle-end/38590 123 * fold-const.c (fold_binary): Call fold_convert on arguments to 124 fold_build2 for negative divide optimization. 125 1262008-12-23 Jakub Jelinek <jakub@redhat.com> 127 128 PR middle-end/31150 129 * dse.c (struct store_info): Add const_rhs field. 130 (clear_rhs_from_active_local_stores): Clear also const_rhs. 131 (record_store): Try also cselib_expand_value_rtx to get a constant. 132 (find_shift_sequence, get_stored_val): Use const_rhs instead of 133 rhs if worthwhile. 134 * cselib.c (cselib_record_sets): If !cselib_record_memory and 135 there is just one set from read-only MEM, look at REG_EQUAL or 136 REG_EQUIV note. 137 138 * dse.c (struct store_info): Add redundant_reason field. 139 (record_store): When storing the same constant as has been stored by 140 an earlier store, set redundant_reason field to the earlier store's 141 insn_info_t. Don't delete cannot_delete insns. 142 (find_shift_sequence): Remove read_info argument, add read_mode 143 and require_cst arguments. Return early if require_cst and 144 constant wouldn't be returned. 145 (get_stored_val): New function. 146 (replace_read): Use it. 147 (scan_insn): Put even cannot_delete insns with exactly 1 store 148 into active_local_stores. 149 (dse_step1): Don't delete cannot_delete insns. Remove redundant 150 constant stores if contains_cselib_groups and earlier store storing 151 the same value hasn't been eliminated. 152 (dse_step6): Renamed to dse_step7. New function. 153 (dse_step7): Renamed from dse_step6. 154 (rest_of_handle_dse): Call dse_step6 and dse_step7 at the end. 155 * cselib.c (cselib_expand_value_rtx): Don't wrap CONST_INTs 156 into CONST unless really necessary. Handle SUBREG, unary, 157 ternary, bitfield and compares specially, to be able to simplify 158 operations on constants. 159 (expand_loc): Try to optimize LO_SUM. 160 161 * dse.c (get_call_args): New function. 162 (scan_insn): Don't handle BUILT_IN_BZERO. For memset, attempt 163 to get call arguments and if successful and both len and val are 164 constants, handle the call as (mem:BLK) (const_int) store. 165 166 * dse.c (struct store_info): Add is_large bool field, change 167 positions_needed into a union of a bitmask and bitmap + count. 168 (free_store_info): Free bitmap if is_large. 169 (set_usage_bits): Don't look at stores where 170 offset + width >= MAX_OFFSET. 171 (set_position_unneeded, set_all_positions_unneeded, 172 any_positions_needed_p, all_positions_needed_p): New static inline 173 functions. 174 (record_store): Handle BLKmode stores of CONST_INT, if 175 MEM_SIZE is set on the MEM. Use the new positions_needed 176 accessor inlines. 177 (replace_read): Handle reads from BLKmode CONST_INT stores. 178 (check_mem_read_rtx): Use all_positions_needed_p function. 179 (dse_step1): Free large positions_needed bitmaps and clear is_large. 180 181 * dse.c (struct store_info): Change begin and end types to 182 HOST_WIDE_INT. 183 184 * dse.c (record_store): Fix check for unused store. 185 186 * expr.c (block_clear_fn): No longer static. 187 * expr.h (block_clear_fn): Declare. 188 * dse.c (scan_insn): Memset and bzero can just read their arguments. 189 190 * config/i386/i386.c (expand_setmem_via_rep_stos): Add ORIG_VALUE 191 argument. If ORIG_VALUE is const0_rtx and COUNT is constant, 192 set MEM_SIZE on DESTMEM. 193 (ix86_expand_setmem): Adjust callers. 194 195 PR target/38488 196 * expr.h (get_mem_align_offset): New prototype. 197 * emit-rtl.c (get_mem_align_offset): New function. 198 * config/i386/i386.c (expand_movmem_via_rep_mov): Set MEM_SIZE 199 correctly. 200 (expand_constant_movmem_prologue, expand_constant_setmem_prologue): 201 New functions. 202 (ix86_expand_movmem): Optimize if COUNT_EXP 203 is constant, desired_align > align and dst & (desired_align - 1) 204 is computable at compile time. 205 (ix86_expand_setmem): Likewise. 206 207 * builtins.c (get_memory_rtx): Try to derive MEM_ATTRS from not yet 208 resolved SAVE_EXPR or POINTER_PLUS_EXPR. 209 2102008-12-22 Uros Bizjak <ubizjak@gmail.com> 211 212 * config/alpha/elf.h (ASM_OUTPUT_EXTERNAL): New macro. 213 214 PR target/34571 215 * config/alpha/predicates.md (symbolic_operand): Return 1 for a 216 label_ref with an offset. 217 2182008-12-21 Andrew Pinski <pinskia@gmail.com> 219 220 PR target/38300 221 * configure: Regenerate. 222 2232008-12-21 Richard Sandiford <rdsandiford@googlemail.com> 224 225 * config/mips/mips-dsp.md (mips_lbux): Turn into a define_expand, 226 changing operand 1 to a pmode_register_operand. 227 (mips_lhx, mips_lwx): Likewise. 228 (mips_lbux_<mode>, mips_lhx_<mode>, mips_lwx_<mode>): New patterns. 229 * config/mips/mips.c (mips_prepare_builtin_arg): Get the mode of 230 the value from the argument expression. 231 2322008-12-21 Jan Hubicka <jh@suse.cz> 233 Kai Tietz <kai.tietz@onevision.com> 234 235 * i386.md (UNSPEC_MS_TO_SYSV_CALL): New constant. 236 (call_1_rex64_ms_sysv, call_value_0_rex64_ms_sysv, 237 call_value_1_rex64_ms_sysv): New patterns. 238 * i386.c (function_arg_ms_64): Pass magical value of -2 as callarg. 239 (ix86_expand_call): Emit extra clobbers for ms->sysv ABI calls. 240 2412008-12-21 Uros Bizjak <ubizjak@gmail.com> 242 243 * config/alpha/alpha.c (alpha_pad_noreturn): New static function. 244 (alpha_reorg): Call alpha_pad_noreturn. 245 2462008-12-21 Denis Chertykov <denisc@overta.ru> 247 248 * config/avr/avr.md ("andsi3"): Fix wrong cc attribute. 249 2502008-12-20 Eric Botcazou <ebotcazou@adacore.com> 251 252 PR target/37610 253 * configure.ac (gcc_cv_as_cfi_advance_working): Fall back to 'no' 254 if readelf is nowhere to be found. 255 * configure: Regenerate. 256 2572008-12-19 Andrew Haley <aph@redhat.com> 258 259 * builtins.c, tree-ssa-loop-ivopts.c, fixed-value.c: 260 Fix comments. 261 2622008-12-19 Richard Earnshaw <rearnsha@arm.com> 263 264 PR target/38548 265 * arm/t-linux (LIB1ASMFUNCS): Add _arm_addsubdf3 and _arm_addsubsf3. 266 * arm/lib1funcs.asm (clzsi2): Use RET macro for return instruction. 267 2682008-12-19 Richard Earnshaw <rearnsha@arm.com> 269 270 PR bootstrap/38578 271 * arm.c (load_multiple_sequence): Initialize ORDER array. 272 (store_multiple_sequence): Likewise. 273 (output_move_double): Make reg0 unsigned. 274 (arm_output_epilogue): Make amount unsigned. 275 (arm_expand_prologue): Move declaration of dwarf before block 276 statements. 277 2782008-12-19 Steve Ellcey <sje@cup.hp.com> 279 280 * df-scan.c (df_hard_reg_init): Move declaration of i. 281 2822008-12-19 Jakub Jelinek <jakub@redhat.com> 283 284 PR bootstrap/37739 285 * config.host: For powerpc*-*-linux* host with 32-bit GCC, 286 use rs6000/x-linux-relax snippet if ld is new enough, 287 otherwise use rs6000/x-linux-O1. 288 * config/rs6000/x-linux-relax: New file. 289 * config/x-cflags-O1: New file. 290 2912008-12-18 Joseph Myers <joseph@codesourcery.com> 292 293 * config/rs6000/rs6000.c (rs6000_generate_compare): Condition 294 choice of e500 comparison instructions on flag_finite_math_only && 295 !flag_trapping_math, not flag_unsafe_math_optimizations. 296 * config/rs6000/rs6000.md (abstf2): Condition choice of e500 297 instructions on flag_finite_math_only && !flag_trapping_math, not 298 flag_unsafe_math_optimizations. 299 (bltgt, sltgt): Disable for TARGET_HARD_FLOAT && !TARGET_FPRS. 300 * config/rs6000/spe.md (cmpsfeq_gpr, tstsfeq_gpr, cmpsfgt_gpr, 301 tstsfgt_gpr, cmpsflt_gpr, tstsflt_gpr, cmpdfeq_gpr, tstdfeq_gpr, 302 cmpdfgt_gpr, tstdfgt_gpr, cmpdflt_gpr, tstdflt_gpr, cmptfeq_gpr, 303 tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr): 304 Condition choice of comparison instructions on 305 flag_finite_math_only && !flag_trapping_math, not 306 flag_unsafe_math_optimizations. 307 3082008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 309 310 * configure: Regenerate. 311 3122008-12-18 Jan Hubicka <jh@suse.cz> 313 Kai Tietz <kai.tietz@onevision.com> 314 315 * df-scan.c (persistent_obstack, df_invalidated_by_call): Remove. 316 (df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename 317 df_invalidated_by_call to invalidated_by_call_regset. 318 * df.h (df_invalidated_by_call): Remove. 319 * regclass.c (regs_invalidated_by_call_regset, persistent_obstack): 320 New variables. 321 (init_reg_sets_1): Initialize regs_invalidated_by_call_regset. 322 (globalize_reg): Likewise. 323 * df-problems.c (df_rd_local_compute, df_lr_confluence_n, 324 df_byte_lr_alloc): Rename df_invalidated_by_call to 325 invalidated_by_call_regset. 326 * basic-block.h (regs_invalidated_by_call_regset): Declare. 327 3282008-12-18 Jan Hubicka <jh@suse.cz> 329 Kai Tietz <kai.tietz@onevision.com> 330 331 * ira-cost.c (copy_cost): Lazilly initialize move_cost if needed. 332 3332008-12-18 Jan Hubicka <jh@suse.cz> 334 Kai Tietz <kai.tietz@onevision.com> 335 336 * i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current 337 function ABI. 338 * i386.c (ix86_call_abi_override): Do not trigger target re-init and 339 do not try to modify call used regs. 340 (ix86_maybe_switch_abi): New function. 341 (TARGET_EXPAND_TO_RTL_HOOK): New macro. 342 3432008-12-18 Kenneth Zadeck <zadeck@naturalbridge.com> 344 345 PR rtl-optimization/37922 346 * dse.c (bb_info): Added regs_live field. 347 (look_for_hardregs): New function. 348 (replace_read): Added regs_live parameter and code to check that 349 shift sequence does not clobber live hardregs. 350 (check_mem_read_rtx): Added parameter to replace_read. 351 (dse_step1): Added regs_live bitmap and initialize it. 352 (rest_of_handle_dse): Added DF_NOTES problem and earlier call to 353 df_analyze. 354 * df-problems.c Renamed to df_simulate_initialize_backwards. 355 (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards. 356 (df_simulate_artificial_refs_at_top): Renamed to 357 df_simulate_finalize_backwards. 358 (df_simulate_initialized_forwards, df_simulate_one_insn_forwards, 359 df_simulate_finalize_backwards): New functions. 360 * df.h (df_simulate_artificial_refs_at_end): Renamed to 361 df_simulate_initialize_backwards. 362 (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards. 363 (df_simulate_artificial_refs_at_top): Renamed to 364 df_simulate_finalize_backwards. 365 (df_simulate_initialized_forwards, df_simulate_one_insn_forwards, 366 df_simulate_finalize_backwards): New functions. 367 * ra-conflict.c (global_conflicts): Renamed 368 df_simulate_artificial_refs_at_end to 369 df_simulate_initialize_backwards. 370 * sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to 371 df_simulate_one_insn_backwards. 372 * ifcvt.c (dead_or_predicable): Renamed 373 df_simulate_artificial_refs_at_end to 374 df_simulate_initialize_backwards. Renamed df_simulate_one_insn to 375 df_simulate_one_insn_backwards. 376 * recog.c (peephole2_optimize): Ditto. 377 * rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto. 378 3792008-12-18 Jakub Jelinek <jakub@redhat.com> 380 381 PR middle-end/38533 382 * tree-ssa-reassoc.c (remove_visited_stmt_chain): New function. 383 (rewrite_expr_tree): Add moved argument, move stmts together if 384 needed. Call remove_visited_stmt_chain. 385 (linearize_expr_tree): Don't move stmts here. 386 (reassociate_bb): Call remove_visited_stmt_chain if num ops is 1. 387 Adjust rewrite_expr_tree caller. 388 389 PR middle-end/38505 390 * tree-ssa.c (useless_type_conversion_p_1): Return 391 false if inner_type is incomplete and outer_type is complete. 392 3932008-12-17 Sebastian Pop <sebastian.pop@amd.com> 394 395 * doc/install.texi (Prerequisites): Document PPL and CLooG-PPL 396 dependences and the configure options. 397 (Configuration): Document --with-cloog, --with-ppl, --with-cloog-lib, 398 --with-ppl-lib, --with-cloog-incude, --with-ppl-include. 399 4002008-12-17 H.J. Lu <hongjiu.lu@intel.com> 401 402 PR middle-end/38556 403 * calls.c (expand_call): Check outgoing_reg_parm_stack_space 404 only if REG_PARM_STACK_SPACE is defined. 405 4062008-12-17 Jan Hubicka <jh@suse.cz> 407 Kai Tietz <kai.tietz@onevision.com> 408 409 * calls.c (expand_call): Do not sibcall if 410 outgoing_reg_parm_stack_space does not match. 411 4122008-12-16 Anatoly Sokolov <aesok@post.ru> 413 414 * config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81, 415 atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b 416 devices. 417 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). 418 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). 419 4202008-12-16 Hariharan Sandanagobalane <hariharan@picochip.com> 421 422 PR target/38842 423 * config/picochip/picochip.opt (mae): Squeezed the comments onto one 424 line. 425 4262008-12-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 427 428 * configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up 429 supports hidden. 430 * configure: Regenerate. 431 4322008-12-16 Richard Earnshaw <rearnsha@arm.com> 433 434 PR target/37436 435 * arm.c (arm_legitimate_index): Only accept addresses that are in 436 canonical form. 437 * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate. 438 * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate 439 for operand1. 440 (extendqisi2): Likewise. 441 (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op 442 predicate for operand1. 443 4442008-12-15 Adam Nemet <anemet@caviumnetworks.com> 445 446 * config/mips/mips.c (mips_output_conditional_branch): Assert that 447 openrands[1] is a CODE_LABEL. 448 4492008-12-15 Richard Sandiford <rdsandiford@googlemail.com> 450 451 * config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to 452 the result of mips_prepare_builtin_target. 453 4542008-12-15 Richard Sandiford <rdsandiford@googlemail.com> 455 456 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls 457 if TARGET_ABICALLS is true. 458 4592008-12-15 Richard Sandiford <rdsandiford@googlemail.com> 460 461 * config/mips/mips.md (move_doubleword_fpr<mode>): Use 462 TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case. 463 4642008-12-15 Hariharan Sandanagobalane <hariharan@picochip.com> 465 466 * config/picochip/picochip.c (picochip_override_options): Disable CFI 467 asm and change the signature of brev and byteSwap functions to use 468 unsigned values. 469 * config/picochip/picochip.md (commsTestPort): This is a complex 470 instruction and should not be vliwed. Don't set insn type. 471 4722008-12-15 Wolfgang Gellerich <gellerich@de.ibm.com> 473 * config/s390/s390.c (s390_swap_cmp): New function. 474 (s390_non_addr_reg_read_p): New function. 475 (s390_z10_optimize_cmp): New function. 476 (s390_reorg): Added call to s390_optimize_cmp. 477 * config/s390/s390.md (nop1): New insn. 478 4792008-12-12 Rainer Emrich <r.emrich@de.tecosim.com> 480 481 PR bootstrap/38383 482 * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path 483 for the milli.a library. 484 4852008-12-12 Andrew Pinski <andrew_pinskia@playstation.sony.com> 486 Peter Bergner <bergner@vnet.ibm.com> 487 488 PR target/24779 489 * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the 490 TOC into the call pattern. 491 (call_indirect_aix64): Likewise. 492 (call_value_indirect_aix32): Likewise. 493 (call_value_indirect_aix64): Likewise. 494 (call_indirect_nonlocal_aix32_internal): New insn and split patterns 495 to split off the load of the TOC. 496 (call_indirect_nonlocal_aix32): Enable only after reload. 497 (call_indirect_nonlocal_aix64_internal): New insn and split patterns 498 to split off the load of the TOC. 499 (call_indirect_nonlocal_aix64): Enable only after reload. 500 (call_value_indirect_nonlocal_aix32_internal): New insn and split 501 patterns to split off the load of the TOC. 502 (call_value_indirect_nonlocal_aix32): Enable only after reload. 503 (call_value_indirect_nonlocal_aix64_internal): New insn and split 504 patterns to split off the load of the TOC. 505 (call_value_indirect_nonlocal_aix64): Enable only after reload. 506 5072008-12-12 Andreas Schwab <schwab@suse.de> 508 509 Revert: 510 2008-12-12 Andreas Schwab <schwab@suse.de> 511 * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on 512 a BARRIER insn. 513 5142008-12-12 Zdenek Dvorak <ook@ucw.cz> 515 516 PR tree-optimization/32044 517 * tree-scalar-evolution.h (expression_expensive_p): Declare. 518 * tree-scalar-evolution.c (expression_expensive_p): New function. 519 (scev_const_prop): Avoid introducing expensive expressions. 520 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto. 521 5222008-12-12 Sebastian Pop <sebastian.pop@amd.com> 523 524 PR middle-end/38409 525 * graphite.c (nb_reductions_in_loop): Use simple_iv. 526 5272008-12-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 528 529 * config/i386/x86intrin.h: New header file to support all x86 530 intrinsics 531 * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h 532 5332008-12-12 H.J. Lu <hongjiu.lu@intel.com> 534 535 PR target/38402 536 * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym 537 constraints for x86. 538 5392008-12-12 Andreas Schwab <schwab@suse.de> 540 541 * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on 542 a BARRIER insn. 543 5442008-12-12 Uros Bizjak <ubizjak@gmail.com> 545 546 * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands. 547 Use Pmode for scratch reg. 548 (*mb_internal): Use (match_dup 0) for unspec operand. 549 5502008-12-12 Alexandre Oliva <aoliva@redhat.com> 551 552 * tree-vrp.c (extract_range_from_binary_expr): Don't shift by 553 floor_log2 of zero. Negate widened zero. 554 5552008-12-12 Ben Elliston <bje@au.ibm.com> 556 557 * config/fp-bit.c (nan): Rename from this ... 558 (makenan): ... to this. 559 5602008-12-11 Adam Nemet <anemet@caviumnetworks.com> 561 562 * config/mips/mips.md (*branch_bit<bbv><mode>, 563 *branch_bit<bbv><mode>_inverted): Renumber operands so that the 564 label becomes operands[1]. 565 5662008-12-11 Harsha Jagasia <harsha.jagasia@amd.com> 567 568 PR tree-optimization/38446 569 * graphite.c (register_bb_in_sese): New. 570 (bb_in_sese_p): Check if bb belongs to sese region by explicitly 571 looking at the bbs in the region. 572 * graphite.h (sese): Add region_basic_blocks pointer set to 573 structure and initialize at the time of defining new scop. 574 5752008-12-11 Tobias Grosser <grosser@fim.uni-passau.de> 576 577 * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE. 578 (find_params_in_bb): Do not free data refs. 579 (free_graphite_bb): Add FIXME on disabled free_data_refs. 580 5812008-12-11 Sebastian Pop <sebastian.pop@amd.com> 582 583 * graphite.c (struct ivtype_map_elt): New. 584 (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map, 585 new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts, 586 gcc_type_for_cloog_iv): New. 587 (loop_iv_stack_patch_for_consts): Use the type of the induction 588 variable from the original loop, except for the automatically 589 generated loops, i.e., in the case of a strip-mined loop, in 590 which case there is no original loop: in that case just use 591 integer_type_node. 592 (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES. 593 (free_graphite_bb): Free GBB_CLOOG_IV_TYPES. 594 (clast_name_to_gcc): Accept params to be NULL. 595 (clast_to_gcc_expression): Take an extra parameter for the type. 596 Convert to that type all the expressions built by this function. 597 (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New. 598 (graphite_translate_clast_equation): Compute the type of the 599 clast_equation before translating its LHS and RHS. 600 (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New. 601 (graphite_create_new_loop): Compute the type of the induction 602 variable before translating the lower and upper bounds and before 603 creating the induction variable. 604 (rename_variables_from_edge, rename_phis_end_scop): New. 605 (copy_bb_and_scalar_dependences): Call rename_phis_end_scop. 606 (sese_add_exit_phis_edge): Do not use integer_zero_node. 607 (find_cloog_iv_in_expr, compute_cloog_iv_types_1, 608 compute_cloog_iv_types): New. 609 (gloog): Call compute_cloog_iv_types before starting the 610 translation of the clast. 611 612 * graphite.h (struct graphite_bb): New field cloog_iv_types. 613 (GBB_CLOOG_IV_TYPES): New. 614 (debug_ivtype_map): Declared. 615 (oldiv_for_loop): New. 616 6172008-12-10 Tobias Grosser <grosser@fim.uni-passau.de> 618 619 PR middle-end/38459 620 * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS. 621 (param_index): Assert if parameter is not know after parameter 622 detection. 623 (find_params_in_bb): Detect params directly in GBB_CONDITIONS. 624 (find_scop_parameters): Mark, that we have finished parameter 625 detection. 626 (graphite_transform_loops): Move condition detection before parameter 627 detection. 628 * graphite.h (struct scop): Add SCOP_ADD_PARAMS. 629 6302008-12-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 631 632 PR testsuite/35677 633 * emutls.c (__emutls_get_address): Make sure offset is really zero 634 before initializing the object's offset. 635 6362008-12-11 Jakub Jelinek <jakub@redhat.com> 637 638 PR c++/38253 639 * gimplify.c (gimplify_init_constructor): Don't force constructor 640 into memory if there is just one nonzero element. 641 6422008-12-11 Sebastian Pop <sebastian.pop@amd.com> 643 644 Fix testsuite/gfortran.dg/graphite/id-4.f90. 645 * graphite.c (scan_tree_for_params): Do not compute the multiplicand 646 when not needed. 647 6482008-12-11 Sebastian Pop <sebastian.pop@amd.com> 649 650 * graphite.c (build_scops_1): Initialize open_scop.exit 651 and sinfo.last. 652 6532008-12-11 Sebastian Pop <sebastian.pop@amd.com> 654 Jan Sjodin <jan.sjodin@amd.com> 655 Harsha Jagasia <harsha.jagasia@amd.com> 656 657 PR middle-end/37852 658 PR middle-end/37883 659 PR middle-end/37928 660 PR middle-end/37980 661 PR middle-end/38038 662 PR middle-end/38039 663 PR middle-end/38073 664 PR middle-end/38083 665 PR middle-end/38125 666 667 * tree-phinodes.c (remove_phi_nodes): New, extracted from... 668 * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block): 669 ... here. 670 * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared. 671 * Makefile.in (graphite.o): Depend on value-prof.h. 672 (graphite.o-warn): Removed -Wno-error. 673 * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 674 to be a NULL pointer. Call update_stmt. Return the newly created 675 cannonical induction variable. 676 677 * graphite.h (debug_rename_map): Declared. Fix some comments. 678 679 * graphite.c: Reimplement the code generation from graphite to gimple. 680 Include value-prof.h. 681 (loop_iv_stack_get_iv): Do not return NULL for constant substitutions. 682 (get_old_iv_from_ssa_name): Removed. 683 (graphite_stmt_p): New. 684 (new_graphite_bb): Test for useful statements before building a 685 graphite statement for the basic block. 686 (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug 687 in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason. 688 (recompute_all_dominators, graphite_verify, 689 nb_reductions_in_loop, graphite_loop_normal_form): New. 690 (scop_record_loop): Call graphite_loop_normal_form. 691 (build_scop_loop_nests): Iterate over all the blocks of the 692 function instead of relying on the incomplete information from 693 SCOP_BBS. Return the success of the operation. 694 (find_params_in_bb): Use the data from GBB_DATA_REFS. 695 (add_bb_domains): Removed. 696 (build_loop_iteration_domains): Don't call add_bb_domains. 697 Add the iteration domain only to the basic blocks that have been 698 translated to graphite. 699 (build_scop_conditions_1): Add constraints only if the basic 700 block have been translated to graphite. 701 (build_scop_data_accesses): Completely disabled until data 702 dependence is correctly implemented. 703 (debug_rename_elt, debug_rename_map_1, debug_rename_map): New. 704 (remove_all_edges_1, remove_all_edges): Removed. 705 (get_new_name_from_old_name): New. 706 (graphite_rename_variables_in_stmt): Renamed. 707 rename_variables_in_stmt. Call get_new_name_from_old_name. 708 Use replace_exp and update_stmt. 709 (is_old_iv): Renamed is_iv. 710 (expand_scalar_variables_stmt): Extra parameter for renaming map. 711 Use replace_exp and update_stmt. 712 (expand_scalar_variables_expr): Same. Use the map to get the 713 new names for the renaming of induction variables and for the 714 renaming of variables after a basic block has been copied. 715 (expand_scalar_variables): Same. 716 (graphite_rename_variables): Renamed rename_variables. 717 (move_phi_nodes): Removed. 718 (get_false_edge_from_guard_bb): New. 719 (build_iv_mapping): Do not insert the induction variable of a 720 loop in the renaming iv map if the basic block does not belong 721 to that loop. 722 (register_old_new_names, graphite_copy_stmts_from_block, 723 copy_bb_and_scalar_dependences): New. 724 (translate_clast): Heavily reimplemented: copy basic blocks, 725 do not move them. Finally, in call cleanup_tree_cfg in gloog. 726 At each translation step call graphite_verify ensuring the 727 consistency of the SSA, loops and dominators information. 728 (collect_virtual_phis, find_vdef_for_var_in_bb, 729 find_vdef_for_var_1, find_vdef_for_var, 730 patch_phis_for_virtual_defs): Removed huge hack. 731 (mark_old_loops, remove_dead_loops, skip_phi_defs, 732 collect_scop_exit_phi_args, patch_scop_exit_phi_args, 733 gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed. 734 (remove_sese_region, ifsese, if_region_entry, if_region_exit, 735 if_region_get_condition_block, if_region_set_false_region, 736 create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p, 737 sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb, 738 sese_add_exit_phis_edge, sese_add_exit_phis_var, 739 rewrite_into_sese_closed_ssa): New. 740 (gloog): Remove dead code. Early return if code cannot be 741 generated. Call cleanup_tree_cfg once the scop has been code 742 generated. 743 (graphite_trans_scop_block, graphite_trans_loop_block): Do not 744 block loops with less than two loops. 745 (graphite_apply_transformations): Remove the call to 746 scop_remove_ignoreable_gbbs. 747 (limit_scops): When build_scop_loop_nests fails, continue on next 748 scop. Fix open_scop.entry. 749 (graphite_transform_loops): Call recompute_all_dominators: force the 750 recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS. 751 Call initialize_original_copy_tables and free_original_copy_tables 752 to be able to copy basic blocks during code generation. 753 When build_scop_loop_nests fails, continue on next scop. 754 (value_clast): New union. 755 (clast_to_gcc_expression): Fix type cast warning. 756 7572008-12-10 Richard Guenther <rguenther@suse.de> 758 759 PR tree-optimization/36792 760 * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like 761 tcc_binary. 762 7632008-12-10 Daniel Berlin <dberlin@dberlin.org> 764 765 PR tree-optimization/36792 766 * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set. 767 7682008-12-10 Alexandre Oliva <aoliva@redhat.com> 769 770 PR target/37033 771 * dwarf2out.c (saved_do_cfi_asm): New. 772 (dwarf2out_do_frame): Take it into account. 773 (dwarf2out_d_cfi_asm): Likewise. Set it when appropriate. 774 7752008-12-10 Alexandre Oliva <aoliva@redhat.com> 776 777 PR middle-end/38271 778 * tree-sra.c (sra_build_bf_assignment): Avoid warnings for 779 variables initialized from SRAed bit fields. 780 7812008-12-10 Martin Guy <martinwguy@yahoo.it> 782 783 PR target/37668 784 * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the 785 result will be in an FPU register. 786 7872008-12-10 Eric Botcazou <ebotcazou@adacore.com> 788 789 PR target/37170 790 PR target/38448 791 * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external 792 on the associated SYMBOL_REF_DECL node, if any. 793 7942008-12-09 David Daney <ddaney@caviumnetworks.com> 795 796 * config/mips/sync.md (sync_<optab>_12): Replace 797 MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND. 798 (sync_old_<optab>_12): Remove third paramater to 799 MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP 800 with MIPS_SYNC_OLD_OP_12_AND. 801 (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP 802 with MIPS_SYNC_NEW_OP_12_AND. 803 (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with 804 MIPS_SYNC_OP_12_XOR, reduce length attribute to 40. 805 (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12 806 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with 807 MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40. 808 (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with 809 MIPS_SYNC_NEW_OP_12_XOR. 810 * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP, 811 MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP, 812 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12, 813 MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT, 814 MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten 815 to implement new __sync_nand semantics. 816 (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and 817 remove third parameter. 818 (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG, 819 MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed. 820 (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND. 821 (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR. 822 (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND. 823 (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR. 824 (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND. 825 (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR 826 8272008-12-09 Tobias Grosser <grosser@fim.uni-passau.de> 828 829 * graphite.c (graphite_transform_loops): Always call find_transform () 830 in ENABLE_CHECKING. So we test these code paths, even if we do not 831 generate code. 832 8332008-12-09 Tobias Grosser <grosser@fim.uni-passau.de> 834 835 * graphite.c (print_graphite_bb): Fix printing to file != dump_file. 836 8372008-12-09 Jakub Jelinek <jakub@redhat.com> 838 839 PR middle-end/38454 840 * function.h (struct function): Add always_inline_functions_inlined. 841 * ipa-inline.c (cgraph_early_inlining): Set it to true. 842 * tree-optimize.c (execute_fixup_cfg): Likewise. 843 * builtins.c (avoid_folding_inline_builtin): New function. 844 (fold_call_expr): Don't optimize always_inline builtins before 845 inlining. 846 (fold_call_stmt): Likewise. 847 (fold_builtin_call_array): Likewise. Don't call 848 fold_builtin_varargs for BUILT_IN_MD builtins. 849 850 PR tree-optimization/37416 851 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR. 852 8532008-12-09 Janis Johnson <janis187@us.ibm.com> 854 855 * doc/sourcebuild.texi (Test Directives): Fix formatting. 856 8572008-12-09 Vladimir Makarov <vmakarov@redhat.com> 858 859 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description. 860 861 * doc/invoke.texi (-fira-region): Describe new option. 862 (-fira-algorithm): Change the values. 863 864 * ira-conflicts.c (build_conflict_bit_table, 865 build_allocno_conflicts): Use ira_reg_classes_intersect_p. 866 (ira_build_conflicts): Use flag flag_ira_region instead of 867 flag_ira_algorithm. Prohibit usage of callee-saved likely spilled 868 base registers for allocnos crossing calls. 869 870 * flags.h (enum ira_algorithm): Redefine. 871 (enum ira_region): New. 872 (flag_ira_region): New. 873 874 * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region 875 instead of flag_ira_algorithm. 876 877 * toplev.c (flag_ira_algorithm): Change the initial value. 878 (flag_ira_region): New. 879 880 * ira-int.h (ira_reg_classes_intersect_p, 881 ira_reg_class_super_classes): New. 882 883 * ira-color.c (update_copy_costs): Use 884 ira_reg_classes_intersect_p. Use right class to find hard reg index. 885 (update_conflict_hard_regno_costs): Ditto. Add a new parameter. 886 (assign_hard_reg): Ditto. Pass additional argument to 887 update_conflict_hard_regno_costs. Do not uncoalesce for priority 888 coloring. 889 (allocno_priorities, setup_allocno_priorities, 890 allocno_priority_compare_func): Move before color_allocnos. 891 (color_allocnos): Add priority coloring. Use flag flag_ira_region 892 instead of flag_ira_algorithm. 893 (move_spill_restore): Check classes of the same reg allocno from 894 different regions. 895 (update_curr_costs): Use ira_reg_classes_intersect_p. 896 (ira_reassign_conflict_allocnos): Ditto. 897 898 * opts.c (decode_options): Always set up flag_ira. Set up 899 flag_ira_algorithm. Warn CB can not be used for architecture. 900 (common_handle_option): Modify code for -fira-algorithm. Add code 901 to process -fira-region. 902 903 * ira-lives.c (update_allocno_pressure_excess_length): Process 904 superclasses too. 905 (set_allocno_live, clear_allocno_live, mark_reg_live, 906 mark_reg_dead, process_bb_node_lives): Ditto. 907 908 * ira-emit.c (ira_emit): Fix insn codes. 909 910 * ira-build.c (propagate_allocno_info): Use flag flag_ira_region 911 instead of flag_ira_algorithm. 912 (allocno_range_compare_func): Ignore classes for priority coloring. 913 (setup_min_max_conflict_allocno_ids): Ditto. 914 (ira_flattening): Use ira_reg_classes_intersect_p. 915 916 * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT. 917 918 * common.opt (fira-algorithm): Modify. 919 (fira-region): New. 920 921 * ira.c (setup_class_hard_regs): Initialize. 922 (setup_cover_and_important_classes): Modify code setting class 923 related info for priority coloring. 924 (setup_class_translate): Ditto. 925 (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New. 926 (setup_reg_class_intersect_union): Rename to 927 setup_reg_class_relations. Add code for setting up new variables. 928 (find_reg_class_closure): Do not check targetm.ira_cover_classes. 929 (ira): Use flag flag_ira_region instead of flag_ira_algorithm. 930 931 * ira-costs.c (common_classes): New. 932 (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm. 933 (find_allocno_class_costs): Ditto. Use common_classes. Translate 934 alt_class. 935 (ira_costs): Allocate/deallocate common_classes. 936 937 * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19. 938 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for 939 R02A_REGS. 940 941 * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in 942 smallest_mode_for_size. 943 9442008-12-10 Ben Elliston <bje@au.ibm.com> 945 946 * config/rs6000/linux-unwind.h (get_regs): Constify casts. 947 9482008-12-09 Jan Hubicka <jh@suse.cz> 949 950 * predict.c (estimate_bb_frequencies): Fix test if profile is present. 951 9522008-12-09 Jakub Jelinek <jakub@redhat.com> 953 954 PR tree-optimization/35468 955 * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant 956 string on LHS. 957 9582008-12-09 Richard Guenther <rguenther@suse.de> 959 960 PR tree-optimization/38445 961 * tree-ssa-structalias.c (emit_pointer_definition): Only visit 962 names once. 963 (emit_alias_warning): Adjust. 964 9652008-12-09 Andrew Haley <aph@redhat.com> 966 967 * fixed-value.c (do_fixed_add): Add comment. 968 * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise. 969 * builtins.c (fold_builtin_sqrt): Likewise. 970 9712008-12-09 Kai Tietz <kai.tietz@onevision.com> 972 973 PR/38366 974 * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any 975 case. 976 * calls.c (nitialize_argument_information): Add fntype argument 977 and use it for calls.promote_function_args. 978 (expand_call): Pass fntype to aggregate_value_p if no fndecl 979 available and pass additional fntype to 980 initialize_argument_information. 981 * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part 982 to get function abi type. 983 (init_cumulative_args): Use for abi kind detection fntype, when no 984 fndecl is available. 985 9862008-12-09 Andreas Krebbel <krebbel1@de.ibm.com> 987 988 * config/s390/s390.md (movti, movdi_64, movdi_31, 989 *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31, 990 *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove 991 Q->Q alternative. 992 (Integer->BLKmode splitter): Removed. 993 9942008-12-08 Uros Bizjak <ubizjak@gmail.com> 995 996 * config/alpha/alpha.c (alpha_set_memflags): Process memory 997 references in full insn sequence. 998 9992008-12-09 Jason Merrill <jason@redhat.com> 1000 1001 * gimplify.c (gimplify_init_constructor): Revert to using < rather 1002 than <= for sparseness test. 1003 1004 PR c++/38410 1005 * gimplify.c (gimplify_init_constructor): Don't write out a static 1006 copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse 1007 initializers. 1008 10092008-12-09 Tobias Grosser <grosser@fim.uni-passau.de> 1010 1011 PR middle-end/38084 1012 Fix testsuite/gfortran.dg/graphite/id-3.f90. 1013 * graphite.c (scopdet_basic_block_info): Fix bug that found some 1014 regions more than once. 1015 10162008-12-09 Ben Elliston <bje@au.ibm.com> 1017 1018 * emutls.c (__emutls_get_address): Prototype. 1019 (__emutls_register_common): Likewise. 1020 1021 * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast. 1022 10232008-12-09 Ben Elliston <bje@au.ibm.com> 1024 1025 * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v. 1026 10272008-12-08 Steve Ellcey <sje@cup.hp.com> 1028 1029 * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant. 1030 (nonlocal_goto_receiver): New instruction. 1031 10322008-12-08 Jakub Jelinek <jakub@redhat.com> 1033 1034 PR c/35443 1035 * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR. 1036 1037 PR c/35442 1038 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle 1039 VIEW_CONVERT_EXPR the same as CASE_CONVERT. 1040 10412008-12-08 Richard Henderson <rth@redhat.com> 1042 1043 PR 38240 1044 * tree.h (TYPE_MODE): Invoke vector_type_mode when needed. 1045 (SET_TYPE_MODE): New. 1046 * c-decl.c (parser_xref_tag): Use it. 1047 (finish_enum): Likewise. 1048 * tree.c (build_pointer_type_for_mode): Likewise. 1049 (build_reference_type_for_mode, build_index_type): Likewise. 1050 (build_range_type, make_vector_type): Likewise. 1051 (build_common_tree_nodes_2): Likewise. 1052 * stor-layout.c (compute_record_mode): Likewise. 1053 (finalize_type_size, layout_type, make_fract_type): Likewise. 1054 (make_accum_type, initialize_sizetypes): Likewise. 1055 (vector_type_mode): New. 1056 * function.c (allocate_struct_function): Call 1057 invoke_set_current_function_hook before querying anything else. 1058 1059 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx. 1060 10612008-12-08 Luis Machado <luisgpm@br.ibm.com> 1062 1063 * alias.c (find_base_term): Synch LO_SUM handling with what 1064 find_base_value does. 1065 10662008-12-08 Andrew Haley <aph@redhat.com> 1067 Kamaraju Kusumanchi <raju.mailinglists@gmail.com> 1068 1069 * gimple.h (gimple_build_try): Fix declaration. 1070 1071 * builtins.c (fold_builtin_sqrt): Don't use a conditional operator. 1072 * fixed-value.c (do_fixed_add): Likewise. 1073 * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise. 1074 10752008-12-08 Jakub Jelinek <jakub@redhat.com> 1076 1077 PR middle-end/36802 1078 * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl 1079 on parallel and task contexts. 1080 10812008-12-07 Eric Botcazou <ebotcazou@adacore.com> 1082 1083 * gimple.c (recalculate_side_effects) <tcc_constant>: New case. 1084 10852008-12-07 Richard Guenther <rguenther@suse.de> 1086 1087 PR tree-optimization/38405 1088 * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to 1089 not sign-extend truth values. 1090 10912008-12-07 Eric Botcazou <ebotcazou@adacore.com> 1092 1093 * tree-sra.c (scalarize_use): Create another temporary with the proper 1094 type for signed types in the use_all && !is_output bitfield case. 1095 10962008-12-06 Steven Bosscher <steven@gcc.gnu.org> 1097 1098 PR rtl-optimization/36365 1099 * df-core.c (df_worklist_dataflow_overeager): Remove. 1100 (df_worklist_dataflow): Don't call it, use double-queue only. 1101 * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove. 1102 11032008-12-06 Jakub Jelinek <jakub@redhat.com> 1104 1105 PR middle-end/38428 1106 * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set 1107 gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile. 1108 11092008-12-07 Ben Elliston <bje@au.ibm.com> 1110 1111 * gthr-single.h (__gthread_once): Adjust prototype to match all 1112 other gthreads models. 1113 11142008-12-06 Jakub Jelinek <jakub@redhat.com> 1115 1116 * config/i386/i386.c (override_options): Use CPU_AMDFAM10 1117 instead of PROCESSOR_AMDFAM10 for barcelona's schedule. 1118 1119 PR middle-end/38422 1120 * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR 1121 operands to mult_type if it isn't narrower than op0's type. 1122 11232008-12-06 Jan Hubicka <jh@suse.cz> 1124 Jakub Jelinek <jakub@redhat.com> 1125 1126 PR tree-optimization/38074 1127 * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0 1128 entry frequency. 1129 * predict.c (combine_predictions_for_bb): Ignore predictor predicting 1130 in both dirrection for first match heuristics. 1131 (tree_bb_level_predictions): Disable noreturn heuristic when there 1132 is no returning path. 1133 11342008-12-05 Bernd Schmidt <bernd.schmidt@analog.com> 1135 1136 PR rtl-optimization/38272 1137 * reload1.c (choose_reload_regs): Keep reload_spill_index correct 1138 in all cases. 1139 11402008-12-05 Jakub Jelinek <jakub@redhat.com> 1141 1142 PR c++/35336 1143 * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF. 1144 (pp_c_expression): Likewise. 1145 11462008-12-05 Michael Meissner <meissner@linux.vnet.ibm.com> 1147 1148 PR c/38416 1149 * c-parser.c (struct c_token): Make pragma_kind 8 bits. 1150 11512008-12-05 Jakub Jelinek <jakub@redhat.com> 1152 1153 PR middle-end/37248 1154 * fold-const.c (make_bit_field_ref): Change bitpos and bitsize 1155 arguments to HOST_WIDE_INT. If type has different signedness 1156 than unsignedp or different precision from bitsize, create 1157 the right type for BIT_FIELD_REF and cast to type. 1158 (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT. 1159 1160 Revert: 1161 2008-03-05 Richard Guenther <rguenther@suse.de> 1162 PR c++/35336 1163 * fold-const.c (fold_truthop): Remove code generating 1164 BIT_FIELD_REFs of structure bases. 1165 (fold_binary): Likewise. 1166 (make_bit_field_ref): Remove. 1167 (optimize_bit_field_compare): Remove. 1168 (all_ones_mask_p): Remove. 1169 11702008-12-05 Jakub Jelinek <jakub@redhat.com> 1171 1172 * tree-sra.c (sra_explode_bitfield_assignment): Always 1173 call unsigned_type_for, if the precision is higher than 1174 needed, call build_nonstandard_integer_type. 1175 1176 PR debug/38367 1177 * function.c (assign_parm_find_stack_rtl): If promoted_mode 1178 is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for 1179 big endian. 1180 1181 PR middle-end/38338 1182 * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn 1183 only if internal_arg_pointer is a non-virtual pseudo. 1184 11852008-12-05 Joseph Myers <joseph@codesourcery.com> 1186 1187 * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for 1188 TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500. 1189 * config/rs6000/spe.md (e500_cr_ior_compare): Likewise. 1190 11912008-12-05 Jakub Jelinek <jakub@redhat.com> 1192 1193 PR tree-optimization/37716 1194 * gimplify.c (gimplify_expr): Allow COND_EXPR if 1195 gimplify_ctxp->allow_rhs_cond_expr. 1196 11972008-12-05 Uros Bizjak <ubizjak@gmail.com> 1198 1199 * config/alpha/alpha.c (alpha_fold_vector_minmax): Create 1200 VIEW_CONVERT_EXPR to convert output to long_integer_type_node. 1201 1202 (alpha_emit_conditional_branch): Do not generate direct branch 1203 for UNORDERED comparisons. 1204 12052008-12-05 Andreas Schwab <schwab@suse.de> 1206 1207 * config/rs6000/linux-unwind.h (frob_update_context): Check for 1208 NULL lr. 1209 12102008-12-05 Jakub Jelinek <jakub@redhat.com> 1211 1212 PR c/38408 1213 * fold-const.c (fold_checksum_tree): Change buf type to union 1214 tree_node. 1215 12162008-12-05 Sebastian Pop <sebastian.pop@amd.com> 1217 1218 PR bootstrap/38262 1219 * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS. 1220 (BACKENDLIBS): New. 1221 (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS. 1222 12232008-12-05 Ben Elliston <bje@au.ibm.com> 1224 1225 * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and 1226 comma_loc. 1227 (c_parser_initelt): Initialise des_loc and ellipsis_loc. 1228 12292008-12-04 Eric Botcazou <ebotcazou@adacore.com> 1230 Gary Funck <gary@intrepid.com> 1231 1232 * cse.c (lookup_as_function): Delete mode frobbing code. 1233 (equiv_constant): Re-implement it there for SUBREGs. 1234 12352008-12-04 Richard Guenther <rguenther@suse.de> 1236 1237 PR middle-end/36509 1238 * Makefile.in (tree-ssa-alias-warnings.o): Remove. 1239 (tree-ssa-structalias.o): Remove errors.h dependency. 1240 (tree-ssa-reassoc.o): Likewise. 1241 * tree-ssa-reassoc.c: Do not include errors.h. 1242 * tree-ssa-alias-warnings.c: Remove. 1243 * tree-ssa-alias.c (compute_may_aliases): Remove call to 1244 strict_aliasing_warning_backend. 1245 * tree-ssa-structalias.c (emit_pointer_definition): New function. 1246 (emit_alias_warning): Likewise. 1247 (set_uids_in_ptset): Warn for clear cases of type-punning. 1248 * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING 1249 on INDIRECT_REFs. 1250 12512008-12-04 Eric Botcazou <ebotcazou@adacore.com> 1252 1253 * cse.c (equiv_constant): Fix pasto. 1254 12552008-12-04 Nick Clifton <nickc@redhat.com> 1256 1257 * config/stormy16/stormy16.md: Remove extraneous spaces and quotes. 1258 * config/stormy16/stormy16.c: Remove extraneous spaces and fix up 1259 formatting of quotes. 1260 12612008-12-04 Jakub Jelinek <jakub@redhat.com> 1262 1263 PR middle-end/38371 1264 * fold-const.c (fold_checksum_tree): Allow modification of 1265 TYPE_NEXT_VARIANT. 1266 12672008-12-03 Jakub Jelinek <jakub@redhat.com> 1268 1269 PR middle-end/38360 1270 * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't 1271 have the right number of arguments. 1272 12732008-12-03 Richard Guenther <rguenther@suse.de> 1274 1275 PR middle-end/36326 1276 * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for 1277 non-BLKmode types. 1278 12792008-12-03 Tomas Bily <tbily@suse.cz> 1280 1281 PR middle-end/38250 1282 * tree-loop-distribution.c (build_size_arg): New function. 1283 (generate_memset_zero): Checks if dr_analyze_innermost succeed. 1284 Reorganized generating of stmts. 1285 * testsuite/gcc.dg/tree-ssa/pr38250.c: New file. 1286 * tree-data-ref.c (dr_analyze_innermost): Returns bool. 1287 Indicate if analysis succeed. 1288 * tree-data-ref.h (dr_analyze_innermost): Returns bool. 1289 * tree-predcom.c (valid_initializer_p, find_looparound_phi): 1290 Uses new definition of dr_analyze_innermost. 1291 12922008-12-03 Ben Elliston <bje@au.ibm.com> 1293 1294 * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime. 1295 12962008-12-03 Jakub Jelinek <jakub@redhat.com> 1297 1298 PR tree-optimization/37716 1299 * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct 1300 all the needed operations as trees and gimplify_assign it to dst. 1301 1302 PR target/37610 1303 * configure.ac (gcc_cv_readelf): Look for readelf. 1304 (gcc_cv_as_cfi_advance_working): Check for working 1305 cfi advances with code alignment factor > 1. 1306 (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances 1307 don't work properly. 1308 * configure: Regenerated. 1309 13102008-12-03 Eric Botcazou <ebotcazou@adacore.com> 1311 Jakub Jelinek <jakub@redhat.com> 1312 Andrew Pinski <andrew_pinski@playstation.sony.com> 1313 1314 PR rtl-optimization/38281 1315 * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2, 1316 set it to NULL_RTX afterwards. 1317 1318 * emit-rtl.c (set_insn_deleted): Fix formatting. 1319 13202008-12-02 Richard Sandiford <rdsandiford@googlemail.com> 1321 1322 * config/mips/mips.c (mips_expand_builtin): Fix the mode of the 1323 error return value. 1324 * config/mips/mips.md (IMOVE32): New mode iterator. 1325 (movsi): Generalize with IMOVE32. 1326 (*movsi_internal): Likewise. 1327 (*mov<mode>_mips16): Likewise. 1328 (*lwxs): Likewise. 1329 13302008-12-02 Nathan Sidwell <nathan@codesourcery.com> 1331 Maxim Kuvyrkov <maxim@codesourcery.com> 1332 1333 * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of 1334 PC-relative addressing when compiling for uclinux PIC. 1335 (__cmpdf_internal, __cmpsf_internal): Hide. 1336 (__cmpdf, __cmpsf): Use PIC call sequence. 1337 13382008-12-02 Andreas Tobler <a.tobler@schweiz.org> 1339 Jack Howarth <howarth@bromo.med.uc.edu> 1340 1341 * config/i386/t-darwin64: Add m32 multilib support. 1342 13432008-12-02 Jack Howarth <howarth@bromo.med.uc.edu> 1344 1345 * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later. 1346 13472008-12-02 Jakub Jelinek <jakub@redhat.com> 1348 1349 PR middle-end/38343 1350 * builtins.c (fold_builtin_memory_op): Convert len to sizetype 1351 before using it in POINTER_PLUS_EXPR. 1352 13532008-12-02 Richard Guenther <rguenther@suse.de> 1354 1355 PR tree-optimization/38359 1356 * fold-const.c (fold_binary): Fold -1 >> x to -1 only for 1357 non-negative x. 1358 13592008-12-02 Martin Jambor <mjambor@suse.cz> 1360 1361 PR middle-end/37861 1362 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check 1363 for INDIRECT_REFs. 1364 (forward_propagate_addr_into_variable_array_index): Check that the 1365 offset is not computed from a MULT_EXPR, use is_gimple_assign rather 1366 than the gimple code directly. 1367 13682008-12-02 Ben Elliston <bje@au.ibm.com> 1369 1370 * config/spu/float_disf.c (__floatdisf): Prototype. 1371 * config/spu/float_unsdisf.c (__float_undisf): Likewise. 1372 * config/spu/float_unssidf.c (__float_unssidf): Constify cast. 1373 * config/spu/float_unsdidf.c (__float_unsdidf): Likewise. 1374 13752008-12-02 DJ Delorie <dj@redhat.com> 1376 1377 * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate. 1378 (DWARF_CIE_DATA_ALIGNMENT): Define. 1379 1380 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): 1381 Invert add/sub for INCOMING_FRAME_SP_OFFSET. 1382 (xstormy16_expand_prologue): Likewise. 1383 (xstormy16_expand_builtin_va_start): Likewise. 1384 (xstormy16_gimplify_va_arg_expr): Likewise. 1385 13862008-12-02 Jakub Jelinek <jakub@redhat.com> 1387 1388 PR middle-end/38343 1389 * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs 1390 potentially returned from folding memcpy. 1391 (expand_builtin_stpcpy_args): Similarly for folding strcpy. 1392 (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored. 1393 13942008-12-02 Danny Smith <dannysmith@users.sourceforge.net> 1395 1396 PR target/38054 1397 * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall 1398 decoration of function RTL names here on Ada language. 1399 14002008-12-01 Vladimir Makarov <vmakarov@redhat.com> 1401 1402 PR rtl-optimization/38280 1403 * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func, 1404 ira_rebuild_regno_allocno_list): New functions. 1405 (regno_allocnos): New static variable. 1406 (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos. 1407 Call ira_rebuild_regno_allocno_list. 1408 14092008-12-01 David Daney <ddaney@caviumnetworks.com> 1410 Adam Nemet <anemet@caviumnetworks.com> 1411 1412 * config/mips/linux64.h (DRIVER_SELF_SPECS): Add 1413 LINUX_DRIVER_SELF_SPECS. 1414 14152008-12-01 Vladimir Makarov <vmakarov@redhat.com> 1416 1417 PR rtl-optimization/37514 1418 * reload1.c (reload_as_needed): Invalidate reg_last_reload 1419 from previous insns. 1420 14212008-12-01 Jakub Jelinek <jakub@redhat.com> 1422 1423 PR c++/38348 1424 * c-omp.c (c_finish_omp_for): Only transform pointer 1425 ++ or -- into MODIFY_EXPR if second argument is non-NULL. 1426 1427 PR rtl-optimization/38245 1428 * tree-vrp.c (abs_extent_range): New function. 1429 (extract_range_from_binary_expr): Compute range 1430 for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE 1431 or includes zero or if vr1 is VR_RANGE and op0 has some 1432 other range. 1433 14342008-12-01 Uros Bizjak <ubizjak@gmail.com> 1435 1436 PR middle-end/37908 1437 * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND 1438 case by calculating ~(new_reg & val) instead of (~new_reg & val). 1439 * config/alpha/sync.md (sync_nand<mode>): Change insn RTX 1440 to (not:I48MODE (and:I48MODE (...))). 1441 (sync_old_nand<mode>): Ditto. 1442 (sync_new_nand<mode>): Ditto. 1443 14442008-12-01 Nick Clifton <nickc@redhat.com> 1445 1446 * config/stormy16/stormy16.md (CARRY_REG): New constant. 1447 Replace uses of the "y" register class with direct references to 1448 the CARRY_REG register. 1449 * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch 1450 register with clobbers of the carry register. 1451 (xstormy16_secondary_reload_class): Do not return CARRY_REGS. 1452 (xstormy16_split_cbranch): Remove redundant carry parameter. 1453 (xstormy16_expand_arith): Likewise. 1454 * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS. 1455 (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS, 1456 REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. 1457 (CARRY_REGNUM): Define. 1458 * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch): 1459 Update prototype. 1460 (xstormy16_expand_arith): Likewise. 1461 14622008-12-01 Chen Liqin <liqin.chen@sunplusct.com> 1463 1464 * config/score/score.h (IRA_COVER_CLASSES): Define. 1465 14662008-11-30 Eric Botcazou <ebotcazou@adacore.com> 1467 1468 PR target/38287 1469 * config/sparc/sparc.md (divsi3 expander): Remove constraints. 1470 (divsi3_sp32): Add new alternative with 'K' for operand #2. 1471 (cmp_sdiv_cc_set): Factor common string. 1472 (udivsi3_sp32): Add new alternative with 'K' for operand #2. 1473 Add TARGET_V9 case. 1474 (cmp_udiv_cc_set): Factor common string. 1475 14762008-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1477 1478 PR middle-end/38283 1479 * varasm.c (emutls_finish): Fix common registration. 1480 14812008-11-29 Jakub Jelinek <jakub@redhat.com> 1482 1483 PR target/29987 1484 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine. 1485 14862008-11-29 David Edelsohn <edelsohn@gnu.org> 1487 1488 * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for 1489 operand wrapped in NOT. Emit NAND as (ior (not X) (not Y)). 1490 (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)). 1491 * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL. 1492 Call rs6000_emit_sync with CODE=NOT and unmodified operands. 1493 Ignore sub-word case for now. 1494 (sync_nand<mode>_internal): Represent NAND in RTL. 1495 (sync_old_nand<mode): Same. 1496 (sync_old_name<mode>_internal): Same. 1497 (sync_new_nand<mode>): Same. 1498 (sync_new_nand<mode>_internal): Same. 1499 (sync_boolcshort_internal): Expect NAND. 1500 15012008-11-28 Richard Guenther <rguenther@suse.de> 1502 1503 PR tree-optimization/37955 1504 PR tree-optimization/37742 1505 * tree-vect-transform.c (vectorizable_store): Remove assert for 1506 compatible aliases. 1507 (vectorizable_load): Likewise. 1508 15092008-11-27 Richard Guenther <rguenther@suse.de> 1510 1511 * tree-ssa-structalias.c (intra_create_variable_infos): Make 1512 a constraint for the static chain parameter. 1513 15142008-11-27 Bernd Schmidt <bernd.schmidt@analog.com> 1515 1516 * config/bfin/bfin.opt (micplb): New option. 1517 * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it. 1518 * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS, 1519 ENABLE_WA_INDIRECT_CALLS): New macros. 1520 * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to 1521 all 54x CPUs. 1522 (indirect_call_p): New function. 1523 (workaround_speculation): Handle anomaly 05-00-0426 when 1524 ENABLE_WA_INDIRECT_CALLS is true. 1525 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define 1526 __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS. 1527 * doc/invoke.texi (Blackfin Options): Document -micplb. 1528 15292008-11-26 DJ Delorie <dj@redhat.com> 1530 1531 * config/m32c/mov.md ("extendhipsi2"): New. 1532 1533 * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate. 1534 1535 * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class. 1536 * config/m32c/mov.md (zero_extendqihi2): Likewise. 1537 15382008-11-26 Adam Nemet <anemet@caviumnetworks.com> 1539 1540 * config/mips/mips.md (clear_hazard): Rename to 1541 clear_hazard_<mode>. Use mode-specific addition. 1542 (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si 1543 or gen_clear_hazard_di depending on the size of Pmode. 1544 15452008-11-26 DJ Delorie <dj@redhat.com> 1546 1547 * configure.ac: Test m32c-elf-gas for .loc. 1548 * configure: Likewise. 1549 15502008-11-26 Janis Johnson <janis187@us.ibm.com> 1551 1552 PR testsuite/28870 1553 * doc/sourcebuild.texi (Test Directives): Add dg-timeout and 1554 dg-timeout-factor. 1555 15562008-11-26 Uros Bizjak <ubizjak@gmail.com> 1557 1558 * config/i386/sync.md (memory_barrier_nosse): Disable also for 1559 TARGET_64BIT. Remove special asm template for TARGET_64BIT case. 1560 (memory_barrier): Do not generate memory_barrier_nosse instruction 1561 for TARGET_64BIT. 1562 * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT. 1563 15642008-11-26 Fredrik Unger <fred@tree.se> 1565 1566 * config/soft-fp/floatuntisf.c (__floatuntisf): Correct 1567 function name from __floatundisf. 1568 * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to 1569 DFtype. 1570 15712008-11-25 Daniel Berlin <dberlin@dberlin.org> 1572 Richard Guenther <rguenther@suse.de> 1573 1574 PR tree-optimization/37869 1575 * tree-ssa-structalias.c (struct constraint_graph): Remove 1576 pt_used and number_incoming members. 1577 (build_pred_graph): Do not allocate them. 1578 (condense_visit): Do not use them. 1579 (label_visit): Likewise. 1580 (free_var_substitution_info): Do not free them. 1581 15822008-11-25 Vladimir Makarov <vmakarov@redhat.com> 1583 1584 * doc/invoke.texi (ira-max-loops-num): Change semantics. 1585 1586 * ira-int.h (struct ira_loop_tree_node): New member to_remove_p. 1587 1588 * ira-color.c (allocno_spill_priority): New function. 1589 (remove_allocno_from_bucket_and_push, push_allocno_to_spill): 1590 Print more info about the spilled allocno. 1591 (push_allocnos_to_stack): Use allocno_spill_priority. Add more 1592 checks on bad spill. 1593 1594 * ira-build.c (loop_node_to_be_removed_p): Remove. 1595 (loop_compare_func, mark_loops_for_removal): New functions. 1596 (remove_uneccesary_loop_nodes_from_loop_t): Use member 1597 to_remove_p. 1598 (remove_unnecessary_allocnos): Call mark_loops_for_removal. 1599 1600 * ira.c (ira): Don't change flag_ira_algorithm. 1601 1602 * params.def (ira-max-loops-num): Change the value. 1603 16042008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com> 1605 1606 * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up. 1607 Disable unsupported alternative for ColdFire, 1608 add new alternative that ColdFire can handle. 1609 16102008-11-25 Eric Botcazou <ebotcazou@adacore.com> 1611 1612 * regrename.c (merge_overlapping_regs): Add registers artificially 1613 defined at the top of the basic block to the set of live ones just 1614 before the first insn. 1615 16162008-11-25 H.J. Lu <hongjiu.lu@intel.com> 1617 Joey Ye <joey.ye@intel.com> 1618 1619 PR middle-end/37843 1620 * config/i386/i386.c (ix86_function_ok_for_sibcall): Return 1621 false if we need to align the outgoing stack. 1622 (ix86_update_stack_boundary): Check parm_stack_boundary. 1623 16242008-11-25 Richard Guenther <rguenther@suse.de> 1625 1626 PR middle-end/38151 1627 PR middle-end/38236 1628 * tree-ssa-alias.c (struct alias_info): Remove written_vars. 1629 Remove dereferenced_ptrs_store and dereferenced_ptrs_load 1630 in favor of dereferenced_ptrs. 1631 (init_alias_info): Adjust. 1632 (delete_alias_info): Likewise. 1633 (compute_flow_insensitive_aliasing): Properly 1634 include all aliased variables. 1635 (update_alias_info_1): Use dereferenced_ptrs. 1636 (setup_pointers_and_addressables): Likewise. 1637 (get_smt_for): Honor ref-all pointers and pointers with known alias 1638 set properly. 1639 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers. 1640 16412008-11-25 Uros Bizjak <ubizjak@gmail.com> 1642 1643 PR target/38254 1644 * config/i386/sync.md (memory_barrier_nosse): New insn pattern. 1645 (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2. 1646 16472008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com> 1648 1649 * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo. 1650 16512008-11-24 Richard Sandiford <rdsandiford@googlemail.com> 1652 1653 * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define. 1654 16552008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com> 1656 1657 PR target/35018 1658 * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes. 1659 (addsi_lshrsi_31): Add ColdFire-friendly alternatives. 1660 16612008-11-24 Uros Bizjak <ubizjak@gmail.com> 1662 1663 * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from 1664 UNSPECV_CMPXCHG_[12]. 1665 * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of 1666 UNSPECV_CMPXCHG_[12]. 1667 1668 PR target/36793 1669 * config/i386/sync.md (memory_barrier): New expander. 1670 16712008-11-24 Jakub Jelinek <jakub@redhat.com> 1672 1673 PR middle-end/37135 1674 * dse.c (find_shift_sequence): Optimize extraction from a constant. 1675 16762008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1677 1678 * pa.c (function_arg): Revert 2008-10-26 change. 1679 16802008-11-23 Helge Deller <deller@gmx.de> 1681 1682 * pa/linux-atomic.c (EBUSY): Define if not _LP64. 1683 (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call 1684 succeeded and lws_ret is not equal to oldval. 1685 16862008-11-23 Kaz Kojima <kkojima@gcc.gnu.org> 1687 1688 * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used. 1689 16902008-11-22 Andreas Schwab <schwab@suse.de> 1691 1692 * varasm.c (default_file_start): Suppress ASM_APP_OFF also with 1693 -dA and -dP. 1694 16952008-11-22 Adam Nemet <anemet@caviumnetworks.com> 1696 1697 * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>. 1698 Use constant 1 as the operand. 1699 * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode. 1700 Rename gen_rdhwr to gen_rdhwr_synci_step_si or 1701 gen_rdhwr_synci_step_di depending on the size of Pmode. 1702 17032008-11-22 Uros Bizjak <ubizjak@gmail.com> 1704 1705 PR target/38222 1706 * config/i386/i386.md (SWI248): New mode iterator. 1707 (SWI32): Remove mode iterator. 1708 (popcount<mode>2): Rename from popcounthi2, popcountsi2 and 1709 popcounthi2 insn patterns. Macroize pattern using SWI248 mode 1710 iterator. Generate popcnt mnemonic without mode extensions 1711 for Darwin x86 targets. 1712 (*popcount<mode>2_cmp): Ditto. 1713 (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode 1714 extensions for Darwin x86 targets. 1715 17162008-11-22 Eric Botcazou <ebotcazou@adacore.com> 1717 1718 * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define 1719 only if HAVE_AS_SPARC_UA_PCREL is defined. 1720 17212008-11-22 Richard Sandiford <rdsandiford@googlemail.com> 1722 1723 * ira-costs.c (find_allocno_class_costs): Work out the maximum 1724 allocno_costs value of the classees with the lowest total_costs 1725 value. Use this to set ALLOCNO_COVER_CLASS_COST here... 1726 (setup_allocno_cover_class_and_costs): ...rather than here. 1727 Use the ALLOCNO_COVER_CLASS_COST for all registers in the 1728 preferred class. 1729 17302008-11-22 Jakub Jelinek <jakub@redhat.com> 1731 1732 PR middle-end/37323 1733 * builtins.c (expand_builtin_apply_args): Emit sequence before 1734 parm_birth_insn instead of after entry_of_function's first insn. 1735 1736 PR middle-end/37316 1737 * function.c (assign_parm_remove_parallels): Pass 1738 data->passed_type as third argument to emit_group_store. 1739 1740 PR target/37170 1741 * final.c (mark_symbol_refs_as_used): New function. 1742 * output.h (mark_symbol_refs_as_used): New prototype. 1743 * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed. 1744 (s390_output_pool_entry): Use mark_symbol_refs_as_used. 1745 * config/arm/arm.md (consttable_4): Likewise. 1746 1747 PR target/37880 1748 * doc/invoke.texi: Adjust wording of -mcmodel=medium description. 1749 17502008-11-21 Jakub Jelinek <jakub@redhat.com> 1751 1752 PR middle-end/38200 1753 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only 1754 propagate x = &a into *x = b if conversion from b to a's type is 1755 useless. 1756 17572008-11-21 Eric Botcazou <ebotcazou@adacore.com> 1758 1759 * caller-save.c (insert_one_insn): Take into account REG_INC notes 1760 for the liveness computation of the new insn. 1761 17622008-11-21 DJ Delorie <dj@redhat.com> 1763 1764 * config/stormy16/stormy16.md (movqi_internal, movhi_internal): 1765 Moves to/from below100 space (W) can only use r0-r7. 1766 17672008-11-21 Paolo Carlini <paolo.carlini@oracle.com> 1768 1769 PR other/38214 1770 * doc/invoke.texi (Optimization Options): Fix typo. 1771 17722008-11-21 H.J. Lu <hongjiu.lu@intel.com> 1773 Xuepeng Guo <xuepeng.guo@intel.com> 1774 1775 * config.gcc (extra_headers): For x86 and x86-64, remove 1776 gmmintrin.h, add immintrin.h and avxintrin.h. 1777 1778 * config/i386/gmmintrin.h: Renamed to ... 1779 * config/i386/avxintrin.h: This. Issue an error if 1780 _IMMINTRIN_H_INCLUDED is undedined. 1781 1782 * config/i386/immintrin.h: New. 1783 17842008-11-21 Jakub Jelinek <jakub@redhat.com> 1785 1786 PR target/38208 1787 * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use 1788 mode of PLUS, not mode of the eliminated register. 1789 17902008-11-21 Uros Bizjak <ubizjak@gmail.com> 1791 1792 * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3. 1793 * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3. 1794 (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3. 1795 (sse2_nand<mode>3): Rename to sse2_andnot<mode>3. 1796 (*sse_nand<mode>3): Rename to *sse_andnot<mode>3. 1797 (*avx_nand<mode>3): Rename to *avx_andnot<mode>3. 1798 (*nand<mode>3): Rename to *andnot<mode>3. 1799 (*nandtf3): rename to *andnottf3. 1800 * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]: 1801 Use CODE_FOR_mmx_andnotv2si3. 1802 [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3. 1803 [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3. 1804 [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3. 1805 [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3. 1806 [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3. 1807 18082008-11-21 Uros Bizjak <ubizjak@gmail.com> 1809 1810 PR middle-end/37908 1811 * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND 1812 case by calculating ~(new_reg & val) instead of (~new_reg & val). 1813 * config/ia64/sync.md (sync_nand<mode>): Change insn RTX 1814 to (not:IMODE (and:IMODE (...))). 1815 (sync_old_nand<mode>): Ditto. 1816 (sync_new_nand<mode>): Ditto. 1817 18182008-11-20 Joseph Myers <joseph@codesourcery.com> 1819 1820 * config/arm/thumb2.md (thumb2_casesi_internal, 1821 thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4. 1822 18232008-11-20 Andreas Krebbel <krebbel1@de.ibm.com> 1824 1825 * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic 1826 nand to the changed 4.4 semantic. 1827 18282008-11-20 Jakub Jelinek <jakub@redhat.com> 1829 1830 PR middle-end/29215 1831 * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined. 1832 (fold_builtin_memory_op): Handle even the case where just one 1833 of src and dest is an address of a var decl component, using 1834 TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant 1835 and readonly_data_expr src check. 1836 * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut 1837 up warnings. 1838 1839 PR rtl-optimization/36998 1840 * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset 1841 arguments. Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))). 1842 (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust 1843 stack_adjust_offset callers. 1844 (dwarf2out_stack_adjust): Likewise. Handle insns in annulled 1845 branches properly. 1846 (compute_barrier_args_size): Handle insns in annulled branches 1847 properly. 1848 18492008-11-20 Uros Bizjak <ubizjak@gmail.com> 1850 1851 PR target/38151 1852 * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]: 1853 Handle cases when integer argument crosses argument register boundary. 1854 18552008-11-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 1856 1857 PR bootstrap/33100 1858 * config.gcc (i[34567]86-*-solaris2*): Don't include 1859 i386/t-crtstuff here. 1860 Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host. 1861 * config/i386/t-sol2: Move to libgcc/config/i386. 1862 18632008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org> 1864 1865 PR driver/21706 1866 * tlink.c: Include "libiberty.h". 1867 (initial_cwd): Change type into char *. 1868 (tlink_init): Call getpwd instead of getcwd. 1869 18702008-11-19 Zdenek Dvorak <ook@ucw.cz> 1871 1872 PR rtl-optimization/32283 1873 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base 1874 of the induction variable to decide whether it may wrap. 1875 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the 1876 initialization of the bound before the loop. 1877 * simplify-rtx.c (simplify_binary_operation_1): Add two 1878 simplifications regarding AND. 1879 (simplify_plus_minus): Only fail if no simplification is possible. 1880 * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple. 1881 18822008-11-20 Jakub Jelinek <jakub@redhat.com> 1883 1884 PR c++/36631 1885 * gimplify.c (gimplify_call_expr): Defer most of the cannot inline 1886 checking until GIMPLE lowering. 1887 * gimple-low.c (check_call_args): New function. 1888 (lower_stmt) <case GIMPLE_CALL>: Call it. 1889 18902008-11-19 Adam Nemet <anemet@caviumnetworks.com> 1891 1892 * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize 1893 with the same type as the first operand of the AND expression. 1894 18952008-11-19 Vladimir Makarov <vmakarov@redhat.com> 1896 1897 PR bootstrap/37859 1898 * ira-int.h (struct ira_loop_tree_node): New member 1899 entered_from_non_parent_p. 1900 1901 * ira-color.c (print_loop_title): Print loop bbs. 1902 1903 * ira-emit.c (entered_from_non_parent_p, 1904 setup_entered_from_non_parent_p): New functions. 1905 (not_modified_p): Rename to store_can_be_removed_p. Check there 1906 is no side entries. 1907 (generate_edge_moves): Use store_can_be_removed_p instead of 1908 not_modified_p. 1909 (ira_emit): Call setup_entered_from_non_parent_p. 1910 1911 * ira-build.c (copy_info_to_removed_store_destinations): 1912 Accumulate CALL_FREQ, CALL_CROSSED_NUM, and 1913 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM. 1914 (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always 1915 update all accumulated attributes. 1916 19172008-11-19 Vladimir Makarov <vmakarov@redhat.com> 1918 1919 PR bootstrap/37790 1920 * ira-int.h (ira_copy_allocno_live_range_list, 1921 ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p, 1922 ira_finish_allocno_live_range_list): New prototypes. 1923 (ira_allocno_live_ranges_intersect_p, 1924 ira_pseudo_live_ranges_intersect_p): Remove. 1925 1926 * ira-conflicts.c (ira_allocno_live_ranges_intersect_p, 1927 ira_pseudo_live_ranges_intersect_p): Rename to 1928 allocnos_have_intersected_live_ranges_p and 1929 pseudos_have_intersected_live_ranges_p. Move them from here to ... 1930 1931 * ira-color.c: ... here 1932 (coalesced_allocno_conflict_p): Use 1933 allocnos_have_intersected_live_ranges_p. 1934 (coalesced_allocnos_living_at_program_points, 1935 coalesced_allocnos_live_at_points_p, 1936 set_coalesced_allocnos_live_points): Remove. 1937 (slot_coalesced_allocnos_live_ranges, 1938 slot_coalesced_allocno_live_ranges_intersect_p, 1939 setup_slot_coalesced_allocno_live_ranges): New. 1940 (coalesce_spill_slots): Use ranges of coalesced allocnos. 1941 (ira_sort_regnos_for_alter_reg): Use 1942 allocnos_have_intersected_live_ranges_p. 1943 (ira_reuse_stack_slot): Use 1944 pseudos_have_intersected_live_ranges_p. 1945 1946 * global.c (pseudo_for_reload_consideration_p): Check 1947 flag_ira_share_spill_slots too. 1948 1949 * ira-build.c (copy_allocno_live_range_list): Rename to 1950 ira_copy_allocno_live_range_list. Make it external. 1951 (merge_ranges): Rename to ira_merge_allocno_live_ranges. Make it 1952 external. 1953 (ira_allocno_live_ranges_intersect_p): New. 1954 (ira_finish_allocno_live_range_list): New. 1955 (finish_allocno): Use it. 1956 (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges. 1957 (copy_info_to_removed_store_destinations): Ditto. Use 1958 ira_copy_allocno_live_range_list. 1959 (ira_flattening): Use ira_merge_allocno_live_ranges. 1960 1961 * ira.c (too_high_register_pressure_p): New function. 1962 (ira): Switch off sharing spill slots if the pressure is too high. 1963 19642008-11-19 Richard Guenther <rguenther@suse.de> 1965 1966 * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with 1967 non-sizetype offsets if their precision matches that of the pointer. 1968 * expr.c (expand_expr_real_1): Always sign-extend the offset 1969 operand of a POINTER_PLUS_EXPR. 1970 19712008-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 1972 1973 * config.gcc: Unobsolete mips-sgi-irix[56]*. 1974 (mips-sgi-irix[56]*): No need to use fixproto. 1975 19762008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com> 1977 Paul Brook <paul@codesourcery.com> 1978 1979 * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid 1980 executable stack. 1981 19822008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com> 1983 1984 * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs. 1985 19862008-11-19 Razya Ladelsky <razya@il.ibm.com> 1987 1988 PR target/38156 1989 * tree-parloops.c (loop_parallel_p): NULL vect_dump. 1990 (separate_decls_in_region): Create shared struct even when there 1991 are only reductions. 1992 19932008-11-19 Hariharan Sandanagobalane <hariharan@picochip.com> 1994 1995 * config/picochip/picochip.c (headers): Remove an unnecessary 1996 header file. 1997 19982008-11-19 Andrew Stubbs <ams@codesourcery.com> 1999 2000 PR target/36133 2001 * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines. 2002 * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for 2003 shift instructions. 2004 * config/m68k/m68k.md: Adjust all conditional branches that use the 2005 carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE. 2006 20072008-11-18 Uros Bizjak <ubizjak@gmail.com> 2008 2009 PR target/37362 2010 * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high" 2011 is a register or zero operand in the correct mode before generating 2012 mtch1 insn or a register operand in the correct mode before generating 2013 mfch1 insn. 2014 (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand. 2015 20162008-11-18 Adam Nemet <anemet@caviumnetworks.com> 2017 2018 * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*. 2019 (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to 2020 mipsisa*-*-elf*. Handle mipsisa64r2*. 2021 * config/mips/sde.h (LINK_SPEC): Handle -mips64r2. 2022 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 2023 mips64r2. 2024 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. 2025 * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 2026 mips64r2. 2027 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. Add mips64r2/mips16. 2028 Fix mips16 if mips64 or mips64r2 are multilib defaults. 2029 * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 2030 mips64r2. 2031 20322008-11-18 Jakub Jelinek <jakub@redhat.com> 2033 2034 PR target/38130 2035 * config/i386/i386.md (allocate_stack_worker_32, 2036 allocate_stack_worker_64): Don't use match_dup between input and 2037 output operand. 2038 (allocate_stack): Adjust gen_stack_worker_{32,64} caller. 2039 * config/i386/i386.c (ix86_expand_prologue): Likewise. 2040 20412008-11-18 Kai Tietz <kai.tietz@onevision.com> 2042 2043 * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def 2044 is forced when trying to do a symbol link for it. 2045 20462008-11-17 Adam Nemet <anemet@caviumnetworks.com> 2047 2048 * expmed.c (extract_bit_field_1): Also use a temporary and 2049 convert_extracted_bit_field when the conversion from ext_mode to 2050 the target mode requires explicit truncation. 2051 20522008-11-17 Richard Sandiford <rdsandiford@googlemail.com> 2053 2054 * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first. 2055 Tweak formatting. 2056 * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator 2057 registers when not optimizing. 2058 20592008-11-17 Richard Sandiford <rdsandiford@googlemail.com> 2060 2061 * config/mips/mips.md (*mul_acc_si): Remove middle alternative 2062 and its associated define_split. Expose the all-d alternative 2063 to the register allocator, but mark it with "?". Mark the first 2064 alternative with "*?*?". 2065 (*mul_sub_si): Likewise. 2066 (*mul_acc_si_r3900): New pattern. 2067 20682008-11-17 Jakub Jelinek <jakub@redhat.com> 2069 2070 PR middle-end/38140 2071 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If 2072 propagating x = &a into *x = b, add a cast if not useless 2073 type conversion or don't optimize if another stmt would be 2074 needed. 2075 20762008-11-17 Uros Bizjak <ubizjak@gmail.com> 2077 2078 PR middle-end/37908 2079 * optabs.c (expand_sync_operation): Properly handle NAND case 2080 by calculating ~(t1 & val) instead of (~t1 & val). 2081 * builtins.c (expand_builtin_sync_operation): Warn for changed 2082 semantics in NAND builtins. 2083 * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand. 2084 2085 * doc/invoke.texi (Warning options): Add Wsync-nand. 2086 * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct 2087 __sync_fetch_and_nand builtin operation in the example. Add a note 2088 about changed semantics in GCC 4.4. 2089 [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin 2090 operation in the example. Add a note about changed semantics in 2091 GCC 4.4. 2092 20932008-11-16 Jan Hubicka <jh@suse.cz> 2094 2095 * cgraph.c (cgraph_function_body_availability): Fix test of externally 2096 visible. 2097 20982008-11-16 Joshua Kinard <kumba@gentoo.org> 2099 2100 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000 2101 to -mips4. 2102 21032008-11-16 Richard Sandiford <rdsandiford@googlemail.com> 2104 2105 PR target/38052 2106 * config/mips/mips.c (mips_cfun_call_saved_reg_p) 2107 (mips_cfun_might_clobber_call_saved_reg_p): New functions, 2108 split out from... 2109 (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP 2110 rather than call_really_used_regs when handling $gp. 2111 21122008-11-16 Richard Sandiford <rdsandiford@googlemail.com> 2113 2114 PR target/38052 2115 * config/mips/mips.c (machine_function): Update the comment 2116 above global_pointer. 2117 (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate 2118 that a function doesn't need a global pointer. 2119 (mips_current_loadgp_style): Update accordingly. 2120 (mips_restore_gp): Likewise. 2121 (mips_output_cplocal): Likewise. 2122 (mips_expand_prologue): Likewise. 2123 21242008-11-16 Eric Botcazou <ebotcazou@adacore.com> 2125 2126 * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode' 2127 parameter. Use DImode for computing the number of registers. 2128 (function_arg): Adjust for above change. 2129 (function_value): Likewise. 2130 21312008-11-15 Zdenek Dvorak <ook@ucw.cz> 2132 2133 PR tree-optimization/37950 2134 * tree-flow-inline.h (memory_partition): Return NULL when aliases were 2135 not computed for the current function. 2136 21372008-11-15 Jakub Jelinek <jakub@redhat.com> 2138 2139 PR target/38123 2140 * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between 2141 gpr and other COMPONENT_REFs. 2142 21432008-11-15 Richard Guenther <rguenther@suse.de> 2144 2145 PR tree-optimization/38051 2146 * tree-ssa-alias.c (update_alias_info_1): Manually find 2147 written variables. 2148 21492008-11-15 Joshua Kinard <kumba@gentoo.org> 2150 2151 * doc/invoke.texi (-mfix-r10000): Document. 2152 * config/mips/mips.opt (mfix-r10000): New option. 2153 * config/mips/mips-protos.h (mips_output_sync_loop): Declare. 2154 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?. 2155 (MIPS_COMPARE_AND_SWAP_12): Likewise. 2156 (MIPS_SYNC_OP): Likewise. 2157 (MIPS_SYNC_OP_12): Likewise. 2158 (MIPS_SYNC_OLD_OP_12): Likewise. 2159 (MIPS_SYNC_NEW_OP_12): Likewise. 2160 (MIPS_SYNC_OLD_OP): Likewise. 2161 (MIPS_SYNC_NAND): Likewise. 2162 (MIPS_SYNC_OLD_NAND): Likewise. 2163 (MIPS_SYNC_EXCHANGE): Likewise. 2164 (MIPS_SYNC_EXCHANGE_12): Likewise. 2165 (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely 2166 delay slots. 2167 (MIPS_SYNC_NEW_NAND): Likewise. 2168 * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'. 2169 (mips_init_print_operand_punct): Treat '~' as a punctuation character. 2170 (mips_output_sync_loop): New function. 2171 (mips_override_options): Make -march=r10000 imply -mfix-r10000. 2172 Make -mfix-r10000 require branch-likely instructions. 2173 * config/mips/sync.md (sync_compare_and_swap<mode>): Use 2174 mips_output_sync_loop. 2175 (compare_and_swap_12): Likewise. 2176 (sync_add<mode>): Likewise. 2177 (sync_<optab>_12): Likewise. 2178 (sync_old_<optab>_12): Likewise. 2179 (sync_new_<optab>_12): Likewise. 2180 (sync_nand_12): Likewise. 2181 (sync_old_nand_12): Likewise. 2182 (sync_new_nand_12): Likewise. 2183 (sync_sub<mode>): Likewise. 2184 (sync_old_add<mode>): Likewise. 2185 (sync_old_sub<mode>): Likewise. 2186 (sync_new_add<mode>): Likewise. 2187 (sync_new_sub<mode>): Likewise. 2188 (sync_<optab><mode>): Likewise. 2189 (sync_old_<optab><mode>): Likewise. 2190 (sync_new_<optab><mode>): Likewise. 2191 (sync_nand<mode>): Likewise. 2192 (sync_old_nand<mode>): Likewise. 2193 (sync_new_nand<mode>): Likewise. 2194 (sync_lock_test_and_set<mode>): Likewise. 2195 (test_and_set_12): Likewise. 2196 21972008-11-15 Eric Botcazou <ebotcazou@adacore.com> 2198 2199 * gcc.c (cc1_options): Fix comment. 2200 22012008-11-15 Jakub Jelinek <jakub@redhat.com> 2202 2203 PR c++/37561 2204 * c-typeck.c (build_unary_op): Don't call get_unwidened. Use 2205 argtype instead of result_type. 2206 22072008-11-14 Adam Nemet <anemet@caviumnetworks.com> 2208 2209 * ira-int.h (struct ira_loop_tree_node): Improve comments for 2210 subloop_next/next and subloops/childen fields. 2211 22122008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2213 2214 * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default. 2215 (STANDARD_INCLUDE_DIR): Redefine to "/include". 2216 (LOCAL_INCLUDE_DIR): Undefine. 2217 * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define. 2218 22192008-11-14 Vladimir Makarov <vmakarov@redhat.com> 2220 2221 PR rtl-optimization/37397 2222 * ira-int.h (struct ira_allocno): New member bad_spill_p. 2223 (ALLOCNO_BAD_SPILL_P): New macro. 2224 2225 * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P. 2226 2227 * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P. 2228 (create_cap_allocno, propagate_allocno_info, 2229 remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P. 2230 (update_bad_spill_attribute): New function. 2231 (ira_build): Call it. 2232 2233 * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P. 2234 22352008-11-14 Jakub Jelinek <jakub@redhat.com> 2236 2237 PR tree-optimization/38104 2238 * gimplify.c (gimple_regimplify_operands): Add referenced vars 2239 before calling mark_symbols_for_renaming, not after it. 2240 22412008-11-14 Kaz Kojima <kkojima@gcc.gnu.org> 2242 2243 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change. 2244 (OVERRIDE_OPTIONS): Likewise. 2245 22462008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com> 2247 Andrew Stubbs <ams@codesourcery.com> 2248 Gunnar Von Boehn <gunnar@genesi-usa.com> 2249 2250 PR target/36134 2251 * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring 2252 the shorter LEA insn over ADD.L where possible. 2253 22542008-11-14 Thomas Schwinge <tschwinge@gnu.org> 2255 2256 * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd 2257 systems, which are assumend to always provide SSP-support in glibc. 2258 Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*' 2259 case. 2260 * configure: Regenerate. 2261 22622008-11-14 Jakub Jelinek <jakub@redhat.com> 2263 2264 PR middle-end/36125 2265 * function.c (gimplify_parameters): For callee copies parameters, 2266 move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy. 2267 22682008-11-13 Thomas Schwinge <tschwinge@gnu.org> 2269 2270 PR target/28102 2271 * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*', 2272 x86 parts into the `i[34567]86-*-linux*' and parts that are 2273 independent of the processor architecture into the `*-*-linux*' cases. 2274 (*-*-linux*): Consider `linux.opt' only for Linux-based configurations. 2275 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine. 2276 (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine. 2277 [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine. 2278 * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine. 2279 (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead... 2280 (LINUX_TARGET_OS_CPP_BUILTINS): Redefine. 2281 22822008-11-13 Ruan Beihong <ruanbeihong@gmail.com> 2283 2284 * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns. 2285 * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc. 2286 (ls2_idiv): Likewise idiv3. 2287 (ls2_prefetch): New reservation. 2288 * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF. 2289 * config/mips/mips.md (type): Add imul3nc and idiv3. 2290 (length): Handle idiv3. 2291 (any_mod): New code_iterator. 2292 (u): Handle MOD and UMOD. 2293 (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets. 2294 (prefetch): Handle TARGET_LOONGSON_2EF. 2295 22962008-11-13 Jakub Jelinek <jakub@redhat.com> 2297 2298 PR c++/27017 2299 * dwarf2out.c (prune_unused_types_walk_local_classes): New function. 2300 (prune_unused_types_walk): Call it for non-perennial local classes. 2301 Set die_mark to 2 if recursing on children. If die_mark is 1 on 2302 entry, just set it to 2 and recurse on children, don't walk attributes 2303 again. 2304 23052008-11-13 Martin Michlmayr <tbm@cyrius.com> 2306 2307 * c-common.c (warn_about_parentheses): Add missing whitespace 2308 in warning. 2309 23102008-11-13 Paul Brook <paul@codesourcery.com> 2311 2312 * doc/invoke.texi: Document --fix-cortex-m3. 2313 * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if 2314 Cortex-M3 cpu is selected. 2315 (output_move_double): Avoid overlapping base register and first 2316 destination register when fix_cm3_ldrd. 2317 * config/arm/arm.opt: Add mfix-cortex-m3-ldrd. 2318 23192008-11-13 Jakub Jelinek <jakub@redhat.com> 2320 2321 PR bootstrap/38100 2322 * gimple.h (gimple_range_check_failed): Remove prototype. 2323 * gimple.c (gimple_check_failed): Don't check GCC_VERSION 2324 in guarding #if. 2325 (gimple_range_check_failed): Removed. 2326 23272008-11-13 Andrew Haley <aph@redhat.com> 2328 2329 PR bootstrap/38088 2330 * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific 2331 __LONG_LONG_MAX__. 2332 23332008-11-12 Jakub Jelinek <jakub@redhat.com> 2334 2335 PR c++/36478 2336 Revert: 2337 2007-05-07 Mike Stump <mrs@apple.com> 2338 * doc/invoke.texi (Warning Options): Document that -Wempty-body 2339 also checks for and while statements in C++. 2340 23412008-11-12 Dodji Seketeli <dodji@redhat.com> 2342 2343 PR debug/27574 2344 * cgraph.h: New abstract_and_needed member to struct cgraph_node. 2345 * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions 2346 - which clones are reachable - as "abstract and needed". 2347 * cgraph.c (cgraph_release_function_body): If a node is 2348 "abstract and needed", do not release its DECL_INITIAL() content 2349 that will be needed to emit debug info. 2350 23512008-11-12 Steve Ellcey <sje@cup.hp.com> 2352 2353 PR target/27880 2354 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro 2355 to set HAVE_GETIPINFO. 2356 * aclocal.m4: Include ../config/unwind_ipinfo.m4. 2357 * configure: Regenerate. 2358 * config.in: Regenerate. 2359 23602008-11-12 Jack Howarth <howarth@bromo.med.uc.edu> 2361 2362 PR bootstrap/38010 2363 * gcc/config.gcc: Use darwin9.h on darwin10 as well. 2364 23652008-11-12 Jakub Jelinek <jakub@redhat.com> 2366 2367 Revert: 2368 2008-10-21 Jakub Jelinek <jakub@redhat.com> 2369 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs. 2370 23712008-11-12 Jason Merrill <jason@redhat.com> 2372 2373 PR c++/38007 2374 * c-common.c (c_common_signed_or_unsigned_type): Remove C++ 2375 special casing. 2376 23772008-11-12 Anatoly Sokolov <aesok@post.ru> 2378 2379 * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb, 2380 atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and 2381 atmega32u6 devices. 2382 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). 2383 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). 2384 23852008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2386 2387 * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove 2388 packed-stack special handling. 2389 (FRAME_ADDR_RTX): Add definition. 2390 23912008-11-12 Jakub Jelinek <jakub@redhat.com> 2392 2393 PR target/35366 2394 * fold-const.c (native_encode_string): New function. 2395 (native_encode_expr): Use it for STRING_CST. 2396 23972008-11-12 DJ Delorie <dj@redhat.com> 2398 2399 * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the 2400 insns if the intermediate value will be used later. 2401 24022008-11-12 Andreas Schwab <schwab@suse.de> 2403 2404 * config/m68k/m68k.c (print_operand): Mask off extra extension 2405 bits when writing out the representation of real values. 2406 24072008-11-12 Ira Rosen <irar@il.ibm.com> 2408 2409 PR tree-optimization/38079 2410 * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file 2411 with vect_dump. 2412 24132008-11-12 Jakub Jelinek <jakub@redhat.com> 2414 2415 PR c++/35334 2416 * c-pretty-print.c (pp_c_complex_expr): New function. 2417 (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it. 2418 2419 PR target/35366 2420 * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment 2421 than INNER and INNER is a constant, forcibly align INNER as much 2422 as needed. 2423 24242008-11-11 Richard Sandiford <rdsandiford@googlemail.com> 2425 2426 * cse.c (fold_rtx): Remove redundant gen_rtx_CONST. 2427 24282008-11-11 Richard Sandiford <rdsandiford@googlemail.com> 2429 2430 PR rtl-optimization/37363 2431 * simplify-rtx.c (simplify_plus_minus): Don't create 2432 (const (minus ...)) expresisons. 2433 24342008-11-11 Eric Botcazou <ebotcazou@adacore.com> 2435 2436 * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO 2437 handling. 2438 24392008-11-10 Catherine Moore <clm@codesourcery.com> 2440 2441 * config.gcc (mips64vrel-*-elf*): Include the tm_file 2442 prior to vr.h. 2443 * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New. 2444 (BASE_DRIVER_SELF_SPECS): Remove. 2445 (DRIVER_SELF_SPECS): New definition. 2446 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Include 2447 BASE_DRIVER_SELF_SPECS. 2448 * config/mips/sde.h: Likewise. 2449 * config/mips/iris6.h: Likewise. 2450 * config/mips/vr.h: Likewise. 2451 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New. 2452 24532008-11-10 Vladimir Makarov <vmakarov@redhat.com> 2454 2455 PR rtl-optimizations/37948 2456 * ira-int.h (struct ira_allocno_copy): New member constraint_p. 2457 (ira_create_copy, ira_add_allocno_copy): New parameter. 2458 2459 * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it 2460 to ira_add_allocno_copy. 2461 (process_reg_shuffles, add_insn_allocno_copies): Pass a new 2462 parameter to process_regs_for_copy. 2463 (propagate_copies): Pass a new parameter to ira_add_allocno_copy. 2464 Fix typo in passing second allocno to ira_add_allocno_copy. 2465 2466 * ira-color.c (update_conflict_hard_regno_costs): Use head of 2467 coalesced allocnos list. 2468 (assign_hard_reg): Ditto. Check that assigned allocnos are not in 2469 the graph. 2470 (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket. 2471 (add_ira_allocno_to_ordered_bucket): Rename to 2472 add_allocno_to_ordered_bucket. 2473 (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use 2474 head of coalesced allocnos list. 2475 (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP. 2476 Check that it is aready calculated. 2477 (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill. 2478 (setup_allocno_left_conflicts_num): Use head of coalesced allocnos 2479 list. 2480 (coalesce_allocnos): Do extended coalescing too. 2481 2482 * ira-emit.c (add_range_and_copies_from_move_list): Pass a new 2483 parameter to ira_add_allocno_copy. 2484 2485 * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new 2486 parameter. 2487 (print_copy): Print copy origination too. 2488 2489 * ira-costs.c (scan_one_insn): Use alloc_pref for load from 2490 equivalent memory. 2491 24922008-11-10 Kaz Kojima <kkojima@gcc.gnu.org> 2493 2494 PR rtl-optimization/37514 2495 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set 2496 flag_ira_share_spill_slots to 2 if it's already non-zero. 2497 (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if 2498 flag_ira_share_spill_slots is 2. 2499 25002008-11-10 Kevin Buettner <kevinb@redhat.com> 2501 2502 * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2. 2503 (prologue_enter_32): Set FB to SP - 4. 2504 25052008-11-10 DJ Delorie <dj@redhat.com> 2506 2507 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB 2508 constraint for single-bit-clear in lower byte of HI constant, vs 2509 Imb which just ignores the upper byte. 2510 * config/m32c/predicates.md (m32c_1mask8_operand): Use it. 2511 * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it. 2512 (iorhi3_16): Check for single bit set, not single bit clear. 2513 25142008-11-10 Janis Johnson <janis187@us.ibm.com> 2515 2516 * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets. 2517 2518 * doc/sourcebuild.texi (Torture Tests): Fix formatting in example. 2519 25202008-11-10 Eric Botcazou <ebotcazou@adacore.com> 2521 2522 * calls.c (store_unaligned_arguments_into_pseudos): Deal only with 2523 values living in memory and use more precise alignment information. 2524 25252008-11-10 Jakub Jelinek <jakub@redhat.com> 2526 2527 PR middle-end/35314 2528 * tree-mudflap.c (mf_build_check_statement_for): Split then_block 2529 after __mf_check call if the call must end a bb. 2530 25312008-11-10 Ralph Loader <suckfish@ihug.co.nz> 2532 2533 PR middle-end/37807 2534 PR middle-end/37809 2535 * combine.c (force_to_mode): Do not process vector types. 2536 2537 * rtlanal.c (nonzero_bits1): Do not process vector types. 2538 (num_sign_bit_copies1): Likewise. 2539 25402008-11-09 Thomas Schwinge <tschwinge@gnu.org> 2541 2542 * config/i386/gnu.h: Add copyright and licensing header. 2543 * config/gnu.h: Likewise. 2544 25452008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com> 2546 2547 * fwprop.c (fwprop_done): Call df_remove_problem. 2548 25492008-11-07 Sebastian Pop <sebastian.pop@amd.com> 2550 2551 PR middle-end/37379 2552 * tree-scalar-evolution.c (instantiate_scev_1): Return 2553 chrec_dont_know for VL_EXP_CLASS_P. 2554 25552008-11-06 Uros Bizjak <ubizjak@gmail.com> 2556 2557 * reg-stack.c (reg_to_stack): Add missing braces in memset 2558 size calculation. 2559 25602008-11-06 Andrew Stubbs <ams@codesourcery.com> 2561 2562 * config/arm/bpabi.h (PROFILE_HOOK): New undef. 2563 (NO_PROFILE_COUNTERS): New define. 2564 25652008-11-06 David Edelsohn <edelsohn@gnu.org> 2566 2567 PR target/26397 2568 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define. 2569 25702008-11-06 Kazu Hirata <kazu@codesourcery.com> 2571 2572 PR target/35574 2573 * config/sparc/constraints.md (D): New. 2574 * config/sparc/predicates.md (const_double_or_vector_operand): New. 2575 * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the 2576 'D' constraint. 2577 * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64): 2578 Use the 'D' constraint in addition to 'F' in some alternatives. 2579 (DF splitter): Generalize for V64mode. 2580 * doc/md.texi (SPARC): Document the 'D' constraint. 2581 25822008-11-06 Uros Bizjak <ubizjak@gmail.com> 2583 2584 * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan. 2585 25862008-11-06 Ben Elliston <bje@au.ibm.com> 2587 2588 * gcc.c: Remove ancient comment about a bug in Sun cc. 2589 25902008-11-05 Janis Johnson <janis187@us.ibm.com> 2591 2592 * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS. 2593 25942008-11-06 Ben Elliston <bje@au.ibm.com> 2595 2596 * config/rs6000/rs6000.c (rs6000_override_options): Comment fix. 2597 25982008-11-06 Ben Elliston <bje@au.ibm.com> 2599 2600 * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option 2601 description. 2602 26032008-11-05 Hans-Peter Nilsson <hp@axis.com> 2604 2605 PR target/38016 2606 * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not 2607 just MEM_P. 2608 26092008-11-05 Martin Jambor <mjambor@suse.cz> 2610 2611 PR middle-end/37861 2612 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn 2613 pointer arithmetics into array_ref if the array is accessed 2614 through an indirect_ref. 2615 26162008-11-05 Richard Guenther <rguenther@suse.de> 2617 2618 PR middle-end/37742 2619 * tree-ssa.c (useless_type_conversion_p_1): Check different restrict 2620 qualified pointer conversion before stripping qualifiers. 2621 * gimplify.c (create_tmp_from_val): Use correctly qualified type. 2622 * tree-flow.h (may_propagate_address_into_dereference): Declare. 2623 * tree-ssa-ccp.c (may_propagate_address_into_dereference): New 2624 function. 2625 (ccp_fold): Use it. 2626 * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions, 2627 properly canonicalize binary ops. 2628 (forward_propagate_addr_expr_1): Use 2629 may_propagate_address_into_dereference. 2630 26312008-11-05 Uros Bizjak <ubizjak@gmail.com> 2632 2633 PR middle-end/37286 2634 * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]: 2635 Initialize uninitialized input registers with a NaN. 2636 26372008-11-05 Tobias Grosser <grosser@fim.uni-passau.de> 2638 2639 PR middle-end/37833 2640 2641 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR. 2642 26432008-11-05 Tobias Grosser <grosser@fim.uni-passau.de> 2644 2645 PR middle-end/37943 2646 2647 * graphite.c (scopdet_basic_block_info): Fix loops with multiple 2648 exits and conditions. 2649 * testsuite/gcc.dg/graphite/pr37943.c: New. 2650 26512008-11-04 Jakub Jelinek <jakub@redhat.com> 2652 Andrew Pinski <andrew_pinski@playstation.sony.com> 2653 2654 PR c/35430 2655 * c-common.c (warn_for_sign_compare): For complex result_type 2656 use component's type. 2657 26582008-11-04 Jakub Jelinek <jakuB@redhat.com> 2659 2660 * print-tree.c (print_node): Use code instead of TREE_CODE (node). 2661 2662 * print-tree.c (print_node): Don't print DECL_INITIAL 2663 for PARM_DECL. 2664 2665 PR c/37106 2666 * c-common.c (parse_optimize_options): Save and restore 2667 flag_strict_aliasing around decode_options call. 2668 26692008-11-04 Uros Bizjak <ubizjak@gmail.com> 2670 2671 * config/i386/driver-i386.c (enum vendor_signatures): New enum. 2672 (host_detect_local_cpu): Use it instead of casted strings to 2673 compare vendor signatures. 2674 26752008-11-03 Mikael Pettersson <mikpe@it.uu.se> 2676 2677 PR target/37989 2678 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a 2679 or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC. 2680 26812008-11-03 Catherine Moore <clm@codesourcery.com> 2682 2683 * config/mips.c (mips_conditional_register_usage): Handle the 2684 DSP control register. 2685 * doc/extend.texi: Document the DSP control register. 2686 26872008-11-03 Steve Ellcey <sje@cup.hp.com> 2688 Jakub Jelinek <jakub@redhat.com> 2689 2690 * omp-low.c (expand_omp_for_generic): If iter_type has different 2691 precision than type and type is a pointer type, cast n1 and n2 2692 first to an integer type with the same precision as pointers 2693 and only afterwards to iter_type. 2694 26952008-11-03 Richard Sandiford <rdsandiford@googlemail.com> 2696 2697 * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation. 2698 (UNSPEC_GOTSYM_OFF): New unspec. 2699 (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands. 2700 (pic_add_dot_plus_eight): Likewise. 2701 (tls_load_dot_plus_eight): Likewise. Update peephole2. 2702 * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the 2703 UNSPEC_PIC_BASE operands. 2704 * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF. 2705 (arm_output_addr_const_extra): Handle it. 2706 27072008-11-03 Eric Botcazou <ebotcazou@adacore.com> 2708 2709 * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial 2710 integer class to full integer class if the offset is not word-aligned. 2711 27122008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com> 2713 2714 PR rtl-opt/37782 2715 * loop-doloop.c (doloop_modify): Add from_mode argument that says what 2716 mode count is in. 2717 (doloop_optimize): Update call to doloop_modify. 2718 27192008-11-03 Eric Botcazou <ebotcazou@adacore.com> 2720 2721 * tree-sra.c (bitfield_overlaps_p): Fix oversight. 2722 27232008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 2724 2725 PR other/37463 2726 * configure.ac (gcc_cv_ld_ro_rw_mix): Move before 2727 gcc_cv_as_cfi_directive. 2728 (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports 2729 merging read-only and read-write sections or assembler emits 2730 read-write .eh_frame sections. 2731 * configure: Regenerate. 2732 27332008-11-03 Nathan Froyd <froydnj@codesourcery.com> 2734 2735 Revert: 2736 2008-10-31 Nathan Froyd <froydnj@codesourcery.com> 2737 2738 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence 2739 problem. 2740 (rs6000_emit_prologue): Invert logic. 2741 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit 2742 (reg:P 11) instead of match_operand. 2743 (*save_fpregs_<mode>): Likewise. 2744 (*restore_gpregs_<mode>): Likewise. 2745 (*return_and_restore_gpregs_<mode>): Likewise. 2746 (*return_and_restore_fpregs_<mode>): Likewise. 2747 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit 2748 (reg:P 11) insted of match_operand. 2749 (*restore_gpregs_spe): Likewise. 2750 (*return_and_restore_gpregs_spe): Likewise. 2751 27522008-11-03 Harsha Jagasia <harsha.jagasia@amd.com> 2753 2754 PR tree-optimization/37684 2755 * gcc.dg/graphite/pr37684.c: New. 2756 * graphite.c (exclude_component_ref): New. 2757 (is_simple_operand): Call exclude_component_ref. 2758 27592008-11-03 Sebastian Pop <sebastian.pop@amd.com> 2760 2761 PR tree-optimization/36908 2762 * testsuite/gcc.dg/tree-ssa/pr36908.c: New. 2763 * tree-loop-distribution.c (number_of_rw_in_rdg): New. 2764 (number_of_rw_in_partition): New. 2765 (partition_contains_all_rw): New. 2766 (ldist_gen): Do not distribute when one of the partitions 2767 contains all the memory operations. 2768 27692008-11-03 Sebastian Pop <sebastian.pop@amd.com> 2770 2771 * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and 2772 EDGE_IRREDUCIBLE_LOOP. 2773 27742008-11-03 Bernd Schmidt <bernd.schmidt@analog.com> 2775 2776 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case 2777 where we have one entry point in the loop which isn't the head. 2778 27792008-11-03 Richard Guenther <rguenther@suse.de> 2780 2781 PR middle-end/37573 2782 * tree-data-ref.c (split_constant_offset_1): Fix tuplification. 2783 27842008-11-03 Jakub Jelinek <jakub@redhat.com> 2785 2786 PR middle-end/37858 2787 * passes.c (execute_one_pass): Don't look at cfun->curr_properties 2788 for ipa and simple ipa passes. 2789 27902008-11-02 Richard Guenther <rguenther@suse.de> 2791 2792 PR tree-optimization/37542 2793 * tree-ssa-pre.c (fully_constant_expression): Handle more cases. 2794 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo. 2795 (vn_nary_op_lookup_stmt): Adjust for unary reference trees. 2796 (vn_nary_op_insert_stmt): Likewise. 2797 (visit_use): Likewise. 2798 27992008-11-02 Anatoly Sokolov <aesok@post.ru> 2800 2801 * config/avr/avr.md (UNSPEC_SWAP): Remove constants. 2802 (*swap): Remove. 2803 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8, 2804 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns. 2805 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4, 2806 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5, 2807 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6 2808 peephole2's): Replace unspec with rotate. 2809 * config/avr/avr.c (avr_rtx_costs): Add ROTATE. 2810 28112008-11-02 Richard Guenther <rguenther@suse.de> 2812 2813 PR tree-optimization/37991 2814 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove. 2815 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static. 2816 (set_ssa_val_to): Print if the value changed. 2817 (simplify_binary_expression): Strip useless conversions. 2818 28192008-11-01 Hans-Peter Nilsson <hp@axis.com> 2820 2821 PR target/37939 2822 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI 2823 operand. 2824 28252008-11-01 Richard Guenther <rguenther@suse.de> 2826 2827 PR middle-end/37976 2828 * builtins.c (fold_builtin_strspn): Return a size_t. 2829 (fold_builtin_strcspn): Likewise. 2830 28312008-10-31 Nathan Froyd <froydnj@codesourcery.com> 2832 2833 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu 2834 attribute for struct return convention. 2835 28362008-10-31 Nathan Froyd <froydnj@codesourcery.com> 2837 2838 * config/rs6000/crtsavres.asm: Really, really delete. 2839 28402008-10-31 Nathan Froyd <froydnj@codesourcery.com> 2841 2842 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence 2843 problem. 2844 (rs6000_emit_prologue): Invert logic. 2845 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit 2846 (reg:P 11) instead of match_operand. 2847 (*save_fpregs_<mode>): Likewise. 2848 (*restore_gpregs_<mode>): Likewise. 2849 (*return_and_restore_gpregs_<mode>): Likewise. 2850 (*return_and_restore_fpregs_<mode>): Likewise. 2851 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit 2852 (reg:P 11) insted of match_operand. 2853 (*restore_gpregs_spe): Likewise. 2854 (*return_and_restore_gpregs_spe): Likewise. 2855 28562008-10-28 Luis Machado <luisgpm@br.ibm.com> 2857 2858 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the 2859 list of word switches that take args. 2860 28612008-10-30 Jakub Jelinek <jakub@redhat.com> 2862 2863 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function. 2864 (s390_output_pool_entry): Call it through for_each_rtx. 2865 2866 PR middle-end/37730 2867 * expr.c (store_constructor): For vectors, if target is a MEM, use 2868 target's MEM_ALIAS_SET instead of elttype alias set. 2869 28702008-10-29 Kaz Kojima <kkojima@gcc.gnu.org> 2871 2872 PR target/37909 2873 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has 2874 no address. 2875 28762008-10-29 David Edelsohn <edelsohn@gnu.org> 2877 2878 PR target/37878 2879 * config/rs6000/predicates.md (word_offset_memref_operand): 2880 Restructure code and look inside auto-inc/dec addresses. 2881 28822008-10-29 Steve Ellcey <sje@cup.hp.com> 2883 2884 PR target/32277 2885 * libgcov.c (__gcov_indirect_call_profiler): Check 2886 TARGET_VTABLE_USES_DESCRIPTORS. 2887 28882008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com> 2889 2890 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define. 2891 (INITIAL_FRAME_POINTER_OFFSET): Remove. 2892 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new 2893 offset if eliminating soft frame pointer. 2894 * config/spu/spu.md (stack_protect_set, stack_protect_test) 2895 (stack_protect_test_si): Add initial machine description 2896 for Stack Smashing Protector 2897 28982008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 2899 2900 PR 11492 2901 * c-common.c (min_precision): Move to... 2902 * tree.c (tree_int_cst_min_precision): ... to here. Renamed. 2903 * tree.h (tree_int_cst_min_precision): Declare. 2904 * c-common.h (min_precision): Delete declaration. 2905 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle 2906 multiplication of non-negative integer constants. 2907 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to 2908 tree_int_cst_min_precision. 2909 (finish_enum): Likewise. 2910 29112008-10-29 Joseph Myers <joseph@codesourcery.com> 2912 2913 PR middle-end/36578 2914 * convert.c (convert_to_real): Do not optimize conversions of 2915 binary arithmetic operations between binary and decimal 2916 floating-point types. Consider mode of target type in determining 2917 decimal type for arithmetic. Unless 2918 flag_unsafe_math_optimizations, do not optimize binary conversions 2919 where this may change rounding behavior. 2920 * real.c (real_can_shorten_arithmetic): New. 2921 * real.h (real_can_shorten_arithmetic): Declare. 2922 29232008-10-29 Bernd Schmidt <bernd.schmidt@analog.com> 2924 2925 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315, 2926 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New. 2927 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as 2928 appropriate. 2929 (must_save_p): For some workarounds, interrupts need to clobber a 2930 P register. 2931 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0 2932 and LC1 for WA_05000257. 2933 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for 2934 WA_05000283 and WA_05000315. 2935 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant. 2936 (movbi): Add alternative to set CC to 1; improve code for setting 2937 CC to 0. 2938 (dummy_load): New pattern. 2939 29402008-10-29 Jakub Jelinek <jakub@redhat.com> 2941 2942 PR middle-end/37870 2943 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns 2944 BLKmode for non-memory, convert using a wider MODE_INT mode 2945 or through memory. 2946 2947 PR middle-end/37913 2948 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs 2949 that haven't been removed yet. 2950 29512008-10-29 Bernd Schmidt <bernd.schmidt@analog.com> 2952 2953 * config/bfin/bfin.c (struct machine_function): New member 2954 has_loopreg_clobber. 2955 (bfin_expand_movmem): Set it when generating memcpy insns. 2956 (n_regs_saved_by_prologue, expand_prologue_reg_save, 2957 expand_epilogue_reg_restore): If we have hardware loops, 2958 memcpy insns (indicated by has_loopreg_clobber) or function 2959 calls, we need to save the loop registers. 2960 29612008-10-28 H.J. Lu <hongjiu.lu@intel.com> 2962 2963 * config/i386/i386.c (core2_cost): Fix typos in comments. 2964 29652008-10-28 Jakub Jelinek <jakub@redhat.com> 2966 2967 PR c/37924 2968 * combine.c (make_compound_operation): Don't call make_extraction with 2969 non-positive length. 2970 (simplify_shift_const_1): Canonicalize count even if complement_p. 2971 29722008-10-28 Joseph Myers <joseph@codesourcery.com> 2973 2974 * convert.c (strip_float_extensions): Do not remove or introduce 2975 conversions between binary and decimal floating-point types. 2976 29772008-10-28 Jakub Jelinek <jakub@redhat.com> 2978 2979 PR middle-end/37931 2980 * fold-const.c (distribute_bit_expr): Convert common, left and 2981 right arguments to type. 2982 29832008-10-28 Nick Clifton <nickc@redhat.com> 2984 2985 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define. 2986 * config/mn10300/mn10300.c (fp_regs_to_save): Test the 2987 call_really_used_regs array rather than the call_used_regs array. 2988 (mn10300_get_live_callee_saved_regs, expand_prologue, 2989 expand_epilogue, output_tst): Likewise. 2990 29912008-10-27 Jakub Jelinek <jakub@redhat.com> 2992 2993 PR target/37378 2994 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here. 2995 (df_get_entry_block_def_set): Neither here. 2996 (df_get_regular_block_artificial_uses): Add EH_USES registers. 2997 2998 PR tree-optimization/37879 2999 * predict.c (tree_estimate_probability): Check if last_stmt is 3000 non-NULL before dereferencing it. 3001 30022008-10-27 Vladimir Makarov <vmakarov@redhat.com> 3003 3004 * ira-int.h (ira_allocno): Add member updated_cover_class_cost. 3005 (ALLOCNO_UPDATED_COVER_CLASS_COST): New. 3006 (ira_fast_allocation): Remove the prototype. 3007 3008 * ira-color.c (update_copy_costs, allocno_cost_compare_func, 3009 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs. 3010 (color_pass): Modify the updated costs. 3011 (ira_color): Rename to color. Make it static. 3012 (ira_fast_allocation): Rename to fast_allocation. Make it static. 3013 (ira_color): New function. 3014 3015 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost 3016 change. 3017 3018 * ira-lives.c (last_call_num, allocno_saved_at_call): New 3019 variables. 3020 (set_allocno_live, clear_allocno_live, mark_ref_live, 3021 mark_ref_dead): Invalidate corresponding element of 3022 allocno_saved_at_call. 3023 (process_bb_node_lives): Increment last_call_num. Setup 3024 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the 3025 allocno was already saved. 3026 (ira_create_allocno_live_ranges): Initiate last_call_num and 3027 allocno_saved_at_call. 3028 3029 * ira-build.c (ira_create_allocno): Initiate 3030 ALLOCNO_UPDATED_COVER_CLASS_COST. 3031 (create_cap_allocno, propagate_allocno_info, 3032 remove_unnecessary_allocnos): Remove setting updated costs. 3033 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST. 3034 3035 * ira.c (ira): Don't call ira_fast_allocation. 3036 3037 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up 3038 updated costs. 3039 30402008-10-27 Vladimir Makarov <vmakarov@redhat.com> 3041 3042 PR middle-end/37813 3043 * ira-conflicts.c (process_regs_for_copy): Remove class subset check. 3044 3045 * ira-int.h (ira_hard_regno_cover_class): New. 3046 3047 * ira-lives.c (mark_reg_live, mark_reg_dead, 3048 process_bb_node_lives): Use ira_hard_regno_cover_class. 3049 3050 * ira.c (reg_class ira_hard_regno_cover_class): New global variable. 3051 (setup_hard_regno_cover_class): New function. 3052 (ira_init): Call setup_hard_regno_cover_class. 3053 3054 * ira-costs.c (cost_class_nums): Add comment. 3055 (find_allocno_class_costs): Initiate cost_class_nums. 3056 (setup_allocno_cover_class_and_costs): Check cost_class_nums. 3057 30582008-10-27 Vladimir Makarov <vmakarov@redhat.com> 3059 3060 PR middle-end/37884 3061 * ira-build.c (copy_live_ranges_to_removed_store_destinations): 3062 Rename to copy_info_to_removed_store_destinations. Propagate 3063 conflict hard regs and register stack attribute. 3064 30652008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 3066 3067 PR middle-end/37316 3068 * pa.c (function_arg_padding): Pad complex and vector types 3069 upward in 64-bit runtime. 3070 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime. 3071 30722008-10-26 Matthias Klose <doko@ubuntu.com> 3073 3074 * doc/install.texi: Document requirements on antlr. 3075 30762008-10-25 Richard Sandiford <rdsandiford@googlemail.com> 3077 3078 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers 3079 first. 3080 30812008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com> 3082 3083 PR target/37841 3084 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET 3085 is defined, use it to modify the constant offset. 3086 3087 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro. 3088 3089 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char 3090 and short arguments to the correct location as mandated by the ABI. 3091 30922008-10-24 Kaz Kojima <kkojima@gcc.gnu.org> 3093 3094 PR rtl-optimization/37769 3095 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed. 3096 30972008-10-24 Kaz Kojima <kkojima@gcc.gnu.org> 3098 3099 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to 3100 unwind-dw2-Os-4-200.o. 3101 31022008-10-24 Joseph Myers <joseph@codesourcery.com> 3103 3104 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto. 3105 (convert_for_assignment): Remove ic_argpass_nonproto cases. 3106 31072008-10-24 Jakub Jelinek <jakub@redhat.com> 3108 3109 PR tree-optimization/36038 3110 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases 3111 add sizetype IV with initial value zero instead of pointer type. 3112 31132008-10-24 Manuel L��pez-Ib����ez <manu@gcc.gnu.org> 3114 3115 PR c/7543 3116 * value-prof.c (gimple_stringop_fixed_value): Use parentheses 3117 around bit operation. 3118 * profile.c (is_edge_inconsistent): Likewise. 3119 * fold-const.c (truth_value_p): Move from here... 3120 * tree.h (truth_value_p): ... to here. 3121 * c-tree.h (c_expr): Update description of original_code. 3122 * c-typeck.c (parser_build_unary_op): Set original_code. 3123 (parser_build_binary_op): Update call to warn_about_parentheses. 3124 * c-common.c (warn_about_parentheses): Take two additional 3125 arguments of the operands. Use a switch. Quote operators 3126 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P. 3127 Add warning about !x | y and !x & y. 3128 * c-common.h (warn_about_parentheses): Update declaration. 3129 31302008-10-24 Jakub Jelinek <jakub@redhat.com> 3131 3132 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize, 3133 check_p_tool, check_p_vars, check_p_subno, check_p_comma, 3134 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs): 3135 New variables. 3136 (check-subtargets, check-%-subtargets, check-parallel-%): New targets. 3137 (check-%): For test targets listed in lang_checks_parallelized 3138 if -j is used and RUNTESTFLAGS doesn't specify tests to execute, 3139 run the testing in multiple make goals, possibly parallel, and 3140 afterwards run dg-extract-results.sh to merge the sum and log files. 3141 31422008-10-24 Richard Sandiford <rdsandiford@googlemail.com> 3143 3144 * config/mips/mips.c (mips_canonicalize_move_class): New function. 3145 (mips_move_to_gpr_cost): Likewise. 3146 (mips_move_from_gpr_cost): Likewise. 3147 (mips_register_move_cost): Make more fine-grained. 3148 31492008-10-23 Tobias Grosser <grosser@fim.uni-passau.de> 3150 3151 * graphite.c (graphite_apply_transformations): Check for 3152 -fgraphite-identity. 3153 * toplev.c (process_options): Add graphite_identity. 3154 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity. 3155 31562008-10-23 Bernd Schmidt <bernd.schmidt@analog.com> 3157 3158 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh, 3159 mulhisihl and mulhisihh builtins. 3160 3161 From Jie Zhang <jie.zhang@analog.com> 3162 * config/bfin/bfin.md (composev2hi): Put operands into vector 3163 with correct order. 3164 31652008-10-22 Chao-ying Fu <fu@mips.com> 3166 3167 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips. 3168 31692008-10-22 Bernd Schmidt <bernd.schmidt@analog.com> 3170 3171 From Mike Frysinger <michael.frysinger@analog.com> 3172 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512, 3173 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518. 3174 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516, 3175 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527. 3176 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539. 3177 Add 0.2 for bf542, bf544, bf547, bf548, and bf549. 3178 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__ 3179 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__ 3180 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define 3181 __ADSPBF51x__ for all of them. 3182 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for 3183 -mcpu bf512, bf514, bf516, and bf518. 3184 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for 3185 bf512-none, bf514-none, bf516-none, and bf518-none. 3186 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise. 3187 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise. 3188 * doc/invoke.texi (Blackfin Options): Document that 3189 -mcpu now accepts bf512, bf514, bf516, and bf518. 3190 31912008-10-22 Jakub Jelinek <jakub@redhat.com> 3192 3193 PR middle-end/37882 3194 * fold-const.c (build_range_type): For 1 .. signed_max 3195 range call build_nonstandard_inter_type if signed_type_for 3196 returned a type with bigger precision. 3197 31982008-10-22 Richard Guenther <rguenther@suse.de> 3199 3200 * tree.def (COMPLEX_TYPE): Constrain element type. 3201 * tree.c (build_complex_type): Assert that. 3202 * tree-ssa-structalias.c (could_have_pointers): Complex types 3203 cannot have pointers. 3204 32052008-10-22 Manuel L��pez-Ib����ez <manu@gcc.gnu.org> 3206 3207 PR c/30949 3208 * c-typeck.c (convert_for_assignment): Do not give declaration's 3209 location for builtins. Spell out which type was expected and which 3210 was given. 3211 32122008-10-22 Nick Clifton <nickc@redhat.com> 3213 3214 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow 3215 the fdpic register to be a target when running in fdpic mode. 3216 32172008-10-22 Rafael Espindola <espindola@google.com> 3218 3219 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the 3220 newly created statements. 3221 32222008-10-22 Kaz Kojima <kkojima@gcc.gnu.org> 3223 3224 PR target/37633 3225 * config/sh/sh.c (sh_hard_regno_mode_ok): New function. 3226 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it. 3227 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare. 3228 32292008-10-22 Jakub Jelinek <jakub@redhat.com> 3230 3231 PR target/37880 3232 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option. 3233 Adjust -mcmodel=medium description for 2005-07-31 changes. 3234 32352008-10-22 Jan Hubicka <jh@suse.cz> 3236 Jakub Jelinek <jakub@redhat.com> 3237 3238 PR middle-end/35853 3239 * doc/invoke.texi: Remove references to obsoleted -d dumps. 3240 32412008-10-21 Richard Henderson <rth@redhat.com> 3242 3243 PR 37815 3244 * emit-rtl.c (get_spill_slot_decl): Export. 3245 * emit-rtl.h (get_spill_slot_decl): Declare. 3246 * var-tracking.c (vt_add_function_parameters): Relax assertion 3247 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot. 3248 32492008-10-21 Bob Wilson <bob.wilson@acm.org> 3250 3251 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a 3252 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead 3253 of from insn. 3254 32552008-10-21 Adam Nemet <anemet@caviumnetworks.com> 3256 3257 PR middle-end/37669 3258 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be 3259 processed by get_maxval_strlen. 3260 32612008-10-21 David Edelsohn <edelsohn@gnu.org> 3262 3263 PR target/35485 3264 * tree.c (get_file_function_name): Copy first_global_object_name. 3265 Centralize call to clean_symbol_name. 3266 32672008-10-21 Sandra Loosemore <sandra@codesourcery.com> 3268 3269 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h. 3270 * config/svr4.h (SVR4_ASM_SPEC): New. 3271 (ASM_SPEC): Inherit from SVR4_ASM_SPEC. 3272 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC. 3273 3274 * doc/invoke.texi (Option Summary): Add -T to linker options. 3275 (Link Options): Document -T. 3276 32772008-10-21 Jakub Jelinek <jakub@redhat.com> 3278 3279 * tree-inline.c (tree_inlinable_function_p): Remove tuples 3280 debugging hack. 3281 3282 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs. 3283 3284 PR debug/37020 3285 * c-decl.c (merge_decls): Don't call outlining_inline_function hook. 3286 32872008-10-20 Daniel Berlin <dberlin@dberlin.org> 3288 3289 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant 3290 part of expression. 3291 32922008-10-20 Tobias Schl��ter <tobi@gcc.gnu.org> 3293 3294 * doc/install.texi: Fix typos in previous patch. 3295 32962008-10-19 Tobias Schl��ter <tobi@gcc.gnu.org> 3297 3298 * doc/install.texi: Document in-tree building of gcc and mpfr. 3299 33002008-10-19 Richard Guenther <rguenther@suse.de> 3301 3302 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut. 3303 33042008-10-19 Manuel L��pez-Ib����ez <manu@gcc.gnu.org> 3305 3306 PR c/30260 3307 * c-decl.c (finish_enum): Convert non-integer enumerators to enum type. 3308 (build_enumerator): Convert enumerators that fit in integer to 3309 integer type. 3310 33112008-10-18 Uros Bizjak <ubizjak@gmail.com> 3312 3313 * config/i386/i386.md (unnamed peephole2): Do not force memory 3314 operands of arith or logical instructions into registers for 3315 non-TARGET_READ_MODIFY targets. 3316 3317 (ffs_cmove): Change operand 0 predicate to register_operand. 3318 Change operand 1 predicate to nonimmediate_operand. 3319 (ffsdi2): Ditto. 3320 (*ffs_no_cmove): Change operand 0 predicate to register_operand. 3321 33222008-10-18 Richard Guenther <rguenther@suse.de> 3323 3324 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard 3325 VIEW_CONVERT_EXPR case against invalid gimple. 3326 33272008-10-17 Andreas Krebbel <krebbel1@de.ibm.com> 3328 3329 * c-parser.c (c_parser_binary_expression): Silence the 3330 uninitialized variable warning emitted for binary_loc. 3331 33322008-10-16 Daniel Berlin <dberlin@dberlin.org> 3333 3334 * tree-ssa-pre.c (phi_translate_set): Add constants to phi 3335 translation cache. 3336 33372008-10-16 Joseph Myers <joseph@codesourcery.com> 3338 3339 PR c/33192 3340 * c-typeck.c (build_unary_op): Use omit_one_operand for 3341 IMAGPART_EXPR of real argument. 3342 33432008-10-16 Jakub Jelinek <jakub@redhat.com> 3344 3345 PR tree-optimization/37664 3346 * fold-const.c (fold_binary): When optimizing comparison with 3347 highest or lowest type's value, don't consider TREE_OVERFLOW. 3348 33492008-10-16 David Edelsohn <edelsohn@gnu.org> 3350 3351 PR target/35483 3352 * Makefile.in (coverage.o): Depend on $(TM_P_H). 3353 * coverage.c: Include tm_p.h. 3354 * config/rs6000/x-aix (jc1): Override LDFLAGS. 3355 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip 3356 dollar signs from PREFIX. 3357 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME 3358 instead of manual strip_name_encoding. 3359 33602008-10-16 Richard Guenther <rguenther@suse.de> 3361 3362 PR middle-end/37418 3363 * tree-ssa.c (useless_type_conversion_p_1): Do not treat 3364 volatile qualified functions or methods as relevant. 3365 33662008-10-16 Jakub Jelinek <jakub@redhat.com> 3367 3368 PR tree-optimization/37525 3369 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend 3370 sizetype unsigned constants, both in the case of C and bounds. 3371 33722008-10-15 Jan Hubicka <jh@suse.cz> 3373 3374 * ira-emit.c (change_regs): Return false when replacing reg by itself. 3375 33762008-10-14 Vladimir Makarov <vmakarov@redhat.com> 3377 3378 PR target/37633 3379 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check 3380 HARD_REGNO_CALL_PART_CLOBBERED. 3381 33822008-10-15 Vladimir Makarov <vmakarov@redhat.com> 3383 3384 PR middle-end/37535 3385 * ira-lives.c (mark_early_clobbers): Remove. 3386 (make_pseudo_conflict, check_and_make_def_use_conflicts, 3387 check_and_make_def_conflicts, 3388 make_early_clobber_and_input_conflicts, 3389 mark_hard_reg_early_clobbers): New functions. 3390 (process_bb_node_lives): Call 3391 make_early_clobber_and_input_conflicts and 3392 mark_hard_reg_early_clobbers. Make hard register inputs live again. 3393 3394 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for 3395 early clobbers of pseudo-registers. 3396 33972008-10-15 Vladimir Makarov <vmakarov@redhat.com> 3398 3399 PR middle-end/37674 3400 * ira-build.c (ira_flattening): Recalculate 3401 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS 3402 from the scratch instead of the propagation. 3403 34042008-10-15 Richard Sandiford <rdsandiford@googlemail.com> 3405 3406 * doc/rtl.texi (const_double): Remove the "addr" operand. 3407 Describe CONST_DOUBLE_* macros under const_double rather 3408 than const_vector. 3409 (const_fixed): Fix the operand description. 3410 (const): Add an @findex directive. 3411 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description 3412 after the constant rtl table. 3413 (fix): Combine floating-point and fixed-point descriptions. 3414 Fix hyphenation. 3415 * sched-deps.c (sched_analyze_2): Remove reference to 3416 CONST_DOUBLE_CHAIN. 3417 34182008-10-15 Richard Sandiford <rdsandiford@googlemail.com> 3419 3420 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle 3421 UNSPEC_GOTSYM_OFFs. 3422 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true 3423 for UNSPEC_GOTSYM_OFFs. 3424 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec. 3425 (add_GOT_to_pic_reg): Use it. 3426 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF. 3427 34282008-10-15 Jan Sjodin <jan.sjodin@amd.com> 3429 Harsha Jagasia <harsha.jagasia@amd.com> 3430 3431 PR tree-optimization/37485 3432 * graphite.c (gmp_cst_to_tree): Moved. 3433 (iv_stack_entry_is_constant): New. 3434 (iv_stack_entry_is_iv): New. 3435 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv. 3436 (loop_iv_stack_insert_constant): New. 3437 (loop_iv_stack_pop): Use new datatpype. 3438 (loop_iv_stack_get_iv): Same. 3439 (loop_iv_stack_get_iv_from_name): Same. 3440 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack. 3441 (loop_iv_stack_patch_for_consts): New. 3442 (loop_iv_stack_remove_constants): New. 3443 (graphite_create_new_loop): Use loop_iv_stack_push_iv. 3444 (translate_clast): Call loop_iv_stack_patch_for_consts and 3445 loop_iv_stack_remove_constants. 3446 (gloog): Use new datatype. Redirect construction edge to end 3447 block to avoid accidental deletion. 3448 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in 3449 iv stack entry. 3450 (union iv_stack_entry_data): New. Data in iv stack entry. 3451 (struct iv_stack_entry): New. Datatype for iv stack entries. 3452 34532008-10-15 Sebastian Pop <sebastian.pop@amd.com> 3454 3455 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak. 3456 * graphite.c (free_scop): Same. 3457 (build_scops): Same. 3458 (free_scattering): New. 3459 (build_cloog_prog): Call free_scattering. 3460 (patch_phis_for_virtual_defs): Fix memleak. 3461 (graphite_trans_bb_strip_mine): Same. 3462 (limit_scops): Same. 3463 34642008-10-15 Sebastian Pop <sebastian.pop@amd.com> 3465 Harsha Jagasia <harsha.jagasia@amd.com> 3466 3467 PR tree-optimization/37828 3468 * graphite.c (graphite_trans_loop_block): Do not loop block 3469 single nested loops. 3470 34712008-10-15 Sebastian Pop <sebastian.pop@amd.com> 3472 3473 PR tree-optimization/37686 3474 * tree-loop-linear.c (linear_transform_loops): Build a 3475 loop nest vector. Pass it to lambda_compute_access_matrices. 3476 * tree-data-ref.h (struct access_matrix): Store the loop nest 3477 relative to which it encodes the information. 3478 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST. 3479 (am_vector_index_for_loop): Reimplemented: iterate over the 3480 loop nest for finding the loop index in the access matrix. 3481 (lambda_compute_access_matrices): Update declaration. 3482 * lambda-code.c (build_access_matrix): Pass the loop nest and 3483 record it. 3484 (lambda_compute_access_matrices): Same. 3485 34862008-10-15 Andreas Krebbel <krebbel1@de.ibm.com> 3487 3488 * config/s390/s390.h (TARGET_DFP): This requires TARGET_HARD_FLOAT. 3489 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT && 3490 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this 3491 already implies hard float. Also fix several insn condition 3492 with TARGET_DFP which shall require TARGET_HARD_DFP instead. 3493 34942008-10-15 David Edelsohn <edelsohn@gnu.org> 3495 3496 PR target/35483 3497 Based on patches by Laurent Vivier. 3498 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore. 3499 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare. 3500 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate 3501 dollar sign to underscore. 3502 (ASM_OUTPUT_EXTERNAL): Same. 3503 (ASM_OUTPUT_LABELREF): New. 3504 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New. 3505 3506 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define. 3507 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define. 3508 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define. 3509 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define. 3510 35112008-10-15 Jakub Jelinek <jakub@redhat.com> 3512 3513 PR tree-optimization/36881 3514 * tree-switch-conversion.c (check_final_bb): For flag_pic, check 3515 that each value doesn't need runtime relocations, for !flag_pic 3516 check that each value is just a valid initializer constant. 3517 35182008-10-14 Richard Sandiford <rdsandiford@googlemail.com> 3519 3520 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS, 3521 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS, 3522 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS. 3523 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and 3524 GR_AND_ACC_REGS. 3525 (REG_CLASS_NAMES): Update accordingly. 3526 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments, 3527 rather than an unpredictable descriptive string. 3528 * config/mips/mips.c (mips_register_move_cost): Remove comment. 3529 (mips_register_move_cost): Check for specific COP*_REGS classes, 3530 instead of ALL_COP_AND_GR_REGS. 3531 (mips_ira_cover_classes): New function. 3532 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds. 3533 (TARGET_IRA_COVER_CLASSES): Define. 3534 35352008-10-14 Douglas Gregor <doug.gregor@gmail.com> 3536 3537 PR c++/37553 3538 * tree.c (build_type_attribute_qual_variant): Hash on the 3539 unqualified type, and don't overwrite an existing 3540 (type_hash_eq): Make the TYPE_NAME of the types significant, to 3541 allow distinguishing between wchar_t and its underlying type. This 3542 also means that we'll retain a little more typedef information. 3543 35442008-10-14 Andrey Belevantsev <abel@ispras.ru> 3545 Dmitry Melnik <dm@ispras.ru> 3546 Dmitry Zhurikhin <zhur@ispras.ru> 3547 Alexander Monakov <amonakov@ispras.ru> 3548 Maxim Kuvyrkov <maxim@codesourcery.com> 3549 3550 * target.h (struct gcc_target): Update prototypes of needs_block_p 3551 and gen_spec_check. 3552 * haifa-sched.c (create_check_block_twin): Update calls to the above. 3553 * sel-sched.c (create_speculation_check): Likewise. 3554 * doc/tm.texi: Provide documentation for new target hooks. 3555 3556 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks. 3557 (ia64_gen_spec_insn): Removed. 3558 (get_spec_check_gen_function, insn_can_be_in_speculative_p, 3559 ia64_gen_spec_check): New static functions. 3560 (ia64_alloc_sched_context, ia64_init_sched_context, 3561 ia64_set_sched_context, ia64_clear_sched_context, 3562 ia64_free_sched_context, ia64_get_insn_spec_ds, 3563 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions. 3564 (ia64_needs_block_p): Change prototype. 3565 (ia64_gen_check): Rename to ia64_gen_spec_check. 3566 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter 3567 into declaration, add special memory dependencies handling. 3568 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT, 3569 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT, 3570 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS, 3571 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P): 3572 Define new target hooks. 3573 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK. 3574 (ia64_optimization_options): Turn on selective scheduling with -O3, 3575 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by 3576 default with selective scheduling. 3577 (ia64_override_options): Initialize align_loops and align_functions 3578 to 32 and 64, respectively. Set global selective scheduling flags 3579 according to target-dependent flags. 3580 (rtx_needs_barrier): Support UNSPEC_LDS_A. 3581 (group_barrier_needed): Use new mstop-bit-before-check flag. 3582 Add heuristic. 3583 (dfa_state_size): Make global. 3584 (spec_check_no, max_uid): Remove. 3585 (mem_ops_in_group, current_cycle): New variables. 3586 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload. 3587 Initialize new variables. 3588 (is_load_p, record_memory_reference): New functions. 3589 (ia64_dfa_sched_reorder): Lower priority of loads when limit is 3590 reached. 3591 (ia64_variable_issue): Change use of current_sched_info to 3592 sched_deps_info. Update comment. Note if a load or a store is issued. 3593 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle 3594 advance if maximal number of loads or stores was issued on current 3595 cycle. 3596 (scheduled_good_insn): New static helper function. 3597 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when 3598 a group barrier is needed. Fix vertical spacing. Guard the code 3599 doing state transition with last_scheduled_insn check. 3600 Mark that a stop bit should be before current insn if there was a 3601 cycle advance. Update current_cycle and mem_ops_in_group. 3602 (ia64_h_i_d_extended): Change use of current_sched_info to 3603 sched_deps_info. Reallocate stops_p by larger chunks. 3604 (struct _ia64_sched_context): New structure. 3605 (ia64_sched_context_t): New typedef. 3606 (ia64_alloc_sched_context, ia64_init_sched_context, 3607 ia64_set_sched_context, ia64_clear_sched_context, 3608 ia64_free_sched_context): New static functions. 3609 (gen_func_t): New typedef. 3610 (get_spec_load_gen_function): New function. 3611 (SPEC_GEN_EXTEND_OFFSET): Declare. 3612 (ia64_set_sched_flags): Check common_sched_info instead of *flags. 3613 (get_mode_no_for_insn): Change the condition that prevents use of 3614 special hardware registers so it can now handle pseudos. 3615 (get_spec_unspec_code): New function. 3616 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds, 3617 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions. 3618 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks 3619 during selective scheduling. 3620 (ia64_speculate_insn): Use ds_get_speculation_types when 3621 determining whether we need to change the pattern. 3622 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare. 3623 (ia64_spec_check_src_p): Support new speculation/check codes. 3624 (struct bundle_state): New field. 3625 (issue_nops_and_insn): Initialize it. 3626 (insert_bundle_state): Minimize mid-bundle stop bits. 3627 (important_for_bundling_p): New function. 3628 (get_next_important_insn): Use important_for_bundling_p. 3629 (bundling): When shifting TImode from unimportant insns, ignore 3630 also group barriers. Assert that best state is found before 3631 the backward bundling pass. Print number of mid-bundle stop bits. 3632 Minimize mid-bundle stop bits. Check correct calculation of 3633 mid-bundle stop bits. 3634 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting. 3635 (final_emit_insn_group_barriers): Emit stop bits before insns starting 3636 a new cycle. 3637 (sel2_run): New variable. 3638 (ia64_reorg): When flag_selective_scheduling2 is set, run the 3639 selective scheduling pass instead of schedule_ebbs. 3640 3641 * config/ia64/ia64.md (speculable1, speculable2): New attributes. 3642 (UNSPEC_LDS_A): New UNSPEC. 3643 (movqi_internal, movhi_internal, movsi_internal, movdi_internal, 3644 movti_internal, movsf_internal, movdf_internal, 3645 movxf_internal): Make visible. Add speculable* attributes. 3646 (output_c_nc): New mode attribute. 3647 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a, 3648 mov<mode>_nc, zero_extend<mode>di2_nc, 3649 advanced_load_check_nc_<mode>): New insns. 3650 (zero_extend*): Add speculable* attributes. 3651 3652 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option. 3653 (msched-stop-bits-after-every-cycle): Likewise. 3654 (msched-max-memory-insns, msched-max-memory-insns-hard-limit): 3655 Likewise. 3656 (msched-spec-verbose): Remove. 3657 (msched-prefer-non-data-spec-insns, 3658 msched-prefer-non-control-spec-insns, 3659 msched-count-spec-in-critical-path, 3660 msel-sched-dont-check-control-spec): Use Target Report Var 3661 instead of Common Report Var. 3662 3663 * config/ia64/itanium2.md: Remove incorrect bypass. 3664 3665 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h. 3666 36672008-10-14 Jakub Jelinek <jakub@redhat.com> 3668 3669 PR middle-end/37805 3670 * opts.c (common_handle_option): Don't ICE on -fhelp=joined 3671 and -fhelp=separate. 3672 36732008-10-14 Ben Elliston <bje@au.ibm.com> 3674 3675 * config/rs6000/rs6000.md (cell_micro): Fix formatting. 3676 36772008-10-13 Joseph Myers <joseph@codesourcery.com> 3678 3679 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on 3680 non-integer modes. 3681 36822008-10-13 Matthias Klose <doko@ubuntu.com> 3683 3684 * config/pa/linux-atomic.c: Work around missing header file 3685 for hppa64-linux-gnu targets. 3686 36872008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com> 3688 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com> 3689 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> 3690 Grace Cao <grace_cao@playstation.sony.com> 3691 3692 * doc/invoke.texi (-mgen-cell-microcode): Document. 3693 (-mwarn-cell-microcode): Document. 3694 * cfglayout.c (locator_location): Export. 3695 * rtl.h (locator_location): Define prototype. 3696 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): 3697 New predicate. 3698 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype. 3699 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option. 3700 (mwarn-cell-microcode): New option. 3701 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable. 3702 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for 3703 cell and not already set. 3704 Turn off string instructions if not generating cell microcode. 3705 (rs6000_final_prescan_insn): New function that warns about microcoded 3706 instructions. 3707 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define. 3708 * config/rs6000/rs6000.md 3709 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if 3710 the instruction would have been microcoded on the Cell. Set 3711 cell_micro to always on unnamed patterns for the string instructions. 3712 (cell_micro): Update definition, remove load/store conditional 3713 microcoded. 3714 (sign_extend:DI): Define new pattern for non microcoded version. 3715 (sign_extend:SI): Likewise. 3716 (compare (div:P)): Set cell_micro to not. 3717 (andsi3): Define as an expand. 3718 (andsi3_mc): New pattern. 3719 (andsi3_nomc): New pattern. 3720 (andsi3_internal0_nomc): New pattern. 3721 (andsi3_internal2): Rename to ... 3722 (andsi3_internal2_mc): this and enable iff generating microcode. 3723 (andsi3_internal3): Rename to ... 3724 (andsi3_internal3_mc): this and enable iff generating microcode. 3725 (andsi3_internal4): Enable iif generating microcode. 3726 (andsi3_internal5): Rename to .. 3727 (andsi3_internal5_mc): this and enable iff generating microcode. 3728 (andsi3_internal5_nomc): New pattern. 3729 (extzvdi_internal1): Enable iff generating microcode. 3730 (extzvdi_internal2): Likewise. 3731 (rotlsi3_internal7): Set cell_micro to always if non immediate form. 3732 (anddi3): Change to expand. 3733 (anddi3_mc): Rename from anddi3. 3734 (anddi3_no_mc): New pattern. 3735 (anddi3_internal2): Rename to .. 3736 (anddi3_internal2_mc): this and enable iff generating microcode. 3737 (anddi3_internal2_nomc): New pattern. 3738 (anddi3_internal3): Rename to .. 3739 (anddi3_internal3_mc): this and enable iff generating microcode. 3740 (anddi3_internal3_nomc): New pattern. 3741 (movti_string): Set cell_micro to always if TARGET_STRING. 3742 (stmsi8): Set cell_micro to always. 3743 (stmsi7): Likewise. 3744 (stmsi6): Likewise. 3745 (stmsi5): Likewise. 3746 (stmsi4): Likewise. 3747 (stmsi3): Likewise. 3748 (stmsi8_power): Likewise. 3749 (stmsi7_power): Likewise. 3750 (stmsi6_power): Likewise. 3751 (stmsi5_power): Likewise. 3752 (stmsi4_power): Likewise. 3753 (stmsi3_power): Likewise. 3754 (movsi_update2): Enable iff generating microcode. 3755 (movhi_update3): Likewise. 3756 (lmw): Set cell_micro to always. 3757 37582008-10-13 Richard Sandiford <rdsandiford@googlemail.com> 3759 3760 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant. 3761 * config/s390/s390.c (machine_function): Remove 3762 decomposed_literal_pool_addresses_ok_p. 3763 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of 3764 the difference of two labels. 3765 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET. 3766 (s390_pool_offset): New function. 3767 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it. 3768 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p. 3769 37702008-10-13 Nathan Froyd <froydnj@codesourcery.com> 3771 3772 * doc/install.texi (powerpc-*-*): Require binutils 2.15. 3773 (powerpc*-*-linux-gnu*): Describe. 3774 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro. 3775 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm, 3776 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm, 3777 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm, 3778 config/rs6000/e500crtres32gpr.asm, 3779 config/rs6000/e500crtres64gpr.asm, 3780 config/rs6000/e500crtres64gprctr.asm, 3781 config/rs6000/e500crtrest32gpr.asm, 3782 config/rs6000/e500crtrest64gpr.asm, 3783 config/rs6000/e500crtresx32gpr.asm, 3784 config/rs6000/e500crtresx64gpr.asm, 3785 config/rs6000/e500crtsav32gpr.asm, 3786 config/rs6000/e500crtsav64gpr.asm, 3787 config/rs6000/e500crtsav64gprctr.asm, 3788 config/rs6000/e500crtsavg32gpr.asm, 3789 config/rs6000/e500crtsavg64gpr.asm, 3790 config/rs6000/e500crtsavg64gprctr.asm: Use it. 3791 * config/rs6000/crtsavres.asm: Really remove. 3792 37932008-10-13 Kai Tietz <kai.tietz@onevision.com> 3794 3795 Fix PR/25502 3796 * c-format.c (convert_format_name_to_system_name): Use 3797 TARGET_OVERRIDES_FORMAT_INIT. 3798 * config.gcc (extra_options): Add for mingw targets mingw.opt. 3799 * config/i386/mingw.opt: New. 3800 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New. 3801 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New. 3802 (ms_printf_length_specs): Removed const specifier. 3803 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New. 3804 * doc/invoke.texi (Wno-pedantic-ms-format): New. 3805 38062008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3807 3808 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals. 3809 * doc/install.texi: Bump recommended MPFR to 2.3.2. 3810 38112008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com> 3812 3813 PR middle-end/37808 3814 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make 3815 sure that ref has valid bb. 3816 38172008-10-12 Richard Henderson <rth@redhat.com> 3818 3819 PR middle-end/37447 3820 * Makefile.in (reload1.o): Depend on EMIT_RTL_H. 3821 * alias.c (value_addr_p, stack_addr_p): Remove. 3822 (nonoverlapping_memrefs_p): Remove IRA special case. 3823 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New. 3824 * emit-rtl.h (set_mem_attrs_for_spill): Declare. 3825 * reload1.c (alter_reg): Use it. 3826 38272008-10-12 Uros Bizjak <ubizjak@gmail.com> 3828 3829 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array 3830 of registers instead of eax, ebx, ecx and edx. Use for loop 3831 and check register for non-zero value before the call 3832 to decode_caches_intel. 3833 38342008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com> 3835 3836 PR rtl-optimization/37448 3837 * df.h (df_ref_class): New enum. 3838 (DF_REF_TYPE_NAMES, df_ref_extract): Removed. 3839 (struct df_ref): Replaced with union df_ref_d. 3840 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref): 3841 New members of df_ref_d union. 3842 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG, 3843 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN, 3844 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS, 3845 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG, 3846 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET, 3847 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d. 3848 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros. 3849 (df_scan_bb_info, df_bb_regno_first_def_find, 3850 df_bb_regno_last_def_find, df_find_def, df_find_use, 3851 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug, 3852 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy, 3853 df_ref_create, df_ref_remove, df_compute_accessed_bytes, 3854 df_get_artificial_defs, df_get_artificial_uses, union_defs) 3855 Replaced struct df_ref * with df_ref. 3856 * df-scan.c (df_collection_rec, df_null_ref_rec, 3857 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref, 3858 df_grow_ref_info, df_ref_create, df_reg_chain_unlink, 3859 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain, 3860 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan, 3861 df_reorganize_refs_by_reg_by_reg, 3862 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg, 3863 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs, 3864 df_sort_and_compress_refs, df_install_ref, df_install_refs, 3865 df_ref_record, df_get_conditional_uses, df_get_call_refs, 3866 df_bb_refs_record, df_exit_block_uses_collect, 3867 df_record_exit_block_uses, df_reg_chain_mark, 3868 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct 3869 df_ref * with df_ref. 3870 (df_ref_record, df_uses_record, df_ref_create_structure): Added 3871 df_ref_class parameter. 3872 (df_scan_problem_data): Added new pools for different types of refs. 3873 (df_scan_free_internal, df_scan_alloc, df_free_ref, 3874 df_ref_create_structure): Processed new ref pools. 3875 (df_scan_start_dump): Added counts of refs and insns. 3876 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record, 3877 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 3878 df_entry_block_defs_collect, df_exit_block_uses_collect): Added 3879 code to pass df_ref_class down to ref creation functions. 3880 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1, 3881 df_reg_chain_mark): Use macros to hide references to df_refs. 3882 (df_ref_chain_change_bb): Removed. 3883 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb. 3884 (df_ref_equal_p, df_ref_compare, df_ref_create_structure): 3885 Enhanced to understand df_ref union structure. 3886 * fwprop.c (local_ref_killed_between_p, use_killed_between, 3887 all_uses_available_at, update_df, try_fwprop_subst, 3888 forward_propagate_subreg, forward_propagate_and_simplify, 3889 forward_propagate_into, fwprop, fwprop_addr): Replaced struct 3890 df_ref * with df_ref. 3891 (use_killed_between, all_uses_available_at): Use macros to hide 3892 references to df_refs. 3893 * regstat.c (regstat_bb_compute_ri, 3894 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with 3895 df_ref. 3896 * see.c (see_handle_relevant_defs, see_handle_relevant_uses, 3897 see_handle_relevant_refs, see_analyze_one_def, 3898 see_update_relevancy, see_propagate_extensions_to_uses): Replaced 3899 struct df_ref * with df_ref. 3900 * ra-conflict.c (record_one_conflict, clear_reg_in_live, 3901 global_conflicts): Replaced struct df_ref * with df_ref. 3902 * ddg.c (create_ddg_dep_from_intra_loop_link, 3903 add_cross_iteration_register_deps, build_inter_loop_deps): 3904 Replaced struct df_ref * with df_ref. 3905 (create_ddg_dep_from_intra_loop_link, 3906 add_cross_iteration_register_deps): Use macros to hide references 3907 to df_refs. 3908 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct 3909 df_ref * with df_ref. 3910 * df-core.c (df_bb_regno_first_def_find, 3911 df_bb_regno_last_def_find, df_find_def, df_find_use, 3912 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug, 3913 debug_df_ref): Replaced struct df_ref * with df_ref. 3914 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs. 3915 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with 3916 df_ref. 3917 * web.c (union_defs, entry_register, replace_ref, web_main): 3918 Replaced struct df_ref * with df_ref. 3919 (union_defs, replace_ref): Use macros to hide references to df_refs. 3920 * global.c (compute_regs_asm_clobbered, build_insn_chain): 3921 Replaced struct df_ref * with df_ref. 3922 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref. 3923 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets): 3924 Replaced struct df_ref * with df_ref. 3925 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p, 3926 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref * 3927 with df_ref. 3928 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref. 3929 * df-byte-scan.c (df_compute_accessed_bytes_extract, 3930 df_compute_accessed_bytes_strict_low_part, 3931 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes): 3932 Replaced struct df_ref * with df_ref. 3933 (df_compute_accessed_bytes): Use macros to hide references to df_refs. 3934 * init-regs.c (initialize_uninitialized_regs): Replaced struct 3935 df_ref * with df_ref. 3936 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1, 3937 check_dependency, check_dependencies, record_uses): Replaced 3938 struct df_ref * with df_ref. 3939 (invariant_for_use, check_dependency): Use macros to hide 3940 references to df_refs. 3941 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def, 3942 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def, 3943 iv_analyze, biv_p): Replaced struct df_ref * with df_ref. 3944 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide 3945 references to df_refs. 3946 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref * 3947 with df_ref. 3948 * combine.c (create_log_links): Replaced struct df_ref * with df_ref. 3949 * df-problems.c (df_rd_bb_local_compute_process_def, 3950 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create, 3951 df_chain_unlink_1, df_chain_unlink, df_chain_copy, 3952 df_chain_remove_problem, df_chain_create_bb_process_use, 3953 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump, 3954 df_byte_lr_check_regs, df_byte_lr_bb_local_compute, 3955 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses, 3956 df_byte_lr_simulate_artificial_refs_at_top, 3957 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note, 3958 df_note_bb_compute, df_note_add_problem, df_simulate_defs, 3959 df_simulate_uses, df_simulate_artificial_refs_at_end, 3960 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with 3961 df_ref. 3962 (df_chain_dump): Use macros to hide references to df_refs. 3963 * config/mips/mips.c (r10k_simplify_address): Replaced struct 3964 df_ref * with df_ref. 3965 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes, 3966 mark_artificial_uses, mark_reg_dependencies, 3967 byte_dce_process_block): Replaced struct df_ref * with df_ref. 3968 39692008-10-11 Eric Botcazou <ebotcazou@adacore.com> 3970 3971 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in 3972 head comment. 3973 (array_ref_element_size): Likewise. 3974 (array_ref_low_bound): Likewise. 3975 (array_ref_up_bound): Likewise. 3976 * expr.c (contains_packed_reference): Likewise. 3977 (array_ref_element_size): Likewise. 3978 (array_ref_low_bound): Likewise. 3979 (array_ref_up_bound): Likewise. 3980 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal 3981 with ARRAY_RANGE_REF. 3982 (idx_find_step): Likewise. 3983 (idx_record_use): Likewise. 3984 (strip_offset_1): Likewise. 3985 (idx_remove_ssa_names): Likewise. 3986 39872008-10-11 Uros Bizjak <ubizjak@gmail.com> 3988 Andi Kleen <ak@linux.intel.com> 3989 3990 * config/i386/cpuid.h (__cpuid_count): New defines. 3991 * config/i386/driver-i386.c (struct cache_desc): New structure. 3992 (describe_cache): Use struct cache_desc to pass cache descriptions. 3993 (detect_l2_cache): Ditto. Rename from decode_l2_cache. 3994 (detect_caches_amd): Use struct cache_desc to describe caches. 3995 (decode_caches_intel): Use struct cache_desc to pass cache 3996 descriptions. Update descriptions to match latest (rev -032, 3997 December 2007) CPUID documentation. Do not check valid bit here. 3998 Check for Xeon MP value 0x49 problems. 3999 (detect_caches_cpuid2): New function, split from detect_caches_intel. 4000 Check valid bit before calling decode_caches_intel. Detect number 4001 of times to repeat CPUID instruction. 4002 (detect_caches_cpuid4): New function. 4003 (detect_caches_intel): Depending on max_level, call 4004 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache 4005 only when other methods fail to provide valid L2 cache description. 4006 40072008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 4008 4009 PR middle-end/37608 4010 * pa.md (call, call_value): Generate an rtx for register r4 and pass 4011 it to PIC call patterns. 4012 (call_symref_pic): Revise pattern to expose PIC register save. Remove 4013 code generation and attributes from pattern. Change peephole2 to 4014 split for noreturn case. Revise split pattern for non noreturn case. 4015 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic, 4016 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise. 4017 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some 4018 asserts. 4019 40202008-10-11 David Edelsohn <edelsohn@gnu.org> 4021 4022 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT. 4023 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT 4024 and fp_type. 4025 (divdf3): Reformat long line. 4026 40272008-10-11 Michael J. Eager <eager@eagercon.com> 4028 4029 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret 4030 -mfpu options. 4031 (rs6000_handle_option): Process -mfpu options. 4032 * config/rs6000/rs6000.h (TARGET_XILINX_FPU): New. 4033 (enum fpu_type_t): New. 4034 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md. 4035 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set 4036 fp_type. 4037 (floatsisf2): Remove TARGET_SINGLE_FPU condition. 4038 (floatdidf2): Add TARGET_SINGLE_FPU condition. 4039 * config/rs6000/rs6000.opt (-mfpu): New. 4040 (-mxilinx-fpu): New. 4041 * config/rs6000/sysv4.h (DRIVER_SELF_SPECS): New. 4042 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU. 4043 * config/rs6000/xfpu.md: New. Define Xilinx pipeline. 4044 * gcc/config.gcc: powerpc-xilinx-eabi target: New. 4045 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option. 4046 40472008-10-11 Jakub Jelinek <jakub@redhat.com> 4048 4049 PR target/35760 4050 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create 4051 LO_SUM on Darwin if mode has just one unit. 4052 40532008-10-10 H.J. Lu <hongjiu.lu@intel.com> 4054 4055 PR debug/37002 4056 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which 4057 has been optimized out. 4058 40592008-10-10 Richard Sandiford <rdsandiford@googlemail.com> 4060 4061 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P 4062 instead of PIC_DIRECT_ADDR_P. 4063 (SECONDARY_INPUT_RELOAD_CLASS): Likewise. 4064 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete. 4065 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P. 4066 (PIC_OFFSET_P): Rename to... 4067 (PCREL_SYMOFF_P): ...this. 4068 (PIC_DIRECT_ADDR_P): Delete. 4069 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of 4070 PIC_OFFSET_P. 4071 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a 4072 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16, 4073 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF. 4074 * config/sh/sh.c (print_operand): Remove CONST handling. 4075 (unspec_caller_rtx_p): Rewrite to use split_const and check 4076 the operands of UNSPEC bases. 4077 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC) 4078 with (unspec [A B] UNSPEC_SYMOFF). 4079 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and 4080 UNSPEC_PCREL_SYMOFF. 4081 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P. 4082 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec. 4083 (UNSPEC_EXTRACT_U16): Likewise. 4084 (UNSPEC_SYMOFF): Likewise. 4085 (UNSPEC_PCREL_SYMOFF): Likewise. 4086 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions 4087 of constants. 4088 (movsi_const_16bit): Likewise. 4089 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise. 4090 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC) 4091 with (unspec [A B] UNSPEC_PCREL_SYMOFF). 4092 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B) 4093 with (unspec [A B] UNSPEC_SYMOFF). 4094 (symPLT_label2reg): Replace (minus A (minus B pc)) with 4095 (unspec [A B] PCREL_UNSPEC_SYMOFF). 4096 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16. 4097 (Csu): Likewise UNSPEC_EXTRACT_U16. 4098 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P. 4099 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P. 4100 41012008-10-10 Stepan Kasal <skasal@redhat.com> 4102 4103 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples 4104 for loop strip mining and loop blocking. 4105 41062008-10-10 Alexandre Oliva <aoliva@redhat.com> 4107 4108 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't 4109 vary types depending on debug info. 4110 41112008-10-10 Alexandre Oliva <aoliva@redhat.com> 4112 4113 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME 4114 before ensuring it's already computed. 4115 41162008-10-09 Jakub Jelinek <jakub@redhat.com> 4117 4118 * rtl.h (locator_eq): New decl. 4119 * cfglayout.c (locator_scope): New function. 4120 (insn_scope): Use it. 4121 (locator_eq): New function. 4122 (fixup_reorder_chain): Search for last insn in src bb 4123 that has locator set or first insn in dest bb. Use 4124 locator_eq instead of == to compare locators. 4125 * cfgrtl.c (cfg_layout_merge_blocks): Likewise. 4126 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of 4127 == to compare locators. 4128 4129 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block 4130 as used. 4131 * gimple-low.c (lower_function_body, lower_gimple_return, 4132 lower_builtin_setjmp): Set gimple_block on the newly created stmts. 4133 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set 4134 goto_block on edges if goto_locus is known. 4135 4136 PR middle-end/37774 4137 * tree.h (get_object_alignment): Declare. 4138 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call 4139 get_object_alignment if needed. 4140 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand 4141 handling to ... 4142 (get_object_alignment): ... here. New function. Try harder to 4143 determine alignment from get_inner_reference returned offset. 4144 41452008-10-08 Jakub Jelinek <jakub@redhat.com> 4146 4147 * graphite.c (gloog): Don't call find_unreachable_blocks 4148 before delte_unreachable_blocks. 4149 4150 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and 4151 goto_locus of true_edge into RTL locator. 4152 41532008-10-08 Uros Bizjak <ubizjak@gmail.com> 4154 4155 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG. 4156 (*jcc_btdi_mask_rex64): Ditto. 4157 (*jcc_btsi): Ditto. 4158 (*jcc_btsi_mask): Ditto. 4159 (*jcc_btsi_1): Ditto. 4160 (*jcc_btsi_mask_1): Ditto. 4161 41622008-10-08 Paul Brook <paul@codesourcery.com> 4163 4164 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI 4165 compatible profiler (__gnu_mcount_nc). 4166 (SUBTARGET_FRAME_POINTER_REQUIRED): Define. 4167 41682008-10-08 H.J. Lu <hongjiu.lu@intel.com> 4169 4170 * config/i386/i386.c (initial_ix86_tune_features): Add 4171 X86_TUNE_USE_VECTOR_FP_CONVERTS. 4172 * config/i386/i386.h (ix86_tune_indices): Likewise. 4173 (TARGET_USE_VECTOR_FP_CONVERTS): New. 4174 4175 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS 4176 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC) 4177 for FP to FP splitters. 4178 41792008-10-08 H.J. Lu <hongjiu.lu@intel.com> 4180 4181 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert 4182 splitter. 4183 41842008-10-08 Jakub Jelinek <jakub@redhat.com> 4185 4186 PR target/36635 4187 PR target/37290 4188 PR rtl-optimization/37341 4189 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges 4190 to ORIG_BB, pass through ORIG_BB recursively. 4191 (cse_condition_code_reg): Adjust caller. 4192 41932008-10-08 Kai Tietz <kai.tietz@onevision.com> 4194 4195 * sdbout.c (sdbout_one_type): Treat the value type 4196 CONST_DECL for enumerals. 4197 41982008-10-07 H.J. Lu <hongjiu.lu@intel.com> 4199 4200 * config/i386/i386.md: Remove trailing white spaces. 4201 42022008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com> 4203 4204 PR rtl-optimization/37448 4205 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field. 4206 (stuct alloc_pool_descriptor) [created, allocated, current, peak]: 4207 Make unsigned long. 4208 (struct output_info) [count]: Renamed total_created and made 4209 unsigned long. 4210 (struct output_info) [size]: Renamed total_allocated and made 4211 unsigned long. 4212 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free): 4213 Properly keep track of desc->size. 4214 (print_statistics, dump_alloc_pool_statistics): Enhance the 4215 printing of statistics to print the number of elements and to use 4216 unsigned longs. 4217 42182008-10-07 Jakub Jelinek <jakub@redhat.com> 4219 4220 PR middle-end/37576 4221 * opts.h (CL_SAVE): Move up to flags range. 4222 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, 4223 CL_COMMON): Renumber. 4224 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS. 4225 * opts.c (common_handle_option): Revert last change. 4226 42272008-10-07 H.J. Lu <hongjiu.lu@intel.com> 4228 4229 * config/i386/i386-protos.h (ix86_schedule): New. 4230 4231 * config/i386/i386.c (ix86_schedule): New. 4232 (override_options): Add schedule to processor_alias_table. Set 4233 ix86_schedule from the schedule field in processor_alias_table. 4234 (ix86_function_specific_save): Save ix86_schedule. 4235 (ix86_function_specific_restore): Restore ix86_schedule. 4236 4237 * config/i386/i386.md (cpu): Map to ix86_schedule instead of 4238 ix86_tune. Add none and remove i386, i486, pentium4, nocona 4239 and generic32. 4240 4241 * config/i386/i386.opt: Add schedule. 4242 4243 * config/i386/ppro.md: Remove generic32. 4244 42452008-10-07 Simon Martin <simartin@users.sourceforge.net> 4246 4247 PR c/35437 4248 * expr.c (count_type_elements): Handle ERROR_MARK. 4249 42502008-10-07 Jakub Jelinek <jakub@redhat.com> 4251 4252 PR debug/29609 4253 PR debug/36690 4254 PR debug/37616 4255 * basic-block.h (struct edge_def): Add goto_block field. 4256 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least 4257 one insn with locus corresponding to edge's goto_locus if !optimize. 4258 * profile.c (branch_prob): Copy edge's goto_block. 4259 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for 4260 emitted jumps. 4261 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus 4262 locator in between the merged basic blocks if !optimize and needed. 4263 * cfgexpand.c (expand_gimple_cond): Convert goto_block and 4264 goto_locus into RTL locator. For unconditional jump use that 4265 locator for the jump insn. 4266 (expand_gimple_cond): Convert goto_block and goto_locus into 4267 RTL locator for all remaining edges. For unconditional jump 4268 use that locator for the jump insn. 4269 * cfgcleanup.c (try_forward_edges): Avoid the optimization if 4270 there is more than one edge or insn locator along the forwarding 4271 edges and !optimize. If there is just one, set e->goto_locus. 4272 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also 4273 edge's goto_block. 4274 (move_block_to_fn): Adjust edge's goto_block. 4275 42762008-10-07 H.J. Lu <hongjiu.lu@intel.com> 4277 4278 PR middle-end/37731 4279 * expmed.c (expand_mult): Properly check DImode constant in 4280 CONST_DOUBLE. 4281 42822008-10-07 Jakub Jelinek <jakub@redhat.com> 4283 4284 PR debug/37738 4285 * dwarf2out.c (common_block_die_table): New variable. 4286 (common_block_die_table_hash, common_block_die_table_eq): New 4287 functions. 4288 (gen_variable_die): Look up a DW_TAG_common_block die for a particular 4289 COMMON block in the current scope rather than globally. Optimize 4290 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into 4291 DW_OP_addr SYMBOL_REF+off. 4292 42932008-10-07 Eric Botcazou <ebotcazou@adacore.com> 4294 4295 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>: 4296 Return true for non-addressable GIMPLE operands. 4297 42982008-10-07 H.J. Lu <hongjiu.lu@intel.com> 4299 4300 PR target/24765 4301 * config/i386/i386.c (initial_ix86_tune_features): Remove 4302 X86_TUNE_USE_BIT_TEST. 4303 * config/i386/i386.h (ix86_tune_indices): Likewise. 4304 (TARGET_USE_BIT_TEST): Removed. 4305 43062008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 4307 4308 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs. 4309 43102008-10-06 Adam Nemet <anemet@caviumnetworks.com> 4311 4312 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ... 4313 (mul<mode>3_mul3): ... into this new template. 4314 43152008-10-06 Aldy Hernandez <aldyh@redhat.com> 4316 4317 * gimplify.c (gimplify_arg): Add location argument. Use it. 4318 (gimplify_call_expr): Pass location to gimplify_arg. 4319 (gimplify_modify_expr_to_memcpy): Same. 4320 (gimplify_modify_expr_to_memset): Same. 4321 43222008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com> 4323 4324 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 4325 Update calls to build_unary_op and build_indirect_ref for location 4326 changes. 4327 43282008-10-06 Aldy Hernandez <aldyh@redhat.com> 4329 4330 build_modify_expr. 4331 * c-decl.c (finish_decl): Pass input_location to build_unary_op. 4332 * c-typeck.c (array_to_pointer_conversion): Pass location to 4333 build_unary_op. 4334 (function_to_pointer_conversion): Use error_at and warning_at. 4335 (build_indirect_ref): Same. 4336 (build_array_ref): Pass location to build_binary_op. 4337 (parser_build_unary_op): Do not set location after calling 4338 build_unary_op. 4339 (build_unary_op): Add location argument. Use it throughout. Set 4340 EXPR_LOCATION before returning new tree. 4341 (build_modify_expr): Same. 4342 (build_binary_op): Use location throughout. Set EXPR_LOCATION before 4343 returning node. 4344 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op, 4345 build_indirect_ref, build_modify_expr. 4346 (c_finish_omp_for): Same. Use error_at instead of error. 4347 * c-common.c (c_common_truthvalue_conversion): Pass location to 4348 build_unary_op. 4349 (warn_for_div_by_zero): Add location argument. 4350 * c-common.h: Add argument to build_modify_expr, build_indirect_ref, 4351 build_unary_op, warn_for_div_by_zero. 4352 * c-parser.c (c_parser_typeof_specifier): Use 4353 protected_set_expr_location. 4354 (c_parser_statement_after_labels): Same. 4355 (c_parser_condition): Same. 4356 (c_parser_expr_no_commas): Pass correct location to build_modify_expr. 4357 (c_parser_conditional_expression): Use protected_set_expr_location. 4358 (c_parser_unary_expression): Pass location to build_indirect_ref. 4359 (c_parser_postfix_expression_after_primary): Pass location to 4360 build_indirect_ref, build_unary_op. 4361 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION. 4362 43632008-10-06 Joshua Kinard <kumba@gentoo.org> 4364 4365 * doc/invoke.texi: List r1x000 family under the -march MIPS option. 4366 * config/mips/mips.h (PROCESSOR_R10000): New processor_type. 4367 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000, 4368 r14000 and r16000. 4369 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry. 4370 (mips_issue_rate): Handle PROCESSOR_R10000. 4371 * config/mips/mips.md (cpu): Add r10000. 4372 Include r10000.md. 4373 * config/mips/10000.md: New file. 4374 43752008-10-06 Richard Sandiford <rdsandiford@googlemail.com> 4376 4377 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare. 4378 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro. 4379 * config/rs6000/rs6000.c (rs6000_find_base_term): New function. 4380 43812008-10-06 Richard Sandiford <rdsandiford@googlemail.com> 4382 4383 * config/darwin-protos.h (machopic_function_base_name): Delete. 4384 (machopic_function_base_sym): Likewise. 4385 (machopic_gen_offset): Declare. 4386 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro. 4387 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant. 4388 * config/darwin.c (machopic_function_base_name): Delete. 4389 (machopic_function_base_sym): Likewise. 4390 (gen_pic_offset): Rename to... 4391 (machopic_gen_offset): ...this and remove the pic_base argument. 4392 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset 4393 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set 4394 crtl->uses_pic_offset_table. 4395 (machopic_indirect_data_reference): Use new machopic_gen_offset 4396 interface. 4397 (machopic_legitimize_pic_address): Likewise. 4398 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET. 4399 4400 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use 4401 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name. 4402 * config/i386/i386.c (output_set_got): Likewise. 4403 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET 4404 instead of a MINUS. 4405 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET. 4406 (legitimate_address_p): Likewise. 4407 (output_pic_addr_const): Likewise. 4408 (output_addr_const_extra): Likewise. 4409 (ix86_delegitimize_address): Expect darwin_local_data_pic to 4410 match an UNSPEC rather than a MINUS. 4411 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define. 4412 (builtin_setjmp_receiver): Use machopic_gen_offset. 4413 * config/i386/predicates.md (pic_symbolic_operand): Handle 4414 UNSPEC_MACHOPIC_OFFSET. 4415 4416 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): 4417 Use machopic_gen_offset and machopic_operand_p. 4418 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET. 4419 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME. 4420 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define. 4421 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME. 4422 Set crtl->uses_pic_offset_table. 4423 44242008-10-06 Richard Sandiford <rdsandiford@googlemail.com> 4425 4426 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra): 4427 Declare. 4428 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro. 4429 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant. 4430 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete. 4431 (constant_pool_expr_p): Use split_const and check the base. 4432 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL 4433 instead of a MINUS. 4434 (legitimate_constant_pool_address_p): Check toc_relative_p 4435 instead of constant_pool_expr_p. 4436 (print_operand_address): Always use output_addr_const for 4437 constant pool addresses. 4438 (rs6000_output_addr_const_extra): New function. 4439 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS. 4440 44412008-10-06 Vladimir Makarov <vmakarov@redhat.com> 4442 4443 PR middle-end/37535 4444 4445 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions. 4446 (mark_ref_live, mark_ref_dead): Use them. 4447 (def_conflicts_with_inputs_p): Remove. 4448 (mark_early_clobbers): New function. 4449 (process_bb_node_lives): Call preprocess_constraints and 4450 mark_early_clobbers. 4451 4452 * doc/rtx.texi (clobber): Change how RA deals with clobbers. 4453 44542008-10-06 Danny Smith <dannysmith@users.sourceforge.net> 4455 4456 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup 4457 lib with -mthread switch. 4458 44592008-10-05 Dodji Seketeli <dodji@redhat.com> 4460 4461 PR c++/37410 4462 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this 4463 function in two, making it call a new and reusable 4464 dwarf2out_imported_module_or_decl() that takes the containing 4465 BLOCK of the declaration in argument. 4466 (dwarf2out_imported_module_or_decl_real): New function. 4467 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take 4468 IMPORTED_DECL in account. 4469 * tree.def: Added IMPORTED_DECL node type. 4470 * tree.h: Added accessors for IMPORTED_DECL nodes. 4471 * tree.c (init_ttree): Initialise IMPORTED_DECL node type. 4472 44732008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 4474 4475 * doc/gimple.texi: Fix some typos, wrap some long lines, 4476 fix some broken wraps with continuations. 4477 * tree-ssa-reassoc.c: Fix comment typos. 4478 44792008-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 4480 4481 PR target/37603 4482 * pa.c (legitimize_pic_address): Force function labels to memory in 4483 word mode. 4484 44852008-10-04 Anton Blanchard <anton@samba.org> 4486 4487 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync(). 4488 (rs6000_split_atomic_op): Same. 4489 (rs6000_split_compare_and_swap): Same. 4490 (rs6000_split_compare_and_swapqhi): Same. 4491 44922008-10-04 Richard Guenther <rguenther@suse.de> 4493 4494 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p 4495 instead of pointer equality. 4496 (vn_nary_op_eq): Likewise. 4497 44982008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com> 4499 4500 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 4501 condition. 4502 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS && 4503 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT". 4504 45052008-10-03 Danny Smith <dannysmith@users.sourceforge.net> 4506 4507 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): 4508 Revert previous change. 4509 45102008-10-03 Tom Tromey <tromey@redhat.com> 4511 4512 * stringpool.c (ggc_alloc_string): Terminate string. 4513 45142008-10-03 Jakub Jelinek <jakub@redhat.com> 4515 4516 * gimplify.c (gimplify_function_tree): For -finstrument-functions 4517 use gimple_bind_{,set_}block instead of gimple_{,set_}block. 4518 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL. 4519 4520 PR debug/37726 4521 * gimplify.c (declare_vars): Use gimple_bind_block instead of 4522 gimple_block. 4523 45242008-10-03 Pascal Obry <obry@adacore.com> 4525 4526 * gcov.c (create_file_names): Properly handle UNIX and DOS 4527 directory separators. 4528 (make_gcov_file_name): Likewise + convert the ':' DOS drive 4529 separator to '~' to ensure clean filenames on Windows. 4530 45312008-10-02 Danny Smith <dannysmith@users.sourceforge.net> 4532 4533 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): 4534 Add a null terminator to the stripped name. 4535 45362008-10-02 David Edelsohn <edelsohn@gnu.org> 4537 4538 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert 4539 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT. 4540 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT, 4541 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition. 4542 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT. 4543 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT, 4544 TARGET_SINGLE_FLOAT. 4545 45462008-10-02 Daniel Jacobowitz <dan@codesourcery.com> 4547 4548 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE. 4549 45502008-10-02 Richard Guenther <rguenther@suse.de> 4551 4552 PR middle-end/37713 4553 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE 4554 and VECTOR_TYPE recurse with useless_type_conversion_p which 4555 properly handles void pointer conversion. 4556 45572008-10-02 Danny Smith <dannysmith@users.sourceforge.net> 4558 4559 PR target/37528 4560 * config/i386/mingw32.h (LIBGCC_SPEC): Replace with .. 4561 (REAL_LIBGCC_SPEC): New. Always include -lgcc. 4562 45632008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com> 4564 4565 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 4566 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE, 4567 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially, 4568 they translate to non builtins. 4569 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable 4570 opaque_ftype_opaque. Define builtins __builtin_vec_splats, 4571 __builtin_vec_promote, __builtin_vec_extract, and 4572 __builtin_vec_insert. 4573 * config/rs6000/rs6000.h (enum rs6000_builtins): Add 4574 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE, 4575 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS. 4576 * config/rs6000/altivec.h (vec_extract): Define 4577 (vec_insert): Define. 4578 (vec_splats): Define. 4579 (vec_promote): Define. 4580 45812008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com> 4582 Yukishige Shibata <shibata@rd.scei.sony.co.jp> 4583 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> 4584 4585 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell 4586 Altivec intrinsics. 4587 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete 4588 prototype. Add new parameter, blk. 4589 Use BLKmode for the MEM if blk is true. 4590 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX, 4591 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and 4592 ALTIVEC_BUILTIN_STVRXL. 4593 Update usage of altivec_expand_lv_builtin. 4594 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, 4595 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL. 4596 (altivec_init_builtins): If compiling for the Cell, also define the 4597 cell VMX builtins. 4598 * config/rs6000/rs6000.h (rs6000_builtins): Define 4599 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX, 4600 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL, 4601 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL, 4602 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL, 4603 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL, 4604 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL, 4605 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL. 4606 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX, 4607 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL, 4608 UNSPEC_STVRX, and UNSPEC_STVRXL. 4609 (altivec_lvlx): New pattern. 4610 (altivec_lvlxl): New pattern. 4611 (altivec_lvrx): New pattern. 4612 (altivec_lvrxl): New pattern. 4613 (altivec_stvlx): New pattern. 4614 (altivec_stvlxl): New pattern. 4615 (altivec_stvrx): New pattern. 4616 (altivec_stvrxl): New pattern. 4617 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined. 4618 (vec_lvlxl): Likewise. 4619 (vec_lvrx): Define if PPU is defined. 4620 (vec_lvrxl): Likewise. 4621 (vec_stvlx): Define if PPU is defined. 4622 (vec_stvlxl): Likewise. 4623 (vec_stvrx): Define if PPU is defined. 4624 (vec_stvrxl): Likewise. 4625 46262008-10-01 Geert Bosch <bosch@adacore.com> 4627 4628 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR. 4629 46302008-10-01 Richard Guenther <rguenther@suse.de> 4631 4632 PR tree-optimization/37617 4633 * tree-ssa-pre.c (create_expression_by_pieces): During FRE 4634 do not add to the NEW_SETS. 4635 46362008-10-01 Richard Guenther <rguenther@suse.de> 4637 4638 PR middle-end/37285 4639 * tree-vrp.c (execute_vrp): If we optimized away the default 4640 case make sure to promote the label that got in place of it 4641 to a default case label. 4642 46432008-10-01 Richard Henderson <rth@redhat.com> 4644 4645 PR tree-opt/35737 4646 * tree-complex.c (set_component_ssa_name): Don't optimize 4647 is_gimple_min_invariant values with ssa_names in abnormal phis. 4648 46492008-09-30 Paolo Bonzini <bonzini@gnu.org> 4650 4651 PR tree-optimization/37662 4652 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a 4653 commutative binary operation if they are in the wrong order and 4654 fold_build2 produces non-GIMPLE. 4655 46562008-09-30 Jakub Jelinek <jakub@redhat.com> 4657 4658 PR tree-optimization/37662 4659 PR tree-optimization/37663 4660 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call 4661 get_value_range with non-SSA_NAME. Don't assert operands have been 4662 folded, instead just bail out. 4663 46642008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com> 4665 4666 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo. 4667 46682008-09-30 Richard Guenther <rguenther@suse.de> 4669 4670 PR middle-end/37491 4671 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly 4672 build restrict-qualified pointers. 4673 (vectorizable_store): Move alias check later. 4674 (vectorizable_load): Likewise. 4675 46762008-09-30 Paolo Bonzini <bonzini@gnu.org> 4677 4678 * c-common.c (empty_if_body_warning): Remove. 4679 * c-common.h (empty_if_body_warning): Remove. 4680 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement 4681 here the -Wempty-body warning for `if' and `else' statements. 4682 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning. 4683 46842008-09-29 H.J. Lu <hongjiu.lu@intel.com> 4685 4686 * config/i386/i386.opt: Add msse2avx. 4687 4688 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx. 4689 * config/i386/linux64.h (ASM_SPEC): Likewise. 4690 4691 * doc/invoke.texi: Document -msse2avx. 4692 46932008-09-29 Eric Botcazou <ebotcazou@adacore.com> 4694 4695 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type. 4696 46972008-09-29 Joseph Myers <joseph@codesourcery.com> 4698 4699 * ifcvt.c (noce_emit_store_flag): If using condition from original 4700 jump, reverse it if if_info->cond was reversed. 4701 47022008-09-29 Eric Botcazou <ebotcazou@adacore.com> 4703 4704 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to 4705 non-constant memory if it cannot be forced to constant memory. 4706 Overhaul surrounding code and factor out common condition. 4707 47082008-09-29 Jeff Law <law@redhat.com> 4709 4710 * reload1.c (alter_reg): Add missing curly braces. 4711 47122008-09-29 Michael J. Eager <eager@eagercon.com> 4713 4714 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts 4715 are easy. 4716 * config/rs6000/rs6000.c (rs6000_override_options): Move 4717 rs6000_init_hard_regno_mode_ok after all options changed. 4718 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT. 4719 (rs6000_handle_option): Process -msingle-float, -mdouble-float, 4720 -msimple-fpu flags. Add warning messages if single FP not configured. 4721 (rs6000_file_start): Output gnu_attribute for single-float. 4722 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT. 4723 (rs6000_legitimize_address): Likewise. 4724 (rs6000_legitimize_reload_address): Likewise. 4725 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT, 4726 TARGET_SINGLE_FLOAT. 4727 (function_arg_advance): Likewise (partial conversion). 4728 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT. 4729 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT, 4730 TARGET_SINGLE_FLOAT. 4731 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT. 4732 (rs6000_emit_prologue): Likewise. 4733 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT, 4734 TARGET_SINGLE_FLOAT. 4735 (rs6000_libcall_value): Likewise. 4736 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1. 4737 (TARGET_DOUBLE_FLOAT): New default to 1 4738 (TARGET_SIMPLE_FPU): New default to 0 4739 (TARGET_SINGLE_FPU): New default to 0 4740 (TARGET_SINGLE_FLOAT_MODE): New. 4741 (TARGET_DOUBLE_FLOAT_MODE): New. 4742 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT, 4743 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU, 4744 UNITS_PER_FP_WORD 4745 * config/rs6000/rs6000.md (define_mode_iterator): Condition on 4746 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT. 4747 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr, 4748 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr, 4749 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3, 4750 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3, 4751 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal, 4752 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2, 4753 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt, 4754 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, 4755 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64, 4756 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32, 4757 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs, 4758 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper, 4759 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1, 4760 cmptf_internal1, *cmptf_internal2): Condition on 4761 TARGET_DOUBLE_FLOAT. 4762 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3, 4763 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc, 4764 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2, 4765 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1, 4766 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs, 4767 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on 4768 TARGET_SINGLE_FLOAT. 4769 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU. 4770 * config/rs6000/rs6000.opt (-msingle-float): New. 4771 (-mdouble-float): New. 4772 (-msimple-fpu): New. 4773 * doc/invoke.texi (RS/6000 and PowerPC Options): Add 4774 -msingle-float, -mdouble-float, -msimple-fpu options. 4775 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set 4776 _SOFT_DOUBLE for -msingle-float. 4777 * config.gcc: New config for target=powerpc-xilinx-eabi. 4778 47792008-09-29 Tobias Grosser <grosser@fim.uni-passau.de> 4780 4781 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always 4782 have exit and entry. 4783 (new_scop): Take entry and exit edge to define new SCoP. 4784 (sd_region_p): New structure used during SCoP detection. 4785 (move_scops): Delete. 4786 (move_sd_regions): New. 4787 (scopdet_info): Change the definition from edges back to basic_blocks. 4788 (scopdet_edge_info): Work on basic_blocks and rename to 4789 scopdet_basic_block_info. 4790 (split_difficult_bb): At the moment removed. We should later 4791 add it at another place. 4792 (build_scops_1): Work on basic_blocks. 4793 (bb_in_sd_region): New. 4794 (find_single_entry_edge): New. 4795 (find_single_exit_edge): New. 4796 (create_single_entry_edge): New. 4797 (sd_region_without_exit): New. 4798 (create_single_exit_edge): New. 4799 (unmark_exit_edges): New. 4800 (mark_exit_edges): New. 4801 (create_sese_edges): New. 4802 (build_graphite_scops): New. 4803 (build_scops): Make SCoPs SESE. 4804 (limit_scops): Use the new functions. 4805 48062008-09-29 Hans-Peter Nilsson <hp@axis.com> 4807 4808 * config/cris/cris.h (IRA_COVER_CLASSES): Define. 4809 48102008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com> 4811 4812 PR target/37640 4813 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force 4814 address to a register before taking the lower part. 4815 48162008-09-28 Kaz Kojima <kkojima@gcc.gnu.org> 4817 4818 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm 4819 for SHmedia. 4820 48212008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com> 4822 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com> 4823 4824 PR tree-opt/36891 4825 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on 4826 the newly created variable. 4827 Create a VECTOR_CST of all 1s for vector types. 4828 48292008-09-28 Eric Botcazou <ebotcazou@adacore.com> 4830 4831 PR middle-end/36575 4832 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo. 4833 48342008-09-28 Eric Botcazou <ebotcazou@adacore.com> 4835 4836 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in 4837 order to convert between modes. 4838 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode. 4839 48402008-09-27 Kaz Kojima <kkojima@gcc.gnu.org> 4841 4842 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR 4843 if needed. 4844 48452008-09-26 Vladimir Makarov <vmakarov@redhat.com> 4846 4847 Revert: 4848 2008-09-25 Vladimir Makarov <vmakarov@redhat.com> 4849 * ira-lives.c:... 4850 * doc/rtl.texi:... 4851 48522008-09-26 Adam Nemet <anemet@caviumnetworks.com> 4853 4854 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT, 4855 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change 4856 them to yield false with MIPS16. 4857 48582008-09-26 Jakub Jelinek <jakub@redhat.com> 4859 4860 PR middle-end/37275 4861 * dwarf2out.c (tls_mem_loc_descriptor): New function. 4862 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second 4863 mem_loc_descriptor failed. Accept UNSPEC. 4864 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL 4865 fail if one of the loc_descriptor calls for pieces failed. 4866 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars, 4867 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail 4868 if loc_descriptor_from_tree_1 on offset failed. 4869 4870 PR middle-end/37576 4871 * opts.c (common_handle_option): Don't call print_specific_help with 4872 CL_SAVE as first argument. 4873 48742008-09-26 Peter O'Gorman <pogma@thewrittenword.com> 4875 Steve Ellcey <sje@cup.hp.com> 4876 4877 * configure: Regenerate for new libtool. 4878 * aclocal.m4: Ditto. 4879 48802008-09-26 Pat Haugen <pthaugen@us.ibm.com> 4881 4882 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct 4883 alias set on MEM when saving stack pointer. 4884 * config/rs6000/rs6000.md (allocate_stack): Likewise 4885 48862008-09-26 Dorit Nuzman <dorit@il.ibm.com> 4887 4888 PR tree-optimization/37574 4889 * tree-vectorizer.c (vect_is_simple_use): Fix indentation. 4890 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype 4891 instead of vector_type for constants. Take computation out of loop. 4892 (vect_get_vec_def_for_operand): Use only vectype for constant case, 4893 and use only vector_type for invariant case. 4894 (get_initial_def_for_reduction): Use vectype instead of vector_type. 4895 48962008-09-25 Jakub Jelinek <jakub@redhat.com> 4897 4898 PR c/37645 4899 * c-common.c (handle_weakref_attribute): Ignore the attribute unless 4900 the decl is a VAR_DECL or FUNCTION_DECL. 4901 49022008-09-25 Vladimir Makarov <vmakarov@redhat.com> 4903 4904 PR middle-end/37535 4905 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions. 4906 (mark_ref_live, mark_ref_dead): Use them. 4907 (def_conflicts_with_inputs_p): Remove. 4908 (mark_early_clobbers): New function. 4909 (process_bb_node_lives): Call preprocess_constraints and 4910 mark_early_clobbers. 4911 4912 * doc/rtl.texi (clobber): Change how RA deals with clobbers. 4913 49142008-09-25 Vladimir Makarov <vmakarov@redhat.com> 4915 4916 PR middle-end/37448 4917 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP. 4918 (ira_compress_allocno_live_ranges): New prototype. 4919 4920 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP. 4921 (coalesced_allocnos_living_at_program_points): New. 4922 (coalesced_allocnos_live_at_points_p, 4923 set_coalesced_allocnos_live_points): New functions. 4924 (coalesce_spill_slots): Rewrite. 4925 4926 * ira-lives.c (remove_some_program_points_and_update_live_ranges, 4927 ira_compress_allocno_live_ranges): New functions. 4928 4929 * ira-build.c (ira_flattening): Call 4930 ira_compress_allocno_live_ranges. 4931 (ira_build): Ditto. 4932 49332008-09-25 H.J. Lu <hongjiu.lu@intel.com> 4934 4935 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole 4936 optimization. 4937 49382008-09-25 Richard Sandiford <rdsandiford@googlemail.com> 4939 4940 * combine.c (make_compound_operation): Handle the 'E' format. 4941 (count_rtxs): Likewise. 4942 (update_table_tick): Likewise. 4943 (get_last_value_validate): Likewise. 4944 49452008-09-25 Eric Botcazou <ebotcazou@adacore.com> 4946 4947 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL. 4948 49492008-09-25 Sergei Dyshel <sergeid@il.ibm.com> 4950 4951 * matrix-reorg.c (transform_allocation_sites): Initializers 4952 added to avoid the warning. 4953 49542008-09-25 Martin Jambor <mjambor@suse.cz> 4955 4956 * cgraph.c (free_nodes): New variable. 4957 (NEXT_FREE_NODE): New macro. 4958 (cgraph_create_node): Reuse nodes from the free list. Do not 4959 update uid if doing so. 4960 (cgraph_remove_node): Add the node to the free list. 4961 49622008-09-25 Gerald Pfeifer <gerald@pfeifer.com> 4963 4964 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. 4965 49662008-09-24 Richard Henderson <rth@redhat.com> 4967 4968 * dwarf2.h (DW_OP_GNU_encoded_addr): New. 4969 * unwind-dw2.c (execute_stack_op): Handle it. 4970 49712008-09-24 David Edelsohn <edelsohn@gnu.org> 4972 4973 Revert: 4974 2008-09-24 Michael J. Eager <eager@eagercon.com> 4975 49762008-09-24 Aldy Hernandez <aldyh@redhat.com> 4977 4978 * c-common.c (fname_decl): New location argument. 4979 * c-common.h (fname_decl): Same. 4980 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of 4981 {warning,error}. 4982 (c_parser_typeof_specifier): Same. 4983 (c_parser_parms_list_declarator): Same. 4984 (c_parser_asm_string_literal): Same. 4985 (c_parser_compound_statement_nostart): Same. 4986 (c_parser_label): Same. 4987 (c_parser_do_statement): Same. 4988 (c_parser_asm_statement): Same. 4989 (c_parser_unary_expression): Same. 4990 (c_parser_sizeof_expression): Same. 4991 (c_parser_postfix_expression): Same. 4992 (c_parser_pragma): Same. 4993 (c_parser_omp_clause_collapse): Same. 4994 (c_parser_omp_clause_num_threads): Same. 4995 (c_parser_omp_clause_schedule): Same. 4996 (c_parser_omp_all_clauses): Same. 4997 (c_parser_omp_sections_scope): Same. 4998 (c_parser_omp_for_loop): Same. Pass condition's location to 4999 c_objc_common_truthvalue_conversion. 5000 (c_parser_enum_specifier): Remove comment. 5001 50022008-09-24 Michael J. Eager <eager@eagercon.com> 5003 5004 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts 5005 are easy. 5006 * config/rs6000/rs6000.c (rs6000_override_options): Move 5007 rs6000_init_hard_regno_mode_ok after all options changed. 5008 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT. 5009 (rs6000_handle_option): Process -msingle-float, -mdouble-float, 5010 -msimple-fpu flags. Add warning messages if single FP not configured. 5011 (rs6000_file_start): Output gnu_attribute for single-float. 5012 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT. 5013 (rs6000_legitimize_address): Likewise. 5014 (rs6000_legitimize_reload_address): Likewise. 5015 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT, 5016 TARGET_SINGLE_FLOAT. 5017 (function_arg_advance): Likewise. 5018 (function_arg): Likewise. 5019 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT. 5020 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT, 5021 TARGET_SINGLE_FLOAT. 5022 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT. 5023 (rs6000_emit_prologue): Likewise. 5024 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT, 5025 TARGET_SINGLE_FLOAT. 5026 (rs6000_libcall_value): Likewise. 5027 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1. 5028 (TARGET_DOUBLE_FLOAT): New default to 1 5029 (TARGET_SIMPLE_FPU): New default to 0 5030 (TARGET_SINGLE_FPU): New default to 0 5031 (TARGET_SINGLE_FLOAT_MODE): New. 5032 (TARGET_DOUBLE_FLOAT_MODE): New. 5033 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT, 5034 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU, 5035 UNITS_PER_FP_WORD 5036 * config/rs6000/rs6000.md (define_mode_iterator): Condition on 5037 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT. 5038 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr, 5039 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr, 5040 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3, 5041 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3, 5042 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal, 5043 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2, 5044 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt, 5045 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, 5046 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64, 5047 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32, 5048 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs, 5049 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper, 5050 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1, 5051 cmptf_internal1, *cmptf_internal2): Condition on 5052 TARGET_DOUBLE_FLOAT. 5053 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3, 5054 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc, 5055 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2, 5056 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1, 5057 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs, 5058 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on 5059 TARGET_SINGLE_FLOAT. 5060 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU. 5061 * config/rs6000/rs6000.opt (-msingle-float): New. 5062 (-mdouble-float): New. 5063 (-msimple-fpu): New. 5064 * doc/invoke.texi (RS/6000 and PowerPC Options): Add 5065 -msingle-float, -mdouble-float, -msimple-fpu options. 5066 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set 5067 _SOFT_DOUBLE for -msingle-float. 5068 * config.gcc: New config for target=powerpc-xilinx-eabi. 5069 50702008-09-23 Eric Botcazou <ebotcazou@adacore.com> 5071 5072 * config/sparc/constraints.md: New file. 5073 * config/sparc/sparc.md: Include it. 5074 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare. 5075 (sparc_extra_constraint_check): Delete. 5076 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks. 5077 (memory_ok_for_ldd): New predicate. 5078 (sparc_extra_constraint_check): Delete. 5079 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise. 5080 (CONST_OK_FOR_LETTER_P): Likewise. 5081 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise. 5082 (EXTRA_CONSTRAINT): Likewise. 5083 50842008-08-23 Steve Ellcey <sje@cup.hp.com> 5085 5086 * regrename.c (do_replace): Copy REG_POINTER value to new reg. 5087 50882008-09-23 Richard Sandiford <rdsandiford@googlemail.com> 5089 5090 * alias.c (find_base_value): Use FIND_BASE_TERM. 5091 * doc/tm.texi (FIND_BASE_TERM): Update documentation. 5092 50932008-09-23 Richard Sandiford <rdsandiford@googlemail.com> 5094 5095 * config/i386/i386.c: Include cselib.h. 5096 (ix86_pic_register_p): New function. 5097 (ix86_delegitimize_address): Use it to check for the PIC register. 5098 50992008-09-23 Richard Sandiford <rdsandiford@googlemail.com> 5100 5101 * doc/tm.texi (FIND_BASE_TERM): Expand documentation. 5102 * config/i386/i386.c (ix86_find_base_term): Don't check for 5103 SYMBOL_REF and LABEL_REF. 5104 51052008-09-23 Richard Sandiford <rdsandiford@googlemail.com> 5106 5107 * config/i386/i386.c (ix86_delegitimize_address): Wrap the 5108 constant PLUS in a CONST. 5109 51102008-09-23 Kai Tietz <kai.tietz@onevision.com> 5111 5112 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct 5113 check for sibcall support for w64. 5114 51152008-09-23 Eric Botcazou <ebotcazou@adacore.com> 5116 5117 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node. 5118 51192008-09-23 Aldy Hernandez <aldyh@redhat.com> 5120 5121 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion, 5122 parser_build_binary_op. 5123 * c-decl.c (build_enumerator): Pass location to build_binary_op. 5124 * c-typeck.c (build_array_ref): Same. 5125 (parser_build_unary_op): New location argument. 5126 (pointer_diff): Pass location to build_binary_op, 5127 c_objc_common_truthvalue_conversion. 5128 (build_modify_expr): Same. 5129 (build_unary_op): New location argument. 5130 (build_binary_op): New location argument. 5131 (c_objc_common_truthvalue_conversion): Pass location to 5132 c_*common_truthvalue_conversion. 5133 * c-convert.c (convert): Same. 5134 * c-common.c (binary_op_error): New location argument. 5135 (pointer_int_sum): Pass location to build_binary_op. 5136 (c_common_truthvalue_conversion): New location argument. 5137 (warn_for_sign_compare): Same. 5138 * c-common.h: Add location argument to c_common_truthvalue_conversion, 5139 binary_op_error, build_binary_op, warn_for_sign_compare. 5140 * c-parser.c (c_parser_condition): Pass location to 5141 c_*common_truthvalue_conversion. 5142 (c_parser_conditional_expression): Save condition's location and pass 5143 it on down. 5144 (c_parser_binary_expression): Same, but for the binary operator's 5145 location. 5146 (c_parser_omp_for_loop): Pass location to 5147 c_objc_common_truthvalue_conversion. 5148 51492008-09-23 Martin Jambor <mjambor@suse.cz> 5150 5151 * cgraph.c (cgraph_free_edge): Use sizeof(*e). 5152 (cgraph_node_remove_callees): New temporary f. Hold the next item 5153 in f when looping. 5154 (cgraph_node_remove_callers): Likewise. 5155 5156 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED. 5157 (ipa_node_removal_hook): Likewise. 5158 5159 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to 5160 gimple_call_copy_skip_args and moved to the gimple_call section. 5161 * gimple.c (gimple_copy_call_skip_args): Renamed to 5162 gimple_call_copy_skip_args. Changed al users. 5163 51642008-09-22 Vladimir Makarov <vmakarov@redhat.com> 5165 5166 * ira-color.c (start_allocno_priorities): Rename to 5167 setup_allocno_priorities. Use costs and 5168 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and 5169 range lengths. Get rid off doubles. 5170 (ira_fast_allocations): Call start_allocno_priorities. 5171 51722008-09-22 David Daney <ddaney@avtrex.com> 5173 5174 PR target/37593 5175 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a 5176 register if TARGET_LONG_CALLS. 5177 51782008-09-22 Richard Guenther <rguenther@suse.de> 5179 5180 PR tree-optimization/37145 5181 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable 5182 value-numbering union accesses with their offset and size only. 5183 (visit_reference_op_load): Fix simplification of inserted conversions. 5184 * tree-ssa-pre.c (find_or_generate_expression): Do not 5185 recursively generate expressions if running FRE. 5186 51872008-09-22 Adam Nemet <anemet@caviumnetworks.com> 5188 5189 * config/mips/mips.h (ISA_HAS_BADDU): New macro. 5190 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>): 5191 New patterns. 5192 51932008-09-22 Richard Guenther <rguenther@suse.de> 5194 5195 PR tree-optimization/37145 5196 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls. 5197 (phi_translate_1): Constant fold references. 5198 51992008-09-22 Ira Rosen <irar@il.ibm.com> 5200 5201 PR tree-optimization/37482 5202 * tree-vectorizer.h (struct _slp_instance): Add new field. 5203 (SLP_INSTANCE_FIRST_LOAD_STMT): New. 5204 (get_earlier_stmt): New function. 5205 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New 5206 function. 5207 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT. 5208 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the 5209 asserts that GSI points to the scalar statement being vectorized. 5210 Set new statement location according to GSI. 5211 (vect_schedule_slp_instance): Use GSI of 5212 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads. 5213 52142008-09-21 Jan Hubicka <jh@suse.cz> 5215 5216 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls. 5217 (ipcp_insert_stage): Update dead_nodes bitmap. 5218 52192008-09-22 Danny Smith <dannysmith@users.sourceforge.net> 5220 5221 PR target/37528 5222 * config/i386/t-cygming (SHLIB_LC): Remove. 5223 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB 5224 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries. 5225 52262008-09-22 Hans-Peter Nilsson <hp@axis.com> 5227 5228 PR middle-end/37170 5229 PR middle-end/37280 5230 * final.c (mark_symbol_ref_as_used): New helper function. 5231 (output_operand): Instead of just looking inside MEMs for 5232 SYMBOL_REFs, use new helper function and for_each_rtx. 5233 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL 5234 to after weak-handling. Don't mark decls with TREE_STATIC as weak. 5235 Make head comment more general. 5236 * config/darwin.c (machopic_output_indirection): Handle weak 5237 references here, like in assemble_external. 5238 52392008-09-21 Eric Botcazou <ebotcazou@adacore.com> 5240 5241 * config/sparc/sparc-protos.h (gen_compare_operator): Declare. 5242 (sparc_emit_float_lib_cmp): Change return type. 5243 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode. 5244 (gen_compare_operator): New function. 5245 (sparc_emit_float_lib_cmp): Return the new operator to be used in 5246 the comparison sequence. Minor tweaks. 5247 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert 5248 that the final operator and the result of sparc_emit_float_lib_cmp 5249 match for software TFmode; use emit_insn in lieu of emit_jump_insn. 5250 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt, 5251 buneq, bunge, bunle, bltgt): Assert that the final operator and the 5252 result of sparc_emit_float_lib_cmp match for software TFmode. 5253 (movqicc, movhicc, movsicc, movdicc): Merge into... 5254 (mov<I:mode>cc): ...this. 5255 (movsfcc, movdfcc, movtfcc): Merge into... 5256 (mov<F:mode>cc): ...this. 5257 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge 5258 into... 5259 (mov<I:mode>_cc_v9): ...this. 5260 (movdi_cc_sp64_trunc): Delete. 5261 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64, 5262 movdi_cc_reg_sp64): Merge into... 5263 (mov<I:mode>_cc_reg_sp64): ...this. 5264 (movsf_cc_sp64): Rename into... 5265 (movsf_cc_v9): ...this. 5266 (movdf_cc_sp64): Rename into... 5267 (movdf_cc_v9): ...this. 5268 (movtf_cc_hq_sp64): Rename into... 5269 (movtf_cc_hq_v9): ...this. 5270 (movtf_cc_sp64): Rename into... 5271 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64. 5272 52732008-09-21 Diego Novillo <dnovillo@google.com> 5274 5275 * doc/gccint.texi: Include generic.texi and gimple.texi. 5276 Re-order index. 5277 * doc/tree-ssa.texi (GENERIC): Move to generic.texi. 5278 (GIMPLE): Move to gimple.texi. 5279 (Annotations): Remove references to to stmt_ann_t and 5280 ssa_name_ann_t. 5281 (SSA Operands): Rename from 'Statement Operands'. 5282 * doc/generic.texi: New. 5283 * doc/gimple.texi: New. 5284 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi. 5285 * Makefile.in (TEXI_GCCINT_FILES): 5286 * gimple.c (gimple_copy_call_skip_args): Rename from 5287 giple_copy_call_skip_args. Update all users. 5288 * doc/gimple.texi (gimple_copy_call_skip_args): Document. 5289 52902008-09-21 Ira Rosen <irar@il.ibm.com> 5291 5292 PR tree-optimization/37539 5293 * tree-vect-transform.c (vect_transform_strided_load): Save vector 5294 statement in related statement field only for the first load of the 5295 group of loads with the same data reference. 5296 52972008-09-20 Adam Nemet <anemet@caviumnetworks.com> 5298 5299 * config/mips/mips.h (TUNE_OCTEON): New macro. 5300 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon. 5301 (mips_multipass_dfa_lookahead): Return 2 for Octeon. 5302 * config/mips/octeon.md: New file. 5303 * config/mips/mips.md: Include octeon.md. Restore 5304 semi-alphabetical order of include files. 5305 53062008-09-20 H.J. Lu <hongjiu.lu@intel.com> 5307 5308 PR target/37571 5309 * config/i386/i386.md (*jcc_fused_1): Removed. 5310 (*jcc_fused_2): Likewise. 5311 (*jcc_fused_3): Likewise. 5312 (*jcc_fused_4): Likewise. 5313 53142008-09-20 Richard Sandiford <rdsandiford@googlemail.com> 5315 5316 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define. 5317 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES. 5318 * target.h (gcc_target): Add ira_cover_classes. 5319 * ira.c: Remove IRA_COVER_CLASSES guards. 5320 (setup_cover_and_important_classes): Use targetm.ira_cover_classes 5321 instead of IRA_COVER_CLASSES. 5322 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard. 5323 (setup_class_translate): Likewise. 5324 (setup_reg_class_intersect_union): Likewise. 5325 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a 5326 test of targetm.ira_cover_classes. 5327 * opts.c (decode_options): Use targetm.ira_cover_classes instead 5328 of IRA_COVER_CLASSES. 5329 * target-def.h (TARGET_IRA_COVER_CLASSES): Define. 5330 (TARGET_INITIALIZER): Include it. 5331 * targhooks.h (default_ira_cover_classes): Declare. 5332 * targhooks.c (default_ira_cover_classes): New function. 5333 53342008-09-19 Bob Wilson <bob.wilson@acm.org> 5335 5336 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands. 5337 53382008-09-19 Ian Lance Taylor <iant@google.com> 5339 5340 * varasm.c (narrowing_initializer_constant_valid_p): Return 5341 NULL_TREE if ENDTYPE is not an integer. 5342 53432008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com> 5344 5345 PR tree-opt/30930 5346 * tree-ssa.c (execute_update_addresses_taken): Also update 5347 DECL_GIMPLE_REG_P for vector and complex types. 5348 53492008-09-19 Andrew MacLeod <amacleod@redhat.com> 5350 Jan Hubicka <jh@suse.cz> 5351 5352 PR middle-end/37567 5353 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually 5354 empty before freeing them. 5355 (find_replaceable_exprs): Move asserts to free_temp_expr_table. 5356 53572008-09-18 Bob Wilson <bob.wilson@acm.org> 5358 5359 * configure.ac: Add HAVE_AS_TLS check for Xtensa. 5360 * config/xtensa/predicates.md (tls_symbol_operand): New. 5361 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define. 5362 (TARGET_CANNOT_FORCE_MEM): Define. 5363 (xtensa_tls_symbol_p): New. 5364 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses. 5365 (xtensa_legitimate_address_p): Disallow constant pool TLS references. 5366 (xtensa_tls_module_base): New. 5367 (xtensa_call_tls_desc): New. 5368 (xtensa_legitimize_tls_address): New. 5369 (xtensa_legitimize_address): Handle TLS symbols. 5370 (xtensa_tls_referenced_p_1): New. 5371 (xtensa_tls_referenced_p): New. 5372 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and 5373 UNSPEC_DTPOFF. 5374 (XTENSA_BUILTIN_THREAD_POINTER): New. 5375 (XTENSA_BUILTIN_SET_THREAD_POINTER): New. 5376 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3 5377 builtin. Add declarations for __builtin_thread_pointer and 5378 __builtin_set_thread_pointer. 5379 (xtensa_fold_builtin): Recognize new builtins. 5380 (xtensa_expand_builtin): Expand new builtins. 5381 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value. 5382 (TARGET_THREADPTR): Define. 5383 (HAVE_AS_TLS): Define default value. 5384 (LEGITIMATE_CONSTANT_P): Disallow TLS references. 5385 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New. 5386 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New. 5387 (UNSPECV_SET_TP): New. 5388 (sym_TPOFF, sym_DTPOFF): New. 5389 (load_tp, set_tp, tls_func, tls_arg, tls_call): New. 5390 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare. 5391 * configure: Regenerated. 5392 53932008-09-18 H.J. Lu <hongjiu.lu@intel.com> 5394 5395 PR target/37394 5396 * config/ia64/ia64.c (ia64_optimization_options): Move 5397 checking and setting flag_schedule_insns_after_reload and 5398 ia64_flag_schedule_insns2 back to ... 5399 (ia64_override_options): Here. 5400 54012008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com> 5402 5403 PR rtl-opt/37451 5404 * loop-doloop.c (doloop_modify): New argument zero_extend_p and 5405 zero extend count after the correction to it is done. 5406 (doloop_optimize): Update call to doloop_modify, don't zero extend 5407 count before call. 5408 54092008-09-18 Martin Jambor <mjambor@suse.cz> 5410 5411 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false. 5412 5413 * ipa-prop.c: Correct comments. 5414 * ipa-prop.h: Likewise. 5415 54162008-09-18 Jan Hubicka <jh@suse.cz> 5417 5418 PR middle-end/37448 5419 * ipa-reference.c (ipa_reference_local_vars_info_d, 5420 ipa_reference_global_vars_info_d, 5421 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t, 5422 ipa_reference_vars_info_t): Move here from ipa-reference.h 5423 (node_duplication_hook_holder, node_removal_hook_holder): New. 5424 (get_reference_vars_info_from_cgraph): Rename to ... 5425 (get_reference_vars_info): ... this one, use cgraph uids. 5426 (get_local_reference_vars_info, get_global_reference_vars_info): 5427 Use cgraph instead of decl. 5428 (ipa_reference_get_read_local, ipa_reference_get_written_local): 5429 Remove. 5430 (ipa_reference_get_read_global, ipa_reference_get_not_read_global 5431 ipa_reference_get_written_global, 5432 ipa_reference_get_not_written_global): Use cgraph argument. 5433 (check_call): Simplify avail check. 5434 (scan_stmt_for_static_refs): Update. 5435 (propagate_bits): Update. 5436 (merge_callee_local_info): Remove. 5437 (init_function_info): Use cgraph nodes. 5438 (clean_function_local_data): Break out from ... 5439 (clean_function): ... here. 5440 (copy_local_bitmap, copy_global_bitmap): New functions. 5441 (duplicate_node_data, remove_node_data): New functions. 5442 (generate_summary): Register hooks; use visibility instead of 5443 master clones. 5444 (propafate): Use cgraph nodes; copy bitmap to each node in cycle. 5445 * ipa-reference.h (ipa_reference_local_vars_info_d, 5446 ipa_reference_global_vars_info_d, 5447 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t, 5448 ipa_reference_vars_info_t): Move to ipa-reference.c 5449 (ipa_reference_get_read_local, ipa_reference_get_written_local): 5450 Remove. 5451 (ipa_reference_get_read_global, ipa_reference_get_written_global, 5452 ipa_reference_get_not_read_global, 5453 ipa_reference_get_not_written_global): Update prototype. 5454 * ipa-pure-const.c (funct_state_vec): Turn into VECtor. 5455 (init_state): Remove. 5456 (node_duplication_hook_holder, node_removal_hook_holder): New. 5457 (get_function_state, set_function_state): Use VECtor. 5458 (analyze_function): Check body availability. 5459 (add_new_function): Likewise. 5460 (duplicate_node_data, remove_node_data): New. 5461 (generate_summary): Register hooks; do not care about clones. 5462 (propafate): Do not care about clones; recursive functions are 5463 not looping. 5464 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones. 5465 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder, 5466 * edge_duplication_hook_holder, node_duplication_hook_holder): Make 5467 static. 5468 * tree-flow.h (function_ann_d): Remove reference_vars_info. 5469 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops): 5470 Update call of ipa-reference accesors. 5471 54722008-09-18 Simon Baldwin <simonb@google.com> 5473 5474 * c-opts.c (c_common_handle_option): Add handling for 5475 -Wbuiltin-macro-redefined command line option. 5476 * c.opt: Added builtin-macro-redefined option. 5477 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined 5478 documentation. 5479 54802008-09-18 Richard Guenther <rguenther@suse.de> 5481 5482 PR tree-optimization/37258 5483 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision 5484 and signedness for integral types. 5485 (vn_phi_eq): Require compatible types. 5486 54872008-09-18 Jakub Jelinek <jakub@redhat.com> 5488 5489 PR debug/34037 5490 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure 5491 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P 5492 VAR_DECL. 5493 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL 5494 !DECL_IGNORED_P vars in local_decls list for instantiate_decls, 5495 ggc_free other TREE_LIST nodes from that chain. 5496 * function.c (instantiate_decls): Instantiate also DECL_RTL 5497 of vars in cfun->local_decls, free that list afterwards. 5498 54992008-09-18 Eric Botcazou <ebotcazou@adacore.com> 5500 5501 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to... 5502 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here. 5503 55042008-09-18 Andrew MacLeod <amacleod@redhat.com> 5505 5506 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting. 5507 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment. 5508 55092008-09-18 Andrew MacLeod <amacleod@redhat.com> 5510 5511 PR tree-optimization/37102 5512 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args 5513 from a node. Check to see if another PHI is dead. 5514 (eliminate_useless_phis): Rename from eliminate_virtual_phis and 5515 remove real PHIs which have no uses. 5516 (rewrite_out_of_ssa): Call eliminate_useless_phis. 5517 55182008-09-18 Richard Guenther <rguenther@suse.de> 5519 5520 PR middle-end/37284 5521 * tree-cfg.c (remove_useless_stmts_1): Remove 5522 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing. 5523 55242008-09-18 Nick Clifton <nickc@redhat.com> 5525 5526 * config/frv/frv.h (IRA_COVER_CLASSES): Define. 5527 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call 5528 to frv_secondary_reload_class. 5529 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. 5530 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define. 5531 (frv_secondary_reload_class): Omit unused parameter. 5532 (frv_secondary_reload): New function. Handle the case when 5533 secondary_reload_class() is called before the reload_(in|out) 5534 _optabs have been initialised. 5535 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit 5536 unused parameter. 5537 * config/frv/frv.md: Define an exclusion set between fr550_m0 5538 and fr550_f0. 5539 55402008-09-18 Richard Guenther <rguenther@suse.de> 5541 5542 PR tree-optimization/37456 5543 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we 5544 want to insert after ends a BB insert on the single fallthru 5545 outgoing edge. 5546 55472008-09-18 Andreas Krebbel <krebbel1@de.ibm.com> 5548 5549 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp. 5550 Mention -march=z9-109, z9-ec and z10. 5551 55522008-09-18 Uros Bizjak <ubizjak@gmail.com> 5553 5554 PR rtl-optimization/37544 5555 * regrename.c (maybe_mode_change): Exit early when copy_mode 5556 is narrower than orig_mode and narrower than new_mode. 5557 55582008-09-18 Alexander Monakov <amonakov@ispras.ru> 5559 5560 PR middle-end/37499 5561 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count. 5562 5563 * sched-rgn.c (ref_counts): Remove. 5564 (insn_referenced): New static variable. 5565 (INSN_REF_COUNT): Remove. 5566 (sched_run_compute_dependencies): Use insn_referenced instead of 5567 INSN_REF_COUNT. 5568 (add_branch_dependences): Likewise. Delete dead assignment. 5569 55702008-09-17 Adam Nemet <anemet@caviumnetworks.com> 5571 5572 * haifa-sched.c (dep_cost_1): Recognize the producer even if the 5573 consumer is an asm. Add comment why this is important. 5574 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 || 5575 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it. 5576 55772008-09-17 Joseph Myers <joseph@codesourcery.com> 5578 5579 * expr.c (emit_group_store): Do not shift before moving via a 5580 stack slot. 5581 55822008-09-17 Eric Botcazou <ebotcazou@adacore.com> 5583 5584 * varasm.c (initializer_constant_valid_p): Forbid view-conversions 5585 from aggregate to non-aggregate type if the bit pattern is not fully 5586 preserved afterwards. 5587 55882008-09-17 Richard Guenther <rguenther@suse.de> 5589 5590 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ... 5591 (verify_gimple_assign): ... this. Split into ... 5592 (verify_gimple_assign_unary): ... this, 5593 (verify_gimple_assign_binary): ... that, 5594 (verify_gimple_assign_single): ... and this. 5595 (verify_types_in_gimple_stmt): Call verify_gimple_assign. 5596 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling. 5597 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF. 5598 (verify_types_in_gimple_reference): Be forgiving with 5599 VIEW_CONVERT_EXPRs. 5600 (verify_gimple_phi): Deal with virtual operands. 5601 5602 * tree.def (PREDICT_EXPR): Change to tcc_expression. 5603 56042008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com> 5605 5606 * tree.c (get_callee_fndecl): Don't call the language hook. 5607 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl. 5608 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill. 5609 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL. 5610 56112008-09-17 Jakub Jelinek <jakub@redhat.com> 5612 5613 * tree.c (protected_set_expr_location): Don't unnecessarily 5614 check for error_mark_node. 5615 56162008-09-17 Art Haas <ahaas@impactweather.com> 5617 5618 * ipa-reference.c (analyze_function): Declare step only if 5619 ENABLE_CHECKING is defined. 5620 56212008-09-17 Jan Hubicka <jh@suse.cz> 5622 5623 PR c++/18071 5624 * tree.h (DECL_INLINE): remove. 5625 (DECL_DECLARED_INLINE_P): Update docs. 5626 (DECL_NO_INLINE_WARNING_P): new. 5627 (tree_function_decl): Replace inline_flag by no_inline_warning_flag. 5628 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P. 5629 56302008-09-17 Jakub Jelinek <jakub@redhat.com> 5631 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 5632 5633 PR bootstrap/37441 5634 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return 5635 false. 5636 56372008-09-17 Jan Hubicka <jh@suse.cz> 5638 5639 * ipa-reference.c (ipa_obstack): Remove. 5640 (local_info_obstack, global_info_obstack): New. 5641 (add_static_var): We now handle variables only. 5642 (mark_address_taken, mark_load, mark_store): New functions based on ... 5643 (check_operand): ... remove. 5644 (get_asm_stmt_operands): Rename to ... 5645 (check_asm_memory_clobber): ... this. Look only for memory clobber. 5646 (scan_stmt_for_static_refs): Rewrite. 5647 (scan_op_for_static_refs): Rename to ... 5648 (scan_initializer_for_static_refs): do not look for VAR_DECL 5649 initializers; stop recursion on types and decls. 5650 (ipa_init): Use proper obstacks. 5651 (analyze_variable): Use scan_initializer_for_static_refs. 5652 (init_function_info): Use local obstack. 5653 (analyze_function): Simplify. 5654 (add_new_function): We don't need visited_nodes obstack. 5655 (generate_summary): Use proper obstacks; cleanup after propagation. 5656 56572008-09-17 Richard Guenther <rguenther@suse.de> 5658 5659 PR middle-end/37385 5660 PR tree-optimization/37491 5661 * alias.c (get_alias_set): Use the canonical type. 5662 * tree-vect-transform.c (vectorizable_store): Use the type of 5663 the lhs for the vector type. Adjust checking. 5664 (vectorizable_load): Adjust checking. 5665 56662008-09-16 Jakub Jelinek <jakub@redhat.com> 5667 Adam Nemet <anemet@caviumnetworks.com> 5668 5669 PR rtl-optimization/37483 5670 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of 5671 if_info->insn_b's bb as argument to optimize_bb_for_speed_p. 5672 Rearrange code to better match the original comment. Check 5673 t_unconditional first. Improve comment. 5674 56752008-09-16 Jakub Jelinek <jakub@redhat.com> 5676 5677 PR c/37529 5678 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of 5679 GOTO_DESTINATION failed, don't create GIMPLE_GOTO. 5680 5681 PR c++/37530 5682 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create 5683 GIMPLE_TRY if cleanup sequence is empty. 5684 56852008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com> 5686 5687 PR middle-end/37263 5688 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the 5689 eliminate IV if the cost are the same. 5690 56912008-09-16 Richard Guenther <rguenther@suse.de> 5692 5693 PR middle-end/37380 5694 * tree-sra.c (sra_build_assignment): Do not call the gimplifier 5695 if not necessary. 5696 56972008-09-16 Richard Guenther <rguenther@suse.de> 5698 5699 PR tree-optimization/37508 5700 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1. 5701 57022008-09-15 Kaz Kojima <kkojima@gcc.gnu.org> 5703 5704 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A. 5705 57062008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com> 5707 5708 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to 5709 use gen_floatdidf2 directly. 5710 (floatunssidf2): Likewise. 5711 (floatsidf_ppc64_mfpgpr): Remove. 5712 (floatsidf_ppc64): Remove. 5713 (floatunssidf_ppc64): Remove. 5714 57152008-09-15 Jakub Jelinek <jakub@redhat.com> 5716 5717 * ira-color.c (finish_cost_update): Free update_cost_queue_elems 5718 rather than update_cost_queue. 5719 5720 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release 5721 in every call starting with the second one, instead of only when 5722 alias_bitmap_obstack.elements != NULL. 5723 5724 * tree-predcom.c (filter_suitable_components): Free all refs in 5725 act->refs vector before calling release_component. 5726 (add_ref_to_chain): Free ref if not adding it to chain->refs. 5727 5728 * tree-data-ref.c (free_subscripts): Free all subscript objects. 5729 5730 * tree-loop-linear.c (linear_transform_loops): Initialize 5731 lambda_obstack only after calling perfect_loop_nest_depth. 5732 Goto free_and_continue instead of just continue for later failures. 5733 5734 PR middle-end/37479 5735 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm. 5736 5737 PR libmudflap/36397 5738 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR. 5739 57402008-09-14 Andreas Schwab <schwab@suse.de> 5741 5742 * tree-call-cdce.c (check_target_format): Accept Motorola formats. 5743 57442008-09-14 Jan Hubicka <jh@suse.cz> 5745 5746 * invoke.texi (-fconserve-stack): Document. 5747 * opts.c (decode_options): Handle conserve_stack. 5748 * common.opt (fconvserve_stack): New. 5749 57502008-09-14 David Edelsohn <edelsohn@gnu.org> 5751 5752 * config.host: Add x-aix to host_xmake_file. 5753 * config/rs6000/t-aix52: Do not override LDFLAGS. 5754 * config/rs6000/x-aix: New file. 5755 57562008-09-14 Andy Hutchinson <hutchinsonandy@aim.com> 5757 5758 PR target/19636 5759 PR target/24894 5760 PR target/31644 5761 PR target/31786 5762 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg 5763 is not recognized as a valid register usage. Allow REG_X to be used 5764 as a base pointer. 5765 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that 5766 forces a reload when using a base register. 5767 57682008-09-14 Danny Smith <dannysmith@users.sourceforge.net> 5769 5770 * config/i386/cygming-crtend.c (register_frame_ctor): If 5771 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame 5772 directly with atexit. 5773 (deregister_frame_ctor): Rename to ... 5774 (deregister_frame_dtor): Use to call __gcc_deregister_frame 5775 if !DEFAULT_USE_CXA_ATEXIT. 5776 57772008-09-13 Jan Hubicka <jh@suse.cz> 5778 5779 * cgraph.c: Include value-prof.h 5780 * Makefile.in (cgraph.o): Add value-prof.h dependency. 5781 57822008-09-13 Jan Hubicka <jh@suse.cz> 5783 5784 PR middle-end/32581 5785 * tree-profile.c (add_abnormal_goto_call_edges): New function. 5786 (tree_gen_interval_profiler, tree_gen_pow2_profiler, 5787 tree_gen_one_value_profiler, tree_gen_average_profiler, 5788 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it. 5789 57902008-09-13 Jan Hubicka <jh@suse.cz> 5791 5792 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing 5793 too many bytes on misalligned blocks. 5794 57952008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 5796 5797 * doc/cfg.texi: Fix some typos. 5798 * doc/extend.texi: Likewise. 5799 * doc/install.texi: Likewise. 5800 * doc/invoke.texi: Likewise. 5801 * doc/rtl.texi: Likewise. 5802 * doc/tree-ssa.texi: Likewise. 5803 58042008-09-13 Richard Guenther <rguenther@suse.de> 5805 5806 PR middle-end/30141 5807 * tree-nested.c (finalize_nesting_tree_1): Generate valid 5808 gimple stores for memory rhs. 5809 58102008-09-13 H.J. Lu <hongjiu.lu@intel.com> 5811 5812 PR rtl-optimization/37489 5813 * cse.c (fold_rtx): Don't return const_true_rtx for float 5814 compare if FLOAT_STORE_FLAG_VALUE is undefined. 5815 58162008-09-13 Jan Hubicka <jh@suse.cz> 5817 5818 PR tree-optimization/37392 5819 * tree-inline.c (remap_gimple_stmt): Do not remap return value. 5820 58212008-09-13 Martin Jambor <mjambor@suse.cz> 5822 Jan Hubicka <jh@suse.cz> 5823 5824 * cgraph.c (free_edges): New variable. 5825 (NEXT_FREE_EDGE): New macro. 5826 (cgraph_free_edge): New function. 5827 (cgraph_remove_edge): Call cgraph_remove_edge_1. 5828 (cgraph_node_remove_callees): Likewise. 5829 (cgraph_node_remove_callers): Likewise. 5830 (cgraph_create_edge): Reuse edges from the free list. Do not 5831 update uid if doing so. 5832 (cgraph_remove_*_hook): Add free call. 5833 58342008-09-13 Richard Sandiford <rdsandiford@googlemail.com> 5835 5836 * ira-color.c (conflict_allocno_vec): Delete. 5837 (update_cost_queue_elem): New structure. 5838 (update_cost_queue): New variable. 5839 (update_cost_queue_tail): Likewise. 5840 (update_cost_queue_elems): Likewise. 5841 (allocno_update_cost_check): Delete. 5842 (initiate_cost_update): Allocate update_cost_queue_elems 5843 instead of allocno_update_cost_check. 5844 (finish_cost_update): Update the free()s accordingly. 5845 (start_update_cost): New function. 5846 (queue_update_cost): Likewise. 5847 (get_next_update_cost): Likewise. 5848 (update_copy_costs_1): Inline into... 5849 (update_copy_costs): ...here. Use a queue instead of recursive calls. 5850 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno), 5851 once we've established they are equal. Don't allocate update 5852 costs if there is nothing to add to them. 5853 (update_conflict_hard_regno_costs): Remove ALLOCNO and 5854 DIVISOR arguments. Use a queue instead of recursive calls; 5855 process all the allocnos in the initial queue, rather than 5856 a single allocno. 5857 (assign_hard_reg): Use queue_update_cost instead of 5858 conflict_allocno_vec. Queue coalesced allocnos instead 5859 of calling update_conflict_hard_regno_costs for each one. 5860 Just call update_conflict_hard_regno_costs once for the 5861 entire queue. 5862 (ira_color): Remove conflict_allocno_vec handling. 5863 58642008-09-12 Sebastian Pop <sebastian.pop@amd.com> 5865 5866 PR tree-optimization/37484 5867 * graphite.c (scop_record_loop): Use snprintf instead of sprintf. 5868 (save_var_name): Same. 5869 (initialize_cloog_names): Same. 5870 (initialize_cloog_names): Same. 5871 58722008-09-12 Sebastian Pop <sebastian.pop@amd.com> 5873 5874 * tree-scalar-evolution.c (set_instantiated_value): Set 5875 instantiated_below. 5876 58772008-09-12 Vladimir Makarov <vmakarov@redhat.com> 5878 5879 PR rtl-opt/37377 5880 5881 * ira-build.c (common_loop_tree_node_dominator): Remove. 5882 (copy_live_ranges_to_removed_store_destinations): New function. 5883 (regno_top_level_allocno_map): Move to top level from ... 5884 (ira_flattening): ... here. Use 5885 copy_live_ranges_to_removed_store_destinations. 5886 5887 * ira-emit.c (generate_edge_moves): Fix a comment. 5888 58892008-09-12 Anatoly Sokolov <aesok@post.ru> 5890 5891 PR target/37466 5892 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for 5893 scratch register after 'set' pattern. 5894 58952008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 5896 5897 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment 5898 information passed to mark_reg_pointer. 5899 * explow.c (force_reg): Likewise. 5900 59012008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 5902 5903 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints 5904 when building for the celledp architecture. 5905 59062008-09-12 Richard Guenther <rguenther@suse.de> 5907 5908 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types. 5909 59102008-09-12 Eric Botcazou <ebotcazou@adacore.com> 5911 5912 PR rtl-optimization/37424 5913 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing 5914 the regnos instead of the addresses. 5915 59162008-09-11 Janis Johnson <janis187@us.ibm.com> 5917 5918 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name. 5919 59202008-09-11 Richard Guenther <rguenther@suse.de> 5921 5922 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid 5923 entering the weaker equivalence recording. 5924 5925 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification. 5926 59272008-09-11 Jeff Law <law@redhat.com> 5928 5929 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed 5930 by assign_stack_local on the IRA path for stack slot sharing 5931 as well as the non-IRA path. 5932 59332008-09-11 Uros Bizjak <ubizjak@gmail.com> 5934 5935 * config/i386/i386.h: Fix whitespace issues. 5936 59372008-09-11 Martin Jambor <mjambor@suse.cz> 5938 5939 * ipa-prop.h (struct ipa_param_flags): Removed. 5940 (struct ipa_param_descriptor): New structure. 5941 (struct ipa_node_params): ipcp_lattices, param_decls and 5942 param_flags moved to ipa_param_description. 5943 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access 5944 descriptors. Renamed all users. 5945 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified, 5946 changed to access descriptors. Renamed all users. 5947 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed 5948 to access descriptors. Renamed all users. 5949 * ipa-cp.c (ipcp_init_cloned_node): Call 5950 ipa_initialize_node_params instead of ipa_count_formal_params and 5951 ipa_create_param_decls_array. 5952 (ipcp_analyze_node): Likewise. 5953 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access 5954 descriptors. Renamed all users. 5955 (ipcp_initialize_node_lattices): Remove allocation. 5956 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call 5957 ipa_initialize_node_params instead of ipa_count_formal_params and 5958 ipa_create_param_decls_array. 5959 * ipa-prop.c (ipa_create_param_decls_array): Renamed to 5960 ipa_populate_param_decls, made static, added parameter info, 5961 renamed mt to node, removed allocation, changed to use 5962 descriptors. 5963 (ipa_count_formal_params): Made static, added parameter info, 5964 renamed mt to node. 5965 (ipa_initialize_node_params): New function. 5966 (ipa_check_stmt_modifications): Changed to use descriptors. 5967 (ipa_detect_param_modifications): Removed allocation, changed to 5968 use descriptors. 5969 (ipa_note_param_call): Changed to use descriptors. 5970 (ipa_analyze_params_uses): Removed allocation. 5971 (ipa_free_node_params_substructures): Changed to use descriptors. 5972 (ipa_edge_duplication_hook): Use the unused attribute. 5973 (ipa_node_duplication_hook): Use the unused attribute, changed to 5974 use descriptors, changed to duplicate descriptors. 5975 5976 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges, 5977 changed all callers. Call ipa_propagate_indirect_call_infos if doing 5978 indirect inlining. Made static. 5979 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining 5980 functions called only once. 5981 (cgraph_decide_recursive_inlining): Don't call 5982 ipa_propagate_indirect_call_infos, pass new_edges to 5983 cgraph_mark_inline_edge instead. 5984 (cgraph_decide_inlining_of_small_functions): Don't call 5985 ipa_propagate_indirect_call_infos, pass new_edges to 5986 cgraph_mark_inline_edge instead. 5987 (cgraph_decide_inlining): Don't call 5988 ipa_propagate_indirect_call_infos. 5989 * ipa-prop.c: Check that vectors are allocated. 5990 5991 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true 5992 iff a new cgraph edges have been created. 5993 (cgraph_decide_inlining): New variable redo_always_inline. 5994 Flattening and always_inlining loop until callgraph stabilizes. 5995 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean, 5996 true iff new cgraph edges have been created. 5997 (propagate_info_to_inlined_callees): Likewise. 5998 (ipa_propagate_indirect_call_infos): Likewise. 5999 60002008-09-11 Richard Guenther <rguenther@suse.de> 6001 6002 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types. 6003 (set_prologue_iterations): Likewise. 6004 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 6005 Likewise. 6006 (vect_update_init_of_dr): Likewise. 6007 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix 6008 type verification. 6009 * fold-const.c (fold_unary): Do not generate calculations 6010 in sub-types. 6011 60122008-09-11 Paolo Bonzini <bonzini@gnu.org> 6013 6014 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to 6015 TRUTH_AND_EXPR for boolean (1-bit precision) expressions. 6016 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR. 6017 6018 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return 6019 a bool. 6020 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to 6021 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges 6022 before finalizing the changes. 6023 * tree-vrp.c (extract_range_from_binary_expr): Add limited support 6024 for BIT_IOR_EXPR. 6025 (simplify_truth_ops_using_ranges): New. 6026 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges, 6027 simplify_cond_using_ranges, simplify_switch_using_ranges): Return 6028 whether a simplification was made. 6029 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN, 6030 use a switch statement and also call simplify_truth_ops_using_ranges. 6031 60322008-09-11 Jan Hubicka <jh@suse.cz> 6033 6034 * ggc-common.c (loc_array): Make static. 6035 * dce.c (rest_of_handle_ud_dce): Free worklist. 6036 60372008-09-11 Jan Hubicka <jh@suse.cz> 6038 6039 * cgraph.c (cgraph_release_function_body): Plug memory leak on 6040 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct 6041 function so we are sure we do not dangle it forever. 6042 * function.c (outer_function_chain, find_function_data): Remove. 6043 (function_context_stack): New. 6044 (push_function_context, pop_function_context): Update. 6045 * function.h (struct function): Remove pointer outer. 6046 (outer_function_chain, find_function_data): Remove. 6047 * stmt.c (force_label_rtx): Remove dead call of find_function_data. 6048 60492008-09-11 Jan Hubicka <jh@suse.cz> 6050 6051 PR middle-end/37448 6052 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check. 6053 60542008-09-11 Jan Hubicka <jh@suse.cz> 6055 6056 * tree-ssa-pre.c (phi_translate_1): Fix memory leak 6057 60582008-09-11 Jan Hubicka <jh@suse.cz> 6059 6060 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting. 6061 (free_var_map_entry): New function. 6062 (redirect_edge_var_map_destroy): Use it. 6063 60642008-09-11 Jan Hubicka <jh@suse.cz> 6065 6066 PR middle-end/37448 6067 * tree-inline.c (add_lexical_block): Replace with ... 6068 (prepend_lexical_block): ... prepend at begginig. 6069 (remap_blocks): Use it and reverse later. 6070 (expand_call_inline): Use prepend_lexical_block. 6071 60722008-09-11 Jan Hubicka <jh@suse.cz> 6073 6074 * gimplify.c (pop_gimplify_context): Free bind_expr_stack. 6075 60762008-09-11 Jan Hubicka <jh@suse.cz> 6077 6078 * function.c (free_after_compilation): Call insn_locators_free. 6079 * cfglayout.c (insn_locators_free): New function. 6080 * rtl.h (insn_locators_free): Declare. 6081 60822008-09-11 Jan Hubicka <jh@suse.cz> 6083 6084 * ifcvt.c (check_cond_move_block): Make regs argument pointer to 6085 vector pointer. 6086 (cond_move_process_if_block): Update call. 6087 60882008-09-11 Jan Hubicka <jh@suse.cz> 6089 6090 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics. 6091 * vec.c: Include hashtab.h 6092 (vec_descriptor, ptr_hash_entry): New structures. 6093 (vec_desc_hash, vec_ptr_map): New static variables. 6094 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor, 6095 register_overhead, free_overhead, vec_heap_free): New functions. 6096 (vec_gc_o_reserve_1): ggc_free when resizing to 0. 6097 (vec_heap_o_reserve_1): free when resizing to 0; add statistics. 6098 (cmp_statistic, add_statistics, dump_vec_loc_statistics): 6099 New functions. 6100 61012008-09-11 Ira Rosen <irar@il.ibm.com> 6102 6103 PR tree-optimization/37474 6104 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the 6105 length of load permutation. 6106 61072008-09-11 Andreas Schwab <schwab@suse.de> 6108 6109 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define. 6110 61112008-09-11 Jakub Jelinek <jakub@redhat.com> 6112 6113 PR target/37382 6114 * expmed.c (extract_low_bits): Avoid creating invalid subregs. 6115 * dse.c (find_shift_sequence): Use extract_low_bits instead of 6116 simplify_gen_subreg. 6117 61182008-09-11 Ira Rosen <irar@il.ibm.com> 6119 6120 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type 6121 for alias check. 6122 61232008-09-10 Jakub Jelinek <jakub@redhat.com> 6124 6125 PR middle-end/37338 6126 * gimplify.c (gimplify_body): Call default_rtl_profile. 6127 6128 PR target/36904 6129 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL 6130 instead of tok->val.node if not expanding to something else. Handle 6131 intervening CPP_PADDING tokens. 6132 (altivec_categorize_keyword): Remove unneeded comparisons. 6133 61342008-09-10 Richard Guenther <rguenther@suse.de> 6135 6136 * tree-ssa-pre.c (phi_translate_1): Fix memory leak. 6137 61382008-09-10 Richard Guenther <rguenther@suse.de> 6139 6140 PR middle-end/37432 6141 * tree-inline.c (insert_init_stmt): Make sure to not 6142 insert invalid gimple stores. 6143 61442008-09-10 Sebastian Pop <sebastian.pop@amd.com> 6145 6146 PR tree-optimization/37388 6147 * toplev.c (process_options): Fail and warn when graphite 6148 flags are used, but the compiler has not been configured 6149 with graphite libraries. 6150 * graphite.c (graphite_transform_loops): Remove printfs 6151 to dump_file for the case when graphite is not available. 6152 61532008-09-10 H.J. Lu <hongjiu.lu@intel.com> 6154 6155 PR target/37434: 6156 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force 6157 the even element into register. 6158 (ix86_expand_vector_init_general): Don't use 6159 ix86_expand_vector_init_interleave on V16QImode and V8HImode 6160 if we can't move from GPR to SSE register directly. 6161 61622008-09-10 Bernd Schmidt <bernd.schmidt@analog.com> 6163 6164 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to 6165 not lose track of the number of NOPs needed. Number of NOPs needed 6166 for sync vs. loads workaround was switched; corrected. Run second 6167 pass for all workarounds. No NOPs needed after call insns. Change 6168 second pass to use find_next_insn_start and find_load helpers in order 6169 to properly detect parallel insns. 6170 * config/bfin/bfin.md (cbranch_with_nops): Increase length. 6171 61722008-09-10 Jan Hubicka <jh@suse.cz> 6173 6174 * value-prof.c (gimple_ic): Fix tuplification bug. 6175 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized 6176 var warning. 6177 61782008-09-10 Jakub Jelinek <jakub@redhat.com> 6179 6180 PR tree-optimization/37353 6181 * tree-call-cdce.c (cond_dead_built_in_calls): Remove. 6182 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use 6183 calls instead of cond_dead_built_in_calls. 6184 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable, 6185 initalize the vector only before adding first entry. Use VEC_safe_push 6186 instead of VEC_quick_push. Pass cond_dead_built_in_calls to 6187 shrink_wrap_conditional_dead_built_in_calls call. 6188 61892008-09-10 Ira Rosen <irar@il.ibm.com> 6190 6191 PR tree-optimization/37385 6192 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new 6193 argument, and use it as a vector type if not NULL. 6194 (vectorizable_store): Call vect_create_data_ref_ptr with the type of 6195 vectorized rhs. 6196 (vect_setup_realignment): Call vect_create_data_ref_ptr with 6197 additional argument. 6198 (vectorizable_load): Likewise. 6199 62002008-09-10 Jakub Jelinek <jakub@redhat.com> 6201 6202 * config/i386/i386.md (SWI32): New mode iterator. 6203 (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead 6204 of SWI. 6205 62062008-09-09 Vladimir Makarov <vmakarov@redhat.com> 6207 6208 PR rtl-optimization/37435 6209 * caller-save.c (insert_restore, insert_save): Check the mode by 6210 reg_save_code. 6211 62122008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 6213 6214 PR other/37265 6215 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for 6216 splay tree lookup. 6217 (dw2_output_indirect_constant_1): Use unstripped name in symbol 6218 reference. 6219 62202008-09-09 Sandra Loosemore <sandra@codesourcery.com> 6221 6222 * doc/invoke.texi (ARM Options): Correct errors in discussion 6223 of -mfloat-abi, -mhard-float, and -msoft-float. 6224 62252008-09-09 Jakub Jelinek <jakub@redhat.com> 6226 Jan Hubicka <jh@suse.cz> 6227 6228 PR middle-end/37356 6229 * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before 6230 calling gimple_regimplify_operands on it. Iterate over all newly 6231 added statements, not just the last one. 6232 (insert_init_stmt): Insert stmt into seq first, then call 6233 gimple_regimplify_operands on it. Don't create new gimplification 6234 context, nor find referenced vars. 6235 62362008-09-09 Jakub Jelinek <jakub@redhat.com> 6237 6238 PR other/37419 6239 * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument 6240 to pointer to vector pointer. 6241 * ipa-prop.c (ipa_propagate_indirect_call_infos, 6242 propagate_info_to_inlined_callees): Likewise. 6243 (update_call_notes_after_inlining): Likewise. Push new indirect edge 6244 to *new_edges instead of new_edges. Reread IPA_EDGE_REF after 6245 ipa_check_create_edge_args. 6246 * ipa-inline.c (cgraph_decide_recursive_inlining): Change last 6247 argument to pointer to vector pointer. 6248 (cgraph_decide_inlining_of_small_function): Adjust 6249 cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos 6250 calls. 6251 6252 PR target/37438 6253 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when 6254 optimizing for size, not speed. 6255 6256 PR rtl-optimization/37408 6257 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE 6258 if parm is promoted. 6259 62602008-09-09 Sebastian Pop <sebastian.pop@amd.com> 6261 6262 PR tree-optimization/37375 6263 * tree-scalar-evolution.c (scev_info_str): Add field 6264 instantiated_below. 6265 (new_scev_info_str, eq_scev_info, find_var_scev_info, 6266 set_scalar_evolution, get_scalar_evolution, get_instantiated_value, 6267 set_instantiated_value): Pass instantiated_below. 6268 (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls 6269 to above functions. 6270 (instantiate_scev_1, instantiate_scev): Pass a basic block above which 6271 the definitions are not instantiated. 6272 6273 * tree-scalar-evolution.h (instantiate_scev): Update declaration. 6274 (block_before_loop): New. 6275 * tree-data-ref.c (dr_analyze_indices): Update uses of 6276 instantiate_scev. 6277 * graphite.c (block_before_scop): New. 6278 (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a 6279 basic block, not a loop for determining the parameters. 6280 (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the 6281 scop. 6282 (idx_record_params, find_params_in_bb, find_scop_parameters, 6283 build_loop_iteration_domains, add_conditions_to_domain): Update calls 6284 to instantiate_scev. 6285 6286 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H. 6287 62882008-09-09 Vladimir Makarov <vmakarov@redhat.com> 6289 6290 PR rtl-opt/37333 6291 6292 * ira-build.c (ira_create_allocno): Setup frequency to 0. 6293 6294 * ira-color.c (update_conflict_hard_regno_costs): Remove assert. 6295 Check zero freq and increase if necessary. 6296 62972008-09-09 Vladimir Makarov <vmakarov@redhat.com> 6298 6299 * ira-conflicts.c (process_regs_for_copy): Check that the hard 6300 regno is in the right range. Add comments. 6301 63022008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 6303 6304 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c 6305 warnings. 6306 * mips-tfile.c (copy_object): Cast alloca result to int *. 6307 * mips-tdump.c (print_symbol): Cast xmalloc return values to 6308 proper types. 6309 Rename class to sclass. 6310 (read_tfile): Cast read_seek return values to proper types. 6311 Cast xcalloc return value to proper type. 6312 63132008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 6314 6315 * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ... 6316 * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here. 6317 * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here. 6318 63192008-09-09 Jan Hubicka <jh@suse.cz> 6320 6321 * profile.c (is_edge_inconsistent): Add debug output; ignore 6322 negative count on fake edges. 6323 (is_inconsistent): Add debug output. 6324 63252008-09-09 Andrey Belevantsev <abel@ispras.ru> 6326 6327 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing 6328 dump message. 6329 (choose_ready): When first insn is chosen from the ready list, also 6330 dump it. 6331 63322008-09-09 Andrey Belevantsev <abel@ispras.ru> 6333 6334 PR rtl-optimization/37360 6335 * haifa-sched.c (max_issue): Do not assert that we never issue more 6336 insns than issue_rate. Add comment. 6337 63382008-09-09 Richard Guenther <rguenther@suse.de> 6339 6340 * tree-cfg.c (verify_types_in_gimple_op): Remove. 6341 (verify_types_in_gimple_call): Rename to ... 6342 (verify_gimple_call): ... this. Enhance. 6343 (verify_types_in_gimple_cond): Remove. 6344 (verify_gimple_comparison): New function ... 6345 (verify_types_in_gimple_assign): ... split out from here. 6346 (verify_types_in_gimple_return): Rename to ... 6347 (verify_gimple_return): ... this. Enhance. 6348 (verify_types_in_gimple_switch): Rename to ... 6349 (verify_gimple_switch): ... this. Enhance. 6350 (verify_gimple_goto): New function. 6351 (verify_types_in_gimple_phi): Rename to ... 6352 (verify_gimple_phi): ... this. Enhance. 6353 (verify_types_in_gimple_stmt): Adjust calls to helper functions. 6354 Fold in single-statement cases from verify_types_in_gimple_seq_2. 6355 (verify_types_in_gimple_seq_2): Remove cases handled in 6356 verify_types_in_gimple_stmt. 6357 63582008-09-09 Bernd Schmidt <bernd.schmidt@analog.com> 6359 6360 * config/bfin/bfin.c (n_regs_to_save): New static variable. 6361 (push_multiple_operation, pop_multiple_operation): Set it. 6362 (workaround_rts_anomaly): New function. 6363 (workaround_speculation): New function, broken out of bfin_reorg. 6364 (bfin_reorg): Call the new functions. 6365 63662008-09-09 Richard Guenther <rguenther@suse.de> 6367 6368 PR middle-end/37354 6369 PR middle-end/30165 6370 * gimplify.c (gimplify_conversion): Change conversions of 6371 non-register type to VIEW_CONVERT_EXPRs. 6372 (gimplify_addr_expr): If we need to make the operand 6373 addressable make sure to use a properly initialized 6374 temporary for that so it gets a valid gimple store. 6375 63762008-09-09 Aldy Hernandez <aldyh@redhat.com> 6377 6378 * function.h (struct function): Add function_start_locus. 6379 * cfgexpand.c (gimple_expand_cfg): Use it. 6380 * c-parser.c (c_parser_declaration_or_fndef): Set it. 6381 63822008-09-09 Richard Guenther <rguenther@suse.de> 6383 6384 PR tree-optimization/37433 6385 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of 6386 function calls. 6387 63882008-09-09 Richard Guenther <rguenther@suse.de> 6389 6390 PR tree-optimization/37387 6391 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name 6392 and bits to a common type. 6393 63942008-09-09 Nick Clifton <nickc@redhat.com> 6395 6396 * config/v850/v850.md (return): Restore frame size restriction. 6397 63982008-09-09 Paolo Bonzini <bonzini@gnu.org> 6399 6400 * c-common.c (c_expand_decl): Remove. 6401 * c-common.h (anon_aggr_type_p): Remove prototype. 6402 (DECL_ANON_UNION_ELEMS): Remove. 6403 * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove. 6404 * c-decl.c (anon_aggr_type_p): Remove. 6405 * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove. 6406 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL. 6407 * langhooks.h (struct lang_hooks): Remove expand_decl. 6408 * langhooks.c (lhd_expand_decl): Remove. 6409 * stmt.c (expand_anon_union_decl): Remove. 6410 * tree.h (expand_anon_union_decl): Remove prototype. 6411 64122008-08-09 Andy Hutchinson <hutchinsonandy@aim.com> 6413 6414 PR target/36609 6415 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with 6416 zero. 6417 * config/avr/avr.md (QISI): Define mode iterator. 6418 (negated_tst<mode>): Redefine as split using mode macro. 6419 (reversed_tstqi): Define insn as reversed compare with zero. 6420 (reversed_tsthi): Ditto. 6421 (reversed_tstsi): Ditto. 6422 64232008-09-08 Jakub Jelinek <jakub@redhat.com> 6424 6425 PR middle-end/37393 6426 * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p 6427 call stmt by new_call, clear gimple_bb on stmt after gsi_replace. 6428 6429 PR middle-end/37414 6430 * predict.c (optimize_function_for_size_p): Don't segfault if 6431 FUN is NULL. 6432 * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop, 6433 tree_swap_operands_p): Don't test cfun != NULL before calling 6434 optimize_function_for_s*_p. 6435 64362008-09-08 Eric Botcazou <ebotcazou@adacore.com> 6437 6438 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the 6439 end of the search. 6440 64412008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com> 6442 6443 * crx/crx.h (IRA_COVER_CLASSES): Define. 6444 64452008-09-08 Jakub Jelinek <jakub@redhat.com> 6446 6447 PR middle-end/37337 6448 * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt 6449 even when a stmt has been gimple_modified_p, but after fold_stmt is 6450 not any longer. Remove unneeded may_have_exposed_new_symbols 6451 initializations. 6452 64532008-09-08 Richard Guenther <rguenther@suse.de> 6454 6455 PR tree-optimization/37421 6456 * tree-ssa-sccvn.c (visit_copy): Make sure to fully 6457 valueize the RHS. 6458 64592008-09-08 Jakub Jelinek <jakub@redhat.com> 6460 6461 PR middle-end/37415 6462 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp. 6463 64642008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 6465 6466 PR driver/37409 6467 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program. 6468 * pa-hpux10.h (LINK_SPEC): Likewise. 6469 * pa-hpux11.h (LINK_SPEC): Likewise. 6470 64712008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 6472 6473 * pa32-regs.h (IRA_COVER_CLASSES): Define. 6474 * pa64-regs.h (IRA_COVER_CLASSES): Define. 6475 64762008-09-07 Helge Deller <deller@gmx.de> 6477 6478 * pa/linux-atomic.c: New file. 6479 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define. 6480 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define. 6481 64822008-09-07 Richard Guenther <rguenther@suse.de> 6483 Ira Rosen <irar@il.ibm.com> 6484 6485 PR tree-optimization/36630 6486 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): 6487 Call STRIP_NOPS before calling evolution_part_in_loop_num. 6488 64892008-09-07 Dorit Nuzman <dorit@il.ibm.com> 6490 Ira Rosen <irar@il.ibm.com> 6491 6492 PR tree-optimization/35642 6493 * config/rs6000/altivec.md (mulv8hi3): Implement. 6494 64952008-09-06 Jeff Law <law@redhat.com> 6496 6497 * h8300/h8300.h (IRA_COVER_CLASSES): Define. 6498 64992008-09-06 Jan Hubicka <jh@suse.cz> 6500 6501 PR tree-optimization/14703 6502 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored 6503 declarations. 6504 * passes.c (init_optimization_passes): Recompute inline parameters. 6505 65062008-09-06 Richard Sandiford <rdsandiford@googlemail.com> 6507 6508 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for 6509 DECL being null. 6510 65112008-09-06 Richard Sandiford <rdsandiford@goolemail.com> 6512 Peter Fuerst <post@pfrst.de> 6513 6514 * doc/invoke.texi: Document -mr10k-cache-barrier=. 6515 * doc/extend.texi: Document __builtin_mips_cache. 6516 * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry. 6517 * config/mips/mips.opt (mr10k-cache-barrier=): New option. 6518 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define 6519 __GCC_HAVE_BUILTIN_MIPS_CACHE. 6520 (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros. 6521 * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum. 6522 (set_push_mips_isas): New variable. 6523 (mips_r10k_cache_barrier): New variable. 6524 (cache): New availability predicate. 6525 (mips_builtins): Add an entry for __builtin_mips_cache. 6526 (mips_build_cvpointer_type): New function. 6527 (MIPS_ATYPE_CVPOINTER): New macro. 6528 (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's 6529 mode is VOIDmode. 6530 (r10k_simplified_address_p, r10k_simplify_address) 6531 (r10k_uncached_address_p, r10k_safe_address_p) 6532 (r10k_needs_protection_p_1, r10k_needs_protection_p_store) 6533 (r10k_needs_protection_p_call, r10k_needs_protection_p) 6534 (r10k_insert_cache_barriers): New functions. 6535 (mips_reorg_process_insns): Delete cache barriers after a 6536 branch-likely instruction. 6537 (mips_reorg): Call r10k_insert_cache_barriers. 6538 (mips_handle_option): Handle OPT_mr10k_cache_barrier_. 6539 * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant. 6540 (UNSPEC_R10K_CACHE_BARRIER): Likewise. 6541 (mips_cache, r10k_cache_barrier): New define_insns. 6542 65432008-09-06 Richard Sandiford <rdsandiford@googlemail.com> 6544 6545 * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete. 6546 * ira-color.c (setup_allocno_left_conflicts_num): Use 6547 hard_reg_set_equal_p instead of a comparison with 6548 ira_zero_hard_reg_set. 6549 * ira.c (setup_reg_subclasses): Likewise. 6550 (setup_cover_and_important_classes): Likewise. 6551 (setup_class_translate): Likewise. 6552 (setup_reg_class_intersect_union): Likewise. 6553 (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete. 6554 (ira_init_once): Don't initialize them. 6555 65562008-09-05 Vladimir Makarov <vmakarov@redhat.com> 6557 6558 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo. 6559 65602008-09-05 Vladimir Makarov <vmakarov@redhat.com> 6561 6562 * ira-color.c (ira_fast_allocation): Permit global allocno allocation. 6563 65642008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> 6565 6566 Improved branch hints, safe hints, and scheduling. 6567 6568 * haifa-sched.c (sched_emit_insn): Define. 6569 * sched-int.h (sched_emit_insn): Add prototype. 6570 * doc/invoke.texi (-mdual-nops, -mhint-max-nops, 6571 -mhint-max-distance -msafe-hints): Document. 6572 * config/spu/spu.c (spu_flag_var_tracking): New. 6573 (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT, 6574 TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2, 6575 TARGET_ASM_FILE_START): Define. 6576 (TARGET_SCHED_ADJUST_PRIORITY): Remove. 6577 (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define. 6578 (spu_emit_branch_hint): Add blocks argument. 6579 (insert_branch_hints, insert_nops): Remove. 6580 (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg, 6581 uses_ls_unit, spu_sched_init_global, spu_sched_init, 6582 spu_sched_reorder, asm_file_start): New functions. 6583 (clock_var, spu_sched_length, pipe0_clock, 6584 pipe1_clock, prev_clock_var, prev_priority, 6585 spu_ls_first, prev_ls_clock): New static variables. 6586 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS. 6587 * config/spu.md (iprefetch): Add operand, make it clobber MEM. 6588 (nopn_nv): Add a non-volatile version of nop. 6589 * config/spu/spu.opt (-mdual-nops, -mhint-max-nops, 6590 -mhint-max-distance, -msafe-hints): New options. 6591 65922008-09-05 Janis Johnson <janis187@us.ibm.com> 6593 Samuel Tardieu <sam@rfc1149.net> 6594 6595 * opts.c (decode_options): Combine nested if statements. 6596 6597 PR target/37283 6598 * opts.c (decode_options): Handle more relationships among 6599 unit-at-a-time, toplevel-reorder, and section-anchors. 6600 66012008-09-05 David Daney <ddaney@avtrex.com> 6602 6603 * doc/install.texi (--enable-reduced-reflection): Document new option. 6604 66052008-09-05 Bob Wilson <bob.wilson@acm.org> 6606 6607 * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use 6608 constantpool_mem_p. 6609 (constantpool_operand): New. 6610 (move_operand): Disallow sub-word modes for the constant pool. 6611 * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define. 6612 (xtensa_secondary_reload_class): Replace with.... 6613 (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check. 6614 Set icode for sub-word reloads from the constant pool. 6615 * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete. 6616 (SECONDARY_OUTPUT_RELOAD_CLASS): Delete. 6617 * config/xtensa/xtensa.md (reload<mode>_literal): New. 6618 * config/xtensa/xtensa-protos.h: Update prototypes. 6619 66202008-09-05 Joseph Myers <joseph@codesourcery.com> 6621 6622 * config/mips/mips.h (enum reg_class): Add FRAME_REGS. 6623 (REG_CLASS_NAMES): Update. 6624 (REG_CLASS_CONTENTS): Update. 6625 * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead 6626 of ALL_REGS for regs 77 and 78. 6627 * function.c (instantiate_virtual_regs_in_insn): Assert that 6628 return value of simplify_gen_subreg is not NULL. 6629 66302008-09-05 Paolo Bonzini <bonzini@gnu.org> 6631 6632 * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v. 6633 (gen_rtvec_v): Fix coding standards. 6634 66352008-09-04 Jan Hubicka <jh@suse.cz> 6636 6637 * i386.c (decide_alg): Be more conservative about optimizing for size. 6638 66392008-09-04 Ian Lance Taylor <iant@google.com> 6640 6641 * varasm.c (narrowing_initializer_constant_valid_p): New 6642 static function. 6643 (initializer_constant_valid_p): Call it. 6644 66452008-09-04 Jeff Law <law@redhat.com> 6646 6647 * fold-const.c (native_encode_real): Fix computation of WORDS. 6648 (native_interpret_real): Likewise. 6649 66502008-09-04 Janis Johnson <janis187@us.ibm.com> 6651 6652 * config/rs6000/t-rs6000: Remove target gt-rs6000.h. 6653 66542008-09-04 Vladimir Makarov <vmakarov@redhat.com> 6655 6656 * ira-conflicts.c (process_regs_for_copy): Check insn to check 6657 that the cost is already taken into account in ira-costs.c 6658 6659 * ira-int.h (ira_debug_copy, ira_debug_copies): New. 6660 6661 * ira-build.c (print_copy, print_copies, ira_debug_copy, 6662 ira_debug_copies): New. 6663 (ira_bulid): Call print_copies. 6664 6665 * doc/tm.texi (IRA_COVER_CLASSES): Fix the description. 6666 66672008-09-04 Samuel Tardieu <sam@rfc1149.net> 6668 6669 PR target/32783 6670 * config/rs6000/rs6000.c (optimization_options): Remove check of 6671 flag_toplevel_order. 6672 66732008-09-04 Adam Nemet <anemet@caviumnetworks.com> 6674 6675 * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro. 6676 * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if 6677 second operand is a reg_imm10_operand. 6678 * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq, 6679 *sne_<GPR:mode><GPR2:mode>_sne): New patterns. 6680 (*seq_<GPR:mode><GPR2:mode>): Rename to 6681 *seq_zero_<GPR:mode><GPR2:mode>. Don't match if 6682 ISA_HAS_SEQ_SNE. 6683 (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to 6684 *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if 6685 ISA_HAS_SEQ_SNE. 6686 (*sne_<GPR:mode><GPR2:mode>): Rename to 6687 *sne_zero_<GPR:mode><GPR2:mode>. Don't match if 6688 ISA_HAS_SEQ_SNE. 6689 66902008-09-04 Adam Nemet <anemet@caviumnetworks.com> 6691 6692 * config/mips/mips.h (ISA_HAS_EXTS): New macro. 6693 * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern 6694 combining an arithmetic right shift by more than 31 and a 6695 trunction. Don't match for out-of-range shift amounts. Set 6696 attribute mode to <MODE>. 6697 (*lshr32_trunc<mode>): Name the pattern combining a logical right 6698 shift by 32 and and a truncation. Set attribute mode to <MODE>. 6699 (*<optab>_trunc<mode>_exts): New pattern for truncated right 6700 shifts by less than 32. 6701 (extv): Change predicate on first operand to accept registers. 6702 Change predicate of the other operands from immediate_operand to 6703 const_int_operand. Expand exts when source is a register. 6704 (extzv): Change predicate of the constant operands from 6705 immediate_operand to const_int_operand. 6706 (extzv<mode>): Change predicate of the constant operands from 6707 immediate_operand to const_int_operand and no constraint. Also 6708 remove mode. 6709 (*extzv_trunc<mode>_exts): New pattern. 6710 67112008-09-04 Adam Nemet <anemet@caviumnetworks.com> 6712 6713 * config/mips/mips.h (ISA_HAS_CINS): New macro. 6714 * config/mips/mips-protos.h (mask_low_and_shift_p, 6715 mask_low_and_shift_len): Declare. 6716 * config/mips/mips.c (mask_low_and_shift_p, 6717 mask_low_and_shift_len): New functions. 6718 (mips_print_operand): Handle new operand prefix "m". 6719 * config/mips/mips.md (*cins<mode>): New pattern. 6720 67212008-09-04 Bernd Schmidt <bernd.schmidt@analog.com> 6722 6723 * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when 6724 optimizing for size. 6725 67262008-09-04 Richard Sandiford <rdsandiford@googlemail.com> 6727 6728 * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM 6729 regardless of epilogue_completed. 6730 67312008-09-04 Vladimir Makarov <vmakarov@redhat.com> 6732 6733 PR middle-end/37359 6734 * ira-lives.c (process_bb_node_lives): Check setjmp. 6735 67362008-09-04 Richard Sandiford <rdsandiford@googlemail.com> 6737 6738 PR middle-end/37243 6739 * ira-build.c (form_loop_tree): Reverse BB walk. 6740 (create_bb_allocnos): Likewise. 6741 * ira-lives.c (make_regno_born_and_dead, regs_set): Delete. 6742 (mark_reg_store): Rename to... 6743 (mark_ref_live): ...this and take a df_ref argument instead of 6744 note_stores arguments. Assert that we have a register. 6745 (mark_reg_clobber): Delete. 6746 (def_conflicts_with_inputs_p): New function. 6747 (mark_reg_conflicts): Delete. 6748 (mark_reg_death): Rename to... 6749 (mark_ref_dead): ...this and take a df_ref argument instead of 6750 a register. Assert that we have a register. 6751 (process_bb_node_lives): Hoist frequency calculation out of 6752 instruction walk. Convert from a forwards scan to a backwards scan. 6753 Use DF_REF_USES and DF_REF_DEFS instead of register notes and 6754 note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling. 6755 (create_allocno_live_ranges): Don't create regs_set. 6756 67572008-09-04 Ian Lance Taylor <iant@google.com> 6758 6759 * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND 6760 or REG_LABEL_TARGET. 6761 * calls.c (emit_library_call_value_1): Use MEM_P rather than 6762 comparing MODE with MEM. 6763 * gimple.c (gimple_build_predict): Cast END_PREDICTORS before 6764 comparing with GF_PREDICT_TAKEN. 6765 (gimple_get_lhs): Change code to enum gimple_code. 6766 (gimple_set_lhs): Likewise. 6767 * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE. 6768 * omp-low.c (find_omp_clause): Change kind parameter to enum 6769 omp_clause_code. 6770 * tree-flow.h (find_omp_clause): Update declaration. 6771 * regrename.c (clear_dead_regs): Change kind parameter to enum 6772 reg_note. 6773 * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than 6774 GET_MODE. 6775 * see.c (see_get_extension_data): Change return type to enum 6776 entry_type. Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to 6777 SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF. 6778 (see_gen_normalized_extension): Change extension_code parameter to 6779 enum entry_type. 6780 (see_seek_pre_extension_expr): Change extension_code to enum 6781 entry_type. 6782 (see_merge_one_def_extension): Likewise. 6783 (see_handle_relevant_defs): Likewise. 6784 (see_handle_relevant_uses): Likewise. 6785 (see_analyze_one_def): Likewise. 6786 * tree-cfg.c (need_fake_edge_p): Compare gimple code with 6787 GIMPLE_ASM rather than ASM_EXPR. 6788 * tree-ssa-alias.c (is_escape_site): Compare gimple code with 6789 GIMPLE_RETURN rather than RETURN_EXPR. 6790 * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code. 6791 (evaluate_stmt): Likewise. 6792 * tree-vect-analyze.c (vect_analyze_operations): Change relevance 6793 to enum vect_relevant. 6794 (vect_mark_stmts_to_be_vectorized): Change assertion to not 6795 compare gimple codes with tree codes. 6796 67972008-09-04 Paul Brook <paul@codesourcery.com> 6798 6799 * config/arm/arm.c (arm_size_rtx_costs): Call cost function. 6800 68012008-09-04 Bernd Schmidt <bernd.schmidt@analog.com> 6802 6803 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null 6804 pointer check lost in the recent no-unit-at-a-time patch. 6805 68062008-09-04 Jan Hubicka <jh@suse.cz> 6807 6808 PR middle-end/37343 6809 * tree-switch-conversion.c (check_final_bb): Accept only IP 6810 invariants. 6811 68122008-09-04 Jan Hubicka <jh@suse.cz> 6813 6814 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges): 6815 Break out from ... 6816 (vrp_evaluate_conditional_warnv_with_ops): ... this one. Add 6817 using_ranges argument. 6818 (vrp_evaluate_conditional): Avoid bogus warning for type range. 6819 (vrp_visit_cond_stmt): Update call of 6820 vrp_evaluate_conditional_warnv_with_ops 6821 68222008-09-04 Jan Hubicka <jh@suse.cz> 6823 6824 PR tree-optimization/37345 6825 PR tree-optimization/37358 6826 PR tree-optimization/37357 6827 * tree.c (build_function_type_skip_args): Build distinct type copy; 6828 set TYPE_CONTEXT. 6829 (build_function_decl_skip_args): Set type of new decl not orig decl; 6830 clear DECL_VINDEX for methods turned into functions. 6831 68322008-09-04 Nick Clifton <nickc@redhat.com> 6833 6834 * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check. 6835 * configure: Regenerate. 6836 * config.in: Regenerate. 6837 * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an 6838 alignment field, if it is supported. 6839 68402008-09-04 Kai Tietz <kai.tietz@onevision.com> 6841 6842 * config/i386/t-mingw32 (SHLIB_LC): Change order of import 6843 libraries. 6844 68452008-09-03 David Edelsohn <edelsohn@gnu.org> 6846 6847 * config/rs6000/rs6000.c (processor_target_table): Do not 6848 enable VMX for POWER6. 6849 68502008-09-03 Anton Blanchard <anton@samba.org> 6851 6852 * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not 6853 emit memory barrier before operation. 6854 68552008-09-03 John David Anglin <dave.anglin@nrc.cnrc.gc.ca> 6856 6857 PR testsuite/37325 6858 * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call 6859 default_elf_asm_output_external. 6860 68612008-09-03 Jeff Law <law@redhat.com> 6862 6863 * h8300.c (expand_a_shift): Avoid invalid RTL sharing. 6864 68652008-09-03 Richard Henderson <rth@redhat.com> 6866 6867 * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move 6868 memory barrier to below the test-and-set. 6869 (alpha_split_lock_test_and_set_12): Likewise. 6870 68712008-09-03 Vladimir Makarov <vmakarov@redhat.com> 6872 6873 PR rtl-opt/37243 6874 6875 * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to 6876 all_allocnos. 6877 6878 * ira-color.c (print_loop_title): Use all_allocnos. 6879 (color_pass): Ditto. Don't add border_allocnos. Check that 6880 subloop allocno in the correspdoning bitmap all_allocnos. 6881 6882 * ira-emit.c (change_loop): Use all_allocnos. 6883 6884 * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto. 6885 (ira_create_allocno): Set up all_allocnos bit for the created allocno. 6886 (create_cap_allocno): Remove setting mentioned_allocnos. 6887 (create_insn_allocnos): Ditto. 6888 (remove_unnecessary_allocnos): Use all_allocnos. 6889 (check_allocno_creation): Check that allocnos are in the 6890 corresponding bitmap all_allocnos. 6891 68922008-09-03 Vladimir Makarov <vmakarov@redhat.com> 6893 6894 PR rtl-opt/37243 6895 6896 * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New. 6897 (process_regs_for_copy): Process subregs. Refine check when cost 6898 is taken into account in ira-costs.c. 6899 (process_reg_shuffles): Use REG_SUBREG_P. 6900 (add_insn_allocno_copies): Ditto. Ignore modes. 6901 6902 * ira-color.c (conflict_allocno_vec): New. 6903 (COST_HOP_DIVISOR): New macro. 6904 (update_copy_costs_1): Use it. 6905 (update_conflict_hard_regno_costs): New function. 6906 (assign_hard_reg): Use it. 6907 (ira_color): Allocate and free conflict_allocno_vec. 6908 69092008-09-03 Vladimir Makarov <vmakarov@redhat.com> 6910 6911 PR rtl-opt/37296 6912 6913 * ira-int.h (ira_sort_insn_chain): Remove. 6914 6915 * ira.c (basic_block_order_nums, chain_insn_order, 6916 chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove. 6917 (ira): Don't call ira_sort_insn_chain. 6918 6919 * reload1.c (reload): Don't call ira_sort_insn_chain. 6920 69212008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com> 6922 6923 PR middle-end/37293 6924 * cgraphunit.c (update_call_expr): Remove eh regions from statements 6925 which become non throw. 6926 (cgraph_function_versioning): Also clear DECL_WEAK. Call 6927 update_call_expr after updating the flags on the decl. 6928 69292008-09-03 Jan Hubicka <jh@suse.cz> 6930 6931 PR tree-optimization/37315 6932 * cgraph.c (cgraph_create_edge): Use gimple_has_body_p. 6933 * cgraphunit.c (verify_cgraph_node): drop gimple_body check. 6934 (cgraph_analyze_functions): Use node->analyzed 6935 (cgraph_mark_functions_to_output): Likewise. 6936 (cgraph_expand_function): All functions can be released after 6937 expanding. 6938 (cgraph_optimize): Use gimple_has_body_p. 6939 * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag. 6940 (cgraph_decide_inlining_incrementally): Likewise. 6941 (inline_transform): Inline transform. 6942 * tree-inline.c (initialize_cfun): Do now shallow copy structure; 6943 copy fields needed. 6944 (inlinable_function_p): Drop gimple_body check. 6945 (expand_call_inline): Use gimple_has_body_p. 6946 * gimple.c (gimple_has_body_p): New. 6947 * gimple.h (gimple_has_body_p): Add prototype. 6948 * tree-cfg.c (execute_build_cfg): Remove gimple_body. 6949 (dump_function_to_file): Use gimple_has_body_p check. 6950 69512008-09-03 Jakub Jelinek <jakub@redhat.com> 6952 6953 PR c++/37346 6954 * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has 6955 substatements. 6956 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL. 6957 69582008-09-03 Bernd Schmidt <bernd.schmidt@analog.com> 6959 6960 From Michael Frysinger <michael.frysinger@analog.com> 6961 * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524, 6962 bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549. Add 0.2 6963 for bf538. 6964 69652008-09-03 Hari Sandanagobalane <hariharan@picochip.com> 6966 6967 Add picoChip port. 6968 * doc/extend.texi: Document picoChip builtin functions. 6969 * doc/invoke.texi: Document picoChip options. 6970 * doc/contrib.texi: Add picoChip contribution. 6971 * doc/md.texi: Document picoChip constraints. 6972 * config.gcc: Add picochip-*-*. 6973 * config/picochip/: Add new port. 6974 69752008-09-03 Richard Guenther <rguenther@suse.de> 6976 6977 PR tree-optimization/37328 6978 * tree-sra.c (sra_build_assignment): Gimplify properly. 6979 (generate_copy_inout): Take the correct stmt as definition, 6980 remove bogus assert. 6981 69822008-09-03 Bernd Schmidt <bernd.schmidt@analog.com> 6983 6984 * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit 6985 attributes. 6986 6987 From Michael Frysinger <michael.frysinger@analog.com> 6988 * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning. 6989 69902008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net> 6991 6992 * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined. 6993 (__gthread_setspecific): Revert 2008-08-31 change to 6994 __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API case. 6995 69962008-09-02 Aldy Hernandez <aldyh@redhat.com> 6997 6998 * diagnostic.c (error_at): New. 6999 * toplev.h (error_at): New prototype. 7000 * c-typeck.c (build_array_ref): Call error_at instead of error. 7001 Pass location to pedwarn. 7002 70032008-09-02 Adam Nemet <anemet@caviumnetworks.com> 7004 7005 * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused. 7006 70072008-09-02 Jakub Jelinek <jakub@redhat.com> 7008 7009 * dwarf2out.c (tree_add_const_value_attribute): Only handle 7010 VAR_DECL and CONST_DECL. 7011 70122008-09-02 H.J. Lu <hongjiu.lu@intel.com> 7013 Jakub Jelinek <jakub@redhat.com> 7014 7015 * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed. 7016 (setup_incoming_varargs_64): Assume cum != NULL. Set/check 7017 ix86_varargs_gpr_size and ix86_varargs_fpr_size. Use 7018 ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX. 7019 Don't set ix86_save_varrargs_registers. 7020 (ix86_setup_incoming_varargs): Assume cum != NULL. 7021 (ix86_va_start): Check ix86_varargs_gpr_size and 7022 ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and 7023 cfun->va_list_fpr_size, respectively. Subtract 8*X86_64_REGPARM_MAX 7024 from frame pointer if ix86_varargs_gpr_size == 0. 7025 (ix86_compute_frame_layout): Updated. 7026 * config/i386/i386.h (ix86_save_varrargs_registers): Removed. 7027 (ix86_varargs_gpr_size): Define. 7028 (ix86_varargs_fpr_size): Likewise. 7029 (machine_function): Remove save_varrargs_registers. 7030 Add varargs_gpr_size and varargs_fpr_size. 7031 70322008-09-02 Jakub Jelinek <jakub@redhat.com> 7033 7034 * config/alpha/alpha.c (va_list_skip_additions, 7035 alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify. 7036 (alpha_gimplify_va_arg): Call unshare_expr on second use of 7037 offset_field. 7038 7039 PR tree-optimization/36766 7040 * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing 7041 for already removed basic blocks. 7042 7043 PR target/36332 7044 * real.c (real_maxval): Clear a lower bit to make real_maxval 7045 match get_max_float for IBM long double format. 7046 70472008-09-02 Andreas Schwab <schwab@suse.de> 7048 7049 * configure.ac: Use m4_quote to quote the expansion of m4_do. 7050 * configure: Regenerate. 7051 70522008-09-02 Richard Sandiford <rdsandiford@googlemail.com> 7053 7054 * simplify-rtx.c (simplify_binary_operation_1): Check for CONST, 7055 SYMBOL_REF and LABEL_REF when applying plus_constant, instead of 7056 checking for a non-VOID CONSTANT_P. 7057 70582008-09-02 Jan Hubicka <jh@suse.cz> 7059 7060 * predict.c (pass_strip_predict_hints): Avoid bugs dump file. 7061 * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and 7062 sdiv_pow2_cheap 7063 70642008-09-02 H.J. Lu <hongjiu.lu@intel.com> 7065 7066 * expr.c (emit_group_store): Don't assert stack temp mode size. 7067 70682008-09-02 Sebastian Pop <sebastian.pop@amd.com> 7069 Tobias Grosser <grosser@fim.uni-passau.de> 7070 Jan Sjodin <jan.sjodin@amd.com> 7071 Harsha Jagasia <harsha.jagasia@amd.com> 7072 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 7073 Konrad Trifunovic <konrad.trifunovic@inria.fr> 7074 Adrien Eliche <aeliche@isty.uvsq.fr> 7075 7076 Merge from graphite branch. 7077 * graphite.c: New. 7078 * graphite.h: New. 7079 * tree-loop-linear.c (perfect_loop_nest_depth): Export. 7080 * doc/invoke.texi (-floop-block, -floop-interchange, 7081 -floop-strip-mine): Document new flags. 7082 * tree-into-ssa.c (gimple_vec): Moved... 7083 * tree-loop-distribution.c (rdg_component): Moved... 7084 * cfgloopmanip.c: Include tree-flow.h. 7085 (update_dominators_in_loop): New. 7086 (create_empty_if_region_on_edge): New. 7087 (create_empty_loop_on_edge): New. 7088 (loopify): Use update_dominators_in_loop. 7089 * tree-pass.h (pass_graphite_transforms): Declared. 7090 * configure: Regenerate. 7091 * tree-phinodes.c (make_phi_node): Export. 7092 (add_phi_node_to_bb): New, split from create_phi_node. 7093 * tree-chrec.c (for_each_scev_op): New. 7094 * tree-chrec.h (for_each_scev_op): Declared. 7095 * tree-ssa-loop-ivopts.c (get_phi_with_result): New. 7096 (remove_statement): Call get_phi_with_result. 7097 * config.in (HAVE_cloog): Undef. 7098 * gdbinit.in (pgg): New. 7099 * timevar.def (TV_GRAPHITE_TRANSFORMS): New. 7100 * tree-ssa-loop.c (graphite_transforms): New. 7101 (gate_graphite_transforms): New. 7102 (pass_graphite_transforms): New. 7103 * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC, 7104 HAVE_cloog): Defined. 7105 * tree-vectorizer.c (rename_variables_in_bb): Export. 7106 * tree-data-ref.c (dr_may_alias_p): Export. 7107 (stmt_simple_memref_p): New. 7108 (find_data_references_in_stmt): Export. 7109 (find_data_references_in_loop): Export. 7110 (create_rdg_edge_for_ddr): Initialize RDGE_RELATION. 7111 (create_rdg_edges_for_scalar): Initialize RDGE_RELATION. 7112 (create_rdg_vertices): Export. 7113 (build_empty_rdg): New. 7114 (build_rdg): Call build_empty_rdg. Free dependence_relations. 7115 * tree-data-ref.h (rdg_component): ... here. 7116 (scop_p): New. 7117 (struct data_reference): Add a field scop. 7118 (DR_SCOP): New. 7119 (find_data_references_in_loop): Declared. 7120 (find_data_references_in_stmt): Declared. 7121 (create_rdg_vertices): Declared. 7122 (dr_may_alias_p): Declared. 7123 (stmt_simple_memref_p): Declared. 7124 (struct rdg_edge): Add a field ddr_p relation. 7125 (build_empty_rdg): Declared. 7126 * lambda.h (lambda_matrix): Declare a VEC of. 7127 (find_induction_var_from_exit_cond): Declared. 7128 (lambda_vector_compare): New. 7129 * common.opt (fgraphite, floop-strip-mine, 7130 floop-interchange, floop-block): New flags. 7131 * lambda-code.c (find_induction_var_from_exit_cond): Export. 7132 * cfgloop.c (is_loop_exit): New. 7133 * cfgloop.h (is_loop_exit): Declared. 7134 (create_empty_if_region_on_edge): Declared. 7135 (create_empty_loop_on_edge): Declared. 7136 * tree-flow.h (add_phi_node_to_bb): Declared. 7137 (make_phi_node): Declared. 7138 (rename_variables_in_bb): Declared. 7139 (perfect_loop_nest_depth): Declared. 7140 (graphite_transform_loops): Declared. 7141 * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H. 7142 (graphite.o-warn): Add -Wno-error. 7143 (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared. 7144 (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS. 7145 (INCLUDES): Add PPLINC, CLOOGINC. 7146 (OBJS-common): Add graphite.o. 7147 (graphite.o): Add rule. 7148 * gimple.h (gimple_vec): ... here. 7149 * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR. 7150 * passes.c (init_optimization_passes): Schedule 7151 pass_graphite_transforms. 7152 71532008-09-02 Samuel Tardieu <sam@rfc1149.net> 7154 7155 PR target/37283 7156 * opts.c (decode_options): Move processing of -fno-unit-at-a-time 7157 and -fno-toplevel-reorder after handle_options. 7158 71592008-09-02 Paul Brook <paul@codesourcery.com> 7160 7161 * config/arm/arm.c (arm_tune_cortex_a9): Define. 7162 (arm_override_options): Set arm_tune_cortex_a9. 7163 (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9. 7164 (arm_issue_rate): Handle cortexa9. 7165 * config/arm/arm.h (arm_tune_cortex_a9): Declare. 7166 * config/arm/arm-cores.def: Add cortex-a9. 7167 * config/arm/arm-tune.md: Regenerate. 7168 * config/arm/arm.md: Include cortex-a9.md. 7169 (generic_sched, generic_vfp): Add cortexa9. 7170 * config/arm/cortex-a9.md: New file. 7171 71722008-09-02 Richard Guenther <rguenther@suse.de> 7173 7174 PR tree-optimization/37327 7175 * tree-vrp.c (register_new_assert_for): Make sure to not have 7176 TREE_OVERFLOW set on the bound. 7177 71782008-09-02 Alexander Monakov <amonakov@ispras.ru> 7179 7180 Fixed typo in date of the 2008-09-01 MOVE_RATIO commit. 7181 7182 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1. 7183 * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize 7184 spec_info->mask. 7185 71862008-09-02 Victor Kaplansky <victork@il.ibm.com> 7187 7188 * gcc/config/spu/spu.md (divdf3): Removed. 7189 71902008-09-02 Jakub Jelinek <jakub@redhat.com> 7191 7192 PR tree-optimization/37095 7193 * cgraph.c (cgraph_node): When creating new cgraph node after 7194 assembler_name_hash has been populated, record it in the hash 7195 table. 7196 71972008-09-01 Paul Brook <paul@codesourcery.com> 7198 7199 * doc/invoke.texi: Document -mword-relocations. 7200 * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define. 7201 * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define. 7202 * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define. 7203 * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair. 7204 (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM. 7205 (arm_emit_movpair): New function. 7206 (arm_print_operand <c>): Handle sybolic addresses. 7207 * config/arm/arm.h (TARGET_USE_MOVT): Define. 7208 (TARGET_DEFAULT_WORD_RELOCATIONS): Define. 7209 * config/arm/arm-protos.h (arm_emit_movpair): Add prototype. 7210 * config/arm/arm.opt: Add -mword-relocations. 7211 * config/arm/arm.md (movsi): Use arm_emit_movpair. 7212 (arm_movt, arm_movw): New. 7213 72142008-09-01 Paul Brook <paul@codesourcery.com> 7215 7216 * config/arm/arm.c (arm_override_options): Set arm_abi earlier. 7217 Allow Interworking on ARMv4 EABI based targets. 7218 * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define. 7219 (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC. 7220 72212008-09-01 Paul Brook <paul@codesourcery.com> 7222 7223 * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for 7224 optimized LT0 test. Remove optimization for GT. 7225 72262008-09-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 7227 7228 * pa64-hpux.h (LIB_SPEC): Link against librt when building static 7229 openmp applications. 7230 * pa-hpux11.h (LIB_SPEC): Likewise. 7231 7232 * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS 7233 is defined. 7234 72352008-09-01 Jan Hubicka <jh@suse.cz> 7236 7237 * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is 7238 present, use only counts; when guessed use only frequencies. 7239 (estimate_bb_frequencies): Use function_frequency. 7240 * profile.c (compute_branch_probabilities): Exit early when 7241 profile reading failed. Set profile_status. 7242 (branch_prob): Do not set profile_status. 7243 72442008-09-01 Aldy Hernandez <aldyh@redhat.com> 7245 7246 * tree.c (protected_set_expr_location): New. 7247 * tree.h (protected_set_expr_location): New prototype. 7248 * c-tree.h (build_array_ref): Add argument. 7249 (parser_build_unary_op): Same. 7250 * c-typeck.c (build_indirect_ref): Handle new location argument. 7251 (build_array_ref): Same. 7252 (parser_build_unary_op): Same. 7253 * gimplify.c (gimplify_asm_expr): Set input_location before calling 7254 error. 7255 * c-omp.c (c_finish_omp_atomic): Pass location when calling 7256 build_indirect_ref. 7257 * c-common.c (finish_label_address_expr): Handle new location argument. 7258 * c-common.h (build_indirect_ref): Add argument. 7259 (finish_label_address_expr): Same. 7260 * c-parser.c (c_parser_unary_expression): Pass location to build 7261 functions. 7262 (c_parser_postfix_expression): Same. 7263 72642008-09-01 Paul Brook <paul@codesourcery.com> 7265 7266 * config/arm/arm.md: Include cortex-r4f.md. 7267 (attr fpu): Update type list. 7268 (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts, 7269 fconstd, fcmps and fcmpd. 7270 (attr tune_cortexr4): Define. 7271 (attr generic_sched, attr generic_vfp): Use tune_cortexr4. 7272 * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd, 7273 fconsts, fconstd, fcmps and fcmpd. Use them in insn patterns. 7274 * config/arm/arm.c (arm_issue_rate): Add cortexr4f. 7275 * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types. 7276 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub, 7277 cortex_a8_vfp_farith: Ditto. 7278 * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto. 7279 * config/arm/cortex-r4.md: Use tune_cortexr4. 7280 * config/arm/cortex-r4f.md: New file. 7281 72822008-09-01 Richard Guenther <rguenther@suse.de> 7283 7284 PR tree-optimization/37305 7285 * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on 7286 the result of constant conversions. 7287 (fold_gimple_assign): Likewise. 7288 72892008-09-01 Andrey Belevantsev <abel@ispras.ru> 7290 7291 * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with 7292 #ifdef ENABLE_CHECKING. 7293 72942008-09-01 Andrey Belevantsev <abel@ispras.ru> 7295 7296 * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING. 7297 * sched-int.h (print_insn, print_pattern, print_value): Declare also 7298 when !INSN_SCHEDULING. 7299 73002008-09-01 Andreas Schwab <schwab@suse.de> 7301 7302 * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update. 7303 73042008-09-01 Paul Brook <paul@codesourcery.com> 7305 7306 * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract. 7307 73082008-09-01 Jan Hubicka <jh@suse.cz> 7309 7310 * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO. 7311 7312 * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P): 7313 Pass speed operand. 7314 * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update. 7315 * gimplify.c (gimplify_init_constructor): Add speed operand. 7316 * tree-sra.c (decide_block_copy): Likewise. 7317 * tree-inline.c (estimate_move_cost): Likewise. 7318 * config/alpha/alpha.h (MOVE_RATIO): Update. 7319 * config/frv/frv.c (MOVE_RATIO): Update. 7320 * config/spu/spu.h (MOVE_RATIO): Update. 7321 * config/sparc/sparc.h (MOVE_RATIO): Update. 7322 * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update. 7323 * config/m68hc11/m68hc11.h (MOVE_RATIO): Update. 7324 * config/cris/cris.h (MOVE_RATIO): Update. 7325 * config/mn10300/mn10300.h (MOVE_RATIO): Update. 7326 * config/arm/arm.h (MOVE_RATIO): Update. 7327 * config/pa/pa.md: Update uses of MOVE_RATIO 7328 * config/pa/pa.h (MOVE_RATIO): Update. 7329 * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES, 7330 CLEAR_RATIO, SET_RATIO): Update. 7331 * config/h8300/h8300.h (MOVE_RATIO): Update. 7332 * config/v850/v850.h (MOVE_RATIO): Update. 7333 * config/bfin/bfin.h (MOVE_RATIO): Update. 7334 73352008-08-31 Andrey Belevantsev <abel@ispras.ru> 7336 Dmitry Melnik <dm@ispras.ru> 7337 Dmitry Zhurikhin <zhur@ispras.ru> 7338 Alexander Monakov <amonakov@ispras.ru> 7339 Maxim Kuvyrkov <maxim@codesourcery.com> 7340 7341 * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c, 7342 sel-sched-dump.c, sel-sched-ir.c: New files. 7343 * Makefile.in (OBJS-common): Add selective scheduling object files. 7344 (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries. 7345 (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries. 7346 (sched-vis.o): Add dependency on $(INSN_ATTR_H). 7347 * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes. 7348 * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions. 7349 (make_forwarder_block): Update loop latch if we have redirected 7350 the loop latch edge. 7351 * cfgloop.c (get_loop_body_in_custom_order): New function. 7352 * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field. 7353 (CP_FALLTHRU_PREHEADERS): Likewise. 7354 (get_loop_body_in_custom_order): Declare. 7355 * cfgloopmanip.c (has_preds_from_loop): New. 7356 (create_preheader): Honor CP_FALLTHRU_PREHEADERS. 7357 Assert that the preheader edge will be fall thru when it is set. 7358 * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining, 7359 fsel-sched-pipelining-outer-loops, fsel-sched-renaming, 7360 fsel-sched-substitution, fselective-scheduling): New flags. 7361 * cse.c (hash_rtx_cb): New. 7362 (hash_rtx): Use it. 7363 * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt, 7364 sel_sched_insn_cnt): New counters. 7365 * final.c (compute_alignments): Export. Free dominance 7366 info after loop_optimizer_finalize. 7367 * genattr.c (main): Output maximal_insn_latency prototype. 7368 * genautomata.c (output_default_latencies): New. 7369 Factor its code from ... 7370 (output_internal_insn_latency_func): ... here. 7371 (output_internal_maximal_insn_latency_func): New. 7372 (output_maximal_insn_latency_func): New. 7373 * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally. 7374 (struct hard_reg_set_iterator): New. 7375 (hard_reg_set_iter_init, hard_reg_set_iter_set, 7376 hard_reg_set_iter_next): New functions. 7377 (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro. 7378 * lists.c (remove_free_INSN_LIST_node, 7379 remove_free_EXPR_LIST_node): New functions. 7380 * loop-init.c (loop_optimizer_init): When 7381 LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when 7382 calling create_preheaders. 7383 (loop_optimizer_finalize): Do not verify flow info after reload. 7384 * recog.c (validate_replace_rtx_1): New parameter simplify. 7385 Default it to true. Update all uses. Factor out simplifying 7386 code to ... 7387 (simplify_while_replacing): ... this new function. 7388 (validate_replace_rtx_part, 7389 validate_replace_rtx_part_nosimplify): New. 7390 * recog.h (validate_replace_rtx_part, 7391 validate_replace_rtx_part_nosimplify): Declare. 7392 * rtl.c (rtx_equal_p_cb): New. 7393 (rtx_equal_p): Use it. 7394 * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare. 7395 (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node, 7396 debug_bb_n_slim, debug_bb_slim, print_rtl_slim): Likewise. 7397 * vecprim.h: Add a vector type for unsigned int. 7398 * haifa-sched.c: Include vecprim.h and cfgloop.h. 7399 (issue_rate, sched_verbose_param, note_list, dfa_state_size, 7400 ready_try, cycle_issued_insns, spec_info): Make global. 7401 (readyp): Initialize. 7402 (dfa_lookahead): New global variable. 7403 (old_max_uid, old_last_basic_block): Remove. 7404 (h_i_d): Make it a vector. 7405 (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work 7406 through HID macro. 7407 (after_recovery, adding_bb_to_current_region_p): 7408 New variables to handle correct insertion of the recovery code. 7409 (struct ready_list): Move declaration to sched-int.h. 7410 (rgn_n_insns): Removed. 7411 (rtx_vec_t): Move to sched-int.h. 7412 (find_insn_reg_weight): Remove. 7413 (find_insn_reg_weight1): Rename to find_insn_reg_weight. 7414 (haifa_init_h_i_d, haifa_finish_h_i_d): 7415 New functions to initialize / finalize haifa instruction data. 7416 (extend_h_i_d, init_h_i_d): Rewrite. 7417 (unlink_other_notes): Move logic to add_to_note_list. Handle 7418 selective scheduler. 7419 (ready_lastpos, ready_element, ready_sort, reemit_notes, 7420 find_fallthru_edge): Make global, remove static prototypes. 7421 (max_issue): Make global. Add privileged_n and state parameters. Use 7422 them. 7423 (extend_global, extend_all): Removed. 7424 (init_before_recovery): Add new param. Fix the handling of the case 7425 when we insert a recovery code before the EXIT which has a predecessor 7426 with a fallthrough edge to it. 7427 (create_recovery_block): Make global. Rename to 7428 sched_create_recovery_block. Update. 7429 (change_pattern): Rename to sched_change_pattern. Make global. 7430 (speculate_insn): Rename to sched_speculate_insn. Make global. 7431 Split haifa-specific functionality into ... 7432 (haifa_change_pattern): New static function. 7433 (sched_extend_bb): New static function. 7434 (sched_init_bbs): New function. 7435 (current_sched_info): Change type to struct haifa_sched_info. 7436 (insn_cost): Adjust for selective scheduling. 7437 (dep_cost_1): New function. Move logic from ... 7438 (dep_cost): ... here. 7439 (dep_cost): Use dep_cost_1. 7440 (contributes_to_priority_p): Use sched_deps_info instead of 7441 current_sched_info. 7442 (priority): Adjust to work with selective scheduling. Process the 7443 corner case when all dependencies don't contribute to priority. 7444 (rank_for_schedule): Use ds_weak instead of dep_weak. 7445 (advance_state): New function. Move logic from ... 7446 (advance_one_cycle): ... here. 7447 (add_to_note_list, concat_note_lists): New functions. 7448 (rm_other_notes): Make static. Adjust for selective scheduling. 7449 (remove_notes, restore_other_notes): New functions. 7450 (move_insn): Add two arguments. Update assert. Don't call 7451 reemit_notes. 7452 (choose_ready): Remove lookahead variable, use dfa_lookahead. 7453 Remove more_issue, max_points. Move the code to initialize 7454 max_lookahead_tries to max_issue. 7455 (schedule_block): Remove rgn_n_insns1 parameter. Don't allocate 7456 ready. Adjust use of move_insn. Call restore_other_notes. 7457 (luid): Remove. 7458 (sched_init, sched_finish): Move Haifa-specific initialization/ 7459 finalization to ... 7460 (haifa_sched_init, haifa_sched_finish): ... respectively. 7461 New functions. 7462 (setup_sched_dump): New function. 7463 (haifa_init_only_bb): New static function. 7464 (haifa_speculate_insn): New static function. 7465 (try_ready): Use haifa_* instead of speculate_insn and change_pattern. 7466 (extend_ready, extend_all): Remove. 7467 (sched_extend_ready_list, sched_finish_ready_list): New functions. 7468 (create_check_block_twin, add_to_speculative_block): Use 7469 haifa_insns_init instead of extend_global. Update to use new 7470 initialization functions. Change parameter. Factor out code from 7471 create_check_block_twin to ... 7472 (sched_create_recovery_edges) ... this new function. 7473 (add_block): Remove. 7474 (sched_scan_info): New. 7475 (extend_bb): Use sched_scan_info. 7476 (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New 7477 static functions for walking through scheduling region. 7478 (sched_luids): New vector variable to replace uid_to_luid. 7479 (luids_extend_insn): New function. 7480 (sched_max_luid): New variable. 7481 (luids_init_insn): New function. 7482 (sched_init_luids, sched_finish_luids): New functions. 7483 (insn_luid): New debug function. 7484 (sched_extend_target): New function. 7485 (haifa_init_insn): New static function. 7486 (sched_init_only_bb): New hook. 7487 (sched_split_block): New hook. 7488 (sched_split_block_1): New function. 7489 (sched_create_empty_bb): New hook. 7490 (sched_create_empty_bb_1): New function. 7491 (common_sched_info, ready): New global variables. 7492 (current_sched_info_var): Remove. 7493 (move_block_after_check): Use common_sched_info. 7494 (haifa_luid_for_non_insn): New static function. 7495 (init_before_recovery): Use haifa_init_only_bb instead of add_block. 7496 (increase_insn_priority): New. 7497 * modulo-sched.c (issue_rate): Remove static declaration. 7498 (sms_sched_info): Change type to haifa_sched_info. 7499 (sms_sched_deps_info, sms_common_sched_info): New variables. 7500 (setup_sched_infos): New. 7501 (sms_schedule): Initialize them. Call haifa_sched_init/finish. 7502 Do not call regstat_free_calls_crossed. 7503 (sms_print_insn): Use const_rtx. 7504 * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS, 7505 PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD, 7506 PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME, 7507 PARAM_SCHED_MEM_TRUE_DEP_COST): New. 7508 * sched-deps.c (sched_deps_info): New. Update all relevant uses of 7509 current_sched_info to use it. 7510 (enum reg_pending_barrier_mode): Move to sched-int.h. 7511 (h_d_i_d): New variable. Initialize to NULL. 7512 ({true, output, anti, spec, forward}_dependency_cache): Initialize 7513 to NULL. 7514 (estimate_dep_weak): Remove static declaration. 7515 (sched_has_condition_p): New function. Adjust users of 7516 sched_get_condition to use it instead. 7517 (conditions_mutex_p): Add arguments indicating which conditions are 7518 reversed. Use them. 7519 (sched_get_condition_with_rev): Rename from sched_get_condition. Add 7520 argument to indicate whether returned condition is reversed. Do not 7521 generate new rtx when condition should be reversed; indicate it by 7522 setting new argument instead. 7523 (add_dependence_list_and_free): Add deps parameter. 7524 Update all users. Do not free dependence list when 7525 deps context is readonly. 7526 (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly 7527 contexts. 7528 (remove_from_dependence_list, remove_from_both_dependence_lists): New. 7529 (remove_from_deps): New. Use the above functions. 7530 (cur_insn, can_start_lhs_rhs_p): New static variables. 7531 (add_or_update_back_dep_1): Initialize present_dep_type. 7532 (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set, 7533 haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep, 7534 haifa_note_dep): New functions implementing dependence hooks for 7535 the Haifa scheduler. 7536 (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep, 7537 note_dep): New functions. 7538 (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New 7539 functions. 7540 (init_deps): Initialize last_reg_pending_barrier and deps->readonly. 7541 (free_deps): Initialize deps->reg_last. 7542 (sched_analyze_reg, sched_analyze_1, sched_analyze_2, 7543 sched_analyze_insn): Update to use dependency hooks infrastructure 7544 and readonly contexts. 7545 (deps_analyze_insn): New function. Move part of logic from ... 7546 (sched_analyze): ... here. Also move some logic to ... 7547 (deps_start_bb): ... here. New function. 7548 (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with 7549 sel_sched_p. 7550 (sched_deps_init): New function. Move code from ... 7551 (init_dependency_caches): ... here. Remove. 7552 (init_deps_data_vector): New. 7553 (sched_deps_finish): New function. Move code from ... 7554 (free_dependency_caches): ... here. Remove. 7555 (init_deps_global, finish_deps_global): Adjust for use with 7556 selective scheduling. 7557 (get_dep_weak): Move logic to ... 7558 (get_dep_weak_1): New function. 7559 (ds_merge): Move logic to ... 7560 (ds_merge_1): New static function. 7561 (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions. 7562 (ds_get_max_dep_weak): New function. 7563 * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns. 7564 (n_insns): Rename to rgn_n_insns. 7565 (debug_ebb_dependencies): New function. 7566 (init_ready_list): Use it. 7567 (begin_schedule_ready): Use sched_init_only_bb. 7568 (ebb_print_insn): Indicate when an insn starts a new cycle. 7569 (contributes_to_priority, compute_jump_reg_dependencies, 7570 add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names. 7571 (add_block1): Remove to ebb_add_block. 7572 (ebb_sched_deps_info, ebb_common_sched_info): New variables. 7573 (schedule_ebb): Initialize them. Use remove_notes instead of 7574 rm_other_notes. Use haifa_local_init/finish. 7575 (schedule_ebbs): Use haifa_sched_init/finish. 7576 * sched-int.h: Include vecprim.h, remove rtl.h. 7577 (struct ready_list): Delete declaration. 7578 (sched_verbose_param, enum sched_pass_id_t, 7579 bb_vec_t, insn_vec_t, rtx_vec_t): New. 7580 (struct sched_scan_info_def): New structure. 7581 (sched_scan_info, sched_scan, sched_init_bbs, 7582 sched_init_luids, sched_finish_luids, sched_extend_target, 7583 haifa_init_h_i_d, haifa_finish_h_i_d): Declare. 7584 (struct common_sched_info_def): New. 7585 (common_sched_info, haifa_common_sched_info, 7586 sched_emulate_haifa_p): Declare. 7587 (sel_sched_p): New. 7588 (sched_luids): Declare. 7589 (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare. 7590 (sched_max_luid, insn_luid): Declare. 7591 (note_list, remove_notes, restore_other_notes, bb_note): Declare. 7592 (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes, 7593 print_insn, print_pattern, print_value, haifa_classify_insn, 7594 sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state, 7595 setup_sched_dump, sched_init, sched_finish, 7596 sel_insn_is_speculation_check): Export. 7597 (struct ready_list): Move from haifa-sched.c. 7598 (ready_try, ready, max_issue): Export. 7599 (ebb_compute_jump_reg_dependencies, find_fallthru_edge, 7600 sched_init_only_bb, sched_split_block, sched_split_block_1, 7601 sched_create_empty_bb, sched_create_empty_bb_1, 7602 sched_create_recovery_block, sched_create_recovery_edges): Export. 7603 (enum reg_pending_barrier_mode): Export. 7604 (struct deps): New fields `last_reg_pending_barrier' and `readonly'. 7605 (deps_t): New. 7606 (struct sched_info): Rename to haifa_sched_info. Use const_rtx for 7607 print_insn field. Move add_block and fix_recovery_cfg to 7608 common_sched_info_def. Move compute_jump_reg_dependencies, 7609 use_cselib ... 7610 (struct sched_deps_info_def): ... this new structure. 7611 (sched_deps_info): Declare. 7612 (struct spec_info_def): Remove weakness_cutoff, add 7613 data_weakness_cutoff and control_weakness_cutoff. 7614 (spec_info): Declare. 7615 (struct _haifa_deps_insn_data): Split from haifa_insn_data. Add 7616 dep_count field. 7617 (struct haifa_insn_data): Rename to struct _haifa_insn_data. 7618 (haifa_insn_data_def, haifa_insn_data_t): New typedefs. 7619 (current_sched_info): Change type to struct haifa_sched_info. 7620 (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs. 7621 (h_d_i_d): New variable. 7622 (HDID): New accessor macro. 7623 (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *. 7624 (HID): New accessor macro. Rewrite h_i_d accessor macros through HID 7625 and HDID. 7626 (IS_SPECULATION_CHECK_P): Update for selective scheduler. 7627 (enum SCHED_FLAGS): Update for selective scheduler. 7628 (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL. 7629 (init_dependency_caches, free_dependency_caches): Delete declarations. 7630 (deps_analyze_insn, remove_from_deps, get_dep_weak_1, 7631 estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak, 7632 ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init, 7633 sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use, 7634 haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb, 7635 ds_to_dt): Export. 7636 (rm_other_notes): Delete declaration. 7637 (schedule_block): Remove one argument. 7638 (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort, 7639 ready_element, ready_lastpos, sched_extend_ready_list, 7640 sched_finish_ready_list, sched_change_pattern, sched_speculate_insn, 7641 concat_note_lists): Export. 7642 (struct region): Move from sched-rgn.h. 7643 (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn, 7644 RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB, 7645 BLOCK_TO_BB, CONTAINING_RGN): Export. 7646 (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise. 7647 (current_nr_blocks, current_blocks, target_bb): Likewise. 7648 (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init, 7649 sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies, 7650 sched_rgn_local_init, extend_regions, 7651 rgn_make_new_region_out_of_new_block, compute_priorities, 7652 debug_rgn_dependencies, free_rgn_deps, contributes_to_priority, 7653 extend_rgns, deps_join rgn_setup_common_sched_info, 7654 rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot, 7655 dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export. 7656 (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority, 7657 increase_insn_priority): Likewise. 7658 * sched-rgn.c: Include sel-sched.h. 7659 (ref_counts): New static variable. Use it ... 7660 (INSN_REF_COUNT): ... here. Rewrite and move closer to uses. 7661 (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro. 7662 (sched_is_disabled_for_current_region_p): Delete static declaration. 7663 (struct region): Move to sched-int.h. 7664 (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn, 7665 ebb_head): Define and initialize. 7666 (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB, 7667 BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions, 7668 BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to 7669 sched-int.h. 7670 (find_single_block_region): Add new argument to indicate that EBB 7671 regions should be constructed. 7672 (debug_live): Delete declaration. 7673 (current_nr_blocks, current_blocks, target_bb): 7674 Remove static qualifiers. 7675 (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete 7676 declaration. 7677 (init_regions): Delete declaration. 7678 (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot, 7679 rgn_estimate_number_of_insns): New. 7680 (too_large): Use estimate_number_of_insns. 7681 (haifa_find_rgns): New. Move the code from ... 7682 (find_rgns): ... here. Call either sel_find_rgns or haifa_find_rgns. 7683 (free_trg_info): New. 7684 (compute_trg_info): Allocate candidate tables here instead of ... 7685 (init_ready_list): ... here. 7686 (rgn_print_insn): Use const_rtx. 7687 (contributes_to_priority, extend_regions): Delete static declaration. 7688 (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names. 7689 (add_block1): Rename to rgn_add_block. 7690 (debug_rgn_dependencies): Delete static qualifier. 7691 (new_ready): Use sched_deps_info. Simplify. 7692 (rgn_common_sched_info, rgn_const_sched_deps_info, 7693 rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info): 7694 New. 7695 (region_sched_info): Rename to rgn_const_sched_info. 7696 (deps_join): New, extracted from ... 7697 (propagate_deps): ... here. 7698 (compute_block_dependences, debug_dependencies): Update for selective 7699 scheduling. 7700 (free_rgn_deps, compute_priorities): New functions. 7701 (sched_rgn_init, sched_rgn_finish, rgn_setup_region, 7702 sched_rgn_compute_dependencies): New functions. 7703 (schedule_region): Use them. 7704 (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish, 7705 rgn_setup_common_sched_info, rgn_setup_sched_infos): 7706 New functions. 7707 (schedule_insns): Call new functions that were split out. 7708 (rgn_make_new_region_out_of_new_block): New. 7709 (get_rgn_sched_max_insns_priority): New. 7710 (rest_of_handle_sched, rest_of_handle_sched2): Call selective 7711 scheduling when appropriate. 7712 * sched-vis.c: Include insn-attr.h. 7713 (print_value, print_pattern): Make global. 7714 (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions. 7715 * target-def.h (TARGET_SCHED_ADJUST_COST_2, 7716 TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT, 7717 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT, 7718 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS, 7719 TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target 7720 hooks. Initialize them to 0. 7721 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK. 7722 * target.h (struct gcc_target): Add them. Rename gen_check field to 7723 gen_spec_check. 7724 * flags.h (sel_sched_switch_set): Declare. 7725 * opts.c (sel_sched_switch_set): New variable. 7726 (decode_options): Unset flag_sel_sched_pipelining_outer_loops if 7727 pipelining is disabled from command line. 7728 (common_handle_option): Record whether selective scheduling is 7729 requested from command line. 7730 * doc/invoke.texi: Document new flags and parameters. 7731 * doc/tm.texi: Document new target hooks. 7732 * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to 7733 ia64_gen_check. 7734 (dfa_state_size): Do not declare locally. 7735 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0. 7736 * config/rs6000/rs6000.c (rs6000_init_sched_context, 7737 rs6000_alloc_sched_context, rs6000_set_sched_context, 7738 rs6000_free_sched_context): New functions. 7739 (struct _rs6000_sched_context): New. 7740 (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective 7741 scheduling. 7742 (rs6000_sched_finish): Do not run for selective scheduling. 7743 77442008-08-31 Jan Hubicka <jh@suse.cz> 7745 7746 * frv.c (frv_rtx_costs): Update forward declaration. 7747 * spu.c (spu_rtx_costs): Likewise. 7748 * pdp11.c: Include df.h 7749 (pdp11_output_function_epilogue): Use df_set_regs_ever_live. 7750 * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG. 7751 (m68hc11_rtx_costs_1): Fix call of rtx_cost. 7752 * iq2000.c (iq2000_address_cost): Add speed argument. 7753 (iq2000_rtx_costs): Likewise. 7754 * mn10300.c (mn10300_address_cost_1): Remove speed argument; 7755 update call of mn10300_address_cost. 7756 * mcore.c: Include df.h 7757 (mcore_rtx_costs): Update prototype. 7758 * score3.c: Include df.h 7759 (score3_rtx_costs): Remove speed argument. 7760 * score7.c: Include df.h 7761 (score7_address_cost): Remove speed argument. 7762 * score-protos.h (score_address_cost): Update prototype. 7763 * score.c: Include df.h 7764 (score_rtx_costs): Update call of costs functions. 7765 * v850.c (v850_rtx_costs): Add bool argument. 7766 77672008-08-31 Hans-Peter Nilsson <hp@axis.com> 7768 7769 * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs. 7770 77712008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 7772 7773 * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2. 7774 * config/i386/gthr-win32.c (__gthread_setspecific): Same. 7775 77762008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 7777 7778 * mkmap-flat.awk: Add option pe_dll. 7779 * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s. 7780 * config/i386/t-cygwin (SHLIB_LC): Add. 7781 * config/i386/t-mingw32 (SHLIB_LC): Add. 7782 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New. 7783 (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC. 7784 (LINK_SPEC): Support libgcc_s. 7785 (LIBGCC_SPEC): Support libgcc_s. 7786 (LIBGCC_SONAME): New. 7787 77882008-08-31 Jan Hubicka <jh@suse.cz> 7789 7790 * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit 7791 mistakely had old version of patch. 7792 7793 * ipa-cp.c (ipcp_need_original_clone_p): Remove. 7794 (ipcp_estimate_growth): New. 7795 (ipcp_insert_stage): Use ipcp_estimate_growth. 7796 * profile.c (branch_prob): When reading failed, do not consider 7797 profile as read. 7798 77992008-08-31 Jan Hubicka <jh@suse.cz> 7800 7801 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that 7802 loop is optimized for speed. 7803 78042008-08-31 Richard Guenther <rguenther@suse.de> 7805 7806 PR middle-end/37289 7807 * fold-const.c (fold_binary): Retain conversions in folding 7808 ~A + 1 to -A. 7809 78102008-08-31 Jan Hubicka <jh@suse.cz> 7811 7812 * postreload-gcse.c (eliminate_partially_redundant_loads): 7813 Use optimize_bb_for_size_p. 7814 * predict.c (maybe_hot_frequency_p): Make inline. 7815 (maybe_hot_count_p): Break out from ... 7816 (maybe_hot_bb_p): ... this one. 7817 (maybe_hot_edge_p): Simplify. 7818 * basic-block.h (probably_cold_bb_p): Remove. 7819 78202008-08-31 Jakub Jelinek <jakub@redhat.com> 7821 7822 PR target/37168 7823 * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add 7824 prototype. 7825 * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static. 7826 * config/rs6000/altivec.md (easy_vector_constant_add_self splitter): 7827 Also split V4SFmode. 7828 * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle 7829 vector float modes. 7830 78312008-08-31 Jan Hubicka <jh@suse.cz> 7832 7833 * predict.c (PROB_VERY_LIKELY): Make small enough so things 7834 become cold. 7835 * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it. 7836 78372008-08-31 Jakub Jelinek <jakub@redhat.com> 7838 7839 PR debug/37287 7840 * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't 7841 add source coords. 7842 7843 * dwarf2out.c (native_encode_initializer): Subtract min_index for 7844 non-range array index. Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR. 7845 78462008-08-31 Jan Hubicka <jh@suse.cz> 7847 7848 * sparc.h (BRANCH_COST): Fix macro definition. 7849 * avr.c (avr_operand_rtx_cost): Add speed argument. 7850 (avr_rtx_costs): Update calls of avr_operand_rtx_cost. 7851 78522008-08-31 Richard Guenther <rguenther@suse.de> 7853 7854 * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched 7855 types instead of operands. Re-instantiate verifying of 7856 binary expression operands. 7857 78582008-08-30 Jan Hubicka <jh@suse.cz> 7859 7860 * fwprop.c (should_replace_address): Add speed attribute. 7861 (PR_OPTIMIZE_FOR_SPEED): New flag. 7862 (propagate_rtx_1): Use it. 7863 (propagate_rtx): Set it. 7864 (try_fwprop_subst): Update call of rtx_costs. 7865 (forward_propagate_and_simplify): LIkewise. 7866 * hooks.c (hook_int_rtx_bool_0): New 7867 (hook_bool_rtx_int_int_intp_false): Replace by ... 7868 (hook_bool_rtx_int_int_intp_bool_false): .. thisone. 7869 * hooks.h (hook_int_rtx_bool_0): New 7870 (hook_bool_rtx_int_int_intp_false): Replace by ... 7871 (hook_bool_rtx_int_int_intp_bool_false): .. thisone. 7872 * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost. 7873 (prepare_cmp_insn): UPdate call of rtx_cost. 7874 * postreload.c (reload_cse_simplify_set): Update call of rtx_cost. 7875 (reload_cse_simplify_operands): Update call of rtx_cost. 7876 (reload_cse_move2add): call of rtx_cost. 7877 * target.h (struct gcc_target): Update rtx_costs and address_costs. 7878 * rtlanal.c (rtx_cost): Add speed argument. 7879 (address_cost): Add speed argument 7880 (default_address_cost): Likewise. 7881 (insn_rtx_cost): Likewise. 7882 * cfgloopanal.c (seq_cost): Add speed argument. 7883 (target_reg_cost, target_spill_cost): Turn to array. 7884 (init_set_costs): Update for speed. 7885 (estimate_reg_pressure_cost): Add speed argument. 7886 * auto-inc-dec.c (attempt_change): Update call of rtx_cost. 7887 * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost. 7888 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed. 7889 (seq_cost): Add speed argument. 7890 (computation_cost): Add speed arugment. 7891 (add_cost, multiply_by_const, get_address_cost): add speed argument. 7892 (force_expr_to_var_cost): Update for profile info. 7893 (force_var_cost): Likewise. 7894 (split_address_cost): Likewise. 7895 (ptr_difference_cost): Likewise. 7896 (difference_cost): Likewise. 7897 (get_computation_cost_at): Likewise. 7898 (determine_iv_cost): Likewise. 7899 (ivopts_global_cost_for_size): Likewise. 7900 (rewrite_use_address): Likewise. 7901 (tree_ssa_iv_optimize_loop): Initialize speed field. 7902 * cse.c (optimize_this_for_speed_p): New static var. 7903 (notreg_cost): Update call of rtx_cost. 7904 (cse_extended_basic_block): set optimize_this_for_speed_p. 7905 * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost. 7906 (noce_try_cmove_arith): Likewise. 7907 (noce_try_sign_mask): LIkewise. 7908 * expr.c (compress_float_constant): Update rtx_cost calls. 7909 * tree-ssa-address.c (most_expensive_mult_to_index): Add speed 7910 argument. 7911 (addr_to_parts): Likewise. 7912 (create_mem_ref): Likewise. 7913 * dse.c (find_shift_sequence): Add speed argument. 7914 (replace_read): Update call. 7915 * calls.c (precompute_register_parameters): Update call of rtx_cost. 7916 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, 7917 * neg_cost, shift_cost, shiftadd_cost, 7918 shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost, 7919 mul_highpart_cost): Increase dimension. 7920 (init_expmed): Initialize for both size and speed. 7921 (expand_shift): Use profile. 7922 (synth_mult): Use profile. 7923 (choose_mult_variant): Use profile. 7924 (expand_mult): Use profile. 7925 (expand_mult_highpart_optab): Use profile. 7926 (expand_mult_highpart): Use profile. 7927 (expand_smod_pow2): Use profile. 7928 (expand_divmod): Use profile. 7929 * simplify-rtx.c (simplify_binary_operation_1): Update call of 7930 rtx_cost. 7931 * loop-invariant.c (create_new_invariant): Use profile. 7932 (gain_for_invariant): Add speed parameter. 7933 (best_gain_for_invariant): Likewise. 7934 (find_invariants_to_move): Likewise. 7935 (move_single_loop_invariants): Set it. 7936 * target-def.h (TARGET_RTX_COSTS): Use hook. 7937 * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe. 7938 (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare. 7939 * output.h (default_address_cost): Update prototype. 7940 * combine.c (optimize_this_for_speed_p): New static var. 7941 (combine_validate_cost): Update call of rtx_cost. 7942 (combine_instructions): Set optimize_this_for_speed_p. 7943 (expand_compound_operation): Update call of rtx_cost. 7944 (make_extraction):Update call of rtx_cost. 7945 (force_to_mode):Update call of rtx_cost. 7946 (distribute_and_simplify_rtx):Update call of rtx_cost. 7947 * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array. 7948 (estimate_reg_pressure_cost): Update prototype. 7949 * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype. 7950 * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p): 7951 Remove. 7952 * config/alpha/alpha.c (alpha_rtx_costs): Update. 7953 (alpha_rtx_costs): Update. 7954 * config/frv/frv.c (frv_rtx_costs): Update. 7955 * config/s390/s390.c (s390_rtx_costs): Update. 7956 * config/m32c/m32c.c (m32c_memory_move_cost): Update. 7957 (m32c_rtx_costs): Update. 7958 * config/spu/spu.c (TARGET_ADDRESS_COST): Upate. 7959 (spu_rtx_costs): Update. 7960 * config/sparc/sparc.c (sparc_rtx_costs): Update. 7961 * config/m32r/m32r.c (m32r_rtx_costs): Update. 7962 * config/i386/i386.c (:ix86_address_cost): Update. 7963 (ix86_rtx_costs): Update. 7964 * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update. 7965 * config/pdp11/pdp11.c (pdp11_rtx_costs): Update. 7966 * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update. 7967 * config/crx/crx.c (crx_address_cost): Update. 7968 * config/xtensa/xtensa.c (xtensa_rtx_costs): Update. 7969 * config/stormy16/stormy16.c 7970 (xstormy16_address_cost, xstormy16_rtx_costs): Update. 7971 * config/m68hc11/m68hc11.c 7972 (m68hc11_address_cost, m68hc11_rtx_costs): Update. 7973 * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update. 7974 * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): 7975 Update. 7976 * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): 7977 Update 7978 * config/ia64/ia64.c (ia64_rtx_costs): Update. 7979 * config/m68k/m68k.c (m68k_rtx_costs): Update. 7980 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update. 7981 * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update. 7982 * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update. 7983 (mcore_rtx_costs): update. 7984 * config/score/score3.c (score3_rtx_costs): Update. 7985 * config/score/score7.c (score7_rtx_costs): Update. 7986 * config/score/score3.h (score3_rtx_costs):Update. 7987 * config/score/score7.h (score7_rtx_costs): Update. 7988 * config/score/score.c (score_rtx_costs): Update. 7989 * config/arm/arm.c (arm_address_cost): Update. 7990 (arm_rtx_costs_1): Update. 7991 (arm_rtx_costs_1): Update. 7992 (arm_size_rtx_costs): Update. 7993 (arm_size_rtx_costs): Update. 7994 (arm_size_rtx_costs): Update. 7995 (arm_xscale_rtx_costs): Update. 7996 (arm_thumb_address_cost): Update. 7997 * config/pa/pa.c (hppa_address_cost): Update. 7998 * config/mips/mips.c (mips_rtx_costs): Update. 7999 * config/vax/vax.c (vax_address_cost): Update. 8000 * config/h8300/h8300.c (h8300_shift_costs): Update. 8001 (h8300_rtx_costs): Update. 8002 * config/v850/v850.c (TARGET_ADDRESS_COST): Update. 8003 (v850_rtx_costs): Update. 8004 * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update. 8005 * config/bfin/bfin.c 8006 (bfin_address_cost): Update. 8007 (bfin_rtx_costs): Update. 8008 * stmt.c (lshift_cheap_p): Update. 8009 80102008-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com> 8011 8012 PR middle-end/36444 8013 * expmed.c (extract_bit_field_1): Check the mode size to make 8014 sure the vector modes have the same size. 8015 80162008-08-29 Michael Meissner <gnu@the-meissners.org> 8017 8018 * dojump.c (top level): Include basic-block.h to declare 8019 optimize_insn_for_speed_p 8020 8021 * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency. 8022 8023 * opts.h (CL_SAVE): New option class for marking options that are 8024 target specific options usable in the target attribute. 8025 (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option. 8026 8027 * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends 8028 can easily find the target specific options that are safe to use 8029 in the attribute or pragma. 8030 8031 * attribs.c (decl_attributes): Change #pragma GCC option to 8032 #pragma GCC target, and attribute((option(...))) to 8033 attribute((target(...))). 8034 8035 * doc/extend.texi (target attribute): Change from option 8036 attribute. Delete push/pop/reset. 8037 (#pragma GCC target): Change from #pragma GCC option. Delete 8038 push/pop/reset. 8039 (#pragma GCC push_options): Document new pragma. 8040 (#pragma GCC pop_options): Document new pragma. 8041 (#pragma GCC reset_options): Document new pragma. 8042 8043 * targhooks.c (default_target_option_valid_attribute_p): Add 8044 warning about port not supporting target attributes. 8045 (default_target_option_pragma_parse): New function, warn about 8046 #pragma GCC target not being supported. 8047 8048 * targhooks.h (default_target_option_pragma_parse): Add 8049 declaration. 8050 8051 * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from 8052 TI_CURRENT_OPTION_PRAGMA. 8053 (current_target_pragma): Rename from current_option_pragma. 8054 8055 * target.h (struct target_option): Delete booleans for changing 8056 the optimization level on hot/cold functions. Change signature of 8057 pragma_parse hook to take a second tree. 8058 8059 * c-tree.h (c_builtin_function_ext_scope): Add declaration. 8060 8061 * c-decl.c (c_builtin_function_ext_scope): New function, guarantee 8062 that the declaration is done at global scope. 8063 8064 * langhooks.c (add_builtin_function_common): Move most of the code 8065 from add_builtin_function here, calling the hook passed in. 8066 (add_builtin_function): Call add_builtin_function_common with 8067 standard builtin hook. 8068 (add_builtin_function_ext_scope): New function to add builtins to 8069 global scope. 8070 8071 * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope 8072 hook. 8073 (add_builtin_function_ext_scope): Add declaration. 8074 8075 * c-pragma.c (handle_pragma_target): Rename from 8076 handle_pragma_option, #pragma GCC option is now #pragma GCC 8077 target. Move warning about port not supporting target options to 8078 default pragma parse hook. Remove push/pop/reset from this 8079 pragma. 8080 (handle_pragma_optimize): Remove push/pop/reset from this pragma. 8081 (option_stack): Delete static variable. 8082 (optimize_stack): Ditto. 8083 (optons_stack): New stack of saved target and optimization 8084 options. 8085 (handle_pragma_push_options): New function to handle pushing both 8086 target and optimization options. 8087 (handle_pragma_pop_options): New function to handle popping both 8088 target and optimization options. 8089 (handle_pragma_reset_options): New function to handle resetting 8090 both target and optimization options to their initial state. 8091 (init_pragma): Rename handle_pragma_option to 8092 handle_pragma_target. Add support for push_options, pop_options, 8093 and reset_options pragmas. 8094 8095 * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to 8096 default_target_option_pragma_parse. 8097 (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to 8098 default_target_option_valid_attribute_p. 8099 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete. 8100 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto. 8101 (TARGET_OPTION_HOOKS): Delete the fields for whether to change 8102 optimization level on hot/cold functions. 8103 8104 * tree-inline.c (tree_can_inline_p): Disable suppressing inlining 8105 if the caller and callee have different optimization levels. 8106 8107 * c-common.c (handle_target_attribute): Rename from 8108 handle_option_attribute, attribute((option(...))) is now 8109 attribute((target(...))). Move warning if the port does not 8110 support target attributes to the default hook. 8111 (handle_hot_attribute): Delete code to change the optimization 8112 level of hot functions. 8113 (handle_cold_attribute): Ditto. 8114 8115 * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second 8116 argument that is the binary tree options to use if there are no 8117 arguments. Call ix86_valid_target_attribute_tree instead of 8118 ix86_valid_option_attribute_tree. 8119 (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse. 8120 (ix86_register_pragmas): Use ix86_pragma_target_parse instead of 8121 ix86_pragma_option_parse. 8122 8123 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): 8124 Rename from ix86_valid_option_attribute_tree. 8125 8126 * config/i386/i386.c (ix86_add_new_builtins): New function to add 8127 new builtins when the ISA changes. 8128 (ix86_valid_target_attribute_tree): Rename from 8129 ix86_valid_option_attribute_tree. Change callers. If the 8130 function specified optimization options, use those as the starting 8131 point before setting up the target attributes. If the 8132 optimization options were changed in the course of setting the 8133 target attributes, record the new optimization options. 8134 (ix86_valid_target_attribute_tree_inner_p): Rename from 8135 ix86_valid_option_attribute_tree_inner_p. Change callers. Call 8136 ix86_add_new_builtins if the ISA changed. 8137 (ix86_valid_target_attribute_p): Rename from 8138 ix86_valid_option_attribute_p. Change callers. 8139 (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both 8140 __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared 8141 as delayed builtin functions. 8142 (struct builtin_isa): New structure to record builtin functions 8143 that should be delayed until the ISA for that function is used. 8144 (ix86_builtins_isa): Change from int to struct to track builtin 8145 functions we want to declare at some point. 8146 (def_builtin): If the front end can delay defining the builtin 8147 functions, don't create builtins for ISAs not part of the default 8148 options. 8149 (def_builtin_const): Ditto. 8150 (bdesc_multi_arg): Declare __builtin_ia32_pcmov and 8151 __builtin_ia32_pcmov_v2di to be different builtin functions. 8152 (ix86_expand_builtin): Changes due to ix86_builtins_isa now being 8153 a structure instead of an int. 8154 (TARGET_OPTION_VALID_ATTRIBUTE_P): Use 8155 ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p. 8156 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete. 8157 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto. 8158 8159 * config/ia64/ia64.h 8160 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete. 8161 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto. 8162 8163 * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New 8164 hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION. 8165 (LANG_HOOKS_INITIALIZER): Add 8166 LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook. 8167 81682008-08-30 Kaz Kojima <kkojima@gcc.gnu.org> 8169 8170 PR target/37270 8171 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate 8172 the reload address with the index register for SFmode 8173 access with a displacement. 8174 81752008-08-30 Jan Hubicka <jh@suse.cz> 8176 8177 * optabs.c (expand_abs_nojump): Update BRANCH_COST call. 8178 * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise. 8179 * dojump.c (do_jump): Likewise. 8180 * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise. 8181 (note-if_info): Add BRANCH_COST. 8182 (noce_try_store_flag_constants, noce_try_addcc, 8183 noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith, 8184 noce_try_cmove_arith, noce_find_if_block, find_if_case_1, 8185 find_if_case_2): Use computed branch cost. 8186 * expr.h (BRANCH_COST): Update default. 8187 * predict.c (predictable_edge_p): New function. 8188 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag): 8189 Update BRANCH_COST call. 8190 * basic-block.h (predictable_edge_p): Declare. 8191 * config/alpha/alpha.h (BRANCH_COST): Update. 8192 * config/frv/frv.h (BRANCH_COST): Update. 8193 * config/s390/s390.h (BRANCH_COST): Update. 8194 * config/spu/spu.h (BRANCH_COST): Update. 8195 * config/sparc/sparc.h (BRANCH_COST): Update. 8196 * config/m32r/m32r.h (BRANCH_COST): Update. 8197 * config/i386/i386.h (BRANCH_COST): Update. 8198 * config/i386/i386.c (ix86_expand_int_movcc): Update use of 8199 BRANCH_COST. 8200 * config/sh/sh.h (BRANCH_COST): Update. 8201 * config/pdp11/pdp11.h (BRANCH_COST): Update. 8202 * config/avr/avr.h (BRANCH_COST): Update. 8203 * config/crx/crx.h (BRANCH_COST): Update. 8204 * config/xtensa/xtensa.h (BRANCH_COST): Update. 8205 * config/stormy16/stormy16.h (BRANCH_COST): Update. 8206 * config/m68hc11/m68hc11.h (BRANCH_COST): Update. 8207 * config/iq2000/iq2000.h (BRANCH_COST): Update. 8208 * config/ia64/ia64.h (BRANCH_COST): Update. 8209 * config/rs6000/rs6000.h (BRANCH_COST): Update. 8210 * config/arc/arc.h (BRANCH_COST): Update. 8211 * config/score/score.h (BRANCH_COST): Update. 8212 * config/arm/arm.h (BRANCH_COST): Update. 8213 * config/pa/pa.h (BRANCH_COST): Update. 8214 * config/mips/mips.h (BRANCH_COST): Update. 8215 * config/vax/vax.h (BRANCH_COST): Update. 8216 * config/h8300/h8300.h (BRANCH_COST): Update. 8217 * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New. 8218 * doc/invoke.texi (predictable-branch-cost-outcome): Document. 8219 * doc/tm.texi (BRANCH_COST): Update. 8220 82212008-08-30 Samuel Tardieu <sam@rfc1149.net> 8222 8223 PR target/37283 8224 * config/arm/arm.c (arm_optimization_options): Set 8225 flag_section_anchors to 2 instead of 1 to distinguish it from 8226 -fsection-anchors given explicitely on the command line. 8227 82282008-08-30 Richard Sandiford <rdsandiford@googlemail.com> 8229 8230 * recog.c (split_insn): Consider attaching a REG_EQUAL note to the 8231 final insn of a split. 8232 82332008-08-30 Jan Hubicka <jh@suse.cz> 8234 8235 * postreload-gcse.c (gate_handle_gcse2): Disable for functions 8236 optimized for speed. 8237 * final.c (compute_alignments): Use optimize_bb_for_size_p. 8238 * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p. 8239 * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set, 8240 flag_gcse_after_reload_set): New static vars. 8241 (common_handle_option): Enable those flags for profile-use. 8242 (decode_options): Remove optimize_size flags that are handled 8243 on higher granuality. 8244 * tree-vectorizer.c (vectorize_loops): Use 8245 optimize_loop_nest_for_speed_p. 8246 * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p. 8247 * tree-predcom.c (tree_predictive_commoning): Use 8248 optimize_loop_for_speed_p. 8249 * varasm.c (assemble_start_function): Use 8250 optimize_function_for_speed_p. 8251 * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise. 8252 * predict.c (optimize_loop_for_speed_p): Fix walk. 8253 82542008-08-30 Jan Hubicka <jh@suse.cz> 8255 8256 * ipa-inline.c (cgraph_estimate_growth): Discover self recursive 8257 functions. 8258 (cgraph_decide_inlining_of_small_function): Use edge->count to detect 8259 profile presence locally. 8260 82612008-08-29 Joseph Myers <joseph@codesourcery.com> 8262 8263 PR bootstrap/37086 8264 * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC 8265 versions before 4.0. 8266 82672008-08-29 Jan Hubicka <jh@suse.cz> 8268 8269 * tree-inline.c (insert_init_stmt): Insert sequence even when 8270 not in SSA form. 8271 82722008-08-29 Jeff Law <law@redhat.com> 8273 8274 * mn10300.c (mn10300_secondary_reload_class): We need secondary 8275 reloads for AM33-2 if IN is a pseudo with an equivalent memory 8276 location and class is an FP register. 8277 82782008-08-29 Jan Hubicka <jh@suse.cz> 8279 8280 * see.c (see_merge_one_def_extension): Silence used uninitialized 8281 warning. 8282 * matrix-reorg.c (check_allocation_function): Likewise. 8283 * config/i386/driver-i386.c (detect_caches_amd): Likewise. 8284 82852008-08-29 Jakub Jelinek <jakub@redhat.com> 8286 8287 PR c/37261 8288 * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization 8289 compute new & and | in type rather than TREE_TYPE (arg0). 8290 8291 * dwarf2out.c (fortran_common): Update comment. 8292 (gen_variable_die): Swap com_die and var_die variables in Fortran 8293 COMMON block handling code. 8294 8295 * dwarf2out.c (descr_info_loc): Handle VAR_DECL. 8296 8297 * dwarf2out.c (gen_const_die): New function. 8298 (size_of_die, value_format, output_die): Output larger 8299 dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4. 8300 (native_encode_initializer): New function. 8301 (tree_add_const_value_attribute): Call it. 8302 (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran (). 8303 8304 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For 8305 DECL_BY_REFERENCE decls don't pass TREE_READONLY and 8306 TREE_THIS_VOLATILE to add_type_attribute. 8307 8308 * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG 8309 types. 8310 (gen_array_type_die): Emit DW_TAG_string_type for Fortran character 8311 types. 8312 8313 * dwarf2out.c (loc_by_reference): New function. 8314 (add_location_or_const_value_attribute): Use it. 8315 8316 PR fortran/23057 8317 * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars 8318 as DW_TAG_variable children of DW_TAG_common_block rather than 8319 DW_TAG_member children. Put DW_AT_external to individual 8320 DW_TAG_variable DIEs, not to DW_TAG_common_block. 8321 8322 * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try 8323 loc_descriptor_from_tree_1. 8324 8325 PR fortran/29635 8326 PR fortran/23057 8327 * debug.h (struct gcc_debug_hooks): Add NAME and CHILD 8328 arguments to imported_module_or_decl. 8329 (debug_nothing_tree_tree): Removed. 8330 (debug_nothing_tree_tree_tree_bool): New prototype. 8331 * debug.c (do_nothing_debug_hooks): Adjust. 8332 (debug_nothing_tree_tree): Removed. 8333 (debug_nothing_tree_tree_tree_bool): New function. 8334 * dwarf2out.c (is_symbol_die): Handle DW_TAG_module. 8335 (gen_variable_die): Put all common vars for the 8336 same COMMON block under one DW_TAG_common_block. 8337 (declare_in_namespace): Return new context_die, for Fortran 8338 return the module DIE instead of adding extra declarations into 8339 the namespace. 8340 (gen_type_die_with_usage): Adjust declare_in_namespace caller. 8341 (gen_namespace_die): If is_fortran (), generate DW_TAG_module 8342 instead of DW_TAG_namespace. If DECL_EXTERNAL is set, add 8343 DW_AT_declaration. 8344 (dwarf2out_global_decl): Don't skip Fortran global vars. 8345 (gen_decl_die): Likewise. Adjust declare_in_namespace callers. 8346 (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments. 8347 If NAME is non-NULL, add DW_AT_name. If CHILD is non-NULL, put 8348 DW_TAG_imported_declaration as child of previous 8349 DW_TAG_imported_module. 8350 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust. 8351 * sdbout.c (sdb_debug_hooks): Likewise. 8352 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. 8353 83542008-08-29 Jan Hubicka <jh@suse.cz> 8355 8356 * cgraph.c (cgraph_remove_node): Do not remove nested nodes. 8357 8358 * cgraph.h (cgraph_maybe_hot_edge_p): Declare. 8359 * ipa-cp.c (n_cloning_candidates): New static variable. 8360 (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare. 8361 (ipcp_print_all_lattices): Improve debug output. 8362 (ipcp_cloning_candidate_p): New function. 8363 (ipcp_initialize_node_lattices): Use it. 8364 (ipcp_init_stage): Do only analyzis here; prettier debug output. 8365 (ipcp_propagate_stage): Prettier debug output. 8366 (ipcp_iterate_stage): Initialize latices here; prettier debug output. 8367 (ipcp_print_all_structures): Remove. 8368 (ipcp_need_redirect_p): Test !n_cloning_candidates. 8369 (ipcp_insert_stage): Prettier debug output; call 8370 cgraph_remove_unreachable_nodes before propagating. 8371 (pass_ipa_cp): Schedule function removal pass. 8372 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better 8373 debug output. 8374 (cgraph_maybe_hot_edge_p): Move to ... 8375 * predict.c (cgraph_maybe_hot_edge_p) ... here. 8376 * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New. 8377 (common_handle_option): Set them; enable ipa-cp when profiling. 8378 * ipa-prop.c (ipa_print_node_jump_functions): Prettier output. 8379 (ipa_print_all_jump_functions): Likewise. 8380 (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove. 8381 (ipa_print_node_params, ipa_print_all_params): New. 8382 * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags, 8383 ipa_print_all_param_flags): Remove. 8384 (ipa_print_node_params, ipa_print_all_params): New. 8385 83862008-08-29 Bob Wilson <bob.wilson@acm.org> 8387 8388 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert 8389 change from 2008-04-03. 8390 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define. 8391 83922008-08-29 Vladimir Makarov <vmakarov@redhat.com> 8393 8394 PR rtl-opt/37251 8395 * ira-color.c (push_allocnos_to_stack): Truncate 8396 removed_splay_allocno_vec. 8397 83982008-08-29 Vladimir Makarov <vmakarov@redhat.com> 8399 8400 PR rtl-opt/37243 8401 * ira-color (ira_fast_allocation): Don't assign hard registers to 8402 global allocnos. 8403 84042008-08-29 Jan Hubicka <jh@suse.cz> 8405 8406 PR middle-end/37278 8407 * predict.c (optimize_loop_nest_for_speed_p): Do not ICE 8408 for cold internal loops. 8409 84102008-08-29 Richard Guenther <rguenther@suse.de> 8411 8412 * tree-ssa-structalias.c (create_variable_info_for): Do not 8413 create fields for heap vars or vars with a noalias state. 8414 For NO_ALIAS_ANYTHING variables add a self-constraint, not one 8415 from ESCAPED. 8416 84172008-08-29 Richard Guenther <rguenther@suse.de> 8418 8419 * common.opt (ftree-store-ccp): Mark as preserved for 8420 backward compatibility. 8421 * doc/invoke.texi (-ftree-store-ccp): Remove documentation. 8422 * tree-pass.h (pass_store_ccp): Remove. 8423 * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field. 8424 (first_vdef): Remove declaration. 8425 (get_value_loaded_by): Likewise. 8426 * tree-ssa-ccp.c (do_store_ccp): Remove. 8427 (get_default_value): Simplify as do_store_ccp is always false 8428 now. Do not initialize mem_ref. 8429 (set_value_varying): Likewise. 8430 (canonicalize_float_value): Likewise. 8431 (set_lattice_value): Likewise. 8432 (likely_value): Likewise. 8433 (surely_varying_stmt_p): Likewise. 8434 (ccp_initialize): Likewise. 8435 (ccp_lattice_meet): Likewise. 8436 (ccp_visit_phi_node): Likewise. 8437 (ccp_fold): Likewise. 8438 (evaluate_stmt): Likewise. 8439 (visit_assignment): Likewise. 8440 (ccp_visit_stmt): Likewise. 8441 (execute_ssa_ccp): Fold into ... 8442 (do_ssa_ccp): ... this. 8443 (do_ssa_store_ccp): Remove. 8444 (gate_store_ccp): Likewise. 8445 (pass_store_ccp): Likewise. 8446 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not 8447 initialize mem_ref. 8448 * tree-ssa-propagate.c (first_vdef): Remove. 8449 (get_value_loaded_by): Likewise. 8450 (replace_vuses_in): Likewise. 8451 (substitute_and_fold): Do not call replace_vuses_in. 8452 * opts.c (decode_options): Do not set flag_tree_store_ccp. 8453 84542008-08-29 Richard Guenther <rguenther@suse.de> 8455 8456 PR middle-end/37236 8457 * tree-ssa-structalias.c (intra_create_variable_infos): Mark 8458 PARAM_NOALIAS tags with is_heapvar. 8459 * tree-ssa-operands.c (access_can_touch_variable): Offset 8460 based tests do not apply for heapvars. Fix offset test. 8461 84622008-08-29 Jan Hubicka <jh@suse.cz> 8463 8464 * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3 8465 (-fipa-cp-clone): Enabled by default at -O3. 8466 * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3; 8467 make ipa-cp-clone to imply ipa-cp; disable cloning at -Os. 8468 84692008-08-29 Jan Hubicka <jh@suse.cz> 8470 8471 * tree.c (build_function_type_skip_args, 8472 build_function_decl_skip_args): New functions. 8473 * tree.h (build_function_type_skip_args, 8474 build_function_decl_skip_args): Declare. 8475 * gimple.c (giple_copy_call_skip_args): New function. 8476 (giple_copy_call_skip_args): Declare. 8477 8478 * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet 8479 * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ... 8480 (ipcp_node_modifiable_p): ... this one; use 8481 tree_versionable_function_p. 8482 (ipcp_create_replace_map): Improve debug output. 8483 (ipcp_need_redirect_p): Return false when not clonning. 8484 (ipcp_update_callgraph): Skip args. 8485 (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p; 8486 skip args. 8487 * cgraphunit.c (cgraph_function_versioning): Add skip_args argument. 8488 (save_inline_function_body): Update call of tree_function_versioning. 8489 * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes. 8490 * tree-inline.c (copy_arguments_for_versioning): Add skip_args 8491 argument. 8492 (tree_function_versioning): Likewise. 8493 * tree-inline.h (tree_function_versioning): Update prototype. 8494 84952008-08-29 Jan Hubicka <jh@suse.cz> 8496 8497 * loop-unswitch.c (unswitch_single_loop): Use 8498 optimize_loop_for_speed_p. 8499 * tree-ssa-threadupdate.c (mark_threaded_blocks): 8500 Use optimize_function_for_size_p. 8501 * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p. 8502 * postreload-gcse.c (eliminate_partially_redundant_load): 8503 Use optimize_bb_for_size_p. 8504 * value-prof.c (gimple_divmod_fixed_value_transform, 8505 gimple_mod_pow2_value_transform, gimple_mod_subtract_transform, 8506 gimple_stringops_transform): Use optimize_bb_for_size_p. 8507 * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p. 8508 * final.c (compute_alignments): Use optimize_function_for_size_p. 8509 * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p. 8510 (fold_builtin_strcpy, fold_builtin_fputs): Use 8511 optimize_function_for_size_p. 8512 * fold-const.c (tree_swap_operands_p): Use 8513 optimize_function_for_size_p. 8514 * recog.c (relax_delay_slots): Likewise. 8515 * tree-ssa-math-opts.c (replace_reciprocal): 8516 Use optimize_bb_for_speed_p. 8517 (execute_cse_reciprocals): Use optimize_bb_for_size_p. 8518 * ipa-inline.c (cgraph_decide_recursive_inlining): Use 8519 optimize_function_for_size_p. 8520 (cgraph_decide_inlining_of_small_function): Use 8521 optimize_function_for_size_p. 8522 * global.c (find_reg): Use optimize_function_for_size_p. 8523 * opts.c (decode_options): Do not clear flag_tree_ch, 8524 flag_inline_functions, flag_unswitch_loops, flag_unroll_loops, 8525 flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can 8526 work it out from profile. 8527 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use 8528 optimize_loop_for_speed_p. 8529 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): 8530 Constify argument. 8531 (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New. 8532 * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p. 8533 * tree-eh.c (decide_copy_try_finally): Use 8534 optimize_function_for_size_p. 8535 * local-alloc.c (block_alloc): Pass BB pointer. 8536 (find_free_reg): Add BB pointer, use optimize_bb_for_size_p. 8537 * gcse.c (gcse_main): Use optimize_function_for_size_p. 8538 * loop-unroll.c (decide_unrolling_and_peeling): 8539 Use optimize_loop_for_size_p. 8540 (decide_peel_completely): Likewise. 8541 * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use 8542 optimize_loop_for_size_p. 8543 (vect_enhance_data_refs_alignment): Likewise. 8544 * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument. 8545 (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): 8546 Update call. 8547 * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p. 8548 (try_crossjump_bb): Use optimize_bb_for_size_p. 8549 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use 8550 optimize_loop_for_speed_p. 8551 * bb-reorder.c (find_traces_1_round): Likewise. 8552 (copy_bb): Use optimize_bb_for_speed_p. 8553 (duplicate_computed_gotos): Likewise. 8554 * basic-block.h (optimize_loop_nest_for_size_p, 8555 optimize_loop_nest_for_speed_p): New. 8556 * stmt.c (expand_case): Use optimize_insn_for_size_p. 8557 85582008-08-29 Tristan Gingold <gingold@adacore.com> 8559 8560 * gcov.c (main): Call expandargv. 8561 85622008-08-29 Jan Hubicka <jh@suse.cz> 8563 8564 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop 8565 is not cold. 8566 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): 8567 Constify arguments. 8568 (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions. 8569 * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p): 8570 Constify. 8571 (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare. 8572 85732008-08-29 Jan Hubicka <jh@suse.cz> 8574 8575 * tree-pass.h (pass_strip_predict_hints): Declare. 8576 * predict.c (strip_builtin_expect): Rename to ... 8577 (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT. 8578 (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT. 8579 (tree_estimate_probability): Do not strip builtin_expect. 8580 (pass_strip_predict_hints): New pass. 8581 * tree-inline.c (expand_call_inline): When inlining cold function, 8582 predict it as unlikely. 8583 * passes.c (init_optimization_passes): Add pass_strip_predict_hints. 8584 85852008-08-29 Richard Guenther <rguenther@suse.de> 8586 8587 PR tree-optimization/37207 8588 * tree-vrp.c (extract_range_from_binary_expr): Also try 8589 to constant fold if only one of the operands is a constant. 8590 85912008-08-29 Nick Clifton <nickc@redhat.com> 8592 8593 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in 8594 the same way as SYMBOL_REFs. 8595 85962008-08-28 Bob Wilson <bob.wilson@acm.org> 8597 8598 * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register. 8599 86002008-08-28 Adam Nemet <anemet@caviumnetworks.com> 8601 8602 * config/mips/mips.h (ISA_HAS_BBIT): New macro. 8603 * config/mips/mips.md (branch_likely): Remove const. Fix 8604 comment formatting. 8605 (define_delay for type "branch"): Change to only apply for branch 8606 with likely variant. 8607 (define_delay for type "branch" and "branch_likely" no). New delay 8608 definition. 8609 (equality_op): New code iterator. 8610 (bbv, bbinv): New code attributes. 8611 (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New 8612 patterns. 8613 86142008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 8615 Andrew Pinski <pinskia@gcc.gnu.org> 8616 8617 PR 18050 8618 * c-common.c (verify_tree): Fix handling of ADDR_EXPR. 8619 86202008-08-28 Paolo Carlini <paolo.carlini@oracle.com> 8621 8622 * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix 8623 rule that a symbolic constant must be defined and >= 0 for the 8624 corresponding facility to be present at compile-time. 8625 * gthr-posix.c: Likewise. 8626 86272008-08-28 Adam Nemet <anemet@caviumnetworks.com> 8628 8629 * config/mips/mips.h (ISA_HAS_DMUL3): New macro. 8630 * config/mips/mips.md (D): New mode attribute. 8631 (mulsi3, muldi3): Merge it into ... 8632 (mul<mode>3): ... new template. Use _mul3 ending for 3-op patterns. 8633 (muldi3_mul3): New pattern. 8634 (mulsi3_mult3): Rename to mulsi3_mul3. 8635 86362008-08-28 Jan Hubicka <jh@suse.cz> 8637 8638 * expmed.c (store_bit_field_1): Be prepared for movstrict expander 8639 to fail. 8640 * predict.c (always_optimize_for_size_p): Rename to ... 8641 (optimize_function_for_size): ... this one; make extern. 8642 (optimize_function_for_speed_p): New. 8643 (optimize_bb_for_size_p, optimize_bb_for_size_p, 8644 optimize_edge_for_size_p,optimize_edge_for_size_p, 8645 optimize_insn_for_size_p, optimize_insn_for_size_p): Update. 8646 * basic-block.h (optimize_function_for_size_p, 8647 optimize_function_for_speed_p): Declare. 8648 * i386.md (optimize_size checks): Replace them by appropriate 8649 predicate. 8650 (standard_80387_constant_p, ix86_compute_frame_layout, 8651 ix86_expand_epilogue, ix86_decompose_address, 8652 print_operand, emit_i387_cw_initialization, 8653 inline_memory_move_cost, ix86_pad_returns, 8654 ix86_reorg): Replace optimize_size checks. 8655 86562008-08-28 Richard Sandiford <rdsandiford@googlemail.com> 8657 8658 * rtl.h (simplify_subreg_regno): Declare. 8659 * rtlanal.c (simplify_subreg_regno): New function, split out from... 8660 * simplify-rtx.c (simplify_subreg): ...here. 8661 * reload.c (find_reloads): Use simplify_subreg_regno instead of 8662 subreg_offset_representable_p. 8663 86642008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 8665 8666 PR c/30949 8667 * c-typeck.c (convert_for_assignment): Give a note describing what 8668 was passed and what was expected. 8669 86702008-08-28 Joey Ye <joey.ye@intel.com> 8671 8672 * doc/extend.texi: Document AVX built-in functions. 8673 * doc/invoke.texi: Document -mavx. 8674 86752008-08-28 H.J. Lu <hongjiu.lu@intel.com> 8676 Joey Ye <joey.ye@intel.com> 8677 Xuepeng Guo <xuepeng.guo@intel.com> 8678 8679 * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64. 8680 8681 * config/i386/cpuid.h (bit_FMA): New. 8682 (bit_XSAVE): Likewise. 8683 (bit_OSXSAVE): Likewise. 8684 (bit_AVX): Likewise. 8685 8686 * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before 8687 define. Use ASM_OUTPUT_AVX_PREFIX. 8688 8689 * config/i386/gmmintrin.h: New. 8690 8691 * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS. 8692 (OPTION_MASK_ISA_AVX_SET): New. 8693 (OPTION_MASK_ISA_FMA_SET): Likewise. 8694 (OPTION_MASK_ISA_AVX_UNSET): Likewise. 8695 (OPTION_MASK_ISA_FMA_SET): Likewise. 8696 (OPTION_MASK_ISA_SSE4_2_UNSET): Updated. 8697 (ix86_handle_option): Handle OPT_mavx and OPT_mfma. 8698 (pta_flags): Add PTA_AVX and PTA_FMA. 8699 (override_options): Handle PTA_AVX and PTA_FMA. 8700 (init_cumulative_args): Handle warn_avx. 8701 (classify_argument): Return 0 for COImode and OImode. Return 8702 1 and X86_64_AVX_CLASS for 256bit vector types. 8703 (examine_argument): Handle X86_64_AVX_CLASS. 8704 (construct_container): Likewise. 8705 (function_arg_advance_32): Pass OImode and 256bit vector types 8706 in AVX register. 8707 (function_arg_advance_64): Take a new argument to indicate if a 8708 parameter is named. Handle 256bit vector types. Return 8709 immediately for unnamed 256bit vector mode parameters. 8710 (function_arg_advance): Updated. 8711 (function_arg_32): Add comments for TImode. Handle OImode 8712 and 256bit vector types. 8713 (function_arg_64): Take a new argument to indicate if a 8714 parameter is named. Handle 256bit vector types. Return NULL 8715 for unnamed 256bit vector mode parameters. 8716 (function_arg): Updated. 8717 (setup_incoming_varargs_64): Support 8718 AVX encoding for *sse_prologue_save_insn. 8719 (ix86_gimplify_va_arg): Handle 256bit vector mode parameters. 8720 (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't 8721 enabled. For all 1s in 256bit vector modes, return 3 if AVX is 8722 enabled, otherwise return -3. 8723 (standard_sse_constant_opcode): Handle AVX and 256bit vector 8724 modes. 8725 (print_reg): Support AVX registers. Handle 'x' and 't'. 8726 Handle 'd' to duplicate the operand. 8727 (print_operand): Likewise. Also support AVX vector compare 8728 instructions. 8729 (output_387_binary_op): Support AVX. 8730 (output_fp_compare): Likewise. 8731 (ix86_expand_vector_move_misalign): Likewise. 8732 (ix86_attr_length_vex_default): New. 8733 (ix86_builtins): Add IX86_BUILTIN_ADDPD256, 8734 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256, 8735 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256, 8736 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256, 8737 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256, 8738 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256, 8739 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256, 8740 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256, 8741 IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256, 8742 IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256, 8743 IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256, 8744 IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256, 8745 IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256, 8746 IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256, 8747 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256, 8748 IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256, 8749 IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256, 8750 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD, 8751 IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256, 8752 IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256, 8753 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256, 8754 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256, 8755 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256, 8756 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256, 8757 IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256, 8758 IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER, 8759 IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD, 8760 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256, 8761 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD, 8762 IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256, 8763 IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD, 8764 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, 8765 IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256, 8766 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256, 8767 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256, 8768 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256, 8769 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256, 8770 IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256, 8771 IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256, 8772 IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256, 8773 IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256, 8774 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD, 8775 IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD, 8776 IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256, 8777 IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256, 8778 IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256, 8779 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256, 8780 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256, 8781 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256, 8782 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256, 8783 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256, 8784 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256, 8785 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256, 8786 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS, 8787 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256, 8788 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256, 8789 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD, 8790 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS, 8791 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS, 8792 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256, 8793 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256, 8794 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256, 8795 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256, 8796 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 8797 and IX86_BUILTIN_MOVMSKPS256, 8798 (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR, 8799 V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF, 8800 V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF, 8801 V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF, 8802 V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI, 8803 VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF, 8804 VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF, 8805 VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF, 8806 (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST, 8807 INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST, 8808 INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST, 8809 INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI, 8810 V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF, 8811 V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF, 8812 V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF, 8813 V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF, 8814 V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI, 8815 V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI, 8816 V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI, 8817 V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT, 8818 V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT, 8819 V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF, 8820 V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT, 8821 V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT, 8822 V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT, 8823 V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT. 8824 (bdesc_special_args): Add IX86_BUILTIN_VZEROALL, 8825 IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64, 8826 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256, 8827 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256, 8828 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256, 8829 IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256, 8830 IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256, 8831 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256, 8832 IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS, 8833 IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256, 8834 IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS, 8835 IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256. 8836 (ix86_builtins): Add IX86_BUILTIN_ADDPD256, 8837 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256, 8838 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256, 8839 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256, 8840 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256, 8841 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256, 8842 IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256, 8843 IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256, 8844 IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256, 8845 IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256, 8846 IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256, 8847 IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256, 8848 IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256, 8849 IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD, 8850 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256, 8851 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256, 8852 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256, 8853 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256, 8854 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256, 8855 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD, 8856 IX86_BUILTIN_CMPPS, 8857 IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256, 8858 IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256, 8859 IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256, 8860 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256, 8861 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256, 8862 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256, 8863 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256, 8864 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256, 8865 IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS, 8866 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256, 8867 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS, 8868 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256, 8869 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS, 8870 IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256, 8871 IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256, 8872 IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256, 8873 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256, 8874 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256, 8875 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256, 8876 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256, 8877 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256, 8878 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256, 8879 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256, 8880 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS, 8881 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256, 8882 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256, 8883 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD, 8884 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS, 8885 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS, 8886 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256, 8887 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256, 8888 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256, 8889 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256, 8890 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and 8891 IX86_BUILTIN_MOVMSKPS256. 8892 (ix86_init_mmx_sse_builtins): Support AVX builtins. 8893 (ix86_expand_args_builtin): Likewise. 8894 (ix86_expand_special_args_builtin): Likewise. 8895 (ix86_hard_regno_mode_ok): Handle AVX modes. 8896 (ix86_expand_vector_init_duplicate): Likewise. 8897 (ix86_expand_vector_init_one_nonzero): Likewise. 8898 (ix86_expand_vector_init_one_var): Likewise. 8899 (ix86_expand_vector_init_concat): Likewise. 8900 (ix86_expand_vector_init_general): Likewise. 8901 (ix86_expand_vector_set): Likewise. 8902 (ix86_vector_mode_supported_p): Likewise. 8903 (x86_extended_reg_mentioned_p): Check INSN_P before using 8904 PATTERN. 8905 8906 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 8907 OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA. 8908 8909 * config/i386/i386.h (TARGET_AVX): New. 8910 (TARGET_FMA): Likewise. 8911 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA. 8912 (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX. 8913 (VALID_AVX256_REG_MODE): New. 8914 (AVX256_VEC_FLOAT_MODE_P): Likewise. 8915 (AVX_FLOAT_MODE_P): Likewise. 8916 (AVX128_VEC_FLOAT_MODE_P): Likewise. 8917 (AVX256_VEC_FLOAT_MODE_P): Likewise. 8918 (AVX_VEC_FLOAT_MODE_P): Likewise. 8919 (ASM_OUTPUT_AVX_PREFIX): Likewise. 8920 (ASM_OUTPUT_OPCODE): Likewise. 8921 (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer 8922 support. 8923 (SSE_REG_MODE_P): Allow 256bit vector modes. 8924 (ix86_args): Add a warn_avx field. 8925 8926 * config/i386/i386.md (UNSPEC_PCMP): New. 8927 (UNSPEC_VPERMIL): Likewise. 8928 (UNSPEC_VPERMIL2): Likewise. 8929 (UNSPEC_VPERMIL2F128): Likewise. 8930 (UNSPEC_MASKLOAD): Likewise. 8931 (UNSPEC_MASKSTORE): Likewise. 8932 (UNSPEC_CAST): Likewise. 8933 (UNSPEC_VTESTP): Likewise. 8934 (UNSPECV_VZEROALL): Likewise. 8935 (UNSPECV_VZEROUPPER): Likewise. 8936 (XMM0_REG): Likewise. 8937 (XMM1_REG): Likewise. 8938 (XMM2_REG): Likewise. 8939 (XMM3_REG): Likewise. 8940 (XMM4_REG): Likewise. 8941 (XMM5_REG): Likewise. 8942 (XMM6_REG): Likewise. 8943 (XMM8_REG): Likewise. 8944 (XMM9_REG): Likewise. 8945 (XMM10_REG): Likewise. 8946 (XMM11_REG): Likewise. 8947 (XMM12_REG): Likewise. 8948 (XMM13_REG): Likewise. 8949 (XMM14_REG): Likewise. 8950 (XMM15_REG): Likewise. 8951 (prefix): Likewise. 8952 (prefix_vex_imm8): Likewise. 8953 (prefix_vex_w): Likewise. 8954 (length_vex): Likewise. 8955 (maxmin): Likewise. 8956 (movoi): Likewise. 8957 (*avx_ashlti3): Likewise. 8958 (*avx_lshrti3): Likewise. 8959 (*avx_setcc<mode>): Likewise. 8960 (*fop_<mode>_comm_mixed_avx): Likewise. 8961 (*fop_<mode>_comm_avx): Likewise. 8962 (*fop_<mode>_1_mixed_avx): Likewise. 8963 (*fop_<mode>_1_avx): Likewise. 8964 (*avx_<code><mode>3): Likewise. 8965 (*avx_ieee_smin<mode>3): Likewise. 8966 (*avx_ieee_smax<mode>3): Likewise. 8967 (mode): Add OI, V8SF and V4DF. 8968 (length): Support VEX prefix. 8969 (*cmpfp_i_mixed): Set prefix attribute. 8970 (*cmpfp_i_sse): Likewise. 8971 (*cmpfp_iu_mixed): Likewise. 8972 (*cmpfp_iu_sse): Likewise. 8973 (*movsi_1): Support AVX. 8974 (*movdi_2): Likewise. 8975 (*movdi_1_rex64): Likewise. 8976 (*movti_internal): Likewise. 8977 (*movti_rex64): Likewise. 8978 (*movsf_1): Likewise. 8979 (*movdf_nointeger): Likewise. 8980 (*movdf_integer_rex64): Likewise. 8981 (*movtf_internal): Likewise. 8982 (zero_extendsidi2_32): Likewise. 8983 (zero_extendsidi2_rex64): Likewise. 8984 (*extendsfdf2_mixed): Likewise. 8985 (*extendsfdf2_sse): Likewise. 8986 (*truncdfsf_fast_mixed): Likewise. 8987 (*truncdfsf_fast_sse): Likewise. 8988 (*truncdfsf_mixed): Likewise. 8989 (fix_trunc<mode>di_sse): Likewise. 8990 (fix_trunc<mode>si_sse): Likewise. 8991 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise. 8992 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise. 8993 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise. 8994 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise. 8995 (*rcpsf2_sse): Likewise. 8996 (*rsqrtsf2_sse): Likewise. 8997 (*sqrt<mode>2_sse): Likewise. 8998 (sse4_1_round<mode>2): Likewise. 8999 (*sse_prologue_save_insn): Disallow REX prefix for AVX. 9000 Support AVX. Set length attribute properly for AVX. 9001 9002 * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New. 9003 (VECTOR_MODES (FLOAT, 32)): Likewise. 9004 (VECTOR_MODE (INT, DI, 8)): Likewise. 9005 (VECTOR_MODE (INT, HI, 32)): Likewise. 9006 (VECTOR_MODE (INT, QI, 64)): Likewise. 9007 (VECTOR_MODE (FLOAT, DF, 8)): Likewise. 9008 (VECTOR_MODE (FLOAT, SF, 16)): Likewise. 9009 (VECTOR_MODE (INT, DI, 4)): Removed. 9010 (VECTOR_MODE (INT, SI, 8)): Likewise. 9011 (VECTOR_MODE (INT, HI, 16)): Likewise. 9012 (VECTOR_MODE (INT, QI, 32)): Likewise. 9013 (VECTOR_MODE (FLOAT, SF, 8)): Likewise. 9014 (INT_MODE (OI, 32)): Likewise. 9015 9016 * config/i386/i386.opt (mavx): New. 9017 (mfma): Likewise. 9018 9019 * config/i386/i386-protos.h (ix86_attr_length_vex_default): New. 9020 9021 * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX. 9022 (*mov<mode>_internal_avx): New. 9023 (*movv2sf_internal_rex64_avx): Likewise. 9024 (*movv2sf_internal_avx): Likewise. 9025 9026 * config/i386/predicates.md (const_4_to_5_operand): New. 9027 (const_6_to_7_operand): Likewise. 9028 (const_8_to_11_operand): Likewise. 9029 (const_12_to_15_operand): Likewise. 9030 (avx_comparison_float_operator): Likewise. 9031 9032 * config/i386/sse.md (AVX256MODEI): New. 9033 (AVX256MODE): Likewise. 9034 (AVXMODEQI): Likewise. 9035 (AVXMODE): Likewise. 9036 (AVX256MODEF2P): Likewise. 9037 (AVX256MODE2P): Likewise. 9038 (AVX256MODE4P): Likewise. 9039 (AVX256MODE8P): Likewise. 9040 (AVXMODEF2P): Likewise. 9041 (AVXMODEF4P): Likewise. 9042 (AVXMODEDCVTDQ2PS): Likewise. 9043 (AVXMODEDCVTPS2DQ): Likewise. 9044 (avxvecmode): Likewise. 9045 (avxvecpsmode): Likewise. 9046 (avxhalfvecmode): Likewise. 9047 (avxscalarmode): Likewise. 9048 (avxcvtvecmode): Likewise. 9049 (avxpermvecmode): Likewise. 9050 (avxmodesuffixf2c): Likewise. 9051 (avxmodesuffixp): Likewise. 9052 (avxmodesuffixs): Likewise. 9053 (avxmodesuffix): Likewise. 9054 (vpermilbits): Likewise. 9055 (pinsrbits): Likewise. 9056 (mov<mode>): Likewise. 9057 (*mov<mode>_internal): Likewise. 9058 (push<mode>1): Likewise. 9059 (movmisalign<mode>): Likewise. 9060 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise. 9061 (avx_movdqu<avxmodesuffix>): Likewise. 9062 (avx_lddqu<avxmodesuffix>): Likewise. 9063 (<plusminus_insn><mode>3): Likewise. 9064 (*avx_<plusminus_insn><mode>3): Likewise. 9065 (*avx_vm<plusminus_insn><mode>3): Likewise. 9066 (mul<mode>3): Likewise. 9067 (*avx_mul<mode>3): Likewise. 9068 (*avx_vmmul<mode>3): Likewise. 9069 (divv8sf3): Likewise. 9070 (divv4df3): Likewise. 9071 (avx_div<mode>3): Likewise. 9072 (*avx_div<mode>3): Likewise. 9073 (*avx_vmdiv<mode>3): Likewise. 9074 (avx_rcpv8sf2): Likewise. 9075 (*avx_vmrcpv4sf2): Likewise. 9076 (sqrtv8sf2): Likewise. 9077 (avx_sqrtv8sf2): Likewise. 9078 (*avx_vmsqrt<mode>2): Likewise. 9079 (rsqrtv8sf2): Likewise. 9080 (avx_rsqrtv8sf2): Likewise. 9081 (*avx_vmrsqrtv4sf2): Likewise. 9082 (<code><mode>3): Likewise. 9083 (*avx_<code><mode>3_finite): Likewise. 9084 (*avx_<code><mode>3): Likewise. 9085 (*avx_vm<code><mode>3): Likewise. 9086 (*avx_ieee_smin<mode>3): Likewise. 9087 (*avx_ieee_smax<mode>3): Likewise. 9088 (avx_addsubv8sf3): Likewise. 9089 (avx_addsubv4df3): Likewise. 9090 (*avx_addsubv4sf3): Likewise. 9091 (*avx_addsubv2df3): Likewise. 9092 (avx_h<plusminus_insn>v4df3): Likewise. 9093 (avx_h<plusminus_insn>v8sf3): Likewise. 9094 (*avx_h<plusminus_insn>v4sf3): Likewise. 9095 (*avx_h<plusminus_insn>v2df3): Likewise. 9096 (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise. 9097 (avx_cmps<ssemodesuffixf2c><mode>3): Likewise. 9098 (*avx_maskcmp<mode>3): Likewise. 9099 (avx_nand<mode>3): Likewise. 9100 (*avx_<code><mode>3): Likewise. 9101 (*avx_nand<mode>3): Likewise. 9102 (*avx_<code><mode>3): Likewise. 9103 (*avx_cvtsi2ss): Likewise. 9104 (*avx_cvtsi2ssq): Likewise. 9105 (*avx_cvtsi2sd): Likewise. 9106 (*avx_cvtsi2sdq): Likewise. 9107 (*avx_cvtsd2ss): Likewise. 9108 (avx_cvtss2sd): Likewise. 9109 (avx_cvtdq2ps<avxmodesuffix>): Likewise. 9110 (avx_cvtps2dq<avxmodesuffix>): Likewise. 9111 (avx_cvttps2dq<avxmodesuffix>): Likewise. 9112 (*avx_cvtsi2sd): Likewise. 9113 (*avx_cvtsi2sdq): Likewise. 9114 (avx_cvtdq2pd256): Likewise. 9115 (avx_cvtpd2dq256): Likewise. 9116 (avx_cvttpd2dq256): Likewise. 9117 (*avx_cvtsd2ss): Likewise. 9118 (*avx_cvtss2sd): Likewise. 9119 (avx_cvtpd2ps256): Likewise. 9120 (avx_cvtps2pd256): Likewise. 9121 (*avx_movhlps): Likewise. 9122 (*avx_movlhps): Likewise. 9123 (avx_unpckhps256): Likewise. 9124 (*avx_unpckhps): Likewise. 9125 (avx_unpcklps256): Likewise. 9126 (*avx_unpcklps): Likewise. 9127 (avx_movshdup256): Likewise. 9128 (avx_movsldup256): Likewise. 9129 (avx_shufps256): Likewise. 9130 (avx_shufps256_1): Likewise. 9131 (*avx_shufps_<mode>): Likewise. 9132 (*avx_loadhps): Likewise. 9133 (*avx_storelps): Likewise. 9134 (*avx_loadlps): Likewise. 9135 (*avx_movss): Likewise. 9136 (*vec_dupv4sf_avx): Likewise. 9137 (*vec_concatv2sf_avx): Likewise. 9138 (*vec_concatv4sf_avx): Likewise. 9139 (*vec_setv4sf_0_avx): Likewise. 9140 (*vec_setv4sf_avx): Likewise. 9141 (*avx_insertps): Likewise. 9142 (avx_vextractf128<mode>): Likewise. 9143 (vec_extract_lo_<mode>): Likewise. 9144 (vec_extract_hi_<mode>): Likewise. 9145 (vec_extract_lo_<mode>): Likewise. 9146 (vec_extract_hi_<mode>): Likewise. 9147 (vec_extract_lo_v16hi): Likewise. 9148 (vec_extract_hi_v16hi): Likewise. 9149 (vec_extract_lo_v32qi): Likewise. 9150 (vec_extract_hi_v32qi): Likewise. 9151 (avx_unpckhpd256): Likewise. 9152 (*avx_unpckhpd): Likewise. 9153 (avx_movddup256): Likewise. 9154 (*avx_movddup): Likewise. 9155 (avx_unpcklpd256): Likewise. 9156 (*avx_unpcklpd): Likewise. 9157 (avx_shufpd256): Likewise. 9158 (avx_shufpd256_1): Likewise. 9159 (*avx_punpckhqdq): Likewise. 9160 (*avx_punpcklqdq): Likewise. 9161 (*avx_shufpd_<mode>): Likewise. 9162 (*avx_storehpd): Likewise. 9163 (*avx_loadhpd): Likewise. 9164 (*avx_loadlpd): Likewise. 9165 (*avx_movsd): Likewise. 9166 (*vec_concatv2df_avx): Likewise. 9167 (*avx_<plusminus_insn><mode>3): Likewise. 9168 (*avx_<plusminus_insn><mode>3): Likewise. 9169 (*avx_mulv8hi3): Likewise. 9170 (*avxv8hi3_highpart): Likewise. 9171 (*avx_umulv8hi3_highpart): Likewise. 9172 (*avx_umulv2siv2di3): Likewise. 9173 (*avx_mulv2siv2di3): Likewise. 9174 (*avx_pmaddwd): Likewise. 9175 (*avx_mulv4si3): Likewise. 9176 (*avx_ashr<mode>3): Likewise. 9177 (*avx_lshr<mode>3): Likewise. 9178 (*avx_ashl<mode>3): Likewise. 9179 (*avx_<code><mode>3): Likewise. 9180 (*avx_eq<mode>3): Likewise. 9181 (*avx_gt<mode>3): Likewise. 9182 (*avx_nand<mode>3): Likewise. 9183 (*avx_nand<mode>3): Likewise. 9184 (*avx_<code><mode>3): Likewise. 9185 (*avx_<code><mode>3): Likewise. 9186 (*avx_packsswb): Likewise. 9187 (*avx_packssdw): Likewise. 9188 (*avx_packuswb): Likewise. 9189 (*avx_punpckhbw): Likewise. 9190 (*avx_punpcklbw): Likewise. 9191 (*avx_punpckhwd): Likewise. 9192 (*avx_punpcklwd): Likewise. 9193 (*avx_punpckhdq): Likewise. 9194 (*avx_punpckldq): Likewise. 9195 (*avx_pinsr<avxmodesuffixs>): Likewise. 9196 (*avx_pinsrq): Likewise. 9197 (*avx_loadld): Likewise. 9198 (*vec_extractv2di_1_rex64_avx): Likewise. 9199 (*vec_extractv2di_1_avx): Likewise. 9200 (*vec_dupv2di_avx): Likewise. 9201 (*vec_concatv2si_avx): Likewise. 9202 (*vec_concatv4si_1_avx): Likewise. 9203 (*vec_concatv2di_avx): Likewise. 9204 (*vec_concatv2di_rex64_avx): Likewise. 9205 (*avx_uavgv16qi3): Likewise. 9206 (*avx_uavgv8hi3): Likewise. 9207 (*avx_psadbw): Likewise. 9208 (avx_movmskp<avxmodesuffixf2c>256): Likewise. 9209 (*avx_phaddwv8hi3): Likewise. 9210 (*avx_phadddv4si3): Likewise. 9211 (*avx_phaddswv8hi3): Likewise. 9212 (*avx_phsubwv8hi3): Likewise. 9213 (*avx_phsubdv4si3): Likewise. 9214 (*avx_phsubswv8hi3): Likewise. 9215 (*avx_pmaddubsw128): Likewise. 9216 (*avx_pmulhrswv8hi3): Likewise. 9217 (*avx_pshufbv16qi3): Likewise. 9218 (*avx_psign<mode>3): Likewise. 9219 (*avx_palignrti): Likewise. 9220 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise. 9221 (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise. 9222 (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise. 9223 (*avx_mpsadbw): Likewise. 9224 (*avx_packusdw): Likewise. 9225 (*avx_pblendvb): Likewise. 9226 (*avx_pblendw): Likewise. 9227 (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise. 9228 (avx_ptest256): Likewise. 9229 (avx_roundp<avxmodesuffixf2c>256): Likewise. 9230 (*avx_rounds<ssemodesuffixf2c>): Likewise. 9231 (*avx_aesenc): Likewise. 9232 (*avx_aesenclast): Likewise. 9233 (*avx_aesdec): Likewise. 9234 (*avx_aesdeclast): Likewise. 9235 (avx_vzeroupper): Likewise. 9236 (avx_vzeroupper_rex64): Likewise. 9237 (avx_vpermil<mode>): Likewise. 9238 (avx_vpermilvar<mode>3): Likewise. 9239 (avx_vpermil2<mode>3): Likewise. 9240 (avx_vperm2f128<mode>3): Likewise. 9241 (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise. 9242 (avx_vbroadcastss256): Likewise. 9243 (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise. 9244 (avx_vinsertf128<mode>): Likewise. 9245 (vec_set_lo_<mode>): Likewise. 9246 (vec_set_hi_<mode>): Likewise. 9247 (vec_set_lo_<mode>): Likewise. 9248 (vec_set_hi_<mode>): Likewise. 9249 (vec_set_lo_v16hi): Likewise. 9250 (vec_set_hi_v16hi): Likewise. 9251 (vec_set_lo_v32qi): Likewise. 9252 (vec_set_hi_v32qi): Likewise. 9253 (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise. 9254 (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise. 9255 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise. 9256 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise. 9257 (vec_init<mode>): Likewise. 9258 (*vec_concat<mode>_avx): Likewise. 9259 (blendbits): Support V8SF and V4DF. 9260 (sse2_movq128): Support AVX. 9261 (<sse>_movnt<mode>): Likewise. 9262 (sse2_movntv2di): Likewise. 9263 (sse_rcpv4sf2): Likewise. 9264 (sse_sqrtv4sf2): Likewise. 9265 (sse_rsqrtv4sf2): Likewise. 9266 (<sse>_comi): Likewise. 9267 (<sse>_ucomi): Likewise. 9268 (sse_cvtss2si): Likewise. 9269 (sse_cvtss2si_2): Likewise. 9270 (sse_cvtss2siq): Likewise. 9271 (sse_cvtss2siq_2): Likewise. 9272 (sse_cvttss2si): Likewise. 9273 (sse_cvttss2siq): Likewise. 9274 (sse2_cvtsd2si): Likewise. 9275 (sse2_cvtsd2si_2): Likewise. 9276 (sse2_cvtsd2siq): Likewise. 9277 (sse2_cvtsd2siq_2): Likewise. 9278 (sse2_cvttsd2si): Likewise. 9279 (sse2_cvttsd2siq): Likewise. 9280 (sse2_cvtdq2pd): Likewise. 9281 (*sse2_cvtpd2dq): Likewise. 9282 (*sse2_cvttpd2dq): Likewise. 9283 (*sse2_cvtpd2ps): Likewise. 9284 (sse2_cvtps2pd): Likewise. 9285 (sse3_movshdup): Likewise. 9286 (sse3_movsldup): Likewise. 9287 (sse_storehps): Likewise. 9288 (*sse4_1_extractps): Likewise. 9289 (sse2_storelpd): Likewise. 9290 (vec_dupv2df_sse3): Likewise. 9291 (*vec_concatv2df_sse3): Likewise. 9292 (*sse4_1_pextrb): Likewise. 9293 (*sse4_1_pextrb_memory): Likewise. 9294 (*sse2_pextrw): Likewise. 9295 (*sse4_1_pextrw_memory): Likewise. 9296 (*sse4_1_pextrd): Likewise. 9297 (*sse4_1_pextrq): Likewise. 9298 (sse2_pshufd_1): Likewise. 9299 (sse2_pshuflw_1): Likewise. 9300 (sse2_pshufhw_1): Likewise. 9301 (*sse2_storeq_rex64): Likewise. 9302 (*vec_dupv4si): Likewise. 9303 (<sse>_movmskp<ssemodesuffixf2c>): Likewise. 9304 (sse2_pmovmskb): Likewise. 9305 (*sse2_maskmovdqu): Likewise. 9306 (*sse2_maskmovdqu_rex64): Likewise. 9307 (sse_ldmxcsr): Likewise. 9308 (sse_stmxcsr): Likewise. 9309 (abs<mode>2): Likewise. 9310 (sse4_1_movntdqa): Likewise. 9311 (sse4_1_phminposuw): Likewise. 9312 (sse4_1_extendv8qiv8hi2): Likewise. 9313 (*sse4_1_extendv8qiv8hi2): Likewise. 9314 (sse4_1_extendv4qiv4si2): Likewise. 9315 (*sse4_1_extendv4qiv4si2): Likewise. 9316 (sse4_1_extendv2qiv2di2): Likewise. 9317 (*sse4_1_extendv2qiv2di2): Likewise. 9318 (sse4_1_extendv4hiv4si2): Likewise. 9319 (*sse4_1_extendv4hiv4si2): Likewise. 9320 (sse4_1_extendv2hiv2di2): Likewise. 9321 (*sse4_1_extendv2hiv2di2): Likewise. 9322 (sse4_1_extendv2siv2di2): Likewise. 9323 (*sse4_1_extendv2siv2di2): Likewise. 9324 (sse4_1_zero_extendv8qiv8hi2): Likewise. 9325 (*sse4_1_zero_extendv8qiv8hi2): Likewise. 9326 (sse4_1_zero_extendv4qiv4si2): Likewise. 9327 (*sse4_1_zero_extendv4qiv4si2): Likewise. 9328 (sse4_1_zero_extendv2qiv2di2): Likewise. 9329 (*sse4_1_zero_extendv2qiv2di2): Likewise. 9330 (sse4_1_zero_extendv4hiv4si2): Likewise. 9331 (*sse4_1_zero_extendv4hiv4si2): Likewise. 9332 (sse4_1_zero_extendv2hiv2di2): Likewise. 9333 (*sse4_1_zero_extendv2hiv2di2): Likewise. 9334 (sse4_1_zero_extendv2siv2di2): Likewise. 9335 (*sse4_1_zero_extendv2siv2di2): Likewise. 9336 (sse4_1_ptest): Likewise. 9337 (sse4_1_roundp<ssemodesuffixf2c>): Likewise. 9338 (sse4_2_pcmpestri): Likewise. 9339 (sse4_2_pcmpestrm): Likewise. 9340 (sse4_2_pcmpistri): Likewise. 9341 (sse4_2_pcmpistrm): Likewise. 9342 (aesimc): Likewise. 9343 (aeskeygenassist): Likewise. 9344 93452008-08-28 Uros Bizjak <ubizjak@gmail.com> 9346 9347 * config/i386/predicates.md (vzeroall_operation): New. 9348 9349 * config/i386/sse.md (avx_vzeroall): New. 9350 (*avx_vzeroall): Likewise. 9351 93522008-08-28 Paul Brook <paul@codesourcery.com> 9353 Mark Shinwell <shinwell@codesourcery.com> 9354 Richard Earnshaw <richard.earnshaw@arm.com> 9355 9356 * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New. 9357 (TARGET_MIN_ANCHOR_OFFSET): New. 9358 (arm_override_options): Set correct anchor ranges for Thumb-1 9359 and Thumb-2 if required. 9360 (legitimize_pic_address): Handle case involving a TLS symbol 9361 reference with an addend. 9362 (arm_optimization_options): Enable section anchors at -O1 and 9363 above. 9364 * config/arm/arm.h (OPTIMIZATION_OPTIONS): New. 9365 * config/arm/arm-protos.h (arm_optimization_options): New. 9366 93672008-08-28 Nick Clifton <nickc@redhat.com> 9368 9369 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define. 9370 * config/stormy16/stormy16.md (zero_extendqihi2): Fix length 9371 attribute. 9372 9373 * config/v850/v850.h (IRA_COVER_CLASSES): Define. 9374 * config/v850/v850.md (return): Remove frame size restriction. 9375 9376 * config/mcore/mcore.h (IRA_COVER_CLASSES): Define. 9377 9378 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define. 9379 9380 * config/fr30/fr30.h (IRA_COVER_CLASSES): Define. 9381 9382 * config/m32r/m32r.h (IRA_COVER_CLASSES): Define. 9383 93842008-08-28 Paul Brook <paul@codesourcery.com> 9385 9386 * config/arm/vfp11.md: Update license notice. 9387 * config/arm/cortex-r4.md: Ditto. 9388 93892008-08-28 Richard Guenther <rguenther@suse.de> 9390 9391 PR tree-optimization/37207 9392 * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix 9393 tuplification bug. 9394 93952008-08-28 Dodji Seketeli <dodji@redhat.com> 9396 9397 PR c++/36741 9398 * tree.c (int_fits_type_p): Don't forget unsigned integers 9399 of type sizetype which higher end word equals -1. 9400 94012008-08-28 Ira Rosen <irar@il.ibm.com> 9402 9403 * target.h (struct vectorize): Add new target builtin. 9404 * tree-vectorizer.c (destroy_loop_vec_info): Call 9405 vect_free_slp_instance instead of vect_free_slp_node. 9406 * tree-vectorizer.h (enum slp_load_perm_type): New. 9407 (struct _slp_instance): Add new fields. 9408 (SLP_INSTANCE_LOAD_PERMUTATION): New. 9409 (SLP_INSTANCE_LOADS): New. 9410 (vect_free_slp_tree): Remove. 9411 (vect_free_slp_instance): Declare. 9412 (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New. 9413 (vectorizable_load): Add argument. 9414 (vect_transform_slp_perm_load): New. 9415 * tree-vect-analyze.c (vect_analyze_operations): Add an argument to 9416 vectorizable_load. 9417 (vect_get_place_in_interleaving_chain): New function. 9418 (vect_free_slp_tree): Make static. 9419 (vect_free_slp_instance): New function. 9420 (vect_build_slp_tree): Add new arguments. Allow load permutations and 9421 collect the load location in the interleaving chain. 9422 (vect_supported_slp_permutation_p): New function. 9423 (vect_supported_load_permutation_p): Likewise. 9424 (vect_analyze_slp_instance): In case of loads permutation, call 9425 vect_supported_load_permutation_p to check that the permutation is 9426 supported. 9427 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New. 9428 * tree-vect-transform.c (vect_transform_stmt): Add new argument. 9429 (vect_create_mask_and_perm): New function. 9430 (vect_get_mask_element, vect_transform_slp_perm_load): Likewise. 9431 (vectorizable_load): Add an argument. Don't keep the created vectors 9432 statements in the node if permutation is required. Call 9433 vect_transform_slp_perm_load to generate the permutation. 9434 (vect_transform_stmt): Add new argument. Call vectorizable_load with 9435 additional argument. 9436 (vect_schedule_slp_instance): In case of loads permutation, allocate 9437 vectorized statements structure for all the related SLP nodes. Call 9438 vect_transform_stmt with addditional argument. 9439 (vect_transform_loop): Call vect_transform_stmt with correct arguments. 9440 * config/spu/spu.c (spu_builtin_vec_perm): New. 9441 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine. 9442 * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define. 9443 * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New. 9444 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine. 9445 94462008-08-28 Chris Fairles <chris.fairles@gmail.com> 9447 9448 * gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach, 9449 __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock, 9450 __gthread_cond_signal, __gthread_cond_timedwait, 9451 __gthread_cond_timedwait_recursive): New functions. 9452 * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait): 9453 Likewise. 9454 * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming 9455 thread interfaces. 9456 94572008-08-28 Richard Guenther <rguenther@suse.de> 9458 9459 PR middle-end/37005 9460 * fold-const.c (maybe_canonicalize_comparison_1): Require 9461 undefined overflow only for canonicalizing A +- CST cmp CST. 9462 Make sure to not generate new constants that are not inside 9463 their TYPE_MIN/MAX_VALUE range. 9464 (maybe_canonicalize_comparison): Remove undefined overflow 9465 checking from here. 9466 (fold_binary): Remove now duplicate folding. 9467 94682008-08-27 Paolo Carlini <paolo.carlini@oracle.com> 9469 9470 * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT 9471 use not updated in the last change. 9472 94732008-08-27 Kaz Kojima <kkojima@gcc.gnu.org> 9474 9475 * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS. 9476 (IRA_COVER_CLASSES): Add FPUL_REGS. 9477 94782008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 9479 9480 PR 37217 9481 * c-common.c (conversion_warning): Check for null operands. 9482 94832008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 9484 9485 PR c/31673 9486 * c-decl.c (check_for_loop_decls): Improve error message. Give 9487 hint. 9488 94892008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 9490 9491 PR c/37186 9492 * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter. 9493 (convert_for_assignment): Pass corrent OPT_W* parameter to 9494 WARN_FOR_ASSIGNMENT. 9495 94962008-08-27 Paolo Carlini <paolo.carlini@oracle.com> 9497 9498 PR c++/35321 9499 * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR. 9500 95012008-08-27 Paul Brook <paul@codesourcery.com> 9502 9503 * config.gcc: Loosen checks for arm uclinux eabi targets. 9504 95052008-08-27 Paul Brook <paul@codesourcery.com> 9506 9507 * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on 9508 _clzsi2. 9509 * config/arm/t-linux (LIB1ASMFUNCS): Ditto. 9510 95112008-08-26 Douglas Gregor <doug.gregor@gmail.com> 9512 9513 * c-common.c (do_switch_warnings): Look through the CONST_DECLs in 9514 the enumerators of an ENUMERAL_TYPE. 9515 * dbxout.c (dbxout_type): Ditto. 9516 95172008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com> 9518 9519 PR rtl-opt/37219 9520 * fwprop.c (fwprop): Check that the loop_father is the outer loop. 9521 (fwprop_addr): Check that the loop_father is not the outer loop. 9522 95232008-08-26 Paul Brook <paul@codesourcery.com> 9524 9525 * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types. 9526 Remove documentation entry for fmul type. 9527 Use fmuls to annotate single-precision multiplication patterns, 9528 fmuld to annotate double-precision multiplication patterns, 9529 fmacs to annotate single-precision multiply-accumulate patterns 9530 and fmacd to annotate double-precision multiply-accumulate patterns. 9531 * config/arm/vfp11.md: Update reservations accordingly. 9532 * config/arm/arm.md: Note that certain values of the "type" 9533 attribute are documented in vfp.md. 9534 * config/arm/arm1020e.md: Remove out of date duplicate comment. 9535 (v10_cvt): Use new fmul types. 9536 95372008-08-26 Paul Brook <paul@codesourcery.com> 9538 9539 * config/arm/vfp.md: Move pipeline description for VFP11 to... 9540 * config/arm/vfp11.md: ...here. New. 9541 * config/arm/arm.md: Include vfp11.md. 9542 95432008-08-26 Hans-Peter Nilsson <hp@axis.com> 9544 9545 * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing 9546 parameter to inform call. 9547 95482008-08-26 Jeff Law <law@redhat.com> 9549 9550 * mn10300.md (movqi, movhi): Split i->d*a case into two cases to 9551 avoid the possibility of getting DATA_OR_ADDRESS_REGS as the 9552 preferred class when copying a constant into a partial word register. 9553 95542008-08-26 Ben Elliston <bje@au.ibm.com> 9555 9556 * rtlanal.c: Fix uses of "it's" with "its" where appropriate. 9557 * cp/typeck.c: Likewise. 9558 * cp/tree.c: Likewise. 9559 * gimple-low.c: Likewise. 9560 * jump.c: Likewise. 9561 95622008-08-26 Vladimir Makarov <vmakarov@redhat.com> 9563 9564 * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c, 9565 ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files. 9566 9567 * doc/passes.texi: Describe IRA. 9568 9569 * doc/tm.texi (IRA_COVER_CLASSES, 9570 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros. 9571 9572 * doc/invoke.texi (ira-max-loops-num): Describe the new parameter. 9573 (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills, 9574 -fira-propagate-cost, -fno-ira-share-save-slots, 9575 -fno-ira-share-spill-slots, -fira-verbose): Describe new options. 9576 9577 * flags.h (ira_algorithm): New enumeration. 9578 (flag_ira_algorithm, flag_ira_verbose): New external variable 9579 declarations. 9580 9581 * postreload.c (gate_handle_postreload): Don't do post reload 9582 optimizations unless the reload is completed. 9583 9584 * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for 9585 IRA. 9586 9587 * tree-pass.h (pass_ira): New external variable declaration. 9588 9589 * reload.h: Add 2008 to the Copyright. 9590 9591 * cfgloopanal.c: Include params.h. 9592 (estimate_reg_pressure_cost): Decrease cost for IRA optimization 9593 mode. 9594 9595 * params.h (IRA_MAX_LOOPS_NUM): New macro. 9596 9597 * toplev.c (ira.h): New include. 9598 (flag_ira_algorithm, flag_ira_verbose): New external variables. 9599 (backend_init_target): Call ira_init. 9600 (backend_init): Call ira_init_once. 9601 (finalize): Call finish_ira_once. 9602 9603 * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills, 9604 flag_ira_share_save_slots, flag_ira_share_spill_slots): New 9605 external variables. 9606 9607 * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost, 9608 may_move_out_cost): New external variable declarations. 9609 (move_table): New typedef. 9610 9611 * caller-save.c: Include headers output.h and ira.h. 9612 (no_caller_save_reg_set): New global variable. 9613 (save_slots_num, save_slots): New variables. 9614 (reg_save_code, reg_restore_code, add_stored_regs): Add 9615 prototypes. 9616 (init_caller_save): Set up no_caller_save_reg_set. 9617 (init_save_areas): Reset save_slots_num. 9618 (saved_hard_reg): New structure. 9619 (hard_reg_map, saved_regs_num, all_saved_regs): New variables. 9620 (initiate_saved_hard_regs, new_saved_hard_reg, 9621 finish_saved_hard_regs, saved_hard_reg_compare_func): New 9622 functions. 9623 (setup_save_areas): Add code for sharing stack slots. 9624 (all_blocks): New variable. 9625 (save_call_clobbered_regs): Process pseudo-register too. 9626 (mark_set_regs): Process pseudo-register too. 9627 (insert_one_insn): Put the insn after bb note in a empty basic 9628 block. Add insn check. 9629 9630 * global.c (eliminable_regset): Make it external. 9631 (mark_elimination): Use DF_LR_IN for IRA. 9632 (pseudo_for_reload_consideration_p): New. 9633 (build_insn_chain): Make it external. Don't ignore spilled 9634 pseudos for IRA. Use pseudo_for_reload_consideration_p. 9635 (gate_handle_global_alloc): New function. 9636 (pass_global_alloc): Add the gate function. 9637 9638 * opts.c (decode_options): Set up flag_ira. Print the warning for 9639 -fira. 9640 (common_handle_option): Process -fira-algorithm and -fira-verbose. 9641 9642 * timevar.def (TV_IRA, TV_RELOAD): New passes. 9643 9644 * regmove.c (regmove_optimize): Don't do replacement of output for 9645 IRA. 9646 9647 * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses): 9648 New external variable declarations. 9649 9650 * local-alloc.c (update_equiv_regs): Make it external. Return 9651 true if jump label rebuilding should be done. Rescan new_insn for 9652 notes. 9653 (gate_handle_local_alloc): New function. 9654 (pass_local_alloc): Add the gate function. 9655 9656 * alias.c (value_addr_p, stack_addr_p): New functions. 9657 (nonoverlapping_memrefs_p): Use them for IRA. 9658 9659 * common.opt (fira, fira-algorithm, fira-coalesce, 9660 fira-move-spills, fira-share-save-slots, fira-share-spill-slots, 9661 fira-verbose): New options. 9662 9663 * regclass.c (reg_class_subclasses, contains_reg_of_mode, 9664 move_cost, may_move_in_cost, may_move_out_cost): Make the 9665 variables external. 9666 (move_table): Remove typedef. 9667 (init_move_cost): Make it external. 9668 (allocate_reg_info, resize_reg_info, setup_reg_classes): New 9669 functions. 9670 9671 * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info, 9672 setup_reg_classes): New function prototypes. 9673 (eliminable_regset): New external variable declaration. 9674 (build_insn_chain, update_equiv_regs): New function prototypes. 9675 9676 * Makefile.in (IRA_INT_H): New definition. 9677 (OBJS-common): Add ira.o, ira-build.o, ira-costs.o, 9678 ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o. 9679 (reload1.o, toplev.o): Add dependence on ira.h. 9680 (cfgloopanal.o): Add PARAMS_H. 9681 (caller-save.o): Add dependence on output.h and ira.h. 9682 (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o, 9683 ira-emit.o, ira-lives.o): New entries. 9684 9685 * passes.c (pass_ira): New pass. 9686 9687 * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter. 9688 9689 * reload1.c (ira.h): Include the header. 9690 (changed_allocation_pseudos): New bitmap. 9691 (init_reload): Initiate the bitmap. 9692 (compute_use_by_pseudos): Permits spilled registers in FROM. 9693 (temp_pseudo_reg_arr): New variable. 9694 (reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for 9695 IRA. Call alter_reg with the additional parameter. Don't clear 9696 spilled_pseudos for IRA. Restore original insn chain for IRA. 9697 Clear changed_allocation_pseudos at the end of reload. 9698 (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion. 9699 (hard_regno_to_pseudo_regno): New variable. 9700 (count_pseudo): Check spilled pseudos. Set up 9701 hard_regno_to_pseudo_regno. 9702 (count_spilled_pseudo): Check spilled pseudos. Update 9703 hard_regno_to_pseudo_regno. 9704 (find_reg): Use better_spill_reload_regno_p. Check 9705 hard_regno_to_pseudo_regno. 9706 (alter_reg): Set up spilled_pseudos. Add a new parameter. Add 9707 code for IRA. 9708 (eliminate_regs_1): Use additional parameter for alter_reg. 9709 (finish_spills): Set up pseudo_previous_regs only for spilled 9710 pseudos. Call reassign_pseudos once for all spilled pseudos, pass 9711 more arguments. Don't clear live_throughout and dead_or_set for 9712 spilled pseudos. Use additional parameter for alter_reg. Call 9713 mark_allocation_change. Set up changed_allocation_pseudos. 9714 Remove sanity check. 9715 (emit_input_reload_insns, delete_output_reload): Use additional 9716 parameter for alter_reg. Call mark_allocation_change. 9717 (substitute, gen_reload_chain_without_interm_reg_p): New 9718 functions. 9719 (reloads_conflict): Use gen_reload_chain_without_interm_reg_p. 9720 9721 * testsuite/gcc.dg/20080410-1.c: New file. 9722 9723 * config/s390/s390.h (IRA_COVER_CLASSES, 9724 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define. 9725 9726 * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro. 9727 9728 * config/i386/i386.h (IRA_COVER_CLASSES): Ditto. 9729 9730 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto. 9731 9732 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto. 9733 9734 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto. 9735 9736 * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto. 9737 9738 2008-08-24 Jeff Law <law@redhat.com> 9739 * ira.c (setup_reg_class_intersect_union): Prefer smallest class 9740 when ignoring unavailable registers. 9741 9742 2008-08-24 Jeff Law <law@redhat.com> 9743 * ira-color.c (coalesced_pseudo_reg_slot_compare): Check 9744 FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD. 9745 * ira.c (setup_eliminable_regset): Check stack_realign_needed. 9746 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro. 9747 9748 2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com> 9749 * ira-build.c (allocno_range_compare_func): Stabilize sort. 9750 9751 2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com> 9752 * config/avr/avr.h (IRA_COVER_CLASSES): New macro. 9753 * reload1.c (find_reg): Process registers in register allocation order. 9754 9755 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk> 9756 * toplev.c (backend_init_target): Move ira_init call from 9757 here... 9758 (lang_dependent_init_target): ...to here. 9759 9760 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk> 9761 * ira.c (setup_class_subset_and_memory_move_costs): Don't 9762 calculate memory move costs for NO_REGS. 9763 9764 2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org> 9765 * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if 9766 STACK_REGS is defined. 9767 9768 2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com> 9769 * config/spu/spu.h (IRA_COVER_CLASSES): New macro. 9770 9771 2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com> 9772 * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro. 9773 9774 2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org> 9775 * config/sh/sh.h (IRA_COVER_CLASSES): Define. 9776 * config/sh/sh.md (movsicc_true+3): Check if emit returns a 9777 barrier. 9778 97792008-08-26 Victor Kaplansky <victork@il.ibm.com> 9780 Dorit Nuzman <dorit@il.ibm.com> 9781 9782 * gcc/config/spu/spu.md (vec_extract_evenv4si, 9783 vec_extract_evenv4sf, vec_extract_evenv8hi, 9784 vec_extract_evenv16qi, vec_extract_oddv4si, 9785 vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi, 9786 vec_interleave_highv4sf, vec_interleave_lowv4sf, 9787 vec_interleave_highv4si, vec_interleave_lowv4si, 9788 vec_interleave_highv8hi, vec_interleave_lowv8hi, 9789 vec_interleave_highv16qi, vec_interleave_lowv16qi, 9790 vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S 9791 97922008-08-25 Janis Johnson <janis187@us.ibm.com> 9793 9794 PR target/36756 9795 * config/rs6000/rs6000.c (optimization_options): Don't default to 9796 section anchors without toplevel reorder. 9797 97982008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 9799 9800 * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function. 9801 (mfc_end_critical_section): Likewise. 9802 98032008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 9804 9805 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate 9806 all type qualifiers from element type to vector type. 9807 98082008-08-25 David Daney <ddaney@avtrex.com> 9809 9810 * config/mips/mips.md (immediate_insn): Move up in file, fix 9811 comment typo, reformat. 9812 (fetchop_bit, atomic_hiqi_op memory_barrier, 9813 sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>, 9814 sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>, 9815 sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12, 9816 sync_nand<mode>, sync_nand_12, sync_old_nand<mode>, 9817 sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12, 9818 sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>, 9819 sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>, 9820 sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>, 9821 sync_old_nand<mode>, sync_new_nand<mode>, 9822 sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>, 9823 test_and_set_12): Moved to sync.md. 9824 (sync.md): Include. 9825 * config/mips/sync.md: New file. 9826 98272008-08-25 Richard Henderson <rth@redhat.com> 9828 9829 * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT. 9830 (regsave): Likewise. 9831 (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT. 9832 (output_cfi_directive): Likewise. 9833 (div_data_align): New. 9834 (output_cfi): Use it. 9835 98362008-08-24 Adam Nemet <anemet@caviumnetworks.com> 9837 9838 * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*. 9839 * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON. 9840 (TARGET_OCTEON): New macro. 9841 (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon. 9842 (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon. 9843 (ISA_HAS_POP): New macro. 9844 * config/mips/driver-native.c (host_detect_local_cpu): Handle 9845 Octeon. 9846 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data): 9847 Handle Octeon. 9848 * config/mips/mips.md (cpu): Add octeon. 9849 (type): Add pop attribute value. 9850 (popcount<mode>2): New pattern. 9851 * doc/invoke.texi (-march=@var{arch}): Add octeon. 9852 98532008-08-24 Jan Hubicka <jh@suse.cz> 9854 9855 * doc/invoke.texi (-fipa-cp-clone): New option. 9856 (-fipa-cp): Update docs. 9857 (--param ipcp-unit-growth):New. 9858 * ipa-cp.c: Include fibheap.h, params.h 9859 (ipcp_initialize_node_lattices): When not cloning, all externally 9860 visible functions are bottom. 9861 (ipcp_need_redirect_p): Accept clones. 9862 (ipcp_insert_stage): Use cost driven heuristics. 9863 (max_count, dead_nodes): New static vars. 9864 (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost, 9865 ipcp_const_param_count): New functions. 9866 * common.opt (ipa-cp-clone): New command line option. 9867 * params.def (ipcp-unit-growth): New. 9868 98692008-08-24 Jan Hubicka <jh@suse.cz> 9870 9871 * tree-inline.c (tree_function_versioning): Look harder 9872 for referenced vars. 9873 98742008-08-24 Razya Ladelsky <razya@il.ibm.com> 9875 9876 PR tree-optimization/37185 9877 * matrix-reorg.c (transform_access_sites): Update changed stmt. 9878 98792008-08-23 Jan Hubicka <jh@suse.cz> 9880 9881 * ipa-cp.c (ipcp_analyze_node): New function. 9882 (ipcp_update_cloned_node): Use it. 9883 (ipcp_init_stage): Likewise. 9884 * ipa-inline.c (function_insertion_hook_holder): New static var. 9885 (analyze_function): Break out from .... 9886 (inline_generate_summary): Here; register insertion hook. 9887 (cgraph_decide_inlining): Remove hook. 9888 (add_new_function): New function. 9889 98902008-08-23 Jan Hubicka <jh@suse.cz> 9891 9892 * opts.c (decode_options): Revert accidental change enabling ipa-cp. 9893 98942008-08-23 Jan Hubicka <jh@suse.cz> 9895 9896 * ipa-cp.c (constant_val_insert): Remove. 9897 (ipcp_propagate_one_const): Remove. 9898 (ipcp_create_replace_map): Always insert replacements to the map. 9899 (ipcp_insert_stage): Do not try to insert statements by hand. 9900 * tree-inline.c (insert_init_stmt): Break out from ... 9901 (setup_one_parameter): ... here; allow NULL BB pointer. 9902 (tree_function_versioning): Use setup_one_parameter to process 9903 replacement map. 9904 99052008-08-23 Jan Hubicka <jh@suse.cz> 9906 9907 * tree.c (decl_address_ip_invariant_p): New function. 9908 * tree.h (decl_address_ip_invariant_p): Declare. 9909 * gimple.c (strip_invariant_refs): Break out from ... 9910 (is_gimple_invariant_address): ... here 9911 (is_gimple_ip_invariant_address): New function. 9912 (is_gimple_ip_invariant): New function. 9913 * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant): 9914 Declare. 9915 9916 * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF. 9917 (ipcp_lat_is_insertable): All constants are insertable. 9918 (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of 9919 IPA_CONST_VALUE_REF. 9920 (ipcp_initialize_node_lattices): Propagate all types of operands. 9921 (build_const_val): Do not handle IPA_CONST_VALUE_REF. 9922 (ipcp_create_replace_map): Reformat. 9923 (ipcp_need_redirect_p): Simplify. 9924 (ipcp_insert_stage): Check that argument is used before clonning. 9925 * ipa-prop.c (ipa_print_node_jump_functions): Do not handle 9926 IPA_CONST_REF. 9927 (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat. 9928 (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members. 9929 (update_call_notes_after_inlining): Expect ADDR_EXPR in operand. 9930 * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF. 9931 (jump_func_type): Remove IPA_CONST_VALUE_REF. 9932 * tree-inline.c (tree_function_versioning): Add variables referenced 9933 by replacing trees. 9934 99352008-08-23 Jan Hubicka <jh@suse.cz> 9936 9937 PR target/37094 9938 * i386.c (standard_80387_constant_p): Use optimize_size. 9939 99402008-08-23 Ira Rosen <irar@il.ibm.com> 9941 9942 PR tree-optimization/37161 9943 * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare. 9944 * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function. 9945 (vect_determine_vectorization_factor): Move the scalar type 9946 retrieval to vect_get_smallest_scalar_type. 9947 (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get 9948 scalar type. Remove redundant computation. 9949 * tree-vect-transform.c (vect_get_constant_vectors): Add argument. 9950 (vect_get_slp_defs): Take the type of RHS into account if 9951 necessary by calling vect_get_smallest_scalar_type. Call 9952 vect_get_constant_vectors with additional argument. 9953 99542008-08-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 9955 9956 PR 35648 9957 * doc/invoke.texi (Wwrite-strings): Clarify description. 9958 99592008-08-23 Ira Rosen <irar@il.ibm.com> 9960 9961 PR tree-optimization/37174 9962 * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the 9963 def stmt is a part of the loop before accessing its stmt_vec_info. 9964 99652008-08-22 Anatoly Sokolov <aesok@post.ru> 9966 9967 PR target/11259 9968 * config/avr/avr.md (UNSPEC_SWAP): New constants. 9969 (*swap): New insn pattern. 9970 (*ashlqi3): Rename from ashlqi3 insn pattern. 9971 (ashlqi3): New expanders. 9972 (*lshrqi3): Rename from lshrqi3 insn pattern. 9973 (lshrqi3): New expanders. 9974 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4, 9975 lshrqi3_const5, lshrqi3_const6): New splitters. 9976 (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6, 9977 lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define 9978 peephole2 patterns. 9979 99802008-08-22 Richard Guenther <rguenther@suse.de> 9981 9982 PR tree-optimization/37078 9983 * tree-vrp.c (extract_range_from_unary_expr): Avoid generating 9984 [+INF, +INF] ranges. 9985 99862008-08-22 Richard Guenther <rguenther@suse.de> 9987 9988 PR tree-optimization/37143 9989 * tree-vect-transform.c (vect_create_cond_for_align_checks): Build 9990 a conversion statement instead of a copy. 9991 99922008-08-22 Uros Bizjak <ubizjak@gmail.com> 9993 9994 PR target/37184 9995 * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode, 9996 CCCmode, CCOmode and CCSmode destination modes. 9997 9998 PR target/37191 9999 * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers 10000 from different units in a single alternative. 10001 (*vec_extractv2sf_1): Ditto. 10002 (*vec_extractv2si_0): Ditto. 10003 (*vec_extractv2si_1): Ditto. 10004 * config/i386/sse.md (sse2_storehpd): Ditto. 10005 (sse2_storelpd): Ditto. 10006 (sse2_loadhpd): Ditto. 10007 (sse2_loadlpd): Ditto. 10008 10009 PR target/37197 10010 * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints. 10011 (popcountsi2): Ditto. 10012 (clzdi2_abm): Ditto. 10013 (popcountdi2): Ditto. 10014 (clzhi2_abm): Ditto. 10015 (popcounthi2): Ditto. 10016 100172008-08-22 Richard Guenther <rguenther@suse.de> 10018 10019 PR middle-end/36548 10020 PR middle-end/37125 10021 * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only 10022 if the multiplication does not overflow. 10023 100242008-08-21 Nathan Sidwell <nathan@codesourcery.com> 10025 10026 * c-ppoutput.c (init_pp_output): Initialize src_line to 1. 10027 100282008-08-21 Richard Henderson <rth@redhat.com> 10029 10030 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove 10031 spurrious comma from test. 10032 * configure: Rebuild. 10033 100342008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10035 10036 PR 30457 10037 * builtins.c (fold_builtin_next_arg): Add warning about undefined 10038 behaviour. 10039 100402008-08-21 Aldy Hernandez <aldyh@redhat.com> 10041 10042 * c-tree.h (grokfield): New argument. 10043 * c-decl.c (grokfield): Handle new location argument. 10044 * c-parser.c (c_parser_struct_declaration): Pass location to grokfield. 10045 100462008-08-21 Richard Guenther <rguenther@suse.de> 10047 10048 * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants. 10049 100502008-08-21 Jan Hubicka <jh@suse.cz> 10051 10052 * cgraph.c (first_cgraph_function_insertion_hook): New variable. 10053 (cgraph_add_function_insertion_hook, 10054 cgraph_remove_function_insertion_hook, 10055 cgraph_call_function_insertion_hooks): New functions. 10056 * cgraph.h (cgraph_add_function_insertion_hook, 10057 cgraph_remove_function_insertion_hook, 10058 cgraph_call_function_insertion_hooks): Declare. 10059 * ipa-reference.c (function_insertion_hook_holder): New variable. 10060 (check_operand, look_for_address_of): When checking late, do not care 10061 about module bitmaps. 10062 (add_new_function): New function. 10063 (generate_summary): Register hooks; zero module bitmaps. 10064 (propagate): Unregister hooks. 10065 * ipa-pure-const.c (function_insertion_hook_holder): New variable. 10066 (add_new_function): New function. 10067 (generate_summary): Register hook. 10068 (propagate): Remove hook. 10069 10070 * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0. 10071 10072 * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass. 10073 * ipa-cp.c (ipcp_update_cloned_node): New function. 10074 (build_const_val): Handle functions correctly; bring type logic 10075 into sync with tree-inline.c 10076 (ipcp_init_stage): Take care of computing stuff needed by 10077 indirect inlining; update clones. 10078 (ipcp_generate_summary): Break out of ipcp_driver. 10079 (ipcp_driver): Do only execution and transformation. 10080 (pass_ipa_cp): Make IPA_PASS. 10081 * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold 10082 offset to address. 10083 * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing 10084 ipcp, some info is already available. 10085 * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed. 10086 * tree-inline.c (remap_ssa_name): Unshare expression. 10087 100882008-08-21 Richard Guenther <rguenther@suse.de> 10089 10090 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting 10091 a PHI ask VN if it is already available. 10092 * tree-ssa-sccvn.h (vn_phi_lookup): Declare. 10093 * tree-ssa-sccvn.c (vn_phi_lookup): Export. 10094 100952008-08-21 Richard Guenther <rguenther@suse.de> 10096 10097 PR middle-end/36817 10098 * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which 10099 makes sure to produce a result of the correct type. 10100 101012008-08-21 Jan Hubicka <jh@suse.cz> 10102 Backport from LTO branch: 10103 10104 2008-05-05 Kenneth Zadeck <zadeck@naturalbridge.com> 10105 Jan Hubicka <jh@suse.cz> 10106 10107 * ipa-pure-const.c 10108 (init_state, finish_state, set_function_state, generate_summary): 10109 New functions. 10110 (scan_stmt): Renamed from scan_function. Changed to keep state in 10111 local static vars rather than cgraph aux field. 10112 (propagate): Renamed from static_execute. Changed to keep state in 10113 local static vars rather than cgraph aux field. 10114 (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS. 10115 * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS. 10116 10117 2008-07-15 Kenneth Zadeck <zadeck@naturalbridge.com> 10118 10119 * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass. 10120 * ipa-reference.c (init_function_info, generate_summary, 10121 propagate): New functions. 10122 (analyze_function): Call init_function_info. 10123 (static_execute): Stripped into generate_summary and propagate. 10124 (pass_ipa_reference): Made into ipa_opt_pass. 10125 101262008-08-21 Richard Guenther <rguenther@suse.de> 10127 10128 PR tree-optimization/37181 10129 * tree-vrp.c (extract_range_from_binary_expr): Check for NULL 10130 folding result. 10131 (extract_range_from_unary_expr): Likewise. 10132 101332008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10134 10135 * diagnostic.c (pedwarn_at): Rename as pedwarn. 10136 (pedwarn): Delete. 10137 * toplev.h (pedwarn_at): Likewise. 10138 * builtins.c: Update all calls to pedwarn. 10139 * c-lex.c: Likewise. 10140 * toplev.c: Likewise. 10141 * c-tree.h: Likewise. 10142 * c-decl.c: Likewise. 10143 * c-errors.c: Likewise. 10144 * c-typeck.c: Likewise. 10145 * c-common.c: Likewise. 10146 * c-parser.c: Likewise. 10147 101482008-08-20 Joseph Myers <joseph@codesourcery.com> 10149 10150 PR target/31070 10151 * config/sparc/sparc.c (function_arg_slotno): Handle structure 10152 with MODE_VECTOR_INT mode. 10153 101542008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10155 10156 PR middle-end/179 10157 * tree-ssa.c (warn_uninit): Do not warn for variables that can be 10158 initialized outside the current module. 10159 (warn_uninitialized_var): Ignore left-hand side when walking the 10160 trees. Ignore address expressions. Examine VUSE operands in gimple 10161 statements with a variable declaration on the right-hand side. 10162 101632008-08-20 Richard Sandiford <rdsandiford@googlemail.com> 10164 10165 PR bootstrap/37155 10166 * rtlanal.c (subreg_offset_representable_p): Revert last change. 10167 101682008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10169 10170 PR 35701 10171 * c-common.c (conversion_warning): Do not warn if applying bit-and 10172 operator to unsigned constant that fits in the target type. 10173 101742008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10175 10176 PR c++/35602 10177 * c-common.c (conversion_warning): Do not warn for artificial 10178 expressions. 10179 101802008-08-20 Richard Guenther <rguenther@suse.de> 10181 10182 * tree-vrp.c (op_with_constant_singleton_value_range): New function. 10183 (extract_range_from_binary_expr): Fall back to constant propagation. 10184 (extract_range_from_unary_expr): Likewise. 10185 101862008-08-20 Richard Guenther <rguenther@suse.de> 10187 10188 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess 10189 with TREE_THIS_VOLATILE on shared nodes. 10190 (fold_stmt_r): Likewise. 10191 101922008-08-20 Jakub Jelinek <jakub@redhat.com> 10193 10194 PR c/37171 10195 * c-parser.c (c_parser_attributes): For keywords use canonical 10196 spelling for attr_name. 10197 101982008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10199 10200 * value-prof.c (check_counter): Revert wrong call to error. 10201 102022008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10203 10204 * profile.c: Update calls to inform. 10205 * value-prof.c: Update calls to inform. 10206 102072008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10208 10209 * diagnostic.c (inform): Add an explicit location_t parameter. 10210 * toplev.h (inform): Update declaration. 10211 * builtins.c: Update all calls to inform. 10212 * c-common.c: Likewise. 10213 * c-decl.c: Likewise. 10214 * c-opts.c: Likewise. 10215 * c-pch.c: Likewise. 10216 * c-pragma.c: Likewise. 10217 * c-typeck.c: Likewise. 10218 * coverage.c: Likewise. 10219 * opts.c: Likewise. 10220 * toplev.c: Likewise. 10221 * tree-cfg.c: Likewise. 10222 * tree-ssa.c: Likewise. 10223 102242008-08-20 H.J. Lu <hongjiu.lu@intel.com> 10225 10226 PR target/37169 10227 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In 10228 V2DI mode, for SSE4.1, use movq instead of vector set if the 10229 second element is zero and inter-unit moves are OK. 10230 102312008-08-20 Richard Guenther <rguenther@suse.de> 10232 10233 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More 10234 properly handle conversion/copy chains after tuplification. 10235 102362008-08-20 Richard Guenther <rguenther@suse.de> 10237 10238 * passes.c (init_optimization_passes): Move the second 10239 forwprop pass before alias computation. Remove the second 10240 DCE pass. Remove the first dominator and phi copy/const 10241 prop passes. 10242 102432008-08-20 Nick Clifton <nickc@redhat.com> 10244 10245 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler 10246 support of this feature. Do not assume that a sufficiently new 10247 assembler will support the feature regardless of the target type. 10248 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise. 10249 * configure: Regenerate. 10250 102512008-08-20 Richard Guenther <rguenther@suse.de> 10252 10253 * tree-vrp.c (found_in_subgraph): Remove. 10254 (live): New global static. 10255 (live_on_edge): New function. 10256 (blocks_visited): Remove. 10257 (register_edge_assert_for_2): Use live_on_edge. 10258 (find_conditional_asserts): Remove code dealing with 10259 found_in_subgraph. Do not walk the CFG. 10260 (find_switch_asserts): Likewise. 10261 (find_assert_locations_1): Renamed from find_assert_locations. 10262 Move finding assert locations for conditional and switch 10263 statements first. Update live bitmap. Do not walk the CFG. 10264 (find_assert_locations): New function. 10265 (insert_range_assertions): Remove entry of CFG walk. 10266 Adjust call to find_assert_locations. 10267 * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges 10268 that only can appear because of fake exit edges but assert we 10269 never try to insert on those. 10270 (fini_pre): Do not remove fake exit edges here... 10271 (execute_pre): ...but here, before committing edge inserts. 10272 102732008-08-19 Richard Guenther <rguenther@suse.de> 10274 10275 * passes.c (init_optimization_passes): Exchange store-ccp 10276 with a ccp pass. 10277 102782008-08-19 Rafael Esp��ndola <espindola@google.com> 10279 10280 * varasm.c (weak_decls): Move earlier in the file. 10281 (assemble_external): Add weak decls to the weak_decls list. 10282 (declare_weak): Don't add decls to the weak_decls list. 10283 102842008-08-19 H.J. Lu <hongjiu.lu@intel.com> 10285 10286 PR target/37157 10287 * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved 10288 before (sse2_shufpd_<mode>). 10289 102902008-08-19 Jakub Jelinek <jakub@redhat.com> 10291 10292 PR debug/37156 10293 * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees. 10294 * tree.c (block_nonartificial_location): Likewise. 10295 102962008-08-19 Richard Guenther <rguenther@suse.de> 10297 10298 PR tree-optimization/35972 10299 PR tree-optimization/23094 10300 * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk 10301 parameter. 10302 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly 10303 handle MISALIGNED_INDIRECT_REF. 10304 (get_ref_from_reference_ops): New helper. 10305 (vn_reference_lookup_pieces): Walk the use-def chain using the 10306 alias-oracle if requested. 10307 * tree-ssa-pre.c (phi_translate_1): Do reference lookup with 10308 walking the use-def chain. 10309 (compute_avail): But not here. 10310 (create_component_ref_by_pieces_1): Properly handle 10311 MISALIGNED_INDIRECT_REF. 10312 (do_regular_insertion): Handle fully redundant 10313 expressions after PHI-translation also for SSA_NAME values, not 10314 only constants. Correctly use edoubleprime for that. 10315 103162008-08-19 Ira Rosen <irar@il.ibm.com> 10317 10318 * tree-vectorizer.c (supportable_widening_operation): Support 10319 multi-step conversion, return the number of steps in such conversion 10320 and the required intermediate types. 10321 (supportable_narrowing_operation): Likewise. 10322 * tree-vectorizer.h (vect_pow2): New function. 10323 (supportable_widening_operation): Change argument types. 10324 (supportable_narrowing_operation): Likewise. 10325 (vectorizable_type_promotion): Add an argument. 10326 (vectorizable_type_demotion): Likewise. 10327 * tree-vect-analyze.c (vect_analyze_operations): Call 10328 vectorizable_type_promotion and vectorizable_type_demotion with 10329 additional argument. 10330 (vect_get_and_check_slp_defs): Detect patterns. 10331 (vect_build_slp_tree): Add an argument, don't fail in case of multiple 10332 types. 10333 (vect_analyze_slp_instance): Don't fail in case of multiple types. 10334 Call vect_build_slp_tree with correct arguments. Calculate unrolling 10335 factor according to the smallest type in the loop. 10336 (vect_detect_hybrid_slp_stmts): Include statements from patterns. 10337 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 10338 supportable_widening_operation with correct arguments. 10339 * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector 10340 operands lists according to the number of vector statements in left 10341 or right node, if exists. 10342 (vect_gen_widened_results_half): Remove unused argument. 10343 (vectorizable_conversion): Call supportable_widening_operation, 10344 supportable_narrowing_operation, and vect_gen_widened_results_half 10345 with correct arguments. 10346 (vectorizable_assignment): Change documentation, support multiple 10347 types in SLP. 10348 (vectorizable_operation): Likewise. 10349 (vect_get_loop_based_defs): New function. 10350 (vect_create_vectorized_demotion_stmts): Likewise. 10351 (vectorizable_type_demotion): Support loop-aware SLP and general 10352 multi-step conversion. Call vect_get_loop_based_defs and 10353 vect_create_vectorized_demotion_stmts for transformation. 10354 (vect_create_vectorized_promotion_stmts): New function. 10355 (vectorizable_type_promotion): Support loop-aware SLP and general 10356 multi-step conversion. Call vect_create_vectorized_promotion_stmts 10357 for transformation. 10358 (vectorizable_store): Change documentation, support multiple 10359 types in SLP. 10360 (vectorizable_load): Likewise. 10361 (vect_transform_stmt): Pass SLP_NODE to 10362 vectorizable_type_promotion and vectorizable_type_demotion. 10363 (vect_schedule_slp_instance): Move here the calculation of number 10364 of vectorized statements for each node from... 10365 (vect_schedule_slp): ... here. 10366 (vect_transform_loop): Call vect_schedule_slp without the last 10367 argument. 10368 103692008-08-19 Dorit Nuzman <dorit@il.ibm.com> 10370 10371 PR bootstrap/37152 10372 * tree-vect-transform.c (vect_create_epilog_for_reduction): Change = 10373 to == in assert statement. 10374 (vectorizable_reduction): Fix typo. 10375 103762008-08-18 H.J. Lu <hongjiu.lu@intel.com> 10377 10378 PR bootstrap/37153 10379 * value-prof.c (check_counter): Dereference pointer to overall 10380 count when printing it. 10381 103822008-08-18 H.J. Lu <hongjiu.lu@intel.com> 10383 10384 * profile.h: Really add it. 10385 103862008-08-18 H.J. Lu <hongjiu.lu@intel.com> 10387 10388 * mcf.c: Really add it. 10389 103902008-08-18 Paul Yuan <yingbo.com@gmail.com> 10391 Vinodha Ramasamy <vinodha@google.com> 10392 10393 * cgraph.c (cgraph_edge): Handle inconsistent counts when setting 10394 count_scale. 10395 * value-prof.c (check_counter): Fix the counter if 10396 flag_profile_correction is true. 10397 (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform, 10398 tree_mod_subtract_transform): 10399 Follow check_counter parameter change. 10400 * common.opt (fprofile-correction): New option. 10401 * mcf.c: New file. 10402 * profile.h: Likewise. 10403 * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h. 10404 (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts, 10405 is_inconsistent, set_bb_counts, read_profile_edge_counts): New 10406 functions. 10407 (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if 10408 flag_profile_correction is set. 10409 104102008-08-18 Richard Sandiford <rdsandiford@googlemail.com> 10411 10412 * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK. 10413 104142008-08-18 Tomas Bily <tbily@suse.cz> 10415 10416 * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P. 10417 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use 10418 CONVERT_EXPR_P. 10419 * tree-data-ref.c (split_constant_offset_1): Likewise. 10420 * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT. 10421 * tree-sra.c (sra_walk_expr): Likewise. 10422 * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise. 10423 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise. 10424 * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P. 10425 * tree-ssa-structalias.c (find_func_aliases, find_func_aliases): 10426 Likewise. 10427 * gimple.c (gimple_assign_unary_nop_p): Likewise. 10428 * tree-vect-transform.c (vectorizable_type_demotion) 10429 (vectorizable_type_promotion): Likewise. 10430 * tree-inline.c (expand_call_inline): 10431 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from) 10432 (forward_propagate_addr_expr_1, forward_propagate_comparison) 10433 (tree_ssa_forward_propagate_single_use_vars): Likewise. 10434 * expr.c (expand_expr_real_1): Likewise. 10435 * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr) 10436 (gimple_assign_unary_useless_conversion_p): Likewise. 10437 * tree-stdarg.c (execute_optimize_stdarg): Likewise. 10438 * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise. 10439 * fold-const.c (fold_unary): Likewise. 10440 * tree.h (CONVERT_EXPR_P): Likewise. 10441 * tree.c (simple_cst_equal, iterative_hash_expr): Likewise. 10442 * tree-ssa-loop-im.c (rewrite_bittest): Likewise. 10443 * tree-vrp.c: 10444 (register_edge_assert_for_2, extract_range_from_unary_expr) 10445 (register_edge_assert_for_1): Likewise. 10446 104472008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10448 10449 * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr, 10450 dconst_third_ptr, dconst_sqrt2_ptr): Declare. 10451 (enum real_value_const): Delete. 10452 (get_real_const): Delete. 10453 * real.c (get_real_const): Delete. 10454 (dconst_e_ptr): Define. 10455 (dconst_third_ptr): Define. 10456 (dconst_sqrt2_ptr): Define. 10457 * builtins.c: Update all callers. 10458 104592008-08-18 Richard Guenther <rguenther@suse.de> 10460 10461 * tree-ssa-reassoc.c (reassociate_bb): Properly reset the 10462 statement iterator after statement removal. 10463 104642008-08-18 Andreas Tobler <a.tobler@schweiz.org> 10465 10466 * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function. 10467 (detect_processor_freebsd): Likewise. 10468 (host_detect_local_cpu): Call newly added functions for FreeBSD. 10469 104702008-08-18 Richard Guenther <rguenther@suse.de> 10471 10472 * tree-cfg.c (verify_types_in_gimple_assign): Verify copies 10473 and loads have the correct types. 10474 104752008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10476 10477 PR cpp/7263 10478 * c-opts.c (cpp_opts): Remove static. 10479 * c-parser.c (cpp_opts): Declare it extern. 10480 (disable_extension_diagnostics): Handle cpp options. 10481 (enable_extension_diagnostics): Likewise. 10482 104832008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10484 10485 * diagnostics.c (permerror_at): Rename as permerror. 10486 (permerror): Delete. 10487 * toplev.h: Likewise. 10488 104892008-08-18 Richard Guenther <rguenther@suse.de> 10490 10491 * passes.c (init_optimization_passes): Remove cleanup_cfg1, 10492 sdse1 and addressables2 passes. Replace dce1 with cddce1. 10493 Move call_cdce before build_alias. Move copyrename2, 10494 cunrolli and ccp2 beafore build_alias. Re-add addressable2 10495 right after final inlining. 10496 * tree-cfg.c (build_gimple_cfg): Do not dump function here. 10497 (pass_build_cfg): But instead via TODO_dump_func. 10498 104992008-08-18 Richard Guenther <rguenther@suse.de> 10500 10501 * tree-sra.c (generate_element_init_1): Deal with NULL constructor 10502 element index. 10503 (scalarize_init): If we failed to generate some initializers 10504 do not generate zeros for not instantiated members. Instead 10505 rely on the copy out. 10506 * tree-ssa-operands.c (get_addr_dereference_operands): Warn 10507 about missing flow-sensitive alias info only if we have 10508 aliases computed. 10509 105102008-08-17 Nick Clifton <nickc@redhat.com> 10511 10512 * doc/extend.texi (Function Attributes): Fix typo in description 10513 if hot function attribute. 10514 105152008-08-17 Daniel Jacobowitz <dan@codesourcery.com> 10516 Richard Sandiford <rdsandiford@googlemail.com> 10517 10518 * doc/install.texi (--with-mips-plt): Document. 10519 * doc/invoke.texi (-mplt, -mno-plt): Document. 10520 * config.gcc (mips*-*-*): Add mips-plt to supported_defaults 10521 and handle ${with_mips_plt}. 10522 * config/mips/mips.opt (mplt): New option. 10523 * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro. 10524 (TARGET_ABICALLS_PIC2): Likewise. 10525 (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS. 10526 (OPTION_DEFAULT_SPECS): Add a mips-plt entry. 10527 (ASM_SPEC): Use !mabi=* instead of !mabi*. 10528 (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS 10529 to decide whether to output ".option picX" directives. 10530 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling. 10531 Pass -call_nonpic rather than -KPIC for -mplt. 10532 (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present 10533 on the command line. Also remove it when -mabi=64 is used without 10534 -msym32. 10535 * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete. 10536 * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle 10537 TARGET_ABICALLS_PIC0. 10538 (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of 10539 TARGET_ABICALLS. 10540 (mips16_build_function_stub): Only output ".option pic" directives 10541 and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1. 10542 (mips16_build_call_stub): Fix comment and remove redundant 10543 ".set at"/"set .noat" directives. 10544 (mips_function_rodata_section): Use the default behaviour for 10545 TARGET_ABSOLUTE_ABICALLS. 10546 (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0. 10547 (mips_global_pointer): Handle TARGET_ABICALLS_PIC0. 10548 (mips_restore_gp): Do nothing if the current function doesn't use 10549 a global pointer. 10550 (mips_expand_prologue): Only save $gp if the current function uses it. 10551 Use a normal move for TARGET_ABICALLS_PIC0. 10552 (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2. 10553 105542008-08-17 Richard Sandiford <rdsandiford@googlemail.com> 10555 10556 * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest 10557 of function when handling GLOBAL_POINTER_REGNUM. 10558 105592008-08-16 Eric Botcazou <ebotcazou@adacore.com> 10560 10561 PR ada/20548 10562 * common.opt (-fstack-check): Do not declare the variable here. 10563 (-fstack-check=): New option variant. 10564 * doc/invoke.texi (Code Gen Options): Document it. 10565 * expr.h (STACK_OLD_CHECK_PROTECT): New macro. 10566 (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used. 10567 (STACK_CHECK_STATIC_BUILTIN): New macro. 10568 * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN. 10569 * opts.c: Include expr.h. 10570 (common_handle_option) <OPT_fold_stack_check_>: New case. 10571 <OPT_fstack_check>: Likewise. 10572 * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT 10573 consistently in the test for variable-sized types. Adjust for 10574 new behaviour of flag_stack_check. 10575 * explow.c: Include except.h. 10576 (allocate_dynamic_stack_space): Do not take into account 10577 STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking. 10578 * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test 10579 for variable-sized parameters. Treat all parameters whose size is 10580 greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic 10581 stack checking is enabled. 10582 * gimplify.c (gimplify_decl_expr): Treat non-static objects whose 10583 size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized 10584 if generic stack checking is enabled. 10585 (expand_function_end): Adjust for new behaviour of flag_stack_check. 10586 * reload1.c (reload): Likewise. 10587 * stmt.c (expand_decl): Assert that all automatic variables have 10588 fixed size at this point and remove dead code. 10589 * flags.h (stack_check_type): New enumeration type. 10590 (flag_stack_check): Declare. 10591 * toplev.c (flag_stack_check): New global variable. 10592 * Makefile.in (opts.o): Add dependency on EXPR_H. 10593 (explow.o): Add dependency on except.h. 10594 105952008-08-16 Andy Hutchinson <hutchinsonandy@aim.com> 10596 10597 * config/avr/avr.c (avr_override_options): Reduce value of 10598 PARAM_INLINE_CALL_COST. 10599 106002008-08-15 Eric Botcazou <ebotcazou@adacore.com> 10601 10602 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting 10603 to BLKmode, try to fetch an inner memory reference. Use 'mode' in 10604 lieu of TYPE_MODE (type) throughout. 10605 106062008-08-15 Joseph Myers <joseph@codesourcery.com> 10607 10608 * config/arm/arm.c (add_minipool_backward_ref): Check for 10609 8-byte-aligned entries in second case of forcing insertion after a 10610 particular entry. Change third case to avoid inserting 10611 non-8-byte-aligned entries before 8-byte-aligned ones. 10612 106132008-08-15 Richard Guenther <rguenther@suse.de> 10614 10615 * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not 10616 strip components for unknown size accesses. 10617 106182008-08-15 Wolfgang Gellerich <gellerich@de.ibm.com> 10619 10620 * config/s390/2097.md New file. 10621 * config/s390/s390.md ("z10prop" attribute): Define none, 10622 z10_super, z10_super_E1, z10_super_A1, z10_super_c, 10623 z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1, 10624 z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as 10625 possible values and apply them to insns as appropriate. 10626 ("type" attribute): Removed itof and added ftrunctf,ftruncdf, 10627 ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd, 10628 fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd, 10629 fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values. 10630 ("bfp" mode attribute): Removed. Every occurence replaced 10631 with <mode>. 10632 * config/s390/s390.c (struct "z10_cost"): Updated entries. 10633 * config/s390/2084.md (insn_reservation "x_itof"): Updated 10634 type attribute. 10635 106362008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10637 10638 PR c/28152 10639 * c-parser.c (c_lex_one_token): Do not store the canonical spelling 10640 for keywords. 10641 106422008-08-14 Dorit Nuzman <dorit@il.ibm.com> 10643 10644 * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an 10645 additional argument. Support reduction when duplication is needed due 10646 to data-types of different sizes in the loop. 10647 (get_initial_def_for_induction): Fix printout. 10648 (vect_get_vec_def_for_stmt_copy): Support case where the 10649 vec_stmt_for_operand is a phi node. 10650 (vectorizable_reduction): Support reduction when duplication is needed 10651 due to data-types of different sizes in the loop. 10652 (vectorizable_call): Remove restriction to not vectorize in case we 10653 have data-types of different sizes in the loop. 10654 (vectorizable_conversion): Likewise. 10655 (vectorizable_operation): Likewise. 10656 (vectorizable_type_demotion): Likewise. 10657 (vectorizable_type_promotion): Likewise. 10658 (vectorizable_induction): Add restriction to not vectorize in case 10659 we have data-types of different sizes in the loop. 10660 106612008-08-14 Christophe Saout <christophe@saout.de> 10662 Uros Bizjak <ubizjak@gmail.com> 10663 10664 PR target/37101 10665 * config/i386/sse.md (vec_concatv2di): Remove movlps alternative. 10666 (*vec_concatv2di_rex64_sse4_1): Ditto. 10667 (*vec_concatv2di_rex64_sse): Ditto. 10668 106692008-08-14 Jakub Jelinek <jakub@redhat.com> 10670 10671 PR middle-end/37103 10672 * fold-const.c (fold_widened_comparison): Do not allow 10673 sign changes that change the result even if shorter type 10674 is wider than arg1_unw's type. 10675 106762008-08-13 Kazu Hirata <kazu@codesourcery.com> 10677 10678 * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c: 10679 Skip if the multilib testing specifies -march that does not 10680 agree with the one specified in the testcase. 10681 106822008-08-13 Joseph Myers <joseph@codesourcery.com> 10683 10684 * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or 10685 zero extend SImode values being converted to TFmode before passing 10686 to libcalls. 10687 106882008-08-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 10689 10690 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine 10691 __PPU__ when targeting the Cell/B.E. PPU processor. 10692 106932008-08-13 Eric Botcazou <ebotcazou@adacore.com> 10694 10695 * gimple.h (gimple_call_set_chain): Accept SSA variables. 10696 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>: 10697 Rematerialize the static chain, if any. 10698 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the 10699 static chain. 10700 107012008-08-13 H.J. Lu <hongjiu.lu@intel.com> 10702 10703 * dwarf2out.c (dwarf_stack_op_name): Remove prototype. 10704 (new_loc_descr): Likewise. 10705 (add_loc_descr): Likewise. 10706 (size_of_loc_descr): Likewise. 10707 (size_of_locs): Likewise. 10708 (output_loc_operands): Likewise. 10709 (output_loc_sequence): Likewise. 10710 (new_reg_loc_descr): New. 10711 (build_cfa_loc): Use it. 10712 (build_cfa_aligned_loc): Likewise. 10713 (one_reg_loc_descriptor): Likewise. 10714 (based_loc_descr): Likewise. 10715 107162008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10717 10718 PR 30551 10719 * doc/invoke.texi (Wmain): Update. 10720 * c-decl.c (start_decl): warn_main is only 0 or 1. 10721 (start_function): Likewise. Fix formatting. 10722 (finish_function): Delete redundant warning. 10723 * c.opt (Wmain): Add Var(warn_main) and Init(-1). 10724 * c-opts (c_common_handle_option): -Wall only has effect if 10725 warn_main is uninitialized. OPT_Wmain is automatically 10726 handled. -pedantic also enables Wmain. 10727 (c_common_post_options): Handle all logic for Wmain here. 10728 * c-common.c (warn_main): Delete. 10729 (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain. 10730 * c-common.h (warn_main): Delete. 10731 107322008-08-13 H.J. Lu <hongjiu.lu@intel.com> 10733 10734 PR middle-end/36701 10735 * expr.c (emit_group_store): Allocate stack temp with the 10736 largest alignment when copying from register to stack. 10737 107382008-08-13 Richard Guenther <rguenther@suse.de> 10739 10740 * tree.h (maybe_fold_offset_to_address): Declare. 10741 * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit. 10742 (ccp_fold): Handle pointer conversions the same as fold_stmt. 10743 Likewise for POINTER_PLUS_EXPR. 10744 (maybe_fold_offset_to_reference): Enable disabled code. 10745 (maybe_fold_offset_to_address): New function. 10746 (fold_stmt_r): Use it. 10747 (fold_gimple_assign): Likewise. 10748 * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address. 10749 (gimplify_expr): Likewise. 10750 107512008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10752 10753 * toplev.h (pedwarn_at): Fix declaration. 10754 107552008-08-13 Joseph Myers <joseph@codesourcery.com> 10756 10757 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, 10758 LINK_SPEC): Use %R in -Y P argument. 10759 107602008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10761 10762 PR c/15236 10763 * diagnostic.c (pedwarn_at): New. 10764 * toplev.h (pedwarn_at): Declare. 10765 * c-tree.h (build_enumerator): Update declaration. 10766 * c-decl.c (finish_enum): Update comment. 10767 (build_enumerator): Take a location parameter. Give a pedwarn but do 10768 not perform any conversion. 10769 * c-parser.c (c_parser_enum_specifier): Set correct location for 10770 enumerator. 10771 107722008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10773 10774 PR 35635 10775 * c-common.c (conversion_warning): Use a switch. Ignore boolean 10776 expressions except for conversions to signed:1 bitfields. Handle 10777 COND_EXPR with constant operands. 10778 107792008-08-13 Richard Guenther <rguenther@suse.de> 10780 10781 PR tree-optimization/15255 10782 * tree-ssa-reassoc.c (linearize_expr_tree): Declare. 10783 (struct oecount_s): New struct and VEC types. 10784 (cvec): New global. 10785 (oecount_hash): New function. 10786 (oecount_eq): Likewise. 10787 (oecount_cmp): Likewise. 10788 (zero_one_operation): New function. 10789 (build_and_add_sum): Likewise. 10790 (undistribute_ops_list): Perform un-distribution of multiplication 10791 and division on the chain of summands. 10792 (should_break_up_subtract): Also break up subtracts for factors. 10793 (reassociate_bb): Delete dead visited statements. 10794 Call undistribute_ops_list. Re-sort and optimize if it did something. 10795 * passes.c (init_optimization_passes): Move DSE before 10796 reassociation. 10797 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle 10798 PHI nodes. 10799 108002008-08-12 Janis Johnson <janis187@us.ibm.com> 10801 10802 * doc/invoke.texi (-fipa-pta): Say the option is experimental. 10803 10804 * doc/invoke.texi: Revert unintended checkin. 10805 108062008-08-12 Nathan Froyd <froydnj@codesourcery.com> 10807 10808 PR libgomp/26165 10809 * gcc.c (include_spec_function): Tweak call to find_a_file. 10810 108112008-08-12 Jakub Jelinek <jakub@redhat.com> 10812 10813 PR middle-end/37014 10814 * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR 10815 and TRUTH_ORIF_EXPR. 10816 * dojump.c (do_jump): Likewise. 10817 10818 PR tree-optimization/37084 10819 * tree-inline.c (copy_bb): Call gimple_regimplify_operands 10820 if id->regimplify, don't assume stmt is a cast assignment. 10821 108222008-08-12 Anatoly Sokolov <aesok@post.ru> 10823 10824 * final.c (final_scan_insn): Use app_enable/app_disable functions. 10825 108262008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 10827 10828 PR bootstrap/37097 10829 * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced 10830 by last change. 10831 108322008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 10833 10834 * defaults.h (TARGET_FLOAT_FORMAT): Remove. 10835 (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove. 10836 10837 * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove. 10838 * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove. 10839 * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove. 10840 * config/score/score.h (TARGET_FLOAT_FORMAT): Remove. 10841 * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove. 10842 10843 * doc/tm.texi (Storage Layout): Remove documentation for 10844 TARGET_FLOAT_FORMAT. 10845 10846 * simplify-rtx.c (simplify_binary_operation_1): Replace 10847 TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks. 10848 108492008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 10850 10851 * real.h (struct real_format): New member has_sign_dependent_rounding. 10852 * real.c (ieee_single_format, mips_single_format, motorola_single_format, 10853 spu_single_format, ieee_double_format, mips_double_format, 10854 motorola_double_format, ieee_extended_motorola_format, 10855 ieee_extended_intel_96_format, ieee_extended_intel_128_format, 10856 ieee_extended_intel_96_round_53_format, ibm_extended_format, 10857 mips_extended_format, ieee_quad_format, mips_quad_format, 10858 vax_f_format, vax_d_format, vax_g_format): Initialize it. 10859 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise. 10860 10861 * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES, 10862 MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove. 10863 * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES, 10864 MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove. 10865 (ROUND_TOWARDS_ZERO): Likewise. 10866 10867 * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion. 10868 (FLOAT_MODE_FORMAT): New macro. 10869 (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ... 10870 (MODE_COMPOSITE_P): ... this new macro. 10871 (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS, 10872 MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros. 10873 * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode. 10874 10875 * flags.h: Include "real.h". 10876 10877 * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of 10878 REAL_MODE_FORMAT_COMPOSITE_P. 10879 * simplify-rtx.c (simplify_const_binary_operation): Likewise. 10880 10881 * doc/tm.texi (Storage Layout): Remove documentation of 10882 MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS, 10883 MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of 10884 ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify 10885 they only apply to libgcc2.a. 10886 108872008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 10888 10889 * config/spu/float_disf.c: New file. 10890 * config/spu/float_unsdisf.c: New file. 10891 * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them. 10892 (LIB2FUNCS_EXCLUDE): Define. 10893 108942008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 10895 Trevor Smigiel <trevor_smigiel@playstation.sony.com> 10896 10897 * real.h (struct real_format): New member round_towards_zero. 10898 * real.c (round_for_format): Respect fmt->round_towards_zero. 10899 (ieee_single_format, mips_single_format, motorola_single_format, 10900 spu_single_format, ieee_double_format, mips_double_format, 10901 motorola_double_format, ieee_extended_motorola_format, 10902 ieee_extended_intel_96_format, ieee_extended_intel_128_format, 10903 ieee_extended_intel_96_round_53_format, ibm_extended_format, 10904 mips_extended_format, ieee_quad_format, mips_quad_format, 10905 vax_f_format, vax_d_format, vax_g_format): Initialize it. 10906 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise. 10907 10908 * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of 10909 real_format to choose rounding mode when calling MPFR functions. 10910 (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise. 10911 (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise. 10912 10913 * real.h (real_to_decimal_for_mode): Add prototype. 10914 * real.c (real_to_decimal_for_mode): Renames old real_to_decimal. 10915 Respect target rounding mode when generating decimal representation. 10916 (real_to_decimal): New stub for backwards compatibility. 10917 * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use 10918 real_to_decimal_for_mode instead of real_to_decimal. 10919 10920 * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New. 10921 109222008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 10923 Trevor Smigiel <trevor_smigiel@playstation.sony.com> 10924 10925 * real.c (spu_single_format): New variable. 10926 * real.h (spu_single_format): Declare. 10927 10928 * config/spu/spu.c (spu_override_options): Install SFmode format. 10929 (spu_split_immediate): Use integer mode to operate on pieces of 10930 floating-point values in all cases. 10931 10932 * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New. 10933 ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND. 10934 ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE. 10935 109362008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 10937 10938 * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA. 10939 109402008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 10941 10942 * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define. 10943 109442008-08-12 Jakub Jelinek <jakub@redhat.com> 10945 10946 PR c++/36688 10947 * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY 10948 on the VAR_DECL instead of TYPE_READONLY on its type. 10949 109502008-08-12 Ira Rosen <irar@il.ibm.com> 10951 10952 * tree-vectorizer.c: Depend on langhooks.h. 10953 (supportable_widening_operation): Add two arguments. Support double 10954 type conversions. 10955 (supportable_narrowing_operation): Likewise. 10956 * tree-vectorizer.h (supportable_widening_operation): Add two 10957 arguments. 10958 (supportable_narrowing_operation): Likewise. 10959 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 10960 supportable_widening_operation with correct arguments. 10961 * tree-vect-transform.c (vectorizable_conversion): Likewise. 10962 (vectorizable_type_demotion): Support double type conversions. 10963 (vectorizable_type_promotion): Likewise. 10964 * Makefile.in (tree-vectorizer.o): Depend on langhooks.h. 10965 109662008-08-11 Michael Matz <matz@suse.de> 10967 10968 * i386/i386.c (override_options): Move initialisation from 10969 flag_schedule_insns_after_reload to here from ... 10970 (optimization_options): ... here. 10971 109722008-08-11 Jakub Jelinek <jakub@redhat.com> 10973 10974 PR rtl-optimization/36998 10975 * dwarf2out.c (compute_barrier_args_size_1, 10976 compute_barrier_args_size): Temporarily remove assertions. 10977 109782008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 10979 10980 PR middle-end/20644 10981 * tree-ssa.c (struct walk_data): Add new flag 10982 warn_possibly_uninitialized. 10983 (warn_uninitialized_var): Use it. 10984 (warn_uninitialized_vars): New. 10985 (execute_early_warn_uninitialized): Call it. 10986 (execute_late_warn_uninitialized): Likewise. 10987 109882008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com> 10989 10990 PR middle-end/36238 10991 * reload1.c (gen_reload): Guard calls to get_secondary_mem 10992 for memory subregs. 10993 109942008-08-09 Jan Hubicka <jh@suse.cz> 10995 10996 PR target/37055 10997 * optabs.c (maybe_emit_unop_insn): Remove produced code if 10998 expansion failed. 10999 (expand_fix): Be prepared for expansion to fail. 11000 (expand_sfix_optab): Remove instructions if expansion failed. 11001 110022008-08-09 Anatoly Sokolov <aesok@post.ru> 11003 11004 * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to 11005 avr31 architecture. 11006 * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.). 11007 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). 11008 110092008-08-09 Richard Sandiford <rdsandiford@googlemail.com> 11010 11011 * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add 11012 mips/t-libgcc-mips16 to tmake_file. 11013 * config/mips/mips-protos.h (mips_call_type): New enum. 11014 (mips_pic_base_register, mips_got_load): Declare. 11015 (mips_restore_gp): Take an rtx argument. 11016 (mips_use_pic_fn_addr_reg_p): Declare. 11017 (mips_expand_call): Replace the sibcall_p argument with 11018 a mips_call_type argument. Add a lazy_p parameter. 11019 (mips_split_call): Declare. 11020 * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro. 11021 (MIPS16_PIC_TEMP): Likewise. 11022 (reg_class): Delete M16_NA_REGS. 11023 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. 11024 (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros. 11025 (mips_split_hi_p): Declare. 11026 * config/mips/mips.c (mips_split_hi_p): New array. 11027 (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS. 11028 (mips_got_symbol_type_p): New function. 11029 (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P. 11030 (mips16_stub_function_p): New function. 11031 (mips16_local_function_p): Likewise. 11032 (mips_use_pic_fn_addr_reg_p): Likewise. 11033 (mips_cannot_force_const_mem): Return false for HIGHs. 11034 Extend CONST_INT and symbolic handling to MIPS16, using 11035 mips_symbol_insns to check that the base symbol type is a 11036 legitimate constant. Reject GOT-based constants if 11037 TARGET_MIPS16_PCREL_LOADS. 11038 (mips_const_insns): Check targetm.cannot_force_const_mem when 11039 decomposing a symbolic base and a large offset. 11040 (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters. 11041 When calling a function that needs $25 from MIPS16 code, 11042 move the target address into $25 separately and add a USE 11043 to the call insn. 11044 (mips16_gp_pseudo_reg): Insert the initializer immediately 11045 before the first real insn. 11046 (mips_pic_base_register, mips_got_load): New functions. 11047 (mips_split_symbol): Generalize the name of the LO_SUM_OUT 11048 parameter to LOW_OUT. Say that it can be any valid SET_SRC 11049 when splitting a load-address operation. Split SYMBOL_GOT_DISP 11050 constants and highs of SYMBOL_GOT_PAGE_OFST constants. 11051 (mips_call_tls_get_addr): Update the call to mips_expand_call, 11052 also passing NULL_RTX rather than const0_rtx as the aux argument. 11053 (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p 11054 instead of TARGET_EXPLICIT_RELOCS. 11055 (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P. 11056 (mips_load_call_address): Replace the sibcall_p argument with 11057 a mips_call_type argument. Use mips_got_load. 11058 (mips16_local_alias): New structure. 11059 (mips16_local_aliases): New variable. 11060 (mips16_local_aliases_hash): New function. 11061 (mips16_local_aliases_eq): Likewise. 11062 (mips16_local_alias): Likewise. 11063 (mips16_stub_function): Likewise. 11064 (mips16_build_function_stub): Create a local alias for the target 11065 function. Handle TARGET_ABICALLS. For PIC abicalls, emit a 11066 .cpload directive and an R_MIPS_NONE relocation for the target 11067 function, then load the alias rather than the function itself. 11068 Wrap the non-PIC abicalls version in ".option pic0/.option pic2". 11069 (mips16_copy_fpr_return_value): Use mips16_stub_function and 11070 mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol. 11071 (mips16_build_call_stub): Replace the FN parameter with an 11072 FN_PTR parameter. Force the address into a register if it 11073 isn't a call_insn_operand; don't rely on the caller to do this. 11074 If a call to a locally-defined and locally-binding MIPS16 11075 function must be made indirectly, redirect the call to the 11076 function's local alias. Use mips16_stub_function_p, 11077 mips16_stub_function, mips_expand_call and use_reg. 11078 Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols. 11079 Use explicit %hi and %lo accesses where possible. 11080 Use MIPS_CALL to generate the correct code form of a 11081 jal instruction. Add clobbers of $18 instead of uses. 11082 Update the call to mips_emit_call_insn. 11083 (mips_expand_call): Replace the SIBCALL_P argument with a 11084 mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value. 11085 Take a LAZY_P parameter. Call mips16_build_call_stub first, 11086 allowing it to modify the call address. Update the calls to 11087 mips_load_call_address and mips_emit_call_insn. 11088 (mips_split_call): New function. 11089 (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if 11090 !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of 11091 SYMBOL_GOT_PAGE_OFST, for MIPS16 code. 11092 (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p. 11093 (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM 11094 if TARGET_MIPS16. 11095 (mips_cprestore_slot): New function. 11096 (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16 11097 and use mips_cprestore_slot. 11098 (mips_output_function_prologue): Handle TARGET_MIPS16 for 11099 LOADGP_OLDABI. 11100 (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16, 11101 then use a copygp_mips16 instruction to set up $28. 11102 (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too. 11103 (mips16_lay_out_constants): Call split_all_insns_noflow. 11104 (mips_reorg_process_insns): Explicitly set all_noreorder_p to 11105 false if TARGET_MIPS16. 11106 (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16. 11107 (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the 11108 mips_dangerous_for_la25_p approach for MIPS16 PIC calls too. 11109 (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for 11110 MIPS16 code. Allow MIPS16 o32 PIC. 11111 (mips_override_options): Allow MIPS16 o32 PIC. 11112 * config/mips/mips.md: Lower CONST_GP_P moves into register moves 11113 after reload if TARGET_USE_GOT. 11114 (UNSPEC_COPYGP): New constant. 11115 (length): Use a default length of 8 for MIPS16 GOT loads. 11116 (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT. 11117 (*got_page<mode>): Check mips_split_hi_p. 11118 (*got_disp<mode>, *got_page<mode>): Use mips_got_load. 11119 (unspec_got<mode>, unspec_call<mode>): New expanders. 11120 (load_got<mode>, load_call<mode>): Remove the length attributes. 11121 Use a got attribute instead of a type attribute. 11122 (copygp_mips16): New insn. 11123 (restore_gp): Add a scratch clobber and pass it to mips_restore_gp. 11124 (load_call<mode>): Use a "d" constraint instead of an "r" constraint. 11125 (sibcall, sibcall_value, call, call_value): Update the calls 11126 to mips_expand_call. 11127 (call_internal, call_value_internal): Use mips_split_call. 11128 (call_value_multiple_internal): Likewise. 11129 (call_split): Move after call_internal (the insn it is split from). 11130 (call_internal_direct, call_value_internal_direct): Turn into 11131 define_insn_and_splits. Split if TARGET_SPLIT_CALLS. 11132 (call_direct_split, call_value_direct_split): New patterns. 11133 * config/mips/constraints.md (c): Handle TARGET_MIPS16 first 11134 and use M16_REGS instead of M16_NA_REGS. 11135 * config/mips/predicates.md (const_call_insn_operand): Replace 11136 the TARGET_ABSOLUTE_ABICALLS-based check with a more general 11137 mips_use_pic_fn_addr_reg_p check. 11138 (move_operand): Reject HIGHs if mips_split_hi_p. 11139 * config/mips/mips16.S: Assembly as empty if the ABI is not suitable. 11140 (__mips16_floatunsisf): Inline __mips16_floatsisf. 11141 (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25. 11142 * config/mips/libgcc-mips16.ver: New file. 11143 * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add 11144 $(srcdir)/config/mips/libgcc-mips16.ver. 11145 111462008-08-09 Richard Sandiford <rdsandiford@googlemail.com> 11147 11148 * config/mips/mips.c (mips_unspec_address_offset): Move earlier 11149 in file. 11150 (mips_unspec_address, mips_unspec_offset_high): Likewise. 11151 (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise. 11152 (mips16_cfun_returns_in_fpr_p): Likewise. 11153 111542008-08-09 Richard Sandiford <rdsandiford@googlemail.com> 11155 11156 * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary. 11157 * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2 11158 rather than 4 to PC. 11159 111602008-08-09 Richard Sandiford <rdsandiford@googlemail.com> 11161 11162 * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15. 11163 (FUNCTION_PROFILER): Save the static chain pointer into $2 11164 beforehand and restore it aftewards. 11165 (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target 11166 address directly into $25 and call the function through $25; 11167 do not clobber $3. Pad the DImode version to cover the space 11168 left by the deleted $25 <- $3 move. 11169 (TRAMPOLINE_SIZE): Adjust the size of the SImode version after 11170 the removal of the $25 <- $3 move. 11171 (INITIALIZE_TRAMPOLINE): Update offsets accordingly. 11172 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h. 11173 111742008-08-09 Richard Sandiford <rdsandiford@googlemail.com> 11175 Daniel Jacobowitz <dan@codesourcery.com> 11176 11177 * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete. 11178 * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete. 11179 (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete. 11180 * config/mips/mips.c (mips_start_function_definition): New function. 11181 (mips_end_function_definition): Likewise. 11182 (mips_output_function_prologue): Use mips_start_function_definition. 11183 (mips_output_function_epilogue): Use mips_end_function_definition. 11184 (build_mips16_function_stub): Use mips_start_function_definition 11185 and mips_end_function_definition. 11186 (build_mips16_call_stub): Likewise. 11187 111882008-08-09 Richard Guenther <rguenther@suse.de> 11189 11190 * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn. 11191 * gimple.h (gimple_call_fn): Adjust comment. 11192 (gimple_call_set_fndecl): New function. 11193 (gimple_call_fndecl): Adjust for GIMPLE_CALL no 11194 longer having bare FUNCTION_DECL operand. 11195 (gimple_call_return_type): Likewise. 11196 * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL. 11197 11198 * value-prof.c (gimple_divmod_fixed_value): Do not emit labels. 11199 (gimple_mod_pow2): Likewise. 11200 (gimple_mod_subtract): Likewise. 11201 (gimple_ic): Likewise. 11202 (gimple_stringop_fixed_value): Likewise. 11203 (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no 11204 longer having bare FUNCTION_DECL operand. 11205 * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl. 11206 * omp-low.c (optimize_omp_library_calls): Likewise. 11207 * cgraphunit.c (update_call_expr): Likewise. 11208 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise. 11209 (execute_convert_to_rsqrt): Likewise. 11210 * cfgexpand.c (gimple_to_tree): Simplify. 11211 (release_stmt_tree): Fix for GIMPLE_CALL no longer having 11212 bare FUNCTION_DECL operand. 11213 * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type. 11214 (convert_gimple_call): Use gimple_call_fndecl. 11215 * c-common.c (c_warn_unused_result): Likewise. 11216 112172008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 11218 11219 PR c/17880 11220 * c-typeck.c (digest_init): Call verify_sequence_points from here. 11221 (c_finish_return): Likewise. 11222 (c_start_case): Likewise. 11223 * c-common.c (warn_for_collisions_1): Use explicit location in warning. 11224 * c-parser.c (c_parser_condition): New. Call 11225 verify_sequence_points. 11226 (c_parser_paren_condition): Call c_parser_condition. 11227 (c_parser_for_statement): Call c_parser_condition. 11228 112292008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 11230 11231 PR 36901 11232 * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New. 11233 * diagnostic.c (pedantic_warning_kind, permissive_error_kind): 11234 Moved from diagnostic.h 11235 (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and 11236 DK_PERMERROR. 11237 (emit_diagnostic): New. 11238 (warning0, pedwarn0): Delete. 11239 (warning, warning_at, pedwarn, permerror): Return bool. 11240 * diagnostic.h (pedantic_warning_kind, permissive_error_kind): 11241 Moved to diagnostic.c. 11242 (struct diagnostic_context): Use correct type for 11243 classify_diagnostic. 11244 (diagnostic_report_diagnostic): Update declaration. 11245 (emit_diagnostic): Declare. 11246 * errors.c (warning): Return bool. 11247 * errors.h (warning): Update declaration. 11248 * toplev.h (warning0, pedwarn0): Delete. 11249 (warning, warning_at, pedwarn, permerror): Return bool. 11250 * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN. 11251 * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use 11252 inform. Update all calls. 11253 (diagnose_mismatched_decls): Check return value of warning/pedwarn 11254 before giving informative note. 11255 (implicit_decl_warning): Likewise. 11256 * c-typeck.c (build_function_call): Likewise. 11257 * tree-sssa.c (warn_uninit): Likewise. 11258 * builtins.c (gimplify_va_arg_expr): Likewise. 11259 112602008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 11261 11262 PR 7651 11263 * doc/invoke.texi (-Wextra): Move warning from here... 11264 (-Wuninitialized): ... to here. 11265 112662008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 11267 11268 PR 28875 11269 * flags.h (set_Wunused): Delete 11270 * toplev.c (process_options): Handle Wunused flags here. 11271 * opts.c (maybe_warn_unused_parameter): Delete. 11272 (common_handle_option): Replace set_Wunused by warn_unused. 11273 (set_Wextra): Do not handle Wunused-parameter here. 11274 (set_Wunused): Delete. 11275 * c-opts.c (c_common_handle_option): Replace set_Wunused by 11276 warn_unused. 11277 * common.opt (Wunused): Add Var and Init. 11278 (Wunused-function): Likewise. 11279 (Wunused-label): Likewise. 11280 (Wunused-parameter): Likewise. 11281 (Wunused-value): Likewise. 11282 (Wunused-variable): Likewise. 11283 112842008-08-08 Peter Bergner <bergner@vnet.ibm.com> 11285 11286 * doc/invoke.texi: Add cpu_type power7. 11287 * config.in (HAVE_AS_VSX): New. 11288 * config.gcc: Add cpu_type power7. 11289 * configure.ac (HAVE_AS_VSX): Check for assembler support of the 11290 VSX instructions. 11291 * configure: Regenerate. 11292 * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to 11293 power5. 11294 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define. 11295 (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7. 11296 (EXTRA_SPECS): Add asm_cpu_power7 spec string. 11297 112982008-08-08 Dorit Nuzman <dorit@il.ibm.com> 11299 11300 * tree-vect-transform.c (vectorizable_conversion): Pass the integral 11301 type to vectorize.builtin_conversion. 11302 (vectorizable_conversion): Likewise. 11303 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes 11304 integral type as input. 11305 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for 11306 FIX_TRUNC_EXPR. 11307 (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS 11308 and ALTIVEC_BUILTIN_VCTSXS. 11309 (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix 11310 formatting. 11311 113122008-08-08 Richard Guenther <rguenther@suse.de> 11313 11314 * tree-ssa-ccp.c (likely_value): Calls are not all varying. 11315 (surely_varying_stmt_p): Calls are varying only if they are 11316 non-builtin and not indirect or have no result. 11317 (ccp_fold): Re-instantiate code before the tuples merge. 11318 113192008-08-08 Richard Guenther <rguenther@suse.de> 11320 11321 PR tree-optimization/37056 11322 * gimple.h (gimple_assign_rhs_class): New helper function. 11323 * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle 11324 unary operations properly. 11325 113262008-08-07 Jan Hubicka <jh@suse.cz> 11327 11328 * i386.h (ix86_size_cost): Declare. 11329 (ix86_cur_cost): New function macro. 11330 * i386.md (peepholes expanding size and splitters): Predicate by 11331 optimize_insn_for_speed_p. 11332 (peepholes reduce size and splitters): Predicate by 11333 optimize_insn_for_size_p. 11334 * i386.c (ix86_size_cost): Rename from ... 11335 (size_cost): This one. 11336 (override_options): Update. 11337 (decide_alg): Likewise. 11338 (ix86_expand_clear): Use RTL profile. 11339 (ix86_pad_returns): Use RTL profile. 11340 113412008-08-07 Jan Hubicka <jh@suse.cz> 11342 11343 * recog.c (split_all_insns): Set RTL profile 11344 (peephole2_optimize): Likewise. 11345 * function.c (thread_prologue_and_epilogue_insns): Likewise. 11346 * combine.c (combine_instructions): Likewise. 11347 113482008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11349 11350 * c-common.c (c_common_reswords): Also warn about keyword "bool". 11351 113522008-08-07 Bob Wilson <bob.wilson@acm.org> 11353 11354 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming 11355 value in a6 after the set_frame_ptr insn. 11356 113572008-08-07 Richard Henderson <rth@redhat.com> 11358 11359 PR debug/37033 11360 * gcc.c (cpp_options): Pass along -g*. 11361 113622008-08-07 Joseph Myers <joseph@codesourcery.com> 11363 11364 * config/arm/arm.c (output_move_neon): Update comment describing 11365 big-endian vector layout. 11366 (arm_assemble_integer): Do not handle big-endian NEON vectors 11367 specially. 11368 * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>, 11369 neon_vget_lane<mode>_sext_internal, 11370 neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust 11371 element indices for big-endian. 11372 113732008-08-07 Richard Henderson <rth@redhat.com> 11374 11375 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New. 11376 * configure, config.in: Rebuild. 11377 * debug.h (dwarf2out_do_cfi_asm): Declare. 11378 * c-cppbuiltin.c (c_cpp_builtins): Use it. 11379 * dwarf2out.c (dwarf2out_do_cfi_asm): New. 11380 (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info, 11381 dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it. 11382 113832008-08-07 Joseph Myers <joseph@codesourcery.com> 11384 11385 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal, 11386 movv2si_internal): Combine into mov<mode>_internal. 11387 (movv2si_internal_2): Remove. 11388 113892008-08-07 Jan Hubicka <jh@suse.cz> 11390 11391 PR target/37048 11392 * i386.md (single stringop patterns): Enable unconditionally. 11393 113942008-08-07 H.J. Lu <hongjiu.lu@intel.com> 11395 11396 PR target/36992 11397 * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128. 11398 11399 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128. 11400 (bdesc_args): Add IX86_BUILTIN_MOVQ128. 11401 11402 * config/i386/sse.md (sse2_movq128): New. 11403 11404 * doc/extend.texi: Document __builtin_ia32_movq128. 11405 114062008-08-07 Richard Guenther <rguenther@suse.de> 11407 11408 PR middle-end/37042 11409 * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all 11410 pointers can access anything. 11411 114122008-08-06 Jan Hubicka <jh@suse.cz> 11413 11414 * optabs.c (emit_unop_insn): Break out to ... 11415 (maybe_emit_unop_insn): ... this one. 11416 (expand_sfix_optab): Use maybe variant. 11417 * optabs.h (maybe_emit_unop_insn): Declare. 11418 11419 * i386.md (mov0 patterns): Enable by default. 11420 (FP conversion expanders): Disable expansion of code expanding 11421 sequences when instruction should be optimized for size. 11422 (single strinop patterns): Enable when optimizing for size. 11423 (string expanders): Disable expanding of code expanding sequences 11424 when optimizning instruction for size. 11425 * i386.c (ix86_expand_vector_move_misalign): Do code size optimization 11426 per BB basis. 11427 (ix86_fp_comparison_sahf_cost): Likewise. 11428 (ix86_expand_branch): Likewise. 11429 (ix86_expand_ashl_const): Likewise. 11430 (ix86_split_ashl): Likewise. 11431 (ix86_expand_strlen): Likewise. 11432 (ix86_emit_fp_unordered_jump): Likewie. 11433 114342008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11435 11436 * c-common.c: Fix typo. 11437 (c_common_reswords): Activate more C++ keyword warnings. 11438 11439 * matrix-reorg.c (compute_offset): Avoid C++ keywords. 11440 114412008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 11442 11443 PR 26785 11444 * diagnostic.c (permerror_at): New. 11445 * toplev.h (permerror_at): Declare. 11446 114472008-08-06 Victor Kaplansky <victork@il.ibm.com> 11448 Ira Rosen <irar@il.ibm.com> 11449 11450 * tree-vect-transform.c (vect_model_simple_cost): Return 11451 immediately if stmt is pure SLP. 11452 (vect_model_store_cost): Ditto. 11453 (vect_model_load_cost): Ditto. 11454 (vectorizable_store): Remove PURE_SLP check before call 11455 to vect_model_store_cost. 11456 (vect_model_store_cost): When checking whether stmt describe 11457 strided access, add a check that it is not slp_node. 11458 114592008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 11460 11461 PR 8715 11462 * c-common.c (warn_for_sign_compare): New. Handle separately the 11463 case that 'constant' is zero. 11464 * c-typeck.c (build_binary_op): Move code to c-common.c 11465 114662008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11467 11468 * config/alpha/alpha.c (alpha_preferred_reload_class, 11469 alpha_secondary_reload, alpha_emit_set_const_1, function_value, 11470 alpha_output_mi_thunk_osf): Avoid C++ keywords. 11471 * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise. 11472 * config/arm/arm.md: Likewise. 11473 * config/avr/avr-protos.h (preferred_reload_class, 11474 test_hard_reg_class, avr_simplify_comparison_p, 11475 out_shift_with_cnt, class_max_nregs): Likewise. 11476 * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p, 11477 output_movqi, output_movhi, output_movsisf, out_shift_with_cnt, 11478 preferred_reload_class, test_hard_reg_class): Likewise. 11479 * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok, 11480 bfin_memory_move_cost, bfin_secondary_reload, 11481 bfin_output_mi_thunk): Likewise. 11482 * config/crx/crx.c (crx_secondary_reload_class, 11483 crx_memory_move_cost): Likewise. 11484 * config/frv/frv-protos.h (frv_secondary_reload_class, 11485 frv_class_likely_spilled_p, frv_class_max_nregs): Likewise. 11486 * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg, 11487 frv_secondary_reload_class, frv_class_likely_spilled_p, 11488 frv_class_max_nregs): Likewise. 11489 * config/h8300/h8300.c (h8300_classify_operand, 11490 h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count): 11491 Likewise. 11492 * config/i386/winnt.c (i386_pe_declare_function_type): Likewise. 11493 * config/ia64/ia64.c (ia64_preferred_reload_class, 11494 ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise. 11495 * config/iq2000/iq2000.c (gen_int_relational): Likewise. 11496 * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare): 11497 Likewise. 11498 * config/m68hc11/m68hc11.c (preferred_reload_class, 11499 m68hc11_memory_move_cost): Likewise. 11500 * config/mcore/mcore.c (mcore_secondary_reload_class, 11501 mcore_reload_class): Likewise. 11502 * config/mips/mips.c (mips_hard_regno_mode_ok_p, 11503 mips_class_max_nregs, mips_cannot_change_mode_class, 11504 mips_preferred_reload_class, mips_secondary_reload_class, 11505 mips_output_mi_thunk): Likewise. 11506 * config/mmix/mmix.c (mmix_preferred_reload_class, 11507 mmix_preferred_output_reload_class, mmix_secondary_reload_class): 11508 Likewise. 11509 * config/mn10300/mn10300.c (mn10300_secondary_reload_class): 11510 Likewise. 11511 * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions, 11512 pa_can_combine_p, pa_cannot_change_mode_class): Likewise. 11513 * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. 11514 * config/rs6000/rs6000.c (paired_expand_vector_init, 11515 rs6000_secondary_reload_class, rs6000_output_mi_thunk, 11516 compare_section_name, rs6000_memory_move_cost): Likewise. 11517 * config/s390/s390.c (s390_emit_compare_and_swap, 11518 s390_preferred_reload_class, s390_secondary_reload, 11519 legitimize_pic_address, legitimize_tls_address, 11520 legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic, 11521 s390_class_max_nregs): Likewise. 11522 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. 11523 * config/s390/s390.md: Likewise. 11524 * config/score/score-protos.h (score_secondary_reload_class, 11525 score_preferred_reload_class): Likewise. 11526 * config/score/score.c (score_preferred_reload_class, 11527 score_secondary_reload_class): Likewise. 11528 * config/score/score3.c (score3_output_mi_thunk, 11529 score3_preferred_reload_class, score3_secondary_reload_class, 11530 score3_hard_regno_mode_ok): Likewise. 11531 * config/score/score3.h (score3_preferred_reload_class, 11532 score3_secondary_reload_class): Likewise. 11533 * config/score/score7.c (score7_output_mi_thunk, 11534 score7_preferred_reload_class, score7_secondary_reload_class, 11535 score7_hard_regno_mode_ok): Likewise. 11536 * config/score/score7.h (score7_preferred_reload_class, 11537 score7_secondary_reload_class): Likewise. 11538 * config/sh/sh.c (prepare_move_operands, output_far_jump, 11539 output_branchy_insn, add_constant, gen_block_redirect, 11540 sh_insn_length_adjustment, sh_cannot_change_mode_class, 11541 sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise. 11542 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. 11543 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi, 11544 xstormy16_output_cbranch_si, xstormy16_secondary_reload_class, 11545 xstormy16_preferred_reload_class): Likewise. 11546 * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap, 11547 xtensa_expand_atomic, override_options, 11548 xtensa_preferred_reload_class, xtensa_secondary_reload_class): 11549 Likewise. 11550 * reorg.c (try_merge_delay_insns): Likewise. 11551 * tree.c (merge_dllimport_decl_attributes): Likewise. 11552 11553 * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA. 11554 115552008-08-06 Michael Matz <matz@suse.de> 11556 11557 * Makefile.in (write_entries_to_file): Quote words. 11558 * gengtype.c (read_input_line): Skip over leading white-space. 11559 115602008-08-06 Marc Gauthier <marc@tensilica.com> 11561 11562 * config.gcc: Match more processor names for Xtensa. 11563 * configure.ac: Likewise. 11564 * doc/install.texi (Specific): Likewise. 11565 * configure: Regenerate. 11566 115672008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11568 11569 * builtins.c (expand_builtin_profile_func): Avoid C++ keywords. 11570 * calls.c (avoid_likely_spilled_reg): Likewise. 11571 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise. 11572 * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise. 11573 * config/i386/i386.c (ix86_expand_special_args_builtin, 11574 ix86_secondary_reload): Likewise. 11575 * except.c (struct eh_region, gen_eh_region_catch, 11576 remove_unreachable_regions, duplicate_eh_regions, 11577 assign_filter_values, build_post_landing_pads, 11578 sjlj_find_directly_reachable_regions, remove_eh_handler, 11579 reachable_next_level, foreach_reachable_handler, 11580 can_throw_internal_1, can_throw_external_1, 11581 collect_one_action_chain): Likewise. 11582 * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise. 11583 * fold-const.c (twoval_comparison_p, eval_subst): Likewise. 11584 * function.c (update_temp_slot_address, instantiate_new_reg, 11585 instantiate_virtual_regs_in_rtx, 11586 instantiate_virtual_regs_in_insn): Likewise. 11587 * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise. 11588 * gimplify.c (gimplify_call_expr, gimplify_init_constructor, 11589 gimplify_cleanup_point_expr): Likewise. 11590 * ipa-cp.c (ipcp_lattice_changed): Likewise. 11591 * passes.c (next_pass_1): Likewise. 11592 * print-tree.c (print_node_brief, print_node): Likewise. 11593 * profile.c (branch_prob): Likewise. 11594 * tree-dump.c (dump_register): Likewise. 11595 * tree-eh.c (replace_goto_queue_cond_clause, lower_catch): 11596 Likewise. 11597 * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks, 11598 copy_statement_list, remap_gimple_op_r, copy_tree_body_r, 11599 copy_edges_for_bb, copy_cfg_body, copy_tree_r, 11600 copy_arguments_for_versioning, copy_static_chain): Likewise. 11601 * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl, 11602 add_new_name_mapping, register_new_name_mapping): Likewise. 11603 * tree-mudflap.c (mf_xform_derefs): Likewise. 11604 * tree-predcom.c (struct chain, dump_chain, replace_ref_with, 11605 get_init_expr, combine_chains): Likewise. 11606 * tree-pretty-print.c (dump_generic_node): Likewise. 11607 * tree-ssa-structalias.c (create_variable_info_for): Likewise. 11608 * tree-vrp.c (simplify_cond_using_ranges): Likewise. 11609 * tree.c (substitute_in_expr, iterative_hash_expr): Likewise. 11610 * value-prof.c (gimple_duplicate_stmt_histograms): Likewise. 11611 116122008-08-06 H.J. Lu <hongjiu.lu@intel.com> 11613 11614 PR middle-end/37010 11615 * calls.c (expand_call): Use the biggest preferred stack 11616 boundary. 11617 116182008-08-06 Michael Matz <matz@suse.de> 11619 11620 PR target/36613 11621 * reload.c (push_reload): Merge in,out,in_reg,out_reg members 11622 for reused reload, instead of overwriting them. 11623 116242008-08-06 H.J. Lu <hongjiu.lu@intel.com> 11625 11626 PR middle-end/37009 11627 * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary 11628 for incoming stack boundary. 11629 11630 * function.c (assign_parm_find_entry_rtl): Update 11631 parm_stack_boundary. 11632 11633 * function.h (rtl_data): Add parm_stack_boundary. 11634 11635 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check 11636 parm_stack_boundary for incoming stack boundary. 11637 116382008-08-06 Joseph Myers <joseph@codesourcery.com> 11639 11640 * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset 11641 for unrepresentable subregs or treat them as equal to other regs 11642 or subregs with the same register number. 11643 116442008-08-06 Aldy Hernandez <aldyh@redhat.com> 11645 11646 PR middle-end/35432 11647 * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types 11648 if want_value. 11649 116502008-08-06 Jan Hubicka <jh@suse.cz> 11651 11652 * predict.c (maybe_hot_frequency_p): When profile is absent, all 11653 frequencies might be hot. 11654 116552008-08-06 Andreas Krebbel <krebbel1@de.ibm.com> 11656 11657 * reload.c (find_reloads): Force constants into literal pool 11658 also if they are wrapped in a SUBREG. 11659 116602008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com> 11661 11662 PR target/35659 11663 * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ... 11664 * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here. 11665 Don't allow predicated instructions for data speculation. 11666 * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move 11667 declaration. 11668 116692008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com> 11670 11671 * haifa-sched.c (extend_global): Split to extend_global_data and 11672 extend_region_data. Update all uses. 11673 (extend_all): Rename to extend_block_data. 11674 116752008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com> 11676 11677 * sched-rgn.c (new_ready): Check if instruction can be 11678 speculatively scheduled before attempting speculation. 11679 (debug_rgn_dependencies): Remove wrongful assert. 11680 116812008-08-05 Bob Wilson <bob.wilson@acm.org> 11682 11683 * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h. 11684 116852008-08-05 Bob Wilson <bob.wilson@acm.org> 11686 11687 * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist. 11688 (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array, 11689 va_size, and type_size. 11690 116912008-08-04 Jason Merrill <jason@redhat.com> 11692 11693 PR c++/37016 11694 * tree-ssa.c (useless_type_conversion_p_1): Call langhook 11695 if TYPE_STRUCTURAL_EQUALITY_P is true for both types. 11696 116972008-08-05 Richard Henderson <rth@redhat.com> 11698 11699 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality. 11700 * configure: Rebuild. 11701 117022008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com> 11703 11704 PR tree-opt/37024 11705 * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p 11706 instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment 11707 is a conversion. 11708 117092008-08-05 Richard Henderson <rth@redhat.com> 11710 11711 * Makefile.in (c-cppbuiltin.o): Depend on debug.h. 11712 * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM. 11713 * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it. 11714 * common.opt (fdwarf2-cfi-asm): New. 11715 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New. 11716 * config.in, configure: Rebuild. 11717 * dwarf2asm.c (dw2_asm_output_data_raw): New. 11718 (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): 11719 New. 11720 (dw2_force_const_mem): Externalize. 11721 * dwarf2asm.h: Update. 11722 * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't 11723 generate a real label. 11724 (output_cfi_directive): New. 11725 (add_fde_cfi): If flag_dwarf2_cfi_asm, use it. 11726 (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm. 11727 (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality, 11728 and .cfi_lsda. 11729 (dwarf2out_end_epilogue): Emit .cfi_endproc. 11730 (output_loc_operands_raw, output_loc_sequence_raw): New. 11731 (output_cfa_loc_raw): New. 11732 117332008-08-05 Paul Brook <paul@codesourcery.com> 11734 11735 * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options. 11736 * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16. 11737 (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16. 11738 (arm_file_start): Add FPUTYPE_VFP3D16. Rename vfp3 to vfpv3. 11739 * config/arm/arm.h (TARGET_VFPD32): Define. 11740 (TARGET_VFP3): Use TARGET_VFPD32. 11741 (fputype): Add FPUTYPE_VFP3D16. 11742 (LAST_VFP_REGNUM): Use TARGET_VFPD32. 11743 * config/arm/constraints.md ("w"): Use TARGET_VFPD32. 11744 * config/arm/arm-cores.def: Add cortex-r4f. 11745 * config/arm/arm-tune.md: Regenerate. 11746 117472008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 11748 11749 * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus. 11750 Reword some comments throughout the file. 11751 11752 (MFC_MIN_DMA_LIST_ELEMENTS): New define. 11753 (MFC_MAX_DMA_LIST_ELEMENTS): Likewise. 11754 (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of 11755 MFC_MIN_DMA_LIST_ELEMENTS. 11756 (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of 11757 MFC_MAX_DMA_LIST_ELEMENTS. 11758 11759 (MFC_START_ENABLE): Remove PPU-only define. 11760 (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise. 11761 (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise. 11762 11763 (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants. 11764 (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise. 11765 (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise. 11766 (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise. 11767 (MFC_GETB_CMD, MFC_GETF_CMD): Likewise. 11768 (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise. 11769 (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise. 11770 11771 (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines. 11772 (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise. 11773 (mfc_sdcrt, mfc_sdcrtst): Likewise. 11774 (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise. 11775 11776 (spu_read_machine_status): Fix typo. 11777 117782008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 11779 11780 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized 11781 SUBREG of multi-word hard register. 11782 * config/spu/spu.c (valid_subreg): Likewise. 11783 (adjust_operand): Handle SUBREGs of multi-word hard registers. 11784 117852008-08-04 Richard Guenther <rguenther@suse.de> 11786 11787 * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add 11788 the candidate with the stripped base if that base is different 11789 from the original base even for offset zero. 11790 117912008-08-04 Richard Guenther <rguenther@suse.de> 11792 11793 PR middle-end/36691 11794 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly 11795 check for no_overflow. 11796 117972008-08-04 Richard Guenther <rguenther@suse.de> 11798 11799 * tree-vect-transform.c (vectorizable_call): Fix tuplification. 11800 118012008-08-04 Paul Brook <paul@codesourcery.com> 11802 11803 * cofig/arm/arm.c (thumb_core_reg_alloc_order): New. 11804 (arm_order_regs_for_local_alloc): New function. 11805 * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add 11806 prototype. 11807 * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define. 11808 118092008-08-04 H.J. Lu <hongjiu.lu@intel.com> 11810 11811 PR target/37012 11812 * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD 11813 instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack. 11814 (ix86_expand_epilogue): Likewise. 11815 118162008-08-04 H.J. Lu <hongjiu.lu@intel.com> 11817 11818 * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo 11819 in comments. 11820 118212008-08-03 Uros Bizjak <ubizjak@gmail.com> 11822 11823 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x 11824 to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES. 11825 (*movv2sf_internal_rex64): Ditto. 11826 118272008-08-03 Jan Hubicka <jh@suse.cz> 11828 11829 * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi, 11830 expand_builtin_strcat): Upse optimize_insn_for_speed predicate. 11831 * expmed.c (expand_smod_pow2): Likewise. 11832 118332008-08-03 Uros Bizjak <ubizjak@gmail.com> 11834 11835 PR target/36992 11836 * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to 11837 alternative 0 of operand 1. 11838 (*vec_concatv2di_rex64_sse): Ditto. 11839 (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0 11840 of operand 1. 11841 (*sse2_storeq_rex64): Penalize allocation of "r" registers. 11842 * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation 11843 of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves. 11844 (*movv2sf_internal_rex64): Ditto. 11845 118462008-08-02 Richard Guenther <rguenther@suse.de> 11847 11848 PR target/35252 11849 * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators. 11850 (ssedoublesizemode): New mode attribute. 11851 (sse_shufps): Call gen_sse_shufps_v4sf. 11852 (sse_shufps_1): Macroize. 11853 (sse2_shufpd): Call gen_Sse_shufpd_v2df. 11854 (sse2_shufpd_1): Macroize. 11855 (vec_extract_odd, vec_extract_even): New expanders. 11856 (vec_interleave_highv4sf, vec_interleave_lowv4sf, 11857 vec_interleave_highv2df, vec_interleave_lowv2df): Likewise. 11858 * i386.c (ix86_expand_vector_init_one_nonzero): Call 11859 gen_sse_shufps_v4sf instead of gen_sse_shufps_1. 11860 (ix86_expand_vector_set): Likewise. 11861 (ix86_expand_reduc_v4sf): Likewise. 11862 118632008-08-01 Doug Kwan <dougkwan@google.com> 11864 11865 * matrix-reorg.c: Re-enable all code. 11866 (struct malloc_call_data): Change CALL_STMT to gimple type. 11867 (collect_data_for_malloc_call): Tuplify. 11868 (struct access_site_info): Change STMT to gimple type. 11869 (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT, 11870 and MALLOC_FOR_LEVEL to gimple and gimple pointer type. 11871 (struct free_info): Change STMT to gimple type. 11872 (struct matrix_access_phi_node): Change PHI to gimple type. 11873 (get_inner_of_cast_expr): Remove. 11874 (may_flatten_matrices_1): Tuplify. 11875 (may_flatten_matrices): Ditto. 11876 (mark_min_matrix_escape_level): Ditto. 11877 (ssa_accessed_in_tree): Refactor statement RHS related code into ... 11878 (ssa_accessed_in_call_rhs): New 11879 (ssa_accessed_in_assign_rhs): New 11880 (record_access_alloc_site_info): Tuplify. 11881 (add_allocation_site): Ditto. 11882 (analyze_matrix_allocation_site): Ditto. 11883 (analyze_transpose): Ditto. 11884 (get_index_from_offset): Ditto. 11885 (update_type_size): Ditto. 11886 (analyze_accesses_for_call_expr): Tuplify and renamed into ... 11887 (analyze_accesses_for_call_stmt): New. Also handle LHS of a call. 11888 (analyze_accesses_for_phi_node): Tuplify. 11889 (analyze_accesses_for_modify_stmt): Tuplify and renamed into ... 11890 (analyze_accesses_for_assign_stmt): Remove code for handling call LHS. 11891 (analyze_matrix_accesses): Tuplify. 11892 (check_var_data): New call-back type for check_var_notmodified_p. 11893 (check_var_notmodified_p): Tuplify and use call-back struct to 11894 return statement found. 11895 (can_calculate_expr_before_stmt): Factor out statement related code 11896 into ... 11897 (can_calculate_stmt_before_stmt): New. 11898 (check_allocation_function): Tuplify. 11899 (find_sites_in_func): Ditto. 11900 (record_all_accesses_in_func): Ditto. 11901 (transform_access_sites): Ditto. 11902 (transform_allocation_sites): Ditto. 11903 (matrix_reorg): Re-enable. 11904 (gate_matrix_reorg): Re-enable. 11905 119062008-08-01 Jakub Jelinek <jakub@redhat.com> 11907 11908 * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size 11909 for labels for which it hasn't been set yet. If it has been set, 11910 stop walking insns and continue with next worklist item. 11911 (dwarf2out_stack_adjust): Don't call compute_barrier_args_size 11912 if the only BARRIER is at the very end of a function. 11913 119142008-08-01 H.J. Lu <hongjiu.lu@intel.com> 11915 11916 * cfgexpand.c (expand_stack_alignment): Assert that 11917 stack_realign_drap and drap_rtx must match. 11918 11919 * function.c (instantiate_new_reg): If DRAP is used to realign 11920 stack, replace virtual_incoming_args_rtx with internal arg 11921 pointer. 11922 119232008-08-01 Richard Guenther <rguenther@suse.de> 11924 11925 * tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free 11926 loop information only if we initialized it. 11927 (execute_pre): Call fini_pre with in_fre. 11928 * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump 11929 if we do not unroll because we hit max-completely-peeled-insns. 11930 Use our estimation for consistency, do allow shrinking. 11931 119322008-08-01 H.J. Lu <hongjiu.lu@intel.com> 11933 11934 * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY 11935 with MIN_STACK_BOUNDARY. 11936 (ix86_update_stack_boundary): Likewise. 11937 (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of 11938 STACK_BOUNDARY. 11939 11940 * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ... 11941 (MIN_STACK_BOUNDARY): This. 11942 119432008-08-01 Richard Guenther <rguenther@suse.de> 11944 11945 PR middle-end/36997 11946 * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR. 11947 119482008-08-01 Richard Guenther <rguenther@suse.de> 11949 11950 PR tree-optimization/36988 11951 * tree-ssa-ccp.c (ccp_fold): Conversions of constants only 11952 do not matter if that doesn't change volatile qualification. 11953 119542008-08-01 Paolo Bonzini <bonzini@gnu.org> 11955 11956 * configure.ac: Do not generate libada-mk. Do not subst 11957 host_cc_for_libada. 11958 * libada-mk.in: Remove. 11959 * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars. 11960 * configure: Regenerate. 11961 119622008-08-01 Basile Starynkevitch <basile@starynkevitch.net> 11963 11964 * tree-pass.h: Added comment about not dumping passes with name 11965 starting with star in struct opt_pass. 11966 * passes.c (register_dump_files_1): Don't do dump for a pass with 11967 name starting with star. 11968 * doc/passes.texi (Pass manager): Mention pass names and special 11969 meaning of star prefix to avoid dump. 11970 119712008-07-31 Adam Nemet <anemet@caviumnetworks.com> 11972 11973 * config.gcc (mipsisa64r2*-*-linux*): New configuration. Set ISA 11974 to MIPS64r2. 11975 * config/mips/mips.h (GENERATE_MIPS16E): Update comment. 11976 (ISA_MIPS64R2): New macro. 11977 (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it. 11978 (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, 11979 ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE, 11980 ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO, 11981 ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH, 11982 ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS, 11983 ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2. 11984 (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2. 11985 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): 11986 Move up to keep list alphabetically sorted. 11987 (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise. 11988 * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2 11989 processor. 11990 * doc/invoke.texi (MIPS Options): Add -mips64r2. 11991 (-march=@var{arch}): Add mips64r2. 11992 119932008-07-31 H.J. Lu <hongjiu.lu@intel.com> 11994 11995 * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128. 11996 119972008-07-31 Steve Ellcey <sje@cup.hp.com> 11998 11999 * expr.c (expand_assignment): Check for complete type. 12000 120012008-07-31 H.J. Lu <hongjiu.lu@intel.com> 12002 12003 PR debug/36977 12004 * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried. 12005 12006 * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried 12007 for stack alignment. 12008 12009 * function.h (rtl_data): Add stack_realign_tried. Update comments. 12010 120112008-07-31 Kaz Kojima <kkojima@gcc.gnu.org> 12012 12013 * config/sh/sh.c (sh_canonical_va_list_type): Remove. 12014 (TARGET_CANONICAL_VA_LIST_TYPE): Remove. 12015 120162008-07-31 Jakub Jelinek <jakub@redhat.com> 12017 12018 PR rtl-optimization/36419 12019 * dwarf2out.c (barrier_args_size): New variable. 12020 (compute_barrier_args_size, compute_barrier_args_size_1): New 12021 functions. 12022 (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size 12023 if not called yet in the current function, use barrier_args_size 12024 array to find the new args_size value. 12025 (dwarf2out_frame_debug): Free and clear barrier_args_size. 12026 120272008-07-31 H.J. Lu <hongjiu.lu@intel.com> 12028 12029 PR debug/36980 12030 * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before 12031 rule 19. 12032 120332008-07-31 H.J. Lu <hongjiu.lu@intel.com> 12034 12035 PR debug/36976 12036 * dwarf2out.c (dwarf2out_args_size_adjust): New. 12037 (dwarf2out_stack_adjust): Use it. 12038 (dwarf2out_frame_debug_expr): Likewise. 12039 120402008-07-31 Richard Guenther <rguenther@suse.de> 12041 12042 PR tree-optimization/36978 12043 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold 12044 the generated condition. 12045 120462008-07-31 Richard Guenther <rguenther@suse.de> 12047 12048 * passes.c (init_optimization_passes): Always call 12049 pass_early_warn_uninitialized. 12050 * opts.c (decode_options): Do not warn about -Wuninitialized at -O0. 12051 * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0. 12052 * doc/passes.texi (Warn for uninitialized variables): Adjust. 12053 120542008-07-31 Jakub Jelinek <jakub@redhat.com> 12055 12056 PR c/36970 12057 * builtins.c (maybe_emit_free_warning): New function. 12058 (expand_builtin): Process BUILT_IN_FREE even at -O0. Call 12059 maybe_emit_free_warning for BUILT_IN_FREE. 12060 12061 PR debug/36278 12062 * dwarf2out.c (get_context_die): New function. 12063 (force_decl_die, force_type_die): Use it. 12064 (dwarf2out_imported_module_or_decl): Likewise. If base_type_die 12065 returns NULL, force generation of DW_TAG_typedef and put that into 12066 DW_AT_import. 12067 12068 PR preprocessor/36649 12069 * c-pch.c (c_common_read_pch): Save and restore 12070 line_table->trace_includes across PCH restore. 12071 120722008-07-30 Eric Botcazou <ebotcazou@adacore.com> 12073 12074 PR ada/36554 12075 * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE. 12076 120772008-07-30 Rafael ��vila de Esp��ndola <espindola@google.com> 12078 12079 PR 36974 12080 * final.c (call_from_call_insn): Handle COND_EXEC. 12081 120822008-07-30 H.J. Lu <hongjiu.lu@intel.com> 12083 12084 * builtins.c (std_gimplify_va_arg_expr): Replace 12085 PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT. 12086 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. 12087 120882008-07-30 Joey Ye <joey.ye@intel.com> 12089 H.J. Lu <hongjiu.lu@intel.com> 12090 12091 * builtins.c (expand_builtin_setjmp_receiver): Replace 12092 virtual_incoming_args_rtx with crtl->args.internal_arg_pointer. 12093 (expand_builtin_apply_args_1): Likewise. 12094 (expand_builtin_longjmp): Need DRAP for stack alignment. 12095 (expand_builtin_apply): Likewise. 12096 12097 * caller-save.c (setup_save_areas): Call assign_stack_local_1 12098 instead of assign_stack_local to allow alignment reduction. 12099 12100 * calls.c (emit_call_1): Need DRAP for stack alignment if 12101 return pops. 12102 (expand_call): Replace virtual_incoming_args_rtx with 12103 crtl->args.internal_arg_pointer. 12104 * stmt.c (expand_nl_goto_receiver): Likewise. 12105 12106 * cfgexpand.c (get_decl_align_unit): Estimate stack variable 12107 alignment and store to stack_alignment_estimated and 12108 max_used_stack_slot_alignment. 12109 (expand_one_var): Likewise. 12110 (expand_stack_alignment): New function. 12111 (tree_expand_cfg): Initialize max_used_stack_slot_alignment 12112 and stack_alignment_estimated fields in rtl_data. Call 12113 expand_stack_alignment at end. 12114 12115 * defaults.h (INCOMING_STACK_BOUNDARY): New. 12116 (MAX_STACK_ALIGNMENT): Likewise. 12117 (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise. 12118 (SUPPORTS_STACK_ALIGNMENT): Likewise. 12119 12120 * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for 12121 stack alignment when generating virtual registers. 12122 12123 * function.c (assign_stack_local): Renamed to ... 12124 (assign_stack_local_1): This. Add a parameter to indicate 12125 if it is OK to reduce alignment. 12126 (assign_stack_local): Use it. 12127 (instantiate_new_reg): Instantiate virtual incoming args rtx 12128 to vDRAP if stack realignment and DRAP is needed. 12129 (assign_parms): Collect parameter/return type alignment and 12130 contribute to stack_alignment_estimated. 12131 (locate_and_pad_parm): Likewise. 12132 (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx 12133 with crtl->args.internal_arg_pointer. 12134 12135 * function.h (rtl_data): Add new field drap_reg, 12136 max_used_stack_slot_alignment, stack_alignment_estimated, 12137 stack_realign_needed, need_drap, stack_realign_processed and 12138 stack_realign_finalized. 12139 (stack_realign_fp): New macro. 12140 (stack_realign_drap): Likewise. 12141 12142 * global.c (compute_regsets): Frame pointer is needed when 12143 stack is realigned. Can eliminate frame pointer when stack is 12144 realigned and dynamic realigned argument pointer isn't used. 12145 12146 * reload1.c (update_eliminables): Frame pointer is needed 12147 when stack is realigned. 12148 (init_elim_table): Can eliminate frame pointer when stack is 12149 realigned and dynamic realigned argument pointer isn't used. 12150 12151 * rtl.h (assign_stack_local_1): Declare new funtion. 12152 12153 * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New. 12154 (TARGET_GET_DRAP_RTX): Likewise. 12155 (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and 12156 TARGET_GET_DRAP_RTX. 12157 12158 * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx. 12159 12160 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace 12161 STACK_BOUNDARY with MAX_STACK_ALIGNMENT. 12162 121632008-07-30 Xuepeng Guo <xuepeng.guo@intel.com> 12164 H.J. Lu <hongjiu.lu@intel.com> 12165 12166 * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg, 12167 vdrap_reg, stack_realign and drap_reg_saved. 12168 (add_cfi): Don't allow redefining CFA when DRAP is used. 12169 (reg_save): Handle stack alignment. 12170 (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack 12171 alignment. Don't generate DWARF information for (set fp sp) 12172 when DRAP is used. 12173 (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg 12174 to INVALID_REGNUM. 12175 (int_loc_descriptor): Move prototype forward. Also define if 12176 DWARF2_UNWIND_INFO is true. 12177 (output_cfa_loc): Handle DW_CFA_expression. 12178 (build_cfa_aligned_loc): New. 12179 (based_loc_descr): Update assert for stack realign. For local 12180 variables, use sp+offset when stack is aligned without drap and 12181 fp+offset when stack is aligned with drap. For arguments, use 12182 cfa+offset when drap is used to align stack. 12183 121842008-07-30 Joey Ye <joey.ye@intel.com> 12185 H.J. Lu <hongjiu.lu@intel.com> 12186 12187 * config/i386/i386.c (ix86_force_align_arg_pointer_string): 12188 Break long line. 12189 (ix86_gen_andsp): New. 12190 (ix86_user_incoming_stack_boundary): Likewise. 12191 (ix86_default_incoming_stack_boundary): Likewise. 12192 (ix86_incoming_stack_boundary): Likewise. 12193 (ix86_can_eliminate): Likewise. 12194 (find_drap_reg): Likewise. 12195 (ix86_update_stack_boundary): Likewise. 12196 (ix86_get_drap_rtx): Likewise. 12197 (ix86_finalize_stack_realign_flags): Likewise. 12198 (TARGET_UPDATE_STACK_BOUNDARY): Likewise. 12199 (TARGET_GET_DRAP_RTX): Likewise. 12200 (override_options): Overide option value for new options. 12201 (ix86_function_ok_for_sibcall): Remove check for 12202 force_align_arg_pointer. 12203 (ix86_handle_cconv_attribute): Likewise. 12204 (ix86_function_regparm): Likewise. 12205 (setup_incoming_varargs_64): Don't set stack_alignment_needed here. 12206 (ix86_va_start): Replace virtual_incoming_args_rtx with 12207 crtl->args.internal_arg_pointer. 12208 (ix86_select_alt_pic_regnum): Check DRAP register. 12209 (ix86_save_reg): Replace force_align_arg_pointer with drap_reg. 12210 (ix86_compute_frame_layout): Compute frame layout wrt stack 12211 realignment. 12212 (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx. 12213 (ix86_expand_prologue): Decide if stack realignment is needed 12214 and generate prologue code accordingly. 12215 (ix86_expand_epilogue): Generate epilogue code wrt stack 12216 realignment is really needed or not. 12217 12218 * config/i386/i386.h (MAIN_STACK_BOUNDARY): New. 12219 (ABI_STACK_BOUNDARY): Likewise. 12220 (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise. 12221 (STACK_REALIGN_DEFAULT): Likewise. 12222 (INCOMING_STACK_BOUNDARY): Likewise. 12223 (MAX_STACK_ALIGNMENT): Likewise. 12224 (ix86_incoming_stack_boundary): Likewise. 12225 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed. 12226 (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG. 12227 (CAN_ELIMINATE): Defined with ix86_can_eliminate. 12228 (machine_function): Remove force_align_arg_pointer. 12229 12230 * config/i386/i386.md (BX_REG): New. 12231 (R13_REG): Likewise. 12232 12233 * config/i386/i386.opt (mforce_drap): New. 12234 (mincoming-stack-boundary): Likewise. 12235 (mstackrealign): Add Init(-1). 12236 12237 * config/i386/i386-protos.h (ix86_can_eliminate): New 12238 122392008-07-30 H.J. Lu <hongjiu.lu@intel.com> 12240 12241 * doc/extend.texi: Update force_align_arg_pointer. 12242 12243 * doc/invoke.texi: Document -mincoming-stack-boundary. Update 12244 -mstackrealign. 12245 12246 * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro. 12247 (INCOMING_STACK_BOUNDARY): Likewise. 12248 (TARGET_UPDATE_STACK_BOUNDARY): New target hook. 12249 (TARGET_GET_DRAP_RTX): Likewise. 12250 122512008-07-30 Andreas Schwab <schwab@suse.de> 12252 12253 PR rtl-optimization/36929 12254 * dse.c (replace_inc_dec): Use emit_insn_before instead of 12255 add_insn_before and fix argument order. 12256 (replace_inc_dec_mem): Handle NULL rtx. 12257 122582008-07-30 Andrew Jenner <andrew@codesourcery.com> 12259 12260 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New 12261 function. 12262 (arm_compute_initial_elimination_offset): Use it. 12263 (arm_compute_save_reg_mask): Include static chain save slot when 12264 calculating alignment. 12265 (arm_get_frame_offsets): Ditto. 12266 (thumb1_compute_save_reg_mask): Ensure we have a low register saved 12267 that we can use to decrement the stack when the stack decrement 12268 could be too big for an immediate value in a single insn. 12269 (thumb1_expand_prologue): Avoid using r12 for stack decrement. 12270 122712008-07-30 Richard Guenther <rguenther@suse.de> 12272 12273 PR tree-optimization/36967 12274 * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p. 12275 Release defs of statements we remove. 12276 122772008-07-30 Nathan Froyd <froydnj@codesourcery.com> 12278 12279 * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec 12280 instead of NULL_RTVEC. 12281 122822008-07-30 Nathan Froyd <froydnj@codesourcery.com> 12283 12284 PR target/35866 12285 12286 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for 12287 vector modes. 12288 122892008-07-30 Rafael ��vila de Esp��ndola <espindola@google.com> 12290 12291 * final.c (call_from_call_insn): New. 12292 (final_scan_insn): Call assemble_external on FUNCTION_DECLs. 12293 122942008-07-30 Paolo Bonzini <bonzini@gnu.org> 12295 12296 * configure.ac: Substitute ADA_CFLAGS. 12297 * configure: Regenerate. 12298 * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files. 12299 * Makefile.in: Remove mention of X_* variables. 12300 * config/pa/x-ada-hpux10: Remove. 12301 * config/pa/x-ada: Remove. 12302 12303 * doc/fragments.texi: Update. 12304 123052008-07-30 Olivier Hainque <hainque@adacore.com> 12306 12307 * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini. 12308 * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide 12309 __dso_handle explicitly here. 12310 123112008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 12312 12313 PR 34389 12314 * c-typeck.c (build_binary_op): Encapsulate code into... 12315 * c-common.c (shorten_binary_op): ...this new function. 12316 (conversion_warning): Use the new function. Handle non-negative 12317 constant in bitwise-and. 12318 * c-common.h (shorten_binary_op): Declare. 12319 123202008-07-30 Olivier Hainque <hainque@adacore.com> 12321 12322 * scan.c (make_sstring_space): Add explicit conversions of 12323 allocator's return value. 12324 * fix-header.c (recognized_function): Likewise. 12325 123262008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 12327 12328 * doc/cpp.texi: Update to GFDL 1.2. 12329 * doc/gcc.texi: Do not list GPL as Invariant Section. 12330 * doc/gccint.texi: Likewise. Update copyright years. 12331 * doc/install.texi: Update copyright years. 12332 123332008-07-30 Alan Modra <amodra@bigpond.net.au> 12334 12335 PR target/36955 12336 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add 12337 a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls. 12338 123392008-07-29 Jan Hubicka <jh@suse.cz> 12340 12341 * c-decl.c (merge_decls): Do not handle DECL_INLINE. 12342 (grokdeclarator): Likewise. 12343 * langhooks.c (lhd_warn_unused_global_decl): Use 12344 DECL_DECLARED_INLINE_P. 12345 * print-tree.c (print_node): Remove DECL_INLINE check. 12346 123472008-07-29 Richard Guenther <rguenther@suse.de> 12348 12349 PR tree-optimization/36945 12350 * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare. 12351 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export. 12352 Record invariant addresses un-decomposed. 12353 (copy_reference_ops_from_call): Record reference call 12354 arguments properly. Simplify. 12355 * tree-ssa-pre.c (create_component_ref_by_pieces_1): New 12356 helper split out from ... 12357 (create_component_ref_by_pieces): ... here. Simplify. 12358 Prepare for recursive invocation for call arguments. 12359 (create_expression_by_pieces): Adjust call to 12360 create_component_ref_by_pieces. 12361 (compute_avail): Process operand 2 of reference ops. 12362 123632008-07-29 Richard Guenther <rguenther@suse.de> 12364 12365 * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF. 12366 123672008-07-29 Jakub Jelinek <jakub@redhat.com> 12368 12369 * c-format.c (check_format_types): Revert unwanted checkin. 12370 123712008-07-29 Jan Hubicka <jh@suse.cz> 12372 12373 * flags.h (flag_really_no_inline): Remove. 12374 * cgraph.c (cgraph_function_possibly_inlined_p): Simplify. 12375 * toplev.c (flag_really_no_inline): Remove. 12376 * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline. 12377 * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline. 12378 (cgraph_decide_inlining_incrementally): Likewise. 12379 (compute_inline_parameters): Likewise. 12380 * opts.c (decode_options): Simplify. 12381 * c-opts.c (c_common_post_options): Do not set flag_no_inline. 12382 * common.opt (finline): Initialize to 1. 12383 * tree-inline.c (inlinable_function_p): Check flag_no_inline. 12384 123852008-07-29 Jan Hubicka <jh@suse.cz> 12386 12387 * predict.c (always_optimize_for_size_p): New function. 12388 (optimize_bb_for_size_p, optimize_bb_for_speed_p, 12389 optimize_edge_for_size_p, optimize_edge_for_speed_p, 12390 optimize_insn_for_size_p, optimize_insn_for_speed_p): New global 12391 functions. 12392 (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New. 12393 * function.c (prepare_function_start): Set default profile. 12394 * function.h (rtl_data): Add maybe_hot_insn_p. 12395 * cfgexpand.c (expand_gimple_basic_block): Set RTL profile. 12396 (construct_exit_block): Likewise. 12397 (tree_expand_cfg): Likewise. 12398 * basic-block.h 12399 (optimize_bb_for_size_p, optimize_bb_for_speed_p, 12400 optimize_edge_for_size_p, optimize_edge_for_speed_p, 12401 optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare. 12402 (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile): 12403 Declare. 12404 124052008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 12406 12407 PR 34985 12408 * c-decl.c (merge_decls): Merge USED flags. 12409 124102008-07-29 Kaz Kojima <kkojima@gcc.gnu.org> 12411 12412 * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr, 12413 valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit, 12414 next_stack, lab_false and lab_over trees. 12415 124162008-07-28 Richard Guenther <rguenther@suse.de> 12417 12418 PR tree-optimization/36957 12419 * tree-flow.h (tree_ssa_useless_type_conversion): Remove. 12420 (useless_type_conversion_p): Remove. 12421 (types_compatible_p): Remove. 12422 * gimple.h (tree_ssa_useless_type_conversion): Declare. 12423 (useless_type_conversion_p): Declare. 12424 (types_compatible_p): Declare. 12425 (gimple_expr_type): Return the base type only if it is 12426 trivially convertible to the subtype. 12427 124282008-07-28 Andreas Tobler <a.tobler@schweiz.org> 12429 12430 * configure.ac: Use the m4_do macro to concatenate the warnings into 12431 one string in ACX_PROG_CC_WARNING_OPTS, 12432 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and 12433 ACX_PROG_CC_WARNINGS_ARE_ERRORS. 12434 * configure: Regenerate. 12435 124362008-07-28 Richard Guenther <rguenther@suse.de> 12437 12438 * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code. 12439 (insert_fake_stores): Remove. 12440 (realify_fake_stores): Likewise. 12441 (execute_pre): Remove dead code. 12442 * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case. 12443 (find_func_aliases): Deal with it here instead. 12444 Re-enable gcc_unreachable call. 12445 124462008-07-28 Richard Guenther <rguenther@suse.de> 12447 12448 Merge from gimple-tuples-branch. 12449 12450 * ChangeLog.tuples: ChangeLog from gimple-tuples-branch. 12451 * gimple.def: New file. 12452 * gsstruct.def: Likewise. 12453 * gimple-iterator.c: Likewise. 12454 * gimple-pretty-print.c: Likewise. 12455 * tree-gimple.c: Removed. Merged into ... 12456 * gimple.c: ... here. New file. 12457 * tree-gimple.h: Removed. Merged into ... 12458 * gimple.h: ... here. New file. 12459 12460 * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h. 12461 * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the 12462 --enable-checking=gimple flag. 12463 * config.in: Likewise. 12464 * configure: Regenerated. 12465 12466 * tree-ssa-operands.h: Tuplified. 12467 * tree-vrp.c: Likewise. 12468 * tree-loop-linear.c: Likewise. 12469 * tree-into-ssa.c: Likewise. 12470 * tree-ssa-loop-im.c: Likewise. 12471 * tree-dump.c: Likewise. 12472 * tree-complex.c: Likewise. 12473 * cgraphbuild.c: Likewise. 12474 * tree-ssa-threadupdate.c: Likewise. 12475 * tree-ssa-loop-niter.c: Likewise. 12476 * tree-pretty-print.c: Likewise. 12477 * tracer.c: Likewise. 12478 * gengtype.c: Likewise. 12479 * tree-loop-distribution.c: Likewise. 12480 * tree-ssa-loop-unswitch.c: Likewise. 12481 * cgraph.c: Likewise. 12482 * cgraph.h: Likewise. 12483 * tree-ssa-loop-manip.c: Likewise. 12484 * value-prof.c: Likewise. 12485 * tree-ssa-loop-ch.c: Likewise. 12486 * tree-tailcall.c: Likewise. 12487 * value-prof.h: Likewise. 12488 * tree.c: Likewise. 12489 * tree.h: Likewise. 12490 * tree-pass.h: Likewise. 12491 * ipa-cp.c: Likewise. 12492 * tree-scalar-evolution.c: Likewise. 12493 * tree-scalar-evolution.h: Likewise. 12494 * target.h: Likewise. 12495 * lambda-mat.c: Likewise. 12496 * tree-phinodes.c: Likewise. 12497 * diagnostic.h: Likewise. 12498 * builtins.c: Likewise. 12499 * tree-ssa-alias-warnings.c: Likewise. 12500 * cfghooks.c: Likewise. 12501 * fold-const.c: Likewise. 12502 * cfghooks.h: Likewise. 12503 * omp-low.c: Likewise. 12504 * tree-ssa-dse.c: Likewise. 12505 * ipa-reference.c: Likewise. 12506 * tree-ssa-uncprop.c: Likewise. 12507 * toplev.c: Likewise. 12508 * tree-gimple.c: Likewise. 12509 * tree-gimple.h: Likewise. 12510 * tree-chrec.c: Likewise. 12511 * tree-chrec.h: Likewise. 12512 * tree-ssa-sccvn.c: Likewise. 12513 * tree-ssa-sccvn.h: Likewise. 12514 * cgraphunit.c: Likewise. 12515 * tree-ssa-copyrename.c: Likewise. 12516 * tree-ssa-ccp.c: Likewise. 12517 * tree-ssa-loop-ivopts.c: Likewise. 12518 * tree-nomudflap.c: Likewise. 12519 * tree-call-cdce.c: Likewise. 12520 * ipa-pure-const.c: Likewise. 12521 * c-format.c: Likewise. 12522 * tree-stdarg.c: Likewise. 12523 * tree-ssa-math-opts.c: Likewise. 12524 * tree-ssa-dom.c: Likewise. 12525 * tree-nrv.c: Likewise. 12526 * tree-ssa-propagate.c: Likewise. 12527 * ipa-utils.c: Likewise. 12528 * tree-ssa-propagate.h: Likewise. 12529 * tree-ssa-alias.c: Likewise. 12530 * gimple-low.c: Likewise. 12531 * tree-ssa-sink.c: Likewise. 12532 * ipa-inline.c: Likewise. 12533 * c-semantics.c: Likewise. 12534 * dwarf2out.c: Likewise. 12535 * expr.c: Likewise. 12536 * tree-ssa-loop-ivcanon.c: Likewise. 12537 * predict.c: Likewise. 12538 * tree-ssa-loop.c: Likewise. 12539 * tree-parloops.c: Likewise. 12540 * tree-ssa-address.c: Likewise. 12541 * tree-ssa-ifcombine.c: Likewise. 12542 * matrix-reorg.c: Likewise. 12543 * c-decl.c: Likewise. 12544 * tree-eh.c: Likewise. 12545 * c-pretty-print.c: Likewise. 12546 * lambda-trans.c: Likewise. 12547 * function.c: Likewise. 12548 * langhooks.c: Likewise. 12549 * ebitmap.h: Likewise. 12550 * tree-vectorizer.c: Likewise. 12551 * function.h: Likewise. 12552 * langhooks.h: Likewise. 12553 * tree-vectorizer.h: Likewise. 12554 * ipa-type-escape.c: Likewise. 12555 * ipa-type-escape.h: Likewise. 12556 * domwalk.c: Likewise. 12557 * tree-if-conv.c: Likewise. 12558 * profile.c: Likewise. 12559 * domwalk.h: Likewise. 12560 * tree-data-ref.c: Likewise. 12561 * tree-data-ref.h: Likewise. 12562 * tree-flow-inline.h: Likewise. 12563 * tree-affine.c: Likewise. 12564 * tree-vect-analyze.c: Likewise. 12565 * c-typeck.c: Likewise. 12566 * gimplify.c: Likewise. 12567 * coretypes.h: Likewise. 12568 * tree-ssa-phiopt.c: Likewise. 12569 * calls.c: Likewise. 12570 * tree-ssa-coalesce.c: Likewise. 12571 * tree.def: Likewise. 12572 * tree-dfa.c: Likewise. 12573 * except.c: Likewise. 12574 * except.h: Likewise. 12575 * cfgexpand.c: Likewise. 12576 * tree-cfgcleanup.c: Likewise. 12577 * tree-ssa-pre.c: Likewise. 12578 * tree-ssa-live.c: Likewise. 12579 * tree-sra.c: Likewise. 12580 * tree-ssa-live.h: Likewise. 12581 * tree-predcom.c: Likewise. 12582 * lambda.h: Likewise. 12583 * tree-mudflap.c: Likewise. 12584 * ipa-prop.c: Likewise. 12585 * print-tree.c: Likewise. 12586 * tree-ssa-copy.c: Likewise. 12587 * ipa-prop.h: Likewise. 12588 * tree-ssa-forwprop.c: Likewise. 12589 * ggc-page.c: Likewise. 12590 * c-omp.c: Likewise. 12591 * tree-ssa-dce.c: Likewise. 12592 * tree-vect-patterns.c: Likewise. 12593 * tree-ssa-ter.c: Likewise. 12594 * tree-nested.c: Likewise. 12595 * tree-ssa.c: Likewise. 12596 * lambda-code.c: Likewise. 12597 * tree-ssa-loop-prefetch.c: Likewise. 12598 * tree-inline.c: Likewise. 12599 * tree-inline.h: Likewise. 12600 * tree-iterator.c: Likewise. 12601 * tree-optimize.c: Likewise. 12602 * tree-ssa-phiprop.c: Likewise. 12603 * tree-vect-transform.c: Likewise. 12604 * tree-object-size.c: Likewise. 12605 * tree-outof-ssa.c: Likewise. 12606 * cfgloop.c: Likewise. 12607 * system.h: Likewise. 12608 * tree-profile.c: Likewise. 12609 * cfgloop.h: Likewise. 12610 * c-gimplify.c: Likewise. 12611 * c-common.c: Likewise. 12612 * tree-vect-generic.c: Likewise. 12613 * tree-flow.h: Likewise. 12614 * c-common.h: Likewise. 12615 * basic-block.h: Likewise. 12616 * tree-ssa-structalias.c: Likewise. 12617 * tree-switch-conversion.c: Likewise. 12618 * tree-ssa-structalias.h: Likewise. 12619 * tree-cfg.c: Likewise. 12620 * passes.c: Likewise. 12621 * ipa-struct-reorg.c: Likewise. 12622 * ipa-struct-reorg.h: Likewise. 12623 * tree-ssa-reassoc.c: Likewise. 12624 * cfgrtl.c: Likewise. 12625 * varpool.c: Likewise. 12626 * stmt.c: Likewise. 12627 * tree-ssanames.c: Likewise. 12628 * tree-ssa-threadedge.c: Likewise. 12629 * langhooks-def.h: Likewise. 12630 * tree-ssa-operands.c: Likewise. 12631 * config/alpha/alpha.c: Likewise. 12632 * config/frv/frv.c: Likewise. 12633 * config/s390/s390.c: Likewise. 12634 * config/m32c/m32c.c: Likewise. 12635 * config/m32c/m32c-protos.h: Likewise. 12636 * config/spu/spu.c: Likewise. 12637 * config/sparc/sparc.c: Likewise. 12638 * config/i386/i386.c: Likewise. 12639 * config/sh/sh.c: Likewise. 12640 * config/xtensa/xtensa.c: Likewise. 12641 * config/stormy16/stormy16.c: Likewise. 12642 * config/ia64/ia64.c: Likewise. 12643 * config/rs6000/rs6000.c: Likewise. 12644 * config/pa/pa.c: Likewise. 12645 * config/mips/mips.c: Likewise. 12646 126472008-07-28 Simon Baldwin <simonb@google.com> 12648 12649 * c-pragma.c (handle_pragma_message): New function. 12650 (init_pragma): Register handle_pragma_message. 12651 * doc/extend.texi (Diagnostic Pragmas): Added #pragma message 12652 documentation. 12653 126542008-07-27 Victor Kaplansky <victork@il.ibm.com> 12655 12656 PR tree-optimization/35252 12657 * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and 12658 REALPART_EXPR to be considered as same load operation. 12659 126602008-07-27 Eric Botcazou <ebotcazou@adacore.com> 12661 12662 PR tree-optimization/36830 12663 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2. 12664 (expressions_equal_p): Return false if only one operand is null. 12665 126662008-07-26 Gerald Pfeifer <gerald@pfeifer.com> 12667 12668 * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo 12669 version requirements. 12670 126712008-07-26 Olivier Hainque <hainque@adacore.com> 12672 12673 * collect2.c (symkind): New enum. Symbol kinds we care about. 12674 (is_ctor_dtor): Return symkind instead of int. Adjust prototype, 12675 code and head comment accordingly. 12676 (scan_prog_file): Use symkind names instead of bare integers. 12677 126782008-07-25 Jan Hubicka <jh@suse.cz> 12679 12680 * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on 12681 DECL_INLINE. 12682 * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE 12683 (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE. 12684 * dojump.c (clear_pending_stack_adjust): Likewise. 12685 * print-tree.c (print_node): Ignore DECL_INLINE. 12686 * tree-inline.c (inlinable_function_p): Likewise. 12687 126882008-07-25 Michael Meissner <gnu@the-meissners.org> 12689 12690 * doc/extend.texi (hot attribute): Document that the hot attribute 12691 turns on -O3 for some ports. 12692 (cold attribute): Document that the cold attribute turns on -Os 12693 for some ports 12694 12695 * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to 12696 reflect function specific option support. 12697 12698 * target.h (struct target_option_hooks): Add fields to say whether 12699 the cold attribute implies -Os and the hot attribute implies -O3. 12700 12701 * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): 12702 By default, do not turn on -Os for cold functions. 12703 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do 12704 not turn on -O3 for hot functions. 12705 12706 * c-common.c (handle_hot_attribute): Use target hook to determine 12707 if hot functions should enable -O3. 12708 (handle_cold_attribute): Use target hook to determine if cold 12709 functions should enable -Os. 12710 12711 * config/i386/i386.c (ix86_target_string): Add -m3dnowa support. 12712 (override_options): Move disable scheduling to 12713 optimization_options. 12714 (optimization_options): Disable scheduling here, not 12715 override_options. 12716 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define. 12717 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define. 12718 12719 * config/ia64/ia64.c (ia64_override_options): Move setting 12720 scheduling flags to ia64_optimization_options. 12721 (ia64_optimization_options): Disable scheduling options here, and 12722 not in ia64_override_options. 12723 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define. 12724 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define. 12725 127262008-07-25 H.J. Lu <hongjiu.lu@intel.com> 12727 12728 PR target/36936 12729 * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE. 12730 127312008-07-25 Martin Jambor <mjambor@suse.cz> 12732 12733 PR tree-optimization/36926 12734 * ipa-prop.c (ipa_analyze_call_uses): Call 12735 ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF. 12736 127372008-07-25 Joseph Myers <joseph@codesourcery.com> 12738 12739 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal, 12740 movv2si_internal): Add mem = reg alternative. 12741 127422008-07-25 Andreas Tobler <a.tobler@schweiz.org> 12743 12744 PR bootstrap/36918 12745 * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define 12746 DEFAULT_PCC_STRUCT_RETURN to 127. 12747 127482008-07-24 Jan Hubicka <jh@suse.cz> 12749 12750 * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code. 12751 (build_cgraph_edges): Likewise. 12752 * cgraph.c (cgraph_node): Do not update assembler hash. 12753 (cgraph_remove_node): Drop non-unit-at-a-time code. 12754 * tree-pass.h (pass_O0_always_inline): Remove. 12755 * ipa-reference.c (gate_reference): Remove unit-at-a-time check. 12756 * toplev.c (process_options): Flag unit-at-a-time does not imply 12757 no section anchors. 12758 * cgraphunit.c: Update comments. 12759 (decide_is_function_needed): Drop non-unit-at-a-time mode. 12760 (cgraph_assemble_pending_functions): Remove. 12761 (cgraph_reset_node): Drop non-unit-at-a-time code. 12762 (cgraph_finalize_function): Likewise. 12763 (cgraph_analyze_function): Likewise. 12764 (cgraph_finalize_compilation_unit): Likewise. 12765 (cgraph_expand_function): Likewise. 12766 (cgraph_optimize): Likesise. 12767 (save_inline_function_body): Likewise. 12768 * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check. 12769 * tree-ssa-alias.c (maybe_be_aliased): Likewise. 12770 * ipa-inline.c: Update comments. 12771 (enum inlining_mode): remove INLINE_SPEED. 12772 (cgraph_clone_inlined_nodes): Drop unit-at-a-time check. 12773 (cgraph_mark_inline_edge): Likewise. 12774 (try_inline): Likewise. 12775 (cgraph_decide_inlining_incrementally): Likewise. 12776 (cgraph_gate_inlining): Remove. 12777 (cgraph_early_inlining): Remove flag_unit_at_a_time checks. 12778 (cgraph_gate_early_inlining): Likewise. 12779 (gate_inline_passes): Remove. 12780 (pass_inline_parameters, pass_ipa_inline): Remove gates. 12781 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline, 12782 pass_O0_always_inline): Remove. 12783 * c-pch.c (c_pch_matching): Remove -funit-at-a-time. 12784 * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check. 12785 * opts.c (no_unit_at_a_time_default): Remove. 12786 (decode_options): Remove flag_unit_at_a_time reset and warning. 12787 * opts.h (no_unit_at_a_time_default): Remove. 12788 * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword 12789 early in GNU dialect. 12790 (merge_decls): Update comment; drop unit-at-a-time check. 12791 (finish_decl): Likewise. 12792 (grok_declaration): Remove flag_inline_trees code. 12793 (finish_functions): Return on function returning non-void on all 12794 statics. 12795 * ipa-tye-escape.c (gate_type_escape_vars): Remove. 12796 * cfgexpand.c (expand_one_static_var): Remove. 12797 (expand_one_var): Remove expand_one_static_var call. 12798 (expand_used_vars_for_block): Remove flag_unit_a_time check. 12799 * c-opts.c (c_common_post_options): Remove flag_inline_trees code 12800 and flag_unit_at_a-time compatibility checks. 12801 * varasm.c (assemble_alias): Remove flag_unit_at_a_time check. 12802 * tree-inline.c (flag_inline_trees): Remove. 12803 (inlinable_function_p): Don't check it. 12804 (expand_call_inline): Remove non-unit-at-a-time code. 12805 * tree-inline.h (flag_inline_trees): Remove. 12806 * tree-optimize.c (execute_early_local_optimizations): Remove 12807 unit-at-a-time checks. 12808 (tree_rest_of_compilation): Likewise. 12809 * combine.c (setup_incoming_promotions): Likewise. 12810 * tree-profile.c (tree_gen_ic_func_profiler): Likewise. 12811 * tree-ssa-structalias.c (delete_points_to_sets): Likewise. 12812 * passes.c (pass_inline_parameters): Update comments; remove 12813 O0_alwaysinline pass. 12814 (execute_one_ipa_transform_pass): Do not reset in_gimple_form. 12815 (execute_one_pass): Likewise. 12816 * i386.c (ix86_function_regparm): Remove unit-at-a-time check. 12817 (ix86_function_sseregparm): Likewise. 12818 * arm.c (arm_function_in_section_p): Likewise. 12819 * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise. 12820 * varpool.c: Update comments. 12821 (decide_is_variable_needed): Remove unit-at-a-time checks. 12822 (varpool_finalize_decl): Likewise. 12823 128242008-07-24 Kaz Kojima <kkojima@gcc.gnu.org> 12825 12826 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer 12827 to 2 instead of -1. 12828 (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2. 12829 128302008-07-24 Kai Tietz <kai.tietz@onevision.com> 12831 12832 * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for 12833 imp symbol extension. 12834 12835 2008-07-23 Ian Lance Taylor <iant@google.com> 12836 12837 * tree-vrp.c (infer_value_range): Ignore asm statements when 12838 looking for memory accesses for -fdelete-null-pointer-checks. 12839 128402008-07-24 Ben Elliston <bje@au.ibm.com> 12841 12842 * config/spu/spu-c.c (__vector_keyword): New variable. 12843 (vector_keyword): Likewise. 12844 (spu_categorize_keyword): New function. 12845 (spu_macro_to_expand): Likewise. 12846 (spu_cpu_cpp_builtins): Enable context-sensitive macros if not 12847 compiling an ISO C dialect. 12848 128492008-07-24 Ben Elliston <bje@au.ibm.com> 12850 12851 * config/rs6000/rs6000-c.c: Move GTY(()) markers to match 12852 conventional usage. 12853 128542008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 12855 12856 * configure: Regenerate. 12857 * configure.ac: Require texinfo 4.7. 12858 * doc/install.texi: Document texinfo 4.7 requirement. 12859 128602008-07-23 Martin Jambor <mjambor@suse.cz> 12861 12862 * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed 12863 rather than for DECL_SAVED_TREE. 12864 * ipa-prop.c: Include diagnostic.h. 12865 (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs 12866 thoroughly. 12867 (ipa_detect_param_modifications): Function rewritten from scratch. 12868 (ipa_compute_jump_functions): Changed accesses to modification flags. 12869 (ipa_free_node_params_substructures): Update flags destruction. 12870 (ipa_node_duplication_hook): Update flags duplication. 12871 (ipa_print_all_params_modified): Updated flag access. 12872 * ipa-prop.h (struct ipa_param_flags): New structure. 12873 (struct ipa_node_params): New field modification_analysis_done, 12874 modified_flags changed into param_flags. 12875 (ipa_is_ith_param_modified): Changed to use new flags. 12876 * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies. 12877 12878 * ipa-prop.c (ipa_print_all_jump_functions): Moved here from 12879 ipa-cp.c and split into two functions. 12880 (ipa_print_node_jump_functions): New function. 12881 (compute_scalar_jump_functions): New function. 12882 (type_like_member_ptr_p): New function. 12883 (compute_pass_through_member_ptrs): New function. 12884 (fill_member_ptr_cst_jump_function): New function. 12885 (determine_cst_member_ptr): New function. 12886 (compute_cst_member_ptr_arguments): New function. 12887 (ipa_compute_jump_functions): Complete rewrite. 12888 * ipa-prop.h (enum jump_func_type): Make explicit that we depend 12889 on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR. 12890 (struct ipa_member_ptr_cst): New structure. 12891 (union jump_func_value): New field member_cst. 12892 * ipa-cp.c (ipcp_lat_is_insertable): New function. 12893 (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled 12894 jump function types. 12895 (ipcp_print_all_lattices): Slight fprintf rearrangement. 12896 (ipcp_print_all_structures): Call ipa_print_all_jump_functions 12897 instead of ipcp_print_all_jump_functions. 12898 (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps 12899 only for replacable scalars. 12900 12901 * doc/invoke.texi (Optimize options): Add description of 12902 -findirect-inlining. 12903 * common.opt (flag_indirect_inlining): New flag. 12904 * opts.c (decode_options): Set flag_indirect_inlining when 12905 optimize >= 3. 12906 12907 * ipa-inline.c: Include ipa-prop.h. 12908 (inline_indirect_intraprocedural_analysis): New function. 12909 (inline_generate_summary): Allocate parameter and argument info 12910 structures, call inline_indirect_intraprocedural_analysis on each 12911 node when doing indirect inlining and deallocate indirect inlining 12912 data structures in the end. 12913 * ipa-prop.c (ipa_create_param_decls_array): Return if already done. 12914 (free_all_ipa_structures_after_iinln): New function. 12915 (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be 12916 done. 12917 * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies. 12918 12919 * cgraphbuild.c (compute_call_stmt_bb_frequency): New function. 12920 (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead 12921 of computing the frequency separately. 12922 (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead 12923 of computing the frequency separately. 12924 * ipa-cp.c (ipcp_print_all_structures): Replace a call to 12925 ipa_print_all_param_modified with a call to ipa_print_all_param_flags. 12926 * ipa-prop.c (ipa_get_member_ptr_load_param): New function. 12927 (ipa_get_stmt_member_ptr_load_param): New function. 12928 (ipa_is_ssa_with_stmt_def): New function. 12929 (ipa_note_param_call): New function. 12930 (ipa_analyze_call_uses): New function. 12931 (ipa_analyze_stmt_uses): New function. 12932 (ipa_analyze_params_uses): New function. 12933 (ipa_free_node_params_substructures): Also free the param_calls linked 12934 list. 12935 (ipa_node_duplication_hook): Also duplicate the param_calls 12936 linked list. 12937 (ipa_print_node_param_flags): New function. 12938 (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags. 12939 (ipa_print_all_param_flags): Calls ipa_print_node_param_flags. 12940 * ipa-prop.h (struct ipa_param_flags): New field called. 12941 (struct ipa_param_call_note): New structure. 12942 (struct ipa_node_params): New fields param_calls and 12943 uses_analysis_done. 12944 (ipa_is_ith_param_called): New function. 12945 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call 12946 ipa_analyze_params_uses and dump parameter flags. 12947 12948 * ipa-inline.c (cgraph_decide_recursive_inlining): Call 12949 ipa_propagate_indirect_call_infos if performing indirect inlining, 12950 pass a new parameter new_edges to it. 12951 (add_new_edges_to_heap): New fucntion. 12952 (cgraph_decide_inlining_of_small_functions): New vector 12953 new_indirect_edges for newly found indirect edges , call 12954 ipa_propagate_indirect_call_infos after inlining. 12955 (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after 12956 inlining if performing indirect inlining. Call 12957 free_all_ipa_structures_after_iinln when doing so too. 12958 (inline_generate_summary): Do not call 12959 free_all_ipa_structures_after_iinln here. 12960 * ipa-prop.c (update_jump_functions_after_inlining): New function. 12961 (print_edge_addition_message): New function. 12962 (update_call_notes_after_inlining): New function. 12963 (propagate_info_to_inlined_callees): New function. 12964 (ipa_propagate_indirect_call_infos): New function. 12965 * ipa-prop.h: Include cgraph.h 12966 (struct ipa_param_call_note): Fields reordered, new field processed. 12967 * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new 12968 flag indirect_call. 12969 * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have 12970 rediscovered call statements. 12971 * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero. 12972 (dump_cgraph_node): Dump also the indirect_call flag. 12973 (cgraph_clone_edge): Copy also the indirect_call flag. 12974 * tree-inline.c (copy_bb): Do not check for fndecls from call 12975 expressions, check for edge availability when moving clones. 12976 (get_indirect_callee_fndecl): New function. 12977 (expand_call_inline): If callee declaration is not apprent from 12978 the statement, try calling get_indirect_callee_fndecl. Do not 12979 issue warnings or call sorry when not inlinings an indirect edge. 12980 * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies. 12981 12982 * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a 12983 bit more frandly to matching. 12984 * testsuite/g++.dg/ipa/iinline-1.C: New testcase. 12985 * testsuite/gcc.dg/ipa/iinline-1.c: New testcase. 12986 * testsuite/gcc.dg/ipa/modif-1.c: New testcase. 12987 129882008-07-23 Michael Meissner <gnu@the-meissners.org> 12989 12990 PR 36907 12991 * opth-gen.awk: Suppress function specific features when building 12992 target libraries. 12993 * optc-gen.awk: Ditto. 12994 129952008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 12996 12997 PR 35058 12998 * diagnostic.c (pedwarn): Add opt parameter. 12999 (pedwarn0): New. 13000 * c-tree.h (pedwarn_init): Add opt parameter. 13001 (pedwarn_c90): Likewise. 13002 (pedwarn_c99): Likewise. 13003 * c-errors.c (pedwarn_c99): Likewise. 13004 (pedwarn_c90): Likewise. 13005 * toplev.h (pedwarn): Update declaration. 13006 (pedwarn0): Declare. 13007 * c-lex.c: All calls to pedwarn changed. 13008 * builtins.c: All calls to pedwarn changed. 13009 * toplev.c: All calls to pedwarn changed. 13010 * c-decl.c: All calls to pedwarn changed. 13011 * c-typeck.c: All calls to pedwarn changed. 13012 * c-common.c: All calls to pedwarn changed. 13013 * c-parser.c: All calls to pedwarn changed. 13014 130152008-07-23 Michael Meissner <gnu@the-meissners.org> 13016 Karthik Kumar <karthikkumar@gmail.com> 13017 13018 * attribs.c (file scope): Include c-common.h. 13019 (decl_attributes): Add support for #pragma GCC optimize and 13020 #pragma GCC option. 13021 13022 * targhooks.c (default_can_inline_p): New function that is the 13023 default for the TARGET_CAN_INLINE_P target hook. 13024 13025 * targhooks.h (default_can_inline_p): Add declaration. 13026 13027 * tree.c (cl_optimization_node): New static tree for building 13028 OPTIMIZATION_NODE tree. 13029 (cl_target_option_node): New static tree for building 13030 TARGET_OPTION_NODE tree. 13031 (cl_option_hash_table): New hash table for hashing 13032 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees. 13033 (cl_option_hash_hash): New function to provide the hash value for 13034 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees. 13035 (cl_option_hash_eq): New function to provide an equality test for 13036 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees. 13037 (tree_code_size): Add support for OPTIMIZATION_NODE and 13038 TARGET_OPTION_NODE trees. 13039 (tree_code_structure): Add support for OPTIMIZATION_NODE and 13040 TARGET_OPTION_NODE trees. 13041 (build_optimization_node): Build a tree that has all of the 13042 current optimization options. 13043 (build_target_option_node): Build a tree that has the target 13044 options that might be changed on a per function basis. 13045 13046 * tree.h (file scope): Include options.h. 13047 (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro. 13048 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto. 13049 (TREE_OPTIMIZATION): Ditto. 13050 (TREE_TARGET_SPECIFIC): Ditto. 13051 (struct tree_function_decl): Add fields for remembering the 13052 current optimization options and target specific options. 13053 (struct tree_optimization_option): New tree variant that remembers 13054 the optimization options. 13055 (struct tree_target_option): New tree variant that remembers the 13056 target specific flags that might change for compiling a particular 13057 function. 13058 (union tree_node): Include tree_optimization_option and 13059 tree_target_option fields. 13060 (enum tree_index): Add TI_OPTIMIZATION_DEFAULT, 13061 TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD, 13062 TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT, 13063 TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA, 13064 TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific 13065 optimization and target options. 13066 (optimization_default_node): New macro to refer to global_trees 13067 field. 13068 (optimization_current_node): Ditto. 13069 (optimization_cold_node): Ditto. 13070 (optimization_hot_node): Ditto. 13071 (target_option_default_node): Ditto. 13072 (target_option_current_node): Ditto. 13073 (current_option_pragma): Ditto. 13074 (current_optimize_pragma): Ditto. 13075 13076 * target.h (struct gcc_target): Add valid_option_attribute_p, 13077 target_option_save, target_option_restore, target_option_print, 13078 target_option_pragma_parse, and can_inline_p hooks. 13079 13080 * toplev.h (parse_optimize_options): Add declaration. 13081 (fast_math_flags_struct_set_p): Ditto. 13082 13083 * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to 13084 adjust the current __OPTIMIZE__, etc. macros when #pragma GCC 13085 optimize is used. 13086 13087 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call 13088 tree_can_inline_p hook to see if one function can inline another. 13089 (cgraph_decide_inlining): Ditto. 13090 (cgraph_decide_inlining_incrementally): Ditto. 13091 13092 * opts.c (decode_options): Add support for running multiple times 13093 to allow functions with different target or optimization options 13094 than was specified on the command line. 13095 (fast_math_flags_struct_set_p): New function that is similar to 13096 fast_math_flags_set_p, except it uses the values in the 13097 cl_optimization structure instead of global variables. 13098 13099 * optc-gen.awk: Add support for TargetSave to allow a back end to 13100 declare new fields that need to be saved when using function 13101 specific options. Include flags.h and target.h in the options.c 13102 source. Add support for Save to indicate which options can be set 13103 for individual functions. Generate cl_optimize_save, 13104 cl_optimize_restore, cl_optimize_print, cl_target_option_save, 13105 cl_target_option_restore, cl_target_option_print functions to 13106 allow functions to use different optimization or target options. 13107 13108 * opt-functions.awk (var_type_struct): Return the type used for 13109 storing the field in a structure. 13110 13111 * opth-gen.awk: Add support for TargetSave to allow a back end to 13112 declare new fields that need to be saved when using function 13113 specific options. Add support for Save to indicate which options 13114 can be set for individual functions. Only generate one extern for 13115 Mask fields. Generate cl_optimization and cl_target_option 13116 structures to remember optimization and target options. 13117 13118 * treestruct.def (TS_OPTIMIZATION): Add support for garbage 13119 collecting new tree nodes. 13120 (TS_TARGET_OPTION): Ditto. 13121 13122 * c-decl.c (merge_decls): Merge function specific target and 13123 optimization options. 13124 13125 * function.c (invoke_set_current_function_hook): If the function 13126 uses different optimization options, change the global variables 13127 to reflect this. 13128 13129 * coretypes.h (struct cl_optimization): Add forward reference. 13130 (struct cl_target_option): Ditto. 13131 13132 * c-pragma.c (option_stack): New static vector to remember the 13133 current #pragma GCC option stack. 13134 (handle_pragma_option): New function to support #pragma GCC option 13135 to change target options. 13136 (optimize_stack): New static vector to remember the current 13137 #pragma GCC optimize stack. 13138 (handle_pragma_optimize): New function to support #pragma GCC 13139 optimize to change optimization options. 13140 (init_pragma): Add support for #pragma GCC optimize and #pragma 13141 GCC option. 13142 13143 * tree.def (OPTIMIZATION_NODE): New tree code for remembering 13144 optimization options. 13145 (TARGET_OPTION_NODE): New tree code for remembering certain target 13146 options. 13147 13148 * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and 13149 TARGET_OPTION_NODE trees. 13150 13151 * common.opt (-O): Add Optimization flag. 13152 (-Os): Ditto. 13153 (-fmath-errno): Ditto. 13154 (-falign-functions): Add UInteger flag to make sure flag gets full 13155 int in cl_optimization structure. 13156 (-falign-jumps): Ditto. 13157 (-falign-labels): Ditto. 13158 (-falign-loops): Ditto. 13159 (-fsched-stalled-insns): Ditto. 13160 (-fsched-stalled-insns-dep): Ditto. 13161 13162 * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default 13163 definition. 13164 (TARGET_OPTION_SAVE): Ditto. 13165 (TARGET_OPTION_RESTORE): Ditto. 13166 (TARGET_OPTION_PRINT): Ditto. 13167 (TARGET_OPTION_PRAGMA_PARSE): Ditto. 13168 (TARGET_CAN_INLINE_P): Ditto. 13169 (TARGET_INITIALIZER): Add new hooks. 13170 13171 * tree-inline.c (tree_can_inline_p): New function to determine 13172 whether one function can inline another. Check if the functions 13173 use compatible optimization options, and also call the backend 13174 can_inline_p hook. 13175 13176 * tree-inline.h (tree_can_inline_p): Add declaration. 13177 13178 * c-common.c (c_common_attribute): Add support for option and 13179 optimize attributes. 13180 (handle_option_attribute): Add support for the option attribute to 13181 allow the user to specify different target options for compiling a 13182 specific function. 13183 (handle_optimize_attribute): Add support for the optimize 13184 attribute to allow the user to specify different optimization 13185 options for compiling a specific function. 13186 (handle_hot_attribute): Turn on -O3 optimization for this one 13187 function if it isn't the default optimization level. 13188 (handle_cold_attribute): Turn on -Os optimization for this one 13189 function if it insn't the default optimization. 13190 (const_char_p): New const char * typedef. 13191 (optimize_args): New static vector to remember the optimization 13192 arguments. 13193 (parse_optimize_options): New function to set up the optimization 13194 arguments from either the optimize attribute or #pragma GCC optimize. 13195 13196 * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration. 13197 (builtin_define_std): Ditto. 13198 13199 * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages. 13200 Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies. 13201 (x86_64-*-*): Ditto. 13202 13203 * Makefile.in (TREE_H): Add options.h. 13204 (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies. 13205 13206 * doc/extend.texi (option attribute): Document new attribute. 13207 (optimize attribute): Ditto. 13208 (hot attribute): Document hot attribute sets -O3. 13209 (cold attribute): Document cold attribute sets -Os. 13210 (#pragma GCC option): Document new pragma. 13211 (#pragma GCC optimize): Ditto. 13212 13213 * doc/options.texi (TargetSave): Document TargetSave syntax. 13214 (UInteger): Document UInteger must be used for certain flags. 13215 (Save): Document Save option to create target specific options 13216 that can be saved/restored on a function specific context. 13217 13218 * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro. 13219 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto. 13220 13221 * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook. 13222 (TARGET_OPTION_SAVE): Ditto. 13223 (TARGET_OPTION_RESTORE): Ditto. 13224 (TARGET_OPTION_PRINT): Ditto. 13225 (TARGET_OPTION_PRAGMA_PARSE): Ditto. 13226 (TARGET_CAN_INLINE_P): Ditto. 13227 13228 * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for 13229 -mfpmath=sse,387. 13230 (-mfpmath=both): Ditto. 13231 132322008-07-23 Michael Meissner <gnu@the-meissners.org> 13233 Karthik Kumar <karthikkumar@gmail.com> 13234 13235 * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags. 13236 (TARGET_POPCNT): Ditto. 13237 (TARGET_SAHF): Ditto. 13238 (TARGET_AES): Ditto. 13239 (TARGET_PCLMUL): Ditto. 13240 (TARGET_CMPXCHG16B): Ditto. 13241 (TARGET_RECIP): Move switch into target_flags. 13242 (TARGET_FUSED_MADD): Ditto. 13243 (ix86_arch_features): Make an unsigned char type. 13244 (ix86_tune_features): Ditto. 13245 (OVERRIDE_OPTIONS): Add bool argument to override_options call. 13246 (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros. 13247 (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas. 13248 13249 * config/i386/i386.opt (arch): New TargetSave field to define 13250 fields that need to be saved for function specific option support. 13251 (tune): Ditto. 13252 (fpmath): Ditto. 13253 (branch_cost): Ditto. 13254 (ix86_isa_flags_explicit): Ditto. 13255 (tune_defaulted): Ditto. 13256 (arch_specified): Ditto. 13257 (-m128-long-double): Add Save flag to save option for target 13258 specific option support. 13259 (-m80387): Ditto. 13260 (-maccumulate-outgoing-args): Ditto. 13261 (-malign-double): Ditto. 13262 (-malign-stringops): Ditto. 13263 (-mfancy-math-387): Ditto. 13264 (-mhard-float): Ditto. 13265 (-mieee-fp): Ditto. 13266 (-minline-all-stringops): Ditto. 13267 (-minline-stringops-dynamically): Ditto. 13268 (-mms-bitfields): Ditto. 13269 (-mno-align-stringops): Ditto. 13270 (-mno-fancy-math-387): Ditto. 13271 (-mno-push-args): Ditto. 13272 (-mno-red-zone): Ditto. 13273 (-mpush-args): Ditto. 13274 (-mred-zone): Ditto. 13275 (-mrtd): Ditto. 13276 (-msseregparm): Ditto. 13277 (-mstack-arg-probe): Ditto. 13278 (-m32): Ditto. 13279 (-m64): Ditto. 13280 (-mmmx): Ditto. 13281 (-m3dnow): Ditto. 13282 (-m3dnowa): Ditto. 13283 (-msse): Ditto. 13284 (-msse2): Ditto. 13285 (-msse3): Ditto. 13286 (-msse4.1): Ditto. 13287 (-msse4.2): Ditto. 13288 (-msse4): Ditto. 13289 (-mno-sse4): Ditto. 13290 (-msse4a): Ditto. 13291 (-msse5): Ditto. 13292 (-mrecip): Move flag into target_flags. 13293 (-mcld): Ditto. 13294 (-mno-fused-madd): Ditto. 13295 (-mfused-madd): Ditto. 13296 (-mabm): Move flag into ix86_isa_flags. 13297 (-mcx16): Ditto. 13298 (-mpopcnt): Ditto. 13299 (-msahf): Ditto. 13300 (-maes): Ditto. 13301 (-mpclmul): Ditto. 13302 13303 * config/i386/i386-c.c: New file for #pragma support. 13304 (ix86_target_macros_internal): New function to #define or #undef 13305 target macros based when the user uses the #pragma GCC option to 13306 change target options. 13307 (ix86_pragma_option_parse): New function to add #pragma GCC option 13308 support. 13309 (ix86_target_macros): Move defining the target macros here from 13310 TARGET_CPU_CPP_BUILTINS in i386.h. 13311 (ix86_register_pragmas): Register the #pragma GCC option hook. If 13312 defined, initialize any subtarget #pragmas. 13313 13314 * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from 13315 REGISTER_TARGET_PRAGMAS. 13316 13317 * config/i386/t-i386: New file for x86 dependencies. 13318 (i386.o): Make dependencies mirror the include files used. 13319 (i386-c.o): New file, add dependencies. 13320 13321 * config/i386/i386-protos.h (override_options): Add bool argument. 13322 (ix86_valid_option_attribute_tree): Add declaration. 13323 (ix86_target_macros): Ditto. 13324 (ix86_register_macros): Ditto. 13325 13326 * config/i386/i386.c (ix86_tune_features): Move initialization of 13327 the target masks to initial_ix86_tune_features to allow functions 13328 to have different target options. Make type unsigned char, 13329 instead of unsigned int. 13330 (initial_ix86_tune_features): New static vector to hold processor 13331 masks for the tune variables. 13332 (ix86_arch_features): Move initialization of the target masks to 13333 initial_ix86_arch_features to allow functions to have different 13334 target options. Make type unsigned char, instead of unsigned int. 13335 (initial_ix86_arch_features): New static vector to hold processor 13336 masks for the arch variables. 13337 (enum ix86_function_specific_strings): New enum to describe the 13338 string options used for attribute((option(...))). 13339 (ix86_target_string): New function to return a string that 13340 describes the target options. 13341 (ix86_debug_options): New function to print the current options in 13342 the debugger. 13343 (ix86_function_specific_save): New function hook to save the 13344 function specific global variables in the cl_target_option structure. 13345 (ix86_function_specific_restore): New function hook to restore the 13346 function specific variables from the cl_target_option structure to 13347 the global variables. 13348 (ix86_function_specific_print): New function hook to print the 13349 target specific options in the cl_target_option structure. 13350 (ix86_valid_option_attribute_p): New function hook to validate 13351 attribute((option(...))) arguments. 13352 (ix86_valid_option_attribute_tree): New function that is common 13353 code between attribute((option(...))) and #pragma GCC option 13354 support that parses the options and returns a tree holding the options. 13355 (ix86_valid_option_attribute_inner_p): New helper function for 13356 ix86_valid_option_attribute_tree. 13357 (ix86_can_inline_p): New function hook to decide if one function 13358 can inline another on a target specific basis. 13359 (ix86_set_current_function); New function hook to switch target 13360 options if the user used attribute((option(...))) or #pragma GCC 13361 option. 13362 (ix86_tune_defaulted): Move to static file scope from 13363 override_options. 13364 (ix86_arch_specified): Ditto. 13365 (OPTION_MASK_ISA_AES_SET): New macro for moving switches into 13366 ix86_isa_flags. 13367 (OPTION_MASK_ISA_PCLMUL_SET): Ditto. 13368 (OPTION_MASK_ISA_ABM_SET): Ditto. 13369 (OPTION_MASK_ISA_POPCNT_SET): Ditto. 13370 (OPTION_MASK_ISA_CX16_SET): Ditto. 13371 (OPTION_MASK_ISA_SAHF_SET): Ditto. 13372 (OPTION_MASK_ISA_AES_UNSET): Ditto. 13373 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto. 13374 (OPTION_MASK_ISA_ABM_UNSET): Ditto. 13375 (OPTION_MASK_ISA_POPCNT_UNSET): Ditto. 13376 (OPTION_MASK_ISA_CX16_UNSET): Ditto. 13377 (OPTION_MASK_ISA_SAHF_UNSET): Ditto. 13378 (struct ptt): Move to static file scope from override_options. 13379 (processor_target_table): Ditto. 13380 (cpu_names): Ditto. 13381 (ix86_handle_option): Add support for options that are now isa options. 13382 (override_options): Add support for declaring functions that 13383 support different target options than were specified on the 13384 command line. Move struct ptt, processor_target_table, cpu_names, 13385 ix86_tune_defaulted, ix86_arch_specified to static file scope. 13386 Add bool argument. Fix up error messages so the appropriate error 13387 is given for either command line or attribute. 13388 (ix86_previous_fndecl): New static to remember previous function 13389 declaration to see if we need to change target options. 13390 (ix86_builtins_isa): New array to record the ISA of each builtin 13391 function. 13392 (def_builtin): Always create the builtin function, even if the 13393 current ISA doesn't support it. 13394 (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL 13395 tests for those builtins. 13396 (ix86_init_builtins): Remove TARGET_MMX test for calling 13397 ix86_init_mmx_sse_builtins. 13398 (ix86_expand_builtin): If the current ISA doesn't support a given 13399 builtin, signal an error. 13400 (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook. 13401 (TARGET_SET_CURRENT_FUNCTION): Ditto. 13402 (TARGET_OPTION_SAVE): Ditto. 13403 (TARGET_OPTION_RESTORE): Ditto. 13404 (TARGET_OPTION_PRINT): Ditto. 13405 (TARGET_CAN_INLINE_P): Ditto. 13406 134072008-07-22 Rafael ��vila de Esp��ndola <espindola@google.com> 13408 13409 * c-typeck.c (build_external_ref): Don't call assemble_external. 13410 * final.c (output_operand): Call assemble_external. 13411 134122008-07-21 DJ Delorie <dj@redhat.com> 13413 13414 * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New. 13415 (TARGET_HARD_REGNO_SCRATCH_OK): Define. 13416 134172008-07-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 13418 13419 * config/spu/spu.md ("div<mode>3"): Convert into expander, move 13420 original insn and splitter contents into ... 13421 ("*div<mode>3_fast"): ... this new pattern. Enable only if 13422 flag_unsafe_math_optimizations. Add dummy scratch register. 13423 ("*div<mode>3_adjusted"): New insn and splitter. Enable only if 13424 !flag_unsafe_math_optimizations. Returns number with next 13425 highest magnitude if this is still less or equal to the true 13426 quotient in magnitude. 13427 134282008-07-21 Rafael ��vila de Esp��ndola <espindola@google.com> 13429 13430 * Makefile.in: Replace toplev.h with TOPLEV_H. 13431 * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER. 13432 * c-lex.c (fe_file_change): Don't set in_system_header. 13433 * c-parser.c (c_token): Remove in_system_header. 13434 (c_lex_one_token): Don't set in_system_header. 13435 (c_parser_set_source_position_from_token): Don't set in_system_header. 13436 * diagnostic.c (diagnostic_report_diagnostic): Use location from 13437 diagnostic_info. 13438 (warning_at): New. 13439 * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument. 13440 * flags.h (in_system_header): Remove. 13441 * function.c (saved_in_system_header): Remove. 13442 (push_cfun): Don't set in_system_header. 13443 (pop_cfun): Don't set in_system_header. 13444 (push_struct_function): Don't set in_system_header. 13445 * input.h (expanded_location): Add sysp. 13446 (in_system_header_at): New. 13447 (in_system_header): New. 13448 * toplev.c (in_system_header): Remove. 13449 * toplev.h: Include input.h 13450 (warning_at): New. 13451 * tree-cfg.c (execute_warn_function_return): Call warning_at. 13452 * tree-ssa.c (warn_uninit): Call warning_at. 13453 (warn_uninitialized_var): Update calls to warn_uninit. 13454 (warn_uninitialized_phi): Update calls to warn_uninit. 13455 * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER. 13456 (expand_location): Initialize xloc.sysp. 13457 * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at. 13458 (tree_decl_with_vis): Remove in_system_header_flag. 13459 134602008-07-21 Andreas Krebbel <krebbel1@de.ibm.com> 13461 13462 PR target/36822 13463 * recog.c (asm_operand_ok): Change the order of the extra 13464 memory constraint checks. 13465 134662008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com> 13467 13468 PR tree-opt/36879 13469 * tree-switch-conversion.c (build_one_array): Call 13470 varpool_mark_needed_node and varpool_finalize_decl 13471 instead of assemble_variable. 13472 134732008-07-19 Jan Hubicka <jh@suse.cz> 13474 13475 * cgraph.c (cgraph_add_new_function): Do early local passes. 13476 * tree-nrv.c (gate_pass_return_slot): New gate. 13477 (pass_nrv): Add the gate. 13478 * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New 13479 functions. 13480 (coalesce_ssa_name): Coalesce SSA names. 13481 * tree-ssa-live.c (remove_unused_locals): Be more conservative when 13482 not optimizing so unused user vars remains visible. 13483 * common.opt (flag_tree_ter): Always enable by default. 13484 * tree-ssa-ter.c: Include flags.h 13485 (is_replaceable_p): Check that locations match; when aliasing 13486 is missing be conservative about loads. 13487 * tree-optimize.c (gate_init_datastructures): Remove. 13488 (pass_init_datastructures): New. 13489 * passes.c: Reorder passes so we always go into SSA. 13490 134912008-07-19 Jan Hubicka <jh@suse.cz> 13492 13493 * doc/extend.texi (flatten attribute): Remove note about 13494 unit-at-a-time. 13495 * doc/invoke.texi (--combine): Likewise. 13496 (-finline-functions-called-once): Update levels when enabled. 13497 (-funit-at-a-time): Document new behaviour. 13498 (-ftoplevel-reorder): Document that it is enabled -O0 and imply 13499 -fno-section-anchors when disabled explicitly. 13500 (inline params): They are not ignored now. 13501 (precompiled headers): Remove unit-at-a-time as being incompatible. 13502 * opts.c (decode_options): Handle unit-at-a-time as alias; 13503 imply -fno-section-anchors when toplevel reorder is disabled 13504 explicitly. 13505 * common.opt (ftoplevel-reorder): Set default value to 2. 13506 (funit-at-a-time): Set default value to 1. 13507 * config/rs6000/rs6000.c (optimization_options): Set section anchors 13508 to 2. 13509 135102008-07-19 Jan Hubicka <jh@suse.cz> 13511 13512 * builtins.c (expand_builtin_int_roundingfn, 13513 expand_builtin_int_roundingfn_2): Do not take subtarget argument; 13514 it is not useful. 13515 135162008-07-19 Richard Guenther <rguenther@suse.de> 13517 13518 PR bootstrap/36864 13519 * tree-ssa-sccvn.h (get_constant_value_id): Declare. 13520 * tree-ssa-sccvn.c (get_constant_value_id): New function. 13521 * tree-ssa-pre.c (get_expr_value_id): For newly created 13522 constant value-ids make sure to add the expression to its 13523 expression-set. 13524 135252008-07-19 Jakub Jelinek <jakub@redhat.com> 13526 13527 PR middle-end/36877 13528 * omp-low.c (expand_omp_atomic_fetch_op): Make sure the 13529 return value of the builtin is ignored. 13530 135312008-07-19 Olivier Hainque <hainque@adacore.com> 13532 13533 * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in 13534 bits, a C conformant malloc implementation has to provide. 13535 * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD. 13536 135372008-07-19 Joseph Myers <joseph@codesourcery.com> 13538 13539 PR target/36780 13540 PR target/36827 13541 * reload.c (find_reloads_subreg_address): Only reload address if 13542 reloaded == 0, not for reloaded != 1. 13543 13544 Revert: 13545 2008-07-16 Joseph Myers <joseph@codesourcery.com> 13546 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier. 13547 (m32c_legitimate_address_p): Handle "++rii" addresses created by 13548 m32c_legitimize_reload_address. 13549 13550 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org> 13551 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow 13552 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress. 13553 135542008-07-19 Olivier Hainque <hainque@adacore.com> 13555 13556 * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P 13557 argument, saying whether nested array are to be collapsed 13558 into a single array type DIE with multiple subscripts. 13559 (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO 13560 issues, centralize the nested array types collapsing control and 13561 disable the transformation for Ada. 13562 135632008-07-18 Uros Bizjak <ubizjak@gmail.com> 13564 13565 PR target/36786 13566 * config/i386/i386.md (x86_64_shift_adj_1): Rename from 13567 x86_64_shift_adj. 13568 (x86_64_shift_adj_2): New expander. 13569 (x86_64_shift_adj_3): Ditto. 13570 * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3 13571 to split TImode operands. 13572 (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands. 13573 (ix86_split_lshr): Ditto. 13574 135752008-07-18 Kris Van Hees <kris.van.hees@oracle.com> 13576 13577 * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__ 13578 and __CHAR32_TYPE__. 13579 * c-typeck.c (digest_init): Support char16_t and char32_t. 13580 (set_nonincremental_init_from_string): Idem. 13581 135822008-07-18 H.J. Lu <hongjiu.lu@intel.com> 13583 13584 PR middle-end/36859 13585 * builtins.c (std_gimplify_va_arg_expr): Limit alignment to 13586 PREFERRED_STACK_BOUNDARY. 13587 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. 13588 135892008-07-18 H.J. Lu <hongjiu.lu@intel.com> 13590 13591 PR middle-end/36858 13592 * function.c (locate_and_pad_parm): Cap boundary earlier. 13593 135942008-07-17 Julian Brown <julian@codesourcery.com> 13595 13596 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make 13597 no-op for targets which don't use DLLs. 13598 135992008-07-17 Martin Jambor <mjambor@suse.cz> 13600 13601 * ipa-cp.c (ipcp_print_all_lattices): New variable info, check 13602 that nodes are relevant by examining the node->analyzed flag. 13603 (ipcp_init_stage): Check which nodes are relevant, assert that the 13604 relevant ones are also required. 13605 (ipcp_propagate_stage): Check on the side arrays are properly 13606 allocated. 13607 (ipcp_print_all_jump_functions): Make sure not to touch any node 13608 that is not analyzed or an edge that does not have a corresponding 13609 entry in the on-the-side vectors. 13610 (ipcp_function_scale_print): Likewise. 13611 (ipcp_update_callgraph): Check that the node is relevant. 13612 (ipcp_insert_stage): Check that the node is relevant. Check there is 13613 an info for every node and edge. 13614 * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant. 13615 (ipa_print_all_tree_maps): Likewise and a new variable info. 13616 (ipa_print_all_params_modified): Likewise. 13617 * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function. 13618 136192008-07-17 Roman Zippel <zippel@linux-m68k.org> 13620 13621 PR target/25343 13622 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__. 13623 136242008-07-17 Paolo Bonzini <bonzini@gnu.org> 13625 13626 PR rtl-optimization/36753 13627 * fwprop.c (use_killed_between): Don't shortcut 13628 single-definition global registers. 13629 136302008-07-16 Jan Hubicka <jh@suse.cz> 13631 13632 * cgraph.h (varpool_empty_needed_queue): Declare. 13633 * cgraphunit.c (output_in_order): Mark all variables as needed; 13634 empty the queue. 13635 * varpool.c (varpool_assemble_node): Update debug queue. 13636 (varpool_assemble_pending_decls): Don't do it here. 13637 (varpool_empty_needed_queue): New function. 13638 136392008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13640 13641 * recog.c (peephole2_optimize): Fix formatting. 13642 136432008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13644 13645 * c-pch.c (get_ident): Avoid C++ keywords. 13646 * combine-stack-adj.c (single_set_for_csa): Likewise. 13647 * final.c (asm_insn_count, final_scan_insn, alter_subreg, 13648 output_asm_insn): Likewise. 13649 * reload.c (push_secondary_reload, find_reusable_reload, 13650 push_reload, combine_reloads, find_reloads, 13651 debug_reload_to_stream): Likewise. 13652 * reload.h (struct reload): Likewise. 13653 * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs, 13654 allocate_reload_reg, choose_reload_regs, emit_input_reload_insns, 13655 emit_output_reload_insns): Likewise. 13656 * targhooks.c (default_secondary_reload): Likewise. 13657 * varasm.c (section_entry_eq, object_block_entry_eq): Likewise. 13658 136592008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13660 13661 * recog.c (validate_change_1, validate_change, 13662 validate_unshare_change, validate_replace_rtx_1, struct 13663 funny_match, constrain_operands, peephole2_optimize): Avoid C++ 13664 keywords. 13665 * reload.c (push_secondary_reload, secondary_reload_class, 13666 scratch_reload_class, find_valid_class, find_reusable_reload, 13667 push_reload, find_dummy_reload, find_reloads_address_1, 13668 find_reloads_address_part, find_equiv_reg): Likewise. 13669 * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg, 13670 choose_reload_regs): Likewise. 13671 * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1): 13672 Likewise. 13673 * rtlhooks.c (gen_lowpart_if_possible): Likewise. 13674 * sched-ebb.c (add_deps_for_risky_insns): Likewise. 13675 * sched-rgn.c (concat_INSN_LIST): Likewise. 13676 * stor-layout.c (mode_for_size, mode_for_size_tree, 13677 smallest_mode_for_size): Likewise. 13678 136792008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13680 13681 * cfg.c (dump_reg_info): Avoid C++ keywords. 13682 * dwarf2asm.c (dw2_force_const_mem, 13683 dw2_asm_output_encoded_addr_rtx): Likewise. 13684 * except.c (gen_eh_region, add_action_record, output_ttype): Likewise. 13685 * expmed.c (expand_shift): Likewise. 13686 * global.c (find_reg): Likewise. 13687 * graph.c (draw_edge): Likewise. 13688 * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise. 13689 * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop, 13690 widen_clz, widen_bswap, expand_parity, expand_unop, 13691 emit_cmp_and_jump_insn_1): Likewise. 13692 * postreload.c (reload_cse_simplify_operands): Likewise. 13693 * ra.h (add_neighbor): Likewise. 13694 * reg-stack.c (remove_regno_note, change_stack): Likewise. 13695 * regclass.c (memory_move_secondary_cost, dump_regclass, regclass, 13696 record_reg_classes, copy_cost, record_address_regs, 13697 invalid_mode_change_p): Likewise. 13698 * regrename.c (regrename_optimize, scan_rtx_reg, 13699 dump_def_use_chain, find_oldest_value_reg, 13700 replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise. 13701 137022008-07-16 David Edelsohn <edelsohn@gnu.org> 13703 13704 * config/rs6000/rs6000.c (processor_target_table): Remove duplicate 13705 MASK_POWERPC64 for power4 in previous commit. 13706 137072008-07-16 Olivier Hainque <hainque@adacore.com> 13708 13709 * collect2.c (scan_prog_file, COFF version): Use CONST_CAST 13710 instead of bare conversion to cast const-ness away. 13711 137122008-07-16 Anatoly Sokolov <aesok@post.ru> 13713 13714 * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE, 13715 XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove. 13716 * config/xtensa/xtensa.c (xtensa_function_value): New function. 13717 (TARGET_FUNCTION_VALUE): Define. 13718 137192008-07-16 David Edelsohn <edelsohn@gnu.org> 13720 13721 * config/rs6000/rs6000.c (processor_target_table): Add 13722 MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x. 13723 137242008-07-16 Joseph Myers <joseph@codesourcery.com> 13725 13726 PR target/36827 13727 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier. 13728 (m32c_legitimate_address_p): Handle "++rii" addresses created by 13729 m32c_legitimize_reload_address. 13730 137312008-07-16 Rafael ��vila de Esp��ndola <espindola@google.com> 13732 13733 * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and 13734 DECL_IN_SYSTEM_HEADER in sync. 13735 137362008-07-15 Daniel Berlin <dberlin@dberlin.org> 13737 13738 * tree-ssa-sccvn.c (expressions_equal_p): Check type equality. 13739 * tree-ssa-pre.c (pre_expr_eq): Ditto 13740 (get_constant_for_value_id): Take a type as an argument. 13741 (fully_constant_expression): Pass in type. 13742 (find_or_generate_expression): Short circuit constant case. 13743 (create_expression_by_pieces): Remove special casing of 13744 pointer_plus. 13745 (do_regular_insertion): Short circuit constant case. 13746 (do_partial_partial_insertion): Ditto. 13747 137482008-07-15 Kaz Kojima <kkojima@gcc.gnu.org> 13749 13750 PR target/36782 13751 * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note. 13752 137532008-07-15 Bob Wilson <bob.wilson@acm.org> 13754 13755 * config/xtensa/libgcc-xtensa.ver: New file. 13756 * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver. 13757 137582008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13759 13760 * df-problems.c (df_set_note): Avoid C++ keywords. 13761 * df-scan.c (df_ref_change_reg_with_loc_1): Likewise. 13762 * dse.c (record_store, remove_useless_values): Likewise. 13763 * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset, 13764 gen_reg_rtx_offset, operand_subword, change_address_1, 13765 change_address, adjust_address_1, offset_address, 13766 widen_memory_access, emit_copy_of_insn_after): Likewise. 13767 * explow.c (round_push, allocate_dynamic_stack_space): Likewise. 13768 * fwprop.c (should_replace_address, propagate_rtx_1, 13769 propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify): 13770 Likewise. 13771 * gcse.c (cprop_jump, find_implicit_sets, bypass_block, 13772 gcse_emit_move_after, update_ld_motion_stores): Likewise. 13773 * lcm.c (compute_insert_delete, pre_edge_lcm, 13774 compute_rev_insert_delete, pre_edge_rev_lcm): Likewise. 13775 * lower-subreg.c (resolve_reg_notes): Likewise. 13776 * mode-switching.c (optimize_mode_switching): Likewise. 13777 137782008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13779 13780 * bt-load.c (add_btr_def, migrate_btr_def, 13781 branch_target_load_optimize): Avoid C++ keywords. 13782 * caller-save.c (insert_restore, insert_save, insert_one_insn): 13783 Likewise. 13784 * combine.c (subst, simplify_set, make_extraction, 13785 make_compound_operation, known_cond, simplify_shift_const_1): Likewise. 13786 * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg, 13787 fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise. 13788 137892008-07-15 Richard Guenther <rguenther@suse.de> 13790 13791 PR middle-end/36369 13792 * c-common.c (strict_aliasing_warning): Do not warn for 13793 TYPE_REF_CAN_ALIAS_ALL pointers. 13794 (c_common_get_alias_set): may_alias types are not special. 13795 * tree.c (build_pointer_type_for_mode): Look up the may_alias 13796 attribute and set can_ref_all accordingly. 13797 (build_reference_type_for_mode): Likewise. 13798 * doc/extend.texi (may_alias): Clarify. 13799 138002008-07-15 Kaz Kojima <kkojima@gcc.gnu.org> 13801 13802 PR target/36780 13803 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow 13804 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress. 13805 138062008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com> 13807 13808 PR target/31568 13809 * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use 13810 gcc_assert, instead call output_operand_lossage. 13811 138122008-07-15 Kai Tietz <kai.tietz@onevision.com> 13813 13814 * builtins.c (std_canonical_va_list): Treat structure based 13815 va_list types. 13816 138172008-07-15 Ben Elliston <bje@au.ibm.com> 13818 13819 * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment. 13820 138212008-07-14 Rafael ��vila de Esp��ndola <espindola@google.com> 13822 13823 * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING 13824 is set. 13825 138262008-07-14 Jan Hubicka <jh@suse.cz> 13827 13828 * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p 13829 * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p; 13830 fix predicates and constraints. 13831 * i386.c (ix86_sse5_valid_op_p): Add commutative parameter. 13832 * i386-protos.h (ix86_sse5_valid_op_p): Update declaration. 13833 138342008-07-14 Doug Kwan <dougkwan@google.com> 13835 13836 * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use 13837 additional option file arm/eabi.opt. 13838 * config/arm/eabi.h (File): New configuration file for EABI targets. 13839 * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add 13840 SUBSUBTARGET_EXTRA_SPECS. 13841 (SUBSUBTARGET_EXTRA_SPECS): Provide empty default. 13842 * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed 13843 from STARTFILE_SPEC so that it can be referenced in an override. 13844 (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC. 13845 (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it 13846 can be referenced in an override. 13847 (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC. 13848 * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC 13849 so that it can be referenced in an override. 13850 (LINK_SPEC): Use BPABI_LINK_SPEC. 13851 * config/arm/eabi.opt (File): New. 13852 138532008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 13854 13855 * Makefile.in (TARGET_DEF_H): Add targhooks.h. 13856 (FIXED_VALUE_H): New variable. 13857 (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of 13858 input.h, fixed-value.h. 13859 (TREE_H): Use $(INPUT_H), add $(SYMTAB_H). 13860 (BASIC_BLOCK_H): Use $(BITMAP_H). 13861 (FUNCTION_H): Add varray.h. 13862 (IPA_REFERENCE_H): Use $(BITMAP_H). 13863 (CGRAPH_H): Add $(BASIC_BLOCK_H). 13864 (DF_H): Use $(BITMAP_H). 13865 (GGC_H): Add statistics.h. 13866 (INSN_ADDR_H): New. 13867 (INSN_ATTR_H): Use it. 13868 (SYSTEM_H): Add safe-ctype.h, filenames.h. 13869 (INPUT_H): New. 13870 (SYMTAB_H): Add $(OBSTACK_H). 13871 (CPP_INTERNAL_H): New. 13872 (TREE_DUMP_H): Add tree-pass.h. 13873 (TREE_FLOW_H): Use $(BITMAP_H) 13874 (PRETTY_PRINT_H): Use $(INPUT_H). 13875 (EBITMAP_H): Rename from typo-ed EBIMAP_H. 13876 (GSTAB_H): New. 13877 (BITMAP_H): New. 13878 (many object files): Fix lots of header dependencies throughout. 13879 138802008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 13881 13882 * Makefile.in (write_entries_to_file, write_entries_to_file_split): 13883 New macros. 13884 (s-gtyp-input): Use them to write tmp-gi.list. 13885 (echo_to_gi.list): Remove. 13886 138872008-07-14 Richard Guenther <rguenther@suse.de> 13888 13889 * tree-ssa-sccvn.c (pre_info): Remove. 13890 (switch_to_PRE_table): Likewise. 13891 (free_scc_vn): Do not clear SSA_NAME_VALUE. Do not free pre_info. 13892 (set_hashtable_value_ids): Do not create value-ids for the 13893 optimistic tables. 13894 (run_scc_vn): Remove double test. Remove bogus special-case 13895 in value-number printing. 13896 * tree-ssa-sccvn.h (switch_to_PRE_table): Remove. 13897 * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at 13898 SSA_NAME_VALUE. 13899 * tree-flow-inline.h (get_value_handle): Remove. 13900 * tree-flow.h (get_value_handle): Remove. 13901 139022008-07-14 Martin Jambor <mjambor@suse.cz> 13903 13904 * tree-switch-conversion.c (gen_inbound_check): Make sure the type 13905 in which we generate arithmetics is not a subrange. 13906 139072008-07-14 Martin Jambor <mjambor@suse.cz> 13908 13909 * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable. 13910 139112008-07-14 Richard Guenther <rguenther@suse.de> 13912 13913 * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert. 13914 139152008-07-14 Andreas Krebbel <krebbel1@de.ibm.com> 13916 13917 PR target/36745 13918 * config/s390/s390.c (s390_secondary_reload): Add a secondary 13919 reload for symbol refs moved to r0 with -fPIC. 13920 (legitimize_pic_address): Use the target register as temporary 13921 reg if possible. 13922 (emit_symbolic_move): Adjust comment. 13923 * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr): 13924 New expanders. 13925 139262008-07-14 Ben Elliston <bje@au.ibm.com> 13927 13928 * c-common.h (C_CPP_HASHNODE): New macro. 13929 * coretypes.h (struct cpp_token): Forward declare. 13930 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document 13931 the context-sensitive keyword method. 13932 * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword, 13933 __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword, 13934 expand_bool_pixel): New. 13935 (altivec_categorize_keyword): New function. 13936 (init_vector_keywords): New function. 13937 (rs6000_macro_to_expand): Likewise. 13938 (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not 13939 compiling an ISO C dialect. 13940 139412008-07-13 Daniel Berlin <dberlin@dberlin.org> 13942 13943 * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls. 13944 (create_expression_by_pieces): Fix typo. 13945 (do_regular_insertion): Use debug counter here too. 13946 139472008-07-14 Hans-Peter Nilsson <hp@axis.com> 13948 13949 PR target/35492. 13950 * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from 13951 CONST_OK_FOR_LETTER_P. All port-local users changed. 13952 (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K, 13953 implement Kp matching power-of-two. 13954 (CONSTRAINT_LEN): Define to match. 13955 * config/cris/cris.md: Replace all use of constraint K with Kc. 13956 ("*btst*): Use Kp for operand 0 of last alternative. 13957 139582008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 13959 13960 PR testsuite/36440 13961 * tree-call-cdce.c (check_target_format): Accept MIPS single, double 13962 and quad formats. 13963 139642008-07-13 Jan Hubicka <jh@suse.cz> 13965 13966 * tree.c (decl_assembler_name_equal): Expect assembler name of decl 13967 to be mangled too. 13968 139692008-07-13 Richard Guenther <rguenther@suse.de> 13970 13971 PR middle-end/36811 13972 * langhooks.c (lhd_print_error_function): Deal with recursive 13973 BLOCK trees. 13974 139752008-07-12 Jan Hubicka <jh@suse.cz> 13976 13977 * cgraph.c (assembler_name_hash): New static var. 13978 (hash_node_by_assembler_name, eq_assembler_name): New. 13979 (cgraph_node_for_asm): Use hashtable. 13980 (cgraph_remove_node): Maintain hashtable. 13981 (change_decl_assembler_name): Sanity check that names are not changing 13982 after aliasing was processed. 13983 * cgraph.h (varpoon_node): Add next GGC marker. 13984 * tree.c (decl_assembler_name_equal): Constify. 13985 (decl_assembler_name_hash): New. 13986 * tree.h (decl_assembler_name_equal): Constify. 13987 (decl_assembler_name_hash): Update. 13988 139892008-07-12 David Daney <ddaney@avtrex.com> 13990 13991 * config/mips/driver-native.c (host_detect_local_cpu): Handle 13992 sb1 and r5000 cpus. 13993 139942008-07-12 Richard Sandiford <rdsandiford@googlemail.com> 13995 13996 * doc/md.texi: Document the MIPS "v" constraint. 13997 * config/mips/mips.h (reg_class): Revert last change. 13998 (REG_CLASS_NAMES): Likewise. 13999 (REG_CLASS_CONTENTS): Likewise. 14000 * config/mips/mips.c (mips_regno_to_class): Likewise. 14001 * config/mips/constraints.md (v): Likewise, but add documentation. 14002 Add a comment to say that this constraint should not be used in 14003 gcc code. 14004 140052008-07-11 DJ Delorie <dj@redhat.com> 14006 14007 * config/h8300/h8300.md (length): Fix branch offset limit. 14008 140092008-07-11 Anatoly Sokolov <aesok@post.ru> 14010 14011 * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype. 14012 * config/avr/avr.c (avr_peep2_scratch_safe): Remove. 14013 (avr_hard_regno_scratch_ok): New function. 14014 (TARGET_HARD_REGNO_SCRATCH_OK): Define. 14015 * config/avr/avr.md (all peepholes that request a scratch register): 14016 Remove avr_peep2_scratch_safe use. 14017 140182008-07-11 Tom Tromey <tromey@redhat.com> 14019 Ian Lance Taylor <iant@google.com> 14020 14021 * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN. 14022 (struct c_common_resword): Define. 14023 (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define. 14024 (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define. 14025 (c_common_reswords, num_c_common_reswords): Declare. 14026 * c-common.c (c_common_reswords): New global const array. 14027 (num_c_common_reswords): New const int. 14028 * c-parser.c (struct resword, reswords): Don't define. 14029 (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define. 14030 (c_parse_init): Clarify mask code. Use c_common_reswords rather 14031 than reswords. If warning about C++ keywords, give them a special 14032 RID code. 14033 (c_lex_one_token): Warn about C++ keywords. Call 14034 objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD. 14035 (c_parser_external_declaration): Look for RID_xxx rather than 14036 RID_AT_xxx, for ObjC++ keywords which are also C++ keywords. 14037 (c_parser_statement_after_labels): Likewise. 14038 (c_parser_objc_class_instance_variables): Likewise. 14039 (c_parser_objc_class_declaration): Likewise. 14040 (c_parser_objc_try_catch_statement): Likewise. 14041 * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN. 14042 (declspecs_add_type): Likewise. 14043 140442008-07-11 Angelo Graziosi <angelo.graziosi@alice.it> 14045 14046 * ggc-page.c (alloc_page): 14047 Substituting xmalloc, xcalloc with 14048 XNEWVEC and XCNEWVAR macros which add the 14049 needed casts. 14050 140512008-07-11 Richard Guenther <rguenther@suse.de> 14052 14053 PR tree-optimization/36765 14054 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add 14055 aliases from HEAP vars to SMTs. 14056 140572008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14058 14059 * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments. 14060 * configure.ac (loose_warn): Move -Wc++-compat from here... 14061 (strict_warn): ...to here. 14062 * configure: Regenerate. 14063 140642008-07-10 Joseph Myers <joseph@codesourcery.com> 14065 14066 * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*, 14067 i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*, 14068 m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd, 14069 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets, 14070 excluding more specific h8300-*-* and sh-*-* targets. 14071 140722008-07-10 Daniel Berlin <dberlin@dberlin.org> 14073 14074 * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls. 14075 (eliminate): Ditto. 14076 (execute_pre): Call loop_optimizer_finalize in early exit. 14077 140782008-07-10 Jakub Jelinek <jakub@redhat.com> 14079 14080 PR middle-end/36790 14081 * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P 14082 uids in the bitmap, not just VAR_DECL uids. 14083 14084 PR rtl-optimization/36419 14085 * combine-stack-adj.c (adjust_frame_related_expr): New function. 14086 (combine_stack_adjustments_for_block): Call it if needed. Delete 14087 correct insn. 14088 * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust 14089 DW_CFA_GNU_args_size if CSA pass merged some adjustments into 14090 prologue sp adjustment. 14091 140922008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk> 14093 14094 PR other/28322 14095 * opts.c (print_ignored_options): Report postponed diagnostics for 14096 unknown -Wno-* options as warnings, not errors. 14097 (postpone_unknown_option_error): Renamed to... 14098 (postpone_unknown_option_warning): ... this. 14099 141002008-07-09 Doug Kwan <dougkwan@google.com> 14101 14102 Revert: 14103 2008-07-08 Doug Kwan <dougkwan@google.com> 14104 14105 * config/arm/arm.opt (mandroid): New option. 14106 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro. 14107 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used. 14108 (CC1_SPEC): Same. 14109 (CC1PLUS_SPEC): Same. 14110 (LIB_SPEC): Same. 14111 (STARTFILE_SPEC): Same. 14112 (ENDFILE_SPEC): Same. 14113 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is 14114 used. 14115 141162008-07-09 Richard Sandiford <rdsandiford@googlemail.com> 14117 14118 PR target/35802 14119 * config/mips/mips.h (reg_class): Remove V1_REG. 14120 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. 14121 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS 14122 instead of V1_REGS. 14123 (mips_get_tp): New function. 14124 (mips_legitimize_tls_address): Use it. 14125 * config/mips/constraints.md (v): Delete. 14126 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant. 14127 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3. 14128 After reload, split into a move and ... 14129 (*tls_get_tp_<mode>_split): ...this new instruction. 14130 141312008-07-09 David Daney <ddaney@avtrex.com> 14132 14133 * config/mips/driver-native.c: Include coretypes.h and tm.h. 14134 141352008-07-09 Jakub Jelinek <jakub@redhat.com> 14136 14137 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h. 14138 (push_gimplify_context): Don't allocate temp_htab nor c itself here. 14139 Add c argument. 14140 (pop_gimplify_context): Check c->temp_htab instead of optimize whether 14141 htab_delete should be called. Don't free c. 14142 (lookup_tmp_var): Create temp_htab lazily. 14143 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task, 14144 gimplify_body, force_gimple_operand): Adjust push_gimplify_context 14145 callers. 14146 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master, 14147 lower_omp_ordered, lower_omp_critical, lower_omp_for, 14148 create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 14149 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise. 14150 * tree-sra.c (generate_element_init): Likewise. 14151 * tree-mudflap.c (execute_mudflap_function_ops, 14152 execute_mudflap_function_decls): Likewise. 14153 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise. 14154 * tree-gimple.h (struct gimplify_ctx): New type. 14155 (push_gimplify_context): Adjust prototype. 14156 141572008-07-09 Daniel Berlin <dberlin@dberlin.org> 14158 14159 * tree-ssa-pre.c (phi_translate_1): Update placement of 14160 add_to_value calls. 14161 141622008-07-09 Anatoly Sokolov <aesok@post.ru> 14163 14164 * target.h (struct gcc_target): Add hard_regno_scratch_ok field. 14165 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New. 14166 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK. 14167 * targhooks.c (default_hard_regno_scratch_ok): New function. 14168 * targhooks.h (default_hard_regno_scratch_ok): Declare function. 14169 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook. 14170 * recog.c: Include "target.h". 14171 (peep2_find_free_register): Add check for global regs. Add target 14172 specific check. 14173 * Makefile.in (recog.o): Depend on target.h. 14174 141752008-07-09 Kaz Kojima <kkojima@gcc.gnu.org> 14176 14177 * config/sh/sh.c (sh_canonical_va_list_type): New. 14178 (TARGET_CANONICAL_VA_LIST_TYPE): Define. 14179 141802008-07-09 Raksit Ashok <raksit@google.com> 14181 14182 * doc/invoke.texi (Option Summary): Mention new option 14183 -Wdisallowed-function-list=... 14184 (Warning Options): Document -Wdisallowed-function-list=... 14185 * common.opt (Wdisallowed-function-list=): New flag. 14186 * flags.h (warn_disallowed_functions): External definition of new 14187 boolean warning flag. 14188 (warn_if_disallowed_function_p): Declare new function. 14189 * opts.c (warning_disallowed_functions): New static variable. 14190 (warn_disallowed_functions): New boolean warning flag. 14191 (warn_if_disallowed_function_p): New function. 14192 (add_comma_separated_to_vector): Rename 14193 add_instrument_functions_exclude_list to this. 14194 (common_handle_option): Handle new option. Rename calls to 14195 add_instrument_functions_exclude_list into calls to 14196 add_comma_separated_to_vector. 14197 * c-parser.c (c_parser_postfix_expression_after_primary): New warning 14198 based on flag warn_disallowed_functions. 14199 142002008-07-09 Christian Bruel <christian.bruel@st.com> 14201 14202 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn 14203 instead of get_attr_length. 14204 142052008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14206 14207 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++ 14208 keywords. 14209 * genemit.c (gen_insn): Likewise. 14210 * gengtype.c (note_def_vec): Likewise. 14211 * gengtype.h (note_def_vec): Likewise. 14212 * genoutput.c (struct data, output_insn_data, process_template, 14213 gen_expand, gen_split, note_constraint): Likewise. 14214 * genrecog.c (new_decision, add_to_sequence, factor_tests, 14215 make_insn_sequence): Likewise. 14216 * gensupport.c (record_insn_name): Likewise. 14217 142182008-07-08 Doug Kwan <dougkwan@google.com> 14219 14220 * config/arm/arm.opt (mandroid): New option. 14221 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro. 14222 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used. 14223 (CC1_SPEC): Same. 14224 (CC1PLUS_SPEC): Same. 14225 (LIB_SPEC): Same. 14226 (STARTFILE_SPEC): Same. 14227 (ENDFILE_SPEC): Same. 14228 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is 14229 used. 14230 142312008-07-08 Raksit Ashok <raksit@google.com> 14232 14233 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter. 14234 (set_storage_via_setmem): Fix expected_align parameter. 14235 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options 14236 missing from the list. 14237 * doc/md.texi (movmem): Explicitly state that expected alignment is 14238 to be expressed in bytes. 14239 (setmem): Explicitly state that expected alignment is to be expressed 14240 in bytes. 14241 142422008-07-08 Joseph Myers <joseph@codesourcery.com> 14243 14244 * reload.c (find_reloads_subreg_address): Do not require validity 14245 of address in original mode before reloading address. 14246 142472008-07-07 Tianwei Sheng <tianweis@google.com> 14248 14249 * df-core.c (df_remove_problem): Adjust the access to avoid out of 14250 bounds array access. 14251 142522008-07-08 Jakub Jelinek <jakub@redhat.com> 14253 14254 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst. 14255 142562008-07-05 Daniel Berlin <dberlin@dberlin.org> 14257 14258 Fix PR tree-optimization/23455 14259 Fix PR tree-optimization/35286 14260 Fix PR tree-optimization/35287 14261 * Makefile.in (OBJS-common): Remove tree-vn.o. 14262 (tree-vn.o): Remove. 14263 * dbgcnt.def: Add treepre_insert debug counter. 14264 * gcc/tree-flow.h (add_to_value): Updated for other changes. 14265 (debug_value_expressions): Ditto. 14266 (print_value_expressions): Ditto. 14267 * tree-pretty-print.c (dump_generic_node): Updated for 14268 VALUE_HANDLE removal. 14269 * tree-ssa-dom.c (record_equality): Ditto. 14270 (cprop_operand): Ditto. 14271 (lookup_avail_expr): Ditto. 14272 * tree-ssa-threadedge.c 14273 (record_temporary_equivalences_from_stmts_at_dest): Ditto. 14274 (simplify_control_stmt_condition): Ditto. 14275 * tree.c (tree_code_size): Ditto. 14276 (tree_node_structure): Ditto. 14277 (iterative_hash_expr): Ditto. 14278 * tree.def: Ditto. 14279 * tree.h (VALUE_HANDLE_ID): Ditto. 14280 (VALUE_HANDLE_EXPR_SET): Ditto. 14281 (struct tree_value_handle): Ditto. 14282 (union tree_node): Ditto. 14283 * treestruct.def: Ditto. 14284 * tree-vn.c: Removed. 14285 * tree-ssa-pre.c: Rewritten entirely. 14286 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable. 14287 (constant_value_ids): Ditto. 14288 (vn_nary_op_t): Moved to header. 14289 (vn_phi_t): Ditto. 14290 (vn_reference_op_t): Ditto 14291 (vn_reference_t): Ditto. 14292 (next_value_id): New variable. 14293 (VN_INFO): Add an assert. 14294 (vn_constant_eq): New function. 14295 (vn_constant_hash): Ditto. 14296 (get_or_alloc_constant_value_id): Ditto. 14297 (value_id_constant_p): Ditto. 14298 (vn_reference_compute_hash): De-staticify. 14299 (copy_reference_ops_from_ref): Don't use get_callee_fndecl. 14300 Disable some code with a FIXME. Remove VALUE_HANDLE use. 14301 (valueize_refs): Update opcode if it changes from ssa name to constant. 14302 (vn_reference_lookup_1): Add new argument. 14303 (vn_reference_lookup): Ditto. 14304 (vn_reference_lookup_pieces): New function. 14305 (vn_reference_insert): Add return type. Modify to deal with value ids. 14306 (vn_reference_insert_pieces): New function. 14307 (vn_nary_op_compute_hash): De-staticify. 14308 (vn_nary_op_eq): Ditto. 14309 (vn_nary_op_lookup_pieces): New function. 14310 (vn_nary_op_lookup): Add new argument. 14311 (vn_nary_op_insert_pieces): New function. 14312 (vn_nary_op_insert): Add return type. Modify to deal with value ids. 14313 (vn_phi_insert): Ditto. 14314 (visit_unary_op): Update for callee changes. 14315 (visit_binary_op): Ditto. 14316 (visit_reference_op_load): Ditto. 14317 (visit_reference_op_store): Ditto. 14318 (init_scc_vn): Init next_value_id, constant_to_value_id and 14319 constant_value_ids. 14320 (free_scc_vn): Free them. 14321 (set_hashtable_value_ids): New function. 14322 (run_scc_vn): Use it. 14323 (get_max_value_id): New function. 14324 (get_next_value_id): Ditto. 14325 (expressions_equal_p): Moved from tree-vn.c 14326 (sort_vuses): Ditto. 14327 (sort_vuses_heap): Ditto. 14328 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted 14329 above). 14330 * tree.c (iterative_hash_hashval_t): Made non-static 14331 * tree.h (iterative_hash_hashval_t): Declare it. 14332 143332008-07-08 Martin Jambor <mjambor@suse.cz> 14334 14335 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params 14336 instead of ipa_create_node_params. 14337 (ipcp_driver): Allocate infos with ipa_check_create_node_params and 14338 ipa_check_create_edge_args, free them with 14339 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks. 14340 14341 * ipa-prop.c: Include flags.h and tree-inline.h. 14342 (ipa_node_params_vector): New variable. 14343 (ipa_edge_args_vector): New variable. 14344 (edge_removal_hook_holder): New variable. 14345 (node_removal_hook_holder): New variable. 14346 (edge_duplication_hook_holder): New variable. 14347 (node_duplication_hook_holder): New variable. 14348 (ipa_detect_param_modifications): Check for presence of modified flags. 14349 (ipa_compute_jump_functions): Check for presence of jump functions. 14350 (ipa_free_edge_args_substructures): New function. 14351 (ipa_create_node_params): Removed. 14352 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector. 14353 (ipa_free_node_params_substructures): New function. 14354 (ipa_free_all_node_params): Changed to deallocate the on-the-side 14355 vector. 14356 (ipa_edge_removal_hook): New function. 14357 (ipa_node_removal_hook): New function. 14358 (duplicate_array): New function. 14359 (ipa_edge_duplication_hook): New function. 14360 (ipa_node_duplication_hook): New function. 14361 (ipa_register_cgraph_hooks): New function. 14362 (ipa_unregister_cgraph_hooks): New function. 14363 (free_all_ipa_structures_after_ipa_cp): New function. 14364 14365 * ipa-prop.h: Include vec.h. 14366 (ipa_node_params_t): New typedef with vector types for it. 14367 (ipa_edge_args_t): New typedef with vector types for it. 14368 (IPA_NODE_REF): Changed to access an on-the-side vector. 14369 (IPA_EDGE_REF): Changed to access an on-the-side vector. 14370 (ipa_check_create_node_params): New function. 14371 (ipa_check_create_edge_args): New function. 14372 14373 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted 14374 all users. 14375 143762008-07-07 Tom Tromey <tromey@redhat.com> 14377 14378 * configure, config.in: Rebuilt. 14379 * configure.ac: Don't check for scandir or alphasort. 14380 143812008-07-07 Joseph Myers <joseph@codesourcery.com> 14382 14383 * config/arm/arm.c (arm_init_neon_builtins): Register built-in 14384 types immediately after creating them. 14385 143862008-07-07 Joseph Myers <joseph@codesourcery.com> 14387 14388 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove. 14389 143902008-07-07 Fernando Pereira <fernando@cs.ucla.edu> 14391 14392 * tree-ssa-structalias.c (compute_points_to_sets): Add call to 14393 dump_constraint_graph. 14394 (dump_constraint_edge): New function. 14395 (dump_constraint_graph): New function. 14396 (debug_constraint_graph): New function. 14397 (dump_constraint): Removed useless comparison. 14398 * tree-ssa-structalias.h (dump_constraint_edge): Declare. 14399 (dump_constraint_graph): Declare. 14400 (debug_constraint_graph): Declare. 14401 * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH. 14402 144032008-07-07 Kai Tietz <kai.tietz@onevision.com> 14404 14405 * config/i386/i386.c (is_va_list_char_pointer): New. 14406 (ix86_va_start): Replace compare with ms_va_list_type_node 14407 by is_va_list_char_pointer. 14408 (ix86_gimplify_va_arg): Likewise. 14409 144102008-07-07 Martin Jambor <mjambor@suse.cz> 14411 14412 * cgraph.c (cgraph_edge_max_uid): New variable. 14413 (struct cgraph_edge_hook_list): New type. 14414 (struct cgraph_node_hook_list): New type. 14415 (struct cgraph_2edge_hook_list): New type. 14416 (struct cgraph_2node_hook_list): New type. 14417 (first_cgraph_edge_removal_hook): New variable. 14418 (first_cgraph_node_removal_hook): New variable. 14419 (first_cgraph_edge_duplicated_hook): New variable. 14420 (first_cgraph_node_duplicated_hook): New variable. 14421 (cgraph_add_edge_removal_hook): New function. 14422 (cgraph_remove_edge_removal_hook): New function. 14423 (cgraph_call_edge_removal_hooks): New function. 14424 (cgraph_add_node_removal_hook): New function. 14425 (cgraph_remove_node_removal_hook): New function. 14426 (cgraph_call_node_removal_hooks): New function. 14427 (cgraph_add_edge_duplication_hook): New function. 14428 (cgraph_remove_edge_duplication_hook): New function. 14429 (cgraph_call_edge_duplication_hooks): New function. 14430 (cgraph_add_node_duplication_hook): New function. 14431 (cgraph_remove_node_duplication_hook): New function. 14432 (cgraph_call_node_duplication_hooks): New function. 14433 (cgraph_create_edge): Assign to edge uid. 14434 (cgraph_remove_edge): Call edge removal hooks. 14435 (cgraph_node_remove_callees): Call edge removal hooks. 14436 (cgraph_node_remove_callers): Call edge removal hooks. 14437 (cgraph_remove_node): Call node removal hooks. 14438 (cgraph_clone_edge): Call edge duplication hooks. 14439 (cgraph_clone_node): Call node duplication hooks. 14440 14441 * cgraph.h (cgraph_edge): New field uid. 14442 (cgraph_edge_hook): New type. 14443 (cgraph_node_hook): New type. 14444 (cgraph_2edge_hook): New type. 14445 (cgraph_2node_hook): New type. 14446 144472008-07-07 Andreas Tobler <a.tobler@schweiz.org> 14448 14449 * config.in: Regenerate. 14450 144512008-07-07 Vladimir Prus <vladimir@codesourcery.com> 14452 14453 * gcc.c (print_sysroot): New. 14454 (option_map, display_help, process_command): Handle the 14455 -print-sysroot option. 14456 (main): Print the sysroot if requested. 14457 * doc/invoke.texi (Debugging Options): Document -print-sysroot. 14458 144592008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 14460 14461 PR target/34780 14462 * unwind-pe.h (size_of_encoded_value): add attribute unused. 14463 144642008-07-07 Daniel Jacobowitz <dan@codesourcery.com> 14465 14466 * function.c (assign_parm_remove_parallels): Check mode of entry_parm. 14467 (assign_parm_setup_block_p): Also check mode of entry_parm. 14468 144692008-07-07 Richard Guenther <rguenther@suse.de> 14470 14471 * tree-ssa-structalias.h (set_used_smts): Remove. 14472 * tree-ssa-structalias.c (used_smts): Likewise. 14473 (set_used_smts): Likewise. 14474 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove 14475 call to set_used_smts. 14476 144772008-07-07 Richard Guenther <rguenther@suse.de> 14478 14479 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag. 14480 (new_var_info): Set it to false. 14481 (solution_set_add): Correctly handle pointers outside a var and 14482 inside a field. 14483 (type_safe): Treat variables with is_full_var properly. 14484 (do_sd_constraint): Likewise. 14485 (do_ds_constraint): Likewise. 14486 (process_constraint): Remove zeroing offset for !use_field_sensitive. 14487 (get_constraint_for_ptr_offset): New function. 14488 (get_constraint_for_component_ref): For addresses at least include 14489 the last field of the variable. Handle is_full_vars properly. 14490 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR. 14491 (handle_ptr_arith): Remove. 14492 (find_func_aliases): Simplify assignment handling. 14493 (create_function_info_for): For parameter and result varinfos set 14494 is_full_var flag. 14495 (create_variable_info_for): Set is_full_var flag whenever we 14496 just created a single varinfo for a decl. 14497 (init_alias_vars): Initialize use_field_sensitive from 14498 max-fields-for-field-sensitive parameter. 14499 145002008-07-07 Richard Guenther <rguenther@suse.de> 14501 14502 PR tree-optimization/36713 14503 * tree-flow-inline.h (is_call_used): New function. 14504 * tree-nrv.c (dest_safe_for_nrv_p): Use it. 14505 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise. 14506 * tree-outof-ssa.c (create_temp): Set call-used flag if required. 14507 145082008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com> 14509 14510 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types. 14511 145122008-07-07 Mark Shinwell <shinwell@codesourcery.com> 14513 14514 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets. 14515 145162008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com> 14517 Nathan Sidwell <nathan@codesourcery.com> 14518 14519 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h 14520 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to 14521 tmake_file. 14522 * config/m68k/t-linux: New. 14523 * doc/install.texi: Document m68k-*-linux is now multilibbed by 14524 default. 14525 145262008-07-07 Nathan Sidwell <nathan@codesourcery.com> 14527 14528 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac. 14529 * config/m68k/m68k-devices.def: Remove multilibs that only differ 14530 by MAC/EMAC. 14531 145322008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14533 14534 * gcc.c (execute): Fix -Wc++-compat warning. 14535 145362008-07-06 H.J. Lu <hongjiu.lu@intel.com> 14537 14538 PR target/36720 14539 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode 14540 constant for little endian. 14541 145422008-07-06 Richard Sandiford <rdsandiford@googlemail.com> 14543 14544 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check 14545 mips_base_mips16 instead of TARGET_MIPS16. 14546 (mips_base_mips16): Declare. 14547 * config/mips/mips.c (mips_base_mips16): Make global. 14548 (was_mips16_p): Remove GTY marker. 14549 (was_mips16_pch_p): New variable. 14550 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p. 14551 (mips_override_options): Force to non-MIPS16 mode initially. 14552 Do not complain about MIPS16 PIC incompatibilities here. 14553 Only allow -mgpopt if -mexplicit-relocs is in force for 14554 non-MIPS16 code. 14555 145562008-07-06 Andreas Tobler <a.tobler@schweiz.org> 14557 14558 * configure.ac: Check for caddr_t, define to char * if not defined. 14559 * configure: Regenerate. 14560 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings. 14561 (mmap_gt_pch_use_address): Likewise. 14562 * config/host-solaris.c (sol_gt_pch_use_address): Likewise. 14563 145642008-07-06 Richard Guenther <rguenther@suse.de> 14565 14566 * tree-ssa-structalias.c (struct variable_info): Remove has_union. 14567 (new_var_info): Deal with it. 14568 (solution_set_add): Likewise. 14569 (bitpos_of_field): Make signed, fix. 14570 (struct fieldoff): Remove type and decl fields. Make size field 14571 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers 14572 flags. 14573 (fieldoff_compare): Deal with it. 14574 (push_fields_onto_fieldstack): Remove has_union argument, glob 14575 adjacent non-pointer fields together. 14576 (create_function_info_for): Do not set has_union. 14577 (create_variable_info_for): Simplify. 14578 145792008-07-06 Kai Tietz <kai.tietz@onevision.com> 14580 14581 * config.gcc (extra_headers): Add cross-stdarg.h for target 14582 x86_64-*-* and i?86-*-*. 14583 * config/i386/cross-stdarg.h: New. 14584 * builtins.c (std_fn_abi_va_list): New. 14585 (std_canonical_va_list_type): New. 14586 (stabilize_va_list): Replace va_list_type_node use by 14587 mtarget.canonical_va_list_type. 14588 (gimplify_va_arg_expr): Likewise. 14589 (expand_builtin_va_copy): Replace va_list_type_node use by 14590 mtarget.fn_abi_va_list. 14591 * tree-sra.c (is_va_list_type): New helper. 14592 (decl_can_be_decomposed_p): Replace 14593 va_list_type_node use by is_va_list_type. 14594 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise. 14595 * tree-stdarg.c (execute_optimize_stdarg): Likewise. 14596 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST. 14597 * config/i386/i386-protos.h (ix86_get_valist_type): New. 14598 (ix86_enum_va_list): New. 14599 * config/i386/i386.c (sysv_va_list_type_node): New. 14600 (ms_va_list_type_node): New. 14601 (ix86_function_type_abi): Remove sorry. 14602 (ix86_build_builtin_va_list_abi): New. 14603 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi 14604 for 64-bit targets. 14605 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node. 14606 (ix86_init_builtins_va_builtins_abi): New. 14607 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi 14608 for 64-bit targets. 14609 (ix86_handle_abi_attribute): New. 14610 (attribute_spec): Add sysv_abi and ms_abi. 14611 (ix86_fn_abi_va_list): New. 14612 (ix86_canonical_va_list_type): New. 14613 (ix86_enum_va_list): New. 14614 (TARGET_FN_ABI_VA_LIST): New. 14615 (TARGET_CANONICAL_VA_LIST_TYPE): New. 14616 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New. 14617 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New. 14618 (TARGET_CANONICAL_VA_LIST_TYPE): New. 14619 (TARGET_ENUM_VA_LIST): New. 14620 * expr.h (std_fn_abi_va_list): New. 14621 (std_canonical_va_list_type): New. 14622 * target-def.h (TARGET_FN_ABI_VA_LIST): New. 14623 (TARGET_CANONICAL_VA_LIST_TYPE): New. 14624 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and 14625 TARGET_CANONICAL_VA_LIST_TYPE. 14626 * target.h (struct gcc_target): Add fn_abi_va_list hook 14627 and canonical_va_list_type hook. 14628 146292008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com> 14630 14631 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as 14632 integral and pointer types. 14633 146342008-07-04 Roger Sayle <roger@eyesopen.com> 14635 14636 * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast 14637 the "void*" result of xmalloc to "char*" to fix bootstrap breakage. 14638 146392008-07-04 Kaz Kojima <kkojima@gcc.gnu.org> 14640 14641 PR target/36684 14642 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC. 14643 146442008-07-04 Jakub Jelinek <jakub@redhat.com> 14645 14646 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use 14647 build_gimple_modify_stmt. 14648 (build_arrays, gen_inbound_check): Likewise. Force RHS to be 14649 gimple operand. Use fold_build* instead of build*. 14650 146512008-07-04 Richard Guenther <rguenther@suse.de> 14652 14653 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare. 14654 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED 14655 properly to compute the reachability set if we do field-sensitive PTA. 14656 * invoke.texi (max-fields-for-field-sensitive): Document default. 14657 * opts.c (decode_options): Set max-fields-for-field-sensitive to 14658 100 for optimize >= 2. 14659 146602008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14661 14662 * ggc-zone.c (lookup_page_table_if_allocated, 14663 set_page_table_entry, zone_find_object_size, alloc_small_page, 14664 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc, 14665 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix 14666 -Wc++-compat and/or -Wcast-qual warnings. 14667 146682008-07-04 Alan Modra <amodra@bigpond.net.au> 14669 14670 PR target/36634 14671 * config/rs6000/rs6000.md (call, call_value): Don't arrange for 14672 pic_offset_table_rtx to be marked as used here. 14673 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for 14674 TARGET_SECURE_PLT to "use" pic_offset_table_rtx. 14675 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn. 14676 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert 14677 !TARGET_SECURE_PLT. 14678 146792008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14680 14681 * alloc-pool.c (hash_descriptor, eq_descriptor, 14682 alloc_pool_descriptor): Fix -Wc++-compat warnings. 14683 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor): 14684 Likewise. 14685 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, 14686 loc_descriptor, ggc_prune_ptr, ggc_free_overhead, 14687 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise. 14688 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor): 14689 Likewise. 14690 146912008-07-03 Eric Botcazou <ebotcazou@adacore.com> 14692 14693 * tree-flow.h (loop_only_exit_p): Declare. 14694 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public. 14695 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on 14696 the number of iterations if it is constant. Otherwise, if this is the 14697 only possible exit of the loop, use the conservative estimate on the 14698 number of iterations of the entire loop if available. 14699 147002008-07-03 Richard Sandiford <rdsandiford@googlemail.com> 14701 14702 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS. 14703 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0. 14704 Add synchronization functions. 14705 * config/sync.c: New file. 14706 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define. 14707 (LIBGCC_SYNC_CFLAGS): Likewise. 14708 147092008-07-03 Uros Bizjak <ubizjak@gmail.com> 14710 14711 PR target/36710 14712 * config/i386/i386.md (mode): Add TF to "mode" attribute. 14713 (*pushtf_sse): New insn pattern. 14714 (pushtf splitters): New splitters. 14715 147162008-07-03 Michael Meissner <gnu@the-meissners.org> 14717 14718 PR middle-end/35736 14719 * predict.c (build_predict_expr): Use void_type_node for the tree 14720 type, instead of NULL_TREE. 14721 147222008-07-03 H.J. Lu <hongjiu.lu@intel.com> 14723 14724 * config/i386/i386.c (contains_aligned_value_p): Return true 14725 for TCmode. 14726 (ix86_data_alignment): Align TCmode to 128bits. 14727 (ix86_local_alignment): Likewise. 14728 147292008-07-03 Andrew Haley <aph@redhat.com> 14730 14731 PR bootstrap/33304 14732 * vec.h (VEC_TA): New. 14733 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P, 14734 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA. 14735 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro. 14736 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro. 14737 (C_COMMON_FIXED_TYPES): Remove first arg. 14738 (C_COMMON_FIXED_MODE_TYPES): Likewise. 14739 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros, 14740 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order 14741 not to use empty macro arguments. 14742 147432008-07-02 Joseph Myers <joseph@codesourcery.com> 14744 14745 * config/alpha/vms_tramp.asm, config/arm/crti.asm, 14746 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s, 14747 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm, 14748 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm, 14749 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm, 14750 config/i386/sol2-gc1.asm, config/ia64/crti.asm, 14751 config/ia64/crtn.asm, config/m68hc11/larith.asm, 14752 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s, 14753 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm, 14754 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm, 14755 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm, 14756 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm, 14757 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm, 14758 config/rs6000/e500crtres64gpr.asm, 14759 config/rs6000/e500crtres64gprctr.asm, 14760 config/rs6000/e500crtrest32gpr.asm, 14761 config/rs6000/e500crtrest64gpr.asm, 14762 config/rs6000/e500crtresx32gpr.asm, 14763 config/rs6000/e500crtresx64gpr.asm, 14764 config/rs6000/e500crtsav32gpr.asm, 14765 config/rs6000/e500crtsav64gpr.asm, 14766 config/rs6000/e500crtsav64gprctr.asm, 14767 config/rs6000/e500crtsavg32gpr.asm, 14768 config/rs6000/e500crtsavg64gpr.asm, 14769 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm, 14770 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm, 14771 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm, 14772 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm, 14773 config/sparc/sol2-cn.asm: Remove .file directives. 14774 147752008-07-02 Richard Sandiford <rdsandiford@googlemail.com> 14776 14777 * resource.c (mark_referenced_resources): Look inside 14778 UNSPEC_VOLATILEs and ASM_INPUTs. 14779 147802008-07-02 Ian Lance Taylor <iant@google.com> 14781 14782 * rtlanal.c (add_reg_note): New function. 14783 * rtl.h (add_reg_note): Declare. 14784 * auto-inc-dec.c (attempt_change): Use add_reg_note. 14785 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise. 14786 * builtins.c (expand_builtin_longjmp): Likewise. 14787 (expand_builtin_nonlocal_goto): Likewise. 14788 * calls.c (emit_call_1, expand_call): Likewise. 14789 * cfgexpand.c (add_reg_br_prob_note): Likewise. 14790 * cfglayout.c (fixup_reorder_chain): Likewise. 14791 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. 14792 (commit_one_edge_insertion): Likewise. 14793 * combine.c (move_deaths, distribute_notes): Likewise. 14794 * df-problems.c (df_set_note): Likewise. 14795 * emit-rtl.c (link_cc0_insns, try_split): Likewise. 14796 (set_unique_reg_note): Likewise. 14797 (emit_copy_of_insn_after): Likewise. 14798 * expr.c (expand_expr_real): Likewise. 14799 * gcse.c (add_label_notes): Likewise. 14800 * haifa-sched.c (create_check_block_twin): Likewise. 14801 * jump.c (mark_jump_label_1): Likewise. 14802 * loop-doloop.c (add_test, doloop_modify): Likewise. 14803 * loop-unswitch.c (compare_and_jump_seq): Likewise. 14804 * lower-subreg.c (move_eh_region_note): Likewise. 14805 * optabs.c (emit_libcall_block): Likewise. 14806 * predict.c (predict_insn): Likewise. 14807 (combine_predictions_for_insn): Likewise. 14808 * recog.c (peephole2_optimize): Likewise. 14809 * regmove.c (try_auto_increment): Likewise. 14810 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise. 14811 * reload.c (find_reloads): Likewise. 14812 * reload1.c (fixup_eh_region_note): Likewise. 14813 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise. 14814 * reorg.c (delete_prior_computation): Likewise. 14815 (delete_computation, dbr_schedule): Likewise. 14816 * config/pa/pa.c (legitimize_pic_address): Likewise. 14817 * config/sh/sh.c (sh_reorg): Likewise. 14818 148192008-07-02 H.J. Lu <hongjiu.lu@intel.com> 14820 14821 PR target/36669 14822 * config/libgcc-glibc.ver: Add %exclude. 14823 * config/m32r/libgcc-glibc.ver: Likwise. 14824 * config/s390/libgcc-glibc.ver: Likwise. 14825 * config/sh/libgcc-glibc.ver: Likwise. 14826 * config/sparc/libgcc-sparc-glibc.ver: Likwise. 14827 14828 * config/i386/libgcc-glibc.ver: New. 14829 14830 * config/i386/libgcc-x86_64-glibc.ver: Removed. 14831 148322008-07-02 H.J. Lu <hongjiu.lu@intel.com> 14833 14834 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp 14835 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*, 14836 i[34567]86-*-linux*, x86_64-*-linux*. Add 14837 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for 14838 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*, 14839 x86_64-*-linux*. Add i386/t-linux to tmake_file for 14840 i[34567]86-*-linux*, x86_64-*-linux*. 14841 14842 * libgcc-std.ver: Add empty GCC_4.4.0. 14843 14844 * mkmap-symver.awk: Support multiple versions per symbol. 14845 14846 * config/i386/i386.c (ix86_init_builtins): Always define 14847 __builtin_fabsq and __builtin_copysignq with fallbacks. 14848 (ix86_expand_builtin): Emit normal call for __builtin_fabsq 14849 and __builtin_copysignq if SSE2 isn't available. 14850 14851 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined. 14852 (LIBGCC2_TF_CEXT): Likwise. 14853 (TF_SIZE): Likwise. 14854 14855 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1. 14856 14857 * config/i386/sfp-machine.h: Moved to libgcc. 14858 14859 * config/i386/sfp-machine.h: New. 14860 * config/i386/t-linux: Likwise. 14861 14862 * config/i386/t-darwin: Remove softfp_wrap_start and 14863 softfp_wrap_end. 14864 * config/i386/t-darwin64: Likewise. 14865 14866 * config/i386/t-fprules-softfp64: Renamed to ... 14867 * config/i386/t-fprules-softfp: This. 14868 14869 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start 14870 and softfp_wrap_end. 14871 148722008-07-02 Jason Merrill <jason@redhat.com> 14873 14874 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT. 14875 14876 * tree.c (ctor_to_list): New fn. 14877 * tree.h: Declare it. 14878 (CONSTRUCTOR_ELT): New macro. 14879 (CONSTRUCTOR_NELTS): New macro. 14880 148812008-07-02 Richard Guenther <rguenther@suse.de> 14882 14883 * tree-ssa-structalias.c (struct variable_info): Reorder 14884 to fill padding on 64bit hosts. Make collapsed_to an int. 14885 (get_varinfo_fc): Deal with that. 14886 (new_var_info): Likewise. 14887 (collapse_rest_of_var): Likewise. 14888 148892008-07-02 Joshua Sumali <jsumali@redhat.com> 14890 14891 * doc/install.texi (--enable-java-home): Document. 14892 (--enable-aot-compile-rpm): Likewise. 14893 (--with-arch-directory): Likewise. 14894 (--with-os-directory): Likewise. 14895 (--with-origin-name): Likewise. 14896 (--with-arch-suffix): Likewise. 14897 (--with-jvm-root-dir): Likewise. 14898 (--with-jvm-jar-dir): Likewise. 14899 (--with-python-dir): Likewise. 14900 149012008-07-02 Richard Guenther <rguenther@suse.de> 14902 14903 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads 14904 from decls explicitly. Merge operand checking from tuples. 14905 149062008-07-02 Martin Jambor <mjambor@suse.cz> 14907 14908 * tree-switch-conversion.c: Included timevar.h which I forgot before. 14909 149102008-07-02 Martin Jambor <mjambor@suse.cz> 14911 14912 * tree-switch-conversion.c: Included timevar.h 14913 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION). 14914 14915 * timevar.def: Added TV_TREE_SWITCH_CONVERSION. 14916 149172008-07-02 Martin Jambor <mjambor@suse.cz> 14918 14919 * tree-switch-conversion.c: Corrected various comments and 14920 whitespace issues 14921 (build_constructors): Fixed minor formatting mistakes. 14922 14923 * invoke.texi (Optimize Options): Corrected the 14924 switch-conversion-max-branch-ratio parameter. 14925 149262008-07-02 Mark Shinwell <shinwell@codesourcery.com> 14927 14928 * final.c (asm_insn_count): Return zero for an empty asm body. 14929 149302008-07-02 Richard Guenther <rguenther@suse.de> 14931 14932 * bitmap.h (bitmap_set_bit): Return bool. 14933 (bitmap_clear_bit): Likewise. 14934 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only 14935 write to the bitmap if it would. 14936 (bitmap_clear_bit): Likewise. 14937 * tree-ssa-structalias.c (add_implicit_graph_edge): Use 14938 bitmap_set_bit return value. 14939 (add_pred_graph_edge): Likewise. 14940 (add_graph_edge): Likewise. 14941 (do_sd_constraint): Likewise. 14942 (do_ds_constraint): Likewise. 14943 149442008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14945 14946 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage): 14947 Fix -Wc++-compat and/or -Wcast-qual warnings. 14948 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration, 14949 gen_regparm_prefix): Likewise. 14950 * vmsdbgout.c (write_modbeg, lookup_filename, 14951 vmsdbgout_source_line, vmsdbgout_init): Likewise. 14952 149532008-07-02 Danny Smith <dannysmith@users.sourceforge.net> 14954 14955 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let 14956 defaults.h definition apply. 14957 149582008-07-01 Daniel Jacobowitz <dan@codesourcery.com> 14959 14960 * function.c (assign_parm_remove_parallels): New. 14961 (assign_parm_setup_block_p): Do not return true for non-BLKmode 14962 PARALLELs. 14963 (assign_parm_setup_block): Do not handle them. 14964 (assign_parm_setup_reg, assign_parm_setup_stack): Call 14965 assign_parm_remove_parallels. 14966 149672008-07-01 Daniel Jacobowitz <dan@codesourcery.com> 14968 14969 * c-typeck.c (convert_for_assignment): Use 14970 vector_targets_convertible_p. 14971 * c-common.c (vector_targets_convertible_p): New. 14972 * c-common.h (vector_targets_convertible_p): New prototype. 14973 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check 14974 opaque_p_V2SI_type_node. 14975 149762008-07-01 Steve Ellcey <sje@cup.hp.com> 14977 14978 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow 14979 RFmode constants. 14980 149812008-07-01 Uros Bizjak <ubizjak@gmail.com> 14982 14983 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and 14984 TFmode constants via two element DImode vector for hosts with 14985 HOST_BITS_PER_WIDE_INT < 64. 14986 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq 14987 also for HOST_BITS_PER_WIDE_INT < 64. 14988 149892008-07-01 Richard Guenther <rguenther@suse.de> 14990 14991 PR tree-optimization/36666 14992 * tree-ssa-structalias.c (get_constraint_for_1): Declare. 14993 (get_constraint_exp_from_ssa_var): Split into ... 14994 (get_constraint_exp_for_temp): ... this ... 14995 (get_constraint_for_ssa_var): ... and that. 14996 Return constraint expressions for all touched sub-fields 14997 if the results address is not taken. 14998 (process_constraint): Remove assertion that aggregate 14999 assignments do not happen at this place. 15000 (get_constraint_for_component_ref): Add address_p argument. 15001 Return constraint expressions for all touched sub-fields 15002 if the results address is not taken. 15003 (do_deref): Use get_constraint_exp_for_temp. 15004 (get_constraint_for_1): Rename from ... 15005 (get_constraint_for): ... this. Add the old function as wrapper. 15006 (do_structure_copy): Use get_constraint_for_1. 15007 150082008-07-01 Martin Jambor <mjambor@suse.cz> 15009 15010 * Makefile.in (tree-switch-conversion.o): Add. 15011 (OBJS-common): Add tree-swtch-conversion.o. 15012 * passes.c (init_optimization_passes): Add pass_convert_switch. 15013 * tree-pass.h (pass_convert_switch): Add. 15014 * tree-switch-conversion.c: New file. 15015 * gcc.dg/tree-ssa/cswtch.c: New testcase. 15016 * common.opt (ftree-cswtch): New option. 15017 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter. 15018 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter. 15019 * opts.c (decode_options): Set flag_tree_switch_conversion when 15020 optimization level is >= 2. 15021 * doc/invoke.texi (Optimize Options): Added description of 15022 -ftree-swtch-conversion and switch-conversion-max-branch-ratio. 15023 150242008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15025 15026 * config/darwin-driver.c (darwin_default_min_version): Fix 15027 -Wc++-compat warnings. 15028 150292008-06-30 Uros Bizjak <ubizjak@gmail.com> 15030 15031 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint 15032 of operand 0. 15033 150342008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com> 15035 15036 * ifcvt.c (cond_move_process_if_block): Free vectors on false return. 15037 150382008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com> 15039 15040 PR rtl-optimization/34744 15041 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros. 15042 (df_scan_free_internal): Free data structures not 15043 allocated in storage pools. 15044 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec. 15045 (df_refs_add_to_chains): Use df_scan_free_ref_vec and 15046 df_scan_free_mws_vec. 15047 * dse.c (dse_step6): Free offset_map_p and offset_map_n 15048 unconditionally. 15049 150502008-06-30 H.J. Lu <hongjiu.lu@intel.com> 15051 15052 * config/i386/i386.c (contains_aligned_value_p): Return true 15053 for __float128. 15054 (ix86_function_arg_boundary): Return its natural boundary 15055 for __float128. 15056 (return_in_memory_32): Don't check TDmode. 15057 (ix86_split_to_parts): Support splitting into 4 parts and 15058 support TFmode for 32bit target. 15059 (ix86_split_long_move): Support splitting into 4 parts. 15060 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ 15061 for SSE2. 15062 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ... 15063 (ix86_init_builtins): Here. 15064 (ix86_scalar_mode_supported_p): Always return true for TFmode. 15065 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for 15066 'q' and 'w', respectively. 15067 15068 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of 15069 TARGET_64BIT. 15070 (movtf_internal): Likewise. 15071 (<code>tf2): Likewise. 15072 (*absnegtf2_sse): Likewise. 15073 (copysign<mode>3): Likewise. 15074 (copysign<mode>3_const): Likewise. 15075 (copysign<mode>3_var): Likewise. 15076 (define_split UNSPEC_COPYSIGN): Likewise. 15077 * config/i386/sse.md (*nandtf3): Likewise. 15078 (<code>tf3): Likewise. 15079 (*<code>tf3): Likewise. 15080 150812008-06-30 Joey Ye <joey.ye@intel.com> 15082 H.J. Lu <hongjiu.lu@intel.com> 15083 15084 * global.c (compute_regsets): Set frame_pointer_needed here. 15085 * reload1.c (init_elim_table): Don't set frame_pointer_needed here. 15086 150872008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 15088 15089 * doc/install.texi (specific): Expand Windows build notes. 15090 150912008-06-30 Ira Rosen <irar@il.ibm.com> 15092 15093 PR tree-optimization/36648 15094 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide 15095 number of prolog iterations by step. Fix the comment. 15096 150972008-06-30 Richard Guenther <rguenther@suse.de> 15098 15099 PR middle-end/36671 15100 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument, 15101 handle calls from ECF_MALLOC functions. 15102 (handle_pure_call): ECF_MALLOC functions do not return 15103 call-used memory. 15104 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call. 15105 151062008-06-29 Andreas Schwab <schwab@suse.de> 15107 15108 * config/m68k/m68k.c (print_operand): Always print a float 15109 constant in hex. 15110 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND) 15111 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): 15112 Remove macros. 15113 15114 * config/rs6000/x-linux64: Remove never used file. 15115 151162008-06-29 Richard Guenther <rguenther@suse.de> 15117 15118 * tree-ssa-structalias.h (compute_points_to_sets): Adjust 15119 prototype. 15120 (struct alias_info): Move ... 15121 * tree-ssa-alias.c: ... here. 15122 (update_alias_info): Declare. 15123 (compute_may_aliases): Call it. 15124 (update_alias_info): New function. 15125 * tree-ssa-structalias.c (update_alias_info): Move ... 15126 * tree-ssa-alias.c (update_alias_info_1): ... here. 15127 * tree-ssa-structalias.c (process_constraint_1): Remove 15128 unused from_call argument. Rename to ... 15129 (process_constraint): ... this. Delete old wrapper. 15130 (make_constraint_to): Adjust callers. 15131 (handle_const_call): Likewise. 15132 (handle_pure_call): Likewise. 15133 (init_base_vars): Likewise. 15134 (handle_lhs_call): Likewise. Remove unnecessary constraint. 15135 (find_func_aliases): We don't need structure copies for 15136 complex types. 15137 (make_constraint_from_anything): Remove. 15138 (create_variable_info_for): For globals make constraints 15139 from escaped, not from anything. 15140 (compute_points_to_sets): Do not call update_alias_info. 15141 (ipa_pta_execute): Use make_constraint_from. 15142 151432008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15144 15145 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete. 15146 (bitmap.o-warn, dominance.o-warn): New. 15147 * configure.ac (cxx_compat_warn): Delete. 15148 (loose_warn): Add -Wcast-qual and -Wc++-compat. 15149 * system.h: Remove #pragma diagnostic for -Wcast-qual and 15150 -Wc++-compat. 15151 * configure: Regenerate. 15152 15153 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual 15154 warnings. 15155 151562008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15157 15158 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings. 15159 * df-scan.c (df_notes_rescan): Likewise. 15160 * ggc-page.c (set_page_table_entry): Likewise. 15161 * intl.c (gcc_gettext_width): Likewise. 15162 * varasm.c (get_unnamed_section, get_noswitch_section, 15163 get_section): Likewise. 15164 151652008-06-28 Andrew Jenner <andrew@codesourcery.com> 15166 15167 * regrename.c (build_def_use): Don't copy RTX. 15168 151692008-06-28 Sandra Loosemore <sandra@codesourcery.com> 15170 15171 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref. 15172 (Type Attributes): Fix nesting of @table and @subsection. Adjust 15173 punctuation. Use @ref instead of @xref. 15174 (Function Names): Remove stray @display/@end display. 15175 (C++ Attributes): Use @ref instead of @xref. 15176 (Deprecated Features): Fix punctuation around @xref. 15177 (Backwards Compatibility): Likewise. 15178 * doc/rtl.texi (Incdec): Remove stray @table/@end table. 15179 151802008-06-28 Joseph Myers <joseph@codesourcery.com> 15181 15182 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode 15183 constants for E500 double. 15184 151852008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 15186 15187 * doc/rtl.texi (const_vector): Document const_fixed as legitimate 15188 element type of const_vector. 15189 151902008-06-28 Uros Bizjak <ubizjak@gmail.com> 15191 15192 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3): 15193 Remove FLAGS_REG clobber from expander pattern. 15194 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto. 15195 (anddi3, andsi3, andhi3, andqi3): Ditto. 15196 (iordi3, iorsi3, iorhi3, iorqi3): Ditto. 15197 (xordi3, xorsi3, xorhi3, xorqi3): Ditto. 15198 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto. 15199 (ashlsi3, ashlhi3, ashlqi3): Ditto. 15200 (ashrsi3, ashrhi3, ashrqi3): Ditto. 15201 (lshrsi3, lshrhi3, lshrqi3): Ditto. 15202 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto. 15203 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto. 15204 152052008-06-28 Richard Guenther <rguenther@suse.de> 15206 15207 * tree-ssa-structalias.c (callused_id, var_callused, 15208 callused_tree): Add. 15209 (handle_pure_call): New function. 15210 (find_func_aliases): Call it. 15211 (find_what_p_points_to): Handle the call-used set. 15212 (clobber_what_escaped): Likewise. 15213 (compute_call_used_vars): New function. 15214 (init_base_vars): Init the call-used variable. 15215 (do_sd_constraint): Do not propagate the solution from CALLUSED 15216 but use CALLUSED as a placeholder. 15217 (solve_graph): Likewise. 15218 * tree-flow-inline.h (gimple_call_used_vars): New function. 15219 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap. 15220 (compute_call_used_vars): Declare. 15221 * tree-ssa-alias.c (set_initial_properties): Call 15222 compute_call_used_vars. 15223 (reset_alias_info): Clear call-used variables. 15224 (add_call_clobber_ops): Assert we are not called for const/pure 15225 functions. Remove handling of them. 15226 (add_call_read_ops): Handle pure functions by adding the 15227 call-used set of variables as VUSEs. 15228 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap. 15229 (delete_tree_ssa): Free it. 15230 * tree-dfa.c (remove_referenced_var): Clear the var from the 15231 call-used bitmap. 15232 152332008-06-28 Kai Tietz <kai.tietz@onevision.com> 15234 15235 * tree.c (build_varargs_function_type_list): New. 15236 (build_function_type_list_1): New. 15237 (build_function_type_list): Use build_function_type_list_1. 15238 * tree.h (build_varargs_function_type_list): New. 15239 152402008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 15241 15242 PR target/34856 15243 * config/spu/spu.c (spu_builtin_splats): Do not generate 15244 invalid CONST_VECTOR expressions. 15245 (spu_expand_vector_init): Likewise. 15246 152472008-06-28 Richard Sandiford <rdsandiford@googlemail.com> 15248 15249 * optabs.c (libfunc_decls): New variable. 15250 (libfunc_decl_hash, libfunc_decl_eq): New functions. 15251 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked 15252 for the same function twice. 15253 152542008-06-27 Uros Bizjak <ubizjak@gmail.com> 15255 15256 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using 15257 ix86_expand_binary_operator directly. 15258 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate 15259 for operand 2. 15260 (*ashrti3_1): Ditto. 15261 (*lshrti3_1): Ditto. 15262 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns. 15263 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2 15264 using only one splitter. Conditionaly execute splitter before or 15265 after peephole2 pass. 15266 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns. 15267 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints. 15268 Use only one alternative in asm template. 15269 (x86_64_shld): Compress operand 2 constraints. Use only one alternative 15270 in asm template. 15271 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and 15272 "J" operand constraint for operand 2. 15273 (*ashldi3_cconly_rex64): Ditto. 15274 (*ashrdi3_cmp_rex64): Ditto. 15275 (*ashrdi3_cconly_rex64): Ditto. 15276 (*lshrdi3_cmp_rex64): Ditto. 15277 (*lshrdi3_cconly_rex64): Ditto. 15278 * config/i386/predicates.md (const_1_to_63_operand): New predicate. 15279 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs. 15280 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of 15281 gen_x86_shrd_1. 15282 152832008-06-27 Jakub Jelinek <jakub@redhat.com> 15284 15285 * gimplify.c (omp_is_private): Don't return true if decl is not 15286 already private on #pragma omp for or #pragma omp parallel for. 15287 15288 PR debug/36617 15289 * tree-cfg.c (struct move_stmt_d): Replace block field with 15290 orig_block and new_block fields. 15291 (move_stmt_r): Only set TREE_BLOCK to p->new_block if 15292 if it used to be NULL, p->orig_block or if p->orig_block is NULL. 15293 (move_block_to_fn): Replace vars_map and new_label_map arguments 15294 with struct move_stmt_d pointer. 15295 (replace_block_vars_by_duplicates): New function. 15296 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust 15297 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over 15298 all subblocks of ORIG_BLOCK to the new function. Call 15299 replace_block_vars_by_duplicates. 15300 * tree-flow.h (move_sese_region_to_fn): Adjust prototype. 15301 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL 15302 BLOCK of the new function. Adjust move_sese_region_to_fn caller. 15303 Prune vars with original DECL_CONTEXT from child_cfun->local_decls. 15304 (expand_omp): Temporarily set input_location to the location of 15305 region's controlling stmt. 15306 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost 15307 BIND_EXPR, push ctx->block_vars and gimplification vars into 15308 the BIND_EXPR and its block's BLOCK_VARS instead of directly 15309 into dest function. 15310 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if 15311 there are any BLOCK_VARS. 15312 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the 15313 OMP_PARALLEL or OMP_TASK stmt. 15314 (lower_omp): Save and restore input_location around the lower_omp_1 15315 call. 15316 153172008-06-27 Richard Guenther <rguenther@suse.de> 15318 15319 PR tree-optimization/36400 15320 PR tree-optimization/36373 15321 PR tree-optimization/36344 15322 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id, 15323 var_nonlocal, nonlocal_tree, nonlocal_id): New globals 15324 (update_alias_info): Remove call clobbering code. 15325 (make_constraint_to): New helper function. 15326 (make_escape_constraint): Likewise. 15327 (handle_rhs_call): Use it on all pointer containing arguments. 15328 Also mark the static chain escaped. 15329 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED 15330 instead of ANYTHING. 15331 (make_constraint_from): New helper split out from ... 15332 (make_constraint_from_anything): ... here. 15333 (find_func_aliases): Add constraints for escape sites. 15334 (intra_create_variable_infos): Make constraints from NONLOCAL 15335 for parameters. 15336 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same 15337 as ANYTHING. 15338 (clobber_what_p_points_to): Remove. 15339 (clobber_what_escaped): New function. 15340 (init_base_vars): Init NONLOCAL and ESCAPED. 15341 (do_sd_constraint): Do not propagate the solution from ESCAPED 15342 but use ESCAPED as a placeholder. 15343 (solve_graph): Likewise. 15344 * tree-flow.h (clobber_what_p_points_to): Remove. 15345 (clobber_what_escaped): Declare. 15346 * tree-ssa-alias.c (set_initial_properties): Call it. 15347 Remove code clobbering escaped pointers. 15348 153492008-06-27 Richard Sandiford <rdsandiford@googlemail.com> 15350 15351 * function.c (allocate_struct_function): Only allocate a unique 15352 funcdef_no if the decl is nonzero. 15353 153542008-06-27 Richard Sandiford <rdsandiford@googlemail.com> 15355 15356 * config/mips/mips-protos.h (mips_split_const_insns): Declare. 15357 * config/mips/mips.c (mips_split_const_insns): New function. 15358 * config/mips/mips.md (move_type): New attribute. 15359 (mode): Move attribute definition earlier in file. Add "TI" and "TF". 15360 (dword_mode): New attribute. 15361 (type): Avoid long line. Map "move_type"s to "type"s, 15362 choosing "multi" for doubleword moves if appropriate. 15363 Swap MTC/MFC comments to match their declaration order. 15364 (extended_mips16): Default to "yes" if "move_type" is "sll0", 15365 "type" is "branch" or "jal" is "direct". 15366 (length): Handle "extended_mips16" first. Make the default 15367 "0" for "ghost" instructions. Set the length from "move_type". 15368 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead 15369 of "type", with "sll0" for the register alternative. Remove the 15370 "extended_mips16" attribute. 15371 (zero_extendsidi2, *clear_upper32): Use "move_type" instead 15372 of "type", with "shift_shift" for the register alternative. 15373 Remove the "length" attribute. 15374 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise. 15375 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead 15376 of "type", with "andi" for the register alternative. 15377 (*zero_extendqihi2): Likewise. 15378 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type" 15379 of "andi" instead of a "type" of "arith". 15380 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type" 15381 instead of "type". 15382 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l) 15383 (mov_<store>r, *mov<mode>_ra): Likewise. 15384 (extendsidi2): Use "move_type" instead of "type", with "move" 15385 for the register alternative. 15386 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead 15387 of "type", with "signext" for the register alternative. 15388 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise. 15389 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise. 15390 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2) 15391 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2) 15392 (floatdisf2, *branch_equality<mode>_mips16): Likewise. 15393 (unnamed branch insn): Likewise. 15394 (*movdi_gp32_fp64): Fold into... 15395 (*movdi_32bit): ...here. 15396 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into... 15397 (*movdf_hardfloat): ...this new pattern. 15398 (*movdf_softfloat): Remove redundant FPR alternatives. 15399 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes. 15400 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into... 15401 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for 15402 the "move" attribute. 15403 (*movdi_32bit): Use "move_type" instead of "type" and remove the 15404 "length" attribute. Use "fpload" and "fpstore" instead of "load" 15405 and "store" for COP loads and stores. 15406 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc) 15407 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16) 15408 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat) 15409 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf) 15410 (*movtf_mips16, *movv2sf): Likewise. 15411 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>) 15412 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>) 15413 (mfhc1<mode>): Use "move_type" instead of "move". 15414 (*low<mode>_mips16): Use "extended_mips16" instead of "length". 15415 (loadgp_blockage): Remove the "length" attribute. 15416 (blockage, set_got_version, update_got_version): Likewise. 15417 (call_internal): Remove the "extended_mips16" attribute. 15418 (call_value_internal, call_value_multiple_internal): Likewise. 15419 * config/mips/loongson.md (mov<mode>_internal): Use "move_type" 15420 instead of "move". 15421 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove 15422 the "length" attribute. 15423 154242008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15425 15426 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or 15427 -Wcast-qual warnings. 15428 * c-pragma.c (dpm_eq, handle_pragma_push_macro, 15429 handle_pragma_pop_macro): Likewise. 15430 * collect2.c (resolve_lib_name): Likewise. 15431 * config/arc/arc.c (arc_init): Likewise. 15432 * config/arm/arm.c (neon_builtin_compare, 15433 locate_neon_builtin_icode): Likewise. 15434 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise. 15435 * config/bfin/bfin.c (bfin_init_machine_status, 15436 bfin_optimize_loop): Likewise. 15437 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise. 15438 * config/cris/cris.c (cris_init_expanders): Likewise. 15439 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise. 15440 * config/darwin.c (machopic_indirection_eq, 15441 machopic_indirection_name, machopic_output_indirection): Likewise. 15442 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns, 15443 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1, 15444 frv_optimize_membar): Likewise. 15445 * config/i386/cygwin.h (mingw_scan, 15446 GCC_DRIVER_HOST_INITIALIZATION): Likewise. 15447 * config/i386/cygwin1.c (mingw_scan): Likewise. 15448 * config/i386/i386.c (machopic_output_stub): Likewise. 15449 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix, 15450 i386_pe_unique_section): Likewise. 15451 * config/ia64/ia64.c (ia64_init_machine_status, 15452 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg): 15453 Likewise. 15454 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise. 15455 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise. 15456 * config/m68k/m68k.c (m68k_handle_option, 15457 m68k_sched_md_init_global): Likewise. 15458 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport, 15459 mcore_unique_section): Likewise. 15460 * config/mips/mips.c (mips_block_move_straight, 15461 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set): 15462 Likewise. 15463 * config/mmix/mmix.c (mmix_init_machine_status, 15464 mmix_encode_section_info): Likewise. 15465 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise. 15466 * config/rs6000/rs6000.c (rs6000_init_machine_status, 15467 print_operand_address, output_toc, redefine_groups, 15468 rs6000_elf_encode_section_info, machopic_output_stub): Likewise. 15469 * config/s390/s390.c (s390_init_machine_status): Likewise. 15470 * config/score/score.c (score_block_move_straight, 15471 score_block_move_loop_body): Likewise. 15472 * config/sparc/sparc.c (sparc_init_machine_status): Likewise. 15473 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise. 15474 * emit-rtl.c (find_auto_inc): Likewise. 15475 * gcc.c (translate_options, process_command): Likewise. 15476 * reorg.c (dbr_schedule): Likewise. 15477 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise. 15478 * xcoffout.c (xcoffout_declare_function): Likewise. 15479 154802008-06-27 Daniel Berlin <dberlin@dberlin.org> 15481 15482 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get 15483 ipa-pta working again. 15484 154852008-06-27 David Edelsohn <edelsohn@gnu.org> 15486 15487 * config/rs6000/t-aix52: Append large data option to LDFLAGS for 15488 genautomata. 15489 154902008-06-27 Edmar Wienskoski <edmar@freescale.com> 15491 15492 * config.gcc (powerpc*-*-*): Add new core e500mc. 15493 * config/rs6000/e500mc.md: New file. 15494 * config/rs6000/rs6000.c (processor_costs): Add new costs for 15495 e500mc. 15496 (rs6000_override_options): Add e500mc case to 15497 processor_target_table. Altivec and Spe options not allowed 15498 with e500mc. Add isel instruction to e500mc by 15499 default. Initialize rs6000_cost for e500mc. 15500 (rs6000_issue_rate): Set issue rate for e500mc. 15501 * config/rs6000/rs6000.h (processor_type): Add 15502 PROCESSOR_PPCE500MC. 15503 (ASM_CPU_SPEC): Add e500mc. 15504 Set TARGET_ISEL to rs6000_isel. 15505 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL. 15506 (CHECK_E500_OPTIONS): Remove TARGET_ISEL. 15507 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc. 15508 Include e500mc.md. 15509 * doc/invoke.texi: Add e500mc to list of cpus. 15510 155112008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com> 15512 15513 PR c/34867 15514 * c-lex.c (lex_charconst): Initialize unsignedp. 15515 155162008-06-27 Olivier Hainque <hainque@adacore.com> 15517 15518 * gimplify.c (gimplify_modify_expr_to_memset): Assert our 15519 documented assumptions. 15520 155212008-06-26 H.J. Lu <hongjiu.lu@intel.com> 15522 15523 * dwarf2out.c: Remove trailing white spaces. Break long line 15524 in comments. 15525 155262008-06-26 Richard Sandiford <rdsandiford@googlemail.com> 15527 15528 * libfuncs.h (LTI_synchronize): New libfunc_index. 15529 (synchronize_libfunc): Declare. 15530 * builtins.c (expand_builtin_synchronize): Consider using 15531 synchronize_libfunc before falling back on an asm blockage. 15532 * config/mips/mips.c: Include libfuncs.h 15533 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16. 15534 155352008-06-26 Nathan Froyd <froydnj@codesourcery.com> 15536 15537 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11 15538 parameter. Copy stack_reg to r11 where appropriate. 15539 (no_global_regs_above): Add gpr parameter. 15540 (rs6000_stack_info): Only add padding for SPE save area if we 15541 are saving SPE GPRs and CR. 15542 (saveres_routine_syms): New variable. 15543 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS): 15544 Define. 15545 (rs6000_savres_routine_sym): New function. 15546 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions, 15547 split out of... 15548 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and 15549 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate. 15550 Tweak FPR out-of-line saving. 15551 (rs6000_make_savres_rtx): New function. 15552 (rs6000_use_multiple_p): New function. 15553 (rs6000_savres_strategy): New function. 15554 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs 15555 out-of-line if appropriate. 15556 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line 15557 if we are optimizing for size. 15558 (GP_SAVE_INLINE): Define. 15559 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets. 15560 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define. 15561 * config/rs6000/aix.h (GP_SAVE_INLINE): Define. 15562 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn. 15563 (*save_fpregs_<mode>): Add use of r11. 15564 (*restore_gpregs_<mode>): New insn. 15565 (*return_and_restore_gpregs_<mode>): New insn. 15566 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and 15567 use r11. 15568 * config/rs6000/spe.md (*save_gpregs_spe): New insn. 15569 (*restore_gpregs_spe): New insn. 15570 (*return_and_restore_gpregs_spe): New insn. 15571 * config/rs6000/predicates.md (save_world_operation): Fix check. 15572 155732008-06-26 Steven Bosscher <steven@gcc.gnu.org> 15574 15575 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at 15576 this point, so assert that. 15577 155782008-06-26 Steven Bosscher <steven@gcc.gnu.org> 15579 15580 * cfganal.c: Include vec.h and vecprim.h. 15581 (compute_idf): Import from... 15582 * tree-into-ssa (compute_idf): ...here. 15583 * basic-block.h (compute_idf): Export. 15584 155852008-06-26 Joseph Myers <joseph@codesourcery.com> 15586 15587 * c-decl.c (merge_decls): Use !current_function_decl to check for 15588 extern declaration of C99 inline function being at file scope. 15589 155902008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca> 15591 15592 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto. 15593 155942008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15595 15596 * alias.c (record_alias_subset, init_alias_analysis): Fix 15597 -Wc++-compat and/or -Wcast-qual warnings. 15598 * attribs.c (lookup_attribute_spec): Likewise. 15599 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round, 15600 copy_bb, connect_traces, 15601 find_rarely_executed_basic_blocks_and_cr): Likewise. 15602 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user, 15603 note_btr_set, migrate_btr_defs): Likewise. 15604 * builtins.c (result_vector, expand_builtin_memcpy, 15605 expand_builtin_mempcpy_args, expand_builtin_strncpy, 15606 builtin_memset_read_str, expand_builtin_printf, 15607 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf): 15608 Likewise. 15609 * caller-save.c (mark_set_regs): Likewise. 15610 * calls.c (expand_call, emit_library_call_value_1): Likewise. 15611 * cgraph.c (cgraph_edge): Likewise. 15612 * combine.c (likely_spilled_retval_1): Likewise. 15613 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq, 15614 htab_counts_entry_del, get_coverage_counts): Likewise. 15615 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p, 15616 new_cselib_val): Likewise. 15617 * dbgcnt.c (dbg_cnt_process_opt): Likewise. 15618 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper): 15619 Likewise. 15620 * df-core.c (df_compact_blocks): Likewise. 15621 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise. 15622 * df-scan.c (df_grow_reg_info, df_ref_create, 15623 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan, 15624 df_ref_compare, df_ref_create_structure, df_bb_refs_record, 15625 df_record_entry_block_defs, df_record_exit_block_uses, 15626 df_bb_verify): Likewise. 15627 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST, 15628 DF_REF_EXTRACT_MODE_CONST): New. 15629 * dominance.c (get_immediate_dominator, get_dominated_by, 15630 nearest_common_dominator, root_of_dom_tree, 15631 iterate_fix_dominators, first_dom_son, next_dom_son): Fix 15632 -Wc++-compat and/or -Wcast-qual warnings. 15633 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM, 15634 record_store, replace_read, check_mem_read_rtx, scan_insn, 15635 dse_step1, dse_record_singleton_alias_set): Likewise. 15636 * dwarf2asm.c (dw2_force_const_mem): Likewise. 15637 156382008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15639 15640 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue, 15641 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die, 15642 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix, 15643 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del, 15644 build_abbrev_table, new_loc_list, output_comp_unit, add_arange, 15645 add_ranges_num, add_ranges_by_labels, file_info_cmp, 15646 file_name_acquire, output_file_names, add_const_value_attribute, 15647 premark_used_types_helper, file_table_eq, file_table_hash, 15648 lookup_filename, dwarf2out_var_location, dwarf2out_source_line, 15649 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or 15650 -Wcast-qual warnings. 15651 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init, 15652 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise. 15653 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec, 15654 gen_reg_rtx, start_sequence, init_emit): Likewise. 15655 * et-forest.c (et_new_occ, et_new_tree): Likewise. 15656 * except.c (init_eh_for_function, gen_eh_region, 15657 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1, 15658 arh_to_landing_pad, arh_to_label, add_action_record, 15659 add_call_site, switch_to_exception_section): Likewise. 15660 * expmed.c (synth_mult): Likewise. 15661 * expr.c (gen_group_rtx, emit_group_load, emit_group_store, 15662 store_expr): Likewise. 15663 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol): 15664 Likewise. 15665 * function.c (assign_stack_temp_for_type, 15666 allocate_struct_function, match_asm_constraints_1): Likewise. 15667 * gcov-io.c (gcov_allocate): Likewise. 15668 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR, 15669 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New. 15670 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem, 15671 record_one_set, insert_expr_in_table, insert_set_in_table, 15672 dump_hash_table, compute_hash_table_work, alloc_hash_table, 15673 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst, 15674 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or 15675 -Wcast-qual warnings. 15676 156772008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15678 15679 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or 15680 -Wcast-qual warnings. 15681 * gcc.c (process_command): Likewise. 15682 * genattrtab.c (oballoc): Use XOBNEW. 15683 (oballocvec): Define. 15684 (attr_hash_add_rtx, attr_hash_add_string, attr_string, 15685 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn, 15686 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix 15687 -Wc++-compat and/or -Wcast-qual warnings. 15688 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR, 15689 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New. 15690 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set, 15691 gen_presence_absence_set, gen_automaton, gen_regexp_el, 15692 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof, 15693 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls, 15694 add_excls, process_presence_absence_names, 15695 process_presence_absence_patterns, add_presence_absence, 15696 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state, 15697 get_free_state, add_arc, get_free_automata_list_el, 15698 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2, 15699 transform_3, cache_presence, create_ainsns, create_automata, 15700 create_state_ainsn_table, dfa_insn_code_enlarge, 15701 output_trans_func, output_min_issue_delay_func, 15702 output_dead_lock_func, output_reset_func, 15703 output_get_cpu_unit_code_func, output_dfa_start_func, 15704 expand_automata): Likewise. 15705 * genextract.c (gen_insn): Likewise. 15706 * gengtype-lex.l: Likewise. 15707 * gengtype.c (read_input_list, adjust_field_type, 15708 process_gc_options): Likewise. 15709 * genoutput.c (note_constraint): Likewise. 15710 * genpreds.c (mangle, add_constraint): Likewise. 15711 * genrecog.c (process_define_predicate, new_decision, 15712 add_to_sequence): Likewise. 15713 * gensupport.c (record_insn_name): Likewise. 15714 157152008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15716 15717 * config/i386/driver-i386.c (detect_caches_amd, 15718 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat 15719 and/or -Wcast-qual warnings. 15720 *ggc-common.c (ggc_mark_roots, gt_pch_note_object, 15721 gt_pch_note_reorder, relocate_ptrs, write_pch_globals, 15722 gt_pch_save): Likewise. 15723 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page, 15724 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise. 15725 * global.c (compute_regsets): Likewise. 15726 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file, 15727 finish_graph_dump_file): Likewise. 15728 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready, 15729 unlink_bb_notes): Likewise. 15730 * integrate.c (get_hard_reg_initial_val): Likewise. 15731 * ipa-prop.c (ipa_push_func_to_list): Likewise. 15732 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise. 15733 * local-alloc.c (update_equiv_regs): Likewise. 15734 * loop-invariant.c (check_invariant_table_size, 15735 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv): 15736 Likewise. 15737 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p, 15738 altered_reg_used, mark_altered): Likewise. 15739 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable, 15740 insert_var_expansion_initialization, 15741 combine_var_copies_in_loop_exit, apply_opt_in_copies, 15742 release_var_copies): Likewise. 15743 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq, 15744 analyze_matrix_decl, add_allocation_site, analyze_transpose, 15745 analyze_accesses_for_phi_node, check_var_notmodified_p, 15746 check_allocation_function, find_sites_in_func, 15747 record_all_accesses_in_func, transform_access_sites, 15748 transform_allocation_sites): Likewise. 15749 * omp-low.c (new_omp_region, create_omp_child_function_name, 15750 check_omp_nesting_restrictions, check_combined_parallel, 15751 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise. 15752 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc, 15753 gen_intv_fp_libfunc, gen_interclass_conv_libfunc, 15754 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc): 15755 Likewise. 15756 * opts-common.c (prune_options): Likewise. 15757 * opts.c (add_input_filename, print_filtered_help, 15758 get_option_state): Likewise. 15759 * params.c (add_params): Likewise. 15760 * passes.c (set_pass_for_id, next_pass_1, 15761 do_per_function_toporder, pass_fini_dump_file): Likewise. 15762 * postreload.c (reload_cse_simplify_operands): Likewise. 15763 * predict.c (tree_predicted_by_p, tree_predict_edge, 15764 clear_bb_predictions, combine_predictions_for_bb): Likewise. 15765 157662008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15767 15768 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual 15769 warnings. 15770 * recog.c (check_asm_operands, validate_change_1): Likewise. 15771 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs, 15772 subst_asm_stack_regs): Likewise. 15773 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode, 15774 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise. 15775 * regmove.c (reg_is_remote_constant_p): Likewise. 15776 * regrename.c (regrename_optimize, scan_rtx_reg, 15777 kill_clobbered_value, kill_set_value, kill_autoinc_value): 15778 Likewise. 15779 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri, 15780 regstat_compute_calls_crossed): Likewise. 15781 * reload1.c (init_reload, new_insn_chain, 15782 has_nonexceptional_receiver, reload, copy_reloads, 15783 calculate_needs_all_insns, init_elim_table): Likewise. 15784 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise. 15785 * rtl.c (shallow_copy_rtx_stat): Likewise. 15786 * rtlanal.c (parms_set): Likewise. 15787 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount, 15788 sbitmap_resize, sbitmap_vector_alloc): Likewise. 15789 * sched-ebb.c (earliest_block_with_similiar_load, 15790 add_deps_for_risky_insns): Likewise. 15791 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns, 15792 schedule_region): Likewise. 15793 * see.c (eq_descriptor_pre_extension, 15794 hash_descriptor_pre_extension, hash_del_pre_extension, 15795 eq_descriptor_properties, hash_descriptor_properties, 15796 hash_del_properties, see_seek_pre_extension_expr, 15797 see_initialize_data_structures, see_print_register_properties, 15798 see_print_pre_extension_expr, see_delete_merged_def_extension, 15799 see_delete_unmerged_def_extension, see_emit_use_extension, 15800 see_pre_delete_extension, see_map_extension, see_commit_changes, 15801 see_analyze_merged_def_local_prop, 15802 see_analyze_merged_def_local_prop, 15803 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop, 15804 see_set_prop_merged_def, see_set_prop_unmerged_def, 15805 see_set_prop_unmerged_use, see_print_one_extension, 15806 see_merge_one_use_extension, see_merge_one_def_extension, 15807 see_store_reference_and_extension, see_update_uses_relevancy, 15808 see_update_defs_relevancy): Likewise. 15809 * statistics.c (hash_statistics_hash, hash_statistics_eq, 15810 hash_statistics_free, curr_statistics_hash): Likewise. 15811 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p, 15812 expand_asm_operands, expand_return, case_bit_test_cmp, 15813 expand_case): Likewise. 15814 * stor-layout.c (start_record_layout): Likewise. 15815 * stringpool.c (ggc_alloc_string, gt_pch_n_S, 15816 gt_pch_save_stringpool): Likewise. 15817 * tree-data-ref.c (hash_stmt_vertex_info, 15818 have_similar_memory_accesses_1, ref_base_address_1): Likewise. 15819 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise. 15820 158212008-06-25 Uros Bizjak <ubizjak@gmail.com> 15822 15823 PR target/36627 15824 * config/i386/i386.md: Change constraints of HImode and QImode 15825 immediate operands from "i" to "n". Change SImode "ni" constraint to 15826 "i" and SImode "rmi" constraint to "g". Remove all constraints 15827 from const0_operand and const1_operand predicated operands. 15828 (i): Change QImode and HImode attribute from "i" to "n". 15829 (*subqi_2): Change HImode operands to QImode. 15830 (*subqi_3): Ditto. 15831 158322008-06-25 Olivier Hainque <hainque@adacore.com> 15833 15834 * Makefile.in (GTFILES_H): Use | instead of ; as separator in 15835 sed substitutions. 15836 158372008-06-25 Richard Guenther <rguenther@suse.de> 15838 15839 * tree-ssa-structalias.c (fieldoff_compare): Make sure to 15840 not overflow the result type. 15841 158422008-06-25 Richard Guenther <rguenther@suse.de> 15843 15844 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR. 15845 (vn_lookup): Likewise. 15846 158472008-06-25 Richard Guenther <rguenther@suse.de> 15848 15849 PR tree-optimization/35518 15850 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs. 15851 * tree-sra.c (instantiate_element): Use fold_build3 to build 15852 BIT_FIELD_REFs. 15853 (try_instantiate_multiple_fields): Likewise. 15854 158552008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com> 15856 15857 * config/rs6000/rs6000.md: Change all string instruction's clobber to 15858 be early clobbers. 15859 158602008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com> 15861 15862 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set 15863 use_backchain_to_restore_sp to true 15864 if the offset of the link register save area would go over the 32k - 1 15865 offset limit of the load 15866 instructions. 15867 158682008-06-25 Hans-Peter Nilsson <hp@axis.com> 15869 15870 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add 15871 anchor for the type-punning blurb. Cross-reference "Structures 15872 unions enumerations and bit-fields implementation". Provide a 15873 cast-through-pointer example. Make final sentence self-contained. 15874 * doc/implement-c.texi (Structures unions enumerations and 15875 bit-fields implementation): Cross-reference the type-punning blurb 15876 in the -fstrict-aliasing documentation. 15877 158782008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com> 15879 15880 PR middle-end/36594 15881 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of 15882 the memory instead of the memory itself for the save area. 15883 158842008-06-24 Olivier Hainque <hainque@adacore.com> 15885 Nicolas Roche <roche@adacore.com> 15886 15887 * gengtype.c (srcdir_len): size_t instead of int. 15888 (get_file_realbasename): New function. For F a filename, the real 15889 basename of F, with all the path components stripped. 15890 (get_file_srcdir_relative_path): New function. For F a filename, the 15891 relative path to F from $(srcdir). 15892 (get_file_basename): Rewrite using get_file_srcdir_relative_path and 15893 get_file_realbasename. Adjust the head comment. 15894 (get_prefix_langdir_index): New function. For F a filename, return the 15895 lang_dir_names[] relative index of the language directory that is 15896 a prefix in F. 15897 (get_file_langdir): For F a filename, return the name of the language 15898 directory where F is located. 15899 (get_file_gtfilename): New function. The gt- output file name for an 15900 input filename F. 15901 (get_output_file_with_visibility): Replace in-line computations with 15902 uses of get_file_gtfilename and get_prefix_langdir_index. 15903 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates. 15904 159052008-06-24 Jakub Jelinek <jakub@redhat.com> 15906 15907 PR tree-optimization/36504 15908 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip 15909 references without base address. 15910 159112008-06-23 Uros Bizjak <ubizjak@gmail.com> 15912 15913 PR middle-end/36584 15914 * calls.c (expand_call): Increase alignment for recursive functions. 15915 159162008-06-23 Anatoly Sokolov <aesok@post.ru> 15917 15918 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument. 15919 (TARGET_FUNCTION_VALUE): New define. 15920 * config/avr/avr-protos.h (avr_function_value): Remove declaration. 15921 * config/avr/avr.h (FUNCTION_VALUE): Remove. 15922 159232008-06-23 Uros Bizjak <ubizjak@gmail.com> 15924 15925 * config/i386/i386.md (fmodxf3): Change sequence of move instructions. 15926 (fmod<mode>3): Ditto. 15927 (remainderxf3): Ditto. 15928 (remainder<mode>3): Ditto. 15929 159302008-06-23 Jakub Jelinek <jakub@redhat.com> 15931 15932 PR target/36533 15933 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if 15934 REG is a hard register. 15935 15936 PR tree-optimization/36508 15937 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to 15938 499, don't check it at all in release compilers. 15939 159402008-06-23 Uros Bizjak <ubizjak@gmail.com> 15941 15942 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P 15943 together with SSE_TARGET_MATH to disable insn pattern. 15944 (*fop_<MODEF:mode>_2_i387): Ditto. 15945 (*fop_<MODEF:mode>_3_i387): Ditto. 15946 159472008-06-22 Andy Hutchinson <hutchinsonandy@aim.com> 15948 15949 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define. 15950 159512008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com> 15952 15953 PR middle-end/34906 15954 * gimplify.c (gimplify_asm_expr): Check the return code of 15955 parse_output_constraint call, set function return and is_inout 15956 value if it failed. 15957 159582008-06-22 Ian Lance Taylor <iant@google.com> 15959 15960 * c-lex.c (narrowest_unsigned_type): Change itk to int. 15961 (narrowest_signed_type): Likewise. 15962 * c-typeck.c (c_common_type): Change local variable mclass to enum 15963 mode_class, twice. 15964 (parser_build_binary_op): Compare the TREE_CODE_CLASS with 15965 tcc_comparison, not the tree code itself. 15966 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg. 15967 (c_expand_expr): Cast modifier to enum expand_modifier. 15968 * c-common.h (C_RID_CODE): Add casts. 15969 (C_SET_RID_CODE): Define. 15970 * c-parser.c (c_parse_init): Use C_SET_RID_CODE. 15971 (c_lex_one_token): Add cast to avoid warning. 15972 (c_parser_objc_type_name): Rename local typename to type_name. 15973 (check_no_duplicate_clause): Change code parameter to enum 15974 omp_clause_code. 15975 (c_parser_omp_var_list_parens): Change kind parameter to enum 15976 omp_clause_code. 15977 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to 15978 c_parser_omp_list_var_parens. 15979 (c_parser_omp_threadprivate): Likewise. 15980 * cp/lex.c (init_reswords): Use C_SET_RID_CODE. 15981 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise. 15982 * c-format.c (NO_FMT): Define. 15983 (printf_length_specs): Use NO_FMT. 15984 (asm_fprintf_length_specs): Likewise. 15985 (gcc_diag_length_specs): Likewise. 15986 (scanf_length_specs): Likewise. 15987 (strfmon_length_specs): Likewise. 15988 (gcc_gfc_length_specs): Likewise. 15989 (printf_flag_specs): Change 0 to STD_C89. 15990 (asm_fprintf_flag_specs): Likewise. 15991 (gcc_diag_flag_specs): Likewise. 15992 (gcc_cxxdiag_flag_specs): Likewise. 15993 (scanf_flag_specs): Likewise. 15994 (strftime_flag_specs): Likewise. 15995 (strfmon_flag_specs): Likewise. 15996 (print_char_table): Likewise. 15997 (asm_fprintf_char_table): Likewise. 15998 (gcc_diag_char_table): Likewise. 15999 (gcc_tdiag_char_table): Likewise. 16000 (gcc_cdiag_char_table): Likewise. 16001 (gcc_cxxdiag_char_table): Likewise. 16002 (gcc_gfc_char_table): Likewise. 16003 (scan_char_table): Likewise. 16004 (time_char_table): Likewis. 16005 (monetary_char_table): Likewise. 16006 * c-format.h (BADLEN): Likewise. 16007 160082008-06-21 Ian Lance Taylor <iant@google.com> 16009 16010 * tree.h (enum tree_code): Include all-tree.def, not tree.def. 16011 Define END_OF_BASE_TREE_CODES around inclusion. 16012 * tree.c (tree_code_type): New global array. 16013 (tree_code_length, tree_code_name): Likewise. 16014 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and 16015 $(lang_tree_files). 16016 (all-tree.def, s-alltree): New targets. 16017 (gencheck.h, s-gencheck): Remove. 16018 (tree.o): Depend upon all-tree.def. 16019 (build/gencheck.o): Remove gencheck.h dependency. 16020 (mostlyclean): Don't remove gencheck.h. 16021 * c-common.h (enum c_tree_code): Remove. 16022 * c-lang.c (tree_code_type): Remove. 16023 (tree_code_length, tree_code_name): Remove. 16024 * gencheck.c (tree_codes): Include all-tree.def, rather than 16025 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE 16026 after it is used. 16027 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather 16028 than tree.def. 16029 * cp/cp-tree.h (enum cplus_tree_code): Remove. 16030 (operator_name_info): Size to MAX_TREE_CODES. 16031 (assignment_operator_name_info): Likewise. 16032 * cp/cp-lang.c (tree_code_type): Remove. 16033 (tree_code_length, tree_code_name): Remove. 16034 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES. 16035 (assignment_operator_name_info): Likewise. 16036 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to 16037 MAX_TREE_CODES. 16038 * cp/mangle.c (write_expression): Likewise. 16039 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def. 16040 * fortran/f95-lang.c (tree_code_type): Remove. 16041 (tree_code_length, tree_code_name): Remove. 16042 * java/java-tree.h (enum java_tree_code): Remove. 16043 * java/lang.c (tree_code_type): Remove. 16044 (tree_code_length, tree_code_name): Remove. 16045 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def. 16046 * objc/objc-act.h (enum objc_tree_code): Remove. 16047 * objc/objc-lang.c (tree_code_type): Remove. 16048 (tree_code_length, tree_code_name): Remove. 16049 * objcp/objcp-lang.c (tree_code_type): Remove. 16050 (tree_code_length, tree_code_name): Remove. 16051 * ada/ada-tree.h (enum gnat_tree_code): Remove. 16052 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def. 16053 * ada/misc.c (tree_code_type): Remove. 16054 (tree_code_length, tree_code_name): Remove. 16055 160562008-06-21 Bernhard Fischer <aldot@gcc.gnu.org> 16057 16058 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before 16059 the grand_bitmap_obstack. 16060 160612008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16062 16063 * ggc.h (GGC_RESIZEVAR): New, reorder macros. 16064 * tracer.c (tail_duplicate): Fix for -Wc++-compat. 16065 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise. 16066 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name, 16067 move_stmt_r, new_label_mapper): Likewise. 16068 * tree-complex.c (cvc_lookup): Likewise. 16069 * tree-dfa.c (create_function_ann): Likewise. 16070 * tree-dump.c (dump_register): Likewise. 16071 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list, 16072 find_phi_replacement_condition): Likewise. 16073 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1, 16074 tree_function_versioning): Likewise. 16075 * tree-into-ssa.c (cmp_dfsnum): Likewise. 16076 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise. 16077 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl, 16078 get_nonlocal_debug_decl, convert_nonlocal_reference, 16079 convert_nonlocal_omp_clauses, get_local_debug_decl, 16080 convert_local_reference, convert_local_omp_clauses, 16081 convert_nl_goto_reference, convert_nl_goto_receiver, 16082 convert_tramp_reference, convert_call_expr): Likewise. 16083 * tree-outof-ssa.c (contains_tree_r): Likewise. 16084 * tree-parloops.c (reduction_phi, initialize_reductions, 16085 eliminate_local_variables_1, add_field_for_reduction, 16086 add_field_for_name, create_phi_for_local_result, 16087 create_call_for_reduction_1, create_loads_for_reductions, 16088 create_stores_for_reduction, create_loads_and_stores_for_name): 16089 Likewise. 16090 * tree-phinodes.c (allocate_phi_node): Likewise. 16091 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise. 16092 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise. 16093 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise. 16094 * tree-ssa-coalesce.c (compare_pairs): Likewise. 16095 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq, 16096 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free, 16097 record_vop_access, get_vop_accesses, get_vop_stores): Likewise. 16098 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 16099 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference, 16100 vn_nary_op_insert): Likewise. 16101 * tree-ssa.c (redirect_edge_var_map_add, 16102 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise. 16103 * tree-vectorizer.c (vectorize_loops): Likewise. 16104 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide, 16105 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat, 16106 tree_cons_stat, build1_stat, build_variant_type_copy, 16107 decl_init_priority_lookup, decl_fini_priority_lookup, 16108 decl_priority_info, decl_restrict_base_lookup, 16109 decl_restrict_base_insert, decl_debug_expr_lookup, 16110 decl_debug_expr_insert, decl_value_expr_lookup, 16111 decl_value_expr_insert, type_hash_eq, type_hash_lookup, 16112 type_hash_add, get_file_function_name, tree_check_failed, 16113 tree_not_check_failed, tree_range_check_failed, 16114 omp_clause_range_check_failed, build_omp_clause, 16115 build_vl_exp_stat): Likewise. 16116 * value-prof.c (gimple_histogram_value, 16117 gimple_duplicate_stmt_histograms): Likewise. 16118 * var-tracking.c (attrs_list_insert, attrs_list_copy, 16119 unshare_variable, variable_union_info_cmp_pos, variable_union, 16120 dataflow_set_different_1, dataflow_set_different_2, 16121 vt_find_locations, variable_was_changed, set_variable_part, 16122 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise. 16123 * varasm.c (prefix_name, emutls_decl, section_entry_eq, 16124 section_entry_hash, object_block_entry_eq, 16125 object_block_entry_hash, create_block_symbol, 16126 initialize_cold_section_name, default_function_rodata_section, 16127 strip_reg_name, set_user_assembler_name, const_desc_eq, 16128 build_constant_desc, output_constant_def, lookup_constant_def, 16129 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1, 16130 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1, 16131 default_internal_label): Likewise. 16132 * varray.c (varray_init, varray_grow): Likewise. 16133 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise. 16134 161352008-06-20 Uros Bizjak <ubizjak@gmail.com> 16136 16137 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare 16138 operators for "test" insn. Macroize insn using SWI mode macro. 16139 (*jcc_fused_2): Ditto. 16140 (*jcc_fused_3): Macroize insn using SWI mode macro. 16141 (*jcc_fused_4): Ditto. 16142 161432008-06-20 Bernhard Fischer <aldot@gcc.gnu.org> 16144 16145 * tree-ssa-pre.c: Fix typo in comment. 16146 (init_antic, fini_antic): Add explicit funtions for 16147 initializing and deinitializing ANTIC and AVAIL sets. 16148 (create_expression_by_pieces): Fix typo in comment. 16149 Remove redundant set of new_stuff and use NULL_TREE instead of NULL. 16150 (execute_pre): Eventually dump details about ANTIC_IN. 16151 161522008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16153 16154 * collect2.c (main, add_to_list): Fix for -Wc++-compat. 16155 * gcc.c (translate_options, init_spec, store_arg, read_specs, 16156 add_to_obstack, file_at_path, find_a_file, execute, 16157 add_preprocessor_option, add_assembler_option, add_linker_option, 16158 process_command, insert_wrapper, do_option_spec, do_self_spec, 16159 spec_path, do_spec_1, is_directory, main, used_arg, 16160 getenv_spec_function): Likewise. 16161 * tlink.c (symbol_hash_lookup, file_hash_lookup, 16162 demangled_hash_lookup, symbol_push, file_push, frob_extension): 16163 Likewise. 16164 161652008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com> 16166 16167 * doc/rtl.texi: Updated subreg section. 16168 161692008-06-19 Jakub Jelinek <jakub@redhat.com> 16170 16171 PR c++/36523 16172 * cgraphunit.c (cgraph_process_new_functions): Don't clear 16173 node->needed and node->reachable. 16174 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK. 16175 * omp-low.c (delete_omp_context): Call finalize_task_copyfn. 16176 (expand_task_call): Don't call expand_task_copyfn. 16177 (expand_task_copyfn): Renamed to... 16178 (finalize_task_copyfn): ... this. 16179 161802008-06-19 Jan Hubicka <jh@suse.cz> 16181 16182 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before 16183 clobbering framepointer. 16184 161852008-06-19 Jan Hubicka <jh@suse.cz> 16186 16187 * tree-optimize.c (execute_early_local_optimizations): Set 16188 cgraph_state only at first invocation. 16189 161902008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16191 16192 * system.h (-Wc++-compat): Activate as a warning, no an error. 16193 161942008-06-19 Uros Bizjak <ubizjak@gmail.com> 16195 16196 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START 16197 instead of "#" in insn asm template. 16198 (*jcc_fused_2): Ditto. 16199 162002008-06-19 Uros Bizjak <ubizjak@gmail.com> 16201 16202 * config/i386/i386.h (ix86_tune_indices) 16203 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New. 16204 (TARGET_FUSE_CMP_AND_BRANCH): New define. 16205 * config/i386/i386.md (*jcc_fused_1): New insn pattern 16206 (*jcc_fused_2): Ditto. 16207 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to 16208 X86_TUNE_FUSE_CMP_AND_BRANCH targets. 16209 (print operand): Handle 'E' and 'e' code. 16210 162112008-06-19 Anatoly Sokolov <aesok@post.ru> 16212 16213 * config/avr/avr.c (avr_mcu_t): Add attiny13a. 16214 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). 16215 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). 16216 162172008-06-19 Bernhard Fischer <aldot@gcc.gnu.org> 16218 16219 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of 16220 node->decl. 16221 (cgraph_expand_function): Use local copy of decl. 16222 (cgraph_expand_all_functions): Remove redundant initialization of 16223 order_pos. 16224 (cgraph_optimize): Reword internal_error message. 16225 162262008-06-19 Chung-Lin Tang <ctang@marvell.com> 16227 16228 * arm-protos.h (arm_return_in_memory): Remove public 16229 arm_return_in_memory() prototype. 16230 * arm.c (arm_return_in_memory): Add static prototype, add target 16231 hook macro, change definition and comments. 16232 * arm.h (TARGET_RETURN_IN_MEMORY): Remove. 16233 162342008-06-19 Ben Elliston <bje@au.ibm.com> 16235 16236 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h, 16237 real.c: Remove references to IEEE 754R. 16238 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008. 16239 * doc/libgcc.texi (Decimal float library routines): Likewise. 16240 162412008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 16242 16243 * targhooks.h (struct gcc_target): New member unwind_word_mode. 16244 (default_unwind_word_mode): Add prototype. 16245 * targhooks.c (default_unwind_word_mode): New function. 16246 (default_eh_return_filter_mode): Return targetm.unwind_word_mode () 16247 instead of word_mode. 16248 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro. 16249 (TARGET_INITIALIZER): Use it. 16250 16251 * c-common.c (handle_mode_attribute): Support "unwind_word" 16252 mode attribute. 16253 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it. 16254 16255 * except.c (init_eh): Use targetm.unwind_word_mode () instead of 16256 word_mode to access SjLj_Function_Context member "data". 16257 (sjlj_emit_dispatch_table): Likewise. Also, perform type 16258 conversion from targetm.eh_return_filter_mode () to 16259 targetm.unwind_word_mode () if they differ. 16260 16261 * builtin-types.def (BT_UNWINDWORD): New primitive type. 16262 (BT_FN_UNWINDWORD_PTR): New function type. 16263 (BT_FN_WORD_PTR): Remove. 16264 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR. 16265 * except.c (expand_builtin_extend_pointer): Convert pointer to 16266 targetm.unwind_word_mode () instead of word_mode. 16267 16268 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove. 16269 * config/spu/spu.c (spu_eh_return_filter_mode): Remove. 16270 (spu_unwind_word_mode): New function. 16271 (TARGET_EH_RETURN_FILTER_MODE): Do not define. 16272 (TARGET_UNWIND_WORD_MODE): Define. 16273 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI. 16274 162752008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 16276 16277 * config/spu/spu.c (reg_align): Remove. 16278 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM. 16279 (spu_split_load): Use regno_aligned_for_load instead of reg_align. 16280 (spu_split_store): Likewise. 16281 162822008-06-18 Bernhard Fischer <aldot@gcc.gnu.org> 16283 16284 * gcc/tree-vn.c: Fix typo in comment. 16285 162862008-06-18 Jan Hubicka <jh@suse.cz> 16287 16288 * cgraphunit.c (cgraph_optimize): Output debug info when doing 16289 toplevel reorder too. 16290 162912008-06-18 Jan Hubicka <jh@suse.cz> 16292 16293 * c-opts.c (c_common_post_options): PCH is not compatible with 16294 no-unit-at-a-time. 16295 * opts.c (handle_options): Enable unit-at-a-time at O0 along with 16296 -fno-toplevel-reorder by default now. 16297 162982008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 16299 16300 PR documentation/30739 16301 * doc/install.texi (Prerequisites): Document dependency on awk. 16302 163032008-06-18 Uros Bizjak <ubizjak@gmail.com> 16304 Ian Lance Taylor <iant@google.com> 16305 16306 PR rtl-optimization/35604 16307 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We 16308 only want to change jump destinations, not eventual label comparisons. 16309 163102008-06-16 Jan Hubicka <jh@suse.cz> 16311 16312 * cgraphunit.c (cgraph_expand_pending_functions): Give up at 16313 syntax errors. 16314 (cgraph_analyze_function): Likewise. 16315 163162008-06-16 Jan Hubicka <jh@suse.cz> 16317 16318 * cgraph.h (cgraph_mark_if_needed): New function. 16319 * cgraphunit.c (cgraph_mark_if_needed): New function. 16320 * c-decl.c (duplicate_decl): Use it. 16321 163222008-06-16 Jan Hubicka <jh@suse.cz> 16323 16324 * cgraph.c (cgraph_add_new_function): When in expansion state, do 16325 lowering. 16326 163272008-06-16 Jan Hubicka <jh@suse.cz> 16328 16329 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias. 16330 163312008-06-16 Daniel Jacobowitz <dan@codesourcery.com> 16332 Kazu Hirata <kazu@codesourcery.com> 16333 Maxim Kuvyrkov <maxim@codesourcery.com 16334 16335 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st. 16336 * config.host: Use driver-native.o and mips/x-native for mips*-linux*. 16337 * config/mips/linux.h (host_detect_local_cpu): Declare, add to 16338 EXTRA_SPEC_FUNCTIONS. 16339 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros. 16340 (DRIVER_SELF_SPECS): Adjust. 16341 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update. 16342 * config/mips/st.h, config/mips/t-st: New. 16343 * config/mips/driver-native.c, config/mips/x-native: New. 16344 * doc/invoke.texi (MIPS): Document 'native' value for -march and 16345 -mtune options. 16346 163472008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com> 16348 16349 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE 16350 from it. 16351 (ISA_HAS_FP_CONDMOVE): New macro. 16352 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros. 16353 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4. 16354 (ISA_HAS_NMADD3_NMSUB3): New macro. 16355 * config/mips/mips.c (mips_rtx_costs): Update. 16356 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when 16357 compiling for ST Loongson 2E/2F. 16358 (madd<mode>): Rename to madd4<mode>. Update. 16359 (madd3<mode>): New pattern. 16360 (msub<mode>): Rename to msub4<mode>. Update. 16361 (msub3<mode>): New pattern. 16362 (nmadd<mode>): Rename to nmadd4<mode>. Update. 16363 (nmadd3<mode>): New pattern. 16364 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update. 16365 (nmadd3<mode>_fastmath): New pattern. 16366 (nmsub<mode>): Rename to nmsub4<mode>. Update. 16367 (nmsub3<mode>): New pattern. 16368 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update. 16369 (nmsub3<mode>_fastmath): New pattern. 16370 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update. 16371 163722008-06-18 Steven Bosscher <steven@gcc.gnu.org> 16373 16374 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field. 16375 (DF_REF_INSN_INFO): New. 16376 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO. 16377 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs 16378 with a NULL DF_REF_INSN_INFO. 16379 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and 16380 DF_INSN_SET. 16381 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES, 16382 DF_INSN_INFO_EQ_USES): New. 16383 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES, 16384 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES, 16385 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros. 16386 * df-core.c: Update comment for above changes. 16387 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and 16388 DF_INSN_UID_* macros. 16389 (df_ref_debug): Check for NULL DF_REF_INSN_INFO. 16390 * df-scan.c (df_ref_record): Take a df_insn_info instead of an 16391 insn rtx. Update all callers. 16392 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs, 16393 df_ref_create_structure, df_insn_refs_collect): Likewise. 16394 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs. 16395 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO. 16396 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_* 16397 macros to access the insn refs. 16398 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise. 16399 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro. 16400 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it 16401 for accessing the refs. 16402 (try_fwprop_subst): Likewise. 16403 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro. 16404 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it 16405 for accessing the refs. 16406 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro. 16407 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros 16408 to look at the insn refs. 16409 (record_uses): Likewise. 16410 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this 16411 function anymore. 16412 (mark_artificial_uses): Don't mark_insn for artificial refs. 16413 (mark_reg_rependencies): Likewise. 16414 16415 * doc/rtl.texi: Remove documentation of ADDRESSOF. 16416 164172008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 16418 16419 * configure: Regenerate. 16420 164212008-06-17 Eric B. Weddington <eric.weddington@atmel.com> 16422 16423 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb. 16424 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 16425 * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 16426 164272008-06-17 Eric B. Weddington <eric.weddington@atmel.com> 16428 16429 * config/avr/avr.c (avr_mcu_t): Add attiny167. 16430 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 16431 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 16432 164332008-06-17 Eric B. Weddington <eric.weddington@atmel.com> 16434 16435 * config/avr/avr.c (avr_mcu_t): Add atmega32u4. 16436 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 16437 * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 16438 164392008-06-17 Bernhard Fischer <aldot@gcc.gnu.org> 16440 16441 * tree-ssa-sccvn.c: Fix format of comments. 16442 164432008-06-17 Bernhard Fischer <aldot@gcc.gnu.org> 16444 16445 * cgraph.c: Remove unneeded forward declarations of eq_node() 16446 and hash_node(). 16447 164482008-06-17 Steven Bosscher <steven@gcc.gnu.org> 16449 16450 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and 16451 REG_RETVAL notes. 16452 (see_update_relevancy): Likewise. 16453 * fwprop.c (try_fwprop_subst): Likewise. 16454 * rtlanal.c (noop_move_p): Likewise. 16455 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL 16456 notes to non-existing libcall blocks. 16457 * cse.c (cse_insn): Change prototype. Don't update libcall notes. 16458 Remove orig_set. 16459 (cse_extended_basic_block): Don't track libcall and no-conflict notes. 16460 (dead_libcall_p): Remove. 16461 (delete_trivially_dead_insns): Don't use it. 16462 * web.c (union_defs): Remove comment about keeping nops. 16463 * gcse.c (hash_scan_insn): Don't take libcall pointers. 16464 (compute_hash_table_work): Don't track libcall notes. 16465 (do_local_cprop): Don't take libcall pointers. Don't update 16466 libcall notes. 16467 (adjust_libcall_notes): Deleted. 16468 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't 16469 ever have existed in the first place). 16470 (replace_store_insn): Don't try to remove libcall notes. 16471 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted. 16472 (resolve_reg_notes): Don't call them. 16473 (resolve_simple_move): Likewise. 16474 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes. 16475 Don't remove REG_RETVAL notes. 16476 * emit-rtl.c (try_split): Don't update libcall notes. 16477 (emit_copy_of_insn_after): Dito. 16478 * cselib.c (cselib_current_insn_in_libcall): Remove. 16479 (cselib_process_insn): Don't set/clear it. 16480 (new_elt_loc_list): Don't record it. 16481 (cselib_init): Don't initialize it. 16482 * cselib.c (struct elt_loc_list): Remove in_libcall field. 16483 * loop-invariant.c (find_invariant_insn): Don't look for libcall 16484 notes. 16485 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks. 16486 (sched_analyze): Don't set up deps->libcall_block_tail_insn. 16487 (init_deps): Don't initialize it. 16488 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field. 16489 * combine.c (delete_noop_moves): Don't update libcall notes. 16490 (can_combine_p): Remove now pointless #if 0 block. 16491 (try_combine): Remove another obsolete #if 0 block. 16492 (distribute_notes): Don't distribute libcall notes. 16493 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove. 16494 * dce.c (libcall_dead_p): Remove. 16495 (delete_unmarked_insns): Don't handle libcall blocks. 16496 (preserve_libcall_for_dce): Remove. 16497 (prescan_insns_for_dce): Don't special-case libcall block insns. 16498 * reload1 (reload): Don't handle libcall notes. 16499 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove 16500 documentation. 16501 165022008-06-16 Eric B. Weddington <eric.weddington@atmel.com> 16503 16504 * config/avr/avr.c (avr_mcu_t): Add atmega32c1. 16505 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 16506 * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 16507 165082008-06-16 Eric B. Weddington <eric.weddington@atmel.com> 16509 16510 * config/avr/avr.c (avr_mcu_t): Add atmega32m1. 16511 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 16512 * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 16513 165142008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 16515 16516 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir). 16517 165182008-06-16 Ira Rosen <irar@il.ibm.com> 16519 16520 PR tree-optimization/36493 16521 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from 16522 the arguments list. Use VECTYPE to create vector pointer. 16523 (vectorizable_store): Fail if accesses through a pointer to vectype 16524 do not alias the original memory reference operands. 16525 Call vect_create_data_ref_ptr without the removed argument. 16526 (vectorizable_load): Likewise. 16527 (vect_setup_realignment): Call vect_create_data_ref_ptr without the 16528 removed argument. 16529 165302008-06-015 Andy Hutchinson <hutchinsonandy@aim.com> 16531 16532 PR target/36336 16533 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 16534 reg_equiv_constant. 16535 165362008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com> 16537 16538 * config/mips/loongson2ef.md: New file. 16539 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN) 16540 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN) 16541 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN) 16542 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants. 16543 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e 16544 and loongson_2f. 16545 (loongson2ef.md): New include. 16546 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>) 16547 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3) 16548 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>) 16549 (loongson_gt_<mode>, loongson_extract_halfword) 16550 (loongson_insert_halfword_0, loongson_insert_halfword_2) 16551 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3) 16552 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask) 16553 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart) 16554 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>) 16555 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>) 16556 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd) 16557 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>) 16558 (vec_interleave_low<mode>): Define type attribute. 16559 * config/mips/mips.c (mips_ls2): New static variable. 16560 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F. 16561 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn) 16562 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle): 16563 Implement target scheduling hooks. 16564 (mips_multipass_dfa_lookahead): Update to handle tuning for 16565 Loongson 2E/2F. 16566 (mips_sched_init): Initialize data for Loongson scheduling. 16567 (mips_ls2_variable_issue): New static function. 16568 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F. 16569 Add sanity check. 16570 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN) 16571 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks. 16572 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros. 16573 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS): 16574 Handle ST Loongson 2E/2F cores. 16575 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units. 16576 165772008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 16578 16579 * omp-low.c (extract_omp_for_data): Fix comment typo. 16580 * c.opt: Fix typo. 16581 165822008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 16583 16584 * doc/sourcebuild.texi (Config Fragments): Remove obsolete 16585 FIXME note about gcc/config.guess. 16586 * doc/options.texi (Option file format): Remove non-ASCII bytes. 16587 * doc/cpp.texi: Expand TABs, drop indentation outside examples. 16588 * doc/cppopts.texi: Likewise. 16589 * doc/extend.texi: Likewise. 16590 * doc/gcc.texi: Likewise. 16591 * doc/gccint.texi: Likewise. 16592 * doc/gcov.texi: Likewise. 16593 * doc/gty.texi: Likewise. 16594 * doc/hostconfig.texi: Likewise. 16595 * doc/install.texi: Likewise. 16596 * doc/invoke.texi: Likewise. 16597 * doc/loop.texi: Likewise. 16598 * doc/makefile.texi: Likewise. 16599 * doc/md.texi: Likewise. 16600 * doc/passes.texi: Likewise. 16601 * doc/tm.texi: Likewise. 16602 * doc/tree-ssa.texi: Likewise. 16603 * doc/trouble.texi: Likewise. 16604 166052008-06-15 Mark Shinwell <shinwell@codesourcery.com> 16606 Nathan Sidwell <nathan@codesourcery.com> 16607 Maxim Kuvyrkov <maxim@codesourcery.com> 16608 Richard Sandiford <rdsandiford@googlemail.com> 16609 16610 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes. 16611 * config/mips/mips-protos.h (mips_expand_vector_init): New. 16612 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F 16613 builtins. 16614 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes. 16615 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson. 16616 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and 16617 V8QImode cases. 16618 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New. 16619 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb, 16620 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw, 16621 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb, 16622 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb) 16623 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb) 16624 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub) 16625 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub) 16626 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh) 16627 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw) 16628 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb) 16629 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb) 16630 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb) 16631 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw) 16632 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh) 16633 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New. 16634 (mips_builtins): Add Loongson builtins. 16635 (mips_loongson_2ef_bdesc): New. 16636 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc. 16637 (mips_builtin_vector_type): Handle unsigned versions of vector modes. 16638 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI) 16639 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI): 16640 New. 16641 (mips_expand_vector_init): New. 16642 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New. 16643 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev 16644 if appropriate. 16645 * config/mips/mips.md: Add unspec numbers for Loongson 16646 builtins. Include loongson.md. 16647 (MOVE64): Include Loongson vector modes. 16648 (SPLITF): Include Loongson vector modes. 16649 (HALFMODE): Handle Loongson vector modes. 16650 * config/mips/loongson.md: New. 16651 * config/mips/loongson.h: New. 16652 * config.gcc: Add loongson.h header for mips*-*-* targets. 16653 * doc/extend.texi (MIPS Loongson Built-in Functions): New. 16654 166552008-06-14 Joseph Myers <joseph@codesourcery.com> 16656 16657 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf, 16658 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*, 16659 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*, 16660 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*, 16661 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*, 16662 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*, 16663 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* | 16664 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* | 16665 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*, 16666 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-, 16667 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* | 16668 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* | 16669 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* | 16670 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* | 16671 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*, 16672 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*): 16673 Remove use_fixproto=yes. 16674 (ia64*-*-hpux*): Remove comment about using fixproto. 16675 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no. 16676 166772008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 16678 16679 * configure.ac: Update gthr-default.h lazily, to avoid unneeded 16680 library rebuilds. 16681 * configure: Regenerate. 16682 166832008-06-13 Eric Botcazou <ebotcazou@adacore.com> 16684 16685 PR middle-end/36520 16686 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT 16687 before evaluating it. 16688 166892008-06-13 Jakub Jelinek <jakub@redhat.com> 16690 16691 PR c/36507 16692 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for 16693 nested inline functions. 16694 (start_decl, start_function): Don't invert DECL_EXTERNAL 16695 for nested inline functions. 16696 166972008-06-13 Richard Sandiford <rdsandiford@googlemail.com> 16698 16699 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from 16700 splits that must be made for correctness. 16701 167022008-06-13 Richard Sandiford <rdsandiford@googlemail.com> 16703 16704 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro. 16705 (AVAIL_NON_MIPS16): Likewise. 16706 (mips_builtin_description): Replace target_flags with a predicate. 16707 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32) 16708 (dspr2_32): New availability predicates. 16709 (MIPS_BUILTIN): New macro. 16710 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS) 16711 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS) 16712 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it. 16713 Replace the TARGET_FLAGS parameters with AVAIL parameters. 16714 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc) 16715 (mips_dsp_32only_bdesc): Merge into... 16716 (mips_builtins): ...this new array. 16717 (mips_bdesc_map, mips_bdesc_arrays): Delete. 16718 (mips_init_builtins): Update after above changes. 16719 (mips_expand_builtin_1): Merge into... 16720 (mips_expand_builtin): ...here and update after above changes. 16721 167222008-06-12 Paul Brook <paul@codesourcery.com> 16723 16724 * longlong.h (__arm__): Define count_leading_zeros. 16725 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define. 16726 (clzsi2, clzdi2): New functions. 16727 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove. 16728 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove. 16729 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto. 16730 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto. 16731 * config/arm/t-pe (LIB1ASMFUNCS): Ditto. 16732 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto. 16733 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto. 16734 * config/arm/t-linux (LIB1ASMFUNCS): Ditto. 16735 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto. 16736 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto. 16737 167382008-06-12 Kazu Hirata <kazu@codesourcery.com> 16739 16740 * config/m68k/m68k.c (m68k_tune_flags): New. 16741 (override_options): Compute m68k_tune_flags. 16742 (MULL_COST, MULW_COST): Update for various variants of CFV2. 16743 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New. 16744 167452008-06-12 Jakub Jelinek <jakub@redhat.com> 16746 16747 PR middle-end/36506 16748 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning. 16749 167502008-06-12 Eric Botcazou <ebotcazou@adacore.com> 16751 16752 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with 16753 TREE_THIS_VOLATILE on INDIRECT_REF nodes. 16754 167552008-06-12 Eric Botcazou <ebotcazou@adacore.com> 16756 16757 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like. 16758 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields. 16759 167602008-06-12 Jakub Jelinek <jakub@redhat.com> 16761 16762 PR middle-end/36506 16763 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with 16764 reductions. 16765 167662008-06-12 Richard Guenther <rguenther@suse.de> 16767 16768 PR tree-optimization/36345 16769 * tree-flow.h (struct ptr_info_def): Align escape_mask, 16770 add memory_tag_needed flag. 16771 (may_alias_p): Declare. 16772 * tree-ssa-alias.c (may_alias_p): Export. 16773 (set_initial_properties): Use memory_tag_needed flag. 16774 (update_reference_counts): Likewise. 16775 (reset_alias_info): Reset memory_tag_needed flag. 16776 (create_name_tags): Check memory_tag_needed flag. 16777 (dump_points_to_info_for): Dump it. 16778 * tree-ssa-structalias.c (struct variable_info): Remove 16779 directly_dereferenced flag. 16780 (new_var_info): Do not initialize it. 16781 (process_constraint_1): Do not set it. 16782 (update_alias_info): Set is_dereferenced flag. 16783 (set_uids_in_ptset): Use may_alias_p. 16784 (set_used_smts): Check memory_tag_needed flag. 16785 (find_what_p_points_to): Likewise. Pass is_dereferenced flag. 16786 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check 16787 memory_tag_needed flag. 16788 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover 16789 from broken design. 16790 167912008-06-12 Kai Tietz <kai.tietz@onevision.com> 16792 16793 * config/i386/i386.c (ix86_compute_frame_layout): Disable 16794 red zone for w64 abi. 16795 (ix86_expand_prologue): Likewise. 16796 (ix86_force_to_memory): Likewise. 16797 (ix86_free_from_memory): Likewise. 16798 167992008-06-11 Edmar Wienskoski <edmar@freescale.com> 16800 16801 PR target/36425 16802 * config/rs6000/rs6000.c (rs6000_override_options): Set 16803 rs6000_isel conditionally to the absence of comand line override. 16804 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): 16805 Remove duplicate rs6000_isel setting. 16806 * config/rs6000/eabispe.h: Ditto. 16807 168082008-06-11 Richard Guenther <rguenther@suse.de> 16809 16810 * alias.c (get_alias_set): Use the element alias-set for arrays. 16811 (record_component_aliases): For arrays and vectors do nothing. 16812 * c-common.c (strict_aliasing_warning): Handle the cases 16813 of alias set zero explicitly. 16814 * Makefile.in (dfp.o-warn): Add -Wno-error. 16815 168162008-06-11 Joseph Myers <joseph@codesourcery.com> 16817 16818 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64 16819 tune_32 tune_64. 16820 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64 16821 tune_32 tune_64 to supported_defaults. Allow values not 16822 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for 16823 x86_64. Do not override cpu_32 or cpu_64 values from target name. 16824 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default 16825 with_cpu_64 to generic for 64-bit-supporting configurations, not 16826 with_cpu. Remove FIXMEs. 16827 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32, 16828 --with-arch-64, --with-tune-32, --with-tune-64): Document. 16829 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define. 16830 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64, 16831 arch_32 and arch_64. 16832 168332008-06-11 Eric Botcazou <ebotcazou@adacore.com> 16834 Olivier Hainque <hainque@adacore.com> 16835 16836 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields. 16837 Use DECL_SIZE_UNIT to retrieve the size of the field. 16838 168392008-06-11 Joseph Myers <joseph@codesourcery.com> 16840 16841 * config/arm/arm.c (arm_init_neon_builtins): Move initialization 16842 with function calls after declarations. Lay out 16843 neon_float_type_node before further use. 16844 168452008-06-11 Richard Guenther <rguenther@suse.de> 16846 16847 * tree-flow.h (may_point_to_global_var): Declare. 16848 * tree-ssa-alias.c (may_point_to_global_var): New function. 16849 * tree-ssa-sink.c (is_hidden_global_store): Use it. 16850 168512008-06-10 Kazu Hirata <kazu@codesourcery.com> 16852 16853 * configure.ac: Teach that fido supports .debug_line. 16854 * configure: Regenerate. 16855 168562008-06-10 Tom Tromey <tromey@redhat.com> 16857 16858 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file 16859 debug hook. 16860 168612008-06-10 Joseph Myers <joseph@codesourcery.com> 16862 16863 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined. 16864 (encode_decimal64, decode_decimal64, encode_decimal128, 16865 decode_decimal128): Reverse order of 32-bit parts of value if host 16866 and target endianness differ. 16867 168682008-06-10 Vinodha Ramasamy <vinodha@google.com> 16869 16870 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type. 16871 Avoid division by 0. 16872 (tree_mod_pow2_value_transform): Likewise. 16873 (tree_ic_transform): Likewise. 16874 (tree_stringops_transform): Likewise. 16875 (tree_mod_subtract_transform): Likewise. 16876 * tree-inline-c (copy_bb): Corrected int type to gcov_type. 16877 (copy_edges_for_bb): Likewise. 16878 (initialize_cfun): Likewise. 16879 168802008-06-10 Uros Bizjak <ubizjak@gmail.com> 16881 16882 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to 16883 nonmemory_operand. Add "N" operand constraint. 16884 (*btsi): Ditto. 16885 (*jcc_btdi_mask_rex64): New instruction and split pattern. 16886 (*jcc_btsi_mask): Ditto. 16887 (*jcc_btsi_mask_1): Ditto. 16888 168892008-06-10 Joseph Myers <joseph@codesourcery.com> 16890 16891 * config/rs6000/rs6000.c (build_opaque_vector_type): Set 16892 TYPE_CANONICAL for copied element type. 16893 168942008-06-10 Uros Bizjak <ubizjak@gmail.com> 16895 16896 PR target/36473 16897 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]: 16898 Add m_CORE2 and m_GENERIC. 16899 * config/i386/predicates.md (bt_comparison_operator): New predicate. 16900 * config/i386/i386.md (*btdi_rex64): New instruction pattern. 16901 (*btsi): Ditto. 16902 (*jcc_btdi_rex64): New instruction and split pattern. 16903 (*jcc_btsi): Ditto. 16904 (*jcc_btsi_1): Ditto. 16905 (*btsq): Fix Intel asm dialect operand order. 16906 (*btrq): Ditto. 16907 (*btcq): Ditto. 16908 169092008-06-09 Andy Hutchinson <hutchinsonandy@aim.com> 16910 16911 PR middle-end/36447 16912 * simplify-rtx.c (simplify_subreg): Add check for shift count 16913 greater than size. 16914 169152008-06-09 Richard Sandiford <rdsandiford@googlemail.com> 16916 16917 * doc/md.texi: Synchronize with later constraints.md change. 16918 * longlong.h (umul_ppmm): Replace the MIPS asm implementation 16919 with a C implementation. 16920 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and 16921 MFLO handling. 16922 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT. 16923 (mips_split_doubleword_move): Use special MTHI and MFHI instructions 16924 when moving to and from MD_REGNUM. 16925 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM. 16926 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC. 16927 Handle byte and halfword moves. 16928 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS 16929 separately. 16930 * config/mips/constraints.md (h): Turn into NO_REGS. 16931 (l, x): Update documentation. 16932 * config/mips/mips.md (UNSPEC_MFHILO): Delete. 16933 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New. 16934 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber. 16935 (HILO): New mode iterator. 16936 (MOVE128): Add TI. 16937 (any_div): New code iterator. 16938 (u): Extend code attribute to div and udiv. 16939 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use 16940 d_operand in the splitters. Remove redundant CONST_INT checks. 16941 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si) 16942 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si) 16943 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits 16944 accordingly, using normal moves instead of unspecs to move LO into 16945 a GPR. Use d_operand and lo_operand instead of *_REG_P checks. 16946 (<u>mulsidi3): Handle expansion in C code. 16947 (<u>mulsidi3_32bit_internal): Rename to... 16948 (<u>mulsidi3_32bit): ...this. 16949 (<u>mulsidi3_32bit_r4000): Fix insn separator. 16950 (*<u>mulsidi3_64bit): Rename to... 16951 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers 16952 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO 16953 to set LO and HI to the multiplication result. Use a normal move 16954 for MFLO and an unspec for MFHI. 16955 (*<u>mulsidi3_64bit_parts): Replace with... 16956 (<u>mulsidi3_64bit_hilo): ...this new instruction. 16957 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000. 16958 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split 16959 and extend it to TARGET_FIX_R4000. Store the destination in a GPR 16960 instead of HI. Split the instruction into a separate multiplication 16961 and MFHI if !TARGET_FIX_R4000. 16962 (<su>muldi3_highpart): Likewise. 16963 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative 16964 and the "=h" clobber. 16965 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise. 16966 (<u>mulditi3): New expander. 16967 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns. 16968 (madsi): Remove "=h" clobber. 16969 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits. 16970 Force the modulus result to be a GPR and split the instruction into 16971 a division followed by an MFHI after reload. 16972 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction. 16973 (*lea_high64): Use d_operand in the define_peephole2. Likewise 16974 the MIPS16 HIGH define_split. 16975 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type 16976 of acc<->gpr moves to "multi". 16977 (*movdi_64bit): Replace the single "x" alternative with 16978 alternatives for moving into and out of "a". 16979 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move. 16980 (*movsi_internal): Extend the "d<-A" alternative to "d<-a". 16981 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives. 16982 Use d_operand in the splitters. Remove redundant CONST_INT checks. 16983 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move. 16984 (movti): New expander. 16985 (*movti, *movti_mips16): New insns. 16986 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete. 16987 (mfhi<GPR:mode>_<HILO:mode>): New pattern. 16988 (mthi<GPR:mode>_<HILO:mode>): Likewise. 16989 * config/mips/predicates.md (fpr_operand): Delete. 16990 (d_operand): New predicate. 16991 169922008-06-09 Michael Meissner <michael.meissner@amd.com> 16993 16994 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent 16995 failure on some Bourne shells. 16996 (x86_64-*-*): Ditto. 16997 169982008-06-09 Kai Tietz <kai.tietz@onevision.com> 16999 17000 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New. 17001 170022008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr> 17003 17004 * doc/install.texi (*-*-solaris2*): Remove obsolete contents. 17005 (sparc-sun-solaris2*): Likewise. 17006 170072008-06-09 Arnaud Charlet <charlet@adacore.com 17008 17009 * doc/install.texi: Update requirements to build the Ada compiler. 17010 170112008-06-08 Steven Bosscher <stevenb.gcc@gmail.com> 17012 17013 * df-scan.c (struct df_scan_problem_data): Remove the 17014 mw_link_pool alloc pool. 17015 (df_scan_free_internal): Don't free it. 17016 (df_scan_alloc): Don't allocate it. 17017 * df.h (struct df_link): Update comment. 17018 170192008-06-08 Nathan Sidwell <nathan@codesourcery.com> 17020 17021 * except.h: Correct checks for when SJLJ exceptions must be used. 17022 170232008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 17024 17025 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by 17026 default. 17027 170282008-06-08 Joseph Myers <joseph@codesourcery.com> 17029 17030 PR tree-optimization/36218 17031 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running 17032 configure for the build system. 17033 (BUILD_LDFLAGS): Define. 17034 * configure: Regenerate. 17035 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@. 17036 170372008-07-08 Anatoly Sokolov <aesok@post.ru> 17038 17039 PR target/36424 17040 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define. 17041 * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 17042 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 17043 170442008-06-07 Danny Smith <dannysmith@users.sourceforge.net> 17045 17046 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove. 17047 170482008-06-07 Joseph Myers <joseph@codesourcery.com> 17049 17050 * config.gcc (Obsolete configurations): Remove list of 17051 configurations. 17052 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*, 17053 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other 17054 targets matched by those patterns. 17055 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*, 17056 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*, 17057 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf, 17058 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*, 17059 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*, 17060 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*, 17061 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*, 17062 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*, 17063 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*, 17064 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*, 17065 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*, 17066 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*, 17067 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*, 17068 vax-*-ultrix*, xscale-*-elf, xscale-*-coff, 17069 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove. 17070 Make code for Solaris 7 and greater unconditional for Solaris. 17071 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*): 17072 Remove --with-* handling. 17073 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs. 17074 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC, 17075 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC, 17076 LINK_OS_WINDISS_SPEC): Remove. 17077 * config/rs6000/sysv4.opt (mwindiss): Remove. 17078 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove. 17079 * configure: Regenerate. 17080 * doc/cpp.texi: Don't mention BeOS. 17081 * doc/extend.texi (interrupt): Don't mention MS1. 17082 * doc/install.texi (i386-@var{any}-sysv, m68k-bull-sysv, 17083 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv, 17084 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout, 17085 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4, 17086 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix): 17087 Remove. 17088 * doc/invoke.texi (MT Options): Remove. 17089 (-mwindiss): Remove. 17090 (CRIS Options): Remove cris-axis-aout references. 17091 (HPPA Options): Don't mention hppa1.1-*-pro. 17092 * doc/md.texi (MorphoTech family): Remove. 17093 * libgcc2.c: Don't handle UWIN. 17094 * config/alpha/t-unicosmk: Remove. 17095 * config/alpha/unicosmk.h: Remove. 17096 * config/arm/kaos-arm.h: Remove. 17097 * config/arm/kaos-strongarm.h: Remove. 17098 * config/arm/strongarm-coff.h: Remove. 17099 * config/arm/strongarm-elf.h: Remove. 17100 * config/arm/strongarm-pe.h: Remove. 17101 * config/arm/t-strongarm-pe: Remove. 17102 * config/arm/t-xscale-coff: Remove. 17103 * config/arm/t-xscale-elf: Remove. 17104 * config/arm/xscale-coff.h: Remove. 17105 * config/arm/xscale-elf.h: Remove. 17106 * config/chorus.h: Remove. 17107 * config/cris/aout.h: Remove. 17108 * config/cris/aout.opt: Remove. 17109 * config/cris/t-aout: Remove. 17110 * config/i386/beos-elf.h: Remove. 17111 * config/i386/kaos-i386.h: Remove. 17112 * config/i386/ptx4-i.h: Remove. 17113 * config/i386/sco5.h: Remove. 17114 * config/i386/sco5.opt: Remove. 17115 * config/i386/sysv4-cpp.h: Remove. 17116 * config/i386/sysv5.h: Remove. 17117 * config/i386/t-beos: Remove. 17118 * config/i386/t-sco5: Remove. 17119 * config/i386/t-uwin: Remove. 17120 * config/i386/uwin.asm: Remove. 17121 * config/i386/uwin.h: Remove. 17122 * config/kaos.h: Remove. 17123 * config/mips/windiss.h: Remove. 17124 * config/mt: Remove directory. 17125 * config/pa/pa-osf.h: Remove. 17126 * config/pa/pa-pro-end.h: Remove. 17127 * config/pa/t-pro: Remove. 17128 * config/ptx4.h: Remove. 17129 * config/rs6000/beos.h: Remove. 17130 * config/rs6000/kaos-ppc.h: Remove. 17131 * config/rs6000/t-beos: Remove. 17132 * config/rs6000/windiss.h: Remove. 17133 * config/sh/kaos-sh.h: Remove. 17134 * config/sol2-6.h: Remove. 17135 * config/sparc/sol26-sld.h: Remove. 17136 * config/sparc/sysv4-only.h: Remove. 17137 * config/vax/bsd.h: Remove. 17138 * config/vax/t-memfuncs: Remove. 17139 * config/vax/ultrix.h: Remove. 17140 * config/vax/vaxv.h: Remove. 17141 * config/windiss.h: Remove. 17142 171432008-06-06 Uros Bizjak <ubizjak@gmail.com> 17144 17145 PR rtl-optimization/36438 17146 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early 17147 for vector shifts with constant scalar shift operands. 17148 171492008-06-06 Sandip Matte <sandip@rmicorp.com> 17150 17151 * doc/invoke.texi: Document -march=xlr. 17152 * config/mips/xlr.md: New file. 17153 * config/mips/mips.md: Include it. 17154 (cpu): Add "xlr". 17155 * config/mips/mips.h (PROCESSOR_XLR): New processor_type. 17156 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry. 17157 (mips_rtx_cost_data): Likewise. 17158 171592008-06-06 Nathan Froyd <froydnj@codesourcery.com> 17160 17161 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove 17162 PRE_INC and PRE_DEC cases. 17163 171642008-06-06 Jakub Jelinek <jakub@redhat.com> 17165 17166 PR rtl-optimization/36419 17167 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before 17168 the emitting jump insn. 17169 17170 PR target/36362 17171 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type 17172 is not bool, boolify the whole *expr_p and convert to the desired type. 17173 171742008-06-06 Jakub Jelinek <jakub@redhat.com> 17175 17176 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805. 17177 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause. 17178 Add omp_private_outer_ref hook, add another argument to 17179 omp_clause_default_ctor hook. 17180 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define. 17181 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define. 17182 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to 17183 hook_tree_tree_tree_tree_null. 17184 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and 17185 LANG_HOOKS_OMP_PRIVATE_OUTER_REF. 17186 * hooks.c (hook_tree_tree_tree_tree_null): New function. 17187 * hooks.h (hook_tree_tree_tree_tree_null): New prototype. 17188 * tree.def (OMP_TASK): New tree code. 17189 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN, 17190 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT, 17191 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT, 17192 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES, 17193 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY, 17194 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG, 17195 OMP_CLAUSE_COLLAPSE_EXPR): Define. 17196 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. 17197 (OMP_DIRECTIVE_P): Add OMP_TASK. 17198 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes. 17199 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind. 17200 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE 17201 and OMP_CLAUSE_UNTIED entries. 17202 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE 17203 num_ops to 2. 17204 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED. 17205 Walk OMP_CLAUSE_LASTPRIVATE_STMT. 17206 * tree-pretty-print.c (dump_omp_clause): Handle 17207 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE, 17208 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. 17209 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops. 17210 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove 17211 warning about unsigned iterators. Change decl/init/cond/incr 17212 arguments to TREE_VECs, check arguments for all collapsed loops. 17213 (c_finish_omp_taskwait): New function. 17214 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to 17215 ws_clauses. 17216 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call 17217 default_function_array_conversion on init. Add par_clauses argument. 17218 If decl is present in parallel's lastprivate clause, change it to 17219 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES. 17220 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up 17221 collapse count in clauses. 17222 (c_parser_omp_for, c_parser_omp_parallel): Adjust 17223 c_parser_omp_for_loop callers. 17224 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE. 17225 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT. 17226 (c_parser_omp_clause_name): Handle collapse and untied clauses. 17227 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New 17228 functions. 17229 (c_parser_omp_clause_schedule): Handle schedule(auto). 17230 Include correct location in the error message. 17231 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE 17232 and PRAGMA_OMP_CLAUSE_UNTIED. 17233 (OMP_TASK_CLAUSE_MASK): Define. 17234 (c_parser_omp_task, c_parser_omp_taskwait): New functions. 17235 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK. 17236 * tree-nested.c (convert_nonlocal_omp_clauses, 17237 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT, 17238 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE, 17239 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED. 17240 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in 17241 OMP_CLAUSE_DECL. 17242 (conver_nonlocal_reference, convert_local_reference, 17243 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use 17244 OMP_TASKREG_* macros rather than OMP_PARALLEL_*. 17245 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes. 17246 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK. 17247 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes. 17248 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New. 17249 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New. 17250 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions. 17251 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and 17252 OMP_CLAUSE_UNTIED. 17253 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas. 17254 * c-common.h (c_finish_omp_taskwait): New prototype. 17255 * gimple-low.c (lower_stmt): Handle OMP_TASK. 17256 * tree-parloops.c (create_parallel_loop): Create 1 entry 17257 vectors for OMP_FOR_{INIT,COND,INCR}. 17258 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers. 17259 (make_edges): Handle OMP_TASK. 17260 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR 17261 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. 17262 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK. 17263 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR, 17264 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, 17265 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR, 17266 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR, 17267 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New. 17268 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT, 17269 BUILT_IN_GOMP_LOOP_ULL_STATIC_START, 17270 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START, 17271 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START, 17272 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START, 17273 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START, 17274 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START, 17275 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START, 17276 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START, 17277 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT, 17278 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT, 17279 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT, 17280 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT, 17281 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT, 17282 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT, 17283 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT, 17284 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins. 17285 * gimplify.c (gimplify_omp_for): Allow pointer type for decl, 17286 handle POINTER_PLUS_EXPR. If loop counter has been replaced and 17287 original iterator is present in lastprivate clause or if 17288 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed 17289 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. 17290 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK. 17291 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF. 17292 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed, 17293 if it is set, lookup var in outer contexts too. Handle 17294 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed 17295 to be implicitly determined firstprivate for task regions. 17296 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed, 17297 if it is set, lookup var in outer contexts too. Set 17298 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set. 17299 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and 17300 OMP_CLAUSE_UNTIED. Take region_type as last argument 17301 instead of in_parallel and in_combined_parallel. 17302 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare): 17303 Adjust callers. 17304 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if 17305 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook. 17306 (new_omp_context): Set default_kind to 17307 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions. 17308 (omp_region_type): New enum. 17309 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel 17310 fields, add region_type. 17311 (new_omp_context): Take region_type as argument instead of is_parallel 17312 and is_combined_parallel. 17313 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable, 17314 omp_is_private, omp_check_private): Adjust ctx->is_parallel and 17315 ctx->is_combined_parallel checks. 17316 (gimplify_omp_task): New function. 17317 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and 17318 OMP_CLAUSE_UNTIED. 17319 * omp-low.c (extract_omp_for_data): Use schedule(static) 17320 for schedule(auto). Handle pointer and unsigned iterators. 17321 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments. 17322 Add loops argument. Extract data for collapsed OMP_FOR loops. 17323 (expand_parallel_call): Assert sched_kind isn't auto, 17324 map runtime schedule to index 3. 17325 (struct omp_for_data_loop): New type. 17326 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields. 17327 Add loop, loops, collapse and iter_type fields. 17328 (workshare_safe_to_combine_p): Disallow combined for if 17329 iter_type is unsigned long long. Don't combine collapse > 1 loops 17330 unless all bounds and steps are constant. Adjust extract_omp_for_data 17331 caller. 17332 (expand_omp_for_generic): Handle pointer, unsigned and long long 17333 iterators. Handle collapsed OMP_FOR loops. Adjust 17334 for struct omp_for_data changes. If libgomp function doesn't return 17335 boolean_type_node, add comparison of the return value with 0. 17336 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle 17337 pointer, unsigned and long long iterators. Adjust for struct 17338 omp_for_data changes. 17339 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule 17340 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is 17341 unsigned long long. Allocate loops array, pass it to 17342 extract_omp_for_data. For collapse > 1 loops use always 17343 expand_omp_for_generic. 17344 (omp_context): Add sfield_map and srecord_type fields. 17345 (is_task_ctx, lookup_sfield): New functions. 17346 (use_pointer_for_field): Use is_task_ctx helper. Change first 17347 argument's type from const_tree to tree. Clarify comment. 17348 In OMP_TASK disallow copy-in/out sharing. 17349 (build_sender_ref): Call lookup_sfield instead of lookup_field. 17350 (install_var_field): Add mask argument. Populate both record_type 17351 and srecord_type if needed. 17352 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN 17353 in srecord_type. 17354 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT} 17355 and DECL_FIELD_OFFSET. 17356 (scan_sharing_clauses): Adjust install_var_field callers. For 17357 firstprivate clauses on explicit tasks allocate the var by value in 17358 record_type unconditionally, rather than by reference. 17359 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT. 17360 Use is_taskreg_ctx instead of is_parallel_ctx. 17361 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED. 17362 (create_omp_child_function_name): Add task_copy argument, use 17363 *_omp_cpyfn* names if it is true. 17364 (create_omp_child_function): Add task_copy argument, if true create 17365 *_omp_cpyfn* helper function. 17366 (scan_omp_parallel): Adjust create_omp_child_function callers. 17367 Rename parallel_nesting_level to taskreg_nesting_level. 17368 (scan_omp_task): New function. 17369 (lower_rec_input_clauses): Don't run constructors for firstprivate 17370 explicit task vars which are initialized by *_omp_cpyfn*. 17371 Pass outer var ref to omp_clause_default_ctor hook if 17372 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE. 17373 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in 17374 OMP_CLAUSE_REDUCTION_INIT. 17375 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to 17376 avoid duplicate setting of fields. Handle 17377 OMP_CLAUSE_PRIVATE_OUTER_REF. 17378 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't 17379 copy-out if TREE_READONLY, only copy-in. 17380 (expand_task_copyfn): New function. 17381 (expand_task_call): New function. 17382 (struct omp_taskcopy_context): New type. 17383 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn): 17384 New functions. 17385 (lower_omp_parallel): Rename to... 17386 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed. 17387 Call create_task_copyfn if srecord_type is needed. Adjust 17388 sender_decl type. 17389 (task_shared_vars): New variable. 17390 (check_omp_nesting_restrictions): Warn if work-sharing, 17391 barrier, master or ordered region is closely nested inside OMP_TASK. 17392 Add warnings for barrier if closely nested inside of work-sharing, 17393 ordered, or master region. 17394 (scan_omp_1): Call check_omp_nesting_restrictions even for 17395 GOMP_barrier calls. Rename parallel_nesting_level to 17396 taskreg_nesting_level. Handle OMP_TASK. 17397 (lower_lastprivate_clauses): Even if some lastprivate is found on a 17398 work-sharing construct, continue looking for them on parent parallel 17399 construct. 17400 (lower_omp_for_lastprivate): Add lastprivate clauses 17401 to the beginning of dlist rather than end. Adjust for struct 17402 omp_for_data changes. 17403 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY, 17404 not after it. Handle collapsed OMP_FOR loops, adjust for 17405 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller. 17406 (get_ws_args_for): Adjust extract_omp_for_data caller. 17407 (scan_omp_for): Handle collapsed OMP_FOR 17408 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. 17409 (lower_omp_single_simple): If libgomp function doesn't return 17410 boolean_type_node, add comparison of the return value with 0. 17411 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR 17412 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK. 17413 (parallel_nesting_level): Rename to... 17414 (taskreg_nesting_level): ... this. 17415 (is_taskreg_ctx): New function. 17416 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead 17417 of is_parallel_ctx. 17418 (execute_lower_omp): Rename parallel_nesting_level to 17419 taskreg_nesting_level. 17420 (expand_omp_parallel): Rename to... 17421 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed. 17422 Call omp_task_call for OMP_TASK regions. 17423 (expand_omp): Adjust caller, handle OMP_TASK. 17424 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK. 17425 17426 * bitmap.c (bitmap_default_obstack_depth): New variable. 17427 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing 17428 if argument is NULL and bitmap_default_obstack is already initialized. 17429 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release 17430 at the end. 17431 * matrix-reorg.c (matrix_reorg): Likewise. 17432 174332008-06-06 Uros Bizjak <ubizjak@gmail.com> 17434 17435 * config/i386/i386.md (*indirect_jump): Macroize using P 17436 mode iterator. Remove !TARGET_64BIT from insn constraints. 17437 (*tablejump_1): Ditto. 17438 (*indirect_jump_rex64): Remove insn pattern. 17439 (*tablejump_1_rex64): Ditto. 17440 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di 17441 and eh_return_si insn patterns. 17442 174432008-06-06 Richard Guenther <rguenther@suse.de> 17444 17445 * tree-ssa-structalias.c (merge_smts_into): Remove. 17446 (find_what_p_points_to): Do not bother to compute the 17447 points-to set for pt_anything pointers. 17448 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT 17449 for pt_anything pointers is ok. 17450 174512008-06-06 Jan Hubicka <jh@suse.cz> 17452 17453 * passes.c (execute_ipa_pass_list): Do not regenerate summaries. 17454 174552008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 17456 17457 * cgraph.c: Fix typos in comments. 17458 (cgraph_availability_names): Fix string typo. 17459 * fold-const.c: Fix typos in comments. 17460 (fold_binary): Fix typo in warning. 17461 * genautomata.c: Fix typos in comments. 17462 (check_presence_pattern_sets): Fix typo in local variable. 17463 (output_description): Fix typo in output. 17464 * ggc-zone.c (ggc_pch_finish): Fix typo in error message. 17465 * hwint.h: Likewise. 17466 * matrix-reorg.c (check_allocation_function): Likewise. 17467 * omega.c (smooth_weird_equations): Likewise. 17468 * auto-inc-dec.c: Fix typos in comments. 17469 * bb-reorder.c: Likewise. 17470 * builtins.c: Likewise. 17471 * c-common.c: Likewise. 17472 * c-cppbuiltin.c: Likewise. 17473 * c-parser.c: Likewise. 17474 * c-pretty-print.c: Likewise. 17475 * cfgcleanup.c: Likewise. 17476 * cfgexpand.c: Likewise. 17477 * cfghooks.c: Likewise. 17478 * cfglayout.c: Likewise. 17479 * cfgloopmanip.c: Likewise. 17480 * cgraphunit.c: Likewise. 17481 * coverage.c: Likewise. 17482 * dbxout.c: Likewise. 17483 * df-byte-scan.c: Likewise. 17484 * df-core.c: Likewise. 17485 * df-problems.c: Likewise. 17486 * df-scan.c: Likewise. 17487 * dfp.c: Likewise. 17488 * dominance.c: Likewise. 17489 * domwalk.c: Likewise. 17490 * dse.c: Likewise. 17491 * dwarf2out.c: Likewise. 17492 * emit-rtl.c: Likewise. 17493 * et-forest.c: Likewise. 17494 * function.c: Likewise. 17495 * function.h: Likewise. 17496 * gcc.c: Likewise. 17497 * gcov-io.c: Likewise. 17498 * gcov.c: Likewise. 17499 * gcse.c: Likewise. 17500 * genattrtab.c: Likewise. 17501 * ggc-page.c: Likewise. 17502 * gimplify.c: Likewise. 17503 * gthr-lynx.h: Likewise. 17504 * haifa-sched.c: Likewise. 17505 * ipa-cp.c: Likewise. 17506 * ipa-inline.c: Likewise. 17507 * ipa-prop.h: Likewise. 17508 * ipa-pure-const.c: Likewise. 17509 * ipa-struct-reorg.c: Likewise. 17510 * ipa-struct-reorg.h: Likewise. 17511 * ipa-type-escape.c: Likewise. 17512 * ipa.c: Likewise. 17513 * loop-doloop.c: Likewise. 17514 * mips-tfile.c: Likewise. 17515 * mkmap-flat.awk: Likewise. 17516 * mkmap-symver.awk: Likewise. 17517 * modulo-sched.c: Likewise. 17518 * omp-low.c: Likewise. 17519 * optabs.c: Likewise. 17520 * optabs.h: Likewise. 17521 * opts.c: Likewise. 17522 * passes.c: Likewise. 17523 * postreload-gcse.c: Likewise. 17524 * postreload.c: Likewise. 17525 * predict.c: Likewise. 17526 * pretty-print.h: Likewise. 17527 * profile.c: Likewise. 17528 * protoize.c: Likewise. 17529 * ra-conflict.c: Likewise. 17530 * real.c: Likewise. 17531 * recog.c: Likewise. 17532 * regclass.c: Likewise. 17533 * regs.h: Likewise. 17534 * reload.c: Likewise. 17535 * rtl-error.c: Likewise. 17536 * rtlanal.c: Likewise. 17537 * scan.h: Likewise. 17538 * sched-rgn.c: Likewise. 17539 * see.c: Likewise. 17540 * stmt.c: Likewise. 17541 * target.h: Likewise. 17542 * tree-dfa.c: Likewise. 17543 * tree-eh.c: Likewise. 17544 * tree-flow-inline.h: Likewise. 17545 * tree-inline.c: Likewise. 17546 * tree-into-ssa.c: Likewise. 17547 * tree-loop-distribution.c: Likewise. 17548 * tree-nested.c: Likewise. 17549 * tree-parloops.c: Likewise. 17550 * tree-pass.h: Likewise. 17551 * tree-pretty-print.c: Likewise. 17552 * tree-profile.c: Likewise. 17553 * tree-scalar-evolution.c: Likewise. 17554 * tree-sra.c: Likewise. 17555 * tree-ssa-alias-warnings.c: Likewise. 17556 * tree-ssa-ccp.c: Likewise. 17557 * tree-ssa-coalesce.c: Likewise. 17558 * tree-ssa-dom.c: Likewise. 17559 * tree-ssa-dse.c: Likewise. 17560 * tree-ssa-forwprop.c: Likewise. 17561 * tree-ssa-live.c: Likewise. 17562 * tree-ssa-live.h: Likewise. 17563 * tree-ssa-loop-im.c: Likewise. 17564 * tree-ssa-loop-ivopts.c: Likewise. 17565 * tree-ssa-loop-niter.c: Likewise. 17566 * tree-ssa-loop-prefetch.c: Likewise. 17567 * tree-ssa-phiopt.c: Likewise. 17568 * tree-ssa-phiprop.c: Likewise. 17569 * tree-ssa-sccvn.c: Likewise. 17570 * tree-ssa-ter.c: Likewise. 17571 * tree-ssa-threadupdate.c: Likewise. 17572 * tree-ssa.c: Likewise. 17573 * tree-vect-analyze.c: Likewise. 17574 * tree-vect-transform.c: Likewise. 17575 * tree-vectorizer.c: Likewise. 17576 * tree-vn.c: Likewise. 17577 * tree-vrp.c: Likewise. 17578 * tree.c: Likewise. 17579 * tree.def: Likewise. 17580 * tree.h: Likewise. 17581 * unwind-dw2-fde.c: Likewise. 17582 * unwind.inc: Likewise. 17583 * value-prof.c: Likewise. 17584 * vmsdbgout.c: Likewise. 17585 175862008-06-05 David Edelsohn <edelsohn@gnu.org> 17587 17588 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not 17589 always place FP constants in the TOC for TARGET_POWERPC64. 17590 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same. 17591 175922008-06-05 Joseph Myers <joseph@codesourcery.com> 17593 17594 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules. 17595 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not 17596 enable for TARGET_E500_DOUBLE. 17597 (*movdd_softfloat32): Also enable for !TARGET_FPRS. 17598 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal 17599 floating-point modes like integer modes for E500 double. 17600 (rs6000_legitimate_offset_address_p): Likewise. 17601 (rs6000_legitimize_address): Likewise. Do not allow REG+REG 17602 addressing for DDmode for E500 double. 17603 (rs6000_hard_regno_nregs): Do not treat decimal floating-point 17604 modes as using 64-bits of registers for E500 double. 17605 (spe_build_register_parallel): Do not handle DDmode or TDmode. 17606 (rs6000_spe_function_arg): Do not handle DDmode or TDmode 17607 specially for E500 double. 17608 (function_arg): Do not call rs6000_spe_function_arg for DDmode or 17609 TDmode for E500 double. 17610 (rs6000_gimplify_va_arg): Only handle SDmode in registers 17611 specially if TARGET_HARD_FLOAT && TARGET_FPRS. 17612 (rs6000_split_multireg_move): Do not handle TDmode specially for 17613 E500 double. 17614 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as 17615 using 64-bit registers for E500 double. 17616 (emit_frame_save): Do not handle DDmode specially for E500 double. 17617 (gen_frame_mem_offset): Likewise. 17618 (rs6000_function_value): Do not call spe_build_register_parallel 17619 for DDmode or TDmode. 17620 (rs6000_libcall_value): Likewise. 17621 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK, 17622 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially 17623 for E500 double. 17624 176252008-06-04 H.J. Lu <hongjiu.lu@intel.com> 17626 17627 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo 17628 in comments. 17629 176302008-06-04 Junjie Gu <jgu@tensilica.com> 17631 17632 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned 17633 comparison for frame pointers. 17634 176352008-06-04 Andy Hutchinson <hutchinsonandy@aim.com> 17636 17637 PR target/27386 17638 * config/avr/avr.h (PUSH_ROUNDING): Remove. 17639 176402008-06-04 Andy Hutchinson <hutchinsonandy@aim.com> 17641 17642 PR target/30243 17643 * builtins.c (expand_builtin_signbit): Don't take lowpart when 17644 register is already smaller or equal to required mode. 17645 176462008-06-04 Xinliang David Li <davidxl@google.com> 17647 17648 * tree-call-cdce.c: New file. 17649 (cond_dead_built_in_calls): New static variable. 17650 (input_domain): New struct. 17651 (check_pow): New function. 17652 (check_builtin_call): Ditto. 17653 (check_target_format): Ditto. 17654 (is_call_dce_candidate): Ditto. 17655 (gen_one_condition): Ditto. 17656 (gen_conditions_for_domain): Ditto. 17657 (get_domain): Ditto. 17658 (gen_conditions_for_pow_cst_base): Ditto. 17659 (gen_conditions_for_pow_int_base): Ditto. 17660 (gen_conditions_for_pow): Ditto. 17661 (get_no_error_domain): Ditto. 17662 (gen_shrink_wrap_conditions): Ditto. 17663 (shrink_wrap_one_built_in_call): Ditto. 17664 (shink_wrap_conditional_dead_built_in_calls): Ditto. 17665 (tree_call_cdce): Ditto. 17666 (gate_call_cdce): Ditto. 17667 (pass_call_cdce): New gimple pass. 17668 * passes.c (init_optimization_passes): New pass. 17669 * tree-pass.h: New pass declaration. 17670 * opts.c (decode_options): New flag setting. 17671 * common.opt: Add -ftree-builtin-call-dce flag. 17672 * Makefile.in: Add new source file. 17673 * tempvar.def: New tv_id. 17674 * doc/invoke.texi (-ftree-builtin-call-dce): New flag. 17675 176762008-06-04 Richard Guenther <rguenther@suse.de> 17677 17678 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs. 17679 (is_call_clobbered): Always check var_ann->call_clobbered. 17680 (mark_call_clobbered): Always set var_ann->call_clobbered. 17681 (clear_call_clobbered): Always clear var_ann->call_clobbered. 17682 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered. 17683 (reset_alias_info): Clear call clobbering info on MTAGs and 17684 globals as well. 17685 (set_pt_anything): Set pt_global_mem. 17686 (create_tag_raw): Adjust comment. 17687 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs. 17688 176892008-06-04 Joseph Myers <joseph@codesourcery.com> 17690 Maxim Kuvyrkov <maxim@codesourcery.com> 17691 17692 * config/m68k/m68k.opt (mxgot): New option. 17693 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot. 17694 (m68k_output_addr_const_extra): New. 17695 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New. 17696 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare. 17697 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define. 17698 * doc/invoke.texi (M680x0 Options): Document -mxgot. 17699 177002008-06-04 Richard Guenther <rguenther@suse.de> 17701 17702 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle 17703 negative or non-representable offsets. 17704 177052008-06-03 H.J. Lu <hongjiu.lu@intel.com> 17706 17707 * config/i386/i386.c (ix86_gen_leave): New. 17708 (ix86_gen_pop1): Likewise. 17709 (ix86_gen_add3): Likewise. 17710 (ix86_gen_sub3): Likewise. 17711 (ix86_gen_sub3_carry): Likewise. 17712 (ix86_gen_one_cmpl2): Likewise. 17713 (ix86_gen_monitor): Likewise. 17714 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1, 17715 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry, 17716 ix86_gen_one_cmpl2 and ix86_gen_monitor. 17717 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}. 17718 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of 17719 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}. 17720 (ix86_expand_epilogue): Updated. 17721 (print_operand): Handle integer register operand for 'z'. 17722 (ix86_expand_strlensi_unroll_1): Likewise. 17723 (ix86_expand_strlen): Likewise. 17724 (ix86_expand_builtin): Likewise. 17725 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of 17726 mov{q}/mov{l} and add{q}/add{l}. 17727 177282008-06-03 Kai Tietz <kai.tietz@onevision.com> 17729 17730 * config/i386/i386.md (P): New mode iterator. 17731 (SFmode push_operand splitter): Macroize DImode and SImode pushes 17732 using P mode iterator. 17733 (DFmode push_operand splitter): Ditto. 17734 (XFmode push_operand splitter): Ditto. 17735 (DFmode float_extend SFmode push_operand splitter): Ditto. 17736 (XFmode float_extend SFmode push_operand splitter): Do not generate 17737 SImode pushes for 64bit target. Macroize Dimode and SImode 17738 pushes using P mode iterator. 17739 (XFmode float_extend DFmode push_operand splitter): Ditto. 17740 177412008-06-03 Kai Tietz <kai.tietz@onevision.com> 17742 17743 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New. 17744 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype. 17745 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed 17746 return type to int. 17747 (ix86_call_abi_override): Remove check for call_used_regs. 17748 177492008-06-03 Richard Guenther <rguenther@suse.de> 17750 17751 * tree-ssa-structalias.c (find_func_aliases): Add constraints 17752 for the lhs of calls if the return type contains pointers. 17753 177542008-06-03 Kai Tietz <kai.tietz@onevision.com> 17755 17756 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New. 17757 * doc/extend.texi (ms_abi,sysv_abi): New attribute description. 17758 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT. 17759 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use 17760 of cfun and DEFAULT_ABI to deceide abi mode. 17761 (DEFAULT_ABI): New. 17762 (REG_PARM_STACK_SPACE): Removed. 17763 (OUTGOING_REG_PARM_STACK_SPACE): Removed. 17764 (STACK_BOUNDARY): Use default target to deceide stack boundary. 17765 * config/i386/i386-protos.h (ix86_cfun_abi): New. 17766 (ix86_function_abi): Likewise. 17767 (ix86_function_type_abi): Likewise. 17768 (ix86_call_abi_override): Likewise. 17769 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi 17770 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX. 17771 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI. 17772 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi 17773 specific defines. 17774 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI. 17775 (ix86_function_regparm): Handle user calling abi. 17776 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI 17777 by DEFAULT_ABI versus SYSV_ABI check. 17778 (ix86_reg_parm_stack_space): New. 17779 (ix86_function_type_abi): New. 17780 (ix86_call_abi_override): New. 17781 (ix86_function_abi): New. 17782 (ix86_cfun_abi): New. 17783 (init_cumulative_args): Call abi specific initialization. 17784 (function_arg_advance): Remove TARGET_64BIT_MS_ABI. 17785 (function_arg_64): Extend SSE_REGPARM_MAX check. 17786 (function_arg (): Remove TARGET_64BIT_MS_ABI. 17787 (ix86_pass_by_reference): Likewise. 17788 (ix86_function_value_regno_p): Likewise. 17789 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX. 17790 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI. 17791 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI. 17792 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI. 17793 (setup_incoming_varargs_64): Adjust regparm for call abi. 17794 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI. 17795 (ix86_va_start): Likewise. 17796 (ix86_gimplify_va_arg): Likewise. 17797 (ix86_expand_prologue): Likewise. 17798 (output_pic_addr_const): Likewise. 17799 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI. 17800 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI. 17801 (x86_output_mi_thunk): Likewise. 17802 (x86_function_profiler): Likewise. 17803 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi. 17804 (SYSV_ABI, MS_ABI): New constants. 17805 (DEFAULT_ABI): New. 17806 (init_regs): Add prototype of function in regclass.c file. 17807 (OVERRIDE_ABI_FORMAT): New. 17808 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part. 17809 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space. 17810 (OUTGOING_REG_PARM_STACK_SPACE): New. 17811 (ix86_reg_parm_stack_space): New prototype. 17812 (CUMULATIVE_ARGS): Add call_abi member. 17813 (X86_64_REGPARM_MAX): New. 17814 (X86_64_SSE_REGPARM_MAX): New. 17815 (X64_REGPARM_MAX): New. 17816 (X64_SSE_REGPARM_MAX): New. 17817 (X86_32_REGPARM_MAX): New. 17818 (X86_32_SSE_REGPARM_MAX): New. 17819 (REGPARM_MAX): Updated. 17820 (SSE_REGPARM_MAX): Updated. 17821 (machine_function): Add call_abi member. 17822 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace 17823 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI. 17824 178252008-06-02 Andy Hutchinson <hutchinsonandy@aim.com> 17826 17827 PR target/34879 17828 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine. 17829 (avr_builtin_setjmp_frame_value): New function. 17830 * config/avr/avr.md (nonlocal_goto_receiver): Define. 17831 (nonlocal_goto): Define. 17832 178332008-06-02 Richard Sandiford <rdsandiford@googlemail.com> 17834 17835 * config/mips/mips.c (mips_emit_loadgp): Return early if 17836 there is nothing do to, otherwise emit a blockage if 17837 !TARGET_EXPLICIT_RELOCS || crtl->profile. 17838 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI. 17839 178402008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 17841 17842 * configure.ac: Drop unneeded backslash ending up in config.in. 17843 * acinclude.m4: Likewise. 17844 * config.in: Regenerate. 17845 178462008-05-26 Jan Hubicka <jh@suse.cz> 17847 17848 * predict.c (maybe_hot_frequency_p): Break out of... 17849 (maybe_hot_bb_p): ... here. 17850 (maybe_hot_edge_p): New. 17851 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge. 17852 * basic-block.h (maybe_hot_edge_p): Declare. 17853 178542008-05-31 Uros Bizjak <ubizjak@gmail.com> 17855 17856 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size. 17857 (*cmpfp_<mode>_cc): Ditto. 17858 (*fp_jcc_8<mode>_387): Ditto. 17859 (*fop_<MODEF:mode>_2_i387): Ditto. 17860 (*fop_<MODEF:mode>_3_i387): Ditto. 17861 (*fop_xf_2_i387): Ditto. 17862 (*fop_xf_3_i387): Ditto. 17863 178642008-06-02 Tomas Bily <tbily@suse.cz> 17865 17866 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P. 17867 178682008-06-01 Richard Sandiford <rdsandiford@googlemail.com> 17869 17870 * config/mips/mips.c (mips_valid_offset_p): New function. 17871 (mips_valid_lo_sum_p): Likewise. 17872 (mips_classify_address): Use them. 17873 (mips_force_address): New function. 17874 (mips_legitimize_address): Use it. 17875 * config/mips/mips.md (MOVE128): New mode iterator. 17876 (movtf): Require TARGET_64BIT. Remove empty strings. 17877 (*movtf_internal): Rename to... 17878 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead 17879 of "R" and use {,fp}{load,store} attributes instead of "multi". 17880 Use a separate define_split. 17881 (*movtf_mips16): New pattern. 17882 178832008-06-01 Richard Sandiford <rdsandiford@googlemail.com> 17884 17885 * config/mips/mips-protos.h (mips_expand_before_return): Declare. 17886 * config/mips/mips.c (mips_expand_before_return): New function. 17887 (mips_expand_epilogue): Call it. 17888 * config/mips/mips.md (return): Turn into a define_expand. 17889 (*return): New insn. 17890 178912008-06-01 Richard Sandiford <rdsandiford@googlemail.com> 17892 17893 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare. 17894 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New 17895 functions. Do not emit uses and clobbers of CONCATs; individually 17896 use and clobber their operands. 17897 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber, 17898 gen_clobber, emit_use and gen_use. 17899 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise. 17900 (expand_builtin_return): Likewise. 17901 * cfgbuild.c (count_basic_blocks): Likewise. 17902 * cfgrtl.c (rtl_flow_call_edges_add): Likewise. 17903 * explow.c (emit_stack_restore): Likewise. 17904 * expmed.c (extract_bit_field_1): Likewise. 17905 * expr.c (convert_move, emit_move_complex_parts): Likewise. 17906 (emit_move_multi_word, store_constructor): Likewise. 17907 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise. 17908 (thread_prologue_and_epilogue_insns): Likewise. 17909 * lower-subreg.c (resolve_simple_move): Likewise. 17910 * optabs.c (widen_operand, expand_binop): Likewise. 17911 (expand_doubleword_bswap, emit_no_conflict_block): Likewise. 17912 * reload.c (find_reloads): Likewise. 17913 * reload1.c (eliminate_regs_in_insn): Likewise. 17914 * stmt.c (expand_nl_goto_receiver): Likewise. 17915 * config/alpha/alpha.md (builtin_longjmp): Likewise. 17916 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise. 17917 * config/arm/arm.c (arm_load_pic_register): Likewise. 17918 (thumb1_expand_epilogue, thumb_set_return_address): Likewise. 17919 * config/arm/arm.md (untyped_return): Likewise. 17920 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise. 17921 * config/avr/avr.c (expand_prologue): Likewise. 17922 * config/bfin/bfin.c (do_unlink): Likewise. 17923 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise. 17924 * config/cris/cris.c (cris_expand_prologue): Likewise. 17925 * config/darwin.c (machopic_indirect_data_reference): Likewise. 17926 (machopic_legitimize_pic_address): Likewise. 17927 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise. 17928 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise. 17929 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise. 17930 (ix86_expand_convert_uns_didf_sse): Likewise. 17931 (ix86_expand_vector_init_general): Likewise. 17932 * config/ia64/ia64.md (eh_epilogue): Likewise. 17933 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise. 17934 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise. 17935 * config/m32r/m32r.c (m32r_reload_lr): Likewise. 17936 (config/iq2000/iq2000.c): Likewise. 17937 * config/mips/mips.md (fixuns_truncdfsi2): Likewise. 17938 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise. 17939 (builtin_longjmp): Likewise. 17940 * config/mn10300/mn10300.md (call, call_value): Likewise. 17941 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise. 17942 * config/pdp11/pdp11.md (abshi2): Likewise. 17943 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. 17944 * config/s390/s390.c (s390_emit_prologue): Likewise. 17945 * config/s390/s390.md (movmem_long, setmem_long): Likewise. 17946 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise. 17947 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise. 17948 * config/sh/sh.c (prepare_move_operands): Likewise. 17949 (output_stack_adjust, sh_expand_epilogue): Likewise. 17950 (sh_set_return_address, sh_expand_t_scc): Likewise. 17951 * config/sparc/sparc.c (load_pic_register): Likewise. 17952 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise. 17953 * config/spu/spu.c (spu_expand_epilogue): Likewise. 17954 * config/v850/v850.c (expand_epilogue): Likewise. 17955 179562008-05-31 Anatoly Sokolov <aesok@post.ru> 17957 17958 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants. 17959 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.). 17960 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn. 17961 * config/avr/avr.c (expand_prologue, expand_epilogue): Use 17962 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 17963 stack pointer register. 17964 (output_movhi): Remove code for interrupt specific writing to the 17965 stack pointer register. 17966 179672008-05-31 Richard Guenther <rguenther@suse.de> 17968 17969 PR tree-optimization/34244 17970 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP. 17971 (tree_expr_nonzero_warnv_p): Likewise. 17972 * tree-vrp.c (vrp_expr_computes_nonnegative): Call 17973 ssa_name_nonnegative_p. 17974 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p. 17975 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero, 17976 not tree_expr_nonzero_warnv_p. 17977 17978 PR tree-optimization/36262 17979 Revert 17980 2007-11-29 Zdenek Dvorak <ook@ucw.cz> 17981 17982 PR tree-optimization/34244 17983 * tree-vrp.c (adjust_range_with_scev): Clear scev cache. 17984 (record_numbers_of_iterations): New function. 17985 (execute_vrp): Cache the numbers of iterations of loops. 17986 * tree-scalar-evolution.c (scev_reset_except_niters): 17987 New function. 17988 (scev_reset): Use scev_reset_except_niters. 17989 * tree-scalar-evolution.h (scev_reset_except_niters): Declare. 17990 179912008-05-31 Bernd Schmidt <bernd.schmidt@analog.com> 17992 17993 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define 17994 __WORKAROUND_RETS when appropriate. 17995 179962008-05-31 Uros Bizjak <ubizjak@gmail.com> 17997 17998 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from 17999 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF 18000 mode iterator. 18001 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and 18002 *fop_df_comm_sse insn patterns using MODEF mode iterator. 18003 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and 18004 *fop_df_comm_i387 insn patterns using MODEF mode iterator. 18005 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and 18006 *fop_df_1_mixed insn patterns using MODEF mode iterator. 18007 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and 18008 *fop_df_1_sse insn patterns using MODEF mode iterator. 18009 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and 18010 *fop_df_1_i387 insn patterns using MODEF mode iterator. 18011 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and 18012 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator. 18013 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and 18014 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator. 18015 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387. 18016 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387. 18017 (*fop_xf_4_i387): Use <MODE> for mode attribute. 18018 (*fop_xf_5_i387): Ditto. 18019 (*fop_xf_6_i387): Ditto. 18020 180212008-05-30 Richard Guenther <rguenther@suse.de> 18022 18023 * builtins.c (build_string_literal): Avoid generating 18024 a non-gimple_val result. 18025 180262008-05-30 DJ Delorie <dj@redhat.com> 18027 18028 * exec-tool.in: Use an environment variable (private) instead of a 18029 file (shared) as a semaphore, so as to not break parallel builds. 18030 180312008-05-30 Steven Bosscher <stevenb.gcc@gmail.com> 18032 18033 * optabs.c (maybe_encapsulate_block): Remove. 18034 (emit_libcall_block): Adjust accordingly. 18035 * optabs.h (maybe_encapsulate_block): Remove prototype. 18036 18037 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): 18038 Don't use maybe_encapsulate_block. 18039 180402008-05-30 Steven Bosscher <stevenb.gcc@gmail.com> 18041 18042 * config/rs6000/rs6000.c (rs6000_legitimize_address, 18043 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an 18044 rtx is a SYMBOL_REF before calling get_pool_constant. 18045 180462008-05-30 Eric Botcazou <ebotcazou@adacore.com> 18047 18048 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment. 18049 180502008-05-30 Danny Smith <dannysmith@users.sourceforge.net> 18051 18052 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional 18053 rather than OS names to choose INO_T_EQ definition. 18054 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison. 18055 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field. 18056 180572008-05-29 Daniel Franke <franke.daniel@gmail.com> 18058 18059 PR target/36348 18060 * config/darwin-f.c: New. 18061 * config/t-darwin: Added rule to build darwin-f.o. 18062 * config.gcc: Defined new variable, fortran_target_objs. 18063 (*-*-darwin*): Set fortran_target_objs. 18064 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS. 18065 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS. 18066 * configure: Regenerated. 18067 180682008-05-29 H.J. Lu <hongjiu.lu@intel.com> 18069 18070 PR target/35771 18071 * config/i386/i386.c (ix86_function_arg_boundary): Convert to 18072 canonical type if needed. 18073 180742008-05-29 Eric Botcazou <ebotcazou@adacore.com> 18075 18076 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo. 18077 180782008-05-29 Richard Guenther <rguenther@suse.de> 18079 18080 PR tree-optimization/36343 18081 PR tree-optimization/36346 18082 PR tree-optimization/36347 18083 * tree-flow.h (clobber_what_p_points_to): Declare. 18084 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the 18085 pointed-to variable is dereferenced is irrelevant to whether 18086 the pointer can access the pointed-to variable. 18087 (clobber_what_p_points_to): New function. 18088 * tree-ssa-alias.c (set_initial_properties): Use it. 18089 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust 18090 call clobber check for NMTs. 18091 180922008-05-28 Seongbae Park <seongbae.park@gmail.com> 18093 18094 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC 18095 for printing gcov_type. 18096 180972008-05-28 Seongbae Park <seongbae.park@gmail.com> 18098 18099 * tree-ssa-propagate.c (set_rhs): Preserve the histogram 18100 and the eh region information. 18101 * value-prof.c (gimple_move_stmt_histograms): New function. 18102 * value-prof.h (gimple_move_stmt_histograms): New function declaration. 18103 181042008-05-28 Andreas Tobler <a.tobler@schweiz.org> 18105 18106 * config/pa/pa.md: Remove extern frame_pointer_needed declaration. 18107 181082008-05-28 Seongbae Park <seongbae.park@gmail.com> 18109 18110 * value-prof.c (tree_ic_transform): Print counts. 18111 * tree-profile.c (tree_gen_ic_func_profiler): 18112 Clear __gcov_indreict_call_callee variable to avoid misattribution 18113 of the profile. 18114 181152008-05-28 Rafael Esp��ndola <espindola@google.com> 18116 18117 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid 18118 invalid sharing. 18119 181202008-05-28 Richard Guenther <rguenther@suse.de> 18121 18122 PR tree-optimization/36339 18123 * tree-ssa-alias.c (set_initial_properties): Move pt_anything 18124 and clobbering code out of the loop. 18125 181262008-05-28 Andreas Krebbel <krebbel1@de.ibm.com> 18127 18128 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint 18129 letters defined. 18130 18131 * config/s390/s390.c (s390_compare_and_branch_condition_mask, 18132 s390_contiguous_bitmask_p, s390_symref_operand_p, 18133 s390_check_symref_alignment, s390_reload_larl_operand, 18134 s390_reload_symref_address): New functions. 18135 (s390_branch_condition_mnemonic): Support compare and branch 18136 instructions. 18137 (s390_mem_constraint): Avoid symrefs to accepted by the 'T' 18138 and 'W' constraints. 18139 (s390_secondary_reload): Add secondary reloads for unaligned 18140 symbol refs or symbol refs to floating point or QI/TI mode 18141 integer values. 18142 (legitimate_address_p): Accept symbol references as addresses. 18143 (s390_expand_insv): Use rotate and insert selected bits 18144 instruction for insv when building for z10. 18145 (print_operand_address): Handle symbol ref addresses. 18146 (print_operand): Output modifier 'c' added for signed byte values. 18147 (s390_encode_section_info): Mark symbol refs with 18148 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate. 18149 18150 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added. 18151 (length attribute): RRF, RRR have 4 byte length. 18152 (FPALL, INTALL): New mode iterators added. 18153 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign, 18154 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu, 18155 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short, 18156 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm, 18157 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3, 18158 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc, 18159 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3, 18160 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10 18161 instructions. 18162 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi, 18163 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>, 18164 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10, 18165 reload<INTALL:mode><P:mode>_toreg_z10, 18166 reload<FPALL:mode><P:mode>_tomem_z10, 18167 reload<FPALL:mode><P:mode>_toreg_z10, 18168 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10, 18169 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift, 18170 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>, 18171 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander 18172 definition. 18173 (movmem, clrmem, cmpmem): New splitters added. 18174 18175 * config/s390/predicates.md (larl_operand): Use 18176 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with 18177 SYMBOL_REF_ALIGN1_P. 18178 (s390_signed_integer_comparison, 18179 s390_unsigned_integer_comparison): New predicates. 18180 18181 * config/s390/s390-protos.h (s390_check_symref_alignment, 18182 s390_contiguous_bitmask_p, s390_reload_larl_operand, 18183 s390_reload_symref_address, 18184 s390_compare_and_branch_condition_mask): Prototypes added. 18185 18186 * config/s390/s390.h (TARGET_MEM_CONSTRAINT, 18187 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED, 18188 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added. 18189 181902008-05-28 Andreas Krebbel <krebbel1@de.ibm.com> 18191 18192 * config/s390/s390.c (z10_cost): New cost function for z10. 18193 (s390_handle_arch_option, override_options): Support -march=z10 switch. 18194 (s390_issue_rate): Adjust issue rate for z10. 18195 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10. 18196 (processor_flags): Add PF_Z10. 18197 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions. 18198 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10. 18199 * gcc/config.gcc: Add z10. 18200 182012008-05-28 Richard Guenther <rguenther@suse.de> 18202 18203 PR tree-optimization/36291 18204 * tree-flow. h (struct gimple_df): Remove var_anns member. 18205 * tree-flow-inline.h (gimple_var_anns): Remove. 18206 (var_ann): Simplify. 18207 * tree-dfa.c (create_var_ann): Simplify. 18208 (remove_referenced_var): Clear alias info from var_anns of globals. 18209 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns. 18210 (delete_tree_ssa): Clear alias info from var_anns of globals. 18211 Do not free var_anns. 18212 (var_ann_eq): Remove. 18213 (var_ann_hash): Likewise. 18214 182152008-05-28 Mark Shinwell <shinwell@codesourcery.com> 18216 18217 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e 18218 and loongson2f entries. 18219 (mips_rtx_cost_data): Add entries for Loongson-2E/2F. 18220 * config/mips/mips.h (processor_type): Add Loongson-2E 18221 and Loongson-2F entries. 18222 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New. 18223 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F. 18224 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f. 18225 * doc/invoke.texi (MIPS Options): Document loongson2e 18226 and loongson2f processor names. 18227 182282008-05-27 H.J. Lu <hongjiu.lu@intel.com> 18229 18230 PR target/35767 18231 PR target/35771 18232 * config/i386/i386.c (ix86_function_arg_boundary): Use 18233 alignment of canonical type. 18234 (ix86_expand_vector_move): Check unaligned memory access for 18235 all SSE modes. 18236 182372008-05-27 H.J. Lu <hongjiu.lu@intel.com> 18238 18239 * dwarf2out.c (current_fde): Change return type to dw_fde_ref. 18240 Moved to the front of file. 18241 182422008-05-27 Xuepeng Guo <xuepeng.guo@intel.com> 18243 H.J. Lu <hongjiu.lu@intel.com> 18244 18245 * dwarf2out.c (current_fde): New. 18246 (add_cfi): Use it. 18247 (lookup_cfa:): Likewise. 18248 (dwarf2out_end_epilogue): Likewise. 18249 (dwarf2out_note_section_used): Likewise. 18250 182512008-05-27 Michael Matz <matz@suse.de> 18252 18253 PR c++/27975 18254 * c.opt (Wenum-compare): New warning option. 18255 * doc/invoke.texi (Warning Options): Document -Wenum-compare. 18256 182572008-05-27 Michael Matz <matz@suse.de> 18258 18259 PR middle-end/36326 18260 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for 18261 non-BLKmode types. 18262 * tree-tailcall.c (find_tail_calls): Don't mark calls storing 18263 into memory as tail calls. 18264 182652008-05-27 Richard Guenther <rguenther@suse.de> 18266 18267 PR tree-optimization/36339 18268 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything 18269 pointers cause all addressable variables to be call clobbered. 18270 182712008-05-27 Richard Guenther <rguenther@suse.de> 18272 18273 PR tree-optimization/36245 18274 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases. 18275 182762008-05-27 Andreas Krebbel <krebbel1@de.ibm.com> 18277 18278 * config/s390/s390.md: Replace all occurences of the 'm' 18279 constraint with 'RT'. 18280 182812008-05-27 Andreas Krebbel <krebbel1@de.ibm.com> 18282 18283 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute 18284 definitions added. 18285 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into 18286 "*movdi_64". 18287 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3". 18288 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3". 18289 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3". 18290 182912008-05-27 Andreas Krebbel <krebbel1@de.ibm.com> 18292 18293 * reload.c (find_reloads): Skip alternatives according to the 18294 "enabled" attribute. Constify the constraint variable. 18295 * recog.c (get_attr_enabled): Add default implementation. 18296 (extract_insn): Set the alternative_enabled_p array 18297 in the recog_data struct. 18298 (preprocess_constraints, constrain_operands): Skip 18299 alternatives according to the "enabled" attribute 18300 * recog.h (struct recog_data): New field alternative_enabled_p. 18301 (skip_alternative): New inline function. 18302 * regclass.c (record_operand_costs): Check the "enabled" attribute. 18303 (record_reg_classes): Skip alternative according to the 18304 "enabled" attribute. 18305 18306 * doc/md.texi: Add documention for the "enabled" attribute. 18307 183082008-05-27 Andreas Krebbel <krebbel1@de.ibm.com> 18309 18310 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added. 18311 * postreload.c (reload_cse_simplify_operands): Replace 'm' 18312 constraint with TARGET_MEM_CONSTRAINT. 18313 * recog.c (asm_operand_ok, preprocess_constraints, 18314 constrain_operands): Likewise. 18315 * regclass.c (record_reg_classes): Likewise. 18316 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise. 18317 * reload1.c (maybe_fix_stack_asms): Likewise. 18318 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise. 18319 * recog.h: Adjust comment. 18320 * genpreds.c (generic_constraint_letters): Remove 'm' constraint. 18321 * genoutput.c (note_constraint): Don't emit error for 'm' constraint. 18322 * doc/md.texi: Add a note to description of 'm' constraint. 18323 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro. 18324 183252008-05-27 Eric Botcazou <ebotcazou@adacore.com> 18326 18327 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure 18328 that the bitfield is of integral type before testing its precision. 18329 183302008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com> 18331 Sa Liu <saliu@de.ibm.com> 18332 18333 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 18334 __modti3, __udivti3, __umodti3 and __udivmodti4. 18335 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files 18336 that implement TImode mul and div functions. 18337 * config/spu/multi3.c: New. Implement __multi3. 18338 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others. 18339 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div 18340 functions on SPU. 18341 183422008-05-26 Steven Bosscher <stevenb.gcc@gmail.com> 18343 18344 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate 18345 new tls_gd_* and tls_ld_* insns instead of an insn sequence. 18346 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix, 18347 tls_sysv_suffix): New mode and mode attribute iterators. 18348 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove. 18349 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns. 18350 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*, 18351 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*, 18352 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned 18353 iterators. 18354 183552008-05-26 Eric Botcazou <ebotcazou@adacore.com> 18356 18357 PR tree-optimization/36329 18358 * tree.h (CALL_CANNOT_INLINE_P): Add access check. 18359 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro. 18360 * cgraphbuild.c (initialize_inline_failed): Use the latter 18361 macro in lieu of the former. 18362 * ipa-inline.c (cgraph_mark_inline): Likewise. 18363 (cgraph_decide_inlining_of_small_function): Likewise. 18364 (cgraph_decide_inlining): Likewise. 18365 (cgraph_decide_inlining_incrementally): Likewise. 18366 183672008-05-26 Tristan Gingold <gingold@adacore.com> 18368 Anatoly Sokolov <aesok@post.ru> 18369 18370 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs()) 18371 instead of pm_lo8/pm_hi8 to makes this call working on avr6. 18372 * config/avr/avr.c (expand_prologue): Tune "call_prologue" 18373 optimization for 'avr6' architecture. 18374 183752008-05-26 Andy Hutchinson <hutchinsonandy@aim.com> 18376 18377 PR target/34932 18378 * config/avr/avr.md (*addhi3_zero_extend2): Remove. 18379 183802008-05-26 Richard Guenther <rguenther@suse.de> 18381 18382 * tree-ssa-sccvn.c (expr_has_constants): Declare. 18383 (visit_reference_op_load): Initialize VN_INFO->has_constants properly. 18384 183852008-05-26 H.J. Lu <hongjiu.lu@intel.com> 18386 18387 PR middle-end/36253 18388 * caller-save.c (insert_restore): Verify alignment of spill space. 18389 (insert_save): Likewise. 18390 * cfgexpand.c (LOCAL_ALIGNMENT): Removed. 18391 * defaults.h (LOCAL_ALIGNMENT): New. Provide default. 18392 (STACK_SLOT_ALIGNMENT): Likewise. 18393 * function.c (LOCAL_ALIGNMENT): Removed. 18394 (get_stack_local_alignment): New. 18395 (assign_stack_local): Use it. Set alignment on stack slot. 18396 (assign_stack_temp_for_type): Use get_stack_local_alignment. 18397 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated. 18398 (STACK_SLOT_ALIGNMENT): New. 18399 * config/i386/i386.c (ix86_local_alignment): Handle caller-save 18400 stack slot in XFmode. 18401 18402 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New. 18403 184042008-05-26 Kai Tietz <kai.tietz@onevision.com> 18405 18406 PR/36321 18407 * config/i386/i386.md (allocate_stack_worker_64): Make sure 18408 argument operand in rax isn't removed. 18409 184102008-05-26 Richard Guenther <rguenther@suse.de> 18411 18412 PR middle-end/36300 18413 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS, 18414 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE. 18415 184162008-05-26 Daniel Franke <franke.daniel@gmail.com> 18417 18418 PR bootstrap/36331 18419 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__. 18420 184212008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr> 18422 18423 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h". 18424 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h". 18425 184262008-05-25 Eric Botcazou <ebotcazou@adacore.com> 18427 18428 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not 18429 build a trampoline if we don't want one. 18430 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not 18431 return zero for nested functions if we don't want a trampoline. 18432 184332008-05-26 Daniel Franke <franke.daniel@gmail.com> 18434 18435 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types. 18436 184372008-05-26 Daniel Franke <franke.daniel@gmail.com> 18438 18439 PR fortran/18428 18440 * c.opt: Removed undocumented option '-lang-fortran'. 18441 * c-common.h: Removed global variable 'lang_fortran'. 18442 * c-opts.c (c_common_handle_option): Removed code to handle 18443 option '-lang-fortran'. Updated includes. 18444 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional 18445 definition of '__GFORTRAN__'. 18446 (define__GNUC__): Reimplemented to use BASEVER and 18447 cpp_define_formatted. 18448 (builtin_define_with_value_n): Removed. 18449 * c-incpath.h: Renamed to ... 18450 * incpath.h: ... this. 18451 * c-incpath.c: Renamed to ... 18452 * incpath.c: ... this. Updated includes. 18453 * fix-header.c: Updated includes. 18454 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch]. 18455 (c-cppbuiltin.o): Added dependency on and definition of BASEVER. 18456 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o. 18457 184582008-05-25 Eric Botcazou <ebotcazou@adacore.com> 18459 18460 * tree.h: Update the table of flags used on tree nodes. 18461 (TREE_NO_TRAMPOLINE): New accessor for static_flag. 18462 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check. 18463 (FORCED_LABEL): Add access check. 18464 (CALL_EXPR_RETURN_SLOT_OPT): Likewise. 18465 (ASM_INPUT_P): Likewise. 18466 (ASM_VOLATILE_P): Likewise. 18467 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly. 18468 (OMP_SECTION_LAST): Access private_flag directly. 18469 (OMP_RETURN_NOWAIT): Likewise. 18470 (OMP_PARALLEL_COMBINED): Likewise. 18471 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly. 18472 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise. 18473 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access 18474 deprecated_flag directly. 18475 184762008-05-25 H.J. Lu <hongjiu.lu@intel.com> 18477 18478 * final.c (frame_pointer_needed): Removed. 18479 * flags.h (frame_pointer_needed): Likewise. 18480 18481 * function.h (rtl_data): Add frame_pointer_needed. 18482 (frame_pointer_needed): New. 18483 184842008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr> 18485 18486 * config.gcc (sh2[lbe]*-*-linux*): Allow target. 18487 184882008-05-25 Steven Bosscher <stevenb.gcc@gmail.com> 18489 18490 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if 18491 SRC is a REG. 18492 184932008-05-25 Alan Modra <amodra@bigpond.net.au> 18494 18495 * c-common.c (strip_array_types): Move function to.. 18496 * tree.c: ..here. 18497 (get_inner_array_type): Delete. 18498 * c-common.h (strip_array_types): Move declaration to.. 18499 * tree.h: ..here. 18500 (get_inner_array_type): Delete. 18501 * config/i386/i386.c (x86_field_alignment): Use strip_array_types. 18502 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise. 18503 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise. 18504 * config/pa/pa.c (emit_move_sequence): Likewise. 18505 185062008-05-24 H.J. Lu <hongjiu.lu@intel.com> 18507 18508 * config/i386/i386.md (*sse_prologue_save_insn): Set length 18509 attribute to 34. 18510 185112008-05-24 Andy Hutchinson <hutchinsonandy@aim.com> 18512 18513 * function.c: Include target hook for nonlocal_goto frame value. 18514 185152008-05-24 Richard Guenther <rguenther@suse.de> 18516 18517 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar 18518 variable can be only accessed through a pointer or a union. 18519 185202008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 18521 18522 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE. 18523 * doc/extend.texi: Likewise. 18524 185252008-05-23 DJ Delorie <dj@redhat.com> 18526 18527 * config/m32c/jump.md (untyped_call): Add. 18528 18529 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type 18530 for A24 to PSImode. 18531 (m32c_address_cost): Detail costs for indirect offsets. 18532 185332008-05-23 Rafael Esp��ndola <espindola@google.com> 18534 18535 * see.c (see_get_extension_data): Don't use SUBREG_REG to test 18536 if a node is a SUBREG. 18537 (see_analyze_one_def): Don't use SUBREG_REG to test if a node 18538 is a SUBREG. 18539 185402008-05-23 Paul Brook <paul@codesourcery.com> 18541 Carlos O'Donell <carlos@codesourcery.com> 18542 18543 * doc/extend.texi: Clarify use of __attribute__((naked)). 18544 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS. 18545 * target.h (gcc_target): Add allocate_stack_slots_for_args. 18546 * function.c (use_register_for_decl): Use 18547 targetm.calls.allocate_stack_slots_for_args. 18548 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS. 18549 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function. 18550 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define. 18551 185522008-05-23 Eric Botcazou <ebotcazou@adacore.com> 18553 18554 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case. 18555 185562008-05-23 Steven Munroe <sjmunroe@us.ibm.com> 18557 18558 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full 18559 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result 18560 is only rounded once. 18561 185622008-05-23 Richard Guenther <rguenther@suse.de> 18563 18564 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor. 18565 185662008-05-23 Uros Bizjak <ubizjak@gmail.com> 18567 Jakub Jelinek <jakub@redhat.com> 18568 18569 PR target/36079 18570 * configure.ac: Handle --enable-cld. 18571 * configure: Regenerated. 18572 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets. 18573 * config/i386/i386.h (struct machine_function): Add needs_cld field. 18574 (ix86_current_function_needs_cld): New define. 18575 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant. 18576 (cld): New isns pattern. 18577 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1, 18578 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag. 18579 * config/i386/i386.opt (mcld): New option. 18580 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if 18581 TARGET_CLD and ix86_current_function_needs_cld. 18582 (override_options): Use -mcld by default for 32-bit code if 18583 USE_IX86_CLD. 18584 18585 * doc/install.texi (Options specification): Document --enable-cld. 18586 * doc/invoke.texi (Machine Dependent Options) 18587 [i386 and x86-64 Options]: Add -mcld option. 18588 (Intel 386 and AMD x86-64 Options): Document -mcld option. 18589 185902008-05-23 Kai Tietz <kai.tietz@onevison.com> 18591 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED. 18592 (return_in_memory_64): Likewise. 18593 (return_in_memory_ms_64): Likewise. 18594 185952008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 18596 18597 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New. 18598 * builtins.c (fold_builtin_fpclassify): New. 18599 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY. 18600 * builtins.def (BUILT_IN_FPCLASSIFY): New. 18601 * c-common.c (handle_type_generic_attribute): Adjust to accept 18602 fixed arguments before an elipsis. 18603 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY. 18604 * doc/extend.texi: Document __builtin_fpclassify. 18605 186062008-05-22 Aldy Hernandez <aldyh@redhat.com> 18607 18608 * omp-low.c (gate_expand_omp_ssa): Remove. 18609 (pass_expand_omp_ssa): Remove. 18610 (gate_expand_omp): Do not check for flag_openmp_ssa. 18611 * common.opt (-fopenmp-ssa): Remove. 18612 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa. 18613 186142008-05-22 Kaz Kojima <kkojima@gcc.gnu.org> 18615 18616 * config/sh/sh.opt (mfixed-range): New option. 18617 * config/sh/sh-protos.h (sh_fix_range): Declare. 18618 * config/sh/sh.c (sh_fix_range): New function. 18619 * config/sh/sh.h (sh_fixed_range_str): Declare. 18620 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str 18621 is not empty. 18622 * doc/invoke.texi (SH Options): Document -mfixed-range. 18623 186242008-05-22 Kai Tietz <kai.tietz@onevision.com> 18625 18626 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine 18627 it before the redeclaration. 18628 186292008-05-22 Anatoly Sokolov <aesok@post.ru> 18630 18631 * config/avr/avr.c (get_sequence_length): Add new function. 18632 (expand_prologue, expand_epilogue): Remove duplicate code. 18633 186342008-05-22 Rafael Esp��ndola <espindola@google.com> 18635 18636 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx 18637 sharing. 18638 186392008-05-22 H.J. Lu <hongjiu.lu@intel.com> 18640 18641 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument. 18642 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise. 18643 18644 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace 18645 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)). 18646 (vect_update_misalignment_for_peel): Likewise. 18647 (vector_alignment_reachable_p): Likewise. 18648 * tree-vect-transform.c (vectorizable_load): Likewise. 18649 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise. 18650 (get_vectype_for_scalar_type): Pass mode of scalar_type 18651 to UNITS_PER_SIMD_WORD. 18652 18653 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated. 18654 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise. 18655 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise. 18656 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise. 18657 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise. 18658 186592008-05-22 Ira Rosen <irar@il.ibm.com> 18660 18661 PR tree-optimization/36293 18662 * tree-vect-transform.c (vect_transform_strided_load): Don't check 18663 if the first load must be skipped because of a gap. 18664 186652008-05-22 Richard Guenther <rguenther@suse.de> 18666 18667 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle 18668 more cases of offset disambiguation that is possible if 18669 strict-aliasing rules apply. 18670 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p 18671 for basic offset and type-based disambiguation. 18672 186732008-05-21 H.J. Lu <hongjiu.lu@intel.com> 18674 18675 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use 18676 ix86_expand_vector_set on V16QImode for SSE4.1. 18677 186782008-05-21 Tom Tromey <tromey@redhat.com> 18679 18680 * c.opt (Wimport): Mark as undocumented. 18681 * doc/invoke.texi (Option Summary): Don't mention -Wimport or 18682 -Wno-import. 18683 (Warning Options): Likewise. 18684 * doc/cppopts.texi: Don't mention -Wimport. 18685 186862008-05-21 Sebastian Pop <sebastian.pop@amd.com> 18687 18688 PR tree-optimization/36287 18689 PR tree-optimization/36286 18690 * lambda-code.c (build_access_matrix): Do not use the loop->num 18691 for computing the number of induction variables: use the loop depth 18692 instead. 18693 186942008-05-21 Kai Tietz <kai.tietz@onevision.com> 18695 18696 PR/36280 18697 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor 18698 option -f(no-)leading-underscore. 18699 187002008-05-21 H.J. Lu <hongjiu.lu@intel.com> 18701 18702 * config/i386/i386.c (ix86_expand_vector_init_general): Use 18703 GET_MODE_NUNITS (mode). 18704 187052008-05-21 Peter Bergner <bergner@vnet.ibm.com> 18706 18707 * doc/invoke.texi: Add cpu_type's 464 and 464fp. 18708 (-mmulhw): Add 464 to description. 18709 (-mdlmzb): Likewise. 18710 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp. 18711 * config/rs6000/rs6000.c (processor_target_table): Add 464 and 18712 464fp entries. 18713 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support. 18714 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464. 18715 * config/rs6000/rs6000.md: Update comments for 464. 18716 187172008-05-21 Janis Johnson <janis187@us.ibm.com> 18718 18719 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if. 18720 187212008-05-21 H.J. Lu <hongjiu.lu@intel.com> 18722 18723 * config/i386/sse.md (vec_extractv4sf): Removed. 18724 (vec_extractv2df): Likewise. 18725 (vec_extractv2di): Likewise. 18726 (vec_extractv4si): Likewise. 18727 (vec_extractv8hi): Likewise. 18728 (vec_extractv16qi): Likewise. 18729 (vec_extract<mode>): New. 18730 187312008-05-21 H.J. Lu <hongjiu.lu@intel.com> 18732 18733 * config/i386/sse.md (vec_setv4sf): Removed. 18734 (vec_setv2df): Likewise. 18735 (vec_setv2di): Likewise. 18736 (vec_setv4si): Likewise. 18737 (vec_setv8hi): Likewise. 18738 (vec_setv16qi): Likewise. 18739 (vec_set<mode>): New. 18740 187412008-05-21 H.J. Lu <hongjiu.lu@intel.com> 18742 18743 * config/i386/i386.c (ix86_expand_vector_init_general): Remove 18744 goto for vec_concat and vec_interleave. 18745 187462008-05-21 H.J. Lu <hongjiu.lu@intel.com> 18747 18748 * config/i386/sse.md (vec_initv4sf): Removed. 18749 (vec_initv2df): Likewise. 18750 (vec_initv2di): Likewise. 18751 (vec_initv4si): Likewise. 18752 (vec_initv8hi): Likewise. 18753 (vec_initv16qi): Likewise. 18754 (vec_init<mode>): New. 18755 187562008-05-21 Joseph Myers <joseph@codesourcery.com> 18757 18758 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH. 18759 187602008-05-21 Tom Tromey <tromey@redhat.com> 18761 18762 * ggc-zone.c (lookup_page_table_if_allocated): New function. 18763 (zone_find_object_offset): Likewise. 18764 (gt_ggc_m_S): Likewise. 18765 (highest_bit): Likewise. 18766 * ggc-page.c (gt_ggc_m_S): New function. 18767 * stringpool.c (string_stack): Remove. 18768 (init_stringpool): Update. 18769 (ggc_alloc_string): Use ggc_alloc. 18770 (maybe_delete_ident): New function. 18771 (ggc_purge_stringpool): Likewise. 18772 (gt_ggc_m_S): Remove. 18773 * ggc-common.c (ggc_protect_identifiers): New global. 18774 (ggc_mark_roots): Call ggc_purge_stringpool. Use 18775 ggc_protect_identifiers. 18776 * ggc.h (ggc_protect_identifiers): Declare. 18777 (gt_ggc_m_S): Update. 18778 (ggc_purge_stringpool): Declare. 18779 * toplev.c (compile_file): Set and reset ggc_protect_identifiers. 18780 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove 18781 special case. 18782 (write_root): Cast gt_ggc_m_S to gt_pointer_walker. 18783 187842008-05-21 David S. Miller <davem@davemloft.net> 18785 18786 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in 18787 tmake_file. 18788 187892008-05-21 Eric Botcazou <ebotcazou@adacore.com> 18790 18791 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table 18792 once finished. 18793 187942008-05-20 David Daney <ddaney@avtrex.com> 18795 18796 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12, 18797 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants. 18798 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION, 18799 UNSPEC_UPDATE_GOT_VERSION): Renumber. 18800 (optab, insn): Add 'plus' and 'minus' to define_code_attr. 18801 (atomic_hiqi_op): New define_code_iterator. 18802 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of 18803 mips_expand_compare_and_swap_12. 18804 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of 18805 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12. 18806 (sync_<optab><mode>, sync_old_<optab><mode>, 18807 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>, 18808 sync_new_nand<mode>): New define_expands for HI and QI mode operands. 18809 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12, 18810 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns. 18811 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes. 18812 (test_and_set_12): New insn. 18813 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>, 18814 sync_new_<optab><mode>, sync_old_nand<mode>, 18815 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early 18816 clobber to operand 0 for SI and DI mode insns. 18817 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5, 18818 mips_gen_fn_4): New typedefs. 18819 (mips_gen_fn_ptrs): Define new union type. 18820 (mips_expand_compare_and_swap_12): Remove declaration. 18821 (mips_expand_atomic_qihi): Declare function. 18822 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to... 18823 (mips_expand_atomic_qihi): ... this. Use new generator function 18824 parameter. 18825 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter. 18826 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro. 18827 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP, 18828 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP, 18829 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12, 18830 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG, 18831 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG, 18832 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP, 18833 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12, 18834 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP): 18835 New macros. 18836 188372008-05-20 H.J. Lu <hongjiu.lu@intel.com> 18838 18839 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add 18840 the missing break. 18841 188422008-05-20 Anatoly Sokolov <aesok@post.ru> 18843 18844 * config/avr/avr.h (machine_function): Add 'is_OS_main' field. 18845 * config/avr/avr.c (avr_OS_main_function_p): Add new function. 18846 (avr_attribute_table): Add 'OS_main' function attribute. 18847 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle 18848 functions with 'OS_main' attribute. 18849 188502008-05-20 Richard Guenther <rguenther@suse.de> 18851 18852 PR tree-optimization/35204 18853 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New 18854 helper, split out from ... 18855 (DFS): ... here. Make the DFS walk non-recursive. 18856 188572008-05-20 Sebastian Pop <sebastian.pop@amd.com> 18858 Jan Sjodin <jan.sjodin@amd.com> 18859 18860 PR tree-optimization/36181 18861 * tree-parloops.c (loop_has_vector_phi_nodes): New. 18862 (parallelize_loops): Don't parallelize when the loop has vector 18863 phi nodes. 18864 188652008-05-20 Jan Sjodin <jan.sjodin@amd.com> 18866 Sebastian Pop <sebastian.pop@amd.com> 18867 18868 * tree-loop-linear.c (gather_interchange_stats): Look in the access 18869 matrix, and never look at the tree representation of the memory 18870 accesses. 18871 (linear_transform_loops): Computes parameters and access matrices. 18872 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false 18873 when fails. 18874 (access_matrix_get_index_for_parameter): New. 18875 * tree-data-ref.h (struct access_matrix): New. 18876 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX, 18877 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS, 18878 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT, 18879 am_vector_index_for_loop): New. 18880 (struct data_reference): Add field access_matrix. 18881 (DR_ACCESS_MATRIX): New. 18882 (compute_data_dependences_for_loop): Update declaration. 18883 (lambda_collect_parameters, lambda_compute_access_matrices): Declared. 18884 * lambda.h (lambda_vector_vec_p): Declared. 18885 * lambda-code.c: Depend on pointer-set.h. 18886 (lambda_collect_parameters_from_af, lambda_collect_parameters, 18887 av_for_af_base, av_for_af, build_access_matrix, 18888 lambda_compute_access_matrices): New. 18889 * Makefile.in (lambda-code.o): Depend on pointer-set.h. 18890 188912008-05-20 Joseph Myers <joseph@codesourcery.com> 18892 18893 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not 18894 $SOURCEDIR/include. 18895 188962008-05-20 Jan Sjodin <jan.sjodin@amd.com> 18897 Sebastian Pop <sebastian.pop@amd.com> 18898 18899 PR tree-optimization/36206 18900 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS, 18901 FOLD_CONVERSIONS. 18902 (instantiate_scev_1): Rename flags to fold_conversions. 18903 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined 18904 outeside instantiation_loop. 18905 * tree-chrec.h (evolution_function_is_affine_in_loop): New. 18906 (evolution_function_is_affine_or_constant_p): Removed. 18907 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with 18908 instantiate_scev. 18909 (analyze_siv_subscript): Pass in the loop nest number. 18910 Call evolution_function_is_affine_in_loop instead of 18911 evolution_function_is_affine_p. 18912 (analyze_overlapping_iterations): Pass in the loop nest number. 18913 189142008-05-20 Jan Sjodin <jan.sjodin@amd.com> 18915 Sebastian Pop <sebastian.pop@amd.com> 18916 18917 PR tree-optimization/36206 18918 * tree-chrec.h (chrec_fold_op): New. 18919 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR, 18920 and other trees. 18921 189222008-05-20 Nathan Sidwell <nathan@codesourcery.com> 18923 18924 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems. 18925 (DIRS_EQ): New. 18926 (remove_duplicates): Do not set inode on non-inode systems. 18927 Use DIRS_EQ. 18928 189292008-05-20 Sandra Loosemore <sandra@codesourcery.com> 18930 18931 * config.gcc (tm_file): Update comments about relative pathnames. 18932 189332008-05-20 Richard Guenther <rguenther@suse.de> 18934 18935 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure. 18936 * tree-ssa-sccvn.c (process_scc): Likewise. 18937 * tree-ssa-sink.c (execute_sink_code): Likewise. 18938 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise. 18939 * tree-vrp.c (process_assert_insertions): Likewise. 18940 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise. 18941 (perform_tree_ssa_dce): Likewise. 18942 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. 18943 (dump_dominator_optimization_stats): Likewise. 18944 * tree-vectorizer.c (vectorize_loops): Likewise. 18945 189462008-05-20 Richard Guenther <rguenther@suse.de> 18947 18948 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle. 18949 189502008-05-20 Kai Tietz <kai.tietz@onevision.com> 18951 18952 * config/i386/i386-protos.h (ix86_return_in_memory): Removed. 18953 (ix86_i386elf_return_in_memory): Likewise. 18954 (ix86_i386interix_return_in_memory): Likewise. 18955 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed. 18956 (SUBTARGET_RETURN_IN_MEMORY): New. 18957 * config/i386/i386elf.h: Likewise. 18958 * config/i386/ptx4-i.h: Likewise. 18959 * config/i386/sol2-10.h: Likewise. 18960 * config/i386/sysv4.h: Likewise. 18961 * config/i386/vx-common.h: Likewise. 18962 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed. 18963 * config/i386/i386.c (ix86_return_in_memory): Made static and 18964 make use of optional SUBTARGET_RETURN_IN_MEMORY macro. 18965 (ix86_i386elf_return_in_memory): Removed. 18966 (ix86_i386interix_return_in_memory): Removed. 18967 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only. 18968 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef. 18969 189702008-05-20 Alexandre Oliva <aoliva@redhat.com> 18971 18972 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE. 18973 189742008-05-19 Xinliang David Li <davidxl@google.com> 18975 18976 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 18977 * opts.c: Ditto. 18978 * common.opt: Ditto. 18979 * doc/invoke.texi: Ditto. 18980 189812008-05-19 Eric Botcazou <ebotcazou@adacore.com> 18982 18983 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko. 18984 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak. 18985 189862008-05-19 H.J. Lu <hongjiu.lu@intel.com> 18987 18988 * config/i386/i386.c (ix86_expand_vector_init_concat): Change 18989 sizes of operand array from 8/4 to 4/2. 18990 (ix86_expand_vector_init_general): Change size of operand array 18991 from 32 to 16. Remove op0, op1 and half_mode. 18992 189932008-05-19 H.J. Lu <hongjiu.lu@intel.com> 18994 18995 * config/i386/i386.c (ix86_expand_vector_init_concat): New. 18996 (ix86_expand_vector_init_interleave): Likewise. 18997 (ix86_expand_vector_init_general): Use them. Assert 18998 word_mode == SImode when n_words == 4. 18999 190002008-05-19 Uros Bizjak <ubizjak@gmail.com> 19001 19002 * config/i386/i386.c (ix86_secondary_reload): New static function. 19003 (TARGET_SECONDARY_RELOAD): New define. 19004 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove. 19005 * config/i386/i386.md (reload_outqi): Remove. 19006 190072008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 19008 19009 PR middle-end/35509 19010 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in. 19011 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT. 19012 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1. 19013 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN. 19014 (fold_builtin_1): Likewise. 19015 * builtins.def (BUILT_IN_ISINF_SIGN): New. 19016 c-common.c (check_builtin_function_arguments): Handle 19017 BUILT_IN_ISINF_SIGN. 19018 * doc/extend.texi: Document __builtin_isinf_sign. 19019 * fold-const.c (operand_equal_p): Handle COND_EXPR. 19020 190212008-05-18 Eric Botcazou <ebotcazou@adacore.com> 19022 19023 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need 19024 EH cleanup at the end of the pass, search for those that have been 19025 turned into forwarder blocks and do the cleanup on their successor. 19026 190272008-05-18 Richard Guenther <rguenther@suse.de> 19028 19029 * tree-cfg.c (verify_gimple_expr): Allow conversions from 19030 pointers to sizetype and vice versa. 19031 190322008-05-18 Xinliang David Li <davidxl@google.com> 19033 19034 * gcc/tree-ssa-dce.c: Coding style fix. 19035 (check_pow): Documentation comment. 19036 (check_log): Documenation comment. Coding style fix. 19037 (is_unnecessary_except_errno_call): Ditto. 19038 (gen_conditions_for_pow): Ditto. 19039 (gen_conditions_for_log): Ditto. 19040 (gen_shrink_wrap_conditions): Ditto. 19041 (shrink_wrap_one_built_in_calls): Ditto. 19042 * gcc/doc/invoke.texi: Better documentation string. 19043 * ChangeLog: Fix wrong change log entries from 19044 May 17 checkin on function call DCE. 19045 190462008-05-17 Kaz Kojima <kkojima@gcc.gnu.org> 19047 19048 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow. 19049 190502008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com> 19051 19052 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos. 19053 * df-problems.c (simulation routines): Fixed block comment to 19054 properly say how to add forwards scanning functions. 19055 190562008-05-17 Eric Botcazou <ebotcazou@adacore.com> 19057 19058 * tree-inline.c (setup_one_parameter): Remove dead code. 19059 190602008-05-17 Eric Botcazou <ebotcazou@adacore.com> 19061 19062 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into 19063 a BIT_AND_EXPR only for an INTEGER_TYPE. 19064 190652008-05-17 Xinliang David Li <davidxl@google.com> 19066 19067 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable. 19068 (check_pow, check_log, is_unnecessary_except_errno_call): New 19069 functions to check for eliminating math functions that are pure 19070 except for setting errno. 19071 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to 19072 general condition expressions for shrink-wrapping pow/log calls. 19073 (gen_shrink_wrap_conditions): Ditto. 19074 (shrink_wrap_one_built_in_call): Ditto. 19075 (shrink_wrap_conditional_dead_built_in_calls): Ditto. 19076 (mark_operand_necessary): If debugging, output if OP is necessary. 19077 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are 19078 unnecessary. 19079 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when 19080 opt level >= 2. 19081 * gcc/common.opt: New user flag -ftree-builtin-dce. 19082 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option. 19083 190842008-05-16 David S. Miller <davem@davemloft.net> 19085 19086 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding. 19087 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise. 19088 190892008-05-16 Uros Bizjak <ubizjak@gmail.com> 19090 19091 PR target/36246 19092 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define. 19093 190942008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com> 19095 19096 * ifcvt.c (dead_or_predicable): Rename 19097 df_simulate_one_insn_backwards to df_simulate_one_insn. 19098 * recog.c (peephole2_optimize): Ditto. 19099 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq): 19100 Ditto. 19101 * df.h: Rename df_simulate_one_insn_backwards to 19102 df_simulate_one_insn. and delete df_simulate_one_insn_forwards. 19103 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed 19104 scanning of defs and uses. 19105 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn. 19106 (df_simulate_one_insn_forwards): Removed. 19107 191082008-05-16 Doug Kwan <dougkwan@google.com> 19109 19110 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish 19111 QNaN & SNaN. 19112 (real_from_string): Handle NaNs and Inf as approriate. 19113 191142008-05-16 Nathan Froyd <froydnj@codesourcery.com> 19115 19116 * doc/gty.texi (Source Files Containing Type Information): Note 19117 that headers should appear first in the gtfiles list. 19118 191192008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com> 19120 19121 * tree.def (COND_EXEC): Properly documented this code. 19122 191232008-05-16 Diego Novillo <dnovillo@google.com> 19124 19125 * dwarf2asm.c (dw2_assemble_integer): Clarify comment. 19126 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for 19127 the new field. 19128 191292008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com> 19130 19131 * tree-ssa-dse (max_stmt_uid): Removed. 19132 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 19133 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid. 19134 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto. 19135 * function.h (cfun.last_stmt_uid): New field. 19136 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid, 19137 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid): 19138 New functions. 19139 * tree-dfa.c (renumber_gimple_stmt_uids): New function. 19140 (create_stmt_ann): Initialize the ann->uid field. 19141 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid 19142 with new calls. 19143 * tree-flow.h (renumber_gimple_stmt_uids): New function. 19144 191452008-05-16 Nathan Froyd <froydnj@codesourcery.com> 19146 19147 * tree-flow.h (init_empty_tree_cfg_for_function): Declare. 19148 * tree-cfg.c (init_empty_tree_cfg_for_function): Define. 19149 (init_empty_tree_cfg): Call it. 19150 191512008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com> 19152 19153 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun. 19154 Update all users. 19155 191562008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com> 19157 19158 * doc/invoke.text (-fdump-tree-*-verbose): New option. 19159 * tree-dump.c (dump_options): New verbose option. 19160 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff): 19161 Add verbose dump. 19162 * tree-pass.h (TDF_VERBOSE): New dump flag. 19163 * print-tree.c (print_node): Added code to be able to print PHI_NODES. 19164 (tree-flow.h): Added include. 19165 * Makefile.in (print-tree.o): Added TREE_FLOW_H. 19166 191672008-05-16 Bernd Schmidt <bernd.schmidt@analog.com> 19168 19169 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops. 19170 19171 From Jie Zhang <jie.zhang@analog.com> 19172 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 19173 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3, 19174 mcpu=bf561-none and mcpu=bf561-0.2. 19175 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 19176 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise. 19177 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 19178 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise. 19179 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN. 19180 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561. 19181 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu 19182 option. 19183 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN. 19184 (cputype_selected): Remove. 19185 (bfin_handle_option): Don't use cputype_selected. 19186 (override_options): When no mcpu option, enable all workarounds. 19187 Don't use bfin_workarounds. 19188 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default 19189 processor type. 19190 (DEFAULT_CPU_TYPE): Don't define. 19191 191922008-05-16 Richard Guenther <rguenther@suse.de> 19193 19194 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking 19195 on deletion of the last stmt. 19196 191972008-05-15 H.J. Lu <hongjiu.lu@intel.com> 19198 19199 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize 19200 V8HImode for SSE2 and V16QImode for SSE4.1. 19201 192022008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com> 19203 19204 * cgraph.h (compute_inline_parameters): Made public. 19205 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary, 19206 variable_generate_summary, function_write_summary, 19207 variable_write_summary, variable_read_summary. Added generate_summary, 19208 write_summary, read_summary. 19209 * cgraphunit.c (cgraph_process_new_functions): Changed call from 19210 pass_ipa_inline.function_generate_summary, to 19211 compute_inline_parameters. 19212 * ipa-inline.c (compute_inline_parameters): Made public and added 19213 node parameter. 19214 (compute_inline_parameters_for_current): New function. 19215 (pass_inline_param): Now calls compute_inline_parameters_for_current. 19216 (inline_generate_summary): Removed parameter and made to loop over 19217 all cgraph nodes. 19218 (pass_ipa_inline): Updated for new IPA_PASS structure. 19219 * passes.c (execute_ipa_summary_passes): Now is called once per 19220 pass rather than once per node*pass. 19221 192222008-05-15 Anatoly Sokolov <aesok@post.ru> 19223 19224 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 19225 avr_have_mul_p, avr_asm_only_p): Remove variables. 19226 (avr_override_options): Remove initialization of removed variables. 19227 (avr_file_start): Convert removed variables to fields of 19228 'struct base_arch_s *avr_current_arch'. 19229 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.). 19230 (AVR_HAVE_MUL): (Ditto.). 19231 (AVR_HAVE_MOVW): (Ditto.). 19232 (AVR_HAVE_LPMX): (Ditto.). 19233 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 19234 avr_asm_only_p): Remove declaration. 19235 192362008-05-15 Diego Novillo <dnovillo@google.com> 19237 19238 * config/arm/arm.c (arm_return_in_memory): Fix return type. 19239 * config/arm/arm-protos.h (arm_return_in_memory): Likewise. 19240 192412008-05-15 Adam Nemet <anemet@caviumnetworks.com> 19242 19243 PR middle-end/36194 19244 * combine.c (check_conversion): Rename back to check_promoted_subreg. 19245 Don't call record_truncated_value from here. 19246 (record_truncated_value): Turn it into a for_each_rtx callback. 19247 (record_truncated_values): New function. 19248 (combine_instructions): Call note_uses with record_truncated_values. 19249 Change name of check_conversion to check_promoted_subreg. 19250 192512008-05-15 Janis Johnson <janis187@us.ibm.com> 19252 19253 * doc/sourcebuild.texi: Document support for torture tests. 19254 192552008-05-15 Uros Bizjak <ubizjak@gmail.com> 19256 19257 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint 19258 to alternative 4 of operand 2. 19259 192602008-05-15 Richard Guenther <rguenther@suse.de> 19261 19262 * tree-pass.h (current_pass): Declare. 19263 (get_pass_for_id): Likewise. 19264 * passes.c (passes_by_id, passes_by_id_size): New globals. 19265 (set_pass_for_id): New function. 19266 (get_pass_for_id): Likewise. 19267 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id. 19268 (execute_function_todo): Flush per function statistics. 19269 * toplev.c (compile_file): Init statistics. 19270 (general_init): Do early statistics initialization. 19271 (finalize): Finish statistics. 19272 * statistics.h (statistics_early_init): Declare. 19273 (statistics_init): Likewise. 19274 (statistics_fini): Likewise. 19275 (statistics_fini_pass): Likewise. 19276 (statistics_counter_event): Likewise. 19277 (statistics_histogram_event): Likewise. 19278 * statistics.c: New file. 19279 * Makefile.in (OBJS-common): Add statistics.o. 19280 (statistics.o): Add dependencies. 19281 * doc/invoke.texi (-fdump-statistics): Document. 19282 19283 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event. 19284 (insert): Likewise. 19285 (execute_pre): Use statistics_counter_event. 19286 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field. 19287 (substitute_and_fold): Increment it. Use statistics_counter_event. 19288 192892008-05-15 Diego Novillo <dnovillo@google.com> 19290 19291 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html 19292 19293 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove. 19294 * tree-ssa-alias.c (new_type_alias): Remove references to 19295 sub-variables from comment. 19296 * tree-ssa-operands.c (swap_tree_operands): Likewise. 19297 192982008-05-15 H.J. Lu <hongjiu.lu@intel.com> 19299 19300 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra 19301 attribute to 1 only for insertps alternative. 19302 193032008-05-15 Bernd Schmidt <bernd.schmidt@analog.com> 19304 19305 * config/bfin/bfin.md (loadbytes): New pattern. 19306 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES. 19307 (bfin_init_builtins): Initialize it. 19308 (bdesc_1arg): Add it. 19309 193102008-05-15 Sa Liu <saliu@de.ibm.com> 19311 19312 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New. 19313 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New. 19314 * testsuite/lib/target-supports.exp: Add 19315 check_effective_target_fortran_integer_16. 19316 193172008-05-15 Bernd Schmidt <bernd.schmidt@analog.com> 19318 19319 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here. 19320 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare. 19321 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool. 19322 (TARGET_RETURN_IN_MEMORY): Define. 19323 193242008-05-15 Richard Guenther <rguenther@suse.de> 19325 19326 PR middle-end/36244 19327 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY. 19328 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never 19329 represent unmodifiable vars. 19330 193312008-05-15 Richard Guenther <rguenther@suse.de> 19332 19333 * tree-dfa.c (refs_may_alias_p): Allow all kinds of 19334 INDIRECT_REF and TARGET_MEM_REF. 19335 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle 19336 TARGET_MEM_REF. 19337 193382008-05-15 Uros Bizjak <ubizjak@gmail.com> 19339 H.J. Lu <hongjiu.lu@intel.com> 19340 19341 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern. 19342 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate 19343 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from 19344 insn alternatives. Add missing alternatives. 19345 (*vec_concatv2di_rex64_sse4_1): Likewise. 19346 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2". 19347 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64. 19348 Require TARGET_SSE. 19349 193502008-05-15 Richard Guenther <rguenther@suse.de> 19351 19352 PR tree-optimization/36009 19353 PR tree-optimization/36204 19354 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include. 19355 (determine_invariantness_stmt): Record the loop a store is 19356 always executed in. 19357 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h 19358 dependency. 19359 193602008-05-15 Richard Guenther <rguenther@suse.de> 19361 19362 PR tree-optimization/34330 19363 * tree-ssa-alias.c (get_smt_for): Only assert that accesses 19364 through the pointer will alias the SMT. 19365 193662008-05-14 Andreas Tobler <a.tobler@schweiz.org> 19367 19368 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0. 19369 193702008-05-14 H.J. Lu <hongjiu.lu@intel.com> 19371 19372 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only. 19373 193742008-05-14 Michael Meissner <michael.meissner@amd.com> 19375 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 19376 19377 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr, 19378 OTI_vrotl, OTI_vrotr to support vector/vector shifts. 19379 (vashl_optab): New optab for vector/vector shifts. 19380 (vashr_optab): Ditto. 19381 (vlshr_optab): Ditto. 19382 (vrotl_optab): Ditto. 19383 (vrotr_optab): Ditto. 19384 (optab_subtype): New enum for optab_for_tree_code call. 19385 (optab_for_tree_code): Add enum optab_subtype argument. 19386 19387 * optabs.c (optab_for_tree_code): Take an additional argument to 19388 distinguish between a vector shift by a scalar and vector shift by 19389 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector 19390 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the 19391 vector shift by a vector. 19392 (expand_widen_pattern_expr): Pass additional argument to 19393 optab_for_tree_code. 19394 19395 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab, 19396 vrotl_optab, vrotr_optab. 19397 19398 * expr.c (expand_expr_real_1): Update calls to 19399 optab_for_tree_code to distinguish between vector shifted by a 19400 scalar and vector shifted by a vector. 19401 * tree-vectorizer.c (supportable_widening_operation): Ditto. 19402 (supportable_narrowing_operation): Ditto. 19403 * tree-vect-analyze.c (vect_build_slp_tree): Ditto. 19404 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto. 19405 * tree-vect-transform.c (vect_model_reduction_cost): Ditto. 19406 (vect_create_epilog_for_reduction): Ditto. 19407 (vectorizable_reduction): Ditto. 19408 (vectorizable_operation): Ditto. 19409 (vect_strided_store_supported): Ditto. 19410 (vect_strided_load_supported): Ditto. 19411 * tree-vect-generic.c (expand_vector_operations_1): Ditto. 19412 * expmed.c (expand_shift): Ditto. 19413 19414 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a 19415 scalar type. 19416 (ashr@var{m}3): Ditto. 19417 (vashl@var{m}3): Document new vector/vector shift standard name. 19418 (vashr@var{m}3): Ditto. 19419 (vlshr@var{m}3): Ditto. 19420 (vrotl@var{m}3): Ditto. 19421 (vrotr@var{m}3): Ditto. 19422 19423 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c. 19424 (PPERM_INVERT): Ditto. 19425 (PPERM_REVERSE): Ditto. 19426 (PPERM_REV_INV): Ditto. 19427 (PPERM_ZERO): Ditto. 19428 (PPERM_ONES): Ditto. 19429 (PPERM_SIGN): Ditto. 19430 (PPERM_INV_SIGN): Ditto. 19431 (PPERM_SRC1): Ditto. 19432 (PPERM_SRC2): Ditto. 19433 19434 * config/i386/sse.md (mulv2di3): Add SSE5 support. 19435 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily 19436 allows a memory operand to be the value being added, and split it 19437 to improve vectorization. 19438 (sse5_pmacsdqh_mem): Ditto. 19439 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function. 19440 (sse5_mulv2div2di3_high): Ditto. 19441 (vec_pack_trunc_v8hi): Add SSE5 pperm support. 19442 (vec_pack_trunc_v4si): Ditto. 19443 (vec_pack_trunc_v2di): Ditto. 19444 (sse5_pcmov_<mode>): Remove code that tried to use use 19445 andps/andnps instead of pcmov. 19446 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and 19447 pmacsdqh instructions. 19448 (vec_widen_smult_lo_v4si): Ditto. 19449 19450 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md. 19451 (PPERM_INVERT): Ditto. 19452 (PPERM_REVERSE): Ditto. 19453 (PPERM_REV_INV): Ditto. 19454 (PPERM_ZERO): Ditto. 19455 (PPERM_ONES): Ditto. 19456 (PPERM_SIGN): Ditto. 19457 (PPERM_INV_SIGN): Ditto. 19458 (PPERM_SRC1): Ditto. 19459 (PPERM_SRC2): Ditto. 19460 (ix86_expand_sse_movcc): Move the SSE5 test after the if 19461 true/false tests. 19462 (ix86_expand_int_vcond): If SSE5 generate all possible integer 19463 comparisons. 19464 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which 19465 says ignore whether the last reference is a memory operand. 19466 194672008-05-14 Michael Meissner <michael.meissner@amd.com> 19468 Paolo Bonzini <bonzini at gnu dot org> 19469 19470 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector 19471 shift patterns. 19472 19473 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3. 19474 (vlshr<mode>3): Rename from vlshr<mode>3. 19475 (vashr<mode>3): Rename from vashr<mode>3. 19476 (mulv4sf3): Change the names of vector shift patterns. 19477 (mulv4si3): Ditto. 19478 (negv4sf2): Ditt. 19479 19480 * config/spu/spu.c (spu_initialize_trampoline): Rename vector 19481 shift insns. 19482 19483 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns. 19484 (SI_SHLHI): Ditto. 19485 (SI_SHL): Ditto. 19486 (SI_SHLI): Ditto. 19487 (SI_ROTH): Ditto. 19488 (SI_ROTHI): Ditto. 19489 (SI_ROT): Ditto. 19490 (SI_ROTI): Ditto. 19491 (SPU_RL_0): Ditto. 19492 (SPU_RL_1): Ditto. 19493 (SPU_RL_2): Ditto. 19494 (SPU_RL_3): Ditto. 19495 (SPU_RL_4): Ditto. 19496 (SPU_RL_5): Ditto. 19497 (SPU_RL_6): Ditto. 19498 (SPU_RL_7): Ditto. 19499 (SPU_SL_0): Ditto. 19500 (SPU_SL_1): Ditto. 19501 (SPU_SL_2): Ditto. 19502 (SPU_SL_3): Ditto. 19503 (SPU_SL_4): Ditto. 19504 (SPU_SL_5): Ditto. 19505 (SPU_SL_6): Ditto. 19506 (SPU_SL_7): Ditto. 19507 19508 * config/spu/spu.md (v): New iterator macro to add v for vector types. 19509 (floatunssidf2_internal): Change vector/vector shift names. 19510 (floatunsdidf2_internal): Ditto. 19511 (mulv8hi3): Ditto. 19512 (ashrdi3): Ditto. 19513 (ashrti3): Ditto. 19514 (cgt_df): Ditto. 19515 (cgt_v2df): Ditto. 19516 (dftsv): Ditto. 19517 (vashl<mode>3): Rename from ashl<mode>3. 19518 (vashr<mode>3): Rename from ashr<mode>3. 19519 (vlshr<mode>3): Rename from lshr<mode>3. 19520 (vrotl<mode>3): Rename from rotl<mode>3. 19521 195222008-05-14 Michael Meissner <michael.meissner@amd.com> 19523 19524 PR target/36224 19525 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned 19526 multiply gives the wrong value when doing widening multiplies. 19527 (vec_widen_smult_lo_v4si): Ditto. 19528 195292008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com> 19530 19531 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to 19532 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to 19533 emit_library_call_value. 19534 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto. 19535 * tree.h (ECF_LIBCALL_BLOCK): Removed. 19536 * calls.c (initialize_argument_information, precompute_arguments, 19537 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK. 19538 (precompute_arguments): Removed flags parameter. 19539 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed. 19540 195412008-05-14 Richard Guenther <rguenther@suse.de> 19542 19543 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code. 19544 Make sure to register the store if the use is a PHI_NODE. 19545 195462008-05-14 Olivier Hainque <hainque@adacore.com> 19547 19548 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to 19549 memory if the component is to be referenced in BLKmode according 19550 to get_inner_reference. 19551 195522008-05-14 Adam Nemet <anemet@caviumnetworks.com> 19553 19554 * calls.c (emit_library_call_value_1): Restore code clearing 19555 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once. 19556 195572008-05-14 Olivier Hainque <hainque@adacore.com> 19558 Nicolas Roche <roche@adacore.com> 19559 19560 * configure.ac: Add support for a "gcc_subdir" variable in 19561 config-lang.in, to denote a subdirectory where the language/GCC 19562 integration files are to be found. 19563 * configure: Regenerate. 19564 195652008-05-14 Ira Rosen <irar@il.ibm.com> 19566 19567 PR tree-optimization/36098 19568 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap 19569 value for the first load in the group in case of a gap. 19570 (vect_build_slp_tree): Check that there are no gaps in loads. 19571 195722008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com> 19573 19574 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes. 19575 * optabs.c (expand_binop, expand_absneg_bit, expand_unop, 19576 expand_copysign_bit): Change call to emit_no_conflict_block to 19577 emit_insn and remove unneeded code to construct extra args. 19578 (emit_no_conflict_block): Removed. 19579 * optabls.h (emit_no_conflict_block): Removed. 19580 * cse.c (cse_extended_basic_block): Remove search for 19581 REG_NO_CONFLICT note. 19582 * global.c: Removed incorrect comment added in revision 117. 19583 * expr.c (convert_move): Change call to emit_no_conflict_block to 19584 emit_insn. 19585 * recog.c: Change comments so that they do not mention 19586 REG_NO_CONFLICT. 19587 * local_alloc.c (combine_regs): Removed last parameter. 19588 (no_conflict_p): Removed. 19589 (block_alloc): Removed note, no_conflict_combined_regno and set 19590 local vars. Removed all code to process REG_NO_CONFLICT blocks. 19591 (combine_regs): Removed already_dead and code to look for 19592 REG_NO_CONFLICT notes. 19593 * lower_subreg (remove_retval_note): Removed code to look for 19594 REG_NO_CONFLICT block. 19595 (resolve_reg_notes): Removed REG_NO_CONFLICT case. 19596 (resolve_clobber): Remove code to process libcalls that have 19597 REG_NO_CONFLICT notes. 19598 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT 19599 case. 19600 * combine.c (can_combine_p, distribute_notes): Removed 19601 REG_NO_CONFLICT case. 19602 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block 19603 to emit_insns. 19604 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto. 19605 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns): 19606 Ditto. 19607 * reg-notes.def (NO_CONFLICT): Removed. 19608 196092008-05-14 David S. Miller <davem@davemloft.net> 19610 19611 * config/sparc/sparc.c (sparc_profile_hook): If 19612 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount. 19613 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1. 19614 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise. 19615 196162008-05-14 Andreas Krebbel <krebbel1@de.ibm.com> 19617 19618 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges. 19619 196202008-05-13 Uros Bizjak <ubizjak@gmail.com> 19621 19622 PR target/36222 19623 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0 19624 and op1 expansion before vector concat to have less live pseudos. 19625 196262008-05-13 H.J. Lu <hongjiu.lu@intel.com> 19627 19628 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use 19629 ix86_expand_vector_set if supported. 19630 196312008-05-13 Diego Novillo <dnovillo@google.com> 19632 Kenneth Zadeck <zadeck@naturalbridge.com> 19633 19634 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html 19635 19636 * tree.h (init_phinodes, fini_phinodes, release_phi_node, 19637 phinodes_print_statistics, init_ssanames, fini_ssanames, 19638 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info, 19639 release_ssa_name, release_defs, replace_ssa_name_symbol, 19640 ssanames_print_statistics): Move ... 19641 * tree-flow.h: ... here. 19642 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE. 19643 Use FN instead of cfun. 19644 (make_ssa_name_fn): Rename from make_ssa_name. 19645 (pass_release_ssa_names): Add TODO_dump_func to finish flags. 19646 * tree-flow-inline.h (make_ssa_name): Move from 19647 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn. 19648 * omp-low.c (expand_omp_parallel): 19649 * tree-flow-inline.h (redirect_edge_var_map_result): 19650 * tree-ssa.c (init_tree_ssa): Add argument FN. 19651 Use it instead of cfun. Update all users. 19652 196532008-05-13 Tom Tromey <tromey@redhat.com> 19654 19655 PR preprocessor/22168: 19656 * doc/cpp.texi (Top): Update menu. 19657 (Alternatives to Wrapper #ifndef): New node. 19658 (Other Directives): Document deprecation. 19659 (Obsolete Features): Remove menu. 19660 (Assertions): Merge node into Obsolete Features. 19661 (Obsolete once-only headers): Move earlier; rename to Alternatives 19662 to Wrapper #ifndef. 19663 * doc/cppopts.texi: Update. 19664 * c.opt (Wdeprecated): Enable for C and ObjC. 19665 * doc/invoke.texi (Option Summary): Move -Wno-deprecated. 19666 (C++ Dialect Options): Move -Wno-deprecated from here to... 19667 (Warning Options): ... here. 19668 196692008-05-13 Richard Guenther <rguenther@suse.de> 19670 19671 PR middle-end/36227 19672 * fold-const.c (fold_sign_changed_comparison): Do not allow 19673 changes in pointer-ness. 19674 196752008-05-12 Kaz Kojima <kkojima@gcc.gnu.org> 19676 19677 PR target/24713 19678 * config/sh/sh.c (sh_expand_prologue): Don't clear 19679 RTX_FRAME_RELATED_P for push insns. 19680 196812008-05-12 Andy Hutchinson <hutchinsonandy@aim.com> 19682 19683 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define. 19684 196852008-05-12 Anatoly Sokolov <aesok@post.ru> 19686 19687 * config/avr/avr.h (machine_function): Add 'is_leaf' field. 19688 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'. 19689 Use 'machine->is_leaf' instead of 'leaf_func_p'. 19690 196912008-05-12 H.J. Lu <hongjiu.lu@intel.com> 19692 19693 * config/i386/sse.md (*sse_concatv4sf): Renamed to ... 19694 (*vec_concatv4sf_sse): This. 19695 (*sse2_concatv2si): Renamed to ... 19696 (*vec_concatv2si_sse2): This. 19697 (*sse1_concatv2si): Renamed to ... 19698 (*vec_concatv2si_sse): This. 19699 (*vec_concatv2di_rex): Renamed to ... 19700 (*vec_concatv2di_rex64): This. 19701 (*vec_concatv2si_sse4_1): New. 19702 (*vec_concatv2di_rex64_sse4_1): Likewise. 19703 197042008-05-12 Uros Bizjak <ubizjak@gmail.com> 19705 19706 PR rtl-optimization/36111 19707 * recog.c (validate_replace_rtx_1): Unshare new RTL expression 19708 that was created for swappable operands. 19709 197102008-05-12 Samuel Tardieu <sam@rfc1149.net> 19711 19712 PR ada/36001 19713 * Makefile.in: Substitute GNATMAKE and GNATBIND. 19714 * configure.ac: Add call to ACX_PROG_GNAT. 19715 197162008-05-11 Volker Reichelt <v.reichelt@netcologne.de> 19717 19718 * optc-gen.awk: Fix comment typo. 19719 197202008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 19721 19722 * pretty-print.c (pp_integer_with_precision): Use 19723 HOST_LONG_LONG_FORMAT. 19724 197252008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com> 19726 19727 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P. 19728 197292008-05-10 H.J. Lu <hongjiu.lu@intel.com> 19730 19731 * config/i386/i386.c (bdesc_ptest): Removed. 19732 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST. 19733 (bdesc_args): Add __builtin_ia32_ptestz128, 19734 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128. 19735 (ix86_init_mmx_sse_builtins): Updated. 19736 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST. 19737 (ix86_expand_builtin): Updated. 19738 197392008-05-10 Richard Sandiford <rdsandiford@googlemail.com> 19740 19741 * tree-cfg.c (valid_fixed_convert_types_p): New function. 19742 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR. 19743 197442008-05-10 Uros Bizjak <ubizjak@gmail.com> 19745 19746 * value-prof.c (interesting_stringop_to_profile): Do not 19747 return early for BUILT_IN_MEMPCPY. 19748 197492008-05-09 H.J. Lu <hongjiu.lu@intel.com> 19750 19751 * calls.c (expand_call): Don't use callgraph to increase 19752 preferred_stack_boundary. 19753 19754 * cgraph.h (cgraph_rtl_info): Use unsigned on 19755 preferred_incoming_stack_boundary. 19756 19757 * final.c (rest_of_clean_state): Use unsigned on 19758 preferred_stack_boundary. 19759 197602008-05-09 Tom Tromey <tromey@redhat.com> 19761 19762 PR preprocessor/22231: 19763 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is 19764 proceeding. 19765 197662008-05-09 Uros Bizjak <ubizjak@gmail.com> 19767 19768 PR tree-optimization/36129 19769 * tree-ssa-ccp.c: Include value-prof.h. 19770 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if 19771 built-in function was folded to a constant. 19772 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h 19773 197742008-05-09 Jan Sjodin <jan.sjodin@amd.com> 19775 Sebastian Pop <sebastian.pop@amd.com> 19776 19777 * tree-scalar-evolution.c: Document instantiate_scev. 19778 (instantiate_parameters_1): Renamed instantiate_scev_1. 19779 Don't use the same loop for instantiation_loop and evolution_loop. 19780 (instantiate_scev): New. 19781 (instantiate_parameters): Moved... 19782 (resolve_mixers): Update call to instantiate_scev_1 to pass the 19783 same loop twice. Maintains the semantics for this function. 19784 * tree-scalar-evolution.h (instantiate_scev): Declare. 19785 (instantiate_parameters): ...here. Now static inline. 19786 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev 19787 instead of resolve_mixers. 19788 197892008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com> 19790 19791 * rtl-factoring.c (collect_pattern_seqs): Fix typo. 19792 197932008-05-09 Tomas Bily <tbily@suse.cz> 19794 19795 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT. 19796 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise. 19797 * tree-ssa-structalias.c (get_constraint_for): Likewise. 19798 * c-common.c (c_common_truthvalue_conversion): Likewise. 19799 * tree-object-size.c (compute_object_offset): Likewise. 19800 * tree-inline.c (estimate_num_insns_1): Likewise. 19801 * varasm.c (const_hash_1, compare_constant, copy_constant) 19802 (compute_reloc_for_constant, output_addressed_constants) 19803 (initializer_constant_valid_p): Likewise. 19804 * c-omp.c (check_omp_for_incr_expr): Likewise. 19805 * gimplify.c (gimplify_expr): Likewise. 19806 * c-typeck.c (c_finish_return): Likewise. 19807 * tree-vectorizer.c (supportable_widening_operation) 19808 (supportable_narrowing_operation): Likewise. 19809 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise. 19810 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise. 19811 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise. 19812 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info) 19813 (descr_info_loc): Likewise. 19814 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise. 19815 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1) 19816 (fold_unary): Likewise. 19817 * builtins.c (get_pointer_alignment): Likewise. 19818 * tree-scalar-evolution.c (interpret_rhs_modify_stmt) 19819 (instantiate_parameters_1): Likewise. 19820 * tree.c (expr_align, stabilize_reference): Likewise. 19821 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. 19822 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise. 19823 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P. 19824 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise. 19825 * config/alpha/alpha.c (va_list_skip_additions): Likewise. 19826 * c-common.c (c_alignof_expr, check_function_arguments_recurse): 19827 Likewise. 19828 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise. 19829 * varasm.c (initializer_constant_valid_p, output_constant): Likewise. 19830 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from) 19831 (forward_propagate_addr_expr_1, forward_propagate_addr_expr) 19832 (forward_propagate_comparison) 19833 (tree_ssa_forward_propagate_single_use_vars): Likewise. 19834 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise. 19835 * emit-rtl.c (component_ref_for_mem_expr) 19836 (set_mem_attributes_minus_bitpos): Likewise. 19837 * tree-ssa-phiopt.c (conditional_replacement): Likewise. 19838 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr): 19839 Likewise. 19840 * c-typeck.c (default_function_array_conversion, build_indirect_ref) 19841 (build_function_call, pointer_diff, build_compound_expr) 19842 (c_finish_return): Likewise. 19843 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise. 19844 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1): 19845 Likewise. 19846 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise. 19847 * expr.c (is_aligning_offset): Likewise. 19848 * tree-ssa-alias.c (is_escape_site): Likewise. 19849 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes) 19850 (check_all_va_list_escapes): Likewise. 19851 * tree-ssa-loop-ivopts.c (determine_base_object) 19852 (determine_common_wider_type): Likewise. 19853 * dojump.c (do_jump): Likewise. 19854 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise. 19855 * tree-gimple.c (is_gimple_cast): Likewise. 19856 * fold-const.c (decode_field_reference) 19857 (fold_sign_changed_comparison, fold_unary, fold_comparison) 19858 (fold_binary): Likewise. 19859 * tree-ssa-alias-warnings.c (find_alias_site_helper) 19860 (already_warned_in_frontend_p): Likewise. 19861 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise. 19862 * tree.c (really_constant_p, get_unwidened): Likewise. 19863 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise. 19864 * tree-ssa-loop-im.c (rewrite_bittest): Likewise. 19865 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1): 19866 Likewise. 19867 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use 19868 CONVERT_EXPR_P. 19869 (CONVERT_EXPR_P): Define. 19870 (CASE_CONVERT): Define. 19871 198722008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com> 19873 19874 PR middle-end/36117 19875 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress. 19876 (delete_unmarked_insns): When deleting a call, call 19877 delete_unreachable_blocks. 19878 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P, 19879 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc. 19880 198812008-05-08 Richard Guenther <rguenther@suse.de> 19882 19883 * doc/invoke.texi (-fdump-tree-salias): Remove documentation. 19884 (-ftree-salias): Likewise. 19885 (salias-max-implicit-fields): Remove param documentation. 19886 (salias-max-array-elements): Likewise. 19887 * tree-pass.h (pass_create_structure_vars): Remove. 19888 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove. 19889 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise. 19890 * tree-ssa-alias.c (create_structure_vars): Remove. 19891 (gate_structure_vars): Likewise. 19892 (pass_create_structure_vars): Likewise. 19893 (gate_build_alias): Likewise. 19894 (pass_build_alias): Adjust to run always and dump the function. 19895 * common.opt (ftree-salias): Hide. 19896 * passes.c (init_optimization_passes): Remove 19897 pass_create_structure_vars, adjust comment. 19898 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove. 19899 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise. 19900 * opts.c (decode_options): Do not set flag_tree_salias. 19901 (common_handle_option): Add OPT_ftree_salias to the backward 19902 compatibility section. 19903 199042008-05-08 Richard Guenther <rguenther@suse.de> 19905 19906 * tree-flow-inline.h (var_can_have_subvars): Move ... 19907 * tree-ssa-structalias.c (var_can_have_subvars): ... here. 19908 * tree-flow.h (var_can_have_subvars): Remove. 19909 (push_fields_onto_fieldstack): Remove. 19910 (sort_fieldstack): Likewise. 19911 (struct fieldoff): Move ... 19912 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove 19913 alias_set and base_for_components fields. 19914 (sort_fieldstack): Make static. 19915 (push_fields_onto_fieldstack): Likewise. Remove code that 19916 handles anything but RECORD_TYPEs. Remove alias_set and 19917 base_for_components handling. 19918 (create_variable_info_for): Adjust. 19919 199202008-05-08 Seongbae Park <seongbae.park@gmail.com> 19921 19922 * common.opt (Wframe-larger-than=): Shorten the help message 19923 to one line. 19924 * doc/invoke.texi (Wframe-larger-than=): Add more description. 19925 199262008-05-08 Rafael Esp��ndola <espindola@google.com> 19927 19928 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that 19929 trap. 19930 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't 19931 trap and that both operands are gimple values. 19932 (canonicalize_cond_expr_cond): Use is_gimple_condexpr. 19933 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison 19934 is a fp operation. 19935 199362008-05-08 Richard Sandiford <rsandifo@nildram.co.uk> 19937 19938 * read-rtl.c (join_c_conditions): Return the first string if the 19939 two strings are equal. 19940 199412008-05-08 Richard Sandiford <rsandifo@nildram.co.uk> 19942 19943 * gensupport.h (pred_data): Add a "num_codes" field. 19944 (add_predicate_code): Declare. 19945 * gensupport.c (add_predicate_code): New function. 19946 (std_pred_table): Add an "allows_const_p" field. 19947 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs. 19948 Remove the (incomplete) list of such codes from the codes field. 19949 (init_predicate_table): Use add_predicate_code. Add all 19950 RTX_CONST_OBJs if allows_const_p is true. 19951 * genrecog.c (process_define_predicate): Use add_predicate_code. 19952 199532008-05-08 David Daney <ddaney@avtrex.com> 19954 Richard Sandiford <rsandifo@nildram.co.uk> 19955 19956 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle 19957 special case of constant zero operands. 19958 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend 19959 old and new values. Special case constant zero values. 19960 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare 19961 fails. 19962 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands. 19963 (MIPS_COMPARE_AND_SWAP_12_0): New macro. 19964 199652008-05-08 Paolo Bonzini <bonzini@gnu.org> 19966 19967 PR target/36090 19968 * simplify-rtx.c (simplify_plus_minus): Create CONST of 19969 similar RTX_CONST_OBJ before CONST_INT. 19970 199712008-05-08 Steve Ellcey <sje@cup.hp.com> 19972 19973 * stmt.c (expand_stack_restore): Change sa mode if needed. 19974 199752008-05-08 Richard Guenther <rguenther@suse.de> 19976 19977 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust 19978 return type to bool. 19979 (ix86_sol10_return_in_memory): Likewise. 19980 (ix86_i386elf_return_in_memory): Likewise. 19981 (ix86_i386interix_return_in_memory): Likewise. 19982 * config/i386/i386.c (ix86_return_in_memory): Likewise. 19983 (ix86_sol10_return_in_memory): Likewise. 19984 (ix86_i386elf_return_in_memory): Likewise. 19985 (ix86_i386interix_return_in_memory): Likewise. 19986 199872008-05-08 Kai Tietz <kai.tietz@onevision.com> 19988 19989 PR bootstrap/36180 19990 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to 19991 fndecl argument. 19992 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl. 19993 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't 19994 declared in front. 19995 199962008-05-08 Richard Guenther <rguenther@suse.de> 19997 19998 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS. 19999 * tree-data-ref.h (struct dr_alias): Remove subvars field. 20000 (DR_SUBVARS): Remove. 20001 * tree-dfa.c (dump_subvars_for): Remove. 20002 (debug_subvars_for): Likewise. 20003 (dump_variable): Do not dump subvars. 20004 (remove_referenced_var): Do not remove subvars. 20005 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist. 20006 (lookup_subvars_for_var): Remove. 20007 (get_subvars_for_var): Likewise. 20008 (get_subvars_at): Likewise. 20009 (get_first_overlapping_subvar): Likewise. 20010 (overlap_subvar): Likewise. 20011 * tree-flow.h (subvar_t): Remove. 20012 (struct var_ann_d): Remove subvars field. 20013 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued 20014 argument. Remove special handling of SFTs. 20015 (compute_tag_properties): Likewise. 20016 (set_initial_properties): Likewise. 20017 (compute_call_clobbered): Likewise. 20018 (count_mem_refs): Likewise. 20019 (compute_memory_partitions): Likewise. 20020 (compute_flow_insensitive_aliasing): Likewise. 20021 (setup_pointers_and_addressables): Likewise. 20022 (new_type_alias): Likewise. 20023 (struct used_part): Remove. 20024 (used_portions): Likewise. 20025 (struct used_part_map): Likewise. 20026 (used_part_map_eq): Likewise. 20027 (used_part_map_hash): Likewise. 20028 (free_used_part_map): Likewise. 20029 (up_lookup): Likewise. 20030 (up_insert): Likewise. 20031 (get_or_create_used_part_for): Likewise. 20032 (create_sft): Likewise. 20033 (create_overlap_variables_for): Likewise. 20034 (find_used_portions): Likewise. 20035 (create_structure_vars): Likewise. 20036 * tree.def (STRUCT_FIELD_TAG): Remove. 20037 * tree.h (MTAG_P): Adjust. 20038 (struct tree_memory_tag): Remove base_for_components and 20039 unpartitionable flags. 20040 (struct tree_struct_field_tag): Remove. 20041 (SFT_PARENT_VAR): Likewise. 20042 (SFT_OFFSET): Likewise. 20043 (SFT_SIZE): Likewise. 20044 (SFT_NONADDRESSABLE_P): Likewise. 20045 (SFT_ALIAS_SET): Likewise. 20046 (SFT_UNPARTITIONABLE_P): Likewise. 20047 (SFT_BASE_FOR_COMPONENTS_P): Likewise. 20048 (union tree_node): Remove sft field. 20049 * alias.c (get_alias_set): Remove special handling of SFTs. 20050 * print-tree.c (print_node): Remove handling of SFTs. 20051 * tree-dump.c (dequeue_and_dump): Likewise. 20052 * tree-into-ssa.c (mark_sym_for_renaming): Likewise. 20053 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs. 20054 * tree-predcom.c (set_alias_info): Do not set subvars. 20055 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs. 20056 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise. 20057 * tree-ssa-operands.c (access_can_touch_variable): Likewise. 20058 (add_vars_for_offset): Remove. 20059 (add_virtual_operand): Remove special handling of SFTs. 20060 (add_call_clobber_ops): Likewise. 20061 (add_call_read_ops): Likewise. 20062 (get_asm_expr_operands): Likewise. 20063 (get_modify_stmt_operands): Likewise. 20064 (get_expr_operands): Likewise. 20065 (add_to_addressable_set): Likewise. 20066 * tree-ssa.c (verify_ssa_name): Do not handle SFTs. 20067 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise. 20068 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars. 20069 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization. 20070 (tree_code_size): Remove STRUCT_FIELD_TAG handling. 20071 (tree_node_structure): Likewise. 20072 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special 20073 handling of SFTs. 20074 (find_what_p_points_to): Likewise. 20075 200762008-05-08 Sa Liu <saliu@de.ibm.com> 20077 20078 * config/spu/spu.md: Fixed subti3 pattern. 20079 200802008-05-08 Richard Guenther <rguenther@suse.de> 20081 20082 PR middle-end/36154 20083 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make 20084 sure to create a representative for trailing arrays for PTA. 20085 200862008-05-08 Richard Guenther <rguenther@suse.de> 20087 20088 PR middle-end/36172 20089 * fold-const.c (operand_equal_p): Two objects which types 20090 differ in pointerness are not equal. 20091 200922008-05-08 Kai Tietz <kai.tietz@onevision.com> 20093 20094 * calls.c (compute_argument_block_size): Add argument tree fndecl. 20095 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument. 20096 (emit_library_call_value_1): Add new variable fndecl initialized by 20097 NULL_TREE. It should be the decl type of orgfun, but this information 20098 seems not to be available here, so it uses the default calling abi. 20099 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen. 20100 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY 20101 by TARGET_RETURN_IN_MEMORY. 20102 * config/i386/i386-interix.h: Likewise. 20103 * config/i386/i386.h: Likewise. 20104 * config/i386/i386elf.h: Likewise. 20105 * config/i386/ptx4-i.h: Likewise. 20106 * config/i386/sol2-10.h: Likewise. 20107 * config/i386/sysv4.h: Likewise. 20108 * config/i386/vx-common.h: Likewise. 20109 * config/cris/cris.h: Removed #if 0 clause. 20110 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument. 20111 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype 20112 argument. 20113 (ix86_sol10_return_in_memory): Likewise. 20114 (ix86_i386elf_return_in_memory): New. 20115 (ix86_i386interix_return_in_memory): New. 20116 * config/mt/mt-protos.h (mt_return_in_memory): New. 20117 * config/mt/mt.c: Likewise. 20118 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument. 20119 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY. 20120 * config/bfin/bfin.h: Likewise. 20121 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype 20122 argument. 20123 * config/bfin/bfin.c: Likewise. 20124 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument. 20125 * config/alpha/unicosmk.h: Likewise. 20126 * config/i386/cygming.h: Likewise. 20127 * config/iq2000/iq2000.h: Likewise. 20128 * config/mips/mips.h: Likewise. 20129 * config/mn10300/mn10300.h: Likewise. 20130 * config/rs6000/rs6000.h: Likewise. 20131 * config/score/score.h: Likewise. 20132 * config/spu/spu.h: Likewise. 20133 * config/v850/v850.h: Likewise. 20134 * defaults.h: Likewise. 20135 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation. 20136 * expr.c (emit_block_move): Adjust use of 20137 OUTGOING_REG_PARM_STACK_SPACE. 20138 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of 20139 OUTGOING_REG_PARM_STACK_SPACE. 20140 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY. 20141 201422008-05-08 Jakub Jelinek <jakub@redhat.com> 20143 20144 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT 20145 on OMP_RETURN for OMP_FOR. 20146 20147 PR debug/35896 20148 * dwarf2out.c (dw_expand_expr, common_check): Removed. 20149 (fortran_common): New function. 20150 (gen_variable_die): Call fortran_common instead of common_check, 20151 adjust for it returning tree instead of rtx. Formatting. 20152 201532008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com> 20154 20155 PR rtl/7335 20156 PR rtl/33826 20157 * see.c (see_copy_insn): Copy new pure const attributes for new call. 20158 * c-decl.c (merge_decls): Ditto. 20159 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P 20160 to RTL_CONST_OR_PURE_CALL_P. 20161 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P. 20162 Initialized DECL_LOOPING_CONST_PURE. 20163 (process_call_operands): Set tree_side_effects properly. 20164 * tree.h (TREE_READONLY_DECL_P): Removed. 20165 (DECL_IS_PURE): Renamed to DECL_PURE_P. 20166 (DECL_LOOPING_OR_CONST_P): New macro. 20167 (struct tree_function_decl): Added looping_const_or_pure_p. 20168 (ECF_*) Renumbered. 20169 (ECF_LOOPING_OR_CONST_P): New macro. 20170 * rtlanal.c (pure_const_p): Removed. 20171 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P. 20172 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P 20173 to RTL_CONST_CALL_P. 20174 * ipa-pure-const.c (pure_const_state_e): Added looping field. 20175 (check_decl, check_tree, check_call, scan_function): Initialize 20176 looping. 20177 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P. 20178 (static_execute): Set looping true for recursive functions. 20179 Undo setting state to IPA_NEITHER for recursive functions. 20180 * cse.c (cse_insn): 20181 * ifcvt.c (noce_can_store_speculate_p): Changed 20182 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 20183 RTL_CONST_OR_PURE_CALL_P. 20184 * dse.c (scan_insn): Ditto. 20185 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto. 20186 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to 20187 RTL_CONST_OR_PURE_CALL_P. 20188 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and 20189 pure_call_p to RTL_CONST_CALL_P. 20190 * gimplify.c (gimplify_call_expr): Clear side effects for 20191 non-looping pure and constant calls. 20192 * calls.c (emit_call_1): Set rtl flags from ecf flags. 20193 (flags_from_decl_or_type): Set ecf flags from decl flags. 20194 (initialize_argument_information): Turn off 20195 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST. 20196 Change const to pure if callee_copies is true rather than just 20197 turning off const. 20198 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old 20199 way of marking pure calls. 20200 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL. 20201 Remove hack that was supposed to fix pr7335 and remove old 20202 way of marking pure calls. 20203 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P, 20204 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P. 20205 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to 20206 RTL_CONST_OR_PURE_CALL_P. 20207 * tree-ssa-pre.c (can_value_number_call): Fixed spacing. 20208 * loop-invariant.c (find_exits, find_invariant_bb): Changed 20209 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P. 20210 * sched-deps.c (schedule_analyze): Ditto. 20211 * rtl.h (struct rtx_def): Use call field, unchanging field, and 20212 return_val field of calls to represent pure and const function info. 20213 (CONST_OR_PURE_CALL_P): Deleted macro. 20214 (RTL_CONST_CALL_P, RTL_PURE_CALL_P, 20215 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros. 20216 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to 20217 TREE_READONLY. 20218 * tree-optimize.c (execute_fixup_cfg): Added test for 20219 ECF_LOOPING_CONST_OR_PURE. 20220 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to 20221 DECL_PURE_P. 20222 * tree-cfg.c (update_call_expr_flags): Do not clear tree side 20223 effects for looping pure or const calls. 20224 (verify_gimple_expr): Added verification code. 20225 * config/alpha/alpha.c (alpha_legitimize_address, 20226 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to 20227 RTL_CONST_CALL_P. 20228 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto. 20229 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto. 20230 * config/mips/mips.c (mips_call_tls_get_addr): Ditto. 20231 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to 20232 RTL_CONST_OR_PURE_CALL_P. 20233 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure 20234 and const calls to be deleted. 20235 202362008-05-07 Uros Bizjak <ubizjak@gmail.com> 20237 20238 PR target/35714 20239 * config/i386/mmx.md (mmx_subv2sf3): New expander. 20240 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern. 20241 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern. 20242 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy 20243 to handle nonimmediate operands. 20244 (*mmx_paddwd): Rename from mmx_paddwd insn pattern. 20245 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy 20246 to handle nonimmediate operands. 20247 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern. 20248 (mmx_pmulhrwv4hi3): New expander. Use 20249 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20250 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern. 20251 (sse2_umulv1siv1di3): New expander. Use 20252 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20253 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern. 20254 (mmx_eq<mode>3): New expander. Use 20255 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20256 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern. 20257 (mmx_uavgv8qi3): New expander. Use 20258 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20259 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern. 20260 (mmx_uavgv4hi3): New expander. Use 20261 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20262 20263 * config/i386/sse.md 20264 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands 20265 to handle nonimmediate operands. 20266 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands 20267 to handle nonimmediate operands. 20268 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands 20269 to handle nonimmediate operands. 20270 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands 20271 to handle nonimmediate operands. 20272 (sse2_unpckhpd_exp): New expander. Use 20273 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20274 (sse2_unpcklpd_exp): New expander. Use 20275 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20276 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands 20277 to handle nonimmediate operands. 20278 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands 20279 to handle nonimmediate operands. 20280 (*sse2_<plusminus_insn><mode>3): Rename from 20281 sse2_<plusminus_insn><mode>3 insn pattern. 20282 (sse2_<plusminus_insn><mode>3): New expander. Use 20283 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20284 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern. 20285 (sse2_umulv2siv2di3): New expander. Use 20286 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20287 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern. 20288 (sse4_1_mulv2siv2di3): New expander. Use 20289 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20290 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern. 20291 (sse2_pmaddwd): New expander. Use 20292 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20293 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern. 20294 (sse2_eq<mode>3): New expander. Use 20295 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20296 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern. 20297 (sse4_1_eqv2di3): New expander. Use 20298 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20299 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern. 20300 (sse2_uavgv16qi3): New expander. Use 20301 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20302 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern. 20303 (sse2_uavgv16qi3): New expander. Use 20304 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20305 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern. 20306 (sse2_uavgv8hi3): New expander. Use 20307 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20308 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern. 20309 (ssse3_pmulhrswv8hi3): New expander. Use 20310 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20311 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern. 20312 (ssse3_pmulhrswv4hi3): New expander. Use 20313 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20314 20315 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok. 20316 (<sse>_vmmul<mode>3): Ditto. 20317 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy. 20318 (divv2df3): Ditto. 20319 (ssse3_pmaddubsw128): Use register_operand for operand 1. 20320 (ssse3_pmaddubsw): Ditto. 20321 20322 * config/i386/i386.c (struct_builtin_description) 20323 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp. 20324 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp. 20325 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp. 20326 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp. 20327 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp. 20328 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp. 20329 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp. 20330 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp. 20331 (ix86_fixup_binary_operands): Assert that src1 20332 and src2 must have the same mode when swapped. 20333 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands 20334 and ix86_binary_operator_ok. Do not force operands in registers 20335 when optimizing. 20336 203372008-05-07 Jan Hubicka <jh@suse.cz> 20338 20339 * cgraph.c (dump_cgraph_node): Update. 20340 * cgraph.h (cgraph_local_info): Break out inline summary. 20341 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis 20342 hook. 20343 * ipa-inline (inline_summary): New accestor function. 20344 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits, 20345 cgraph_decide_inlining, compute_inline_parameters): Update. 20346 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics. 20347 203482008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com> 20349 20350 Cleanup ColdFire scheduling support and add V4 pipeline model. 20351 20352 * config/m68k/m68k.md (UNSPEC_TIE): New constant. 20353 (define_attr cpu): Add cfv4 value. 20354 (define_attr type, define_attr type1): Merge into a single 'type' 20355 attribute. Update all uses. 20356 (define_attr opx_type, define_attr opy_type, define_attr opx_access): 20357 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'. 20358 Update all uses. 20359 (define_attr opx_mem, define_attr opy_mem): Remove. 20360 (define_attr op_mem): Clean up, update comment. 20361 (define_attr size): Use specific values instead of general int. 20362 (define_attr guess, define_attr split): Remove. Update all uses. 20363 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal, 20364 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10, 20365 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf, 20366 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2, 20367 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2, 20368 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf, 20369 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881, 20370 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881, 20371 add<mode>3_floathi_68881, add<mode>3_floatqi_68881, 20372 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3, 20373 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881, 20374 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf, 20375 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf, 20376 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881, 20377 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf, 20378 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2, 20379 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3, 20380 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext, 20381 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle, 20382 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value, 20383 symbolic_call_value_jsr, symbolic_call_value_bsr, link): 20384 Update or set attributes. 20385 (stack_tie): New fake instruction. 20386 20387 * config/m68k/m68k.h (TUNE_CFV4): New macro. 20388 (m68k_sched_attr_size): Update declaration. 20389 (m68k_sched_attr_type2): Remove. 20390 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p): 20391 Declare new bypass predicates. 20392 20393 * config/m68k/m68k.c (m68k_sched_issue_rate, 20394 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook 20395 implementations. 20396 (TARGET_SCHED_ISSUE_RATE, 20397 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks. 20398 (override_options): Handle scheduling for ColdFire V4 core. 20399 (m68k_expand_prologue): Emit stack_tie. 20400 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and 20401 'OP_TYPE_FPN'. Update all uses. 20402 (sched_guess_p): Remove. 20403 (sched_address_type): Handle symbolic addresses. 20404 (sched_get_operand): New static function. 20405 (sched_operand_type): Merge into sched_attr_op_type. 20406 (sched_attr_op_type): Handle FP registers, handle quick constants, 20407 update. 20408 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update. 20409 (m68k_sched_attr_size): Update. Move logic to ... 20410 (sched_get_attr_size_int): New static function. 20411 (sched_get_opxy_mem_type): New static function. 20412 (m68k_sched_attr_op_mem): Update. 20413 (m68k_sched_attr_type2): Remove. 20414 (sched_cfv4_bypass_data): New static variable. 20415 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass. 20416 (m68k_sched_issue_rate): Implement scheduler hook. 20417 (struct _sched_ib: enabled_p): New field. 20418 (m68k_sched_variable_issue): Update. Handle V4. 20419 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING, 20420 sched_dump_class_func_t, sched_dump_split_class, 20421 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state, 20422 sched_dump_dfa_class, m68k_sched_dump): Remove. 20423 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler 20424 hook. 20425 (m68k_sched_init_global): Remove statisctics dumping, introduce 20426 sanity check that all instructions have pipeline reservations. Handle 20427 ColdFire V4 core. 20428 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle): 20429 Handle ColdFire V4 core. 20430 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand): 20431 New static functions. 20432 (m68k_sched_address_bypass_p): New bypass predicate. 20433 (sched_get_indexed_address_scale): New static function. 20434 (m68k_sched_indexed_address_bypass_p): New bypass predicate. 20435 20436 * cf.md: Update comments. 20437 (define_attr type2): Remove. Use 'type' attribute instead. 20438 Update all uses. 20439 (cf_ib): Rename to cfv123_ib. Update all uses. 20440 (cf_oep): Rename to cfv123_oep. Update all uses. 20441 (cf_chr): Rename to cfv123_chr. Update all uses. 20442 (cf_mem): Rename to cfv123_mem. Update all uses. 20443 (cf_mac): Move to more appropriate place. 20444 (cfv123_guess): New automaton and cpu_unit. 20445 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute. 20446 Update uses of 'size' attribute. Handle before reload scheduling. 20447 (cfv123_guess): New dummy reservation for unhandled instructions. 20448 (cfv4_*): Pipeline description of ColdFire V4 core. 20449 (ignore): New reservation to handle 'ignore' type. 20450 204512008-05-07 Ian Lance Taylor <iant@google.com> 20452 20453 PR middle-end/36013 20454 * gimplify.c (find_single_pointer_decl_1): Don't look through 20455 indirections. 20456 (find_single_pointer_decl): Adjust comments. 20457 204582008-05-07 Jakub Jelinek <jakub@redhat.com> 20459 20460 PR middle-end/36137 20461 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of 20462 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR. 20463 20464 PR middle-end/36106 20465 * omp-low.c (expand_omp_atomic_pipeline): Load value using the 20466 integral type rather than floating point, then VIEW_CONVERT_EXPR 20467 to the floating point type. 20468 204692008-05-07 Uros Bizjak <ubizjak@gmail.com> 20470 20471 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant 20472 TFmode op0 to register. 20473 204742008-05-07 Alan Modra <amodra@bigpond.net.au> 20475 20476 * c-decl.c (grokdeclarator): Comment typo. 20477 204782008-05-06 Aldy Hernandez <aldyh@redhat.com> 20479 20480 * tree-flow.h: Remove prototype for computed_goto_p. 20481 * tree-cfg.c (computed_goto_p): Make static. 20482 204832008-05-06 H.J. Lu <hongjiu.lu@intel.com> 20484 20485 PR target/35657 20486 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ... 20487 (contains_aligned_value_p): This. Handle _Decimal128. 20488 (ix86_function_arg_boundary): Only align _Decimal128 to its 20489 natural boundary and handle it properly. 20490 204912008-05-06 Martin Jambor <mjambor@suse.cz> 20492 20493 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node. 20494 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone 20495 (ipcp_method_set_orig_node): Removed. 20496 (ipcp_cval_get_cvalue_type): Removed. 20497 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale. 20498 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale. 20499 (ipcp_cval_set_cvalue_type): Removed. 20500 (ipcp_cval_get_cvalue): Removed. 20501 (ipcp_cval_set_cvalue): Removed. 20502 (ipcp_type_is_const): Renamed to ipcp_lat_is_const. 20503 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal 20504 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's 20505 (ipcp_cval_meet): Renamed to ipa_lattice_meet 20506 (ipcp_cval_changed): Changed to use ipcp_lat_is_const 20507 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice 20508 (ipcp_get_ith_lattice): Changed parameters. 20509 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc 20510 (ipcp_lattice_from_jfunc): Changed parameters. 20511 (ipcp_redirect): Local lattice pointer instead of lattice type variable. 20512 (ipcp_method_cval_print): Added temporary variable info. 20513 (ipcp_redirect): Removed already unused local variable caller. 20514 (ipcp_redirect): New temporary variable orig_callee_info 20515 (ipcp_redirect): Removed newly unused local variable callee. 20516 (ipcp_redirect): Removed (a bit confusing) local variable type. 20517 (ipcp_insert_stage): Added local variable info. 20518 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 20519 renamed too 20520 (ipcp_formal_create): Removed. 20521 (ipcp_method_cval_set): Removed. 20522 (ipcp_propagate_stage): Renamed lattice variables. 20523 (ipcp_method_cval_set_cvalue_type): Removed. 20524 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices 20525 (ipcp_print_all_lattices): Changed printed strings to refer to 20526 lattices rather than cvals. 20527 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices 20528 (ipcp_propagate_const): Changed formal parameters. 20529 (build_const_val): Changed formal parameters. 20530 (ipcp_insert_stage): Removed useless variable cvalue 20531 (build_const_val): Changed formal parameters. 20532 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale 20533 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom 20534 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions 20535 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts 20536 (ipcp_print_func_profile_counts): Changed string from "method" to 20537 "function" 20538 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts 20539 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles 20540 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles 20541 (ipcp_structures_print): Renamed to ipcp_print_all_structures 20542 (ipcp_profile_print): Renamed to ipcp_print_profile_data 20543 (ipcp_lat_is_const): Changed parameters and made inline. 20544 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map 20545 (ipcp_redirect): Renamed to ipcp_need_redirect_p 20546 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 20547 the predicate condition directly 20548 (ipcp_propagate_stage): Added local variable args. Removed local 20549 variable callee. (Both are mere code simplifications.) 20550 (ipcp_method_dont_insert_const): Renamed to 20551 ipcp_node_not_modifiable_p. 20552 (ipcp_node_not_modifiable_p): Made inline. 20553 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node 20554 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const 20555 (ipcp_print_all_lattices): Removed variable cvalue 20556 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print 20557 Updated comments. 20558 205592008-05-06 Olivier Hainque <hainque@adacore.com> 20560 20561 * tree-sra.c (try_instantiate_multiple_fields): Early return 20562 if field has POINTER_TYPE. 20563 205642008-05-06 Kai Tietz <kai.tietz@onevision.com> 20565 20566 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm 20567 by using 'q' specifier for instruction. 20568 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT. 20569 205702008-05-06 Anatoly Sokolov <aesok@post.ru> 20571 20572 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp): 20573 Change mode of zero_extract from QImode to HImode. 20574 (sign bit tests peepholes): (Ditto.). 20575 205762008-05-06 Uros Bizjak <ubizjak@gmail.com> 20577 20578 * config/i386/mmx.md: Remove double backslashes from asm templates. 20579 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern. 20580 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy 20581 to handle nonimmediate operands. 20582 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern. 20583 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy 20584 to handle nonimmediate operands. 20585 (*mmx_<code>v2sf3_finite): New insn pattern. 20586 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern. 20587 (mmx_<code>v2sf3): New expander. Use 20588 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20589 (mmx_<plusminus_insn><mode>3): New expander. Use 20590 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20591 (*mmx_<plusminus_insn><mode>3): New insn pattern. 20592 (mmx_add<mode>3): Removed. 20593 (mmx_ssadd<mode>3): Ditto. 20594 (mmx_usadd<mode>3): Ditto. 20595 (mmx_sub<mode>3): Ditto. 20596 (mmx_sssub<mode>3): Ditto. 20597 (mmx_ussub<mode>3): Ditto. 20598 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern. 20599 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy 20600 to handle nonimmediate operands. 20601 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart 20602 insn pattern. 20603 (mmx_smulv4hi3_highpart): New expander. Use 20604 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20605 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart 20606 insn pattern. 20607 (mmx_umulv4hi3_highpart): New expander. Use 20608 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20609 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern. 20610 (mmx_<code>v4hi3): New expander. Use 20611 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20612 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern. 20613 (mmx_<code>v8qi3): New expander. Use 20614 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20615 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern. 20616 (mmx_<code><mode>3): New expander. Use 20617 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands. 20618 206192008-05-05 Jan Hubicka <jh@suse.cz> 20620 20621 PR tree-optimization/36118 20622 * passes.c (pass_init_dump_file): Fix dump header. 20623 206242008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com> 20625 20626 PR middle-end/36141 20627 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create 20628 VCE for function decls. 20629 206302008-05-05 H.J. Lu <hongjiu.lu@intel.com> 20631 20632 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo. 20633 206342008-05-05 H.J. Lu <hongjiu.lu@intel.com> 20635 20636 * config/i386/i386.md (sat_plusminus): New. 20637 (plusminus_insn): Likewise. 20638 (plusminus_mnemonic): Likewise. 20639 (addsub): Removed. 20640 (comm): Add ss_plus, us_plus, ss_minus and us_minus. 20641 (*<addsub><mode>3_cc_overflow): Renamed to ... 20642 (*<plusminus_insn><mode>3_cc_overflow): This. 20643 (*<addsub>si3_zext_cc_overflow): Renamed to ... 20644 (*<plusminus_insn>si3_zext_cc_overflow): This. 20645 20646 * config/i386/sse.md (<addsub><mode>3): Renamed to ... 20647 (<plusminus_insn><mode>3): This. 20648 (*<addsub><mode>3): Renamed to ... 20649 (*<plusminus_insn><mode>3): This. 20650 (<sse>_vm<addsub><mode>3): Renamed to ... 20651 (<sse>_vm<plusminus_insn><mode>3): This. 20652 (sse3_h<addsub>v4sf3): Renamed to ... 20653 (sse3_h<plusminus_insn>v4sf3): This. 20654 (sse3_h<addsub>v2df3): Renamed to ... 20655 (sse3_h<plusminus_insn>v2df3): This. 20656 (<plusminus_insn><mode>3): New. 20657 (*<plusminus_insn><mode>3): Likewise. 20658 (sse2_<plusminus_insn><mode>3): Likewise. 20659 (add<mode>): Removed. 20660 (*add<mode>3): Likewise. 20661 (sse2_ssadd<mode>3): Likewise. 20662 (sse2_usadd<mode>3): Likewise. 20663 (sub<mode>3): Likewise. 20664 (*sub<mode>3): Likewise. 20665 (sse2_sssub<mode>3): Likewise. 20666 (sse2_ussub<mode>3): Likewise. 20667 206682008-05-05 Benjamin Kosnik <bkoz@redhat.com> 20669 20670 * gthr-single.h: Add in required interface elements as per gthr.h. 20671 Add stub types for __gthread_key_t, __gthread_once_t. Add defines 20672 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT. 20673 Generalize UNUSED macro. 20674 (__gthread_once): Add. 20675 (__gthread_key_create): Add. 20676 (__gthread_key_delete): Add. 20677 (__gthread_getspecific): Add. 20678 (__gthread_setspecific): Add. 20679 206802008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com> 20681 20682 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have 20683 the same size types for the indirect reference on the rhs, then 20684 create a VCE. 20685 206862008-05-05 Uros Bizjak <ubizjak@gmail.com> 20687 20688 * config/i386/i386.md 20689 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only 20690 one insn template instead of template series. 20691 (*xordi_1_rex64): Ditto. 20692 (*xordi_2_rex64): Ditto. 20693 206942008-05-05 Ira Rosen <irar@il.ibm.com> 20695 20696 PR tree-optimization/36119 20697 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1 20698 in case of SLP. 20699 207002008-06-04 Jan Hubicka <jh@suse.cz> 20701 20702 tree-optimization/36100 20703 * tree-pass.h (pass_O0_always_inline): Declare. 20704 * ipa-inline.c (inline_transform): Remove dead code. 20705 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline, 20706 pass_O0_always_inline): New. 20707 * passes.c (init_optimization_passes): Add pass_O0_always_inline. 20708 207092008-05-04 Kai Tietz <kai.tietz@onevision.com> 20710 20711 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative 20712 mnemonic in this_param move for TARGET_64BIT. 20713 207142008-05-04 Uros Bizjak <ubizjak@gmail.com> 20715 20716 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives. 20717 (*strmovsi_rex_1): Ditto. 20718 (*strsetsi_1): Ditto. 20719 (*strsetsi_rex_1): Ditto. 20720 20721 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and 20722 adddicc expanders using SWI mode iterator. 20723 207242008-05-04 H.J. Lu <hongjiu.lu@intel.com> 20725 20726 PR target/36121 20727 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three 20728 argument handling. 20729 207302008-05-04 David S. Miller <davem@davemloft.net> 20731 20732 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes. 20733 (sparc*-*-linux*): Use linux.h in tm_file. 20734 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch 20735 compiler defaulting to 32-bit. 20736 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint, 20737 no longer needed. 20738 * config/sparc/linux.h: Remove definitions now obtained 20739 properly from linux.h 20740 * config/sparc/linux64.h: Likewise. 20741 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we 20742 don't want this setting for 32-bit builds in a biarch compiler. 20743 * doc/install.texi: Add sparc-linux to list of targets 20744 supporting --enable-targets=all. 20745 207462008-05-03 Andrew Pinski <pinskia@gmail.com> 20747 20748 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies. 20749 207502008-05-03 H.J. Lu <hongjiu.lu@intel.com> 20751 20752 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF 20753 after V4SI_FTYPE_V8HI. 20754 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after 20755 case V4SI_FTYPE_V2DF. 20756 207572008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com> 20758 20759 * doc/invoke.texi (max-flow-memory-locations): Removed. 20760 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed. 20761 207622008-05-03 Richard Guenther <rguenther@suse.de> 20763 20764 PR middle-end/34973 20765 * opts.c (set_Wstrict_aliasing): Handle the turn-off case. 20766 207672008-05-02 David S. Miller <davem@davemloft.net> 20768 20769 * config.gcc (need_64bit_hwint): Document libcpp dependency. 20770 207712008-05-02 Simon Baldwin <simonb@google.com> 20772 20773 PR bootstrap/36108 20774 * c-common.h (warn_array_subscript_range): Removed. 20775 * c-common.c (warn_array_subscript_range): Ditto. 20776 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2. 20777 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range. 20778 207792008-05-02 H.J. Lu <hongjiu.lu@intel.com> 20780 20781 * config/i386/i386.c (ix86_special_builtin_type): New. 20782 (bdesc_special_args): Likewise. 20783 (ix86_expand_special_args_builtin): Likewise. 20784 (ix86_init_mmx_sse_builtins): Updated. 20785 (ix86_expand_builtin): Updated. 20786 (ix86_expand_store_builtin): Removed. 20787 (ix86_expand_unop_builtin): Likewise. 20788 20789 * config/i386/mm3dnow.h (__v2sf): Moved to ... 20790 * config/i386/mmintrin.h (__v2sf): Here. 20791 20792 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with 20793 const __v2sf. 20794 (_mm_loadl_pi): Likewise. 20795 (_mm_storeh_pi): Replace __v2si with __v2sf. 20796 (_mm_storel_pi): Likewise. 20797 20798 * doc/extend.texi: Correct __builtin_ia32_loadhps, 20799 __builtin_ia32_loadlps, __builtin_ia32_storehps, 20800 __builtin_ia32_storelps, __builtin_ia32_loadhpd and 20801 __builtin_ia32_loadlpd. 20802 208032008-05-02 H.J. Lu <hongjiu.lu@intel.com> 20804 20805 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT, 20806 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE. 20807 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge. 20808 (ix86_init_mmx_sse_builtins): Updated. 20809 (ix86_expand_args_builtin): Likewise. 20810 (ix86_expand_builtin): Likewise. 20811 (ix86_expand_unop1_builtin): Renamed to ... 20812 (ix86_expand_unop_vec_merge_builtin): This. 20813 208142008-05-01 Jan Hubicka <jh@suse.cz> 20815 20816 PR bootstrap/36100 20817 * ipa-inline.c (inline_generate_summary): Make static. 20818 (inline_transform): Do not call inlining at -O0; make static. 20819 * passes.c (execute_todo): Add sanity check. 20820 (execute_one_ipa_transform_pass): Execute proper flags. 20821 208222008-05-01 Eric Botcazou <ebotcazou@adacore.com> 20823 20824 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment. 20825 (DECL_NONADDRESSABLE_P): Likewise. 20826 * alias.c (record_component_aliases): Fix comment. 20827 208282008-05-01 Simon Baldwin <simonb@google.com> 20829 20830 * c-common.h (warn_array_subscript_range): New function. 20831 * c-common.c (warn_array_subscript_range): Ditto. 20832 * tree-vrp.c (check_array_ref): Corrected code to agree with 20833 comment, ignoring only arrays of size 0 or size 1. 20834 * c-typeck.c (build_array_ref): Call warn_array_subscript_range. 20835 208362008-05-01 H.J. Lu <hongjiu.lu@intel.com> 20837 20838 * config/i386/i386.c (ix86_builtin_type): Replace 20839 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT. 20840 (bdesc_args): Updated. 20841 (ix86_init_mmx_sse_builtins): Likewise. 20842 (ix86_expand_args_builtin): Likewise. 20843 20844 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long 20845 with __v1di. 20846 20847 * doc/extend.texi: Correct __builtin_ia32_palignr. 20848 208492008-05-01 H.J. Lu <hongjiu.lu@intel.com> 20850 20851 PR target/36095 20852 * config/i386/i386.c (bdesc_crc32): Removed. 20853 (ix86_expand_crc32): Likewise. 20854 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with 20855 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with 20856 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64, 20857 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and 20858 UINT_FTYPE_UINT_UCHAR. 20859 (bdesc_args): Updated. Add crc32 builtins. 20860 (ix86_init_mmx_sse_builtins): Updated. 20861 (ix86_expand_args_builtin): Updated to support subreg. 20862 20863 * doc/extend.texi: Correct __builtin_ia32_crc32di. 20864 208652008-05-01 Jan Hubicka <jh@suse.cz> 20866 20867 * tree-pass.h (opt_pass): Add IPA_PASS. 20868 (varpool_node, cgraph_node): Forward declare. 20869 (ipa_opt_pass): Define. 20870 (pass_ipa_inline): Turn into ipa_opt_pass. 20871 (pass_apply_inline): Remove. 20872 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass. 20873 (apply_inline): Turn into .... 20874 (inline_transform): ... this one. 20875 (inline_generate_summary): New function. 20876 (pass_apply_inline): Remove. 20877 * function.h (ipa_opt_pass): Forward declare structure; typedef; 20878 vector. 20879 (struct function): Add ipa_transforms_to_apply. 20880 * passes.c (register_one_dump_file): Work on IPA_PASS. 20881 (init_optimization_passes): Remove pass_inline_parameters and 20882 pass_apply_inline. 20883 (pass_init_dump_file, pass_fini_dump_file): Break out from .... 20884 (execute_one_pass) ... here; apply transforms when possible. 20885 (add_ipa_transform_pass, execute_ipa_summary_asses, 20886 execute_one_ipa_transform_pass): New. 20887 (execute_ipa_pass_list): Update for IPA_PASS type. 20888 208892008-05-01 H.J. Lu <hongjiu.lu@intel.com> 20890 20891 * config/i386/i386.c (ix86_builtin_type): Add 20892 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and 20893 V2DI_FTYPE_V2DI_V2DI_UINT_UINT. 20894 (bdesc_args): Add SSE4a builtins. 20895 (ix86_init_mmx_sse_builtins): Updated. 20896 (ix86_expand_args_builtin): Likewise. 20897 (ix86_expand_builtin): Likewise. 20898 208992008-05-01 H.J. Lu <hongjiu.lu@intel.com> 20900 20901 * config/i386/i386.c (ix86_builtin_type): Add 20902 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT, 20903 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT, 20904 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT, 20905 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT, 20906 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT, 20907 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT, 20908 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT, 20909 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT 20910 and DI_FTYPE_DI_DI_INT. 20911 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins. 20912 (ix86_init_mmx_sse_builtins): Updated. 20913 (ix86_expand_args_builtin): Likewise. 20914 (ix86_expand_builtin): Likewise. 20915 (ix86_expand_binop_imm_builtin): Removed. 20916 20917 * doc/extend.texi: Correct __builtin_ia32_palignr128. 20918 209192008-04-30 Richard Guenther <rguenther@suse.de> 20920 20921 PR tree-optimization/32921 20922 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA. 20923 209242008-04-30 Richard Sandiford <rsandifo@nildram.co.uk> 20925 20926 * config/arm/arm.c (arm_unwind_emit): Use 20927 crtl->all_throwers_are_sibcalls instead of 20928 cfun->all_throwers_are_sibcalls. 20929 (arm_output_fn_unwind): Likewise. 20930 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table 20931 instead of cfun->uses_pic_offset_table. 20932 (frv_expand_prologue): Likewise. 20933 (frv_frame_pointer_required): Likewise. 20934 (frv_expand_fdpic_call): Likewise. 20935 (frv_emit_movsi): Likewise. 20936 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use 20937 cfun->returns_pcc_struct instead of 20938 current_function_returns_pcc_struct. 20939 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return 20940 instead of cfun->calls_eh_return. 20941 (m32c_pushm_popm): Likewise. 20942 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus 20943 "extern" declaration. 20944 209452008-04-30 Richard Guenther <rguenther@suse.de> 20946 20947 PR tree-optimization/21636 20948 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a 20949 constant address. 20950 (evaluate_stmt): Print the likely value. 20951 (ccp_visit_stmt): Avoid excessive vertical spacing. 20952 209532008-04-30 Rafael Esp��ndola <espindola@google.com> 20954 20955 * builtins.c (fold_call_expr): Return realret. 20956 * tree-ssa-threadedge.c 20957 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to 20958 __builtin_object_size. 20959 209602008-04-30 Seongbae Park <seongbae.park@gmail.com> 20961 20962 * gcc.c (wrapper_string): New variable. 20963 (insert_wrapper): New function. 20964 (execute): New option -wrapper. 20965 * doc/invoke.texi (Overall Options): New driver option -wrapper. 20966 209672008-04-30 Nathan Froyd <froydnj@codesourcery.com> 20968 20969 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm, 20970 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm, 20971 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out 20972 from... 20973 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file. 20974 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm, 20975 config/rs6000/e500crtres64gprctr.asm, 20976 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm, 20977 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm, 20978 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm, 20979 config/rs6000/e500crtsav64gprctr.asm, 20980 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm, 20981 config/rs6000/e500crtsavg64gprctr.asm: New files. 20982 * config/rs6000/t-ppccomm: Add build rules for new files. 20983 (LIB2FUNCS_STATIC_EXTRA): Add new files. 20984 * config/rs6000/t-netbsd: Add build rules for new files. 20985 (LIB2FUNCS_STATIC_EXTRA): New variable. 20986 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o 20987 (CRTSAVRES_DEFAULT_SPEC): Likewise. 20988 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise. 20989 209902008-04-30 H.J. Lu <hongjiu.lu@intel.com> 20991 20992 * config/i386/i386.c (ix86_builtin_type): Add 20993 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI, 20994 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI, 20995 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI, 20996 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI, 20997 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI, 20998 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF, 20999 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI, 21000 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF, 21001 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI, 21002 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI, 21003 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI, 21004 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI, 21005 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI, 21006 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF, 21007 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP, 21008 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI, 21009 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF, 21010 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and 21011 V1DI_FTYPE_V2SI_V2SI. 21012 (bdesc_2arg): Moved to ... 21013 (bdesc_args): Here. 21014 (ix86_init_mmx_sse_builtins): Updated. 21015 (ix86_expand_args_builtin): Updated. Take a pointer 21016 to const struct builtin_description. Handle comparison 21017 builtin functions. 21018 (ix86_expand_sse_compare): Take a new argument for swapping operands. 21019 (ix86_expand_builtin): Updated. 21020 21021 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ... 21022 (ssse3_pmaddubsw128): This. 21023 (ssse3_pmaddubswv4hi3): Renamed to ... 21024 (ssse3_pmaddubsw): This. 21025 21026 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype. 21027 (__builtin_ia32_packssdw128): Likewise. 21028 (__builtin_ia32_packuswb128): Likewise. 21029 (__builtin_ia32_pmaddubsw): Likewise. 21030 (__builtin_ia32_pmaddubsw128): Likewise. 21031 210322008-04-30 Richard Guenther <rguenther@suse.de> 21033 21034 PR tree-optimization/14847 21035 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function. 21036 (recognize_bits_test): Use it. 21037 (recognize_single_bit_test): Likewise. 21038 210392008-04-30 Martin Jambor <mjambor@suse.cz> 21040 21041 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg 21042 instead of setting number of formal parameters to zero. 21043 (ipcp_init_stage): Do not set the number of actual parameters to zero 21044 either. 21045 (ipcp_propagate_stage): Explicitly skipping all calls to nodes 21046 which are called with variable number of arguments. 21047 (ipcp_insert_stage): Explicitely skipping all nodes which are 21048 called with variable number of arguments. 21049 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 21050 number of parameters. 21051 21052 * ipa-prop.h (struct ipa_node_params): Added flag 21053 called_with_var_arguments 21054 (ipa_set_param_count): Added. Changed sole setter to use it. 21055 (ipa_get_param_count): Added. All readers of param_count 21056 converted to use it instead. 21057 (ipa_set_called_with_variable_arg): Added. 21058 (ipa_is_called_with_var_arguments): Added. 21059 (ipa_get_ith_param): Added. All readers of param_decls converted 21060 to use it instead. 21061 (ipa_set_cs_argument_count): Added, sole writer to argument_count 21062 changed to use it. 21063 (ipa_get_cs_argument_count): Added, all readers of argument_count 21064 changed to cal it. 21065 (ipa_get_ith_jump_func): Added. Accessors of jump values changed 21066 to use it. 21067 21068 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice 21069 (struct ipcp_lattice): Renamed cval_type to type 21070 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices 21071 21072 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree 21073 (ipcp_cval_set_cvalue): Changed type of parameter value to tree 21074 (ipcp_insert_stage): Changed the type of variable cvalue to tree 21075 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree 21076 (build_const_val): Changed the type of parameter cvalue to tree 21077 (ipcp_propagate_const): Changed the type of parameter cvalue to tree 21078 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type 21079 21080 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 21081 constant 21082 21083 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list 21084 (ipa_methodlist_not_empty): Removed, the sole user now checks directly 21085 (ipa_add_method): Renamed to ipa_push_func_to_list 21086 (ipa_remove_method): Renamed to ipa_pop_func_from_list 21087 (ipa_callsite_param_count): Removed. 21088 (ipa_callsite_param_count_set): Removed. 21089 (ipa_callsite_param): Removed. 21090 (ipa_callsite_callee): Removed. 21091 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions 21092 (ipa_callsite_compute_count): Renamed to ipa_count_arguments 21093 (ipa_method_formal_count): Removed. 21094 (ipa_method_formal_count_set): Removed. 21095 (ipa_method_get_tree): Removed. 21096 (ipa_method_tree_map_create): Removed. 21097 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array 21098 (ipa_create_param_decls_array): Creates the array itself 21099 (ipa_create_param_decls_array): Temporary variable info instead of 21100 a few dereferences. 21101 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params 21102 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications 21103 (get_type): Removed. 21104 (ipa_jf_get_info_type): Removed. 21105 (ipa_node_create): Renamed to ipa_create_node_params 21106 (ipa_free): Renamed to ipa_free_all_node_params 21107 (ipa_nodes_create): Renamed to ipa_create_all_node_params 21108 (ipa_edges_create): Renamed to ipa_create_all_edge_args 21109 (ipa_edges_free): Renamed to ipa_free_all_edge_args 21110 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed 21111 (ipa_free_all_node_params): Deallocation to jump_functions moved to 21112 ipa_free_all_edge_args 21113 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps 21114 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified 21115 (ipa_create_methodlist_node): Removed. 21116 (ipa_methodlist_method): Removed. 21117 (ipa_methodlist_method_set): Removed. 21118 (ipa_methodlist_next_method): Removed. 21119 (ipa_methodlist_next_method_set): Removed. 21120 (ipa_method_is_modified): Removed. 21121 (ipa_method_modify_create): Removed. 21122 (ipa_method_modify_init): Temporary variable info instead of a few 21123 dereferences. 21124 (ipa_detect_param_modifications): Temporary variable info instead of 21125 a few dereferences. 21126 (ipa_compute_jump_functions): Temporary variable info instead of 21127 a few dereferences. 21128 (ipa_method_modify_set): Removed. 21129 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index 21130 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 21131 than craph_node as the first parameter. 21132 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications 21133 (ipa_method_modify_init): Removed. 21134 (ipa_compute_jump_functions): Added a temp variable instead of 21135 repeatadly dereferencing the cgraph_edge.aux pointer 21136 (ipa_callsite_param_set_type): Removed. 21137 (ipa_compute_jump_functions): i renamed to index and moved to 21138 an inner block 21139 (ipa_callsite_param_set_info_type_formal): Removed. 21140 (ipa_callsite_param_set_info_type): Removed. 21141 (ipa_callsite_param_map_create): Removed. 21142 (ipa_callsite_tree): Removed. 21143 (ipa_callsite_caller): Removed. 21144 (ipa_pop_func_from_list): return_method removed to return_func 21145 21146 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type, 21147 prefixed all values with IPA_. Changed all users. 21148 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 21149 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 21150 and FORMAL_IPATYPE IPA_PASS_THROUGH. 21151 (union parameter_info): Renamed to jump_func_value. 21152 (union jump_func_value): Renamed value to constant 21153 (struct ipa_jump_func): Renamed info_type to value 21154 (struct ipa_node): Renamed to ipa_node_params 21155 (struct ipa_node_params): Renamed ipa_arg_num to param_count 21156 (struct ipa_node_params): Renamed ipa_param_tree to param_decls 21157 (struct ipa_node_params): Renamed ipa_mod to modified_flags 21158 (struct ipa_edge): Renamed to ipa_edge_args 21159 (struct ipa_edge_args): Renamed ipa_param_num to argument_count 21160 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions 21161 (struct ipa_methodlist): Renamed to ipa_func_list 21162 (struct ipa_func_list): method_p renamed to node, next_method 21163 renamed to next 21164 (ipa_methodlist_p): Removed, switched all users to struct pointer 21165 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX 21166 211672008-04-30 Alan Modra <amodra@bigpond.net.au> 21168 21169 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define. 21170 (rs6000_emit_epilogue): Use backchain to restore only when we 21171 have a large frame. Make use of frame pointer to restore if we 21172 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP. 21173 211742008-04-29 Paolo Bonzini <bonzini@gnu.org> 21175 21176 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp): 21177 Add mode to zero_extract. 21178 (sign bit tests peepholes): (Ditto.). 21179 211802008-04-29 H.J. Lu <hongjiu.lu@intel.com> 21181 21182 * config/i386/i386.c (ix86_builtins): Replace Prescott New 21183 Instructions in comments with SSE3. 21184 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128, 21185 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI, 21186 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF, 21187 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI, 21188 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI, 21189 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF, 21190 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI, 21191 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI, 21192 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF, 21193 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI, 21194 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF, 21195 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI. 21196 (bdesc_sse_args): Renamed to ... 21197 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP, 21198 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW, 21199 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and 21200 IX86_BUILTIN_FABSQ. 21201 (bdesc_1arg): Moved to ... 21202 (bdesc_args): Here. 21203 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New 21204 Instructions in comments with SSE3. 21205 (ix86_expand_sse_operands_builtin): Renamed to ... 21206 (ix86_expand_args_builtin): This. Updated. 21207 (ix86_expand_unop1_builtin): Update comments. 21208 (ix86_expand_builtin): Updated. 21209 212102008-04-29 Richard Guenther <rguenther@suse.de> 21211 21212 PR tree-optimization/36078 21213 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): 21214 Update virtual SSA form after cleaning up the CFG. 21215 212162008-04-29 Richard Guenther <rguenther@suse.de> 21217 21218 PR middle-end/15255 21219 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C. 21220 212212008-04-29 Richard Guenther <rguenther@suse.de> 21222 21223 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove. 21224 (compute_may_aliases): Do not call finalize_ref_all_pointers. 21225 (compute_flow_insensitive_aliasing): Do not treat 21226 PTR_IS_REF_ALL pointers special. 21227 (get_smt_for): Likewise. 21228 (may_alias_p): Re-structure. 21229 (is_escape_site): A ref-all pointer conversion is not an escape site. 21230 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat 21231 PTR_IS_REF_ALL pointers special. 21232 * tree-ssa-structalias.h (struct alias_info): Remove 21233 ref_all_symbol_mem_tag field. 21234 (PTR_IS_REF_ALL): Remove. 21235 212362008-04-29 Richard Guenther <rguenther@suse.de> 21237 21238 PR middle-end/36077 21239 * fold-const.c (extract_muldiv_1): In combining division constants 21240 make sure to never overflow. 21241 212422008-04-29 Nick Clifton <nickc@redhat.com> 21243 21244 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo. 21245 212462008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 21247 21248 PR bootstrap/35169 21249 * optc-gen.awk: Work around HP-UX/IA awk bug. 21250 212512008-04-28 Danny Smith <dannysmith@users.sourceforge.net> 21252 21253 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my 21254 2008-04-25 commit. 21255 212562008-04-28 Uros Bizjak <ubizjak@gmail.com> 21257 21258 PR target/36073 21259 * config/i386/i386.md 21260 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): 21261 Change operand 1 predicate to nonimmediate_operand. 21262 212632008-04-28 Jakub Jelinek <jakub@redhat.com> 21264 21265 PR debug/36060 21266 * dwarf2out.c (struct die_struct): Mark as chain_circular through 21267 die_sub field. 21268 * gengtype.c (walk_type, write_func_for_structure): Handle 21269 chain_circular. 21270 * doc/gty.texi: Document chain_circular. 21271 212722008-04-28 Richard Guenther <rguenther@suse.de> 21273 21274 PR tree-optimization/36066 21275 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing 21276 SCEV and loop. 21277 212782008-04-28 Uros Bizjak <ubizjak@gmail.com> 21279 21280 PR target/36064 21281 * config/i386/i386.md 21282 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): 21283 Use match_scratch instead of match_operand for operands 3 and 4. 21284 212852008-04-27 Richard Guenther <rguenther@suse.de> 21286 21287 PR tree-optimization/18754 21288 PR tree-optimization/34223 21289 * tree-pass.h (pass_complete_unrolli): Declare. 21290 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print 21291 loop size before and after unconditionally of UL_NO_GROWTH in effect. 21292 Rewrite loop into loop closed SSA form if it is not already. 21293 (tree_unroll_loops_completely): Re-structure to iterate over 21294 innermost loops with intermediate CFG cleanups. 21295 Unroll outermost loops only if requested or the code does not grow 21296 doing so. 21297 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no 21298 loops are available. 21299 (tree_vectorize): Instead do so here. 21300 (tree_complete_unroll): Also unroll outermost loops. 21301 (tree_complete_unroll_inner): New function. 21302 (gate_tree_complete_unroll_inner): Likewise. 21303 (pass_complete_unrolli): New pass. 21304 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record 21305 uses outside of the loop. 21306 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA 21307 form if it is available. 21308 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter. 21309 * passes.c (init_optimization_passes): Schedule complete inner 21310 loop unrolling pass before the first CCP pass after final inlining. 21311 213122008-04-27 Nathan Sidwell <nathan@codesourcery.com> 21313 21314 * targhooks.h (default_emutls_var_fields, 21315 default_emutls_var_init): Declare. 21316 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL. 21317 * target.h (struct gcc_target): Add struct emutls member. 21318 * target-def.h (TARGET_EMUTLS_GET_ADDRESS, 21319 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION, 21320 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX, 21321 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS, 21322 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS, 21323 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New. 21324 (TARGET_INITIALIZER): Add TARGET_EMUTLS. 21325 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS, 21326 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure. 21327 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can 21328 emit debug information. 21329 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL. 21330 * varasm.c: Include targhooks.h. 21331 (emutls_object_section, emutls_tmpl_section): New. 21332 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove. 21333 (EMUTLS_SEPARATOR): New. 21334 (prefix_name): New. 21335 (get_emutls_object_name): New. 21336 (default_emutls_var_fields): New, broken out of ... 21337 (get_emutls_object_type): ... here. Adjust to use target hooks. 21338 (get_emutls_init_templ_addr): Adjust to use target hooks. 21339 (emutls_decl): Adjust to use target hooks. 21340 (emutls_finish): Likewise. 21341 (default_emutls_var_init): New, broken out of ... 21342 (assemble_variable): ... here. Adjust to use target hooks. 21343 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR, 21344 SECCAT_EMUTLS_TMPL. 21345 * c-common.c (handle_section_attribute): Prevent overriding 21346 sections for emulated tls with special sections. 21347 * config/i386/i386.c (x86_64_elf_select_section): Add 21348 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL. 21349 (x86_64_elf_unique_section): Likewise. 21350 * config/vxworks.c: Include tree.h. 21351 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New. 21352 (vxworks_override_options): Set TLS scheme. 21353 * doc/tm.texi (Emulated TLS): New node. 21354 213552008-04-26 Simon Baldwin <simonb@google.com> 21356 21357 PR c/35652 21358 * builtins.c (c_strlen): Suppressed multiple warnings that can occur 21359 with propagated string constants. 21360 213612008-04-26 Uros Bizjak <ubizjak@gmail.com> 21362 21363 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X' 21364 constraint for operand 2 when operand 0 is memory operand. 21365 (fix_truncdi_i387_with_temp): Use 'X' constraint for operand 4 when 21366 operand 0 is memory operand. 21367 (fix_trunc<mode>_i387_with_temp): Ditto. 21368 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for 21369 operand 2 when operand 1 is memory operand. 21370 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto. 21371 (*floatsi<mode>2_vector_sse_with_temp): Ditto. 21372 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto. 21373 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto. 21374 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for 21375 operands 2,3 and 4 when operand 1 is memory operand. 21376 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0 21377 is memory operand. 21378 (fistdi2_floor_with_temp): Ditto. 21379 (fist<mode>2_floor_with_temp): Ditto. 21380 (fistdi2_ceil_with_temp): Ditto. 21381 (fist<mode>2_ceil_with_temp): Ditto. 21382 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1. 21383 213842008-04-26 David Daney <ddaney@avtrex.com> 21385 21386 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New 21387 unspec_volitile. 21388 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE, 21389 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION, 21390 UNSPEC_UPDATE_GOT_VERSION): Renumber. 21391 (sync_compare_and_swap<mode>): New expand for QI and HI modes. 21392 (compare_and_swap_12): New insn. 21393 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare. 21394 * config/mips/mips.c (mips_force_binary): New function. 21395 (mips_emit_int_order_test, mips_expand_synci_loop): Use it. 21396 (mips_expand_compare_and_swap_12): New function. 21397 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro. 21398 213992008-04-25 Jan Hubicka <jh@suse.cz> 21400 21401 PR testsuite/35843 21402 * cfgexpand.c (pass_expand): Turn into RTL pass. 21403 * passes.c (execute_one_pass): Do pass typechecking after execution. 21404 * tree-pass.h (pass_expand): Turn into RTL pass. 21405 21406 * function.h (struct rtl_data): Move here fields 21407 accesses_prior_frames, calls_eh_return, saves_all_registers, 21408 has_nonlocal_goto, has_asm_statement, is_thunk, 21409 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool, 21410 uses_pic_offset_table, uses_eh_lsda, tail_call_emit, 21411 arg_pointer_save_area_init from struct function; turn into bool. 21412 (struct function): Move 21413 calls_eh_return, saves_all_registers, has_nonlocal_goto, 21414 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack, 21415 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda, 21416 tail_call_emit, arg_pointer_save_area_init 21417 into struct rtl_data. Remove recursive_call_emit and gimplified flags. 21418 (current_function_returns_struct, current_function_returns_pcc_struct, 21419 current_function_calls_setjmp, current_function_calls_alloca, 21420 current_function_accesses_prior_frames, 21421 current_function_calls_eh_return, current_function_is_thunk, 21422 current_function_stdarg, current_function_profile, 21423 current_function_limit_stack, current_function_uses_pic_offset_table, 21424 current_function_uses_const_pool, current_function_has_nonlocal_label, 21425 current_function_saves_all_registers, 21426 current_function_has_nonlocal_goto, 21427 current_function_has_asm_statement): Remove accesor macros. 21428 * ra-conflict.c (global_conflicts): Update. 21429 * tree-tailcall.c (suitable_for_tail_opt_p): Update. 21430 (suitable_for_tail_call_opt_p): Update. 21431 * builtins.c (expand_builtin_return_addr): Update. 21432 (expand_builtin_setjmp_setup): Update. 21433 (expand_builtin_nonlocal_goto): Update. 21434 * final.c (final_start_function): Update. 21435 (profile_function): Update. 21436 (leaf_function_p): Update. 21437 (only_leaf_regs_used): Update. 21438 * df-scan.c (df_get_exit_block_use_set): Update. 21439 * dojump.c (clear_pending_stack_adjust): Update. 21440 * tree-stdarg.c (gate_optimize_stdarg): Update. 21441 * gimple-low.c (lower_function_body): Update. 21442 * global.c (compute_regsets): Update. 21443 (global_alloc): Update. 21444 * dwarf2out.c (dwarf2out_begin_prologue): Update. 21445 * expr.c (expand_assignment): Update. 21446 * dse.c (dse_step0): Update. 21447 (dse_step1): Update. 21448 * c-decl.c (store_parm_decls): Update. 21449 * local-alloc.c (combine_regs): Update. 21450 (find_free_reg): Update. 21451 * function.c (assign_parms_augmented_arg_list): Update. 21452 (assign_parm_find_data_types): Update. 21453 (assign_parms): Update. 21454 (allocate_struct_function): Update. 21455 (expand_function_start): Update. 21456 (expand_function_end): Update. 21457 (get_arg_pointer_save_area): Update. 21458 (thread_prologue_and_epilogue_insns): Update. 21459 (rest_of_match_asm_constraints): Update. 21460 * stor-layout.c (variable_size): Update. 21461 * gcse.c (gcse_main): Update. 21462 (bypass_jumps): Update. 21463 * gimplify.c (gimplify_function_tree): Update. 21464 * calls.c (emit_call_1): Update. 21465 (expand_call): Update. 21466 * bt-load.c (compute_defs_uses_and_gen): Update. 21467 * except.c (sjlj_assign_call_site_values): Update. 21468 (sjlj_emit_function_enter): Update. 21469 (can_throw_external): Update. 21470 (set_nothrow_function_flags): Update. 21471 (expand_builtin_unwind_init): Update. 21472 (expand_eh_return): Update. 21473 (convert_to_eh_region_ranges): Update. 21474 (output_function_exception_table): Update. 21475 * emit-rtl.c (gen_tmp_stack_mem): Update. 21476 * cfgexpand.c (expand_used_vars): Update. 21477 (tree_expand_cfg): Update. 21478 * cfgcleanup.c (rest_of_handle_jump): Update. 21479 * explow.c (allocate_dynamic_stack_space): Update. 21480 * varasm.c (assemble_start_function): Update. 21481 (force_const_mem): Update. 21482 (mark_constant_pool): Update. 21483 * tree-optimize.c (tree_rest_of_compilation): Update. 21484 * stack-ptr-mod.c (notice_stack_pointer_modification): Update. 21485 * tree-cfg.c (notice_special_calls): Update. 21486 (is_ctrl_altering_stmt): Update. 21487 (tree_can_make_abnormal_goto): Update. 21488 (tree_purge_dead_abnormal_call_edges): Update. 21489 * config/alpha/predicates.md: Update. 21490 * config/alpha/alpha.c (alpha_sa_mask): Update. 21491 (alpha_sa_size): Update. 21492 (alpha_does_function_need_gp): Update. 21493 (alpha_expand_prologue): Update. 21494 (alpha_start_function): Update. 21495 (alpha_output_function_end_prologue): Update. 21496 (alpha_expand_epilogue): Update. 21497 * config/frv/frv.c (frv_stack_info): Update. 21498 (frv_expand_epilogue): Update. 21499 * config/s390/s390.c (s390_regs_ever_clobbered): Update. 21500 (s390_register_info): Update. 21501 (s390_frame_info): Update. 21502 (s390_init_frame_layout): Update. 21503 (s390_can_eliminate): Update. 21504 (save_gprs): Update. 21505 * config/spu/spu.c (spu_split_immediate): Update. 21506 (need_to_save_reg): Update. 21507 (spu_expand_prologue): Update. 21508 (spu_expand_epilogue): Update. 21509 * config/sparc/sparc.md: Update. 21510 * config/sparc/sparc.c (eligible_for_return_delay): Update. 21511 (sparc_tls_got): Update. 21512 (legitimize_pic_address): Update. 21513 (sparc_emit_call_insn): Update. 21514 (sparc_expand_prologue): Update. 21515 (output_return): Update. 21516 (print_operand): Update. 21517 (sparc_function_ok_for_sibcall): Update. 21518 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update. 21519 * config/m32r/m32r.md: Update. 21520 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update. 21521 (m32r_compute_frame_size): Update. 21522 (m32r_expand_prologue): Update. 21523 (m32r_expand_epilogue): Update. 21524 (m32r_legitimize_pic_address): Update. 21525 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update. 21526 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update. 21527 * config/i386/i386.c (ix86_frame_pointer_required): Update. 21528 (gen_push): Update. 21529 (ix86_save_reg): Update. 21530 (ix86_compute_frame_layout): Update. 21531 (ix86_expand_prologue): Update. 21532 (ix86_expand_epilogue): Update. 21533 * config/sh/sh.c (output_stack_adjust): Update. 21534 (calc_live_regs): Update. 21535 (sh5_schedule_saves): Update. 21536 (sh_expand_prologue): Update. 21537 (sh_expand_epilogue): Update. 21538 (sh_setup_incoming_varargs): Update. 21539 (sh_allocate_initial_value): Update. 21540 (sh_get_pr_initial_val): Update. 21541 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update. 21542 * config/sh/sh.md (label:): Update. 21543 * config/avr/avr.c (out_movhi_mr_r): Update. 21544 * config/crx/crx.h (enum): Update. 21545 * config/xtensa/xtensa.h (along): Update. 21546 * config/stormy16/stormy16.c Update. 21547 (xstormy16_compute_stack_layout): Update. 21548 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update. 21549 (fr30_expand_prologue): Update. 21550 * config/cris/cris.c (cris_conditional_register_usage): Update. 21551 (cris_reg_saved_in_regsave_area): Update. 21552 (cris_initial_frame_pointer_offset): Update. 21553 (cris_simple_epilogue): Update. 21554 (cris_expand_prologue): Update. 21555 (cris_expand_epilogue): Update. 21556 (cris_expand_pic_call_address): Update. 21557 (cris_asm_output_symbol_ref): Update. 21558 (cris_asm_output_label_ref): Update. 21559 * config/cris/cris.md Update. 21560 * config/iq2000/iq2000.c (compute_frame_size): Update. 21561 (iq2000_expand_epilogue): Update. 21562 * config/mt/mt.h (save_direction): Update. 21563 * config/mn10300/mn10300.c (mn10300_function_value): Update. 21564 * config/ia64/ia64.c (ia64_compute_frame_size): Update. 21565 (ia64_secondary_reload_class): Update. 21566 * config/m68k/m68k.c (m68k_save_reg): Update. 21567 (m68k_expand_prologue): Update. 21568 (m68k_expand_epilogue): Update. 21569 (legitimize_pic_address): Update. 21570 * config/rs6000/rs6000.c (rs6000_got_register): Update. 21571 (first_reg_to_save): Update. 21572 (first_altivec_reg_to_save): Update. 21573 (compute_vrsave_mask): Update. 21574 (compute_save_world_info): Update. 21575 (rs6000_stack_info): Update. 21576 (spe_func_has_64bit_regs_p): Update. 21577 (rs6000_ra_ever_killed): Update. 21578 (rs6000_emit_eh_reg_restore): Update. 21579 (rs6000_emit_allocate_stack): Update. 21580 (rs6000_emit_prologue): Update. 21581 (rs6000_emit_epilogue): Update. 21582 (rs6000_output_function_epilogue): Update. 21583 (output_profile_hook): Update. 21584 (rs6000_elf_declare_function_name): Update. 21585 * config/rs6000/rs6000.h (rs6000_args): Update. 21586 * config/rs6000/rs6000.md: Update. 21587 * config/mcore/mcore.c (mcore_expand_prolog): Update. 21588 * config/arc/arc.c (arc_output_function_epilogue): Update. 21589 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update. 21590 * config/darwin.c (machopic_function_base_name): Update. 21591 * config/score/score3.c (score3_compute_frame_size): Update. 21592 (rpush): Update. 21593 (rpop): Update. 21594 (score3_epilogue): Update. 21595 * config/score/score7.c (score7_compute_frame_size): Update. 21596 (score7_prologue): Update. 21597 (score7_epilogue): Update. 21598 * config/score/score.h (FRAME_POINTER_REQUIRED): Update. 21599 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update. 21600 * config/arm/arm.c (use_return_insn): Update. 21601 (require_pic_register): Update. 21602 (arm_load_pic_register): Update. 21603 (arm_compute_save_reg0_reg12_mask): Update. 21604 (arm_compute_save_reg_mask): Update. 21605 (thumb1_compute_save_reg_mask): Update. 21606 (output_return_instruction): Update. 21607 (arm_output_function_prologue): Update. 21608 (arm_output_epilogue): Update. 21609 (arm_get_frame_offsets): Update. 21610 (arm_expand_prologue): Update. 21611 (thumb_pushpop): Update. 21612 (thumb_exit): Update. 21613 (thumb1_expand_prologue): Update. 21614 (thumb1_expand_epilogue): Update. 21615 (arm_unwind_emit): Update. 21616 (arm_output_fn_unwind): Update. 21617 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update. 21618 * config/arm/arm.md: Update. 21619 * config/pa/pa.md: Update. 21620 * config/pa/pa.c (legitimize_pic_address): Update. 21621 (compute_frame_size): Update. 21622 (hppa_expand_prologue): Update. 21623 (hppa_expand_epilogue): Update. 21624 (borx_reg_operand): Update. 21625 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update. 21626 (HARD_REGNO_RENAME_OK): Update. 21627 * config/mips/mips.c (mips_global_pointer): Update. 21628 (mips_save_reg_p): Update. 21629 (mips_compute_frame_info): Update. 21630 (mips_frame_pointer_required): Update. 21631 (mips_expand_prologue): Update. 21632 (mips_expand_epilogue): Update. 21633 (mips_can_use_return_insn): Update. 21634 (mips_reorg_process_insns): Update. 21635 * config/v850/v850.c (compute_register_save_size): Update. 21636 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update. 21637 * config/mmix/mmix.c (along): Update. 21638 (mmix_expand_epilogue): Update. 21639 * config/bfin/bfin.c (legitimize_pic_address): Update. 21640 (must_save_p): Update. 21641 (stack_frame_needed_p): Update. 21642 (add_to_reg): Update. 21643 (bfin_expand_prologue): Update. 21644 * stmt.c (expand_asm_operands): Update. 21645 * reload1.c (reload): Update. 21646 (init_elim_table): Update. 21647 216482008-04-25 Bob Wilson <bob.wilson@acm.org> 21649 21650 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall. 21651 216522008-04-25 H.J. Lu <hongjiu.lu@intel.com> 21653 21654 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE. 21655 (*mov<mode>_internal): Likewise. Support V4SF and V2DF. 21656 (mov<mode>): Removed. 21657 (*movv4sf_internal): Likewise. 21658 (*movv2df_internal): Likewise. 21659 216602008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com> 21661 21662 * config.gcc (crx-*-elf): Remove deprecation. 21663 216642008-04-25 Danny Smith <dannysmith@users.sourceforge.net> 21665 21666 * config/i386/cygming-crtend.c (register_frame_ctor): Register 21667 __gcc_deregister_frame with atexit. 21668 (deregister_frame_dtor): Remove. 21669 216702008-04-24 Nathan Froyd <froydnj@codesourcery.com> 21671 Nathan Sidwell <nathan@codesourcery.com> 21672 21673 * config/rs6000/rs6000.opt (mspe): Remove Var property. 21674 (misel): Likewise. 21675 * config/rs6000/rs6000.h (rs6000_spe): Declare. 21676 (rs6000_isel): Likewise. 21677 * config/rs6000/rs6000.c (rs6000_spe): New variable. 21678 (rs6000_isel): New variable. 21679 (rs6000_handle_option): Handle OPT_mspe and OPT_misel. 21680 216812008-04-24 Jakub Jelinek <jakub@redhat.com> 21682 21683 PR c++/35758 21684 * c-common.c (handle_vector_size_attribute): Call 21685 lang_hooks.types.reconstruct_complex_type instead of 21686 reconstruct_complex_type. 21687 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise. 21688 * config/spu/spu.c (spu_handle_vector_attribute): Likewise. 21689 * langhooks.h (struct lang_hooks_for_types): Add 21690 reconstruct_complex_type hook. 21691 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define. 21692 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it. 21693 216942008-04-24 Richard Guenther <rguenther@suse.de> 21695 21696 * c-common.h (check_builtin_function_arguments): Declare. 21697 * c-common.c (validate_nargs): New function. 21698 (check_builtin_function_arguments): Likewise. 21699 * c-typeck.c (build_function_call): Call 21700 check_builtin_function_arguments. 21701 * builtins.c (fold_builtin_classify): Remove error reporting code. 21702 (fold_builtin_unordered_cmp): Likewise. 21703 (fold_builtin_1): Likewise. 21704 (fold_builtin_n): Likewise. 21705 217062008-04-24 Jakub Jelinek <jakub@redhat.com> 21707 21708 PR tree-optimization/36008 21709 * fold-const.c (try_move_mult_to_index): If s == NULL, divide 21710 the original op1, rather than delta by step. 21711 217122008-04-22 Antoniu Pop <antoniu.pop@gmail.com> 21713 Sebastian Pop <sebastian.pop@amd.com> 21714 21715 * tree-parloops.c (take_address_of, eliminate_local_variables_1, 21716 eliminate_local_variables_stmt, eliminate_local_variables, 21717 separate_decls_in_loop_name, separate_decls_in_loop_stmt, 21718 separate_decls_in_loop, gen_parallel_loop): Make them work on a region 21719 of code delimited by two edges in the CFG. 21720 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name. 21721 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt. 21722 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate 21723 the case of parallelisation of reductions. 21724 (expr_invariant_in_region_p): New. 21725 21726 * tree-flow.h (gather_blocks_in_sese_region): Declared. 21727 * tree-cfg.c (gather_blocks_in_sese_region): Extern. 21728 217292008-04-24 Ira Rosen <irar@il.ibm.com> 21730 Richard Guenther <rguenther@suse.de> 21731 21732 PR tree-optimization/36034 21733 * tree-vect-analyze.c (vect_analyze_group_access): SLP is 21734 incapable of dealing with loads with gaps. 21735 217362008-04-24 Rafael Esp��ndola <espindola@google.com> 21737 21738 * tree-flow.h (vrp_evaluate_conditional): Change signature. 21739 * tree-ssa-propagate.c (fold_predicate_in): Update call to 21740 vrp_evaluate_conditional. 21741 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove. 21742 (vrp_evaluate_conditional): Split the cond argument. 21743 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops. 21744 (simplify_stmt_for_jump_threading): Update call to 21745 vrp_evaluate_conditional. 21746 217472008-04-24 Ira Rosen <irar@il.ibm.com> 21748 21749 PR tree-optimization/35982 21750 * tree-vect-analyze.c (vect_check_interleaving): Check that the 21751 interleaved data-refs are of the same type. 21752 217532008-04-24 Danny Smith <dannysmith@users.net> 21754 21755 * c-format.c (check_format_info_main): Use strncmp rather than a 21756 magic prefix to handle multichar length specs. 21757 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs): 21758 Don't prefix "I64" and "I32" with '\0'. 21759 217602008-04-24 Jakub Jelinek <jakub@redhat.com> 21761 21762 PR target/36015 21763 * config/i386/i386.c (init_cumulative_args): Don't pass anything 21764 in registers for -m32 only if stdarg_p (fntype). 21765 217662008-04-24 Uros Bizjak <ubizjak@gmail.com> 21767 21768 PR rtl-optimization/36006 21769 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving 21770 temp to op0 in order to avoid invalid rtx sharing. 21771 217722008-04-23 Paolo Bonzini <bonzini@gnu.org> 21773 21774 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't 21775 check TREE_INVARIANT. 21776 * tree-gimple.c (is_gimple_address): New. 21777 (is_gimple_invariant_address): Simplify using decl_address_invariant_p. 21778 * tree-gimple.h (is_gimple_address): New. 21779 * tree.h (decl_address_invariant_p): New. 21780 * tree.c (make_node_stat): Don't set TREE_INVARIANT. 21781 (build_string): Likewise. 21782 (decl_address_invariant_p): New, from is_gimple_invariant_address. 21783 (tree_invariant_p_1): Likewise. 21784 (save_expr): Use it. 21785 (tree_invariant_p): New. 21786 (skip_simple_arithmetic): Use it. 21787 (stabilize_reference_1): Use it. 21788 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT, 21789 simplify. 21790 (build1_stat): Drop code to compute TREE_INVARIANT. 21791 (build2_stat): Drop code to compute TREE_INVARIANT. 21792 (build3_stat): Drop code to compute TREE_INVARIANT. 21793 (build4_stat): Drop code to compute TREE_INVARIANT. 21794 (build5_stat): Drop code to compute TREE_INVARIANT. 21795 (build7_stat): Drop code to compute TREE_INVARIANT. 21796 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT. 21797 * tree.h (struct tree_base): Remove invariant_flag. 21798 (TREE_INVARIANT): Remove. 21799 * builtins.c (build_string_literal): Don't set TREE_INVARIANT. 21800 (fold_builtin_expect): Check TREE_CONSTANT. 21801 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment. 21802 * c-tree.h (c_expr_to_decl): Drop third parameter. 21803 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT. 21804 (build_c_cast): Don't set TREE_INVARIANT. 21805 (pop_init_level): Don't set TREE_INVARIANT. 21806 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT. 21807 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test 21808 TREE_CONSTANT. 21809 (gimplify_init_constructor): Don't set TREE_INVARIANT. 21810 (gimplify_addr_expr): Adjust comment. 21811 * tree-mudflap.c (mf_build_string): 21812 * print-tree.c (print_node): Don't print TREE_INVARIANT. 21813 * tree-nested.c (convert_nonlocal_reference): Adjust comment. 21814 * c-common.c (fix_string_type): Don't set TREE_INVARIANT. 21815 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter. 21816 * langhooks.c (lhd_expr_to_decl): Drop third parameter. 21817 * langhooks.h (struct lang_hooks): Drop third parameter from 21818 expr_to_decl. 21819 218202008-04-23 Richard Guenther <rguenther@suse.de> 21821 21822 PR tree-optimization/27799 21823 PR tree-optimization/32921 21824 PR tree-optimization/32624 21825 * tree-ssa-structalias.c (merge_smts_into): Only merge the 21826 SMTs aliases and the tag itself into the solution. 21827 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not 21828 merge the points-to solution back into the SMT aliases. 21829 (may_alias_p): Use alias_set_subset_of instead of 21830 aliases_conflict_p. A pointer which points to 21831 memory with alias set zero may access any variable. 21832 218332008-04-23 Richard Guenther <rguenther@suse.de> 21834 21835 * alias.c (alias_set_subset_of): Correctly handle asking 21836 if zero is a subset of an alias set with zero child. 21837 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic. 21838 (compute_flow_insensitive_aliasing): Correctly walk all 21839 pointers. Do not unnecessarily union sets. 21840 218412008-04-23 Richard Guenther <rguenther@suse.de> 21842 21843 PR middle-end/36021 21844 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments. 21845 218462008-04-22 Tomas Bily <tbily@suse.cz> 21847 21848 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as 21849 unreachable case. 21850 * tree-vrp.c (extract_range_from_unary_expr): Removed unused 21851 NON_LVALUE_EXPR. 21852 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise. 21853 * tree-ssa-structalias.c (get_constraint_for): Likewise. 21854 * tree-inline.c (estimate_num_insns_1): Likewise. 21855 * varasm.c (const_hash_1, compare_constant, copy_constant) 21856 (compute_reloc_for_constant, output_addressed_constants): Likewise. 21857 * emit-rtl.c (component_ref_for_mem_expr) 21858 (set_mem_attributes_minus_bitpos): Likewise. 21859 * expr.c (highest_pow2_factor, expand_expr_real_1) 21860 (is_aligning_offset): Likewise. 21861 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise. 21862 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise. 21863 * dojump.c (do_jump): Likewise. 21864 * builtins.c (get_pointer_alignment, get_memory_rtx) 21865 (integer_valued_real_p, fold_builtin_next_arg): Likewise. 21866 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise. 21867 218682008-04-23 Jakub Jelinek <jakub@redhat.com> 21869 21870 PR rtl-optimization/36017 21871 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before 21872 expanding the library call. 21873 218742008-04-22 Ian Lance Taylor <iant@google.com> 21875 21876 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather 21877 than size_in_bytes. 21878 218792008-04-22 Pat Haugen <pthaugen@us.ibm.com> 21880 21881 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost 21882 of LR/CTR moves for Power6. 21883 218842008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com> 21885 21886 PR middle-end/36003 21887 * passes.c (init_optimization_passes): Remove 21888 pass_fast_rtl_byte_dce. 21889 218902008-04-22 Uros Bizjak <ubizjak@gmail.com> 21891 21892 PR target/29096 21893 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to 21894 builtin functions to generate faster code. 21895 (_mm_cvtpu16_ps): Ditto. 21896 (_mm_cvtpi32x2_ps): Ditto. 21897 218982008-04-22 Nick Clifton <nickc@redhat.com> 21899 21900 * common.opt (ftree-loop-distribution): Add Optimization 21901 attribute. 21902 21903 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun. 21904 (frv_expand_builtin_va_start): Likewise. 21905 21906 * config/arm/arm.c (thumb_find_work_register): Fix location of 21907 argument register count. 21908 219092008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com> 21910 21911 Support scheduling for ColdFire V1 and V3 microarchitecture. 21912 Improve scheduling of multiplication instructions. 21913 21914 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1. 21915 (mac): New instruction attribute. 21916 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac. 21917 (m68k_sched_mac): New variable. 21918 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update. 21919 Handle cfv1 and cfv3. 21920 (max_insn_size): New static variable. 21921 (struct _sched_ib): New type. 21922 (sched_ib): New static variable. 21923 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables 21924 to fields of 'struct _sched_ib sched_ib'. Update all uses. 21925 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer. 21926 Update. 21927 (m68k_sched_md_init_global, m68k_sched_md_finish_global, 21928 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init 21929 new variables. Update. 21930 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle): 21931 Add modeling of cfv3 instruction buffer. Update. 21932 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare. 21933 * config/m68k/m68k.h (TUNE_CFV3): New macro. 21934 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'. 21935 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores 21936 a particular reservation applies to. 21937 (type2): Reorganize attribute values. Rename alu to alu_reg, 21938 alu_l to alu, move_l to omove. Join move to alu. Split mul 21939 to mul_l and mul_w. 21940 (cf_ib_*): Simplify description of instruction buffer. 21941 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove. 21942 (cf_mem): Split into cf_mem1 and cf_mem2. 21943 (cf_v2_move_??): Rename to cfv12_alu_??. 21944 (cf_v2_move_l_??): Rename to cfv12_omove_??. 21945 (cf_v2_mul_??): Remove reservations. 21946 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??, 21947 cfv12_emac_??, cfv12_emac_w_i0): New reservations. 21948 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to 21949 appropriate place. 21950 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01, 21951 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1, 21952 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10, 21953 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10, 21954 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call, 21955 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations. 21956 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are 21957 expansions of the above reservations for instructions of sizes 21958 1, 2 and 3 words. 21959 219602008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com> 21961 21962 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets. 21963 219642008-04-21 Adam Nemet <anemet@caviumnetworks.com> 21965 21966 * coverage.c: Include tree-pass.h. 21967 (coverage_counter_alloc): Print da_file_name to the dump file. 21968 219692008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com> 21970 21971 * sbitmap.c (sbitmap_range_empty_p): New function. 21972 * sbitmap.h (sbitmap_range_empty_p): New function. 21973 * bitmap.h: Now includes obstack.h. 21974 219752008-04-21 Richard Sandiford <rsandifo@nildram.co.uk> 21976 Kenneth Zadeck <zadeck@naturalbridge.com> 21977 21978 * dbgcnt.def (ra_byte_scan): Added. 21979 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file 21980 when the last hit happens for a counter. 21981 * timevar.def (TV_DF_BYTE_LR): New variable. 21982 * tree-pass.h (pass_fast_rtl_byte_dce): New pass. 21983 * passes.c (pass_fast_rtl_byte_dce): New pass. 21984 * fwprop.c (update_df): Added mode to call df_ref_create. 21985 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and 21986 DF_REF_EXTRACT_OFFSET. 21987 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 21988 DF_BYTE_LR_OUT, df_byte_lr): New macro. 21989 (df_mm): New enum. 21990 (df_ref_extract): Added mode field. 21991 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and 21992 DF_REF_EXTRACT_OFFSET. 21993 (DF_REF_EXTRACT_MODE): New macro. 21994 (df_byte_lr_bb_info): New structure. 21995 (df_print_byte_regset, df_compute_accessed_bytes, 21996 df_byte_lr_add_problem, df_byte_lr_get_regno_start, 21997 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs, 21998 df_byte_lr_simulate_uses, 21999 df_byte_lr_simulate_artificial_refs_at_top, 22000 df_byte_lr_simulate_artificial_refs_at_end, 22001 df_compute_accessed_bytes): New function. 22002 (df_ref_create): Add parameter. 22003 (df_byte_lr_get_bb_info): New inline function. 22004 * df-scan.c (df_ref_record, df_uses_record, 22005 df_ref_create_structure): Added mode parameter. 22006 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 22007 df_defs_record, df_uses_record, df_get_conditional_uses, 22008 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 22009 df_entry_block_defs_collect, df_exit_block_uses_collect): 22010 Added mode parameter to calls to df_ref_record, df_uses_record, 22011 df_ref_create_structure. 22012 (df_ref_equal_p, df_ref_compare): Added test for modes. 22013 (df_ref_create_structure): Added code to set mode. Renamed 22014 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and 22015 DF_REF_EXTRACT_OFFSET. 22016 * df-core.c (df_print_byte_regset): New function. 22017 * df-byte-scan.c: New file. 22018 * df-problems.c (df_rd_transfer_function): Removed unnecessary 22019 calls to BITMAP_FREE. 22020 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure. 22021 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len, 22022 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 22023 df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 22024 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute, 22025 df_byte_lr_local_compute, df_byte_lr_init, 22026 df_byte_lr_confluence_0, df_byte_lr_confluence_n, 22027 df_byte_lr_transfer_function, df_byte_lr_free, 22028 df_byte_lr_top_dump, df_byte_lr_bottom_dump, 22029 df_byte_lr_add_problem, df_byte_lr_simulate_defs, 22030 df_byte_lr_simulate_uses, 22031 df_byte_lr_simulate_artificial_refs_at_top, 22032 df_byte_lr_simulate_artificial_refs_at_end): New function. 22033 * dce.c (byte_dce_process_block): New function. 22034 (dce_process_block): au is now passed in rather than computed 22035 locally. Changed loops that look at artificial defs to not look 22036 for conditional or partial ones, because there never are any. 22037 (fast_dce): Now is able to drive byte_dce_process_block or 22038 dce_process_block depending on the kind of dce being done. 22039 (rest_of_handle_fast_dce): Add parameter to fast_dce. 22040 (rest_of_handle_fast_byte_dce): New function. 22041 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass. 22042 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies. 22043 220442008-04-21 Daniel Franke <franke.daniel@gmail.com> 22045 22046 PR fortran/35019 22047 * gcc.h: Added fortran options that take arguments to 22048 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG 22049 macros. 22050 220512008-04-20 Eric Botcazou <ebotcazou@adacore.com> 22052 22053 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable 22054 scalarization if on the LHS and not a full access. 22055 220562008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 22057 22058 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it. 22059 220602008-04-18 Rafael Esp��ndola <espindola@google.com> 22061 22062 * tree-vrp.c (find_case_label_index): Fix the binary search. 22063 (find_case_label_range): New. 22064 (vrp_visit_switch_stmt): Use find_case_label_range. 22065 (simplify_switch_using_ranges): Use find_case_label_range. 22066 220672008-04-18 Eric Botcazou <ebotcazou@adacore.com> 22068 22069 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS 22070 using the is_gimple_lvalue predicate instead of is_gimple_min_lval. 22071 220722008-04-18 Tom Tromey <tromey@redhat.com> 22073 22074 PR libcpp/15500: 22075 * doc/cpp.texi (Implementation-defined behavior): Mention 22076 -finput-charset. 22077 220782008-04-18 Ian Lance Taylor <iant@google.com> 22079 22080 * fold-const.c (pointer_may_wrap_p): New static function. 22081 (fold_comparison): Add another test for pointer overflow. Use 22082 pointer_may_wrap_p to disable some false positives. 22083 220842008-04-18 Kris Van Hees <kris.van.hees@oracle.com> 22085 22086 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros. 22087 (fname_as_string): Match updated cpp_interpret_string prototype. 22088 (fix_string_type): Support char16_t* and char32_t*. 22089 (c_common_nodes_and_builtins): Add char16_t and char32_t (and 22090 derivative) nodes. Register as builtin if C++0x. 22091 (c_parse_error): Support CPP_CHAR{16,32}. 22092 * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 22093 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE, 22094 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE, 22095 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE, 22096 CTI_CHAR32_ARRAY_TYPE>: New elements. 22097 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node, 22098 char32_type_node, signed_char32_type_node, char16_array_type_node, 22099 char32_array_type_node): New defines. 22100 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype. 22101 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}. 22102 (lex_string): Support CPP_STRING{16,32}, match updated 22103 cpp_interpret_string and cpp_interpret_string_notranslate prototypes. 22104 (lex_charconst): Support CPP_CHAR{16,32}. 22105 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32} 22106 and CPP_STRING{16,32}. 22107 221082008-04-18 Paolo Bonzini <bonzini@gnu.org> 22109 22110 PR bootstrap/35457 22111 * aclocal.m4: Regenerate. 22112 * configure: Regenerate. 22113 221142008-04-18 Jan Hubicka <jh@suse.cz> 22115 22116 * except.c (dw2_size_of_call_site_table, 22117 sjlj_size_of_call_site_table): Use vector API for call_site_record. 22118 22119 * cgraphbuild.c (build_cgraph_edges): Update. 22120 * tree-pass.h: Update comment. 22121 * final.c (leaf_function_p): Update. 22122 (leaf_renumber_regs): Update. 22123 (rest_of_clean_state): Update. 22124 * omp-low.c (expand_omp_parallel): Update. 22125 * ipa-reference.c (analyze_function): Update. 22126 * reorg.c (find_end_label): Update. 22127 (optimize_skip): Update. 22128 (fill_simple_delay_slots): Update. 22129 (fill_simple_delay_slots): Update. 22130 (make_return_insns): Update. 22131 (dbr_schedule): Update. 22132 * gimple-low.c (record_vars_into): Update. 22133 * cfgbuild.c (make_edges): Update. 22134 * function.c (assign_stack_local): Update. 22135 (assign_parm_adjust_stack_rtl): Update. 22136 (locate_and_pad_parm): Update. 22137 (allocate_struct_function): Do not initialize stack_alignment_needed 22138 and preferred_stack_boundary here. 22139 (stack_protect_prologue): Update. 22140 (stack_protect_epilogue): Update. 22141 (expand_function_start): Initialize stack_alignment_needed, 22142 preferred_stack_boundary and max_jumptable_ents. 22143 (expand_function_end): Update. 22144 (free_after_compilation): Do not NULLify epilogue_delay_list. 22145 * function.h (struct rtl_data): Add stack_protect_guard, 22146 stack_alignment_needed, 22147 preferred_stack_boundary, epilogue_delay_list. 22148 (struct function): Remove value_histograms, stack_alignment_needed, 22149 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents, 22150 last_label_uid, 22151 unexpanded_var_list, stack_protect_guard. 22152 (current_function_epilogue_delay_list): Remove. 22153 * ipa-type-escape.c (analyze_function): Update. 22154 * gimplify.c (pop_gimplify_context): Update comment. 22155 * calls.c (expand_call): Update. 22156 (emit_library_call_value_1): Update. 22157 * except.c (set_nothrow_function_flags): Update. 22158 * cfgexpand.c (get_decl_align_unit): Update. 22159 (create_stack_guard): Update. 22160 (estimated_stack_frame_size): Update. 22161 (expand_used_vars): Update. 22162 (tree_expand_cfg): Free histogram earliers, init expansion variables. 22163 * explow.c (allocate_dynamic_stack_space): Update. 22164 * tree-ssa-live.c (remove_unused_locals): Update. 22165 * varasm.c (mark_constant_pool): Update. 22166 * tree-inline.c (remap_decls): Update. 22167 (initialize_cfun): Update. 22168 (declare_return_variable): Update. 22169 (inline_forbidden_p): Update. 22170 (expand_call_inline): Update. 22171 (declare_inline_vars): Update. 22172 (tree_function_versioning): Update. 22173 * tree-flow.h (value_histograms): New. 22174 (VALUE_HISTOGRAMS): New macro. 22175 * basic-block.h (control_flow_graph): Add max_jumptable_ents, 22176 last_label_uid. 22177 * tree-cfg.c (set_bb_for_stmt): Update. 22178 (replace_by_duplicate_decl): Update. 22179 (move_block_to_fn): Update. 22180 (new_label_mapper): Update. 22181 (dump_function_to_file): Update. 22182 * ipa-struct-reorg.c (build_data_structure): Update. 22183 * cfgrtl.c (print_rtl_with_bb): Update. 22184 * reload1.c (reload): Update. 22185 (reload): Update. 22186 * config/i386/i386.c (setup_incoming_varargs_64, 22187 ix86_compute_frame_layout): Update. 22188 * config/arc/arc.c (arc_output_function_epilogue): Update. 22189 221902008-04-18 Marius Strobl <marius@FreeBSD.org> 22191 22192 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation 22193 for FreeBSD as well. 22194 * gthr-posix95.h: Likewise. 22195 221962008-04-17 Richard Sandiford <rsandifo@nildram.co.uk> 22197 22198 PR rtl-optimization/35838 22199 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work 22200 out the byte offset of the first subreg. 22201 222022008-04-17 Uros Bizjak <ubizjak@gmail.com> 22203 22204 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands 22205 to split_ti instead of three separate calls with single member arrays. 22206 (subti3 splitter): Ditto. 22207 (adddi3 splitter): Ditto with split_di. 22208 (subdi3 splitter): Ditto. 22209 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of 22210 two separate calls with single member arrays. Swap match_dup 22211 operands 1 and 2 to better fit into the array. 22212 (negdi2 splitter): Ditto with split_di. 22213 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of 22214 two separate calls with single member arrays. Swap match_dup operands 22215 6 and 7 to better fit into the array. 22216 222172008-04-17 H.J. Lu <hongjiu.lu@intel.com> 22218 22219 * config/i386/i386.c (sse_builtin_type): New. 22220 (bdesc_sse_args): Likewise. 22221 (bdesc_sse_3arg): Removed. 22222 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128. 22223 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and 22224 IX86_BUILTIN_ROUNDPS. 22225 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove 22226 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and 22227 IX86_BUILTIN_ROUNDPS. 22228 (ix86_expand_sse_4_operands_builtin): Removed. 22229 (ix86_expand_sse_operands_builtin): New. 22230 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd 22231 and CODE_FOR_sse4_1_roundps. 22232 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128. 22233 Handle bdesc_sse_args. Remove bdesc_sse_3arg. 22234 222352008-04-17 Alan Modra <amodra@bigpond.net.au> 22236 22237 PR target/35907 22238 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave 22239 regs before frame pop when needed. If use_backchain_to_restore_sp 22240 then load backchain into a temp reg to restore vr and vrsave. Add 22241 code to restore vr after frame pop if possible. 22242 222432008-04-17 Richard Guenther <rguenther@suse.de> 22244 22245 * tree-vn.c (expressions_equal_p): Do not check type 22246 equality or compatibility before calling operand_equal_p. 22247 * fold-const.c (operand_equal_p): Check equivalence of 22248 integer constants before bailing out due to signedness or 22249 precision differences. 22250 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore 22251 spurious differences in type qualification. Ignore types 22252 for COMPONENT_REFs at all. 22253 222542008-04-17 Christian Bruel <christian.bruel@st.com> 22255 22256 * config/sh/sh.c (expand_cbranchdi4): Use original operands for 22257 msw_skip comparison. 22258 222592008-04-16 Jakub Jelinek <jakub@redhat.com> 22260 22261 PR c/35739 22262 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE 22263 reg type. 22264 22265 PR tree-optimization/35899 22266 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND 22267 rather than TREE_OPERAND. 22268 222692008-04-16 Uros Bizjak <ubizjak@gmail.com> 22270 22271 PR target/35944 22272 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into 22273 temporary registers. Change operand predicate to general_operand. 22274 (remainderxf3): Ditto. 22275 222762008-04-16 Richard Guenther <rguenther@suse.de> 22277 22278 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency. 22279 * tree-affine.c (aff_combination_expand): Look through some 22280 conversions. 22281 222822008-04-15 Doug Kwan <dougkwan@google.com> 22283 22284 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT 22285 for hex printing. 22286 * tree-pretty-print.c (dump_generic_node): Ditto. 22287 * final.c (output_addr_const): Ditto. 22288 * dwarf2out.c (output_cfi): Ditto. 22289 * c-pretty-print.c (pp_c_integer_constant): Ditto. 22290 * print-rtl.c (print_rtx): Ditto. 22291 * print-tree.c (print_node_brief, print_node): Ditto. 22292 * c-common.c (match_case_to_enum_1): Ditto. 22293 * sched-vis.c (print_value): Ditto. 22294 * config/i386/i386.c (print_operand): Cast to long unsigned int 22295 for hex printing. 22296 222972008-04-15 Danny Smith <dannysmith@users.sourceforge.net> 22298 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for 22299 MS Windows VirtualProtect function. 22300 223012008-04-15 Jan Hubicka <jh@suse.cz> 22302 22303 * gengtype.c (write_root): Param_is argument is OK. 22304 * expr.c (expand_expr_real_1): Update call of get_exception_*. 22305 * function.h: Include varray.h 22306 (rtl_eh): New stucture based on except.c one. 22307 (call_site_record): New forward declaration and vector type. 22308 * calls.c (emit_call_1): Do not call 22309 note_current_region_may_contain_throw. 22310 * except.c (eh_status): Remove cur_region, try_region since they are 22311 unused. 22312 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and 22313 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label, 22314 sjlj_fc, sjlj_exit_after to rth_eh in function.h. 22315 Remove call_site_data_used, call_site_data_size. 22316 Turn call_site_record into vector in function.h. 22317 (note_current_region_may_contain_throw): Remove. 22318 (get_exception_pointer, get_exception_filter): Do not take struct 22319 function argument; update. 22320 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash, 22321 add_ttypes_entry, add_ehspec_entry, assign_filter_values, 22322 build_post_landing_pads, dw2_build_landing_pads, 22323 sjlj_assign_call_site_values, sjlj_mark_call_sites, 22324 sjlj_emit_function_enter, sjlj_emit_function_enter, 22325 sjlj_emit_function_exit, sjlj_emit_dispatch_table, 22326 sjlj_build_landing_pads, finish_eh_generation, 22327 remove_exception_handler_label, remove_eh_handler, 22328 maybe_remove_eh_handler, add_reachable_handler, 22329 reachable_handlers, expand_builtin_eh_return, expand_eh_return, 22330 add_action_record, collect_one_action_chain, add_call_site, 22331 convert_to_eh_region_ranges, sjlj_size_of_call_site_table, 22332 sjlj_output_call_site_table, output_function_exception_table, 22333 * except.h (note_current_region_may_contain_throw): Remove 22334 (get_exception_pointer, get_exception_filter): Do not take struct 22335 function argument. 22336 * Makefile.in (GTFILES): Put varargs before struct function. 22337 223382008-04-15 Eric Botcazou <ebotcazou@adacore.com> 22339 22340 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not 22341 punt for STRING_CST. 22342 (get_constraint_for): Deal with STRING_CST here instead. 22343 223442008-04-15 Richard Guenther <rguenther@suse.de> 22345 22346 * tree-ssa-propagate.c (substitute_and_fold): Substitute 22347 statements in a basic-block with a backward walk. Do not 22348 substitute into dead statements but instead remove those. 22349 223502008-04-15 Richard Guenther <rguenther@suse.de> 22351 22352 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default 22353 to zero, thus disable creation of SFTs. 22354 223552008-04-15 Eric Botcazou <ebotcazou@adacore.com> 22356 22357 * tree-predcom.c (suitable_reference_p): Return false if the 22358 reference can throw. 22359 223602008-04-15 Jakub Jelinek <jakub@redhat.com> 22361 22362 PR c/35751 22363 * c-decl.c (finish_decl): If extern or static var has variable 22364 size, set TREE_TYPE (decl) to error_mark_node. 22365 223662008-04-15 Rafael Esp��ndola <espindola@google.com> 22367 22368 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local 22369 variable arg1. 22370 223712008-04-15 Richard Guenther <rguenther@suse.de> 22372 22373 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype. 22374 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk. 22375 (visit_reference_op_load): Do walk vuse-vdef chains on 22376 vn_reference_lookup. 22377 (visit_reference_op_store): But do not here. 22378 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on 22379 vn_reference_lookup. 22380 (vn_lookup_with_vuses): But do so here. 22381 223822008-04-14 Ian Lance Taylor <iant@google.com> 22383 22384 * fold-const.c (fold_overflow_warning): Remove assertion. 22385 223862008-04-15 Ben Elliston <bje@au.ibm.com> 22387 22388 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp, 22389 temp1 local variables. 22390 223912008-04-15 Zuxy Meng <zuxy.meng@gmail.com> 22392 22393 PR target/35661 22394 * config/i386/winnt.c (i386_pe_section_type_flags): Mark 22395 ".text.unlikely" section as executable. 22396 223972008-04-14 James E. Wilson <wilson@tuliptree.org> 22398 22399 * config/ia64/ia64.c (rtx_needs_barrier): Handle 22400 UNSPEC_FR_SQRT_RECIP_APPROX_RES. 22401 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define. 22402 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr, 22403 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr, 22404 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat, 22405 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it. 22406 224072008-04-14 Ian Lance Taylor <iant@google.com> 22408 22409 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define. 22410 * fold-const.c (fold_comparison): If appropriate, test 22411 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning. 22412 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when 22413 reassociating a pointer type. 22414 * doc/invoke.texi (Optimize Options): Document that 22415 -fstrict-overflow applies to pointer wraparound. 22416 224172008-04-13 Jan Hubicka <jh@suse.cz> 22418 22419 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx. 22420 224212008-04-12 Andrew Pinski <pinskia@gmail.com> 22422 22423 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if 22424 we are going to "save the world". 22425 224262008-04-13 Hans-Peter Nilsson <hp@axis.com> 22427 22428 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32") 22429 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the 22430 operand 0 constraint, not "=". 22431 224322008-04-11 James E. Wilson <wilson@tuliptree.org> 22433 22434 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING. 22435 224362008-04-11 H.J. Lu <hongjiu.lu@intel.com> 22437 22438 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead 22439 of size of positions_needed * CHAR_BIT. 22440 224412008-04-11 H.J. Lu <hongjiu.lu@intel.com> 22442 22443 PR middle-end/35897 22444 * dse.c (store_info): Change positions_needed to unsigned 22445 HOST_WIDE_INT. 22446 (lowpart_bitmask): New. 22447 (record_store): Cast to unsigned HOST_WIDE_INT for 22448 positions_needed. Assert width <= size of positions_needed * 22449 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed. 22450 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call 22451 lowpart_bitmask to set mask. 22452 224532008-04-11 Bernd Schmidt <bernd.schmidt@analog.com> 22454 22455 * config/bfin/constraints.md: New file. 22456 * config/bfin/bfin.md: Include it. 22457 (adddi3): Use satisfies_constraint functions instead of the old macros. 22458 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN, 22459 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P, 22460 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P, 22461 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P, 22462 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M, 22463 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER, 22464 EXTRA_CONSTRAINT): Delete. 22465 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand, 22466 reg_or_neg7bit_operand): Use satisfies_constraint functions instead 22467 of the old macros. 22468 * config/bfin/bfin.c: Include "tm-constrs.h". 22469 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs): 22470 Use satisfies_constraint functions instead of the old macros. 22471 * doc/md.texi (Blackfin Constraints): Update file name reference. 22472 224732008-04-11 Richard Guenther <rguenther@suse.de> 22474 22475 PR tree-optimization/35869 22476 * tree-vrp.c (execute_vrp): Move switch statement update after 22477 jump threading. Schedule another cfg cleanup run. 22478 224792008-04-11 Volker Reichelt <v.reichelt@netcologne.de> 22480 22481 PR c/35744 22482 * attribs.c (decl_attributes): Return early on errorneous node. 22483 224842008-04-10 Oleg Ryjkov <olegr@google.com> 22485 22486 * tree.h (struct tree_base): Added a new flag default_def_flag. 22487 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag. 22488 224892008-04-11 Kaz Kojima <kkojima@gcc.gnu.org> 22490 22491 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*. 22492 224932008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 22494 22495 PR target/35768 22496 * pa.md: Define mode iterator P. Define mode attribute dwc. 22497 (dcacheflush): Update pattern to use iterator P and attribute dwc. 22498 (icacheflush): Likewise. 22499 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if 22500 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT. 22501 225022008-04-11 Ben Elliston <bje@au.ibm.com> 22503 22504 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow. 22505 225062008-04-10 Rafael Esp��ndola <espindola@google.com> 22507 22508 * tree-vrp.c (extract_range_from_binary_expr): Don't handle 22509 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR. 22510 (extract_range_from_expr): The same. 22511 225122008-04-10 Adam Nemet <anemet@caviumnetworks.com> 22513 22514 * config/mips/mips.md (GPR2): New mode iterator. 22515 (seq): Add comment. 22516 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>, 22517 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>, 22518 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16): 22519 Rewrite these to take two modes, the mode of comparison and the 22520 mode of the destination. 22521 * config/mips/mips.c (mips_expand_scc): Instead of having 22522 paradoxical subreg as destination, expand "narrowing" scc if mode 22523 of comparison is SI and target is requested in DI mode. 22524 (mips_emit_int_order_test): Update comment. Make mode of 22525 comparison match CMP0 rather than TARGET. When creating inverse 22526 target use mode of TARGET. 22527 225282008-04-10 Adam Nemet <anemet@caviumnetworks.com> 22529 22530 * gcov-dump.c (tag_summary): Only print summaries for the first 22531 GCOV_COUNTERS_SUMMABLE counters. 22532 225332008-04-10 Uros Bizjak <ubizjak@gmail.com> 22534 22535 * config/i386/i386.md (absneg): New code iterator. 22536 (absnegprefix): New code attribute. 22537 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2 22538 patterns using absneg code iterator. 22539 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns 22540 using absneg code iterator. 22541 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and 22542 *neg<mode>2 patterns using absneg code iterator. 22543 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and 22544 *negextendsfdf2 patterns using absneg code iterator. 22545 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and 22546 *negextendsfxf2 patterns using absneg code iterator. 22547 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and 22548 *negextendsfdf2 patterns using absneg code iterator. 22549 * config/i386/sse.md (<code><mode>2): Macroize expander from 22550 abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 22551 225522008-04-10 Andreas Krebbel <krebbel1@de.ibm.com> 22553 22554 * config/s390/s390.h: Remove the remains of the recent search 22555 & replace action of current_function_outgoing_args_size. 22556 225572008-04-10 Ira Rosen <irar@il.ibm.com> 22558 22559 PR tree-optimization/35821 22560 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that 22561 NEW_STMT_LIST is not NULL. 22562 225632008-04-09 David Edelsohn <edelsohn@gnu.org> 22564 22565 PR libstdc++/35597 22566 * toplev.c (process_options): Remove -ffunction-sections debugging 22567 warning. 22568 225692008-04-09 Peter Bergner <bergner@vnet.ibm.com> 22570 22571 PR middle-end/PR28690 22572 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather 22573 than gen_rtx_fmt_ee to perform more canonicalizations. 22574 225752008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 22576 22577 PR driver/35665 22578 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus". 22579 225802008-04-09 Richard Guenther <rguenther@suse.de> 22581 22582 * tree-cfg.c (verify_stmt): Print complete bogus stmt. 22583 (dump_function_to_file): Dump function arguments with types. 22584 225852008-04-08 Richard Guenther <rguenther@suse.de> 22586 22587 * fold-const.c (fold_widened_comparison): Do not allow 22588 sign-changes that change the result. 22589 225902008-04-08 Janis Johnson <janis187@us.ibm.com> 22591 22592 PR target/35839 22593 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional 22594 kinds of indirect references. 22595 225962008-04-08 David Edelsohn <edelsohn@gnu.org> 22597 22598 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update 22599 GNU Fortran language string. 22600 226012008-04-08 Rafael Esp��ndola <espindola@google.com> 22602 22603 * fold-canst.c (tree_call_nonnegative_warnv_p): New. 22604 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p. 22605 * tree.h (tree_call_nonnegative_warnv_p): New. 22606 226072008-04-08 Jan Hubicka <jh@suse.cz> 22608 22609 * function.c (free_after_compilation): Clear out regno_reg_rtx 22610 pointer. 22611 226122008-04-08 Peter Bergner <bergner@vnet.ibm.com> 22613 22614 Revert 22615 2008-04-07 Peter Bergner <bergner@vnet.ibm.com> 22616 22617 PR middle-end/PR28690 22618 * rtlanal.c (commutative_operand_precedence): Give SYMBOL_REF's the 22619 same precedence as REG_POINTER and MEM_POINTER operands. 22620 226212008-04-08 Richard Guenther <rguenther@suse.de> 22622 22623 PR middle-end/35834 22624 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR 22625 for adding index to base. 22626 226272008-04-08 Kai Tietz <kai.tietz@onevision.com> 22628 22629 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New. 22630 (MINGW_ENABLE_EXECUTE_STACK): New. 22631 (IN_LIBGCC2): For libgcc include windows.h file for 22632 function declarations. 22633 226342008-04-08 Hans-Peter Nilsson <hp@axis.com> 22635 22636 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1 22637 and tem2 if tem1 is not a REG or MULT. 22638 226392008-04-08 Jan Hubicka <jh@suse.cz> 22640 22641 * function.h (incomming_args): Break out of struct function. 22642 (function_subsections): Break out of struct function. 22643 (rtl_data): Add args, subsections fields. Break out outgoing_args_size, 22644 return_rtx and hard_reg_initial_vals from struct function. 22645 Kill inl_max_label_num. 22646 (current_function_pops_args, current_function_args_info, 22647 current_function_args_size, current_function_args_size, 22648 current_function_pretend_args_size, 22649 current_function_outgoing_args_size, 22650 current_function_internal_arg_pointer, current_function_return_rtx): 22651 Kill compatibility accestor macros. 22652 * builtins.c (expand_builtin_apply_args_1): Update. 22653 (expand_builtin_next_arg): Update. 22654 * df-scan.c (df_get_call_refs): Update. 22655 * dbxout.c (dbxout_function_end): Update. 22656 * dwarf2out.c (dwarf2out_switch_text_section): Update. 22657 (output_line_info): Update. 22658 (secname_for_decl): Update. 22659 (dwarf2out_var_location): Update. 22660 * function.c (free_after_compilation): Update. 22661 (assign_parm_find_stack_rtl): Update. 22662 (assign_parms): Update. 22663 (expand_dummy_function_end): Update. 22664 (expand_function_end): Update. 22665 * calls.c (mem_overlaps_already_clobbered_arg_p): Update. 22666 (expand_call): Update. 22667 (emit_library_call_value_1): Update. 22668 (store_one_arg): Update. 22669 * varasm.c (initialize_cold_section_name): Update. 22670 (unlikely_text_section): Update. 22671 (unlikely_text_section_p): Update. 22672 (assemble_start_function): Update. 22673 (assemble_end_function): Update. 22674 (default_section_type_flags): Update. 22675 (switch_to_section): Update. 22676 * integrate.c (set_decl_abstract_flags): Update. 22677 (get_hard_reg_initial_val): Update. 22678 (has_hard_reg_initial_val): Update. 22679 (allocate_initial_values): Update. 22680 * resource.c (init_resource_info): Update. 22681 * config/alpha/alpha.c (NUM_ARGS): Update. 22682 (direct_return): Update. 22683 (alpha_va_start): Update. 22684 (alpha_sa_size): Update. 22685 (alpha_initial_elimination_offset): Update. 22686 (alpha_expand_prologue): Update. 22687 (alpha_start_function): Update. 22688 (alpha_expand_epilogue): Update. 22689 (unicosmk_initial_elimination_offset): 22690 * config/alpha/alpha.md (call expander): Update. 22691 * config/s390/s390.c (s390_register_info): Update. 22692 (s390_register_info): Update. 22693 (s390_frame_info): Update. 22694 (s390_initial_elimination_offset): Update. 22695 (s390_build_builtin_va_list): Update. 22696 (s390_va_start): Update. 22697 * config/spu/spu.c (direct_return): Update. 22698 (spu_expand_prologue): Update. 22699 (spu_initial_elimination_offset): Update. 22700 (spu_build_builtin_va_list): Update. 22701 (spu_va_start): Update. 22702 * config/sparc/sparc.c (sparc_init_modes): Update. 22703 (sparc_compute_frame_size): Update. 22704 (function_value): Update. 22705 * config/m32r/m32r.c (m32r_compute_frame_size): Update. 22706 * config/i386/i386.md (return expander): Update. 22707 * config/i386/i386.c (ix86_va_start): Update. 22708 (ix86_can_use_return_insn_p): Update. 22709 (ix86_compute_frame_layout): Update. 22710 (ix86_expand_epilogue): Update. 22711 * config/sh/sh.c (output_stack_adjust): Update. 22712 (calc_live_regs): Update. 22713 (sh_expand_prologue): Update. 22714 (sh_builtin_saveregs): Update. 22715 (sh_va_start): Update. 22716 (initial_elimination_offset): Update. 22717 (sh_allocate_initial_value): Update. 22718 (sh_function_ok_for_sibcall): Update. 22719 (sh_get_pr_initial_val): Update. 22720 * config/sh/sh.md (return expander): Update. 22721 * config/avr/avr.c (frame_pointer_required_p): UPdate. 22722 * config/crx/crx.c (crx_compute_frame): UPdate. 22723 (crx_initial_elimination_offset): UPdate. 22724 * config/xtensa/xtensa.c (compute_frame_size): Update 22725 (xtensa_builtin_saveregs): Update. 22726 (xtensa_va_start): Update. 22727 (order_regs_for_local_alloc): Update. 22728 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update. 22729 (xstormy16_expand_builtin_va_start): Update. 22730 * config/fr30/fr30.c (fr30_compute_frame_size): Update. 22731 * config/m68hc11/m68hc11.md (return expanders): Update. 22732 * config/m68hc11/m68hc11.c (expand_prologue): Update. 22733 (expand_epilogue): Update. 22734 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update. 22735 (cris_simple_epilogue): Update. 22736 (cris_expand_prologue): Update. 22737 (cris_expand_epilogue): Update. 22738 * config/iq2000/iq2000.c (iq2000_va_start): Update. 22739 (compute_frame_size): Update. 22740 * config/mt/mt.c (mt_compute_frame_size): Update. 22741 * config/mn10300/mn10300.c (expand_prologue): Update. 22742 (expand_epilogue): Update. 22743 (initial_offset): Update. 22744 (mn10300_builtin_saveregs): 22745 * config/mn10300/mn10300.md (return expander): Update. 22746 * config/ia64/ia64.c (ia64_compute_frame_size): Update. 22747 (ia64_initial_elimination_offset): Update. 22748 (ia64_initial_elimination_offset): Update. 22749 (ia64_expand_prologue): Update. 22750 * config/m68k/m68k.md (return expander): Update. 22751 * config/rs6000/rs6000.c (rs6000_va_start): Update. 22752 (rs6000_stack_info): Update. 22753 * config/mcore/mcore.c (layout_mcore_frame): Update. 22754 (mcore_expand_prolog): Update. 22755 * config/arc/arc.c (arc_compute_frame_size): Update. 22756 * config/score/score3.c (score3_compute_frame_size): Update. 22757 * config/score/score7.c (score7_compute_frame_size): Update. 22758 * config/arm/arm.c (use_return_insn): Update. 22759 (thumb_find_work_register): Update. 22760 (arm_compute_save_reg_mask): Update. 22761 (arm_output_function_prologue): Update. 22762 (arm_output_epilogue): Update. 22763 (arm_size_return_regs): Update. 22764 (arm_get_frame_offsets): Update. 22765 (arm_expand_prologue): Update. 22766 (thumb_exit): Update. 22767 (thumb_unexpanded_epilogue): Update. 22768 (thumb1_output_function_prologue): Update. 22769 * config/pa/pa.md (return expander): Update. 22770 * config/pa/pa.c (compute_frame_size): Update. 22771 (hppa_builtin_saveregs): Update. 22772 * config/mips/mips.c (mips_va_start): Update. 22773 (mips16_build_function_stub): Update. 22774 (mips_compute_frame_info): Update. 22775 (mips_restore_gp): Update. 22776 (mips_output_function_prologue): Update. 22777 (mips_expand_prologue): Update. 22778 * config/v850/v850.c (compute_frame_size): Update. 22779 (expand_prologue): * config/mmix/mmix.c (along): update. 22780 (mmix_initial_elimination_offset): update. 22781 (mmix_reorg): update. 22782 (mmix_use_simple_return): update. 22783 (mmix_expand_prologue): update. 22784 (mmix_expand_epilogue): Update. 22785 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update. 22786 (emit_link_insn): Update. 22787 227882008-04-08 Anatoly Sokolov <aesok@post.ru> 22789 22790 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 22791 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 22792 instructions. 22793 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 22794 atmega103 device. 22795 227962008-04-07 Jan Hubicka <jh@suse.cz> 22797 22798 * function.h (rtl): Rename to x_rtl. 22799 (crtl): New define. 22800 (return_label, naked_return_label, stack_slot_list, parm_birth_insn, 22801 frame_offset, stack_check_probe_note, arg_pointer_save_area, 22802 used_temp_slots avail_temp_slots, temp_slot_level, 22803 nonlocal_goto_handler_labels): Update accesstors. 22804 (rtl): New global variable. 22805 (struct function): Move some fileds to rtl_data. 22806 (get_arg_pointer_save_area): Update prototype. 22807 * builtins.c (expand_builtin_setjmp_receiver): Update call of 22808 get_arg_pointer_save_area. 22809 * expr.c (init_expr): Update 22810 * function.c (get_frame_size): Update 22811 (assign_stack_local): Update 22812 (expand_function_end): Update. 22813 (get_art_pointer_save_area): Update 22814 * function.h 22815 * emit-rtl.c (rtl): Declare. 22816 (regno_reg_rtx): Declare. 22817 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num): 22818 Update. 22819 (gen_reg_rtx): Update. 22820 * varasm.c (n_deferred_constatns): Update accestor. 22821 (init_varasm_status): Do not allocate varasm_status. 22822 (force_const_mem, get_pool_size, output_constant_pool): Update. 22823 * stmt.c (force_label_rtx): Do not use x_ prefixes. 22824 (expand_nl_goto_receiver): Update get_arg_pointer_save_area. 22825 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update. 22826 * sparc/sparc.h (INIT_EXPANDERS): Update. 22827 * ia64/ia64.h (INIT_EXPANDERS): Update. 22828 228292008-04-07 James E. Wilson <wilson@tuliptree.org> 22830 22831 * reload.c (push_secondary_reload): Add missing break to for loop. 22832 228332008-04-07 Peter Bergner <bergner@vnet.ibm.com> 22834 22835 PR middle-end/PR28690 22836 * rtlanal.c: Update copyright years. 22837 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence 22838 as REG_POINTER and MEM_POINTER operands. 22839 * emit-rtl.c (gen_reg_rtx_and_attrs): New function. 22840 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate. 22841 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function. 22842 * gcse.c: Update copyright years. 22843 (pre_delete): Call gen_reg_rtx_and_attrs. 22844 (hoist_code): Likewise. 22845 (build_store_vectors): Likewise. 22846 (delete_store): Likewise. 22847 * loop-invariant.c (move_invariant_reg): Likewise. 22848 Update copyright years. 22849 228502008-04-07 Uros Bizjak <ubizjak@gmail.com> 22851 22852 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output 22853 control string instead of quoted. 22854 228552008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com> 22856 22857 * doc/rtl.texi: Rewrite of subreg section. 22858 228592008-04-07 Kai Tietz <kai.tietz@onevision.com> 22860 22861 PR/35842 22862 * config/i386/i386.c (legitimize_pic_address): Add treating 22863 of dllimport SYM_REF's. 22864 (legitimize_dllimport_symbol): Add prototype. 22865 228662008-04-07 Eric Botcazou <ebotcazou@adacore.com> 22867 22868 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant 22869 reference in constructor with non self-referential type. 22870 228712008-04-07 Eric Botcazou <ebotcazou@adacore.com> 22872 22873 Removal of Return with Depressed Stack Pointer support 22874 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete. 22875 (ECF_SP_DEPRESSED): Likewise. 22876 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust. 22877 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED. 22878 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED. 22879 (expand_call): Do not test ECF_SP_DEPRESSED. 22880 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED. 22881 * function.c (keep_stack_depressed): Delete. 22882 (handle_epilogue_set): Likewise. 22883 (update_epilogue_consts): Likewise. 22884 (emit_equiv_load): Likewise. 22885 (thread_prologue_and_epilogue_insns): Remove support for Return with 22886 Depressed Stack Pointer. 22887 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED. 22888 228892008-04-06 Richard Guenther <rguenther@suse.de> 22890 22891 PR tree-optimization/35400 22892 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range 22893 information from SSA_NAMEs. 22894 228952008-04-06 Anatoly Sokolov <aesok@post.ru> 22896 22897 * config/avr/avr.h (avr_mega_p): Remove declaration. 22898 (AVR_MEGA): Remove macro. 22899 * config/avr/avr.c (avr_mega_p): Remove variable. 22900 (avr_override_options): Remove inicializion of avr_mega_p. 22901 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA. 22902 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA. 22903 (avr_jump_mode): (Ditto.). 22904 (avr_output_progmem_section_asm_op): (Ditto.). 22905 (avr_asm_init_sections): (Ditto.). 22906 (avr_asm_init_sections): (Ditto.). 22907 (avr_rtx_costs): (Ditto.). 22908 * config/avr/avr.md: (Ditto.). 22909 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 22910 '__AVR_MEGA__'. 22911 229122008-04-06 Richard Guenther <rguenther@suse.de> 22913 22914 PR tree-optimization/35842 22915 * tree-ssa-address.c (fixed_address_object_p): Adjust to match 22916 is_gimple_invariant_address. 22917 229182008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 22919 22920 * gcc.c (default_compilers): Sync Fortran extensions list with 22921 that in fortran/lang-specs.h. 22922 * doc/invoke.texi: Likewise. 22923 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95". 22924 * dwarf2out.c (gen_compile_unit_die): Likewise. 22925 229262008-04-06 Tom G. Christensen <tgc@jupiterrise.com> 22927 22928 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &. 22929 229302008-04-05 Uros Bizjak <ubizjak@gmail.com> 22931 22932 PR target/12329 22933 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3) 22934 attribute is used for nested functions. 22935 229362008-04-05 Jan Hubicka <jh@suse.cz> 22937 22938 * emit-rtl.c (init_emit): xcalloc regno_pointer_align. 22939 22940 * tree-dump.c (dump_enable_all): Remove prototype; do not accept 22941 letter argument. 22942 (dump_files): Update. 22943 (enable_rtl_dump_file): Do not accept letter argument. 22944 * tree-pass.h (dump_file_info): Remove letter argument. 22945 * toplev.c (decode_d_option): Update -da handling. 22946 * toplev.h (enable_rtl_dump_file): Update prototype. 22947 * passes.c (register_one_dump_file): Do not accept IPA argument; work 22948 it out based on pass type. 22949 (register_dump_files_1): Likewise. 22950 (init_optimization_passes): Update register_one_dump_file calls. 22951 (execute_one_pass): Sanity check that IPA passes are called at IPA 22952 level and RTL passes at RTL level. 22953 (execute_pass_list): IPA pass can not be after or subpass of 22954 GIMPLE/RTL pass. 22955 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and 22956 disallov RTL subpasses of IPA subpasses. 22957 229582008-04-05 Ben Elliston <bje@au.ibm.com> 22959 22960 * tree-cfg.c (need_fake_edge_p): Return false for calls to 22961 builtins that return exactly once and do not throw. Cache call to 22962 call_expr_flags. 22963 229642008-04-04 Andy Hutchinson <hutchinsonandy@aim.com> 22965 22966 PR rtl-optimization/34916 22967 PR middle-end/35519 22968 * combine.c (create_log_links): Do not create duplicate LOG_LINKS 22969 between instruction pairs. 22970 229712008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com> 22972 22973 * doc/invoke.texi: Document -mbitops for SH. 22974 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints. 22975 * config/sh/predicates.md (bitwise_memory_operand): New predicate. 22976 * config/sh/sh.c (print_operand): Add %t operand code. 22977 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A. 22978 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A. 22979 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b. 22980 (extendqihi2): Likewise. 22981 (movqi_i): Likewise. 22982 (insv): Use bset, bclr and bst instructions for SH2A if possible. 22983 (extv): Use bld instruction for SH2A if possible. 22984 (extzv): Likewise. 22985 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a, 22986 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a, 22987 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns. 22988 (bset.b, bclr.b): Define peepholes. 22989 * config/sh/sh.opt (mbitops): New option. 22990 229912008-04-04 Janis Johnson <janis187@us.ibm.com> 22992 22993 PR target/35620 22994 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref 22995 and view convert expression. 22996 229972008-04-04 Jakub Jelinek <jakub@redhat.com> 22998 22999 PR target/35364 23000 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers. 23001 230022008-04-04 H.J. Lu <hongjiu.lu@intel.com> 23003 23004 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64. 23005 23006 * config/i386/cpuid.h (bit_AES): New. 23007 (bit_PCLMUL): Likewise. 23008 23009 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL. 23010 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable 23011 SSE2 if AES or PCLMUL is enabled. 23012 (ix86_builtins): Add IX86_BUILTIN_AESENC128, 23013 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128, 23014 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128, 23015 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128. 23016 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128. 23017 (bdesc_2arg): Add IX86_BUILTIN_AESENC128, 23018 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128, 23019 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128. 23020 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128. 23021 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128, 23022 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128, 23023 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128, 23024 __builtin_ia32_aeskeygenassist128 and 23025 __builtin_ia32_pclmulqdq128. 23026 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New. 23027 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and 23028 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128. 23029 23030 * config/i386/i386.h (TARGET_AES): New. 23031 (TARGET_PCLMUL): Likewise. 23032 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL. 23033 23034 * config/i386/i386.md (UNSPEC_AESENC): New. 23035 (UNSPEC_AESENCLAST): Likewise. 23036 (UNSPEC_AESDEC): Likewise. 23037 (UNSPEC_AESDECLAST): Likewise. 23038 (UNSPEC_AESIMC): Likewise. 23039 (UNSPEC_AESKEYGENASSIST): Likewise. 23040 (UNSPEC_PCLMUL): Likewise. 23041 23042 * config/i386/i386.opt (maes): New. 23043 (mpclmul): Likewise. 23044 23045 * config/i386/sse.md (aesenc): New pattern. 23046 (aesenclast): Likewise. 23047 (aesdec): Likewise. 23048 (aesdeclast): Likewise. 23049 (aesimc): Likewise. 23050 (aeskeygenassist): Likewise. 23051 (pclmulqdq): Likewise. 23052 23053 * config/i386/wmmintrin.h: New. 23054 23055 * doc/extend.texi: Document AES and PCLMUL built-in function. 23056 23057 * doc/invoke.texi: Document -maes and -mpclmul. 23058 230592008-04-04 Paolo Bonzini <bonzini@gnu.org> 23060 23061 * function.c (free_after_parsing): Replace with 23062 cxx_push_function_context from C++ front-end. 23063 (allocate_struct_function): Don't call langhook. 23064 * langhooks.h (struct lang_hooks_for_functions): Delete. 23065 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete 23066 member "function". 23067 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add. 23068 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL, 23069 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P, 23070 LANG_HOOKS_FUNCTION_INITIALIZER): Delete. 23071 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P, 23072 remove LANG_HOOKS_FUNCTION_INITIALIZER. 23073 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook. 23074 23075 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P): 23076 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P. 23077 230782008-04-04 Jakub Jelinek <jakub@redhat.com> 23079 23080 PR c/35440 23081 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR 23082 for all types. 23083 230842008-04-04 Richard Guenther <rguenther@suse.de> 23085 23086 PR middle-end/35823 23087 * fold-const.c (optimize_minmax_comparison): Use the correct 23088 type for the constant in the simplified comparison. 23089 230902008-04-04 Zuxy Meng <zuxy.meng@gmail.com> 23091 23092 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument. 23093 Pass L2 size as "--param l2-cache-size" to the compiler. 23094 (decode_l2_cache): New function to decode L2 cache parameters using 23095 0x8000006 extended cpuid function. 23096 (detect_caches_amd): Determine parameters of L2 cache using 23097 decode_l2_caches function. 23098 (decode_caches_intel): Decode L2 cache parameters. 23099 (detect_caches_intel): Determine L2 cache parameters using 23100 decode_caches_intel and decode_l2_caches functions. 23101 231022008-04-03 Bob Wilson <bob.wilson@acm.org> 23103 23104 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a 23105 secondary input reload for subword loads from the constant pool. 23106 231072008-04-03 Janis Johnson <janis187@us.ibm.com> 23108 23109 PR target/35713 23110 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer 23111 constants of the appropriate size for runtime calculations. 23112 23113 PR c/35712 23114 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for 23115 decimal-float literal constant zero. 23116 231172008-04-03 Jakub Jelinek <jakub@redhat.com> 23118 23119 PR c/35738 23120 * c-parser.c (c_parser_omp_atomic): Call 23121 default_function_array_conversion on the RHS. 23122 23123 PR middle-end/35818 23124 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't 23125 call is_variable_sized if decl has incomplete type. 23126 231272008-04-03 H.J. Lu <hongjiu.lu@intel.com> 23128 23129 * config/i386/i386-protos.h (ix86_aligned_p): Removed. 23130 231312008-04-03 Adam Nemet <anemet@caviumnetworks.com> 23132 23133 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code 23134 iterators. 23135 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu. 23136 (sgt<u>): Merge sgt and sgtu into new expander. 23137 (sgt, sgtu): Remove expanders. 23138 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern. 23139 (*sgt_<mode>, *sgtu_<mode>): Remove patterns. 23140 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and 23141 *sgtu_<mode>_mips16 into new pattern. 23142 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns. 23143 (sge<u>): Merge sge and sgeu into new expander. 23144 (sge, sgeu): Remove expanders. 23145 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into 23146 new pattern. 23147 (*sge_<mode>, second *sge_<mode>): Remove patterns. 23148 (slt<u>): Merge slt and sltu into new expander. 23149 (slt, sltu): Remove expanders. 23150 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern. 23151 (*slt_<mode>, *sltu_<mode>): Remove patterns. 23152 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and 23153 *sltu_<mode>_mips16 into new pattern. 23154 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns. 23155 (sle<u>): Merge sle and sleu into new expander. 23156 (sle, sleu): Remove expanders. 23157 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern. 23158 (*sle_<mode>, *sleu_<mode>): Remove patterns. 23159 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and 23160 *sleu_<mode>_mips16 into new pattern. 23161 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns. 23162 231632008-04-03 Jan Hubicka <jh@suse.cz> 23164 23165 PR tree-optimization/35795 23166 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation. 23167 * sparc/sparc.c (sparc_output_mi_thunk): Likewise. 23168 * ia64/ia64.c (ia64_output_mi_thunk): Likewise. 23169 * m68k/m68k.c (m68k_output_mi_thunk): Likewise. 23170 * score/score3.c (score3_output_mi_thunk): Likewise. 23171 * score/score7.c (score7_output_mi_thunk): Likewise. 23172 * mips/mips.c (mips_output_mi_thunk): Likewise. 23173 231742008-04-03 Richard Guenther <rguenther@suse.de> 23175 23176 * tree-vrp.c (extract_range_from_unary_expr): Handle all 23177 conversions. Simplify code. 23178 231792008-04-03 Kaz Kojima <kkojima@gcc.gnu.org> 23180 23181 * config/sh/sh.c (sh_output_mi_thunk): Free cfun. 23182 231832008-04-03 Tom Tromey <tromey@redhat.com> 23184 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 23185 23186 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h. 23187 * config/bfin/t-bfin-linux (generated_files): Add 23188 linux-sysroot-suffix.h. 23189 * doc/install.texi (Prerequisites): Require make 3.80. 23190 * doc/sourcebuild.texi (Front End Directory): Document new 23191 variable. 23192 * Makefile.in (generated_files): New variable. 23193 (ALL_HOST_OBJS): New variable. 23194 ($(ALL_HOST_OBJS)): New target. 23195 231962008-04-03 Paolo Bonzini <bonzini@gnu.org> 23197 23198 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export. 23199 (remap_block): Call id->transform_lang_insert_block instead 23200 of langhook. 23201 (optimize_inline_calls, unsave_expr_now, tree_function_versioning): 23202 Set id.transform_lang_insert_block to NULL. 23203 (clone_body): Move to cp/optimize.c 23204 * tree-inline.h (struct copy_body_data): Change 23205 transform_lang_insert_block to function pointer. 23206 (copy_generic_body, copy_decl_no_change): Export. 23207 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block. 23208 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill. 23209 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK. 23210 23211 * c-tree.h (insert_block): Kill. 23212 * c-decl.c (insert_block): Kill. 23213 232142008-04-03 Paolo Bonzini <bonzini@gnu.org> 23215 23216 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED, 23217 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete. 23218 * c-tree.h (c_push_function_context, c_pop_function_context): Remove 23219 argument. 23220 * c-decl.c (c_push_function_context, c_pop_function_context): Remove 23221 argument, call {push,pop}_function_context from here. 23222 * c-parser.c: Use c_{push,pop}_function_context. 23223 23224 * function.c (push_function_context_to): Move meat ... 23225 (push_function_context): ... here. Simplify. 23226 * function.c (pop_function_context_from): Move meat ... 23227 (pop_function_context): ... here. Simplify. 23228 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested, 23229 leave_nested). 23230 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED, 23231 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete. 23232 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here. 23233 * tree.h (push_function_context_to, pop_function_context_from): Remove. 23234 232352008-04-03 Ben Elliston <bje@au.ibm.com> 23236 23237 * expmed.c (extract_force_align_mem_bit_field): Remove. 23238 232392008-04-03 Richard Guenther <rguenther@suse.de> 23240 23241 PR middle-end/35800 23242 * expr.h (try_casesi): Adjust prototype. 23243 * expr.c (try_casesi): Take fallback label as extra parameter. 23244 Use that for gen_casesi if default_label is NULL. 23245 * stmt.c (expand_case): Pass fallback label to try_casesi, 23246 make sure to fill gaps with a fallback label if default_label 23247 is not present. 23248 232492008-04-03 Dominique d'Humi��res <dominiq@lps.ens.fr> 23250 23251 PR target/35801 23252 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun. 23253 232542008-04-03 Ben Elliston <bje@au.ibm.com> 23255 23256 * expmed.c (extract_split_bit_field): Remove if (0) code. 23257 * tree-ssa-structalias.c (do_sd_constraint): Likewise. 23258 (do_ds_constraint): Likewise. 23259 232602008-04-02 Joseph Myers <joseph@codesourcery.com> 23261 23262 * doc/cppopts.texi (-dU): Document. 23263 * c-common.h (flag_dump_macros): Update comment. 23264 * c-opts.c (handle_OPT_d): Handle -dU. 23265 * c-ppoutput.c (macro_queue, define_queue, undef_queue, 23266 dump_queued_macros, cb_used_define, cb_used_undef): New. 23267 (init_pp_output): Handle -dU. 23268 (cb_line_change): Call dump_queued_macros. 23269 * toplev.c (decode_d_option): Accept -dU as preprocessor option. 23270 232712008-04-02 Anatoly Sokolov <aesok@post.ru> 23272 23273 * config/avr/predicates.md (io_address_operand): New predicate. 23274 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration. 23275 * config/avr/avr.c (avr_io_address_p): Remove function. 23276 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 23277 'avr_io_address_p' function. 23278 (out_movhi_r_mr): (Ditto.). 23279 (out_movqi_mr_r): (Ditto.). 23280 (out_movhi_mr_r): (Ditto.). 23281 (avr_address_cost): (Ditto.). 23282 232832008-04-02 Uros Bizjak <ubizjak@gmail.com> 23284 23285 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): 23286 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values 23287 in 32bit mode when XMM registers are available to avoid store 23288 forwarding stalls. 23289 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and 23290 corresponding post-reload splitters. 23291 232922008-04-02 H.J. Lu <hongjiu.lu@intel.com> 23293 23294 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps 23295 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and 23296 __builtin_ia32_roundss. 23297 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps, 23298 __builtin_ia32_shufpd, __builtin_ia32_roundsd and 23299 __builtin_ia32_roundss. 23300 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and 23301 IX86_BUILTIN_SHUFPD here. 23302 233032008-04-02 H.J. Lu <hongjiu.lu@intel.com> 23304 23305 * config/i386/i386.md (plogic): New. 23306 (plogicprefix): Likewise. 23307 23308 * config/i386/mmx.md (mmx_<code><mode>3): New. 23309 (mmx_and<mode>3): Removed. 23310 (mmx_ior<mode>3): Likewise. 23311 (mmx_xor<mode>3): Likewise. 23312 23313 * config/i386/sse.md (<code><mode>3): New. 23314 (*<code><mode>3): Likewise. 23315 (*<code><mode>3): Likewise. 23316 (<code><mode>3): Likewise. 23317 (*sse_<code><mode>3): Likewise. 23318 (*sse2_<code><mode>3): Likewise. 23319 (<code>tf3): Likewise. 23320 (*<code>tf3): Likewise. 23321 (and<mode>3): Likewise. 23322 (*and<mode>3): Likewise. 23323 (ior<mode>3): Removed. 23324 (*ior<mode>3): Likewise. 23325 (xor<mode>3): Likewise. 23326 (*xor<mode>3): Likewise. 23327 (*and<mode>3): Likewise. 23328 (*ior<mode>3): Likewise. 23329 (*xor<mode>3): Likewise. 23330 (and<mode>3): Likewise. 23331 (*sse_and<mode>3): Likewise. 23332 (*sse2_and<mode>3): Likewise. 23333 (andtf3): Likewise. 23334 (*andtf3): Likewise. 23335 (ior<mode>3): Likewise. 23336 (*sse_ior<mode>3): Likewise. 23337 (*sse2_ior<mode>3): Likewise. 23338 (iortf3): Likewise. 23339 (*iortf3): Likewise. 23340 (xor<mode>3): Likewise. 23341 (*sse_xor<mode>3): Likewise. 23342 (*sse2_xor<mode>3): Likewise. 23343 (xortf3): Likewise. 23344 (*xortf3): Likewise. 23345 233462008-04-02 Richard Guenther <rguenther@suse.de> 23347 23348 PR tree-optimization/14495 23349 PR tree-optimization/34793 23350 * tree-vrp.c (struct switch_update): New structure. 23351 (to_remove_edges, to_update_switch_stmts): New VECs. 23352 (simplify_switch_using_ranges): New function. Remove not taken 23353 case labels and edges. 23354 (simplify_stmt_using_ranges): Call it. 23355 (identify_jump_threads): Mark edges we have queued for removal 23356 so we don't thread them. 23357 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT 23358 case label vector. 23359 * tree-cfg.c (group_case_labels): Deal with missing default label. 23360 (tree_verify_flow_info): Allow missing default label. 23361 * stmt.c (emit_case_bit_tests): Deal with NULL default_label. 23362 (emit_case_nodes): Likewise. 23363 (expand_case): Do not rely on the default label to be present. 23364 * expr.c (try_casesi): Deal with NULL default_label. 23365 (do_tablejump): Likewise. 23366 233672008-04-02 Richard Guenther <rguenther@suse.de> 23368 23369 PR tree-optimization/14495 23370 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle 23371 SWITCH_EXPR here ... 23372 (vrp_visit_switch_stmt): ... but here (new function). 23373 (find_case_label_index): New helper function. 23374 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt. 23375 233762008-04-02 Paolo Bonzini <bonzini@gnu.org> 23377 23378 * fwprop.c: Fix ISO-C99ism. 23379 233802008-04-02 Paolo Bonzini <bonzini@gnu.org> 23381 23382 PR bootstrap/35752 23383 * Makefile.in (objdir): Set it here. 23384 * configure.ac: Not here. Find dynamic linker characteristics. 23385 * exec-tool.in: Use them. 23386 * aclocal.m4: Regenerate. 23387 * configure: Regenerate. 23388 233892008-04-02 Paolo Bonzini <bonzini@gnu.org> 23390 23391 * expr.c (expand_var): Delete it. 23392 * expr.h (expand_var): Delete prototype. 23393 * function.c (expand_function_start): Use expand_decl instead. 23394 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call 23395 langhook. 23396 233972008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com> 23398 23399 PR rtl-optimization/35542 23400 * fwprop.c (forward_propagate_and_simplify): Replace 23401 loc_reg_mentioned_in_p with reg_mentioned_p. 23402 234032008-04-02 Paolo Bonzini <bonzini@gnu.org> 23404 23405 PR rtl-optimization/35281 23406 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New. 23407 (propagate_rtx_1): Handle PR_HANDLE_MEM. 23408 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate. 23409 (varying_mem_p): Move above propagate_rtx. 23410 (all_uses_available_at): Do not check MEMs. 23411 234122008-04-02 Rafael Esp��ndola <espindola@google.com> 23413 23414 * tree-vrp.c (extract_code_and_val_from_cond): Remove. 23415 (register_edge_assert_for_2): Split the cond argument. 23416 (register_edge_assert_for_1): Adjust for the change in 23417 register_edge_assert_for_2. 23418 (register_edge_assert_for): Split the cond argument. 23419 (find_switch_asserts): Adjust for the change in 23420 register_edge_assert_for. 23421 234222008-04-02 Kai Tietz <kai.tietz@onevision.com> 23423 23424 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild. 23425 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte 23426 offsets for 64-bit mingw. 23427 * config/i386/i386.c (ix86_pass_by_reference): Correct calling 23428 abi for x86_64-pc-mingw. 23429 234302008-04-02 Richard Guenther <rguenther@suse.de> 23431 23432 * tree-vrp.c (extract_range_from_assert): Make sure to not 23433 produce range min/max with TREE_OVERFOW set. 23434 If merging a anti-range and a range keep the anti-range if 23435 the range covers all values of the type. 23436 (register_edge_assert_for_2): Only allow sign-changing 23437 conversions in detecting canonical range checks. Also 23438 register an assert for the unsigned name if useful. 23439 23440 PR tree-optimization/35787 23441 * tree-vrp.c (vrp_val_max): New function. 23442 (vrp_val_min): Likewise. 23443 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}. 23444 (vrp_val_is_min): Likewise. 23445 (supports_overflow_infinity): Use vrp_val_{min,max}. 23446 (negative_overflow_infinity): Likewise. 23447 (positive_overflow_infinity): Likewise. 23448 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}. 23449 (is_positive_overflow_infinity): Likewise. 23450 (is_overflow_infinity): Likewise. 23451 (avoid_overflow_infinity): Use vrp_val_{min,max} and 23452 vrp_val_is_{min,max}. 23453 (set_and_canonicalize_value_range): Canonicalize anti-ranges 23454 to ranges if possible. Avoid empty ranges. 23455 234562008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 23457 23458 PR middle-end/35705 23459 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if 23460 the expression is a function address. 23461 234622008-04-01 George Helffrich <george@gcc.gnu.org> 23463 23464 PR fortran/35154, fortran/23057 23465 * dbxout.c: Emit .stabs debug info for Fortran COMMON block 23466 variables as base symbol name + offset using N_BCOMM/N_ECOMM. 23467 (is_fortran, dbxout_common_name, dbxout_common_check): New functions. 23468 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage 23469 in common. 23470 (dbxout_syms): Check for COMMON-based symbol and wrap in 23471 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible 23472 in bracket for efficiency. 23473 23474 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block 23475 using DW_TAG_common_block + member offset. 23476 (add_pubname_string): New function. 23477 (dw_expand_expr): New function to find block name and offset for 23478 COMMON var. 23479 (common_check): New function to check whether symbol in Fortran COMMON. 23480 (gen_variable_die): If COMMON, use DW_TAG_common_block. 23481 234822008-04-01 Volker Reichelt <v.reichelt@netcologne.de> 23483 23484 PR c/35436 23485 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type. 23486 234872008-04-02 Ben Elliston <bje@au.ibm.com> 23488 23489 * config/v850/v850.md (casesi): Remove if (0) code. 23490 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise. 23491 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise. 23492 234932008-04-01 Uros Bizjak <ubizjak@gmail.com> 23494 23495 * config/i386/i386.md (rex64suffix): New mode attribute. 23496 (floathi<mode>2): Disable expander for SSE math. 23497 (*floathi<mode>2_1): New insn insn_and_split pattern. 23498 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and 23499 corresponding post-reload splitters. 23500 (*floathi<mode>2_i387): New macroized insn pattern. 23501 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander. 23502 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized 23503 insn_and_split pattern. 23504 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed): 23505 New macroized instruction patterns and corresponding post-reload 23506 splitters. 23507 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern 23508 and corresponding post-reload splitters. 23509 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit): 23510 New macroized instruction patterns. 23511 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New 23512 macroized instruction patterns and corresponding post-reload splitters. 23513 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and 23514 corresponding post-reload splitters. 23515 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit): 23516 New macroized instruction patterns. 23517 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and 23518 corresponding post-reload splitters. 23519 (*floatsi<mode>2_i387): New macroized instruction patterns. 23520 235212008-04-01 H.J. Lu <hongjiu.lu@intel.com> 23522 23523 * config/i386/i386.md (smaxmin): New. 23524 (umaxmin): Likewise. 23525 (maxminiprefix): Likewise. 23526 (maxminfprefix): Likewise. 23527 (<code><mode>3): Likewise. 23528 (smin<mode>3): Removed. 23529 (smax<mode>3): Likewise. 23530 23531 * config/i386/mmx.md (mmx_<code>v2sf3): New. 23532 (mmx_<code>v4hi3): Likewise. 23533 (mmx_<code>v8qi3): Likewise. 23534 (mmx_smaxv2sf3): Removed. 23535 (mmx_sminv2sf3): Likewise. 23536 (mmx_umaxv8qi3): Likewise. 23537 (mmx_smaxv4hi3): Likewise. 23538 (mmx_uminv8qi3): Likewise. 23539 (mmx_sminv4hi3): Likewise. 23540 23541 * config/i386/sse.md (<addsub><mode>3): New. 23542 (*<addsub><mode>3): Likewise. 23543 (<sse>_vm<addsub><mode>3): Likewise. 23544 (<maxmin><mode>3): Likewise. 23545 (*<maxmin><mode>3_finite): Likewise. 23546 (*<maxmin><mode>3): Likewise. 23547 (<sse>_vm<maxmin><mode>3): Likewise. 23548 (sse3_h<addsub>v4sf3): Likewise. 23549 (sse3_h<addsub>v2df3): Likewise. 23550 (<maxmin>v16qi3): Likewise. 23551 (*<maxmin>v16qi3): Likewise. 23552 (<maxmin>v8hi3): Likewise. 23553 (*<maxmin>v8hi3): Likewise. 23554 (*sse4_1_<maxmin><mode>3): Likewise. 23555 (*sse4_1_<maxmin><mode>3): Likewise. 23556 (add<mode>3): Removed. 23557 (*add<mode>3): Likewise. 23558 (<sse>_vmadd<mode>3): Likewise. 23559 (sub<mode>3): Likewise. 23560 (*sub<mode>3): Likewise. 23561 (<sse>_vmsub<mode>3): Likewise. 23562 (smin<mode>3): Likewise. 23563 (*smin<mode>3_finite): Likewise. 23564 (*smin<mode>3): Likewise. 23565 (<sse>_vmsmin<mode>3): Likewise. 23566 (smax<mode>3): Likewise. 23567 (*smax<mode>3_finite): Likewise. 23568 (*smax<mode>3): Likewise. 23569 (<sse>_vmsmax<mode>3): Likewise. 23570 (sse3_haddv4sf3): Likewise. 23571 (sse3_haddv2df3): Likewise. 23572 (sse3_hsubv4sf3): Likewise. 23573 (sse3_hsubv2df3): Likewise. 23574 (umaxv16qi3): Likewise. 23575 (*umaxv16qi3): Likewise. 23576 (smaxv8hi3): Likewise. 23577 (*smaxv8hi3): Likewise. 23578 (*sse4_1_smax<mode>3): Likewise. 23579 (*sse4_1_umax<mode>3): Likewise. 23580 (uminv16qi3): Likewise. 23581 (*uminv16qi3): Likewise. 23582 (sminv8hi3): Likewise. 23583 (*sminv8hi3): Likewise. 23584 (*sse4_1_smin<mode>3): Likewise. 23585 (*sse4_1_umin<mode>3): Likewise. 23586 235872008-04-01 Rafael Esp��ndola <espindola@google.com> 23588 23589 * tree-cfg.c (verify_expr): remove in_phi. 23590 (verify_stmt): Don't call walk_tree with verify_expr. Use 23591 is_gimple_min_invariant instead of is_gimple_val. 23592 235932008-04-01 Joseph Myers <joseph@codesourcery.com> 23594 23595 * doc/include/gpl_v3.texi: Update for manpage generation. 23596 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of 23597 gpl.texi. 23598 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi. 23599 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include 23600 gpl_v3.texi instead of gpl.texi. 23601 (gpl.pod): New. 23602 236032008-04-01 Jakub Jelinek <jakub@redhat.com> 23604 23605 PR pch/13675 23606 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f). 23607 236082008-04-01 Rafael Esp��ndola <espindola@google.com> 23609 23610 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New. 23611 (extract_code_and_val_from_cond): Use 23612 extract_code_and_val_from_cond_with_ops. 23613 236142008-04-01 Jan Hubicka <jh@suse.cz> 23615 23616 * function.c (free_after_compilation): Free epilogue_delay_list. 23617 (prepare_function_start): Assert that previous compilation was freed. 23618 236192008-04-01 Jan Hubicka <jh@suse.cz> 23620 Jim Wilson <wilson@tuliptree.org> 23621 Andreas Tobler <andreast@gcc.gnu.org> 23622 23623 PR middle-end/35781 23624 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use 23625 rtl.emit instead cfun->emit. 23626 * sparc/sparc.h (INIT_EXPANDERS): Likewise. 23627 * ia64/ia64.h (INIT_EXPANDERS): Likewise. 23628 236292008-04-01 Ben Elliston <bje@au.ibm.com> 23630 23631 * doc/c-tree.texi (Function Basics): Fix grammatical error. 23632 236332008-03-31 Seongbae Park <seongbae.park@gmail.com> 23634 23635 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=): 23636 New options 23637 (fprofile-use): Add var flag_profile_use 23638 * coverage.c (coverage_begin_output): Do not open a gcno file for 23639 output only if -ftest-coverage is set. 23640 Do not add getpwd() to gcda file path. 23641 (build_gcov_info): Check the new flag 23642 flag_profile_datafile_relative_path. 23643 (coverage_init): Use profile_data_prefix. 23644 Read profile counter only if flag_profile_use is set. 23645 * opts.c (common_handle_option): New option fprofile-use=, 23646 fprofile-dir=, fprofile-generate=. 23647 * toplev.c (profile_data_prefix): New variable definition. 23648 * toplev.h (profile_data_prefix): New declaration. 23649 * doc/invoke.tex (Option Summary, Optimization Options): 23650 Add new options. 23651 236522008-03-31 James E. Wilson <wilson@tuliptree.org> 23653 23654 * varasm.c (output_constant_pool_1): In LABEL_REF check, 23655 use tmp consistently. 23656 23657 PR target/35695 23658 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV. 23659 * config/ia64/ia64.c (rtx_needs_barrier): Handle 23660 UNSPEC_FR_RECIP_APPROX_RES. 23661 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define. 23662 236632008-03-31 Volker Reichelt <v.reichelt@netcologne.de> 23664 23665 PR c/35750 23666 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters. 23667 236682008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com> 23669 23670 PR middle-end/30186 23671 * fold-const.c (fold_indirect_ref_1): Support accessing non first 23672 element of the vector via a pointer. 23673 236742008-03-31 Ian Lance Taylor <iant@google.com> 23675 23676 * tlink.c (scan_linker_output): Look for symbol name in single quotes. 23677 236782008-03-31 Jan Hubicka <jh@suse.cz> 23679 23680 * builtins.c (expand_builtin_setjmp_receiver): Update call of 23681 get_arg_pointer_save_area. 23682 * expr.c (init_expr): Just clear out rtl.expr. 23683 * function.c (free_after_compilation): Clear out whole RTL structure. 23684 (get_func_frame_size): Merge into ... 23685 (get_frame_size): ... this one. 23686 (assign_stack_local_1): Merge into ... 23687 (assign_stack_local): ... this one. 23688 (expand_function_end): Update call of get_arg_pointer_save_area. 23689 (get_art_pointer_save_area): Remove cfun argument. 23690 * function.h (emit_status): regno_pointer_align does not need length 23691 attribute. Move x_regno_reg_rtx to ... 23692 (regno_reg_rtx): ... new global array. 23693 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors. 23694 (pending_stack_adjust, inhibit_defer_pop, saveregs_value, 23695 apply_args_value, forced_labels, stack_pointer_delta): 23696 Update accestors. 23697 (struct varasm_status): Move here from varasm.c 23698 (struct rtl_data): New. Move here some fields from struct function. 23699 (return_label, naked_return_label, stack_slot_list, parm_birth_insn, 23700 frame_offset, stack_check_probe_note, arg_pointer_save_area, 23701 used_temp_slots avail_temp_slots, temp_slot_level, 23702 nonlocal_goto_handler_labels): Update accesstors. 23703 (rtl): New global variable. 23704 (struct function): Move some fileds to rtl_data. 23705 (get_arg_pointer_save_area): Update prototype. 23706 * emit-rtl.c (rtl): Declare. 23707 (regno_reg_rtx): Declare. 23708 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num): 23709 Update. 23710 (gen_reg_rtx): Update. 23711 (init_virtual_regs): Do not tate emit_status argument. 23712 (init_emit): Do not allocate emit. 23713 * varasm.c (varasm_statuc): Move to function.h. 23714 (n_deferred_constatns): Update accestor. 23715 (init_varasm_status): Do not allocate varasm_status. 23716 (force_const_mem, get_pool_size, output_constant_pool): Update. 23717 * stmt.c (force_label_rtx): Do not use x_ prefixes. 23718 (expand_nl_goto_receiver): Update get_arg_pointer_save_area. 23719 237202008-03-31 Zdenek Dvorak <ook@ucw.cz> 23721 23722 PR rtl-optimization/35729 23723 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory 23724 references. 23725 237262008-03-31 H.J. Lu <hongjiu.lu@intel.com> 23727 23728 PR target/32000 23729 * config/i386/i386.md (*movti_internal): Emit unaligned SSE 23730 load/store if memory is unaligned. 23731 (*movti_rex64): Likewise. 23732 23733 * config/i386/predicates.md (misaligned_operand): New. 23734 237352008-03-31 Andrew Pinski <pinskia@gmail.com> 23736 23737 PR tree-opt/35431 23738 * tree-ssa-phiopt.c (conditional_replacement): Return early for 23739 complex types. 23740 237412008-03-31 Jan Beulich <jbeulich@novell.com> 23742 23743 * config/ia64/constraints.md: Add 'j' constraint. 23744 * config/ia64/ia64.md (movsi_internal): Add addp4 case. 23745 (movdi_internal): Likewise. 23746 237472008-03-30 Volker Reichelt <v.reichelt@netcologne.de> 23748 23749 PR c/35748 23750 * c-typeck.c (build_c_cast): Skip invalid fields in unions. 23751 237522008-03-30 H.J. Lu <hongjiu.lu@intel.com> 23753 23754 PR target/35757 23755 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue 23756 proper error message for the third argument on blendpd and 23757 blendps. 23758 23759 * config/i386/sse.md (blendbits): New. 23760 (sse4_1_blendp<ssemodesuffixf2c>): Use it. 23761 237622008-03-30 Eric Botcazou <ebotcazou@adacore.com> 23763 23764 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions. 23765 237662008-03-30 Richard Guenther <rguenther@suse.de> 23767 23768 PR middle-end/31023 23769 * fold-const.c (fold_sign_changed_comparison): Do leave 23770 conversions to base-types alone. 23771 237722008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com> 23773 23774 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of 23775 the link register if one altivec register is be saved. 23776 237772008-03-30 Ben Elliston <bje@au.ibm.com> 23778 23779 * final.c (final_scan_insn): Remove if (0) code. 23780 237812008-03-28 Volker Reichelt <v.reichelt@netcologne.de> 23782 23783 * c-parser.c (c_parser_next_token_is_keyword): Simplify. 23784 237852008-03-28 H.J. Lu <hongjiu.lu@intel.com> 23786 23787 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead 23788 of V4SFmode to ix86_binary_operator_ok. 23789 237902008-03-28 Uros Bizjak <ubizjak@gmail.com> 23791 23792 * config/i386/i386.c (override_options): Initialize 23793 ix86_veclib_handler to ix86_veclibabi_svml when 23794 -mveclibabi=svml is used. 23795 (ix86_veclibabi_svml): New function for SVML ABI style 23796 vectorization support. 23797 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option. 23798 237992008-03-28 Rafael Esp��ndola <espindola@google.com> 23800 23801 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public. 23802 (tree_binary_nonnegative_warnv_p): Make it public. 23803 (tree_single_nonnegative_warnv_p): Make it public. 23804 (tree_invalid_nonnegative_warnv_p): Make it public. 23805 (tree_unary_nonzero_warnv_p): Make it public. 23806 (tree_binary_nonzero_warnv_p): Make it public 23807 (tree_single_nonzero_warnv_p): Make it public. 23808 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function. 23809 (extract_range_from_binary_expr): Split the expr argument. 23810 (extract_range_from_unary_expr): Split the expr argument. 23811 (extract_range_from_comparison): Split the expr argument. 23812 (extract_range_from_expr): Use the new aux functions. 23813 (vrp_evaluate_conditional_warnv): Use 23814 vrp_evaluate_conditional_warnv_with_ops. 23815 * tree.h (tree_unary_nonzero_warnv_p): Declare. 23816 (tree_binary_nonzero_warnv_p): Declare. 23817 (tree_single_nonzero_warnv_p): Declare. 23818 (tree_expr_nonzero_warnv_p): Declare. 23819 (tree_unary_nonnegative_warnv_p): Declare. 23820 (tree_binary_nonnegative_warnv_p): Declare. 23821 (tree_single_nonnegative_warnv_p): Declare. 23822 (tree_invalid_nonnegative_warnv_p): Declare. 23823 238242008-03-28 Richard Guenther <rguenther@suse.de> 23825 23826 PR tree-optimization/30317 23827 PR tree-optimization/30911 23828 PR tree-optimization/34793 23829 * tree-vrp.c (set_and_canonicalize_value_range): New function. 23830 (struct assert_locus_d): New member EXPR. 23831 (register_new_assert_for): Add EXPR parameter to support 23832 ASSERT_EXPR <name, expr OP limit>. 23833 (register_edge_assert_for_1): Adjust callers. 23834 (find_assert_locations): Likewise. 23835 (process_assert_insertions_for): Build condition from expression. 23836 (extract_range_from_assert): Handle ASSERT_EXPRs 23837 of the form ASSERT_EXPR <name, expr OP limit>. 23838 (register_edge_assert_for_2): New helper registering 23839 asserts for comparisons. Recognize range tests of the form 23840 (unsigned)i - CST1 OP CST2. 23841 (register_edge_assert_for_1): Use it. 23842 (register_edge_assert_for): Likewise. 23843 (needs_overflow_infinity): Integer sub-types 23844 do not need overflow infinities. 23845 (vrp_val_is_max): The extreme values of integer sub-types 23846 are those of the base type. 23847 (vrp_val_is_min): Likewise. 23848 * tree.def (ASSERT_EXPR): Document extra allowed conditional 23849 expressions. 23850 238512008-03-28 Nick Clifton <nickc@redhat.com> 23852 23853 PR target/31110 23854 * config/mn10300/mn10300.c (mn10300_secondary_reload_class): 23855 Return GENERAL_REGS for stack adjustment reloads. 23856 238572008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com> 23858 23859 PR target/31334 23860 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a 23861 const_vector when all the vectors are constant. 23862 238632008-03-27 Bob Wilson <bob.wilson@acm.org> 23864 23865 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered 23866 comparisons. 23867 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons. 23868 (any_scc_sf): Add uneq, unlt, unle and unordered operators. 23869 (scc_sf): New. 23870 (s<code>_sf): Use new scc_sf attribute for opcode names. 23871 238722008-03-27 Tom Tromey <tromey@redhat.com> 23873 23874 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4, 23875 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c, 23876 config/spu/t-spu-elf, config/i386/t-interix, 23877 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin, 23878 config/i386/x-darwin, config/i386/x-mingw32, 23879 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld, 23880 config/sh/t-sh, config/sh/t-symbian, config/x-linux, 23881 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64, 23882 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux, 23883 config/rs6000/x-rs6000, config/rs6000/x-darwin64, 23884 config/rs6000/x-darwin, config/rs6000/t-rs6000, 23885 config/score/t-score-elf, config/arm/t-strongarm-pe, 23886 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe, 23887 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux: 23888 Revert automatic dependency patch. 23889 238902008-03-27 H.J. Lu <hongjiu.lu@intel.com> 23891 23892 PR target/35657 23893 * config/i386/i386.c (ix86_function_arg_boundary): Align 23894 decimal floating point to its natural boundary. 23895 238962008-03-27 Richard Guenther <rguenther@suse.de> 23897 23898 PR middle-end/35716 23899 * fold-const.c (fold_comparison): Restrict distinct decl 23900 comparison folding to VAR_DECLs and PARM_DECLs. Do not 23901 solely rely on operand_equal_p. 23902 239032008-03-27 Richard Guenther <rguenther@suse.de> 23904 23905 PR c/32511 23906 * c-common.c (handle_weak_attribute): Reject combination of 23907 weak and inline. 23908 239092008-03-27 Richard Guenther <rguenther@suse.de> 23910 23911 PR tree-optimization/32810 23912 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless 23913 conversions from DECL_INITIAL. 23914 (fold_const_aggregate_ref): Likewise from constructor elements. 23915 239162008-03-27 Zdenek Dvorak <ook@ucw.cz> 23917 23918 * tree-affine.h (aff_combination_expand): Declare. 23919 (get_inner_reference_aff): Likewise. 23920 * tree-affine.c (aff_combination_expand): Split out from 23921 tree_to_aff_combination_expand. 23922 (get_inner_reference_aff): New function. 23923 * tree-parloops.c (loop_parallel_p): Free vectorizer info. 23924 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h. 23925 (struct lim_aux_data): sm_done field removed. 23926 (mem_ref_loc_p, mem_ref_locs_p): New types. 23927 (struct mem_ref): Added id, stored, accesses_in_loop, 23928 indep_loop, dep_loop, indep_ref, dep_ref fields. 23929 Removed is_stored, locs and next fields. 23930 (memory_accesses): New variable. 23931 (movement_possibility): Do not allow moving statements 23932 that store to memory. 23933 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt): 23934 New functions. 23935 (determine_max_movement): For statements with memory references, 23936 find the outermost loop in that the reference is independent. 23937 (move_computations_stmt): Mark the virtual operands for renaming. 23938 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored, 23939 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq, 23940 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores, 23941 add_vop_ref_mapping, create_vop_ref_mapping_loop, 23942 create_vop_ref_mapping, analyze_memory_references, 23943 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc, 23944 get_all_locs_in_loop, ref_always_accessed_p, 23945 refs_independent_p, record_indep_loop, ref_indep_loop_p_1, 23946 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm, 23947 store_motion_loop, store_motion): New functions. 23948 (struct vop_to_refs_elt): New type. 23949 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs, 23950 memref_hash, memref_eq, hoist_memory_references): Rewritten. 23951 (schedule_sm): Replaced by... 23952 (execute_sm): ... this. 23953 (determine_lsm_ref, hoist_memory_references, 23954 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs, 23955 find_more_ref_vops, free_mem_ref, free_mem_refs, 23956 determine_lsm_loop, determine_lsm): Removed. 23957 (tree_ssa_lim_finalize): Free data structures used by store motion. 23958 (tree_ssa_lim): Call analyze_memory_references. Use 23959 store_motion instead of determine_lsm. 23960 239612008-03-27 Paolo Bonzini <bonzini@gnu.org> 23962 23963 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h, 23964 rename tmake_file to m68hc11/t-m68hc11. 23965 (mcore): Set inhibit_libc to true. 23966 * config.host (alpha*-dec-*vms*): Set extra_programs. 23967 (interix3*): Don't use host_xmake_file. 23968 * configure.ac: Let config.gcc override inhibit_libc. 23969 * configure: Regenerate. 23970 23971 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove. 23972 * config/t-openbsd-thread: Remove commented out lines. 23973 23974 * config/x-interix: Remove. 23975 23976 * config/m68hc11/t-m68hc11-gas: Rename to... 23977 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS. 23978 23979 * config/mcore/t-mcore: Remove T_CFLAGS. 23980 * config/mcore/t-mcore-pe: Likewise. 23981 239822008-03-27 Paolo Bonzini <bonzini@gnu.org> 23983 23984 * configure.ac: Replace custom __GNU_SOURCE test with 23985 AC_USE_SYSTEM_EXTENSIONS. Move it earlier. 23986 * aclocal.m4: Regenerate. 23987 * configure: Regenerate. 23988 * config.in: Regenerate. 23989 239902008-03-27 Richard Guenther <rguenther@suse.de> 23991 23992 * fold-const.c (target.h): Include. 23993 (fold_comparison): Fold comparison of addresses of decls 23994 that bind locally or of constants. Consolidate address folding code. 23995 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST 23996 results from fold_binary_to_constant. 23997 (compare_values_warnv): Likewise. 23998 239992008-03-27 Andrew Pinski <pinskia@gmail.com> 24000 24001 PR middle-end/35429 24002 * fold-const.c (fold_truthop): Check for integeral types when folding 24003 a == 0 && b == 0 and a != 0 || b != 0 . 24004 240052008-03-26 Eric Botcazou <ebotcazou@adacore.com> 24006 24007 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF. 24008 240092008-03-26 Andreas Schwab <schwab@suse.de> 24010 24011 * doc/invoke.texi: Fix use of @item vs. @itemx. 24012 240132008-03-26 Tom Tromey <tromey@redhat.com> 24014 24015 * Makefile.in (build/gensupport.o, build/print-rtl.o, 24016 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o, 24017 build/genattrtab.o, build/genautomata.o, build/gencheck.o, 24018 build/gencodes.o, build/genconditions.o, build/genconfig.o, 24019 build/genconstants.o, build/genemit.o, build/genextract.o, 24020 build/genflags.o, build/genmddeps.o, build/genopinit.o, 24021 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on 24022 options.h. 24023 240242008-03-26 Richard Guenther <rguenther@suse.de> 24025 24026 Revert 24027 2008-03-26 Richard Guenther <rguenther@suse.de> 24028 24029 * fold-const.c (target.h): Include. 24030 (fold_comparison): Fold comparison of addresses of two decls 24031 that bind locally. Consolidate address folding code. 24032 240332008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 24034 24035 * builtins.c (expand_builtin_pow, fold_builtin_cabs, 24036 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm, 24037 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3, 24038 dconstsqrt2, dconstthird, dconste and/or dconst10. 24039 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise. 24040 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird, 24041 dconstsqrt2, dconste): Delete. 24042 (init_emit_once): Likewise. Simplify initializing dconstm1. 24043 Constify variable. 24044 * real.c (get_real_const): New. 24045 * real.h (dconst3, dconst10, dconstm2, dconstthird, 24046 dconstsqrt2, dconste): Delete. 24047 (real_value_const, get_real_const): New. 24048 240492008-03-26 H.J. Lu <hongjiu.lu@intel.com> 24050 24051 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed. 24052 24053 * config/i386/i386.c (ix86_function_arg_boundary): Check 24054 BIGGEST_ALIGNMENT instead of 128. 24055 (setup_incoming_varargs_64): Likewise. 24056 240572008-03-26 Tom Tromey <tromey@redhat.com> 24058 24059 * Makefile.in (DEPFILES): Add missing '/'. 24060 240612008-03-26 Richard Guenther <rguenther@suse.de> 24062 24063 * fold-const.c (target.h): Include. 24064 (fold_comparison): Fold comparison of addresses of two decls 24065 that bind locally. Consolidate address folding code. 24066 240672008-03-26 Nick Clifton <nickc@redhat.com> 24068 24069 PR target/31232 24070 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do 24071 not allow INT+INT as a legitimate addressing mode. 24072 240732008-03-26 Richard Guenther <rguenther@suse.de> 24074 24075 * tree-flow.h (widen_bitfield): Remove declaration. 24076 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code. 24077 (widen_bitfield): Remove function. 24078 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded 24079 code. 24080 240812008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com> 24082 24083 PR target/31558 24084 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle 24085 error_mark_node's. 24086 240872008-03-25 Richard Sandiford <rsandifo@nildram.co.uk> 24088 24089 PR rtl-optimization/35232 24090 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment. 24091 (forget_old_reloads_1, forget_marked_reloads): Don't clear 24092 reg_reloaded_call_part_clobbered here. 24093 (reload_regs_reach_end_p): New function. 24094 (reload_reg_rtx_for_input): New variable. 24095 (reload_reg_rtx_for_output): Likewise. 24096 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx 24097 when reassigning a pseudo register. Load reloadreg from 24098 reload_reg_rtx_for_input, moving the mode and register 24099 calculation to... 24100 (do_input_reload): ...here. Use the mode-adjusted reg_rtx 24101 instead of the original when deciding whether an input reload 24102 would be a no-op or whether an output reload can be deleted. 24103 (emit_output_reload_insns): Use the mode-adjusted reg_rtx 24104 when setting up new_spill_reg_store. Load it from 24105 reload_reg_rtx_for_output, moving the mode and register 24106 calculation to... 24107 (do_output_reload): ...here. Use the mode-adjusted reg_rtx 24108 instead of the original when deciding whether an output reload 24109 would be a no-op. Do the same when modifying insn notes. 24110 Use rtx_equal_p instead of == to compare the registers. 24111 (inherit_piecemeal_p): Take a mode and two register numbers 24112 as argument. 24113 (emit_reload_insns): Clear new_spill_reg_store for every hard 24114 register in the reload register. Remove spill registers 24115 from reg_reloaded_valid before considering whether to record 24116 inheritance information for them. Use reload_reg_rtx_for_output 24117 instead of reg_rtx when recording output reloads. Use 24118 reload_reg_rtx_for_input instead of reg_rtx when recording 24119 input reloads. Set or clear reg_reloaded_call_part_clobbered 24120 at the same time as setting reg_reloaded_valid. 24121 (delete_output_reload): Add a new_reload_reg parameter and use it 24122 instead of rld[j].reg_rtx. 24123 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust 24124 calls accordingly. 24125 241262008-03-25 Tom Tromey <tromey@redhat.com> 24127 24128 * Makefile.in (build/gensupport.o): Depend on insn-modes.h. 24129 (build/genattr.o): Likewise. 24130 (build/genattrtab.o): Likewise. 24131 (build/gencodes.o): Likewise. 24132 (build/genconfig.o): Likewise. 24133 (build/genconstants.o): Likewise. 24134 (build/genemit.o): Likewise. 24135 (build/genextract.o): Likewise. 24136 (build/genflags.o): Likewise. 24137 241382008-03-25 Bob Wilson <bob.wilson@acm.org> 24139 24140 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst 24141 instead of size_int for integer types. 24142 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype 24143 to match type of MINUS_EXPR. 24144 241452008-03-25 Tom Tromey <tromey@redhat.com> 24146 24147 * configure: Rebuilt. 24148 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary 24149 Makefile. 24150 241512008-03-25 Tom Tromey <tromey@redhat.com> 24152 24153 * config/x-solaris (host-solaris.o): Update. 24154 * config/x-linux (host-linux.o): Update. 24155 * config/x-hpux (host-hpux.o): Update. 24156 * config/x-darwin (host-darwin.o): Update. 24157 * config/v850/t-v850e (v850-c.o): Update. 24158 * config/v850/t-v850 (v850-c.o): Update. 24159 * config/t-vxworks (vxworks.o): Update. 24160 * config/t-sol2 (sol2-c.o, sol2.o): Update. 24161 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update. 24162 * config/spu/t-spu-elf (spu-c.o): Update. 24163 (spu.o): Remove. 24164 * config/sh/t-symbian (sh-c.o): Update. 24165 (symbian.o): Update. 24166 * config/sh/t-sh (sh-c.o): Update. 24167 * config/score/t-score-elf (score7.o, score3.o): Update. 24168 * config/rs6000/x-rs6000 (driver-rs6000.o): Update. 24169 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update. 24170 * config/rs6000/x-darwin (host-ppc-darwin.o): Update. 24171 * config/rs6000/t-rs6000 (rs6000-c.o): Update. 24172 (rs6000.o): Remove. 24173 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h. 24174 * config/m32c/t-m32c (m32c-pragma.o): Update. 24175 * config/ia64/t-ia64 (ia64-c.o): Update. 24176 * config/i386/x-mingw32 (host-mingw32.o): Update. 24177 * config/i386/x-i386 (driver-i386.o): Update. 24178 * config/i386/x-darwin (host-i386-darwin.o): Update. 24179 * config/i386/x-cygwin (host-cygwin.o): Update. 24180 * config/i386/t-nwld (nwld.o): Update. 24181 * config/i386/t-netware (netware.o): Update. 24182 * config/i386/t-interix (winnt.o): Update. 24183 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update. 24184 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o, 24185 msformat-c.o): Update. 24186 * config/bfin/t-bfin-linux (generated_files): Add 24187 linux-sysroot-suffix.h. 24188 * config/arm/t-wince-pe (pe.o): Update. 24189 * config/arm/t-strongarm-pe (pe.o): Update. 24190 * config/arm/t-pe (pe.o): Update. 24191 * config/arm/t-arm (arm-c.o): Update. 24192 * doc/install.texi (Prerequisites): Require make 3.80. 24193 * Makefile.in: Remove .o targets. 24194 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables. 24195 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove. 24196 (simple_generated_h, simple_generated_c): Move earlier. 24197 (generated_files): New variable. 24198 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H, 24199 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H, 24200 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H, 24201 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H, 24202 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H, 24203 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H, 24204 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H, 24205 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H, 24206 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H, 24207 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H, 24208 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H, 24209 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove. 24210 (.c.o): Remove. 24211 (COMPILE.base, COMPILE): New variables. 24212 (%.o): New pattern rule. 24213 (ALL_HOST_OBJS): New variable. 24214 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o. 24215 (dummy-checksum.o, cc1-checksum.o): Remove. 24216 (DRIVER_SHLIB): New variable. 24217 (DRIVER_DEFINES): Use it. 24218 (gencondmd.c): Move out of build/. 24219 (s-conditions): Update. 24220 (BUILDCOMPILE.base, BUILDCOMPILE): New variables. 24221 (ALL_BUILD_OBJS): Likewise. 24222 (build/%.o): Use BUILDCOMPILE. 24223 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o, 24224 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o, 24225 build/gencondmd.o, build/genattrtab.o, build/genautomata.o, 24226 build/gencheck.o, build/gencodes.o, build/genconditions.o, 24227 build/genconfig.o, build/genconstants.o, build/genemit.o, 24228 build/genextract.o, build/genflags.o, build/genmddeps.o, 24229 build/genopinit.o, build/genoutput.o, build/genpeep.o, 24230 build/genpreds.o, build/genrecog.o, build/gcov-iov.o, 24231 build/gen-protos.o, build/scan.o, build/fix-header.o, 24232 build/scan-decls.o): Simplify. 24233 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o, 24234 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o, 24235 prefix.o, toplev.o): Reduce to variable setting. 24236 (libbackend.o): Use COMPILE. Remove most dependencies. Move later. 24237 ($(out_object_file), gcc-options.o): New targets. 24238 ($(ALL_HOST_OBJS)): New target. Include dependency files. 24239 * configure: Rebuilt. 24240 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES. 24241 * doc/sourcebuild.texi (Front End Directory): Document new variable. 24242 242432008-03-25 Douglas Gregor <doug.gregor@gmail.com> 24244 24245 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to 24246 complain when we hit an error, return ERROR_MARK_NODE. 24247 242482008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com> 24249 24250 * config/sh/constraints.md (Pso, Psz): New constraints. 24251 * config/sh/sh.c (print_operand): Add %V and %W operand codes. 24252 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns. 24253 242542008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com> 24255 24256 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible. 24257 * config/sh/sh.md (xorsi3_movrt, movrt): New insns. 24258 242592008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com> 24260 24261 * config/sh/sh.md (prefetch): Add condition for SH2A target. 24262 (prefetch_sh2a): New. 24263 242642008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com> 24265 Naveen.H.S <naveen.hs@kpitcummins.com> 24266 24267 * config/sh/constraints.md (I28): New constraint. 24268 * config/sh/sh.c (broken_move): Add support for movi20s. 24269 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s. 24270 242712008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com> 24272 Jayant Sonar <Jayant.sonar@kpitcummins.com> 24273 Naveen.H.S <naveen.hs@kpitcummins.com> 24274 24275 * config/sh/sh.c (SH_ATTRIBUTES): Define. 24276 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define. 24277 (print_operand): Handle resbank in %@ operand code. 24278 (sh_encode_section_info): New. 24279 (push_regs): Add conditions for resbank. 24280 (sh_expand_epilogue): Likewise. 24281 (sh_insert_attributes): Likewise. 24282 (sh_attribute_table): Likewise. 24283 (sh_handle_resbank_handler_attribute): New. 24284 (sh2a_handle_function_vector_handler_attribute): New. 24285 (sh2a_is_function_vector_call): New. 24286 (sh2a_get_function_vector_number): New. 24287 (sh2a_function_vector_p): New. 24288 (sh_cfun_resbank_handler_p): New. 24289 * config/sh/sh.md (calli): Emit jsr/n if possible. 24290 (calli_tbr_rel): New. 24291 (calli_pcrel): Emit jsr/n if possible. 24292 (return_i): Emit rts/n if possible. 24293 (call_valuei_tbr_rel): New. 24294 (call_valuei_pcrel): Add condition for SH2A target. 24295 (call_value): Likewise. 24296 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare. 24297 (sh2a_get_function_vector_number): Likewise. 24298 (sh2a_is_function_vector_call): Likewise. 24299 * doc/extend.texi: Document TBR relative addressing of SH2A. 24300 (resbank): Add description for SH2A. 24301 243022008-03-24 Richard Guenther <rguenther@suse.de> 24303 24304 PR c/22371 24305 * gimplify.c (gimplify_modify_expr): For frontend type-correct 24306 pointer assignments change conversions according to middle-end rules. 24307 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL. 24308 * configure.ac: Include type checking in yes. 24309 * configure: Regenerate. 24310 243112008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 24312 24313 * diagnostic.c (diagnostic_count_diagnostic): Delete. 24314 (diagnostic_report_diagnostic): Update. Handle ICEs here. 24315 243162008-03-24 Nathan Sidwell <nathan@codesourcery.com> 24317 24318 * gthr-vxworks.h (UNUSED): Define. 24319 243202008-03-23 H.J. Lu <hongjiu.lu@intel.com> 24321 24322 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG. 24323 243242008-03-23 Zuxy Meng <zuxy.meng@gmail.com> 24325 24326 * doc/extend.texi (Function Attributes): Add missing comma in the 24327 example of the "alloc_size" attribute. 24328 243292008-03-23 Uros Bizjak <ubizjak@gmail.com> 24330 24331 Revert: 24332 2008-03-05 H.J. Lu <hongjiu.lu@intel.com> 24333 24334 * config/i386/i386-modes.def: Use 4 byte alignment on DI for 24335 32bit host. 24336 24337 2008-03-19 Uros Bizjak <ubizjak@gmail.com> 24338 24339 PR target/35496 24340 * stor-layout.c (update_alignment_for_field): Set minimum alignment 24341 of the underlying type of a MS bitfield layout to the natural 24342 alignment of the type. 24343 24344 2008-03-22 Uros Bizjak <ubizjak@gmail.com> 24345 24346 * config/i386/i386.c (assign_386_stack_local): Align DImode slots 24347 to their natural alignment to avoid store forwarding stalls. 24348 243492008-03-22 Richard Guenther <rguenther@suse.de> 24350 24351 * tree-cfg.c (verify_expr): Recurse again for invariant addresses. 24352 For PHI nodes verify the address is invariant. 24353 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove. 24354 (get_symbol_constant_value): Use is_gimple_min_invariant. 24355 (maybe_fold_stmt_indirect): Likewise. 24356 243572008-03-22 Richard Sandiford <rsandifo@nildram.co.uk> 24358 24359 PR rtl-optimization/33927 24360 * Makefile.in (dse.o): Depend on $(TM_P_H). 24361 * expr.h (extract_low_bits): Declare. 24362 * expmed.c (extract_low_bits): New function. 24363 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling. 24364 * dse.c: Include tm_p.h. 24365 (find_shift_sequence): Remove the read_reg argument and return the 24366 read value. Emit the instructions instead of returning them. 24367 Iterate on new_mode rather than calculating it each time. 24368 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the 24369 source to NEW_MODE and extract_low_bits to convert the shifted 24370 value to READ_MODE. 24371 (replace_read): Allow the load and store to have different mode 24372 classes. Use extract_low_bits when SHIFT == 0. Create the shift 24373 or extraction instructions before trying the replacement. Update 24374 dump-file code accordingly, avoiding use of REGNO (store_info->rhs). 24375 243762008-03-22 Uros Bizjak <ubizjak@gmail.com> 24377 24378 * config/i386/i386.c (assign_386_stack_local): Align DImode slots 24379 to their natural alignment to avoid store forwarding stalls. 24380 243812008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com> 24382 24383 PR target/27946 24384 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and 24385 encouraging but not allowing gprs for input; 24386 change the input constraint to !f#r. 24387 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing 24388 gprs for output; 24389 change the output constraint to !f#r. 24390 243912008-03-21 Uros Bizjak <ubizjak@gmail.com> 24392 24393 PR target/13958 24394 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with 24395 corresponding post-reload splitters. 24396 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern 24397 when x87 FP math is selected. 24398 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse): 24399 New function prototype. 24400 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New 24401 unreachable function to ease macroization of insn patterns. 24402 244032008-03-21 Martin Jambor <mjambor@suse.cz> 24404 24405 * tree-data-ref.c (dump_data_dependence_relation): Avoid data 24406 reference dumps if ddr is NULL or dependence is unknown. 24407 244082008-03-20 Kaz Kojima <kkojima@gcc.gnu.org> 24409 24410 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take 24411 unsigned extension into account. 24412 (ATOMIC_COMPARE_AND_SWAP): Likewise. 24413 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise. 24414 Do computations on a scratch register. 24415 244162008-03-21 Richard Guenther <rguenther@suse.de> 24417 24418 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop): 24419 Use is_gimple_min_invariant instead of TREE_INVARIANT. 24420 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise. 24421 * tree-ssa-dom.c (record_equality): Likewise. 24422 * tree-inline.c (copy_body_r): Likewise. 24423 * tree-ssa-pre.c (make_values_for_stmt): Remove test for 24424 TREE_INVARIANT. 24425 244262008-03-20 Kaz Kojima <kkojima@gcc.gnu.org> 24427 24428 * config/sh/sh.c (split_branches): Pass zero to redirect_jump 24429 as 'delete_unused' argument. 24430 244312008-03-20 Richard Guenther <rguenther@suse.de> 24432 24433 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove 24434 special casing of constant qualifiers. 24435 * tree-ssa.c (useless_type_conversion_p_1): Instead do not 24436 care about them in general. 24437 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not 24438 regardless of their type. 24439 (fold_stmt_r): Forcefully fold *& if we end up with that. 24440 244412008-03-20 Paul Brook <paul@codesourcery.com> 24442 24443 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h. 24444 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra 24445 linker flags. 24446 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default 24447 definition. 24448 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC. 24449 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux. 24450 244512008-03-20 Volker Reichelt <v.reichelt@netcologne.de> 24452 24453 * common.opt (Wmudflap): New option. 24454 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap. 24455 (mx_register_decls): Likewise. 24456 (mudflap_finish_file): Likewise. 24457 * doc/invoke.texi: Document -Wno-mudflap. 24458 244592008-03-20 Kai Tietz <kai.tietz@onevision.com> 24460 24461 * c-format.c (replace_format_name_to_system_name): New. 24462 (cmp_attribs): New. 24463 (convert_format_name_to_system_name): New. 24464 (decode_format_attr): Add use of convert_format_name_to_system_name. 24465 (format_types_orig): Add gnu_ prefix to names. 24466 (check_format_info_main): Special treating of \0 escaped names for 24467 supporting multi-character format specifiers as I32, I64. 24468 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes. 24469 (gnu_target_overrides_format_attributes): New. 24470 * c-format.h: Add structure target_ovr_attr to hold 24471 system specific formatter names. 24472 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the 24473 msformat-c.o file to c_target_objs and cxx_target_objs. 24474 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New. 24475 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New. 24476 (TARGET_N_FORMAT_TYPES): New. 24477 * config/i386/msformat-c.c: New. 24478 * config/i386/t-cygming: Add build rule for msformat-c.o. 24479 * doc/extend.texi: Add new format names gnu_* and ms_* and 24480 further details. 24481 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New. 24482 244832008-03-20 Ira Rosen <irar@il.ibm.com> 24484 24485 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of 24486 optimizations turned on under -O3. 24487 (ftree-vectorize): Add that the flag is turned on with -O3. 24488 244892008-03-20 Ben Elliston <bje@au.ibm.com> 24490 24491 * regmove.c (try_auto_increment): Fix spelling error in comment. 24492 * final.c (final_scan_insn): Likewise. 24493 244942008-03-20 Uros Bizjak <ubizjak@gmail.com> 24495 24496 PR target/14552 24497 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register 24498 allocator preferences for "y" and "r" class registers. 24499 ("*mov<mode>_internal"): Ditto. 24500 ("*movv2sf_internal_rex64"): Ditto. 24501 ("*movv2sf_internal"): Ditto. 24502 245032008-03-19 Michael Matz <matz@suse.de> 24504 24505 PR middle-end/35616 24506 * calls.c (expand_call): Check overlap of arguments with call 24507 address for sibcalls. 24508 245092008-03-19 Uros Bizjak <ubizjak@gmail.com> 24510 24511 PR target/35496 24512 * stor-layout.c (update_alignment_for_field): Set minimum alignment 24513 of the underlying type of a MS bitfield layout to the natural 24514 alignment of the type. 24515 245162008-03-19 Jan Hubicka <jh@suse.cz> 24517 24518 PR other/35094 24519 * toplev.c (decode_d_option): Handle all CPP flags. 24520 * tree-vrp.c: Update tree_pass descriptors. 24521 * regrename.c: Update tree_pass descriptors. 24522 * fwprop.c: Update tree_pass descriptors. 24523 * doc/invoke.texi: Remove documentation of dropped -d? flags. 24524 * tree-into-ssa.c: Update tree_pass descriptors. 24525 * tree-dump.c: Update tree_pass descriptors. 24526 * tree-complex.c: Update tree_pass descriptors. 24527 * tree-dump.h: Update tree_pass descriptors. 24528 * see.c: Update tree_pass descriptors. 24529 * cgraphbuild.c: Update tree_pass descriptors. 24530 * tracer.c: Update tree_pass descriptors. 24531 * tree-loop-distribution.c: Update tree_pass descriptors. 24532 * cgraph.c: Update tree_pass descriptors. 24533 * postreload-gcse.c: Update tree_pass descriptors. 24534 * postreload.c: Update tree_pass descriptors. 24535 * tree-ssa-loop-ch.c: Update tree_pass descriptors. 24536 * tree-tailcall.c: Update tree_pass descriptors. 24537 * tree-pass.h (tree_opt_pass): Rename to ... 24538 (opt_pass) ... this one; add "type" field and remove letter field. 24539 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New. 24540 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes, 24541 all_lowering_passes): Update declaration. 24542 * ipa-cp.c: Update tree_pass descriptors. 24543 * final.c: Update tree_pass descriptors. 24544 * omp-low.c: Update tree_pass descriptors. 24545 * tree-ssa-dse.c: Update tree_pass descriptors. 24546 * ipa-reference.c: Update tree_pass descriptors. 24547 * tree-ssa-uncprop.c: Update tree_pass descriptors. 24548 * auto-inc-dec.c: Update tree_pass descriptors. 24549 * reorg.c: Update tree_pass descriptors. 24550 * cgraphunit.c: Update tree_pass descriptors. 24551 * tree-ssa-copyrename.c: Update tree_pass descriptors. 24552 * tree-ssa-ccp.c: Update tree_pass descriptors. 24553 * df-core.c: Update tree_pass descriptors. 24554 * mode-switching.c: Update tree_pass descriptors. 24555 * tree-nomudflap.c: Update tree_pass descriptors. 24556 * modulo-sched.c: Update tree_pass descriptors. 24557 * ipa-pure-const.c: Update tree_pass descriptors. 24558 * cse.c: Update tree_pass descriptors. 24559 * web.c: Update tree_pass descriptors. 24560 * tree-stdarg.c: Update tree_pass descriptors. 24561 * tree-ssa-math-opts.c: Update tree_pass descriptors. 24562 * tree-ssa-dom.c: Update tree_pass descriptors. 24563 * tree-nrv.c: Update tree_pass descriptors. 24564 * tree-ssa-alias.c: Update tree_pass descriptors. 24565 * loop-init.c: Update tree_pass descriptors. 24566 * gimple-low.c: Update tree_pass descriptors. 24567 * ipa-inline.c: Update tree_pass descriptors. 24568 * tree-ssa-sink.c: Update tree_pass descriptors. 24569 * global.c: Update tree_pass descriptors. 24570 * ifcvt.c: Update tree_pass descriptors. 24571 * jump.c: Update tree_pass descriptors. 24572 * predict.c: Update tree_pass descriptors. 24573 * tree-ssa-loop.c: Update tree_pass descriptors. 24574 * recog.c: Update tree_pass descriptors. 24575 * dse.c: Update tree_pass descriptors. 24576 * tree-ssa-ifcombine.c: Update tree_pass descriptors. 24577 * tree-eh.c: Update tree_pass descriptors. 24578 * regmove.c: Update tree_pass descriptors. 24579 * local-alloc.c 24580 * function.c: Update tree_pass descriptors. 24581 * tree-vectorizer.c: Update tree_pass descriptors. 24582 * gcse.c: Update tree_pass descriptors. 24583 * ipa-type-escape.c: Update tree_pass descriptors. 24584 * tree-if-conv.c: Update tree_pass descriptors. 24585 * init-regs.c: Update tree_pass descriptors. 24586 * ipa.c: Update tree_pass descriptors. 24587 * tree-ssa-phiopt.c: Update tree_pass descriptors. 24588 * rtl-factoring.c: Update tree_pass descriptors. 24589 * lower-subreg.c: Update tree_pass descriptors. 24590 * bt-load.c: Update tree_pass descriptors. 24591 * tree-dfa.c: Update tree_pass descriptors. 24592 * except.c: Update tree_pass descriptors. 24593 * emit-rtl.c: Update tree_pass descriptors. 24594 * cfgexpand.c: Update tree_pass descriptors. 24595 * tree-cfgcleanup.c: Update tree_pass descriptors. 24596 * cfgcleanup.c: Update tree_pass descriptors. 24597 * tree-ssa-pre.c: Update tree_pass descriptors. 24598 * tree-sra.c: Update tree_pass descriptors. 24599 * tree-mudflap.c: Update tree_pass descriptors. 24600 * tree-ssa-copy.c: Update tree_pass descriptors. 24601 * cfglayout.c: Update tree_pass descriptors. 24602 * tree-ssa-forwprop.c: Update tree_pass descriptors. 24603 * tree-ssa-dce.c: Update tree_pass descriptors. 24604 * tree-ssa.c: Update tree_pass descriptors. 24605 * regclass.c: Update tree_pass descriptors. 24606 * integrate.c: Update tree_pass descriptors. 24607 * tree-optimize.c: Update tree_pass descriptors. 24608 * tree-ssa-phiprop.c: Update tree_pass descriptors. 24609 * tree-object-size.c: Update tree_pass descriptors. 24610 * combine.c: Update tree_pass descriptors. 24611 * tree-outof-ssa.c: Update tree_pass descriptors. 24612 * bb-reorder.c: Update tree_pass descriptors. 24613 * stack-ptr-mod.c: Update tree_pass descriptors. 24614 * var-tracking.c: Update tree_pass descriptors. 24615 * tree-profile.c: Update tree_pass descriptors. 24616 * tree-vect-generic.c: Update tree_pass descriptors. 24617 * reg-stack.c: Update tree_pass descriptors. 24618 * sched-rgn.c: Update tree_pass descriptors. 24619 * tree-ssa-structalias.c: Update tree_pass descriptors. 24620 * tree-cfg.c: Update tree_pass descriptors. 24621 * passes.c (current_pass): Update declaration. 24622 (finish_optimization_passes): Update. 24623 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration. 24624 (register_one_dump_file, register_dump_files_1, next_pass_1): 24625 Update arguments. 24626 (init_optimization_passes): Update handling of new types. 24627 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update. 24628 * ipa-struct-reorg.c: Update tree_pass descriptors. 24629 * tree-ssa-reassoc.c: Update tree_pass descriptors. 24630 * combine-stack-adj.c: Update tree_pass descriptors. 24631 * cfgrtl.c: Update tree_pass descriptors. 24632 * dce.c: Update tree_pass descriptors. 24633 * tree-ssanames.c: Update tree_pass descriptors. 24634 246352008-03-19 Richard Guenther <rguenther@suse.de> 24636 24637 PR middle-end/35609 24638 * tree-ssa.c (walk_data): New structure. 24639 (warn_uninitialized_var): If not always_executed warn with "maybe" 24640 instead of "is". 24641 (execute_early_warn_uninitialized): Compute post-dominators. 24642 Initialize always_executed before processing each basic block. 24643 246442008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> 24645 24646 PR target/35504 24647 * config/i386/i386.c (x86_this_parameter): Calculate correct location 24648 of "this" pointer when "regparm = N" or "fastcall" is in effect. 24649 246502008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 24651 24652 * doc/include/texinfo.tex: Update to version 2008-03-17.10. 24653 246542008-03-18 Paolo Bonzini <bonzini@gnu.org> 24655 24656 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations 24657 is true. 24658 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore. 24659 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations 24660 is true. Add "&& !ignore" condition to reduce_bit_field. Modify 24661 target after ignore has been set, and move there also the commputation 24662 of subtarget and original_target. 24663 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. 24664 (LANG_HOOKS_INITIALIZER): Remove it. 24665 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations. 24666 246672008-03-18 Richard Guenther <rguenther@suse.de> 24668 24669 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup 24670 found an expression with constants, note that in the VN for the lhs. 24671 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and 24672 fold them to constants if possible. Run cleanup_cfg if done so. 24673 (execute_pre): Return todo. 24674 (do_pre): Likewise. 24675 (execute_fre): Likewise. 24676 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation 24677 of constants. 24678 (get_prop_source_stmt): Look through pointer conversions. 24679 246802008-03-18 Jan Hubicka <jh@suse.cz> 24681 24682 * tree-pretty-print.c: Include predict.h. 24683 (dump_generic_node): Dump predictor. 24684 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update. 24685 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR. 24686 * gimple-low.c (lower_stmt): Likewise. 24687 * expr.c (expand_expr_real): Likewise. 24688 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove 24689 them. 24690 (build_predict_expr, build_predict_expr): New. 24691 * predict.h (predictor_name, build_predict_expr): Update. 24692 * c-typeck.c (c_finish_bc_stmt): Add prediction. 24693 * gimplify.c (gimplify_expr): Add PREDICT_EXPR. 24694 * predict.def (PRED_CONTINUE): Update hitrate. 24695 * tree.def (PREDICT_EXPR): Define. 24696 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR; 24697 do not handle BIND_EXPR. 24698 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free. 24699 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid. 24700 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no 24701 operands. 24702 247032008-03-18 Michael Matz <matz@suse.de> 24704 24705 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden. 24706 247072008-03-18 Richard Guenther <rguenther@suse.de> 24708 24709 * tree-gimple.h (is_gimple_invariant_address): Declare. 24710 (is_gimple_constant): Likewise. 24711 * tree-gimple.c (is_gimple_constant): New function. 24712 (is_gimple_invariant_address): Likewise. 24713 (is_gimple_min_invariant): Implement in terms of is_gimple_constant 24714 and is_gimple_invariant_address. 24715 * tree-ssa-loop-niter.c (expand_simple_operations): Revert 24716 previous change. 24717 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not 24718 an addressable base. 24719 247202008-03-18 Jakub Jelinek <jakub@redhat.com> 24721 24722 PR middle-end/35611 24723 * gimplify.c (gimplify_expr): Gimplify second operand of 24724 OMP_ATOMIC_LOAD. 24725 247262008-03-17 Richard Guenther <rguenther@suse.de> 24727 24728 PR tree-optimization/19637 24729 * fold-const.c (fold_unary): Remove restrictions of removing 24730 intermediate pointer-conversions (P2)(P1)P0. 24731 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from 24732 conversion to void pointer. 24733 (get_maxval_strlen): Handle addresses of the form &(*p)[0]. 24734 247352008-03-16 James E. Wilson <wilson@tuliptree.org> 24736 24737 PR debug/31510 24738 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for 24739 emulated thread local variables. 24740 247412008-03-16 Richard Guenther <rguenther@suse.de> 24742 24743 PR middle-end/35607 24744 * tree-ssa-loop-niter.c (expand_simple_operations): Do not 24745 expand TREE_INVARIANT operations that are not gimple invariant. 24746 247472008-03-16 Hans-Peter Nilsson <hp@axis.com> 24748 24749 * doc/extend.texi (Alignment): Say that the ABI controls 24750 the __alignof__ for non-strict-alignment targets rather 24751 than being a recommendation. 24752 247532008-03-15 Paul Brook <paul@codesourcery.com> 24754 24755 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding 24756 annotations. 24757 (arm_output_fn_unwind): Mark functions that can not be unwound. 24758 247592008-03-15 Paul Brook <paul@codesourcery.com> 24760 24761 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value 24762 extension instructions. 24763 247642008-03-15 Richard Guenther <rguenther@suse.de> 24765 24766 * tree-ssa-ccp.c (ccp_fold): Also read from constant values 24767 and fold constant aggregate refs. 24768 (fold_const_aggregate_ref): Handle string constants 24769 and constructors in ARRAY_REFs. Handle INDIRECT_REF. 24770 (evaluate_stmt): Simplify now that ccp_fold folds constant 24771 aggregate refs. 24772 247732008-03-15 Paul Brook <paul@codesourcery.com> 24774 24775 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero. 24776 (extzv): Use gen_extzv_t2. 24777 (insv_t2, insv_zero, extv, extzv_t2): New patterns. 24778 247792008-03-15 Richard Guenther <rguenther@suse.de> 24780 24781 * tree-ssa-ccp.c (get_symbol_constant_value): Export. 24782 (fold_const_aggregate_ref): Likewise. 24783 (get_value): Return NULL if we don't have any values. 24784 (ccp_finalize): Set const_val to NULL after freeing it. 24785 * tree-flow.h (get_symbol_constant_value): Declare. 24786 (fold_const_aggregate_ref): Likewise. 24787 * tree-ssa-sccvn.c (try_to_simplify): Use them. 24788 247892008-03-15 Richard Guenther <rguenther@suse.de> 24790 24791 PR middle-end/35593 24792 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure 24793 to not produce negative array indices if not allowed. Add 24794 parameter to indicate that. 24795 (maybe_fold_offset_to_component_ref): Allow negative array 24796 indices only for the first member of a structure. 24797 (maybe_fold_offset_to_reference): Allow negative array indices. 24798 (maybe_fold_stmt_addition): Likewise. 24799 248002008-03-15 Bjoern Haase <bjoern.m.haase@web.de> 24801 Anatoly Sokolov <aesok@post.ru> 24802 24803 * config/avr/avr.c (avr_arch_types): Add avr6 entry. 24804 (avr_arch): Add ARCH_AVR6. 24805 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry. 24806 (initial_elimination_offset): Initialize and use 'avr_pc_size' 24807 instead of fixed value 2. 24808 (print_operand_address): Use gs() asm specifier instead of pm(). 24809 (avr_assemble_integer): (Ditto.). 24810 (avr_output_addr_vec_elt): (Ditto.). 24811 (print_operand): Handle "!" code. 24812 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 24813 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__. 24814 (AVR_HAVE_EIJMP_EICALL): Define. 24815 (AVR_3_BYTE_PC): Redefine. 24816 (AVR_2_BYTE_PC): (Ditto.). 24817 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code. 24818 (LINK_SPEC): Add atmega2560 and atmega2561. 24819 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 24820 (crtm2561.o). 24821 * config/avr/avr.md (call_insn): Use eicall instead of icall 24822 for 3 byte PC devices. 24823 (call_value_insn): (Ditto.). 24824 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices. 24825 (indirect_jump): Use only for for 2 byte PC devices. 24826 (*tablejump): (Ditto.). 24827 (*indirect_jump_avr6): Add insn. 24828 (*tablejump_rjmp): Don't use for 3 byte PC devices. 24829 * config/avr/libgcc.S (__prologue_saves__): Use eijmp 24830 instead of ijmp for 3 byte PC devices. 24831 (__tablejump2__): (Ditto.). 24832 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture. 24833 (MULITLIB_DIRNAMES): (Ditto.). 24834 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list. 24835 248362008-03-15 Uros Bizjak <ubizjak@gmail.com> 24837 24838 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from 24839 "sse2_umulsidi3". Use V1DI mode for operand 0. 24840 ("mmx_psadbw"): Use V1DI mode for operand 0. 24841 * config/i386/i386-modes.def (V1SI): New vector mode. 24842 * config/i386/i386.c (struct builtin_description) 24843 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3. 24844 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi. 24845 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si. 24846 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use 24847 v1di_ftype_v8qi_v8qi type. 24848 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type. 24849 24850 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw, 24851 __builtin_ia32_pmuludq]: Fix the mode of return value. 24852 248532008-03-15 Richard Guenther <rguenther@suse.de> 24854 24855 PR middle-end/35595 24856 * tree-ssa-pre.c (bitmap_find_leader): Handle expression 24857 being a PHI_NODE. 24858 248592008-03-14 Bob Wilson <bob.wilson@acm.org> 24860 24861 * doc/invoke.texi (Option Summary, Xtensa Options): Document 24862 -mserialize-volatile and -mno-serialize-volatile Xtensa options. 24863 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions 24864 unless TARGET_SERIALIZE_VOLATILE is enabled. 24865 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise. 24866 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE. 24867 * config/xtensa/xtensa.opt (mserialize_volatile): New option. 24868 248692008-03-14 Richard Guenther <rguenther@suse.de> 24870 24871 PR tree-optimization/34172 24872 * tree-flow.h (refs_may_alias_p): Declare. 24873 (get_single_def_stmt): Likewise. 24874 (get_single_def_stmt_from_phi): Likewise. 24875 (get_single_def_stmt_with_phi): Likewise. 24876 * tree-dfa.c (refs_may_alias_p): New function. 24877 (get_single_def_stmt): Likewise. 24878 (get_single_def_stmt_from_phi): Likewise. 24879 (get_single_def_stmt_with_phi): Likewise. 24880 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function. 24881 (vn_reference_lookup_1): New helper function. 24882 (vn_reference_lookup): Walk the virtual use-def chain to 24883 continue searching for a match if the def does not alias the 24884 reference we are looking for. 24885 248862008-03-14 David Edelsohn <edelsohn@gnu.org> 24887 24888 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC 24889 archive and Perzl. Update The Written Word listing. 24890 248912008-03-14 Richard Guenther <rguenther@suse.de> 24892 24893 PR tree-optimization/34043 24894 PR tree-optimization/33989 24895 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion 24896 when doing FRE. 24897 (bitmap_find_leader): Use extra argument to verify dominance 24898 relationship inside a basic-block. 24899 (can_PRE_operation): Add VIEW_CONVERT_EXPR. 24900 (find_leader_in_sets): Adjust. 24901 (create_component_ref_by_pieces): Take extra argument for 24902 dominance check, handle lookup failures. 24903 (find_or_generate_expression): Likewise. 24904 (create_expression_by_pieces): Likewise. 24905 (insert_into_preds_of_block): Adjust. 24906 (create_value_expr_from): If asked for, verify all operands 24907 are in the blocks AVAIL_OUT set. 24908 (make_values_for_stmt): Check for SSA_NAMEs that are life 24909 over an abnormal edge. 24910 (compute_avail): Remove such check. 24911 (do_SCCVN_insertion): New function. 24912 (eliminate): If we do not find a leader suitable for replacement 24913 insert a replacement expression from SCCVN if available. 24914 * tree-ssa-sccvn.h (run_scc_vn): Update prototype. 24915 (struct vn_ssa_aux): Add needs_insertion flag. 24916 * tree-ssa-sccvn.c (may_insert): New global flag. 24917 (copy_reference_ops_from_ref): Value-number union member access 24918 based on its size, not type and member if insertion is allowed. 24919 (visit_reference_op_load): For a weak match from union type 24920 punning lookup a view-converted value and insert a SSA_NAME 24921 for that value if that is not found. 24922 (visit_use): Make dumps shorter. Do not disallow value numbering 24923 SSA_NAMEs that are life over an abnormal edge to constants. 24924 (free_scc_vn): Release inserted SSA_NAMEs. 24925 (run_scc_vn): New flag to specify whether insertion is allowed. 24926 Process SSA_NAMEs in forward order. 24927 * tree-ssa-loop-im.c (for_each_index): Handle invariant 24928 ADDR_EXPRs inside VIEW_CONVERT_EXPR. 24929 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to 24930 pointer type to/from integral types that do not change the 24931 precision to regular conversions. 24932 249332008-03-13 Uros Bizjak <ubizjak@gmail.com> 24934 24935 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?, 24936 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i, 24937 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128, 24938 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of 24939 input arguments and the mode of return value. Built-in functions 24940 that operate on whole 64-bit MMX register now use V1DI mode. 24941 249422008-03-13 Alon Dayan <alond@il.ibm.com> 24943 Olga Golovanevsky <olga@il.ibm.com> 24944 24945 PR tree-optimization/35041 24946 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option 24947 to locate the right position in a statement. 24948 249492008-03-13 Uros Bizjak <ubizjak@gmail.com> 24950 24951 PR target/34000 24952 PR target/35553 24953 * config/i386/xmmintrin.h: Change all static inline functions to 24954 extern inline and add __gnu_inline__ attribute. 24955 * config/i386/bmintrin.h: Ditto. 24956 * config/i386/smmintrin.h: Ditto. 24957 * config/i386/tmmintrin.h: Ditto. 24958 * config/i386/mmintrin-common.h: Ditto. 24959 * config/i386/ammintrin.h: Ditto. 24960 * config/i386/emmintrin.h: Ditto. 24961 * config/i386/pmmintrin.h: Ditto. 24962 * config/i386/mmintrin.h: Ditto. 24963 * config/i386/mm3dnow.h: Ditto. 24964 249652008-03-13 Jakub Jelinek <jakub@redhat.com> 24966 24967 PR middle-end/35185 24968 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed. 24969 (lower_omp_2): New function. 24970 (lower_omp_1, lower_omp): Rewritten. 24971 249722008-03-13 Danny Smith <dannysmith@users.sourceforge.net> 24973 24974 PR 35054 24975 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32" 24976 with the phrase "Microsoft Windows compilers". 24977 (Push/Pop Macro Pragmas): New subsection. Document 24978 #pragma push_macro and pragma pop_macro. 24979 249802008-03-12 Paul Brook <paul@codesourcery.com> 24981 24982 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM. 24983 249842008-03-12 Paul Brook <paul@codesourcery.com> 24985 24986 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs. 24987 (thumb2_alusi3_short): Exclude PLUS and MINUS. 24988 (thumb2_addsi_shortim): Rename ... 24989 (thumb2_addsi_short): ... to this. Allow register operands. 24990 (thumb2_subsi_short): New pattern. 24991 (thumb2_one_cmplsi2_short, 24992 thumb2_negsi2_short): New patterns and peepholes. 24993 249942008-03-12 Paul Brook <paul@codesourcery.com> 24995 24996 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2. 24997 249982008-03-12 Uros Bizjak <ubizjak@gmail.com> 24999 25000 * config/i386/i386.md (int_cond): New code iterator. 25001 (fp_cond): Ditto. 25002 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu, 25003 sge, sgeu, sle and sleu expanders usign int_cond code iterator. 25004 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge, 25005 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator. 25006 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu, 25007 bge, bgeu, ble and bleu expanders usign int_cond code iterator. 25008 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge, 25009 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator. 25010 250112008-03-12 Paul Brook <paul@codesourcery.com> 25012 25013 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask 25014 instead of {arm,thumb}_compute_save_reg_mask. 25015 (output_return_instruction): Ditto. 25016 (thumb_unexpanded_epilogue): Ditto. 25017 (thumb1_expand_prologue): Ditto. 25018 (thumb1_output_function_prologue): Ditto. 25019 (arm_set_return_address): Ditto. 25020 (thumb_set_return_address): Ditto. 25021 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra 25022 regs to achieve stack alignment. 25023 (thumb1_compute_save_reg_mask): Fix compiler warning. 25024 (arm_output_epilogue): Use offsets->saved_regs_mask. 25025 Adjust stack pointer by poping call clobered registers. 25026 (arm_expand_prologue): Use offsets->saved_regs_mask. 25027 Adjust stack pointer by pushing extra registers. 25028 * config/arm.h (arm_stack_offsets): Add saved_regs_mask. 25029 250302008-03-12 Paolo Bonzini <bonzini@gnu.org> 25031 25032 PR tree-opt/35422 25033 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing 25034 conversion to the operands of a multiplication. 25035 250362008-03-12 Richard Guenther <rguenther@suse.de> 25037 25038 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o 25039 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o. 25040 * timevar.def (TV_TREE_PHIPROP): Add. 25041 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added 25042 pass description. Use TV_TREE_PHIPROP. 25043 * tree-ssa-forwprop.c: Remove phiprop code. 25044 250452008-03-12 Jakub Jelinek <jakub@redhat.com> 25046 25047 PR middle-end/35549 25048 * omp-low.c (maybe_lookup_decl): Constify first argument. 25049 (use_pointer_for_field): Change last argument from bool to 25050 omp_context *. Disallow shared copy-in/out in nested 25051 parallel if decl is shared in outer parallel too. 25052 (build_outer_var_ref, scan_sharing_clauses, 25053 lower_rec_input_clauses, lower_copyprivate_clauses, 25054 lower_send_clauses, lower_send_shared_vars): Adjust callers. 25055 250562008-03-12 Victor Kaplansky <victork@il.ibm.com> 25057 Ira Rosen <irar@il.ibm.com> 25058 25059 * tree-vectorizer.c (free_stmt_vec_info): New function. 25060 (destroy_loop_vec_info): Move code to free_stmt_vec_info(). 25061 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES.. 25062 * tree-vectorizer.h (free_stmt_vec_info): Declare. 25063 * tree-vect-transform.c (vectorizable_conversion): Free 25064 vec_oprnds0 if it was allocated. 25065 (vect_permute_store_chain): Remove unused VECs. 25066 (vectorizable_store): Free VECs that are allocated in the.. 25067 function. 25068 (vect_transform_strided_load, vectorizable_load): Likewise. 25069 (vect_remove_stores): Simplify the code. 25070 (vect_transform_loop): Move code to vect_remove_stores(). 25071 Call vect_remove_stores() and free_stmt_vec_info(). 25072 250732008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 25074 25075 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on 25076 TARGET_HPUX. Revise comment. 25077 (TARGET_LONG_PIC_PCREL_CALL): Revise comment. 25078 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL. 25079 Use sr4 variant of `be' instruction when not generating PIC code. 25080 (attr_length_call): Adjust for above change. 25081 250822008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com> 25083 25084 * ipa-reference.c (static_execute): Remove module_statics_const and 25085 associated setting code. 25086 250872008-03-11 Uros Bizjak <ubizjak@gmail.com> 25088 25089 PR target/35540 25090 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand 25091 predicate for operand 1. 25092 (paritysi2_cmp): Use register_operand predicate for operand 2. 25093 Use earlyclobber modifier for operand 1. Remove support for 25094 memory operands. 25095 (paritydi2_cmp): Use register_operand predicate for operand 3. 25096 Use earlyclobber modifier for operand 1. Remove support for 25097 memory operands. 25098 250992008-03-11 Paul Brook <paul@codesourcery.com> 25100 Vladimir Prus <vladimir@codesourcery.com> 25101 25102 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME. 25103 (arm_compute_save_reg0_reg12_mask): Always 25104 check if register 11 must be saved. Always safe hard frame pointer 25105 when frame_pointer_needeed. 25106 (arm_compute_save_reg_mask): Save IP and PC 25107 only with apcs frames. 25108 (arm_output_epilogue): Adjust Thumb2 codepath to 25109 be also invoked and work for ARM non-apcs frames. 25110 (arm_expand_prologue): Don't bother saving IP 25111 for non-apcs frame, since it's not clobbered by 25112 prologue code. Implement non-apcs frame 25113 layout. 25114 251152008-03-11 Paolo Bonzini <bonzini@gnu.org> 25116 25117 PR rtl-optimization/35281 25118 * expr.c (convert_move): Use a new pseudo for the intermediate 25119 from_mode->word_mode result. 25120 251212008-03-11 Paolo Bonzini <bonzini@gnu.org> 25122 25123 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete. 25124 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member. 25125 * toplev.c (compile_file): Don't call it. 25126 251272008-03-11 Uros Bizjak <ubizjak@gmail.com> 25128 25129 PR middle-end/35526 25130 * expr.c (store_expr): Call emit_block_move if the mode 25131 of "temp" RTX is BLKmode. 25132 251332008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com> 25134 Richard Guenther <rguenther@suse.de> 25135 25136 PR tree-optimization/31358 25137 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for 25138 the step with a NULL_TREE. 25139 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step 25140 to sizetype if type is a pointer type. 25141 (add_candidate_1): Don't convert the base and step to 25142 the generic type if the orginal type is a pointer type. 25143 (add_iv_value_candidates): Use sizetype for the step 25144 if type is a pointer type. 25145 (cand_value_at): Likewise. 25146 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR 25147 for pointer types. 25148 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>): 25149 Don't convert the tem affine to the type. 25150 (add_elt_to_tree): Use sizetype for the step if a pointer. 25151 Use POINTER_PLUS_EXPR for pointers. 25152 (aff_combination_to_tree): Use sizetype for the step if a 25153 pointer. 25154 251552008-03-10 Vladimir Makarov <vmakarov@redhat.com> 25156 25157 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3): 25158 Remove commutativity hint. 25159 251602008-03-10 Jakub Jelinek <jakub@redhat.com> 25161 25162 PR c/35438 25163 PR c/35439 25164 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with 25165 errorneous type. Check that v is a VAR_DECL. 25166 25167 PR middle-end/35099 25168 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid. 25169 251702008-03-10 H.J. Lu <hongjiu.lu@intel.com> 25171 25172 PR tree-optimization/35494 25173 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value 25174 may be overriden at link and run time. 25175 251762008-03-10 Richard Guenther <rguenther@suse.de> 25177 25178 PR tree-optimization/34677 25179 * tree-ssa-pre.c (modify_expr_node_pool): Remove. 25180 (poolify_tree): Likewise. 25181 (modify_expr_template): Likewise. 25182 (poolify_modify_stmt): Likewise. 25183 (insert_fake_stores): Handle all component-ref style stores 25184 in addition to INDIRECT_REF. Also handle complex types. 25185 Do not poolify the inserted load. 25186 (realify_fake_stores): Do not rebuild the tree but only 25187 make it a SSA_NAME copy. 25188 (init_pre): Remove initialzation of modify_expr_template. 25189 Do not allocate modify_expr_node_pool. 25190 (fini_pre): Do not free modify_expr_node_pool. 25191 251922008-03-10 Paul Brook <paul@codesourcery.com> 25193 25194 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber 25195 to avoid conflicts. 25196 251972008-03-10 Paul Brook <paul@codesourcery.com> 25198 Mark Shinwell <shinwell@codesourcery.com> 25199 25200 * config/arm/cortex-r4.md: New. 25201 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with 25202 insn attributes. 25203 * config/arm/arm.md: Include cortex-r4.md. 25204 (insn): Add smmls, sdiv and udiv values. 25205 (generic_sched): Don't use generic scheduling for Cortex-R4. 25206 (arm_issue_rate): New function. 25207 (TARGET_SCHED_ISSUE_RATE): Define. 25208 252092008-03-10 Sebastian Pop <sebastian.pop@amd.com> 25210 25211 * doc/invoke.texi (-ftree-loop-distribution): Add an example. 25212 252132008-03-10 Richard Guenther <rguenther@suse.de> 25214 25215 * tree-ssa-pre.c (get_sccvn_value): Simplify. 25216 (compute_avail): Do not add stmt uses to AVAIL_OUT. 25217 252182008-03-10 Paolo Bonzini <bonzini@gnu.org> 25219 25220 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): 25221 Set default to true. 25222 252232008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 25224 25225 * c.opt (Wsynth): Deprecate. 25226 * doc/invoke.texi (Option Summary, Warning Options): Document 25227 -Wno-format-contains-nul. 25228 252292008-03-09 Uros Bizjak <ubizjak@gmail.com> 25230 25231 PR target/35496 25232 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using 25233 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST. 25234 252352008-03-09 Ira Rosen <irar@il.ibm.com> 25236 25237 * config/rs6000/rs6000.c (builtin_description): Rename vector 25238 left shift operations. 25239 * config/rs6000/altivec.md (UNSPEC_VSL): Remove. 25240 (altivec_vsl<VI_char>): Rename to ... 25241 (ashl<mode>3): ... new name. 25242 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with 25243 gen_ashlv4si3. 25244 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL. 25245 252462008-03-08 Richard Guenther <rguenther@suse.de> 25247 25248 * coverage.h (tree_coverage_counter_addr): Declare. 25249 * coverage.c (tree_coverage_counter_addr): New function. 25250 * tree-profile.c (tree_gen_edge_profiler): Unshare counter 25251 before using again. 25252 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr. 25253 (tree_gen_one_value_profiler): Likewise. 25254 (tree_gen_ic_profiler): Likewise. 25255 (tree_gen_average_profiler): Likewise. 25256 (tree_gen_ior_profiler): Likewise. 25257 252582008-03-08 Richard Guenther <rguenther@suse.de> 25259 25260 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove. 25261 (vn_binary_op_insert): Likewise. 25262 (vn_unary_op_lookup): Likewise. 25263 (vn_unary_op_insert): Likewise. 25264 (vn_nary_op_lookup): Declare. 25265 (vn_nary_op_insert): Likewise. 25266 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary 25267 and binary hashes, use a single obstack for unary_op_pool 25268 and binary_op_pool. 25269 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with 25270 a single struct vn_nary_op_s. Store tree code length and 25271 a variable number of operands. 25272 (struct vn_reference_op_struct): Remove unused op2. 25273 (vn_reference_op_eq): Do not compare op2. 25274 (vn_reference_op_compute_hash): Do not compute hash of op2. 25275 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash. 25276 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace 25277 with vn_nary_op_compute_hash. 25278 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq. 25279 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with 25280 vn_nary_op_lookup. 25281 (vn_unary_op_insert, vn_binary_op_insert): Replace with 25282 vn_nary_op_insert. 25283 (visit_unary_op): Call nary functions. 25284 (visit_binary_op): Likewise. 25285 (process_scc): Adjust for struct vn_tables_s changes. 25286 (allocate_vn_table): Likewise. 25287 (free_vn_table): Likewise. 25288 * tree-vn.c (vn_add): Call nary functions. 25289 (vn_lookup): Likewise. 25290 252912008-03-08 Jakub Jelinek <jakub@redhat.com> 25292 25293 PR target/35498 25294 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift 25295 wdst back after sync_compare_and_swapqhi_internal. 25296 252972008-03-08 Uros Bizjak <ubizjak@gmail.com> 25298 25299 PR target/22152 25300 * config/i386/i386-modes.def (V1DI): New vector mode. 25301 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode. 25302 * config/i386/mmx.md (MMXMODEI8): New mode iterator. 25303 (MMXMODE248): Ditto. 25304 (MMXMODE): Add V1DI mode. 25305 (mmxvecsize): Change DI mode to V1DI mode. 25306 ("mov<mode>): Use MMXMODEI8 mode iterator. 25307 ("*mov<mode>_internal_rex64"): Ditto. 25308 ("*mov<mode>_internal"): Ditto. 25309 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2. 25310 ("mmx_sub<mode>3"): Ditto. 25311 ("mmx_adddi3"): Remove insn pattern. 25312 ("mmx_subdi3"): Ditto. 25313 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2. 25314 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator. 25315 ("mmx_ashl<mode>3"): Ditto. 25316 ("mmx_lshrdi3"): Remove insn pattern. 25317 ("mmx_ashldi3"): Ditto. 25318 * config/i386/i386.c (classify_argument): Handle V1DImode. 25319 (function_arg_advance_32): Ditto. 25320 (function_arg_32): Ditto. 25321 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use 25322 mmx_addv1di3 insn pattern. 25323 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern. 25324 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?, 25325 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I, 25326 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]: 25327 Remove definitions of built-in functions. 25328 (V1DI_type_node): New node. 25329 (v1di_ftype_v1di_int): Ditto. 25330 (v1di_ftype_v1di_v1di): Ditto. 25331 (v2si_ftype_v2si_si): Ditto. 25332 (v4hi_ftype_v4hi_di): Remove node. 25333 (v2si_ftype_v2si_di): Ditto. 25334 (ix86_init_mmx_sse_builtins): Handle V1DImode. 25335 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?): 25336 Redefine builtins using def_builtin_const with *_ftype_*_int node. 25337 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i): 25338 Add new builtins using def_builtin_const. 25339 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, 25340 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, 25341 IX86_BUILTIN_PSRA?I]: Handle builtin definitions. 25342 * config/i386/mmintrin.h (__v1di): New typedef. 25343 (_mm_add_si64): Cast arguments to __v1di type. 25344 (_mm_sub_si64): Ditto. 25345 (_mm_sll_pi16): Cast __count to __v4hi type. 25346 (_mm_sll_pi32): Cast __count to __v2si type. 25347 (_mm_sll_si64): Cast arguments to __v1di type. 25348 (_mm_srl_pi16): Cast __count to __v4hi type. 25349 (_mm_srl_pi32): Cast __count to __v2si type. 25350 (_mm_srl_si64): Cast arguments to __v1di type. 25351 (_mm_sra_pi16): Cast __count to __v4hi type. 25352 (_mm_sra_pi32): Cast __count to __v2si type. 25353 (_mm_slli_pi16): Use __builtin_ia32_psllwi. 25354 (_mm_slli_pi32): Use __builtin_ia32_pslldi. 25355 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type. 25356 (_mm_srli_pi16): Use __builtin_ia32_psrlwi. 25357 (_mm_srli_pi32): Use __builtin_ia32_psrldi. 25358 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type. 25359 (_mm_srai_pi16): Use __builtin_ia32_psrawi. 25360 (_mm_srai_pi32): Use __builtin_ia32_psradi. 25361 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition. 25362 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?, 25363 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i, 25364 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins. 25365 253662008-03-07 Joseph Myers <joseph@codesourcery.com> 25367 25368 * doc/include/texinfo.tex: Update to version 2008-03-07.10. 25369 253702008-03-07 Peter Bergner <bergner@vnet.ibm.com> 25371 25372 PR target/35373 25373 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate 25374 reg+const addressing for Altivec modes. Don't generate reg+reg 25375 addressing for TFmode or TDmode quantities. 25376 253772008-03-07 Paolo Bonzini <bonzini@gnu.org> 25378 25379 * c-common.c (vector_types_convertible_p): Call langhook 25380 instead of comptypes. 25381 253822008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com> 25383 25384 PR tree-opt/35402 25385 * tree-ssa-ccp.c (get_symbol_constant_value): Handle 25386 integral and scalar float variables which have a 25387 NULL DECL_INITIAL. 25388 253892008-03-06 Nathan Froyd <froydnj@codesourcery.com> 25390 25391 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the 25392 dwarf_register_span hook when emitting unwind information for 25393 register-to-memory saves. 25394 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete. 25395 (rs6000_frame_related): Remove call to spe_synthesize_frame. 25396 253972008-03-06 Jakub Jelinek <jakub@redhat.com> 25398 25399 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes 25400 for the same VAR_DECL. 25401 254022008-03-06 Tom Tromey <tromey@redhat.com> 25403 25404 * treelang: Delete. 25405 * doc/standards.texi (Standards): Don't mention treelang. 25406 * doc/invoke.texi (Overall Options): Don't mention treelang. 25407 * doc/install.texi (Prerequisites): Don't mention bison or 25408 treelang. 25409 (Configuration): Don't mention treelang. 25410 (Building): Likewise. 25411 * doc/frontends.texi (G++ and GCC): Don't mention treelang. 25412 254132008-03-06 Paolo Bonzini <bonzini@gnu.org> 25414 25415 * simplify-rtx.c (simplify_subreg): Remove useless shifts from 25416 word-extractions out of a multi-word object. 25417 254182008-03-06 Richard Guenther <rguenther@suse.de> 25419 25420 * tree.def (BIT_FIELD_REF): Constrain result type and its precision. 25421 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on 25422 result type and precision. 25423 * expr.c (get_inner_reference): Set unsignedp based on the result 25424 type of BIT_FIELD_REF. 25425 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove. 25426 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED. 25427 (try_instantiate_multiple_fields): Likewise. Use the correct type 25428 for BIT_FIELD_REF. 25429 (sra_build_assignment): Likewise. 25430 (sra_build_elt_assignment): Likewise. 25431 (sra_explode_bitfield_assignment): Likewise. 25432 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED. 25433 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not 25434 set BIT_FIELD_REF_UNSIGNED. 25435 (vectorizable_load): Likewise. 25436 254372008-03-06 Andreas Krebbel <krebbel1@de.ibm.com> 25438 25439 * cse.c (cse_extended_basic_block): Invalidate artificial defs 25440 at bb start. 25441 254422008-03-06 Richard Guenther <rguenther@suse.de> 25443 25444 * alias.c (struct alias_set_entry): Move has_zero_child field 25445 to pack with alias_set. 25446 254472008-03-05 H.J. Lu <hongjiu.lu@intel.com> 25448 25449 * config/i386/i386-modes.def: Use 4 byte alignment on DI for 25450 32bit host. 25451 254522008-03-05 Ian Lance Taylor <iant@google.com> 25453 25454 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int. 25455 254562008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com> 25457 25458 * fwprop.c (update_df): Support width and offset parameters of 25459 df_ref_create. 25460 * ra-conflict.c (mark_reg_store, clear_reg_in_live, 25461 global_conflicts): Change DF_REF_EXTRACT to either 25462 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change 25463 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART. 25464 * df-scan.c (df_ref_record, df_defs_record, 25465 df_ref_create_structure, df_def_record_1, df_uses_record, 25466 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect, 25467 df_bb_refs_collect, df_entry_block_defs_collect, 25468 df_exit_block_uses_collect): Support new width and offset fields. 25469 (ref_extract_pool): New storage pool. 25470 (df_free_ref): New function. 25471 (df_reg_chain_unlink, df_free_collection_rec, 25472 df_sort_and_compress_refs): Call df_free_ref. 25473 (df_ref_equal_p, df_ref_compare): Compare offset and width fields 25474 of df_ref_extract. 25475 (df_ref_create_structure): Allocate df_ref_extract if offset and 25476 width fields are used. 25477 (df_def_record_1): Get offset and width from ZERO_EXTRACT. 25478 (df_uses_record): Get offset and width from ZERO_EXTRACT 25479 and SIGN_EXTRACT. 25480 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either 25481 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change 25482 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART. 25483 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either 25484 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change 25485 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART. 25486 (df_ref_extract): New structure. 25487 (DF_REF_WIDTH, DF_REF_OFFSET): New macros. 25488 (df_ref_create): Add width and offset parameters. 25489 254902008-03-05 Richard Guenther <rguenther@suse.de> 25491 25492 * tree-ssa-structalias.c (get_constraint_for_component_ref): 25493 Use ranges_overlap_p. 25494 (offset_overlaps_with_access): Rename 25495 to ranges_overlap_p and move ... 25496 * tree-flow-inline.h (ranges_overlap_p): ... here. 25497 25498 * tree.h (get_inner_reference, handled_component_p): Update 25499 comments. 25500 25501 * tree.h (record_component_aliases, get_alias_set, 25502 alias_sets_conflict_p, alias_sets_must_conflict_p, 25503 objects_must_conflict_p): Move declarations ... 25504 * alias.h (record_component_aliases, get_alias_set, 25505 alias_sets_conflict_p, alias_sets_must_conflict_p, 25506 objects_must_conflict_p): ... here. 25507 Include coretypes.h. 25508 * Makefile.in (ALIAS_H): Add coretypes.h dependency. 25509 255102008-03-05 Aldy Hernandez <aldyh@redhat.com> 25511 25512 * cfg.c: Include tree-flow.h. 25513 (remove_edge_raw): Call redirect_edge_var_map_clear. 25514 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup. 25515 * tree-flow-inline.h (redirect_edge_var_map_def): New. 25516 (redirect_edge_var_map_result): New. 25517 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace 25518 PENDING_STMT use with redirect_edge_var_map_*. 25519 * tree-ssa.c (edge_var_maps): New definition. 25520 (redirect_edge_var_map_add): New. 25521 (redirect_edge_var_map_clear): New. 25522 (redirect_edge_var_map_dup): New. 25523 (redirect_edge_var_map_vector): New. 25524 (redirect_edge_var_map_destroy): New. 25525 (ssa_redirect_edge): Replace PENDING_STMT use with 25526 redirect_edge_var_map_*. 25527 (flush_pending_stmts): Same. 25528 (delete_tree_ssa): Destroy edge var map. 25529 * tree-flow.h (struct _edge_var_map): New. 25530 Define edge_var_map vector type. 25531 Declare redirect_edge_var_map_* prototypes. 25532 * Makefile.in (cfg.o): Depend on TREE_FLOW_H. 25533 * tree-cfg.c (reinstall_phi_args): Replace 25534 PENDING_STMT use with redirect_edge_var_map_*. 25535 255362008-03-05 Richard Guenther <rguenther@suse.de> 25537 25538 PR tree-optimization/35472 25539 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store 25540 whose single use_stmt has a overlapping set of loaded and 25541 stored symbols as that use_stmt might be a noop assignment then. 25542 255432008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com> 25544 25545 * gthr-rtems.h: Implement __gthread_mutex_destroy. 25546 255472008-03-05 Richard Guenther <rguenther@suse.de> 25548 25549 PR c++/35336 25550 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2 25551 should be constants. 25552 * tree-cfg.c (verify_expr): Verify it. 25553 * fold-const.c (fold_truthop): Remove code generating 25554 BIT_FIELD_REFs of structure bases. 25555 (fold_binary): Likewise. 25556 (fold_ternary): Position and size of BIT_FIELD_REFs are 25557 always host integers. 25558 (make_bit_field_ref): Remove. 25559 (optimize_bit_field_compare): Remove. 25560 (all_ones_mask_p): Remove. 25561 255622008-03-05 Gabor Loki <loki@gcc.gnu.org> 25563 25564 PR gcc/33009 25565 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps. 25566 (split_block_and_df_analyze): New. Split basic block and rebuild 25567 dataflow. 25568 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of 25569 SPLIT_BLOCK. 25570 (split_pattern_seq): Likewise. 25571 (erase_matching_seqs): Likewise. 25572 (split_pattern_seq): Skip return insn in case of REG_NORETURN note. 25573 255742008-03-04 Geoff Keating <geoffk@apple.com> 25575 25576 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed 25577 declaration and code. 25578 (tree_invalid_nonnegative_warnv_p): Likewise. 25579 255802008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru> 25581 25582 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS 25583 examples. Truncate option-names then causing overfull hbox. 25584 255852008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 25586 25587 PR target/35222 25588 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions 25589 on hpux10. 25590 * configure: Rebuilt. 25591 255922008-03-04 Rafael Esp��ndola <espindola@google.com> 25593 25594 * fold-const.c (tree_simple_nonnegative_warnv_p): New. 25595 (tree_unary_nonnegative_warnv_p): New. 25596 (tree_binary_nonnegative_warnv_p): New. 25597 (tree_single_nonnegative_warnv_p): New. 25598 (tree_invalid_nonnegative_warnv_p): New. 25599 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions. 25600 256012008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 25602 25603 PR 28322 25604 * opts.c (handle_option): Postpone 'unknown option' errors only for 25605 warning options. 25606 256072008-03-04 H.J. Lu <hongjiu.lu@intel.com> 25608 25609 PR target/35453 25610 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ... 25611 (_SIDD_XXX): This. 25612 256132008-03-04 Rafael Esp��ndola <espindola@google.com> 25614 25615 * fold-const.c (tree_unary_nonzero_warnv_p): New. 25616 (tree_binary_nonzero_warnv_p): New. 25617 (tree_single_nonzero_warnv_p): New. 25618 (tree_expr_nonzero_warnv_p): Redefine using the new functions. 25619 256202008-03-04 Uros Bizjak <ubizjak@gmail.com> 25621 25622 PR middle-end/35456 25623 * fold-const.c (fold_cond_expr_with_comparison): Prevent 25624 transformations for modes that have signed zeros. 25625 * ifcvt.c (noce_try_abs): Ditto. 25626 256272008-03-04 Joseph Myers <joseph@codesourcery.com> 25628 25629 * config/i386/i386.c (override_options): Force 25630 -maccumulate-outgoing-args on if TARGET_STACK_PROBE. 25631 256322008-03-04 Jan Hubicka <jh@suse.cz> 25633 25634 PR c++/35262 25635 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo 25636 in last commit. 25637 256382008-03-04 Danny Smith <dannysmith@users.sourceforge.net> 25639 25640 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk 25641 label to probe the stack. 25642 256432008-03-04 Danny Smith <dannysmith@users.sourceforge.net> 25644 25645 * gthr-win32.h [__GTHREAD_HIDE_WIN32API] 25646 (__gthr_win32_mutex_destroy): Declare. 25647 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use 25648 __gthr_win32_mutex_destroy. 25649 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define. 25650 256512008-03-03 Jan Hubicka <jh@suse.cz> 25652 25653 PR c++/35262 25654 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more 25655 aggressive on inlining cold calls. 25656 256572008-03-03 Richard Guenther <rguenther@suse.de> 25658 25659 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert 25660 struct copies into the expression table. 25661 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR. 25662 (try_to_simplify): Likewise. 25663 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of 25664 integral and pointer arguments which do not change the 25665 precision to NOP_EXPRs. 25666 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust 25667 VIEW_CONVERT_EXPR case. 25668 256692008-03-02 Sebastian Pop <sebastian.pop@amd.com> 25670 25671 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME 25672 defined in a loop at depth 0 is invariant. 25673 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto. 25674 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never 25675 be called at loop depth 0. 25676 256772008-03-02 Jakub Jelinek <jakub@redhat.com> 25678 25679 PR driver/35420 25680 * gcc.c (process_command): Update copyright notice dates. 25681 * gcov.c (print_version): Likewise. 25682 * gcov-dump.c (print_version): Likewise. 25683 * mips-tfile.c (main): Likewise. 25684 * mips-tdump.c (main): Likewise. 25685 256862008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 25687 25688 PR 24924 25689 * c-common.c (flag_permissive): Delete. 25690 (constant_expression_warnings): Check flags first. 25691 (constant_expression_error): New. 25692 * c-common.h (flag_permissive): Delete. 25693 (constant_expression_error): Declare. 25694 * flags.h (flag_permissive): Declare. Update description. 25695 * diagnostic.c (pedwarn): Update. 25696 (permerror): New. 25697 * diagnostic.h (pedantic_error_kind): Rename as pedantic_warning_kind. 25698 (permissive_error_kind): New. 25699 * toplev.c (flag_permissive): Define. Update description. 25700 * toplev.h (permissive_error_kind): Declare. 25701 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind. 25702 (pedwarn_c90): Use pedantic_warning_kind. 25703 * c-opts.c (c_common_post_options): flag_permissive does not affect 25704 flag_pedantic_errors. 25705 257062008-03-02 Joseph Myers <joseph@codesourcery.com> 25707 25708 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3, 25709 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2, 25710 __absvsi2, __absvDI2): Use unsigned arithmetic. 25711 257122008-03-02 Andi Kleen <ak@suse.de> 25713 Richard Guenther <rguenther@suse.de> 25714 25715 * struct-equiv.c: Remove file. 25716 * cfg_cleanup.c (condjump_equiv_p): Remove. 25717 * Makefile.in (OBJS-common): Remove struct-equiv.o. 25718 (struct-equiv.o): Remove rule. 25719 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*, 25720 insns_match_p, struct_equiv_block_eq, struct_equiv_init, 25721 rtx_equiv_p, condjump_equiv_p): Remove prototypes. 25722 257232008-03-01 Alexandre Oliva <aoliva@redhat.com> 25724 25725 * ifcvt.c (noce_process_if_block): Try to handle only the then 25726 block if the else block exists but isn't suitable. 25727 257282008-03-01 Janne Blomqvist <jb@gcc.gnu.org> 25729 25730 PR gcc/35063 25731 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations. 25732 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes 25733 regression from previous patch. 25734 257352008-03-01 Janne Blomqvist <jb@gcc.gnu.org> 25736 25737 PR gcc/35063 25738 * gthr.h: Add __gthread_mutex_destroy as a function that must be 25739 implemented. 25740 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation. 25741 * gthr-single.h (__gthread_mutex_destroy): Likewise. 25742 * gthr-rtems.h (__gthread_mutex_destroy): Likewise. 25743 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise. 25744 * gthr-nks.h (__gthread_mutex_destroy): Likewise. 25745 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy. 25746 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove. 25747 (__gthread_mutex_destroy_function): Rename to 25748 __gthread_mutex_destroy. 25749 * gthr-dce.h (__gthread_mutex_destroy): Call 25750 pthread_mutex_destroy. 25751 * gthr-tpf.h (__gthread_mutex_destroy): Likewise. 25752 * gthr-posix.h (__gthread_mutex_destroy): Likewise. 25753 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. 25754 257552008-03-01 Alexandre Oliva <aoliva@redhat.com> 25756 25757 * df-scan.c (df_ref_chain_change_bb): Simplify. 25758 (df_insn_change_bb): Add new_bb argument. Simplify. Call 25759 set_block_for_insn if there's any change. 25760 * df.h ((df_insn_change_bb): Fix prototype. 25761 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to 25762 df_insn_change_bb, don't call set_block_for_insn. 25763 * emit-rtl.c (reorder_insns): Likewise. 25764 * haifa-sched.c (move_insn): Likewise. 25765 257662008-03-01 Alexandre Oliva <aoliva@redhat.com> 25767 25768 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly. 25769 257702008-03-01 Alexandre Oliva <aoliva@redhat.com> 25771 25772 * tree-flow-inline.h (next_readonly_imm_use): Return 25773 NULL_USE_OPERAND_P after the end. 25774 257752008-03-01 Richard Guenther <rguenther@suse.de> 25776 25777 PR tree-optimization/35411 25778 * tree-sra.c (sra_build_assignment): Split conversion to 25779 final type to a separate statement if we are not assigning 25780 to a register. 25781 257822008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> 25783 25784 * fold-const.c (fold_convertible_p): Correct the logic to follow 25785 that in fold_convert(). 25786 257872008-02-29 Douglas Gregor <doug.gregor@gmail.com> 25788 25789 PR c++/35315 25790 * tree-inline.c (build_duplicate_type): When we make a 25791 duplicate type, make it unique in the canonical types system. 25792 257932008-02-29 Tom Tromey <tromey@redhat.com> 25794 25795 * toplev.c (input_file_stack, input_file_stack_tick, fs_p, 25796 input_file_stack_history, input_file_stack_restored): Remove. 25797 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise. 25798 * input.h (struct file_stack): Remove. 25799 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise. 25800 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS): 25801 Likewise. 25802 * diagnostic.h (struct diagnostic_context) <last_module>: Change 25803 type. 25804 (diagnostic_last_module_changed): Add 'map' argument. 25805 (diagnostic_set_last_function): Likewise. 25806 * diagnostic.c (undiagnostic_report_current_module): Iterate using 25807 line map, not input_file_stack. 25808 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc. 25809 258102008-02-29 Paul Brook <paul@codesourcery.com> 25811 25812 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative. 25813 258142008-02-29 Paul Brook <paul@codesourcery.com> 25815 25816 * config/arm/ieee754-df.S (muldf3): Use RET macros. 25817 258182008-02-29 Richard Guenther <rguenther@suse.de> 25819 25820 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via 25821 vn_lookup_or_add. 25822 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs 25823 value for comparing for a store match. 25824 (simplify_unary_expression): Do nothing for SSA_NAMEs. 25825 (try_to_simplify): Do not do a full-blown reference lookup. 25826 258272008-02-29 Kaz Kojima <kkojima@gcc.gnu.org> 25828 25829 * config/sh/sh.c (sh_scalar_mode_supported_p): New function. 25830 (TARGET_SCALAR_MODE_SUPPORTED_P): Define. 25831 25832 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling. 25833 258342008-02-29 Sebastian Pop <sebastian.pop@amd.com> 25835 25836 * tree-loop-linear.c (try_interchange_loops): Compare memory access 25837 strides against cache sizes. 25838 258392008-02-29 Kaz Kojima <kkojima@gcc.gnu.org> 25840 25841 * config/sh/sh.c (sh_secondary_reload): Handle loading a float 25842 constant to fpul. 25843 258442008-02-28 Richard Sandiford <rsandifo@nildram.co.uk> 25845 25846 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling 25847 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value 25848 is smaller than the original promoted value. 25849 (simplify_subreg): If OP is a SUBREG, try to preserve its 25850 SUBREG_PROMOTED_VAR_P information. 25851 258522008-02-28 Steven Bosscher <stevenb.gcc@gmail.com> 25853 25854 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack. 25855 (VN_INFO_GET): Allocate new objects on the obstack. 25856 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free 25857 for rpo_numbers_temp, for consistency. 25858 (free_scc_vn): Free the obstack. 25859 258602008-02-28 Sebastian Pop <sebastian.pop@amd.com> 25861 25862 * doc/invoke.texi: Document -ftree-loop-distribution. 25863 * tree-loop-distribution.c: New. 25864 * tree-pass.h (pass_loop_distribution): New. 25865 * graphds.h (struct graph): Add htab_t indices. 25866 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New. 25867 * tree-vectorizer.c (rename_variables_in_loop): Extern. 25868 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL. 25869 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared. 25870 * tree-data-ref.c (debug_data_dependence_relations): New. 25871 (dump_data_dependence_relation): Also print data references. 25872 (free_data_ref): Extern. 25873 (same_access_functions): Moved... 25874 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt. 25875 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component, 25876 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg, 25877 struct rdg_vertex_info, rdg_vertex_for_stmt): New. 25878 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up. 25879 (stmts_from_loop): Skip LABEL_EXPR. 25880 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del): 25881 New. 25882 (build_rdg): Initialize rdg->indices htab. 25883 (free_rdg, stores_from_loop, ref_base_address, 25884 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses, 25885 have_similar_memory_accesses_1, ref_base_address_1, 25886 remove_similar_memory_refs): New. 25887 * tree-data-ref.h: Depend on tree-chrec.h. 25888 (debug_data_dependence_relations, free_data_ref): Declared. 25889 (same_access_functions): ... here. 25890 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level): 25891 New. 25892 (struct rdg_vertex): Add has_mem_write and has_mem_reads. 25893 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, 25894 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New. 25895 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component, 25896 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg, 25897 rdg_vertex_for_stmt): Declared. 25898 (struct rdg_edge): Add level. 25899 (RDGE_LEVEL): New. 25900 (free_rdg, stores_from_loop, remove_similar_memory_refs, 25901 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses): 25902 Declared. 25903 (rdg_has_similar_memory_accesses): New. 25904 * tree-vect-analyze.c: Remove unused static decls. 25905 * lambda.h (dependence_level): New. 25906 * common.opt (ftree-loop-distribution): New. 25907 * tree-flow.h (mark_virtual_ops_in_bb, 25908 slpeel_tree_duplicate_loop_to_edge_cfg, 25909 rename_variables_in_loop): Declared. 25910 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h. 25911 (OBJS-common): Add tree-loop-distribution.o. 25912 (tree-loop-distribution.o): New rule. 25913 * tree-cfg.c (mark_virtual_ops_in_bb): New. 25914 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb. 25915 * passes.c (init_optimization_passes): Schedule pass_loop_distribution. 25916 259172008-02-28 Joseph Myers <joseph@codesourcery.com> 25918 25919 PR target/33963 25920 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types 25921 other than structures and unions. 25922 259232008-02-28 Richard Guenther <rguenther@suse.de> 25924 25925 Revert: 25926 2008-02-26 Richard Guenther <rguenther@suse.de> 25927 25928 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ... 25929 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here. 25930 (lookup_decl_from_uid): Declare. 25931 (remove_decl_from_map): Likewise. 25932 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ... 25933 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here. 25934 (decl_for_uid_map): New global hashtable mapping DECL_UID 25935 to the decl tree. 25936 (init_ttree): Allocate it. 25937 (insert_decl_to_uid_decl_map): New helper function. 25938 (make_node_stat): Insert new decls into the map. 25939 (copy_node_stat): Likewise. 25940 (lookup_decl_from_uid): New function. 25941 (remove_decl_from_map): Likewise. 25942 (print_decl_for_uid_map_statistics): New helper. 25943 (dump_tree_statistics): Call it. 25944 25945 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap. 25946 (referenced_var_iterator): Adjust. 25947 (FOR_EACH_REFERENCED_VAR): Adjust. 25948 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator. 25949 (num_referenced_vars): Adjust. 25950 * tree-flow-inline.h (gimple_referenced_vars): Adjust. 25951 (first_referenced_var): Remove. 25952 (end_referenced_vars_p): Likewise. 25953 (next_referenced_var): Likewise. 25954 (referenced_var_iterator_set): New helper function. 25955 * tree-dfa.c (referenced_var_lookup): Adjust. 25956 (referenced_var_check_and_insert): Likewise. 25957 (remove_referenced_var): Likewise. 25958 * tree-ssa.c (verify_flow_insensitive_alias_info): Use 25959 FOR_EACH_REFERENCED_VAR_IN_BITMAP. 25960 (verify_call_clobbering): Likewise. 25961 (verify_memory_partitions): Likewise. 25962 (init_tree_ssa): Allocate bitmap instead of hashtable for 25963 referenced_vars. 25964 (delete_tree_ssa): Adjust. 25965 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use 25966 FOR_EACH_REFERENCED_VAR_IN_BITMAP. 25967 (compute_tag_properties): Likewise. 25968 (set_initial_properties): Likewise. 25969 (find_partition_for): Likewise. 25970 (update_reference_counts): Likewise. 25971 (dump_may_aliases_for): Likewise. 25972 * tree-ssa-operands.c (add_virtual_operand): Likewise. 25973 (add_call_clobber_ops): Likewise. 25974 (add_call_read_ops): Likewise. 25975 (get_asm_expr_operands): Likewise. 25976 * tree-into-ssa.c (dump_decl_set): Likewise. 25977 (update_ssa): Likewise. 25978 * tree-sra.c (scan_function): Likewise. 25979 (decide_instantiations): Likewise. 25980 (scalarize_parms): Likewise. 25981 * tree-ssa-alias-warnings.c (build_reference_table): Likewise. 25982 (dsa_named_for): Likewise. 25983 * tree-ssa-structalias.c (update_alias_info): Likewise. 25984 (merge_smts_into): Likewise. 25985 259862008-02-27 David Daney <ddaney@avtrex.com> 25987 25988 PR target/34409 25989 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define. 25990 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same. 25991 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef. 25992 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same. 25993 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define. 25994 259952008-02-27 Uros Bizjak <ubizjak@gmail.com> 25996 25997 PR target/25477 25998 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add. 25999 (BUILT_IN_NEXTTOWARD): Remove. 26000 (BUILT_IN_NEXTTOWARDF): Ditto. 26001 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of 26002 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace. 26003 260042008-02-27 Tom Tromey <tromey@redhat.com> 26005 26006 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check 26007 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body. 26008 260092008-02-27 Jan Beulich <jbeulich@novell.com> 26010 26011 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to 26012 update the respective field on newdecl. 26013 260142008-02-27 Revital Eres <eres@il.ibm.com> 26015 26016 PR rtl-optimization/34999 26017 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle 26018 crossing edges that ends with a call insn. 26019 (fix_up_fall_thru_edges): Handle crossing edges that ends with a 26020 call insn and clear the EDGE_CROSSING flag of the crossing edge 26021 when fixing fallthru edges. 26022 260232008-02-27 Richard Guenther <rguenther@suse.de> 26024 26025 PR middle-end/35390 26026 * fold-const.c (fold_unary): Return the correct argument, 26027 converted to the result type. 26028 260292008-02-27 Richard Guenther <rguenther@suse.de> 26030 26031 PR middle-end/34971 26032 * expr.c (expand_expr_real_1): Assert on rotates that operate 26033 on partial modes. 26034 * fold-const.c (fold_binary): Use the types precision, not the 26035 bitsize of the mode if folding rotate expressions. Build rotates 26036 only for full modes. 26037 260382008-02-27 Jakub Jelinek <jakub@redhat.com> 26039 26040 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA 26041 and CPP_PRAGMA_EOL. 26042 * c-pragma.c (pragma_ns_name): New typedef. 26043 (registered_pp_pragmas): New variable. 26044 (c_pp_lookup_pragma): New function. 26045 (c_register_pragma_1): If flag_preprocess_only, do nothing 26046 for non-expanded pragmas, for expanded ones push pragma's 26047 namespace and name into registered_pp_pragmas vector. 26048 (c_invoke_pragma_handler): Register OpenMP pragmas even when 26049 flag_preprocess_only, don't register GCC pch_preprocess 26050 pragma if flag_preprocess_only. 26051 * c-opts.c (c_common_init): Call init_pragma even if 26052 flag_preprocess_only. 26053 * c-pragma.c (c_pp_lookup_pragma): New prototype. 26054 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call 26055 cpp_register_pragma if flag_preprocess_only. 26056 260572008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 26058 26059 PR c/28800 26060 * c-parser.c (c_parser_translation_unit): Warn for empty 26061 translation unit, not empty source file. 26062 260632008-02-26 Paul Brook <paul@codesourcery.com> 26064 26065 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first 26066 operand for Thumb-2. 26067 * config/arm/arm.h (reg_class): Add CORE_REGS. 26068 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto. 26069 (BASE_REG_CLASS): Use CORE_REGS. 26070 (PREFERRED_RELOAD_CLASS): Add STACK_REG. 26071 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P. 26072 (REGNO_OK_FOR_INDEX_P): Exclude SP. 26073 (ARM_REG_OK_FOR_INDEX_P): Always define. Use 26074 ARM_REGNO_OK_FOR_INDEX_P. 26075 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp]. 26076 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn, 26077 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives. 26078 (ldm/stm peepholes): Ditto. 26079 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives. 26080 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto. 26081 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto. 26082 * config/arm/constraints.md: Enable "k" constraint on ARM. 26083 260842008-02-27 Ben Elliston <bje@au.ibm.com> 26085 26086 * config/rs6000/rs6000.c: Annotate cache line size field in all 26087 instances of struct processor_costs. 26088 260892008-02-26 David Edelsohn <edelsohn@gnu.org> 26090 26091 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1, 26092 dse2, gcse, if_conversion, if_after_combine, if_after_reload, 26093 jump_bypass): New counters. 26094 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt. 26095 * dce.c (gate_ud_dce): Same. 26096 (gate_fast_dce): Same. 26097 * dse.c (gate_dse1): New function. 26098 (gate_dse2): New function. 26099 (gate_dse): Merge results of new gate functions. 26100 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt. 26101 (gate_handle_jump_bypass): Add dbg_cnt. 26102 (gate_handle_gcse): Add dbg_cnt. 26103 * ifcvt.c (gate_handle_if_conversion): Same. 26104 (gate_handle_if_after_combine): Same. 26105 (gate_handle_if_after_reload): Same. 26106 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o. 26107 261082008-02-26 Edmar Wienskoski <edmar@freescale.com> 26109 26110 * config/rs6000/rs6000.c (processor_costs): Update e300 cache 26111 line sizes. 26112 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus. 26113 261142008-02-26 Jason Merrill <jason@redhat.com> 26115 26116 PR c++/35315 26117 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 26118 alone if it's the naming decl for the type's main variant. 26119 261202008-02-26 Tom Tromey <tromey@redhat.com> 26121 26122 * system.h (USE_MAPPED_LOCATION): Poison. 26123 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first. 26124 * tree-cfg.c (make_cond_expr_edges): Remove old location code. 26125 (make_goto_expr_edges): Likewise. 26126 (remove_bb): Likewise. 26127 (execute_warn_function_return): Likewise. 26128 * basic-block.h (struct edge_def) <goto_locus>: Change type to 26129 location_t. 26130 * c-common.c (fname_decl): Remove old location code. 26131 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old 26132 location code. 26133 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location 26134 variant. 26135 (ASM_INPUT_SOURCE_LOCATION): Likewise. 26136 (gen_rtx_ASM_INPUT): Likewise. 26137 (gen_rtx_ASM_INPUT_loc): Likewise. 26138 (get_rtx_asm_OPERANDS): Remove. 26139 * cfglayout.c (insn_locators_alloc): Remove old location code. 26140 (set_curr_insn_source_location): Likewise. 26141 (curr_insn_locator): Likewise. 26142 * print-tree.c (print_node): Remove old location code. 26143 * tree-mudflap.c (mf_varname_tree): Remove old location code. 26144 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION. 26145 * cfgexpand.c (expand_gimple_cond_expr): Don't use 26146 location_from_locus. 26147 (construct_exit_block): Remove old location code. 26148 * emit-rtl.c (force_next_line_note): Remove old location code. 26149 * profile.c (branch_prob): Remove old location code. 26150 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE, 26151 LOC_LINE): Remove old-location variants. 26152 * langhooks.c (lhd_print_error_function): Remove old location 26153 code. 26154 * configure, config.in: Rebuilt. 26155 * configure.ac (--enable-mapped-location): Remove. 26156 * c-decl.c (c_init_decl_processing): Remove old location code. 26157 (finish_function): Likewise. 26158 * recog.c (decode_asm_operands): Remove old location code. 26159 * c-pch.c (c_common_read_pch): Remove old location code. 26160 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location 26161 variants. 26162 * gimple-low.c (lower_function_body): Remove old location code. 26163 * toplev.c (unknown_location): Remove. 26164 (push_srcloc): Remove old-location variant. 26165 (process_options): Remove old location code. 26166 (lang_dependent_init): Likewise. 26167 * input.h (UNKNOWN_LOCATION): Move definition. 26168 (location_t): Undeprecate. 26169 (source_locus): Remove. 26170 (location_from_locus): Remove. 26171 (struct location_s): Remove. 26172 Remove all old-location code. 26173 (input_line, input_filename): Remove. 26174 * final.c (final_scan_insn): Remove old location code. 26175 * diagnostic.c (diagnostic_build_prefix): Remove 26176 USE_MAPPED_LOCATION test. 26177 * tree.h (gimple_stmt) <locus>: Now a location_t. 26178 (tree_exp) <locus>: Likewise. 26179 (DECL_IS_BUILTIN): Remove old-location variant. 26180 (annotate_with_file_line, annotate_with_locus): Likewise. 26181 (expr_locus, set_expr_locus): Update. 26182 * tree.c (build1_stat): Remove old location code. 26183 (last_annotated_node): Remove. 26184 (annotate_with_file_line): Remove old-location variant. 26185 (annotate_with_locus): Likewise. 26186 (expr_location): Remove old location code. 26187 (set_expr_location): Likewise. 26188 (expr_has_location): Likewise. 26189 (expr_locus): Likewise. 26190 (set_expr_locus): Likewise. 26191 (expr_filename): Don't use location_from_locus. 26192 (expr_lineno): Likewise. 26193 * rtl-error.c (location_for_asm): Remove old location code. 26194 * c-lex.c (cb_line_change): Remove old location code. 26195 (fe_file_change): Likewise. 26196 (cb_def_pragma): Likewise. 26197 (c_lex_with_flags): Likewise. 26198 * gengtype.c (do_typedef): Don't special-case location types. 26199 (define_location_structures): Remove. 26200 (main): Don't call define_location_structures. 26201 * tree-pretty-print.c (dump_implicit_edges): Remove old location 26202 code. 26203 262042008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26205 26206 PR 26264 26207 * builtins.def (BUILT_IN_STDARG_START): Remove. 26208 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START. 26209 * tree-stdarg.c (execute_optimize_stdarg): Likewise. 26210 * tree-inline.c (inline_forbidden_p_1): Likewise. 26211 262122008-02-26 Richard Guenther <rguenther@suse.de> 26213 26214 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ... 26215 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here. 26216 (lookup_decl_from_uid): Declare. 26217 (remove_decl_from_map): Likewise. 26218 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ... 26219 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here. 26220 (decl_for_uid_map): New global hashtable mapping DECL_UID 26221 to the decl tree. 26222 (init_ttree): Allocate it. 26223 (insert_decl_to_uid_decl_map): New helper function. 26224 (make_node_stat): Insert new decls into the map. 26225 (copy_node_stat): Likewise. 26226 (lookup_decl_from_uid): New function. 26227 (remove_decl_from_map): Likewise. 26228 (print_decl_for_uid_map_statistics): New helper. 26229 (dump_tree_statistics): Call it. 26230 26231 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap. 26232 (referenced_var_iterator): Adjust. 26233 (FOR_EACH_REFERENCED_VAR): Adjust. 26234 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator. 26235 (num_referenced_vars): Adjust. 26236 * tree-flow-inline.h (gimple_referenced_vars): Adjust. 26237 (first_referenced_var): Remove. 26238 (end_referenced_vars_p): Likewise. 26239 (next_referenced_var): Likewise. 26240 (referenced_var_iterator_set): New helper function. 26241 * tree-dfa.c (referenced_var_lookup): Adjust. 26242 (referenced_var_check_and_insert): Likewise. 26243 (remove_referenced_var): Likewise. 26244 * tree-ssa.c (verify_flow_insensitive_alias_info): Use 26245 FOR_EACH_REFERENCED_VAR_IN_BITMAP. 26246 (verify_call_clobbering): Likewise. 26247 (verify_memory_partitions): Likewise. 26248 (init_tree_ssa): Allocate bitmap instead of hashtable for 26249 referenced_vars. 26250 (delete_tree_ssa): Adjust. 26251 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use 26252 FOR_EACH_REFERENCED_VAR_IN_BITMAP. 26253 (compute_tag_properties): Likewise. 26254 (set_initial_properties): Likewise. 26255 (find_partition_for): Likewise. 26256 (update_reference_counts): Likewise. 26257 (dump_may_aliases_for): Likewise. 26258 * tree-ssa-operands.c (add_virtual_operand): Likewise. 26259 (add_call_clobber_ops): Likewise. 26260 (add_call_read_ops): Likewise. 26261 (get_asm_expr_operands): Likewise. 26262 * tree-into-ssa.c (dump_decl_set): Likewise. 26263 (update_ssa): Likewise. 26264 * tree-sra.c (scan_function): Likewise. 26265 (decide_instantiations): Likewise. 26266 (scalarize_parms): Likewise. 26267 * tree-ssa-alias-warnings.c (build_reference_table): Likewise. 26268 (dsa_named_for): Likewise. 26269 * tree-ssa-structalias.c (update_alias_info): Likewise. 26270 (merge_smts_into): Likewise. 26271 262722008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26273 26274 PR 34351 26275 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var. 26276 * c-opts.c (c_common_handle_option): Wall enables 26277 Wvolatile-register-var. 26278 * common.opt: Move Wvolatile-register-var to... 26279 * c.opt: ...here. 26280 262812008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26282 26283 * common.opt (Wlarger-than=): New. 26284 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with 26285 -Wlarger-than=. 26286 * opts.c (common_handle_option): Handle -Wlarger-than=. 26287 * optc-gen.awk: Likewise. 26288 * opth-gen.awk: Likewise. 26289 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning. 26290 * tree-optimize.c (tree_rest_of_compilation): Likewise. 26291 262922008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26293 26294 * c-common.c (match_case_to_enum_1): Add appropriate 26295 OPT_W* parameter to warning. 26296 (c_do_switch_warnings): Likewise. 26297 * c-typeck.c (warning_init): Add one more parameter following 26298 'warning' function. 26299 (push_init_level): Update call to warning_init. 26300 (pop_init_level): Likewise. 26301 (add_pending_init): Likewise. 26302 (output_init_element: Likewise. 26303 263042008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26305 26306 PR 28322 26307 * toplev.c (toplev_main): If there are warnings or error, print 26308 errors for ignored options. 26309 * opts.c (ignored_options): New static variable. 26310 (postpone_unknown_option_error): New. 26311 (print_ignored_options): New. 26312 (handle_option): Postpone errors for unknown -Wno-* options. 26313 * opts.h (print_ignored_options): Declare. 26314 263152008-02-25 Richard Sandiford <rsandifo@nildram.co.uk> 26316 26317 * config/mips/mips.md (loadgp_blockage, blockage): Change type 26318 to "ghost". 26319 263202008-02-25 Richard Guenther <rguenther@suse.de> 26321 26322 Revert: 26323 2008-02-25 Richard Guenther <rguenther@suse.de> 26324 26325 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ... 26326 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here. 26327 (lookup_decl_from_uid): Declare. 26328 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ... 26329 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here. 26330 (decl_for_uid_map): New global hashtable mapping DECL_UID 26331 to the decl tree. 26332 (init_ttree): Allocate it. 26333 (insert_decl_to_uid_decl_map): New helper function. 26334 (make_node_stat): Insert new decls into the map. 26335 (copy_node_stat): Likewise. 26336 (lookup_decl_from_uid): New function. 26337 (print_decl_for_uid_map_statistics): New helper. 26338 (dump_tree_statistics): Call it. 26339 26340 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap. 26341 (referenced_var_iterator): Adjust. 26342 (FOR_EACH_REFERENCED_VAR): Adjust. 26343 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator. 26344 (num_referenced_vars): Adjust. 26345 * tree-flow-inline.h (gimple_referenced_vars): Adjust. 26346 (first_referenced_var): Remove. 26347 (end_referenced_vars_p): Likewise. 26348 (next_referenced_var): Likewise. 26349 (referenced_var_iterator_set): New helper function. 26350 * tree-dfa.c (referenced_var_lookup): Adjust. 26351 (referenced_var_check_and_insert): Likewise. 26352 (remove_referenced_var): Likewise. 26353 * tree-ssa.c (verify_flow_insensitive_alias_info): Use 26354 FOR_EACH_REFERENCED_VAR_IN_BITMAP. 26355 (verify_call_clobbering): Likewise. 26356 (verify_memory_partitions): Likewise. 26357 (init_tree_ssa): Allocate bitmap instead of hashtable for 26358 referenced_vars. 26359 (delete_tree_ssa): Adjust. 26360 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use 26361 FOR_EACH_REFERENCED_VAR_IN_BITMAP. 26362 (compute_tag_properties): Likewise. 26363 (set_initial_properties): Likewise. 26364 (find_partition_for): Likewise. 26365 (update_reference_counts): Likewise. 26366 (dump_may_aliases_for): Likewise. 26367 * tree-ssa-operands.c (add_virtual_operand): Likewise. 26368 (add_call_clobber_ops): Likewise. 26369 (add_call_read_ops): Likewise. 26370 (get_asm_expr_operands): Likewise. 26371 * tree-into-ssa.c (dump_decl_set): Likewise. 26372 (update_ssa): Likewise. 26373 * tree-sra.c (scan_function): Likewise. 26374 (decide_instantiations): Likewise. 26375 (scalarize_parms): Likewise. 26376 * tree-ssa-alias-warnings.c (build_reference_table): Likewise. 26377 (dsa_named_for): Likewise. 26378 * tree-ssa-structalias.c (update_alias_info): Likewise. 26379 (merge_smts_into): Likewise. 26380 263812008-02-25 Janne Blomqvist <jb@gcc.gnu.org> 26382 26383 PR fortran/29549 26384 * doc/invoke.texi (-fcx-limited-range): Document new option. 26385 * toplev.c (process_options): Handle -fcx-fortran-rules. 26386 * common.opt: Add documentation for -fcx-fortran-rules. 26387 263882008-02-25 Janne Blomqvist <jb@gcc.gnu.org> 26389 26390 PR c/35162 26391 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with 26392 actual behaviour and C99. 26393 263942008-02-26 Ben Elliston <bje@au.ibm.com> 26395 26396 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define. 26397 (ASM_CPU_POWER6_SPEC): Likewise. 26398 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5. 26399 Likewise, pass %(asm_cpu_power6) for -mcpu=power6. 26400 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings. 26401 264022008-02-25 Richard Guenther <rguenther@suse.de> 26403 26404 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ... 26405 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here. 26406 (lookup_decl_from_uid): Declare. 26407 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ... 26408 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here. 26409 (decl_for_uid_map): New global hashtable mapping DECL_UID 26410 to the decl tree. 26411 (init_ttree): Allocate it. 26412 (insert_decl_to_uid_decl_map): New helper function. 26413 (make_node_stat): Insert new decls into the map. 26414 (copy_node_stat): Likewise. 26415 (lookup_decl_from_uid): New function. 26416 (print_decl_for_uid_map_statistics): New helper. 26417 (dump_tree_statistics): Call it. 26418 26419 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap. 26420 (referenced_var_iterator): Adjust. 26421 (FOR_EACH_REFERENCED_VAR): Adjust. 26422 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator. 26423 (num_referenced_vars): Adjust. 26424 * tree-flow-inline.h (gimple_referenced_vars): Adjust. 26425 (first_referenced_var): Remove. 26426 (end_referenced_vars_p): Likewise. 26427 (next_referenced_var): Likewise. 26428 (referenced_var_iterator_set): New helper function. 26429 * tree-dfa.c (referenced_var_lookup): Adjust. 26430 (referenced_var_check_and_insert): Likewise. 26431 (remove_referenced_var): Likewise. 26432 * tree-ssa.c (verify_flow_insensitive_alias_info): Use 26433 FOR_EACH_REFERENCED_VAR_IN_BITMAP. 26434 (verify_call_clobbering): Likewise. 26435 (verify_memory_partitions): Likewise. 26436 (init_tree_ssa): Allocate bitmap instead of hashtable for 26437 referenced_vars. 26438 (delete_tree_ssa): Adjust. 26439 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use 26440 FOR_EACH_REFERENCED_VAR_IN_BITMAP. 26441 (compute_tag_properties): Likewise. 26442 (set_initial_properties): Likewise. 26443 (find_partition_for): Likewise. 26444 (update_reference_counts): Likewise. 26445 (dump_may_aliases_for): Likewise. 26446 * tree-ssa-operands.c (add_virtual_operand): Likewise. 26447 (add_call_clobber_ops): Likewise. 26448 (add_call_read_ops): Likewise. 26449 (get_asm_expr_operands): Likewise. 26450 * tree-into-ssa.c (dump_decl_set): Likewise. 26451 (update_ssa): Likewise. 26452 * tree-sra.c (scan_function): Likewise. 26453 (decide_instantiations): Likewise. 26454 (scalarize_parms): Likewise. 26455 * tree-ssa-alias-warnings.c (build_reference_table): Likewise. 26456 (dsa_named_for): Likewise. 26457 * tree-ssa-structalias.c (update_alias_info): Likewise. 26458 (merge_smts_into): Likewise. 26459 264602008-02-25 Andreas Krebbel <krebbel1@de.ibm.com> 26461 26462 PR target/35258 26463 * cse.c (cse_insn): Avoid creation of overlapping MEMs. 26464 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules. 26465 * alias.h (nonoverlapping_memrefs_p): Likewise. 26466 264672008-02-25 Jan Beulich <jbeulich@novell.com> 26468 26469 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T). 26470 * config/i386/netware-libgcc.exp: Add __bswap?i2, 26471 __emultls_get_address, __emultls_register_common, 26472 __floatundi?f, and _Unwind_GetIPInfo. 26473 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): 26474 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix(). 26475 (gen_regparm_prefix): Likewise. 26476 (i386_nlm_encode_section_info): Sync with 26477 config/i386/winnt.c:i386_pe_encode_section_info(). 26478 (i386_nlm_maybe_mangle_decl_assembler_name): New. 26479 i386_nlm_mangle_decl_assembler_name): New. 26480 (netware_override_options): New. 26481 * config/i386/netware.h (netware_override_options): Declare. 26482 (OVERRIDE_OPTIONS): Re-define to netware_override_options. 26483 (i386_nlm_mangle_decl_assembler_name): Declare. 26484 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define. 26485 264862008-02-25 Ben Elliston <bje@au.ibm.com> 26487 26488 PR other/32948 26489 * c-decl.c (grokdeclarator): Remove unused local variables 26490 `typedef_type' and `type_as_written'. 26491 * bb-reorder.c 26492 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove 26493 unused local variable `has_hot_blocks'. 26494 (fix_crossing_conditional_branches): Remove unused local variable 26495 `prev_bb'. 26496 264972008-02-25 Uros Bizjak <ubizjak@gmail.com> 26498 26499 PR middle-end/19984 26500 * builtins.def (BUILT_IN_NAN): Define as c99 builtin 26501 using DEF_C99_BUILTIN. 26502 (BUILT_IN_NANF): Ditto. 26503 (BUILT_IN_NANL): Ditto. 26504 265052008-02-25 Ayal Zaks <zaks@il.ibm.com> 26506 Revital Eres <eres@il.ibm.com> 26507 26508 * modulo-sched.c (calculate_must_precede_follow): Address TODO 26509 regarding the order of two dependent insns in the same row. 26510 265112008-02-25 Eric Botcazou <ebotcazou@adacore.com> 26512 26513 * stor-layout.c (layout_decl): Do not bump the alignment of a 26514 bit-field to more than byte alignment if it is packed. 26515 265162008-02-24 David Edelsohn <edelsohn@gnu.org> 26517 26518 * config/rs6000/rs6000.c (processor_costs): Add cache costs for 26519 e300c2 and e300c3. 26520 265212008-02-24 Diego Novillo <dnovillo@google.com> 26522 26523 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html 26524 26525 PR 33738 26526 * tree-vrp.c (vrp_evaluate_conditional): With 26527 -Wtype-limits, emit a warning when comparing against a 26528 constant outside the natural range of OP0's type. 26529 * c.opt (Wtype-limits): Move ... 26530 * common.opt (Wtype-limits): ... here. 26531 265322008-02-24 Edmar Wienskoski <edmar@freescale.com> 26533 26534 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3. 26535 * config/rs6000/e300c2c3.md: New file. 26536 * config/rs6000/rs6000.c (processor_costs): Add new costs for 26537 e300c2 and e300c3. 26538 (rs6000_override_options): Add e300c2 and e300c3 cases to 26539 processor_target_table. Do not allow usage of Altivec or Spe 26540 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3. 26541 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3. 26542 * config/rs6000/rs6000.h (processor_type): Add 26543 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3. 26544 (ASM_CPU_SPEC): Add e300c2 and e300c3. 26545 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2 26546 and ppce300c3. Include e300c2c3.md. 26547 265482008-02-23 David Edelsohn <edelsohn@gnu.org> 26549 26550 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT 26551 instead of TARGET_STRICT_ALIGN. 26552 265532008-02-23 Joseph Myers <joseph@codesourcery.com> 26554 26555 * explow.c (memory_address): Assert that the generated address is 26556 valid. 26557 265582008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr> 26559 26560 PR target/25477 26561 * config/darwin-protos.h: Add darwin_patch_builtins prototype. 26562 * config/darwin-ppc-ldouble-patch.def: New file. 26563 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro. 26564 * config/rs6000/rs6000.c (rs6000_init_builtins): Call 26565 SUBTARGET_INIT_BUILTINS if defined. 26566 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins): 26567 New functions. 26568 265692008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com> 26570 26571 PR rtl-opt/33512 26572 * simplify-rtx.c (simplify_binary_operation_1): Add simplification 26573 of (and X (ior (not X) Y) and (and (ior (not X) Y) X). 26574 265752008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com> 26576 26577 PR pch/35027 26578 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH 26579 file" warning condtional on -Winvalid-PCH. 26580 265812008-02-23 Daniel Jacobowitz <dan@codesourcery.com> 26582 26583 * expmed.c (extract_bit_field): Always use adjust_address for MEM. 26584 265852008-02-23 Uros Bizjak <ubizjak@gmail.com> 26586 26587 PR target/22076 26588 PR target/34256 26589 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to 26590 prevent reload from using MMX registers. 26591 (*mov<mode>_internal): Ditto. 26592 (*movv2sf_internal_rex64): Ditto. 26593 (*movv2sf_internal): Ditto. 26594 265952008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 26596 26597 PR documentation/31569 26598 * doc/install.texi2html: Use makeinfo --no-number-sections. 26599 266002008-02-22 Nathan Froyd <froydnj@codesourcery.com> 26601 26602 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to 26603 ensure that we can address an entire entity > 8 bytes. Don't 26604 generate reg+reg addressing for such data. 26605 266062008-02-22 Nathan Froyd <froydnj@codesourcery.com> 26607 26608 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign 26609 strings when optimizing for size, unless the target cares about 26610 alignment. 26611 266122008-02-22 Tom Tromey <tromey@redhat.com> 26613 26614 * regclass.c (current_pass): Remove declaration. 26615 266162008-02-22 Anatoly Sokolov <aesok@post.ru> 26617 26618 * config/avr/libgcc.S (__RAMPZ__): Define. 26619 (__do_copy_data): Add for devices with 128KB code memory. 26620 266212008-02-22 Nathan Froyd <froydnj@codesourcery.com> 26622 26623 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): 26624 Use spe_abi. 26625 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise. 26626 266272008-02-22 Hans-Peter Nilsson <hp@axis.com> 26628 26629 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for 26630 GENNONACR_REGS. 26631 266322008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 26633 26634 PR c/19999 26635 * c-typeck.c (build_binary_op): Warn about floating point 26636 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE. 26637 266382008-02-21 Janis Johnson <janis187@us.ibm.com> 26639 26640 PR target/34526 26641 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment. 26642 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi, 26643 add vrsave. 26644 (rs6000_override_options): Set altivec_abi as default, not override, 26645 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for 26646 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI 26647 is used; use new member spe_abi. 26648 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use 26649 spe_abi and altivec_abi. 26650 266512008-02-22 Tomas Bily <tbily@suse.cz> 26652 26653 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo. 26654 266552008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 26656 26657 PR bootstrap/35273 26658 * config.build (build_file_translate): Set to `CMD //c' only if 26659 it works. 26660 * Makefile.in (build_file_translate): Improve comment. 26661 266622008-02-21 Jan Hubicka <jh@suse.cz> 26663 26664 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, 26665 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL, 26666 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update. 26667 266682008-02-21 Michael Matz <matz@suse.de> 26669 26670 PR target/35264 26671 * config/i386/i386.c (ix86_expand_branch): Add missing breaks. 26672 266732008-02-21 Uros Bizjak <ubizjak@gmail.com> 26674 26675 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc, 26676 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P 26677 as insn constraint. 26678 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn 26679 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and 26680 SSE_VEC_FLOAT_MODE_P as insn constraint. 26681 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns. 26682 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and 26683 sse4a_movntdf using MODEF mode iterator. 26684 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and 26685 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator. 26686 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns. 26687 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto. 26688 (sse4_1_dpp<ssemodesuffixf2c>): Ditto. 26689 (sse4_1_roundp<ssemodesuffixf2c>): Ditto. 26690 (sse4_1_rounds<ssemodesuffixf2c>): Ditto. 26691 266922008-02-21 Richard Guenther <rguenther@suse.de> 26693 26694 * tree.def (PAREN_EXPR): New tree code. 26695 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants 26696 and PAREN_EXPR. 26697 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR. 26698 * expr.c (expand_expr_real_1): Likewise. 26699 * tree-inline.c (estimate_num_insns_1): Likewise. 26700 * tree-complex.c (expand_complex_move): Likewise. 26701 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x) 26702 as plain x. 26703 267042008-02-20 Kaz Kojima <kkojima@gcc.gnu.org> 26705 26706 PR target/35225 26707 * config/sh/sh.c (find_barrier): Don't go past 'from' argument. 26708 267092008-02-20 Kaz Kojima <kkojima@gcc.gnu.org> 26710 26711 PR target/35190 26712 * config/sh/sh.md (jump_compact): Disable for crossing jumps. 26713 26714 * config/sh/sh.c (find_barrier): Don't go past 26715 NOTE_INSN_SWITCH_TEXT_SECTIONS note. 26716 267172008-02-20 DJ Delorie <dj@redhat.com> 26718 26719 * config/h8300/h8300.md (insv): Force source operand to be a register. 26720 26721 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn 26722 as a jump, not as a plain insn. 26723 267242008-02-20 Seongbae Park <seongbae.park@gmail.com> 26725 26726 * doc/invoke.texi (Warning Options): Add new option 26727 -Wframe-larger-than=. 26728 (-Wframe-larger-than): Document. 26729 26730 * flags.h (warn_frame_larger_than, frame_larger_than_size): 26731 Add declarations for new option variables. 26732 26733 * final.c (final_start_function): Check the frame size 26734 before emission and issue a Wframe-larger-than warning. 26735 26736 * opts.c (warn_frame_larger_than, frame_larger_than_size): 26737 Add definitions for new option variables. 26738 (common_handle_option): Handle new option OPT_Wframe_larger_than_. 26739 26740 * common.opt (Wframe-larger-than=): New option. 26741 267422008-02-20 Uros Bizjak <ubizjak@gmail.com> 26743 26744 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template. 26745 (<sse>_div<mode>3): Ditto. 26746 (<sse>_vmdiv<mode>3): Ditto. 26747 (<sse>_vmsqrt<mode>2): Ditto. 26748 (*smax<mode>3): Ditto. 26749 (sse5_frcz<mode>2): Ditto. 26750 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND 26751 as insn constraint. 26752 267532008-02-20 Richard Guenther <rguenther@suse.de> 26754 26755 PR middle-end/35265 26756 * builtins.c (validate_arg): If we want an INTEGER_TYPE, 26757 be happy with INTEGRAL_TYPE_P. 26758 267592008-02-20 Richard Guenther <rguenther@suse.de> 26760 26761 * fold-const.c (split_tree): Associate floatig-point expressions 26762 if flag_associative_math is set. 26763 267642008-02-20 Richard Guenther <rguenther@suse.de> 26765 26766 * tree.h (fold_real_zero_addition_p): Declare. 26767 * fold-const.c (fold_real_zero_addition_p): Export. 26768 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle 26769 floating-point operations with zero and one. 26770 267712008-02-20 Paolo Bonzini <bonzini@gnu.org> 26772 26773 * doc/install.texi: Correct references to CFLAGS, replacing them 26774 with BOOT_CFLAGS. Document flags used during bootstrap for 26775 target libraries. 26776 267772008-02-20 Uros Bizjak <ubizjak@gmail.com> 26778 26779 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define. 26780 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf 26781 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as 26782 insn constraint. 26783 (smin<mode>3): Ditto from similar patterns. 26784 (smax<mode>3): Ditto. 26785 (*ieee_smin<mode>3): Ditto. 26786 (*ieee_smax<mode>3): Ditto. 26787 * config/i386/sse.md (sse): New mode attribute. 26788 (mov<mode>): Macroize expander from movv4sf and movv2df using 26789 SSEMODEF2P mode iterator. 26790 (<sse>_movnt<mode>): Ditto from similar patterns. Use 26791 SSE_VEC_FLOAT_MODE_P as insn constraint. 26792 (storent<mode>): Ditto. 26793 (storent<mode>): Macroize expander from storentsf and storentdf using 26794 MODEF mode iterator. 26795 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P 26796 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint. 26797 (abs<mode>2): Ditto from similar patterns. 26798 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto. 26799 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto. 26800 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto. 26801 (<sse>_vmsqrt<mode>2): Ditto. 26802 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3) 26803 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto. 26804 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3) 26805 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto. 26806 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3, 26807 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4 26808 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as 26809 insn constraint. 26810 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode 26811 iterator and SSE_FLOAT_MODE_P as insn constraint. 26812 (<sse>_ucomi): Ditto from similar patterns. 26813 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and 26814 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and 26815 SSE_VEC_FLOAT_MODE_P as insn constraint. 26816 (vcond<mode>): Ditto from similar patterns. 26817 (and<mode>3, *and<mode>3): Ditto. 26818 (<sse>_nand<mode>3): Ditto. 26819 (ior<mode>3, *ior<mode>3): Ditto. 26820 (xor<mode>3, *xor<mode>3): Ditto. 26821 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode 26822 iterator and SSE_FLOAT_MODE_P as insn constraint. 26823 (*nand<mode>3): Ditto from similar patterns. 26824 (*ior<mode>3): Ditto. 26825 (*xor<mode>3): Ditto. 26826 268272008-02-20 Ira Rosen <irar@il.ibm.com> 26828 26829 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi, 26830 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi, 26831 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement. 26832 268332008-02-19 Jan Hubicka <jh@suse.cz> 26834 26835 * predict.c (tree_bb_level_predictions): Remove variable next 26836 mistakely introduced by previous commit. 26837 268382008-02-19 Jan Hubicka <jh@suse.cz> 26839 26840 * predict.c (predict_paths_leading_to): Rewrite. 26841 (predict_paths_for_bb): New. 26842 (tree_bb_level_predictions): Update call of predict_paths_leading_to. 26843 268442008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 26845 26846 PR bootstrap/35218 26847 * Makefile.in (build_file_translate): New. 26848 (gcc-vers.texi): Use it for translating $(abs_srcdir). 26849 * config.build (build_file_translate): Set to `CMD //c' on MinGW. 26850 * configure.ac (build_file_translate): Substitute it. 26851 * configure: Regenerate. 26852 268532008-02-19 Jan Hubicka <jh@suse.cz> 26854 26855 PR rtl-optimization/34408 26856 * see.c (see_def_extension_not_merged): Copy subreg so we don't have 26857 invalid sharing. 26858 268592008-02-19 Jan Hubicka <jh@suse.cz> 26860 26861 PR middle-end/28779 26862 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of 26863 call_expr. 26864 268652008-02-19 H.J. Lu <hongjiu.lu@intel.com> 26866 26867 PR Ada/35186 26868 * config/i386/i386-modes.def: Revert the last DI alignment 26869 change until Ada people can look into it. 26870 268712008-02-19 Nick Clifton <nickc@redhat.com> 26872 26873 * opts.c (print_specific_help): Fix typo in --help text. 26874 268752008-02-19 Jakub Jelinek <jakub@redhat.com> 26876 26877 PR target/35239 26878 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special 26879 32-bit inline asm without asm alternatives for host GCC < 3.0. 26880 268812008-02-19 Richard Guenther <rguenther@suse.de> 26882 26883 PR tree-optimization/34989 26884 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure. 26885 Allow propagation to INDIRECT_REF if we can simplify only. 26886 268872008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26888 26889 * c-common.c (warn_for_collisions_1): Use appropriate option when 26890 warning. 26891 268922008-02-19 Nick Clifton <nickc@redhat.com> 26893 26894 PR other/31349 26895 * opts.c (undocumented_msg): Leave blank unless checking is enabled. 26896 (handle_options): Fix indentation. 26897 (print_filtered_help): If no language-specific options were 26898 displayed tell the user how to list all the options supported by 26899 the language's front-end. 26900 (print_specific_help): Fix indentation and remove duplicate line. 26901 (common_handle_option): Handle the -v option. 26902 For --help enable the display of undocumented options if the -v 26903 switch has been included on the command line. 26904 For --help= check for overlaps in the arguments between the option 26905 classes and the language names and issue a warning when they 26906 cannot be disambiguated. 26907 * c.opt (v): Pass on to the common option handler. 26908 269092008-02-19 Revital Eres <eres@il.ibm.com> 26910 26911 * modulo-sched.c (sms_schedule): Change dump message when 26912 create_ddg function fails. 26913 (try_scheduling_node_in_cycle): Rename row to cycle. 26914 (print_partial_schedule): Rename CYCLE to ROW. 26915 269162008-02-19 Christian Bruel <christian.bruel@st.com> 26917 Zdenek Dvorak <ook@ucw.cz> 26918 26919 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment. 26920 269212008-02-19 Uros Bizjak <ubizjak@gmail.com> 26922 26923 PR target/33555 26924 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern. 26925 (*x86_movdicc_0_m1_se): Ditto. 26926 269272008-02-19 Uros Bizjak <ubizjak@gmail.com> 26928 26929 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef. 26930 (CMPtype): Define as __gcc_CMPtype. 26931 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef. 26932 (CMPtype): Define as __gcc_CMPtype. 26933 269342008-02-19 Hans-Peter Nilsson <hp@axis.com> 26935 26936 Support valgrind 3.3 for --enable-checking=valgrind. 26937 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines 26938 here. 26939 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS. 26940 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE. 26941 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE. 26942 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines. 26943 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and 26944 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED, 26945 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS 26946 respectively. 26947 * ggc-zone.c: Similar. 26948 * ggc-page.c: Similar. 26949 269502008-02-19 Paul Brook <paul@codesourcery.com> 26951 26952 PR target/35071 26953 * config/arm/ieee754-df.S: Fix do_it typo. 26954 * config/arm/ieee754-sf.S: Fix do_it typo. 26955 269562008-02-18 H.J. Lu <hongjiu.lu@intel.com> 26957 26958 PR target/35189 26959 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New. 26960 (OPTION_MASK_ISA_3DNOW_SET): Likewise. 26961 (OPTION_MASK_ISA_SSE_SET): Likewise. 26962 (OPTION_MASK_ISA_SSE2_SET): Likewise. 26963 (OPTION_MASK_ISA_SSE3_SET): Likewise. 26964 (OPTION_MASK_ISA_SSSE3_SET): Likewise. 26965 (OPTION_MASK_ISA_SSE4_1_SET): Likewise. 26966 (OPTION_MASK_ISA_SSE4_2_SET): Likewise. 26967 (OPTION_MASK_ISA_SSE4_SET): Likewise. 26968 (OPTION_MASK_ISA_SSE4A_SET): Likewise. 26969 (OPTION_MASK_ISA_SSE5_SET): Likewise. 26970 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise. 26971 (OPTION_MASK_ISA_MMX_UNSET): Updated. 26972 (OPTION_MASK_ISA_3DNOW_UNSET): Updated. 26973 (OPTION_MASK_ISA_SSE_UNSET): Likewise. 26974 (OPTION_MASK_ISA_SSE3_UNSET): Likewise. 26975 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise. 26976 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise. 26977 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise. 26978 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise. 26979 (OPTION_MASK_ISA_SSE5_UNSET): Likewise. 26980 (OPTION_MASK_ISA_SSE4): Removed. 26981 (ix86_handle_option): Turn on bits in ix86_isa_flags and 26982 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX. 26983 (override_options): Don't turn on implied SSE/MMX bits in 26984 ix86_isa_flags. 26985 269862008-02-18 H.J. Lu <hongjiu.lu@intel.com> 26987 26988 * config/i386/i386-modes.def: Use 4 byte alignment on DI for 26989 32bit host. 26990 269912008-02-18 Joey Ye <joey.ye@intel.com> 26992 26993 PR middle-end/34921 26994 * tree-nested.c (insert_field_into_struct): Set type alignment 26995 to field alignment if the former is less than the latter. 26996 269972008-02-18 Jakub Jelinek <jakub@redhat.com> 26998 26999 * BASE-VER: Set to 4.4.0. 27000 270012008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 27002 27003 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate. 27004 * doc/cfg.texi: Likewise. 27005 * doc/extend.texi: Likewise. 27006 * doc/gty.texi: Likewise. 27007 * doc/invoke.texi: Likewise. 27008 * doc/loop.texi: Likewise. 27009 * doc/md.texi: Likewise. 27010 * doc/passes.texi: Likewise. 27011 * doc/rtl.texi: Likewise. 27012 * doc/sourcebuild.texi: Likewise. 27013 * doc/tm.texi: Likewise. 27014 * doc/tree-ssa.texi: Likewise. 27015 270162008-02-17 Richard Guenther <rguenther@suse.de> 27017 27018 PR middle-end/35227 27019 * tree-complex.c (init_parameter_lattice_values): Handle parameters 27020 without default definition. 27021 270222008-02-17 Richard Guenther <rguenther@suse.de> 27023 27024 PR tree-optimization/35231 27025 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0 27026 if A | B != 1. 27027 270282008-02-17 Uros Bizjak <ubizjak@gmail.com> 27029 27030 Revert: 27031 2008-02-15 Uros Bizjak <ubizjak@gmail.com> 27032 * config/i386/sfp-machine.h (CMPtype): Define as typedef using 27033 libgcc_cmp_return mode. 27034 270352008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 27036 27037 PR c/28368 27038 * doc/invoke.texi (-std): Clarify description of -std= and -ansi. 27039 270402008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org> 27041 27042 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475 27043 multilibs. 27044 270452008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 27046 27047 * doc/c-tree.texi: Use `@.' where appropriate. 27048 * doc/extend.texi: Likewise. 27049 * doc/install.texi: Likewise. 27050 * doc/invoke.texi: Likewise. 27051 * doc/loop.texi: Likewise. 27052 * doc/makefile.texi: Likewise. 27053 * doc/md.texi: Likewise. 27054 * doc/passes.texi: Likewise. 27055 * doc/standards.texi: Likewise. 27056 * doc/tm.texi: Likewise. 27057 270582008-02-15 Jakub Jelinek <jakub@redhat.com> 27059 27060 PR middle-end/35196 27061 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v 27062 in entry_bb. 27063 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb 27064 rather than in entry_bb. 27065 270662008-02-15 Uros Bizjak <ubizjak@gmail.com> 27067 27068 * config/i386/sfp-machine.h (CMPtype): Define as typedef using 27069 libgcc_cmp_return mode. 27070 270712008-02-15 Jakub Jelinek <jakub@redhat.com> 27072 27073 PR middle-end/35130 27074 * tree-nested.c (convert_call_expr): Put FRAME.* vars into 27075 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause. 27076 270772008-02-15 Richard Guenther <rguenther@suse.de> 27078 Zdenek Dvorak <ook@ucw.cz> 27079 27080 PR tree-optimization/35164 27081 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare. 27082 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function. 27083 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): 27084 Only propagate addresses which do not have abnormal SSA_NAMEs 27085 in their operands. 27086 270872008-02-15 Joseph Myers <joseph@codesourcery.com> 27088 27089 PR target/35088 27090 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define. 27091 270922008-02-15 Jan Hubicka <jh@suse.cz> 27093 27094 PR middle-end/35149 27095 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag. 27096 270972008-02-15 Uros Bizjak <ubizjak@gmail.com> 27098 27099 PR middle-end/34621 27100 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY 27101 when calculating alignment_pad. 27102 271032008-02-15 Uros Bizjak <ubizjak@gmail.com> 27104 27105 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro. 27106 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define. 27107 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro 27108 and STACK_BOUNDARY define. 27109 271102008-02-14 Danny Smith <dannysmith@users.sourceforge.net> 27111 27112 PR preprocessor/35061 27113 * c-pragma.c (handle_pragma_pop_macro): Check that 27114 pushed_macro_table has been allocated. 27115 271162008-02-14 Eric Botcazou <ebotcazou@adacore.com> 27117 27118 PR middle-end/35136 27119 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change. 27120 (force_gimple_operand): Likewise. 27121 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases 27122 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR. 27123 Also recurse on the operand for regular VIEW_CONVERT_EXPRs. 27124 (find_interesting_uses_address): Check addressability and alignment 27125 of the base expression only after substituting bases of IVs into it. 27126 271272008-02-14 Michael Matz <matz@suse.de> 27128 27129 PR target/34930 27130 * function.c (instantiate_virtual_regs_in_insn): Reload address 27131 before falling back to reloading the whole operand. 27132 271332008-02-14 Andreas Krebbel <krebbel1@de.ibm.com> 27134 27135 * config/s390/s390.c (s390_mainpool_start): Emit the pool 27136 before the first section switch note. 27137 271382008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 27139 27140 * doc/bugreport.texi: Update copyright years. 27141 * doc/c-tree.texi: Likewise. 27142 * doc/cfg.texi: Likewise. 27143 * doc/cpp.texi: Likewise. 27144 * doc/cppinternals.texi: Likewise. 27145 * doc/fragments.texi: Likewise. 27146 * doc/frontends.texi: Likewise. 27147 * doc/gcc.texi: Likewise. 27148 * doc/gty.texi: Likewise. 27149 * doc/hostconfig.texi: Likewise. 27150 * doc/implement-c.texi: Likewise. 27151 * doc/libgcc.texi: Likewise. 27152 * doc/loop.texi: Likewise. 27153 * doc/makefile.texi: Likewise. 27154 * doc/options.texi: Likewise. 27155 * doc/passes.texi: Likewise. 27156 * doc/rtl.texi: Likewise. 27157 * doc/sourcebuild.texi: Likewise. 27158 * doc/standards.texi: Likewise. 27159 * doc/tree-ssa.texi: Likewise. 27160 * doc/trouble.texi: Likewise. 27161 27162 * doc/extend.texi: Use @: or add comma where appropriate. 27163 * doc/invoke.texi: Likewise. 27164 * doc/tm.texi: Likewise. 27165 271662008-02-14 Alan Modra <amodra@bigpond.net.au> 27167 27168 PR target/34393 27169 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1] 27170 to a reg. 27171 271722008-02-14 Jesper Nilsson <jesper.nilsson@axis.com> 27173 27174 * doc/md.texi (clz, ctz): Add reference. 27175 * doc/rtl.texi (clz, ctz): Likewise. 27176 271772008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 27178 27179 PR other/35148 27180 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of 27181 srcdir. 27182 271832008-02-13 Andreas Krebbel <krebbel1@de.ibm.com> 27184 27185 * config/s390/s390.c (struct constant_pool): New field 27186 emit_pool_after added. 27187 (s390_mainpool_start): Set the emit_pool_after flag according 27188 to the section switch notes. 27189 (s390_mainpool_finish): Consider emit_pool_after when emitting 27190 the literal pool at the end of the function. 27191 (s390_chunkify_start): Force literal pool splits at section 27192 switch notes. 27193 271942008-02-13 Michael Matz <matz@suse.de> 27195 27196 PR debug/35065 27197 * var-tracking.c (clobber_variable_part): Correctly traverse the 27198 list. 27199 272002008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 27201 27202 PR 29673 27203 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined. 27204 Add -fdump-ipa-inline. 27205 * tree-dump.c (dump_files): Remove tree-inlined dump. 27206 * tree-pass.h (tree_dump_index): Remove TDI_inlined. 27207 272082008-02-12 Richard Guenther <rguenther@suse.de> 27209 27210 PR tree-optimization/35171 27211 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with 27212 default defs. 27213 272142008-02-12 Richard Guenther <rguenther@suse.de> 27215 27216 PR middle-end/35163 27217 * fold-const.c (fold_widened_comparison): Use get_unwidened in 27218 value-preserving mode. Disallow final truncation. 27219 272202008-02-12 Eric Botcazou <ebotcazou@adacore.com> 27221 27222 PR middle-end/35136 27223 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming 27224 code from here to... 27225 (force_gimple_operand): ...here. 27226 272272008-02-12 Jakub Jelinek <jakub@redhat.com> 27228 27229 PR c++/35144 27230 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying 27231 non-compatible pointers. 27232 (generate_element_copy): If SRC and DST are RECORD_TYPEs with 27233 different FIELD_DECLs, try harder by comparing field offsets, sizes 27234 and types. 27235 27236 PR inline-asm/35160 27237 * function.c (match_asm_constraints_1): Don't replace the same input 27238 multiple times. 27239 272402008-02-12 Anatoly Sokolov <aesok@post.ru> 27241 27242 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define. 27243 * config/avr/avr.c (expand_prologue): Save RAMPZ register. 27244 (expand_epilogue): Restore RAMPZ register. 27245 * config/avr/avr.md (RAMPZ_ADDR): New constant. 27246 272472008-02-11 Kai Tietz <kai.tietz@onevision.com> 27248 27249 * config/i386/cygwin.asm (__alloca): Correct calling 27250 convention and alignment. 27251 (__chkstk): Force 8 byte stack alignment. 27252 272532008-02-11 Uros Bizjak <ubizjak@gmail.com> 27254 Richard Guenther <rguenther@suse.de> 27255 27256 PR tree-optimization/33992 27257 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of 27258 the zero we compare against. 27259 272602008-02-10 Danny Smith <dannysmith@users.sourceforge.net> 27261 27262 PR libfortran/35063 27263 * gthr-win32.h (__gthread_mutex_destroy_function): New function 27264 to CloseHandle after unlocking to prevent accumulation of handle 27265 count. 27266 272672008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 27268 27269 PR middle_end/34150 27270 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a 27271 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note 27272 and update LABEL_NUSES during and after reload. 27273 272742008-02-08 Steven Bosscher <stevenb.gcc@gmail.com> 27275 27276 PR middle-end/34627 27277 * combine.c (simplify_if_then_else): Make sure the comparison is 27278 against const0_rtx when simplifying to (abs x) or (neg (abs X)). 27279 272802008-02-08 Richard Sandiford <rsandifo@nildram.co.uk> 27281 27282 PR bootstrap/35051 27283 * double-int.h: Don't include gmp.h for GENERATOR_FILEs. 27284 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs. 27285 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs. 27286 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs. 27287 * tree.h (get_type_static_bounds): Likewise. 27288 272892008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 27290 27291 * doc/invoke.texi (Option Summary, C++ Dialect Options) 27292 (Objective-C and Objective-C++ Dialect Options, Warning Options): 27293 Make -Wfoo language annotations match what the compiler outputs. 27294 272952008-02-08 Sa Liu <saliu@de.ibm.com> 27296 27297 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 27298 intrinsics spu_convts, spu_convtu, spu_convtf. 27299 273002008-02-08 Hans-Peter Nilsson <hp@axis.com> 27301 27302 * doc/extend.texi (Function Attributes) <noinline>: Mention 27303 asm ("") as method to keep calls. 27304 273052008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 27306 27307 PR other/32754 27308 * doc/options.texi (Options): Replace references to opts.sh with 27309 optc-gen.awk. 27310 * opts-common.c: Likewise. 27311 * optc-gen.awk: Likewise. 27312 273132008-02-07 Andreas Krebbel <krebbel1@de.ibm.com> 27314 27315 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit. 27316 273172008-02-07 Richard Henderson <rth@redhat.com> 27318 27319 PR rtl-opt/33410 27320 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an 27321 EXPR_LIST for the REG_EQUAL instead of a comparison with a 27322 funny mode. 27323 273242008-02-07 Uros Bizjak <ubizjak@gmail.com> 27325 27326 PR tree-optimization/35085 27327 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update 27328 for operand entry oe2 in addition to operand entry oe3 in order to 27329 expose more opportunities for vectorizer sum reduction. 27330 273312008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 27332 27333 PR other/35107 27334 * Makefile.in (LIBS): Remove $(GMPLIBS). 27335 (cc1-dummy, cc1): Add $(GMPLIBS). 27336 273372008-02-06 Jan Hubicka <jh@suse.cz> 27338 27339 PR target/23322 27340 * i386.md (moddf_integer): Do not produce partial memory stalls for 27341 targets where it hurts. 27342 273432008-02-06 Uros Bizjak <ubizjak@gmail.com> 27344 27345 PR target/35083 27346 * optabs.c (expand_float): Do not check for decimal modes when 27347 expanding unsigned integer through signed conversion. 27348 273492008-02-06 Nick Clifton <nickc@redhat.com> 27350 27351 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup 27352 inside the clobber with a match_operand and duplicated operand 27353 number in the constraint. 27354 (ineqbranchsi): Delete redundant comment. 27355 273562008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org> 27357 27358 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 27359 builtin_define ("__USE_INIT_FINI__"). 27360 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add 27361 -msx multilibs. 27362 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT. 27363 273642008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 27365 27366 PR documentation/30330 27367 * doc/invoke.texi (C++ Dialect Options) 27368 (Objective-C and Objective-C++ Dialect Options, Warning Options): 27369 For each warning option -Wfoo that allows -Wno-foo, ensure both 27370 -Wfoo and -Wno-foo are listed in the option index. Fix index 27371 entry of -Wswitch-default, index -Wnormalized= including the 27372 `=', and -Wlarger-than-@var{len} including @var{len}. 27373 273742008-02-05 Uros Bizjak <ubizjak@gmail.com> 27375 27376 * config/i386/i386.md (floatunssisf2): Use 27377 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE. 27378 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2. 27379 Macroize expander using MODEF mode iterator. 27380 273812008-02-05 Diego Novillo <dnovillo@google.com> 27382 27383 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html 27384 27385 PR 33738 27386 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738. 27387 273882008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 27389 27390 PR other/35070 27391 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings. 27392 273932008-02-05 H.J. Lu <hongjiu.lu@intel.com> 27394 27395 PR target/35084 27396 * config/i386/i386.c (ix86_function_sseregparm): Add an arg 27397 to indicate if a message should be generated. 27398 (init_cumulative_args): Updated. 27399 (function_value_32): Likewise. 27400 274012008-02-05 Joseph Myers <joseph@codesourcery.com> 27402 27403 * doc/include/texinfo.tex: Update to version 2008-02-04.16. 27404 274052008-02-05 Uros Bizjak <ubizjak@gmail.com> 27406 27407 PR target/35083 27408 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only. 27409 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2. 27410 274112008-02-04 Diego Novillo <dnovillo@google.com> 27412 27413 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html 27414 27415 PR 33738 27416 * tree-vrp.c (vrp_evaluate_conditional): With 27417 -Wtype-limits, emit a warning when comparing against a 27418 constant outside the natural range of OP0's type. 27419 274202008-02-04 Richard Guenther <rguenther@suse.de> 27421 27422 PR middle-end/33631 27423 * expr.c (count_type_elements): Give for unions instead of 27424 guessing. 27425 274262008-02-04 Richard Guenther <rguenther@suse.de> 27427 27428 PR middle-end/35043 27429 * gimplify.c (gimplify_init_ctor_eval): Convert array indices 27430 to TYPE_DOMAINs base type instead of using bitsizetype here. 27431 274322008-02-03 Jason Merrill <jason@redhat.com> 27433 27434 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements. 27435 274362008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 27437 27438 PR other/29972 27439 * doc/invoke.texi (C++ Dialect Options, Optimize Options) 27440 (HPPA Options, i386 and x86-64 Options, IA-64 Options) 27441 (RS/6000 and PowerPC Options): Fix typos and markup. 27442 * doc/passes.texi (Tree-SSA passes): Likewise. 27443 274442008-02-02 Michael Matz <matz@suse.de> 27445 27446 PR target/35045 27447 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed 27448 from record_last_reg_set_info. 27449 (record_last_reg_set_info): Take an RTX argument, iterate over all 27450 constituent hardregs. 27451 (record_last_set_info, record_opr_changes): Change calls to 27452 new signature or to record_last_reg_set_info_regno. 27453 274542008-02-02 Gerald Pfeifer <gerald@pfeifer.com> 27455 27456 * doc/extend.texi (X86 Built-in Functions): Fix grammar. 27457 274582008-02-01 Hans-Peter Nilsson <hp@axis.com> 27459 27460 PR rtl-optimization/34773 27461 * reg-notes.def (EQUAL): Mention significance of combination of 27462 REG_EQUAL and REG_RETVAL. 27463 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an 27464 insn that has a REG_RETVAL. 27465 274662008-02-01 Roger Sayle <roger@eyesopen.com> 27467 27468 PR bootstrap/33781 27469 * configure.ac (--enable-fixed-point): Disable unless explicitly 27470 requested on IRIX. 27471 * configure: Regenerate. 27472 274732008-02-01 Richard Guenther <rguenther@suse.de> 27474 27475 PR other/35042 27476 * invoke.texi (-finline-limit): Remove no longer true parts 27477 of the documentation. Note that there is no default value. 27478 274792008-02-01 Andrew Pinski <pinskia@gmail.com> 27480 Mark Mitchell <mark@codesourcery.com> 27481 Ben Elliston <bje@au.ibm.com> 27482 27483 PR c/29326 27484 * doc/extend.texi (Other Builtins): Document. 27485 274862008-01-31 Tom Browder <tom.browder@gmail.com> 27487 27488 * doc/c-tree.texi (Types): Fix grammar. 27489 (Expression trees): Ditto. 27490 * doc/passes.texi (Tree-SSA passes): Ditto. 27491 27492 * doc/configterms.texi (Configure Terms): Fix typo. 27493 * doc/cpp.texi (Common Predefined Macros): Ditto. 27494 * doc/md.texi (Machine Constraints): Ditto. 27495 27496 * doc/makefile.texi (Makefile): Add comma. 27497 274982008-01-31 Tom Browder <tom.browder@gmail.com> 27499 Gerald Pfeifer <gerald@pfeifer.com> 27500 27501 * doc/sourcebuild.texi (Front End): Remove references to CVS 27502 and CVSROOT/modules. 27503 (Texinfo Manuals): Replace reference to CVS by one to SVN. 27504 (Back End): Remove reference to CVS. 27505 275062008-01-31 Richard Sandiford <rsandifo@nildram.co.uk> 27507 27508 PR target/34900 27509 * config/mips/mips.c (gen_load_const_gp): New function, taking a 27510 comment from... 27511 (mips16_gp_pseudo_reg): ...here. 27512 * config/mips/mips.md (load_const_gp): Replace with... 27513 (load_const_gp_<mode>): ...this :P-based insn. 27514 275152008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 27516 27517 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std= 27518 options. Minor fixes. 27519 (-std): Move reference to standards closer to where language 27520 standards are first mentioned. 27521 275222008-01-31 Richard Sandiford <rsandifo@nildram.co.uk> 27523 27524 PR rtl-optimization/34995 27525 * reload.c (alternative_allows_const_pool_ref): Take an rtx 27526 parameter and return a bool. If the rtx parameter is nonnull, 27527 check that it satisfies an EXTRA_MEMORY_CONSTRAINT. 27528 (find_reloads): Update call accordingly. Pass the new operand 27529 if it needed no address reloads, otherwise pass null. 27530 275312008-01-30 Richard Henderson <rth@redhat.com> 27532 27533 PR c/34993 27534 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN 27535 for unbounded arrays. 27536 275372008-01-30 Silvius Rus <rus@google.com> 27538 27539 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg. 27540 275412008-01-30 Jan Hubicka <jh@suse.cz> 27542 27543 PR target/34982 27544 * i386.c (init_cumulative_args): Use real function declaration when 27545 calling locally. 27546 275472008-01-30 Richard Sandiford <rsandifo@nildram.co.uk> 27548 27549 PR rtl-optimization/34998 27550 * global.c (build_insn_chain): Treat non-subreg_lowpart 27551 SUBREGs of pseudos as clobbering all the words covered by the 27552 SUBREG, not just all the bytes. 27553 * ra-conflict.c (clear_reg_in_live): Likewise. Take the 27554 original df_ref rather than an extract parameter. 27555 (global_conflicts): Update call accordingly. 27556 275572008-01-30 Andreas Krebbel <krebbel1@de.ibm.com> 27558 27559 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange 27560 the overflow check to make it easier to read. 27561 (__fixtfdi): Change the type of the ll member in union 27562 long_double to UDItype_x. 27563 275642008-01-30 Jakub Jelinek <jakub@redhat.com> 27565 27566 PR middle-end/34969 27567 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype. 27568 * cgraph.c (cgraph_update_edges_for_call_stmt): New function. 27569 * tree-inline.c (fold_marked_statements): Call 27570 cgraph_update_edges_for_call_stmt if folding a call statement. 27571 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for 27572 debug_generic_stmt calls, reset it back afterwards. 27573 27574 PR c/35017 27575 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY 27576 static decls. 27577 * c-typeck.c (build_external_ref): Don't pedwarn about 27578 static vars in current function's scope. 27579 275802008-01-29 Joseph Myers <joseph@codesourcery.com> 27581 27582 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation. 27583 275842008-01-29 Bernhard Fischer <aldot@gcc.gnu.org> 27585 27586 PR c/35002 27587 * ipa-struct-reorg.c: Fix spelling. 27588 * params.def: Ditto. 27589 275902008-01-29 Richard Guenther <rguenther@suse.de> 27591 27592 PR middle-end/35006 27593 * tree-inline.h (struct copy_body_data): Add remapping_type_depth 27594 field. 27595 * tree-inline.c (remap_type): Increment remapping_type_depth 27596 around remapping types. 27597 (copy_body_r): Only add referenced variables if they are referenced 27598 from code, not types. 27599 276002008-01-29 Douglas Gregor <doug.gregor@gmail.com> 27601 27602 PR c++/34055 27603 PR c++/34103 27604 PR c++/34219 27605 PR c++/34606 27606 PR c++/34753 27607 PR c++/34754 27608 PR c++/34755 27609 PR c++/34919 27610 PR c++/34961 27611 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print 27612 qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 27613 276142008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net> 27615 27616 PR target/34412 27617 * config/avr/avr.c (expand_prologue): Use correct QI mode frame 27618 pointer for tiny stack. 27619 276202008-01-28 Bernhard Fischer <aldot@gcc.gnu.org> 27621 27622 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording. 27623 276242008-01-28 Bernhard Fischer <aldot@gcc.gnu.org> 27625 27626 * config/vx-common.h: Fix typo in comment. 27627 276282008-01-28 Ian Lance Taylor <iant@google.com> 27629 27630 PR c++/34862 27631 PR c++/33407 27632 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't 27633 coalesce pointers if they have different DECL_NO_TBAA_P values. 27634 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies 27635 between variables with different DECL_NO_TBAA_P values. 27636 276372008-01-28 Nathan Froyd <froydnj@codesourcery.com> 27638 27639 PR 31535 27640 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats 27641 are not legitimate small data references on SPE targets. 27642 276432008-01-28 David Daney <ddaney@avtrex.com> 27644 27645 * doc/install.texi (mips-*-*): Recommend binutils 2.18. 27646 276472008-01-28 David Daney <ddaney@avtrex.com> 27648 27649 * doc/install.texi (--disable-libgcj-bc): Reword documentation. 27650 276512008-01-27 Joseph Myers <joseph@codesourcery.com> 27652 27653 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*, 27654 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*, 27655 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, 27656 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout, 27657 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*, 27658 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*, 27659 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*, 27660 vax-*-bsd*, vax-*-ultrix*): Mark obsolete. 27661 276622008-01-27 Bernhard Fischer <aldot@gcc.gnu.org> 27663 27664 * basic-block.h (condjump_equiv_p): Fix comment. 27665 276662008-01-27 Bernhard Fischer <aldot@gcc.gnu.org> 27667 27668 * tree-pretty-print.c (print_generic_decl, print_generic_stmt, 27669 print_generic_stmt_indented): Fix comment. 27670 276712008-01-27 Bernhard Fischer <aldot@gcc.gnu.org> 27672 27673 * configure.ac (__stack_chk_fail): Add detecion for availability 27674 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined. 27675 * configure: Regenerate. 27676 276772008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com> 27678 27679 PR middle-end/34688 27680 * final.c (output_addr_const): Handle TRUNCATE. 27681 276822008-01-26 Zdenek Dvorak <ook@ucw.cz> 27683 27684 PR target/34711 27685 * tree-ssa-loop-ivopts.c (comp_cost): New type. 27686 (zero_cost, infinite_cost): New constants. 27687 (struct cost_pair): Change type of cost to comp_cost. 27688 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost. 27689 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p): 27690 New functions. 27691 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost, 27692 split_address_cost, ptr_difference_cost, difference_cost, 27693 get_computation_cost_at, get_computation_cost, 27694 determine_use_iv_cost_generic, determine_use_iv_cost_address, 27695 determine_use_iv_cost_condition, determine_use_iv_costs, 27696 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp, 27697 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend, 27698 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set): 27699 Change type of cost to comp_cost. 27700 (determine_iv_cost): Increase cost of non-original ivs, instead 27701 of decreasing the cost of original ones. 27702 (get_address_cost): Indicate the complexity of the addressing mode 27703 in comp_cost. 27704 (try_add_cand_for): Prefer using ivs not specific to some object. 27705 * tree-flow.h (force_expr_to_var_cost): Declaration removed. 27706 277072008-01-26 Peter Bergner <bergner@vnet.ibm.com> 27708 Janis Johnson <janis187@us.ibm.com> 27709 27710 PR target/34814 27711 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document. 27712 (TARGET_INSTANTIATE_DECLS): Likewise. 27713 * target.h (expand_to_rtl_hook): New target hook. 27714 (instantiate_decls): Likewise. 27715 * function.c (instantiate_decl): Make non-static. Rename to... 27716 (instantiate_decl_rtl): ... this. 27717 (instantiate_expr): Use instantiate_decl_rtl. 27718 (instantiate_decls_1): Likewise. 27719 (instantiate_decls): Likewise. 27720 (instantiate_virtual_regs: Call new instantiate_decls taget hook. 27721 * function.h (instantiate_decl_rtl): Add prototype. 27722 * cfgexpand.c (target.h): New include. 27723 (tree_expand_cfg): Call new expand_to_rtl_hook target hook. 27724 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define. 27725 (TARGET_INSTANTIATE_DECLS): Likewise. 27726 (TARGET_INITIALIZER): New target hooks added. 27727 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx): 27728 New prototype. 27729 * config/rs6000/rs6000.c (tree-flow.h): New include. 27730 (machine_function): Add sdmode_stack_slot field. 27731 (rs6000_alloc_sdmode_stack_slot): New function. 27732 (rs6000_instantiate_decls): Likewise. 27733 (rs6000_secondary_memory_needed_rtx): Likewise. 27734 (rs6000_check_sdmode): Likewise. 27735 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined. 27736 (TARGET_INSTANTIATE_DECLS): Likewise. 27737 (rs6000_hard_regno_mode_ok): Allow SDmode. 27738 (num_insns_constant): Likewise. Handle _Decimal32 constants. 27739 (rs6000_emit_move): Handle SDmode. 27740 (function_arg_advance): Likewise. 27741 (function_arg): Likewise. 27742 (rs6000_gimplify_va_arg): Likewise. Add special handling of 27743 SDmode var args for 32-bit compiles. 27744 (rs6000_secondary_reload_class): Handle SDmode. 27745 (rs6000_output_function_epilogue): Likewise. 27746 (rs6000_function_value): Simplify if statement. 27747 (rs6000_libcall_value): Likewise. 27748 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode. 27749 (SECONDARY_MEMORY_NEEDED_RTX): Add define. 27750 * config/rs6000/dfp.md (movsd): New define_expand and splitter. 27751 (movsd_hardfloat): New define_insn. 27752 (movsd_softfloat): Likewise. 27753 (movsd_store): Likewise. 27754 (movsd_load): Likewise. 27755 (extendsddd2): Likewise. 27756 (extendsdtd2): Likewise. 27757 (truncddsd2): Likewise. 27758 (movdd_hardfloat64): Fixup comment. 27759 (UNSPEC_MOVSD_LOAD): New constant. 27760 (UNSPEC_MOVSD_STORE): Likewise. 27761 277622008-01-26 Jakub Jelinek <jakub@redhat.com> 27763 27764 PR c++/34965 27765 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle 27766 TRUTH_XOR_EXPR. 27767 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR. 27768 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR. 27769 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR 27770 and TRUTH_XOR_EXPR. 27771 277722008-01-26 David Edelsohn <edelsohn@gnu.org> 27773 27774 PR target/34794 27775 * config.gcc: Separate AIX 5.3 from AIX 6.1. 27776 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define 27777 __LONGDOUBLE128 too. 27778 * config/rs6000/aix61.h: New file. 27779 277802008-01-26 Richard Sandiford <rsandifo@nildram.co.uk> 27781 27782 PR rtl-optimization/34959 27783 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz, 27784 popcount and parity rtxes the same mode as their operand. 27785 Truncate or extend the result to the return value's mode 27786 if necessary. 27787 277882008-01-26 Richard Sandiford <rsandifo@nildram.co.uk> 27789 27790 PR target/34981 27791 * config/mips/mips-protos.h (mips_expand_call): Return an rtx. 27792 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO 27793 to GOT_VERSION_REGNUM. 27794 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0. 27795 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT. 27796 * config/mips/mips.c (mips_emit_call_insn): New function. 27797 (mips_call_tls_get_addr): Call mips_expand_call directly. 27798 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than 27799 emit_call_insn. 27800 (mips16_build_call_stub): Likewise. Return the call insn or null. 27801 (mips_expand_call): Update the call to mips16_build_call_stub 27802 accordingly and a remove redundant condition. Assert that MIPS16 27803 stubs do not use lazy binding. Use mips_emit_call_insn and return 27804 the call insn. 27805 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if 27806 TARGET_USE_GOT. 27807 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM. 27808 (mips_avoid_hazard): Remove hazard_set handling. 27809 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to... 27810 (UNSPEC_RESTORE_GP): ...this. 27811 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants. 27812 (FAKE_CALL_REGNO): Rename to... 27813 (GOT_VERSION_REGNUM): ...this. 27814 (type): Add "ghost" value. Add an associated insn reservation. 27815 (hazard_set): Remove. 27816 (exception_receiver): Rename to... 27817 (restore_gp): ...this and update the unspec identifier accordingly. 27818 (exception_receiver, nonlocal_got_receiver): New expanders. 27819 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set 27820 FAKE_CALL_REGNO. Remove hazard_set attribute. 27821 (set_got_version, update_got_version): New patterns. 27822 278232008-01-26 Danny Smith <dannysmith@users.sourceforge.net> 27824 27825 PR target/34970 27826 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define. 27827 278282008-01-25 Joseph Myers <joseph@codesourcery.com> 27829 27830 PR other/31955 27831 * doc/install.texi2html: Generate gcc-vers.texi. 27832 278332008-01-25 DJ Delorie <dj@redhat.com> 27834 27835 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. 27836 278372008-01-25 Joseph Myers <joseph@codesourcery.com> 27838 27839 * config/c4x: Remove directory. 27840 * config.gcc (crx-*, mt-*): Mark obsolete. 27841 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*, 27842 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*, 27843 sh-*-rtemscoff*): Remove cases. 27844 * defaults.h (C4X_FLOAT_FORMAT): Remove. 27845 * real.c (encode_c4x_single, decode_c4x_single, 27846 encode_c4x_extended, decode_c4x_extended, c4x_single_format, 27847 c4x_extended_format): Remove. 27848 * real.h (c4x_single_format, c4x_extended_format): Remove. 27849 * doc/extend.texi (interrupt, naked): Remove mention of attributes 27850 on C4x. 27851 (Pragmas): Remove comment about c4x pragmas. 27852 * doc/install.texi (c4x): Remove target-specific instructions. 27853 * doc/invoke.texi (TMS320C3x/C4x Options): Remove. 27854 * doc/md.texi (Machine Constraints): Remove C4x documentation. 27855 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not 27856 refer to C4x source files as examples. 27857 (C4X_FLOAT_FORMAT): Remove documentation. 27858 278592008-01-25 Bernd Schmidt <bernd.schmidt@analog.com> 27860 27861 * config/bfin/bfin.c (override_options): Reorder tests so that 27862 flag_pic gets enabled for -msep-data. 27863 278642008-01-25 Richard Guenther <rguenther@suse.de> 27865 27866 PR middle-end/32244 27867 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR 27868 to its bitfield precision if required. 27869 278702008-01-25 Jakub Jelinek <jakub@redhat.com> 27871 27872 PR middle-end/33880 27873 * tree-nested.c (walk_omp_for): New function. 27874 (convert_nonlocal_reference, convert_local_reference): Call 27875 walk_omp_for on OMP_FOR. 27876 (convert_call_expr): Call walk_body on OMP_FOR's 27877 OMP_FOR_PRE_INIT_BODY. 27878 278792008-01-25 Richard Guenther <rguenther@suse.de> 27880 27881 PR tree-optimization/34966 27882 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but 27883 default defs and PHI_NODEs we have to insert after the 27884 defining statement. 27885 278862008-01-24 Nick Clifton <nickc@redhat.com> 27887 27888 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD): 27889 Provide a default definition. 27890 (LIBGCC2_UNITS_PER_WORD): Likewise. 27891 27892 * config/stormy16/stormy16.c: Include df.h for the prototype 27893 for df_regs_ever_live_p. 27894 (xstormy16_expand_builtin_va_start): Convert the stack offset 27895 into a component_ref and then use POINTER_PLUS_EXPR to add it 27896 to the incoming_virtual_args_rtx. 27897 (xstormy16_gimplify_va_arg_expr): Rename to 27898 xstormy16_gimplify_va_arg_expr. 27899 Use POINTER_PLUS_EXPR when performing pointer arithmetic. 27900 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed 27901 xstormy16_gimplify_va_arg_expr. 27902 Fix up some formatting issues. 27903 27904 * config/stormy16/stormy16.c (xstormy16_carry_plus_operand): 27905 Move to predicates.md. 27906 (xs_hi_general_operand): Likewise. 27907 (xs_hi_nonmemory_operand): Likewise. 27908 * config/stormy16/predicates.md: 27909 (xstormy16_carry_plus_operand): New predicate. 27910 (xs_hi_general_operand): New predicate. 27911 (xs_hi_nonmemory_operand): New predicate. 27912 * config/stormy16/stormy16-protos.h: 27913 (xstormy16_carry_plus_operand): Delete prototype. 27914 (xs_hi_general_operand): Likewise. 27915 (xs_hi_nonmemory_operand): Likewise. 27916 27917 * config/storm16/stormy16.md (addhi3): Remove earlyclobber 27918 modifiers as they are no longer needed and they can trigger 27919 reload spill failures. 27920 27921 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup 27922 with a match_operand in order to help reload. 27923 27924 * config/storm16/stormy16.md (movhi_internal): Replace 'r' 27925 constraint with 'e' for the 8th alternative as this version of 27926 the mov.w instruction only accepts the lower 8 registers. 27927 279282008-01-25 Uros Bizjak <ubizjak@gmail.com> 27929 27930 PR target/34856 27931 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]: 27932 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant 27933 vector elements. 27934 279352008-01-25 Jakub Jelinek <jakub@redhat.com> 27936 27937 PR middle-end/33333 27938 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY. 27939 279402008-01-25 Golovanevsky Olga <olga@il.ibm.com> 27941 27942 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs): 27943 New functions. 27944 (remove_structure): Update allocations list before removing structure. 27945 279462008-01-25 Golovanevsky Olga <olga@il.ibm.com> 27947 27948 * ipa-struct-reorg.c (is_safe_cond_expr, 27949 create_new_stmts_for_cond_expr): Use integer_zerop function, 27950 that recognize not only zero-pointer, but zero-integer too. 27951 279522008-01-25 Ben Elliston <bje@au.ibm.com> 27953 27954 PR other/22232 27955 * fixproto: Escape "." in sed expression that strips leading "./". 27956 279572008-01-24 H.J. Lu <hongjiu.lu@intel.com> 27958 27959 PR driver/34904 27960 * gcc.c (SWITCH_OK): Removed. 27961 (SWITCH_LIVE): Changed to bit. 27962 (SWITCH_FALSE): Likewise. 27963 (SWITCH_IGNORE): Likewise. 27964 (switchstr): Change live_cond to unsigned int. 27965 (process_command): Replace SWITCH_OK with 0. 27966 (do_self_spec): Likewise. 27967 (set_collect_gcc_options): Check the SWITCH_IGNORE bit. 27968 (give_switch): Likewise. 27969 (used_arg): Likewise. 27970 (do_spec_1): Set the SWITCH_IGNORE bit. 27971 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE 27972 bits. Set the SWITCH_LIVE bit. 27973 279742008-01-24 Andreas Krebbel <krebbel1@de.ibm.com> 27975 27976 * config/s390/s390.h (MOVE_RATIO): Define new target macro. 27977 279782008-01-24 Richard Sandiford <rsandifo@nildram.co.uk> 27979 27980 PR tree-optimization/34472 27981 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA 27982 parameter to a "bool *" and set *DATA to false if there is 27983 an unsafe access. Do not delete the structure here. 27984 (check_cond_exprs): Delete it here instead. 27985 (check_cond_exprs, exclude_cold_structs): Do not increase 27986 I when removing a structure. 27987 279882008-01-24 Uros Bizjak <ubizjak@gmail.com> 27989 27990 PR target/34856 27991 * config/i386/i386.c (ix86_expand_vector_init): Consider only 27992 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements. 27993 279942008-01-24 Jakub Jakub Jelinek <jakub@redhat.com> 27995 27996 PR middle-end/34934 27997 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of 27998 a fixed vector for stack. 27999 280002008-01-24 Ben Elliston <bje@au.ibm.com> 28001 28002 PR c++/25701 28003 * doc/gcc.texi (Software development): Add a direntry for g++. 28004 280052008-01-23 Hans-Peter Nilsson <hp@axis.com> 28006 28007 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop 28008 stale and straggling -fforce-addr comments above. 28009 28010 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't 28011 define. 28012 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define. 28013 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define. 28014 280152008-01-23 Michael Matz <matz@suse.de> 28016 28017 PR debug/34895 28018 * dwarf2out.c (force_type_die): Use modified_type_die instead of 28019 gen_type_die. 28020 280212008-01-23 Andreas Krebbel <krebbel1@de.ibm.com> 28022 28023 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as 28024 malloc result type. 28025 280262008-01-23 Anatoly Sokolov <aesok@post.ru> 28027 28028 * config/avr/avr.c (avr_current_arch): New variable. 28029 (avr_arch_types): Add 'avr31' and 'avr51' entries. 28030 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'. 28031 (avr_mcu_types): Add 'avr31' and 'avr51' architectures. 28032 (avr_override_options): Init 'avr_current_arch'. 28033 (base_arch_s): Move from here... 28034 * config/avr/avr.h (base_arch_s): ... here. Add new members 28035 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 28036 'mega' to 'have_jmp_call'. 28037 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 28038 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__" 28039 macros. 28040 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 28041 architectures. 28042 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 28043 MULTILIB_MATCHES): Ditto. 28044 280452008-01-23 Richard Guenther <rguenther@suse.de> 28046 28047 PR middle-end/31529 28048 * cgraphunit.c (cgraph_reset_node): Always mark the node 28049 not reachable if it is not queued already. 28050 280512008-01-23 Bernd Schmidt <bernd.schmidt@analog.com> 28052 28053 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros. 28054 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere. 28055 (cputype_selected): New static variable. 28056 (bfin_handle_option): Set it if -mcpu is used. 28057 (override_option): Select default set of workarounds if no cpu type 28058 selected on the command line. 28059 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS. 28060 28061 From Michael Frysinger <michael.frysinger@analog.com> 28062 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add 28063 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526. 28064 28065 * config/bfin/elf.h (LIB_SPEC): Use proper linker script 28066 for bf547, bf523, bf524, and bf526. 28067 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and 28068 bf526. 28069 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define 28070 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524, 28071 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as 28072 __ADSPBF547__ and __ADSPBF54x__ for bf547. 28073 * doc/invoke.texi (Blackfin Options): Document that 28074 -mcpu now accept bf547, bf523, bf524, and bf526. 28075 280762008-01-22 Eric Botcazou <ebotcazou@adacore.com> 28077 28078 PR rtl-optimization/34628 28079 * combine.c (try_combine): Stop and undo after the first combination 28080 if an autoincrement side-effect on the first insn has effectively 28081 been lost. 28082 280832008-01-22 David Edelsohn <edelsohn@gnu.org> 28084 28085 PR target/34529 28086 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): 28087 Offset addresses are not valid for Altivec or paired float modes. 28088 280892008-01-22 Jakub Jelinek <jakub@redhat.com> 28090 28091 PR c++/34607 28092 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for 28093 if DECL_INITIAL (decl) is error_mark_node. 28094 28095 PR c++/34914 28096 * c-common.c (handle_vector_size_attribute): Only allow 28097 integral, scalar float and fixed point types. Handle OFFSET_TYPE 28098 the same way as pointer, array etc. types. 28099 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE. 28100 28101 PR c++/34917 28102 * tree.c (build_type_attribute_qual_variant): Call 28103 build_qualified_type if attributes are equal, but quals are not. 28104 281052008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 28106 28107 PR 32102 28108 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1. 28109 * flags.h (warn_strict_aliasing): Remove. 28110 (warn_strict_overflow): Remove. 28111 * opts.c (warn_strict_aliasing): Remove. 28112 (warn_strict_overflow): Remove. 28113 * c-opts.c (c_common_handle_option): -Wall only sets 28114 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized. 28115 (c_common_post_options): Give default values to -Wstrict-aliasing 28116 and -Wstrict-overflow if they are uninitialized. 28117 * common.opt (Wstrict-aliasing): Specify Var and Init. 28118 (Wstrict-overflow): Likewise. 28119 281202008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com> 28121 28122 PR rtl-optimization/26854 28123 PR rtl-optimization/34400 28124 PR rtl-optimization/34884 28125 * ddg.c (create_ddg_dep_from_intra_loop_link): Use 28126 DF_RD->gen. 28127 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted 28128 (df_rd_bb_info.expanded_lr_out): Deleted 28129 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag. 28130 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c 28131 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n, 28132 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free): 28133 Removed code to allocate, initialize or free expanded_lr_out. 28134 (df_rd_bb_local_compute_process_def): Restructured to make more 28135 understandable. 28136 (df_rd_confluence_n): Removed code to no apply invalidate_by_call 28137 sets if the sets are being trimmed. 28138 281392008-01-22 H.J. Lu <hongjiu.lu@intel.com> 28140 28141 PR bootstrap/32287 28142 * configure.ac (ld_vers): Support GNU linker version xx.xx.* 28143 (as_vers): Likewise. 28144 * configure: Regenerated. 28145 281462008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 28147 28148 PR middle-end/33092 28149 * tree-pass.h (pass_build_alias): New pass. 28150 * tree-ssa-alias.c (gate_build_alias): New. 28151 (pass_build_alias): New. 28152 * passes.c (init_optimization_passes): Add pass_build_alias after 28153 pass_create_structure_vars. 28154 281552008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com> 28156 28157 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER): 28158 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER. 28159 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to 28160 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER. 28161 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to 28162 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER. 28163 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to 28164 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER. 28165 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant. 28166 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant. 28167 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant. 28168 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant. 28169 * config/s390/s390.md (FP_ALL): New mode iterator. 28170 (_d): New mode attribute. 28171 ("*signbit<mode>2>"): Changed mode of first operand. 28172 ("isinf<mode>2"): Changed mode of first operand. 28173 ("*TDC_insn"): Adaptation for DFP modes. 28174 281752008-01-22 Ben Elliston <bje@au.ibm.com> 28176 28177 * tree.c (check_qualified_type): Improve function description. 28178 281792008-01-21 Jason Merrill <jason@redhat.com> 28180 28181 PR c++/34196 28182 * tree.h (TRY_CATCH_IS_CLEANUP): New macro. 28183 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR 28184 if it is set. 28185 281862008-01-21 DJ Delorie <dj@redhat.com> 28187 28188 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not 28189 return zero. 28190 281912008-01-21 Richard Guenther <rguenther@suse.de> 28192 28193 PR middle-end/34856 28194 * tree-cfg.c (verify_expr): Allow all invariant expressions 28195 instead of just constant class ones as reference argument. 28196 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR 28197 like any other constant. 28198 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. 28199 282002008-01-21 H.J. Lu <hongjiu.lu@intel.com> 28201 28202 * regmove.c (fixup_match_1): Update call crossed frequencies. 28203 282042008-01-21 Richard Guenther <rguenther@suse.de> 28205 28206 PR c/34885 28207 * tree-inline.c (setup_one_parameter): Deal with mismatched 28208 types using a VIEW_CONVERT_EXPR. 28209 282102008-01-21 Alon Dayan <alond@il.ibm.com> 28211 Olga Golovanevsky <olga@il.ibm.com> 28212 28213 PR tree-optimization/34701 28214 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation 28215 when the structure size is not a power of 2. 28216 282172008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com> 28218 28219 * doc/install.texi: Add doc for --enable-checking=df. 28220 282212008-01-20 Kaz Kojima <kkojima@gcc.gnu.org> 28222 28223 PR rtl-optimization/34808 28224 * emit-rtl.c (try_split): Handle REG_RETVAL notes. 28225 282262008-01-20 Richard Sandiford <rsandifo@nildram.co.uk> 28227 28228 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per 28229 input. 28230 282312008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com> 28232 28233 PR rtl-optimization/26854 28234 PR rtl-optimization/34400 28235 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use 28236 DF_RD->gen. 28237 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New. 28238 (df_rd_bb_info.expanded_lr_out): New. 28239 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag. 28240 * loop_iv.c (iv_analysis_loop_init): Ditto. 28241 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n, 28242 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free): 28243 Added code to allocate, initialize or free expanded_lr_out. 28244 (df_rd_bb_local_compute_process_def): Restructured to make 28245 more understandable. 28246 (df_rd_confluence_n): Add code to do nothing with fake edges and 28247 code to no apply invalidate_by_call sets if the sets are being trimmed. 28248 (df_lr_local_finalize): Renamed to df_lr_finalize. 28249 (df_live_local_finalize): Renamed to df_live_finalize. 28250 282512008-01-20 Richard Sandiford <rsandifo@nildram.co.uk> 28252 28253 PR target/34831 28254 * config/mips/mips.md (div<mode>3): Use <recip_condition> when 28255 deciding whether to use reciprocal instructions. 28256 282572008-01-19 Uros Bizjak <ubizjak@gmail.com> 28258 28259 * dwarf2out.c (dwarf2out_switch_text_section): Do not call 28260 dwarf2out_note_section_used if cold_text_section is NULL. 28261 282622008-01-19 Jakub Jelinek <jakub@redhat.com> 28263 28264 PR gcov-profile/34610 28265 * tree-cfg.c (make_edges): Mark both outgoing edges from 28266 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL. 28267 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits 28268 from OMP_FOR and OMP_CONTINUE outgoing edges. 28269 28270 * tree-profile.c (tree_profiling): Return early if 28271 cfun->after_tree_profile != 0. Set cfun->after_tree_profile 28272 at the end. 28273 * omp-low.c (expand_omp_parallel): Copy after_tree_profile 28274 from cfun to child_cfun. 28275 * function.h (struct function): Add after_tree_profile bit. 28276 282772008-01-19 Anatoly Sokolov <aesok@post.ru> 28278 28279 * config/avr/avr.S (_exit): Disable interrupt. 28280 282812008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com> 28282 Steven Bosscher <stevenb.gcc@gmail.com> 28283 28284 PR rtl-optimization/26854 28285 PR rtl-optimization/34400 28286 * df-problems.c (df_live_scratch): New scratch bitmap. 28287 (df_live_alloc): Allocate df_live_scratch when doing df_live. 28288 (df_live_reset): Clear the proper bitmaps. 28289 (df_live_bb_local_compute): Only process the artificial defs once 28290 since the order is not important. 28291 (df_live_init): Init the df_live sets only with the variables 28292 found live by df_lr. 28293 (df_live_transfer_function): Use the df_lr sets to prune the 28294 df_live sets as they are being computed. 28295 (df_live_free): Free df_live_scratch. 28296 282972008-01-18 Ian Lance Taylor <iant@google.com> 28298 28299 * common.opt: Add fmerge-debug-strings. 28300 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test 28301 flag_merge_debug_strings rather than flag_merge_constants. 28302 * doc/invoke.texi (Option Summary): Mention 28303 -fmerge-debug-strings. 28304 (Debugging Options): Document -fmerge-debug-strings. 28305 283062008-01-18 Ian Lance Taylor <iant@google.com> 28307 28308 PR c++/33407 28309 * tree.h (DECL_IS_OPERATOR_NEW): Define. 28310 (struct tree_function_decl): Add new field operator_new_flag. 28311 * tree-inline.c (expand_call_inline): When inlining a call to 28312 operator new, force the return value to go into a variable, and 28313 set DECL_NO_TBAA_P on that variable. 28314 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag. 28315 283162008-01-18 Uros Bizjak <ubizjak@gmail.com> 28317 28318 PR debug/34484 28319 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with 28320 DWARF2_DEBUGGING_INFO. 28321 (dwarf2out_note_section_used): Ditto. Add prototype. 28322 (have_multiple_function_sections, text_section_used, 28323 cold_text_section_used, *cold_text_sections): Move declarations 28324 before their uses. 28325 283262008-01-17 Bob Wilson <bob.wilson@acm.org> 28327 28328 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc 28329 field and add signal_ra. 28330 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove 28331 assignments to frame state pc. Move end of stack check after 28332 MD_FALLBACK_FRAME_STATE_FOR. 28333 (uw_update_context_1): Use frame state signal_regs if set, instead 28334 of checking signal_frame flag. 28335 (uw_update_context): Use frame state signal_ra if set. 28336 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define. 28337 * config/xtensa/linux-unwind.h: New file. 28338 283392008-01-18 Bernhard Fischer <aldot@gcc.gnu.org> 28340 28341 * modulo-sched.c (get_sched_window): Fix comment typo. 28342 283432008-01-17 Andrew MacLeod <amacleod@redhat.com> 28344 28345 PR tree-optimization/34648 28346 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying. 28347 283482008-01-17 Anatoly Sokolov <aesok@post.ru> 28349 28350 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around. 28351 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add. 28352 283532008-01-17 Seongbae Park <seongbae.park@gmail.com> 28354 28355 PR rtl-optimization/34400 28356 * df-core.c (df_worklist_dataflow_overeager, 28357 df_worklist_dataflow_doublequeue): New functions. 28358 (df_worklist_dataflow): Two different worklist solvers. 28359 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR): 28360 New param. 28361 283622008-01-16 Sebastian Pop <sebastian.pop@amd.com> 28363 28364 PR testsuite/34821 28365 * doc/invoke.texi: Document the dependence on pthread for fopenmp 28366 and ftree-parallelize-loops. 28367 283682008-01-17 Mircea Namolaru <namolaru@il.ibm.com> 28369 28370 PR rtl-optimization/34826 28371 * loop-doloop (doloop_modify): Update the REG_BR_PROB note. 28372 283732008-01-17 Andreas Krebbel <krebbel1@de.ibm.com> 28374 28375 * global.c (find_reg): Mark the eh regs as used if necessary. 28376 * ra-conflict.c (global_conflicts): Set no_eh_reg flag. 28377 * ra.h (struct allocno): no_eh_reg field added. Changed 28378 no_stack_reg type to bitfield. 28379 283802008-01-17 Eric Botcazou <ebotcazou@adacore.com> 28381 28382 * tree.c (substitute_in_expr): Add missing 'break'. 28383 283842008-01-17 Richard Guenther <rguenther@suse.de> 28385 28386 PR tree-optimization/34825 28387 * tree-ssa-math-opts.c (is_division_by): Do not recognize 28388 x / x as division to handle. 28389 283902008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 28391 28392 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or 28393 "-pthread" is specified. 28394 * pa-hpux11.h (LIB_SPEC): Likewise. 28395 283962008-01-16 Janis Johnson <janis187@us.ibm.com> 28397 Peter Bergner <bergner@vnet.ibm.com> 28398 28399 PR rtl-optimization/33796 28400 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc. 28401 284022008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 28403 28404 PR libgfortran/34699 28405 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on 28406 static links. 28407 * pa-hpux10.h (LINK_SPEC): Likewise. 28408 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1. 28409 284102008-01-16 Richard Guenther <rguenther@suse.de> 28411 28412 PR middle-end/32628 28413 * fold-const.c (fold_convert_const_int_from_int): Do not 28414 set overflow if that occured only because of a sign extension 28415 change when converting from/to a sizetype with the same 28416 precision and signedness. 28417 284182008-01-16 Uros Bizjak <ubizjak@gmail.com> 28419 28420 PR debug/34249 28421 * dwarf2out.c (output_call_frame_info): Move output of FDE initial 28422 location address to the correct place. Update copyright year. 28423 284242008-01-16 Sebastian Pop <sebastian.pop@amd.com> 28425 28426 * lambda-code.c (lambda_transform_legal_p): Handle the case of 28427 no dependences in the dependence_relations vector. 28428 284292008-01-16 Jan Hubicka <jh@suse.cz> 28430 28431 PR rtl-optimization/31396 28432 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED. 28433 * cfg.c (dump_reg_info): Print it. 28434 * regs.h (struct reg_info_t): add freq_calls_crossed. 28435 (REG_FREQ_CALLS_CROSSED): New macro. 28436 * global.c (global_alloc): Compute freq_calls_crossed for allocno. 28437 (find_reg): Update call of CALLER_SAVE_PROFITABLE. 28438 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2, 28439 regmove_optimize): Update call crossed frequencies. 28440 * local-alloc.c (struct qty): Add freq_calls_crossed. 28441 (alloc_qty): Copute freq_calls_crossed. 28442 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED. 28443 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE. 28444 * ra.h (struct allocno): Add freq_calls_crossed. 28445 284462008-01-16 Sebastian Pop <sebastian.pop@amd.com> 28447 28448 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for 28449 libgomp when compiling with ftree-parallelize-loops. 28450 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops. 28451 284522008-01-16 Richard Guenther <rguenther@suse.de> 28453 28454 PR tree-optimization/34769 28455 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458. 28456 * tree.c (int_cst_value): Instead make this function more 28457 permissive in what it accepts as valid input. Document this 28458 function always sign-extends the value. 28459 284602008-01-16 Jakub Jelinek <jakub@redhat.com> 28461 Richard Guenther <rguenther@suse.de> 28462 28463 PR c/34668 28464 * gimplify.c (fold_indirect_ref_rhs): Rename to ... 28465 (gimple_fold_indirect_ref_rhs): ... this. 28466 (gimple_fold_indirect_ref): New function with foldings 28467 that preserve lvalueness. 28468 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs. 28469 * tree-flow.h (gimple_fold_indirect_ref): Declare. 28470 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref 28471 to fold an INDIRECT_REF, fall back to the old use of 28472 fold_indirect_ref_1. 28473 284742008-01-16 Sebastian Pop <sebastian.pop@amd.com> 28475 28476 * tree-data-ref.c (subscript_dependence_tester_1): Call 28477 free_conflict_function. 28478 (compute_self_dependence): Same. 28479 284802008-01-16 Uros Bizjak <ubizjak@gmail.com> 28481 28482 PR debug/34249 28483 * debug.h (dwarf2out_switch_text_section): Move declaration from ... 28484 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make 28485 function global. 28486 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]: 28487 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section 28488 for DWARF2_UNWIND_INFO targets. 28489 284902008-01-16 Richard Guenther <rguenther@suse.de> 28491 28492 PR c/34768 28493 * c-typeck.c (common_pointer_type): Do not merge inconsistent 28494 type qualifiers for function types. 28495 284962008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> 28497 28498 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for 28499 loop_iterator li from previous commit. 28500 285012008-01-15 Sebastian Pop <sebastian.pop@amd.com> 28502 28503 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations. 28504 285052008-01-12 Sebastian Pop <sebastian.pop@amd.com> 28506 28507 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New. 28508 (parallelize_loops): Don't parallelize irreducible components. 28509 285102008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 28511 28512 PR c++/24924 28513 * c-opts (c_common_post_options): Do not enable CPP 28514 flag_pedantic_errors by default. 28515 285162008-01-14 Eric Botcazou <ebotcazou@adacore.com> 28517 28518 PR rtl-optimization/31944 28519 * cse.c (remove_pseudo_from_table): New function. 28520 (merge_equiv_classes): Use above function to remove pseudo-registers. 28521 (invalidate): Likewise. 28522 285232008-01-13 Richard Guenther <rguenther@suse.de> 28524 28525 PR middle-end/34601 28526 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE 28527 instead of TYPE_MODE to deal with calls from expand_one_error_var. 28528 285292008-01-13 Uros Bizjak <ubizjak@gmail.com> 28530 28531 * gcse.c (cprop_jump): Call validate_unshare_change instead of 28532 validate_change to unshare the source of the PC set. 28533 285342008-01-12 Jan Hubicka <jh@suse.cz> 28535 28536 PR middle-end/32135 28537 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct 28538 references above array bounds. This might trigger bounds checks for 28539 pointers to arrays. 28540 285412008-01-12 Sebastian Pop <sebastian.pop@amd.com> 28542 28543 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and 28544 new_replaceable_dependencies. 28545 285462008-01-12 Doug Kwan <dougkwan@google.com> 28547 28548 * c-decl.c (grokdeclarator): Use OPT_Wignored_qualifiers 28549 instead of OPT_Wreturn_type in warning due to ignored return type 28550 qualifiers. 28551 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to 28552 options included in -Wextra. 28553 * c.opt: New option -Wignored_qualifiers. 28554 * doc/invoke.texi (Warning Options, -Wextra): Add new option 28555 -Wignore_qualifiers. 28556 (-Wignored-qualifiers): Document. 28557 (-Wreturn-type): Remove description of functionality now handled 28558 by -Wignored-qualifiers. 28559 285602008-01-12 Eric Botcazou <ebotcazou@adacore.com> 28561 28562 PR ada/33788 28563 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing 28564 NOP_EXPR if it is between integral types with the same precision. 28565 285662008-01-12 Jan Hubicka <jh@suse.cz> 28567 28568 PR other/28023 28569 * invoke.texi (max-inline-recursive-depth): Fix default value. 28570 285712008-01-12 Zdenek Dvorak <ook@ucw.cz> 28572 28573 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the 28574 correct type. 28575 285762008-01-11 Bob Wilson <bob.wilson@acm.org> 28577 28578 * config/xtensa/xtensa.c (override_options): Set flag_shlib. 28579 285802008-01-11 James E. Wilson <wilson@specifix.com> 28581 28582 PR target/26015 28583 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define. 28584 285852008-01-11 Anatoly Sokolov <aesok@post.ru> 28586 28587 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 28588 save/restore frame pointer register and don't use 'call-prologues' 28589 optimization in function with "OS_task" attribute. 28590 285912008-01-11 Eric Botcazou <ebotcazou@adacore.com> 28592 28593 PR middle-end/31309 28594 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size 28595 when copying to memory. 28596 285972008-01-11 Steven Bosscher <stevenb.gcc@gmail.com> 28598 28599 PR rtl-optimization/30905 28600 * cfgcleanup.c: Include dce.h 28601 (crossjumps_occured): New global variable. 28602 (try_crossjump_bb): Exit loop after finding a fallthru edge. 28603 If something changed, set crossjumps_occured to true. 28604 (try_optimize_cfg): Clear crossjumps_occured at the beginning. 28605 Don't add/remove fake edges to exit here... 28606 (cleanup_cfg): ...but do it here, when crossjumping. 28607 Run a fast DCE when successful crossjumps occured in the latest 28608 iteration of try_optimize_cfg. 28609 286102008-01-11 Richard Guenther <rguenther@suse.de> 28611 28612 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode. 28613 (struct vn_unary_op_s): Likewise. 28614 (vn_reference_insert): Free old reference on hash collision. 28615 286162008-01-10 Raksit Ashok <raksit@google.com> 28617 28618 PR rtl-optimization/27971 28619 * combine.c (find_split_point): Split PLUS expressions which are 28620 inside a MEM rtx, and whose first operand is complex. 28621 286222008-01-10 DJ Delorie <dj@redhat.com> 28623 28624 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from... 28625 (m32c_hard_regno_nregs): ...this, which is now a wrapper. 28626 (m32c_hard_regno_ok): Call the underlying function. 28627 286282008-01-10 Richard Guenther <rguenther@suse.de> 28629 28630 PR middle-end/34683 28631 * tree-cfg.c (tree_merge_blocks): Do not go through the 28632 full-blown folding and stmt updating path if we just deal 28633 with virtual operands. 28634 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut 28635 test for abnormal SSA_NAMEs. 28636 286372008-01-10 Andreas Krebbel <krebbel1@de.ibm.com> 28638 28639 PR middle-end/34641 28640 * reload.c (push_reload): Add assertions. All constants from 28641 reg_equiv_constant should have been used for replacing the respective 28642 pseudo earlier. 28643 (find_reloads_address): Invoke find_reloads_address_part for 28644 constant taken from the reg_equiv_constant array. 28645 286462008-01-10 Steven Bosscher <stevenb.gcc@gmail.com> 28647 28648 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed 28649 field (valnum) the first in the struct. Replace bools with 28650 unit bit fields. 28651 286522008-01-10 Richard Guenther <rguenther@suse.de> 28653 28654 PR tree-optimization/34651 28655 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct 28656 types and ordering for masking and converting. 28657 286582008-01-09 Sebastian Pop <sebastian.pop@amd.com> 28659 28660 PR tree-optimization/34017 28661 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code 28662 also for PHI_NODE expressions. 28663 286642008-01-09 Jan Hubicka <jh@suse.cz> 28665 28666 PR tree-optimization/34708 28667 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR 28668 based on number of case labels. 28669 (init_inline_once): Remove switch_cost. 28670 * tree-inline.h (eni_weights_d): Remove switch_cost. 28671 286722008-01-09 Richard Guenther <rguenther@suse.de> 28673 Andrew Pinski <andrew_pinski@playstation.sony.com> 28674 28675 PR middle-end/30132 28676 * gimplify.c (gimplify_cond_expr): Do not create an addressable 28677 temporary if an rvalue is ok or an lvalue is not required. 28678 286792008-01-09 Richard Guenther <rguenther@suse.de> 28680 28681 PR middle-end/34458 28682 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst, 28683 adjust return type. 28684 286852008-01-09 Richard Guenther <rguenther@suse.de> 28686 28687 PR middle-end/34679 28688 * tree.c (host_integerp): Check for sizetype only if the 28689 type is an integer type. 28690 286912008-01-09 Steven Bosscher <stevenb.gcc@gmail.com> 28692 28693 PR debug/26364 28694 * opts.c (decode_options): Disable inlining of functions called 28695 once if not in unit-at-a-time mode. 28696 286972008-01-09 Alexandre Oliva <aoliva@redhat.com> 28698 28699 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency. 28700 287012008-01-08 Richard Guenther <rguenther@suse.de> 28702 28703 PR middle-end/31863 28704 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail 28705 out early if the result will be unused. 28706 287072008-01-08 Uros Bizjak <ubizjak@gmail.com> 28708 28709 PR target/34709 28710 Revert: 28711 28712 2008-01-05 Uros Bizjak <ubizjak@gmail.com> 28713 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check 28714 for TARGET_RECIP. 28715 287162008-01-08 Jan Sjodin <jan.sjodin@amd.com> 28717 28718 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs 28719 for vectorization tuned. 28720 287212008-01-08 Richard Guenther <rguenther@suse.de> 28722 28723 PR tree-optimization/34683 28724 * tree-ssa-operands.c (operand_build_cmp): Export. 28725 * tree-ssa-operands.h (operand_build_cmp): Declare. 28726 * tree-vn.c (vuses_compare): Remove. 28727 (sort_vuses): Use operand_build_cmp. 28728 (sort_vuses_heap): Likewise. 28729 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc 28730 to re-use old VEC if available. Do not sort already sorted VUSEs. 28731 (vdefs_to_vec): Do not sort already sorted VDEFs. 28732 287332008-01-08 Jakub Jelinek <jakub@redhat.com> 28734 28735 PR middle-end/34694 28736 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION. 28737 287382008-01-08 Uros Bizjak <ubizjak@gmail.com> 28739 28740 PR target/34702 28741 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document 28742 limitations of reciprocal sequences on x86 targets. 28743 287442008-01-08 Richard Guenther <rguenther@suse.de> 28745 28746 PR tree-optimization/34683 28747 * tree-flow-inline.h (var_ann): Remove overzealous asserts. 28748 287492008-01-07 Jakub Jelinek <jakub@redhat.com> 28750 28751 PR target/34622 28752 * config/darwin.c (darwin_mergeable_string_section): Don't use 28753 .cstring if int_size_in_bytes != TREE_STRING_LENGTH. 28754 287552008-01-07 Uros Bizjak <ubizjak@gmail.com> 28756 28757 PR target/34682 28758 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and 28759 negxf2. Macroize expander using X87MODEF mode iterator. Change 28760 predicates of op0 and op1 to register_operand. 28761 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize 28762 expander using X87MODEF mode iterator. Change predicates of 28763 op0 and op1 to register_operand. 28764 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from 28765 corresponding patterns and macroize using MODEF macro. Change 28766 predicates of op0 and op1 to register_operand and remove 28767 "m" constraint. Disparage "r" alternative with "!". 28768 ("*absneg<mode>2_i387"): Rename from corresponding patterns and 28769 macroize using X87MODEF macro. Change predicates of op0 and op1 28770 to register_operand and remove "m" constraint. Disparage "r" 28771 alternative with "!". 28772 (absneg splitter with memory operands): Remove. 28773 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding 28774 patterns and macroize using X87MODEF mode iterator. 28775 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2): 28776 Change predicate of op1 to register_operand. 28777 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support 28778 for memory operands. 28779 287802008-01-07 Nathan Froyd <froydnj@codesourcery.com> 28781 28782 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548. 28783 287842008-01-07 Richard Guenther <rguenther@suse.de> 28785 28786 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus 28787 fields. 28788 287892008-01-07 Richard Guenther <rguenther@suse.de> 28790 28791 PR tree-optimization/34683 28792 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of 28793 VOPs of the needed size to save memory. Use VEC_quick_push 28794 to save compile-time. 28795 (vdefs_to_vec): Likewise. 28796 287972008-01-07 Sa Liu <saliu@de.ibm.com> 28798 28799 * config/spu/spu.md (divdf3): Genetate inline code for double 28800 division. The implementation doesn't handle INF or NAN, therefore it 28801 only applies when -ffinite-math-only is given. 28802 288032008-01-06 Paolo Carlini <pcarlini@suse.de> 28804 28805 PR libstdc++/34680 28806 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate. 28807 * doc/cpp.texi ([Common Predefined Macros]): Document. 28808 288092008-01-06 Uros Bizjak <ubizjak@gmail.com> 28810 28811 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in 28812 order to use commutative addition instead of subtraction. 28813 288142008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com> 28815 Mircea Namolaru <namolaru@il.ibm.com> 28816 Vladimir Yanovsky <yanov@il.ibm.com> 28817 Revital Eres <eres@il.ibm.com> 28818 28819 PR tree-optimization/34263 28820 * tree-outof-ssa.c (process_single_block_loop_latch, 28821 contains_tree_r): New functions. 28822 (analyze_edges_for_bb): Call process_single_block_loop_latch 28823 function to empty single-basic-block latch block if possible. 28824 288252008-01-05 Uros Bizjak <ubizjak@gmail.com> 28826 28827 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check 28828 for TARGET_RECIP. 28829 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion. 28830 288312008-01-05 Richard Sandiford <rsandifo@nildram.co.uk> 28832 28833 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR. 28834 288352008-01-05 Richard Sandiford <rsandifo@nildram.co.uk> 28836 28837 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check. 28838 288392008-01-05 Jakub Jelinek <jakub@redhat.com> 28840 28841 PR tree-optimization/34618 28842 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P 28843 flag from T. 28844 288452008-01-05 Uros Bizjak <ubizjak@gmail.com> 28846 28847 PR target/34673 28848 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands 28849 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check. 28850 Update copyright year. 28851 28852 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH. 28853 Update copyright year. 28854 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand 28855 using NR fixup. 28856 288572008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org> 28858 28859 * tree-vrp.c (find_conditional_asserts): Remove redundant check that 28860 edge does not point to current bb before changing need_assert. 28861 288622008-01-04 Richard Guenther <rguenther@suse.de> 28863 28864 PR middle-end/34029 28865 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs 28866 for verifying purposes if they are is_gimple_min_invariant. 28867 288682008-01-04 Aldy Hernandez <aldyh@redhat.com> 28869 28870 PR tree-optimization/34448 28871 PR tree-optimization/34465 28872 * gimplify.c (gimplify_init_constructor): Add new parameter 28873 notify_temp_creation. Use it. 28874 (gimplify_modify_expr_rhs): Take volatiles into account when 28875 optimizing constructors. 28876 Do not optimize constructors if gimplify_init_constructor will dump to 28877 memory. 28878 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles. 28879 * gcc.c-torture/compile/pr34448.c: New. 28880 288812008-01-04 Jakub Jelinek <jakub@redhat.com> 28882 28883 PR gcov-profile/34609 28884 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on 28885 return_slot if result is TREE_ADDRESSABLE. 28886 288872008-01-04 Richard Sandiford <rsandifo@nildram.co.uk> 28888 28889 * config/mips/mips.md (sqrt_condition): Tweak comment. 28890 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode. 28891 288922008-01-03 Tom Tromey <tromey@redhat.com> 28893 28894 PR c/34457 28895 * c-common.c (c_type_hash): Handle VLAs. 28896 288972008-01-03 Jan Hubicka <jh@suse.cz> 28898 28899 PR tree-optimization/31081 28900 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to 28901 0 when inlining and not inlining to first basic block. 28902 (remap_decl): When var is initialized to 0, don't set default_def. 28903 (expand_call_inline): Set entry_bb. 28904 * tree-inline.h (copy_body_data): Add entry_bb. 28905 289062008-01-03 Jakub Jelinek <jakub@redhat.com> 28907 28908 PR c++/34619 28909 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL 28910 before returning. 28911 28912 PR tree-optimization/29484 28913 * tree-inline.c (inline_forbidden_p_2): New function. 28914 (inline_forbidden_p): Disallow inlining if some static var 28915 has an address of a local LABEL_DECL in its initializer. 28916 * doc/extend.texi (Labels as Values): Document &&foo behaviour 28917 vs. inlining. 28918 289192008-01-03 Sebastian Pop <sebastian.pop@amd.com> 28920 28921 PR tree-optimization/34635 28922 * tree-data-ref.c (add_other_self_distances): Make sure that the 28923 evolution step is constant. 28924 289252008-01-03 Jakub Jelinek <jakub@redhat.com> 28926 28927 PR middle-end/34608 28928 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn. 28929 289302008-01-02 Richard Sandiford <rsandifo@nildram.co.uk> 28931 28932 * tree-sra.c (scalarize_init): Insert the generate_element_init 28933 statements after the generate_element_zero statements. 28934 289352008-01-02 Richard Guenther <rguenther@suse.de> 28936 28937 PR middle-end/34093 28938 PR middle-end/31976 28939 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer 28940 for very large number of operands instead of ICEing. 28941 289422008-01-02 Arthur Norman <acn1@cam.ac.uk> 28943 28944 PR target/34013 28945 * config/i386/i386.c (ix86_expand_prologue): Save red-zone 28946 while stack probing. 28947 289482008-01-01 Douglas Gregor <doug.gregor@gmail.com> 28949 28950 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when 28951 in C++0x mode. 28952 289532008-01-01 Volker Reichelt <v.reichelt@netcologne.de> 28954 28955 PR libmudflap/26442 28956 * tree-mudflap.c (mx_register_decls): Guard warning by 28957 !DECL_ARTIFICIAL check. 28958 289592008-01-01 Jakub Jelinek <jakub@redhat.com> 28960 28961 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si, 28962 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi, 28963 sse5_perm<mode>): Fix constraints. 28964 28965 28966Copyright (C) 2008 Free Software Foundation, Inc. 28967 28968Copying and distribution of this file, with or without modification, 28969are permitted in any medium without royalty provided the copyright 28970notice and this notice are preserved. 28971