12009-12-31 Jakub Jelinek <jakub@redhat.com> 2 3 * tree-dump.c (dump_options): Don't set TDF_NOUID for all. 4 52009-12-31 Dave Korn <dave.korn.cygwin@gmail.com> 6 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 7 8 PR target/41605 9 * config/darwin.h (LINK_COMMAND_SPEC): Resolve fopenmp specifically 10 for target. 11 (LINK_SPEC): Replace dynamic libraries by static equivalents where 12 necessary. 13 * config/darwin9.h (LINK_COMMAND_SPEC): Resolve fopenmp specifically 14 for target. 15 162009-12-30 Dave Korn <dave.korn.cygwin@gmail.com> 17 18 PR lto/42531 19 * lto-streamer-out.c (produce_asm): Skip any leading asterisk when 20 using DECL_ASSEMBLER_NAME to generate a section name. 21 (copy_function): Likewise. 22 232009-12-30 Andreas Schwab <schwab@linux-m68k.org> 24 25 PR target/42516 26 * config/m68k/m68k.md (rotlsi_16): New insn. 27 282009-12-30 Joseph Myers <joseph@codesourcery.com> 29 30 PR c/42439 31 * c-decl.c (check_bitfield_type_and_width): Only pedwarn if 32 pedantic for bit-field width not an integer constant expression 33 but folding to one. 34 352009-12-30 Ira Rosen <irar@il.ibm.com> 36 37 PR tree-optimization/41956 38 * tree-vect-slp.c (vect_supported_load_permutation_p): Add check that 39 the load indices differ. 40 412009-12-30 Uros Bizjak <ubizjak@gmail.com> 42 43 PR target/42549 44 * config/i386/mmx.md (*mmx_subv2sf3): Fix insn operand number for 45 alternative 1. 46 472009-12-30 Robert Millan <rmh.gcc@aybabtu.com> 48 49 PR other/42537 50 * errors.c: Fix typo in comment. 51 * graphite-sese-to-poly.c: Likewise. 52 * profile.c (is_inconsistent): Fix typo in string. 53 542009-12-29 Ian Lance Taylor <iant@google.com> 55 56 PR middle-end/42099 57 * expmed.c (expand_divmod): Don't shift HOST_WIDE_INT value more 58 than HOST_BITS_PER_WIDE_INT. 59 602009-12-29 H.J. Lu <hongjiu.lu@intel.com> 61 62 * config/i386/i386.c (ix86_expand_int_vcond): Reformat. 63 642009-12-29 Dave Korn <dave.korn.cygwin@gmail.com> 65 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 66 67 PR objective-c++/41595 68 * config/darwin.c (darwin_label_is_anonymous_local_objc_name): 69 New function to recognize objective c/c++ internal symbols, 70 including mangled ones. 71 * config/darwin.h (ASM_OUTPUT_LABELREF): Use 72 darwin_label_is_anonymous_local_objc_name to detect both 73 mangled and clear ObjC internal symbols. 74 752009-12-28 H.J. Lu <hongjiu.lu@intel.com> 76 77 PR middle-end/41344 78 * omp-low.c (diagnose_sb_2): Handle GIMPLE_COND. 79 802009-12-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 81 82 PR target/42457 83 * config/avr/avr.c (avr_extra_arch_macro): Remove static. 84 (avr_cpu_cpp_builtins): Remove. 85 * config/avr/avr.h (avr_extra_arch_macro): Add prototype. 86 * config/avr/avr-c.c: New File. 87 (avr_cpu_cpp_builtins) : Add. 88 * config/avr/t-avr: Add make information for avr-c. 89 * config.gcc (avr-*-*): Include avr-c.o as c and cpp object. 90 912009-12-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 92 93 PR target/35013, 27192 94 * config/avr/avr.c (print_operand_address): Print correct program 95 memory address. 96 Add warning for large device offset addresses. 97 (avr_assemble_integer): Ditto. 98 (print_operand): Add warnings for incorrect addressing. 99 (out_movqi_r_mr): Tag assembler with new address codes. 100 (out_movhi_r_mr): Ditto. 101 (out_movsi_r_mr): Ditto. 102 (out_movqi_mr_r): Ditto. 103 (out_movhi_mr_r): Ditto. 104 (out_movsi_mr_r): Ditto. 105 * config/avr/predicates.md (text_segment_operand): New predicate. 106 * config/avr/avr.md (jump): Tag assembler with new address codes. 107 (call_insn): Ditto. 108 (call_value_insn): Ditto. 109 (*tablejump_lib): Ditto. 110 (*cbi): Ditto. 111 (*sbi): Ditto. 112 (indirect_jump): New define_expand. 113 (jcindirect_jump): New pattern for constant expression jump. 114 (njcindirect_jump): Renamed old indirect_jump. 115 1162009-12-24 Steven Bosscher <steven@gcc.gnu.org> 117 118 * store-motion.c (build_store_vectors): Clear regs_set_in_block at 119 the start of a loop over basic blocks. 120 1212009-12-24 Julian Brown <julian@codesourcery.com> 122 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 123 124 PR target/40887 125 * config/arm/arm.c (output_call_mem): Remove armv5 support. 126 * config/arm/arm.md (*call_mem): Disable for armv5. Add note. 127 (*call_value_mem): Likewise. 128 1292009-12-23 Jakub Jelinek <jakub@redhat.com> 130 131 PR rtl-optimization/42475 132 * combine.c (make_compound_operation) <case SUBREG>: Use mode of 133 SUBREG_REG (x) instead of tem's mode. 134 1352009-12-23 Jakub Jelinek <jakub@redhat.com> 136 Cary Coutant <ccoutant@google.com> 137 138 PR debug/42454 139 * dwarf2out.c (add_ranges_by_labels): Conditionally Add DW_AT_ranges 140 attribute. 141 (dwarf2out_finish): Change calls to add_ranges_by_labels. 142 1432009-12-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 144 145 PR target/42093 146 * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Fix macro usage 147 to TARGET_THUMB1. 148 (CASE_VECTOR_SHORTEN_MODE): Allow signed offsets 149 only for TARGET_THUMB1. 150 1512009-12-23 Ramana Radhakrishnan <ramrad01@arm.com> 152 153 PR target/40670 154 * config/arm/arm.md: Split for Thumb1 as well. 155 1562009-12-22 Cary Coutant <ccoutant@google.com> 157 158 PR debug/42454 159 * dwarf2out.c (dwarf2out_finish): Don't output range for .text 160 section unless .text section was used. Likewise for cold. 161 1622009-12-22 Brian Hackett <bhackett1024@gmail.com> 163 164 * doc/plugins.texi: Rename pre-genericize event. 165 1662009-12-22 Paolo Carlini <paolo.carlini@oracle.com> 167 168 PR driver/42463 169 * params.def ([PARAM_PREDICTABLE_BRANCH_OUTCOME]): Fix typo in 170 help string. 171 172 * doc/invoke.texi: Fix typo. 173 1742009-12-22 Paul Brook <paul@codesourcery.com> 175 176 * doc/tm.texi (ARG_POINTER_CFA_OFFSET): Document new default. 177 * defaults.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size. 178 * config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size. 179 1802009-12-21 Brian Hackett <bhackett1024@gmail.com> 181 182 * plugin.def: Rename pre-genericize event. 183 * plugin.c (register_callback, invoke_plugin_callbacks): Same. 184 * c-decl.c (finish_function): Invoke callbacks on above event. 185 1862009-12-21 Jakub Jelinek <jakub@redhat.com> 187 188 PR rtl-optimization/42429 189 * reload.c (find_reloads_subreg_address): When adjusting mode of 190 MEM, update also MEM_SIZE if it is set. 191 1922009-12-21 H.J. Lu <hongjiu.lu@intel.com> 193 194 PR bootstrap/42345 195 * acinclude.m4 (gcc_GAS_FLAGS): New. 196 (gcc_GAS_CHECK_FEATURE): Use gcc_GAS_FLAGS. 197 * configure: Regenerated. 198 1992009-12-20 Michael Matz <matz@suse.de> 200 201 PR tree-optimization/42027 202 * cfgexpand.c (expand_gimple_cond): Use jumpy sequence for &, &&, | 203 and || if jumps are cheap. 204 2052009-12-19 Richard Guenther <rguenther@suse.de> 206 207 PR lto/42401 208 * lto-streamer-out.c (tree_is_indexable): Local statics are indexable. 209 (lto_output_tree_ref): Adjust assert. 210 2112009-12-19 Richard Guenther <rguenther@suse.de> 212 213 PR tree-optimization/42108 214 * tree-ssa-sccvn.c (last_vuse_ptr): New variable. 215 (vn_reference_lookup_2): Update last seen VUSE. 216 (vn_reference_lookup_3): Avoid updating last seen VUSE after 217 translating. 218 (visit_reference_op_load): Use last seen VUSE from the first 219 lookup when entering into the table. 220 2212009-12-19 Joern Rennecke <amylaar@spamcop.net> 222 223 * Makefile.in (PLUGIN_HEADERS): Add more headers. 224 225 * tree-pass.h (GCC_PASS_LISTS): Define. 226 (PASS_LIST_NO_all_lowering_passes): New enumeration value. 227 (PASS_LIST_NO_all_small_ipa_passes): Likewise. 228 (PASS_LIST_NO_all_regular_ipa_passes): Likewise. 229 (PASS_LIST_NO_all_lto_gen_passes): Likewise. 230 (PASS_LIST_NO_all_passes): Likewise. 231 (PASS_LIST_NUM): Likewise. 232 (gcc_pass_lists): Declare. 233 * passes.c (gcc_pass_lists): Define. 234 2352009-12-18 Richard Guenther <rguenther@suse.de> 236 237 * tree-ssa-sccvn.c (copy_nary): New function. 238 (copy_phis): Likewise. 239 (copy_references): Likewise. 240 (process_scc): Avoid last iteration by copying the 241 optimistic table to the valid table. 242 2432009-12-17 Jakub Jelinek <jakub@redhat.com> 244 245 * dwarf2out.c (loc_descriptor): For SYMBOL_REFs and LABEL_REFs 246 use DW_OP_addr+DW_OP_stack_value instead of DW_OP_implicit_value. 247 (add_const_value_attribute): For CONST_STRING, SYMBOL_REFs and 248 LABEL_REFs use DW_OP_addr+DW_OP_stack_value DW_AT_location instead of 249 DW_AT_const_value. 250 2512009-12-17 Alexandre Oliva <aoliva@redhat.com> 252 253 PR debug/41679 254 * var-tracking.c (count_uses): Count MO_VAL_USE of original 255 MO_VAL_SET value for COND_EXEC. 256 (add_stores): Handle conditional stores. 257 258 PR debug/41679 259 * var-tracking.c (use_type): Remove indirection from loc. 260 (count_uses): Dereference incoming loc early. 261 (add_uses): Dereference incoming loc early. 262 263 PR debug/41679 264 * var-tracking.c (add_stores): Avoid value mode mismatch for 265 promoted declarations. 266 2672009-12-17 Jakub Jelinek <jakub@redhat.com> 268 269 PR c++/42386 270 * ipa.c (function_and_variable_visibility): Clear same_comdat_group 271 links of DECL_EXTERNAL nodes. 272 2732009-12-17 Sandra Loosemore <sandra@codesourcery.com> 274 275 * doc/rtl.texi (Vector Operations): Clarify vec_select result mode. 276 2772009-12-17 Julian Brown <julian@codesourcery.com> 278 279 * config/arm/bpabi-v6m.S (test_div_by_zero): New macro. 280 (aeabi_ldivmod, aeabi_uldivmod): Use above macro. 281 * config/arm/bpabi.S (test_div_by_zero): New macro. 282 (aeabi_ldivmod, aeabi_uldivmod): Use above macro. 283 * config/arm/lib1funcs.asm (ARM_LDIV0): Tail-call int div-by-zero 284 handler for EABI. Add signed/unsigned argument, pass correct value 285 to that handler. 286 (THUMB_LDIV0): Same, for Thumb. 287 (DIV_FUNC_END): Add signed argument. 288 (WEAK): New macro (for EABI). 289 (__udivsi3, __umodsi3): Add unsigned argument to DIV_FUNC_END. For 290 __udivsi3, add entry point which skips division-by-zero test. 291 (__divsi3, __modsi3): Add signed argument to DIV_FUNC_END. 292 (__aeabi_uidivmod, __aeabi_idivmod): Check for division by zero. 293 Call __udivsi3 or __divsi3 via entry points which skip 294 division-by-zero tests. 295 (__div0): Rename to __aeabi_idiv0, __aeabi_ldiv0 for EABI, and 296 declare those names weak. 297 2982009-12-17 Richard Guenther <rguenther@suse.de> 299 300 PR middle-end/42397 301 * builtins.c (get_object_alignment): Properly deal with 302 a CONST_DECL base. 303 * expr.c (emit_block_move_hints): Assert the alignment makes sense. 304 3052009-12-17 Uros Bizjak <ubizjak@gmail.com> 306 307 PR target/32280 308 * config/i386/i386-modes.def (V1TI): New vector mode. 309 * config/i386/i386.h (VALID_SSE_REG_MODE): Add V1TImode. 310 (SSE_REG_MODE_P): Ditto. 311 * config/i386/sse.md (SSEMODE16): New mode iterator. 312 (AVXMODE16): Ditto. 313 (avxvecmode): Handle V1TI mode. 314 (*avx_mov<mode>_internal): Use AVXMODE16 instead of AVXMODE. 315 (mov<mode>): Use SSEMODE16 instead of SSEMODE. 316 (*mov<mode>_internal): Ditto. 317 (push<mode>1): Ditto. 318 (movmisalign<mode>): Ditto. 319 (sse2_ashlv1ti): Rename from sse2_ashlti. 320 (sse2_lshrv1ti): Rename from sse2_lshrti. 321 (*avx_ashlv1ti): Rename from *avx_ashlti and move from i386.md. 322 (*avx_lshrv1ti): Rename from *avx_lshrti and move from i386.md. 323 (vec_shl_<mode>): Convert operands to V1TImode and use V1TI shift. 324 (vec_shr_<mode>): Ditto. 325 (*sse2_mulv4si3): Update for renamed sse2_ashlv1ti3. 326 (udot_prodv4si): Ditto. 327 * config/i386/i386.c (classify_argument): Handle V1TImode. 328 (function_arg_advance_32): Ditto. 329 (function_arg_32): Ditto. 330 (ix86_expand_sse4_unpack): Convert operands to V1TImode and update 331 for renamed gen_sse2_lshrv1ti3. 332 (ix86_expand_args_builtin) <V2DI_FTYPE_V2DI_INT_CONVERT>: Set rmode 333 to V1TImode. 334 (struct builtin_description) <__builtin_ia32_pslldqi128>: Update 335 for renamed sse2_ashlv1ti3. 336 <__builtin_ia32_psrldqi128>: Update for renamed sse2_lshrv1ti3. 337 338 Revert: 339 2007-06-11 Uros Bizjak <ubizjak@gmail.com> 340 341 PR target/32280 342 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ... 343 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here. 344 3452009-12-17 Richard Earnshaw <rearnsha@arm.com> 346 347 PR target/42372 348 * arm.md (pic_add_dot_plus_eight): Change output constraint from 349 update to write. 350 3512009-12-17 Shujing Zhao <pearly.zhao@oracle.com> 352 353 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 354 Update build_indirect_ref calls. 355 3562009-12-17 Uros Bizjak <ubizjak@gmail.com> 357 358 * config/i386/sync.md (IMODE): Remove mode iterator. 359 (modesuffix): Remove mode attribute. 360 (modeconstraint): Ditto. 361 (immconstraint): Ditto. 362 (*sync_compare_and_swap<mode>): Use SWI mode iterator instead of 363 IMODE mode iterator, imodesuffix mode attribute instead of modesuffix, 364 <r> mode attribute instead of modeconstraint and <i> mode attribute 365 instead of immconstraint. 366 (sync_double_compare_and_swap<mode>): Ditto. 367 (sync_old_add<mode>): Ditto. 368 (sync_lock_test_and_set<mode>): Ditto. 369 (sync_add<mode>): Ditto. 370 (sync_sub<mode>): Ditto. 371 (sync_and<mode>): Ditto. 372 (sync_ior<mode>): Ditto. 373 (sync_xor<mode>): Ditto. 374 (sync_<code><mode>): Macroize insn pattern from 375 sync_{and,ior,xor}<mode> using any_logic code iterator. 376 3772009-12-17 Shujing Zhao <pearly.zhao@oracle.com> 378 379 PR c/40885 380 * c-common.h (ref_operator): New type. 381 (build_indirect_ref): Adjust prototype with new argument. 382 * c-typeck.c (build_indirect_ref): Accept ref_operator as argument and 383 emit the diagnostics for easy translation. 384 (build_array_ref): Update calls to build_indirect_ref. 385 * c-omp.c (c_finish_omp_atomic): Likewise. 386 * c-parser.c (c_parser_unary_expression, 387 c_parser_postfix_expression_after_primary): Likewise. 388 3892009-12-16 Richard Guenther <rguenther@suse.de> 390 391 PR lto/42392 392 * langhooks.c (lhd_begin_section): Make sure to switch back 393 to the text section, not some random one. 394 3952009-12-16 Jakub Jelinek <jakub@redhat.com> 396 397 * tree-chrec.c (chrec_convert_1): Only fold (T2)(t +- x) to 398 (T2)t +- (T2)x if only integer types are involved. 399 4002009-12-16 Ben Elliston <bje@au.ibm.com> 401 402 * tree-data-ref.h (dot_rdg): Remove prototype. 403 * tree-data-ref.c (dog_rdg_1, dot_rdg): Remove. 404 4052009-12-16 Kazu Hirata <kazu@codesourcery.com> 406 407 * doc/invoke.texi, doc/options.texi, doc/plugins.texi, 408 doc/tm.texi: Fix typos. 409 4102009-12-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 411 412 * doc/extend.texi (Function Attributes, Extended Asm): 413 Replace TABs with spaces. 414 * doc/md.texi (Standard Names): Likewise. 415 * doc/plugins.texi (Plugins): Likewise. 416 417 * doc/c-tree.texi (Expression trees): Use @itemx for all but 418 the first item for merged items. 419 * doc/extend.texi (Variable Attributes): Likewise. 420 * doc/install.texi (Configuration): Likewise. 421 * doc/invoke.texi (RS/6000 and PowerPC Options, RX Options): 422 Likewise. 423 4242009-12-15 Richard Guenther <rguenther@suse.de> 425 426 * tree.c (free_lang_data_in_binfo): Do not free BINFO_OFFSET 427 and BINFO_VPTR_FIELD. 428 (free_lang_data_in_type): Do not free TYPE_STUB_DECL if we 429 generate debug information. 430 (free_lang_data_in_decl): Do not free DECL_SIZE_UNIT, 431 DECL_SIZE, DECL_FIELD_OFFSET and DECL_FCONTEXT. 432 (free_lang_data): Do not disable debuginfo. 433 * lto-streamer-out.c (write_symbol_vec): Deal with 434 non-constant DECL_SIZE. 435 (pack_ts_base_value_fields): Write types with false 436 TREE_ASM_WRITTEN. 437 (lto_output_ts_type_tree_pointers): Stream TYPE_STUB_DECL. 438 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Stream 439 TYPE_STUB_DECL. 440 * dwarf2out.c (add_pure_or_virtual_attribute): Check for 441 DECL_CONTEXT. 442 (gen_type_die_for_member): Test for TYPE_STUB_DECL. 443 * opts.c (decode_options): Do not disable var-tracking for lto. 444 * doc/invoke.texi (-flto): Document -flto vs. -g experimental 445 status. 446 (-fwhopr): Document experimental status. 447 4482009-12-15 Aldy Hernandez <aldyh@redhat.com> 449 450 PR graphite/42185 451 * graphite-sese-to-poly.c (is_reduction_operation_p): Assert that 452 we are a GIMPLE_ASSIGN. Do not calculate rhs code twice. 453 (follow_ssa_with_commutative_ops): Return NULL on non assignment. 454 4552009-12-15 Eric Botcazou <ebotcazou@adacore.com> 456 457 * config/rs6000/rs6000.md (probe_stack): Use an enclosing SET. 458 4592009-12-15 Richard Guenther <rguenther@suse.de> 460 461 * gimple.h (compare_field_offset): Declare. 462 * gimple.c (compare_field_offset): Export. 463 * lto-streamer-in.c (input_gimple_stmt): Use compare_field_offset. 464 4652009-12-15 Richard Guenther <rguenther@suse.de> 466 467 * lto-cgraph.c (lto_output_node): Also stream the alias 468 for regular aliases. 469 (input_node): Likewise. 470 4712009-12-15 Paolo Bonzini <bonzini@gnu.org> 472 Shujing Zhao <pearly.zhao@oracle.com> 473 474 * intl.c (get_spaces): New. 475 * intl.h (get_spaces): New. 476 4772009-12-14 Mark Mitchell <mark@codesourcery.com> 478 479 * configure.ac (--with-specs): New option. 480 * configure: Regenerated. 481 * gcc.c (driver_self_specs): Include CONFIGURE_SPECS. 482 * Makefile.in (DRIVER_DEFINES): Add -DCONFIGURE_SPECS. 483 4842009-12-14 Jakub Jelinek <jakub@redhat.com> 485 486 PR bootstrap/42369 487 * config/i386/i386.c (ix86_expand_special_args_builtin): Avoid 488 using switch with CODE_FOR_lwp_lwp* cases. 489 490 * config/i386/i386-builtin-types.def (PVOID_FTYPE_VOID): Use 491 DEF_FUNCTION_TYPE (PVOID) instead of DEF_FUNCTION_TYPE (PVOID, VOID). 492 4932009-12-14 Eric Botcazou <ebotcazou@adacore.com> 494 495 * cfgexpand.c (expand_debug_expr) <INDIRECT_REF>: Remove overzealous 496 assertion and useless code. 497 <TARGET_MEM_REF>: Likewise. 498 4992009-12-14 Alexandre Oliva <aoliva@redhat.com> 500 501 PR debug/41473 502 * dwarf2out.c (AT_loc_list_ptr): New. 503 (resolve_addr): Remove unresolved attributes and loc_list entries. 504 505 PR debug/41473 506 * dwarf2out.c (add_var_loc_to_decl): Don't drop initial empty 507 locations. 508 (new_loc_list): Drop gensym arg. Move generation of ll_symbol... 509 (gen_llsym): ... here. New function. 510 (add_loc_descr_to_loc_list): Removed. 511 (loc_descriptor): Infer mode from CONST_DOUBLEs and CONST_VECTORs. 512 (single_element_loc_list): Removed. 513 (dw_loc_list): Don't create entries without a location. Don't 514 special-case the first node of the list, only single nodes. 515 (single_element_loc_list_p): Simplify. 516 (loc_list_from_tree): Don't use DECL_RTL if loc_list is nonempty. 517 (add_location_or_const_value_attribute): Test var loc for NULL. 518 (convert_cfa_to_fb_loc_list): Adjust calls to new new_loc_list, 519 call gen_llsym if needed. 520 5212009-12-14 Jakub Jelinek <jakub@redhat.com> 522 523 * cgraph.h (cgraph_set_nothrow_flag, cgraph_set_readonly_flag, 524 cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New 525 prototypes. 526 * cgraph.c (cgraph_set_nothrow_flag, cgraph_set_readonly_flag, 527 cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New 528 functions. 529 * except.h (set_nothrow_function_flags): Remove prototype. 530 * except.c (set_nothrow_function_flags): Use cgraph_set_nothrow_flag. 531 Make static. 532 * ipa-pure-const.c (propagate): Use cgraph_set_nothrow_flag, 533 cgraph_set_readonly_flag, cgraph_set_pure_flag 534 and cgraph_set_looping_const_or_pure_flag. 535 (local_pure_const): Likewise. 536 5372009-12-14 Jakub Jelinek <jakub@redhat.com> 538 Sebastian Pop <sebastian.pop@amd.com> 539 540 * config/i386/i386-builtin-types.def (PVOID): Declared. 541 (VOID_FTYPE_PVOID): Declared. 542 (PVOID_FTYPE_VOID): Declared. 543 (UCHAR_FTYPE_USHORT_UINT_USHORT): Removed. 544 (VOID_FTYPE_USHORT_UINT_USHORT): Removed. 545 * config/i386/i386.c (IX86_BUILTIN_LLWPCB16, IX86_BUILTIN_LLWPCB32, 546 IX86_BUILTIN_LLWPCB64, IX86_BUILTIN_SLWPCB16, IX86_BUILTIN_SLWPCB32, 547 IX86_BUILTIN_SLWPCB64, IX86_BUILTIN_LWPVAL16, IX86_BUILTIN_LWPINS16): 548 Removed. 549 (IX86_BUILTIN_LLWPCB, IX86_BUILTIN_SLWPCB): New. 550 (bdesc_special_args): Adjust declaration of __builtin_ia32_llwpcb, 551 __builtin_ia32_slwpcb, __builtin_ia32_lwpval32, 552 __builtin_ia32_lwpval64, __builtin_ia32_lwpins32, and 553 __builtin_ia32_lwpins64. 554 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PVOID. 555 Do not handle VOID_FTYPE_USHORT_UINT_USHORT and 556 UCHAR_FTYPE_USHORT_UINT_USHORT. Warn when the third operand is 557 not an immediate. Also handle builtin functions with 3 arguments. 558 (ix86_expand_builtin): Handle IX86_BUILTIN_LLWPCB and 559 IX86_BUILTIN_SLWPCB. 560 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC, UNSPEC_SLWP_INTRINSIC): 561 Renamed UNSPECV_LLWP_INTRINSIC and UNSPECV_SLWP_INTRINSIC. 562 (memory attribute): Handle lwp. 563 (lwp*): Rewrite all the insn patterns for LWP. 564 * config/i386/lwpintrin.h (__llwpcb16, __llwpcb32, __llwpcb64, 565 __slwpcb16, __slwpcb32, __slwpcb64, __lwpval16, __lwpins16): Removed. 566 (__llwpcb, __slwpcb): New. 567 5682009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com> 569 570 * dominance.c (set_immediate_dominator): Don't mark as inline. 571 5722009-12-14 Eric Botcazou <ebotcazou@adacore.com> 573 574 * doc/tm.texi (STACK_CHECK_PROTECT): Document alternate default. 575 * doc/md.texi (check_stack): Clarify. 576 (probe_stack): Likewise. 577 * config/rs6000/rs6000.md (UNSPEC_PROBE_STACK): New constant. 578 (probe_stack): New insn. 579 5802009-12-14 Ben Elliston <bje@au.ibm.com> 581 582 * lto-streamer-in.c (lto_get_builtin_tree): fclass can only be a 583 BUILT_IN_NORMAL or BUILT_IN_MD. 584 5852009-12-13 Eric Botcazou <ebotcazou@adacore.com> 586 587 * doc/tm.texi (STACK_CHECK_PROBE_LOAD): Delete. 588 * expr.h (STACK_CHECK_PROBE_LOAD): Likewise. 589 * explow.c (emit_stack_probe): Do not test STACK_CHECK_PROBE_LOAD. 590 * system.h (STACK_CHECK_PROBE_LOAD): Poison. 591 5922009-12-13 Michael Matz <matz@suse.de> 593 594 PR tree-optimization/42027 595 * dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to 596 TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of 597 falling through. 598 5992009-12-13 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 600 601 PR target/23726 602 * config/avr/predicates.md (pseudo_register_operand): New predicate 603 for pseudos. 604 * config/avr/avr.md (divmodqi4): Replace with define_insn_and_split 605 to allow div/mod optimization. 606 (udivmodqi4): Ditto. 607 (divmodhi4): Ditto. 608 (udivmodhi4): Ditto. 609 (divmodsi4): Ditto. 610 (udivmodsi4): Ditto. 611 6122009-12-13 Richard Guenther <rguenther@suse.de> 613 614 PR tree-optimization/42357 615 * tree-sra.c (sra_modify_assign): Do not tear apart struct copies. 616 6172009-12-12 Richard Guenther <rguenther@suse.de> 618 619 * tree.c (need_assembler_name_p): Abstract decls do not need 620 an assembler name. 621 * dwarf2out.c (dwarf2out_abstract_function): Preserve 622 DECL_ABSTRACT properly. 623 6242009-12-11 Richard Guenther <rguenther@suse.de> 625 626 * lto-streamer-in.c (lto_input_tree_ref): Do not register 627 DEBUG_EXPR_DECLs with the varpool. 628 6292009-12-11 Eric Botcazou <ebotcazou@adacore.com> 630 631 * config/sparc/linux-unwind.h (MD_FROB_UPDATE_CONTEXT, 64-bit): Define. 632 (sparc64_frob_update_context): New function. 633 6342009-12-11 Richard Guenther <rguenther@suse.de> 635 636 PR lto/41658 637 PR lto/41657 638 * lto-streamer-out.c (write_global_stream): Do not make decls 639 weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions. 640 Make sure to mark all decls that we have written. 641 6422009-12-11 Sebastian Andrzej Siewior <bigeasy@linutronix.de> 643 644 PR target/36047 645 646 * config/m68k/linux.h: Remove LABELNO from the mcount statement. It is 647 not used by glibc/uclibc and does not work with large binaries. 648 6492009-12-11 Richard Guenther <rguenther@suse.de> 650 651 PR lto/41662 652 * lto-streamer-in.c (lto_init_eh): Move eh_initialized_p 653 handling here. 654 (input_eh_regions): Adjust. 655 (lto_input_ts_function_decl_tree_pointers): Initialize EH 656 if a non-NULL DECL_FUNCTION_PERSONALITY was read in. 657 6582009-12-11 Duncan Sands <baldrick@free.fr> 659 660 * passes.c (make_pass_instance): Allocate and copy the right amount of 661 memory for ipa passes, which are not the same size as other passes. 662 6632009-12-11 Joern Rennecke <amylaar@spamcop.net> 664 665 * plugin.c (get_named_event_id): Fix hash table rebuild to include 666 dynamically allocated events. 667 6682009-12-11 Richard Guenther <rguenther@suse.de> 669 670 PR lto/42320 671 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Properly 672 detect non-prevailing decls. 673 6742009-12-10 Jakub Jelinek <jakub@redhat.com> 675 676 PR c++/42317 677 * cgraph.h (struct cgraph_node): Add same_comdat_group field. 678 * cgraph.c (cgraph_remove_node): Unchain node from same_comdat_group 679 circular list. 680 (cgraph_node_can_be_local_p): Return false for DECL_COMDAT with 681 node->same_comdat_group. 682 * ipa.c (cgraph_remove_unreachable_nodes): For any reachable node 683 mark all its same_comdat_group nodes as also reachable. 684 (cgraph_externally_visible_p): Return true even if any of 685 same_comdat_group nodes has address taken. 686 * lto-cgraph.c (lto_output_node): Stream out same_comdat_group. 687 (output_cgraph): Ensure other same_comdat_group nodes are also 688 included. 689 (input_node): Stream in same_comdat_group. 690 (input_cgraph_1): Fix up same_comdat_group fields from references 691 to pointers. 692 * cgraphunit.c (cgraph_analyze_functions): Mark all other 693 same_comdat_group nodes as reachable. 694 (cgraph_mark_functions_to_output): For each node->process process 695 also other same_comdat_group nodes. 696 * ipa-inline.c (cgraph_clone_inlined_nodes): Don't reuse nodes 697 with same_comdat_group non-NULL. 698 (cgraph_mark_inline_edge): Likewise. 699 7002009-12-10 Jan Hubicka <jh@suse.cz> 701 702 PR middle-end/42228 703 PR middle-end/42110 704 * cgraph.c (cgraph_create_edge_including_clones): Add old_stmt 705 parameter; update edge if it already exists. 706 (cgraph_remove_node): Handle correctly cases where we are removing 707 node having clones. 708 * cgraph.h (cgraph_create_edge_including_clones): Declare. 709 (verify_cgraph_node): Add missing error_found = true code. 710 (cgraph_materialize_all_clones): Remove call edges of dead nodes. 711 * ipa.c (cgraph_remove_unreachable_nodes): Correctly look for master 712 clone; fix double linked list removal. 713 * tree-inline.c (copy_bb): Update cgraph_create_edge_including_clones 714 call; fix frequency of newly created edge. 715 7162009-12-10 Bernd Schmidt <bernd.schmidt@analog.com> 717 718 PR rtl-opt/42216 719 * regrename.c: Error out if MAX_RECOG_OPERANDS is larger than 720 HOST_BITS_PER_WIDE_INT. 721 (verify_reg_in_set): New function, broken out of verify_reg_tracked. 722 (verify_reg_tracked): Use it. 723 (scan_rtx_reg): When seeing a use involving a superset of the 724 registers in an existing chain, enlarge that chain. Otherwise, 725 allow subsets and set fail_current_block for all other kinds of 726 overlap. 727 (hide_operands): New argument UNTRACKED_OPERANDS; callers changed. 728 Do not modify operands when the bit with the corresponding number 729 is set in that bitmap. 730 (build_def_use): When we see matching operands with different 731 modes, don't set fail_current_block, but keep track of such 732 operands in a bitmap if their registers aren't already tracked 733 in an open chain. Pass this bitmap to all hide_operands calls. 734 7352009-12-10 Richard Guenther <rguenther@suse.de> 736 737 PR tree-optimization/42337 738 * tree-ssa-pre.c (seen_during_translate): Remove. 739 (phi_translate_1): Collapse into ... 740 (phi_translate): ... this. Remove seen parameter and 741 adjust recursive calls. 742 7432009-12-10 Richard Guenther <rguenther@suse.de> 744 Allan Sandfeld Jensen <linux@carewolf.com> 745 746 * tree-vectorizer.c (vectorize_loops): Properly guard 747 vectorizer verboseness. 748 7492009-12-10 Ben Elliston <bje@au.ibm.com> 750 751 * fwprop.c (free_load_extend): Initialise `use'. 752 7532009-12-09 David Edelsohn <edelsohn@gnu.org> 754 755 * builtins.c (do_mpc_ckconv): Pass the component type to 756 real_from_mpfr(). 757 7582009-12-09 Xinliang David Li <davidxl@google.com> 759 760 PR tree-optimization/42337 761 * tree-ssa-pre.c (phi_translate_1): Push and Pop SEEN set. 762 7632009-12-09 Nathan Froyd <froydnj@codesourcery.com> 764 765 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3, 766 mulv2sf3, divv2sf3): New expanders. 767 * config/rs6000/spe.md (spe_evabs, spe_evand, spe_evaddw, spe_evsubfw, 768 spe_evdivws): Rename to use standard GCC names. 769 * config/rs6000/paired.md (negv2sf, absv2sf2, addv2sf3, subv2sf3, 770 mulv2sf3, divv2sf3): Rename to avoid conflict with the new expanders. 771 * config/rs6000/rs6000.c (bdesc_2arg, bdesc_1arg): Use new CODE_FOR_ 772 names for renamed patterns. 773 7742009-12-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 775 776 * config/s390/s390.md ("copysign<mode>3"): Pattern removed. 777 7782009-12-09 Jakub Jelinek <jakub@redhat.com> 779 780 * configure.ac: Compute ld_ver, ld_vers, ld_date, ld_vers_major, 781 ld_vers_minor and ld_vers_path always, not just when gcc_cv_ld_hidden 782 isn't cached. 783 * configure: Regenerated. 784 7852009-12-08 Richard Henderson <rth@redhat.com> 786 787 * combine.c (setup_incoming_promotions): Fix sign-extend of 788 zero-extend case; tidy conditions. 789 7902009-12-08 Michael Matz <matz@suse.de> 791 792 PR middle-end/38474 793 * function.c (free_temp_slots): Only walk the temp slot 794 addresses and combine slots if we actually changes something. 795 (pop_temp_slots): Ditto. 796 7972009-12-08 Olga Golovanevsky <olga@il.ibm.com> 798 799 PR middle-end/41843 800 * ipa-struct-reorg.c (compare_fields): New function. 801 (find_field_in_struct_1): Use compare_fields function. 802 (is_equal_types): Likewise. 803 8042009-12-07 DJ Delorie <dj@redhat.com> 805 806 PR c/42312 807 * config/mep/mep.c (mep_expand_prologue): Set 808 really_need_stack_frame after frame_size is set. 809 8102009-12-07 Richard Henderson <rth@redhat.com> 811 812 PR rtl-opt/42269 813 * combine.c (setup_incoming_promotions): Improve the conditions 814 under which we respect the promotions applied. 815 8162009-12-07 Eric Botcazou <ebotcazou@adacore.com> 817 818 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch. 819 * config/sparc/linux64.h (ASM_SPEC): Likewise. 820 8212009-12-07 Richard Henderson <rth@redhat.com> 822 823 PR debug/42299 824 PR debug/42166 825 * tree-ssa.c (insert_debug_temp_for_var_def): Skip propagation 826 for ssa names already registered for update. 827 8282009-12-07 Jakub Jelinek <jakub@redhat.com> 829 830 PR debug/42244 831 * ddg.c (add_inter_loop_mem_dep): Use ANTI_DEP if from or to 832 is a DEBUG_INSN. 833 8342009-12-07 Sebastian Pop <sebastian.pop@amd.com> 835 836 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mlwp to the 837 options when bit_LWP is set. 838 8392009-12-07 Sebastian Pop <sebastian.pop@amd.com> 840 841 * config/i386/cpuid.h (bit_ABM): New. 842 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the 843 options when bit_ABM is set. 844 8452009-12-07 Jakub Jelinek <jakub@redhat.com> 846 847 * config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from 848 this array ... 849 (bdesc_args): ... here. 850 * config.gcc (i[34567]86-*-*): Include abmintrin.h. 851 (x86_64-*-*): Likewise. 852 8532009-12-07 Sebastian Pop <sebastian.pop@amd.com> 854 855 * config.gcc (i[34567]86-*-*, x86_64-*-*): Add popcntintrin.h. 856 * config/i386/abmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved... 857 * config/i386/i386-c.c (__POPCNT__): Defined. 858 * config/i386/popcntintrin.h: ...here. New file. 859 * config/i386/smmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved... 860 Include popcntintrin.h. 861 * config/i386/x86intrin.h: Include popcntintrin.h when __POPCNT__ 862 is defined. 863 8642009-12-07 Sebastian Pop <sebastian.pop@amd.com> 865 866 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): 867 Removed. 868 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed. 869 * config/i386/sse.md: Remove all XOP splitters. 870 Allow the second and fourth operands of XOP multiply-add insns 871 to be nonimmediate. 872 8732009-12-07 Sebastian Pop <sebastian.pop@amd.com> 874 875 * config/i386/sse.md: Remove all FMA4 splitters. 876 Allow the second operand of FMA4 insns to be a nonimmediate. 877 Fix comments punctuation. 878 8792009-12-07 Julian Brown <julian@codesourcery.com> 880 881 * config/arm/constraints.md (Ps, Pt): New constraint letters. 882 * config/arm/thumb2.md (*thumb2_addsi_short): Tighten constraints. 883 8842009-12-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 885 886 PR other/40302 887 * configure.ac (HAVE_mpc): Don't define. 888 * config.in, configure: Regenerate. 889 890 PR other/40302 891 * builtins.c: Remove HAVE_mpc* checks throughout. 892 * fold-const.c: Likewise. 893 * real.h: Likewise. 894 * toplev.c: Likewise. 895 8962009-12-07 Edmar Wienskoski <edmar@freescale.com> 897 898 * config.gcc (cpu_is_64bit): Add new core e500mc64. 899 (powerpc*-*-*): Add new core e500mc64. 900 * config/rs6000/e500mc64.md: New file. 901 * config/rs6000/rs6000.c (processor_costs): Add new costs for 902 e500mc64. 903 (rs6000_override_options): Add e500mc64 case to 904 processor_target_table. Altivec and Spe options not allowed with 905 e500mc64. Disable string instructions for e500mc64. Enable branch 906 targets alignment for both e500mc and e500mc64. Initialize 907 rs6000_cost for e500mc64. 908 (rs6000_emit_sISEL): New function. 909 (rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets. 910 (rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern 911 generation. 912 (rs6000_issue_rate): Set issue rate for e500mc64. 913 (rs6000_rtx_costs): Set more accurate cost for mfcr instruction 914 on architectures with isel. 915 * config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare. 916 * config/rs6000/rs6000.h (processor_type): Add 917 PROCESSOR_PPCE500MC64. 918 (ASM_CPU_SPEC): Add e500mc64. 919 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64. 920 Include e500mc64.md. 921 (abssi2_isel): Expand pattern to handle DImode. 922 (nabs<mode>2_isel): New pattern. 923 (absdi2): Change pattern to handle 64 bit isel targets. 924 (absdi2_internal): Exclude ISEL targets. 925 (nabsdi2): Exclude ISEL targets. 926 * doc/invoke.texi: Add e500mc64 to list of cpus. 927 9282009-12-07 Uros Bizjak <ubizjak@gmail.com> 929 930 * config/i386/i386.md (any_or): New code iterator. 931 (any_logic): Rename from plogic code iterator. 932 (logicprefix): Rename from plogicprefix code attribute. 933 (<code><mode>3): Macroize expander from {ior,xor}<mode>3 using 934 any_or code iterator. 935 (*<code><mode>_1): Macroize insn from *{ior,xor}<mode>_1 using 936 any_or code iterator. 937 (*<code><mode>_2): Ditto from *{ior,xor}<mode>_2. 938 (*<code><mode>_3): Ditto from *{ior,xor}<mode>_3. 939 (ior and xor splitters): Ditto. 940 * config/i386/mmx.md: Updated for rename. 941 * config/i386/sse.md: Ditto. 942 9432009-12-07 Uros Bizjak <ubizjak@gmail.com> 944 945 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2): 946 Remove quotes around condition logic code. 947 9482009-12-06 Richard Henderson <rth@redhat.com> 949 950 PR debug/42234 951 * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi 952 argument earlier. 953 9542009-12-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 955 956 * doc/install.texi: Document MPC is required. 957 9582009-12-06 Uros Bizjak <ubizjak@gmail.com> 959 960 * config/i386/i386.md (g): Add HImode and QImode. 961 (general_szext_operand): New mode attribute. 962 (*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using 963 SWI124 mode iterator. 964 (and<mode>3): Macroize expander from and{qi,hi,si,di}3 using 965 SWIM mode iterator. 966 (*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using 967 SWI124 mode iterator. 968 (ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using 969 SWIM mode iterator. 970 (*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using 971 SWI248 mode iterator. 972 (*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using 973 SWI mode iterator. 974 (*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using 975 SWI mode iterator. 976 (xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using 977 SWIM mode iterator. 978 (*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using 979 SWI248 mode iterator. 980 (*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using 981 SWI mode iterator. 982 (*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using 983 SWI mode iterator. 984 9852009-12-05 Sebastian Pop <sebastian.pop@amd.com> 986 987 * config/i386/i386.c (TARGET_DEFAULT_TARGET_FLAGS): Add 988 MASK_FUSED_MADD. 989 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove 990 "'-mfused-madd' was removed". 991 * config/i386/i386.opt (mfused-madd): New. 992 * config/i386/sse.md: Add TARGET_FUSED_MADD to FMA4 insns. 993 * doc/invoke.texi (-mfused-madd, -mno-fused-madd): Document. 994 9952009-12-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 996 997 * pa64-hpux.h (LIB_SPEC): Handle -rdynamic. 998 * pa-hpux10.h (LIB_SPEC): Likewise. 999 * pa-hpux11.h (LIB_SPEC): Likewise. 1000 1001 PR ada/41912 1002 * pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame 1003 for signal frames. 1004 * pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise. 1005 10062009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1007 1008 * configure: Regenerate. 1009 10102009-12-05 Richard Earnshaw <rearnsha@arm.com> 1011 1012 * arm/thumb2.md (thumb2_mulsi_short_compare0): Use a low-register 1013 for the scratch. 1014 10152009-12-04 David Daney <ddaney@caviumnetworks.com> 1016 1017 PR rtl-optimization/42164 1018 * combine.c (combine_simplify_rtx): Handle truncation of integer 1019 constants. 1020 10212009-12-04 Richard Guenther <rguenther@suse.de> 1022 1023 * lto-streamer-out.c (pack_ts_decl_common_value_fields): 1024 Revert previous change. 1025 (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR. 1026 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): 1027 Likewise. 1028 10292009-12-04 Richard Guenther <rguenther@suse.de> 1030 1031 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle 1032 BUILT_IN_MALLOC. 1033 (call_may_clobber_ref_p_1): Likewise. 1034 10352009-12-04 Matthias Klose <doko@ubuntu.com> 1036 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1037 1038 PR target/40134 1039 * config.gcc (hppa*-*-linux*): Use config/t-slibgcc-libgcc. 1040 * config/pa/pa-linux.h (LIB_SPEC): Remove. 1041 10422009-12-03 Sebastian Pop <sebastian.pop@amd.com> 1043 Richard Henderson <rth@redhat.com> 1044 1045 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Remove. 1046 * config/i386/i386.c (ix86_fma4_valid_op_p): Remove. 1047 * config/i386/i386.md: Do not use ix86_fma4_valid_op_p. 1048 * config/i386/sse.md (fma4_*): Remove alternative with operand 1 1049 matching a memory access. Do not use ix86_fma4_valid_op_p. 1050 (xop_*): Same. 1051 Do not use ix86_fma4_valid_op_p in FMA4 and XOP splitters. 1052 10532009-12-03 Richard Henderson <rth@redhat.com> 1054 1055 * config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force 1056 all operands into registers. 1057 10582009-12-03 Sebastian Pop <sebastian.pop@amd.com> 1059 1060 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused 1061 parameter. 1062 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): Same. 1063 * config/i386/sse.md: Same. 1064 10652009-12-03 Richard Guenther <rguenther@suse.de> 1066 1067 * cgraphunit.c (assemble_thunk): Use DECL_ASSEMBLER_NAME 1068 instead of DECL_NAME for the entry point. 1069 10702009-12-03 Richard Earnshaw <rearnsha@arm.com> 1071 1072 * arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier 1073 before the lock release. 1074 10752009-12-03 Michael Matz <matz@suse.de> 1076 1077 PR middle-end/38474 1078 * cfgexpand.c (struct stack_var): Add conflicts member. 1079 (stack_vars_conflict, stack_vars_conflict_alloc, 1080 n_stack_vars_conflict): Remove. 1081 (add_stack_var): Initialize conflicts member. 1082 (triangular_index, resize_stack_vars_conflict): Remove. 1083 (add_stack_var_conflict, stack_var_conflict_p): Rewrite in 1084 terms of new member. 1085 (union_stack_vars): Only run over the conflicts. 1086 (partition_stack_vars): Remove special case. 1087 (expand_used_vars_for_block): Don't call resize_stack_vars_conflict, 1088 don't create self-conflicts. 1089 (account_used_vars_for_block): Don't create any conflicts. 1090 (fini_vars_expansion): Free bitmaps, don't free or clear removed 1091 globals. 1092 10932009-12-03 Bernd Schmidt <bernd.schmidt@analog.com> 1094 1095 PR middle-end/42202 1096 * regrename.c (live_in_chains): New variable. 1097 (verify_reg_tracked): New static function. 1098 (scan_rtx_reg): Update live_in_chains. 1099 (scan_rtx): Only promote sets in COND_EXEC to OP_INOUT if 1100 we're already tracking the reg. 1101 (build_def_use): Likewise. Initialize live_in_chains. 1102 11032009-12-03 Ken Werner <ken.werner@de.ibm.com> 1104 1105 * config/spu/spu-elf.h (STARTFILE_SPEC): Add support for gprof 1106 startup files. 1107 * config/spu/spu-protos.h (spu_function_profiler): Add prototype. 1108 * config/spu/spu.c (spu_function_profiler): New function. 1109 * config/spu/spu.h (FUNCTION_PROFILER): Invoke 1110 spu_function_profiler. 1111 (NO_PROFILE_COUNTERS): Define. 1112 (PROFILE_BEFORE_PROLOGUE): Likewise. 1113 11142009-12-03 Dave Korn <dave.korn.cygwin@gmail.com> 1115 1116 * ggc-page.c (struct free_object): Pull definition out ... 1117 (struct globals): .. from here. 1118 11192009-12-02 Richard Guenther <rguenther@suse.de> 1120 1121 * fold-const.c (div_if_zero_remainder): Honor that sizetypes 1122 are sign-extending. Simplify. 1123 11242009-12-02 Richard Henderson <rth@redhat.com> 1125 1126 PR tree-opt/42215 1127 * tree-loop-distribution.c (build_size_arg_loc): Tidy. 1128 (generate_memset_zero): Convert to sizetype properly. Tidy. 1129 11302009-12-02 Richard Guenther <rguenther@suse.de> 1131 1132 * lto-streamer-out.c (pack_ts_decl_common_value_fields): 1133 Do not pretend we have value exprs. 1134 11352009-12-02 Richard Guenther <rguenther@suse.de> 1136 1137 PR middle-end/41491 1138 * fold-const.c (try_move_mult_to_index): Do not leak 1139 domain types into the IL. 1140 11412009-12-02 Richard Guenther <rguenther@suse.de> 1142 1143 PR middle-end/42088 1144 * tree.c (free_lang_data): Disable if not using LTO. 1145 11462009-12-02 Richard Guenther <rguenther@suse.de> 1147 1148 PR middle-end/42229 1149 * cfgloopmanip.c (remove_path): Avoid cancelling loops twice. 1150 11512009-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1152 1153 PR middle-end/42224 1154 * tree.h (int_or_pointer_precision): Remove. 1155 * tree.c (int_or_pointer_precision): Remove. 1156 (integer_pow2p): Use TYPE_PRECISION instead. 1157 (tree_log2): Likewise. 1158 (tree_floor_log2): Likewise. 1159 (signed_or_unsigned_type_for): Likewise. 1160 * fold-const.c (fit_double_type): Likewise. 1161 * varasm.c (initializer_constant_valid_p): Likewise. 1162 11632009-12-02 Ira Rosen <irar@il.ibm.com> 1164 1165 * doc/invoke.texi (-fdump-tree-slp): Document. 1166 (-ftree-vectorizer-verbose): Update. 1167 (-ftree-slp-vectorize): Document. 1168 11692009-12-02 Nick Clifton <nickc@redhat.com> 1170 1171 * config/rx/rx.c (rx_conditional_register_usage): Do not warn if 1172 no fixed registers are available for interrupt handlers. Do not 1173 fix normal registers. 1174 (MUST_SAVE_ACC_REGISTER): New macro. 1175 (rx_get_stack_layout): Create a stack frame for fast interrupt 1176 handlers, if necessary. Push extra registers if needed in order 1177 to save the accumulator. 1178 (rx_expand_prologue): Create a stack frame for fast interrupt 1179 handlers, if necessary. 1180 (rx_expand_builtin_mvfc): Handle the case where there is no target. 1181 11822009-12-01 Sebastian Pop <sebastian.pop@amd.com> 1183 1184 * config/i386/abmintrin.h (__lzcnt16): New. 1185 (__lzcnt): New. 1186 (__lzcnt64): New. 1187 * config/i386/i386-builtin-types.def (UINT16_FTYPE_UINT16): New. 1188 * config/i386/i386.c (IX86_BUILTIN_CLZS): New. 1189 (bdesc_special_args): Add __builtin_clzs. 1190 (ix86_expand_args_builtin): Handle UINT16_FTYPE_UINT16. 1191 11922009-12-01 Sebastian Pop <sebastian.pop@amd.com> 1193 1194 * config/i386/abmintrin.h (_mm_popcnt_u32): New. 1195 (_mm_popcnt_u64): New. 1196 11972009-12-01 Sebastian Pop <sebastian.pop@amd.com> 1198 1199 * config/i386/abmintrin.h: New. 1200 * config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__. 1201 * config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined. 1202 12032009-12-01 Uros Bizjak <ubizjak@gmail.com> 1204 1205 * config/i386/i386.md (SWI124): Rename from CRC32MODE. 1206 (crc32modesuffix): Remove. 1207 (crc32modeconstraint): Ditto. 1208 (sse4_2_crc32<mode>): Update for renamed mode iterator. Use 1209 imodesuffix instead of crc32modesuffix and <r>m instead of 1210 crc32modeconstraint. 1211 12122009-12-01 Jakub Jelinek <jakub@redhat.com> 1213 1214 PR c++/42234 1215 * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb 1216 contains no statements. 1217 12182009-12-01 Grigori Fursin <grigori.fursin@inria.fr> 1219 Joern Rennecke <amylaar@spamcop.net> 1220 1221 * cgraphunit.c (plugin.h): Include. 1222 (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START / 1223 PLUGIN_ALL_IPA_PASSES_END at start / end of processing. 1224 * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include. 1225 (enum plugin_event): Define by including plugin.def. 1226 Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC. 1227 (plugin_event_name): Change type to const char **. 1228 (get_event_last, get_named_event_id, unregister_callback): Declare. 1229 (register_callback): Change type of event argument to int. 1230 (highlev-plugin-common.h): New file. 1231 * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and 1232 $(HASHTAB_H) 1233 (tree-optimize.o passes.o): Depend on $(PLUGIN_H). 1234 (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def. 1235 (s-header-vars): New rule. 1236 (install-plugin): Depend on s-header-vars. Install b-header-vars. 1237 * params.c (get_num_compiler_params): New function. 1238 * params.h (get_num_compiler_params): Declare. 1239 * passes.c (plugin.h): Include. 1240 (make_pass_instance): Invoke PLUGIN_NEW_PASS. 1241 (do_per_function_toporder, pass_init_dump_file): No longer static. 1242 (pass_fini_dump_file): Likewise. 1243 (execute_one_pass): Likewise. Invoke PLUGIN_OVERRIDE_GATE and 1244 PLUGIN_PASS_EXECUTION. 1245 (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and 1246 PLUGIN_EARLY_GIMPLE_PASSES_END. 1247 * plugin.c (plugin_event_name_init): New array, defined by 1248 including plugin.def. 1249 (FMT_FOR_PLUGIN_EVENT): Update. 1250 (plugin_event_name): Change type to const char ** and initialize 1251 to plugin_event_name_init. 1252 (event_tab, event_last, event_horizon): New variable. 1253 (get_event_last): New function. 1254 (plugin_callbacks_init): New array. 1255 (plugin_callbacks: Change type to struct callback_info **. 1256 Initialize to plugin_callbacks_init. 1257 (htab_event_eq, get_named_event_id, unregister_callback): New function. 1258 (invoke_plugin_va_callbacks): Likewise. 1259 (register_callback): Change type of event argument to int. 1260 Handle new events. Allow dynamic events. 1261 (invoke_plugin_callbacks): Likewise. Return success status. 1262 (plugins_active_p): Allow dynamic callbacks. 1263 * plugin.def: New file. 1264 * plugin.h (invoke_plugin_callbacks): Update prototype. 1265 (invoke_plugin_va_callbacks): Declare. 1266 * tree-optimize.c (plugin.h): Include. 1267 (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and 1268 PLUGIN_ALL_PASSES_END. 1269 * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare. 1270 (pass_fini_dump_file, do_per_function_toporder): Likewise. 1271 * doc/plugin.texi: Document new event types. 1272 12732009-12-01 Martin Jambor <mjambor@suse.cz> 1274 1275 PR tree-optimization/42237 1276 * tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments 1277 in between references into two. 1278 12792009-12-01 Richard Guenther <rguenther@suse.de> 1280 1281 * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK 1282 to the block of the call when remapping a type. 1283 12842009-12-01 Martin Jambor <mjambor@suse.cz> 1285 1286 * cgraph.h (struct cgraph_edge): Reorder fields. Make loop_nest 1287 unsigned short int. 1288 * ipa-prop.h (struct ipa_param_call_note): Likewise. 1289 * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest. 1290 12912009-12-01 Richard Guenther <rguenther@suse.de> 1292 1293 * final.c (rest_of_clean_state): If -fcompare-debug is 1294 given dump final insns without UIDs. 1295 * tree-ssa-live.c (remove_unused_scope_block_p): Remove 1296 after_inlining checks. 1297 12982009-11-30 Chao-ying Fu <fu@mips.com> 1299 1300 * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend. 1301 13022009-11-30 Dave Korn <dave.korn.cygwin@gmail.com> 1303 1304 * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect 1305 status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers. 1306 * configure: Regenerate. 1307 * config.in: Regenerate. 1308 1309 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap 1310 options for Cygwin DLL libstdc++ support wrappers. 1311 (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default 1312 according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS. 1313 (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to 1314 whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not. 1315 (LINK_SPEC): Include CXX_WRAP_SPEC. 1316 * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function. 1317 (i386_find_on_wrapper_list): Check if a function is found on the list 1318 of libstdc++ wrapper options. 1319 (i386_pe_file_end): If we are importing a wrapped function, also emit 1320 an external declaration for the real version. 1321 * config/i386/cygming.opt (muse-libstdc-wrappers): New option for 1322 Cygwin targets. Update copyright year. 1323 13242009-11-30 Steve Ellcey <sje@cup.hp.com> 1325 Jakub Jelinek <jakub@redhat.com> 1326 1327 * function.c (instantiate_virtual_regs_in_insn): Copy to new reg 1328 before forcing mode. 1329 13302009-11-30 Anatoly Sokolov <aesok@post.ru> 1331 1332 * config/sh/sh.c (sh_promote_prototypes): Make static. 1333 (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New 1334 functions. 1335 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 1336 * config/sh/sh.h (FUNCTION_VALUE_REGNO_P): Redefine, use 1337 sh_function_value_regno_p. 1338 (FUNCTION_VALUE, LIBCALL_VALUE): Remove. 1339 * config/sh/sh-protos.h (sh_function_value_regno_p): Declare. 1340 (sh_promote_prototypes) : Remove. 1341 13422009-11-30 Julian Brown <julian@codesourcery.com> 1343 1344 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2 1345 reloads to LO_REGS. 1346 13472009-11-30 Richard Henderson <rth@redhat.com> 1348 1349 * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New. 1350 (bdesc_special_args): Update insn codes. 1351 (avx_vpermilp_parallel): Correct range check. 1352 (ix86_rtx_costs): Handle vector permutation rtx codes. 1353 (struct expand_vec_perm_d): Move earlier. 1354 (get_mode_wider_vector): New. 1355 (expand_vec_perm_broadcast_1): New. 1356 (ix86_expand_vector_init_duplicate): Use it. Tidy AVX modes. 1357 (expand_vec_perm_broadcast): New. 1358 (ix86_expand_vec_perm_builtin_1): Use it. 1359 * config/i386/i386-protos.h: Update. 1360 * config/i386/predicates.md (avx_vbroadcast_operand): New. 1361 * config/i386/sse.md (AVX256MODE24P): New. 1362 (ssescalarmodesuffix2s): New. 1363 (avxhalfvecmode, avxscalarmode): Fill out to all modes. 1364 (avxmodesuffixf2c): Add V8SI, V4DI. 1365 (vec_dupv4sf): New expander. 1366 (*vec_dupv4sf_avx): Add vbroadcastss alternative. 1367 (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for 1368 V4SF and V4SI. Move C alternatives to front. Add insertps and 1369 pinsrd alternatives. 1370 (*vec_set<mode>_0_sse2): Split out from ... 1371 (vec_set<mode>_0): Macro-ize for V4SF and V4SI. 1372 (vec_interleave_highv2df, vec_interleave_lowv2df): Require register 1373 destination; use ix86_vec_interleave_v2df_operator_ok, instead of 1374 ix86_fixup_binary_operands. 1375 (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup. 1376 (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New. 1377 (*avx_movddup, *sse3_movddup): Remove. New splitter from 1378 vec_select form to vec_duplicate form. 1379 (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use 1380 ix86_vec_interleave_v2df_operator_ok. 1381 (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ... 1382 (*avx_unpcklpd256): ... here. 1383 (*vec_dupv4si_avx): New. 1384 (*vec_dupv2di_avx): Add movddup alternative. 1385 (*vec_dupv2di_sse3): New. 1386 (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and 1387 avx_vbroadcastss256; represent with vec_duplicate instead of 1388 nested vec_concat operations. 1389 (avx_vbroadcastf128_<mode>): Rename from 1390 avx_vbroadcastf128_p<avxmodesuffixf2c>256. 1391 (*avx_vperm_broadcast_v4sf): New. 1392 (*avx_vperm_broadcast_<AVX256MODEF2P>): New. 1393 13942009-11-30 Martin Jambor <mjambor@suse.cz> 1395 1396 PR middle-end/42196 1397 * tree-sra.c (struct access): New field grp_different_types. 1398 (dump_access): Dump grp_different_types. 1399 (compare_access_positions): Prefer scalars and vectors over other 1400 scalar types. 1401 (sort_and_splice_var_accesses): Set grp_different_types if appropriate. 1402 (sra_modify_expr): Use the original also when dealing with a complex 1403 or vector group accessed as multiple types. 1404 14052009-11-30 Richard Henderson <rth@redhat.com> 1406 1407 * config/i386/i386.c (avx_vperm2f128_parallel): New. 1408 * config/i386/i386-protos.h: Declare it. 1409 * config/i386/predicates.md (avx_vperm2f128_v8sf_operand, 1410 avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New. 1411 * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander. 1412 (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3. 1413 (*avx_vperm2f128<mode>_nozero): New. 1414 14152009-11-30 Richard Henderson <rth@redhat.com> 1416 1417 * config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New. 1418 (V8SF_FTYPE_V8SF_V8SF_V8SI): New. 1419 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support 1420 V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2. 1421 (IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New. 1422 (bdesc_args): Add them. 1423 (ix86_expand_builtin): Expand them. 1424 (expand_vec_perm_pshufb2): Only operate on 16-byte vectors. 1425 14262009-11-30 Martin Jambor <mjambor@suse.cz> 1427 1428 PR middle-end/42206 1429 * ipa-prop.c (ipa_write_node_info): Initialize note_count to zero. 1430 14312009-11-30 Jakub Jelinek <jakub@redhat.com> 1432 1433 * ipa-reference.c (propagate): Only dump bitmaps if computed. 1434 14352009-11-30 Olga Golovanevsky <olga@il.ibm.com> 1436 1437 PR middle-end/39806 1438 * ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables. 1439 (new_var_hash): Likewise. 1440 (is_in_new_vars_htab): Likewise. 1441 (add_to_new_vars_htab): Likewise. 1442 14432009-11-30 Ira Rosen <irar@il.ibm.com> 1444 1445 * tree-vect-stmts.c (vectorizable_assignment): Support 1446 multiple types. 1447 14482009-11-30 Richard Guenther <rguenther@suse.de> 1449 1450 * doc/contrib.texi (Contributors): Add myself. 1451 14522009-11-30 Richard Guenther <rguenther@suse.de> 1453 1454 * tree.c (free_lang_data): Do not set debug_info_level to 1455 none if terse. 1456 14572009-11-30 Richard Guenther <rguenther@suse.de> 1458 1459 PR middle-end/42119 1460 PR fortran/38530 1461 * expr.c (expand_expr_addr_expr_1): Properly expand the initializer 1462 of CONST_DECLs. 1463 14642009-11-30 Richard Guenther <rguenther@suse.de> 1465 1466 * tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in 1467 variable UID order. 1468 14692009-11-30 Richard Guenther <rguenther@suse.de> 1470 1471 * tree-dump.c (dump_option_value_in): Add TDF_NOUID. 1472 * tree-pass.h (TDF_NOUID): Likewise. 1473 * print-rtl.c: Include tree-pass.h. 1474 (print_mem_expr): Pass dump_flags. 1475 (print_rtx): Likewise. 1476 * print-tree.c: Include tree-pass.h. 1477 (print_node_brief): Handle TDF_NOUID. 1478 (print_node): Likewise. 1479 * tree-pretty-print.c (dump_decl_name): Likewise. 1480 (dump_generic_node): Likewise. 1481 * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H) 1482 dependency. 1483 14842009-11-30 Nick Clifton <nickc@redhat.com> 1485 1486 * config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete. 1487 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove 1488 stormy16-lib2-count-leading-zeros.c. 1489 * config/stormy16/stormy16-lib2.c (__clzhi2): Move code from 1490 __stormy16_count_leading_zeros() into this function. 1491 (__ctzhi2): Use __builtin_clz. 1492 (__ffshi2): Likewise. 1493 14942009-11-30 Eric Botcazou <ebotcazou@adacore.com> 1495 1496 * config/sparc/sparc.c (DF_MODES): Simplify. 1497 (TF_ONLY_MODES, OF_ONLY_MODES): Delete. 1498 (TF_MODES, OF_MODES): Adjust for above change. 1499 (TF_MODES_NO_S, OF_MODES_NO_S): Likewise. 1500 * config/sparc/sparc.h (REGNO_REG_CLASS): Move around. 1501 15022009-11-30 Paolo Bonzini <bonzini@gnu.org> 1503 1504 PR rtl-optimization/41812 1505 * fwprop.c (local_md, local_lr): New globals. 1506 (process_defs, process_uses): Remove local_md argument. Never 1507 consider dead pseudos to have singleton def-use chains. 1508 (single_def_use_enter_block): Perform LR simulation. 1509 (build_single_def_use_links): Remove local_md local variable. 1510 Add DF_NOTE. Allocate local_lr. 1511 (fwprop_done): Do not remove DF_CHAIN, we do not use it anymore. 1512 * df-problems.c (df_md_scratch): New. 1513 (df_md_alloc, df_md_free): Allocate/free it. 1514 (df_md_local_compute): Only include live registers in init. 1515 (df_md_transfer_function): Prune the in-set computed by 1516 the confluence function, and the gen-set too. 1517 15182009-11-30 Hans-Peter Nilsson <hp@axis.com> 1519 1520 PR rtl-optimization/40086 1521 * reorg.c (relax_delay_slots): When looking for redundant insn at 1522 the branch target, use next_real_insn, not next_active_insn. 1523 15242009-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1525 1526 * doc/install.texi: Update minimum MPC version to 0.8. 1527 15282009-09-09 Segher Boessenkool <segher@kernel.crashing.org> 1529 1530 * config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove 1531 HONOR_SIGNED_ZEROS final condition. 1532 (fnmsubsf4_powerpc_1): Same. 1533 (fnmadddf4_fpr_1): Same. 1534 (fnmsubdf4_fpr_1): Same. 1535 15362009-11-29 Ira Rosen <irar@il.ibm.com> 1537 1538 PR tree-optimization/42193 1539 * tree-vect-stmts.c (vectorizable_operation): Set vectorization factor 1540 to 1 in case of basic block SLP. 1541 (vectorizable_load): Likewise. 1542 15432009-11-28 Jan Hubicka <jh@suse.cz> 1544 1545 * cgraph.c (same_body_alias_1): Break out of 1546 (same_body_alias): ... here; remove comdat check; it is handled 1547 in cp already. 1548 (cgraph_add_thunk): New. 1549 (dump_cgraph_node): Dump aliases and thunks. 1550 * cgraph.h (cgraph_thunk_info): New structure. 1551 (struct cgraph_node): Add thunk info. 1552 (cgraph_add_thunk): New. 1553 * cgraphunit.c (cgraph_emit_thunks): Remove. 1554 (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks. 1555 (assemble_thunk): New function. 1556 (cgraph_expand_function): Handle thunks. 1557 (thunk_adjust): New. 1558 (init_lowered_empty_function): New. 1559 * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): 1560 Remove. 1561 * lto-cgraph.c (lto_output_node): Stream thunk info. 1562 (input_node): Likewise. 1563 * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks. 1564 * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove. 1565 (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update. 1566 * i386.c (x86_output_mi_thunk): Make output prettier. 1567 15682009-11-28 Richard Guenther <rguenther@suse.de> 1569 1570 PR tree-optimization/42183 1571 * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its 1572 address taken. Merge the addressable state of the NRV 1573 variable and the result instead of copying it. 1574 15752009-11-28 Jakub Jelinek <jakub@redhat.com> 1576 1577 * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused 1578 malloc_fname variable. 1579 (check_allocation_function): Remove unused gsi and bb_level_0 1580 variables. 1581 (transform_access_sites): Remove unused d_type_size and d_type_size_k 1582 variables. 1583 * omega.c (resurrect_subs): Remove unused n variable. 1584 (omega_solve_geq): Remove unused neweqns variable. 1585 * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable. 1586 * tree-inline.c (declare_return_variable): Remove USE_P argument, 1587 return use instead of var. 1588 (remap_decl, remap_block): Remove unused fn variable. 1589 (expand_call_inline): Remove unused retvar variable, adjust 1590 declare_return_variable caller. 1591 (optimize_inline_calls): Remove unused prev_fn variable. 1592 * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies 1593 variable. 1594 (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size 1595 variables. 1596 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR 1597 properly. 1598 * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge 1599 variable. 1600 (vect_create_epilog_for_reduction): Remove unused bytesize variable. 1601 * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb 1602 parameter. Remove unused par_stmt variable. 1603 (determine_parallel_type): Adjust workshare_safe_to_combine_p caller. 1604 (expand_omp_sections): Remove unused l1 variable. 1605 (lower_omp_for): Remove unused ilist variable. 1606 * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes): 1607 Remove unused has_upstream_mem_write_p variable. 1608 * recog.c (decode_asm_operands): Remove unused noperands variable. 1609 * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and 1610 size2 variable. 1611 * libgcov.c (__gcov_merge_delta): Remove unused last variable. 1612 * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused 1613 base_nm variable. 1614 (gen_conditions_for_pow): Remove unused ec variable. 1615 * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size 1616 variable. 1617 * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused 1618 fndecl variable. 1619 * tree-ssa-sink.c (statement_sink_location): Remove unused code 1620 variable. 1621 * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid 1622 variables. 1623 * tree-complex.c (create_one_component_var): Remove unused inner_type 1624 variable. 1625 * calls.c (emit_call_1): Don't GEN_INT (struct_value_size) 1626 unnecessarily when GEN_*CALL omits that argument. 1627 * regrename.c (regrename_optimize): Remove unused regs_seen variable. 1628 (build_def_use): Remove unused icode variable. 1629 * ipa-pure-const.c (check_call): Remove unused callee and avail 1630 variables. 1631 * tree-dfa.c (add_referenced_var): Remove unused v_ann variable. 1632 * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type 1633 variable. 1634 (vect_pattern_recog): Remove unused stmt variable. 1635 * sel-sched-ir.c (make_regions_from_the_rest): Remove unused 1636 new_regions variable. 1637 * postreload.c (reload_cse_simplify_operands): Remove unused mode 1638 variable. 1639 * tree-parloops.c (create_call_for_reduction_1): Remove unused 1640 addr_type variable. 1641 (create_parallel_loop): Remove unused res variable. 1642 (gen_parallel_loop): Remove unused nloop variable. 1643 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. 1644 * value-prof.c (gimple_mod_subtract_transform, 1645 gimple_stringops_transform): Remove unused value variable. 1646 (gimple_stringops_values_to_profile): Remove unused fcode variable. 1647 * tree-vrp.c (register_new_assert_for): Remove unused found variable. 1648 (vrp_visit_switch_stmt): Remove unused n variable. 1649 * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr 1650 variable. 1651 (vectorizable_operation): Remove unused shift_p variable. 1652 (vectorizable_store): Remove unused first_stmt_vinfo variable. 1653 * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable. 1654 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb 1655 variable. 1656 (vect_permute_store_chain): Remove unused scalar_dest variable. 1657 (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop 1658 variable. 1659 * tree-ssa-threadupdate.c (thread_single_edge): Remove unused 1660 local_info variable. 1661 * tree-optimize.c (tree_rest_of_compilation): Remove unused node 1662 variable. 1663 * optabs.c (expand_binop): Remove unused equiv_value variable. 1664 (emit_libcall_block): Remove unused prev variable. 1665 (init_optabs): Remove unused int_mode variable. 1666 * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node 1667 variable. 1668 (do_structure_copy): Remove unused lhsbase and rhsbase variables. 1669 (find_func_aliases): Remove unused rhstype variable. 1670 (ipa_pta_execute): Remove unused varid variable. 1671 16722009-11-28 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 1673 1674 * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add. 1675 16762009-11-28 David Binderman <dcb314@hotmail.com> 1677 1678 * ira-color.c (put_allocno_into_bucket): Remove set but not used 1679 local variable hard_regs_num. 1680 * ira-lives.c (process_single_reg_class_operands): Remove cover_class. 1681 * loop-unswitch.c (unswitch_loop): Remove zero_bitmap. 1682 * lower-subreg.c (decompose_multiword_subregs): Remove next. 1683 16842009-11-27 Martin Jambor <mjambor@suse.cz> 1685 1686 PR middle-end/42006 1687 * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var 1688 instead of create_tmp_var. Set DECL_GIMPLE_REG_P to one manually 1689 for vector and complex types. 1690 (get_adjustment_for_base): Describe return value in the comment. 1691 16922009-11-27 Nick Clifton <nickc@redhat.com> 1693 1694 * longlong.h (count_leading_zeros): Define macro for stormy16 target. 1695 (COUNT_LEADING_ZEROS_0): Likewise. 1696 * config/stormy16/stormy16-lib2.c: Arrange for separate 1697 compilation of each function. 1698 (__ffshi2): New function. 1699 (__stormy16_count_leading_zeros): New function. 1700 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to 1701 compile each function into its own object file. 1702 (stormy16-lib2-ashlsi3.c): New stub file. 1703 (stormy16-lib2-ashrsi3.c): New stub file. 1704 (stormy16-lib2-clzhi2.c): New stub file. 1705 (stormy16-lib2-count-leading-zeros.c): New stub file. 1706 (stormy16-lib2-ctzhi2.c): New stub file. 1707 (stormy16-lib2-divsi3.c): New stub file. 1708 (stormy16-lib2-ffshi2.c): New stub file. 1709 (stormy16-lib2-lshrsi3.c): New stub file. 1710 (stormy16-lib2-modsi3.c): New stub file. 1711 (stormy16-lib2-parityhi2.c): New stub file. 1712 (stormy16-lib2-popcounthi2.c): New stub file. 1713 (stormy16-lib2-udivmodsi4.c): New stub file. 1714 (stormy16-lib2-udivsi3.c): New stub file. 1715 (stormy16-lib2-umodsi3.c): New stub file. 1716 17172009-11-27 Richard Henderson <rth@redhat.com> 1718 1719 * config/i386/sse.md (vec_interleave_highv16qi, 1720 vec_interleave_lowv16qi, vec_interleave_highv8hi, 1721 vec_interleave_lowv8hi, vec_interleave_highv4si, 1722 vec_interleave_lowv4si, vec_interleave_highv2di, 1723 vec_interleave_lowv2di, vec_interleave_highv4sf, 1724 vec_interleave_lowv4sf, vec_interleave_highv2df, 1725 vec_interleave_lowv2df): Remove expanders. 1726 (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp, 1727 sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw, 1728 sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq): 1729 Rename to their proper vec_interleave equivalent. Update all users 1730 to the new name. 1731 * config/i386/i386.c, config/i386/i386.md: Update all users. 1732 17332009-11-27 Michael Matz <matz@suse.de> 1734 1735 PR rtl-optimization/42084 1736 * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter, 1737 use it to stop walking. 1738 (expand_gimple_cond): Adjust call to above. 1739 17402009-11-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1741 1742 PR target/41810 1743 * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED. 1744 [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use 1745 __extension__ to allow cast from function pointer to object 1746 pointer in C++. 1747 * doc/install.texi (--enable-threads): Clarify use of Solaris threads. 1748 17492009-11-27 Steven Bosscher <steven@gcc.gnu.org> 1750 1751 * config/ia64/itanium1.md: Remove. 1752 * config/ia64/ia64.md: Do not include it. 1753 * config/ia64/ia64.c (ia64_handle_option): Remove "itanium", 1754 "itanium1", and "merced" from the processor alias table. 1755 (clocks, add_cycles): Remove global variables. 1756 (ia64_sched_reorder2): Don't set/use them. 1757 (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise. 1758 (bundling): Likewise. Remove extra pass for MMMUL/MMSHF. 1759 17602009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 1761 1762 * config/s390/s390.c (last_scheduled_insn): New variable. 1763 (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New 1764 functions. 1765 (s390_sched_reorder, s390_sched_variable_issue): New functions. 1766 (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks 1767 defined. 1768 17692009-11-27 Michael Matz <matz@suse.de> 1770 1771 PR c++/41906 1772 * tree-eh.c (lower_catch): Stop after expanding a catch-all. 1773 17742009-11-27 Richard Guenther <rguenther@suse.de> 1775 1776 * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH, 1777 TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars. 1778 * loop-init.c (pass_rtl_move_loop_invariants): Use 1779 TV_LOOP_MOVE_INVARIANTS. 1780 (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH. 1781 (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL. 1782 (pass_rtl_doloop): Use TV_LOOP_DOLOOP. 1783 17842009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 1785 1786 * emit-rtl.c (next_active_insn, prev_active_insn): Correct comment. 1787 17882009-11-27 Jakub Jelinek <jakub@redhat.com> 1789 1790 * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove 1791 unused insn variable. 1792 * genemit.c (output_peephole2_scratches): Only declare and initialize 1793 _regs_allocated if it will be ever used. 1794 * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused 1795 succ_bb variable. 1796 (create_empty_loop_on_edge): Remove unused freq and cnt variables. 1797 * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record 1798 variable. 1799 1800 * opts.c (decode_options): If optimize is bigger than 255, 1801 set it to 255. 1802 18032009-11-26 Richard Henderson <rth@redhat.com> 1804 1805 * config/i386/sse.md (mulv16qi3): Change back from an expander 1806 to an insn-and-split. 1807 (mulv4si): Mention AVX not XOP for AVX exception. 1808 (*sse2_mulv4si3): Likewise. 1809 (mulv2di3): Use vmulld not vpmacsdd for XOP expansion. Tidy. 1810 18112009-11-26 Bernd Schmidt <bernd.schmidt@analog.com> 1812 1813 * cfgexpand (n_stack_vars_conflict): New static variable. 1814 (triangular_index): Reduce likelyhood of overflow by performing 1815 the division before the multiplication. 1816 (resize_stack_vars_conflict): Call fatal_error if overflow 1817 occurred in triangular_index. Update n_stack_vars_conflict. 1818 1819 PR rtl-opt/38582 1820 * regrename.c (struct du_chain): Remove member earlyclobber. 1821 (scan_rtx_reg): Don't set it. Remove argument earlyclobber, 1822 all callers changed. 1823 (scan_rtx): Remove argument earlyclobber, all callers changed. 1824 (hide_operands, restore_operands, record_out_operands): New functions, 1825 broken out of build_def_use. 1826 (build_def_use): Call them as necessary. 1827 1828 * regrename.c (struct du_head): New members id, conflicts, 1829 hard_conflicts and cannot_rename. 1830 (enum scan_actions): Remove terminate_all_read and 1831 terminate_overlapping_read; add mark_all_read. 1832 (scan_actions_name): Likewise. 1833 (du_head_p): New typedef. Define a vector type for it. 1834 (id_to_chain): New static variable. 1835 (note_sets, clear_dead_regs): Delete functions. 1836 (free_chain_data): New function. 1837 (merge_overlapping_regs): Simply walk the conflicts bitmap. 1838 Remove argument B, all callers changed. 1839 (regrename_optimize): Allocate id_to_chain. Ignore chains that have 1840 the cannot_rename bit set. Update regno and nregs of a renamed chain. 1841 Call free_chain_data when done. 1842 (do_replace): Remove death notes when the renamed reg is set in the 1843 last insn; add them if not. 1844 (mark_conflict, note_sets_clobbers): New static function. 1845 (fail_current_block, current_id, open_chains_set, live_hard_regs): New 1846 static variables. 1847 (scan_rtx_reg): Keep track of conflicts between chains, and between 1848 chains and hard regs. Don't terminate chains when we find a read we 1849 can't handle, mark it unrenameable instead. For terminate_write, 1850 terminate chains that are written with an exact match or a superset 1851 of registers. Set fail_current_block if multi-word lifetimes are too 1852 complex to handle. 1853 (scan_rtx_address): Use mark_all_read instead of terminate_all_read. 1854 (build_def_use): Initialize current_id, live_chains and live_hard_regs; 1855 free memory for them when done. 1856 Rearrange the steps so that earlyclobbers are noted before reads 1857 are processed. Add new steps to keep track of hard register lifetimes 1858 outside insn operands. 1859 18602009-11-26 Richard Guenther <rguenther@suse.de> 1861 1862 * tree-ssa-dce.c (nr_walks): New variable. 1863 (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off. 1864 (perform_tree_ssa_dce): Init nr_walks. 1865 18662009-11-26 Michael Matz <matz@suse.de> 1867 1868 PR tree-optimization/41905 1869 * tree-eh.c (lower_eh_constructs_2): Don't add assignments 1870 below statements that can't fall thru. 1871 18722009-11-26 Michael Matz <matz@suse.de> 1873 1874 * builtins.c (expand_builtin_printf, expand_builtin_fprintf, 1875 expand_builtin_sprintf): Remove. 1876 (expand_builtin): Don't call them. 1877 18782009-11-26 Richard Guenther <rguenther@suse.de> 1879 1880 * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap. 1881 18822009-11-26 Nick Clifton <nickc@redhat.com> 1883 1884 * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls 1885 being used incorrectly. 1886 (rx_function_ok_for_sibcall): New function. Do not allow indirect 1887 sibcalls, or sibcalls from interrupt functions. 1888 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define. 1889 * config/rx/rx.md (sibcall): Convert to a define_expand. Check 1890 for a MEM inside a MEM. 1891 (sibcall_value): Likewise. 1892 (sibcall_internal): New pattern containing old sibcall pattern. 1893 (sibcall_value_internal): Likewise. 1894 18952009-11-25 Richard Henderson <rth@redhat.com> 1896 1897 * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an 1898 optional 3rd argument to define the mode. 1899 * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New. 1900 (V2UDI, V4USI, V8UHI, V16UQI): New. 1901 (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI, 1902 V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI, 1903 V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New. 1904 * config/i386/i386-modes.def: Rearrange for double-wide AVX. 1905 * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New. 1906 * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New. 1907 (bdesc_args): Add the builtin definitions to match. 1908 (ix86_expand_builtin): Expand them. 1909 (ix86_builtin_vectorization_cost): Rename from 1910 x86_builtin_vectorization_cost. 1911 (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d, 1912 doublesize_vector_mode, expand_vselect, expand_vselect_vconcat, 1913 expand_vec_perm_blend, expand_vec_perm_vpermil, 1914 expand_vec_perm_pshufb, expand_vec_perm_1, 1915 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr, 1916 expand_vec_perm_interleave2, expand_vec_perm_pshufb2, 1917 expand_vec_perm_even_odd_1, expand_vec_perm_even_odd, 1918 ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst, 1919 ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok, 1920 ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM, 1921 TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New. 1922 * sse.md (SSEMODE_EO): New. 1923 (vec_extract_even<mode>): Use SSEMODE_EO and 1924 ix86_expand_vec_extract_even_odd. 1925 (vec_extract_odd<mode>): Likewise. 1926 (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si, 1927 vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd. 1928 19292009-11-25 Richard Henderson <rth@redhat.com> 1930 1931 * target.h (targetm.vectorize.builtin_vec_perm_ok): New. 1932 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New. 1933 * hooks.h, hooks.c (hook_bool_tree_tree_true): New. 1934 * tree-vect-slp.c (vect_create_mask_and_perm): Don't create 1935 the vector constant here... 1936 (vect_transform_slp_perm_load): ... do it here instead. Validate 1937 that the permutation vector is implementable by the target. 1938 19392009-11-25 Jakub Jelinek <jakub@redhat.com> 1940 1941 * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames. 1942 * config/rs6000/sysv4.h (TARGET_REGNAMES): Define. 1943 1944 * print-rtl.c (print_rtx): When printing newline, append 1945 print_rtx_head and indentation after the newline. 1946 1947 PR target/42165 1948 * config/i386/i386.c (print_operand): For 32-byte memory use 1949 YMMWORD in -masm=intel mode. Use TBYTE instead of XWORD. 1950 * config/i386/i386.md (crc32modesuffix): Expand to nothing 1951 in -masm=intel mode. 1952 (sse4_2_crc32di): Print just crc32 instead of crc32q in 1953 -masm=intel mode. 1954 * config/i386/mmx.md (*mmx_pinsrw): Print correct size of 1955 memory operand in -masm=intel mode. 1956 * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb, 1957 *sse2_pinsrw): Likewise. 1958 (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print 1959 q suffix in -masm=intel mode. 1960 19612009-11-25 Eric Botcazou <ebotcazou@adacore.com> 1962 1963 PR target/10127 1964 PR ada/20548 1965 PR middle-end/42004 1966 * dwarf2out.c (dwarf2out_args_size_adjust): Rename to... 1967 (dwarf2out_stack_adjust): ...this. Do not adjust the arg size for 1968 ACCUMULATE_OUTGOING_ARGS targets. Rename former version to... 1969 (dwarf2out_notice_stack_adjust): ...this. Adjust for above renaming. 1970 (dwarf2out_frame_debug_expr): Revert previous change and adjust for 1971 above renaming. 1972 (dwarf2out_frame_debug): Add ??? comment. Adjust for above renaming. 1973 19742009-11-25 Uros Bizjak <ubizjak@gmail.com> 1975 1976 * config/i386/predicates.md (emms_operation): New predicate. 1977 (vzeroupper_operation): Ditto. 1978 (vzeroall_operation): Improve pattern recognition. 1979 * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern. 1980 (avx_vzeroupper): Change insn pattern to expander. 1981 (*avx_vzeroupper): New insn pattern. Use vzeroupper_operation 1982 predicate. 1983 (*avx_vzeroall): Remove operands 1 and 2. 1984 * config/i386/mmx.md (mmx_emms): Change insn pattern to expander. 1985 (mmx_femms): Ditto. 1986 (*mmx_emms): New insn pattern. Use emms_operation predicate. 1987 (*mmx_femms): Ditto. 1988 * config/i386/i386.c (enum ix86_builtins) 1989 <IX86_BUILTIN_VZEROUPPER_REX64>: Remove. 1990 (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>: 1991 Remove initailization. 1992 <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here. 1993 19942009-11-25 Paul Brook <paul@codesourcery.com> 1995 1996 * config/arm/arm.md (consttable_4): Handle (high ...). 1997 19982009-11-25 Robert Nelson <robert.nelson@digikey.com> 1999 Richard Earnshaw <rearnsha@arm.com> 2000 2001 * arm.h (enum vfp_reg_type): Add VFP_NONE. 2002 * arm.c (all_fpus): Use it for floating point units that aren't based 2003 on the VFP architecture. 2004 (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to 2005 enum machine_mode. 2006 20072009-11-25 H.J. Lu <hongjiu.lu@intel.com> 2008 2009 * alias.c: Remove trailing white spaces. 2010 * alloc-pool.c: Likewise. 2011 * alloc-pool.h: Likewise. 2012 * attribs.c: Likewise. 2013 * auto-inc-dec.c: Likewise. 2014 * basic-block.h: Likewise. 2015 * bb-reorder.c: Likewise. 2016 * bt-load.c: Likewise. 2017 * builtins.c: Likewise. 2018 * builtins.def: Likewise. 2019 * c-common.c: Likewise. 2020 * c-common.h: Likewise. 2021 * c-cppbuiltin.c: Likewise. 2022 * c-decl.c: Likewise. 2023 * c-format.c: Likewise. 2024 * c-lex.c: Likewise. 2025 * c-omp.c: Likewise. 2026 * c-opts.c: Likewise. 2027 * c-parser.c: Likewise. 2028 * c-pretty-print.c: Likewise. 2029 * c-tree.h: Likewise. 2030 * c-typeck.c: Likewise. 2031 * caller-save.c: Likewise. 2032 * calls.c: Likewise. 2033 * cfg.c: Likewise. 2034 * cfganal.c: Likewise. 2035 * cfgexpand.c: Likewise. 2036 * cfghooks.c: Likewise. 2037 * cfghooks.h: Likewise. 2038 * cfglayout.c: Likewise. 2039 * cfgloop.c: Likewise. 2040 * cfgloop.h: Likewise. 2041 * cfgloopmanip.c: Likewise. 2042 * cfgrtl.c: Likewise. 2043 * cgraph.c: Likewise. 2044 * cgraph.h: Likewise. 2045 * cgraphbuild.c: Likewise. 2046 * cgraphunit.c: Likewise. 2047 * cif-code.def: Likewise. 2048 * collect2.c: Likewise. 2049 * combine.c: Likewise. 2050 * convert.c: Likewise. 2051 * coverage.c: Likewise. 2052 * crtstuff.c: Likewise. 2053 * cse.c: Likewise. 2054 * cselib.c: Likewise. 2055 * dbgcnt.c: Likewise. 2056 * dbgcnt.def: Likewise. 2057 * dbgcnt.h: Likewise. 2058 * dbxout.c: Likewise. 2059 * dce.c: Likewise. 2060 * ddg.c: Likewise. 2061 * ddg.h: Likewise. 2062 * defaults.h: Likewise. 2063 * df-byte-scan.c: Likewise. 2064 * df-core.c: Likewise. 2065 * df-problems.c: Likewise. 2066 * df-scan.c: Likewise. 2067 * df.h: Likewise. 2068 * dfp.c: Likewise. 2069 * diagnostic.c: Likewise. 2070 * diagnostic.h: Likewise. 2071 * dominance.c: Likewise. 2072 * domwalk.c: Likewise. 2073 * double-int.c: Likewise. 2074 * double-int.h: Likewise. 2075 * dse.c: Likewise. 2076 * dwarf2asm.c: Likewise. 2077 * dwarf2asm.h: Likewise. 2078 * dwarf2out.c: Likewise. 2079 * ebitmap.c: Likewise. 2080 * ebitmap.h: Likewise. 2081 * emit-rtl.c: Likewise. 2082 * et-forest.c: Likewise. 2083 * except.c: Likewise. 2084 * except.h: Likewise. 2085 * expmed.c: Likewise. 2086 * expr.c: Likewise. 2087 * expr.h: Likewise. 2088 * final.c: Likewise. 2089 * flags.h: Likewise. 2090 * fold-const.c: Likewise. 2091 * function.c: Likewise. 2092 * function.h: Likewise. 2093 * fwprop.c: Likewise. 2094 * gcc.c: Likewise. 2095 * gcov-dump.c: Likewise. 2096 * gcov-io.c: Likewise. 2097 * gcov-io.h: Likewise. 2098 * gcov.c: Likewise. 2099 * gcse.c: Likewise. 2100 * genattr.c: Likewise. 2101 * genattrtab.c: Likewise. 2102 * genautomata.c: Likewise. 2103 * genchecksum.c: Likewise. 2104 * genconfig.c: Likewise. 2105 * genflags.c: Likewise. 2106 * gengtype-parse.c: Likewise. 2107 * gengtype.c: Likewise. 2108 * gengtype.h: Likewise. 2109 * genmddeps.c: Likewise. 2110 * genmodes.c: Likewise. 2111 * genopinit.c: Likewise. 2112 * genpreds.c: Likewise. 2113 * gensupport.c: Likewise. 2114 * ggc-common.c: Likewise. 2115 * ggc-page.c: Likewise. 2116 * ggc-zone.c: Likewise. 2117 * ggc.h: Likewise. 2118 * gimple-iterator.c: Likewise. 2119 * gimple-low.c: Likewise. 2120 * gimple-pretty-print.c: Likewise. 2121 * gimple.c: Likewise. 2122 * gimple.def: Likewise. 2123 * gimple.h: Likewise. 2124 * gimplify.c: Likewise. 2125 * graphds.c: Likewise. 2126 * graphite-clast-to-gimple.c: Likewise. 2127 * gthr-nks.h: Likewise. 2128 * gthr-posix.c: Likewise. 2129 * gthr-posix.h: Likewise. 2130 * gthr-posix95.h: Likewise. 2131 * gthr-single.h: Likewise. 2132 * gthr-tpf.h: Likewise. 2133 * gthr-vxworks.h: Likewise. 2134 * gthr.h: Likewise. 2135 * haifa-sched.c: Likewise. 2136 * hard-reg-set.h: Likewise. 2137 * hooks.c: Likewise. 2138 * hooks.h: Likewise. 2139 * hosthooks.h: Likewise. 2140 * hwint.h: Likewise. 2141 * ifcvt.c: Likewise. 2142 * incpath.c: Likewise. 2143 * init-regs.c: Likewise. 2144 * integrate.c: Likewise. 2145 * ipa-cp.c: Likewise. 2146 * ipa-inline.c: Likewise. 2147 * ipa-prop.c: Likewise. 2148 * ipa-pure-const.c: Likewise. 2149 * ipa-reference.c: Likewise. 2150 * ipa-struct-reorg.c: Likewise. 2151 * ipa-struct-reorg.h: Likewise. 2152 * ipa-type-escape.c: Likewise. 2153 * ipa-type-escape.h: Likewise. 2154 * ipa-utils.c: Likewise. 2155 * ipa-utils.h: Likewise. 2156 * ipa.c: Likewise. 2157 * ira-build.c: Likewise. 2158 * ira-color.c: Likewise. 2159 * ira-conflicts.c: Likewise. 2160 * ira-costs.c: Likewise. 2161 * ira-emit.c: Likewise. 2162 * ira-int.h: Likewise. 2163 * ira-lives.c: Likewise. 2164 * ira.c: Likewise. 2165 * jump.c: Likewise. 2166 * lambda-code.c: Likewise. 2167 * lambda-mat.c: Likewise. 2168 * lambda-trans.c: Likewise. 2169 * lambda.h: Likewise. 2170 * langhooks.c: Likewise. 2171 * lcm.c: Likewise. 2172 * libgcov.c: Likewise. 2173 * lists.c: Likewise. 2174 * loop-doloop.c: Likewise. 2175 * loop-init.c: Likewise. 2176 * loop-invariant.c: Likewise. 2177 * loop-iv.c: Likewise. 2178 * loop-unroll.c: Likewise. 2179 * lower-subreg.c: Likewise. 2180 * lto-cgraph.c: Likewise. 2181 * lto-compress.c: Likewise. 2182 * lto-opts.c: Likewise. 2183 * lto-section-in.c: Likewise. 2184 * lto-section-out.c: Likewise. 2185 * lto-streamer-in.c: Likewise. 2186 * lto-streamer-out.c: Likewise. 2187 * lto-streamer.c: Likewise. 2188 * lto-streamer.h: Likewise. 2189 * lto-symtab.c: Likewise. 2190 * lto-wpa-fixup.c: Likewise. 2191 * matrix-reorg.c: Likewise. 2192 * mcf.c: Likewise. 2193 * mode-switching.c: Likewise. 2194 * modulo-sched.c: Likewise. 2195 * omega.c: Likewise. 2196 * omega.h: Likewise. 2197 * omp-low.c: Likewise. 2198 * optabs.c: Likewise. 2199 * optabs.h: Likewise. 2200 * opts-common.c: Likewise. 2201 * opts.c: Likewise. 2202 * params.def: Likewise. 2203 * params.h: Likewise. 2204 * passes.c: Likewise. 2205 * plugin.c: Likewise. 2206 * postreload-gcse.c: Likewise. 2207 * postreload.c: Likewise. 2208 * predict.c: Likewise. 2209 * predict.def: Likewise. 2210 * pretty-print.c: Likewise. 2211 * pretty-print.h: Likewise. 2212 * print-rtl.c: Likewise. 2213 * print-tree.c: Likewise. 2214 * profile.c: Likewise. 2215 * read-rtl.c: Likewise. 2216 * real.c: Likewise. 2217 * recog.c: Likewise. 2218 * reg-stack.c: Likewise. 2219 * regcprop.c: Likewise. 2220 * reginfo.c: Likewise. 2221 * regmove.c: Likewise. 2222 * regrename.c: Likewise. 2223 * regs.h: Likewise. 2224 * regstat.c: Likewise. 2225 * reload.c: Likewise. 2226 * reload1.c: Likewise. 2227 * resource.c: Likewise. 2228 * rtl.c: Likewise. 2229 * rtl.def: Likewise. 2230 * rtl.h: Likewise. 2231 * rtlanal.c: Likewise. 2232 * sbitmap.c: Likewise. 2233 * sched-deps.c: Likewise. 2234 * sched-ebb.c: Likewise. 2235 * sched-int.h: Likewise. 2236 * sched-rgn.c: Likewise. 2237 * sched-vis.c: Likewise. 2238 * sdbout.c: Likewise. 2239 * sel-sched-dump.c: Likewise. 2240 * sel-sched-dump.h: Likewise. 2241 * sel-sched-ir.c: Likewise. 2242 * sel-sched-ir.h: Likewise. 2243 * sel-sched.c: Likewise. 2244 * sel-sched.h: Likewise. 2245 * sese.c: Likewise. 2246 * sese.h: Likewise. 2247 * simplify-rtx.c: Likewise. 2248 * stack-ptr-mod.c: Likewise. 2249 * stmt.c: Likewise. 2250 * stor-layout.c: Likewise. 2251 * store-motion.c: Likewise. 2252 * stringpool.c: Likewise. 2253 * stub-objc.c: Likewise. 2254 * sync-builtins.def: Likewise. 2255 * target-def.h: Likewise. 2256 * target.h: Likewise. 2257 * targhooks.c: Likewise. 2258 * targhooks.h: Likewise. 2259 * timevar.c: Likewise. 2260 * tlink.c: Likewise. 2261 * toplev.c: Likewise. 2262 * toplev.h: Likewise. 2263 * tracer.c: Likewise. 2264 * tree-affine.c: Likewise. 2265 * tree-affine.h: Likewise. 2266 * tree-browser.def: Likewise. 2267 * tree-call-cdce.c: Likewise. 2268 * tree-cfg.c: Likewise. 2269 * tree-cfgcleanup.c: Likewise. 2270 * tree-chrec.c: Likewise. 2271 * tree-chrec.h: Likewise. 2272 * tree-complex.c: Likewise. 2273 * tree-data-ref.c: Likewise. 2274 * tree-data-ref.h: Likewise. 2275 * tree-dfa.c: Likewise. 2276 * tree-dump.c: Likewise. 2277 * tree-dump.h: Likewise. 2278 * tree-eh.c: Likewise. 2279 * tree-flow-inline.h: Likewise. 2280 * tree-flow.h: Likewise. 2281 * tree-if-conv.c: Likewise. 2282 * tree-inline.c: Likewise. 2283 * tree-into-ssa.c: Likewise. 2284 * tree-loop-distribution.c: Likewise. 2285 * tree-loop-linear.c: Likewise. 2286 * tree-mudflap.c: Likewise. 2287 * tree-nested.c: Likewise. 2288 * tree-nomudflap.c: Likewise. 2289 * tree-nrv.c: Likewise. 2290 * tree-object-size.c: Likewise. 2291 * tree-optimize.c: Likewise. 2292 * tree-outof-ssa.c: Likewise. 2293 * tree-parloops.c: Likewise. 2294 * tree-pass.h: Likewise. 2295 * tree-phinodes.c: Likewise. 2296 * tree-predcom.c: Likewise. 2297 * tree-pretty-print.c: Likewise. 2298 * tree-profile.c: Likewise. 2299 * tree-scalar-evolution.c: Likewise. 2300 * tree-ssa-address.c: Likewise. 2301 * tree-ssa-alias.c: Likewise. 2302 * tree-ssa-ccp.c: Likewise. 2303 * tree-ssa-coalesce.c: Likewise. 2304 * tree-ssa-copy.c: Likewise. 2305 * tree-ssa-copyrename.c: Likewise. 2306 * tree-ssa-dce.c: Likewise. 2307 * tree-ssa-dom.c: Likewise. 2308 * tree-ssa-dse.c: Likewise. 2309 * tree-ssa-forwprop.c: Likewise. 2310 * tree-ssa-ifcombine.c: Likewise. 2311 * tree-ssa-live.c: Likewise. 2312 * tree-ssa-live.h: Likewise. 2313 * tree-ssa-loop-ch.c: Likewise. 2314 * tree-ssa-loop-im.c: Likewise. 2315 * tree-ssa-loop-ivcanon.c: Likewise. 2316 * tree-ssa-loop-ivopts.c: Likewise. 2317 * tree-ssa-loop-manip.c: Likewise. 2318 * tree-ssa-loop-niter.c: Likewise. 2319 * tree-ssa-loop-prefetch.c: Likewise. 2320 * tree-ssa-loop-unswitch.c: Likewise. 2321 * tree-ssa-loop.c: Likewise. 2322 * tree-ssa-math-opts.c: Likewise. 2323 * tree-ssa-operands.c: Likewise. 2324 * tree-ssa-operands.h: Likewise. 2325 * tree-ssa-phiopt.c: Likewise. 2326 * tree-ssa-phiprop.c: Likewise. 2327 * tree-ssa-pre.c: Likewise. 2328 * tree-ssa-propagate.c: Likewise. 2329 * tree-ssa-reassoc.c: Likewise. 2330 * tree-ssa-sccvn.c: Likewise. 2331 * tree-ssa-sink.c: Likewise. 2332 * tree-ssa-structalias.c: Likewise. 2333 * tree-ssa-ter.c: Likewise. 2334 * tree-ssa-threadedge.c: Likewise. 2335 * tree-ssa-threadupdate.c: Likewise. 2336 * tree-ssa-uncprop.c: Likewise. 2337 * tree-ssa.c: Likewise. 2338 * tree-ssanames.c: Likewise. 2339 * tree-switch-conversion.c: Likewise. 2340 * tree-tailcall.c: Likewise. 2341 * tree-vect-data-refs.c: Likewise. 2342 * tree-vect-generic.c: Likewise. 2343 * tree-vect-loop-manip.c: Likewise. 2344 * tree-vect-loop.c: Likewise. 2345 * tree-vect-patterns.c: Likewise. 2346 * tree-vect-slp.c: Likewise. 2347 * tree-vect-stmts.c: Likewise. 2348 * tree-vectorizer.c: Likewise. 2349 * tree-vectorizer.h: Likewise. 2350 * tree-vrp.c: Likewise. 2351 * tree.c: Likewise. 2352 * tree.def: Likewise. 2353 * tree.h: Likewise. 2354 * treestruct.def: Likewise. 2355 * unwind-compat.c: Likewise. 2356 * unwind-dw2-fde-glibc.c: Likewise. 2357 * unwind-dw2.c: Likewise. 2358 * value-prof.c: Likewise. 2359 * value-prof.h: Likewise. 2360 * var-tracking.c: Likewise. 2361 * varasm.c: Likewise. 2362 * varpool.c: Likewise. 2363 * vec.c: Likewise. 2364 * vec.h: Likewise. 2365 * vmsdbgout.c: Likewise. 2366 * web.c: Likewise. 2367 * xcoffout.c: Likewise. 2368 23692009-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2370 2371 * pa.c (output_call): Only use sr4 for long interspace calls if 2372 call binds local and generating non PIC code. 2373 (attr_length_call): Adjust length calculation for above. 2374 23752009-11-25 Uros Bizjak <ubizjak@gmail.com> 2376 2377 * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute. 2378 (add<mode>3_carry): Change operand order of plus RTX. 2379 (*add<mode>3_carry): Ditto. 2380 (*addsi3_carry_zext): Ditto. 2381 (*add<dwi>3_doubleword): Update for changed operand order. 2382 (*negti2_1 splitter): Ditto. 2383 (*negdi2_1 splitter): Ditto. 2384 (<plusminus_insn><mode>3_carry): Macroize expander from 2385 {add,sub}<mode>3_carry patterns using plusminus code iterator. 2386 (*<plusminus_insn><mode>3_carry): Macroize insn from 2387 *{add,sub}<mode>3_carry patetrns using plusminus code iterator. 2388 (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2 2389 patterns using SDWIM mode iterator. 2390 (*neg<dwi>2_doubleword): New insn_and_split pattern. Macroize 2391 pattern from *neg{di,ti}2_1 patterns and corresponding splitters 2392 using DWIH mode iterator. 2393 (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns 2394 using SWI mode iterator. 2395 (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns. 2396 (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2 2397 patterns using SWIM mode iterator. 2398 (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1 2399 patterns using SWI248 mode iterator. 2400 (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2 2401 patterns using SWI mode iterator. 2402 (*one_cmpl<mode>2_2 splitter): Macroize splitter from 2403 one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator. 2404 24052009-11-24 Michael Matz <matz@suse.de> 2406 2407 * expr.c (set_storage_via_libcall): Fix build_call_expr call. 2408 24092009-11-24 David Binderman <dcb314@hotmail.com> 2410 2411 * expr.c (store_field): Remove set but not used local variable 2412 width_mask. 2413 (expand_expr_real_2): Remove treeop2. 2414 * gcse.c (update_ld_motion_stores): Remove new_rtx. 2415 * haifa-sched.c (max_issue): Remove points. 2416 (sched_create_recovery_edges): Remove e. 2417 * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode. 2418 24192009-11-24 Nick Clifton <nickc@redhat.com> 2420 2421 * config/v850/v850.c (function_arg): Fix handling of zero-length 2422 function arguments. 2423 24242009-11-24 Michael Matz <matz@suse.de> 2425 2426 * tree.h (union tree_ann_d): Don't declare. 2427 (tree_base): Remove ann field. 2428 (struct var_ann_d): Declare forward. 2429 (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field. 2430 (DECL_VAR_ANN_PTR): New macro. 2431 * tree-dfa.c (create_var_ann): Rewrite in terms of above macro, 2432 accept only VAR, PARM or RESULT decls. 2433 (create_tree_common_ann): Remove. 2434 (remove_referenced_var): Use DECL_VAR_ANN_PTR. 2435 * tree-eh.c (lookup_expr_eh_lp): Remove. 2436 * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of 2437 DECL_VAR_ANN_PTR. 2438 (ann_type, tree_common_ann, get_tree_common_ann): Remove. 2439 * tree-flow.h (enum tree_ann_type): Remove. 2440 (struct tree_ann_common_d): Remove. 2441 (struct var_ann_d): Remove common field. 2442 (union tree_ann_d): Remove. 2443 (tree_ann_t, tree_ann_common_t): Remove typedefs. 2444 (tree_common_ann, get_tree_common_ann, ann_type, 2445 create_tree_common_ann, lookup_expr_eh_lp): Don't declare. 2446 * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR. 2447 * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR. 2448 * builtins.c (expand_builtin_memcpy): Use 2449 currently_expanding_gimple_stmt instead of tree annotation. 2450 (expand_builtin_memset_args): Ditto. 2451 * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable. 2452 (expand_call_stmt): Don't set tree annotation. 2453 (expand_gimple_basic_block): Set currently_expanding_gimple_stmt. 2454 * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp. 2455 * gimple.h (currently_expanding_gimple_stmt): Declare. 2456 24572009-11-24 Paolo Carlini <paolo.carlini@oracle.com> 2458 2459 * dwarf2out.c (add_location_or_const_value_attribute): Remove 2460 useless NOTE_VAR_LOCATION_STATUS call. 2461 * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy. 2462 24632009-11-24 Rafael Avila de Espindola <espindola@google.com> 2464 2465 * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if 2466 being called recursively. 2467 24682009-11-24 Basile Starynkevitch <basile@starynkevitch.net> 2469 2470 * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h 2471 $(MD5_H) params.def params.h prefix.h tree-inline.h. 2472 24732009-11-24 Paul Brook <paul@codesourcery.com> 2474 2475 * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment 2476 typo. 2477 24782009-11-24 Julian Brown <julian@codesourcery.com> 2479 Paul Brook <paul@codesourcery.com> 2480 2481 * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define. 2482 (arm_dwarf_register_span): New function. 2483 (arm_dbx_register_number): Add VFPv3 dwarf numbering. 2484 24852009-11-24 David Binderman <dcb314@hotmail.com> 2486 2487 * cfgrtl.c (commit_one_edge_insertion): Remove set but not used 2488 local variable bb_note. 2489 * dominance.c (get_dominated_by): Likewise local var n. 2490 (output_file_names): Likewise local var idx. 2491 (add_location_or_const_value_attribute): Likewise local var status. 2492 * dwarf2out.c (gen_variable_die): Likewise local var field. 2493 * emit-rtl.c (no_line_numbers): Remove. 2494 (init_emit_once): Remove line_numbers parameter. 2495 * rtl.h (init_emit_once): Adjust prototype. 2496 * toplev.c (backend_init): Adjust init_emit_once call. 2497 24982009-11-24 Richard Guenther <rguenther@suse.de> 2499 2500 PR tree-optimization/42142 2501 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): 2502 Handle iv-dependent (non-)kills properly. 2503 (mark_aliased_reaching_defs_necessary): Pass the basic-block 2504 of the reference statement to mark_aliased_reaching_defs_necessary_1. 2505 25062009-11-24 Martin Jambor <mjambor@suse.cz> 2507 2508 PR tree-optimization/42154 2509 * tree-sra.c (struct access): Added comments. 2510 (sra_modify_expr): Build references to the old aggregate with 2511 build_ref_for_offset instead of reusing access->expr. 2512 (load_assign_lhs_subreplacements): Likewise. 2513 25142009-11-24 Uros Bizjak <ubizjak@gmail.com> 2515 2516 * config/i386/i386.md (add<mode>3_carry): Change insn pattern 2517 to expander. 2518 (sub<mode>3_carry): Ditto. 2519 (x86_mov<mode>cc_0_m1): Ditto. 2520 (*add<mode>3_carry): New insn pattern. Use VOIDmode match_operator 2521 for ix86_carry_flag_operator operator predicate. 2522 (*sub<mode>3_carry): Ditto. 2523 (*x86_mov<mode>cc_0_m1): Ditto. 2524 (*addsi3_carry_zext): Use VOIDmode match_operator for 2525 ix86_carry_flag_operator operator predicate. 2526 (*subsi3_carry_zext): Ditto. 2527 (*x86_mov<mode>cc_0_m1_s): Ditto. 2528 (*x86_mov<mode>cc_0_m1_neg): Ditto. 2529 * config/i386/predocates.md (ix86_carry_flag_operator): Do not 2530 check operator sub-expressions for FLAGS_REG and const0_rtx. 2531 * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype. 2532 (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1. 2533 (ix86_expand_int_addcc): Update calls to 2534 gen_{add,sub}{qi,hi,si,di}3_carry. Do not set mode of compare_op. 2535 (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry. 2536 Do not set mode of compare operation. 2537 25382009-11-23 Jan Hubicka <jh@suse.cz> 2539 2540 PR middle-end/42151 2541 * ipa-inline.c (inline_transform): Avoid ICE when transform is called 2542 twice. 2543 25442009-11-23 Jan Hubicka <jh@suse.cz> 2545 2546 * ipa-cp.c (ipcp_compute_node_scale): Work around completely 2547 wrong profile updates. 2548 * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block 2549 having largest frequency. 2550 * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne 2551 used uninitalized warning. 2552 * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block 2553 frequencies. 2554 25552009-11-23 Uros Bizjak <ubizjak@gmail.com> 2556 2557 * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead 2558 of gen_rtx_REG to generate operand 5. 2559 (*cmp_ssub_sidi): Ditto. 2560 25612009-11-23 Richard Henderson <rth@redhat.com> 2562 2563 * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare 2564 mismatch. 2565 25662009-11-23 Paul Brook <paul@codesourcery.com> 2567 2568 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special 2569 case for noreturn functions. 2570 (arm_compute_save_reg_mask): Remove special noreturn handling. 2571 25722009-11-23 Richard Guenther <rguenther@suse.de> 2573 2574 * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access 2575 size for DECL bases. 2576 25772009-11-22 Richard Henderson <rth@redhat.com> 2578 2579 * i386.c (avx_vpermilp_parallel): New function. 2580 * i386-protos.h: Declare it. 2581 * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand, 2582 avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New. 2583 * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators. 2584 (ssescalarnum, ssedoublesizemode): Add AVX modes. 2585 (vpermilbits): Remove. 2586 (avx_vpermil<mode>): Change insns to expanders. 2587 (*avx_vpermil<mode>): New. Use vec_select. 2588 25892009-11-22 Richard Earnshaw <rearnsha@arm.com> 2590 2591 * opts.c (decode_options): Don't enable flag_schedule_insns 2592 when optimizing for size. 2593 * doc/invoke.texi: Document change. 2594 25952009-11-22 Uros Bizjak <ubizjak@gmail.com> 2596 2597 PR target/42113 2598 * config/alpha/alpha.md (*cmp_sadd_si): Change mode 2599 of scratch register to SImode. 2600 (*cmp_sadd_sidi): Ditto. 2601 (*cmp_ssub_si): Ditto. 2602 (*cmp_ssub_sidi): Ditto. 2603 26042009-11-21 Ian Lance Taylor <iant@google.com> 2605 2606 * Makefile.in (HOST_LIBS): Move higher in file. 2607 (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS) 2608 is not empty, set to $(CC) and $(CFLAGS). 2609 26102009-11-22 Martin Jambor <mjambor@suse.cz> 2611 2612 * tree-cfg.c (verify_types_in_gimple_reference): Error out on 2613 V_C_E of an SSA_NAME or an invariant if lvalue is required. 2614 (verify_gimple_call): Verify LHS also with with 2615 verify_types_in_gimple_reference. 2616 26172009-11-21 Martin Jambor <mjambor@suse.cz> 2618 2619 PR middle-end/42025 2620 * tree-sra.c (access_precludes_ipa_sra_p): New function. 2621 (splice_param_accesses): Check all accesses by calling 2622 access_precludes_ipa_sra_p. 2623 (sra_ipa_modify_expr): Rename argument erite to dont_convert and do 2624 not convert types if it is true. 2625 (sra_ipa_modify_assign): Convert types in case of mismatch. 2626 26272009-11-21 Kaushik Phatak <kaushik.phatak@kpitcummins.com> 2628 2629 * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate 2630 for operand 1. 2631 26322009-11-21 Adam Nemet <adambnemet@gmail.com> 2633 2634 * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef. 2635 (mips_mulsidi3_gen_fn): Declare new function. 2636 * config/mips/mips.c (mips_mulsidi3_gen_fn): New function. 2637 * config/mips/mips.md (<u>mulsidi3): Change condition to use 2638 mips_mulsidi3_gen_fn. Use mips_mulsidi3_gen_fn to generate the insn. 2639 (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3. 2640 (mulsidi3_64bit_dmul): New define_insn. 2641 26422009-11-21 Ben Elliston <bje@au.ibm.com> 2643 2644 * gengtype-lex.l: Enable noinput flex option. 2645 (YY_NO_INPUT): Remove define. 2646 26472009-11-21 Alexandre Oliva <aoliva@redhat.com> 2648 2649 * tree-ssa.c (find_released_ssa_name): Handle NULL wi. 2650 (insert_debug_temp_for_var_def): Handle degenerate PHI nodes. 2651 (insert_debug_temps_for_defs): Handle PHI nodes. 2652 * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released 2653 SSA names. 2654 26552009-11-21 Alexandre Oliva <aoliva@redhat.com> 2656 2657 * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs 2658 after remove_phi_node. 2659 26602009-11-21 Alexandre Oliva <aoliva@redhat.com> 2661 2662 PR tree-optimization/42078 2663 * gimple.h (gimple_replace_lhs): New declaration. 2664 * gimple.c (gimple_replace_lhs): New function. 2665 * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before 2666 modifying the call. 2667 26682009-11-20 Sebastian Pop <sebastian.pop@amd.com> 2669 2670 * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p. 2671 (xop_mulv2div2di3_low): Same. 2672 (*xop_pmacsdqh_mem): Same. 2673 26742009-11-20 Richard Henderson <rth@redhat.com> 2675 2676 * config/i386/i386-builtin-types.awk: New file. 2677 * config/i386/i386-builtin-types.def: New file. 2678 * config/i386/t-i386: Use them to build i386-builtin-types.inc. 2679 * config/i386/i386.c: Include it. 2680 (ix86_builtin_type_tab, ix86_get_builtin_type): New. 2681 (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New. 2682 (struct builtin_isa): Remove GTY marker. Replace tree type with 2683 ix86_builtin_func_type; add set_and_not_built_p. 2684 (def_builtin): Change type parameter to tcode; use 2685 ix86_get_builtin_func_type; update all callers. Accept zero mask 2686 to mean the builtin is unconditionally available. 2687 (ix86_add_new_builtins): Use set_and_not_built_p instead of type 2688 being set to NULL. 2689 (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove. 2690 Update some users to rationalized enumeration codes from new include. 2691 (enum multi_arg_type): Remove. Replace all enumeration values 2692 with defines to new ix86_builtin_func_type. 2693 (ix86_init_mmx_sse_builtins): Don't build any types here. Defer 2694 all type resolution to def_builtin. 2695 (ix86_init_builtin_types): Split out from ... 2696 (ix86_init_builtins): ... here. Use ix86_get_builtin_func_type. 2697 26982009-11-20 Michael Meissner <meissner@linux.vnet.ibm.com> 2699 2700 PR target/41787 2701 * config/rs6000/rs6000.c (struct machine_function): Revert 2702 2009-10-23 change to set VRSAVE to non-0 if we use VSX. 2703 (rs6000_expand_to_rtl_hook): Ditto. 2704 (rs6000_check_vector_mode): Ditto. 2705 (compute_vrsave_mask): Ditto. 2706 27072009-11-20 Paul Brook <paul@codesourcery.com> 2708 2709 * doc/invoke.texi: Document ARM -mcpu=cortex-a5. 2710 * config/arm/arm-cores.def: Add cortex-a5. 2711 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5. 2712 * config/arm/arm-tune.md: Regenerate. 2713 27142009-11-20 Olga Golovanevsky <olga@il.ibm.com> 2715 2716 PR middle-end/39960 2717 * ipa-struct-reorg.c (find_pos_in_stmt): New parameter. 2718 (ref_pos): New field in structure. 2719 (insert_new_var_in_stmt): New function. 2720 2721 27222009-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2723 2724 * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint. 2725 * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define. 2726 (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define. 2727 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define. 2728 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, 2729 INT_LEAST64_TYPE): Define. 2730 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE, 2731 UINT_LEAST64_TYPE): Define. 2732 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE, 2733 INT_FAST64_TYPE): Define. 2734 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, 2735 UINT_FAST64_TYPE): Define. 2736 (INTPTR_TYPE, UINTPTR_TYPE): Define. 2737 27382009-11-20 Julian Brown <julian@codesourcery.com> 2739 2740 * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM 2741 specially for Thumb-1. 2742 (ASM_OUTPUT_REG_POP): Likewise. 2743 27442009-11-19 Jason Merrill <jason@redhat.com> 2745 2746 * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT. 2747 27482009-11-19 Basile Starynkevitch <basile@starynkevitch.net> 2749 Rafael Avila de Espindola <espindola@google.com> 2750 2751 * doc/plugins.texi (Plugin initialization): Added advices for 2752 retrieving the version of GCC at plugin compilation and loading times. 2753 27542009-11-19 Basile Starynkevitch <basile@starynkevitch.net> 2755 2756 * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition. 2757 (dump_active_plugins): output to file everything. Use 2758 internationalized dump & FMT_FOR_PLUGIN_EVENT. 2759 27602009-11-19 Richard Guenther <rguenther@suse.de> 2761 2762 * gimple.c (canonicalize_cond_expr_cond): Strip conversions 2763 around truth-valued expressions. 2764 * tree.c (free_lang_data): Untangle check for LTO frontend. 2765 27662009-11-19 Jakub Jelinek <jakub@redhat.com> 2767 2768 * tree.c (need_assembler_name_p): Use cgraph_get_node instead 2769 of cgraph_node_for_decl. 2770 * cgraph.h (cgraph_node_for_decl): Remove prototype. 2771 * cgraph.c (cgraph_node_for_decl): Remove. 2772 (cgraph_get_node): Just return NULL if !cgraph_hash. 2773 27742009-11-19 Paul Brook <paul@codesourcery.com> 2775 2776 * config.gcc: Add new ARM --with-fpu options. 2777 * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16. 2778 * config/arm/arm.c (all_fpus): Add fpv4-sp-d16. 2779 27802009-11-18 Richard Guenther <rguenther@suse.de> 2781 2782 * gimple.h (union gimple_statement_d): Add gsmembase member. 2783 (gimple_vuse_op): Use gsmembase for access. 2784 (gimple_vdef_op): Likewise. 2785 (gimple_vuse): Likewise. 2786 (gimple_vdef): Likewise. 2787 (gimple_vuse_ptr): Likewise. 2788 (gimple_vdef_ptr): Likewise. 2789 (gimple_set_vuse): Likewise. 2790 (gimple_set_vdef): Likewise. 2791 * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add. 2792 27932009-11-18 Daniel Jacobowitz <dan@codesourcery.com> 2794 2795 * doc/arm-neon-intrinsics.texi: Regenerated. 2796 27972009-11-18 Daniel Jacobowitz <dan@codesourcery.com> 2798 2799 * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives. 2800 28012009-11-18 Paul Brook <paul@codesourcery.com> 2802 Daniel Jacobowitz <dan@codesourcery.com> 2803 2804 * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define. 2805 (arm_arch7em): New variable. 2806 (all_architectures): Add armv7e-m. 2807 (arm_override_options): Set arm_arch7em. 2808 * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): 2809 Include arm_arch7em. 2810 (arm_arch7em): Declare. 2811 28122009-11-18 Richard Guenther <rguenther@suse.de> 2813 2814 * lto-streamer-in.c (input_gimple_stmt): Assert that we find 2815 a valid field decl if checking is enabled. 2816 28172009-11-18 Martin Jambor <mjambor@suse.cz> 2818 2819 * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid. 2820 (lto_ipa_fixup_call_notes): Declare. 2821 * ipa-prop.c (ipa_note_param_call): Store gimple uid. 2822 (update_call_notes_after_inlining): Copy call stmt uid to the new 2823 edge. 2824 (ipa_write_param_call_note): New function. 2825 (ipa_read_param_call_note): New function 2826 (ipa_write_node_info): Write also param call notes. Removed a bogus 2827 comment, reformatted to fit 80 columns. 2828 (ipa_read_node_info): Read also param call notes. Removed a bogus 2829 comment. Remove ipa_edge_args_vector growth. 2830 (lto_ipa_fixup_call_notes): New function. 2831 * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook. 2832 * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect 2833 inlining regardless of flag_wpa. 2834 (cgraph_decide_inlining_of_small_functions): Likewise. 2835 (cgraph_decide_inlining): Likewise. 2836 (inline_read_summary): Likewise. 2837 28382009-11-18 Jan Hubicka <jh@suse.cz> 2839 2840 * predict.c (compute_function_frequency): Export. 2841 * predict.h (compute_function_frequency): Declare. 2842 * tree-optimize.c (execute_fixup_cfg): Rescale frequencies. 2843 28442009-11-18 Martin Jambor <mjambor@suse.cz> 2845 2846 * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids 2847 on all nodes we write summaries for. 2848 28492009-11-18 Shujing Zhao <pearly.zhao@oracle.com> 2850 2851 PR middle-end/22201 2852 * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH) 2853 (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM) 2854 (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE) 2855 (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP) 2856 (PARAM_MIN_INSN_TO_PREFETCH_RATIO) 2857 (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO) 2858 (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the 2859 description string. 2860 28612009-11-18 Jakub Jelinek <jakub@redhat.com> 2862 2863 * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location 2864 unnecessarily. 2865 (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars. 2866 2867 PR c++/3187 2868 * cgraph.h (struct cgraph_node): Add same_body and same_body_alias 2869 fields. 2870 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New 2871 prototypes. 2872 * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks, 2873 cgraph_materialize_all_clones): Handle same_body aliases. 2874 * cgraph.c (cgraph_allocate_node): New function. 2875 (cgraph_create_node): Use it. 2876 (cgraph_node_for_decl, cgraph_node, cgraph_get_node, 2877 cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases. 2878 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New 2879 functions. 2880 * lto-cgraph.c (lto_output_node): Stream out same_body aliases. 2881 (input_node): Stream in same_body aliases. 2882 * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers 2883 for same_body aliases. 2884 (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases. 2885 28862009-11-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2887 2888 PR other/39888 2889 * config/darwin.h: Use the extension stub libraries to access 2890 current libgcc_s features. 2891 28922009-11-18 Alexandre Oliva <aoliva@redhat.com> 2893 2894 PR debug/41926 2895 * tree-vect-loop.c (vect_loop_kill_debug_uses): New. 2896 (vect_transform_loop): Call it. 2897 28982009-11-18 Alexandre Oliva <aoliva@redhat.com> 2899 2900 * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of 2901 released SSA names. 2902 29032009-11-18 Alexandre Oliva <aoliva@redhat.com> 2904 2905 PR debug/41888 2906 PR debug/41886 2907 * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts 2908 are ok. 2909 * graphite-sese-to-poly.c (graphite_stmt_p): Likewise. 2910 (try_generate_gimple_bb): Skip debug stmts when finding data refs. 2911 * sese.c (sese_build_liveouts_bb): Skip debug stmts. 2912 (sese_bad_liveouts_use): New. 2913 (sese_reset_debug_liveouts_bb): New. 2914 (sese_build_liveouts): Use it. 2915 (rename_variables_in_stmt): Reset debug stmts rather than creating 2916 new vars for them. 2917 (expand_scalar_variable_stmt): Likewise. 2918 29192009-11-18 Alexandre Oliva <aoliva@redhat.com> 2920 2921 * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns. 2922 (df_ref_remove): Likewise. 2923 29242009-11-17 Jan Hubicka <jh@suse.cz> 2925 2926 * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile 2927 info. 2928 29292009-11-17 Eric Botcazou <ebotcazou@adacore.com> 2930 2931 * toplev.c (process_options): Remove dead code. 2932 * doc/invoke.texi (-frename-registers): Mention -fpeel-loops. 2933 29342009-11-17 Rafael Avila de Espindola <espindola@google.com> 2935 2936 * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the 2937 nodes. 2938 29392009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2940 2941 PR tree-optimization/41857 2942 * tree-ssa-address.c (move_hint_to_base): Use void pointer to 2943 TYPE's address space instead of pointer to TYPE. 2944 29452009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2946 2947 * reload.c (find_reloads_address): Fix typo. 2948 29492009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2950 2951 * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC 2952 registers in leaf functions if possible. 2953 29542009-11-17 Maxim Kuvyrkov <maxim@codesourcery.com> 2955 2956 * config/m68k/m68k-devices.def: Add MCF5441x family. 2957 29582009-11-17 Jan Hubicka <jh@suse.cz> 2959 2960 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access 2961 removed node. 2962 * cgraphunit.c (verify_cgraph_node): Verify frequencies for match. 2963 29642009-11-17 Uros Bizjak <ubizjak@gmail.com> 2965 2966 * config/i386/predicates.md (x86_64_szext_general_operand): Do not 2967 nest ior expressions. 2968 (x86_64_szext_nonmemory_operand): Ditto. 2969 (call_insn_operand): Ditto. 2970 29712009-11-16 Alexandre Oliva <aoliva@redhat.com> 2972 2973 * stmt.c (expand_asm_stmt): Get locus from stmt. 2974 29752009-11-16 Alexandre Oliva <aoliva@redhat.com> 2976 2977 * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>: 2978 Create the decl label for the new dest block on demand. Require 2979 a fallthrough edge if no asm labels were redirected. 2980 29812009-11-16 Uros Bizjak <ubizjak@gmail.com> 2982 2983 * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for 2984 operand 1 predicate. 2985 (cstoresi4): Ditto for operand 2. 2986 (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4 2987 patterns using SDWIM mode iterator. 2988 (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns 2989 using SWIM mode iterator. 2990 (cmpdi_1): Rename from cmpdi_1_rex64. 2991 (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using 2992 SWI48 mode iterator. 2993 (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns 2994 using SWI mode iterator. 2995 (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1. 2996 (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1. 2997 (*cmpqi_ext_3_insn): Make private. 2998 (*cmpqi_ext_3_insn_rex64): Make private. 2999 (cmpstrnsi): Update for renamed cmpdi_1_rex64. 3000 * config/i386/predicates.md (cmpsi_operand): Remove. 3001 30022009-11-16 Paul Brook <paul@codesourcery.com> 3003 3004 * doc/invoke.texi: Document ARM VFPv4 based FPUs. 3005 * config/arm/arm.c (all_fpus): Add VFPv4 entries. 3006 30072009-11-14 Jan Hubicka <jh@suse.cz> 3008 3009 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper 3010 ENTRY_BLOCK_PTR. 3011 * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely 3012 zero out all callees. 3013 * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for 3014 frequency and count match. 3015 * ipa-inline.c (update_noncloned_frequencies): New function. 3016 (cgraph_clone_inlined_nodes): Use it. 3017 * tree-inline.c (copy_bb): Fix frequency scaling; output 3018 diagnostic on frequency mismatches to dump file. 3019 (initialize_cfun): Do not scale frequency; fix count scaling; 3020 initialize entry and exit block frequencies; copy profile info. 3021 (copy_cfg_body): Use frequency_scale as argument; fix count scaling. 3022 (copy_body): Use frequency_scale as argument. 3023 (expand_call_inline): Compute frequency scale and output diagnostic 3024 to dump file. 3025 (delete_unreachable_blocks_update_callgrah): Remove checking that 3026 has to be done after edge redirection. 3027 (tree_function_versioning): Update initialize_cfun and copy_body call. 3028 30292009-11-14 Jan Hubicka <jh@suse.cz> 3030 3031 * cgraph.c (cgraph_release_function_body): Update use of 3032 ipa_transforms_to_apply. 3033 (cgraph_remove_node): Remove ipa_transforms_to_apply. 3034 * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply. 3035 * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for 3036 copied body. 3037 (cgraph_materialize_clone): Remove original if dead. 3038 * lto-streamer-in.c (lto_read_body): Remove FIXME and 3039 ipa_transforms_to_apply hack. 3040 * function.h (struct function): Add ipa_transforms_to_apply. 3041 * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals. 3042 * tree-inline.c (copy_bb): Update sanity check. 3043 (initialize_cfun): Do not copy ipa_transforms_to_apply. 3044 (expand_call_inline): remove dead clone originals. 3045 (tree_function_versioning): Merge transformation queues. 3046 * passes.c (add_ipa_transform_pass): Remove. 3047 (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply 3048 tracking. 3049 (execute_all_ipa_transforms): Update. 3050 (execute_one_pass): Update. 3051 30522009-11-14 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 3053 3054 PR target/21078, 21080 3055 * config/avr/avr.c (avr_return_addr_rtx): New function for 3056 builtin_return_address. 3057 (expand_prologue): Calculate stack usage. 3058 (avr_asm_function_end_prologue): Output stack size and offset label. 3059 * config/avr/avr.h (RETURN_ADDR_RTX): Replace. 3060 (machine_function): Add stack_usage. 3061 * config/avr/avr-protos.h (avr_return_addr_rtx): New function. 3062 30632009-11-14 Anatoly Sokolov <aesok@post.ru> 3064 3065 * config/iq2000/iq2000.c (iq2000_function_value): Make static, add 3066 new 'outgoing' argument. 3067 (iq2000_libcall_value, iq2000_function_value_regno_p): New functions. 3068 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 3069 * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use 3070 iq2000_function_value_regno_p. 3071 (FUNCTION_VALUE, LIBCALL_VALUE): Remove. 3072 * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p): 3073 Declare. 3074 30752009-11-14 Richard Earnshaw <rearnsha@arm.com> 3076 3077 PR target/42031 3078 * arm.md (adddi_sesidi_di): Place tied contraint first. 3079 (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise 3080 (subdi_zesidi_di, subdi_sesidi_di): Likewise. 3081 (mulsi3_compare0, mulsi_compare0_scratch): Likewise. 3082 (mulsi3addsi, mulsi3addsi_compare0): Likewise. 3083 (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise. 3084 (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise. 3085 (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise. 3086 (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise. 3087 (arm_lshrdi3_1bit, one_cmpldi2): Likewise. 3088 30892009-11-14 Uros Bizjak <ubizjak@gmail.com> 3090 3091 * config/i386/predicates.md (call_register_no_elim_operand): 3092 New predicate. Reject stack register as valid call operand 3093 for 32bit targets. 3094 (call_insn_operand): Use call_register_no_elim_operand. 3095 30962009-11-13 Richard Henderson <rth@redhat.com> 3097 3098 * function.c (stack_protect_prologue): Don't bypass expand_expr 3099 for stack_protect_guard and guard_decl. 3100 (stack_protect_epilogue): Likewise. 3101 31022009-11-13 Jan Hubicka <jh@suse.cz> 3103 3104 * ipa.c (function_and_variable_visibility): Clear COMDAT on functions 3105 when to PUBLIC is set. 3106 31072009-11-13 Jakub Jelinek <jakub@redhat.com> 3108 3109 PR middle-end/42029 3110 * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on 3111 tmp_load if needed. 3112 31132009-11-13 Uros Bizjak <ubizjak@gmail.com> 3114 3115 PR target/41900 3116 * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1, 3117 *call_value_1): Use "lsm" as operand 1 constraint. 3118 * config/i386/predicates.md (call_insn_operand): Depend on 3119 index_register_operand to avoid %esp register. 3120 31212009-11-13 Uros Bizjak <ubizjak@gmail.com> 3122 3123 Revert: 3124 2009-11-03 Uros Bizjak <ubizjak@gmail.com> 3125 3126 PR target/41900 3127 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New. 3128 (TARGET_CALL_ESP): New define. 3129 * config/i386/i386.c (initial_ix86_tune_features): Initialize 3130 X86_ARCH_CALL_ESP. 3131 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp, 3132 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1, 3133 *call_1, *call_value_pop_1 and *call_value_1. Depend on 3134 TARGET_CALL_ESP. 3135 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): 3136 New patterns, use "lsm" as operand 1 constraint. 3137 * config/i386/predicates.md (call_insn_operand): Depend on 3138 index_register_operand for !TARGET_CALL_ESP to avoid %esp register. 3139 31402009-11-13 Jason Merrill <jason@redhat.com> 3141 3142 PR debug/26965 3143 * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT. 3144 Don't emit a second declaration at any scope. 3145 31462009-11-13 Andrey Belevantsev <abel@ispras.ru> 3147 3148 PR rtl-optimization/41697 3149 * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with 3150 a conditional jump has a single successor. 3151 31522009-11-13 Andrey Belevantsev <abel@ispras.ru> 3153 3154 * sched-deps.c (init_deps): New parameter lazy_reg_last. Don't 3155 allocate reg_last when in case lazy_reg_last is true. 3156 (init_deps_reg_last): New. 3157 (free_deps): When max_reg is 0, this context is already freed. 3158 * sched-int.h (init_deps_reg_last): Export. 3159 (init_deps): Update prototype. 3160 * sched-ebb.c (schedule_ebb): Update the call to init_deps. 3161 * sched-rgn.c (sched_rgn_compute_dependencies): Likewise. 3162 * ddg.c (build_intra_loop_deps): Likewise. 3163 * sel-sched-ir.c (copy_deps_context, create_deps_context, 3164 reset_deps_context, deps_init_id): Likewise. 3165 (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT. 3166 (free_data_for_scheduled_insn): New, break down from ... 3167 (free_first_time_insn_data): ... here. 3168 (has_dependence_p): Allocate reg_last now, when it is needed. 3169 (extend_insn_data): When maximal LUID is big enough, allocate 3170 per-insn data in smaller chunks. 3171 * sel-sched-ir.h (free_data_for_scheduled_insn): Export. 3172 * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT 3173 in scheduled insn. 3174 31752009-11-13 Uros Bizjak <ubizjak@gmail.com> 3176 3177 * config/i386/i386.md (call_value): Fix comment. 3178 (sibcall_value): Ditto. 3179 31802009-11-13 Eric Botcazou <ebotcazou@adacore.com> 3181 3182 * config/i386/linux-unwind.h (x86_frob_update_context): New function. 3183 (MD_FROB_UPDATE_CONTEXT): Define. 3184 31852009-11-12 Eric Botcazou <ebotcazou@adacore.com> 3186 Laurent GUERBY <laurent@guerby.net> 3187 3188 * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy. 3189 Do not schedule an %sp restore. Compensate for RETURN_ADDR_OFFSET. 3190 (sparc_fallback_frame_state): Tidy. Compensate for RETURN_ADDR_OFFSET. 3191 31922009-11-12 Jan Hubicka <jh@suse.cz> 3193 3194 * ipa.c (function_and_variable_visibility): Fix my accidentail commit 3195 and clear DECL_COMMON on localized declarations. 3196 31972009-11-12 Bernd Schmidt <bernd.schmidt@analog.com> 3198 3199 PR rtl-opt/38582 3200 * regrename.c (struct du_head): New structure; some elements moved 3201 from... 3202 (struct du_chain): ... this one. 3203 (open_chains, closed_chains): Now of type struct du_head *. 3204 (do_replace): Accept du_head argument, not du_chain. All callers 3205 changed. Modified code to match new data structures. 3206 (build_def_use): Return a list of du_head structures. Modified code 3207 to match new data structures. 3208 (dump_def_use_chain): Accept du_head argument, not du_chain. All 3209 callers changed. Modified code to match new data structures. 3210 (merge_overlapping_regs): Accept du_head argument, not du_chain. All 3211 callers changed. Modified code to match new data structures. 3212 (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned. 3213 Allocate a du_head structure as well as a du_chain when creating a 3214 new chain. Modified other code to match new data structures. 3215 32162009-11-12 Jan Hubicka <jh@suse.cz> 3217 3218 * cgraph.h (varpool_node_name): Declare. 3219 * cgraphunit.c (process_function_and_variable_attributes): Set 3220 force_output flag on used variables. 3221 * ipa.c (function_and_variable_visibility): Dump externally visible 3222 and needed variables. 3223 * varpool.c (varpool_node_name): Export. 3224 (decide_is_variable_needed): Check COMDAT for externally visible vars; 3225 ignore needed flag. 3226 32272009-11-12 Uros Bizjak <ubizjak@gmail.com> 3228 3229 PR middle-end/41930 3230 * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip 3231 processing if XEXP (x, i) is NULL. 3232 32332009-11-12 Jan Hubicka <jh@suse.cz> 3234 3235 * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON 3236 imply PUBLIC || EXTERNAL. 3237 32382009-11-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 3239 3240 PR middle-end/41440 3241 * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru, 3242 single successor block, ending with jump created by RTL expander. 3243 32442009-11-11 Jan Hubicka <jh@suse.cz> 3245 3246 PR middle-end/41729 3247 * ipa.c (function_and_variable_visibility): Do not privatize COMDAT 3248 and WEAK variables at -fwhole-program. 3249 3250 PR middle-end/41735 3251 * ipa.c (whole_program_function_and_variable_visility): COMDAT 3252 functions/variables are not needed even if they are externally visible. 3253 32542009-11-11 Jan Hubicka <jh@suse.cz> 3255 3256 (patch by Richard Guenther) 3257 * lto-streamer-out.c (output_function): Output head of argument list 3258 earlier. 3259 * lto-streamer-in.c (input_function): Re-map arguments into merged 3260 declaration. 3261 32622009-11-11 Jan Hubicka <jh@suse.cz> 3263 3264 * lto-cgraph.c: Include gcov-io.h 3265 (output_profile_summary): New function. 3266 (output_cgraph): Use it. 3267 (input_profile_summary): New function. 3268 (input_cgraph): Use it. 3269 * coverage.c (build_ctr_info_value): Use varpool; initalize 3270 DECL_ASSEMBLER_NAME. 3271 (create_coverage): Likewise. 3272 * tree-profile.c (tree_init_ic_make_global_vars): Likewise. 3273 (tree_init_edge_profiler): Likewise. 3274 * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h. 3275 32762009-11-11 Kai Tietz <kai.tietz@onevision.com> 3277 3278 * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed. 3279 * c-pragma.c (def_pragma_macro_value): Likewise. 3280 (def_pragma_macro): Likewise. 3281 (pushed_macro_table): Likewise. 3282 (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code. 3283 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed. 3284 32852009-11-11 Basile Starynkevitch <basile@starynkevitch.net> 3286 3287 * doc/plugins.texi (Registering custom attributes): section 3288 renamed as (Registering custom attributes or pragmas). 3289 Mentions custom attributes & pragmas, and c_register_pragma, with 3290 a small example. 3291 * doc/cpp.texi (Pragmas): Mentions that plugins can provide their 3292 pragmas. 3293 * doc/extend.texi (Function Attributes): Mentions that plugin can 3294 provide their attributes. 3295 32962009-11-11 Jon Beniston <jon@beniston.com> 3297 3298 * config.gcc: Add lm32 elf and uclinux targets. 3299 * config/lm32: New directory. 3300 * config/lm32/lm32.c: New file. 3301 * config/lm32/lm32.h: New file. 3302 * config/lm32/lm32.md: New file. 3303 * config/lm32/lm32.opt: New file. 3304 * config/lm32/lm32-protos.h: New file. 3305 * config/lm32/constraints.md: New file. 3306 * config/lm32/predicates.md: New file. 3307 * config/lm32/sfp-machine.h: New file. 3308 * config/lm32/t-fprules-softfp: New file. 3309 * config/lm32/uclinux-elf.h: New file. 3310 * doc/invoke.texi: Document lm32 options. 3311 * doc/contrib.texi: Document lm32 porter. 3312 * doc/install.texi: Document lm32 targets. 3313 33142009-11-11 Martin Jambor <mjambor@suse.cz> 3315 3316 PR lto/41932 3317 * ipa-prop.c (ipa_update_after_lto_read): Call 3318 ipa_check_create_node_params and ipa_check_create_edge_args. Also 3319 call ipa_initialize_node_params instead of ipa_populate_param_decls. 3320 33212009-11-11 Daniel Jacobowitz <dan@codesourcery.com> 3322 3323 * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New. 3324 (neon_expand_vector_init): Use them. Also handle non-constant 3325 vectors with identical elements and vectors with only one 3326 non-constant element. 3327 (arm_print_operand): Handle 'y' modifier. 3328 * config/arm/arm-protos.h (neon_make_constant): Declare. 3329 * config/arm/neon.md (neon_vdup_n<mode>): Split into two 3330 patterns. Use VX instead of VDQW for the first one. Allow 3331 a VFP alternative and V32 modes for the second one. 3332 * config/arm/neon.ml (shape_elt): Add Alternatives. 3333 (ops): Use Alternatives for vdup lane instructions. 3334 * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives. 3335 * config/arm/vec-common.md (mov<mode>): Use neon_make_constant. 3336 33372009-11-11 Daniel Jacobowitz <dan@codesourcery.com> 3338 3339 * config/arm/neon.md (*neon_mov<mode>): Reject two non-register 3340 operands. 3341 (movti, mov<mode>): Call force_reg on one operand if required. 3342 * config/arm/vec-common.md (mov<mode>): Likewise. 3343 33442009-11-11 Daniel Jacobowitz <dan@codesourcery.com> 3345 3346 * config/arm/arm.c (arm_override_options): Enable scheduling for 3347 Thumb-2. 3348 33492009-11-10 Eric Botcazou <ebotcazou@adacore.com> 3350 3351 PR target/10127 3352 PR ada/20548 3353 * expr.h (anti_adjust_stack_and_probe): Declare. 3354 * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK 3355 parameter and rewrite head comment. 3356 (allocate_dynamic_stack_space): Adjust call to above function. 3357 * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP. 3358 3359 * tree.h (dwarf2out_args_size): Delete. 3360 * dwarf2out.c (dwarf2out_args_size): Make static and move around. 3361 (dwarf2out_args_size_adjust): Delete prototype and move around. 3362 (dwarf2out_frame_debug_expr): Do not record arg size adjustments for 3363 ACCUMULATE_OUTGOING_ARGS targets. 3364 33652009-11-10 Eric Botcazou <ebotcazou@adacore.com> 3366 3367 * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null 3368 DECL_SIZE of DECL_RESULT before evaluating it. 3369 33702009-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3371 3372 PR tree-optimization/41987 3373 * fold-const.c (const_binop): Avoid using fold_buildN(). 3374 33752009-11-10 Martin Jambor <mjambor@suse.cz> 3376 3377 * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field. 3378 (execute_all_ipa_stmt_fixups): Declare. 3379 * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value. 3380 * ipa-inline.c (pass_ipa_inline): Likewise. 3381 * ipa-pure-const.c (pass_ipa_pure_cons): Likewise. 3382 * ipa-reference.c (pass_ipa_reference): Likewise. 3383 * ipa.c (pass_ipa_whole_program_visibility): Likewise. 3384 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise. 3385 (pass_ipa_lto_finish_out): Likewise. 3386 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise. 3387 * passes.c (execute_ipa_stmt_fixups): New function. 3388 (execute_all_ipa_stmt_fixups): New function. 3389 * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups. 3390 33912009-11-10 Eric Botcazou <ebotcazou@adacore.com> 3392 3393 PR ada/20548 3394 * explow.c (probe_stack_range): Fix typo. 3395 * config/sparc/sparc.md (probe_stack): New expander. 3396 33972009-11-09 Dave Korn <dave.korn.cygwin@gmail.com> 3398 3399 * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin. 3400 34012009-11-09 Jason Merrill <jason@redhat.com> 3402 3403 * gdbinit.in (pgq): New function for printing gimple sequence. 3404 34052009-11-09 Paul Brook <paul@codesourcery.com> 3406 Daniel Jacobowitz <dan@codesourcery.com> 3407 Sandra Loosemore <sandra@codesourcery.com> 3408 3409 * doc/extend.texi (Half-Precision): Update wording to reflect 3410 that there are now multiple -mfpu options that enable fp16 3411 hardware support. 3412 * doc/invoke.texi: Update list of ARM -mfpu= options. 3413 * config.gcc: Update ARM --with-fpu option list. 3414 * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16, 3415 vfpv3xd and vfpv3xd-fp16. 3416 (use_vfp_abi): New function. 3417 (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs 3418 when undesirable. 3419 (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate, 3420 aapcs_vfp_allocate_return_reg): Use use_vfp_abi. 3421 (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs, 3422 arm_9e_rtx_costs): Only expect double-precision operations if the FPU 3423 provides them. 3424 (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no 3425 NEON. 3426 (arm_print_operand): Handle 'p' modifier. 3427 (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if 3428 TARGET_FP16. 3429 * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define. 3430 (TARGET_FP16): Define. 3431 * config/arm/vfp.md: Disable double-precision patterns if the FPU 3432 does not provide them. 3433 (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move 3434 double-precision values on a single-precision FPU. 3435 (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for 3436 double-precision constants. 3437 (movhf_vfp_neon): New pattern (was movhf_vfp). 3438 (movhf_vfp): Remove NEON instructions. 3439 * config/arm/constraints.md: Add new "Dy" constraint for 3440 double-precision constants. Update description of "Dv". 3441 * config/arm/arm.md: Disable double-precision patterns if the FPU 3442 does not provide them 3443 34442009-11-09 Jakub Jelinek <jakub@redhat.com> 3445 3446 * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting. 3447 (print_operand) <case 'Y'>: Likewise. Fix a pasto in operand lossage 3448 diagnostics. 3449 34502009-11-08 H.J. Lu <hongjiu.lu@intel.com> 3451 3452 * collect2.c (main): Search PLUGIN_LD for plugin linker. 3453 3454 * configure.ac (--with-plugin-ld): New. Default to ld. 3455 * configure: Regenerated. 3456 * config.in: Likewise. 3457 3458 * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New. 3459 (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin. 3460 34612009-11-08 Jonathan Gray <jsg@openbsd.org> 3462 3463 * config/openbsd-stdint.h: Change to reflect what 3464 c_common_nodes_and_builtins expects. 3465 34662009-11-08 Paolo Carlini <paolo.carlini@oracle.com> 3467 3468 * builtins.c (apply_args_reg_offset): Remove commented out delaration. 3469 34702009-11-08 Jakub Jelinek <jakub@redhat.com> 3471 3472 PR target/41985 3473 * config/i386/i386.c (get_some_local_dynamic_name): Don't assert 3474 function contains at least one local dynamic name. 3475 (print_operand) <case '&'>: Instead output operand lossage diagnostics 3476 here if that happens. 3477 34782009-11-08 Zbigniew Chamski <zbigniew.chamski@gmail.com> 3479 Joern Rennecke <amylaar@spamcop.net> 3480 3481 * cfgrtl.c (pass_free_cfg): Add pass name. 3482 * cgraphbuild.c (pass_build_cgraph_edges): Likewise. 3483 (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise. 3484 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name. 3485 * df-core.c (pass_df_initialize_no_opt): Likewise. 3486 * except.c (pass_rtl_eh): Likewise. 3487 * function.c (pass_init_function, pass_leaf_regs): Likewise. 3488 * gcse.c (pass_rtl_pre): Change pass name. 3489 * passes.c (pass_postreload): Add pass name. 3490 (make_pass_instance): Don't use duplicate-tracking logic for 3491 names starting with '*'. 3492 (next_pass_1): Assert that pass has a name. 3493 (register_one_dump_file): If there is an space in the name, 3494 skip past it. 3495 * predict.c (pass_strip_predict_hints): Add pass name. 3496 * reg-stack.c (pass_stack_regs): Likewise. 3497 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise. 3498 * tree-cfg.c (pass_warn_function_return, 3499 pass_warn_function_noreturn): Add pass name. 3500 * tree-dfa.c (pass_referenced_vars): Likewise. 3501 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): 3502 Fix whitespace before comment. 3503 (pass_fixup_cfg): Add pass name, fix whitespace before comment. 3504 (pass_init_datastructures): Add pass name. 3505 * tree-ssa-loop.c (pass_record_bounds): Likewise. 3506 * tree-ssa.c (pass_early_warn_uninitialized, 3507 pass_late_warn_uninitialized): Likewise. 3508 * tree.c (pass_ipa_free_lang_data): Likewise. 3509 * doc/passes.texi (pass manager): Document how to disambiguate 3510 pass names. 3511 35122009-11-08 Paolo Bonzini <bonzini@gnu.org> 3513 3514 * df-problems.c: Fix documentation for forward simulation of LR. 3515 (df_simulate_one_insn_forwards): Use df_simulate_find_defs. 3516 (df_simulate_finalize_forwards): Remove. 3517 * df.h (df_simulate_finalize_forwards): Remove. 3518 35192009-11-08 Richard Guenther <rguenther@suse.de> 3520 3521 * tree-ssa-structalias.c (build_succ_graph): Properly make 3522 variables escape if they are stored to anything. 3523 35242009-11-08 Richard Guenther <rguenther@suse.de> 3525 3526 PR rtl-optimization/41928 3527 * loop-invariant.c (free_loop_data): If we didn't allocate 3528 loop data do not try to free it. 3529 35302009-11-07 Jason Merrill <jason@redhat.com> 3531 3532 * tree.c (reconstruct_complex_type): Preserve attributes. 3533 35342009-11-07 Richard Guenther <rguenther@suse.de> 3535 3536 * tree-ssa-structalias.c (build_succ_graph): Feed stores 3537 to anything only to variables that can take pointers. 3538 (get_constraint_for_ssa_var): Properly exclude full 3539 variables from expanding. 3540 (first_vi_for_offset): Avoid overflow in arithmetic. 3541 (first_or_preceding_vi_for_offset): Likewise. 3542 (count_num_arguments): Fix implementation. 3543 (gate_ipa_pta): Do not run when not optimizing. 3544 35452009-11-07 David Binderman <dcb314@hotmail.com> 3546 3547 * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi, 3548 expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some 3549 set but not used variables. 3550 (apply_args_reg_offset): Comment out as unused. 3551 * calls.c (flags_from_decl_or_type): Likewise. 3552 * genautomata.c (check_regexp_units_distribution): Likewise. 3553 35542009-11-07 Uros Bizjak <ubizjak@gmail.com> 3555 3556 * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd, 3557 xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql, 3558 *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd, 3559 xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>, 3560 xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si, 3561 xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress 3562 operand alternatives. 3563 35642009-11-06 Michael Matz <matz@suse.de> 3565 3566 PR middle-end/41963 3567 * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses 3568 of a potential reciprocal to really be reciprocals. 3569 35702009-11-06 Jakub Jelinek <jakub@redhat.com> 3571 3572 * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and 3573 lwpintrin.h after immintrin.h. 3574 * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove 3575 typedefs. 3576 3577 PR middle-end/41935 3578 * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs 3579 or non-constant index, allow index one past the last element and 3580 allow exceeding array bound in arrays that might be used as flexible 3581 array members. 3582 35832009-11-05 Richard Henderson <rth@redhat.com> 3584 3585 * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__. 3586 35872009-11-05 Paul Brook <paul@codesourcery.com> 3588 3589 * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove. 3590 (arm_fpu_desc): New. 3591 (all_fpus): Add FPU details. 3592 (fp_model_for_fpu): Remove. 3593 (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr. 3594 (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2. 3595 (arm_file_start): Use arm_fpu_desc. 3596 * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP, 3597 TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use 3598 arm_fpu_desc. 3599 (TARGET_FPA_EMU2): Define. 3600 (arm_fp_model, fputype, arm_fpu_tune): Remove. 3601 (vfp_reg_type, arm_fpu_desc): New. 3602 * config/arm/arm.md (attr fpu): Simplify. 3603 * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2. 3604 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value. 3605 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value. 3606 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value. 3607 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value. 3608 36092009-11-05 Michael Matz <matz@suse.de> 3610 3611 * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency 3612 on TARGET_RECIP. 3613 * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip 3614 for 1/sqrtf. 3615 36162009-11-04 Jason Merrill <jason@redhat.com> 3617 3618 PR c++/36912 3619 * varasm.c (initializer_constant_valid_p): A PLUS_EXPR 3620 or MINUS_EXPR of REAL_TYPE is not a valid constant initializer. 3621 (output_constant): Avoid crash after error. 3622 36232009-11-05 Martin Jambor <mjambor@suse.cz> 3624 3625 * tree-sra.c (struct access): Changed comment of next_sibling field. 3626 (analyze_modified_params): Loop over accesses of a group rather than 3627 over all with the ame base, pass a common bitmap to 3628 walk_aliased_vdefs. 3629 (unmodified_by_ref_scalar_representative): Build link lists of 3630 accesses of a group. 3631 (splice_param_accesses): Likewise. 3632 36332009-11-04 Kenneth Zadeck <zadeck@naturalbridge.com> 3634 3635 * df-scan.c (df-uses-record): Add case zero_extract of mem. 3636 36372009-11-04 Eric Botcazou <ebotcazou@adacore.com> 3638 3639 PR target/10127 3640 PR ada/20548 3641 * config/i386/i386.md (probe_stack): New expander. 3642 (logical operation peepholes): Do not split stack checking probes. 3643 36442009-11-04 Harsha Jagasia <harsha.jagasia@amd.com> 3645 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 3646 3647 * doc/invoke.texi (-mlwp): Add documentation. 3648 * doc/extend.texi (x86 intrinsics): Add LWP intrinsics. 3649 * config.gcc (i[34567]86-*-*): Include lwpintrin.h. 3650 (x86_64-*-*): Ditto. 3651 * config/i386/lwpintrin.h: New file, provide x86 compiler 3652 intrinisics for LWP. 3653 * config/i386/cpuid.h (bit_LWP): Define LWP bit. 3654 * config/i386/x86intrin.h: Add LWP check and lwpintrin.h. 3655 * config/i386/i386-c.c (ix86_target_macros_internal): Check 3656 ISA_FLAG for LWP. 3657 * config/i386/i386.h (TARGET_LWP): New macro for LWP. 3658 * config/i386/i386.opt (-mlwp): New switch for LWP support. 3659 * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New. 3660 (OPTION_MASK_ISA_LWP_UNSET): New. 3661 (ix86_handle_option): Handle -mlwp. 3662 (isa_opts): Handle -mlwp. 3663 (enum pta_flags): Add PTA_LWP. 3664 (override_options): Add LWP support. 3665 (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic. 3666 (IX86_BUILTIN_LLWPCB32): Ditto. 3667 (IX86_BUILTIN_LLWPCB64): Ditto. 3668 (IX86_BUILTIN_SLWPCB16): Ditto. 3669 (IX86_BUILTIN_SLWPCB32): Ditto. 3670 (IX86_BUILTIN_SLWPCB64): Ditto. 3671 (IX86_BUILTIN_LWPVAL16): Ditto. 3672 (IX86_BUILTIN_LWPVAL32): Ditto. 3673 (IX86_BUILTIN_LWPVAL64): Ditto. 3674 (IX86_BUILTIN_LWPINS16): Ditto. 3675 (IX86_BUILTIN_LWPINS32): Ditto. 3676 (IX86_BUILTIN_LWPINS64): Ditto. 3677 (enum ix86_special_builtin_type): Add LWP intrinsic support. 3678 (builtin_description): Ditto. 3679 (ix86_init_mmx_sse_builtins): Ditto. 3680 (ix86_expand_special_args_builtin): Ditto. 3681 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for 3682 LWP support. 3683 (UNSPEC_SLWP_INTRINSIC): Ditto. 3684 (UNSPECV_LWPVAL_INTRINSIC): Ditto. 3685 (UNSPECV_LWPINS_INTRINSIC): Ditto. 3686 (lwp_llwpcbhi1): New lwp pattern. 3687 (lwp_llwpcbsi1): Ditto. 3688 (lwp_llwpcbdi1): Ditto. 3689 (lwp_slwpcbhi1): Ditto. 3690 (lwp_slwpcbsi1): Ditto. 3691 (lwp_slwpcbdi1): Ditto. 3692 (lwp_lwpvalhi3): Ditto. 3693 (lwp_lwpvalsi3): Ditto. 3694 (lwp_lwpvaldi3): Ditto. 3695 (lwp_lwpinshi3): Ditto. 3696 (lwp_lwpinssi3): Ditto. 3697 (lwp_lwpinsdi3): Ditto. 3698 36992009-11-04 Andrew Pinski <andrew_pinski@playstation.sony.com> 3700 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> 3701 3702 PR rtl-opt/41833 3703 * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of 3704 a vec_duplicate. 3705 37062009-11-04 Richard Guenther <rguenther@suse.de> 3707 Rafael Avila de Espindola <espindola@google.com> 3708 3709 * gcc.c (process_command): Handle arguments name@offset. 3710 37112009-11-04 Harsha Jagasia <harsha.jagasia@amd.com> 3712 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 3713 3714 * config.gcc (i[34567]86-*-*): Include xopintrin.h. 3715 (x86_64-*-*): Ditto. 3716 * config/i386/xopintrin.h: New file, provide common x86 compiler 3717 intrinisics for XOP. 3718 * config/i386/cpuid.h (bit_XOP): Define XOP bit. 3719 * config/i386/x86intrin.h: Add XOP check and xopintrin.h. 3720 * config/i386/i386-c.c(ix86_target_macros_internal): Check 3721 ISA_FLAG for XOP. 3722 * config/i386/i386.h(TARGET_XOP): New macro for XOP. 3723 * config/i386/i386.opt (-mxop): New switch for XOP support. 3724 * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP) 3725 (UNSPEC_XOP_TRUEFALSE) 3726 (UNSPEC_XOP_PERMUTE) 3727 (UNSPEC_FRCZ): Add new UNSPEC for XOP support. 3728 (PPERM_*): New constants for vpperm instruction. 3729 (xop_pcmov_<mode>): Add XOP conditional mov instructions. 3730 * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New. 3731 (OPTION_MASK_ISA_XOP_UNSET): New. 3732 (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP. 3733 (ix86_handle_option): Handle -mxop. 3734 (isa_opts): Handle -mxop. 3735 (enum pta_flags): Add PTA_XOP. 3736 (override_options): Add XOP support. 3737 (print_operand): Add code for XOP compare instructions. 3738 (ix86_expand_sse_movcc): Extend for XOP conditional move instruction. 3739 (ix86_expand_int_vcond): Extend for XOP compare instruction. 3740 3741 (IX86_BUILTIN_VPCMOV): New for XOP intrinsic. 3742 (IX86_BUILTIN_VPCMOV_V2DI): Ditto. 3743 (IX86_BUILTIN_VPCMOV_V4SI): Ditto. 3744 (IX86_BUILTIN_VPCMOV_V8HI): Ditto. 3745 (IX86_BUILTIN_VPCMOV_V16QI): Ditto. 3746 (IX86_BUILTIN_VPCMOV_V4SF): Ditto. 3747 (IX86_BUILTIN_VPCMOV_V2DF): Ditto. 3748 3749 (IX86_BUILTIN_VPCMOV256): Ditto. 3750 (IX86_BUILTIN_VPCMOV_V4DI256): Ditto. 3751 (IX86_BUILTIN_VPCMOV_V8SI256): Ditto. 3752 (IX86_BUILTIN_VPCMOV_V16HI256): Ditto. 3753 (IX86_BUILTIN_VPCMOV_V32QI256): Ditto. 3754 (IX86_BUILTIN_VPCMOV_V8SF256): Ditto. 3755 (IX86_BUILTIN_VPCMOV_V4DF256): Ditto. 3756 3757 (IX86_BUILTIN_VPPERM): Ditto. 3758 3759 (IX86_BUILTIN_VPMACSSWW): Ditto. 3760 (IX86_BUILTIN_VPMACSWW): Ditto. 3761 (IX86_BUILTIN_VPMACSSWD): Ditto. 3762 (IX86_BUILTIN_VPMACSWD): Ditto. 3763 (IX86_BUILTIN_VPMACSSDD): Ditto. 3764 (IX86_BUILTIN_VPMACSDD): Ditto. 3765 (IX86_BUILTIN_VPMACSSDQL): Ditto. 3766 (IX86_BUILTIN_VPMACSSDQH): Ditto. 3767 (IX86_BUILTIN_VPMACSDQL): Ditto. 3768 (IX86_BUILTIN_VPMACSDQH): Ditto. 3769 (IX86_BUILTIN_VPMADCSSWD): Ditto. 3770 (IX86_BUILTIN_VPMADCSWD): Ditto. 3771 3772 (IX86_BUILTIN_VPHADDBW): Ditto. 3773 (IX86_BUILTIN_VPHADDBD): Ditto. 3774 (IX86_BUILTIN_VPHADDBQ): Ditto. 3775 (IX86_BUILTIN_VPHADDWD): Ditto. 3776 (IX86_BUILTIN_VPHADDWQ): Ditto. 3777 (IX86_BUILTIN_VPHADDDQ): Ditto. 3778 (IX86_BUILTIN_VPHADDUBW): Ditto. 3779 (IX86_BUILTIN_VPHADDUBD): Ditto. 3780 (IX86_BUILTIN_VPHADDUBQ): Ditto. 3781 (IX86_BUILTIN_VPHADDUWD): Ditto. 3782 (IX86_BUILTIN_VPHADDUWQ): Ditto. 3783 (IX86_BUILTIN_VPHADDUDQ): Ditto. 3784 (IX86_BUILTIN_VPHSUBBW): Ditto. 3785 (IX86_BUILTIN_VPHSUBWD): Ditto. 3786 (IX86_BUILTIN_VPHSUBDQ): Ditto. 3787 3788 (IX86_BUILTIN_VPROTB): Ditto. 3789 (IX86_BUILTIN_VPROTW): Ditto. 3790 (IX86_BUILTIN_VPROTD): Ditto. 3791 (IX86_BUILTIN_VPROTQ): Ditto. 3792 (IX86_BUILTIN_VPROTB_IMM): Ditto. 3793 (IX86_BUILTIN_VPROTW_IMM): Ditto. 3794 (IX86_BUILTIN_VPROTD_IMM): Ditto. 3795 (IX86_BUILTIN_VPROTQ_IMM): Ditto. 3796 3797 (IX86_BUILTIN_VPSHLB): Ditto. 3798 (IX86_BUILTIN_VPSHLW): Ditto. 3799 (IX86_BUILTIN_VPSHLD): Ditto. 3800 (IX86_BUILTIN_VPSHLQ): Ditto. 3801 (IX86_BUILTIN_VPSHAB): Ditto. 3802 (IX86_BUILTIN_VPSHAW): Ditto. 3803 (IX86_BUILTIN_VPSHAD): Ditto. 3804 (IX86_BUILTIN_VPSHAQ): Ditto. 3805 3806 (IX86_BUILTIN_VFRCZSS): Ditto. 3807 (IX86_BUILTIN_VFRCZSD): Ditto. 3808 (IX86_BUILTIN_VFRCZPS): Ditto. 3809 (IX86_BUILTIN_VFRCZPD): Ditto. 3810 (IX86_BUILTIN_VFRCZPS256): Ditto. 3811 (IX86_BUILTIN_VFRCZPD256): Ditto. 3812 3813 (IX86_BUILTIN_VPCOMEQUB): Ditto. 3814 (IX86_BUILTIN_VPCOMNEUB): Ditto. 3815 (IX86_BUILTIN_VPCOMLTUB): Ditto. 3816 (IX86_BUILTIN_VPCOMLEUB): Ditto. 3817 (IX86_BUILTIN_VPCOMGTUB): Ditto. 3818 (IX86_BUILTIN_VPCOMGEUB): Ditto. 3819 (IX86_BUILTIN_VPCOMFALSEUB): Ditto. 3820 (IX86_BUILTIN_VPCOMTRUEUB): Ditto. 3821 3822 (IX86_BUILTIN_VPCOMEQUW): Ditto. 3823 (IX86_BUILTIN_VPCOMNEUW): Ditto. 3824 (IX86_BUILTIN_VPCOMLTUW): Ditto. 3825 (IX86_BUILTIN_VPCOMLEUW): Ditto. 3826 (IX86_BUILTIN_VPCOMGTUW): Ditto. 3827 (IX86_BUILTIN_VPCOMGEUW): Ditto. 3828 (IX86_BUILTIN_VPCOMFALSEUW): Ditto. 3829 (IX86_BUILTIN_VPCOMTRUEUW): Ditto. 3830 3831 (IX86_BUILTIN_VPCOMEQUD): Ditto. 3832 (IX86_BUILTIN_VPCOMNEUD): Ditto. 3833 (IX86_BUILTIN_VPCOMLTUD): Ditto. 3834 (IX86_BUILTIN_VPCOMLEUD): Ditto. 3835 (IX86_BUILTIN_VPCOMGTUD): Ditto. 3836 (IX86_BUILTIN_VPCOMGEUD): Ditto. 3837 (IX86_BUILTIN_VPCOMFALSEUD): Ditto. 3838 (IX86_BUILTIN_VPCOMTRUEUD): Ditto. 3839 3840 (IX86_BUILTIN_VPCOMEQUQ): Ditto. 3841 (IX86_BUILTIN_VPCOMNEUQ): Ditto. 3842 (IX86_BUILTIN_VPCOMLTUQ): Ditto. 3843 (IX86_BUILTIN_VPCOMLEUQ): Ditto. 3844 (IX86_BUILTIN_VPCOMGTUQ): Ditto. 3845 (IX86_BUILTIN_VPCOMGEUQ): Ditto. 3846 (IX86_BUILTIN_VPCOMFALSEUQ): Ditto. 3847 (IX86_BUILTIN_VPCOMTRUEUQ): Ditto. 3848 3849 (IX86_BUILTIN_VPCOMEQB): Ditto. 3850 (IX86_BUILTIN_VPCOMNEB): Ditto. 3851 (IX86_BUILTIN_VPCOMLTB): Ditto. 3852 (IX86_BUILTIN_VPCOMLEB): Ditto. 3853 (IX86_BUILTIN_VPCOMGTB): Ditto. 3854 (IX86_BUILTIN_VPCOMGEB): Ditto. 3855 (IX86_BUILTIN_VPCOMFALSEB): Ditto. 3856 (IX86_BUILTIN_VPCOMTRUEB): Ditto. 3857 3858 (IX86_BUILTIN_VPCOMEQW): Ditto. 3859 (IX86_BUILTIN_VPCOMNEW): Ditto. 3860 (IX86_BUILTIN_VPCOMLTW): Ditto. 3861 (IX86_BUILTIN_VPCOMLEW): Ditto. 3862 (IX86_BUILTIN_VPCOMGTW): Ditto. 3863 (IX86_BUILTIN_VPCOMGEW): Ditto. 3864 (IX86_BUILTIN_VPCOMFALSEW): Ditto. 3865 (IX86_BUILTIN_VPCOMTRUEW): Ditto. 3866 3867 (IX86_BUILTIN_VPCOMEQD): Ditto. 3868 (IX86_BUILTIN_VPCOMNED): Ditto. 3869 (IX86_BUILTIN_VPCOMLTD): Ditto. 3870 (IX86_BUILTIN_VPCOMLED): Ditto. 3871 (IX86_BUILTIN_VPCOMGTD): Ditto. 3872 (IX86_BUILTIN_VPCOMGED): Ditto. 3873 (IX86_BUILTIN_VPCOMFALSED): Ditto. 3874 (IX86_BUILTIN_VPCOMTRUED): Ditto. 3875 3876 (IX86_BUILTIN_VPCOMEQQ): Ditto. 3877 (IX86_BUILTIN_VPCOMNEQ): Ditto. 3878 (IX86_BUILTIN_VPCOMLTQ): Ditto. 3879 (IX86_BUILTIN_VPCOMLEQ): Ditto. 3880 (IX86_BUILTIN_VPCOMGTQ): Ditto. 3881 (IX86_BUILTIN_VPCOMGEQ): Ditto. 3882 (IX86_BUILTIN_VPCOMFALSEQ): Ditto. 3883 (IX86_BUILTIN_VPCOMTRUEQ): Ditto. 3884 3885 (enum multi_arg_type): New enum for describing the various XOP 3886 intrinsic argument types. 3887 (bdesc_multi_arg): New table for XOP intrinsics. 3888 (ix86_init_mmx_sse_builtins): Add XOP intrinsic support. 3889 (ix86_expand_multi_arg_builtin): New function for creating XOP 3890 intrinsics. 3891 3892 * config/i386/sse.md (sserotatemax): New mode attribute for XOP. 3893 (xop_pmacsww): Ditto. 3894 (xop_pmacssww): Ditto. 3895 (xop_pmacsdd): Ditto. 3896 (xop_pmacssdd): Ditto. 3897 (xop_pmacssdql): Ditto. 3898 (xop_pmacssdqh): Ditto. 3899 (xop_pmacsdql): Ditto. 3900 (xop_pmacsdql_mem): Ditto. 3901 (xop_mulv2div2di3_low): Ditto. 3902 (xop_pmacsdqh): Ditto. 3903 (xop_pmacsdqh_mem): Ditto. 3904 (xop_mulv2div2di3_high): Ditto. 3905 (xop_pmacsswd): Ditto. 3906 (xop_pmacswd): Ditto. 3907 (xop_pmadcsswd): Ditto. 3908 (xop_pmadcswd): Ditto. 3909 (xop_pcmov_<mode>): Ditto. 3910 (xop_pcmov_<mode>256): Ditto. 3911 (xop_phaddbw): Ditto. 3912 (xop_phaddbd): Ditto. 3913 (xop_phaddbq): Ditto. 3914 (xop_phaddwd): Ditto. 3915 (xop_phaddwq): Ditto. 3916 (xop_phadddq): Ditto. 3917 (xop_phaddubw): Ditto. 3918 (xop_phaddubd): Ditto. 3919 (xop_phaddubq): Ditto. 3920 (xop_phadduwd): Ditto. 3921 (xop_phadduwq): Ditto. 3922 (xop_phaddudq): Ditto. 3923 (xop_phsubbw): Ditto. 3924 (xop_phsubwd): Ditto. 3925 (xop_phsubdq): Ditto. 3926 (xop_pperm): Ditto. 3927 (rotl<mode>3): Ditto. 3928 (rotr<mode>3): Ditto. 3929 (xop_rotl<mode>3): Ditto. 3930 (xop_rotr<mode>3): Ditto. 3931 (vrotr<mode>3): Ditto. 3932 (vrotl<mode>3): Ditto. 3933 (xop_vrotl<mode>3): Ditto. 3934 (vlshr<mode>3): Ditto. 3935 (vashr<mode>3): Ditto. 3936 (vashl<mode>3 3937 (xop_ashl<mode>3): Ditto. 3938 (xop_lshl<mode>3): Ditto. 3939 (ashlv16qi3): Ditto. 3940 (lshlv16qi3): Ditto. 3941 (ashrv16qi3): Ditto. 3942 (ashrv2di3): Ditto. 3943 (xop_frcz<mode>2): Ditto. 3944 (xop_vmfrcz<mode>2): Ditto. 3945 (xop_frcz<mode>2256): Ditto. 3946 (xop_maskcmp<mode>3): Ditto. 3947 (xop_maskcmp_uns<mode>3): Ditto. 3948 (xop_maskcmp_uns2<mode>3): Ditto. 3949 (xop_pcom_tf<mode>3): Ditto. 3950 3951 * doc/invoke.texi (-mxop): Add documentation. 3952 * doc/extend.texi (x86 intrinsics): Add XOP intrinsics. 3953 39542009-11-03 Mark Mitchell <mark@codesourcery.com> 3955 3956 PR driver/11810 3957 * gcc.c (SWITCHES_NEED_SPACES): Define to "o". 3958 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here. 3959 * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here. 3960 39612009-11-04 Richard Earnshaw <rearnsha@arm.com> 3962 3963 PR target/40835 3964 * arm.md (peephole2 patterns for move and compare): New. 3965 39662009-11-04 Nick Clifton <nickc@redhat.com> 3967 3968 * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition. 3969 Make sure that it does not allow CONST_DOUBLEs. 3970 * doc/tm.texi (CONSTANT_ADDRESS_P): Update description. 3971 * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete. 3972 * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete. 3973 * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete. 3974 * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete. 3975 * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete. 3976 * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete. 3977 * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete. 3978 * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete. 3979 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete. 3980 * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete. 3981 * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete. 3982 * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete. 3983 * config/score/score.h (CONSTANT_ADDRESS_P): Delete. 3984 * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete. 3985 39862009-11-04 Richard Guenther <rguenther@suse.de> 3987 3988 PR tree-optimization/41919 3989 * tree-vrp.c (test_for_singularity): Properly compare values. 3990 39912009-11-04 Revital Eres <eres@il.ibm.com> 3992 3993 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 3994 Consider peeling for alignment only for stores and remove 3995 redundant assignment. 3996 39972009-11-04 Maxim Kuvyrkov <maxim@codesourcery.com> 3998 3999 PR target/41302 4000 * config/m68k/m68k.c (m68k_reg_present_p): New static function. 4001 (m68k_ok_for_sibcall_p): Handle different result return locations. 4002 40032009-11-04 Richard Guenther <rguenther@suse.de> 4004 4005 * c-opts.c (c_common_post_options): Move LTO option processing 4006 code ... 4007 * opts.c (decode_options): ... here. 4008 40092009-11-04 Jakub Jelinek <jakub@redhat.com> 4010 4011 * c-common.c (fold_offsetof_1): Use %wd instead of 4012 HOST_WIDE_INT_PRINT_DEC. 4013 40142009-11-04 Maciej W. Rozycki <macro@linux-mips.org> 4015 4016 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define 4017 __pic__ or __PIC__. 4018 40192009-11-04 Maciej W. Rozycki <macro@linux-mips.org> 4020 4021 * config.gcc (vax-*-linux*): Keep the original contents of 4022 tmake_file while adding vax/t-linux. 4023 40242009-11-03 Eric Botcazou <ebotcazou@adacore.com> 4025 4026 PR target/10127 4027 PR ada/20548 4028 * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete. 4029 (STACK_CHECK_PROBE_INTERVAL_EXP): New macro. 4030 (STACK_CHECK_MOVING_SP): Likewise. 4031 * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it. 4032 * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL. 4033 Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP. 4034 * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK. 4035 Document PROBE_STACK. 4036 * explow.c (anti_adjust_stack_and_probe): New function. 4037 (allocate_dynamic_stack_space): Do not directly allocate space if 4038 STACK_CHECK_MOVING_SP, instead invoke above function. 4039 (emit_stack_probe): Handle probe_stack insn. 4040 (PROBE_INTERVAL): New macro. 4041 (STACK_GROW_OPTAB): Likewise. 4042 (STACK_GROW_OFF): Likewise. 4043 (probe_stack_range): Use Pmode and memory_address consistently. Fix 4044 loop condition in the small constant case. Rewrite in the general 4045 case to be immune to wraparounds. Make sure the address of probes 4046 is valid. Try to use [base + disp] addressing mode if possible. 4047 * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack 4048 checking is enabled and STACK_CHECK_MOVING_SP. 4049 * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled, 4050 return 1 for volatile references to the stack pointer. 4051 * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on 4052 __builtin_alloca if stack checking is enabled. 4053 * unwind-dw2.c (uw_identify_context): Take into account whether the 4054 context is that of a signal frame or not. 4055 * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1. 4056 * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise. 4057 40582009-11-03 Jakub Jelinek <jakub@redhat.com> 4059 4060 PR rtl-optimization/41917 4061 * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second 4062 operand isn't known to be 0, return 1. 4063 40642009-11-03 Richard Sandiford <rdsandiford@googlemail.com> 4065 4066 * config/mips/mips.md: Fix typos. 4067 40682009-11-03 Richard Sandiford <rdsandiford@googlemail.com> 4069 4070 * doc/invoke.texi: Fix typo. 4071 40722009-11-03 Paul Brook <paul@codesourcery.com> 4073 4074 * config/arm/neon.ml (vectype): Add T_floatSF. 4075 (string_of_vectype): Ditto. 4076 * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF. 4077 (deftypes): Use float for float32_t. 4078 * config/arm/arm_neon.h: Regenerate. 4079 40802009-11-03 Nick Clifton <nickc@redhat.com> 4081 Kevin Buettner <kevinb@redhat.com> 4082 4083 * config/rx/predicates.md (rx_store_multiple_vector): Reverse 4084 order of expected registers. 4085 (rx_load_multiple_vector): Likewise. 4086 (rx_rtsd_vector): Likewise. 4087 * config/rx/rx.c (rx_cpu_type): New variable. 4088 (rx_print_operand): Fix bug printing 64-bit constant values. 4089 (rx_emit_stack_pushm): Reverse order of pushed registers. 4090 (gen_rx_store_vector): Likewise. 4091 (is_fast_interrupt_func): Only accept "fast_interrupt" as the 4092 attribute name. 4093 (is_exception_func): Rename to is_interrupt_func and only accept 4094 "interrupt" as the attribute name. 4095 (rx_get_stack_layout): Use new function name. 4096 (rx_func_attr_inlinable): Likewise. 4097 (rx_attribute_table): Remove "exception". 4098 (rx_expand_prologue): If necessary push the accumulator register 4099 in the prologue of interrupt functions. 4100 (rx_expand_epilogue): If necessary pop the accumulator. 4101 (rx_builtins): Add RX_BUILTIN_MVTIPL. 4102 (rx_expand_builtin_stz): Remove. 4103 (rx_expand_builtin_mvtipl): New function. 4104 (rx_init_builtins): Handle RX_BUILTIN_MVTIPL. 4105 (rx_expand_builtin): Likewise. 4106 (rx_enable_fpu): New variable. 4107 (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch. 4108 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based 4109 on rx_cpu_type. Define __RX_FPU_INSNS__ if FPU insns are allowed. 4110 (enum rx_cpu_types): Define. 4111 (ASM_SPEC): Pass -m32bit-doubles on to assembler. 4112 (INCOMING_FRAME_SP_OFFSET): Define. 4113 (ARG_POINTER_CFA_OFFSET): Define. 4114 (FRAME_POINTER_CFA_OFFSET): Define. 4115 (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled. 4116 (ALLOW_RX_FPU_INSNS): Define. 4117 * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of 4118 fast_math_flags_set_p. 4119 (UNSPEC_BUILTIN_MVTIPL): Define. 4120 (revl): Rename to bswapsi2. 4121 (bswaphi2): New pattern. 4122 (mvtachi): Mark as volatile because it uses a register unknown to GCC. 4123 (mvtaclo): Likewise. 4124 (racw): Likewise. 4125 (mvtc): Remove clobber of cc0. 4126 (mvtcp): Delete. 4127 (opecp): Delete. 4128 * config/rx/rx.opt (mieee): Remove. 4129 (fpu): Add. 4130 (nofpu): Add. 4131 (mcpu=): Add. 4132 (patch=): Add. 4133 (msave-acc-in-interrupts): Add. 4134 * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles. 4135 (MULTILIB_DIRS): Likewise. 4136 (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles. 4137 * doc/extend.texi: Remove description of "exception" function 4138 attribute. 4139 * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and 4140 -msave-acc-in-interrupts options. 4141 41422009-11-03 Richard Guenther <rguenther@suse.de> 4143 4144 * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC. 4145 41462009-11-03 Dodji Seketeli <dodji@redhat.com> 4147 4148 PR c++/38699 4149 * c-common.c (fold_offsetof_1): Issue errors when the member 4150 designator of the offsetof expression is not legitimate. 4151 41522009-11-03 Uros Bizjak <ubizjak@gmail.com> 4153 4154 * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register 4155 names instead of numerical constants. 4156 (sse_prologue_save): Ditto. 4157 (*sse_prologue_save_insn): Ditto. 4158 41592009-11-03 Uros Bizjak <ubizjak@gmail.com> 4160 4161 PR target/41900 4162 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New. 4163 (TARGET_CALL_ESP): New define. 4164 * config/i386/i386.c (initial_ix86_tune_features): Initialize 4165 X86_ARCH_CALL_ESP. 4166 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp, 4167 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1, 4168 *call_1, *call_value_pop_1 and *call_value_1. Depend on 4169 TARGET_CALL_ESP. 4170 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): 4171 New patterns, use "lsm" as operand 1 constraint. 4172 * config/i386/predicates.md (call_insn_operand): Depend on 4173 index_register_operand for !TARGET_CALL_ESP to avoid %esp register. 4174 41752009-11-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 4176 4177 PR tree-optimization/41857 4178 * tree-flow.h (rewrite_use_address): Add BASE_HINT argument. 4179 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint 4180 to create_mem_ref. 4181 * tree-ssa-address.c (move_hint_to_base): New function. 4182 (most_expensive_mult_to_index): Add TYPE argument. Use mode and 4183 address space associated with TYPE. 4184 (addr_to_parts): Add TYPE and BASE_HINT arguments. Pass TYPE to 4185 most_expensive_mult_to_index. Call move_hint_to_base. 4186 (create_mem_ref): Add BASE_HINT argument. Pass BASE_HINT and 4187 TYPE to addr_to_parts. 4188 41892009-11-02 Martin Jambor <mjambor@suse.cz> 4190 4191 PR tree-optimization/41750 4192 * tree-sra.c (analyze_modified_params): Loop over all 4193 representatives of components of a parameter. 4194 41952009-11-02 Jakub Jelinek <jakub@redhat.com> 4196 4197 PR tree-optimization/41841 4198 * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at 4199 local variables of not yet materialized clones. 4200 4201 PR debug/41893 4202 * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL 4203 for a VOIDmode variable. 4204 4205 PR c++/41774 4206 * c-pragma.c (visstack): Change into vector of ints rather than 4207 enum symbol_visibility. 4208 (push_visibility): Add kind argument, push default_visibility together 4209 with kind. 4210 (pop_visibility): Add kind argument, return true if successful, fail 4211 if visibility stack is empty or if stack top is of different kind. 4212 (handle_pragma_visibility): Don't check length of visstack, instead 4213 call pop_visibility and issue diagnostics if it failed. Pass 0 4214 as last argument to push_visibility and pop_visibility. 4215 * c-pragma.h (push_visibility): Add kind argument. 4216 (pop_visibility): Likewise. Return bool instead of void. 4217 42182009-11-01 Eric Botcazou <ebotcazou@adacore.com> 4219 4220 * tree.def (TARGET_MEM_REF): Update comment. 4221 * alias.c (get_alias_set): Retrieve the original memory reference for 4222 a TARGET_MEM_REF before proceeding. 4223 42242009-10-31 Anatoly Sokolov <aesok@post.ru> 4225 4226 * config/frv/frv.c (frv_function_value, frv_libcall_value, 4227 frv_function_value_regno_p): New functions. 4228 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 4229 * config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove. 4230 (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p. 4231 * config/frv/frv-protos.h (frv_function_value_regno_p): Declare. 4232 42332009-10-31 Anatoly Sokolov <aesok@post.ru> 4234 4235 * config/mn10300/mn10300.c (mn10300_function_value): Make static, add 4236 new 'outgoing' argument. 4237 (mn10300_libcall_value, mn10300_function_value_regno_p): New functions. 4238 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 4239 * config/mn10300/mn10300.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE, 4240 LIBCALL_VALUE): Remove. 4241 (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p. 4242 * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove. 4243 (mh10300_function_value_regno_p): Declare. 4244 42452009-10-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 4246 4247 * config/arm/cortex-a9.md: New - integer pipeline description. 4248 42492009-10-31 Eric Botcazou <ebotcazou@adacore.com> 4250 4251 * tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of 4252 aborting if the sizes of the two references don't match. 4253 42542009-10-31 Toon Moene <toon@moene.org> 4255 4256 * ipa-inline.c (cgraph_decide_inlining): 4257 Include reason for not inlining called-once functions in dump file. 4258 42592009-10-30 Daniel Gutson <dgutson@codesourcery.com> 4260 4261 * config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added. 4262 * config/arm/bpapi.h (BE8_LINK_SPEC): New define. 4263 (LINK_SPEC): BE_LINK_SPEC added. 4264 42652009-10-30 Richard Guenther <rguenther@suse.de> 4266 4267 PR lto/41858 4268 * lto-streamer.h (struct lto_file_decl_data): Remove fd member. 4269 42702009-10-30 Nathan Sidwell <nathan@codesourcery.com> 4271 4272 * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE. 4273 * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused 4274 label. 4275 42762009-10-30 Martin Jambor <mjambor@suse.cz> 4277 4278 * tree-sra.c (build_ref_for_offset_1): Remove a comment. 4279 42802009-10-30 H.J. Lu <hongjiu.lu@intel.com> 4281 4282 PR target/40838 4283 * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary 4284 first. Move assert on stack_alignment_estimated just before 4285 setting stack_realign_needed. 4286 (gimple_expand_cfg): Initialize stack_alignment_estimated to 0. 4287 Don't call update_stack_boundary. 4288 4289 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New. 4290 (verride_options): Don't check ix86_force_align_arg_pointer here. 4291 (ix86_function_ok_for_sibcall): Use it. 4292 (ix86_update_stack_boundary): Likewise. 4293 4294 * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments. 4295 42962009-10-30 Richard Earnshaw <rearnsha@arm.com> 4297 4298 * arm.md (QHSI): New mode iterator. 4299 (movqi): If generating for thumb, then truncate any immediate to 4300 8 bits. 4301 * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace 4302 with... 4303 (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based 4304 version. 4305 43062009-10-29 Cary Coutant <ccoutant@google.com> 4307 4308 PR debug/41700 4309 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two 4310 locations in the source). 4311 (store_vcall_insn): New function. 4312 (lookup_vcall_insn): New function. 4313 (dwarf2out_virtual_call_token): Use store_vcall_insn. 4314 (dwarf2out_copy_call_info): New function. 4315 (dwarf2out_virtual_call): Use lookup_vcall_insn. 4316 * emit-rtl.c (try_split): Call copy_call_info debug hook. 4317 * debug.h (struct gcc_debug_hooks): Add copy_call_info hook. 4318 * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook. 4319 (debug_nothing_rtx_rtx): New dummy hook. 4320 * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook. 4321 (xcoff_debug_hooks): Likewise. 4322 * sdbout.c (sdb_debug_hooks): Likewise. 4323 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. 4324 43252009-10-29 David Daney <ddaney@caviumnetworks.com> 4326 4327 * doc/invoke.texi (mmcount-ra-address): Document new command line 4328 option. 4329 * config/mips/mips.opt (mmcount-ra-address): New option. 4330 * config/mips/mips-protos.h (mips_function_profiler): Declare new 4331 function. 4332 * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset 4333 member. 4334 (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset. 4335 (mips_function_profiler): Moved from FUNCTION_PROFILER, and 4336 rewritten. 4337 * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to 4338 mips_function_profiler. 4339 43402009-10-29 Steve Ellcey <sje@cup.hp.com> 4341 4342 PR middle-end/37565 4343 PR target/38018 4344 * doc/tm.texi (OVERRIDE_OPTIONS): Update. 4345 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New. 4346 * optc-gen.awk (cl_target_option_restore): Include call to 4347 targetm.override_options_after_change. 4348 * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New. 4349 * target.h (override_options_after_change): New. 4350 * c-common.c (parse_optimize_options): Call 4351 targetm.override_options_after_change. 4352 * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New. 4353 (ia64_override_options_after_change): New. 4354 (ia64_override_options) Add call to above. 4355 43562009-10-29 Michael Matz <matz@suse.de> 4357 4358 * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove. 4359 (gate_convert_to_rsqrt): Ditto. 4360 (pass_convert_to_rsqrt): Ditto. 4361 * tree-pass.h (pass_convert_to_rsqrt): Don't declare. 4362 * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt 4363 to pass list. 4364 4365 * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order. 4366 43672009-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 4368 4369 * config/arm/arm.c (find_best_start): Fix type of remainder to be 4370 unsigned. 4371 43722009-10-29 Martin Jambor <mjambor@suse.cz> 4373 4374 PR tree-optimization/41775 4375 * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL. 4376 (generate_subtree_copies): Do not unshare agg. 4377 (load_assign_lhs_subreplacements): Do not unshare rhs. 4378 (sra_modify_assign): Do not unshare exprs. 4379 (propagate_subacesses_accross_link): Renamed to 4380 propagate_subaccesses_across_link. 4381 43822009-10-29 Richard Earnshaw <rearnsha@arm.com> 4383 4384 * arm.c (count_insns_for_constant): Rework to support counting for 4385 thumb2 immediates as well. 4386 (find_best_start): Split out from arm_gen_constant. 4387 (arm_gen_constant): Rework to support XOR with immediate. 4388 43892009-10-29 Chao-ying Fu <fu@mips.com> 4390 4391 * config/mips/mips.c (mips_emit_unary, mips_force_unary): New 4392 functions. 4393 (mips_expand_synci_loop): Use the length rtx to control the 4394 synci loop from the begin rtx that points to the first byte of 4395 the cache line. 4396 43972009-10-28 Rafael Avila de Espindola <espindola@google.com> 4398 4399 * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin. 4400 44012009-10-28 Rafael Avila de Espindola <espindola@google.com> 4402 4403 * dbxout.c (dbxout_common_check): Accept non public trees. 4404 * dwarf2out.c (fortran_common): Accept non public trees. 4405 44062009-10-28 Rafael Avila de Espindola <espindola@google.com> 4407 4408 * common.opt (fuse-linker-plugin): New option. 4409 * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to 4410 fuse-linker-plugin. 4411 * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin. 4412 44132009-10-28 Paolo Bonzini <bonzini@gnu.org> 4414 4415 PR rtl-optimization/39715 4416 * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1. 4417 (gen_cstoresi_ltu_thumb1): New splitter. 4418 44192009-10-28 Richard Guenther <rguenther@suse.de> 4420 4421 PR lto/41808 4422 PR lto/41839 4423 * tree-ssa.c (useless_type_conversion_p): Do not treat 4424 conversions to pointers to incomplete types as useless. 4425 * gimple.c (gimple_types_compatible_p): Compare struct tags, 4426 not typedef names. 4427 44282009-10-28 Jakub Jelinek <jakub@redhat.com> 4429 4430 * var-tracking.c (emit_note_insn_var_location): Don't call the second 4431 vt_expand_loc unnecessarily when location is not a register nor 4432 memory. 4433 4434 PR middle-end/41837 4435 * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if 4436 fields don't have DECL_NAME. 4437 4438 PR debug/41801 4439 * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode, 4440 call convert_memory_address on addr. 4441 4442 PR target/41762 4443 * config/i386/i386.c (ix86_pic_register_p): Don't call 4444 rtx_equal_for_cselib_p for VALUEs discarded as useless. 4445 44462009-10-28 Richard Sandiford <rdsandiford@googlemail.com> 4447 4448 * var-tracking.c (emit_note_insn_var_location): Get the mode of 4449 a variable part from its REG, MEM or VALUE. 4450 44512009-10-28 Richard Guenther <rguenther@suse.de> 4452 4453 * gimple.c (gimple_get_alias_set): Fix comment typo. 4454 44552009-10-28 Richard Guenther <rguenther@suse.de> 4456 4457 * tree.c (free_lang_data_in_type): Do not call get_alias_set. 4458 (free_lang_data): Unconditionally compute alias sets for all 4459 standard integer types. Bail out if gate bailed out previously. 4460 Do not reset the types_compatible_p langhook. 4461 (gate_free_lang_data): Remove. 4462 (struct pass_ipa_free_lang_data): Enable unconditionally. 4463 * gimple.c (gimple_get_alias_set): Use the same alias-set for 4464 all pointer types. 4465 44662009-10-28 Richard Guenther <rguenther@suse.de> 4467 4468 PR middle-end/41855 4469 * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs 4470 (ref_maybe_used_by_call_p_1): Fix bcopy handling. 4471 (call_may_clobber_ref_p_1): Likewise. 4472 * tree-ssa-structalias.c (find_func_aliases): Likewise. 4473 * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs. 4474 44752009-10-28 Paolo Bonzini <bonzini@gnu.org> 4476 4477 PR rtl-optimization/41812 4478 4479 Revert: 4480 2009-06-27 Paolo Bonzini <bonzini@gnu.org> 4481 4482 * df-problems.c (df_md_scratch): New. 4483 (df_md_alloc, df_md_free): Allocate/free it. 4484 (df_md_local_compute): Only include live registers in init. 4485 (df_md_transfer_function): Prune the in-set computed by 4486 the confluence function, and the gen-set too. 4487 44882009-10-28 Paolo Bonzini <bonzini@gnu.org> 4489 4490 PR rtl-optimization/39715 4491 * combine.c (simplify_comparison): Use extensions to 4492 widen comparisons. Try an ANDing first. 4493 44942009-10-28 Paolo Bonzini <bonzini@gnu.org> 4495 4496 PR rtl-optimization/40741 4497 * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with 4498 a small constant is cheap. 4499 * config/arm/arm.md (andsi3, iorsi3): Try to place the result of 4500 force_reg on the LHS. 4501 (xorsi3): Likewise, and split the XOR if the constant is complex 4502 and not in Thumb mode. 4503 45042009-10-28 Paolo Bonzini <bonzini@gnu.org> 4505 4506 * expmed.c (emit_store_flag): Check costs before 4507 transforming to the opposite representation. 4508 45092009-10-28 Paolo Bonzini <bonzini@gnu.org> 4510 4511 * config/sh/sh.md (cbranchfp4_media): Remove hack extending 4512 cstore result to DImode. 4513 45142009-10-28 Kaz Kojima <kkojima@gcc.gnu.org> 4515 4516 * config/sh/sh.md (stuff_delay_slot): Move const_int pattern 4517 inside the unspec vector. 4518 45192009-10-27 Richard Henderson <rth@redhat.com> 4520 4521 * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly. 4522 45232009-10-27 Richard Henderson <rth@redhat.com> 4524 4525 PR c++/41819 4526 * tree-eh.c (eh_region_may_contain_throw_map): Rename from 4527 eh_region_may_contain_throw; update users. 4528 (eh_region_may_contain_throw): New function. 4529 (lower_catch): Check flag_exceptions before creating exception region. 4530 (lower_eh_filter, lower_eh_must_not_throw): Likewise. 4531 (lower_cleanup): Tidy existing flag_exceptions check to match. 4532 45332009-10-27 Kai Tietz <kai.tietz@onevision.com> 4534 4535 PR/41799 4536 * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro. 4537 * config/i386/mingw.opt: Add fset-stack-executable. 4538 * config/i386/i386.c (ix86_trampoline_init): Make call to 4539 emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is 4540 defined and its value is not zero. 4541 * doc/invoke.texi 4542 45432009-10-27 Richard Guenther <rguenther@suse.de> 4544 4545 * tree-ssa-structalias.c (find_func_aliases): In IPA mode 4546 handle calls to externally visible functions like in regular mode. 4547 (create_variable_info_for): Do not create function infos here. 4548 (have_alias_info): Remove write-only variable. 4549 (solve_constraints): New function split out from common code 4550 in compute_points_to_sets and ipa_pta_execute. 4551 (compute_points_to_sets): Adjust. 4552 (ipa_pta_execute): Likewise. Handle clones and externally visible 4553 functions like in non-IPA mode. 4554 45552009-10-27 Jakub Jelinek <jakub@redhat.com> 4556 4557 PR c/41842 4558 * c-typeck.c (convert_arguments): Return -1 if any of the arguments is 4559 error_mark_node. 4560 45612009-10-27 Richard Guenther <rguenther@suse.de> 4562 4563 * tree-complex.c (expand_complex_div_wide): Check for 4564 INTEGER_CST, not TREE_CONSTANT on comparison folding result. 4565 45662009-10-27 Revital Eres <eres@il.ibm.com> 4567 4568 PR tree-optimization/40648 4569 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 4570 Change decision of when to peel for alignment. 4571 45722009-10-27 Richard Guenther <rguenther@suse.de> 4573 4574 PR lto/41821 4575 * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE. 4576 45772009-10-27 Aldy Hernandez <aldyh@redhat.com> 4578 4579 PR bootstrap/41451 4580 * fold-const.c (fold_binary_loc): Do not call 4581 protected_set_expr_location. 4582 45832009-10-27 Wei Guozhi <carrot@google.com> 4584 4585 PR target/41705 4586 * target.h (have_conditional_execution): Add a new target hook 4587 function. 4588 * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise. 4589 * targhooks.h (default_have_conditional_execution): Likewise. 4590 * targhooks.c (default_have_conditional_execution): Likewise. 4591 * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it. 4592 * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it. 4593 (arm_have_conditional_execution): New function. 4594 * ifcvt.c (noce_process_if_block, find_if_header, 4595 cond_exec_find_if_block, dead_or_predicable): Change the usage of 4596 macro HAVE_conditional_execution to a target hook call. 4597 * recog.c (peephole2_optimize): Likewise. 4598 * sched-rgn.c (add_branch_dependences): Likewise. 4599 * final.c (asm_insn_count, final_scan_insn): Likewise. 4600 * bb-reorder.c (HAVE_conditional_execution): Remove it. 4601 46022009-10-26 Ben Elliston <bje@au.ibm.com> 4603 Michael Meissner <meissner@linux.vnet.ibm.com> 4604 Ulrich Weigand <uweigand@de.ibm.com> 4605 4606 * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers. 4607 * config/spu/spu_cache.h: New file. 4608 4609 * config/spu/cachemgr.c: New file. 4610 * config/spu/cache.S: New file. 4611 4612 * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define. 4613 (ADDR_SPACE_EA): Define. 4614 (TARGET_ADDR_SPACE_KEYWORDS): Define. 4615 * config/spu/spu.c (EAmode): New macro. 4616 (TARGET_ADDR_SPACE_POINTER_MODE): Define. 4617 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise. 4618 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise. 4619 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise. 4620 (TARGET_ADDR_SPACE_SUBSET_P): Likewise. 4621 (TARGET_ADDR_SPACE_CONVERT): Likewise. 4622 (TARGET_ASM_SELECT_SECTION): Likewise. 4623 (TARGET_ASM_UNIQUE_SECTION): Likewise. 4624 (TARGET_ASM_UNALIGNED_SI_OP): Likewise. 4625 (TARGET_ASM_ALIGNED_DI_OP): Likewise. 4626 (ea_symbol_ref): New function. 4627 (spu_legitimate_constant_p): Handle __ea qualified addresses. 4628 (spu_addr_space_legitimate_address_p): New function. 4629 (spu_addr_space_legitimize_address): Likewise. 4630 (cache_fetch): New global. 4631 (cache_fetch_dirty): Likewise. 4632 (ea_alias_set): Likewise. 4633 (ea_load_store): New function. 4634 (ea_load_store_inline): Likewise. 4635 (expand_ea_mem): Likewise. 4636 (spu_expand_mov): Handle __ea qualified memory references. 4637 (spu_addr_space_pointer_mode): New function. 4638 (spu_addr_space_address_mode): Likewise. 4639 (spu_addr_space_subset_p): Likewise. 4640 (spu_addr_space_convert): Likewise. 4641 (spu_section_type_flags): Handle "._ea" section. 4642 (spu_select_section): New function. 4643 (spu_unique_section): Likewise. 4644 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__ 4645 and __EA64__ predefined macros. 4646 * config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and 4647 -matomic-updates switches. 4648 4649 * config/spu/t-spu-elf (MULTILIB_OPTIONS): Define. 4650 (EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a, 4651 libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a, 4652 libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a. 4653 ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target. 4654 ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o, 4655 $(T)cache128k.o): Likewise. 4656 ($(T)libgcc_%.a): Likewise. 4657 4658 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION. 4659 * config/spu/spu.opt (-mea32/-mea64): Add switches. 4660 (-maddress-space-conversion): Likewise. 4661 (-mcache-size=): Likewise. 4662 (-matomic-updates): Likewise. 4663 * doc/invoke.texi (-mea32/-mea64): Document. 4664 (-maddress-space-conversion): Likewise. 4665 (-mcache-size=): Likewise. 4666 (-matomic-updates): Likewise. 4667 46682009-10-26 Ben Elliston <bje@au.ibm.com> 4669 Michael Meissner <meissner@linux.vnet.ibm.com> 4670 Ulrich Weigand <uweigand@de.ibm.com> 4671 4672 * doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document. 4673 4674 * c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is 4675 defined, add the named address space keywords. 4676 (c_addr_space_name): New function. 4677 (complete_array_type): Preserve named address space. 4678 (handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode 4679 instead of targetm.valid_pointer_mode. 4680 4681 * c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15, 4682 RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE. 4683 (ADDR_SPACE_KEYWORD): New macro. 4684 (c_addr_space_name): Add prototype. 4685 4686 * c-tree.h (struct c_declspecs): Add address_space member. 4687 (declspecs_add_addrspace): Add prototype. 4688 4689 * c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces. 4690 4691 * c-parser.c (c_parse_init): Add assertion. 4692 (typedef enum c_id_kind): Add C_ID_ADDRSPACE. 4693 (c_lex_one_token): Handle address space keywords. 4694 (c_token_starts_typename): Likewise. 4695 (c_token_starts_declspecs): Likewise. 4696 (c_parser_declspecs): Likewise. 4697 (c_parser_postfix_expression_after_paren_type): Diagnose compound 4698 literal within function qualified with named address space. 4699 4700 * c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named 4701 address space qualifiers. 4702 (shadow_tag_warned): Warn about useless address space qualifiers. 4703 (quals_from_declspecs): Handle address space qualifiers. 4704 (grokdeclarator): Likewise. 4705 (build_null_declspecs): Likewise. 4706 (declspecs_add_addrspace): New function. 4707 4708 * c-typeck.c (addr_space_superset): New function. 4709 (qualify_type): Handle named address spaces. 4710 (composite_type): Likewise. 4711 (common_pointer_type): Likewise. 4712 (comp_target_types): Likewise. 4713 (build_conditional_expr): Likewise. 4714 (handle_warn_cast_qual): Likewise. 4715 (build_c_cast): Likewise. 4716 (convert_for_assignment): Likewise. 4717 (build_binary_op): Likewise. 4718 (pointer_diff): Handle named address spaces. Use intermediate 4719 integer type of sufficient size if required. 4720 47212009-10-26 Ben Elliston <bje@au.ibm.com> 4722 Michael Meissner <meissner@linux.vnet.ibm.com> 4723 Ulrich Weigand <uweigand@de.ibm.com> 4724 4725 * doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document. 4726 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise. 4727 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise. 4728 4729 * target.h (struct target_def): Add pointer_mode, address_mode, 4730 and valid_pointer_mode to addr_space substructure. 4731 * target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define. 4732 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise. 4733 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise. 4734 (TARGET_ADDR_SPACE_HOOKS): Add them. 4735 * targhooks.c (target_default_pointer_address_modes_p): New function. 4736 * target.h (target_default_pointer_address_modes_p): Add prototype. 4737 * targhooks.c (default_addr_space_pointer_mode): New function. 4738 (default_addr_space_address_mode): Likewise. 4739 (default_addr_space_valid_pointer_mode): Likewise. 4740 * targhooks.h (default_addr_space_pointer_mode): Add prototype. 4741 (default_addr_space_address_mode): Likewise. 4742 (default_addr_space_valid_pointer_mode): Likewise. 4743 * output.h (default_valid_pointer_mode): Move to ... 4744 * targhooks.h (default_valid_pointer_mode): ... here. 4745 * varasm.c (default_valid_pointer_mode): Move to ... 4746 * targhooks.c (default_valid_pointer_mode): ... here. 4747 4748 * varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode 4749 instead of targetm.valid_pointer_mode. 4750 4751 * fold-const.c (fit_double_type): Use int_or_pointer_precision. 4752 * tree.c (integer_pow2p): Likewise. 4753 (tree_log2): Likewise. 4754 (tree_floor_log2): Likewise. 4755 (signed_or_unsigned_type_for): Support pointer type of different size. 4756 (int_or_pointer_precision): New function. 4757 * tree.h (int_or_pointer_precision): Add prototype. 4758 * stor-layout.c (layout_type): Set TYPE_PRECISION for offset types. 4759 * varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of 4760 incoming pointer type instead of POINTER_SIZE. 4761 4762 * tree.c (build_pointer_type): Use appropriate pointer mode 4763 instead of ptr_mode. 4764 (build_reference_type): Likewise. 4765 * expr.c (store_expr): Likewise. 4766 (expand_expr_addr_expr): Likewise. 4767 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise. 4768 * cfgexpand.c (expand_debug_expr): Likewise. 4769 4770 * auto-inc-dec.c: Include "target.h". 4771 (try_merge): Use appropriate address mode instead of Pmode. 4772 (find_inc): Likewise. 4773 * combine.c (find_split_point): Likewise. 4774 * cselib.c (cselib_record_sets): Likewise. 4775 * dse.c (replace_inc_dec): Likewise. 4776 (canon_address): Likewise. 4777 * var-tracking.c (replace_expr_with_values): Likewise. 4778 (count_uses): Likewise. 4779 (add_uses): Likewise. 4780 (add_stores): Likewise. 4781 * emit-rtl.c: Include "target.h". 4782 (adjust_address_1): Use appropriate address mode instead of Pmode. 4783 (offset_address): Likewise. 4784 * explow.c (break_out_memory_refs): Likewise. 4785 (memory_address_addr_space): Likewise. 4786 (promote_mode): Likewise. 4787 * expr.c (move_by_pieces): Likewise. 4788 (emit_block_move_via_loop): Likewise. 4789 (store_by_pieces): Likewise. 4790 (store_by_pieces_1): Likewise. 4791 (expand_assignment): Likewise. 4792 (store_constructor): Likewise. 4793 (expand_expr_addr_expr): Likewise. 4794 (expand_expr_real_1): Likewise. 4795 * cfgexpand.c (expand_debug_expr): Likewise. 4796 * ifcvt.c (noce_try_cmove_arith): Likewise. 4797 * regcprop.c (kill_autoinc_value): Likewise. 4798 * regmove.c (try_auto_increment): Likewise. 4799 * reload.c (find_reloads): Likewise. 4800 (find_reloads_address): Likewise. 4801 (find_reloads_address_1): Likewise. 4802 * sched-deps.c: Include "target.h". 4803 (sched_analyze_1): Use appropriate address mode instead of Pmode. 4804 (sched_analyze_2): Likewise. 4805 * sel-sched-dump.c: Include "target.h". 4806 (debug_mem_addr_value): Use appropriate address mode instead of Pmode. 4807 * stor-layout.c (layout_type): Likewise. 4808 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise. 4809 (multiplier_allowed_in_address_p): Likewise. 4810 (get_address_cost): Likewise. 4811 * varasm.c (make_decl_rtl): Likewise. 4812 4813 * expr.c (expand_assignment): Always convert offsets to appropriate 4814 address mode. 4815 (store_expr): Likewise. 4816 (store_constructor): Likewise. 4817 (expand_expr_real_1): Likewise. 4818 4819 * reload.h (form_sum): Add MODE argument. 4820 * reload.c (form_sum): Add MODE argument, use it instead of Pmode. 4821 Update recursive calls. 4822 (subst_indexed_address): Update calls to form_sum. 4823 4824 * tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument. 4825 * tree-ssa-address.c: Include "target.h". 4826 (templates): Replace by ... 4827 (mem_addr_template_list): ... this new vector. 4828 (TEMPL_IDX): Handle address space numbers. 4829 (gen_addr_rtx): Add address mode argument, use it instead of Pmode. 4830 (addr_for_mem_ref): Add ADDRSPACE argument. Use per-address-space 4831 instead of global cache. Update call to gen_addr_rtx. 4832 (valid_mem_ref_p): Update call to addr_for_mem_ref. 4833 * expr.c (expand_expr_real_1): Update call to addr_for_mem_ref. 4834 4835 * rtl.h (convert_memory_address_addr_space): Add prototype. 4836 (convert_memory_address): Define as macro. 4837 * explow.c (convert_memory_address): Rename to ... 4838 (convert_memory_address_addr_space): ... this. Add ADDRSPACE argument. 4839 Use appropriate pointer and address modes instead of ptr_mode / Pmode. 4840 Update recursive calls. 4841 (memory_address_addr_space): Call convert_memory_address_addr_space. 4842 * expmed.c (make_tree): Likewise. 4843 * expr.c (expand_assignment): Likewise. 4844 (expand_expr_addr_expr_1): Likewise. Also, add ADDRSPACE argument. 4845 (expand_expr_addr_expr): Likewise. Also, update call. 4846 4847 * alias.c (find_base_value): Guard pointer size optimizations. 4848 (find_base_term): Likewise. 4849 * rtlanal.c (nonzero_bits1): Likewise. 4850 (num_sign_bit_copies1): Likewise. 4851 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 4852 4853 * Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency. 4854 (emit-rtl.o): Likewise. 4855 (auto-inc-dec.o): Likewise. 4856 (sched-deps.o): Likewise. 4857 48582009-10-26 Ben Elliston <bje@au.ibm.com> 4859 Michael Meissner <meissner@linux.vnet.ibm.com> 4860 Ulrich Weigand <uweigand@de.ibm.com> 4861 4862 * doc/extend.texi (Named Address Spaces): New section. 4863 * coretypes.h (addr_space_t): New type. 4864 (ADDR_SPACE_GENERIC): New define. 4865 (ADDR_SPACE_GENERIC_P): New macro. 4866 4867 * doc/tm.texi (Named Address Spaces): New section. 4868 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document. 4869 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document. 4870 (TARGET_ADDR_SPACE_SUBSET_P): Document. 4871 (TARGET_ADDR_SPACE_CONVERT): Document. 4872 * target.h (struct gcc_target): Add addr_space substructure. 4873 * target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define. 4874 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise. 4875 (TARGET_ADDR_SPACE_SUBSET_P): Likewise. 4876 (TARGET_ADDR_SPACE_CONVERT): Likewise. 4877 (TARGET_ADDR_SPACE_HOOKS): Likewise. 4878 (TARGET_INITIALIZER): Initialize addr_space hooks. 4879 * targhooks.c (default_addr_space_legitimate_address_p): New function. 4880 (default_addr_space_legitimize_address): Likewise. 4881 (default_addr_space_subset_p): Likewise. 4882 (default_addr_space_convert): Likewise. 4883 * targhooks.h (default_addr_space_legitimate_address_p): Add prototype. 4884 (default_addr_space_legitimize_address): Likewise. 4885 (default_addr_space_subset_p): Likewise. 4886 (default_addr_space_convert): Likewise. 4887 4888 * doc/rtl.texi (MEM_ADDR_SPACE): Document. 4889 * rtl.h (mem_attrs): Add ADDRSPACE memory attribute. 4890 (MEM_ADDR_SPACE): New macro. 4891 * emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set 4892 address space memory attribute. 4893 (mem_attrs_htab_hash): Handle address space memory attribute. 4894 (mem_attrs_htab_eq): Likewise. 4895 (set_mem_attributes_minus_bitpos): Likewise. 4896 (set_mem_alias_set): Likewise. 4897 (set_mem_align): Likewise. 4898 (set_mem_expr): Likewise. 4899 (set_mem_offset): Likewise. 4900 (set_mem_size): Likewise. 4901 (adjust_address_1): Likewise. 4902 (offset_address): Likewise. 4903 (widen_memoy_address): Likewise. 4904 (get_spill_slot_decl): Likewise. 4905 (set_mem_attrs_for_spill): Likewise. 4906 (set_mem_addr_space): New function. 4907 * emit-rtl.h (set_mem_addr_space): Add prototype. 4908 * print-rtl.c (print_rtx): Print address space memory attribute. 4909 * expr.c (expand_assignment): Set address space memory attribute 4910 of generated MEM RTXes as appropriate. 4911 (expand_expr_real_1): Likewise. 4912 * cfgexpand.c (expand_debug_expr): Likewise. 4913 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise. 4914 4915 * tree.h (struct tree_base): Add address_space bitfield. Reduce 4916 size of "spare" bitfield. 4917 (TYPE_ADDR_SPACE): New macro. 4918 (ENCODE_QUAL_ADDR_SPACE): Likewise. 4919 (DECODE_QUAL_ADDR_SPACE): Likewise. 4920 (CLEAR_QUAL_ADDR_SPACE): Likewise. 4921 (KEEP_QUAL_ADDR_SPACE): Likewise. 4922 (TYPE_QUALS): Encode type address space. 4923 (TYPE_QUALS_NO_ADDR_SPACE): New macro. 4924 * tree.c (set_type_quals): Set type address space. 4925 (build_array_type): Inherit array address space from element type. 4926 * print-tree.c (print_node_brief): Print type address space. 4927 (print_node): Likewise. 4928 * tree-pretty-print.c (dump_generic_node): Likewise. 4929 4930 * explow.c (memory_address): Rename to ... 4931 (memory_address_addr_space): ... this. Add ADDRSPACE argument. 4932 Use address-space aware variants of memory address routines. 4933 * recog.c (memory_address_p): Rename to ... 4934 (memory_address_addr_space_p): ... this. Add ADDSPACE argument. 4935 Use address-space aware variants of memory address routines. 4936 (offsettable_address_p): Rename to ... 4937 (offsettable_address_addr_space_p): ... this. Add ADDRSPACE argument. 4938 Use address-space aware variants of memory address routines. 4939 * reload.c (strict_memory_address_p): Rename to ... 4940 (strict_memory_address_addr_space_p): ... this. Add ADDSPACE argument. 4941 Use address-space aware variants of memory address routines. 4942 (maybe_memory_address_p): Rename to ... 4943 (maybe_memory_address_addr_space_p): ... this. Add ADDSPACE argument. 4944 Use address-space aware variants of memory address routines. 4945 * expr.h (memory_address_addr_space): Add prototype. 4946 (memory_address): Define as macro. 4947 * recog.h (memory_address_addr_space_p): Add prototype. 4948 (memory_address_p): Define as macro. 4949 (offsettable_address_addr_space_p): Add prototype. 4950 (offsettable_address_p): Define as macro. 4951 (strict_memory_address_addr_space_p): Add prototype. 4952 (strict_memory_address_p): Define as macro. 4953 4954 * combine.c (find_split_point): Use address-space aware variants 4955 of memory address routines. 4956 * emit-rtl.c (operand_subword): Likewise. 4957 (change_address_1): Likewise. 4958 (adjust_address_1): Likewise. 4959 (offset_address): Likewise. 4960 * expr.c (emit_move_insn): Likewise. 4961 (expand_assignment): Likewise. 4962 (expand_expr_real_1): Likewise. 4963 * recog.c (verify_changes): Likewise. 4964 (general_operand): Likewise. 4965 (offsettable_memref_p): Likewise. 4966 (offsettable_nonstrict_memref_p): Likewise. 4967 (constrain_operands): Likewise. 4968 * reload.c (get_secondary_mem): Likewise. 4969 (find_reloads_toplev): Likewise. 4970 (find_reloads_address): Likewise. 4971 (find_reloads_subreg_address): Likewise. 4972 * reload1.c (reload): Likewise. 4973 * rtlhooks.c (gen_lowpart_if_possible): Likewise. 4974 * rtl.h (address_cost): Add ADDRSPACE argument. 4975 * rtlanal.c (address_cost): Add ADDRSPACE argument. Use address-space 4976 aware variant of memory address routines. 4977 * loop-invariant.c (create_new_invariant): Update address_cost call. 4978 * tree-ssa-loop-ivopts.c (computation_cost): Likewise. 4979 * fwprop.c (should_replace_address): Add ADDRSPACE argument. 4980 Use address-space aware variant of memory address routines. 4981 (propagate_rtx_1): Update call to should_replace_address. 4982 * tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE 4983 argument. 4984 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add 4985 ADDRSPACE argument. Use per-address-space instead of global cache. 4986 Use address-space aware variant of memory address routines. 4987 (get_address_cost): Likewise. 4988 (get_computation_cost_at): Update calls. 4989 * tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument. 4990 Use address-space aware variant of memory address routines. 4991 (create_mem_ref_raw): Update call to valid_mem_ref_p. 4992 (most_expensive_mult_to_index): Update call to 4993 multiplier_allowed_in_address_p. 4994 4995 * dwarf2out.c (modified_type_die): Output DW_AT_address_class 4996 attribute to indicate named address spaces. 4997 4998 * varasm.c (get_variable_section): DECLs in named address spaces 4999 cannot be "common". 5000 5001 * reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS 5002 for addresses in a non-generic address space. 5003 5004 * expr.c (emit_block_move_hints): Do not use libcalls for 5005 memory in non-generic address spaces. 5006 (clear_storage_hints): Likewise. 5007 (expand_assignment): Likewise. 5008 5009 * fold-const.c (operand_equal_p): Expressions refering to different 5010 address spaces are not equivalent. 5011 5012 * rtl.c (rtx_equal_p_cb): MEMs refering to different address 5013 spaces are not equivalent. 5014 (rtx_equal_p): Likewise. 5015 * cse.c (exp_equiv_p): Likewise. 5016 * jump.c (rtx_renumbered_equal_p): Likewise. 5017 * reload.c (operands_match_p): Likewise. 5018 5019 * alias.c (nonoverlapping_memrefs_p): MEMs refering to different 5020 address spaces may alias. 5021 (true_dependence): Likewise. 5022 (canon_true_dependence): Likewise. 5023 (write_dependence_p): Likewise. 5024 5025 * dse.c (canon_address): Handle named address spaces. 5026 * ifcvt.c (noce_try_cmove_arith): Likewise. 5027 5028 * tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code. 5029 * expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR. 5030 * convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR 5031 to handle conversions between different address spaces. 5032 * fold-const.c (fold_convert_loc): Likewise. 5033 (fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR. 5034 * tree-pretty-print.c (dump_generic_node): Likewise. 5035 * gimple-pretty-print.c (dump_unary_rhs): Likewise. 5036 * tree-cfg.c (verify_gimple_assign_unary): Likewise. 5037 * tree-inline.c (estimate_operator_cost): Likewise. 5038 * tree-ssa.c (useless_type_conversion_p): Conversions between pointers 5039 to different address spaces are not useless. 5040 50412009-10-26 Jakub Jelinek <jakub@redhat.com> 5042 5043 PR bootstrap/41345 5044 * cfgcleanup.c (trivially_empty_bb_p): New function. 5045 (try_optimize_bb): Use it instead of checking BB_HEAD == BB_END. 5046 5047 PR debug/41828 5048 * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die, 5049 add_name_and_src_coords_attributes, gen_namespace_die, 5050 dwarf2out_set_name): Handle dwarf2_name returning NULL. 5051 50522009-10-26 Nick Clifton <nickc@redhat.com> 5053 5054 * config.gcc: Add support for RX target. 5055 * config/rx: New directory. 5056 * config/rx/constraints.md: New file. 5057 * config/rx/predicates.md: New file. 5058 * config/rx/rx.c: New file. 5059 * config/rx/rx.h: New file. 5060 * config/rx/rx.md: New file. 5061 * config/rx/rx.opt: New file. 5062 * config/rx/rx-protos.h: New file. 5063 * config/rx/t-rx: New file. 5064 * doc/extend.texi: Document RX function attributes. 5065 * doc/invoke.texi: Document RX specific command line options. 5066 * doc/contrib.texi: Document RX contribution. 5067 * doc/md.texi: Document RX constraints. 5068 * doc/install.texi: Document RX support. 5069 50702009-10-26 Michael Matz <matz@suse.de> 5071 5072 PR tree-optimization/41783 5073 * tree-ssa-alias.c (get_continuation_for_phi): Export, add a special 5074 case for simple diamonds. 5075 * tree-ssa-alias.h (get_continuation_for_phi): Declare. 5076 * tree-ssa-pre.c (translate_vuse_through_block): Add same_valid 5077 argument, use alias oracle to skip some vdefs. 5078 (phi_translate_1): Change call to above, don't allocate new 5079 value ids if they can stay the same. 5080 (compute_avail): Allow vuse walking when looking up references. 5081 50822009-10-26 Richard Guenther <rguenther@suse.de> 5083 5084 PR tree-optimization/41826 5085 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid 5086 access to re-allocated vector fields. 5087 50882009-10-26 Richard Guenther <rguenther@suse.de> 5089 5090 * graphite-sese-to-poly.c (check_poly_representation): Fix 5091 compile without checking. 5092 50932009-10-26 Janus Weil <janus@gcc.gnu.org> 5094 5095 PR fortran/41714 5096 * gimple.h (tree_annotate_all_with_location): Remove prototype. 5097 * gimplify.c (tree_should_carry_location_p, 5098 tree_annotate_one_with_location,tree_annotate_all_with_location): 5099 Remove obsolete functions. 5100 51012009-10-25 Kaz Kojima <kkojima@gcc.gnu.org> 5102 5103 PR target/41813 5104 * config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern. 5105 51062009-10-25 Richard Guenther <rguenther@suse.de> 5107 5108 * lto-streamer-in.c (unpack_ts_decl_common_value_fields): 5109 Stream DECL_RESTRICTED_P. 5110 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. 5111 51122009-10-25 Richard Sandiford <rdsandiford@googlemail.com> 5113 5114 * config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit 5115 a note when expanding to nothing. 5116 51172009-10-25 Richard Guenther <rguenther@suse.de> 5118 5119 PR middle-end/41814 5120 * tree.c (find_decls_types_r): Deal with Java overloading 5121 BINFO_VIRTUALS for its own purpose. 5122 51232009-10-24 Adam Nemet <anemet@caviumnetworks.com> 5124 5125 * config/mips/predicates.md (hilo_operand): New predicate. 5126 * config/mips/mips.md (<u>mulsidi3_64bit): Change it to a 5127 define_insn. Correct !ISA_HAS_EXT_INS length from 24 to 28. Move 5128 splitter part from here ...: 5129 (<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here. Swap 5130 op0 and op4 to match the DINS case. 5131 (<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter. 5132 51332009-10-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 5134 5135 PR middle-end/19154 5136 * avr.md (QIDI): Add new mode iterator. 5137 (sbrx_branch<mode>): Create new zero extract bit, test and jump 5138 patterns for all QI thru DI modes combinations. 5139 (sbrx_and_branch<mode>): Create new and based bit test and jump 5140 patterns for QI thru SI modes. 5141 avr.c (avr_out_sbxx_branch): Use only bit number. 5142 51432009-10-24 Jan Hubicka <jh@suse.cz> 5144 5145 * ipa-reference.c (check_call): Noreturn notrhow calls do not write 5146 to memory. 5147 (analyze_function): When analyzing noreturn nothrow call, do not 5148 compute written stats; free bitmaps of vars early if possible. 5149 (generate_summary): Only update bitmaps if computed. 5150 (propagate): Only dump bitmaps if computed. 5151 (ipa_reference_read_summary): Fix pasto. 5152 51532009-10-24 Eric Botcazou <ebotcazou@adacore.com> 5154 5155 * tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into... 5156 (aliasing_component_refs_p): ...this. Return true if there is no 5157 common base and the base access types have the same alias set. 5158 (indirect_ref_may_alias_decl_p): Adjust for above renaming. 5159 (indirect_refs_may_alias_p): Likewise. 5160 51612009-10-23 Joseph Myers <joseph@codesourcery.com> 5162 5163 PR c/40033 5164 * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in 5165 a C_MAYBE_CONST_EXPR. 5166 51672009-10-23 Michael Meissner <meissner@linux.vnet.ibm.com> 5168 5169 PR target/41787 5170 * config/rs6000/rs6000.c (struct machine_function): Add 5171 vsx_or_altivec_used_p to record if vector types are used. 5172 (rs6000_expand_to_rtl_hook): Rename from 5173 rs6000_alloc_sdmode_stack_slot. If VSX, check to see if there are 5174 any vector operations, so if there are, we can set VRSAVE to 5175 non-zero when only floating point vector registers are used. 5176 (TARGET_EXPAND_TO_RTL_HOOK): Use rs6000_expand_to_rtl_hook. 5177 (rs6000_check_vector_mode): Inner function to check if vector 5178 types are used in the code. 5179 (compute_vrsave_mask): If VSX, make sure VRSAVE is non-zero if 5180 vector instructions are used. 5181 5182 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): 5183 Indicate that VSX registers which overlap floating point 5184 registers, can't be used across a call, since the ABI only states 5185 the scalar part of the register will be saved and restored. 5186 51872009-10-23 Joseph Myers <joseph@codesourcery.com> 5188 5189 PR c/41673 5190 * alias.c (get_alias_set): Call langhook before returning 0 for 5191 types with structural equality. 5192 * c-common.c (c_common_get_alias_set): Use alias set of element 5193 type for arrays with structural comparison. 5194 51952009-10-23 Richard Guenther <rguenther@suse.de> 5196 5197 PR middle-end/41805 5198 * cfgexpand.c (expand_call_stmt): Use gimple_has_side_effects and 5199 gimple_call_nothrow_p. 5200 52012009-10-23 Richard Guenther <rguenther@suse.de> 5202 5203 PR tree-optimization/41778 5204 * tree-ssa-pre.c (do_regular_insertion): Only insert if a 5205 redundancy along a path in the CFG we want to optimize for speed 5206 is going to be removed. 5207 (execute_pre): Do partial-PRE only if the function is to be 5208 optimized for speed. 5209 (gate_pre): Do not turn off all of PRE when not optimizing a 5210 function for speed. 5211 52122009-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5213 5214 * builtins.c (fold_builtin_cabs): Use validate_arg(). 5215 (fold_builtin_cexp): Fix if-logic. 5216 (fold_builtin_1): Check subtype for BUILT_IN_CIMAG. 5217 52182009-10-22 Jeff Law <law@redhat.com> 5219 5220 * ira-lives.c (process_single_reg_class_operands): Update the 5221 hard reg costs for all the hard registers desired by the 5222 single reg class operand. 5223 52242009-10-22 Richard Sandiford <rdsandiford@googlemail.com> 5225 5226 * simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case 5227 for rtxes that aren't handled specially. 5228 52292009-10-22 Richard Sandiford <rdsandiford@googlemail.com> 5230 5231 * rtl.h (shallow_copy_rtvec): Declare. 5232 * rtl.c (shallow_copy_rtvec): New function. 5233 * cselib.c (cselib_subst_to_values): Use it. Only modify an 5234 rtx field if the subrtx has changed. 5235 52362009-10-22 Anatoly Sokolov <aesok@post.ru> 5237 5238 * config/m32c/m32c.c (m32c_function_value_regno_p): New function. 5239 (m32c_function_value): Make static, add new 'outgoing' argument. 5240 (m32c_libcall_value): Make static, add new 'fun' argument. 5241 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 5242 * config/m32c/m32c.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove. 5243 (FUNCTION_VALUE_REGNO_P): Redefine, use m32c_function_value_regno_p. 5244 * config/m32c/m32c-protos.h (m32c_function_value_regno_p): Declare. 5245 (m32c_function_value, m32c_libcall_value): Delete declaration. 5246 52472009-10-22 Diego Novillo <dnovillo@google.com> 5248 5249 * Makefile.in (PLUGIN_HEADERS): Add output.h and IPA_UTILS_H. 5250 52512009-10-22 Razya Ladelsky <razya@il.ibm.com> 5252 5253 * tree-cfg.c (gimple_duplicate_sese_tail): Fix typos/indentation/white 5254 space. 5255 52562009-10-22 Richard Guenther <rguenther@suse.de> 5257 5258 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare. 5259 * lto-symtab.c (struct lto_symtab_entry_def): Add node member. 5260 (lto_symtab_merge): Do not merge cgraph nodes here. 5261 (lto_symtab_resolve_can_prevail_p): Simplify. 5262 (lto_symtab_resolve_symbols): Store cgraph node. 5263 (lto_symtab_merge_decls_1): Simplify. Do not drop non-prevailing 5264 functions from the symtab. 5265 (lto_symtab_merge_cgraph_nodes_1): New function. 5266 (lto_symtab_merge_cgraph_nodes): Likewise. 5267 52682009-10-22 Richard Guenther <rguenther@suse.de> 5269 5270 PR lto/41791 5271 * lto-streamer-out.c (lto_output_location): Stream the 5272 system header flag. 5273 * lto-streamer-in.c (lto_input_location): Likewise. 5274 52752009-10-22 Razya Ladelsky <razya@il.ibm.com> 5276 5277 * cfgloopmanip.c (duplicate_subloops): Export. 5278 * tree-parloops.c (loop_parallel_p): Dump if loop is innermost. 5279 (transform_to_exit_first_loop): Duplicate bbs starting from 5280 header up to loop->latch instead of exit->src. 5281 Initialize control variable to the correct number of iterations. 5282 (gather_scalar_reductions): Do not register double reductions. 5283 (parallelize_loops): Dump which loop is tested. 5284 Indicate whether the parallelized loop is inner or not. 5285 Remove the innermost-loop requirement. 5286 * cfgloop.h (duplicate_subloops): Export. 5287 * tree-cfg.c (add_phi_args_after_redirect): New function. 5288 (gimple_duplicate_sese_tail): Remove the no-subloops constraint. 5289 Call duplicate_subloops. 5290 Update number of iterations at the exit condition. 5291 Don't redirect nexits always to the loop exit. 5292 Redirect copied edges from latch to the loop exit. 5293 52942009-10-22 Jan Hubicka <jh@suse.cz> 5295 5296 * ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and 5297 flag_ltrans check. 5298 * ipa-inline.c (cgraph_mark_inline_edge, 5299 cgraph_decide_inlining_of_small_function, 5300 cgraph_decide_inlining, inline_read_summary): Disable indirect 5301 inlining for WPA for time being. 5302 5303 PR tree-optimize/40556 5304 * ipa-inline.c (cgraph_early_inlining): Fix iterations condition. 5305 53062009-10-22 Richard Guenther <rguenther@suse.de> 5307 5308 * lto-streamer.h (lto_symtab_clear_resolution): Remove. 5309 * lto-symtab.c (lto_symtab_clear_resolution): Likewise. 5310 53112009-10-22 Jan Hubicka <jh@suse.cz> 5312 5313 PR lto/41730 5314 * ipa-reference.c (has_proper_scope_for_analysis): Add fixme about 5315 global vars. 5316 (check_call): Handle only indirect calls. 5317 (propagate_bits): Update comment. 5318 (write_node_summary_p): Turn bogus check to assert. 5319 (ipa_reference_write_summary): Stream calls_read_all properly. 5320 (ipa_reference_read_summary): Stream in calls_read_all properly. 5321 (read_write_all_from_decl): New function. 5322 (propagate): Handle OVERWRITABLE nodes and external calls here. 5323 * ipa-pre-const.c (check_call): In IPA mode handle indirect 5324 calls only. 5325 (analyze_function): Do not check visibility here. 5326 (add_new_function): We summary OVERWRITABLE too. 5327 (generate_summary): Stream OVERWRITABLE nodes too. 5328 (propagate): Handle external calls and OVERWRITABLE nodes here. 5329 (local_pure_const): Check visibility here. 5330 53312009-10-22 Jan Hubicka <jh@suse.cz> 5332 5333 * ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions. 5334 (pass_ipa_cp): Register them. 5335 (ipcp_init_stage): Analyze all functions for whopr/lto. 5336 (ipcp_propagate_stage): Skip external calls. 5337 (ipcp_iterate_stage): Call ipa_update_after_lto_read if needed. 5338 * ipa-reference.c (write_node_summary_p): Fix thinko about 5339 availability. 5340 * cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries; 5341 when in ltrans, skip executing of ipa passes since everything 5342 should've been done. 5343 * ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs. 5344 (inline_generate_summary): Likewise. 5345 (inline_read_summary): New function. 5346 (inline_write_summary): New function. 5347 (pass_ipa_inline): Register new hooks. 5348 * ipa-prop.c: Inlcude lto-streamer.h 5349 (ipa_edge_args_vector): Update declaration. 5350 (ipa_count_arguments, ipa_compute_jump_functions, 5351 ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc. 5352 (ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info, 5353 ipa_read_node_info): New static functions. 5354 (ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update. 5355 (duplicate_array): Use xmalloc. 5356 (duplicate_ggc_array): New. 5357 (ipa_edge_duplication_hook): Use it. 5358 (ipa_update_after_lto_read): New function. 5359 * ipa-prop.h (ipa_prop_write_jump_functions, 5360 ipa_prop_read_jump_functions): Declare. 5361 (ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst, 5362 jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers. 5363 (ipa_edge_args_vector): Move into GGC. 5364 (ipa_check_create_edge_args): Update. 5365 (ipa_update_after_lto_read): New. 5366 * passes.c (ipa_write_summaries_1): When in wpa, do not write 5367 summaries. 5368 (ipa_read_summaries): When in ltrans, so not read summaries. 5369 * lto-streamer.c (lto_get_section_name): Add 5370 LTO_section_jump_functions. 5371 * lto-streamer.h (LTO_section_jump_functions): New section. 5372 (produce_asm): Declare. 5373 * lto-cgraph.c (output_cgraph): Output edges in reverse order. 5374 * lto-streamer-out.c (produce_asm): Export. 5375 * lto-streamer-in.c: Include tree-pass.h 5376 (input_function): Free dominance info when done. 5377 (lto_read_body): Push ipa_inline in ltrans stage. 5378 * gengtype.c (open_base_files): Add ipa-prop.h into includes. 5379 * Makefile.in (GTFILES): Add ipa-prop.h 5380 53812009-10-22 Matthias Klose <doko@ubuntu.com> 5382 5383 * doc/install.texi: Document --enable-browser-plugin. 5384 53852009-10-21 Vladimir Makarov <vmakarov@redhat.com> 5386 5387 * doc/invoke.texi (fira-loop-pressure): Update default value. 5388 * opts.c (decode_options): Remove default value setting for 5389 flag_ira_loop_pressure. 5390 * config/ia64/ia64.c (ia64_override_options): Set 5391 flag_ira_loop_pressure up for -O3. 5392 * config/rs6000/rs6000.c (rs6000_override_options): Ditto. 5393 53942009-10-21 Sebastian Pop <sebastian.pop@amd.com> 5395 5396 PR tree-optimization/41497 5397 * tree-scalar-evolution.c (analyze_evolution_in_loop): Return 5398 chrec_dont_know if the evolution function returned by follow_ssa_edge 5399 is constant in the analyzed loop and is not compatible with the 5400 initial value before the loop. 5401 * tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS. 5402 54032009-10-21 Joseph Myers <joseph@codesourcery.com> 5404 5405 * config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF. 5406 54072009-10-21 Jakub Jelinek <jakub@redhat.com> 5408 5409 PR other/25507 5410 * doc/invoke.texi: Document -print-multi-os-directory. 5411 54122009-10-21 Jack Howarth <howarth@bromo.med.uc.edu> 5413 5414 PR c++/41313 5415 * gcc/config/darwin10.h: Use default_emit_unwind_label. 5416 * gcc/config/darwin.c: Disable -freorder-blocks-and-partition 5417 when darwin_emit_unwind_label is used. 5418 54192009-10-21 Eric Botcazou <ebotcazou@adacore.com> 5420 5421 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak 5422 order of checks. 5423 54242009-10-20 Richard Henderson <rth@redhat.com> 5425 5426 * tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1 5427 before emit_post_landing_pad. 5428 54292009-10-20 Adam Nemet <anemet@caviumnetworks.com> 5430 5431 * config/mips/mips.c (mips_binary_cost): Add new argument speed. 5432 Use when calling rtx_costs. 5433 (mips_rtx_costs): Fix formatting. Use argument speed rather than the 5434 global optimize_size. Pass speed to mips_binary_cost. 5435 54362009-10-20 Jakub Jelinek <jakub@redhat.com> 5437 5438 * config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead 5439 of TREE_CONSTANT. 5440 54412009-10-20 Richard Sandiford <rdsandiford@googlemail.com> 5442 5443 * rtl.h (simplify_replace_fn_rtx): Declare. 5444 (wrap_constant, unwrap_constant): Delete. 5445 * cfgexpand.c (unwrap_constant, wrap_constant): Delete. 5446 (expand_debug_expr): Don't call wrap_constant. 5447 * combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC. 5448 (auto_adjust_pair): Fold into... 5449 (propagate_for_debug_subst): ...here. Only define for AUTO_INC_DEC. 5450 Just return a new value. 5451 (propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC, 5452 otherwise use simplify_replace_rtx. 5453 * cselib.c (wrap_constant): Reinstate old definition. 5454 (cselib_expand_value_rtx_1): Don't wrap constants. 5455 * gcse.c (try_replace_reg): Don't use copy_rtx in the call to 5456 simplify_replace_rtx. 5457 (bypass_block): Fix formatting in calls to simplify_replace_rtx. 5458 * reload1.c (reload): Skip all uses for an insn before adjusting it. 5459 Use simplify_replace_rtx. 5460 * simplify-rtx.c (simplify_replace_fn_rtx): New function, 5461 adapted from... 5462 (simplify_replace_rtx): ...here. Turn into a wrapper for 5463 simplify_replace_fn_rtx. 5464 (simplify_unary_operation): Don't unwrap CONSTs. 5465 * var-tracking.c (check_wrap_constant): Delete. 5466 (vt_expand_loc_callback): Don't call it. 5467 (vt_expand_loc): Likewise. 5468 54692009-10-20 Pascal Obry <obry@adacore.com> 5470 Eric Botcazou <ebotcazou@adacore.com> 5471 5472 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens. 5473 54742009-10-20 Michael Matz <matz@suse.de> 5475 5476 * loop-invariant.c (create_new_invariant): Use different magic number. 5477 54782009-10-20 Richard Earnshaw <rearnsha@arm.com> 5479 5480 PR target/39247 5481 * arm.c (arm_override_options): Forcibly disable hot/cold block 5482 partitioning. 5483 54842009-10-20 Alexandre Oliva <aoliva@redhat.com> 5485 5486 PR debug/41739 5487 * haifa-sched.c (try_ready): Skip debug deps updating speculation 5488 status. 5489 54902009-10-20 Richard Guenther <rguenther@suse.de> 5491 5492 * ggc-page.c: Include cfgloop.h. 5493 (struct max_alignment): Drop long double, add void *. 5494 (extra_order_size_table): Add low non-power-of-two multiples 5495 of MAX_ALIGNMENT. Drop small type-based entries, add 5496 tree_type, cgraph_node and loop. 5497 * alloc-pool.c (struct allocation_object_def): Drop long double 5498 aligning element. 5499 55002009-10-20 Jakub Jelinek <jakub@redhat.com> 5501 5502 PR debug/41340 5503 * loop-invariant.c (calculate_loop_reg_pressure): Don't count regs 5504 referenced just in DEBUG_INSNs. 5505 55062009-10-20 Richard Guenther <rguenther@suse.de> 5507 5508 PR lto/41761 5509 * gimple.c (gimple_register_type): Make sure we register 5510 the types main variant first. 5511 55122009-10-20 Richard Guenther <rguenther@suse.de> 5513 5514 * gimple.c (gimple_types_compatible_p): Simplify. Move 5515 cheap checks before hashtable queries. Add checks for 5516 TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P. 5517 55182009-10-20 Eric Botcazou <ebotcazou@adacore.com> 5519 5520 * tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields 5521 without size or with size that can't be represented as a host integer. 5522 55232009-10-20 Alexandre Oliva <aoliva@redhat.com> 5524 5525 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard 5526 the removal of a debug stmt as a significant change. 5527 55282009-10-20 Wolfgang Gellerich <gellerich@de.ibm.com> 5529 5530 * config/s390/s390.md: Added agen condition to operand 5531 forwarding bypasses. Added bypass for early address generation 5532 use of int results. Updated comments. 5533 55342009-10-20 Stefan Dösinger <stefan@codeweavers.com> 5535 5536 * config/i386/i386.c: Remove signal.h #include. 5537 55382009-10-20 Jie Zhang <jie.zhang@analog.com> 5539 5540 * simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS. 5541 * doc/rtl.texi: Document ss_abs. 5542 55432009-10-19 Jakub Jelinek <jakub@redhat.com> 5544 5545 * c-common.c (c_parse_error): Handle CPP_UTF8STRING. 5546 * c-lex.c (c_lex_with_flags): Likewise. Test C_LEX_STRING_NO_JOIN 5547 instead of C_LEX_RAW_STRINGS. 5548 (lex_string): Handle CPP_UTF8STRING. 5549 * c-parser.c (c_parser_postfix_expression): Likewise. 5550 * c-pragma.h (C_LEX_RAW_STRINGS): Rename to ... 5551 (C_LEX_STRING_NO_JOIN): ... this. 5552 55532009-10-19 Anatoly Sokolov <aesok@post.ru> 5554 5555 * config/cris/cris.c (cris_function_value, cris_libcall_value, 5556 cris_function_value_regno_p): New functions. 5557 (cris_promote_function_mode): Update comment. 5558 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 5559 * config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove. 5560 (FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p. 5561 * config/cris/cris-protos.h (cris_function_value_regno_p): Declare. 5562 55632009-10-19 Jakub Jelinek <jakub@redhat.com> 5564 5565 * unwind-dw2.c (execute_stack_op): Fix operand order for 5566 DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt. 5567 55682009-10-19 Eric Botcazou <ebotcazou@adacore.com> 5569 5570 * gimple-low.c (struct lower_data): Add cannot_fallthru field. 5571 (lower_stmt) <GIMPLE_BIND>: Add comment. 5572 <GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true 5573 and return. 5574 <GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set. 5575 Otherwise lower it and set cannot_fallthru to true. 5576 <GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return. 5577 <GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false. 5578 <GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and 5579 to true for a noreturn call. Do not remove statements. 5580 <GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false. 5581 Set cannot_fallthru to false on function exit. 5582 (gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false. 5583 <GIMPLE_ASSIGN>: Remove. 5584 55852009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5586 5587 * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares. 5588 55892009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5590 5591 * config/s390/s390.c (s390_z10_optimize_cmp): Use 5592 next/prev_active_insn to skip DEBUG_INSNs as well. 5593 55942009-10-19 Joseph Myers <joseph@codesourcery.com> 5595 5596 * config/arm/arm.c (output_move_neon): Use DImode in call to 5597 adjust_address. 5598 55992009-10-19 Matthias Klose <doko@ubuntu.com> 5600 5601 PR target/40134 5602 * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc. 5603 56042009-10-19 Jakub Jelinek <jakub@redhat.com> 5605 5606 * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0. 5607 56082009-10-17 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 5609 5610 PR middle-end/41738 5611 * optabs.c (expand_binop): Make mode of shift count expression mode 5612 of shift count not target. 5613 Remove indent nit. 5614 56152009-10-17 Eric Botcazou <ebotcazou@adacore.com> 5616 5617 * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New 5618 case. Force using values to replace references within the statement. 5619 (convert_local_reference_stmt): Likewise. 5620 56212009-10-17 Eric Botcazou <ebotcazou@adacore.com> 5622 5623 * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn, 5624 remove a subsequent GOTO or RETURN statement. 5625 56262009-10-17 Andy Hutchinson <hutchinsonandy@aim.com> 5627 5628 * config/avr.md (*movqi): Add zero as equally preferable constraint 5629 as general register. 5630 (*movhi): Ditto. 5631 56322009-10-17 Eric Botcazou <ebotcazou@adacore.com> 5633 5634 * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION. 5635 56362009-10-17 Richard Guenther <rguenther@suse.de> 5637 5638 * lto-streamer-in.c (lto_input_location): Try to reuse previous maps. 5639 56402009-10-17 Richard Guenther <rguenther@suse.de> 5641 5642 * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL 5643 operands in COMPONENT_REFs. 5644 56452009-10-17 Anatoly Sokolov <aesok@post.ru> 5646 5647 * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro 5648 if not defined. Change type of second argument to const_rtx. 5649 (default_function_value): Call gcc_unreachable if FUNCTION_VALUE 5650 macro not defined. 5651 * targhooks.h (default_libcall_value): Update prototype. 5652 * target.h (struct gcc_target): Change type of second argument of 5653 libcall_value to const_rtx. 5654 * config/arm/arm.c (arm_libcall_value): Change type of second argument 5655 to const_rtx. 5656 (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx. 5657 * doc/tm.texi (TARGET_LIBCALL_VALUE): Revise documentation. 5658 56592009-10-17 Jakub Jelinek <jakub@redhat.com> 5660 5661 PR debug/40521 5662 * debug.h (struct gcc_debug_hooks): Add assembly_start hook. 5663 * cgraphunit.c (cgraph_optimize): Call it. 5664 * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into... 5665 (dwarf2out_assembly_start): ... here. New hook. 5666 (dwarf2out_debug_hooks): Add dwarf2out_assembly_start. 5667 * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start 5668 hook. 5669 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. 5670 * sdbout.c (sdb_debug_hooks): Likewise. 5671 * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start. 5672 (vmsdbgout_assembly_start): New hook. 5673 56742009-10-17 Alexandre Oliva <aoliva@redhat.com> 5675 5676 * rtl.h (RTL_LOCATION): Fix typo. 5677 56782009-10-17 Alexandre Oliva <aoliva@redhat.com> 5679 5680 * print-rtl.c (print_rtx): Print locators in asm_operands 5681 and asm_input. 5682 56832009-10-17 Alexandre Oliva <aoliva@redhat.com> 5684 5685 PR debug/41535 5686 * sched-deps.c (depl_on_debug_p): New. 5687 (attach_dep_link): Reject debug deps before nondebug deps. 5688 (add_to_deps_list): Insert debug deps after nondebug deps. 5689 (sd_lists_empty_p): Stop at first nonempty list. Disregard debug 5690 deps. 5691 (sd_add_dep): Do not reject debug deps. 5692 (add_insn_mem_dependence): Don't count debug deps. 5693 (remove_from_deps): Likewise. 5694 (sched_analyze_2): Set up mem deps on debug insns. 5695 (sched_analyze_insn): Record reg uses for deps on debug insns. 5696 * haifa-sched.c (schedule_insn): Reset deferred debug insn. Don't 5697 try_ready nondebug insn after debug insn. 5698 * ddg.c (create_ddg_dep_from_intra_loop_link, 5699 create_ddg_dep_no_link): Don't reject debug deps. 5700 57012009-10-16 Richard Guenther <rguenther@suse.de> 5702 5703 * lto-symtab.c (merge_incomplete_and_complete_type): Remove. 5704 (maybe_merge_incomplete_and_complete_type): Likewise. 5705 (lto_symtab_merge): Do not call them. Do not warn for 5706 complete vs. incomplete compatible types. 5707 (lto_symtab_merge_decls_2): Simplify. 5708 * gimple.c (gimple_force_type_merge): Remove. 5709 (gimple_types_compatible_p): Make it static. 5710 * gimple.h (gimple_force_type_merge): Remove. 5711 (gimple_types_compatible_p): Likewise. 5712 57132009-10-16 Jakub Jelinek <jakub@redhat.com> 5714 5715 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast 5716 DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings. 5717 57182009-10-16 Richard Guenther <rguenther@suse.de> 5719 5720 PR tree-optimization/41728 5721 * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified 5722 if fold_stmt did anything. 5723 57242009-10-16 Richard Guenther <rguenther@suse.de> 5725 5726 PR lto/41715 5727 * lto-streamer-in.c (lto_input_tree_ref): Revert last change. 5728 (maybe_fixup_handled_component): New function. 5729 (input_gimple_stmt): Fixup mismatched decl replacements. 5730 57312009-10-16 Richard Guenther <rguenther@suse.de> 5732 5733 PR lto/41713 5734 * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL 5735 the same as VAR_DECL. 5736 57372009-10-16 Richard Guenther <rguenther@suse.de> 5738 5739 * gimple.c (iterative_hash_gimple_type): For integer types 5740 also hash their minimum and maximum values and the string flag. 5741 For array types hash their domain and the string flag. 5742 57432009-10-16 Richard Guenther <rguenther@suse.de> 5744 5745 * gimple.c (gimple_types_compatible_p): Restrict completing 5746 types to record or unions. Simplify completion. 5747 Do not merge records or unions with different 5748 TYPE_STRUCTURAL_EQUALITY_P tag. 5749 (iterative_hash_gimple_type): Restrict non-recursing into 5750 pointer targets for records and unions. 5751 57522009-10-15 Jakub Jelinek <jakub@redhat.com> 5753 5754 PR debug/41717 5755 * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR. 5756 * dwarf2out.c (mem_loc_descriptor): Don't handle 5757 POST_INT/POST_DEC/POST_MODIFY like SUBREG. For SUBREG 5758 punt if it is not lowpart subreg or if inner mode isn't 5759 MODE_INT. 5760 57612009-10-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5762 5763 * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when 5764 investigating previous or next insns. 5765 57662009-10-16 Eric Botcazou <ebotcazou@adacore.com> 5767 5768 * tree-sra.c (build_ref_for_offset_1): Update comment. 5769 57702009-10-16 Wolfgang Gellerich <gellerich@de.ibm.com> 5771 5772 * config/s390/s390.md (atype): Added missing values. 5773 57742009-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 5775 5776 PR target/41702 5777 * pa.md (casesi): Use sign extended index in call to gen_casesi64p. 5778 (casesi64p): Update pattern to reflect above. 5779 57802009-10-15 Steve Ellcey <sje@cup.hp.com> 5781 5782 PR rtl-optimization/41697 5783 * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count. 5784 57852009-10-15 Michael Meissner <meissner@linux.vnet.ibm.com> 5786 5787 PR target/23983 5788 * config/rs6000/predicates.md: Update copyright year. 5789 * config/rs6000/altivec.md: Ditto. 5790 5791 * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def. 5792 (MD_INCLUDES): Add a2.md. 5793 5794 * config/rs6000/rs6000.c (rs6000_builtin_decls): Change 5795 RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS. 5796 (builtin_classify): New static vector to classify various builtins 5797 to get the tree attributes correct. 5798 (def_builtin): Set the attributes of builtins based on what the 5799 builtin does (i.e. memory operation, floating point, saturation 5800 need special attributes, others are pure functions). 5801 5802 * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify 5803 the builtins. 5804 (enum rs6000_builtins): Include rs6000-builtin.def to define the 5805 builtins. Change the end marker to MAX_RS6000_BUILTINS from 5806 RS6000_BUILTIN_COUNT. 5807 (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to 5808 MAX_RS6000_BUILTINS. 5809 5810 * config/rs6000/rs6000-builtin.def: New file that combines the 5811 builtin enumeration name and attributes. 5812 58132009-10-15 H.J. Lu <hongjiu.lu@intel.com> 5814 5815 * config/i386/linux.h (ASM_SPEC): Add --32. 5816 58172009-10-15 Jakub Jelinek <jakub@redhat.com> 5818 5819 * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type 5820 and DW_TAG_template_alias. 5821 (dwarf_attr_name): Handle DW_AT_main_subprogram, 5822 DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class, 5823 DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by, 5824 DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded, 5825 DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required 5826 and DW_AT_GNU_odr_signature. 5827 (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc, 5828 DW_FORM_flag_present and DW_FORM_ref_sig8. 5829 (output_signature): Only print name on the first byte. 5830 (output_die): Likewise for dw_val_class_data8. 5831 58322009-10-15 Alexander Monakov <amonakov@ispras.ru> 5833 5834 * doc/invoke.texi: Clarify that most optimizations are not enabled 5835 without -O. 5836 58372009-10-15 Richard Guenther <rguenther@suse.de> 5838 5839 PR lto/41668 5840 * gimple.c (compare_type_names_p): Handle anonymous names 5841 differently based on new mode argument. 5842 (gimple_types_compatible_p): For structs also compare the tags. 5843 (iterative_hash_type_name): Rename to ... 5844 (iterative_hash_name): ... this. Hash all names. 5845 (iterative_hash_gimple_type): Fix hashing the struct tag of 5846 pointer targets. Hash field decl names. 5847 58482009-10-15 Richard Guenther <rguenther@suse.de> 5849 5850 PR lto/41669 5851 * gimple.c (gimple_get_alias_set): Avoid recursing on 5852 invalid type topology. 5853 58542009-10-15 Andrew Pinski <andrew_pinski@playstation.sony.com> 5855 5856 * config/spu/spu.c (get_branch_target): Use extract_asm_operands. 5857 58582009-10-15 Richard Guenther <rguenther@suse.de> 5859 5860 * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT. 5861 58622009-10-15 Jakub Jelinek <jakub@redhat.com> 5863 5864 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't 5865 add --with-tune{,-32,-64} configured default for -mtune if explicit 5866 -mcpu is used. 5867 58682009-10-14 Daniel Gutson <dgutson@codesourcery.com> 5869 5870 * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed. 5871 58722009-10-14 DJ Delorie <dj@redhat.com> 5873 5874 * config/h8300/h8300.c (F): New. 5875 (Fpa): New. 5876 (h8300_emit_stack_adjustment): Call them. 5877 (push): Likewise. 5878 (h8300_push_pop): Likewise. 5879 (h8300_expand_prologue): Likewise. 5880 * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define. 5881 (MUST_USE_SJLJ_EXCEPTIONS): Define. 5882 (INCOMING_RETURN_ADDR_RTX): Define. 5883 (INCOMING_FRAME_SP_OFFSET): Define. 5884 (DWARF_CIE_DATA_ALIGNMENT): Define. 5885 58862009-10-14 Jakub Jelinek <jakub@redhat.com> 5887 5888 * stor-layout.c (place_field): Don't emit -Wpadded warnings for 5889 fields in builtin structs. 5890 (finalize_record_size): Likewise. 5891 58922009-10-14 Richard Guenther <rguenther@suse.de> 5893 5894 * gimple.c (gtc_ob): New global. 5895 (struct type_pair_d): Replace pointers with type UIDs. 5896 (type_pair_hash): Adjust. 5897 (type_pair_eq): Likewise. 5898 (lookup_type_pair): Likewise. Allocate from an obstack. 5899 (gimple_force_type_merge): Adjust. 5900 (gimple_types_compatible_p): Likewise. 5901 (free_gimple_type_tables): Free the obstack. 5902 59032009-10-14 Jakub Jelinek <jakub@redhat.com> 5904 5905 * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug 5906 stmts setting DEBUG_EXPR_DECLs. 5907 5908 * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields. 5909 Don't crash if mode1 is VOIDmode. 5910 59112009-09-26 Vladimir Makarov <vmakarov@redhat.com> 5912 5913 * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New. 5914 * params.h (IRA_LOOP_RESERVED_REGS): New. 5915 * tree-pass.h (pass_subregs_of_mode_init, 5916 pass_subregs_of_mode_finish): Remove. 5917 * passes.c (pass_subregs_of_mode_init, 5918 pass_subregs_of_mode_finish): Remove. 5919 (pass_reginfo_init): Move before loop optimizations. 5920 * config/i386/i386.h (STACK_REG_COVER_CLASS): Define. 5921 * common.opt (fira-loop-pressure): New. 5922 * toplev.h (flag_ira_loop_pressure): New. 5923 * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals. 5924 * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode): 5925 Make external and void type functions. 5926 (gate_subregs_of_mode_init, pass_subregs_of_mode_init, 5927 pass_subregs_of_mode_finish): Remove. 5928 * ira-costs.c (init_costs): Call init_subregs_of_mode. 5929 * regmove.c: Include ira.h. 5930 (regmove_optimize): Call ira_set_pseudo_classes after IRA based 5931 register pressure calculation in loops. 5932 * loop-invariant.c: Include REGS_H and ira.h. 5933 (struct loop_data): New members max_reg_pressure, regs_ref, and 5934 regs_live. 5935 (struct invariant): New member orig_regno. 5936 (curr_loop): New variable. 5937 (find_exits): Initialize regs_ref and regs_live. 5938 (create_new_invariant): Initialize orig_regno. 5939 (get_cover_class_and_nregs): New. 5940 (get_inv_cost): Make aregs_needed an array. Use regs_needed as an 5941 array. Add code for flag_ira_loop_pressure. 5942 (gain_for_invariant): Make new_regs an array. Add code for 5943 flag_ira_loop_pressure. 5944 (best_gain_for_invariant): Ditto. 5945 (set_move_mark): New parameter gain. Use it for debugging output. 5946 (find_invariants_to_move): Make regs_needed and new_regs an array. 5947 Add code for flag_ira_loop_pressure. 5948 (move_invariant_reg): Set up orig_regno. 5949 (move_invariants): Set up reg classes for pseudos for 5950 flag_ira_loop_pressure. 5951 (free_loop_data): Clear regs_ref and regs_live. 5952 (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set, 5953 get_regno_cover_class, change_pressure, mark_regno_live, 5954 mark_regno_death, mark_reg_store, mark_reg_clobber, 5955 mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New. 5956 (move_loop_invariants): Calculate pressure. Initialize curr_loop. 5957 * ira.c (ira): Call ira_set_pseudo_classes after IRA based 5958 register pressure calculation in loops if new regs were added. 5959 Call finish_subregs_of_mode. 5960 * opts.c (decode_options): Set up flag_ira_loop_pressure. 5961 * Makefile.in (loop-invariant.o): Add ira.h. 5962 (regmove.o): Ditto. 5963 * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs): 5964 Describe. 5965 * doc/tm.texi (STACK_REG_COVER_CLASS): Describe. 5966 59672009-10-14 Richard Guenther <rguenther@suse.de> 5968 5969 * lto-symtab.c (lto_symtab_compatible): Fold in ... 5970 (lto_symtab_merge): ... here. Rewrite both to take the 5971 prevailing and a to-be-merged entry and to queue diagnostics properly. 5972 (lto_symtab_resolve_replaceable_p): New predicate for 5973 symbol resolution. 5974 (lto_symtab_resolve_can_prevail_p): Likewise. 5975 (lto_symtab_resolve_symbols): Rewrite. Fold in code that 5976 handles merging commons by choosing the largest decl. Fold 5977 in code that gives ODR errors. 5978 (lto_symtab_merge_decls_2): Simplify a lot. Emit queued 5979 diagnostics here. 5980 (lto_symtab_merge_decls_1): Re-structure. Deal with the 5981 case of no prevailing decl here. Diagnose mismatches 5982 in object types here. Drop all but the prevailing decls. 5983 (lto_symtab_prevailing_decl): Return the single prevailing decl. 5984 * lto-streamer-in.c (lto_input_tree_ref): Deal with 5985 VIEW_CONVERT_EXPRs in decl slots. Unshare the tree in this case. 5986 59872009-10-14 Richard Guenther <rguenther@suse.de> 5988 5989 PR lto/41521 5990 * lto-streamer-in.c (input_bb): Replace debug stmts with 5991 nops instead of dropping them. 5992 59932009-10-14 Nick Clifton <nickc@redhat.com> 5994 5995 * gcc/doc/extended.texi: Replace the dash character with @minus{} 5996 in situations where it is being used as a minus symbol. 5997 * gcc/doc/tm.texi: Likewise. 5998 * gcc/doc/md.texi: Likewise. 5999 60002009-10-14 Jakub Jelinek <jakub@redhat.com> 6001 6002 PR preprocessor/41543 6003 * input.h (BUILTINS_LOCATION): Change to 1 from 2. 6004 Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT. 6005 * tree.c: Include intl.h. 6006 (expand_location): Handle BUILTINS_LOCATION. 6007 * Makefile.in (tree.o): Depend on intl.h. 6008 6009 PR debug/41695 6010 * dwarf2out.c (dwarf2out_var_location): Always clear 6011 last_postcall_label when changing last_label. 6012 60132009-10-14 Pascal Obry <obry@adacore.com> 6014 6015 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E. 6016 (process_command): Handle -E as done with -c and -S. Do not add 6017 the target executable suffix to the output file when -E is used. 6018 (main): Adjust error message accordingly. 6019 60202009-10-14 Alexandre Oliva <aoliva@redhat.com> 6021 6022 PR debug/41343 6023 PR debug/41447 6024 PR debug/41264 6025 PR debug/41338 6026 * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses 6027 decl with rtl. 6028 (tree_code_size): Likewise. 6029 60302009-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6031 6032 * builtins.c (fold_builtin_1): Support complex "arc" functions. 6033 * real.h (HAVE_mpc_arc): Define. 6034 60352009-10-14 Kaz Kojima <kkojima@gcc.gnu.org> 6036 6037 * config/sh/sh.c (TARGET_BUILTIN_DECL): Define. 6038 (struct builtin_description): Add fndecl field. 6039 (bdesc): Remove const qualifier. Update initializer. 6040 (sh_media_init_builtins): Remove const qualifier for d. Record 6041 the result of add_builtin_function to the fndecl field. 6042 (sh_builtin_decl): New. 6043 (sh_media_builtin_decl): New. 6044 60452009-10-14 Hans-Peter Nilsson <hp@axis.com> 6046 6047 PR target/38948 6048 * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload 6049 requests between special registers. 6050 60512009-10-13 Eric Botcazou <ebotcazou@adacore.com> 6052 6053 * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well. 6054 60552009-10-13 Richard Henderson <rth@redhat.com> 6056 6057 PR tree-optimization/41377 6058 * tree-eh.c (unsplit_eh): Propagate degenerate PHIs. 6059 (cleanup_empty_eh_merge_phis): New change_region parameter; 6060 pass it on to redirect_eh_edge_1. Update callers. 6061 (cleanup_empty_eh_unsplit): Don't require an existing EH label 6062 at the destination block. 6063 60642009-10-13 Basile Starynkevitch <basile@starynkevitch.net> 6065 6066 * passes.c (register_pass): Replaced gcc_unreachable by 6067 fatal_error on failure. Mentions plugins in comments & messages. 6068 60692009-10-13 Jakub Jelinek <jakub@redhat.com> 6070 6071 PR target/41693 6072 * rtl.h (DEBUG_EXPR_TREE_DECL): Define. 6073 * sched-vis.c (print_value): Use it. 6074 * cselib.c (cselib_hash_rtx): Likewise. 6075 * print-rtl.c (print_rtx): Likewise. 6076 * cfgexpand.c (expand_debug_rtx): Likewise. 6077 * var-tracking.c (vt_expand_loc_callback): Likewise. 6078 60792009-10-13 Richard Guenther <rguenther@suse.de> 6080 6081 PR lto/41565 6082 * opts.c (handle_option): Split out code to handle setting 6083 the options flag var ... 6084 (set_option): ... here. 6085 * opts.h (set_option): Declare. 6086 * lto-opts.c (register_user_option_p): Include -fexceptions 6087 and all position independent code variants. 6088 (handle_common_option): Remove. 6089 (lto_reissue_options): Use set_option. 6090 60912009-10-13 Martin Jambor <mjambor@suse.cz> 6092 6093 PR tree-optimization/41661 6094 * ipa-prop.c (compute_complex_pass_through): Allow only operations 6095 that are tcc_comparisons or do not change the type in any 6096 un-usleless way. 6097 * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when 6098 folding tcc_comparison operations. 6099 61002009-10-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6101 6102 * config/s390/s390.c (s390_encode_section_info): Handle BLKmode 6103 properly. 6104 61052009-10-12 Alexandre Oliva <aoliva@redhat.com> 6106 6107 PR debug/41343 6108 PR debug/41447 6109 PR debug/41264 6110 PR debug/41338 6111 * tree.def (DEBUG_EXPR_DECL): New. 6112 * rtl.def (DEBUG_EXPR): New. 6113 * gengtype.c (adjust_field_rtx_def): Handle it. 6114 * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to... 6115 (insert_debug_temp_for_var_def): ... this. Drop support for 6116 moving. Take iterator for def stmt; insert debug stmt before it. 6117 Scan early for use count and kind in debug stmts. 6118 (propagate_defs_into_debug_stmts): Rename to... 6119 (insert_debug_temps_for_defs): ... this. Likewise. 6120 * tree.h (DEBUG_TEMP_UID): New. 6121 * tree.c (next_debug_decl_uid): New. 6122 (make_node_stat): Count debug decls separately. 6123 (copy_node_stat): Likewise. 6124 * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL. 6125 * var-tracking.c (dv_is_decl_p): Recognize it. 6126 (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too. 6127 (track_expr_p): Track expanded DEBUG_EXPR_DECLs. 6128 (vt_expand_loc_callback): Expand DEBUG_EXPRs. 6129 (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs. 6130 * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR. 6131 (cselib_hash_rtx): Likewise. 6132 (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR. 6133 * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in 6134 debug bind stmts. 6135 * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE. 6136 (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise. 6137 * rtl.c (copy_rtx): Likewise. 6138 (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR. 6139 * print-rtl.c (print_rtx): Likewise. 6140 * sched-vis.c (print_value): Likewise. 6141 (print_insn): Handle DEBUG_EXPR_DECL. 6142 * tree-dump.c (dequeue_and_dump): Likewise. 6143 * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise. 6144 * gimple-iterator (gsi_replace): Check for same lhs. 6145 (gsi_remove): Insert debug temps. 6146 * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs. 6147 (move_computations_stmt): Drop explicit propagation into debug stmts. 6148 (rewrite_bittest): Likewise. Use gsi_remove for propagation. 6149 * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise. 6150 * tree-ssa-sink.c (statement_sink_location): Likewise. 6151 * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise. 6152 * tree-ssanames.c (release_ssa_name): Adjust for rename. 6153 * tree-flow.h: Likewise. 6154 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark 6155 debug temps without values. 6156 (eliminate_unnecessary_stmts): Don't discard just-inserted 6157 debug stmts. 6158 61592009-10-12 Hans-Peter Nilsson <hp@axis.com> 6160 6161 PR target/26515 6162 * config/cris/cris.md (andu): Check that operand 1 is one of the 6163 general registers. Fix typo in head comment. 6164 61652009-10-12 Stefan Dösinger <stefan@codeweavers.com> 6166 6167 * config/i386/i386.md (vswapmov): New. 6168 * config/i386/i386.c (ix86_handle_fndecl_attribute): New. 6169 (ix86_function_ms_hook_prologue): New. 6170 (ix86_expand_prologue): Handle ms_hook_prologue attribute. 6171 * configure.ac: Test for swap suffix support in as. 6172 * configure: Rebuild. 6173 61742009-10-12 Jakub Jelinek <jakub@redhat.com> 6175 6176 PR target/41680 6177 * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow 6178 paradoxical subregs to prevent partial register stalls if the inner 6179 mode is integer mode. 6180 61812009-10-12 Uros Bizjak <ubizjak@gmail.com> 6182 6183 * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern. 6184 61852009-10-12 Dodji Seketeli <dodji@redhat.com> 6186 6187 PR c++/41570 6188 * gcc/dwarf2out.c (template_parameter_pack_die, 6189 gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes. 6190 61912009-10-12 Alexandre Oliva <aoliva@redhat.com> 6192 6193 PR debug/41616 6194 * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts 6195 on updates too. 6196 (maybe_register_def): Likewise. Take stmt iterator. 6197 (rewrite_update_stmt): Take stmt iterator and pass it on. 6198 (rewrite_update_enter_block): Pass stmt iterator. 6199 62002009-10-11 Andrew Pinski <andrew_pinski@playstation.sony.com> 6201 6202 * config/spu/spu.c (TARGET_BUILTIN_DECL): Define. 6203 (spu_builtin_decl): New function. 6204 62052009-10-12 Uros Bizjak <ubizjak@gmail.com> 6206 6207 * config/i386/i386.md (SWIM): New mode iterator. 6208 (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns 6209 using SWIM mode iterator. 6210 (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1 6211 patterns using SWI48 mode iterator. 6212 (*x86_mov<mode>cc_0_m1_se): Macroize insn from 6213 *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator. 6214 (*x86_mov<mode>cc_0_m1_neg): New insn pattern. 6215 (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc 6216 patterns using SWI248 mode iterator. 6217 * config/i386/i386.c (ix86_expand_int_movcc): Update the call to 6218 gen_x86_movdicc_0_m1_rex64 for renamed function 6219 62202009-10-11 Jose Ruiz <ruiz@adacore.com> 6221 Eric Botcazou <ebotcazou@adacore.com> 6222 6223 PR target/33743 6224 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define. 6225 * config/sparc/sol2-unwind.h: New file. 6226 62272009-10-11 Olivier Hainque <hainque@adacore.com> 6228 Eric Botcazou <ebotcazou@adacore.com> 6229 6230 PR target/33743 6231 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define. 6232 * config/i386/sol2-unwind.h: New file. 6233 62342009-10-11 H.J. Lu <hongjiu.lu@intel.com> 6235 6236 PR target/41665 6237 * config/i386/i386.md (addsi_1_zext): Get the proper second 6238 operand for lea. 6239 62402009-10-11 Richard Sandiford <rdsandiford@googlemail.com> 6241 6242 * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for 6243 all OLD_RTXes, not just REGs. Use copy_rtx to create the 6244 replacement value. 6245 62462009-10-11 Richard Guenther <rguenther@suse.de> 6247 6248 * gimple.c (iterative_hash_type_name): Do not handle special 6249 anonymous names. 6250 62512009-10-11 Uros Bizjak <ubizjak@gmail.com> 6252 6253 * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern. 6254 (*setcc_si_1_and): Ditto. 6255 (*setcc_si_1_movzbl): Ditto. 6256 (*setcc_<mode>_2): Ditto. 6257 (*setcc_qi): Rename from *setcc_1. 6258 (*setcc_qi_slp): Rename from *setcc_2. 6259 6260 (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear. 6261 (*zero_extendqisi2_movzbw_and splitter): Ditto. 6262 6263 * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from 6264 "if" condition, there is already assert with reload_completed present. 6265 62662009-10-11 Gerald Pfeifer <gerald@pfeifer.com> 6267 6268 * plugin.c (try_init_one_plugin): Improve constness of variable err. 6269 62702009-10-10 Gerald Pfeifer <gerald@pfeifer.com> 6271 6272 * doc/install.texi (Final install): Refer to 6273 http://gcc.gnu.org/bugs/ for bug reporting. 6274 62752009-10-10 Peter Bergner <bergner@vnet.ibm.com> 6276 6277 * configure.ac: Add test for dci instruction. 6278 * configure: Regenerate. 6279 * config.in: Likewise. 6280 * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp. 6281 * doc/invoke.texi: Add cpu_type 476 and 476fp. 6282 (-mmulhw): Add 476 to description. 6283 (-mdlmzb): Likewise. 6284 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476. 6285 * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost. 6286 (processor_target_table): Add 476 and 476fp entries. 6287 (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476. 6288 (rs6000_issue_rate): Add CPU_PPC476. 6289 * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define. 6290 (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp. 6291 (processor_type): Add PROCESSOR_PPC476. 6292 (EXTRA_SPECS): Add asm_cpu_476 string. 6293 * config/rs6000/rs6000.md (define_attr "type"): Add isel attribute. 6294 (define_attr "cpu"): Add ppc476. 6295 Include 476.md. 6296 Update comments for 476. 6297 (isel_signed, isel_unsigned): Change to use "isel" type attribute. 6298 * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476. 6299 Update copyright year. 6300 * config/rs6000/476.md: New file. 6301 * config/rs6000/40x.md: Add description for "isel" attribute. 6302 Update copyright year. 6303 * config/rs6000/440.md: Likewise. 6304 * config/rs6000/603.md: Likewise. 6305 * config/rs6000/6xx.md: Likewise. 6306 * config/rs6000/7450.md: Likewise. 6307 * config/rs6000/7xx.md: Likewise. 6308 * config/rs6000/8540.md: Likewise. 6309 * config/rs6000/cell.md: Likewise. 6310 * config/rs6000/e300c2c3.md: Likewise. 6311 * config/rs6000/e500mc.md: Likewise. 6312 * config/rs6000/mpc.md: Likewise. 6313 * config/rs6000/power4.md: Likewise. 6314 * config/rs6000/power5.md: Likewise. 6315 * config/rs6000/power6.md: Likewise. 6316 * config/rs6000/power7.md: Likewise. 6317 * config/rs6000/rios1.md: Likewise. 6318 * config/rs6000/rios2.md: Likewise. 6319 * config/rs6000/rs64.md: Likewise. 6320 63212009-10-10 Richard Guenther <rguenther@suse.de> 6322 6323 PR tree-optimization/41654 6324 * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize 6325 a cond expr before calling gimple_cond_set_condition_from_tree. 6326 (ifcombine_iforif): Likewise. 6327 63282009-10-09 Ian Lance Taylor <iant@google.com> 6329 6330 * configure.ac: Use AC_SEARCH_LIBS to find dlopen. 6331 * configure: Rebuild. 6332 63332009-10-09 Neil Vachharajani <nvachhar@google.com> 6334 6335 * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as 6336 deprecated. 6337 63382009-10-09 Richard Guenther <rguenther@suse.de> 6339 6340 PR lto/41638 6341 * target-def.h (TARGET_BUILTIN_DECL): Define. 6342 (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL. 6343 * target.h (struct gcc_target): Add builtin_decl target hook. 6344 * doc/tm.texi (TARGET_BUILTIN_DECL): Document. 6345 * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of 6346 target builtins. 6347 * lto-streamer-out.c (lto_output_tree_pointers): Use sorry, 6348 not gcc_unreachable. 6349 (lto_output_builtin_tree): Sorry if the target does not support 6350 streaming target builtins. 6351 * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define. 6352 (rs6000_builtin_decl): New function. 6353 * config/i386/i386.c (TARGET_BUILTIN_DECL): Define. 6354 (ix86_builtin_decl): New function. 6355 63562009-10-09 Jakub Jelinek <jakub@redhat.com> 6357 6358 PR preprocessor/41445 6359 * c-ppoutput.c (do_line_change): New function. 6360 (cb_line_change): Use it. 6361 (scan_translation_unit): Call do_line_change if 6362 avoid_paste or PREV_WHITE and token location is on a different line 6363 than print.src_line. 6364 6365 PR debug/40521 6366 * dwarf2out.c (dwarf2out_init): Test whether 6367 HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking 6368 it is defined. 6369 6370 PR rtl-optimization/41646 6371 * calls.c (expand_call): For BLKmode types returned in registers 6372 avoid likely spilled hard regs in copy_blkmode_from_reg generated 6373 insns. 6374 63752009-10-09 Richard Guenther <rguenther@suse.de> 6376 6377 PR tree-optimization/41634 6378 * tree-ssa-dom.c (remove_local_expressions_from_table): Assert 6379 we remove the correct elements. 6380 (optimize_stmt): Make sure to update stmt operands before 6381 optimizing redundancies. 6382 63832009-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6384 6385 * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching. 6386 63872009-10-09 Richard Guenther <rguenther@suse.de> 6388 6389 PR driver/41637 6390 * lto-wrapper.c (ltrans_output_file, flto_out, args_name): New 6391 globals. 6392 (lto_wrapper_exit): New function. 6393 (fatal): Use it. 6394 (fatal_perror): Likewise. 6395 (fork_execute): Use global args_name, do not free it. 6396 (run_gcc): Use global ltrans_output_file, flto_out, do not free them. 6397 * lto-streamer.h: Remove duplicate prototypes. 6398 63992009-10-09 Richard Guenther <rguenther@suse.de> 6400 6401 * cgraph.c (cgraph_create_edge): Check for NULL call_stmt 6402 before calling stmt_can_throw_external. 6403 64042009-10-09 Eric Botcazou <ebotcazou@adacore.com> 6405 6406 PR tree-optimization/40071 6407 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all 6408 pointer if the original data reference doesn't conflict with the 6409 created vector data reference. Fix long line. 6410 64112009-10-09 Uros Bizjak <ubizjak@gmail.com> 6412 6413 * config/i386/i386.md (any_div): New code iterator. 6414 (u): Handle div and udiv. 6415 (sgnprefix): Ditto. 6416 (<u>divqi3): Macroize insn from {,u}divqi3 using any_div 6417 code iterator. 6418 (lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from 6419 lfloor<mode>{si,di}2 patterns using SWI48 mode iterator. 6420 (lceil<MODEF:mode><SWI48:mode>2): Macroize insn from 6421 lceil<mode>{si,di}2 patterns using SWI48 mode iterator. 6422 64232009-10-08 Joseph Myers <joseph@codesourcery.com> 6424 6425 * gcc.c (main): Remove trailing "." from diagnostics. 6426 64272009-10-08 Cary Coutant <ccoutant@google.com> 6428 6429 Add support for debugging with ICF (Identical Code Folding). 6430 * calls.c (debug.h): New #include. 6431 (emit_call_1): Call virtual_call_token debug hook. 6432 * common.opt (-fenable-icf-debug): New option. 6433 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two 6434 locations in the source). 6435 (poc_label_num): New variable. 6436 (dcall_entry, vcall_entry): New typedefs. 6437 (dcall_table, vcall_table): New variables. 6438 (struct vcall_insn): New type. 6439 (vcall_insn_table): New variable. 6440 (DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros. 6441 (size_of_dcall_table): New function. 6442 (output_dcall_table): New function. 6443 (size_of_vcall_table): New function. 6444 (output_vcall_table): New function. 6445 (dwarf2out_direct_call): New function. 6446 (vcall_insn_table_hash): New function. 6447 (vcall_insn_table_eq): New function. 6448 (dwarf2out_virtual_call_token): New function. 6449 (dwarf2out_virtual_call): New function. 6450 (dwarf2out_init): Allocate new tables and sections. 6451 (prune_unused_types): Mark DIEs referenced from direct call table. 6452 (dwarf2out_finish): Output direct and virtual call tables. 6453 * final.c (final_scan_insn): Call direct_call and virtual_call 6454 debug hooks. 6455 * debug.h (struct gcc_debug_hooks): Add direct_call, 6456 virtual_call_token, virtual_call hooks. 6457 (debug_nothing_uid): New function. 6458 * debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks. 6459 (debug_nothing_uid): New function. 6460 * dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks. 6461 (xcoff_debug_hooks): Likewise. 6462 * sdbout.c (sdb_debug_hooks): Likewise. 6463 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. 6464 * doc/invoke.texi (-fenable-icf-debug): New option. 6465 64662009-10-08 Alexandre Oliva <aoliva@redhat.com> 6467 6468 PR debug/41353 6469 * regmove.c (regmove_backward_pass): Replace src with dst in the 6470 debug insn, and check for dst before rather than after. 6471 64722009-10-08 Janis Johnson <janis187@us.ibm.com> 6473 6474 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove. 6475 (TARGET_DELEGITIMIZE_ADDRESS): Likewise. 6476 64772009-10-08 Jan Hubicka <jh@suse.cz> 6478 6479 PR middle-end/41626 6480 * cgraphbuild.c (record_reference): When parameter DATA is NULL, 6481 do not mark cgraph nodes as needed. 6482 (record_references_in_initializer): Add new only_vars parameter. 6483 * cgraph.h (record_references_in_initializer): New parameter. 6484 * varasm.c (assemble_variable): Update call. 6485 * varpool.c (varpool_analyze_pending_decls): Always look for 6486 referenced vars. 6487 64882009-10-08 Anatoly Sokolov <aesok@post.ru> 6489 6490 * config/avr/avr.c (last_insn_address) Remove variable. 6491 (expand_prologue): Don't initialise last_insn_address variable. 6492 (final_prescan_insn): Don't output insn size. 6493 * config/avr/avr.opt (msize): Remove switch. 6494 * doc/invoke.texi (AVR Options): Remove documentation of -msize 6495 switch. 6496 64972009-10-08 Adam Nemet <anemet@caviumnetworks.com> 6498 6499 * combine.c (label_tick_ebb_start): Fix comment. 6500 (combine_instructions): Set label_tick and label_tick_ebb_start before 6501 calling setup_incoming_promotions. Start them from 1. Increment 6502 label_tick instead of deriving it from the BB index. Rather than 6503 comparing ticks use the block from the previous iteration to decide 6504 whether to start a new EBB. Remove empty lines before function. 6505 65062009-10-08 Michael Matz <matz@suse.de> 6507 6508 PR middle-end/41573 6509 * builtins.c (fold_builtin_isascii): Use fold_build2. 6510 (fold_builtin_isdigit): Ditto. 6511 * except.c (duplicate_eh_regions_1): Tolerate NULL labels. 6512 * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached, 6513 remove_useless_stmts_cond, remove_useless_stmts_tf, 6514 remove_useless_stmts_tc, remove_useless_stmts_bind, 6515 remove_useless_stmts_goto, remove_useless_stmts_label, 6516 remove_useless_stmts_1, remove_useless_stmts, 6517 pass_remove_useless_stmts): Remove. 6518 * tree-pass.h (pass_remove_useless_stmts): Don't declare. 6519 * passes.c (init_optimization_passes): Don't add 6520 pass_remove_useless_stmts. 6521 * tree-eh.c (lower_eh_constructs_2): Handle empty cleanups. 6522 * tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of 6523 static constants. 6524 * lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL 6525 for static constants. 6526 * lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP. 6527 * lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP. 6528 65292009-10-08 Richard Guenther <rguenther@suse.de> 6530 6531 * gimple.c (free_gimple_type_tables): New function. 6532 * gimple.h (free_gimple_type_tables): Declare. 6533 65342009-10-07 Mark Heffernan <meheff@google.com> 6535 6536 * ipa-prop.c (ipa_print_node_params) Only print 6537 names of named arguments. 6538 65392009-10-08 Rafael Avila de Espindola <espindola@google.com> 6540 6541 * gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is 6542 being statically linked. 6543 65442009-10-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 6545 6546 * collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE. 6547 65482009-10-08 Jan Hubicka <jh@suse.cz> 6549 6550 PR bootstrap/41620 6551 * ipa.c (cgraph_externally_visible_p, 6552 function_and_variable_visibility, 6553 whole_program_function_and_variable_visibility): Skip non-finalized 6554 nodes. 6555 65562009-10-08 Nick Clifton <nickc@redhat.com> 6557 6558 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow 6559 CONST_DOUBLEs. 6560 65612009-10-08 Andreas Tobler <a.tobler@schweiz.org> 6562 6563 PR bootstrap/37739 6564 * config.host: Use config/x-cflags-O1 for powerpc FreeBSD. 6565 65662009-10-07 Joseph Myers <joseph@codesourcery.com> 6567 6568 PR c/41182 6569 * c-common.c (c_fully_fold_internal): Strip nops from the result 6570 of recursive calls to c_fully_fold_internal. 6571 (c_wrap_maybe_const): New. 6572 (c_save_expr): Use c_wrap_maybe_const. 6573 * c-common.h (c_wrap_maybe_const): Declare. 6574 * c-typeck.c (build_conditional_expr, c_finish_stmt_expr, 6575 build_binary_op): Use c_wrap_maybe_const. 6576 65772009-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6578 6579 * real.c: Fix comment to reflect actual exponent size. 6580 65812009-10-08 Ben Elliston <bje@au.ibm.com> 6582 6583 * config/rs6000/a2.md: Add FSF comment header. 6584 65852009-10-07 Uros Bizjak <ubizjak@gmail.com> 6586 6587 * config/i386/i386.md (any_extend): New code iterator. 6588 (u, s): New code attributes. 6589 (sgnprefix): Ditto. 6590 (DWIH): Rewrite as code iterator for SI and DI modes. 6591 (DWI): Rewrite as mode attribute. 6592 (dwi): New mode attribute. 6593 (di): Depend on SI mode and DI mode. 6594 (doubleint_general_operand): Remove mode attribute. 6595 6596 (*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using 6597 DWIH mode iterator. 6598 6599 (*add<mode>3_doubleword): Use DWIH as the base mode iterator. 6600 (*sub<mode>3_doubleword): Ditto. 6601 6602 (mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns 6603 using SWIM248 mode iterator. 6604 (*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns 6605 using SWI48 mode iterator. 6606 (<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3 6607 patterns using DWIH mode iterator and any_extend code iterator. 6608 (<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns 6609 using any_extend code iterator. 6610 (*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1 6611 patterns using DWIH mode iterator and any_extend code iterator. 6612 (*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns 6613 using any_extend code iterator. 6614 (<s>mul<mode>3_highpart): Macroize expander from 6615 {s,u}mul{si,di}3_highpart patterns using DWIH mode iterator 6616 and any_extend code iterator. 6617 (*<s>muldi3_highpart_1): Macroize insn from 6618 *{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator. 6619 (*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1 6620 patterns using any_extend code iterator. 6621 (*<s>mulsi3_highpart_zext): Macroize insn from 6622 *{s,u}mulsi3_highpart_zext patterns using any_extend code iterator. 6623 66242009-10-07 Jakub Jelinek <jakub@redhat.com> 6625 6626 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add 6627 DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin 6628 refering to a DIE with DW_AT_const_value. 6629 66302009-10-07 Vladimir Makarov <vmakarov@redhat.com> 6631 6632 PR middle-end/22072 6633 * ira-lives.c (check_and_make_def_conflict): Process all operands. 6634 66352009-10-06 Jan Hubicka <jh@suse.cz> 6636 6637 * cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes 6638 correctly. 6639 66402009-10-06 Uros Bizjak <ubizjak@gmail.com> 6641 6642 * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext, 6643 *lea_2_rex64): Move before *add<mode>_1 pattern. 6644 66452009-10-07 Jan Hubicka <jh@suse.cz> 6646 6647 * collect2.c (main): Add -fno-whole-program. 6648 * gcc.c (set_collect_gcc_options): Do not remove whole program here. 6649 66502009-10-07 Jan Hubicka <jh@suse.cz> 6651 6652 * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones 6653 has no address taken. 6654 * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are 6655 never needed. 6656 (cgraph_clone_node): Clear externally_visible flag for clones. 6657 * cgraph.h (cgraph_only_called_directly_p, 6658 cgraph_can_remove_if_no_direct_calls_p): New predicates. 6659 * tree-pass.h (pass_ipa_whole_program_visibility): Declare. 6660 * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate. 6661 (ipcp_initialize_node_lattices, ipcp_estimate_growth, 6662 ipcp_insert_stage): Likwise. 6663 * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute 6664 externally_visible flag. 6665 (verify_cgraph_node): Verify that inline clones look right. 6666 (process_function_and_variable_attributes): Do not set 6667 externally_visible flags. 6668 (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've 6669 been already run. 6670 * lto-cgraph.c (lto_output_node): Assert that inline clones are not 6671 boundaries. 6672 * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates; 6673 clear externally_visible when turning into inline clones 6674 (cgraph_mark_inline_edge): Use new predicates. 6675 (cgraph_estimate_growth): Likewise. 6676 (cgraph_decide_inlining): Likewise. 6677 * ipa.c (cgraph_postorder): Likewise. 6678 (cgraph_remove_unreachable_nodes): Likewise; sanity check 6679 that inline clones are not needed. 6680 (cgraph_externally_visible_p): New predicate. 6681 (function_and_variable_visibility): Add whole_program parameter; 6682 always set externally_visible flag; handle COMDAT function 6683 privatization. 6684 (local_function_and_variable_visibility): New function. 6685 (gate_whole_program_function_and_variable_visibility): New function. 6686 (whole_program_function_and_variable_visibility): New function. 6687 (pass_ipa_whole_program_visibility): New function. 6688 * passes.c (init_optimization_passes): Add whole program visibility 6689 pass. 6690 (do_per_function_toporder, function_called_by_processed_nodes_p): Do 6691 not care about needed/reachable flags. 6692 * varpool.c: Include flags.h 6693 (decide_is_variable_needed): When doing LTO assume whole-program mode. 6694 (varpool_finalize_decl): When we are in LTO read-back, all variables 6695 are analyzed. 6696 (varpool_analyze_pending_decls): Skip analyzis of analyzed vars. 6697 66982009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6699 6700 * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and 6701 add MASK_HARD_DFP. 6702 67032009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6704 6705 * config.gcc: Don't include the makefile fragments intended for 6706 libgcc. 6707 * config/s390/fixdfdi.h: File removed. 6708 * config/s390/libgcc-glibc.ver: File removed. 6709 * config/s390/s390.h: Remove the fixdfdi.h hack. 6710 * config/s390/t-crtstuff: File moved to libgcc dir. 6711 * config/s390/t-linux: Likewise. 6712 * config/s390/t-tpf: libgcc specific parts removed. 6713 * config/s390/t-linux64: Likewise. 6714 67152009-10-06 Jerry Quinn <jlquinn@optonline.net> 6716 6717 * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS. 6718 (lto-compress.o): Likewise. 6719 67202009-10-07 Danny Smith <dannysmith@users.sourceforge.net> 6721 6722 PR target/41512 6723 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate 6724 dllexport to class members here. 6725 (i386_pe_determine_dllimport_p): Only check static class data for 6726 definition. 6727 (i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P. 6728 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check 6729 functions for vague linkage. 6730 (i386_pe_type_dllexport_p): Fix formatting. 6731 (maybe_add_dllexport) New function. 6732 (i386_pe_adjust_class_at_definition): Use it to propagate dllexport 6733 to class members. 6734 67352009-10-07 Ben Elliston <bje@au.ibm.com> 6736 6737 * config/rs6000/a2.md: Remove duplicated lines. 6738 67392009-10-07 Ben Elliston <bje@au.ibm.com> 6740 6741 * config.gcc (powerpc*-*-*): Handle a2. 6742 * config/rs6000/rs6000.md (cpu): Add ppca2. Include "a2.md". 6743 * config/rs6000/a2.md: New file. 6744 * config/rs6000/rs6000.opt (mno-update): New. 6745 (mupdate): Return to using a mask, not a var. 6746 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2. 6747 (enum processor_type): Add PROCESSOR_PPCA2. 6748 * config/rs6000/rs6000.c (ppca2_cost): New costs. 6749 (rs6000_override_options): Add "a2" to processor_target_table. 6750 Update rs6000_always_hint logic. Correctly set rs6000_cost for a2. 6751 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2. 6752 67532009-10-06 Uros Bizjak <ubizjak@gmail.com> 6754 6755 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2): 6756 Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid 6757 reference to nonexistent gen_truncxfxf2 function. 6758 67592009-10-06 Uros Bizjak <ubizjak@gmail.com> 6760 6761 * config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators. 6762 (DWIH, g, di, doubleint_general_operand): New mode attributes. 6763 (general_operand): Handle TI mode. 6764 (add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns 6765 using SDWIM mode iterator. 6766 (*add<mode>3_doubleword): New insn_and_split pattern. Macroize 6767 pattern from *add{di,ti}3_1 patterns and corresponding splitters 6768 using DWI mode iterator. 6769 (add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry 6770 patterns using SWI mode iterator. 6771 (*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns 6772 using SWI48 mode iterator. 6773 (*add<mode>_1): Ditto from add{si,di}_1 patterns. 6774 (*add<mode>_2): Ditto from add{si,di}_2 patterns. 6775 (*add<mode>_3): Ditto from add{si,di}_3 patterns. 6776 (*add<mode>_5): Ditto from add{si,di}_5 patterns. 6777 (sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns 6778 using SDWIM mode iterator. 6779 (*sub<mode>3_doubleword): New insn_and_split pattern. Macroize 6780 pattern from *sub{di,ti}3_1 patterns and corresponding splitters 6781 using DWI mode iterator. 6782 (sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry 6783 patterns using SWI mode iterator. 6784 (*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns. 6785 (*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns. 6786 (*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns. 6787 (<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3 6788 patterns using plusminus code iterator. 6789 (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and 6790 sub<mode>3 patterns using plusminus code iterator. 6791 * config/i386/i386.c (override_options): Update the call to 6792 gen_subdi_carry_rex64 for renamed function. 6793 (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64 6794 and gen_adddi3_carry_rex64 for renamed functions. Use indirect 6795 calls to instruction expanders. 6796 67972009-10-06 Martin Jambor <mjambor@suse.cz> 6798 6799 PR bootstrap/41395 6800 * opts.c (decode_options): Run IPA-SRA at -O2. 6801 68022009-10-06 Richard Guenther <rguenther@suse.de> 6803 6804 * lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers. 6805 68062009-10-06 Tobias Burnus <burnus@net-b.de> 6807 6808 PR lto/41591 6809 * doc/invoke.texi (-flto,-fwhole-program): Make clear that the 6810 -flto and -fwhole-program flags can be combined. 6811 68122009-10-06 Ryan Mansfield <rmansfield@qnx.com> 6813 6814 PR driver/41217 6815 * gcc.c (process_command): Check that -o argument was specified. 6816 68172009-10-06 Jerry Quinn <jlquinn@optonline.net> 6818 6819 * gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix compilation. 6820 68212009-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 6822 6823 * c.opt (Wjump-misses-init): Fix typo to enable for ObjC. 6824 * doc/invoke.texi (Warning Options): Annotate allowed languages 6825 for -Wunsuffixed-float-constants. 6826 68272009-10-05 Jakub Jelinek <jakub@redhat.com> 6828 6829 * dwarf2out.c (modified_type_die): Don't add DW_AT_name to 6830 DW_TAG_{const,volatile}_type if its DW_AT_type already has the 6831 same name and isn't the main variant. 6832 6833 PR debug/41558 6834 * dwarf2out.c (loc_by_reference): Removed. 6835 (dw_loc_list_1): New function. 6836 (dw_loc_list): Remove toplev argument, add want_address argument. 6837 Don't look at decl_by_reference_p at all. Use dw_loc_list_1. 6838 (loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than 6839 want_address == 2 to dw_loc_list. For successful dw_loc_list 6840 set have_address to 1 only if want_address is not 0. 6841 68422009-10-05 Richard Sandiford <rdsandiford@googlemail.com> 6843 6844 * config/mips/mips-protos.h (mips_trampoline_code_size): Declare. 6845 * config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of 6846 a code block followed by two pointers. 6847 (TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too. 6848 * config/mips/mips.c (MIPS_LOAD_PTR): New macro. 6849 (MIPS_MOVE): Likewise. 6850 (MIPS_LUI): Likewise. 6851 (MIPS_JR): Likewise. 6852 (MIPS_BAL): Likewise. 6853 (MIPS_NOP): Likewise. 6854 (mips_asm_trampoline_template): Delete. 6855 (mips_trampoline_code_size): New function. 6856 (mips_trampoline_init): Add shorter sequences for all cases 6857 except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG. 6858 Calculate the opcodes directly, rather than copying from a template. 6859 Only flush the code part of the trampoline. 6860 (TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete. 6861 68622009-10-05 Richard Sandiford <rdsandiford@googlemail.com> 6863 6864 * config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace 6865 GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM. 6866 (INCOMING_RETURN_ADDR_RTX): Likewise. 6867 (FUNCTION_PROFILER): Likewise. Replace GP_REG_FIRST + 1 6868 with AT_REGNUM. 6869 * config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31 6870 with RETURN_ADDR_REGNUM. 6871 (MIPS_SAVE_REG_FOR_PROFILING_P): Likewise. 6872 * config/mips/mips.c (mips16_build_call_stub): Replace 6873 GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1 6874 with AT_REGNUM and 31 with RETURN_ADDR_REGNUM. 6875 (mips_print_operand_punctuation): Likewise. 6876 (mips_frame_set): Likewise. 6877 (mips16e_output_save_restore): Likewise. 6878 (mips_cfun_might_clobber_call_saved_reg_p): Likewise. 6879 (mips_save_reg_p): Likewise. 6880 (mips_return_addr): Likewise. 6881 (mips_set_return_address): Likewise. 6882 (mips_direct_save_slot_move_p): Likewise. 6883 (mips_output_function_prologue): Likewise. 6884 (mips_restore_reg): Likewise. 6885 (mips_expand_epilogue): Likewise. 6886 (mips_epilogue_uses): Likewise. 6887 * config/mips/mips.md (RETURN_ADD_REGNUM): Define. 6888 (*mov<mode>_ra): Use it instead of a hard-coded 31. 6889 (clear_hazard_<mode>): Likewise. 6890 (call_internal): Likewise. 6891 (call_internal_direct): Likewise. 6892 (call_direct_split): Likewise. 6893 (call_value_internal): Likewise. 6894 (call_value_split): Likewise. 6895 (call_value_internal_direct): Likewise. 6896 (call_value_direct_split): Likewise. 6897 (call_value_multiple_internal): Likewise. 6898 (call_value_multiple_split): Likewise. 6899 69002009-10-05 Eric Botcazou <ebotcazou@adacore.com> 6901 Jakub Jelinek <jakub@redhat.com> 6902 6903 PR rtl-optimization/41511 6904 * combine.c (record_value_for_reg): Pass explicit values as argument 6905 to get_last_value_validate. 6906 (get_last_value_validate): Document INSN parameter. 6907 For non-readonly MEMs, assume they might have been modified if INSN 6908 was in another basic block. 6909 (get_last_value): Minor reformatting. 6910 69112009-10-05 Andrew Pinski <andrew_pinski@playstation.sony.com> 6912 6913 PR tree-opt/40992 6914 * final.c (asm_str_count): Split out from asm_insn_count. 6915 * rtl.h (asm_str_count): New prototype. 6916 * tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call 6917 asm_str_count. 6918 69192009-10-05 Sriraman Tallam <tmsriram@google.com> 6920 6921 * doc/plugins.texi: Change plugin_pass to register_pass_info. 6922 69232009-10-05 Basile Starynkevitch <basile@starynkevitch.net> 6924 Rafael Espindola <espindola@google.com> 6925 6926 * gengtype.c (write_types): Moved call to write_func_for_structure 6927 into seperate loops. 6928 69292009-10-05 Richard Guenther <rguenther@suse.de> 6930 6931 PR lto/41281 6932 * lto-cgraph.c (output_cgraph): Output toplevel asms. 6933 (input_cgraph_1): Input toplevel asms. 6934 69352009-10-05 Richard Guenther <rguenther@suse.de> 6936 6937 PR lto/40902 6938 * lto-symtab.c (lto_compatible_attributes_p): Remove. 6939 (external_aggregate_decl_p): Likewise. 6940 (lto_symtab_compatible): Re-structure. Remove dead code. 6941 For variables ignore toplevel qualifiers when comparing types. 6942 Issue warnings, not errors for mismatched user-alignment. 6943 69442009-10-05 Richard Guenther <rguenther@suse.de> 6945 6946 PR lto/41552 6947 PR lto/41487 6948 * lto-symtab.c (struct lto_symtab_base_def): Remove. 6949 (struct lto_symtab_identifier_def): Likewise. 6950 (struct lto_symtab_decl_def): Likewise. 6951 (struct lto_symtab_entry_def): New. 6952 (lto_symtab_identifier_t): Rename to ... 6953 (lto_symtab_entry_t): ... this. 6954 (lto_symtab_decls): Remove. 6955 (lto_symtab_base_hash): Rename to ... 6956 (lto_symtab_entry_hash): ... this. 6957 (lto_symtab_base_eq): Rename to ... 6958 (lto_symtab_entry_eq): ... this. 6959 (lto_symtab_base_marked_p): Rename to ... 6960 (lto_symtab_entry_marked_p): ... this. 6961 (lto_symtab_identifier_marked_p): Remove. 6962 (lto_symtab_decl_marked_p): Likewise. 6963 (lto_symtab_maybe_init_hash_tables): Rename to ... 6964 (lto_symtab_maybe_init_hash_table): ... this. 6965 (lto_symtab_set_resolution_and_file_data): Remove. 6966 (lto_symtab_register_decl): New function. 6967 (lto_symtab_get_identifier): Remove. 6968 (lto_symtab_get): New function. 6969 (lto_symtab_get_resolution): Adjust. 6970 (lto_symtab_get_identifier_decl): Remove. 6971 (lto_symtab_set_identifier_decl): Likewise. 6972 (lto_symtab_merge_decl): Rename to ... 6973 (lto_symtab_merge): ... this. Rewrite. 6974 (lto_symtab_merge_var): Remove. 6975 (lto_symtab_merge_fn): Likewise. 6976 (lto_symtab_prevailing_decl): Adjust. 6977 (lto_cgraph_replace_node): New function. 6978 (lto_symtab_merge_decls_2): Likewise. 6979 (lto_symtab_merge_decls_1): Likewise. 6980 (lto_symtab_fixup_var_decls): Likewise. 6981 (lto_symtab_resolve_symbols): Likewise. 6982 (lto_symtab_merge_decls): Likewise. 6983 (lto_symtab_prevailing_decl): Adjust. 6984 (lto_symtab_get_symtab_def): Remove. 6985 (lto_symtab_get_file_data): Likewise. 6986 (lto_symtab_clear_resolution): Adjust. 6987 (lto_symtab_clear_resolution): Likewise. 6988 * lto-cgraph.c (input_edge): Do not merge cgraph nodes here. 6989 (input_cgraph_1): Likewise. 6990 * lto-streamer-in.c (get_resolution): Do not provide fake 6991 symbol resolutions here. 6992 (deferred_global_decls): Remove. 6993 (lto_register_deferred_decls_in_symtab): Likewise. 6994 (lto_register_var_decl_in_symtab): Change signature, register 6995 variable via lto_symtab_register_decl. 6996 (lto_register_function_decl_in_symtab): Likewise. 6997 (lto_read_tree): Adjust. 6998 * lto-streamer.h (lto_register_deferred_decls_in_symtab): Remove. 6999 (lto_symtab_merge_var): Likewise. 7000 (lto_symtab_merge_fn): Likewise. 7001 (lto_symtab_register_decl): Declare. 7002 (lto_symtab_merge_decls): Likewise. 7003 70042009-10-05 Richard Guenther <rguenther@suse.de> 7005 7006 PR tree-optimization/23821 7007 * tree-vrp.c (vrp_finalize): Do not perform copy propagation. 7008 * tree-ssa-dom.c (cprop_operand): Do not propagate copies into 7009 simple IV increments. 7010 70112009-10-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 7012 7013 * config/arm/arm.c (arm_override_options): Really initialize 7014 flag_dwarf2_cfi_asm to 0. 7015 70162009-10-05 Doug Kwan <dougkwan@google.com> 7017 7018 PR rtl-optimization/41574 7019 * combine.c (distribute_and_simplify_rtx): Quit if RTX mode is 7020 floating point and we are not doing unsafe math optimizations. 7021 70222009-10-03 Simon Baldwin <simonb@google.com> 7023 Cary Coutant <ccoutant@google.com> 7024 Rafael Espindola <espindola@google.com> 7025 Richard Guenther <rguenther@suse.de> 7026 Jan Hubicka <jh@suse.cz> 7027 Doug Kwan <dougkwan@google.com> 7028 H.J. Lu <hongjiu.lu@intel.com> 7029 Bill Maddox <maddox@google.com> 7030 Ryan Mansfield <rmansfield@qnx.com> 7031 Diego Novillo <dnovillo@google.com> 7032 Ollie Wild <aaw@google.com> 7033 Kenneth Zadeck <zadeck@naturalbridge.com> 7034 7035 * lto-cgraph.c: New file. 7036 * lto-compress.c: New file. 7037 * lto-compress.h: New file. 7038 * lto-opts.c: New file. 7039 * lto-section-in.c: New file. 7040 * lto-section-out.c: New file. 7041 * lto-streamer-in.c: New file. 7042 * lto-streamer-out.c: New file. 7043 * lto-streamer.c: New file. 7044 * lto-streamer.h: New file. 7045 * lto-symtab.c: New file. 7046 * lto-wpa-fixup.c: New file. 7047 * lto-wrapper.c: New file. 7048 70492009-10-03 Simon Baldwin <baldwin@google.com> 7050 Ben Elliston <bje@au.ibm.com> 7051 Rafael Espindola <espindola@google.com> 7052 Nathan Froyd <froydnj@codesourcery.com> 7053 Jan Hubicka <jh@suse.cz> 7054 Doug Kwan <dougkwan@google.com> 7055 Diego Novillo <dnovillo@google.com> 7056 Kenneth Zadeck <zadeck@naturalbridge.com> 7057 7058 * Makefile.in (enable_lto): New. 7059 (site.exp): If @enable_lto@ is set to 'yes' define ENABLE_LTO. 7060 (LINKER_PLUGIN_API_H): Define. 7061 (LTO_SYMTAB_H): Define. 7062 (LTO_STREAMER_H): Define. 7063 (TREE_VECTORIZER_H): Define. 7064 (INCLUDES): Add LIBELFINC. 7065 (OBJS-common): Add lto-cgraph.o, lto-streamer-in.o, 7066 lto-streamer-out.o, lto-section-in.o, lto-section-out.o, lto-symtab.o, 7067 lto-opts.o, lto-streamer.o, lto-wpa-fixup.o, lto-compress.o. 7068 (MOSTLYCLEANFILES): Add lto-wrapper$(exeext) 7069 (native): Add lto-wrapper$(exeext) 7070 (lto-compress.o, lto-cgraph.o, lto-streamer-in.o, 7071 lto-streamer-out.o, lto-section-in.o, lto-section-out.o, 7072 lto-symtab.o, lto-opts.o, lto-streamer.o, lto-wpa-fixup.o): New rules. 7073 (gimple.o): Add dependency on LTO_HEADER_H and LTO_SECTION_OUT_H. 7074 (varasm.o): Add dependency on tree-iterator.h. 7075 (cgraph.o): Add dependency on cif-code.def. 7076 (ipa-reference.o): Add dependency on LTO_STREAMER_H. 7077 (ipa-pure-const.o): Likewise. 7078 (GTFILES): Add lto-symtab.c. 7079 (install-lto-wrapper): New. 7080 * configure.ac: If 'lto' is in enable_languages, define ENABLE_LTO 7081 and enable_lto. If LIBELFLIBS is set, define HAVE_libelf. 7082 * config.in: Regenerate. 7083 70842009-10-03 Rafael Espindola <espindola@google.com> 7085 Diego Novillo <dnovillo@google.com> 7086 7087 * cgraphunit.c (ipa_passes): Prevent lto1 from calling 7088 ipa_write_summaries. 7089 Call execute_ipa_summary_passes for all_regular_ipa_passes and 7090 all_lto_gen_passes. 7091 (cgraph_optimize): Make extern. 7092 70932009-10-03 Nathan Froyd <froydnj@codesourcery.com> 7094 Kenneth Zadeck <zadeck@naturalbridge.com> 7095 7096 * toplev.c (in_lto_p): Declare. 7097 * collect2.c (scan_prog_file): Read all the output when reading 7098 information for LTO. 7099 (enum lto_mode_d): Declare. 7100 71012009-10-03 Richard Guenther <rguenther@suse.de> 7102 Diego Novillo <dnovillo@google.com> 7103 7104 * gimple.c: Include target.h and alias.h. 7105 (gimple_types): Declare. 7106 (type_hash_cache): Declare. 7107 (gimple_alloc_stat): Make extern. 7108 (gimple_build_eh_must_not_throw): Call 7109 gimple_eh_must_not_throw_set_fndecl. 7110 (struct type_pair_d): Declare. 7111 (type_pair_t): Declare. 7112 (type_pair_hash): New. 7113 (type_pair_eq): New. 7114 (lookup_type_pair): New. 7115 (gimple_force_type_merge): New. 7116 (compare_type_names_p): New. 7117 (compare_field_offset): New. 7118 (gimple_types_compatible_p): New. 7119 (struct sccs): Declare. 7120 (next_dfs_num): Declare. 7121 (iterative_hash_gimple_type): New. 7122 (visit): New. 7123 (iterative_hash_type_name): New. 7124 (iterative_hash_gimple_type): New. 7125 (gimple_type_hash): New. 7126 (gimple_type_eq): New. 7127 (gimple_register_type): New. 7128 (print_gimple_types_stats): New. 7129 (gimple_signed_or_unsigned_type): New. 7130 (gimple_unsigned_type): New. 7131 (gimple_signed_type): New. 7132 (gimple_get_alias_set): New. 7133 (gimple_decl_printable_name): Do not use DMGL_TYPES. 7134 * gimple.h (gimple_alloc, gimple_alloc_stat): Declare. 7135 (gimple_force_type_merge): Declare. 7136 (gimple_types_compatible_p): Declare. 7137 (gimple_register_type): Declare. 7138 (print_gimple_types_stats): Declare. 7139 (gimple_unsigned_type): Declare. 7140 (gimple_signed_type): Declare. 7141 (gimple_get_alias_set): Declare. 7142 (gimple_eh_must_not_throw_set_fndecl): New. 7143 71442009-10-03 Jan Hubicka <jh@suse.cz> 7145 Kenneth Zadeck <zadeck@naturalbridge.com> 7146 7147 * ipa-pure-const.c: Include lto-streamer.h. 7148 (register_hooks): Factor out of ... 7149 (generate_summary): ... here. 7150 (pure_const_write_summary): New. 7151 (pure_const_read_summary): New. 7152 (pass_ipa_pure_const): Add pure_const_write_summary and 7153 pure_const_read_summary. 7154 * ipa-reference.c: Include lto-streamer.h. 7155 (add_new_function): New. 7156 (remove_node_data): New. 7157 (duplicate_node_data): New. 7158 (ipa_init): Guard against multiple calls. 7159 Move hook setup from analyze_function. 7160 (write_node_summary_p): New. 7161 (ipa_reference_write_summary): New. 7162 (ipa_reference_read_summary): New. 7163 (pass_ipa_reference): Add ipa_reference_write_summary and 7164 ipa_reference_read_summary. 7165 * cgraph.h (cgraph_local_info): Add field lto_file_data. 7166 (struct cgraph_edge): Add fields lto_stmt_uid and 7167 call_stmt_cannot_inline_p. 7168 (cgraph_optimize): Declare. 7169 (cgraph_decide_is_function_needed): Declare. 7170 (reset_inline_failed): Declare. 7171 (enum LTO_cgraph_tags): Declare. 7172 (LTO_cgraph_tag_names): Declare. 7173 (LCC_NOT_FOUND): Define. 7174 71752009-10-03 Doug Kwan <dougkwan@google.com> 7176 Rafael Espindola <espindola@google.com> 7177 Jan Hubicka <jh@suse.cz> 7178 Diego Novillo <dnovillo@google.com> 7179 Kenneth Zadeck <zadeck@naturalbridge.com> 7180 7181 * passes.c (all_regular_ipa_passes): New. 7182 (all_ipa_passes): Rename to all_small_ipa_passes. 7183 (init_optimization_passes): Init all_regular_ipa_passes. 7184 * tree-pass.h (all_regular_ipa_passes): New. 7185 (all_ipa_passes): Rename to all_small_ipa_passes. 7186 * passes.c (all_lto_gen_passes): New. 7187 (init_optimization_passes): Initialize all_lto_gen_passes. 7188 (execute_ipa_summary_passes): Make non-static. 7189 (ipa_write_summaries_1): New. 7190 (ipa_write_summaries_2): New. 7191 (ipa_write_summaries): New. 7192 (ipa_write_summaries_of_cgraph_node_set): New. 7193 (ipa_read_summaries_1): New. 7194 (ipa_read_summaries): New. 7195 (execute_ipa_pass_list): Call cgraph_process_new_functions. 7196 (execute_regular_ipa_pass_list): Remove. 7197 (init_optimization_passes): Schedule 7198 pass_rebuild_cgraph_edges and pass_early_inline outside 7199 of pass_all_early_optimizations. Document reason. 7200 (pass_ipa_lto_gimple_out, pass_ipa_lto_wpa_fixup, 7201 pass_ipa_lto_finish_out): New pass. 7202 (pass_ipa_summary_passes): Start and stop timers if the pass has them. 7203 (execute_all_ipa_transforms): New. 7204 (execute_one_pass): Don't call execute_one_ipa_transform_pass. 7205 (dump_properties, debug_properties): New. 7206 * tree-optimize.c (gate_all_early_local_passes): Return 7207 false if we are in lto1. 7208 (tree_rest_of_compilation): Call execute_all_ipa_transforms. 7209 * tree-pass.h (execute_all_ipa_transforms): Declare. 7210 (pass_ipa_function_and_variable_visibility): Declare. 7211 (pass_ipa_early_inline): Declare. 7212 (pass_ipa_lto_gimple_out): Declare. 7213 (pass_ipa_lto_wpa_fixup): Declare. 7214 (pass_ipa_lto_finish_out): Declare. 7215 (all_small_ipa_passes, all_regular_ipa_passes, 7216 all_lto_gen_passes): Declare. 7217 (execute_ipa_summary_passes): Declare. 7218 (execute_all_ipa_transforms): Declare. 7219 (ipa_write_summaries): Declare 7220 (ipa_write_summaries_of_cgraph_node_set): Declare. 7221 (ipa_read_summaries): Declare. 7222 72232009-10-03 Doug Kwan <dougkwan@google.com> 7224 Ollie Wild <aaw@google.com> 7225 7226 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do nothing in WPA. 7227 7228 * collect2.c (LTO_MODE_NONE, LTO_MODE_LTO, LTO_MODE_WPA): New enums. 7229 (lto_mode): New variable. 7230 (maybe_run_lto_and_relink): Handle the -fwpa option. 7231 (main): Handle the -fwpa option. 7232 (maybe_unlink_list): New function. 7233 * gcc.c (link_lto_options): Replace -flto with -fwpa. 7234 * common.opt (flto): New flag. 7235 * toplev.c (flag_generate_lto): Declare. 7236 72372009-10-03 Simon Baldwin <simonb@google.com> 7238 7239 * common.opt (flto-compression-level): New flag. 7240 7241 * opts.c: Include lto-opts.h. 7242 (handle_option): Call lto_register_user_option for each 7243 valid option handled. 7244 (decode_options): Clear registered options before the options 7245 handling loop. 7246 72472009-10-03 Cary Coutant <ccoutant@google.com> 7248 7249 * collect2.c (is_elf): New function. 7250 (scan_prog_file): Require LTO object to be in ELF format. 7251 72522009-10-03 Rafael Espindola <espindola@google.com> 7253 7254 * gcc.c (LINK_COMMAND_SPEC): Use the -pass-through option to pass 7255 libgcc to the linker. 7256 7257 * ipa-cp.c (cgraph_gate_cp): Return false if LTRANS is running. 7258 7259 * collect2.c (maybe_run_lto_and_relink): Execute lto-wrapper. 7260 (collect_execute): Add flags argument. Pass flags to pex_run. Update 7261 all callers. 7262 * collect2.h (collect_execute): Add flags argument. 7263 * tlink.c (tlink_execute): Update call to collect_execute. 7264 * gcc.c (main): Set the COLLECT_LTO_WRAPPER environment variable. 7265 (use_linker_plugin): New. 7266 (use_linker_plugin_spec_function): New. 7267 (LINK_COMMAND_SPEC): Pass plugin options to the linker. 7268 (linker_plugin_file_spec): New. 7269 (lto_wrapper_spec): New. 7270 (lto_gcc_spec): New. 7271 (static_specs): Add linker_plugin_file, lto_wrapper and lto_gcc. 7272 (static_spec_functions): Add use-linker-plugin. 7273 (process_command): Handle -use-linker-plugin. 7274 (main): Use lto_wrapper_spec instead of lto_wrapper. Set 7275 linker_plugin_file_spec and lto_gcc_spec. 7276 (use_linker_plugin_spec_function): New. 7277 72782009-10-03 Richard Guenther <rguenther@suse.de> 7279 7280 PR lto/41547 7281 PR lto/41548 7282 * tree.h (is_lang_specific): Include LANG_TYPE. 7283 * tree.c (find_decls_types_r): Manually add interesting parts 7284 of TYPE_FIELDS. Walk BINFO_VIRTUALS. Do not walk TYPE_METHODS. 7285 7286 * gimple.c (type_pair_hash): Make symmetric. 7287 (type_pair_eq): Likewise. 7288 (lookup_type_pair): Increase initial hashtable size. 7289 (gimple_force_type_merge): Rely on type-pair symmetry. 7290 (visit): Remove excessive checking code. 7291 (iterative_hash_type_name): Do not hash TYPE_NAME of anonymous unions. 7292 (gimple_register_type): Remove getenv calls, shrink initial 7293 hashtable size. 7294 7295 PR middle-end/41502 7296 * cgraphunit.c (ipa_passes): Do not remove bodies of extern 7297 inline functions if not generating lto output. 7298 7299 PR lto/41379 7300 * toplev.c (finalize): In WPA mode remove the asm file. 7301 73022009-10-03 Doug Kwan <dougkwan@google.com> 7303 7304 * ipa-inline.c (cgraph_mark_inline): Check 7305 edge->call_stmt_cannot_inline_p instead of calling 7306 gimple_call_cannot_inline_p. 7307 (cgraph_decide_inlining): Do nothing in WPA and LTRANS. 7308 (cgraph_gate_ipa_early_inlining): Return false if in_lto_p is set. 7309 (inline_generate_summary): Do nothing in LTRANS. 7310 * cgraph.c (initialize_inline_failed): Make sure e->call_stmt 7311 exists before calling gimple_call_cannot_inline_p. 7312 (cgraph_create_edge): Set edge->call_stmt_cannot_inline_p. 7313 (cgraph_clone_edge): Add argument STMT_UID. Modify all callers. 7314 Update new_edge->lto_stmt_uid. 7315 * cgraphbuild.c (reset_inline_failed): New. 7316 7317 * common.opt (fwpa): New flag. 7318 (fltrans): New option. 7319 * gcc.c (gcc_lto_option_t): New type. 7320 (current_lto_option): New variable. 7321 (lto_single_spec_function): Remove and is replaced by .. 7322 (lto_option_spec_function): New function. 7323 (LINK_COMMAND_SPEC): Use link_lto_option spec instead of just 7324 passing the -flto flag. 7325 (cc1_options): Separate non-LTO related parts into .. 7326 (cc1_non_lto_options): Non-LTO related options shared by all FEs. 7327 (lto1_options): New spec for lto FE. 7328 (link_lto_options): New spec for handling LTO flags in linker. 7329 (invoke_lto_single): Re-format to fit in 80 column. Replace 7330 lto-single with lto-option. 7331 (static_specs): Add cc1_non_lto_options, lto1_options and 7332 link_lto_options. 7333 (static_spec_function): Replace lto-single with lto-option. 7334 (process_command): Handle -flto, -fwpa and -fltran by setting 7335 current_lto_option and not passing it to subprocess unconditionally. 7336 73372009-10-03 Bill Maddox <maddox@google.com> 7338 7339 Add `gcc' driver support for link-time code generation (LTO). 7340 7341 * collect2.c (enum pass): Add new literal PASS_LTOINFO. 7342 (lto_flag, lto_objects, lto_o_file): New variables. 7343 (struct lto_object, struct lto_object_list): New structures. 7344 (collect_exit, handler): Remove LTO temporary output file on exit. 7345 (add_lto_object): New function. 7346 (maybe_run_lto_and_relink): New function. Perform link time code 7347 generation and relinking for object files containing LTO information. 7348 (main): Invoke maybe_run_lto_and_relink(). 7349 (dump_argv): New function. For debugging, currently disabled. 7350 (scan_prog_file): Add LTO information pass. 7351 * gcc.c (LINK_COMMAND_SPEC): Pass `-flto' switch to linker, i.e., 7352 collect2. 7353 * toplev.c (compile_file): Emit assembler directive to create 7354 the `gnu_lto_v1' marker symbol when compiling with `-flto'. 7355 73562009-10-03 Diego Novillo <dnovillo@google.com> 7357 7358 * c.opt: Add LTO to warn_abi and warn_psabi. 7359 7360 * tree.c (fld_worklist_push): Rename from PUSH. Convert to static 7361 inline function. Ignore language-specific nodes. Update all users. 7362 (find_decls_types_r): Do not traverse the subtrees of 7363 language-specific nodes. Do not traverse DECL_INITIAL for TYPE_DECLs. 7364 * tree.h (is_lang_specific): New. 7365 * langhooks.h (struct lang_hooks_for_decls): Remove 7366 may_need_assembler_name_p. Update all users. 7367 7368 * c-common.c (set_builtin_user_assembler_name): Move ... 7369 * builtins.c (set_builtin_user_assembler_name): ... here. 7370 (is_builtin_name): Add comment 7371 (is_builtin_fn): New. 7372 * except.c (output_ttype): Only call 7373 lookup_type_for_runtime if TYPE is not a runtime type. 7374 7375 * passes.c (register_pass): Call position_pass on 7376 all_small_ipa_passes, all_regular_ipa_passes and all_lto_gen_passes. 7377 * timevar.def (TV_IPA_LTO_GIMPLE_IO): Define. 7378 (TV_IPA_LTO_DECL_IO): Define. 7379 (TV_IPA_LTO_CGRAPH_IO): Define. 7380 (TV_LTO): Define. 7381 (TV_WHOPR_WPA): Define. 7382 (TV_WHOPR_WPA_IO): Define. 7383 (TV_WHOPR_LTRANS): Define. 7384 (TV_WHOPR_WPA_FIXUP): Define. 7385 (TV_WHOPR_WPA_LTRANS_EXEC): Define. 7386 * tree-cfg.c (tree_node_can_be_shared): Make extern. 7387 * tree-flow.h (tree_node_can_be_shared): Declare. 7388 * tree-inline.c (tree_can_inline_p): Check that E has a 7389 statement associated with it. 7390 * tree.c (free_lang_data_in_binf): Factor out of ... 7391 (free_lang_data_in_type): ... here. 7392 Call RECORD_OR_UNION_TYPE_P. 7393 (need_assembler_name_p): Ignore DECL if it does not have TREE_PUBLIC 7394 set. Call lang_hooks.decls.may_need_assembler_name_p if set. 7395 (free_lang_data_in_decl): Do not clear DECL_CONTEXT for CONST_DECLs. 7396 (free_lang_data): Set debug_info_level to DINFO_LEVEL_NONE. Set 7397 write_symbols to NO_DEBUG. Set debug_hooks to do_nothing_debug_hooks. 7398 (gate_free_lang_data): Return true if flag_generate_lto is set. 7399 (walk_tree_1): Call RECORD_OR_UNION_TYPE_P. 7400 * c-common.h (set_builtin_user_assembler_name): Move ... 7401 * tree.h (set_builtin_user_assembler_name): ... here. 7402 7403 * common.opt (flto-report): New flag. 7404 * opts.c (complain_wrong_lang): Do not complain if running lto1. 7405 * collect2.c (scan_prog_file): Send the error output of 7406 'nm' to HOST_BIT_BUCKET. 7407 74082009-10-03 Ollie Wild <aaw@google.com> 7409 7410 * langhooks-def.h (lhd_begin_section): New function declaration. 7411 (lhd_write_section): New function declaration. 7412 (lhd_end_section): New function declaration. 7413 (LANG_HOOKS_BEGIN_SECTION): New macro. 7414 (LANG_HOOKS_WRITE_SECTION_DATA): New macro. 7415 (LANG_HOOKS_END_SECTION): New macro. 7416 (LANG_HOOKS_LTO): New macro. 7417 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_LTO. 7418 * langhooks.c (output.h): Add include. 7419 (saved_section): New static variable. 7420 (lhd_begin_section): New function. 7421 (lhd_write_section_data): New function. 7422 (lhd_end_section): New function. 7423 * langhooks.h (struct lang_hooks_for_lto): New structure. 7424 (struct lang_hooks): Add member lto. 7425 * Makefile.in (langhooks.o): Add dependency on output.h. 7426 7427 * c-opts.c (c_common_post_options): Handle -flto and -fwhopr. 7428 74292009-10-03 Richard Guenther <rguenther@suse.de> 7430 7431 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): 7432 Handle LTO. 7433 74342009-10-03 Simon Baldwin <simonb@google.com> 7435 Richard Guenther <rguenther@suse.de> 7436 Janis Johnson <janis187@us.ibm.com> 7437 Doug Kwan <dougkwan@google.com> 7438 Diego Novillo <dnovillo@google.com> 7439 Ramana Radhakrishnan <ramana.r@gmail.com> 7440 Ollie Wild <aaw@google.com> 7441 7442 * doc/install.texi: Add documentation for libelf and --enable-lto. 7443 * doc/invoke.texi: Document -fwpa, -flto, -fwhopr, -fltrans, 7444 -flto-report, -flto-compression-level and -use-linker-plugin. 7445 * doc/sourcebuild.texi: Document use of zlib. Document lto-plugin. 7446 Add section for LTO Testing. 7447 74482009-10-02 Cary Coutant <ccoutant@google.com> 7449 7450 Add support for comdat type sections for DWARF v4. 7451 Merge from dwarf4 branch. 7452 7453 * dwarf2out.c (DWARF_TYPE_SIGNATURE_SIZE): New constant. 7454 (dw_die_ref): Define vector type. 7455 (enum dw_val_class): Add dw_val_class_data8. 7456 (struct dw_val_struct): Add v.val_data8. 7457 (comdat_type_node_ref): New type. 7458 (struct die_struct): Move die_symbol into a union; add new field 7459 die_type_node. Change all uses. 7460 (comdat_type_node): New type. 7461 (skeleton_chain_node): New type. 7462 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): New constant. 7463 (comdat_type_list): New variable. 7464 (dwarf_tag_name): Add DW_TAG_type_unit. 7465 (dwarf_attr_name): Add DW_AT_signature. 7466 (add_AT_data8): New function. 7467 (replace_child): New function. 7468 (move_all_children): New function. 7469 (print_signature): New function. 7470 (print_die): Print signature information; add dw_val_class_data8. 7471 (attr_checksum): Support dw_val_class_data8. 7472 (CHECKSUM_STRING): Redefine for DWARF-4 to include trailing NULL byte. 7473 (CHECKSUM_SLEB128, CHECKSUM_ULEB128): New macros. 7474 (checksum_sleb128, checksum_uleb128): New functions. 7475 (checksum_die_context): New function. 7476 (loc_checksum_ordered): New function. 7477 (attr_checksum_ordered): New function. 7478 (struct checksum_attributes): New structure. 7479 (collect_checksum_attributes): New function. 7480 (die_checksum_ordered): New function. 7481 (generate_type_signature): New function. 7482 (same_dw_val_p): Add dw_val_class_data8. 7483 (is_symbol_die): Use new is_declaration_die function. 7484 (is_declaration_die): New function. 7485 (should_move_die_to_comdat): New function. 7486 (clone_die): New function. 7487 (clone_tree): New function. 7488 (clone_as_declaration): New function. 7489 (copy_declaration_context): New function. 7490 (generate_skeleton_ancestor_tree): New function. 7491 (generate_skeleton_bottom_up): New function. 7492 (generate_skeleton): New function. 7493 (remove_child_or_replace_with_skeleton): New function. 7494 (break_out_comdat_types): New function. 7495 (struct decl_table_entry): New type. 7496 (htab_decl_hash): New function. 7497 (htab_decl_eq): New function. 7498 (htab_decl_del): New function. 7499 (copy_ancestor_tree): New function. 7500 (copy_decls_walk): New function. 7501 (copy_decls_for_unworthy_types): New function. 7502 (build_abbrev_table): Don't assert on missing die_symbol when doing 7503 comdat type sections. 7504 (size_of_die): Use DW_FORM_sig8 for external references. Add 7505 dw_val_class_data8. 7506 (unmark_dies): Don't assert for unmarked dies when doing comdat 7507 type sections. 7508 (value_format): Support DW_FORM_sig8 and dw_val_class_data8. 7509 (output_signature): New function. 7510 (output_die): Likewise. 7511 (output_compilation_unit_header): Mark output as DWARF version 3 7512 even if generating DWARF 4. 7513 (output_comdat_type_unit): New function. 7514 (output_line_info): Mark output as DWARF version 3 even if generating 7515 DWARF 4. 7516 (dwarf2out_start_source_file): Don't do eliminate_dwarf2_dups with 7517 DWARF-4. 7518 (dwarf2out_end_source_file): Likewise. 7519 (prune_unused_types_walk_attribs): Don't follow references into 7520 comdat type sections. 7521 (prune_unused_types_mark): When generating type units, do not mark 7522 children of non-defining declarations of types; do mark children of 7523 type entries. 7524 (prune_unused_types): Process comdat type sections. 7525 (htab_ct_hash): New function. 7526 (htab_ct_eq): New function. 7527 (dwarf2out_finish): Move types to comdat sections when using DWARF-4. 7528 Add a pointer to the line table from type unit entries so 7529 DW_AT_decl_file has meaning. 7530 * varasm.c (default_elf_asm_named_section): Use identifier name as 7531 comdat key instead of lang hook. 7532 75332009-10-02 Neil Vachharajani <nvachhar@google.com> 7534 7535 * gcov-io.c (gcov_open): Open files read-only when MODE < 0. 7536 75372009-10-02 Uros Bizjak <ubizjak@gmail.com> 7538 7539 * config/i386/i386.md (SWIM248): New mode iterator. 7540 (divmod<mode>4) Macroize expander from divmoddi4, divmodsi4 and 7541 divmodhi4 patterns using SWIM248 macro. 7542 (*divmod<mode>4): Macroize insn_and_split pattern from 7543 *divmoddi4_cltd_rex64, *divmodsi4_cltd and divmodhi4 insn patterns 7544 and their corresponding splitters usign SWIM248 macro. Split SImode 7545 insn to generate cltd and DImode insn to generate cqto instead of 7546 move+shift when optimizing for size or TARGET_USE_CLTD is in effect. 7547 (*divmoddi4_nocltd_rex64, *divmodsi4_nocltd): Remove insn patterns. 7548 (*divmod<mode>4_noext): Macroize insn from *divmoddi_noext_rex64 and 7549 *divmodsi_noext patterns using SWIM248 macro. 7550 (udivmod<mode>4): Macroize expander from udivmoddi4, udivmodsi4 and 7551 udivmodhi4 patterns using SWIM248 macro. 7552 (*udivmod<mode>4): Macroize insn_and_split pattern from 7553 *udivmoddi4, udivmodsi4 and udivmodhi4 patterns and their 7554 corresponding splitters using SWIM248 macro. 7555 (*udivmod<mode>4_noext): Macroize insn from *udivmoddi4_noext, 7556 *udivmodsi4_noext and *udivmodhi_noext patterns using SWIM248 macro. 7557 75582009-10-02 Eric Botcazou <ebotcazou@adacore.com> 7559 7560 * stor-layout.c (layout_type) <ARRAY_TYPE>: Make sure that an array 7561 of zero-sized element is zero-sized regardless of its extent. 7562 75632009-10-02 Jakub Jelinek <jakub@redhat.com> 7564 7565 PR debug/40521 7566 * configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test. 7567 * configure: Regenerated. 7568 * config.in: Regenerated. 7569 * dwarf2out.c (dwarf2out_do_cfi_asm): Return false if 7570 !HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame. 7571 (dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and 7572 not emitting .eh_frame, emit .cfi_sections .debug_frame 7573 directive. 7574 7575 PR debug/41404 7576 PR debug/41353 7577 * cfgexpand.c (expand_debug_expr) <case STRING_CST>: Don't create 7578 CONST_STRING if STRING_CST contains embedded '\0's or doesn't end 7579 with '\0'. 7580 (expand_debug_expr) <case VAR_DECL>: For TREE_STATIC !DECL_EXTERNAL 7581 vars use DECL_RTL with resetting it back to NULL afterwards. 7582 * dwarf2out.c (same_dw_val_p): For dw_val_class_addr compare with 7583 rtx_equal_p instead of asserting it is a SYMBOL_REF. 7584 (value_format): For dw_val_class_addr only use DW_FORM_addr if 7585 the attribute type allows it, otherwise use DW_FORM_dataN. 7586 (mem_loc_descriptor): Handle CONST_STRING. 7587 (add_const_value_attribute): Handle CONST_STRING using add_AT_addr. 7588 Handle MEM with CONST_STRING address using add_AT_string. 7589 (rtl_for_decl_init): Return MEM with CONST_STRING address instead of 7590 CONST_STRING for const arrays initialized with a string literal. 7591 (resolve_one_addr, resolve_addr_in_expr, resolve_addr): New functions. 7592 (dwarf2out_finish): Call resolve_addr. 7593 75942009-10-02 Andreas Schwab <schwab@linux-m68k.org> 7595 Maxim Kuvyrkov <maxim@codesourcery.com> 7596 7597 * config/m68k/lb1sf68.asm (PICCALL): Use variable sized branch. 7598 75992009-10-02 Nick Clifton <nickc@redhat.com> 7600 7601 * config/mn10300/mn10300.h (USER_LABEL_PREFIX): Define. 7602 (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U. 7603 76042009-10-01 Jan Hubicka <jh@suse.cz> 7605 7606 * cgraph.c (cgraph_clone_node): Add redirect_callers parameter. 7607 (cgraph_create_virtual_clone): Just pass redirect_callers 7608 around. 7609 * cgraph.h (cgraph_clone_node): Update prototype. 7610 * ipa-pure-const.c (self_recursive_p): New function. 7611 (propagate): Use it. 7612 * ipa-inline.c (cgraph_clone_inlined_nodes, 7613 cgraph_decide_recursive_inlining): Update. 7614 76152009-10-01 David Daney <ddaney@caviumnetworks.com> 7616 7617 * gcc/config/mips/mips.c (mips_process_sync_loop) Emit syncw 7618 instructions for TARGET_OCTEON. 7619 76202009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 7621 7622 * config/arm/arm.c (arm_override_options): Turn off 7623 flag_dwarf2_cfi_asm for AAPCS variants. 7624 76252009-10-01 Martin Jambor <mjambor@suse.cz> 7626 7627 PR middle-end/12392 7628 * tree-sra.c (convert_callers): Do not call 7629 compute_inline_parameters on one caller more than once. 7630 76312009-10-01 Nick Clifton <nickc@redhat.com> 7632 7633 * config/vax/netbsd-elf.h (NETBSD_CC1_AND_CC1PLUS_SPEC): Define as 7634 an empty string if not already defined. 7635 76362009-10-01 Martin Jambor <mjambor@suse.cz> 7637 7638 PR bootstrap/41395 7639 * tree-sra.c (is_va_list_type): New function. 7640 (find_var_candidates): Call is_va_list_type. 7641 (find_param_candidates): Check that the type or the type pointed 7642 to are not va_list types. 7643 76442009-10-01 Martin Jambor <mjambor@suse.cz> 7645 7646 PR c++/41503 7647 * cp/pt.c (function_parameter_expanded_from_pack_p): Return false if 7648 DECL_ARTIFICIAL (param_decl) is true. 7649 76502009-09-30 Gabriel Dos Reis <gdr@cs.tamu.edu> 7651 7652 * tree.h (tree_decl_common::lang_flag_8): New. 7653 * c-common.c (c_common_reswords): Include "constexpr" as C++0x 7654 keyword. 7655 * c-common.h (RID_CONSTEXPR): New. 7656 76572009-09-30 Uros Bizjak <ubizjak@gmail.com> 7658 7659 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): 7660 Use ref-all pointers. 7661 (alpha_gimplify_va_arg): Ditto. 7662 76632009-09-30 Jakub Jelinek <jakub@redhat.com> 7664 7665 PR target/41279 7666 * cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb 7667 before insn counting loop now that BB_END (bb) is counted. Ensure 7668 the return value isn't zero. 7669 76702009-09-30 Nick Clifton <nickc@redhat.com> 7671 7672 * config.gcc (sh-symbianelf): Replace definition of extra_objs 7673 with separate definitions of c_target_objs and cxx_target_objs. 7674 * config/sh/t-sh: Add rules to build symbian-cxx.o, symbian-c.o 7675 and symbian-base.o. 7676 * config/sh/sh.c (TARGET_CXX_INPUT_EXPORT_CLASS): Use 7677 sh_symbian_import_export_class. 7678 * config/sh/sh-protos.h: Fix names of exported symbian functions. 7679 * config/sh/symbian.c: Delete, moving code into... 7680 * config/sh/symbian-base.c: ... here 7681 * config/sh/symbian-c.c: ... and here 7682 * config/sh/symbian-cxx.c: ... and here. 7683 76842009-09-30 Uros Bizjak <ubizjak@gmail.com> 7685 7686 PR target/22093 7687 * config/alpha/alpha.md (unaligned_storehi_be): Force operand 7688 of plus RTX into register. 7689 76902009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 7691 7692 * doc/install.texi: Linguistic and markup fixes. 7693 (Configuration) <--disable-cpp>: Remove description. 7694 <--enable-maintainer-mode>: Autotools files are affected, too. 7695 <--with-sysroot>: Improve description. 7696 (Building): Bump required GNU make version. 7697 76982009-09-29 Harsha Jagasia <harsha.jagasia@amd.com> 7699 7700 * config.gcc (i[34567]86-*-*): Include fma4intrin.h. 7701 (x86_64-*-*): Ditto. 7702 7703 * config/i386/fma4intrin.h: New file, provide common x86 compiler 7704 intrinisics for FMA4. 7705 * config/i386/cpuid.h (bit_FMA4): Define FMA4 bit. 7706 * config/i386/x86intrin.h: Fix typo to SSE4A instead of SSE4a. 7707 Add FMA4 check and fma4intrin.h. 7708 * config/i386/i386-c.c(ix86_target_macros_internal): Check 7709 ISA_FLAG for FMA4. 7710 * config/i386/i386.h(TARGET_FMA4): New macro for FMA4. 7711 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Add new UNSPEC 7712 constant for FMA4 support. 7713 (UNSPEC_FMA4_FMADDSUB): Ditto. 7714 (UNSPEC_FMA4_FMSUBADD): Ditto. 7715 * config/i386/i386.opt (-mfma4): New switch for FMA4 support. 7716 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Add declaration. 7717 (ix86_expand_fma4_multiple_memory): Ditto. 7718 * config/i386/i386.c (OPTION_MASK_ISA_FMA4_SET): New. 7719 (OPTION_MASK_ISA_FMA4_UNSET): New. 7720 (OPTION_MASK_ISA_SSE4A_UNSET): Change definition to depend on FMA4. 7721 (OPTION_MASK_ISA_AVX_UNSET): Change definition to depend on FMA4. 7722 (ix86_handle_option): Handle -mfma4. 7723 (isa_opts): Handle -mfma4. 7724 (enum pta_flags): Add PTA_FMA4. 7725 (override_options): Add FMA4 support. 7726 (IX86_BUILTIN_VFMADDSS): New for FMA4 intrinsic. 7727 (IX86_BUILTIN_VFMADDSD): Ditto. 7728 (IX86_BUILTIN_VFMADDPS): Ditto. 7729 (IX86_BUILTIN_VFMADDPD): Ditto. 7730 (IX86_BUILTIN_VFMSUBSS): Ditto. 7731 (IX86_BUILTIN_VFMSUBSD): Ditto. 7732 (IX86_BUILTIN_VFMSUBPS): Ditto. 7733 (IX86_BUILTIN_VFMSUBPD): Ditto. 7734 (IX86_BUILTIN_VFMADDSUBPS): Ditto. 7735 (IX86_BUILTIN_VFMADDSUBPD): Ditto. 7736 (IX86_BUILTIN_VFMSUBADDPS): Ditto. 7737 (IX86_BUILTIN_VFMSUBADDPD): Ditto. 7738 (IX86_BUILTIN_VFNMADDSS): Ditto. 7739 (IX86_BUILTIN_VFNMADDSD): Ditto. 7740 (IX86_BUILTIN_VFNMADDPS): Ditto. 7741 (IX86_BUILTIN_VFNMADDPD): Ditto. 7742 (IX86_BUILTIN_VFNMSUBSS): Ditto. 7743 (IX86_BUILTIN_VFNMSUBSD): Ditto. 7744 (IX86_BUILTIN_VFNMSUBPS): Ditto. 7745 (IX86_BUILTIN_VFNMSUBPD): Ditto. 7746 (IX86_BUILTIN_VFMADDPS256): Ditto. 7747 (IX86_BUILTIN_VFMADDPD256): Ditto. 7748 (IX86_BUILTIN_VFMSUBPS256): Ditto. 7749 (IX86_BUILTIN_VFMSUBPD256): Ditto. 7750 (IX86_BUILTIN_VFMADDSUBPS256): Ditto. 7751 (IX86_BUILTIN_VFMADDSUBPD256): Ditto. 7752 (IX86_BUILTIN_VFMSUBADDPS256): Ditto. 7753 (IX86_BUILTIN_VFMSUBADDPD256): Ditto. 7754 (IX86_BUILTIN_VFNMADDPS256): Ditto. 7755 (IX86_BUILTIN_VFNMADDPD256): Ditto. 7756 (IX86_BUILTIN_VFNMSUBPS256): Ditto. 7757 (IX86_BUILTIN_VFNMSUBPD256): Ditto. 7758 (enum multi_arg_type): New enum for describing the various FMA4 7759 intrinsic argument types. 7760 (bdesc_multi_arg): New table for FMA4 intrinsics. 7761 (ix86_init_mmx_sse_builtins): Add FMA4 intrinsic support. 7762 (ix86_expand_multi_arg_builtin): New function for creating FMA4 7763 intrinsics. 7764 (ix86_expand_builtin): Add FMA4 intrinsic support. 7765 (ix86_fma4_valid_op_p): New function to validate FMA4 3 and 4 7766 operand instructions. 7767 (ix86_expand_fma4_multiple_memory): New function to split the 7768 second memory reference from FMA4 instructions. 7769 * config/i386/sse.md (ssemodesuffixf4): New mode attribute for FMA4. 7770 (ssemodesuffixf2s): Ditto. 7771 (fma4_fmadd<mode>4): Add FMA4 floating point multiply/add 7772 instructions. 7773 (fma4_fmsub<mode>4): Ditto. 7774 (fma4_fnmadd<mode>4): Ditto. 7775 (fma4_fnmsub<mode>4): Ditto. 7776 (fma4_vmfmadd<mode>4): Ditto. 7777 (fma4_vmfmsub<mode>4): Ditto. 7778 (fma4_vmfnmadd<mode>4): Ditto. 7779 (fma4_vmfnmsub<mode>4): Ditto. 7780 (fma4_fmadd<mode>4256): Ditto. 7781 (fma4_fmsub<mode>4256): Ditto. 7782 (fma4_fnmadd<mode>4256): Ditto. 7783 (fma4_fnmsub<mode>4256): Ditto. 7784 (fma4_fmaddsubv8sf4): Ditto. 7785 (fma4_fmaddsubv4sf4): Ditto. 7786 (fma4_fmaddsubv4df4): Ditto. 7787 (fma4_fmaddsubv2df4): Ditto. 7788 (fma4_fmsubaddv8sf4): Ditto. 7789 (fma4_fmsubaddv4sf4): Ditto. 7790 (fma4_fmsubaddv4df4): Ditto. 7791 (fma4_fmsubaddv2df4): Ditto. 7792 (fma4i_fmadd<mode>4): Add FMA4 floating point multiply/add 7793 instructions for intrinsics. 7794 (fma4i_fmsub<mode>4): Ditto. 7795 (fma4i_fnmadd<mode>4): Ditto. 7796 (fma4i_fnmsub<mode>4): Ditto. 7797 (fma4i_vmfmadd<mode>4): Ditto. 7798 (fma4i_vmfmsub<mode>4): Ditto. 7799 (fma4i_vmfnmadd<mode>4): Ditto. 7800 (fma4i_vmfnmsub<mode>4): Ditto. 7801 (fma4i_fmadd<mode>4256): Ditto. 7802 (fma4i_fmsub<mode>4256): Ditto. 7803 (fma4i_fnmadd<mode>4256): Ditto. 7804 (fma4i_fnmsub<mode>4256): Ditto. 7805 (fma4i_fmaddsubv8sf4): Ditto. 7806 (fma4i_fmaddsubv4sf4): Ditto. 7807 (fma4i_fmaddsubv4df4): Ditto. 7808 (fma4i_fmaddsubv2df4): Ditto. 7809 (fma4i_fmsubaddv8sf4): Ditto. 7810 (fma4i_fmsubaddv4sf4): Ditto. 7811 (fma4i_fmsubaddv4df4): Ditto. 7812 (fma4i_fmsubaddv2df4): Ditto. 7813 7814 * doc/invoke.texi (-mfma4): Add documentation. 7815 * doc/extend.texi (x86 intrinsics): Add FMA4 intrinsics. 7816 78172009-09-29 Richard Henderson <rth@redhat.com> 7818 7819 * tree-eh.c (unsplit_eh): Do not unsplit if there's already 7820 an edge to the new destination block. 7821 78222009-09-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 7823 7824 PR target/41393 7825 * pa.c (hppa_profile_hook): Use 7826 make_reg_eh_region_note_nothrow_nononlocal to add REG_EH_REGION note. 7827 78282009-09-29 Steve Ellcey <sje@cup.hp.com> 7829 Alexander Monakov <amonakov@ispras.ru> 7830 7831 PR target/41365 7832 * config/ia64/predicates.md (not_postinc_destination_operand): New. 7833 (not_postinc_memory_operand): New. 7834 (not_postinc_move_operand): New. 7835 * config/ia64/ia64.md (*cmovdi_internal): Disallow autoincrement. 7836 (*cmovsi_internal): Ditto. 7837 78382009-09-29 Pat Haugen <pthaugen@us.ibm.com> 7839 7840 * config/rs6000/rs6000.c (rs6000_issue_rate): Don't artificially 7841 restrict issue_rate in first pass when scheduling for register 7842 pressure. 7843 78442009-09-29 Basile Starynkevitch <basile@starynkevitch.net> 7845 Rafael Avila de Espindola <espindola@google.com> 7846 7847 * gengtype.c (plugin_output): New. 7848 (get_output_file_with_visibility): Return plugin_output for plugins. 7849 (main): Parse and use the -P option. 7850 * gty.texi: Update the command line format. 7851 78522009-09-29 Jakub Jelinek <jakub@redhat.com> 7853 7854 PR debug/41438 7855 * dwarf2out.c (const_ok_for_output_1, const_ok_for_output): New 7856 functions. 7857 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Bail 7858 out if !const_ok_for_output. 7859 7860 PR debug/41474 7861 * dwarf2out.c (mem_loc_descriptor) <case CONCAT, case CONCATN, 7862 case VAR_LOCATION>: Remove gcc_unreachable (). 7863 78642009-09-29 Harsha Jagasia <harsha.jagasia@amd.com> 7865 7866 * config.gcc (i[34567]86-*-*): Remove mmintrin-common.h. 7867 (x86_64-*-*): Ditto. 7868 * config/i386/smmintrin.h: Move instructions in mmintrin-common.h 7869 back to smmintrin.h. 7870 * config/i386/cpuid.h (bit_SSE5): Remove SSE5 bit. 7871 * config/i386/x86intrin.h: Remove SSE5. 7872 * config/i386/mmintrin-common.h: Delete file. 7873 * doc/extend.texi (x86 intrinsics): Remove SSE5 flags and builtins. 7874 78752009-09-29 Richard Guenther <rguenther@suse.de> 7876 7877 * alias.c (ao_ref_from_mem): Properly deal with off decl accesses 7878 resulting from stack temporaries on STRICT_ALIGNMENT targets. 7879 78802009-09-29 Nick Clifton <nickc@redhat.com> 7881 7882 * function.c (current_function_name): If there is no current 7883 function just return "<none>". 7884 78852009-09-28 Sriraman Tallam <tmsriram@google.com> 7886 7887 * tree-pass.h (register_pass_info): New structure. 7888 (pass_positioning_ops): Move enum from gcc-plugin.h. 7889 (register_pass): New function. 7890 * gcc-plugin.h (plugin_pass): Delete structure. 7891 (pass_positioning_ops): Delete enum. 7892 * plugin.c (regsiter_pass): Delete function. 7893 (position_pass): Delete function. 7894 (added_pass_nodes): Delete variable. 7895 (prev_added_pass_nodes): Delete variable. 7896 (pass_list_node): Delete structure. 7897 * passes.c (make_pass_instance): New function. 7898 (next_pass_1): Change to call make_pass_instance. 7899 (pass_list_node): Move structure from gcc-plugin.h. 7900 (added_pass_nodes): Move variable from plugin.c. 7901 (prev_added_pass_nodes): Move variable from plugin.c. 7902 (position_pass): New function. 7903 (register_pass): New function. 7904 79052009-09-28 Easwaran Raman <eraman@google.com> 7906 7907 * ifcvt.c (noce_try_abs): Recognize pattern and call 7908 expand_one_cmpl_abs_nojump. 7909 * optabs.c (expand_one_cmpl_abs_nojump): New function. 7910 * optabs.h (expand_one_cmpl_abs_nojump): Declare. 7911 79122009-09-28 Ian Lance Taylor <iant@google.com> 7913 7914 PR middle-end/40500 7915 * c-opts.c (c_common_handle_option): Don't set 7916 warn_jump_misses_init for -Wall. 7917 * doc/invoke.texi (Warning Options): Update documentation. 7918 79192009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 7920 7921 * Makefile.in ($(out_object_file)): Depend on 7922 gt-$(basename $(notdir $(out_file))).h. 7923 79242009-09-28 Richard Henderson <rth@redhat.com> 7925 7926 * except.h (struct eh_region_d): Add use_cxa_end_cleanup. 7927 * except.c (gen_eh_region): Set it. 7928 (duplicate_eh_regions_1): Copy it. 7929 * tree-eh.c (lower_resx): Use it to determine which function 7930 to call to resume. 7931 7932 * langhooks.h (struct lang_hooks): Add eh_use_cxa_end_cleanup. 7933 * langhooks-def.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New. 7934 * builtins.def (BUILT_IN_CXA_END_CLEANUP): New. 7935 * tree.c (build_common_builtin_nodes): Remove parameter. Build 7936 BUILT_IN_CXA_END_CLEANUP if necessary. 7937 7938 * c-common.c (c_define_builtins): Update call to 7939 build_common_builtin_nodes. 7940 79412009-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com> 7942 7943 * spu.c (get_branch_target): Return NULL for ASM_OPERANDS patterns. 7944 79452009-09-28 Michael Matz <matz@suse.de> 7946 7947 * builtins.c (interclass_mathfn_icode): New helper. 7948 (expand_builtin_interclass_mathfn): Use it here, and split folding 7949 into ... 7950 (fold_builtin_interclass_mathfn): ... this new folder. 7951 (build_call_nofold_loc): New static helper. 7952 (build_call_nofold): New wrapper macro for above. 7953 (expand_builtin_int_roundingfn): Use it instead of build_call_expr. 7954 (expand_builtin_pow): Ditto. 7955 (expand_builtin_memset_args): Ditto. 7956 (expand_builtin_printf): Ditto. 7957 (expand_builtin_fprintf): Ditto. 7958 (expand_builtin_sprintf): Ditto. 7959 (expand_builtin_memory_chk): Ditto. 7960 (expand_builtin_mempcpy_args): Ditto and don't call folders. 7961 (expand_builtin_stpcpy): Ditto. 7962 (expand_builtin_strcmp): Ditto. 7963 (expand_builtin_strncmp): Ditto. 7964 (expand_builtin_strcpy): Remove FNDECL and MODE arguments. 7965 (expand_builtin_strcpy_args): Don't call folders. 7966 (expand_builtin_memcmp): Ditto. 7967 (expand_builtin_strncpy): Ditto, and use target. 7968 (expand_builtin_memcpy): Ditto. 7969 (expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr, 7970 expand_builtin_strpbrk, expand_builtin_memmove, 7971 expand_builtin_memmove_args, expand_builtin_bcopy, 7972 expand_builtin_memchr, expand_builtin_strcat, expand_builtin_strncat, 7973 expand_builtin_strspn, expand_builtin_strcspn, 7974 expand_builtin_fputs): Remove these. 7975 (expand_builtin): Don't call the above, change calls to other 7976 expanders that changed prototype. 7977 (fold_builtin_stpcpy): New folder split out from expand_builtin_stpcpy. 7978 (fold_builtin_1 <ISFINITE, ISINF, ISNORMAL>): Call 7979 fold_builtin_interclass_mathfn. 7980 (fold_builtin_2 <STPCPY>): Call fold_builtin_stpcpy. 7981 (fold_builtin_strcat): Add folding split from expand_builtin_strcat. 7982 7983 * fold-const.c (fold_binary_loc <NE_EXPR>): Add !exp != 0 -> !exp. 7984 * passes.c (init_optimization_passes): Move pass_fold_builtins 7985 after last phiopt pass. 7986 * tree-inline.c (fold_marked_statements): When folding builtins 7987 iterate over all instruction potentially generated. 7988 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Declare 7989 earlier. 7990 (fold_gimple_call): Use it to always fold calls (into potentially 7991 multiple instructions). 7992 * tree-ssa-dom.c (optimize_stmt): Resolve __builtin_constant_p 7993 calls into zero at this time. 7994 * tree-ssa-propagate.c (substitute_and_fold): Ignore multiple 7995 statements generated by builtin folding. 7996 79972009-09-28 Nick Clifton <nickc@redhat.com> 7998 7999 * config/m32r/m32r.c (m32r_is_insn): Return false for debugging insns. 8000 80012009-09-28 Duncan Sands <baldrick@free.fr> 8002 8003 * gcc-plugin.h (PLUGIN_REGISTER_GGC_CACHES): New event. 8004 * plugin.c (plugin_event_name): Add PLUGIN_REGISTER_GGC_CACHES. 8005 (register_callback): Dispatch it. 8006 (invoke_plugin_callbacks): Incorporate in sanity check. 8007 * ggc.h (ggc_register_cache_tab): Add declaration. 8008 * ggc-common.c (ggc_register_root_tab): Simplify. 8009 (const_ggc_cache_tab_t): New typedef. 8010 (extra_cache_vec): New vector of dynamically added cache tables. 8011 (ggc_register_cache_tab): New function. 8012 (ggc_scan_cache_tab): New function. 8013 (ggc_mark_roots): Simplify dynamic roots. Handle dynamic caches. 8014 * doc/plugins.texi: Document PLUGIN_REGISTER_GGC_CACHES. 8015 80162009-09-27 Richard Henderson <rth@redhat.com> 8017 8018 * tree-ssa-ccp.c (optimize_stack_restore): Relax the conditions under 8019 which we remove __builtin_stack_restore. 8020 80212009-09-27 Bernd Schmidt <bernd.schmidt@analog.com> 8022 8023 * loop-iv.c (iv_analyze_op): Use function_invariant_p, not CONSTANT_P, 8024 to test for GRD_INVARIANT. 8025 (simple_rhs_p): Anything that's function_invariant_p is fine. 8026 80272009-09-27 Rafael Avila de Espindola <espindola@google.com> 8028 8029 * gengtype.c (main): Use plunge_files instead of plugin_output. 8030 80312009-09-27 Basile Starynkevitch <basile@starynkevitch.net> 8032 Rafael Avila de Espindola <espindola@google.com> 8033 8034 * gengtype.c (write_root, write_roots): Add a emit_pch argument. 8035 Don't print pch related info if it is false. 8036 (main): Don't print pch info in plugin mode. 8037 80382009-09-27 Eric Botcazou <ebotcazou@adacore.com> 8039 8040 * dwarf2out.c (enum dw_val_class): Replace dw_val_class_long_long 8041 with dw_val_class_const_double. 8042 (struct dw_val_struct): Replace val_long_long with val_double and 8043 adjust for above change. 8044 (output_loc_operands): Likewise. 8045 (add_AT_long_long): Rename into... 8046 (add_AT_double): ...this. 8047 (print_die): Replace dw_val_class_long_long with 8048 dw_val_class_const_double and adjust. 8049 (attr_checksum): Likewise. 8050 (same_dw_val_p): Likewise. 8051 (size_of_die): Likewise. 8052 (value_format): Likewise. 8053 (output_die): Likewise. 8054 (loc_descriptor) <CONST_DOUBLE>: Likewise. 8055 (add_const_value_attribute) <CONST_DOUBLE>: Call add_AT_double 8056 instead of add_AT_long_long. 8057 (add_bound_info) <INTEGER_CST>: Generate the bound as an unsigned 8058 value with the precision of its type. 8059 80602009-09-27 Andreas Schwab <schwab@linux-m68k.org> 8061 8062 PR c/41476 8063 * c-typeck.c (build_conditional_expr): Use the readonly and 8064 volatile flags of the operand types, not of the operands itself. 8065 80662009-09-27 Peter O'Gorman <pogma@thewrittenword.com> 8067 8068 * collect2.c (main): Look for -brtl before adding libraries. 8069 80702009-09-27 Jonathan Gray <jsg@openbsd.org> 8071 8072 * config.gcc: Update OpenBSD targets. 8073 * config/openbsd-stdint.h: New file. 8074 * config/openbsd-libpthread.h: New file. 8075 * config/openbsd.h: Update and break out LIB_SPEC definition. 8076 * config/alpha/openbsd.h: Overhaul to reflect ELF migration. 8077 * config/i386/openbsdelf.h: Correct types. 8078 * config/m68k/openbsd.h: Likewise. 8079 * config/mips/openbsd.h: Likewise. 8080 * config/vax/openbsd.h: Likewise. 8081 80822009-09-27 Eric Botcazou <ebotcazou@adacore.com> 8083 8084 * fold-const.c (maybe_lvalue_p): Return false for M(IN|AX)_EXPR. 8085 (extract_muldiv_1) <MINUS_EXPR>: Swap operands if necessary. 8086 * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not take the maximum 8087 of the length and zero. 8088 80892009-09-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 8090 8091 * Makefile.in (TOPLEV_H): Use $(INPUT_H) not input.h. 8092 (FLAGS_H): Add options.h $(REAL_H). 8093 (SEL_SCHED_IR_H): Add $(BITMAP_H) vecprim.h $(CFGLOOP_H). 8094 (TREE_VECTORIZER_H): New. 8095 (EBITMAP_H): Renamed from EBIMAP_H. 8096 (c-decl.o, c-objc-common.o, c-pretty-print.o, attribs.o, c-omp.o) 8097 (gtype-desc.o, ggc-common.o, ggc-page.o, ggc-zone.o, langhooks.o) 8098 (tree.o, tree-ssa-structalias.o, tree-ssa-ter.o, tree-ssanames.o) 8099 (tree-phinodes.o, tree-ssa-loop.o, tree-ssa-math-opts.o) 8100 (gimple-low.o, omp-low.o, sese.o, graphite-blocking.o) 8101 (graphite-clast-to-gimple.o, graphite-dependences.o) 8102 (graphite-interchange.o, graphite-poly.o, graphite-scop-detection.o) 8103 (graphite-sese-to-poly.o, tree-vect-loop.o, tree-vect-loop-manip.o) 8104 (tree-vect-patterns.o, tree-vect-slp.o, tree-vect-stmts.o) 8105 (tree-vect-data-refs.o, tree-vectorizer.o, gimple.o, tree-mudflap.o) 8106 (targhooks.o, stmt.o, emit-rtl.o, ipa.o, matrix-reorg.o, ipa-inline.o) 8107 (gcse.o, tree-ssa-ccp.o, df-byte-scan.o, vec.o, caller-save.o) 8108 (ira-build.o, ira-costs.o, ira-color.o, ira-emit.o, ira.o) 8109 (haifa-sched.o, sched-rgn.o, sel-sched.o, sel-sched-dump.o) 8110 (sel-sched-ir.o, final.o, $(out_object_file)): Dependencies 8111 updated and fixed as per above changes and per 8112 check_makefile_deps.sh output. 8113 8114 PR bootstrap/40928 8115 * configure.ac: Use $LIBS for '-ldl', not $LDFLAGS. 8116 * configure: Regenerate. 8117 81182009-09-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8119 8120 * doc/install.texi: Update minimum MPC version to 0.7. 8121 81222009-09-26 Gerald Pfeifer <gerald@pfeifer.com> 8123 8124 * doc/install.texi (Binaries): Remove reference to the binary 8125 distribution CD-ROM from the FSF. 8126 81272009-09-26 Michael Matz <matz@suse.de> 8128 8129 PR lto/40758 8130 PR middle-end/41470 8131 * tree-ssa-coalesce.c (coalesce_ssa_name): Add only SSA names 8132 that are mentioned in the body. 8133 81342009-09-26 Michael Matz <matz@suse.de> 8135 8136 PR tree-optimization/41454 8137 * tree-ssa-dom (stmts_to_rescan): Remove variable. 8138 (tree_ssa_dominator_optimize): Don't allocate and free it. 8139 (dom_opt_leave_block): Don't iterate over it. 8140 (eliminate_redundant_computations): Don't return a value. 8141 (cprop_operand, cprop_into_stmt): Ditto. 8142 (optimize_stmt): Don't defer updating stmts. 8143 81442009-09-25 Dodji Seketeli <dodji@redhat.com> 8145 8146 * dwarf2out.c (dwarf_tag_name, gen_generic_params_dies, 8147 generic_parameter_die, template_parameter_pack_die, 8148 gen_formal_parameter_die, gen_subprogram_die): Adjust after 8149 renaming DW_TAG_formal_parameter_pack and 8150 DW_TAG_template_parameter_pack into DW_TAG_GNU_formal_parameter_pack 8151 and DW_TAG_GNU_template_parameter_pack. 8152 81532009-09-25 Anatoly Sokolov <aesok@post.ru> 8154 8155 * config/v850/v850.h (FUNCTION_VALUE): Remove. 8156 * config/v850/v850.c (v850_function_value): New function. 8157 (TARGET_FUNCTION_VALUE): Define. 8158 81592009-09-25 Jakub Jelinek <jakub@redhat.com> 8160 8161 * tree-vect-stmts.c (vectorizable_call): Call 8162 mark_symbols_for_renaming after vect_finish_stmt_generation. 8163 8164 * dwarf2out.c (tls_mem_loc_descriptor): Pass 1 instead of 2 8165 to loc_descriptor_from_tree. 8166 (add_location_or_const_value_attribute): Pass 0 instead of 2 8167 for decl_by_reference_p decls. 8168 81692009-09-25 Richard Guenther <rguenther@suse.de> 8170 8171 PR middle-end/41463 8172 * tree-dfa.c (get_ref_base_and_extent): Fix issue with trailing 8173 arrays again. 8174 81752009-09-25 Ben Elliston <bje@au.ibm.com> 8176 8177 * doc/invoke.texi (RS/6000 and PowerPC Options): Add missing comma 8178 after `power7'. 8179 81802009-09-25 Alan Modra <amodra@bigpond.net.au> 8181 8182 * config/rs6000/rs6000.md (load_toc_v4_PIC_3c): Correct POWER 8183 form of instruction. 8184 81852009-09-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8186 8187 PR middle-end/41435 8188 * fold-const.c (const_binop): Handle complex int division. 8189 * tree-complex.c (expand_complex_div_straight, 8190 expand_complex_div_wide): Update comments. 8191 81922009-09-24 DJ Delorie <dj@redhat.com> 8193 8194 PR target/41456 8195 * config/m32c/m32c.h (REG_CLASS_CONTENTS): Add R13. 8196 (reg_class): Likewise. 8197 (REG_CLASS_NAMES): Likewise. 8198 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Likewise. 8199 (m32c_override_options): Disable -fivopts for M32C. 8200 82012009-09-24 Michael Meissner <meissner@linux.vnet.ibm.com> 8202 8203 * config/rs6000/predicates.md (indexed_or_indirect_operand): 8204 Delete VSX load/store with update support. 8205 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Ditto. 8206 * config/rs6000/vsx.md (vsx_mov<mode>): Ditto. 8207 (vsx_movti): Ditto. 8208 (VSX_U): Delete. 8209 (VSbit): Ditto. 8210 (VStype_load_update): Ditto. 8211 (VStype_store_update): Ditto. 8212 (vsx_load<VSX_U:mode>_update_<P:mptrsize>): Ditto. 8213 (vsx_store<VSX_U:mode>_update_<P:mptrsize>): Ditto. 8214 8215 * config/rs6000/rs6000.h (enum rs6000_builtins): Delete VSX 8216 load/store with update builtins. 8217 82182009-09-24 Kai Tietz <kai.tietz@onevision.com> 8219 8220 * libgcc2.c (L_trampoline): Prototype for getpagesize 8221 and mprotect in WINNT case. 8222 82232009-09-24 Anatoly Sokolov <aesok@post.ru> 8224 8225 * config/rs6000/rs6000.h (FUNCTION_VALUE): Remove macro. 8226 * config/rs6000/rs6000-protos.h (rs6000_function_value): Remove. 8227 * config/rs6000/rs6000.c (rs6000_function_value): Make static, add 8228 'outgoing' argument. 8229 (TARGET_FUNCTION_VALUE): Define. 8230 82312009-09-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 8232 8233 * config/darwin.h (DWARF2_DEBUGGING_INFO): Define as 1. 8234 82352009-09-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 8236 8237 PR bootstrap/41405 8238 * common.opt: Initialize dwarf_strict to -1. 8239 * toplev.c (process_options): Catch unset dwarf_strict 8240 and set to 0 for all targets not overriding. 8241 * config/darwin.c (darwin_override_options): Catch unset 8242 dwarf_strict and override to 1. 8243 82442009-09-24 Jeff Law <law@redhat.com> 8245 8246 * tree-into-ssa.c (rewrite_into_ssa): Free interesting_blocks. 8247 82482009-09-24 Richard Guenther <rguenther@suse.de> 8249 8250 PR tree-optimization/36143 8251 PR tree-optimization/38747 8252 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only 8253 create VIEW_CONVERT_EXPRs for TBAA compatible accesses. 8254 82552009-09-24 Jakub Jelinek <jakub@redhat.com> 8256 8257 PR bootstrap/41457 8258 * dwarf2out.c (add_const_value_attribute): For HIGH and CONST_FIXED, 8259 return false instead of gcc_unreachable (). For CONST return the 8260 value returned by recursive call instead of always returning true. 8261 (tree_add_const_value_attribute): Return the value returned by 8262 add_const_value_attribute instead of always returning true if rtl 8263 is non-NULL. 8264 82652009-09-23 Justin Seyster <jrseys@gmail.com> 8266 8267 * Makefile.in (PLUGIN_HEADERS): Include real.h. 8268 82692009-09-24 Jakub Jelinek <jakub@redhat.com> 8270 8271 * cgraphunit.c (cgraph_lower_function): Revert last change. 8272 * targhooks.c (default_static_chain): Use !DECL_STATIC_CHAIN 8273 instead of DECL_NO_STATIC_CHAIN. 8274 * tree-cfg.c (verify_gimple_call): Likewise. 8275 * tree-nested.c (get_chain_decl, get_chain_field, 8276 convert_tramp_reference_op, convert_gimple_call): Likewise. 8277 (convert_all_function_calls): Likewise. Always set or clear 8278 DECL_STATIC_CHAIN initially, for !n->outer clear it. 8279 (lower_nested_functions): Remove DECL_NO_STATIC_CHAIN checking code. 8280 * c-parser.c (c_parser_declaration_or_fndef): Set DECL_STATIC_CHAIN 8281 if nested. 8282 * print-tree.c (print_node): Handle DECL_STATIC_CHAIN instead of 8283 DECL_NO_STATIC_CHAIN. 8284 * config/i386/i386.c (ix86_static_chain): Use !DECL_STATIC_CHAIN 8285 instead of DECL_NO_STATIC_CHAIN. 8286 (ix86_function_regparm, find_drap_reg): Likewise. Don't test 8287 decl_function_context. 8288 * varasm.c (initializer_constant_valid_p): Likewise. 8289 * tree.h (DECL_NO_STATIC_CHAIN): Renamed to ... 8290 (DECL_STATIC_CHAIN): ... this. 8291 * config/moxie/moxie.c (moxie_static_chain): Use !DECL_STATIC_CHAIN 8292 instead of DECL_NO_STATIC_CHAIN. 8293 82942009-09-23 Basile Starynkevitch <basile@starynkevitch.net> 8295 Rafael Avila de Espindola <espindola@google.com> 8296 8297 * gengtype.c (nb_plugin_files): Make it unsigned to match 8298 num_gt_files. Adjust other variables to avoid warnings. 8299 (main): Allocate an all zero lang_bitmap before each plugin file name 8300 to match regular file names. 8301 83022009-09-23 Richard Henderson <rth@redhat.com> 8303 8304 * doc/tm.texi (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove. 8305 (TARGET_STATIC_CHAIN): Mention that this hook must be used for 8306 static chain passed in memory. 8307 * system.h (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Poison. 8308 * targhooks.c (default_static_chain): Don't handle STATIC_CHAIN, 8309 STATIC_CHAIN_INCOMING. Issue a sorry if there's no 8310 STATIC_CHAIN_REGNUM defined. 8311 8312 * config/picochip/picochip-protos.h: s/class/klass/. 8313 * config/picochip/picochip.c (TARGET_STATIC_CHAIN): New. 8314 (picochip_static_chain): New. 8315 * config/picochip/picochip.h (STATIC_CHAIN): Remove. 8316 (STATIC_CHAIN_INCOMING): Remove. 8317 8318 * config/xtensa/xtensa.c (TARGET_STATIC_CHAIN): New. 8319 (xtensa_static_chain): New. 8320 * config/xtensa/xtensa.h (STATIC_CHAIN): Remove. 8321 (STATIC_CHAIN_INCOMING): Remove. 8322 83232009-09-23 Anatoly Sokolov <aesok@post.ru> 8324 8325 * config/pa/pa.h (FUNCTION_VALUE): Remove macro. 8326 * config/pa/pa-protos.h (function_value): Remove. 8327 * config/pa/pa.c (pa_function_value): Rename from function_value. 8328 Make static, add 'outgoing' argument. 8329 (TARGET_FUNCTION_VALUE): Define. 8330 83312009-09-23 Anatoly Sokolov <aesok@post.ru> 8332 8333 * config/avr/avr.c (avr_regs_to_save): Use current_function_is_leaf 8334 instead of cfun->machine->is_leaf. 8335 * config/avr/avr.h (machine_function): Remove is_leaf field. 8336 83372009-09-23 Jakub Jelinek <jakub@redhat.com> 8338 8339 PR debug/41439 8340 * dwarf2out.c (address_of_int_loc_descriptor): Don't emit 8341 DW_OP_piece after DW_OP_stack_value, adjust size calculations 8342 for it, when DW_OP_stack_value and DW_OP_implicit_value has 8343 the same size, prefer DW_OP_stack_value. 8344 (loc_descriptor, loc_list_for_address_of_addr_expr_of_indirect_ref, 8345 loc_list_from_tree): Don't emit DW_OP_piece after DW_OP_stack_value. 8346 83472009-09-23 Alexandre Oliva <aoliva@redhat.com> 8348 8349 PR debug/41353 8350 * var-tracking.c (add_with_sets): Sort MO_VAL_LOC last among uses. 8351 83522009-09-23 Alexandre Oliva <aoliva@redhat.com> 8353 8354 PR debug/41248 8355 * cfgexpand.c (convert_debug_memory_address): New. 8356 (expand_debug_expr): Convert base address and offset to the same 8357 mode. Use it to convert addresses to other modes. Accept 8358 ptr_mode addresses. 8359 83602009-09-23 Dodji Seketeli <dodji@redhat.com> 8361 8362 PR debug/41065 8363 * function.h (types_used_by_vars_hash): Declare new hash table. 8364 (types_used_by_vars_eq, types_used_by_var_decl_insert): Declare 8365 equality and hash function for the hash table. 8366 (types_used_by_cur_var_decl): Declare a new global chained list. 8367 (types_used_by_var_decl_insert): Declare new function. 8368 * function.c (types_used_by_vars_hash): Define the hashtable ... 8369 (types_used_by_vars_eq, types_used_by_vars_do_hash): ... as well as 8370 its equality and hash functions. 8371 (hash_types_used_by_vars_entry): New hash helper. 8372 (types_used_by_cur_var_decl): Define the global chained list. 8373 (used_types_insert): Update the list of types used by the global 8374 variable being parsed. 8375 (types_used_by_var_decl_insert): Define new function. 8376 * c-common.h (record_types_used_by_current_var_decl): Declare ... 8377 * c-common.c (record_types_used_by_current_var_decl): ... new 8378 function. 8379 * c-decl.c (finish_decl): Record the types used by the global 8380 variable declaration we've just parsed. 8381 * dwarf2out.c (premark_used_types): Insert a new line between 8382 comment and function. 8383 (premark_used_types_helper): Fix comment. 8384 (premark_types_used_by_global_vars_helper, 8385 premark_types_used_by_global_vars): New functions. 8386 (prune_unused_types): Do not prune types used by global variables. 8387 83882009-09-23 Richard Guenther <rguenther@suse.de> 8389 8390 * alias.c (ao_ref_from_mem): Correct for negative MEM_OFFSET 8391 produced for bigendian targets with promoted subregs. 8392 83932009-09-23 Richard Guenther <rguenther@suse.de> 8394 8395 * value-prof.c (gimple_ic): Purge old EH edges only after building 8396 the new ones. 8397 83982009-09-23 Nick Clifton <nickc@redhat.com> 8399 8400 * config/arc/arc.c (arc_trampoline_init): Fix typo. 8401 84022009-09-23 Jakub Jelinek <jakub@redhat.com> 8403 8404 PR bootstrap/41405 8405 * doc/invoke.texi: Document -gstrict-dwarf and -gno-strict-dwarf. 8406 8407 PR bootstrap/41436 8408 * cgraphunit.c (cgraph_lower_function): Set DECL_NO_STATIC_CHAIN 8409 on non-nested functions. 8410 84112009-09-23 Jakub Jelinek <jakub@redhat.com> 8412 Jan Hubicka <jh@suse.cz> 8413 8414 * dwarf2out.c (loc_list_plus_const): Only define if 8415 DWARF2_DEBUGGING_INFO. 8416 (address_of_int_loc_descriptor): Likewise. 8417 8418 PR debug/41411 8419 * dwarf2out.c (mem_loc_descriptor): Handle HIGH. 8420 84212009-09-23 Uros Bizjak <ubizjak@gmail.com> 8422 8423 PR c/39779 8424 * c-typeck.c (build_binary_op) <short_shift>: Check that integer 8425 constant is more than zero. 8426 84272009-09-23 Alan Modra <amodra@bigpond.net.au> 8428 8429 PR target/40473 8430 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't 8431 call final to emit non-scheduled prologue, instead insert at entry. 8432 84332009-09-22 Loren J. Rittle <ljrittle@acm.org> 8434 Joseph S. Myers <joseph@codesourcery.com> 8435 8436 * doc/install.texi (*-*-freebsd*): Add proper format codes. 8437 84382009-09-22 Basile Starynkevitch <basile@starynkevitch.net> 8439 Rafael Avila de Espindola <espindola@google.com> 8440 8441 * gengtype.c (is_file_equal): New function. 8442 (close_output_files): Use is_file_equal. Free of->buf. 8443 84442009-09-22 Basile Starynkevitch <basile@starynkevitch.net> 8445 Rafael Avila de Espindola <espindola@google.com> 8446 8447 * gengtype.c (write_types, write_local): Add the output_header 8448 argument. Update all callers. 8449 84502009-09-22 Dodji Seketeli <dodji@redhat.com> 8451 8452 * dwarf2out.c (template_parameter_pack_die, 8453 gen_formal_parameter_pack_die ): New functions. 8454 (make_ith_pack_parameter_name): Remove this function. 8455 (dwarf_tag_name): Support printing DW_TAG_template_parameter_pack and 8456 DW_TAG_formal_parameter_pack. 8457 (gen_generic_params_dies): Represent each template parameter pack 8458 by a DW_TAG_template_parameter_pack DIE. Argument pack elements are 8459 represented by usual DW_TAG_template_*_parameter DIEs that are 8460 children of the DW_TAG_template_parameter_pack element DIE. 8461 (generic_parameter_die): This doesn't deal with parameter pack 8462 names anymore. Don't generate DW_AT_name for some DIEs, e.g. children 8463 of parameter pack DIEs. 8464 (gen_formal_parameter_die): Add a flag to not emit DW_AT_name 8465 in certain cases, e.g. for pack elements. 8466 (gen_formal_types_die, gen_decl_die): Adjust usage of 8467 gen_formal_parameter_die. 8468 (gen_subprogram_die): Represent each function parameter pack by a 8469 DW_TAG_formal_parameter_pack DIE. Arguments of of the pack are 8470 represented by usual DW_TAG_formal_parameter DIEs that are children 8471 of the DW_TAG_formal_parameter_pack DIE. Remove references to 8472 ____builtin_va_alist decls as no part of the compiler uses those 8473 anymore. 8474 * langhooks.h (struct lang_hooks_for_decls): Add 8475 function_parm_expanded_from_pack_p, get_generic_function_decl 8476 and function_parameter_pack_p hooks. Fix comment for 8477 get_innermost_generic_parms hook. 8478 * langhooks-def.h (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P, 8479 LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P ): Declare new hook 8480 macros and use them to initialize lang_hook. 8481 84822009-09-22 Richard Henderson <rth@redhat.com> 8483 8484 * system.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Poison. 8485 (TRAMPOLINE_ADJUST_ADDRESS): Poison. 8486 * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): Don't conditionalize 8487 on TRAMPOLINE_TEMPLATE. 8488 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Don't conditionalize on 8489 TRAMPOLINE_ADJUST_ADDRESS. 8490 * targhooks.c (default_asm_trampoline_template): Remove. 8491 (default_trampoline_adjust_address): Remove. 8492 (default_trampoline_init): Don't handle INITIALIZE_TRAMPOLINE. 8493 * targhooks.h: Update decls. 8494 84952009-09-22 Dave Korn <dave.korn.cygwin@gmail.com> 8496 8497 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable. 8498 * config/i386/cygwin.h (LIBGCJ_SONAME): Define. 8499 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise. 8500 85012009-09-22 Alexandre Oliva <aoliva@redhat.com> 8502 8503 PR debug/41295 8504 * reload1.c (reload): Reset debug insns with pseudos without 8505 equivalences. 8506 85072009-09-22 Janis Johnson <janis187@us.ibm.com> 8508 8509 * config/i386/i386.c (ix86_scalar_mode_supported_p): Don't return 8510 unconditional true for decimal float modes. 8511 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Ditto. 8512 * config/s390/s390.c (s390_scalar_mode_supported_p): Ditto. 8513 85142009-09-22 Loren J. Rittle <ljrittle@acm.org> 8515 8516 * unwind-dw2-fde-glibc.c: Define and use USE_PT_GNU_EH_FRAME. 8517 Enable a new case for __FreeBSD__ >= 7. 8518 * crtstuff.c: Define USE_PT_GNU_EH_FRAME for __FreeBSD__ >= 7. 8519 * config/t-freebsd: Define LIB2ADDEH and LIB2ADDEHDEP. 8520 * config/freebsd-spec.h: Conditionally define LINK_EH_SPEC 8521 and USE_LD_AS_NEEDED. 8522 8523 * doc/install.texi (*-*-freebsd*): Update target information. 8524 85252009-09-22 Richard Guenther <rguenther@suse.de> 8526 8527 PR middle-end/41395 8528 * tree-dfa.c (get_ref_base_and_extent): Handle trailing 8529 arrays really properly. 8530 85312009-09-22 Richard Henderson <rth@redhat.com> 8532 8533 PR target/41246 8534 * target.h (struct gcc_target): Add asm_out.trampoline_template, 8535 calls.static_chain, calls.trampoline_init, 8536 calls.trampoline_adjust_address. 8537 * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8538 (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New. 8539 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New. 8540 * builtins.c (expand_builtin_setjmp_receiver): Use 8541 targetm.calls.static_chain; only clobber registers. 8542 (expand_builtin_init_trampoline): Use targetm.calls.trampoline_init; 8543 set up memory attributes properly for the trampoline block. 8544 (expand_builtin_adjust_trampoline): Use 8545 targetm.calls.trampoline_adjust_address. 8546 * calls.c (prepare_call_address): Add fndecl argument. Use 8547 targetm.calls.static_chain. 8548 * df-scan.c (df_need_static_chain_reg): Remove. 8549 (df_get_entry_block_def_set): Use targetm.calls.static_chain; 8550 consolodate static chain handling. 8551 * doc/tm.texi: Document new hooks. 8552 * emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove. 8553 (init_emit_regs): Don't initialize them. 8554 * expr.h (prepare_call_address): Update decl. 8555 * final.c (profile_function): Use targetm.calls.static_chain. 8556 * function.c (expand_function_start): Likewise. 8557 * rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove. 8558 * stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain; 8559 only clobber registers. 8560 * targhooks.c (default_static_chain): New. 8561 (default_asm_trampoline_template, default_trampoline_init): New. 8562 (default_trampoline_adjust_address): New. 8563 * targhooks.h: Declare them. 8564 * varasm.c (assemble_trampoline_template): Use 8565 targetm.asm_out.trampoline_template. Make the memory block const 8566 and set its size. 8567 8568 * config/alpha/alpha.c (alpha_trampoline_init): Rename from 8569 alpha_initialize_trampoline. Make static. Merge VMS parameter 8570 differences into the TARGET_ABI_OPEN_VMS code block. 8571 (TARGET_TRAMPOLINE_INIT): New. 8572 * config/alpha/alpha.h (TRAMPOLINE_TEMPLATE): Remove. 8573 (TRAMPOLINE_SECTION, INITIALIZE_TRAMPOLINE): Remove. 8574 * config/alpha/vms.h (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Remove. 8575 (INITIALIZE_TRAMPOLINE): Remove. 8576 8577 * config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New. 8578 (TRAMPOLINE_TEMPLATE): Merge with ... 8579 (INITIALIZE_TRAMPOLINE): ... this and move ... 8580 * config/arc/arc.c (arc_trampoline_init): ... here. 8581 (TARGET_TRAMPOLINE_INIT): New. 8582 8583 * config/arm/arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8584 (TARGET_TRAMPOLINE_INIT, TARGET_TRAMPOLINE_ADJUST_ADDRESS): New. 8585 (arm_asm_trampoline_template): New. 8586 (arm_trampoline_init, arm_trampoline_adjust_address): New. 8587 * config/arm/arm.h (TRAMPOLINE_TEMPLATE, ARM_TRAMPOLINE_TEMPLATE, 8588 THUMB2_TRAMPOLINE_TEMPLATE, THUMB1_TRAMPOLINE_TEMPLATE): Move all 8589 code to arm_asm_trampoline_template. 8590 (TRAMPOLINE_ADJUST_ADDRESS): Move code to 8591 arm_trampoline_adjust_address. 8592 (INITIALIZE_TRAMPOLINE): Move code to arm_trampoline_init; 8593 adjust for target hook parameters. 8594 8595 * config/avr/avr.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): 8596 Remove. 8597 8598 * config/bfin/bfin-protos.h (initialize_trampoline): Remove. 8599 * config/bfin/bfin.c (bfin_asm_trampoline_template): New. 8600 (bfin_trampoline_init): Rename from initialize_trampoline; 8601 make static; update for target hook parameters. 8602 (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New. 8603 * config/bfin/bfin.h (TRAMPOLINE_TEMPLATE): Move code to 8604 bfin_asm_trampoline_template. 8605 (INITIALIZE_TRAMPOLINE): Remove. 8606 8607 * config/cris/cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, 8608 TARGET_TRAMPOLINE_INIT, cris_asm_trampoline_template, 8609 cris_trampoline_init): New. 8610 * config/cris/cris.h (TRAMPOLINE_TEMPLATE): Move code to 8611 cris_asm_trampoline_template. 8612 (INITIALIZE_TRAMPOLINE): Move code to cris_trampoline_init; 8613 adjust for target hook parameters. 8614 8615 * config/crx/crx.h (INITIALIZE_TRAMPOLINE): Remove. 8616 8617 * config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, 8618 TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template, 8619 fr30_trampoline_init): New. 8620 * config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to 8621 fr30_asm_trampoline_template. 8622 (INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init; 8623 adjust for target hook parameters. 8624 8625 * config/frv/frv.c (TARGET_TRAMPOLINE_INIT): New. 8626 (frv_trampoline_init): Rename from frv_initialize_trampoline; 8627 make static, adjust arguments for TARGET_TRAMPOLINE_INIT hook. 8628 * config/frv/frv.h (INITIALIZE_TRAMPOLINE): Remove. 8629 * config/frv/frv-protos.h (frv_initialize_trampoline): Remove. 8630 8631 * config/h8300/h8300.c (h8300_trampoline_init): New. 8632 (TARGET_TRAMPOLINE_INIT): New. 8633 * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Move code 8634 to h8300_trampoline_init and adjust for hook parameters. 8635 8636 * config/ia64/ia64-protos.h (ia64_initialize_trampoline): Remove. 8637 * config/ia64/ia64.c (TARGET_TRAMPOLINE_INIT): New. 8638 (ia64_trampoline_init): Rename from ia64_initialize_trampoline; 8639 make static; adjust for hook parameters. 8640 * config/ia64/ia64.h (INITIALIZE_TRAMPOLINE): Remove. 8641 8642 * config/iq2000/iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8643 (TARGET_TRAMPOLINE_INIT): New. 8644 (iq2000_asm_trampoline_template, iq2000_trampoline_init): New. 8645 * config/iq2000/iq2000.h (TRAMPOLINE_TEMPLATE): Move code to 8646 iq2000_asm_trampoline_template. 8647 (INITIALIZE_TRAMPOLINE): Move code to iq2000_trampoline_init. 8648 (TRAMPOLINE_CODE_SIZE): New. 8649 (TRAMPOLINE_SIZE): Use it. 8650 (TRAMPOLINE_ALIGNMENT): Follow Pmode. 8651 8652 * config/m32c/m32c-protos.h (m32c_initialize_trampoline): Remove. 8653 * config/m32c/m32c.c (TARGET_TRAMPOLINE_INIT): New. 8654 (m32c_trampoline_init): Rename from m32c_initialize_trampoline; 8655 adjust for hook parameters. 8656 * config/m32c/m32c.h (INITIALIZE_TRAMPOLINE): Remove. 8657 8658 * config/m32r/m32r.c (TARGET_TRAMPOLINE_INIT): New. 8659 (m32r_trampoline_init): New. 8660 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Move code to 8661 m32r_trampoline_init. 8662 8663 * config/m68hc11/m68hc11.c (TARGET_TRAMPOLINE_INIT): New. 8664 (m68hc11_trampoline_init): Rename from m68hc11_initialize_trampoline; 8665 make static; update for hook parameters. 8666 * config/m68hc11/m68hc11-protos.h: Update. 8667 * config/m68hc11/m68hc11.h (INITIALIZE_TRAMPOLINE): Remove. 8668 8669 * config/mcore/mcore.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8670 (TARGET_TRAMPOLINE_INIT): New. 8671 (mcore_function_value): Fix typo. 8672 (mcore_asm_trampoline_template, mcore_trampoline_init): New. 8673 * config/mcore/mcore.h (TRAMPOLINE_TEMPLATE): Move code 8674 to mcore_asm_trampoline_template. 8675 (INITIALIZE_TRAMPOLINE): Move code to mcore_trampoline_init. 8676 8677 * config/mep/mep.h (INITIALIZE_TRAMPOLINE): Remove. 8678 * config/mep/mep.c (TARGET_TRAMPOLINE_INIT): New. 8679 (mep_trampoline_init): Rename from mep_init_trampoline; make static; 8680 update for hook parameters. 8681 * config/mep/mep-protos.h (mep_init_trampoline): Remove. 8682 8683 * config/mips/mips.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, 8684 mips_asm_trampoline_template, TARGET_TRAMPOLINE_INIT, 8685 mips_trampoline_init): New. 8686 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Move code to 8687 mips_asm_trampoline_template. 8688 (INITIALIZE_TRAMPOLINE): Move code to mips_trampoline_init; 8689 update for hook parameters. 8690 8691 * gcc/config/mmix/mmix.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8692 (TARGET_TRAMPOLINE_INIT): New. 8693 (mmix_trampoline_size): Remove. 8694 (mmix_asm_trampoline_template): Rename from mmix_trampoline_template; 8695 make static. Remove out-of-date tetra vs octa comment. 8696 (mmix_trampoline_init): Rename from mmix_initialize_trampoline; 8697 make static; update for hook parameters. 8698 * config/mmix/mmix.h (TRAMPOLINE_TEMPLATE): Remove. 8699 (INITIALIZE_TRAMPOLINE): Remove. 8700 (TRAMPOLINE_SIZE): Use a constant instead of mmix_trampoline_size. 8701 (TRAMPOLINE_ALIGNMENT): New. 8702 * gcc/config/mmix/mmix-protos.h: Update. 8703 8704 * config/mn10300/mn10300.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, 8705 mn10300_asm_trampoline_template, TARGET_TRAMPOLINE_INIT, 8706 mn10300_trampoline_init): New. 8707 * config/mn10300/mn10300.h (TRAMPOLINE_TEMPLATE): Move code to 8708 mn10300_asm_trampoline_template. 8709 (INITIALIZE_TRAMPOLINE): Move code to mn10300_trampoline_init. 8710 8711 * config/moxie/moxie.c (moxie_static_chain, 8712 moxie_asm_trampoline_template, moxie_trampoline_init, 8713 TARGET_STATIC_CHAIN, TARGET_ASM_TRAMPOLINE_TEMPLATE, 8714 TARGET_TRAMPOLINE_INIT): New. 8715 * config/moxie/moxie.h (INITIALIZE_TRAMPOLINE): Move code to 8716 moxie_trampoline_init. 8717 (TRAMPOLINE_TEMPLATE): Move code to moxie_asm_trampoline_template. 8718 (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove. 8719 8720 * gcc/config/pa/pa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, 8721 pa_asm_trampoline_template, TARGET_TRAMPOLINE_INIT, 8722 pa_trampoline_init, TARGET_TRAMPOLINE_ADJUST_ADDRESS, 8723 pa_trampoline_adjust_address): New. 8724 * config/pa/pa.h (TRAMPOLINE_TEMPLATE): Move code to 8725 pa_asm_trampoline_template. 8726 (TRAMPOLINE_ALIGNMENT): New. 8727 (TRAMPOLINE_CODE_SIZE): Move to pa.c. 8728 (INITIALIZE_TRAMPOLINE): Move code to pa_trampoline_init; 8729 adjust for hook parameters. 8730 (TRAMPOLINE_ADJUST_ADDRESS): Move code to pa_trampoline_adjust_address. 8731 8732 * config/pdp11/pdp11.c (pdp11_trampoline_init): New. 8733 (TARGET_TRAMPOLINE_INIT): New. 8734 * config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Remove. 8735 (INITIALIZE_TRAMPOLINE): Move code to pdp11_trampoline_init. 8736 8737 * config/picochip/picochip.h (INITIALIZE_TRAMPOLINE): Remove. 8738 8739 * config/rs6000/rs6000-protos.h (rs6000_initialize_trampoline): Remove. 8740 * config/rs6000/rs6000.c (TARGET_TRAMPOLINE_INIT): New. 8741 (rs6000_trampoline_init): Rename from rs6000_initialize_trampoline; 8742 make static; adjust parameters for the hook. 8743 * config/rs6000/rs6000.h (INITIALIZE_TRAMPOLINE): Remove. 8744 8745 * config/s390/s390.c (s390_asm_trampoline_template): Rename from 8746 s390_trampoline_template; make static. 8747 (s390_trampoline_init): Rename from s390_initialize_trampoline; 8748 make static; adjust for target hook. 8749 (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New. 8750 * config/s390/s390-protos.h: Remove trampoline decls. 8751 * config/s390/s390.h (INITIALIZE_TRAMPOLINE): Remove. 8752 (TRAMPOLINE_TEMPLATE): Remove. 8753 (TRAMPOLINE_ALIGNMENT): New. 8754 8755 * config/score/score-protos.h (score_initialize_trampoline): Remove. 8756 * config/score/score.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8757 (TARGET_TRAMPOLINE_INIT): New. 8758 (score_asm_trampoline_template): New. 8759 (score_trampoline_init): Rename from score_initialize_trampoline; 8760 make static; adjust for hook parameters. 8761 * config/score/score.h (TRAMPOLINE_TEMPLATE): Move code to 8762 score[37]_asm_trampoline_template. 8763 (INITIALIZE_TRAMPOLINE): Remove. 8764 * config/score/score3.c (score3_asm_trampoline_template): New. 8765 (score3_trampoline_init): Rename from score3_initialize_trampoline; 8766 adjust for target hook. 8767 * config/score/score7.c (score7_asm_trampoline_template): New. 8768 (score7_trampoline_init): Rename from score7_initialize_trampoline; 8769 adjust for target hook. 8770 * config/score/score3.h, config/score/score7.h: Update. 8771 8772 * config/sh/sh-protos.h (sh_initialize_trampoline): Remove. 8773 * config/sh/sh.c (TARGET_TRAMPOLINE_INIT): New. 8774 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New. 8775 (sh_trampoline_init): Rename from sh_initialize_trampoline; 8776 make static; adjust for target hook parameters. 8777 (sh_trampoline_adjust_address): New. 8778 * config/sh/sh.h (INITIALIZE_TRAMPOLINE): New. 8779 (TRAMPOLINE_ADJUST_ADDRESS): Move code to sh_trampoline_adjust_address. 8780 8781 * config/sparc/sparc.c (TARGET_TRAMPOLINE_INIT): New. 8782 (sparc32_initialize_trampoline): Rename from 8783 sparc_initialize_trampoline; make static; replace tramp parameter 8784 with m_tramp and update memory accesses. 8785 (sparc64_initialize_trampoline): Similarly. 8786 (sparc_trampoline_init): New. 8787 * config/sparc/sparc-protos.h: Remove trampoline decls. 8788 * config/sparc/sparc.h (INITIALIZE_TRAMPOLINE): Remove. 8789 * config/sparc/sparc.md (nonlocal_goto): Don't use static_chain_rtx. 8790 8791 * config/spu/spu.c (TARGET_TRAMPOLINE_INIT): New. 8792 (array_to_constant): Make ARR parameter const. 8793 (spu_trampoline_init): Rename from spu_initialize_trampoline; 8794 make static; update for hook parameters. 8795 * config/spu/spu-protos.h: Update decls. 8796 * config/spu/spu.h (INITIALIZE_TRAMPOLINE): Remove. 8797 8798 * config/stormy16/stormy16.c (xstormy16_trampoline_init): Rename 8799 from xstormy16_initialize_trampoline; make static; update for 8800 hook parameters. 8801 (TARGET_TRAMPOLINE_INIT): New. 8802 * config/stormy16/stormy16.h (INITIALIZE_TRAMPOLINE): Remove. 8803 8804 * config/v850/v850.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8805 (TARGET_TRAMPOLINE_INIT): New. 8806 (v850_can_eliminate): Make static. 8807 (v850_asm_trampoline_template, v850_trampoline_init): New. 8808 * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Move code to 8809 v850_asm_trampoline_template. 8810 (INITIALIZE_TRAMPOLINE): Move code to v850_trampoline_init 8811 and adjust for target hook parameters. 8812 8813 * config/vax/vax.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8814 (TARGET_TRAMPOLINE_INIT): New. 8815 (vax_asm_trampoline_template, vax_trampoline_init): New. 8816 * config/vax/vax.h (TRAMPOLINE_TEMPLATE): Move code to 8817 vax_asm_trampoline_template. 8818 (INITIALIZE_TRAMPOLINE): Move code to vax_trampoline_init. 8819 8820 * config/xtensa/xtensa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8821 (TARGET_TRAMPOLINE_INIT): New. 8822 (xtensa_asm_trampoline_template): Rename from 8823 xtensa_trampoline_template; make static. 8824 (xtensa_trampoline_init): Rename from xtensa_initialize_trampoline; 8825 make static; update for hook parameters. 8826 * config/xtensa/xtensa-protos.h: Remove trampoline decls. 8827 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Remove. 8828 (INITIALIZE_TRAMPOLINE): Remove. 8829 8830 * config/i386/i386.c (ix86_function_regparm): Do not issue an 8831 error for nested functions with regparm=3. 8832 (ix86_compute_frame_layout): Adjust frame pointer offset for 8833 ix86_static_chain_on_stack. 8834 (ix86_expand_prologue): Handle ix86_static_chain_on_stack. 8835 (ix86_emit_restore_reg_using_pop): Increment ix86_cfa_state->offset, 8836 don't reset to UNITS_PER_WORD. 8837 (ix86_emit_leave): Adjust ix86_cfa_state. 8838 (ix86_expand_epilogue): Handle ix86_static_chain_on_stack. 8839 (ix86_static_chain): New. 8840 (ix86_trampoline_init): Rename from x86_initialize_trampoline; 8841 make static; update for target hook parameters; use ix86_static_chain. 8842 (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New. 8843 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Remove. 8844 (INITIALIZE_TRAMPOLINE): Remove. 8845 (TRAMPOLINE_SIZE): Use 24 for 64-bit. 8846 (struct machine_function): Use BOOL_BITFIELD; rearrange bitfields 8847 to the end. Add static_chain_on_stack. 8848 (ix86_static_chain_on_stack): New. 8849 8850 * config/m68k/m68k.c (TARGET_TRAMPOLINE_INIT): New. 8851 (m68k_output_mi_thunk): Don't use static_chain_rtx. 8852 (m68k_trampoline_init): New. 8853 * config/m68k/m68k.h (INITIALIZE_TRAMPOLINE): Move code to 8854 m68k_trampoline_init and adjust for hook parameters. 8855 * config/m68k/netbsd-elf.h (TRAMPOLINE_TEMPLATE): Remove. 8856 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Remove. 8857 88582009-09-22 Jakub Jelinek <jakub@redhat.com> 8859 8860 * config/rs6000/rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes 8861 for __builtin_altivec_vcmpgt{sb,uh,sh,uw}. 8862 8863 * reload1.c (reload): Call wrap_constant when substituting 8864 reg for equiv inside of DEBUG_INSNs. 8865 8866 PR bootstrap/41405 8867 * dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die, 8868 add_call_src_coords_attributes, add_high_low_attributes, 8869 gen_compile_unit_die, gen_type_die_with_usage force_decl_die, 8870 gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish, 8871 dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions 8872 when -gdwarf-2 -gstrict-dwarf. 8873 (loc_list_from_tree): Likewise. Avoid using DWARF4 additions when 8874 -gdwarf-[23] -gstrict-dwarf. 8875 (address_of_int_loc_descriptor, loc_descriptor, 8876 loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using 8877 DWARF4 additions when -gdwarf-[23] -gstrict-dwarf. 8878 * common.opt (gno-strict-dwarf, gstrict-dwarf): New options. 8879 88802009-09-22 Richard Guenther <rguenther@suse.de> 8881 8882 PR tree-optimization/41428 8883 * tree-ssa-ccp.c (ccp_fold_stmt): New function. 8884 (ccp_finalize): Pass it to substitute_and_fold. 8885 88862009-09-22 Richard Guenther <rguenther@suse.de> 8887 8888 * tree-ssa-propagate.h (ssa_prop_fold_stmt_fn): Declare. 8889 (substitute_and_fold): Adjust prototype. 8890 * tree-vrp.c (vrp_evaluate_conditional): Make static. 8891 (simplify_stmt_using_ranges): Likewise. 8892 (fold_predicate_in): Move here from tree-ssa-propagate.c. 8893 (vrp_fold_stmt): New function. 8894 (vrp_finalize): Pass it to substitute_and_fold. 8895 * tree-flow.h (vrp_evaluate_conditional): Remove. 8896 (simplify_stmt_using_ranges): Likewise. 8897 * tree-ssa-ccp.c (ccp_finalize): Adjust call to substitute_and_fold. 8898 * tree-ssa-copy.c (fini_copy_prop): Likewise. 8899 * tree-ssa-propagate.c (struct prop_stats_d): Rename num_pred_folded 8900 member. 8901 (fold_predicate_in): Move to tree-vrp.c. 8902 (substitute_and_fold): Use the callback instead of calling into 8903 tree-vrp.c functions directly. 8904 89052009-09-22 Jakub Jelinek <jakub@redhat.com> 8906 8907 * dwarf2out.c (address_of_int_loc_descriptor): Avoid signed/unsigned 8908 comparison warning on rs6000. 8909 8910 PR middle-end/41429 8911 * tree-cfg.c (remove_useless_stmts_tc): Call gsi_next (gsi) even for 8912 GIMPLE_EH_MUST_NOT_THROW cleanup. 8913 (verify_types_in_gimple_stmt): Handle GIMPLE_EH_MUST_NOT_THROW. 8914 89152009-09-22 Jack Howarth <howarth@bromo.med.uc.edu> 8916 8917 PR middle-end/41260 8918 * gcc/config.gcc: Use darwin9.h and darwin10.h on darwin10 and later. 8919 * gcc/config/darwin10.h: Add file to pass -no_compact_unwind on 8920 LIB_SPEC for darwin10 and later since it always uses the unwinder in 8921 libSystem which is derived from the gcc 4.2.1 unwinder. 8922 89232009-09-22 Dave Korn <dave.korn.cygwin@gmail.com> 8924 8925 PR middle-end/41357 8926 * varasm.c (default_encode_section_info): Copy TLS model into 8927 sym_ref flags regardless of backend support for TLS, for all 8928 model types except TLS_MODEL_EMULATED. 8929 89302009-09-22 Dave Korn <dave.korn.cygwin@gmail.com> 8931 8932 PR bootstrap/41404 8933 * dwarf2out.c (mem_loc_descriptor): Punt on CONST_STRING until 8934 we can handle it correctly. 8935 89362009-09-21 Gerald Pfeifer <gerald@pfeifer.com> 8937 8938 * doc/install.texi (os2): Remove section. 8939 89402009-09-21 Gerald Pfeifer <gerald@pfeifer.com> 8941 8942 * doc/standards.texi (Objective-C): Adjust two URLs. 8943 89442009-09-21 Giuseppe Scrivano <gscrivano@gnu.org> 8945 8946 * tree-tailcall.c (process_assignment): Don't check if a 8947 multiplication or an addition are already present. 8948 (find_tail_calls): Combine multiple additions and multiplications. 8949 (adjust_accumulator_values): Emit accumulators. 8950 89512009-09-21 Kai Tietz <kai.tietz@onevision.com> 8952 8953 * config/i386/i386.c (ix86_expand_epilogue): Adjust offset for 8954 xmm register restore. 8955 89562009-09-21 Jan Hubicka <jh@suse.cz> 8957 8958 * dwarf2out.c (decl_loc_table_eq): Allow decl_loc_table to be NULL. 8959 (dwarf2out_abstract_function): NULLify decl_loc_table at begginig and 8960 restore at the end. 8961 89622009-09-21 Eric Botcazou <ebotcazou@adacore.com> 8963 8964 * stor-layout.c (layout_type): Remove obsolete code. 8965 89662009-09-20 H.J. Lu <hongjiu.lu@intel.com> 8967 8968 PR middle-end/41395 8969 * opts.c (decode_options): Don't turn on flag_ipa_sra for opt2. 8970 89712009-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8972 8973 PR middle-end/30789 8974 * builtins.c (do_mpc_arg2): Accept DO_NONFINITE parameter. 8975 (do_mpc_ckconv): Accept FORCE_CONVERT parameter. 8976 (fold_builtin_2, do_mpc_arg1): Update accordingly. 8977 * fold-const.c (const_binop): Likewise. 8978 * real.h (do_mpc_arg2): Update prototype. 8979 89802009-09-20 Jan Hubicka <jh@suse.cz> 8981 8982 * dwarf2out.c (add_const_value_attribute): Return true if successful. 8983 (add_location_or_const_value_attribute): Rewrite using 8984 loc_list_from_tree. 8985 (tree_add_const_value_attribute): Return true if successful. 8986 (tree_add_const_value_attribute_for_decl): Likewise. 8987 8988 * dwarf2out.c (address_of_int_loc_descriptor): Break out from ... 8989 (loc_descriptor): ... here; 8990 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function. 8991 (cst_pool_loc_descr): Break out from ...; do not reffer constant 8992 pool items that was not marked for output. 8993 (loc_list_from_tree): ... here; handle special cases of ADDR_EXPR; 8994 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function. 8995 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function. 8996 handle ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, REALPART_EXPR, 8997 IMAGPART_EXPR; handle address of INTEGER_CST; improve handling of 8998 CONSTRUCTOR; handle REAL_CST, STRING_CST, COMPLEX_CST; use 8999 DW_OP_stack_value to get address of items that are not available 9000 as addresses. 9001 (dw_loc_list): Handle single element lists correctly. 9002 90032009-09-20 Kai Tietz <kai.tietz@onevision.com> 9004 Pascal Obry <obry@adacore.com> 9005 9006 * unwind-dw2-fde.c (classify_object_over_fdes): 9007 Cast the constant 1 to _Unwind_Ptr. 9008 (add_fdes): Likewise. 9009 (linear_search_fdes): Likewise. 9010 90112009-09-20 Eric Botcazou <ebotcazou@adacore.com> 9012 9013 * stor-layout.c (set_sizetype): Avoid useless type copy. 9014 90152009-09-20 Richard Sandiford <rdsandiford@googlemail.com> 9016 9017 * configure.ac (gcc_cv_ld_mips_personality_relaxation): New 9018 feature check. 9019 (HAVE_LD_PERSONALITY_RELAXATION): New macro definition. 9020 * configure, config.in: Regenerate. 9021 * dwarf2asm.c (eh_data_format_name): Handle DW_EH_PE_indirect | 9022 DW_EH_PE_absptr. 9023 * config/mips/mips.h (TARGET_WRITABLE_EH_FRAME): New macro. 9024 (ASM_PREFERRED_EH_DATA_FORMAT): Define. Use MIPS_EH_INDIRECT 9025 for global data if the output could be used in a shared library. 9026 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm 9027 to 0 if TARGET_WRITABLE_EH_FRAME. 9028 90292009-09-20 Paolo Bonzini <bonzini@gnu.org> 9030 9031 PR rtl-optimization/39886 9032 * combine.c (update_cfg_for_uncondjump): Set EDGE_FALLTHRU 9033 just when insn is equal to BB_END (bb). 9034 90352009-09-19 Adam Nemet <anemet@caviumnetworks.com> 9036 9037 * config/mips/mips.opt (mrelax-pic-calls): New option. 9038 * config/mips/mips.c (mips_strip_unspec_address): Move it up in 9039 the file. 9040 (mips_unspec_call): Change "unspec_call" expander into this. 9041 (mips_strip_unspec_call): New function. 9042 (mips_got_load): Call mips_unspec_call instead of 9043 gen_unspec_call<mode>. 9044 (mips16_build_call_stub): Fix comment for fp_code. Adjust call to 9045 MIPS_CALL. 9046 (mips_cfg_in_reorg): New function. 9047 (mips16_lay_out_constants): Use it to decide whether to call 9048 CFG-aware insn splitting. 9049 (r10k_insert_cache_barriers): Move CFG set-up code from here to 9050 mips_reorg. Move DF set-up code from here ... 9051 (mips_df_reorg): ... to here. Call r10k_insert_cache_barriers 9052 from here. 9053 (mips_reorg): Call mips_df_reorg instead of 9054 r10k_insert_cache_barriers. Move CFG set-up code here from 9055 r10k_insert_cache_barriers. 9056 (mips_call_expr_from_insn): New function. 9057 (mips_pic_call_symbol_from_set): Likewise. 9058 (mips_find_pic_call_symbol): Likewise. 9059 (mips_annotate_pic_call_expr): Likewise. 9060 (mips_get_pic_call_symbol): Likewise. 9061 (mips_annotate_pic_calls): Likewise. 9062 (mips_override_options): Disable -mrelax-pic-calls unless PIC 9063 calls are used. 9064 (mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16. 9065 * config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it. 9066 * config/mips/mips.h (MIPS_CALL): Use it to print the .reloc 9067 directive. 9068 * config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec. 9069 (unspec_call<mode>): Remove it. 9070 (sibcall_internal, sibcall_value_internal, 9071 sibcall_value_multiple_internal, call_internal, call_split, 9072 call_value_internal, call_value_split, 9073 call_value_multiple_internal, call_value_multiple_split): Pass 9074 SIZE_OPNO to MIPS_CALL. 9075 (call_internal_direct, call_direct_split, 9076 call_value_internal_direct, call_value_direct_split): Pass -1 as 9077 SIZE_OPNO to MIPS_CALL. 9078 * configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR. 9079 * configure: Regenerate. 9080 * doc/invoke.texi (Option Summary): Add -mrelax-pic-calls 9081 and -mno-relax-pic-calls. 9082 (MIPS Options): Document -mrelax-pic-calls and -mno-relax-pic-calls. 9083 90842009-09-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 9085 9086 PR bootstrap/35619 9087 * Makefile.in (stmp-fixinc): Ensure `include-fixed' is created 9088 in the directory this rule is called from, rather than the 9089 toplevel 'gcc' directory, to fix in-tree build. 9090 90912009-09-19 Chris Demetriou <cgd@google.com> 9092 9093 PR preprocessor/28435: 9094 * c-opts.c (c_common_handle_option): For -MD and -MMD, indicate 9095 to cpplib that the preprocessor output is needed. 9096 90972009-09-19 Jakub Jelinek <jakub@redhat.com> 9098 9099 * config/rs6000/rs6000.md (*save_gpregs_<mode>, *save_fpregs_<mode>, 9100 *restore_gpregs_<mode>, *return_and_restore_gpregs_<mode>, 9101 *return_and_restore_fpregs_<mode>, 9102 *return_and_restore_fpregs_aix_<mode>): Remove 'z' operand modifier. 9103 9104 PR bootstrap/41397 9105 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Recurse 9106 instead of assuming it has always a REG inside of it. 9107 91082009-09-18 Gerald Pfeifer <gerald@pfeifer.com> 9109 9110 * config/freebsd.h: Update comment on types. 9111 (WINT_TYPE): Define. 9112 91132009-09-18 Jason Merrill <jason@redhat.com> 9114 9115 * c.opt: Add -fno-deduce-init-list. 9116 91172009-09-18 Neil Vachharajani <nvachhar@google.com> 9118 9119 * value-prof.c (interesting_stringop_to_profile_p): Added output 9120 argument to indicate which parameter is the size parameter. 9121 * value-prof.c (gimple_stringop_fixed_value): Use 9122 INTERESTING_STRINGOP_TO_PROFILE_P to find size argument. 9123 * value-prof.c (gimple_stringops_transform): Update call sites to 9124 INTERESTING_STRINGOP_TO_PROFILE_P to reflect parameter change. 9125 91262009-09-18 Uros Bizjak <ubizjak@gmail.com> 9127 9128 PR target/38288 9129 From David Binderman <dcb314@hotmail.com>: 9130 * gcc/config/i386/i386.c (ix86_function_regparm): Remove useless 9131 local variable f. Remove stale comments. 9132 (ix86_compute_frame_layout): Remove useless local variable total_size. 9133 Remove #if 0'd code. 9134 (legitimate_address_p): Remove useless local variables 9135 reason_rtx and reason. 9136 (ix86_split_copysign_const): Remove useless local variable op1. 9137 (scale_counter): Remove useless local variable piece_size_mask. 9138 91392009-09-18 Jakub Jelinek <jakub@redhat.com> 9140 9141 * stmt.c (expand_asm_operands): Set REG_ATTRS on the temporary from 9142 output decl. 9143 91442009-09-17 Michael Haubenwallner <michael.haubenwallner@salomon.at> 9145 9146 PR target/40913 9147 * config/pa/t-hpux-shlib: Set soname in libgcc_s.sl. 9148 91492009-09-17 Jakub Jelinek <jakub@redhat.com> 9150 9151 * c-decl.c (finish_struct): Adjust DECL_SOURCE_LOCATION of 9152 TYPE_STUB_DECL. 9153 91542009-09-17 Alexandre Oliva <aoliva@redhat.com> 9155 9156 * dwarf2out.c (loc_descriptor): Emit DW_OP_stack_value and 9157 DW_OP_implicit_value even without dwarf_version 4. 9158 91592009-09-17 Jan Hubicka <jh@suse.cz> 9160 9161 * dwarf2out.c: Include tree-pass.h and gimple.h. 9162 (loc_list_plus_const): New function. 9163 (loc_descriptor_from_tree_1): Rename to ... 9164 (loc_descriptor_from_tree): ... remove original. 9165 (loc_list_from_tree): New function. 9166 (add_AT_location_description): Accept location list. 9167 (tls_mem_loc_descriptor): Update call of loc_descriptor_from_tree. 9168 (concatn_mem_loc_descriptor): Remove. 9169 (mem_loc_descriptor): Handle CONCAT/CONCATN and VAR_LOCATION by 9170 returning NULL. 9171 (secname_for_decl): Move up. 9172 (hidden_reference_p): New function; break out from ... 9173 (loc_by_refernece): ... here; move up. 9174 (dw_loc_list): New function. 9175 (single_element_loc_list): New function. 9176 (single_element_loc_list_p): New function. 9177 (add_loc_descr_to_each): New function. 9178 (add_loc_list): New function. 9179 (loc_descr_from_tree): Make wraper of loc_list_from_tree. 9180 (loc_list_from_tree): Reroganized from loc_descr_from_tree; 9181 add diagnostics why expansion failed. 9182 (add_location_or_const_value_attribute): Support location lists. 9183 (add_bound_info): Likewise. 9184 (descr_info_loc): Update call of loc_descriptor_from_tree. 9185 (gen_variable_die): Work on location lists. 9186 * final.c (pass_final): Add dump file. 9187 * Makefile.in (dwarf2out.o): Add new dependencies. 9188 91892009-09-17 Janis Johnson <janis187@us.ibm.com> 9190 9191 PR c/41049 9192 * real.c decimal_from_integer, decimal_integer_string): New. 9193 (real_from_integer): Use them as special case for decimal float. 9194 * config/dfp-bit.c (_si_to_sd, _usi_to_sd): Use default rounding. 9195 (_di_to_sd, _di_to_dd, _di_to_td, _udi_to_sd, _udi_to_dd, _udi_to_td): 9196 Do not append zero after the decimal point in string to convert. 9197 91982009-09-17 Alexander Monakov <amonakov@ispras.ru> 9199 9200 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only 9201 for ARRAY_REFs. Use array_ref_{low,up}_bound to determine bounds. 9202 92032009-09-17 Martin Jambor <mjambor@suse.cz> 9204 9205 * common.opt (fipa-sra): New switch. 9206 * opts.c (decode_options): Turn flag_ipa_sra on for opt2. 9207 * timevar.def (TV_IPA_SRA): New timevar. 9208 * params.def (ipa-sra-ptr-growth-factor): New parameter. 9209 * doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor. 9210 * tree-sra.c: Include cgraph.c. 9211 (enum sra_mode): Added SRA_MODE_EARLY_IPA. 9212 (struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr 9213 and grp_not_necessarilly_dereferenced. 9214 (func_param_count): New variable. 9215 (encountered_apply_args): New variable. 9216 (bb_dereferences): New variable. 9217 (final_bbs): New variable. 9218 (no_accesses_representant): New variable. 9219 (no_accesses_p): New function. 9220 (dump_access): Dump the new fields. 9221 (sra_initialize): Set encountered_apply_args to false. 9222 (get_ssa_base_param): New function. 9223 (mark_parm_dereference): New function. 9224 (create_access): Caring for INIDRECT_REFs and different handling of 9225 varialble length accesses in early IPA SRA. Store the stmt - a new 9226 parameter - to the new access. 9227 (build_access_from_expr_1): New parameter stmt, passed to 9228 create_access. Handle INDIRECT_REFs. 9229 (build_access_from_expr): Pass the current statement to 9230 build_access_from_expr_1. 9231 (disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural 9232 passes. 9233 (build_accesses_from_assign): Pass the current statement to 9234 build_access_from_expr_1. Do not create assign links in IPA-SRA. 9235 (scan_function): Call handle_ssa_defs on phi nodes. Set bits in 9236 final_bbs when necessary. Check for calls to __builtin_apply_args. 9237 Fixup EH info if anythng was changed. 9238 (is_unused_scalar_param): New function. 9239 (ptr_parm_has_direct_uses): New function. 9240 (find_param_candidates): New function. 9241 (mark_maybe_modified): New function. 9242 (analyze_modified_params): New function. 9243 (propagate_dereference_distances): New function. 9244 (dump_dereferences_table): New function. 9245 (analyze_caller_dereference_legality): New function. 9246 (unmodified_by_ref_scalar_representative): New function. 9247 (splice_param_accesses): New function. 9248 (decide_one_param_reduction): New function. 9249 (enum ipa_splicing_result): New type. 9250 (splice_all_param_accesses): New function. 9251 (get_param_index): New function. 9252 (turn_representatives_into_adjustments): New function. 9253 (analyze_all_param_acesses): New function. 9254 (get_replaced_param_substitute): New function. 9255 (get_adjustment_for_base): New function. 9256 (replace_removed_params_ssa_names): New function. 9257 (sra_ipa_reset_debug_stmts): New function. 9258 (sra_ipa_modify_expr): New function. 9259 (sra_ipa_modify_assign): New function. 9260 (convert_callers): New function. 9261 (modify_function): New function. 9262 (ipa_sra_preliminary_function_checks): New function. 9263 (ipa_early_sra): New function. 9264 (ipa_early_sra_gate): New function. 9265 (pass_early_ipa_sra): New variable. 9266 * Makefile.in (tree-sra.o): Add cgraph.h to dependencies. 9267 92682009-09-17 Michael Matz <matz@suse.de> 9269 9270 PR middle-end/41347 9271 * tree.c (build_type_attribute_qual_variant): Export. 9272 * tree.h (build_type_attribute_qual_variant): Declare. 9273 * tree-inline.c (remap_type_1): Use it to build variants with 9274 the original qualifiers and attributes. 9275 92762009-09-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 9277 9278 * cfglayout.c (fixup_reorder_chain): Accept conditional jumps 9279 without a fallthrough edge. 9280 92812009-09-16 DJ Delorie <dj@redhat.com> 9282 9283 * config/m32c/m32c.c (m32c_emit_epilogue): Check for R8C or M16C 9284 chip and ignore the "fast_interrupt" attribute if so. 9285 92862009-09-16 Richard Henderson <rth@redhat.com> 9287 9288 PR middle-end/41360 9289 * cfgbuild.c (find_bb_boundaries): Really re-instate 2009-09-02 9290 barrier fix. 9291 92922009-09-16 Richard Henderson <rth@redhat.com> 9293 9294 PR target/41246 9295 * tree-cfg.c (verify_gimple_call): Validate that gimple_call_chain 9296 is set only if DECL_NO_STATIC_CHAIN is unset. 9297 * tree-nested.c (iter_nestinfo_start, iter_nestinfo_next): New. 9298 (FOR_EACH_NEST_INFO): New. 9299 (walk_all_functions): Use it. 9300 (finalize_nesting_tree): Likewise. 9301 (unnest_nesting_tree): Likewise. 9302 (free_nesting_tree): Use iter_nestinfo_start, iter_nestinfo_next. 9303 (get_chain_decl, get_chain_field): Reset DECL_NO_STATIC_CHAIN. 9304 (convert_gimple_call): Early out if gimple_call_chain already set. 9305 (convert_all_function_calls): Iterate until no new functions 9306 require a static chain. 9307 (finalize_nesting_tree_1): Assert DECL_NO_STATIC_CHAIN is unset 9308 when building a trampoline. Use dump_function_to_file instead 9309 of dump_function. 9310 (lower_nested_functions): Open dump_file. Validate that decls 9311 that have DECL_NO_STATIC_CHAIN from the front end don't have that 9312 bit reset by this pass. 9313 93142009-09-16 Michael Matz <matz@suse.de> 9315 9316 PR fortran/41212 9317 * tree.h (struct tree_decl_common): Add decl_restricted_flag, 9318 shorten decl_common_unused. 9319 (DECL_RESTRICTED_P): New accessor. 9320 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use it 9321 to disambiguate marked decls and restrict pointers. 9322 93232009-09-16 Richard Henderson <rth@redhat.com> 9324 9325 PR middle-end/41360 9326 * cfgbuild.c (find_bb_boundaries): Re-instate 2009-09-02 barrier fix. 9327 93282009-09-16 Jakub Jelinek <jakub@redhat.com> 9329 9330 * integrate.c (set_block_abstract_flags): Call 9331 set_decl_abstract_flags also on BLOCK_NONLOCALIZED_VARs. 9332 93332009-09-16 Richard Guenther <rguenther@suse.de> 9334 9335 PR middle-end/34011 9336 * tree-flow-inline.h (may_be_aliased): Compute readonly variables 9337 as non-aliased. 9338 93392009-09-16 DJ Delorie <dj@redhat.com> 9340 Kaz Kojima <kkojima@gcc.gnu.org> 9341 9342 * config/sh/sh.c (output_stack_adjust): Add new argument frame_p. 9343 (sh_expand_prologue): Update calls to output_stack_adjust. 9344 (sh_expand_epilogue): Likewise. 9345 93462009-09-15 Adam Nemet <anemet@caviumnetworks.com> 9347 9348 PR bootstrap/41349 9349 * reorg.c (redundant_insn): Don't count notes or DEBUG_INSNs when 9350 trying to limit the extent of searches in the insn stream. 9351 93522009-09-15 Nathan Froyd <froydnj@codesourcery.com> 9353 Jakub Jelinek <jakub@redhat.com> 9354 9355 PR target/41175 9356 PR target/40677 9357 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence 9358 problem. 9359 (SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR, 9360 SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): New strategy bits. 9361 (rs6000_savres_strategy): Always save FP registers inline if the 9362 target doesn't support hardware double-precision. Set the above 9363 bits in return value when needed. 9364 (rs6000_savres_routine_sym): Fix computation for cache selector. 9365 Mark the generated symbol as a function. Rename exitp argument to 9366 lr. Move code for determining the name of the symbol... 9367 (rs6000_savres_routine_name): ...here. New function. Add cases for 9368 getting the names right on AIX and 64-bit Linux. 9369 (savres_routine_name): New variable. 9370 (rs6000_make_savres_rtx): Rename exitp argument to lr. Don't assert 9371 lr isn't set when savep. Use r12 resp. r1 instead of r11 depending 9372 on what the target routine uses as a base register. If savep && lr 9373 describe saving of r0 into memory slot. 9374 (rs6000_emit_prologue): Correct use of call_used_regs. Fix out of 9375 line calls for AIX ABI. 9376 (rs6000_output_function_prologue): Use rs6000_savres_routine_name to 9377 determine FP save/restore functions. 9378 (rs6000_emit_stack_reset): Handle savres if sp_offset != 0 and 9379 frame_reg_rtx != sp_reg_rtx. Use gen_add3_insn instead of 9380 gen_addsi3. 9381 (rs6000_emit_epilogue): Adjust computation of restore_lr. 9382 Duplicate restoration of LR and execute the appropriate one 9383 depending on whether GPRs are being restored inline. Set r11 from 9384 offsetted frame_reg_rtx instead of sp_reg_rtx; if frame_reg_rtx is 9385 r11, adjust sp_offset. Use gen_add3_insn instead of gen_addsi3. 9386 Fix out of line calls for AIX ABI. 9387 * config/rs6000/rs6000.md (*return_and_restore_fpregs_aix_<mode>): 9388 New insn. 9389 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit match for 9390 register 11. 9391 (*restore_gpregs_spe): Likewise. 9392 (*return_and_restore_gpregs_spe): Likewise. 9393 * config/rs6000/linux64.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): 9394 Define to empty string unconditionally. 9395 * config/rs6000/sysv4.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): 9396 Define to empty string unconditionally. 9397 (GP_SAVE_INLINE, FP_SAVE_INLINE): Handle TARGET_64BIT the same as 9398 !TARGET_64BIT. 9399 94002009-09-15 Jan Hubicka <jh@suse.cz> 9401 9402 * doc/invoke.texi (inline-insns-auto): Drop from 60 to 50. 9403 * params.def (inline-insns-auto): Likewise. 9404 94052009-09-15 Martin Jambor <mjambor@suse.cz> 9406 9407 * ipa-inline.c (estimate_function_body_sizes): Dump info about 9408 individual statements only at TDF_DETAILS dump level. Format 9409 source for 80 characters per line. 9410 94112009-09-15 Christian Bruel <christian.bruel@st.com> 9412 9413 * regrename.c (do_replace): Update REG_DEAD notes. 9414 94152009-09-15 Revital Eres <eres@il.ibm.com> 9416 9417 * doc/tm.texi (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Document. 9418 * targhooks.c (default_builtin_support_vector_misalignment): 9419 New builtin function. 9420 * targhooks.h (default_builtin_support_vector_misalignment): 9421 Declare. 9422 * target.h (builtin_support_vector_misalignment): 9423 New field in struct gcc_target. 9424 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Call 9425 new builtin function. 9426 * target-def.h (TARGET_SUPPORT_VECTOR_MISALIGNMENT): 9427 Define. 9428 * config/rs6000/rs6000.c 9429 (rs6000_builtin_support_vector_misalignment): New function. 9430 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Define. 9431 94322009-09-15 Jie Zhang <jie.zhang@analog.com> 9433 9434 * config/bfin/bfin.c (length_for_loop): Use NONDEBUG_INSN_P 9435 instead of INSN_P. 9436 (bfin_optimize_loop): Likewise. 9437 (bfin_gen_bundles): Likewise. 9438 (workaround_speculation): Likewise. 9439 (find_load): Return NULL_RTX for debug_insn. 9440 94412009-09-15 Uros Bizjak <ubizjak@gmail.com> 9442 9443 * config/alpha/alpha.md (smaxsf3): Disable for IEEE mode. 9444 (sminsf3): Ditto. 9445 94462009-09-14 DJ Delorie <dj@redhat.com> 9447 9448 * config/mep/mep.h (JUMP_TABLES_IN_TEXT_SECTION): Define. 9449 * config/mep/mep.c (mep_emit_cbranch): Don't use BEQZ/BNEI in 9450 VLIW mode. 9451 94522009-09-14 Richard Henderson <rth@redhat.com> 9453 Jakub Jelinek <jakub@redhat.com> 9454 9455 * builtins.c (expand_builtin_synchronize): Use gimple_build_asm_vec. 9456 * cfgbuild.c (make_edges): Handle asm goto. 9457 * cfglayout.c (fixup_reorder_chain): Likewise. 9458 * cfgrtl.c (patch_jump_insn): Likewise. 9459 * gimple-pretty-print.c (dump_gimple_asm): Likewise. 9460 * gimple.c (gimple_build_asm_1): Add and use nlabels parameter. 9461 (gimple_build_asm_vec): Add and use labels parameter. 9462 (gimple_build_asm): Remove. 9463 (walk_gimple_asm): Walk labels too. 9464 * gimple.def (GIMPLE_ASM): Update docs. 9465 * gimple.h: Update decls. 9466 (struct gimple_statement_asm): Change nc to use unsigned char; 9467 add nl member. 9468 (gimple_asm_nlabels): New. 9469 (gimple_asm_label_op, gimple_asm_set_label_op): New. 9470 * gimplify.c (gimplify_asm_expr): Copy labels from ASM_EXPR 9471 into gimple_build_asm_vec. 9472 * jump.c (mark_jump_label_asm): New. 9473 (mark_jump_label): Use it. 9474 (redirect_jump_1): Handle asm goto. 9475 (invert_jump_1): Soft fail if X is null. 9476 * recog.c (extract_asm_operands): New. 9477 (asm_noperands): Use it; handle asm labels. 9478 (decode_asm_operands): Use extract_asm_operands. 9479 (asm_operand_ok): Properly handle empty string. 9480 * reg-stack.c (get_asm_operands_in_out): Rename from 9481 get_asm_operand_n_inputs; use extract_asm_operands; return both 9482 inputs and outputs by reference; update all callers. 9483 * rtl.def (ASM_OPERANDS): Add label vector as operand 6. 9484 * rtl.h (ASM_OPERANDS_LABEL_VEC): New. 9485 (ASM_OPERANDS_LABEL_LENGTH, ASM_OPERANDS_LABEL): New. 9486 (ASM_OPERANDS_SOURCE_LOCATION): Renumber. 9487 (extract_asm_operands): Declare. 9488 * stmt.c (expand_asm_operands): Add and use labels parameter. 9489 (check_unique_operand_names): Likewise. 9490 (resolve_asm_operand_names, resolve_operand_name_1): Likewise. 9491 (expand_asm_stmt): Handle asm labels. 9492 * tree-cfg.c (make_gimple_asm_edges): New. 9493 (make_edges): Use it. 9494 (cleanup_dead_labels): Handle asm labels. 9495 (is_ctrl_altering_stmt): Likewise. 9496 (gimple_redirect_edge_and_branch): Likewise. 9497 * tree.def (ASM_EXPR): Add 5th operand. 9498 * tree.h (ASM_LABELS): New. 9499 (resolve_asm_operand_names): Update decl. 9500 9501 * c-parser.c (c_parser_asm_statement): Parse asm goto. 9502 (c_parser_asm_goto_operands): New. 9503 * c-tree.h (build_asm_expr): Update decl. 9504 * c-typeck.c (build_asm_expr): Add and use labels parameter. 9505 * doc/extend.texi: Document asm goto. 9506 95072009-09-14 Richard Henderson <rth@redhat.com> 9508 9509 * except.h: Update declarations. 9510 (struct pointer_map_t): Forward declare. 9511 (ERT_UNKNOWN, ERT_THROW, ERT_CATCH): Remove. 9512 (struct eh_landing_pad_d, eh_landing_pad): New. 9513 (struct eh_catch_d, eh_catch): New. 9514 (struct eh_region_d): Remove next_region_sharing_label, aka, 9515 label, tree_label, landing_pad, post_landing_pad, resume, 9516 may_contain_throw. Rename region_number to index. Remove 9517 u.eh_catch, u.eh_throw. Rename u.eh_try.eh_catch to first_catch. 9518 Add u.must_not_throw, landing_pads, exc_ptr_reg, filter_reg. 9519 (VEC(eh_landing_pad,gc)): New. 9520 (struct eh_status): Remove last_region_number. Add lp_array, 9521 throw_stmt_table, ttype_data, ehspec_data. 9522 (ehr_next, FOR_ALL_EH_REGION_AT): New. 9523 (FOR_ALL_EH_REGION_FN, FOR_ALL_EH_REGION): New. 9524 * except.c (lang_protect_cleanup_actions): Return tree. 9525 (struct ehl_map_entry): Remove. 9526 (init_eh_for_function): Push zero entries for region and lp_array. 9527 (gen_eh_region): Add to region_array immediately. 9528 (gen_eh_region_catch): Operate on eh_catch objects. 9529 (gen_eh_landing_pad): New. 9530 (get_eh_region_may_contain_throw, get_eh_region_tree_label): Remove. 9531 (get_eh_region_no_tree_label, set_eh_region_tree_label): Remove. 9532 (get_eh_region_from_number, get_eh_region_from_number_fn): New. 9533 (get_eh_landing_pad_from_number_fn): New. 9534 (get_eh_landing_pad_from_number): New. 9535 (get_eh_region_from_lp_number_fn): New. 9536 (get_eh_region_from_lp_number): New. 9537 (expand_resx_stmt, note_eh_region_may_contain_throw): Remove. 9538 (get_exception_pointer, get_exception_filter): Remove. 9539 (collect_eh_region_array, can_be_reached_by_runtime): Remove. 9540 (current_function_has_exception_handlers): Simplify. 9541 (bring_to_root, eh_region_replaceable_by_p): Remove. 9542 (replace_region, hash_type_list, hash_eh_region): Remove. 9543 (eh_regions_equal_p, merge_peers, remove_unreachable_regions): Remove. 9544 (label_to_region_map, num_eh_regions): Remove. 9545 (get_next_region_sharing_label, must_not_throw_labels): Remove. 9546 (find_exception_handler_labels): Remove. 9547 (duplicate_eh_regions_0, find_prev_try): Remove. 9548 (struct duplicate_eh_regions_data): New. 9549 (duplicate_eh_regions_1): Rewrite. 9550 (duplicate_eh_regions): Return a pointer map instead of an 9551 integer offset. 9552 (copy_eh_region_1, copy_eh_region, push_reachable_handler): Remove. 9553 (redirect_eh_edge_to_label): Remove. 9554 (eh_region_outermost): Rewrite using eh_region pointers 9555 instead of integers. 9556 (add_ttypes_entry): Update for ttype_data move to eh_status. 9557 (add_ehspec_entry): Rewrite with VEC instead of varray. 9558 (assign_filter_values): Likewise. Export. 9559 (build_post_landing_pads, connect_post_landing_pads): Remove. 9560 (dw2_build_landing_pads): Rewrite to use lp_array. 9561 (struct sjlj_lp_info, sjlj_find_directly_reachable_regions): Remove. 9562 (sjlj_assign_call_site_values): Rewrite to use lp_array. 9563 (sjlj_emit_dispatch_table, sjlj_build_landing_pads): Likewise. 9564 (sjlj_mark_call_sites): Update for landing pad numbers. 9565 (finish_eh_generation): Rewrite. 9566 (gate_handle_eh): Do nothing for no eh tree. 9567 (pass_rtl_eh): Move up near finish_eh_generation. 9568 (remove_eh_landing_pad): New. 9569 (remove_eh_handler): Export. 9570 (remove_eh_region, remove_eh_handler_and_replace): Remove. 9571 (for_each_eh_label): Rewrite to use lp_array. 9572 (make_reg_eh_region_note): New. 9573 (make_reg_eh_region_note_nothrow_nononlocal): New. 9574 (insn_could_throw_p): New. 9575 (copy_reg_eh_region_note_forward): New. 9576 (copy_reg_eh_region_note_backward): New. 9577 (check_handled, add_reachable_handler): Remove. 9578 (reachable_next_level, foreach_reachable_handler): Remove. 9579 (arh_to_landing_pad, arh_to_label, reachable_handlers): Remove. 9580 (get_eh_region_and_lp_from_rtx): New. 9581 (get_eh_region_from_rtx): New. 9582 (can_throw_internal_1, can_throw_external_1): Remove. 9583 (can_throw_internal): Use get_eh_region_from_rtx. 9584 (can_throw_external): Use get_eh_region_and_lp_from_rtx. 9585 (insn_nothrow_p, can_nonlocal_goto): New. 9586 (expand_builtin_eh_common, expand_builtin_eh_pointer): New. 9587 (expand_builtin_eh_filter, expand_builtin_eh_copy_values): New. 9588 (add_action_record): Use VEC not varray. 9589 (collect_one_action_chain): Update for eh_region changes. 9590 (convert_to_eh_region_ranges): Make static. Use VEC not varray. 9591 Use get_eh_region_and_lp_from_rtx. 9592 (gate_convert_to_eh_region_ranges): New. 9593 (pass_convert_to_eh_region_ranges): Use it. 9594 (push_uleb128, push_sleb128): Use VEC not varray. 9595 (output_one_function_exception_table): Likewise. 9596 (dump_eh_tree): Update for eh_region changes. 9597 (verify_eh_tree): Likewise. 9598 (verify_eh_region, default_init_unwind_resume_libfunc): Remove. 9599 * tree-eh.c: Include target.h. 9600 (add_stmt_to_eh_lp_fn): Rename from add_stmt_to_eh_region_fn. 9601 Don't disallow GIMPLE_RESX; adjust argument check. 9602 (add_stmt_to_eh_lp): Rename from add_stmt_to_eh_region. 9603 (record_stmt_eh_region): Update for landing pad numbers; 9604 generate a landing pad if necessary. 9605 (remove_stmt_from_eh_lp): Rename from remove_stmt_from_eh_region. 9606 (remove_stmt_from_eh_lp_fn): Similarly. 9607 (lookup_stmt_eh_lp_fn): Rename from lookup_stmt_eh_region_fn. 9608 Update for lp numbers; don't special case missing throw_stmt_table. 9609 (lookup_expr_eh_lp): Similarly. 9610 (lookup_stmt_eh_lp): Rename from lookup_stmt_eh_region. 9611 (eh_seq, eh_region_may_contain_throw): New. 9612 (struct leh_state): Add ehp_region. 9613 (struct leh_tf_state): Remove eh_label. 9614 (emit_post_landing_pad): New. 9615 (emit_resx, emit_eh_dispatch): New. 9616 (note_eh_region_may_contain_throw): New. 9617 (frob_into_branch_around): Take eh_region not eh label; 9618 emit eh code into eh_seq. 9619 (honor_protect_cleanup_actions): Early exit for no actions. Don't 9620 handle EXC_PTR_EXPR, FILTER_EXPR. Use gimple_build_eh_must_not_throw, 9621 lower_eh_must_not_throw. Emit code to eh_seq. 9622 (lower_try_finally_nofallthru): Emit eh code to eh_seq. 9623 (lower_try_finally_onedest): Likewise. 9624 (lower_try_finally_copy): Likewise. 9625 (lower_try_finally_switch): Likewise. 9626 (lower_try_finally): Initialize ehp_region. 9627 (lower_catch): Update for eh_catch objects. 9628 (lower_eh_filter): Don't handle must_not_throw. 9629 (lower_eh_must_not_throw): New. 9630 (lower_cleanup): Don't set eh_label. 9631 (lower_eh_constructs_2): Resolve eh builtins. 9632 Handle GIMPLE_EH_MUST_NOT_THROW. 9633 (lower_eh_constructs): Initialize eh_region_may_contain_throw. 9634 Add eh_seq to the end of the function body. 9635 (make_eh_dispatch_edges): New. 9636 (make_eh_edge): Remove. 9637 (make_eh_edges): Simplify for landing pads. 9638 (redirect_eh_edge_1): New. 9639 (redirect_eh_edge): Use it. 9640 (redirect_eh_dispatch_edge): New. 9641 (stmt_could_throw_p): Use a switch. Allow RESX. 9642 (stmt_can_throw_external): Use lookup_stmt_eh_lp. 9643 (stmt_can_throw_internal): Likewise. 9644 (maybe_clean_eh_stmt_fn, maybe_clean_eh_stmt): New. 9645 (maybe_clean_or_replace_eh_stmt): Update for landing pads. 9646 (maybe_duplicate_eh_stmt_fn, maybe_duplicate_eh_stmt): New. 9647 (gate_refactor_eh): New. 9648 (pass_refactor_eh): Use it. 9649 (lower_resx, execute_lower_resx, pass_lower_resx): New. 9650 (lower_eh_dispatch, execute_lower_eh_dispatch): New. 9651 (gate_lower_ehcontrol, pass_lower_eh_dispatch): New. 9652 (remove_unreachable_handlers): Rename from 9653 tree_remove_unreachable_handlers; rewrite for landing pads; 9654 call remove_eh_handler directly. 9655 (remove_unreachable_handlers_no_lp): New. 9656 (unsplit_eh, unsplit_all_eh): New. 9657 (tree_empty_eh_handler_p, all_phis_safe_to_merge): Remove. 9658 (cleanup_empty_eh_merge_phis, cleanup_empty_eh_move_lp): New. 9659 (cleanup_empty_eh_unsplit): New. 9660 (cleanup_empty_eh): Rewrite. 9661 (cleanup_all_empty_eh): New. 9662 (execute_cleanup_eh): Rename from cleanup_eh. Remove unreachable 9663 handlers first. Use unsplit_all_eh, cleanup_all_empty_eh. 9664 (gate_cleanup_eh): New. 9665 (pass_cleanup_eh): Use it. 9666 (verify_eh_edges): Move later in file. Expect one EH edge. 9667 (verify_eh_dispatch_edge): New. 9668 9669 * Makefile.in (FUNCTION_H): Use vecprim.h, not varray.h. 9670 (gtype-desc.o): Add TARGET_H. 9671 (tree.o): Use EXCEPT_H, not except.h. 9672 (cfgbuild.o): Add EXPR_H. 9673 (GTFILES): Add vecprim.h. 9674 * builtins.c (expand_builtin): Handle BUILT_IN_EH_POINTER, 9675 BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES. 9676 * builtins.def (BUILT_IN_UNWIND_RESUME, BUILT_IN_EH_POINTER, 9677 BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES): New. 9678 * calls.c (emit_call_1): Use make_reg_eh_region_note. 9679 * cfgbuild.c (control_flow_insn_p): Use can_nonlocal_goto; tidy 9680 calls to can_throw_internal. 9681 (rtl_make_eh_edge): Use get_eh_landing_pad_from_rtx. 9682 (make_edges): Don't handle RESX; use can_nonlocal_goto. 9683 * cfgexpand.c (expand_gimple_stmt_1): Don't handle RESX. 9684 (expand_gimple_stmt): Use make_reg_eh_region_note. 9685 (expand_debug_expr): Don't handle EXC_PTR_EXPR and FILTER_EXPR. 9686 (gimple_expand_cfg): Don't call convert_from_eh_region_ranges, 9687 or find_exception_handler_labels. 9688 * cfgrtl.c (rtl_verify_flow_info_1): Don't handle RESX. Assert 9689 there is exacly one EH edge. Use can_nonlocal_goto and 9690 can_throw_internal. 9691 * cgraphunit.c (update_call_expr): Use maybe_clean_eh_stmt_fn. 9692 (cgraph_materialize_all_clones): Use maybe_clean_or_replace_eh_stmt. 9693 * combine.c (can_combine_p, try_combine): Use insn_nothrow_p. 9694 * cse.c (count_reg_usage, insn_live_p): Use insn_could_throw_p. 9695 * dce.c (deletable_insn_p_1): Don't test may_trap_p. 9696 (deletable_insn_p): Use insn_nothrow_p; reorder nonjump insn test. 9697 * dse.c (scan_insn): Use insn_could_throw_p. 9698 * emit-rtl.c (try_split): Use copy_reg_eh_region_note_backward. 9699 * expr.c (expand_expr_real): Use make_reg_eh_region_note. 9700 (expand_expr_real_1): Don't handle RESX, EXC_PTR, or FILTER_EXPR. 9701 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't handle 9702 EXC_PTR_EXPR or FILTER_EXPR. 9703 (tree_expr_nonzero_warnv_p): Likewise. 9704 * function.h: Include vecprim.h, not varray.h 9705 (struct rtl_eh): Remove filter, exc_ptr, built_landing_pad members; 9706 move ttype_data and ehspec_data members to struct eh_status; change 9707 action_record_data member to a VEC. 9708 * gcse.c (hash_scan_set): Use can_throw_internal. 9709 * gengtype.c (open_base_files): Add target.h to gtype-desc.c. 9710 * gimple-iterator.c (gsi_replace): Use maybe_clean_or_replace_eh_stmt. 9711 * gimple-low.c (lower_stmt): Handle GIMPLE_EH_MUST_NOT_THROW. 9712 (block_may_fallthru): Don't handle RESX_EXPR. 9713 * gimple-pretty-print.c (dump_gimple_label): Dump EH_LANDING_PAD_NR. 9714 (dump_gimple_eh_must_not_throw, dump_gimple_eh_dispatch): New. 9715 (dump_gimple_stmt): Dump landing pad information with TDF_EH; 9716 handle GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH. 9717 * gimple.c (gss_for_code): Handle GIMPLE_EH_MUST_NOT_THROW, 9718 GIMPLE_EH_DISPATCH, GIMPLE_RESX. 9719 (gimple_size): Likewise. 9720 (gimple_build_eh_dispatch, gimple_build_eh_must_not_throw): New. 9721 (gimple_build_resx): Use gimple_build_with_ops. 9722 (DEFTREECODE): Don't handle EXC_PTR_EXPR, FILTER_EXPR. 9723 (is_gimple_val): Likewise. 9724 (is_gimple_stmt): Remove RESX_EXPR. 9725 * gimple.def (GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH): New. 9726 (GIMPLE_RESX): Reorder with other EH constructs. 9727 * gimple.h (struct gimple_statement_eh_mnt): New. 9728 (struct gimple_statement_eh_ctrl): Rename from gimple_statement_resx. 9729 (gimple_eh_filter_must_not_throw): Remove. 9730 (gimple_eh_filter_set_must_not_throw): Remove. 9731 (gimple_eh_must_not_throw_fndecl): New. 9732 (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region): New. 9733 (is_gimple_resx): New. 9734 * gimplify.c (gimplify_expr): Don't handle EXC_PTR_EXPR, RESX_EXPR. 9735 Don't copy EH_FILTER_MUST_NOT_THROW. 9736 * gsstruct.def (GSS_EH_MNT, GSS_EHCONTROL): New. 9737 * ipa-inline.c (estimate_function_body_sizes): Don't try to 9738 handle must_not_throw_labels specially. 9739 * ipa-pure-const.c (check_call): Update debug statement for LP. 9740 * ipa-type-escape.c (check_operand): Don't handle EXC_PTR or FILTER. 9741 * ipa-utils.c (get_base_var): Likewise. 9742 * libfunc.h (LTI_unwind_resume, unwind_resume_libfunc): Remove. 9743 * lower-subreg.c (move_eh_region_note): Remove. 9744 (resolve_simple_move): Use copy_reg_eh_region_note_forward. 9745 * omp-low.c (new_omp_context): Update for eh_lp_nr. 9746 (create_task_copyfn): Likewise. 9747 (maybe_catch_exception): Use gimple_build_eh_filter. 9748 * optabs.c (emit_libcall_block): Update test for no-nonlocal-goto 9749 REG_EH_REGION. Use make_reg_eh_region_note_nothrow_nononlocal. 9750 * passes.c (init_optimization_passes): Add pass_lower_eh_dispatch 9751 and pass_lower_resx. 9752 * print-tree.c (print_node): Dump EH_LANDING_PAD_NR. 9753 * recog.c (peephole2_optimize): Use copy_reg_eh_region_note_backward, 9754 can_throw_internal, can_nonlocal_goto. 9755 * reload1.c (fixup_eh_region_note): Use insn_could_throw_p, 9756 copy_reg_eh_region_note_forward. 9757 (emit_input_reload_insns): Use copy_reg_eh_region_note_forward. 9758 (emit_output_reload_insns): Likewise. 9759 (copy_eh_notes): Remove. 9760 * rtl.def (RESX): Remove. 9761 * rtl.h: Update declarations. 9762 * sese.c (graphite_copy_stmts_from_block): Use maybe_duplicate_eh_stmt. 9763 * tree-cfg.c (make_edges): Handle GIMPLE_EH_DISPATCH. 9764 (update_eh_label): Remove. 9765 (cleanup_dead_labels_eh): New. 9766 (cleanup_deal_labels): Use it instead of update_eh_label. 9767 (gimple_merge_blocks): Update landing pad data structure when 9768 removing a landing pad label. 9769 (remove_useless_stmts_tc): Remove gimple_eh_filter_must_not_throw 9770 test; handle GIMPLE_EH_MUST_NOT_THROW. 9771 (is_ctrl_altering_stmt): Handle GIMPLE_EH_DISPATCH. 9772 (verify_gimple_assign_single): Don't handle EXC_PTR or FILTER_EXPR. 9773 (verify_types_in_gimple_stmt): Handle GIMPLE_EH_DISPATCH. 9774 (verify_stmt): Likewise. Verify landing pads. 9775 (gimple_redirect_edge_and_branch): Handle GIMPLE_EH_DISPATCH. 9776 (gimple_duplicate_bb): Use maybe_duplicate_eh_stmt. 9777 (struct move_stmt_d): Add eh_map. 9778 (move_stmt_eh_region_nr, move_stmt_eh_region_tree_nr): New. 9779 (move_stmt_r): Remap eh region numbers in builtin calls, 9780 resx and eh_dispatch. 9781 (move_block_to_fn): Remove eh_offset parameter. Use 9782 maybe_duplicate_eh_stmt_fn. 9783 (find_outermost_region_in_block): Operate on eh_region pointers 9784 instead of region numbers. 9785 (move_sese_region_to_fn): Expect eh_map instead of eh_offset from 9786 duplicate_eh_regions. 9787 * tree-cfgcleanup.c (tree_forwarder_block_p): Move entry block edge 9788 test earlier. Disallow EH landing pads. 9789 * tree-cfa.c (create_tree_common_ann): Don't set ann->rn. 9790 * tree-flow.h: Update declarations. 9791 (struct tree_ann_common_d): Replace rn with lp_nr. 9792 * tree-inline.c (copy_tree_body_r): Don't handle RESX_EXPR. 9793 (remap_eh_region_nr, remap_eh_region_tree_nr): New. 9794 (remap_gimple_stmt): Remap eh region numbers in builtin calls, 9795 resx and eh_dispatch. 9796 (copy_bb): Use maybe_duplicate_eh_stmt_fn. 9797 (copy_edges_for_bb): Use make_eh_dispatch_edges. 9798 (copy_cfg_body): Expect eh_map instead of eh_region_offset 9799 from duplicate_eh_regions. 9800 (estimate_num_insns): Don't handle EXC_PTR_EXPR or FILTER_EXPR; 9801 update RESX; handle EH_DISPATCH. 9802 (expand_call_inline): Set eh_lp_nr, not eh_region. 9803 (maybe_inline_call_in_expr): Likewise. 9804 * tree-inline.h (struct copy_body_data): Replace eh_region with 9805 eh_lp_nr, eh_region_offset with eh_map. 9806 * tree-optimize.c (execute_fixup_cfg): Use maybe_clean_eh_stmt. 9807 * tree-pass.h (pass_lower_eh_dispatch, pass_lower_resx): New. 9808 * tree-pretty-print.c (dump_generic_node): Don't handle 9809 EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR. 9810 * tree-sra.c (scan_function): Use maybe_clean_eh_stmt. 9811 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Don't handle 9812 EXC_PTR_EXPR, FILTER_EXPR. 9813 * tree-ssa-operands.c (get_expr_operands): Likewise. 9814 * tree-ssa-propagate.c (valid_gimple_rhs_p): Likewise. 9815 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. 9816 (ao_ref_init_from_vn_reference): Likewise. 9817 * tree-ssa-sink.c (statement_sink_location): Likewise. 9818 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. 9819 (mark_virtual_phi_result_for_renaming): Export. Tidy. 9820 * tree-ssa-pre.c (get_or_alloc_expr_for): Don't handle 9821 EXC_PTR_EXPR, FILTER_EXPR. 9822 (is_exception_related): Remove. 9823 (compute_avail): Don't call it. 9824 * tree-ssa-structalias.c: Remove VEC definitions for int and unsigned. 9825 * tree.c (find_decls_types_in_eh_region): Update for eh_region changes. 9826 (find_decls_types_in_node): Use FOR_ALL_EH_REGION_FN. 9827 (build_common_builtin_nodes): Add enable_cxa_end_cleanup parameter. 9828 Build EH builtins. 9829 (build_resx): Remove. 9830 * tree.def (EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR): Remove. 9831 * tree.h: Update declarations. 9832 (EH_FILTER_MUST_NOT_THROW): Remove. 9833 (struct tree_label_decl): Add eh_landing_pad_nr. 9834 (EH_LANDING_PAD_NR): New. 9835 * value-prof.c (gimple_ic): Tidy variable names. Update for 9836 landing pad numbers. 9837 (gimple_stringop_fixed_value): Tidy variable names. Assert 9838 that neither call stmt can throw. 9839 * vecprim.h (uchar): New. 9840 (VEC(uchar,heap), VEC(uchar,gc)): New. 9841 9842 * c-common.c (c_define_builtins): Update call to 9843 build_common_builtin_nodes. 9844 * c-parser.c (c_parse_file): Don't call 9845 default_init_unwind_resume_libfunc. 9846 98472009-09-14 Richard Sandiford <rdsandiford@googlemail.com> 9848 9849 * config/mips/mips-protos.h (mips_cfun_has_cprestore_slot_p): Declare. 9850 (mips_cprestore_address_p): Likewise. 9851 (mips_save_gp_to_cprestore_slot): Likewise. 9852 (mips_restore_gp): Rename to... 9853 (mips_restore_gp_from_cprestore_slot): ...this. 9854 (mips_must_initialize_gp_p): Declare. 9855 (mips_emit_save_slot_move): Likewise. 9856 (mips_output_load_label): Return nothing. 9857 (mips_eh_uses): Declare. 9858 * config/mips/mips.h (TARGET_SPLIT_CALLS): Require epilogue_completed. 9859 (TARGET_CPRESTORE_DIRECTIVE): New macro. 9860 (TARGET_ABSOLUTE_JUMPS): Likewise. 9861 (EH_USES): Likewise. 9862 (FIRST_PSEUDO_REGISTER): Update comment. 9863 (MIPS_ABSOLUTE_JUMP): New macro, extracted from... 9864 (MIPS_CALL): ...here. 9865 (REGISTER_NAMES): Add $cprestore. 9866 * config/mips/mips.c (machine_function): Remove has_gp_insn_p. 9867 Add load_label_length, has_inflexible_gp_insn_p, 9868 has_flexible_gp_insn_p, must_initialize_gp_p and 9869 must_restore_gp_when_clobbered_p. 9870 (mips_expand_call): Don't generate split instructions here. 9871 (mips_split_call): Update the call to mips_restore_gp after 9872 the above name change. 9873 (mips16_cfun_returns_in_fpr_p): Move earlier in file. 9874 (mips_find_gp_ref): New function. 9875 (mips_insn_has_inflexible_gp_ref_p): Likewise. 9876 (mips_cfun_has_inflexible_gp_ref_p): Likewise. 9877 (mips_insn_has_flexible_gp_ref_p): Likewise. 9878 (mips_cfun_has_flexible_gp_ref_p): Likewise. 9879 (mips_function_has_gp_insn): Delete. 9880 (mips_global_pointer): Drop the df_regs_ever_live_p check. 9881 Use the new functions above. Only return INVALID_REGNUM 9882 for TARGET_ABSOLUTE_JUMPS. 9883 (mips_must_initialize_gp_p): New function. 9884 (mips_get_cprestore_base_and_offset): New function, extracted from... 9885 (mips_cprestore_slot): ...here. Take a bool parameter. 9886 (mips_cfun_has_cprestore_slot_p): New function. 9887 (mips_cprestore_address_p): Likewise. 9888 (mips_save_gp_to_cprestore_slot): Likewise. 9889 (mips_restore_gp): Rename to... 9890 (mips_restore_gp_from_cprestore_slot): ...this. Assert 9891 epilogue_completed. Update the call to mips_cprestore_slot. 9892 Test cfun->machine->must_restore_gp_when_clobbered_p. 9893 (mips_direct_save_slot_move_p): New function. 9894 (mips_emit_save_slot_move): Likewise. 9895 (mips_output_cplocal): Test mips_must_initialize_gp_p () instead 9896 of cfun->machine->global_pointer. 9897 (mips_output_function_prologue): Check mips_must_initialize_gp_p (). 9898 (mips_save_reg): Use mips_emit_save_slot_move. 9899 (mips_expand_prologue): Set must_initialize_gp_p. 9900 Use mips_cfun_has_cprestore_slot_p. Use gen_potential_cprestore 9901 for all cprestore saves. Emit a use_cprestore instruction after 9902 setting up the cprestore slot. 9903 (mips_restore_reg): Use mips_emit_save_slot_move. 9904 (mips_process_load_label): New function. 9905 (mips_load_label_length): Likewise. 9906 (mips_output_load_label): Don't return asm: output it here instead. 9907 Use mips_process_load_label. 9908 (mips_adjust_insn_length): Adjust the length of branch instructions 9909 that have length MAX_PIC_BRANCH_LENGTH. 9910 (mips_output_conditional_branch): Update the call to 9911 mips_output_load_label. Assume the branch target is OPERANDS[0] 9912 rather than OPERANDS[1]. Use MIPS_ABSOLUTE_JUMP for absolute jumps. 9913 (mips_output_order_conditional_branch): Swap the meaning of 9914 OPERANDS[0] and OPERANDS[1]. 9915 (mips_variable_issue): Don't count ghost instructions. 9916 (mips_expand_ghost_gp_insns): New function. 9917 (mips_reorg): Rerun mips_reorg_process_insns if it returns true. 9918 (mips_output_mi_thunk): Set must_initialize_gp_p. 9919 (mips_eh_uses): New function. 9920 * config/mips/predicates.md (cprestore_save_slot_operand) 9921 (cprestore_load_slot_operand): New predicates. 9922 * config/mips/mips.md (UNSPEC_POTENTIAL_CPRESTORE): New unspec. 9923 (UNSPEC_MOVE_GP): Likewise. 9924 (UNSPEC_CPRESTORE, UNSPEC_RESTORE_GP, UNSPEC_EH_RETURN) 9925 (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT): Bump to make room. 9926 (CPRESTORE_SLOT_REGNUM): New register. 9927 (MAX_PIC_BRANCH_LENGTH): New constant. 9928 (jal_macro): Use MIPS_ABSOLUTE_JUMPS. 9929 (length): Use MAX_PIC_BRANCH_LENGTH as a placeholder for PIC long 9930 branches. Fix commentary. 9931 (loadgp_newabi_<mode>): Change from unspec_volatile to unspec. 9932 Only split if mips_must_initialize_gp_p; expand to nothing otherwise. 9933 Change type to "ghost". 9934 (loadgp_absolute_<mode>): Likewise. 9935 (loadgp_rtp_<mode>): Likewise. 9936 (copygp_mips16): Likewise. 9937 (loadgp_blockage): Remove redundant mode attribute. 9938 (potential_cprestore): New instruction. 9939 (cprestore): Turn into an unspec set. 9940 (use_cprestore): New instruction. 9941 (*branch_fp): Swap operands 0 and 1. Remove redundant mode attribute. 9942 (*branch_fp_inverted): Likewise. 9943 (*branch_order<mode>): Likewise. 9944 (*branch_order<mode>_inverted): Likewise. 9945 (*branch_equality<mode>): Likewise. 9946 (*branch_equality<mode>_inverted): Likewise. 9947 (*branch_bit<bbv><mode>): Likewise. 9948 (*branch_bit<bbv><mode>_inverted): Likewise. 9949 (*branch_equality<mode>_mips16): Remove redundant mode. 9950 (jump): Turn into a define_expand. 9951 (*jump_absolute): New instruction. 9952 (*jump_pic): Likewise. 9953 (*jump_mips16): Rename previously-unnamed pattern. Remove 9954 redundant mode attribute. 9955 (restore_gp): Split on epilogue_completed rather than 9956 reload_completed. Change type to "ghost". 9957 (move_gp<mode>): New instruction. 9958 * config/mips/mips-dsp.md (mips_bposge): Swap operands 0 and 1. 9959 Remove redundant mode attribute. 9960 * config/mips/mips-ps-3d.md (bc1any4t): Likewise. 9961 (bc1any4f, bc1any2t, bc1any2f): Likewise. 9962 (*branch_upper_lower, *branch_upper_lower_inverted): Likewise. 9963 99642009-09-14 Michael Meissner <meissner@linux.vnet.ibm.com> 9965 9966 PR target/41210 9967 * config/rs6000/rs6000.c (rs6000_function_value): V2DF and V2DI 9968 are returned in the same register (vs34 or v2) that Altivec vector 9969 types are returned in. 9970 (rs6000_libcall_value): Ditto. 9971 9972 PR target/41331 9973 * config/rs6000/rs6000.c (rs6000_emit_move): Use gen_add3_insn 9974 instead of explicit addsi3/adddi3 calls. 9975 (rs6000_split_multireg_move): Ditto. 9976 (rs6000_emit_allocate_stack): Ditto. 9977 (rs6000_emit_prologue): Ditto. 9978 (rs6000_output_mi_thunk): Ditto. 9979 9980 * config/rs6000/rs6000.md (bswapdi*): Don't assume the pointer 9981 size is 64 bits if we can use 64-bit registers. 9982 99832009-09-14 Bernd Schmidt <bernd.schmidt@analog.com> 9984 9985 * config/bfin/bfin.c (bfin_longcall_p): Don't use short calls for weak 9986 symbols. 9987 9988 From Jie Zhang <jie.zhang@analog.com>: 9989 * config/bfin/bfin.c (bfin_expand_prologue): Ask do_link to 9990 save FP and RETS with saveall attribute. 9991 (bfin_expand_epilogue): Ask do_unlink to restore FP and RETS 9992 with saveall attribute. 9993 9994 * config/bfin/bfin.c (bfin_expand_builtin, 9995 case BFIN_BUILTIN_MULT_1X32X32): Force constants to registers for the 9996 operands. 9997 9998 From Jie Zhang <jie.zhang@analog.com>: 9999 * config/bfin/bfin.c (bfin_expand_builtin): Initialize icodes 10000 before use in two places. 10001 * config/bfin/bfin.md (AREG): Define mode iterator. 10002 (reload_in, reload_out): Use mode iterator AREG. 10003 100042009-09-14 Richard Guenther <rguenther@suse.de> 10005 10006 PR middle-end/41350 10007 * dwarf2out.c (dwarf2out_begin_prologue): Adjust non-CFI asm 10008 EH personality path. 10009 100102009-09-13 Richard Guenther <rguenther@suse.de> 10011 Rafael Avila de Espindola <espindola@google.com> 10012 10013 * langhooks-def.h (LANG_HOOKS_EH_RUNTIME_TYPE): Define. 10014 (LANG_HOOKS_EH_PERSONALITY): Likewise. 10015 (LANG_HOOKS_INITIALIZER): Adjust. 10016 (lhd_pass_through_t): Declare. 10017 * langhooks.h (struct lang_hooks): Add eh_runtime_type and 10018 eh_personality. 10019 * langhooks.c (lhd_pass_through_t): New function. 10020 * dwarf2out.c (output_call_frame_info, dwarf2out_do_cfi_startproc, 10021 dwarf2out_begin_prologue): Use personality from current_function_decl. 10022 * expr.h (get_personality_function): Declare. 10023 * expr.c (get_personality_function): New function. 10024 (build_personality_function): Likewise. 10025 * libfuncs.h (libfunc_index): Remove LTI_eh_personality. 10026 (eh_personality_libfunc): Remove. 10027 * optabs.c (build_libfunc_function): New function split out from ... 10028 (init_one_libfunc): ... here. 10029 * tree.h (DECL_FUNCTION_PERSONALITY): New. 10030 (tree_function_decl): Add personality. 10031 (lhd_gcc_personality): Declare. 10032 (build_personality_function): Likewise. 10033 * tree.c (gcc_eh_personality_decl): New. 10034 (lhd_gcc_personality): New function. 10035 * except.h (lang_eh_runtime_type): Remove. 10036 (enum eh_personality_kind): New. 10037 (build_personality_function): Declare. 10038 (function_needs_eh_personality): Declare. 10039 * except.c (lang_eh_runtime_type): Remove. 10040 (function_needs_eh_personality): New function. 10041 (add_type_for_runtime): Call lang_hooks.type_for_runtime instead. 10042 (sjlj_emit_function_enter, output_function_exception_table): 10043 Use personality from current_function_decl. 10044 * tree-eh.c (lower_eh_constructs): Set DECL_FUNCTION_PERSONALITY. 10045 * tree-inline.c (tree_can_inline_p): Do not inline across different 10046 EH personalities. 10047 (expand_call_inline): Likewise. Adjust the callers EH personality. 10048 (tree_function_versioning): Copy DECL_FUNCTION_PERSONALITY. 10049 * cgraph.c (cgraph_add_new_function): Set DECL_FUNCTION_PERSONALITY. 10050 * Makefile.in (cgraph.o): Add $(EXCEPT_H) dependency. 10051 (c-parser.o): Likewise 10052 * c-tree.h (c_eh_initialized_p): Remove. 10053 (c_maybe_initialize_eh): Likewise. 10054 * c-decl.c (finish_decl): Don't call c_maybe_initialize_eh. 10055 (finish_decl): Don't call c_maybe_initialize_eh. 10056 (c_eh_initialized_p): Remove. 10057 (c_maybe_initialize_eh): Likewise. 10058 * c-parser.c (c_parser_omp_construct): Likewise. 10059 (c_parse_file): Initialize exception handling. 10060 100612009-09-13 Kai Tietz <kai.tietz@onevision.com> 10062 10063 * config.gcc (tm_file): Remove i386/biarch32.h 10064 for i?86-w64-mingw* case. 10065 (i?86-*-mingw* andx86_64-*-mingw*): Add multilib 10066 support. 10067 * config.host: Set for x64 mingw the option 10068 use_long_long_for_widest_fast_int to yes. 10069 100702009-09-13 Eric Botcazou <ebotcazou@adacore.com> 10071 10072 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL. 10073 * dbxout.c (dbxout_function_end): Do not test DECL_IGNORED_P. 10074 (dbxout_begin_function): Likewise. 10075 * final.c (dwarf2_debug_info_emitted_p): New predicate. 10076 (final_start_function): Do not emit debug info if DECL_IGNORED_P is 10077 set on the function. 10078 (final_end_function): Likewise. 10079 (final_scan_insn): Likewise. 10080 (rest_of_handle_final): Likewise. 10081 * varasm.c (assemble_start_function): Likewise. 10082 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise. 10083 100842009-09-12 Jason Merrill <jason@redhat.com> 10085 10086 * dbgcnt.c (dbg_cnt_process_single_pair): constify. 10087 * opts.c (common_handle_option): constify. 10088 100892009-09-12 Gerald Pfeifer <gerald@pfeifer.com> 10090 10091 * doc/install.texi (avr): Remove obsolete reference site. 10092 100932009-09-12 Gerald Pfeifer <gerald@pfeifer.com> 10094 10095 * doc/install.texi (Binaries): Adjust AIX link. 10096 100972009-09-12 Akim Demaille <demaille@gostai.com> 10098 10099 * doc/invoke.texi (-fstrict-aliasing): Correct two examples. 10100 Use an imperative sentence. 10101 101022009-09-11 Richard Henderson <rth@redhat.com> 10103 10104 * gsstruct.def (DEFGSSTRUCT): Remove printable-name argument; add 10105 structure-name and has-tree-operands arguments; update all entries. 10106 * gimple.def (DEFGSCODE): Replace 3rd argument with GSS_symbol; 10107 update all entries. 10108 * gimple.c (gimple_ops_offset_): Use HAS_TREE_OP argument. 10109 (gsstruct_code_size): New. 10110 (gss_for_code_): New. 10111 (gss_for_code): Remove. 10112 (gimple_size): Rewrite using gsstruct_code_size. 10113 (gimple_statement_structure): Move to gimple.h. 10114 * gimple.h (gimple_ops_offset_, gss_for_code_): Declare. 10115 (gss_for_code, gimple_statement_structure): New. 10116 (gimple_ops): Use new arrays; tidy. 10117 101182009-09-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 10119 10120 * config/pa/predicates.md (symbolic_operand): Require a CONST symbolic 10121 operand to be a PLUS expression. 10122 * config/pa/pa.c (pa_secondary_reload): Likewise. 10123 101242009-09-11 Jakub Jelinek <jakub@redhat.com> 10125 10126 * combine.c (propagate_for_debug_subst): Call wrap_constant on top. 10127 10128 * print-rtl.c (print_rtx): Use JUMP_LABEL (in_rtx) instead of 10129 XEXP (in_rtx, 8). 10130 101312009-09-11 Bernd Schmidt <bernd.schmidt@analog.com> 10132 10133 From Jie Zhang <jie.zhang@analog.com>: 10134 * doc/extend.texi (node Function Attributes): Document l2 10135 function attribute. 10136 (node Blackfin Variable Attributes): Document l2 variable attributes. 10137 101382009-09-11 Loren J. Rittle <ljrittle@acm.org> 10139 10140 * config.gcc (*-*-freebsd*): Enable default_use_cxa_atexit 10141 to match the system compiler's configuration at inflection point. 10142 Add comment to remark a remaining difference with system compiler. 10143 10144 * configure.ac (*-*-freebsd*): Enable check for __stack_chk_fail. 10145 * configure: Regenerate. 10146 101472009-09-11 Bernd Schmidt <bernd.schmidt@analog.com> 10148 10149 From Jie Zhang <jie.zhang@analog.com>: 10150 * config/bfin/bfin.c (bfin_expand_call): Handle L2 functions. 10151 (bfin_handle_l2_attribute): New. 10152 (bfin_attribute_table): Add l2 attribute. 10153 101542009-09-11 Michael Matz <matz@suse.de> 10155 10156 PR middle-end/41275 10157 * tree-inline.c (remap_decls): Don't put DECL_EXTERNAL decls 10158 on the local_decls list. 10159 101602009-09-11 Alexandre Oliva <aoliva@redhat.com> 10161 10162 PR debug/41276 10163 PR debug/41307 10164 * cselib.c (cselib_expand_value_rtx_cb): Document callback 10165 interface. 10166 (cselib_expand_value_rtx_1): Use callback for SUBREGs. Adjust 10167 for VALUEs, to implement the documented interface. 10168 * var-tracking.c (vt_expand_loc_callback): Handle SUBREGs. 10169 Adjust for VALUEs and anything else, to implement the 10170 documented interface. 10171 101722009-09-10 Nathan Froyd <froydnj@codesourcery.com> 10173 10174 * config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing 10175 with actual SPE/paired vector modes before using 64-bit alignment. 10176 Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE. 10177 101782009-09-10 DJ Delorie <dj@redhat.com> 10179 10180 * config/mep/mep.md (eh_epilogue): Defer until after epilogue is 10181 emitted. 10182 10183 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): New. 10184 * config/mep/mep.c (mep_legitimate_constant_p): New. 10185 * config/mep/mep-protos.h: Prototype it. 10186 101872009-09-10 Richard Henderson <rth@redhat.com> 10188 10189 * print-rtl.c (print_rtx): Fix JUMP_LABEL index. 10190 101912009-09-10 Jason Merrill <jason@redhat.com> 10192 10193 * tree.c (chain_index): New fn. 10194 * tree.h: Declare it. 10195 101962009-09-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 10197 10198 * config/sol2-c.c (cmn_err_length_specs): Initialize 10199 scalar_identity_flag. 10200 102012009-09-10 Richard Henderson <rth@redhat.com> 10202 10203 * tree.h (struct tree_decl_common): Move align member earlier; 10204 move label_decl_uid member ... 10205 (struct tree_label_decl): ... here. 10206 (LABEL_DECL_UID): Update to match. 10207 10208 * tree-cfg.c (dump_function_to_file): Dump eh tree with TDF_EH, 10209 not TDF_DETAILS. 10210 10211 * tree-cfg.c (gimple_redirect_edge_and_branch): Do 10212 gimple_try_redirect_by_replacing_jump test after no-op and EH tests. 10213 10214 * tree-cfg.c (split_edge_bb_loc): Don't disallow placement at 10215 dest_prev if the edge is complex. 10216 10217 * tree-cfg.c (is_ctrl_stmt): Use a switch. 10218 10219 * tree-cfg.c (gimple_can_merge_blocks_p): Move label and 10220 loop latch tests earlier. 10221 10222 * gimple-iterator.c (gimple_find_edge_insert_loc): Insert 10223 before GIMPLE_RETURN, not after its predecessor; insert 10224 before GIMPLE_RESX. 10225 10226 * gimple-iterator.c (gimple_find_edge_insert_loc): Use 10227 gimple_seq_empty_p to test for no PHI nodes. 10228 * tree-cfg.c (split_critical_edges): Likewise. 10229 10230 * c-common.h (c_dialect_cxx, c_dialect_objc): Boolify. 10231 102322009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com> 10233 10234 * final.c (shorten_branches) : Ignore DEBUG_INSN_P instructions 10235 introduced by the VTA branch merge. 10236 102372009-09-10 Uros Bizjak <ubizjak@gmail.com> 10238 10239 * ira-conflicts.c: Use fputs or putc instead of fprintf 10240 where appropriate. 10241 * cfg.c: Ditto. 10242 * toplev.c: Ditto. 10243 * tree-switch-conversion.c: Ditto. 10244 102452009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com> 10246 10247 * config/picochip/picochip.c : Ignore DEBUG_INSN_P instructions 10248 introduced by the VTA branch merge. 10249 102502009-09-10 Uros Bizjak <ubizjak@gmail.com> 10251 10252 Revert: 10253 2009-09-09 Uros Bizjak <ubizjak@gmail.com> 10254 10255 PR rtl-optimization/39779 10256 * expr.c (convert_modes): Return when mode == oldmode after 10257 CONST_INTs are processed. 10258 102592009-09-10 Nick Clifton <nickc@redhat.com> 10260 10261 * config/mep/mep.c (mep_encode_section_info): Copy weakness 10262 attribute and referring decl when creating renamed symbol. 10263 102642009-09-10 Richard Guenther <rguenther@suse.de> 10265 10266 PR middle-end/41257 10267 * cgraphunit.c (cgraph_emit_thunks): Emit thunks only for 10268 reachable nodes. 10269 (cgraph_finalize_compilation_unit): Compute reachability 10270 before emitting thunks. Properly process aliases before 10271 possibly removing unreachable nodes. 10272 102732009-09-10 Richard Guenther <rguenther@suse.de> 10274 10275 PR middle-end/41254 10276 * tree.c (struct free_lang_data_d): Add worklist member. 10277 (find_decls_types_r): Push onto the worklist instead of recursing. 10278 Handle TREE_BINFOs properly. 10279 (find_decls_types): New function wrapped around find_decls_types_r 10280 to process the worklist. 10281 (find_decls_types_in_eh_region): Use it. 10282 (find_decls_types_in_node): Likewise. 10283 (find_decls_types_in_var): Likewise. 10284 (free_lang_data_in_cgraph): Likewise. Free the worklist. 10285 * tree.h (RECORD_OR_UNION_TYPE_P): New. 10286 (AGGREGATE_TYPE_P): Adjust. 10287 102882009-09-09 Jason Merrill <jason@redhat.com> 10289 10290 * configure.ac: Check glibc version even if we have an in-tree 10291 assembler. 10292 102932009-09-09 Anthony Green <green@moxielogic.com> 10294 10295 * config/moxie/moxie.md (*movsi, *movhi, *movqi): Use xor to load 10296 the constant 0 when appropriate. 10297 * config/moxie/constraints.md: Add constraint O. 10298 10299 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Adjust 10300 to pass up to 6 32-bit argument values in registers. 10301 (moxie_function_arg): Ditto. 10302 (moxie_arg_partial_bytes): Ditto. 10303 * config/moxie/moxie.h (FUNCTION_ARG_ADVANCE): Ditto. 10304 (REG_PARM_STACK_SPACE): Ditto. 10305 (FUNCTION_ARG_REGNO_P): Ditto. 10306 10307 * config/moxie/moxie.c (moxie_expand_prologue): Use dec 10308 instruction to allocate stack space. 10309 103102009-09-09 Segher Boessenkool <segher@kernel.crashing.org> 10311 10312 * config/rs6000/rs6000.md (bswapdi2_64bit): Fix 10313 unnecessarily stringent constraints. Fix address 10314 calculation in the splitters. 10315 103162009-09-09 Uros Bizjak <ubizjak@gmail.com> 10317 10318 PR rtl-optimization/39779 10319 * expr.c (convert_modes): Return when mode == oldmode after 10320 CONST_INTs are processed. 10321 103222009-09-09 Kai Tietz <kai.tietz@onevision.com> 10323 10324 PR/41315 10325 * config/i386.c (ix86_can_use_return_insn_p): Check for padding0, too. 10326 (ix86_expand_prologue): Take frame.padding0 into logic of 10327 to_allocate checks. 10328 (ix86_expand_epilogue): Likewise. 10329 103302009-09-09 Jakub Jelinek <jakub@redhat.com> 10331 10332 * config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK): 10333 New variables. 10334 (SHLIB_LINK, SHLIB_INSTALL): Use them. 10335 * config/t-slibgcc-libgcc: New file. 10336 * config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it. 10337 103382009-09-09 Martin Jambor <mjambor@suse.cz> 10339 10340 PR tree-optimization/41089 10341 * tree-sra.c (find_var_candidates): Do not consider va_lists in 10342 early SRA. 10343 103442009-09-09 Richard Henderson <rth@redhat.com> 10345 10346 * gimple.h (CASE_GIMPLE_OMP): New. 10347 (is_gimple_omp): Use it. 10348 * tree-cfg.c (is_ctrl_altering_stmt): Likewise. 10349 (verify_gimple_debug): Likewise. 10350 103512009-09-09 Richard Guenther <rguenther@suse.de> 10352 10353 PR tree-optimization/41101 10354 * tree-ssa-pre.c (maximal_set): Remove. 10355 (compute_antic_aux): Treat the maximal set as implicitly all ones. 10356 Defer all blocks we didn't visit at least one successor. 10357 (add_to_exp_gen): Do not add to the maximal set. 10358 (make_values_for_phi): Likewise. 10359 (compute_avail): Likewise. 10360 (init_pre): Do not allocate the maximal set. 10361 (execute_pre): Do not dump it. 10362 103632009-09-09 Martin Jambor <mjambor@suse.cz> 10364 10365 * tree-cfg.c (verify_gimple_phi): Check that gimple_phi_result is 10366 an SSA_NAME rather than a is_gimple_variable. 10367 103682009-09-09 Richard Guenther <rguenther@suse.de> 10369 10370 PR middle-end/41317 10371 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove 10372 code dealing with plain pointer bases. 10373 (maybe_fold_offset_to_reference): Likewise. 10374 (maybe_fold_stmt_addition): Adjust. 10375 103762009-09-09 Richard Guenther <rguenther@suse.de> 10377 10378 * tree.c (free_lang_data_in_type): Do not free the type variant 10379 chains. 10380 (free_lang_data): Merge char_type_node with its properly signed 10381 variant. 10382 (pass_ipa_free): Collect after freeing language specific data. 10383 103842009-09-09 Michael Matz <matz@suse.de> 10385 10386 PR middle-end/41268 10387 * cfgexpand.c (expand_gimple_stmt_1): Use an int for storing 10388 SUBREG_PROMOTED_UNSIGNED_P, instead of a bool. 10389 * rtl.h (struct rtx, SUBREG_PROMOTED_UNSIGNED_P): Update comments 10390 to reflect reality. 10391 103922009-09-08 DJ Delorie <dj@redhat.com> 10393 10394 * config/mep/mep.c (conversions[]): Add "ml" pattern. 10395 103962009-09-04 Jason Merrill <jason@redhat.com> 10397 10398 * tree.c (tree_find_value): Remove. 10399 * tree.h: Remove prototype. 10400 * varasm.c (assemble_external): Use value_member instead. 10401 104022009-09-08 Alexandre Oliva <aoliva@redhat.com> 10403 10404 * toplev.c (process_options): Choose default debugging type when 10405 gtoggle enables debug info and type is unset. 10406 104072009-09-08 Alexandre Oliva <aoliva@redhat.com> 10408 10409 PR debug/41276 10410 PR debug/41307 10411 * cselib.c (cselib_expand_value_rtx_1): Don't return copy of 10412 invalid subreg. 10413 104142009-09-08 Alexandre Oliva <aoliva@redhat.com> 10415 10416 * configure: Rebuilt with modified libtool.m4. 10417 104182009-09-08 Alexandre Oliva <aoliva@redhat.com> 10419 10420 PR debug/41229 10421 PR debug/41291 10422 PR debug/41300 10423 * tree-ssa.c (execute_update_addresses_taken): Update debug insns. 10424 104252009-09-08 Alexandre Oliva <aoliva@redhat.com> 10426 10427 * tree-ssa-loop-ivopts.c (get_phi_with_result): Remove. 10428 (remove_statement): Likewise. 10429 (rewrite_use_nonlinear_expr): Adjust. 10430 (remove_unused_ivs): Collect SSA NAMEs to remove and call... 10431 * tree-ssa.c (release_defs_bitset): ... this. New. 10432 * tree-flow.h (release_defs_bitset): Declare. 10433 104342009-09-08 Alexandre Oliva <aoliva@redhat.com> 10435 10436 PR debug/41232 10437 * tree-ssa-phiopt.c (minmax_replacement): Skip debug stmts 10438 in the middle block. 10439 104402009-09-08 Kai Tietz <kai.tietz@onevision.com> 10441 10442 * tree-ssa-reassoc.c (find_operand_rank): Cast pointer 10443 via intptr_t to long type. 10444 (insert_operand_rank): Cast long type via intptr_t to 10445 pointer type. 10446 * genattrtab.c (RTL_HASH): Use intptr_t to cast from 10447 pointer to scalar. 10448 * c-pretty-print.c (pp_c_tree_decl_identifier): Cast 10449 from pointer to unsigned via uintptr_t. 10450 10451 * configure.ac (GCC_STDINT_TYPES): Initialize intptr_t, 10452 uintptr_t, HAVE_INTTYPES_H, HAVE_STDINT_H, HAVE_UINTPTR_T, 10453 and HAVE_INTPTR_T. 10454 * configure: Regenerated. 10455 * config.in: Regenerated 10456 * system.h (stdint.h): Add include. 10457 (inttypes.h): Likewise. 10458 * Makefile.in (aclocal): Add config/stdint.m4. 10459 * aclocal.m4: Regenerated. 10460 104612009-09-08 Bernd Schmidt <bernd.schmidt@analog.com> 10462 10463 * config/bfin/bfin.c (np_check_regno, np_after_branch): New static 10464 variables. 10465 (note_np_check_stores): New function. 10466 (harmless_null_pointer_p): New function. 10467 (trapping_loads_p): New args NP_REG and AFTER_NP_BRANCH. Callers 10468 changed. Take into account whether we're in the shadow of a condjump 10469 that tested NP_REG for NULL. 10470 Lose all code that tested for SEQUENCEs. 10471 (workaround_speculation): Avoid inserting NOPs for loads that are 10472 either always executed or a NULL pointer. 10473 104742009-09-08 Jan Hubicka <jh@suse.cz> 10475 10476 * doc/invoke.texi (early-inlining-insns): Reduce from 12 to 8. 10477 * params.def (early-inlining-insns): Likewise. 10478 104792009-09-08 Jakub Jelinek <jakub@redhat.com> 10480 10481 PR rtl-optimization/41239 10482 * sched-int.h (struct deps): Add last_function_call_may_noreturn field. 10483 * sched-rgn.c (deps_join): Join also last_function_call_may_noreturn 10484 lists. 10485 * sched-deps.c (sched_analyze_insn): Prevent moving trapping insns 10486 across calls, as the calls might not always return normally. 10487 (call_may_noreturn_p): New function. 10488 (deps_analyze_insn): Update last_function_call_may_noreturn list. 10489 (init_deps): Initialize it. 10490 (remove_from_deps): Also remove calls from 10491 last_function_call_may_noreturn list. 10492 104932009-09-07 Richard Henderson <rth@redhat.com> 10494 10495 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't assume there are 10496 more VR->OPERANDS than LHS operands. Free LHS before returning. 10497 104982009-09-07 Bernd Schmidt <bernd.schmidt@analog.com> 10499 10500 * config/bfin/bfin.md (UNSPEC_VOLATILE_STALL): New constant. 10501 (attr "addrtype"): New member "spreg". 10502 Use it if mem_spfp_address_operand is true for the address. 10503 (attr "type"): New entry "stall". 10504 (cpu_unit "load"): New. 10505 (insn_reservations "load32", "loadp", "loadi"): Add reservation of 10506 "load". 10507 (insn_reservation "loadsp"): New. 10508 (insn_reservation "load_stall1"): New. 10509 (insn_reservation "load_stall3"): New. 10510 (stall): New insn. 10511 * config/bfin/predicates.md (const1_operand, const3_operand): New. 10512 (mem_p_address_operand): Exclude stack and frame pointer based 10513 addresses. 10514 (mem_spfp_address_operand): New; match them here. 10515 * config/bfin/bfin.c (add_sched_insns_for_speculation): New function. 10516 (bfin_reorg): Call it if scheduling insns. 10517 (bfin_gen_bundles): Remove dummy insns created by 10518 add_sched_insns_for_speculation. 10519 10520 From Jie Zhang <jie.zhang@analog.com>: 10521 * config/bfin/bfin-protos.h (enum bfin_cpu_type, bfin_cpu_type, 10522 bfin_si_revision, bfin_workarounds): Move these ... 10523 * config/bfin/bfin.h: ... here. 10524 10525 From Mike Frysinger <michael.frysinger@analog.com> 10526 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF542M, 10527 BFIN_CPU_BF544M, BFIN_CPU_BF547M, BFIN_CPU_BF548M, and BFIN_CPU_BF549M. 10528 * config/bfin/bfin.c (bfin_cpus[]): Add 0.3 for bf542m, bf544m, 10529 bf547m, bf548m, and bf549m. 10530 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF542M__ 10531 for BFIN_CPU_BF542M, __ADSPBF544M__ for BFIN_CPU_BF544M, 10532 __ADSPBF547M__ for BFIN_CPU_BF547M, __ADSPBF548M__ for 10533 BFIN_CPU_BF548M, and __ADSPBF549M__ for BFIN_CPU_BF549M. 10534 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for 10535 bf542m-none, bf544m-none, bf547m-none, bf548m-none, and bf549m-none. 10536 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise. 10537 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise. 10538 * doc/invoke.texi (Blackfin Options): Document that -mcpu now accepts 10539 bf542m, bf544m, bf547m, bf548m, and bf549m. 10540 10541 From Jie Zhang <jie.zhang@analog.com>: 10542 * config/bfin/predicates.md (p_register_operand): New predicate. 10543 (dp_register_operand): New predicate. 10544 * config/bfin/bfin-protos.h (WA_05000074): Define. 10545 (ENABLE_WA_05000074): Define. 10546 * config/bfin/bfin.c (bfin_cpus[]): Add WA_05000074 for all cpus. 10547 (bfin_gen_bundles): Put dsp32shiftimm instruction in slot[0]. 10548 * config/bfin/bfin.md (define_attr type): Add dsp32shiftimm. 10549 (define_attr addrtype): Allow load/store register to be P register. 10550 (define_attr storereg): New. 10551 (define_cpu_unit anomaly_05000074): New. 10552 (define_insn_reservation dsp32shiftimm): New. 10553 (define_insn_reservation dsp32shiftimm_anomaly_05000074): New. 10554 (define_insn_reservation loadp): Cannot use slot2. 10555 (define_insn_reservation loadsp): Cannot use slot2. 10556 (define_insn_reservation storep): Cannot use slot2. Does not 10557 apply when working around 05000074. 10558 (define_insn_reservation storep_anomaly_05000074): New. 10559 (define_insn_reservation storei): Does not apply when working 10560 around 05000074. 10561 (define_insn_reservation storei_anomaly_05000074): New. 10562 (define_attr length): Add dsp32shiftimm case. 10563 (define_insn movsi_insn32, movsi_insv, ashlsi3_insn, ashrsi3, 10564 ror_one, rol_one, lshrsi3, lshrpdi3, ashrpdi3, movhiv2hi_low, 10565 movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi, 10566 ssashiftv2hi3, ssashifthi3, ssashiftsi3, lshiftv2hi3, lshifthi3): 10567 Set type as dsp32shiftimm for dsp32shiftimm alternatives. 10568 105692009-09-07 Martin Jambor <mjambor@suse.cz> 10570 10571 PR middle-end/41282 10572 * tree-sra.c (create_artificial_child_access): Return NULL if 10573 build_ref_for_offset fails. 10574 (propagate_subacesses_accross_link): Allow build_ref_for_offset 10575 and create_artificial_child_access to fail. 10576 105772009-09-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com> 10578 10579 PR c++/41214 10580 * unwind-dw2.c (uw_init_context_1): Mark noinline. 10581 * config/ia64/unwind-ia64.c (uw_init_context_1): Likewise. 10582 * config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise. 10583 105842009-09-07 Bernd Schmidt <bernd.schmidt@analog.com> 10585 10586 * config/bfin/bfin.c (bfin_optimize_loop): When creating a new basic 10587 block, ensure it has an exit edge. Emit a barrier after a jump. 10588 105892009-09-07 Nick Clifton <nickc@redhat.com> 10590 10591 * gcc.c (this_is_linker_script): New variable. Like 10592 this_is_library_file but for the %T constructor. 10593 (end_going_arg): If this_is_linker_script is set then locate the 10594 script and insert a --script switch before it 10595 (do_spec_2): Initialise this_is_linker_script. 10596 (do_spec_1): Likewise. Handle %T construct. 10597 (eval_spec_function): Preserve this_is_linker_script. 10598 * doc/invoke.texi: Document %T construct in spec files. 10599 * config/m32c/m32c.h (LIB_SPEC): Use it. 10600 106012009-09-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 10602 10603 * rtl.h (PREFETCH_SCHEDULE_BARRIER_P): New macro. 10604 * sched-deps.c (sched_analyze_2): Make prefetches a hard barrier 10605 when volatile flag is set. 10606 * doc/rtl.texi (PREFETCH_SCHEDULE_BARRIER_P): Add documentation pieces. 10607 106082009-09-06 Eric Botcazou <ebotcazou@adacore.com> 10609 10610 PR bootstrap/41241 10611 * combine-stack-adj.c (try_apply_stack_adjustment): Handle stores. 10612 (combine_stack_adjustments_for_block): Allow insns between stack 10613 adjustments and stores with corresponding pre-(dec|inc)rement or 10614 pre-modify operation. 10615 106162009-09-06 Jakub Jelinek <jakub@redhat.com> 10617 10618 PR bootstrap/41241 10619 * combine-stack-adj.c (struct csa_memlist): Rename to... 10620 (struct csa_reflist): ... this. Rename mem field to ref. 10621 (free_csa_memlist): Rename to... 10622 (free_csa_reflist): ... this. 10623 (record_one_stack_memref): Rename to... 10624 (record_one_stack_ref): ... this. Handle also REG_P. 10625 (try_apply_stack_adjustment): Handle also REG_P. 10626 (struct record_stack_memrefs_data): Rename to... 10627 (struct record_stack_refs_data): ... this. Rename memlist field to 10628 reflist. 10629 (record_stack_memrefs): Rename to... 10630 (record_stack_refs): ... this. For DEBUG_INSNs keep traversing 10631 subexpressions instead of failing when a MEM contains SP references. 10632 For SP itself in DEBUG_INSNs queue it also onto reflist chain. 10633 (combine_stack_adjustments_for_block): Adjust for mem to ref renaming. 10634 106352009-09-06 Richard Guenther <rguenther@suse.de> 10636 10637 PR middle-end/41144 10638 * tree.c (build_array_type): Do not record types marked 10639 with structural equality in the canonical type hashtable. 10640 106412009-09-06 Richard Guenther <rguenther@suse.de> 10642 10643 PR middle-end/41261 10644 * tree-ssa-alias.c (refs_may_alias_p_1): Bail out for function decls. 10645 106462009-09-05 Richard Guenther <rguenther@suse.de> 10647 10648 PR middle-end/41181 10649 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use the correct type. 10650 106512009-09-05 Richard Guenther <rguenther@suse.de> 10652 10653 PR debug/41273 10654 * tree-ssa-operands.c (get_tmr_operands): Pass through opf_no_vops. 10655 106562009-09-05 Richard Guenther <rguenther@suse.de> 10657 10658 PR middle-end/41271 10659 * tree-ssa.c (useless_type_conversion_p): Drop qualifiers 10660 before comparing function argument types. 10661 106622009-09-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 10663 10664 PR target/41024 10665 * config/i386/mingw-w64.h (ASM_SPEC): Pass -v instead of -V to 10666 the assembler. 10667 106682009-09-04 Uros Bizjak <ubizjak@gmail.com> 10669 10670 Revert: 10671 2009-08-18 Uros Bizjak <ubizjak@gmail.com> 10672 10673 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn 10674 locators before emit_insn is called. 10675 106762009-09-04 Vladimir Makarov <vmakarov@redhat.com> 10677 10678 PR bootstrap/41241 10679 * ira.c (update_equiv_reg): Revert my previous patch for the PR. 10680 * reginfo.c (resize_reg_info): Call allocate_reg_info if necessary. 10681 (reginfo_init): Don't call allocate_reg_info. 10682 106832009-09-04 Uros Bizjak <ubizjak@gmail.com> 10684 10685 PR target/41262 10686 * config/alpha/alpha.c (alpha_does_function_need_gp): Use 10687 NONDEBUG_INSN_P instead of INSN_P. 10688 106892009-09-04 Alexandre Oliva <aoliva@redhat.com> 10690 10691 PR debug/41225 10692 * tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses. 10693 106942009-09-04 Alexandre Oliva <aoliva@redhat.com> 10695 10696 PR target/41252 10697 * config/arm/vfp.md (*cmpdf_split_vfp): Fix src mode in the second 10698 pattern of the split. 10699 107002009-09-04 Alexandre Oliva <aoliva@redhat.com> 10701 10702 * toplev.c (process_options): Move setter of flag_var_tracking 10703 before other tests that depend on it. Move down setter of 10704 flag_rename_registers. Don't enable var-tracking-assignments 10705 by default if selective scheduling is enabled. Warn if both 10706 are enabled. 10707 107082009-09-04 Alexandre Oliva <aoliva@redhat.com> 10709 10710 * var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match 10711 comment. Use switch statement to catch overlaps between rtx 10712 and tree codes. Accept FUNCTION_DECLs in addition to those in... 10713 (IS_DECL_CODE): ... here. Remove. 10714 (check_value_is_not_decl): Remove. 10715 (dv_from_decl, dv_from_value): Check after conversion. 10716 107172009-09-04 Richard Guenther <rguenther@suse.de> 10718 10719 PR middle-end/41257 10720 * (cgraph_finalize_compilation_unit): Move finalizing aliases 10721 after emitting tunks. Move emitting thunks and ctors from ... 10722 (cgraph_optimize): ... here. Remove redundant 10723 cgraph_analyze_functions. 10724 * varasm.c (find_decl_and_mark_needed): Remove no longer 10725 necessary check. 10726 (finish_aliases_1): Adjust check for thunk aliases. 10727 107282009-09-04 Daniel Gutson <dgutson@codesourcery.com> 10729 10730 * config/arm/arm.md (ctzsi2): Added braces 10731 to avoid warning that broke booststrap. 10732 107332009-09-04 Martin Jambor <mjambor@suse.cz> 10734 10735 PR tree-optimization/41112 10736 * tree-sra.c (build_ref_for_offset_1): Signal that we cannot 10737 handle variable-bounded arrays. 10738 (expr_with_var_bounded_array_refs_p): New function. 10739 (analyze_access_subtree): Call expr_with_var_bounded_array_refs_p. 10740 107412009-09-04 Wolfgang Gellerich <gellerich@de.ibm.com> 10742 10743 * config/s390/2097.md: Removed two incorrect bypasses. 10744 (z10_fsimpdf): Fixed latency. 10745 (z10_fhex): New insn_reservation. 10746 (z10_floaddf): Fixed latency. 10747 (z10_floadsf): Fixed latency. 10748 (z10_ftrunctf): Fixed latency. 10749 (z10_ftruncdf): Fixed latency. 10750 * config/s390/s390.c (z10_cost): Fixed values. 10751 (s390_adjust_priority): Added z10 path. 10752 * config/s390/s390.md (type): Added fhex. 10753 (*mov<mode>_64dfp): Updated type attribute. 10754 (*mov<mode>_64): Updated type attribute. 10755 (*mov<mode>_31): Updated type attribute. 10756 (*mov<mode>"): Likewise. 10757 * config/s390/2084.md (x_fsimpdf): Updated condition. 10758 107592009-09-04 Andreas Krebbel <krebbel1@de.ibm.com> 10760 10761 * config/s390/s390.md ("*fmadd<mode>", "*fmsub<mode>"): Enable mem 10762 RTXs in the predicate for operand 1. 10763 107642009-09-03 Daniel Gutson <dgutson@codesourcery.com> 10765 10766 * config/arm/arm.md (UNSPEC_RBIT): New constant. 10767 (rbitsi2): New insn. 10768 (ctzsi2): New expand. 10769 * config/arm/arm.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro. 10770 107712009-09-03 Martin Jambor <mjambor@suse.cz> 10772 10773 * tree-sra.c (duplicate_expr_for_different_base): Removed. 10774 (create_artificial_child_access): Use build_ref_for_offset instead 10775 of duplicate_expr_for_different_base. 10776 (propagate_subacesses_accross_link): Likewise. 10777 107782009-09-03 Richard Sandiford <rdsandiford@googlemail.com> 10779 10780 * config/mips/mips.c (USEFUL_INSN_P): Use NONDEBUG_INSN_P instead 10781 of INSN_P. 10782 (mips16e_collect_argument_saves): Skip debug instructions. 10783 (mips_74k_agen_init): Use CALL_P || JUMP_P instead of !NONJUMP_INSN_P. 10784 (mips16_lay_out_constants): Use USEFUL_INSN_P instead of INSN_P. 10785 (r10k_insert_cache_barriers): Likewise. 10786 (mips_reorg_process_insns): Likewise. 10787 107882009-09-03 Vladimir Makarov <vmakarov@redhat.com> 10789 10790 PR bootstrap/41241 10791 * ira.c (update_equiv_reg): Remove check on class likely spill. 10792 107932009-09-03 Jakub Jelinek <jakub@redhat.com> 10794 10795 PR debug/41236 10796 * dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on 10797 SIGN_EXTEND or ZERO_EXTEND. Don't assume there is a REG inside of 10798 it or SUBREG. 10799 10800 PR debug/41238 10801 * function.c (assign_parm_find_stack_rtl): Don't set mem attributes on 10802 the stack slot if it is passed by invisible reference. 10803 * var-tracking.c (vt_add_function_parameters): Handle arguments passed 10804 by invisible reference. 10805 108062009-09-03 Bernd Schmidt <bernd.schmidt@analog.com> 10807 10808 * config/bfin/linux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1. 10809 * config/bfin/uclinux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1. 10810 * config/bfin/bfin.h (TARGET_SUPPORTS_SYNC_CALLS): Provide default of 10811 0. 10812 * config/bfin/sync.md: New file. 10813 * config/bfin/bfin.md: Include it. 10814 (UNSPEC_ATOMIC): New. 10815 (UNSPEC_ONES): Provide a unique number. 10816 10817 From Jie Zhang <jie.zhang@analog.com>: 10818 * config/bfin/bfin.c (ret_regs): New. 10819 (must_save_fp_p): Don't return true because of frame_pointer_needed. 10820 (must_save_rets_p): New. 10821 (n_regs_saved_by_prologue): Use must_save_rets_p instead of 10822 current_function_is_leaf. 10823 (do_link): Likewise. 10824 (do_unlink): Likewise. 10825 (expand_interrupt_handler_prologue): Use ret_regs array. 10826 (expand_interrupt_handler_epilogue): Use ret_regs array and 10827 pass return register to gen_return_internal. 10828 (bfin_expand_epilogue): Pass return register to 10829 gen_return_internal. 10830 (bfin_expand_call): Explicitly clobber RETS. 10831 * config/bfin/bfin.h (FUNCTION_RETURN_REGISTERS): Define. 10832 * config/bfin/bfin.md (call_symbol_fdpic, call_value_symbol_fdpic, 10833 call_insn_fdpic, call_value_insn_fdpic, call_symbol, 10834 call_value_symbol, call_insn, call_value_insn): Explicitly clobber 10835 RETS. 10836 (return_internal): Take a reg rtx rather than the register number. 10837 108382009-09-03 H.J. Lu <hongjiu.lu@intel.com> 10839 10840 * tree-parloops.c (parallelize_loops): Cast to HOST_WIDE_INT 10841 when comparing against estimated_loop_iterations_int return. 10842 108432009-09-03 Richard Guenther <rguenther@suse.de> 10844 10845 * dwarf2out.c (dwarf2out_do_cfi_asm): Remove check of 10846 eh_personality_libfunc. 10847 108482009-09-03 Razya Ladelsky <razya@il.ibm.com> 10849 10850 * tree-parloops.c (separate_decls_in_region): Add space. 10851 108522009-09-03 Razya Ladelsky <razya@il.ibm.com> 10853 10854 * tree-parloops.c (separate_decls_in_region): Change the condition 10855 checking if there are reductions in the loop. 10856 108572009-09-03 Razya Ladelsky <razya@il.ibm.com> 10858 10859 PR tree-optimization/38275 10860 * tree-parloops.c (parallelize_loops): Replace profitability condition 10861 for expected number of iterations. 10862 108632009-09-03 Alexandre Oliva <aoliva@redhat.com> 10864 10865 * doc/invoke.texi (BUILD_CONFIG): Document --with-build-config. 10866 (bootstrap-debug): Explain conditions in which it becomes default. 10867 (bootstrap-debug-big): Rather than duplicate bootstrap-debug, 10868 make it add to it. 10869 108702009-09-03 Namhyung Kim <namhyung@gmail.com> 10871 10872 * doc/invoke.texi (Optimize Options): Move 10873 -finline-small-functions to the -O2 list. 10874 108752009-09-03 Alexandre Oliva <aoliva@redhat.com> 10876 10877 * toplev.c (process_options): Enable var-tracking-assignments 10878 by default if var-tracking is enabled. 10879 108802009-09-02 David Daney <ddaney@caviumnetworks.com> 10881 10882 * cfgbuild.c (find_bb_boundaries): Split blocks containing a 10883 barrier. 10884 * emit-rtl.c (prev_nonnote_insn_bb): New function. 10885 * rtl.h (prev_nonnote_insn_bb): Declare it. 10886 108872009-09-03 Diego Novillo <dnovillo@google.com> 10888 10889 * cgraph.c (cgraph_node_for_decl): New. 10890 * cgraph.h (cgraph_node_for_decl): Declare. 10891 * tree.c (host_integerp): Return 0 if T is NULL. 10892 108932009-09-03 Diego Novillo <dnovillo@google.com> 10894 10895 * tree.h (struct alias_pair): Move from varasm.c. 10896 (alias_pairs): Likewise. 10897 (TYPE_MAXVAL): Define. 10898 (TYPE_MINVAL): Define. 10899 (iterative_hash_host_wide_int): Declare. 10900 (remove_unreachable_alias_pairs): Declare. 10901 * tree-pass.h (pass_ipa_free_lang_data): Declare. 10902 * diagnostic.c (default_diagnostic_starter): Make extern. 10903 (default_diagnostic_finalizer): Make extern. 10904 * diagnostic.h (default_diagnostic_starter): Declare. 10905 (default_diagnostic_finalizer): Declare. 10906 (default_tree_printer): Declare. 10907 * toplev.c (default_tree_printer): Make extern. 10908 109092009-09-03 Richard Guenther <rguenther@suse.de> 10910 Diego Novillo <dnovillo@google.com> 10911 10912 * cgraph.c (cgraph_add_new_function): Remove gimplification. 10913 * cgraphunit.c (cgraph_expand_function): Do not emit 10914 associated thunks from here. 10915 (cgraph_emit_thunks): New. 10916 (cgraph_optimize): Call it. 10917 Return if any IPA pass finds an error. 10918 * varasm.c (finish_aliases_1): Ignore errorneous aliases used 10919 by thunks. 10920 109212009-09-03 Simon Baldwin <simonb@google.com> 10922 Rafael Espindola <espindola@google.com> 10923 Richard Guenther <rguenther@suse.de> 10924 Doug Kwan <dougkwan@google.com> 10925 Diego Novillo <dnovillo@google.com> 10926 10927 * tree.c: Include tree-pass.h, langhooks-def.h, 10928 diagnostic.h, cgraph.h, timevar.h, except.h and debug.h. 10929 (free_lang_data_in_type): New. 10930 (need_assembler_name_p): New. 10931 (free_lang_data_in_block): New. 10932 (free_lang_data_in_decl): New. 10933 (struct free_lang_data_d): New. 10934 (add_tree_to_fld_list): New. 10935 (find_decls_types_r): New. 10936 (get_eh_types_for_runtime): New. 10937 (find_decls_types_in_eh_region): New. 10938 (find_decls_types_in_node): New. 10939 (find_decls_types_in_var): New. 10940 (free_lang_data_in_cgraph): New. 10941 (free_lang_data): New. 10942 (gate_free_lang_data): New. 10943 (pass_ipa_free_lang_data): New. 10944 109452009-09-03 Diego Novillo <dnovillo@google.com> 10946 10947 * timevar.def (TV_IPA_FREE_LANG_DATA): Define. 10948 * langhooks.h (struct lang_hooks): Add field free_lang_data. 10949 (lang_hooks): Remove const qualifier. 10950 * ipa.c (cgraph_remove_unreachable_nodes): Call 10951 remove_unreachable_alias_pairs. 10952 * except.c (add_type_for_runtime): Check if TYPE has 10953 already been converted. 10954 (lookup_type_for_runtime): Likewise. 10955 (check_handled): Handle converted types. 10956 * varasm.c (remove_unreachable_alias_pairs): New. 10957 * gimple.c: Include demangle.h. 10958 (gimple_decl_printable_name): New. 10959 (gimple_fold_obj_type_ref): New. 10960 * gimple.h (gimple_decl_printable_name): Declare. 10961 (gimple_fold_obj_type_ref): Declare. 10962 * passes.c (init_optimization_passes): Add pass 10963 pass_ipa_free_lang_data. 10964 * langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define. 10965 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA. 10966 109672009-09-03 Diego Novillo <dnovillo@google.com> 10968 10969 * c-lang.c (lang_hooks): Remove const qualifier. 10970 109712009-09-02 Loren James Rittle <ljrittle@acm.org> 10972 10973 * doc/install.texi (*-*-freebsd*): Update target information. 10974 109752009-09-02 Anatoly Sokolov <aesok@post.ru> 10976 10977 * hard-reg-set.h (call_fixed_regs): Remove. 10978 * reginfo.c (call_fixed_regs): Remove. 10979 (init_reg_sets_1): Remove initialization of call_fixed_regs. 10980 (globalize_reg): Don't use call_fixed_regs. 10981 * caller-save.c (init_caller_save): Use call_fixed_reg_set instead of 10982 call_fixed_regs. 10983 109842009-09-01 Michael Matz <matz@suse.de> 10985 10986 * expr.h (emit_storent_insn, expand_expr_real_1, 10987 expand_expr_real_2): Declare. 10988 * expr.c (emit_storent_insn, expand_expr_real_1, 10989 expand_expr_real_2): Export. 10990 (store_expr): Setting and evaluating dont_return_target is useless. 10991 (expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR, 10992 LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable. 10993 * except.c (expand_resx_expr): Rename to ... 10994 (expand_resx_stmt): ... this. Rewrite to take gimple statement. 10995 * except.h (expand_resx_stmt): Declare. 10996 * stmt.c: Add include gimple.h 10997 (expand_asm_expr): Rename to ... 10998 (expand_asm_stmt): ... this. Rewrite to take gimple statement. 10999 (expand_case): Rewrite to take gimple statement. 11000 * tree.h (expand_asm_stmt): Declare. 11001 (expand_case): Change prototype. 11002 * Makefile.in (stmt.o): Depend on gimple.h. 11003 * builtins.c (expand_builtin_synchronize): Build gimple asm 11004 statement, not an ASM_EXPR. 11005 * cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r, 11006 gimple_to_tree, release_stmt_tree): Remove. 11007 (expand_gimple_cond): Don't call gimple_cond_pred_to_tree or 11008 ggc_free, but hold comparison code and operands separately. 11009 Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot. 11010 (expand_call_stmt, expand_gimple_stmt_1, 11011 expand_gimple_stmt): New helpers. 11012 (expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt, 11013 release_stmt_tree. Call expand_gimple_stmt instead. 11014 (expand_gimple_basic_block): Ditto. 11015 11016 * calls.c (emit_call_1): Don't look at EH regions here, make 11017 fntree parameter useless. 11018 (expand_call): New local rettype for TREE_TYPE(exp), use it 11019 throughout. Remove local p, use addr instead. 11020 Don't look at EH regions here. 11021 110222009-09-02 Vladimir Makarov <vmakarov@redhat.com> 11023 11024 * doc/invoke.texi (-fsched-pressure): Document it. 11025 (-fsched-reg-pressure-heuristic): Remove it. 11026 11027 * reload.c (ira.h): Include. 11028 (find_reloads): Add choosing reload on number of small spilled 11029 classes. 11030 11031 * haifa-sched.c (ira.h): Include. 11032 (sched_pressure_p, sched_regno_cover_class, curr_reg_pressure, 11033 saved_reg_pressure, curr_reg_live, saved_reg_live, 11034 region_ref_regs): New variables. 11035 (sched_init_region_reg_pressure_info, mark_regno_birth_or_death, 11036 initiate_reg_pressure_info, setup_ref_regs, 11037 initiate_bb_reg_pressure_info, save_reg_pressure, 11038 restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New 11039 functions. 11040 (setup_insn_reg_pressure_info): New function. 11041 (rank_for_schedule): Add pressure checking and insn issue time. 11042 Remove comparison of insn reg weights. 11043 (ready_sort): Set insn reg pressure info. 11044 (update_register_pressure, setup_insn_max_reg_pressure, 11045 update_reg_and_insn_max_reg_pressure, 11046 sched_setup_bb_reg_pressure_info): New functions. 11047 (schedule_insn): Add code for printing and updating reg pressure info. 11048 (find_set_reg_weight, find_insn_reg_weight): Remove. 11049 (ok_for_early_queue_removal): Do nothing if pressure_only_p. 11050 (debug_ready_list): Print reg pressure info. 11051 (schedule_block): Ditto. Check insn issue time. 11052 (sched_init): Set up sched_pressure_p. Allocate and set up some 11053 reg pressure related info. 11054 (sched_finish): Free some reg pressure related info. 11055 (fix_tick_ready): Make insn always ready if pressure_p. 11056 (init_h_i_d): Don't call find_insn_reg_weight. 11057 (haifa_finish_h_i_d): Free insn reg pressure info. 11058 11059 * ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs, 11060 ira_memory_move_cost, ira_class_hard_regs, 11061 ira_class_hard_regs_num, ira_no_alloc_regs, 11062 ira_available_class_regs, ira_reg_class_cover_size, 11063 ira_reg_class_cover, ira_class_translate): Move to ira.h. 11064 11065 * ira-lives.c (single_reg_class): Check mode to find how many 11066 registers are necessary for operand. 11067 (ira_implicitly_set_insn_hard_regs): New. 11068 11069 * common.opt (fsched-pressure): New options. 11070 (fsched-reg-pressure-heuristic): Remove. 11071 11072 * ira.c (setup_eliminable_regset): Rename to 11073 ira_setup_eliminable_regset. Make it external. 11074 (expand_reg_info): Pass cover class to setup_reg_classes. 11075 (ira): Call resize_reg_info instead of allocate_reg_info. 11076 11077 * sched-deps.c: Include ira.h. 11078 (implicit_reg_pending_clobbers, implicit_reg_pending_uses): New. 11079 (create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses, 11080 reg_pressure_info, insn_use_p, mark_insn_pseudo_birth, 11081 mark_insn_hard_regno_birth, mark_insn_reg_birth, 11082 mark_pseudo_death, mark_hard_regno_death, mark_reg_death, 11083 mark_insn_reg_store, mark_insn_reg_clobber, 11084 setup_insn_reg_pressure_info): New. 11085 (sched_analyze_1): Update implicit_reg_pending_uses. 11086 (sched_analyze_insn): Find implicit sets, uses, clobbers of regs. 11087 Use them to create dependencies. Set insn reg uses and pressure 11088 info. Process reg_pending_uses in one place. 11089 (free_deps): Free implicit sets. 11090 (remove_from_deps): Remove implicit sets if necessary. Check 11091 implicit sets when clearing reg_last_in_use. 11092 (init_deps_global): Clear implicit_reg_pending_clobbers and 11093 implicit_reg_pending_uses. 11094 11095 * ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs, 11096 ira_memory_move_cost, ira_class_hard_regs, 11097 ira_class_hard_regs_num, ira_no_alloc_regs, 11098 ira_available_class_regs, ira_reg_class_cover_size, 11099 ira_reg_class_cover, ira_class_translate): Move from ira-int.h. 11100 (ira_setup_eliminable_regset, ira_set_pseudo_classes, 11101 ira_implicitly_set_insn_hard_regs): New prototypes. 11102 11103 * ira-costs.c (pseudo_classes_defined_p, allocno_p, 11104 cost_elements_num): New variables. 11105 (allocno_costs, total_costs): Rename to costs and 11106 total_allocno_costs. 11107 (COSTS_OF_ALLOCNO): Rename to COSTS. 11108 (allocno_pref): Rename to pref. 11109 (allocno_pref_buffer): Rename to pref_buffer. 11110 (common_classes): Rename to regno_cover_class. 11111 (COST_INDEX): New. 11112 (record_reg_classes): Set allocno attributes only if allocno_p. 11113 (record_address_regs): Ditto. Use COST_INDEX instead of ALLOCNO_NUM. 11114 (scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM 11115 and COSTS_OF_ALLOCNO. 11116 (print_costs): Rename to print_allocno_costs. 11117 (print_pseudo_costs): New. 11118 (process_bb_node_for_costs): Split into 2 functions with new 11119 function process_bb_for_costs. Pass BB to process_bb_for_costs. 11120 (find_allocno_class_costs): Rename to find_costs_and_classes. Add 11121 new parameter dump_file. Use cost_elements_num instead of 11122 ira_allocnos_num. Make one iteration if preferred classes were 11123 already calculated for scheduler. Make 2 versions of code 11124 depending on allocno_p. 11125 (setup_allocno_cover_class_and_costs): Check allocno_p. Use 11126 regno_cover_class and COSTS instead of common_classes and 11127 COSTS_OF_ALLOCNO. 11128 (init_costs, finish_costs): New. 11129 (ira_costs): Set up allocno_p and cost_elements_num. Call 11130 init_costs and finish_costs. 11131 (ira_set_pseudo_classes): New. 11132 11133 * rtl.h (allocate_reg_info): Remove. 11134 (resize_reg_info): Change return type. 11135 (reg_cover_class): New. 11136 (setup_reg_classes): Add new parameter. 11137 11138 * sched-int.h (struct deps_reg): New member implicit_sets. 11139 (sched_pressure_p, sched_regno_cover_class): New external definitions. 11140 (INCREASE_BITS): New macro. 11141 (struct reg_pressure_data, struct reg_use_data): New. 11142 (struct _haifa_insn_data): Remove reg_weight. Add members 11143 reg_pressure, reg_use_list, reg_set_list, and 11144 reg_pressure_excess_cost_change. 11145 (struct deps): New member implicit_sets. 11146 (pressure_p): New variable. 11147 (COVER_CLASS_BITS, INCREASE_BITS): New macros. 11148 (struct reg_pressure_data, struct reg_use_data): New. 11149 (INSN_REG_WEIGHT): Remove. 11150 (INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST, 11151 INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New macros. 11152 (sched_init_region_reg_pressure_info, 11153 sched_setup_bb_reg_pressure_info): New prototypes. 11154 11155 * reginfo.c (struct reg_pref): New member coverclass. 11156 (reg_cover_class): New function. 11157 (reginfo_init, pass_reginfo_init): Move after free_reg_info. 11158 (reg_info_size): New variable. 11159 (allocate_reg_info): Make static. Setup reg_info_size. 11160 (resize_reg_info): Use reg_info_size. Return flag of resizing. 11161 (setup_reg_classes): Add a new parameter. Setup cover class too. 11162 11163 * Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to 11164 the dependencies. 11165 11166 * sched-rgn.c (deps_join): Set up implicit_sets. 11167 (schedule_region): Set up region and basic blocks pressure 11168 relative info. 11169 11170 * passes.c (init_optimization_passes): Move 11171 pass_subregs_of_mode_init before pass_sched. 11172 111732009-09-02 Martin Jambor <mjambor@suse.cz> 11174 11175 * tree-sra.c (struct access): New field grp_hint. 11176 (dump_access): Dump grp_hint. 11177 (sort_and_splice_var_accesses): Set grp_hint if a group is read 11178 multiple times. 11179 (analyze_access_subtree): Only scalarize accesses with grp_hint set or 11180 those which have been specifically read and somehow written to. 11181 (propagate_subacesses_accross_link): Set grp_hint of right child and 11182 also possibly of the left child. 11183 111842009-09-02 Jakub Jelinek <jakub@redhat.com> 11185 11186 * tree-object-size.c (addr_object_size): Always use object_size_type 11187 0 or 2 when determining the pointer pointed object size. 11188 111892009-09-02 Richard Guenther <rguenther@suse.de> 11190 11191 Revert 11192 2009-08-31 Richard Guenther <rguenther@suse.de> 11193 11194 * builtins.c (fold_builtin_memory_op): Use the alias oracle 11195 to query if the memory regions for memmove overlap. 11196 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the 11197 asserts on pointers, instead deal with odd trees. 11198 (ptr_derefs_may_alias_p): Likewise. 11199 (refs_may_alias_p_1): Constructor bases also never alias. 11200 112012009-08-01 Christian Bruel <christian.bruel@st.com> 11202 11203 Revert: 11204 2009-07-31 Christian Bruel <christian.bruel@st.com> 11205 * gcc/config.gcc (sh*-*-elf): test with_libgloss. 11206 112072009-09-01 Alexandre Oliva <aoliva@redhat.com> 11208 11209 * doc/invoke.texi (-fvar-tracking-assignments): New. 11210 (-fvar-tracking-assignments-toggle): New. 11211 (-fdump-final-insns=file): Mark filename as optional. 11212 (--param min-nondebug-insn-uid): New. 11213 (-gdwarf-@{version}): Mention version 4. 11214 * opts.c (common_handle_option): Accept it. 11215 * tree-vrp.c (find_assert_locations_1): Skip debug stmts. 11216 * regrename.c (regrename_optimize): Drop last. Don't count debug 11217 insns as uses. Don't reject change because of debug insn. 11218 (do_replace): Reject DEBUG_INSN as chain starter. Take base_regno 11219 from the chain starter, and check for inexact matches in DEBUG_INSNS. 11220 (scan_rtx_reg): Accept inexact matches in DEBUG_INSNs. 11221 (build_def_use): Simplify and fix the marking of DEBUG_INSNs. 11222 * sched-ebb.c (schedule_ebbs): Skip boundary debug insns. 11223 * fwprop.c (forward_propagate_and_simplify): ...into debug insns. 11224 * doc/gimple.texi (is_gimple_debug): New. 11225 (gimple_debug_bind_p): New. 11226 (is_gimple_call, gimple_assign_cast_p): End sentence with period. 11227 * doc/install.texi (bootstrap-debug): More details. 11228 (bootstrap-debug-big, bootstrap-debug-lean): Document. 11229 (bootstrap-debug-lib): More details. 11230 (bootstrap-debug-ckovw): Update. 11231 (bootstrap-time): New. 11232 * tree-into-ssa.c (mark_def_sites): Skip debug stmts. 11233 (insert_phi_nodes_for): Insert debug stmts. 11234 (rewrite_stmt): Take iterator. Insert debug stmts. 11235 (rewrite_enter_block): Adjust. 11236 (maybe_replace_use_in_debug_stmt): New. 11237 (rewrite_update_stmt): Use it. 11238 (mark_use_interesting): Return early for debug stmts. 11239 * tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug 11240 stmts before replacing stmt. 11241 (move_computations_stmt): Likewise. 11242 * ira-conflicts.c (add_copies): Skip debug insns. 11243 * regstat.c (regstat_init_n_sets_and_refs): Discount debug insns. 11244 (regstat_bb_compute_ri): Skip debug insns. 11245 * tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts. 11246 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt, 11247 check_loop_closed_ssa_stmt): Skip debug stmts. 11248 * tree-tailcall.c (find_tail_calls): Likewise. 11249 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise. 11250 * tree.h (MAY_HAVE_DEBUG_STMTS): New. 11251 (build_var_debug_value_stat): Declare. 11252 (build_var_debug_value): Define. 11253 (target_for_debug_bind): Declare. 11254 * reload.c (find_equiv_reg): Skip debug insns. 11255 * rtlanal.c (reg_used_between_p): Skip debug insns. 11256 (side_effects_p): Likewise. 11257 (canonicalize_condition): Likewise. 11258 * ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug 11259 insns never depend on debug insns. 11260 (create_ddg_dep_no_link): Likewise. 11261 (add_cross_iteration_register_deps): Use ANTI_DEP for debug insns. 11262 Don't add inter-loop dependencies for debug insns. 11263 (build_intra_loop_deps): Likewise. 11264 (create_ddg): Count debug insns. 11265 * ddg.h (struct ddg::num_debug): New. 11266 (num_backargs): Pair up with previous int field. 11267 * diagnostic.c (diagnostic_report_diagnostic): Skip notes on 11268 -fcompare-debug-second. 11269 * final.c (get_attr_length_1): Skip debug insns. 11270 (rest_of_clean-state): Don't dump CFA_RESTORE_STATE. 11271 * gcc.c (invoke_as): Call compare-debug-dump-opt. 11272 (driver_self_specs): Map -fdump-final-insns to 11273 -fdump-final-insns=.. 11274 (get_local_tick): New. 11275 (compare_debug_dump_opt_spec_function): Test for . argument and 11276 compute output name. Compute temp output spec without flag name. 11277 Compute -frandom-seed. 11278 (OPT): Undef after use. 11279 * cfgloopanal.c (num_loop_insns): Skip debug insns. 11280 (average_num_loop_insns): Likewise. 11281 * params.h (MIN_NONDEBUG_INSN_UID): New. 11282 * gimple.def (GIMPLE_DEBUG): New. 11283 * ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts. 11284 * auto-inc-dec.c (merge_in_block): Skip debug insns. 11285 (merge_in_block): Fix whitespace. 11286 * toplev.c (flag_var_tracking): Update comment. 11287 (flag_var_tracking_assignments): New. 11288 (flag_var_tracking_assignments_toggle): New. 11289 (process_options): Don't open final insns dump file if we're not 11290 going to write to it. Compute defaults for var_tracking. 11291 * df-scan.c (df_insn_rescan_debug_internal): New. 11292 (df_uses_record): Handle debug insns. 11293 * haifa-sched.c (ready): Initialize n_debug. 11294 (contributes_to_priority): Skip debug insns. 11295 (dep_list_size): New. 11296 (priority): Use it. 11297 (rank_for_schedule): Likewise. Schedule debug insns as soon as 11298 they're ready. Disregard previous debug insns to make decisions. 11299 (queue_insn): Never queue debug insns. 11300 (ready_add, ready_remove_first, ready_remove): Count debug insns. 11301 (schedule_insn): Don't reject debug insns because of issue rate. 11302 (get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns. 11303 (queue_to_ready): Skip and discount debug insns. 11304 (choose_ready): Let debug insns through. 11305 (schedule_block): Check boundary debug insns. Discount debug 11306 insns, schedule them early. Adjust whitespace. 11307 (set_priorities): Check for boundary debug insns. 11308 (add_jump_dependencies): Use dep_list_size. 11309 (prev_non_location_insn): New. 11310 (check_cfg): Use it. 11311 * tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug 11312 stmts. 11313 (remove_unused_ivs): Reset debug stmts. 11314 * modulo-sched.c (const_iteration_count): Skip debug insns. 11315 (res_MII): Discount debug insns. 11316 (loop_single_full_bb_p): Skip debug insns. 11317 (sms_schedule): Likewise. 11318 (sms_schedule_by_order): Likewise. 11319 (ps_has_conflicts): Likewise. 11320 * caller-save.c (refmarker_fn): New. 11321 (save_call_clobbered_regs): Replace regs with saved mem in 11322 debug insns. 11323 (mark_referenced_regs): Take pointer, mark and arg. Adjust. 11324 Call refmarker_fn mark for hardregnos. 11325 (mark_reg_as_referenced): New. 11326 (replace_reg_with_saved_mem): New. 11327 * ipa-pure-const.c (check_stmt): Skip debug stmts. 11328 * cse.c (cse_insn): Canonicalize debug insns. Skip them when 11329 searching back. 11330 (cse_extended_basic_block): Skip debug insns. 11331 (count_reg_usage): Likewise. 11332 (is_dead_reg): New, split out of... 11333 (set_live_p): ... here. 11334 (insn_live_p): Use it for debug insns. 11335 * tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts. 11336 (execute_optimize_stdarg): Likewise. 11337 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise. 11338 * tree-ssa-propagate.c (substitute_and_fold): Don't regard 11339 changes in debug stmts as changes. 11340 * sel-sched.c (moving_insn_creates_bookkeeping_block_p): New. 11341 (moveup_expr): Don't move across debug insns. Don't move 11342 debug insn if it would create a bookkeeping block. 11343 (moveup_expr_cached): Don't use cache for debug insns that 11344 are heads of blocks. 11345 (compute_av_set_inside_bb): Skip debug insns. 11346 (sel_rank_for_schedule): Schedule debug insns first. Remove 11347 dead code. 11348 (block_valid_for_bookkeeping_p); Support lax searches. 11349 (create_block_for_bookkeeping): Adjust block numbers when 11350 encountering debug-only blocks. 11351 (find_place_for_bookkeeping): Deal with debug-only blocks. 11352 (generate_bookkeeping_insn): Accept no place to insert. 11353 (remove_temp_moveop_nops): New argument full_tidying. 11354 (prepare_place_to_insert): Deal with debug insns. 11355 (advance_state_on_fence): Debug insns don't start cycles. 11356 (update_boundaries): Take fence as argument. Deal with 11357 debug insns. 11358 (schedule_expr_on_boundary): No full_tidying on debug insns. 11359 (fill_insns): Deal with debug insns. 11360 (track_scheduled_insns_and_blocks): Don't count debug insns. 11361 (need_nop_to_preserve_insn_bb): New, split out of... 11362 (remove_insn_from_stream): ... this. 11363 (fur_orig_expr_not_found): Skip debug insns. 11364 * rtl.def (VALUE): Move up. 11365 (DEBUG_INSN): New. 11366 * tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug stmts. 11367 (nearest_common_dominator_of_uses): Take debug_stmts argument. 11368 Set it if debug stmts are found. 11369 (statement_sink_location): Skip debug stmts. Propagate 11370 moving defs into debug stmts. 11371 * ifcvt.c (first_active_insn): Skip debug insns. 11372 (last_active_insns): Likewise. 11373 (cond_exec_process_insns): Likewise. 11374 (noce_process_if_block): Likewise. 11375 (check_cond_move_block): Likewise. 11376 (cond_move_convert_if_block): Likewise. 11377 (block_jumps_and_fallthru_p): Likewise. 11378 (dead_or_predicable): Likewise. 11379 * dwarf2out.c (debug_str_hash_forced): New. 11380 (find_AT_string): Add comment. 11381 (gen_label_for_indirect_string): New. 11382 (get_debug_string_label): New. 11383 (AT_string_form): Use it. 11384 (mem_loc_descriptor): Handle non-TLS symbols. Handle MINUS , DIV, 11385 MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING. Accept but 11386 discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and 11387 several operations that cannot be represented with DWARF opcodes. 11388 (loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND. Require 11389 dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value. 11390 (dwarf2out_var_location): Take during-call mark into account. 11391 (output_indirect_string): Update comment. Output if there are 11392 label and references. 11393 (prune_indirect_string): New. 11394 (prune_unused_types): Call it if debug_str_hash_forced. 11395 More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>: 11396 (dw_long_long_const): Remove. 11397 (struct dw_val_struct): Change val_long_long type to rtx. 11398 (print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for 11399 val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair. 11400 (output_die): Likewise. Use HOST_BITS_PER_WIDE_INT size of each 11401 component instead of HOST_BITS_PER_LONG. 11402 (output_loc_operands): Likewise. For const8* assert 11403 HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64. 11404 (output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT 11405 rather than HOST_BITS_PER_LONG is >= 64. 11406 (add_AT_long_long): Remove val_hi and val_lo arguments, add 11407 val_const_double. 11408 (size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of 11409 HOST_BITS_PER_LONG for dw_val_class_long_long. 11410 (add_const_value_attribute): Adjust add_AT_long_long caller. Don't 11411 handle TLS SYMBOL_REFs. If CONST wraps a constant, tail recurse. 11412 (dwarf_stack_op_name): Handle DW_OP_implicit_value and 11413 DW_OP_stack_value. 11414 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw): 11415 Handle DW_OP_implicit_value. 11416 (extract_int): Move prototype earlier. 11417 (mem_loc_descriptor): For SUBREG punt if inner 11418 mode size is wider than DWARF2_ADDR_SIZE. Handle SIGN_EXTEND 11419 and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}. Handle 11420 EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN, 11421 UMAX, SIGN_EXTRACT, ZERO_EXTRACT. 11422 (loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE 11423 instead of Pmode size. 11424 (loc_descriptor): Add MODE argument. Handle CONST_INT, CONST_DOUBLE, 11425 CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode, 11426 attempt to handle other expressions. Don't handle TLS SYMBOL_REFs. 11427 (concat_loc_descriptor, concatn_loc_descriptor, 11428 loc_descriptor_from_tree_1): Adjust loc_descriptor callers. 11429 (add_location_or_const_value_attribute): Likewise. For single 11430 location loc_lists attempt to use add_const_value_attribute 11431 for constant decls. Add DW_AT_const_value even if 11432 NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING 11433 in its expression. 11434 * cfgbuild.c (inside_basic_block_p): Handle debug insns. 11435 (control_flow_insn_p): Likewise. 11436 * tree-parloops.c (eliminate_local_variables_stmt): Handle debug stmt. 11437 (separate_decls_in_region_debug_bind): New. 11438 (separate_decls_in_region): Process debug bind stmts afterwards. 11439 * recog.c (verify_changes): Handle debug insns. 11440 (extract_insn): Likewise. 11441 (peephole2_optimize): Skip debug insns. 11442 * dse.c (scan_insn): Skip debug insns. 11443 * sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument. 11444 Pass it on. 11445 (setup_id_for_insn): Handle debug insns. 11446 (maybe_tidy_empty_bb): Adjust whitespace. 11447 (tidy_control_flow): Skip debug insns. 11448 (sel_remove_insn): Adjust for debug insns. 11449 (sel_estimate_number_of_insns): Skip debug insns. 11450 (create_insn_rtx_from_pattern): Handle debug insns. 11451 (create_copy_of_insn_rtx): Likewise. 11452 * sel-sched-.h (sel_bb_end): Declare. 11453 (sel_bb_empty_or_nop_p): New. 11454 (get_all_loop_exits): Use it. 11455 (_eligible_successor_edge_p): Likewise. 11456 (return_nop_to_pool): Adjust. 11457 * tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts. 11458 * ira-lives.c (process_bb_node_lives): Skip debug insns. 11459 * gimple-pretty-print.c (dump_gimple_debug): New. 11460 (dump_gimple_stmt): Use it. 11461 (dump_bb_header): Skip gimple debug stmts. 11462 * regmove.c (optimize_reg_copy_1): Discount debug insns. 11463 (fixup_match_2): Likewise. 11464 (regmove_backward_pass): Likewise. Simplify combined 11465 replacement. Handle debug insns. 11466 * function.c (instantiate_virtual_regs): Handle debug insns. 11467 * function.h (struct emit_status): Add x_cur_debug_insn_uid. 11468 * print-rtl.h: Include cselib.h. 11469 (print_rtx): Print VALUEs. Split out and recurse for VAR_LOCATIONs. 11470 * df.h (df_inns_rescan_debug_internal): Declare. 11471 * gcse.c (alloc_hash_table): Estimate n_insns. 11472 (cprop_insn): Don't regard debug insns as changes. 11473 (bypass_conditional_jumps): Skip debug insns. 11474 (one_pre_gcse_pass): Adjust. 11475 (one_code_hoisting_pass): Likewise. 11476 (compute_ld_motion_mems): Skip debug insns. 11477 (one_cprop_pass): Adjust. 11478 * tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts. 11479 (if_convertible_stmt_p): Handle debug stmts. 11480 * init-regs.c (initialize_uninitialized_regs): Skip debug insns. 11481 * tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts. 11482 * ira-build.c (create_bb_allocnos): Skip debug insns. 11483 * tree-flow-inline.h (has_zero_uses): Discount debug stmts. 11484 (has_single_use): Likewise. 11485 (single_imm_use): Likewise. 11486 (num_imm_uses): Likewise. 11487 * tree-ssa-phiopt.c (empty_block_p): Skip debug stmts. 11488 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts. 11489 (create_outofssa_var_map): Likewise. 11490 * lower-subreg.c (adjust_decomposed_uses): New. 11491 (resolve_debug): New. 11492 (decompose_multiword_subregs): Use it. 11493 * tree-dfa.c (find_referenced_vars): Skip debug stmts. 11494 * emit-rtl.c: Include params.h. 11495 (cur_debug_insn_uid): Define. 11496 (set_new_first_and_last_insn): Set cur_debug_insn_uid too. 11497 (copy_rtx_if_shared_1): Handle debug insns. 11498 (reset_used_flags): Likewise. 11499 (set_used_flags): LIkewise. 11500 (get_max_insn_count): New. 11501 (next_nondebug_insn): New. 11502 (prev_nondebug_insn): New. 11503 (make_debug_insn_raw): New. 11504 (emit_insn_before_noloc): Handle debug insns. 11505 (emit_jump_insn_before_noloc): Likewise. 11506 (emit_call_insn_before_noloc): Likewise. 11507 (emit_debug_insn_before_noloc): New. 11508 (emit_insn_after_noloc): Handle debug insns. 11509 (emit_jump_insn_after_noloc): Likewise. 11510 (emit_call_insn_after_noloc): Likewise. 11511 (emit_debug_insn_after_noloc): Likewise. 11512 (emit_insn_after): Take loc from earlier non-debug insn. 11513 (emit_jump_insn_after): Likewise. 11514 (emit_call_insn_after): Likewise. 11515 (emit_debug_insn_after_setloc): New. 11516 (emit_debug_insn_after): New. 11517 (emit_insn_before): Take loc from later non-debug insn. 11518 (emit_jump_insn_before): Likewise. 11519 (emit_call_insn_before): Likewise. 11520 (emit_debug_insn_before_setloc): New. 11521 (emit_debug_insn_before): New. 11522 (emit_insn): Handle debug insns. 11523 (emit_debug_insn): New. 11524 (emit_jump_insn): Handle debug insns. 11525 (emit_call_insn): Likewise. 11526 (emit): Likewise. 11527 (init_emit): Take min-nondebug-insn-uid into account. 11528 Initialize cur_debug_insn_uid. 11529 (emit_copy_of_insn_after): Handle debug insns. 11530 * cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite 11531 location of single rhs in place. 11532 (maybe_dump_rtl_for_gimple_stmt): Dump lineno. 11533 (floor_sdiv_adjust): New. 11534 (cell_sdiv_adjust): New. 11535 (cell_udiv_adjust): New. 11536 (round_sdiv_adjust): New. 11537 (round_udiv_adjust): New. 11538 (wrap_constant): Moved from cselib. 11539 (unwrap_constant): New. 11540 (expand_debug_expr): New. 11541 (expand_debug_locations): New. 11542 (expand_gimple_basic_block): Drop hiding redeclaration. Expand 11543 debug bind stmts. 11544 (gimple_expand_cfg): Expand debug locations. 11545 * cselib.c: Include tree-pass.h. 11546 (struct expand_value_data): New. 11547 (cselib_record_sets_hook): New. 11548 (PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New. 11549 (cselib_clear_table): Move, and implemnet in terms of... 11550 (cselib_reset_table_with_next_value): ... this. 11551 (cselib_get_next_unknown_value): New. 11552 (discard_useless_locs): Don't discard preserved values. 11553 (cselib_preserve_value): New. 11554 (cselib_preserved_value_p): New. 11555 (cselib_preserve_definitely): New. 11556 (cselib_clear_preserve): New. 11557 (cselib_preserve_only_values): New. 11558 (new_cselib_val): Take rtx argument. Dump it in details. 11559 (cselib_lookup_mem): Adjust. 11560 (expand_loc): Take regs_active in struct. Adjust. Silence 11561 dumps unless details are requested. 11562 (cselib_expand_value_rtx_cb): New. 11563 (cselib_expand_value_rtx): Rename and reimplment in terms of... 11564 (cselib_expand_value_rtx_1): ... this. Adjust. Silence dumps 11565 without details. Copy more subregs. Try to resolve values 11566 using a callback. Wrap constants. 11567 (cselib_subst_to_values): Adjust. 11568 (cselib_log_lookup): New. 11569 (cselib_lookup): Call it. 11570 (cselib_invalidate_regno): Don't count preserved values as useless. 11571 (cselib_invalidate_mem): Likewise. 11572 (cselib_record_set): Likewise. 11573 (struct set): Renamed to cselib_set, moved to cselib.h. 11574 (cselib_record_sets): Adjust. Call hook. 11575 (cselib_process_insn): Reset table when it would be cleared. 11576 (dump_cselib_val): New. 11577 (dump_cselib_table): New. 11578 * tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts. 11579 (remove_forwarder_block): Support moving debug stmts. 11580 * cselib.h (cselib_record_sets_hook): Declare. 11581 (cselib_expand_callback): New type. 11582 (cselib_expand_value_rtx_cb): Declare. 11583 (cselib_reset_table_with_next_value): Declare. 11584 (cselib_get_next_unknown_value): Declare. 11585 (cselib_preserve_value): Declare. 11586 (cselib_preserved_value_p): Declare. 11587 (cselib_preserve_only_values): Declare. 11588 (dump_cselib_table): Declare. 11589 * cfgcleanup.c (flow_find_cross_jump): Skip debug insns. 11590 (try_crossjump_to_edge): Likewise. 11591 (delete_unreachable_blocks): Remove dominant GIMPLE blocks after 11592 dominated blocks when debug stmts are present. 11593 * simplify-rtx.c (delegitimize_mem_from_attrs): New. 11594 * tree-ssa-live.c (remove_unused_locals): Skip debug stmts. 11595 (set_var_live_on_entry): Likewise. 11596 * loop-invariant.c (find_invariants_bb): Skip debug insns. 11597 * cfglayout.c (curr_location, last_location): Make static. 11598 (set_curr_insn_source_location): Don't avoid bouncing. 11599 (get_curr_insn_source_location): New. 11600 (get_curr_insn_block): New. 11601 (duplicate_insn_chain): Handle debug insns. 11602 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate 11603 into debug stmts. 11604 * common.opt (fcompare-debug): Move to sort order. 11605 (fdump-unnumbered-links): Likewise. 11606 (fvar-tracking-assignments): New. 11607 (fvar-tracking-assignments-toggle): New. 11608 * tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks 11609 because of debug stmts. 11610 (mark_stmt_if_obviously_necessary): Mark debug stmts. 11611 (eliminate_unnecessary_stmts): Walk dominated blocks before 11612 dominators. 11613 * tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts. 11614 * ira.c (memref_used_between_p): Skip debug insns. 11615 (update_equiv_regs): Likewise. 11616 * sched-deps.c (sd_lists_size): Accept empty list. 11617 (sd_init_insn): Mark debug insns. 11618 (sd_finish_insn): Unmark them. 11619 (sd_add_dep): Reject non-debug deps on debug insns. 11620 (fixup_sched_groups): Give debug insns group treatment. 11621 Skip debug insns. 11622 (sched_analyze_reg): Don't mark debug insns for sched before call. 11623 (sched_analyze_2): Handle debug insns. 11624 (sched_analyze_insn): Compute next non-debug insn. Handle debug 11625 insns. 11626 (deps_analyze_insn): Handle debug insns. 11627 (deps_start_bb): Skip debug insns. 11628 (init_deps): Initialize last_debug_insn. 11629 * tree-ssa.c (target_for_debug_bind): New. 11630 (find_released_ssa_name): New. 11631 (propagate_var_def_into_debug_stmts): New. 11632 (propagate_defs_into_debug_stmts): New. 11633 (verify_ssa): Skip debug bind stmts without values. 11634 (warn_uninialized_vars): Skip debug stmts. 11635 * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default. 11636 * rtl.c (rtx_equal_p_cb): Handle VALUEs. 11637 (rtx_equal_p): Likewise. 11638 * ira-costs.c (scan_one_insn): Skip debug insns. 11639 (process_bb_node_for_hard_reg_moves): Likewise. 11640 * rtl.h (DEBUG_INSN_P): New. 11641 (NONDEBUG_INSN_P): New. 11642 (MAY_HAVE_DEBUG_INSNS): New. 11643 (INSN_P): Accept debug insns. 11644 (RTX_FRAME_RELATED_P): Likewise. 11645 (INSN_DELETED_P): Likewise 11646 (PAT_VAR_LOCATION_DECL): New. 11647 (PAT_VAR_LOCATION_LOC): New. 11648 (PAT_VAR_OCATION_STATUS): New. 11649 (NOTE_VAR_LOCATION_DECL): Reimplement. 11650 (NOTE_VAR_LOCATION_LOC): Likewise. 11651 (NOTE_VAR_LOCATION_STATUS): Likewise. 11652 (INSN_VAR_LOCATION): New. 11653 (INSN_VAR_LOCATION_DECL): New. 11654 (INSN_VAR_LOCATION_LOC): New. 11655 (INSN_VAR_LOCATION_STATUS): New. 11656 (gen_rtx_UNKNOWN_VAR_LOC): New. 11657 (VAR_LOC_UNKNOWN_P): New. 11658 (NOTE_DURING_CALL_P): New. 11659 (SCHED_GROUP_P): Accept debug insns. 11660 (emit_debug_insn_before): Declare. 11661 (emit_debug_insn_before_noloc): Declare. 11662 (emit_debug_insn_beore_setloc): Declare. 11663 (emit_debug_insn_after): Declare. 11664 (emit_debug_insn_after_noloc): Declare. 11665 (emit_debug_insn_after_setloc): Declare. 11666 (emit_debug_insn): Declare. 11667 (make_debug_insn_raw): Declare. 11668 (prev_nondebug_insn): Declare. 11669 (next_nondebug_insn): Declare. 11670 (delegitimize_mem_from_attrs): Declare. 11671 (get_max_insn_count): Declare. 11672 (wrap_constant): Declare. 11673 (unwrap_constant): Declare. 11674 (get_curr_insn_source_location): Declare. 11675 (get_curr_insn_block): Declare. 11676 * tree-inline.c (insert_debug_decl_map): New. 11677 (processing_debug_stmt): New. 11678 (remap_decl): Don't create new mappings in debug stmts. 11679 (remap_gimple_op_r): Don't add references in debug stmts. 11680 (copy_tree_body_r): Likewise. 11681 (remap_gimple_stmt): Handle debug bind stmts. 11682 (copy_bb): Skip debug stmts. 11683 (copy_edges_for_bb): Likewise. 11684 (copy_debug_stmt): New. 11685 (copy_debug_stmts): New. 11686 (copy_body): Copy debug stmts at the end. 11687 (insert_init_debug_bind): New. 11688 (insert_init_stmt): Take id. Skip and emit debug stmts. 11689 (setup_one_parameter): Remap variable earlier, register debug mapping. 11690 (estimate_num_insns): Skip debug stmts. 11691 (expand_call_inline): Preserve debug_map. 11692 (optimize_inline_calls): Check for no debug_stmts left-overs. 11693 (unsave_expr_now): Preserve debug_map. 11694 (copy_gimple_seq_and_replace_locals): Likewise. 11695 (tree_function_versioning): Check for no debug_stmts left-overs. 11696 Init and destroy debug_map as needed. Split edges unconditionally. 11697 (build_duplicate_type): Init and destroy debug_map as needed. 11698 * tree-inline.h: Include gimple.h instead of pointer-set.h. 11699 (struct copy_body_data): Add debug_stmts and debug_map. 11700 * sched-int.h (struct ready_list): Add n_debug. 11701 (struct deps): Add last_debug_insn. 11702 (DEBUG_INSN_SCHED_P): New. 11703 (BOUNDARY_DEBUG_INSN_P): New. 11704 (SCHEDULE_DEBUG_INSN_P): New. 11705 (sd_iterator_cond): Accept empty list. 11706 * combine.c (create_log_links): Skip debug insns. 11707 (combine_instructions): Likewise. 11708 (cleanup_auto_inc_dec): New. From Jakub Jelinek: Make sure the 11709 return value is always unshared. 11710 (struct rtx_subst_pair): New. 11711 (auto_adjust_pair): New. 11712 (propagate_for_debug_subst): New. 11713 (propagate_for_debug): New. 11714 (try_combine): Skip debug insns. Propagate removed defs into 11715 debug insns. 11716 (next_nonnote_nondebug_insn): New. 11717 (distribute_notes): Use it. Skip debug insns. 11718 (distribute_links): Skip debug insns. 11719 * tree-outof-ssa.c (set_location_for_edge): Likewise. 11720 * resource.c (mark_target_live_regs): Likewise. 11721 * var-tracking.c: Include cselib.h and target.h. 11722 (enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and 11723 MO_VAL_SET. 11724 (micro_operation_type_name): New. 11725 (enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN. 11726 (struct micro_operation_def): Update comments. 11727 (decl_or_value): New type. Use instead of decls. 11728 (struct emit_note_data_def): Add vars. 11729 (struct attrs_def): Use decl_or_value. 11730 (struct variable_tracking_info_def): Add permp, flooded. 11731 (struct location_chain_def): Update comment. 11732 (struct variable_part_def): Use decl_or_value. 11733 (struct variable_def): Make var_part a variable length array. 11734 (valvar_pool): New. 11735 (scratch_regs): New. 11736 (cselib_hook_called): New. 11737 (dv_is_decl_p): New. 11738 (dv_is_value_p): New. 11739 (dv_as_decl): New. 11740 (dv_as_value): New. 11741 (dv_as_opaque): New. 11742 (dv_onepart_p): New. 11743 (dv_pool): New. 11744 (IS_DECL_CODE): New. 11745 (check_value_is_not_decl): New. 11746 (dv_from_decl): New. 11747 (dv_from_value): New. 11748 (dv_htab_hash): New. 11749 (variable_htab_hash): Use it. 11750 (variable_htab_eq): Support values. 11751 (variable_htab_free): Free from the right pool. 11752 (attrs_list_member, attrs_list_insert): Use decl_or_value. 11753 (attrs_list_union): Adjust. 11754 (attrs_list_mpdv_union): New. 11755 (tie_break_pointers): New. 11756 (canon_value_cmp): New. 11757 (unshare_variable): Return possibly-modified slot. 11758 (vars_copy_1): Adjust. 11759 (var_reg_decl_set): Adjust. Split out of... 11760 (var_reg_set): ... this. 11761 (get_init_value): Adjust. 11762 (var_reg_delete_and_set): Adjust. 11763 (var_reg_delete): Adjust. 11764 (var_regno_delete): Adjust. 11765 (var_mem_decl_set): Split out of... 11766 (var_mem_set): ... this. 11767 (var_mem_delete_and_set): Adjust. 11768 (var_mem_delete): Adjust. 11769 (val_store): New. 11770 (val_reset): New. 11771 (val_resolve): New. 11772 (variable_union): Adjust. Speed up merge of 1-part vars. 11773 (variable_canonicalize): Use unshared slot. 11774 (VALUED_RECURSED_INTO): New. 11775 (find_loc_in_1pdv): New. 11776 (struct dfset_merge): New. 11777 (insert_into_intersection): New. 11778 (intersect_loc_chains): New. 11779 (loc_cmp): New. 11780 (canonicalize_loc_order_check): New. 11781 (canonicalize_values_mark): New. 11782 (canonicalize_values_star): New. 11783 (variable_merge_over_cur): New. 11784 (variable_merge_over_src): New. 11785 (dataflow_set_merge): New. 11786 (dataflow_set_equiv_regs): New. 11787 (remove_duplicate_values): New. 11788 (struct dfset_post_merge): New. 11789 (variable_post_merge_new_vals): New. 11790 (variable_post_merge_perm_vals): New. 11791 (dataflow_post_merge_adjust): New. 11792 (find_mem_expr_in_1pdv): New. 11793 (dataflow_set_preserve_mem_locs): New. 11794 (dataflow_set_remove_mem_locs): New. 11795 (dataflow_set_clear_at_call): New. 11796 (onepart_variable_different_p): New. 11797 (variable_different_p): Use it. 11798 (dataflow_set_different_1): Adjust. Make detailed dump more verbose. 11799 (track_expr_p): Add need_rtl parameter. Don't generate rtl 11800 if not needed. 11801 (track_loc_p): Pass it true. 11802 (struct count_use_info): New. 11803 (find_use_val): New. 11804 (replace_expr_with_values): New. 11805 (log_op_type): New. 11806 (use_type): New, partially split out of... 11807 (count_uses): ... this. Count new micro-ops. 11808 (count_uses_1): Adjust. 11809 (count_stores): Adjust. 11810 (count_with_sets): New. 11811 (VAL_NEEDS_RESOLUTION): New. 11812 (VAL_HOLDS_TRACK_EXPR): New. 11813 (VAL_EXPR_IS_COPIED): New. 11814 (VAL_EXPR_IS_CLOBBERED): New. 11815 (add_uses): Adjust. Generate new micro-ops. 11816 (add_uses_1): Adjust. 11817 (add_stores): Generate new micro-ops. 11818 (add_with_sets): New. 11819 (find_src_status): Adjust. 11820 (find_src_set_src): Adjust. 11821 (compute_bb_dataflow): Use dataflow_set_clear_at_call. 11822 Handle new micro-ops. Canonicalize value equivalances. 11823 (vt_find_locations): Compute total size of hash tables for 11824 dumping. Perform merge for var-tracking-assignments. Don't 11825 disregard single-block loops. 11826 (dump_attrs_list): Handle decl_or_value. 11827 (dump_variable): Take variable. Deal with decl_or_value. 11828 (dump_variable_slot): New. 11829 (dump_vars): Use it. 11830 (dump_dataflow_sets): Adjust. 11831 (set_slot_part): New, extended to support one-part variables 11832 after splitting out of... 11833 (set_variable_part): ... this. 11834 (clobber_slot_part): New, split out of... 11835 (clobber_variable_part): ... this. 11836 (delete_slot_part): New, split out of... 11837 (delete_variable_part): .... this. 11838 (check_wrap_constant): New. 11839 (vt_expand_loc_callback): New. 11840 (vt_expand_loc): New. 11841 (emit_note_insn_var_location): Adjust. Handle values. Handle 11842 EMIT_NOTE_AFTER_CALL_INSN. 11843 (emit_notes_for_differences_1): Adjust. Handle values. 11844 (emit_notes_for_differences_2): Likewise. 11845 (emit_notes_for_differences): Adjust. 11846 (emit_notes_in_bb): Take pointer to set. Emit AFTER_CALL_INSN notes. 11847 Adjust. Handle new micro-ops. 11848 (vt_add_function_parameters): Adjust. Create and bind values. 11849 (vt_initialize): Adjust. Initialize scratch_regs and 11850 valvar_pool, flooded and perm.. Initialize and use cselib. Log 11851 operations. Move some code to count_with_sets and add_with_sets. 11852 (delete_debug_insns): New. 11853 (vt_debug_insns_local): New. 11854 (vt_finalize): Release permp, valvar_pool, scratch_regs. Finish 11855 cselib. 11856 (var_tracking_main): If var-tracking-assignments is enabled 11857 but var-tracking isn't, delete debug insns and leave. Likewise 11858 if we exceed limits or fail the stack adjustments tests, and 11859 after all var-tracking processing. 11860 More in var-tracking, from Jakub Jelinek <jakub@redhat.com>: 11861 (dataflow_set): Add traversed_vars. 11862 (value_chain, const_value_chain): New typedefs. 11863 (value_chain_pool, value_chains): New variables. 11864 (value_chain_htab_hash, value_chain_htab_eq, add_value_chain, 11865 add_value_chains, add_cselib_value_chains, remove_value_chain, 11866 remove_value_chains, remove_cselib_value_chains): New functions. 11867 (shared_hash_find_slot_unshare_1, shared_hash_find_slot_1, 11868 shared_hash_find_slot_noinsert_1, shared_hash_find_1): New 11869 static inlines. 11870 (shared_hash_find_slot_unshare, shared_hash_find_slot, 11871 shared_hash_find_slot_noinsert, shared_hash_find): Update. 11872 (dst_can_be_shared): New variable. 11873 (unshare_variable): Unshare set->vars if shared, use shared_hash_*. 11874 Clear dst_can_be_shared. If set->traversed_vars is non-NULL and 11875 different from set->vars, look up slot again instead of using the 11876 passed in slot. 11877 (dataflow_set_init): Initialize traversed_vars. 11878 (variable_union): Use shared_hash_*. Use initially NO_INSERT 11879 lookup if set->vars is shared. Don't keep slot cleared before 11880 calling unshare_variable. Unshare set->vars if needed. Adjust 11881 unshare_variable callers. Clear dst_can_be_shared if needed. 11882 Even ->refcount == 1 vars must be unshared if set->vars is shared 11883 and var needs to be modified. 11884 (dataflow_set_union): Set traversed_vars during canonicalization. 11885 (VALUE_CHANGED, DECL_CHANGED): Define. 11886 (set_dv_changed, dv_changed_p): New static inlines. 11887 (track_expr_p): Clear DECL_CHANGED. 11888 (dump_dataflow_sets): Set it. 11889 (variable_was_changed): Call set_dv_changed. 11890 (emit_note_insn_var_location): Likewise. 11891 (changed_variables_stack): New variable. 11892 (check_changed_vars_1, check_changed_vars_2): New functions. 11893 (emit_notes_for_changes): Do nothing if changed_variables is 11894 empty. Traverse changed_variables with check_changed_vars_1, 11895 call check_changed_vars_2 on each changed_variables_stack entry. 11896 (emit_notes_in_bb): Add SET argument. Just clear it at the 11897 beginning, use it instead of local &set, don't destroy it at the end. 11898 (vt_emit_notes): Call dataflow_set_clear early on all 11899 VTI(bb)->out sets, never use them, instead use emit_notes_in_bb 11900 computed set, dataflow_set_clear also VTI(bb)->in when we are 11901 done with the basic block. Initialize changed_variables_stack, 11902 free it afterwards. If ENABLE_CHECKING verify that after noting 11903 differences to an empty set value_chains hash table is empty. 11904 (vt_initialize): Initialize value_chains and value_chain_pool. 11905 (vt_finalize): Delete value_chains htab, free value_chain_pool. 11906 (variable_tracking_main): Call dump_dataflow_sets before calling 11907 vt_emit_notes, not after it. 11908 * tree-flow.h (propagate_defs_into_debug_stmts): Declare. 11909 (propagate_var_def_into_debug_stmts): Declare. 11910 * df-problems.c (df_lr_bb_local_compute): Skip debug insns. 11911 (df_set_note): Reject debug insns. 11912 (df_whole_mw_reg_dead_p): Take added_notes_p argument. Don't 11913 add notes to debug insns. 11914 (df_note_bb_compute): Adjust. Likewise. 11915 (df_simulate_uses): Skip debug insns. 11916 (df_simulate_initialize_backwards): Likewise. 11917 * reg-stack.c (subst_stack_regs_in_debug_insn): New. 11918 (subst_stack_regs_pat): Reject debug insns. 11919 (convert_regs_1): Handle debug insns. 11920 * Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H. 11921 (print-rtl.o): Depend on cselib.h. 11922 (cselib.o): Depend on TREE_PASS_H. 11923 (var-tracking.o): Depend on cselib.h and TARGET_H. 11924 * sched-rgn.c (rgn_estimate_number_of_insns): Discount debug insns. 11925 (init_ready_list): Skip boundary debug insns. 11926 (add_branch_dependences): Skip debug insns. 11927 (free_block_dependencies): Check for blocks with only debug insns. 11928 (compute_priorities): Likewise. 11929 * gimple.c (gss_for_code): Handle GIMPLE_DEBUG. 11930 (gimple_build_with_ops_stat): Take subcode as unsigned. Adjust 11931 all callers. 11932 (gimple_build_debug_bind_stat): New. 11933 (empty_body_p): Skip debug stmts. 11934 (gimple_has_side_effects): Likewise. 11935 (gimple_rhs_has_side_effects): Likewise. 11936 * gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New. 11937 (gimple_build_debug_bind_stat): Declare. 11938 (gimple_build_debug_bind): Define. 11939 (is_gimple_debug): New. 11940 (gimple_debug_bind_p): New. 11941 (gimple_debug_bind_get_var): New. 11942 (gimple_debug_bind_get_value): New. 11943 (gimple_debug_bind_get_value_ptr): New. 11944 (gimple_debug_bind_set_var): New. 11945 (gimple_debug_bind_set_value): New. 11946 (GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro. 11947 (gimple_debug_bind_reset_value): New. 11948 (gimple_debug_bind_has_value_p): New. 11949 (gsi_next_nondebug): New. 11950 (gsi_prev_nondebug): New. 11951 (gsi_start_nondebug_bb): New. 11952 (gsi_last_nondebug_bb): New. 11953 * sched-vis.c (print_pattern): Handle VAR_LOCATION. 11954 (print_insn): Handle DEBUG_INSN. 11955 * tree-cfg.c (remove_bb): Walk stmts backwards. Let loc 11956 of first insn prevail. 11957 (first_stmt): Skip debug stmts. 11958 (first_non_label_stmt): Likewise. 11959 (last_stmt): Likewise. 11960 (has_zero_uses_1): New. 11961 (single_imm_use_1): New. 11962 (verify_gimple_debug): New. 11963 (verify_types_in_gimple_stmt): Handle debug stmts. 11964 (verify_stmt): Likewise. 11965 (debug_loop_num): Skip debug stmts. 11966 (remove_edge_and_dominated_blocks): Remove dominators last. 11967 * tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into debug stmts. 11968 (linearize_expr): Likewise. 11969 * config/i386/i386.c (ix86_delegitimize_address): Call 11970 default implementation. 11971 * config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug insns. 11972 (group_barrier_needed): Skip debug insns. 11973 (emit_insn_group_barriers): Likewise. 11974 (emit_all_insn_group_barriers): Likewise. 11975 (ia64_variable_issue): Handle debug insns. 11976 (ia64_dfa_new_cycle): Likewise. 11977 (final_emit_insn_group_barriers): Skip debug insns. 11978 (ia64_dwarf2out_def_steady_cfa): Take frame argument. Don't 11979 def cfa without frame. 11980 (process_set): Likewise. 11981 (process_for_unwind_directive): Pass frame on. 11982 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define. 11983 (rs6000_delegitimize_address): New. 11984 (rs6000_debug_adjust_cost): Handle debug insns. 11985 (is_microcoded_insn): Likewise. 11986 (is_cracked_insn): Likewise. 11987 (is_nonpipeline_insn): Likewise. 11988 (insn_must_be_first_in_group): Likewise. 11989 (insn_must_be_last_in_group): Likewise. 11990 (force_new_group): Likewise. 11991 * cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block 11992 contains only debug insns. 11993 (rtl_merge_blocks): Skip debug insns. 11994 (purge_dead_edges): Likewise. 11995 (rtl_block_ends_with_call_p): Skip debug insns. 11996 * dce.c (deletable_insn_p): Handle VAR_LOCATION. 11997 (mark_reg_dependencies): Skip debug insns. 11998 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): New. 11999 * tree-ssanames.c (release_ssa_name): Propagate def into debug stmts. 12000 * tree-ssa-threadedge.c 12001 (record_temporary_equivalences_from_stmts): Skip debug stmts. 12002 * regcprop.c (replace_oldest_value_addr): Skip debug insns. 12003 (replace_oldest_value_mem): Use ALL_REGS for debug insns. 12004 (copyprop_hardreg_forward_1): Handle debug insns. 12005 * reload1.c (reload): Skip debug insns. Replace unassigned 12006 pseudos in debug insns with their equivalences. 12007 (eliminate_regs_in_insn): Skip debug insns. 12008 (emit_input_reload_insns): Skip debug insns at first, adjust 12009 them later. 12010 * tree-ssa-operands.c (add_virtual_operand): Reject debug stmts. 12011 (get_indirect_ref_operands): Pass opf_no_vops on. 12012 (get_expr_operands): Likewise. Skip debug stmts. 12013 (parse_ssa_operands): Scan debug insns with opf_no_vops. 12014 120152009-09-01 Richard Henderson <rth@redhat.com> 12016 12017 * tree-ssa-ccp.c (ccp_initialize): Make sure to simulate 12018 stmt_ends_pp_p statements at least once. 12019 * tree-vrp.c (vrp_initialize): Likewise. 12020 (vrp_visit_stmt): Be prepared for non-interesting stmts. 12021 120222009-09-01 Dodji Seketeli <dodji@redhat.com> 12023 12024 PR bootstrap/41205 12025 Fix AIX bootstrap after PR debug/30161 12026 * dwarf2out.c (make_ith_pack_parameter_name): Don't used strnlen 12027 that is a GNU extension. 12028 (tmpl_value_parm_die_table): Move the definition of this global 12029 outside #ifdef DWARF2_DEBUGGING_INFO region. 12030 120312009-09-01 Richard Guenther <rguenther@suse.de> 12032 12033 * tree.c (tree_expr_size): New function. 12034 * tree.h (tree_expr_size): Declare. 12035 * rtlanal.c (rtx_addr_can_trap_p_1): Adjust comment. 12036 * builtins.c (fold_builtin_memory_op): Use tree_expr_size. 12037 * langhooks.c (lhd_expr_size): Remove. 12038 * langhooks.h (struct lang_hooks): Remove expr_size. 12039 * explow.c (expr_size): Use tree_expr_size. 12040 (int_expr_size): Likewise. 12041 * langhooks-def.h (lhd_expr_size): Remove. 12042 (LANG_HOOKS_EXPR_SIZE): Likewise. 12043 (LANG_HOOKS_INITIALIZER): Adjust. 12044 120452009-09-01 Richard Guenther <rguenther@suse.de> 12046 12047 * tree-flow.h (mark_addressable): Move declaration ... 12048 * tree.h (mark_addressable): ... here. 12049 * stmt.c (expand_asm_operands): Use mark_addressable, not 12050 lang_hooks.mark_addressable. 12051 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove 12052 LANG_HOOKS_MARK_ADDRESSABLE. 12053 * langhooks.h (struct lang_hooks): Remove mark_addressable langhook. 12054 * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove. 12055 120562009-08-31 Chris Demetriou <cgd@google.com> 12057 12058 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Never 12059 vectorize if not TARGET_SSE2. 12060 120612009-08-31 DJ Delorie <dj@redhat.com> 12062 12063 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Exclude coprocessor 12064 registers if no coprocessor is enabled. 12065 120662009-08-31 Dodji Seketeli <dodji@redhat.com> 12067 12068 PR debug/30161 12069 * cgraph.h (cgraph_get_node): Declare ... 12070 * cgraph.c (cgraph_get_node): ... new function. 12071 * dwarf2out.c (gen_generic_params_dies, 12072 generic_parameter_die, tree_add_const_value_attribute_for_decl, 12073 make_ith_pack_parameter_name, 12074 append_entry_to_tmpl_value_parm_die_table, 12075 gen_remaining_tmpl_value_param_die_attribute): New functions. 12076 (gen_subprogram_die): Generate debug info for template parameters 12077 if debug info level is higher than DINFO_LEVEL_TERSE. 12078 Use tree_add_const_value_attribute_for_decl instead of 12079 tree_add_const_value_attribute. 12080 (gen_const_die): Use tree_add_const_value_attribute_for_decl 12081 instead of tree_add_const_value_attribute. 12082 (gen_struct_or_union_type_die): Generate debug 12083 info for template parameters if debug info level is higher than 12084 DINFO_LEVEL_TERSE. 12085 (tree_add_const_value_attribute): Handle integral and pointer 12086 constants. Update comment. 12087 (dwarf_tag_name): Support DW_TAG_GNU_template_template_param. 12088 (dwarf_attr_name): Support DW_AT_GNU_template_name. 12089 (reference_to_unused): Fix thinko. Remove redundant predicates from 12090 tests. 12091 (tree_add_const_value_attribute): Make this work for constant 12092 expressions only. 12093 tree_add_const_value_attribute_for_decl is to be used for variable 12094 DECLs now. 12095 (add_location_or_const_value_attribute): Use 12096 tree_add_const_value_attribute_for_decl now. 12097 (dwarf2out_finish): Emit the DW_AT_const_value attribute of 12098 DW_TAG_template_value_param DIEs after function DIEs have been 12099 emitted. 12100 * langhooks.h (lang_hooks_for_types): Add 12101 get_argument_pack_elems. 12102 (lang_hooks_for_decls): Add generic_generic_parameter_decl_p. 12103 (lang_hooks): Added get_innermost_generic_parms, 12104 get_innermost_generic_args. 12105 * langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS, 12106 LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS, 12107 LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS, 12108 LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks. 12109 121102009-08-31 DJ Delorie <dj@redhat.com> 12111 12112 * config/mep/mep.c (machine_function): Add frame_locked flag. Set 12113 it once we start generating the prologue or epilogue. 12114 (mep_call_saves_register): If the frame is locked, re-use 12115 cached values. 12116 (mep_assign_save_slots): New, broken out from mep_expand_prologue. 12117 (mep_expand_prologue): Call it. 12118 (mep_expand_epilogue): Likewise. 12119 (mep_start_function): Use the same logic as mep_expand_prologue. 12120 (mep_pass_by_reference): Make logic more readable. 12121 (mep_return_in_memory): Zero-sized objects are passed in memory. 12122 (mep_reorg_noframe): Make sure we have accurate REG_DEAD notes. 12123 121242009-08-31 Richard Guenther <rguenther@suse.de> 12125 12126 * builtins.c (fold_builtin_memory_op): Use the alias oracle 12127 to query if the memory regions for memmove overlap. 12128 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the 12129 asserts on pointers, instead deal with odd trees. 12130 (ptr_derefs_may_alias_p): Likewise. 12131 (refs_may_alias_p_1): Constructor bases also never alias. 12132 121332009-08-31 Gerald Pfeifer <gerald@pfeifer.com> 12134 12135 * doc/install.texi (Final install): Adjust reference on where to 12136 order printed manuals. 12137 121382009-08-30 Olivier Hainque <hainque@adacore.com> 12139 12140 * dwarf2out.c (switch_to_frame_table_section): Move 12141 definition prior to first use. 12142 121432009-08-30 Richard Guenther <rguenther@suse.de> 12144 12145 PR tree-optimization/41186 12146 * tree-ssa-alias.c (ptr_deref_may_alias_ref_p): Remove. 12147 (ao_ref_init_from_ptr_and_size): New function. 12148 (ref_maybe_used_by_call_p_1): Be more precise tracking 12149 used ranges for builtin functions. 12150 (ref_maybe_used_by_call_p): Adjust. 12151 (call_may_clobber_ref_p_1): Be more precise tracking clobbered 12152 ranges for builtin functions. 12153 * tree-ssa-alias.h (ao_ref_init_from_ptr_and_size): Declare. 12154 121552009-08-30 Alan Modra <amodra@bigpond.net.au> 12156 12157 PR target/41081 12158 * fwprop.c (get_reg_use_in): Delete. 12159 (free_load_extend): New function. 12160 (forward_propagate_subreg): Use it. 12161 121622009-08-29 Kaz Kojima <kkojima@gcc.gnu.org> 12163 12164 * config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf. 12165 121662009-08-29 Kai Tietz<kai.tietz@onevision.com> 12167 12168 PR/41184 12169 * config/i386.c (ix86_expand_epilogue): Correct stack adjustment for 12170 padding. 12171 121722009-08-29 Douglas B Rupp <rupp@gnat.com> 12173 12174 * crtstuff.c (__do_global_dtors_aux): Use atexit if no 12175 fini or fini_array section. 12176 121772009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12178 12179 * graphite-dependences.c (graphite_legal_transform_bb): Call 12180 pbb_remove_duplicate_pdrs. 12181 * graphite-poly.c (can_collapse_pdr): Removed. 12182 (pdr_find_duplicate): Removed. 12183 (can_collapse_pdrs): New. 12184 (pbb_remove_duplicate_pdrs): New. 12185 (new_poly_dr): Do not look for duplicates. 12186 * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed. 12187 (PBB_PDR_DUPLICATES_REMOVED): New. 12188 (pbb_remove_duplicate_pdrs): Declared. 12189 121902009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12191 12192 * graphite-interchange.c (pbb_interchange_profitable_p): Adjust 12193 the strides by multiplying by PDR_NB_REFS. 12194 * graphite-poly.c (can_collapse_pdr): New. 12195 (pdr_find_duplicate): New. 12196 (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs. 12197 Initialize PDR_NB_REFS. 12198 * graphite-poly.h (struct poly_dr): Add field nb_refs. 12199 (PDR_NB_REFS): New. 12200 (new_poly_dr): Number of subscripts is a graphite_dim_t. 12201 122022009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12203 12204 PR middle-end/40965 12205 * graphite-poly.c (apply_poly_transforms): Remove legality test before 12206 any transform. 12207 122082009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12209 12210 * graphite-dependences.c (pddr_original_scattering): Return NULL 12211 for read-read dependence relations. 12212 * graphite-poly.h (enum poly_dr_type): Fix comment. 12213 (pdr_read_p): New. 12214 (pdr_write_p): New. 12215 (pdr_may_write_p): New. 12216 122172009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12218 12219 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type. 12220 (struct poly_dr): Same. 12221 (new_poly_dr): Same. 12222 * graphite-poly.c (new_poly_dr): Same. 12223 * graphite-dependences.c (dot_deps): Disable call to system. 12224 122252009-08-28 Cary Coutant <ccoutant@google.com> 12226 12227 PR debug/41063 12228 * dwarf2out.c (gen_type_die_with_usage): Use proper context for 12229 struct/union/enum types local to a function. 12230 122312009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com> 12232 Sebastian Pop <sebastian.pop@amd.com> 12233 12234 * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed 12235 pbb_strip_mine_time_depth. Changed the implementation so that 12236 transformation is expressed as a transformation on 12237 time (scatttering) dimensions. Also, ensures that the 2d+1 12238 scheduling format is preserved. 12239 (pbb_strip_mine_profitable_p): Profitability is based on the 12240 iteration number of a given time (scattering) dimension, 12241 and not on a original loop depth dimension. 12242 (pbb_strip_mine): Call pbb_number_of_iterations_at_time. 12243 (pbb_do_strip_mine): Call psct_dynamic_dim. 12244 * graphite-poly.c (pbb_number_of_iterations_at_time): New. 12245 * graphite-poly.h (pbb_number_of_iterations_at_time): Declared. 12246 (pbb_nb_dynamic_scattering_transform): New. 12247 (psct_dynamic_dim): New. 12248 122492009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com> 12250 12251 * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset. 12252 * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset. 12253 * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le. 12254 * graphite-interchange.c (build_linearized_memory_access): Same. 12255 (memory_stride_in_loop): Same. 12256 122572009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12258 12259 * graphite-dependences.c (pddr_original_scattering): New. 12260 (graphite_legal_transform_dr): Call pddr_original_scattering. 12261 (dot_deps_1): New. 12262 (dot_deps): New. 12263 * graphite-dependences.h (dot_deps): Declared. 12264 * graphite-poly.c (new_poly_dr): Initialize PDR_ID. 12265 (print_pdr): Print PDR_ID. 12266 * graphite-poly.h (struct poly_dr): Add field id. 12267 (PDR_ID): New. 12268 (pbb_index): New. 12269 * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment. 12270 122712009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12272 12273 * graphite-dependences.c (graphite_carried_dependence_level_k): Do 12274 not delete the original dependence relation. 12275 122762009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12277 12278 * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr. 12279 (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p. 12280 (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p. 12281 (free_poly_ddr): New. 12282 (pddr_is_empty): New. 12283 (dependence_polyhedron_1): Now returns a poly_ddr_p. 12284 (dependence_polyhedron): Same. Remove useless gcc_assert. 12285 Remove fprintfs. 12286 (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr. 12287 (graphite_carried_dependence_level_k): Call pddr_is_empty. 12288 * graphite-dependences.h (enum poly_dependence_kind): New. 12289 (poly_dr_pair): Renamed poly_ddr. Added a field kind. 12290 (PDRP_SOURCE): Renamed PDDR_SOURCE. 12291 (PDRP_SINK): Renamed PDDR_SINK. 12292 (PDRP_DDP): Renamed PDDR_DDP. 12293 (PDDR_KIND): New. 12294 (free_poly_ddr): Declared. 12295 * graphite-poly.c (new_scop): Use the new hash function names. 12296 * graphite-poly.h (struct scop): Renamed field original_pdr_pairs 12297 into original_pddrs. 12298 (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS. 12299 123002009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12301 12302 * cfgloopmanip.c (create_empty_loop_on_edge): Generate upper 12303 bounds with LT_EXPR to make niter analysis more precise on code 12304 generated by Graphite. 12305 123062009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12307 12308 * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting. 12309 (graphite_legal_transform_bb): Same. 12310 (poly_drs_may_alias_p): Same. 12311 123122009-08-28 Richard Guenther <rguenther@suse.de> 12313 12314 * tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS. 12315 123162009-08-28 Jan Beulich <jbeulich@novell.com> 12317 12318 * config/i386/netware.c: Include langhooks.h. 12319 (i386_nlm_encode_section_info): Simplify. 12320 (netware_override_options): Delete. 12321 * config/i386/netware.h (netware_override_options): Delete 12322 declaration. 12323 (OVERRIDE_OPTIONS): Delete definition. 12324 (SUBTARGET_OVERRIDE_OPTIONS): Define. 12325 (ASM_COMMENT_START): Define. 12326 * config/i386/nwld.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Define. 12327 123282009-08-28 Jan Beulich <jbeulich@novell.com> 12329 12330 * configure.ac: For in-tree ld, do a plain version check to 12331 determine whether comdat groups are supported. 12332 * configure: Regenerate. 12333 123342009-08-28 Olivier Hainque <hainque@adacore.com> 12335 12336 * collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro, 12337 always defined. Reflect definition or absence of such for 12338 COLLECT_EXPORT_LIST. Readability helper. 12339 (scanfilter): New enum, to help control what symbols 12340 are to be considered or ignored by scan_prog_file. 12341 (enum pass): Rename as "scanpass", moved together with scanfilter 12342 prior to scan_prog_file's prototype. 12343 (scan_prog_file): Accept and honor scanpass and scanfilter arguments. 12344 Group prototype with the scanpass/scanfilter definitions, factorize 12345 head comments for the several implementations at the prototype. 12346 (main): Reorganize the first pass link control to let AIX 12347 drag only the needed frame tables in executables. Prevent 12348 frame tables collection during the scan aimed at static ctors. 12349 Pre-link and scan for frame tables later to compensate. 12350 * doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro. 12351 A C statement to issue assembly directives that create a reference 12352 to the given DWARF table identifier label from the current function 12353 section. 12354 * dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument 12355 to differentiate first time section entry. Only emit a .data 12356 tables start identifier label the first time around. 12357 (switch_to_frame_table_section): New function. Helper for 12358 output_call_frame_info to switch possibly BACK into the eh_frame 12359 or the debug_frame section depending on FOR_EH. 12360 (output_call_frame_info): Use helper to first enter the proper 12361 frame section. 12362 (output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to 12363 emit a link to the frame table start label from each function 12364 section. 12365 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref): 12366 New function. Implementation of ASM_OUTPUT_DWARF_TABLE_REF. 12367 * config/rs6000/rs6000-protos.h: Declare it. 12368 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define. 12369 123702009-08-27 Kaz Kojima <kkojima@gcc.gnu.org> 12371 12372 * config/sh/sh.c (split_branches): Check the result of 12373 next_active_insn. 12374 123752009-08-27 Steve Ellcey <sje@cup.hp.com> 12376 12377 * config/ia64/hpux.h (LIB_SPEC): Add -lrt for when 12378 using -pthread -fopenmp 12379 123802009-08-27 Gerald Pfeifer <gerald@pfeifer.com> 12381 12382 * doc/service.texi (service directory): Update URL. 12383 123842009-08-27 Uros Bizjak <ubizjak@gmail.com> 12385 12386 PR rtl-optimization/40861 12387 * simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to 12388 extract word from a multi-word subreg for negative byte positions. 12389 123902009-08-27 Tristan Gingold <gingold@adacore.com> 12391 Douglas B Rupp <rupp@gnat.com> 12392 12393 * config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry. 12394 (SECTION_VMS_OVERLAY): Define. 12395 (ia64_vms_common_object_attribute): Added. Handle the "common_object" 12396 attribute. 12397 (ia64_vms_elf_asm_named_section): Added. Generate .section pseudo-op 12398 for common_object. 12399 (ia64_vms_output_aligned_decl_common): Added. Generate pseudo-op for 12400 common_object declarations. 12401 (ia64_section_type_flags): Set section flag for common_object. 12402 * config/ia64/ia64-protos.h 12403 (ia64_vms_output_aligned_decl_common): Declare. 12404 (ia64_vms_elf_asm_named_section): Declare. 12405 124062009-08-27 Michael Matz <matz@suse.de> 12407 12408 * expr.c (expand_expr_real_2): New function taking exploded 12409 unary or binary expression, split out from ... 12410 (expand_expr_real_1): ... here. Move over all unary/binary 12411 switch parts to above function, in particular these codes: 12412 PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR, 12413 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR, 12414 ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR, 12415 FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR, 12416 FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR, 12417 BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR, 12418 BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR, 12419 LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR, 12420 NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, 12421 UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR, 12422 WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR, 12423 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR, 12424 VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR, 12425 VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR, 12426 VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR, 12427 VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR, 12428 VEC_PACK_FIX_TRUNC_EXPR. 12429 (<case PAREN_EXPR>): Call set_mem_attributes() with type, not the 12430 full expression. 12431 124322009-08-27 Richard Guenther <rguenther@suse.de> 12433 12434 * gengtype.c (main): Handle uint64_t. 12435 * ipa-utils.c (get_base_var): Indent properly. 12436 * tree-ssa-live.c (debug_scope_block): New function. 12437 * tree-flow.h (debug_scope_block): Declare. 12438 * tree-ssa-copy.c (replace_exp_1): Add vertical space. 12439 * basic-block.h (enum profile_status): Rename to 12440 enum profile_status_d. 12441 (x_profile_status): Adjust type. 12442 124432009-08-27 Dodji Seketeli <dodji@redhat.com> 12444 12445 PR debug/41170 12446 * dwarf2out.c (get_context_die): Declare this static function. 12447 (gen_type_die_with_usage): Make sure a DIE is a generated for 12448 the context of a typedef. 12449 124502009-08-26 Anatoly Sokolov <aesok@post.ru> 12451 12452 * doc/invoke.texi (AVR Options): Remove documentation of -minit-stack 12453 switch. 12454 124552009-08-26 Richard Sandiford <rdsandiford@googlemail.com> 12456 12457 * config/mips/mips-protos.h (mips_output_sync): Declare. 12458 (mips_sync_loop_insns): Likewise. 12459 (mips_output_sync_loop): Replace first two parameters with an rtx. 12460 * config/mips/mips.c (mips_multi_member): New structure. 12461 (mips_multi_members): New variable. 12462 (mips_multi_start): New function. 12463 (mips_multi_add): Likewise. 12464 (mips_multi_add_insn): Likewise. 12465 (mips_multi_add_label): Likewise. 12466 (mips_multi_last_index): Likewise. 12467 (mips_multi_copy_insn): Likewise. 12468 (mips_multi_set_operand): Likewise. 12469 (mips_multi_write): Likewise. 12470 (mips_print_operand_punctuation): Remove '%|' and '%-'. 12471 (mips_init_print_operand_punct): Update accordingly. 12472 (mips_start_ll_sc_sync_block): New function. 12473 (mips_end_ll_sc_sync_block): Likewise. 12474 (mips_output_sync): Likewise. 12475 (mips_sync_insn1_template): Likewise. 12476 (mips_sync_insn2_template): Likewise. 12477 (mips_get_sync_operand): Likewise. 12478 (mips_process_sync_loop): Likewise. 12479 (mips_output_sync_loop): Use mips_process_sync_loop. 12480 (mips_sync_loop_insns): New function. 12481 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete. 12482 (MIPS_COMPARE_AND_SWAP_12): Likewise. 12483 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise. 12484 (MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise. 12485 (MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise. 12486 (MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise. 12487 (MIPS_SYNC_OLD_OP_12): Likewise. 12488 (MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise. 12489 (MIPS_SYNC_NEW_OP_12): Likewise. 12490 (MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise. 12491 (MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise. 12492 (MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise. 12493 (MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise. 12494 (MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise. 12495 (MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise. 12496 * config/mips/mips.md (sync_mem): New attribute. 12497 (sync_oldval, sync_newval, sync_inclusive_mask): Likewise. 12498 (sync_exclusive_mask, sync_required_oldval): Likewise. 12499 (sync_insn1_op2, sync_insn1, sync_insn2): Likewise. 12500 (sync_release_barrier): Likewise. 12501 (length): Handle sync loops. 12502 (sync): Use mips_output_sync. 12503 * config/mips/sync.md (*memory_barrier): Use mips_output_sync. 12504 (sync_compare_and_swap<mode>): Set the new sync_* attributes 12505 and use mips_output_sync_loop. 12506 (compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise. 12507 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise. 12508 (sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise. 12509 (sync_old_add<mode>, sync_old_sub<mode>): Likewise. 12510 (sync_new_add<mode>, sync_new_sub<mode>): Likewise. 12511 (sync_<optab><mode>, sync_old_<optab><mode>): Likewise. 12512 (sync_new_<optab><mode>, sync_nand<mode>): Likewise. 12513 (sync_old_nand<mode>, sync_new_nand<mode>): Likewise. 12514 (sync_lock_test_and_set<mode>, test_and_set_12): Likewise. 12515 125162009-08-26 Richard Guenther <rguenther@suse.de> 12517 12518 PR middle-end/41163 12519 * gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if 12520 the types to not match. 12521 * tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR 12522 verification. 12523 * tree-ssa.c (useless_type_conversion_p): Conversions to 12524 pointers to unprototyped functions are useless. 12525 125262009-08-26 Richard Guenther <rguenther@suse.de> 12527 12528 * tree-ssa-structalias.c (create_variable_info_for): Remove strange 12529 whole-program condition, prepare to be called for non-globals. 12530 (intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE 12531 params build a representative with known type and track its fields. 12532 125332009-08-26 Uros Bizjak <ubizjak@gmail.com> 12534 12535 * config/alpha/sync.md: Update comment about unpredictable LL/SC lock 12536 clearing by a taken branch. 12537 (sync_<fetchop_name><mode>): Split when epilogue_completed is set, 12538 effectively after bbro pass. 12539 (sync_nand<mode>): Ditto. 12540 (sync_old_<fetchop_name><mode>): Ditto. 12541 (sync_old_nand<mode>): Ditto. 12542 (sync_new_<fetchop_name><mode>): Dito. 12543 (sync_new_nand<mode>): Ditto. 12544 (sync_compare_and_swap<mode>_1): Ditto. 12545 (*sync_compare_and_swap<mode>): Ditto. 12546 (sync_lock_test_and_set<mode>_1): Ditto. 12547 ("sync_lock_test_and_set<mode>): Ditto. 12548 125492009-08-25 Douglas B Rupp <rupp@gnat.com> 12550 12551 * hwint.h (HOST_LONG_FORMAT): New macro 12552 * bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c: 12553 Use HOST_PTR_PRINTF. 12554 * system.h (HOST_PTR_PRINTF): Resurrect old macro 12555 * doc/hostconfig.texi (HOST_LONG_FORMAT): Document. 12556 (HOST_PTR_PRINTF): Document. 12557 125582009-08-25 Jan Hubicka <jh@suse.cz> 12559 12560 * config/i386/bmmintrin.h: Replace by #error. 12561 12562 Revert: 12563 Michael Meissner <michael.meissner@amd.com> 12564 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 12565 Tony Linthicum <tony.linthicum@amd.com> 12566 12567 * config/i386/i386.h (TARGET_SSE5): New macro for SSE5. 12568 (TARGET_ROUND): New macro for the round/ptest instructions which 12569 are shared between SSE4.1 and SSE5. 12570 (OPTION_MASK_ISA_ROUND): Ditto. 12571 (OPTION_ISA_ROUND): Ditto. 12572 (TARGET_FUSED_MADD): New macro for -mfused-madd swtich. 12573 (TARGET_CPU_CPP_BUILTINS): Add SSE5 support. 12574 12575 * config/i386/i386.opt (-msse5): New switch for SSE5 support. 12576 (-mfused-madd): New switch to give users control over whether the 12577 compiler optimizes to use the multiply/add SSE5 instructions. 12578 12579 * config/i386/i386.c (enum pta_flags): Add PTA_SSE5. 12580 (ix86_handle_option): Turn off 3dnow if -msse5. 12581 (override_options): Add SSE5 support. 12582 (print_operand): %Y prints comparison codes for SSE5 com/pcom 12583 instructions. 12584 (ix86_expand_sse_movcc): Add SSE5 support. 12585 (ix86_expand_sse5_unpack): New function to use pperm to unpack a 12586 vector type to the next largest size. 12587 (ix86_expand_sse5_pack): New function to use pperm to pack a 12588 vector type to the next smallest size. 12589 (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic. 12590 (IX86_BUILTIN_FMADDSD): Ditto. 12591 (IX86_BUILTIN_FMADDPS): Ditto. 12592 (IX86_BUILTIN_FMADDPD): Ditto. 12593 (IX86_BUILTIN_FMSUBSS): Ditto. 12594 (IX86_BUILTIN_FMSUBSD): Ditto. 12595 (IX86_BUILTIN_FMSUBPS): Ditto. 12596 (IX86_BUILTIN_FMSUBPD): Ditto. 12597 (IX86_BUILTIN_FNMADDSS): Ditto. 12598 (IX86_BUILTIN_FNMADDSD): Ditto. 12599 (IX86_BUILTIN_FNMADDPS): Ditto. 12600 (IX86_BUILTIN_FNMADDPD): Ditto. 12601 (IX86_BUILTIN_FNMSUBSS): Ditto. 12602 (IX86_BUILTIN_FNMSUBSD): Ditto. 12603 (IX86_BUILTIN_FNMSUBPS): Ditto. 12604 (IX86_BUILTIN_FNMSUBPD): Ditto. 12605 (IX86_BUILTIN_PCMOV_V2DI): Ditto. 12606 (IX86_BUILTIN_PCMOV_V4SI): Ditto. 12607 (IX86_BUILTIN_PCMOV_V8HI): Ditto. 12608 (IX86_BUILTIN_PCMOV_V16QI): Ditto. 12609 (IX86_BUILTIN_PCMOV_V4SF): Ditto. 12610 (IX86_BUILTIN_PCMOV_V2DF): Ditto. 12611 (IX86_BUILTIN_PPERM): Ditto. 12612 (IX86_BUILTIN_PERMPS): Ditto. 12613 (IX86_BUILTIN_PERMPD): Ditto. 12614 (IX86_BUILTIN_PMACSSWW): Ditto. 12615 (IX86_BUILTIN_PMACSWW): Ditto. 12616 (IX86_BUILTIN_PMACSSWD): Ditto. 12617 (IX86_BUILTIN_PMACSWD): Ditto. 12618 (IX86_BUILTIN_PMACSSDD): Ditto. 12619 (IX86_BUILTIN_PMACSDD): Ditto. 12620 (IX86_BUILTIN_PMACSSDQL): Ditto. 12621 (IX86_BUILTIN_PMACSSDQH): Ditto. 12622 (IX86_BUILTIN_PMACSDQL): Ditto. 12623 (IX86_BUILTIN_PMACSDQH): Ditto. 12624 (IX86_BUILTIN_PMADCSSWD): Ditto. 12625 (IX86_BUILTIN_PMADCSWD): Ditto. 12626 (IX86_BUILTIN_PHADDBW): Ditto. 12627 (IX86_BUILTIN_PHADDBD): Ditto. 12628 (IX86_BUILTIN_PHADDBQ): Ditto. 12629 (IX86_BUILTIN_PHADDWD): Ditto. 12630 (IX86_BUILTIN_PHADDWQ): Ditto. 12631 (IX86_BUILTIN_PHADDDQ): Ditto. 12632 (IX86_BUILTIN_PHADDUBW): Ditto. 12633 (IX86_BUILTIN_PHADDUBD): Ditto. 12634 (IX86_BUILTIN_PHADDUBQ): Ditto. 12635 (IX86_BUILTIN_PHADDUWD): Ditto. 12636 (IX86_BUILTIN_PHADDUWQ): Ditto. 12637 (IX86_BUILTIN_PHADDUDQ): Ditto. 12638 (IX86_BUILTIN_PHSUBBW): Ditto. 12639 (IX86_BUILTIN_PHSUBWD): Ditto. 12640 (IX86_BUILTIN_PHSUBDQ): Ditto. 12641 (IX86_BUILTIN_PROTB): Ditto. 12642 (IX86_BUILTIN_PROTW): Ditto. 12643 (IX86_BUILTIN_PROTD): Ditto. 12644 (IX86_BUILTIN_PROTQ): Ditto. 12645 (IX86_BUILTIN_PROTB_IMM): Ditto. 12646 (IX86_BUILTIN_PROTW_IMM): Ditto. 12647 (IX86_BUILTIN_PROTD_IMM): Ditto. 12648 (IX86_BUILTIN_PROTQ_IMM): Ditto. 12649 (IX86_BUILTIN_PSHLB): Ditto. 12650 (IX86_BUILTIN_PSHLW): Ditto. 12651 (IX86_BUILTIN_PSHLD): Ditto. 12652 (IX86_BUILTIN_PSHLQ): Ditto. 12653 (IX86_BUILTIN_PSHAB): Ditto. 12654 (IX86_BUILTIN_PSHAW): Ditto. 12655 (IX86_BUILTIN_PSHAD): Ditto. 12656 (IX86_BUILTIN_PSHAQ): Ditto. 12657 (IX86_BUILTIN_FRCZSS): Ditto. 12658 (IX86_BUILTIN_FRCZSD): Ditto. 12659 (IX86_BUILTIN_FRCZPS): Ditto. 12660 (IX86_BUILTIN_FRCZPD): Ditto. 12661 (IX86_BUILTIN_CVTPH2PS): Ditto. 12662 (IX86_BUILTIN_CVTPS2PH): Ditto. 12663 (IX86_BUILTIN_COMEQSS): Ditto. 12664 (IX86_BUILTIN_COMNESS): Ditto. 12665 (IX86_BUILTIN_COMLTSS): Ditto. 12666 (IX86_BUILTIN_COMLESS): Ditto. 12667 (IX86_BUILTIN_COMGTSS): Ditto. 12668 (IX86_BUILTIN_COMGESS): Ditto. 12669 (IX86_BUILTIN_COMUEQSS): Ditto. 12670 (IX86_BUILTIN_COMUNESS): Ditto. 12671 (IX86_BUILTIN_COMULTSS): Ditto. 12672 (IX86_BUILTIN_COMULESS): Ditto. 12673 (IX86_BUILTIN_COMUGTSS): Ditto. 12674 (IX86_BUILTIN_COMUGESS): Ditto. 12675 (IX86_BUILTIN_COMORDSS): Ditto. 12676 (IX86_BUILTIN_COMUNORDSS): Ditto. 12677 (IX86_BUILTIN_COMFALSESS): Ditto. 12678 (IX86_BUILTIN_COMTRUESS): Ditto. 12679 (IX86_BUILTIN_COMEQSD): Ditto. 12680 (IX86_BUILTIN_COMNESD): Ditto. 12681 (IX86_BUILTIN_COMLTSD): Ditto. 12682 (IX86_BUILTIN_COMLESD): Ditto. 12683 (IX86_BUILTIN_COMGTSD): Ditto. 12684 (IX86_BUILTIN_COMGESD): Ditto. 12685 (IX86_BUILTIN_COMUEQSD): Ditto. 12686 (IX86_BUILTIN_COMUNESD): Ditto. 12687 (IX86_BUILTIN_COMULTSD): Ditto. 12688 (IX86_BUILTIN_COMULESD): Ditto. 12689 (IX86_BUILTIN_COMUGTSD): Ditto. 12690 (IX86_BUILTIN_COMUGESD): Ditto. 12691 (IX86_BUILTIN_COMORDSD): Ditto. 12692 (IX86_BUILTIN_COMUNORDSD): Ditto. 12693 (IX86_BUILTIN_COMFALSESD): Ditto. 12694 (IX86_BUILTIN_COMTRUESD): Ditto. 12695 (IX86_BUILTIN_COMEQPS): Ditto. 12696 (IX86_BUILTIN_COMNEPS): Ditto. 12697 (IX86_BUILTIN_COMLTPS): Ditto. 12698 (IX86_BUILTIN_COMLEPS): Ditto. 12699 (IX86_BUILTIN_COMGTPS): Ditto. 12700 (IX86_BUILTIN_COMGEPS): Ditto. 12701 (IX86_BUILTIN_COMUEQPS): Ditto. 12702 (IX86_BUILTIN_COMUNEPS): Ditto. 12703 (IX86_BUILTIN_COMULTPS): Ditto. 12704 (IX86_BUILTIN_COMULEPS): Ditto. 12705 (IX86_BUILTIN_COMUGTPS): Ditto. 12706 (IX86_BUILTIN_COMUGEPS): Ditto. 12707 (IX86_BUILTIN_COMORDPS): Ditto. 12708 (IX86_BUILTIN_COMUNORDPS): Ditto. 12709 (IX86_BUILTIN_COMFALSEPS): Ditto. 12710 (IX86_BUILTIN_COMTRUEPS): Ditto. 12711 (IX86_BUILTIN_COMEQPD): Ditto. 12712 (IX86_BUILTIN_COMNEPD): Ditto. 12713 (IX86_BUILTIN_COMLTPD): Ditto. 12714 (IX86_BUILTIN_COMLEPD): Ditto. 12715 (IX86_BUILTIN_COMGTPD): Ditto. 12716 (IX86_BUILTIN_COMGEPD): Ditto. 12717 (IX86_BUILTIN_COMUEQPD): Ditto. 12718 (IX86_BUILTIN_COMUNEPD): Ditto. 12719 (IX86_BUILTIN_COMULTPD): Ditto. 12720 (IX86_BUILTIN_COMULEPD): Ditto. 12721 (IX86_BUILTIN_COMUGTPD): Ditto. 12722 (IX86_BUILTIN_COMUGEPD): Ditto. 12723 (IX86_BUILTIN_COMORDPD): Ditto. 12724 (IX86_BUILTIN_COMUNORDPD): Ditto. 12725 (IX86_BUILTIN_COMFALSEPD): Ditto. 12726 (IX86_BUILTIN_COMTRUEPD): Ditto. 12727 (IX86_BUILTIN_PCOMEQUB): Ditto. 12728 (IX86_BUILTIN_PCOMNEUB): Ditto. 12729 (IX86_BUILTIN_PCOMLTUB): Ditto. 12730 (IX86_BUILTIN_PCOMLEUB): Ditto. 12731 (IX86_BUILTIN_PCOMGTUB): Ditto. 12732 (IX86_BUILTIN_PCOMGEUB): Ditto. 12733 (IX86_BUILTIN_PCOMFALSEUB): Ditto. 12734 (IX86_BUILTIN_PCOMTRUEUB): Ditto. 12735 (IX86_BUILTIN_PCOMEQUW): Ditto. 12736 (IX86_BUILTIN_PCOMNEUW): Ditto. 12737 (IX86_BUILTIN_PCOMLTUW): Ditto. 12738 (IX86_BUILTIN_PCOMLEUW): Ditto. 12739 (IX86_BUILTIN_PCOMGTUW): Ditto. 12740 (IX86_BUILTIN_PCOMGEUW): Ditto. 12741 (IX86_BUILTIN_PCOMFALSEUW): Ditto. 12742 (IX86_BUILTIN_PCOMTRUEUW): Ditto. 12743 (IX86_BUILTIN_PCOMEQUD): Ditto. 12744 (IX86_BUILTIN_PCOMNEUD): Ditto. 12745 (IX86_BUILTIN_PCOMLTUD): Ditto. 12746 (IX86_BUILTIN_PCOMLEUD): Ditto. 12747 (IX86_BUILTIN_PCOMGTUD): Ditto. 12748 (IX86_BUILTIN_PCOMGEUD): Ditto. 12749 (IX86_BUILTIN_PCOMFALSEUD): Ditto. 12750 (IX86_BUILTIN_PCOMTRUEUD): Ditto. 12751 (IX86_BUILTIN_PCOMEQUQ): Ditto. 12752 (IX86_BUILTIN_PCOMNEUQ): Ditto. 12753 (IX86_BUILTIN_PCOMLTUQ): Ditto. 12754 (IX86_BUILTIN_PCOMLEUQ): Ditto. 12755 (IX86_BUILTIN_PCOMGTUQ): Ditto. 12756 (IX86_BUILTIN_PCOMGEUQ): Ditto. 12757 (IX86_BUILTIN_PCOMFALSEUQ): Ditto. 12758 (IX86_BUILTIN_PCOMTRUEUQ): Ditto. 12759 (IX86_BUILTIN_PCOMEQB): Ditto. 12760 (IX86_BUILTIN_PCOMNEB): Ditto. 12761 (IX86_BUILTIN_PCOMLTB): Ditto. 12762 (IX86_BUILTIN_PCOMLEB): Ditto. 12763 (IX86_BUILTIN_PCOMGTB): Ditto. 12764 (IX86_BUILTIN_PCOMGEB): Ditto. 12765 (IX86_BUILTIN_PCOMFALSEB): Ditto. 12766 (IX86_BUILTIN_PCOMTRUEB): Ditto. 12767 (IX86_BUILTIN_PCOMEQW): Ditto. 12768 (IX86_BUILTIN_PCOMNEW): Ditto. 12769 (IX86_BUILTIN_PCOMLTW): Ditto. 12770 (IX86_BUILTIN_PCOMLEW): Ditto. 12771 (IX86_BUILTIN_PCOMGTW): Ditto. 12772 (IX86_BUILTIN_PCOMGEW): Ditto. 12773 (IX86_BUILTIN_PCOMFALSEW): Ditto. 12774 (IX86_BUILTIN_PCOMTRUEW): Ditto. 12775 (IX86_BUILTIN_PCOMEQD): Ditto. 12776 (IX86_BUILTIN_PCOMNED): Ditto. 12777 (IX86_BUILTIN_PCOMLTD): Ditto. 12778 (IX86_BUILTIN_PCOMLED): Ditto. 12779 (IX86_BUILTIN_PCOMGTD): Ditto. 12780 (IX86_BUILTIN_PCOMGED): Ditto. 12781 (IX86_BUILTIN_PCOMFALSED): Ditto. 12782 (IX86_BUILTIN_PCOMTRUED): Ditto. 12783 (IX86_BUILTIN_PCOMEQQ): Ditto. 12784 (IX86_BUILTIN_PCOMNEQ): Ditto. 12785 (IX86_BUILTIN_PCOMLTQ): Ditto. 12786 (IX86_BUILTIN_PCOMLEQ): Ditto. 12787 (IX86_BUILTIN_PCOMGTQ): Ditto. 12788 (IX86_BUILTIN_PCOMGEQ): Ditto. 12789 (IX86_BUILTIN_PCOMFALSEQ): Ditto. 12790 (IX86_BUILTIN_PCOMTRUEQ): Ditto. 12791 (enum multi_arg_type): New enum for describing the various SSE5 12792 intrinsic argument types. 12793 (bdesc_multi_arg): New table for SSE5 intrinsics. 12794 (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support. 12795 (ix86_expand_multi_arg_builtin): New function for creating SSE5 12796 intrinsics. 12797 (ix86_expand_builtin): Add SSE5 intrinsic support. 12798 (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4 12799 operand instructions. 12800 (ix86_expand_sse5_multiple_memory): New function to split the 12801 second memory reference from SSE5 instructions. 12802 (type_has_variadic_args_p): Delete in favor of stdarg_p. 12803 (ix86_return_pops_args): Use stdarg_p to determine if the function 12804 has variable arguments. 12805 (ix86_setup_incoming_varargs): Ditto. 12806 (x86_this_parameter): Ditto. 12807 12808 * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add 12809 declaration. 12810 (ix86_expand_sse5_pack): Ditto. 12811 (ix86_sse5_valid_op_p): Ditto. 12812 (ix86_expand_sse5_multiple_memory): Ditto. 12813 12814 * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC 12815 constant for SSE5 support. 12816 (UNSPEC_SSE5_UNSIGNED_CMP): Ditto. 12817 (UNSPEC_SSE5_TRUEFALSE): Ditto. 12818 (UNSPEC_SSE5_PERMUTE): Ditto. 12819 (UNSPEC_SSE5_ASHIFT): Ditto. 12820 (UNSPEC_SSE5_LSHIFT): Ditto. 12821 (UNSPEC_FRCZ): Ditto. 12822 (UNSPEC_CVTPH2PS): Ditto. 12823 (UNSPEC_CVTPS2PH): Ditto. 12824 (PCOM_FALSE): Add new constant for true/false SSE5 comparisons. 12825 (PCOM_TRUE): Ditto. 12826 (COM_FALSE_S): Ditto. 12827 (COM_FALSE_P): Ditto. 12828 (COM_TRUE_S): Ditto. 12829 (COM_TRUE_P): Ditto. 12830 (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types. 12831 (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg 12832 types. 12833 (memory attribute): Ditto. 12834 (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1. 12835 Use SSE4_1_ROUND_* constants instead of hard coded numbers. 12836 (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1. 12837 (floor<mode>2): Ditto. 12838 (ceil<mode>2): Ditto. 12839 (btrunc<mode>2): Ditto. 12840 (nearbyintdf2): Ditto. 12841 (nearbyintsf2): Ditto. 12842 (sse_setccsf): Disable if SSE5. 12843 (sse_setccdf): Ditto. 12844 (sse5_setcc<mode>): New support for SSE5 conditional move. 12845 (sse5_pcmov_<mode>): Ditto. 12846 12847 * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5. 12848 (SSEMODEF4): Ditto. 12849 (SSEMODEF2P): Ditto. 12850 (ssemodesuffixf4): New mode attribute for SSE5. 12851 (ssemodesuffixf2s): Ditto. 12852 (ssemodesuffixf2c): Ditto. 12853 (sserotatemax): Ditto. 12854 (ssescalarmode): Ditto. 12855 (sse_maskcmpv4sf3): Disable if SSE5. 12856 (sse_maskcmpv2df3): Ditto. 12857 (sse_vmmaskcmpv4sf3): Ditto. 12858 (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions. 12859 (sse5_vmfmadd<mode>4): Ditto. 12860 (sse5_fmsub<mode>4): Ditto. 12861 (sse5_vmfmsub<mode>4): Ditto. 12862 (sse5_fnmadd<mode>4): Ditto. 12863 (sse5_vmfnmadd<mode>4): Ditto. 12864 (sse5_fnmsub<mode>4): Ditto. 12865 (sse5_vmfnmsub<mode>4): Ditto. 12866 (sse5i_fmadd<mode>4): Ditto. 12867 (sse5i_fmsub<mode>4): Ditto. 12868 (sse5i_fnmadd<mode>4): Ditto. 12869 (sse5i_fnmsub<mode>4): Ditto. 12870 (sse5i_vmfmadd<mode>4): Ditto. 12871 (sse5i_vmfmsub<mode>4): Ditto. 12872 (sse5i_vmfnmadd<mode>4): Ditto. 12873 (sse5i_vmfnmsub<mode>4): Ditto. 12874 (mulv16qi3): Add SSE5 support. 12875 (mulv4si3): Ditto. 12876 (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5. 12877 (sse2_mulv4si3): Disable if SSE5. 12878 (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1. 12879 (sse4_1_roundps): Ditto. 12880 (sse4_1_roundsd): Ditto. 12881 (sse4_1_roundss): Ditto. 12882 (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will 12883 be generated. 12884 (sse_maskcmpsf3): Ditto. 12885 (sse_vmmaskcmpv4sf3): Ditto. 12886 (sse2_maskcmpv2df3): Ditto. 12887 (sse2_maskcmpdf3): Ditto. 12888 (sse2_vmmaskcmpv2df3): Ditto. 12889 (sse2_eq<mode>3): Ditto. 12890 (sse2_gt<mode>3): Ditto. 12891 (sse5_pcmov_<mode>): Add SSE5 support. 12892 (vec_unpacku_hi_v16qi): Ditto. 12893 (vec_unpacks_hi_v16qi): Ditto. 12894 (vec_unpacku_lo_v16qi): Ditto. 12895 (vec_unpacks_lo_v16qi): Ditto. 12896 (vec_unpacku_hi_v8hi): Ditto. 12897 (vec_unpacks_hi_v8hi): Ditto. 12898 (vec_unpacku_lo_v8hi): Ditto. 12899 (vec_unpacks_lo_v8hi): Ditto. 12900 (vec_unpacku_hi_v4si): Ditto. 12901 (vec_unpacks_hi_v4si): Ditto. 12902 (vec_unpacku_lo_v4si): Ditto. 12903 (vec_unpacks_lo_v4si): Ditto. 12904 (sse5_pmacsww): New SSE5 intrinsic insn. 12905 (sse5_pmacssww): Ditto. 12906 (sse5_pmacsdd): Ditto. 12907 (sse5_pmacssdd): Ditto. 12908 (sse5_pmacssdql): Ditto. 12909 (sse5_pmacssdqh): Ditto. 12910 (sse5_pmacsdqh): Ditto. 12911 (sse5_pmacsswd): Ditto. 12912 (sse5_pmacswd): Ditto. 12913 (sse5_pmadcsswd): Ditto. 12914 (sse5_pmadcswd): Ditto. 12915 (sse5_pcmov_<move>): Conditional move support on SSE5. 12916 (sse5_phaddbw): New SSE5 intrinsic insn. 12917 (sse5_phaddbd): Ditto. 12918 (sse5_phaddbq): Ditto. 12919 (sse5_phaddwd): Ditto. 12920 (sse5_phaddwq): Ditto. 12921 (sse5_phadddq): Ditto. 12922 (sse5_phaddubw): Ditto. 12923 (sse5_phaddubd): Ditto. 12924 (sse5_phaddubq): Ditto. 12925 (sse5_phadduwd): Ditto. 12926 (sse5_phadduwq): Ditto. 12927 (sse5_phaddudq): Ditto. 12928 (sse5_phsubbw): Ditto. 12929 (sse5_phsubwd): Ditto. 12930 (sse5_phsubdq): Ditto. 12931 (sse5_pperm): Ditto. 12932 (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5. 12933 (sse5_pperm_zero_v16qi_v8hi): Ditto. 12934 (sse5_pperm_sign_v8hi_v4si): Ditto. 12935 (sse5_pperm_zero_v8hi_v4si): Ditto. 12936 (sse5_pperm_sign_v4si_v2di): Ditto. 12937 (sse5_pperm_sign_v4si_v2di): Ditto. 12938 (sse5_pperm_pack_v2di_v4si): Ditto. 12939 (sse5_pperm_pack_v4si_v8hi): Ditto. 12940 (sse5_pperm_pack_v8hi_v16qi): Ditto. 12941 (sse5_perm<mode>): New SSE5 intrinsic insn. 12942 (rotl<mode>3): Ditto. 12943 (sse5_rotl<mode>3): Ditto. 12944 (sse5_ashl<mode>3): Ditto. 12945 (sse5_lshl<mode>3): Ditto. 12946 (sse5_frcz<mode>2): Ditto. 12947 (sse5s_frcz<mode>2): Ditto. 12948 (sse5_cvtph2ps): Ditto. 12949 (sse5_cvtps2ph): Ditto. 12950 (sse5_vmmaskcmp<mode>3): Ditto. 12951 (sse5_com_tf<mode>3): Ditto. 12952 (sse5_maskcmp<mode>3): Ditto. 12953 (sse5_maskcmp_uns<mode>3): Ditto. 12954 (sse5_maskcmp_uns2<mode>3): Ditto. 12955 (sse5_pcom_tf<mode>3): Ditto. 12956 12957 * config/i386/predicates.md (sse5_comparison_float_operator): 12958 New predicate to match the comparison operators supported by 12959 the SSE5 com instruction. 12960 (ix86_comparison_int_operator): New predicate to match just the 12961 signed int comparisons. 12962 (ix86_comparison_uns_operator): New predicate to match just the 12963 unsigned int comparisons. 12964 12965 * doc/invoke.texi (-msse5): Add documentation. 12966 (-mfused-madd): Ditto. 12967 12968 * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics. 12969 12970 * config.gcc (i[34567]86-*-*): Include bmmintrin.h and 12971 mmintrin-common.h. 12972 (x86_64-*-*): Ditto. 12973 12974 * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit. 12975 12976 * config/i386/bmmintrin.h: New file, provide common x86 compiler 12977 intrinisics for SSE5. 12978 12979 * config/i386/smmintrin.h: Move instructions shared with SSE5 to 12980 mmintrin-common.h. 12981 12982 * config/i386/mmintrin-common.h: New file, to contain common 12983 instructions between SSE4.1 and SSE5. 12984 12985 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use 12986 FOREACH_FUNCTION_ARGS to iterate over the argument list. 12987 (gen_regparm_prefix): Ditto. 12988 12989 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use 12990 FOREACH_FUNCTION_ARGS to iterate over the argument list. Use 12991 prototype_p to determine if a function is prototyped. 12992 129932009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com> 12994 12995 * c-common.c (c_common_reswords) add the alignof keyword, 12996 with same RID as __alignof and __alignof__ 12997 129982009-08-25 Anatoly Sokolov <aesok@post.ru> 12999 13000 * hooks.h (hook_bool_const_int_const_int_true): Declare. 13001 * hooks.c (hook_bool_const_int_const_int_true): New function. 13002 * target.h (struct gcc_target): Add can_eliminate field. 13003 * target-def.h (TARGET_CAN_ELIMINATE): Define. 13004 (TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE. 13005 * ira.c (setup_eliminable_regset): Use can_eliminate target hook. 13006 * reload1.c (update_eliminables, init_elim_table): (Ditto.). 13007 (elim_table): Revise comment. 13008 * system.h (CAN_ELIMINATE): Poison. 13009 * defaults.h (CAN_ELIMINATE): Remove. 13010 * doc/tm.texi (CAN_ELIMINATE): Revise documentation. 13011 13012 * config/alpha/vms.h (CAN_ELIMINATE): Remove macro. 13013 * config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]: 13014 Define macro. 13015 (alpha_vms_can_eliminate): Declare as static, change return type to 13016 bool. 13017 * config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove. 13018 13019 * config/arm/arm.h (CAN_ELIMINATE): Remove macro. 13020 * config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro. 13021 (arm_can_eliminate): New function. 13022 13023 * config/avr/avr.h (CAN_ELIMINATE): Remove macro. 13024 * config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro. 13025 (avr_can_eliminate): Declare as static. 13026 * config/avr/avr-protos.h (avr_can_eliminate): Remove. 13027 13028 * config/bfin/bfin.h (CAN_ELIMINATE): Remove macro. 13029 * config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro. 13030 (bfin_can_eliminate): New function. 13031 13032 * config/crx/crx.h (CAN_ELIMINATE): Remove macro. 13033 * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro. 13034 (crx_can_eliminate): New function. 13035 13036 * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro. 13037 * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro. 13038 (fr30_can_eliminate): New function. 13039 13040 * config/frv/frv.h (CAN_ELIMINATE): Remove macro. 13041 * config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro. 13042 (frv_can_eliminate): New function. 13043 13044 * config/h8300/h8300.h (CAN_ELIMINATE): Remove macro. 13045 * config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro. 13046 (h8300_can_eliminate): New function. 13047 13048 * config/i386/i386.h (CAN_ELIMINATE): Remove macro. 13049 * config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro. 13050 (i386_can_eliminate): Declare as static, change return type to bool. 13051 * config/i386/i386-protos.h (i386_can_eliminate): Remove. 13052 13053 * config/ia64/ia64.h (CAN_ELIMINATE): Remove macro. 13054 * config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro. 13055 (ia64_can_eliminate): New function. 13056 13057 * config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro. 13058 * config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro. 13059 (iq2000_can_eliminate): New function. 13060 13061 * config/m32r/m32r.h (CAN_ELIMINATE): Remove macro. 13062 * config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro. 13063 (m32r_can_eliminate): New function. 13064 13065 * config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro. 13066 * config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro. 13067 (m68hc11_can_eliminate): New function. 13068 13069 * config/m68k/m68k.h (CAN_ELIMINATE): Remove macro. 13070 * config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro. 13071 (m68k_can_eliminate): New function. 13072 13073 * config/mep/mep.h (CAN_ELIMINATE): Remove macro. 13074 * config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro. 13075 (mep_can_eliminate): New function. 13076 13077 * config/mips/mips.h (CAN_ELIMINATE): Remove macro. 13078 * config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro. 13079 (mips_can_eliminate): New function. 13080 13081 * config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro. 13082 * config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro. 13083 (rs6000_can_eliminate): New function. 13084 13085 * config/s390/s390.h (CAN_ELIMINATE): Remove macro. 13086 * config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro. 13087 (s390_can_eliminate): Declare as static. 13088 * config/s390/s390-protos.h (sparc_can_eliminate): Remove. 13089 13090 * config/score/score.h (CAN_ELIMINATE): Remove macro. 13091 * config/score/score.c (TARGET_CAN_ELIMINATE): Define macro. 13092 (score_can_eliminate): New function. 13093 13094 * config/sparc/sparc.h (CAN_ELIMINATE): Remove macro. 13095 * config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro. 13096 (sparc_can_eliminate): Declare as static. 13097 * config/sparc/sparc-protos.h (sparc_can_eliminate): Remove. 13098 13099 * config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro. 13100 * config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro. 13101 (xstormy16_can_eliminate): New function. 13102 13103 * config/v850/v850.h (CAN_ELIMINATE): Remove macro. 13104 * config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro. 13105 (v850_can_eliminate): New function. 13106 131072009-08-25 Uros Bizjak <ubizjak@gmail.com> 13108 13109 * config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove. 13110 (*cmpdf_internal): Enable for all ALPHA_FPTM levels. 13111 (*movdfcc_ext[1234]): Disable for IEEE mode. 13112 131132009-08-25 Eric Botcazou <ebotcazou@adacore.com> 13114 13115 * gimplify.c (prepare_gimple_addressable): New static function. 13116 (gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking 13117 it addressable. 13118 (gimplify_addr_expr): Invoke it similarly on the operand instead of 13119 manually fiddling with it. 13120 131212009-08-25 Michael Matz <matz@suse.de> 13122 13123 * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare. 13124 * dojump.c (do_jump_by_parts_greater): Take two operands instead of 13125 full expression. 13126 (do_jump_by_parts_equality, do_compare_and_jump): Ditto. 13127 (jumpifnot_1, jumpif_1): New wrappers for do_jump_1. 13128 (do_jump): Split out code for simple binary comparisons into ... 13129 (do_jump_1): ... this, taking the individual operands and code. 13130 Change callers to helper function above accordingly. 13131 * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary 13132 comparisons. 13133 131342009-08-25 Michael Matz <matz@suse.de> 13135 13136 * expr.h (struct separate_ops, sepops): New type for passing 13137 around an exploded simple expression. 13138 * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr): 13139 Use this structure instead of expression tree. 13140 (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole 13141 expression, only its type. 13142 (expand_vec_cond_expr): Take type and individual operands instead 13143 of full expression. 13144 * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr, 13145 expand_vec_shift_expr): Change prototype accordingly. 13146 * tree-vect-stmts.c (vectorizable_condition): Change call of 13147 expand_vec_cond_expr_p to pass only type. 13148 * expr.c (do_store_flags): Change prototype and implementation 13149 to take an exploded expression. 13150 (expand_expr_real_1): New local ops initialized with details 13151 of the full expression. Use it instead of full 13152 expression in calls to do_store_flags, expand_vec_cond_expr, 13153 expand_widen_pattern_expr and expand_vec_shift_expr. 13154 131552009-08-25 Michael Matz <matz@suse.de> 13156 13157 * expr.c (expand_expr_real_1): New local treeop0, treeop1, 13158 treeop2 initialized with first three operands of the full expression. 13159 Substitute all TREE_OPERAND (exp, [012]) calls with them. 13160 131612009-08-25 Kai Tietz <kai.tietz@onevision.com> 13162 13163 * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present. 13164 (__gthread_objc_condition_allocate): Mark arguments as unused. 13165 (__gthread_objc_condition_deallocate): Likewise. 13166 (__gthread_objc_condition_wait): Likewise. 13167 (__gthread_objc_condition_broadcast): Likewise. 13168 (__gthread_objc_condition_signal): Likewise. 13169 (__gthread_objc_thread_detach): Cast via INT_PTR to pointer. 13170 (__gthread_objc_thread_id): Likewise. 13171 131722009-08-25 Janus Weil <janus@gcc.gnu.org> 13173 13174 PR middle-end/41149 13175 * tree-pretty-print.c (print_call_name): Print the correct call name 13176 for procedure pointer components. 13177 131782009-08-24 Steve Ellcey <sje@cup.hp.com> 13179 13180 * config/ia64/ia64.c (ia64_promote_function_mode): Call 13181 default_promote_function_mode when not VMS. 13182 131832009-08-24 Olivier Hainque <hainque@adacore.com> 13184 13185 * convert.c (convert_to_integer): Don't assume an input pointer is 13186 POINTER_SIZE wide. Fetch from the type instead. 13187 131882009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 13189 13190 * configure.ac (AC_PREREQ): Bump to 2.64. 13191 131922009-08-24 Rafael Avila de Espindola <espindola@google.com> 13193 13194 * gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove. 13195 (process_command): Don't search standard_exec_prefix_1 and 13196 standard_exec_prefix_2. 13197 131982009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13199 13200 * config/arm/arm.c (output_return_instruction): Handle for 13201 unified syntax. 13202 132032009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13204 13205 * config/arm/arm.c (arm_select_cc_mode): Handle subreg. 13206 132072009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13208 13209 * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable. 13210 (*arm_movdf_vfp): Likewise. 13211 132122009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13213 13214 * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3. 13215 (vashr<mode>3): Rename from ashr<mode>3. 13216 (vlshr<mode>3): Rename from lshr<mode>3. 13217 132182009-08-24 Kai Tietz <kai.tietz@onevision.com> 13219 13220 PR/40786 13221 * c-format.c (format_wanted_type): Add new member scalar_identity_flag. 13222 (check_format_info_main): Use scalar_identify_flag. 13223 (check_format_types): Check for scalar size identity if 13224 scalar_identify_flag is set. 13225 (printf_length_specs): Extend by new field. 13226 (asm_fprintf_length_specs): Likewise. 13227 (gcc_diag_length_specs): Likewise. 13228 (scanf_length_specs): Likewise. 13229 (strfmon_length_specs): Likewise. 13230 (gcc_gfc_length_specs): Likewise. 13231 * config/i386/msformat-c.c (ms_printf_length_specs): Likewise. 13232 (ms_printf_flag_specs): Likewise. 13233 * c-format.h (format_length_info): Add new member scalar_identity_flag. 13234 132352009-08-23 Uros Bizjak <ubizjak@gmail.com> 13236 13237 PR target/40718 13238 * config/i386/i386.c (*call_pop_1): Disable for sibling calls. 13239 (*call_value_pop_1): Ditto. 13240 (*sibcall_pop_1): New insn pattern. 13241 (*sibcall_value_pop_1): Ditto. 13242 132432009-08-23 Alan Modra <amodra@bigpond.net.au> 13244 13245 PR target/41081 13246 * config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64, 13247 ashrsi3_64): New. 13248 132492009-08-23 Alan Modra <amodra@bigpond.net.au> 13250 13251 PR target/41081 13252 * fwprop.c (try_fwprop_subst): Allow multiple sets. 13253 (get_reg_use_in): New function. 13254 (forward_propagate_subreg): Propagate through subreg of zero_extend 13255 or sign_extend. 13256 132572009-08-22 Kaz Kojima <kkojima@gcc.gnu.org> 13258 13259 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define. 13260 * config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee. 13261 132622009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 13263 13264 * configure.ac: Remove --with-datarootdir, --with-docdir, 13265 --with-htmldir switches. No need to call AC_SUBST for 13266 datarootdir, docdir, htmldir any more. 13267 * configure: Regenerate. 13268 * doc/install.texi (Configuration): Document --datarootdir, 13269 --docdir, --htmldir, --pdfdir; update documentation for 13270 --infodir, --mandir. 13271 (Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11, 13272 M4 to 1.4.6. 13273 13274 * aclocal.m4: Regenerate. 13275 * config.in: Regenerate. 13276 * configure: Regenerate. 13277 132782009-08-21 Douglas B Rupp <rupp@gnat.com> 13279 Olivier Hainque <hainque@adacore.com> 13280 13281 * config/ia64/ia64.c: Include libfuncs.h. 13282 (TARGET_PROMOTE_FUNCITON_MODE): Define target macro. 13283 (ia64_expand_call): Use reg 25 on VMS. 13284 (ia64_initialize_trampoline): Fix for VMS ABI. 13285 (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS. 13286 (ia64_function_arg): Initialize reg 25 on VMS. 13287 Fix OpenVMS ABI issues for varargs. 13288 For OpenVMS, emit the Argument Information register set in the 13289 incoming/sibcall case as well. 13290 (ia64_arg_type): New function. 13291 (ia64_function_arg_advance): Keep track of cum->words. 13292 Fix OpenVMS ABI issues for varargs. 13293 (ia64_function_value): On VMS, promote mode of non-aggregate types. 13294 (ia64_override_options): Set flag_no_common on VMS. 13295 (ia64_init_builtins): Disable FWRITE builtin. 13296 (ia64_asm_output_external): Call DO_CRTL_NAMES. 13297 (ia64_vms_init_libfuncs): Add decc$ routines. 13298 (ia64_vms_valid_pointer_mode): New function. 13299 (ia64_struct_value_rtx): Allways NULL_RTX on VMS. 13300 (ia64_promote_function_mode): New function 13301 * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default. 13302 (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS. 13303 (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise. 13304 (INIT_CUMULATIVE_ARGS): Add atypes for VMS. 13305 (INIT_CUMULATIVE_INCOMING_ARGS): Likewise. 13306 (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit. 13307 Suppress trailing '#' if VALUE is numeric. 13308 * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to 13309 ia64_promote_function_mode. 13310 (TARGET_VALID_POINTER_MODE): Define. 13311 133122009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com> 13313 13314 PR target/40671 13315 * config/rs6000/rs6000.c (rs6000_override_options): Use 13316 TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers. 13317 13318 PR target/41145 13319 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix 13320 reporting of vector + decimal/boolean/complex error. 13321 133222009-08-21 Jakub Jelinek <jakub@redhat.com> 13323 13324 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of 13325 __vector double TYPE_DECL. 13326 133272009-08-21 Richard Earnshaw <rearnsha@arm.com> 13328 13329 * arm.h (MACHMODE): New define. Include insn-modes.h if available. 13330 (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode. 13331 * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode 13332 to pointer to enum machine_mode. Update all callers as needed. 13333 133342009-08-21 Uros Bizjak <ubizjak@gmail.com> 13335 13336 * config/alpha/alpha.md (exception_receiver): Emit alternative 13337 GP load sequence if flag_reorder_blocks_and_partition is set. 13338 (*exception_receiver_2): Also enable when 13339 flag_reorder_blocks_and_partition is set. 13340 133412009-08-20 Matt Rice <ratmice@gmail.com> 13342 Diego Novillo <dnovillo@google.com> 13343 13344 * Makefile.in (PLUGIN_HEADERS): Include incpath.h and 13345 tree-ssa-sccvn.h. 13346 133472009-08-20 Richard Guenther <rguenther@suse.de> 13348 13349 * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define. 13350 * c-tree.h (c_dup_lang_specific_decl): Remove. 13351 (struct lang_decl, struct lang_type): Move definitions ... 13352 * c-lang.h: ... here. New file. 13353 * c-decl.c: Include c-lang.h. 13354 (c_dup_lang_specific_decl): Remove. 13355 * c-typeck.c: Include c-lang.h. 13356 * Makefile.in (c-decl.o): Add c-lang.h dependency. 13357 (c-typeck.o): Likewise. 13358 * c-config-lang.in (gtfiles): Add c-lang.h. 13359 * gengtype.c (get_output_file_with_visibility): Handle c-lang.h 13360 like c-tree.h. 13361 133622009-08-20 Uros Bizjak <ubizjak@gmail.com> 13363 13364 * config/alpha/alpha.c (alpha_end_function): Do not clear 13365 crtl->emit structure and free insn locators if cfun->is_thunk is true, 13366 this is now handled in generic code. 13367 133682009-08-20 Andreas Krebbel <krebbel1@de.ibm.com> 13369 13370 * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro. 13371 (s390_z10_fix_long_loop_prediction): New function. 13372 (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg. 13373 (s390_reorg): Walk over the INSNs and invoke 13374 s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp. 13375 133762009-08-20 Andreas Krebbel <krebbel1@de.ibm.com> 13377 13378 * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit", 13379 "*brx_64bit", "*brx_31bit"): New patterns. 13380 * config/s390/s390.c ('E'): New output modifier. 13381 133822009-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13383 Richard Earnshaw <richard.earnshaw@arm.com> 13384 13385 * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT. 13386 * config/arm/arm.md (*arm_movtas_ze): New pattern for movt. 13387 133882009-08-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 13389 13390 * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New 13391 patterns. 13392 * pa.c (emit_move_sequence): Check if address of operand1 is valid 13393 for mode mode of operand0 when doing secondary reload for SAR. 13394 133952009-08-19 Jakub Jelinek <jakub@redhat.com> 13396 13397 PR middle-end/41123 13398 * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds 13399 of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT. 13400 134012009-08-19 Jason Merrill <jason@redhat.com> 13402 13403 * doc/invoke.texi (C++ Dialect Options): Note change of minimum 13404 supported template depth in C++0x. 13405 134062009-08-19 Jakub Jelinek <jakub@redhat.com> 13407 13408 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call 13409 free_after_compilation. 13410 * config/score/score7.c (score7_output_mi_thunk): Likewise. 13411 * config/score/score3.c (score3_output_mi_thunk): Likewise. 13412 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. 13413 * config/mips/mips.c (mips_output_mi_thunk): Likewise. 13414 * config/sh/sh.c (sh_output_mi_thunk): Likewise. 13415 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. 13416 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. 13417 134182009-08-19 Ian Lance Taylor <iant@google.com> 13419 13420 * doc/md.texi (Insn Canonicalizations): Correct canonicalization 13421 of (plus (mult (neg B) C) A). 13422 134232009-08-18 Michael Matz <matz@suse.de> 13424 13425 * omp-low.c (optimize_omp_library_calls): Use types_compatible_p 13426 instead of comparing TYPE_MAIN_VARIANT for equality. 13427 * tree-vect-patterns.c (vect_recog_dot_prod_pattern, 13428 vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto. 13429 * tree-vect-loop.c (vect_is_simple_reduction): Ditto. 13430 * gimplify.c (goa_lhs_expr_p): Ditto and use 13431 STRIP_USELESS_TYPE_CONVERSION. 13432 134332009-08-18 Michael Matz <matz@suse.de> 13434 13435 * tree-ssa-structalias.c (create_variable_info_for): Also mark 13436 first field in a struct. 13437 (intra_create_variable_infos): Don't deal with flag_argument_noalias. 13438 134392009-08-18 Uros Bizjak <ubizjak@gmail.com> 13440 13441 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn 13442 locators before emit_insn is called. Remove assert that 13443 cfun->is_thunk. 13444 (alpha_end_function): Clear crtl->emit structure and free insn 13445 locators if cfun->is_thunk is true. 13446 134472009-08-18 Jason Merrill <jason@redhat.com> 13448 13449 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object 13450 type if available. 13451 * configure.ac: Test for it. 13452 * configure, config.in: Regenerate. 13453 * doc/install.texi: Document --enable-gnu-unique-object. 13454 134552009-08-18 Richard Guenther <rguenther@suse.de> 13456 13457 PR middle-end/41094 13458 * builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to 13459 pow(x,y*z) only if x is nonnegative. 13460 134612009-08-18 Jakub Jelinek <jakub@redhat.com> 13462 13463 * bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump 13464 on jumps. 13465 13466 PR target/40971 13467 * config/rs6000/rs6000.c (rs6000_legitimize_address): For 13468 [DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000. 13469 134702009-08-17 DJ Delorie <dj@redhat.com> 13471 13472 * config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New. 13473 * config/m32c/prologue.md (epilogue_freit): New. 13474 (fset_b): New. 13475 * config/m32c/m32c.c (m32c_function_needs_enter): Add prototype. 13476 (bank_switch_p): Likewise. 13477 (fast_interrupt_p): Likewise. 13478 (interrupt_p): Likewise. 13479 (m32c_conditional_register_usage): Round memregs size up. 13480 (need_to_save): We only need to save $a0 when we use ENTER. 13481 (interrupt_p): Check for fast_interrupt too. 13482 (bank_switch_p): New. 13483 (fast_interrupt_p): New. 13484 (m32c_attribute_table): Add bank_switch and fast_interrupt. 13485 (m32c_emit_prolog): Support bank switching and fast interrupts. 13486 * doc/extend.texi (Function Attributes): Add bank_switch and 13487 fast_interrupt. 13488 134892009-08-17 Douglas B Rupp <rupp@gnat.com> 13490 13491 * config/alpha/alpha.c (vms_valid_pointer_mode): New function. 13492 * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define. 13493 134942009-08-16 Douglas B Rupp <rupp@gnat.com> 13495 13496 * doc/invoke.texi (Target options): Add new option list for IA-64/VMS. 13497 (menu): Add IA-64/VMS Options. 13498 (IA-64/VMS Options): Likewise. 13499 135002009-08-16 Richard Sandiford <rdsandiford@googlemail.com> 13501 13502 PR target/38599 13503 * config/mips/mips.md (*lwxs): Use :P for pointer values. 13504 135052009-08-16 Richard Sandiford <rdsandiford@googlemail.com> 13506 13507 * config/mips/mips-protos.h (mips_push_asm_switch): New function. 13508 (mips_pop_asm_switch): Likewise. 13509 * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace 13510 with... 13511 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables. 13512 (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions. 13513 (mips_push_asm_switch, mips_pop_asm_switch): Likewise. 13514 (mips_print_operand_punctuation): Use them. Check mips_noreorder 13515 instead of set_noreorder. 13516 (mips_output_function_prologue): Use the new functions. 13517 (mips_output_function_epilogue): Likewise. 13518 (mips_need_noat_wrapper_p): New function, split out from... 13519 (mips_final_prescan_insn, mips_final_postscan_insn): ...here. 13520 Use mips_push_asm_switch and mips_pop_asm_switch. 13521 * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch 13522 and mips_pop_asm_switch. 13523 (ASM_OUTPUT_REG_POP): Likewise. 13524 (DBR_OUTPUT_SEQEND): Remove boilerplate comment. 13525 Use mips_pop_asm_switch. 13526 (mips_asm_switch): New structure. 13527 (set_noreorder, set_nomacro): Replace with... 13528 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables. 13529 * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro 13530 instead of set_nomacro. 13531 (fix_truncsfsi2_macro): Likewise. 13532 (cprestore): Likewise. 13533 (hazard): Use mips_noreorder instead of set_noreorder. 13534 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h. 13535 135362009-08-16 Uros Bizjak <ubizjak@gmail.com> 13537 13538 * config/alpha/alpha.c (alpha_end_function): Handle NULL_RTX returned 13539 from prev_active_insn. 13540 135412009-08-16 Anatoly Sokolov <aesok@post.ru> 13542 13543 * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros. 13544 * config/avr/avr.c (avr_override_options): Initialize 13545 avr_current_arch variable. 13546 (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or 13547 __AVR_HAVE_16BIT_SP__ according to the device type. 13548 (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of 13549 TARGET_TINY_STACK. 13550 (expand_epilogue): Use correct QI mode frame pointer for tiny stack. 13551 Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK. 13552 135532009-08-16 Dodji Seketeli <dodji@redhat.com> 13554 13555 PR debug/37801 13556 * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on 13557 generating inlined subroutine die only. We shouldn't be 13558 called for anything else. 13559 (gen_block_die): Don't generate inline subroutine debug info for 13560 abstract blocks. 13561 135622009-08-15 Sebastian Pop <sebastian.pop@amd.com> 13563 13564 * graphite-poly.c (print_pbb): Print PBB index. 13565 135662009-08-15 Sebastian Pop <sebastian.pop@amd.com> 13567 13568 PR middle-end/40981 13569 * graphite-interchange.c (ppl_max_for_le): Moved... 13570 * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le. 13571 * graphite-ppl.c (ppl_max_for_le): ... here. Correct the use of 13572 ppl_Pointset_Powerset_C_Polyhedron_maximize. 13573 * graphite-ppl.h (ppl_max_for_le): Declared. 13574 135752009-08-14 Olatunji Ruwase <tjruwase@google.com> 13576 13577 * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is 13578 supported on all platforms. 13579 * target.h (struct gcc_target): Remove handle_pragma_redefine_extname. 13580 * c-cppbuiltin.c: Remove use of targetm.handle_pragma_redefine_extname. 13581 * c-pragma.c: Likewise. 13582 * target-def.h (TARGET_INITIALIZER): Remove 13583 TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME. 13584 * config/sol2.h: Remove use of TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME. 13585 135862009-08-14 Douglas B Rupp <rupp@gnat.com> 13587 13588 * config/ia64/fde-vms.c: New file. 13589 * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg. 13590 * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h 13591 (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default. 13592 (uw_frame_state_for): Only register a personality routine if it is 13593 known to be compatible with our expectations. 13594 (_Unwind_FindEnclosingFunction, uw_frame_state_for): 13595 Declare unw_table_entry stack variable and 13596 mod all calls to _Unwind_FindTableEntry to add arg. 13597 * config/ia64/unwind-ia64.h (UNW_ accessors): Move here. 13598 (_Unwind_FindTableEntry): Add arg to prototype. 13599 136002009-08-14 Eric Botcazou <ebotcazou@adacore.com> 13601 13602 * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new 13603 field 'signal_pfs_loc'. 13604 (uw_frame_state_for): Remove duplicate code dealing with leaf 13605 procedures without unwind info. 13606 If in the frame after unwinding through a signal handler, restore 13607 the AR.PFS register instead of the CFM if AR.PFS has not been saved. 13608 * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set 13609 'pfs_loc' to the AR.PFS location in the signal context; instead 13610 set 'signal_pfs_loc'. 13611 Manually generate the unwind info for the AR.PFS register. 13612 (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT, 13613 ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define. 13614 (ia64_handle_unwabi): Test 'fs->unwabi' against them. 13615 Do not set 'pfs_loc' to the AR.PFS location in the signal context; 13616 instead set 'signal_pfs_loc'. 13617 Remove code preventing the AR.PFS register from being restored 13618 from the signal context. 13619 136202009-08-14 Douglas B Rupp <rupp@gnat.com> 13621 Tristan Gingold <gingold@adacore.com> 13622 13623 * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file. 13624 * config/ia64/t-vms: New file. 13625 * config/ia64/vms64.h: New file. 13626 * config/ia64/vms.h: New file. 13627 * config/ia64/vms-crtinit.asm: New file. 13628 * config/ia64/vms_symvec_libgcc_s.opt: New file. 13629 * config/ia64/vms-unwind.h: New file. 13630 136312009-08-14 Uros Bizjak <ubizjak@gmail.com> 13632 13633 * config/alpha/alpha.c (alpha_emit_conditional_move): Handle 13634 TFmode compares. 13635 136362009-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13637 13638 PR middle-end/30789 13639 * builtins.c (do_mpc_arg2): Make extern, define for any MPC version. 13640 Move declaration... 13641 * real.h (do_mpc_arg2): ... here. 13642 * fold-const.c (const_binop): Use MPC for complex MULT_EXPR 13643 and RDIV_EXPR. 13644 136452009-08-14 Rafael Avila de Espindola <espindola@google.com> 13646 13647 * final.c (add_debug_prefix_map): Don't use GC memory for 13648 old_prefix and new_prefix. 13649 136502009-08-14 Richard Guenther <rguenther@suse.de> 13651 13652 * ipa-prop.c (compute_complex_pass_through): If we cannot 13653 compute a non-varying offset for IPA_JF_ANCESTOR punt. 13654 136552009-08-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 13656 13657 * c-lex.c (c_lex_with_flags): Increase size of local variable 13658 to avoid memory clobber. 13659 136602009-08-14 Paolo Bonzini <bonzini@gnu.org> 13661 13662 PR target/40934 13663 * config/i386/i386.c (ix86_fp_comparison_strategy): 13664 Only enable/disable sahf at function granularity. 13665 136662009-08-14 Hans-Peter Nilsson <hp@axis.com> 13667 13668 PR rtl-optimization/41064 13669 * reload1.c (reload_as_needed): Don't call extract_insn 13670 for known invalid replacements after calling 13671 validate_replace_rtx_group and verify_changes. 13672 136732009-08-14 Uros Bizjak <ubizjak@gmail.com> 13674 13675 PR target/41019 13676 * config/i386/sse.md (SSEMODE124C8): New mode iterator. 13677 (vcond<SSEMODEF2P:mode>): Assert that operation is supported by 13678 ix86_expand_fp_vcond. 13679 (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124. 13680 Assert that operation is supported by ix86_expand_int_vcond. 13681 (vcondu<SSEMODE124C8:mode>): Ditto. 13682 136832009-08-13 DJ Delorie <dj@redhat.com> 13684 13685 * config/i386/djgpp-stdint.h: New. 13686 * config.gcc (djgpp): Use it. 13687 136882009-08-13 Kaz Kojima <kkojima@gcc.gnu.org> 13689 13690 * config/sh/sh.c (sh_override_options): When flag_exceptions or 13691 flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off. 13692 136932009-08-13 Ghassan Shobaki <ghassan.shobaki@amd.com> 13694 13695 * tree-ssa-loop-prefetch.c 13696 (prune_ref_by_group_reuse): Enhance probabilistic analysis 13697 for long-stride pruning. 13698 (compute_miss_rate): New function to compute the probability 13699 that two memory references access different cache lines. 13700 137012009-08-13 Dave Korn <dave.korn.cygwin@gmail.com> 13702 13703 * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base. 13704 137052009-08-13 Richard Guenther <rguenther@suse.de> 13706 13707 PR middle-end/41047 13708 * tree-ssa-ccp.c (ccp_fold): When folding pointer additions 13709 use the constant pointer type. 13710 * gimplify.c (canonicalize_addr_expr): Canonicalize independent 13711 of CV qualifiers on the target pointer type. 13712 * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer 13713 conversion check before restrict check. 13714 137152009-08-12 Kaz Kojima <kkojima@gcc.gnu.org> 13716 13717 PR target/41029 13718 * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko. 13719 137202009-08-12 Kaz Kojima <kkojima@gcc.gnu.org> 13721 13722 * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED. 13723 137242009-08-12 Richard Guenther <rguenther@suse.de> 13725 13726 PR tree-optimization/41011 13727 * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold 13728 and reference constructing. 13729 137302009-08-12 Xinliang David Li <davidxl@google.com> 13731 13732 PR tree-optimization/41012 13733 * tree-flow.h : New external interface. 13734 * gimple-low.c (check_call_arg): Change to public function. 13735 Remove argument mismatch check in lowering. 13736 * tree-inline.h (tree_can_inline_p): Interface change. 13737 * tree-inline.c (tree_can_inline_p): Fold argument mismatch check 13738 into this function. 13739 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): 13740 Call change to tree_can_inline_p function. 13741 (cgraph_decide_inlining_incrementally): Ditto. 13742 137432009-08-12 Richard Sandiford <rdsandiford@googlemail.com> 13744 13745 PR tree-optimization/41031 13746 * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode 13747 on the partition variable rather than promote_mode on the source 13748 type. Assert that the partition variable's type has the same 13749 mode as the source value's. 13750 137512009-08-12 Paolo Bonzini <bonzini@gnu.org> 13752 13753 * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation 13754 for for_return == 2. 13755 * function.c (assign_parm_setup_reg): Use for_return == 2, improve 13756 comments. 13757 * calls.c (expand_call): Fix typo. 13758 * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL 13759 and PARM_DECL. 13760 * stmt.c (expand_value_return): Use promote_function_mode to copy out 13761 of pseudo. 13762 * targhooks.c (default_promote_function_mode): Handle for_return == 2. 13763 * config/cris/cris.c (cris_promote_function_mode): Likewise. 13764 * config/mmix/mmix.c (mmix_promote_function_mode): Likewise. 13765 * config/pa/pa.c (pa_promote_function_mode): Likewise. 13766 137672009-08-12 Andrew Haley <aph@redhat.com> 13768 13769 * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize. 13770 137712009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13772 13773 PR bootstrap/40103 13774 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat". 13775 137762009-08-12 Richard Guenther <rguenther@suse.de> 13777 13778 * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P. 13779 * gimplify.c (gimplify_modify_expr): Do not use 13780 lang_hooks.types_compatible_p. 13781 * tree-ssa.c (useless_type_conversion_p): For aggregates 13782 just return false if the canonical types differ. 13783 137842009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13785 13786 PR middle-end/40980 13787 * sese.c (convert_for_phi_arg): New. 13788 (add_guard_exit_phis): Use convert_for_phi_arg. 13789 137902009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13791 13792 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add 13793 unknown subscript upper bounds. 13794 137952009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13796 Pranav Garg <pranav.garg2107@gmail.com> 13797 13798 * graphite-interchange.c (gather_access_strides): Removed. 13799 (ppl_max_for_le): New. 13800 (build_linearized_memory_access): New. 13801 (memory_stride_in_loop): New. 13802 (pbb_interchange_profitable_p): Reimplemented. 13803 * graphite-ppl.h (ppl_new_id_map): New. 13804 (ppl_interchange): New. 13805 138062009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13807 13808 * graphite-interchange.c (compute_subscript): Removed. 13809 (compute_array_size_cstr): Removed. 13810 (compute_array_size_poly): Removed. 13811 (compute_array_size): Removed. 13812 (gather_access_strides_poly): Removed. 13813 (gather_access_strides): Empty. 13814 138152009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13816 13817 * graphite-dependences.c (dependence_polyhedron_1): Replace 13818 pdr_nb_subscripts with PDR_NB_SUBSCRIPTS. 13819 (graphite_legal_transform_dr): Same. 13820 (graphite_carried_dependence_level_k): Same. 13821 * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts. 13822 Initialize PDR_NB_SUBSCRIPTS. 13823 (print_pdr_access_layout): Replace pdr_nb_subscripts with 13824 PDR_NB_SUBSCRIPTS. 13825 * graphite-poly.h (struct poly_dr): Add nb_subscripts field. 13826 (PDR_NB_SUBSCRIPTS): New. 13827 (pdr_nb_subscripts): Removed. 13828 (pdr_dim): Simplified. 13829 * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts 13830 with PDR_NB_SUBSCRIPTS. 13831 138322009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13833 13834 * graphite-interchange.c (compute_array_size): Remove use of 13835 PDR_DATA_CONTAINER. 13836 * graphite-poly.c (new_poly_dr): Remove argument data_container. 13837 Do not initialize PDR_DATA_CONTAINER. 13838 (print_pdr): Do not print PDR_DATA_CONTAINER. 13839 * graphite-poly.h (struct poly_dr): Remove data_container field. 13840 (PDR_DATA_CONTAINER): Removed. 13841 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of 13842 PDR_DATA_CONTAINER. 13843 (build_poly_dr): Same. 13844 138452009-08-12 Konrad Trifunovic <konrad.trifunovic@gmail.com> 13846 Sebastian Pop <sebastian.pop@amd.com> 13847 13848 * graphite-dependences.c (graphite_legal_transform_dr): Work on a 13849 copy of the dependence polyhedron. Free the temporary objects. 13850 (graphite_carried_dependence_level_k): Free unused objects before 13851 returning. 13852 138532009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13854 13855 * graphite-blocking.c (scop_do_strip_mine): Call store_scattering. 13856 Early return without analyzing the data dependences if no 13857 transform has been done. Call restore_scattering if the transform 13858 is not legal. 13859 (graphite-interchange.c): Same. 13860 * graphite-poly.c (print_scattering_function): Test for 13861 PBB_TRANSFORMED. 13862 (graphite_read_transforms): Initialize PBB_TRANSFORMED. 13863 (apply_poly_transforms): Do not gcc_assert that 13864 the transform is legal. 13865 (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL. 13866 Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES, 13867 PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING. 13868 (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL. 13869 * graphite-poly.h (struct poly_scattering): New. 13870 (struct poly_bb): Add original, transformed, and saved fields. 13871 Remove transformed_scattering, original_scattering, 13872 nb_local_variables and nb_scattering_transform fields. 13873 (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New. 13874 (poly_scattering_new): New. 13875 (poly_scattering_free): New. 13876 (poly_scattering_copy): New. 13877 (store_scattering_pbb): New. 13878 (store_scattering): New. 13879 (restore_scattering_pbb): New. 13880 (restore_scattering): New. 13881 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): 13882 Initialize PBB_TRANSFORMED and PBB_ORIGINAL. 13883 138842009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13885 13886 * graphite-poly.c (print_pbb): Add parentheses in the pretty print. 13887 (print_scop): Same. 13888 138892009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13890 13891 * Makefile.in (graphite.o): Depends on PREDICT_H. 13892 * graphite.c: Include predict.h. 13893 (graphite_finalize): Call tree_estimate_probability. 13894 * predict.c (predict_loops): Do not call scev_initialize and 13895 scev_finalize. 13896 (tree_estimate_probability_bb): New. 13897 (tree_estimate_probability): Do not initialize loops: move that 13898 code to the driver. Call tree_estimate_probability_bb. 13899 (tree_estimate_probability_driver): New. 13900 (pass_profile): Use tree_estimate_probability_driver. 13901 * predict.h (tree_estimate_probability): Declared. 13902 139032009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13904 13905 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN. 13906 * graphite-dependences.c (graphite_legal_transform): Add time to 13907 TV_GRAPHITE_DATA_DEPS. 13908 (dependency_between_pbbs_p): Same. 13909 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New. 13910 139112009-08-12 Andrey Belevantsev <abel@ispras.ru> 13912 13913 PR rtl-optimization/41033 13914 * alias.c (nonoverlapping_component_refs_p): Punt when strict 13915 aliasing is disabled. 13916 139172009-08-11 Adam Nemet <anemet@caviumnetworks.com> 13918 13919 * config/mips/predicates.md (qi_mask_operand, hi_mask_operand, 13920 si_mask_operand, and_load_operand, low_bitmask_operand, 13921 and_reg_operand, and_operand): New predicates. 13922 * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints. 13923 * config/mips/mips.c (and_operands_ok): New function. 13924 * config/mips/mips-protos.h (and_operands_ok): Declare it. 13925 * config/mips/mips.md (move_type): Add ext_ins and logical. 13926 (type): Handle them. 13927 (and<mode>3): Use and_reg_operand as the second operand's predicate. 13928 (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and 13929 shift_shift. Remove commutative constraint modifier. 13930 (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and 13931 shift_shift. 13932 (*clear_upper32_dext): Remove define_insn_and_split. 13933 (*clear_upper32): Turn this define_insn_and_split ... 13934 (splitter for ANDing register with 0xffff_ffff): .. into this. 13935 139362009-08-11 Adam Nemet <anemet@caviumnetworks.com> 13937 13938 * combine.c (try_widen_shift_mode): Factor out code to check if an 13939 integer constant is a low-order bitmask from here ... 13940 * rtlanal.c (low_bitmask_len): ... to here. 13941 * rtl.h (low_bitmask_len): Declare. 13942 139432009-08-11 Uros Bizjak <ubizjak@gmail.com> 13944 13945 PR target/8603 13946 * config/alpha/alpha.md (addsi3): Remove expander. 13947 (addsi3): Rename from *addsi3_internal insn pattern. 13948 (subsi3): Remove expander. 13949 (subsi3): Rename from *subsi3_internal insn pattern. 13950 139512009-08-11 Douglas B Rupp <rupp@gnat.com> 13952 13953 * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and 13954 FWRITE_UNLOCKED. 13955 139562009-08-11 Vasiliy Fofanov <fofanov@adacore.com> 13957 Eric Botcazou <botcazou@adacore.com> 13958 Douglas B Rupp <rupp@gnat.com> 13959 13960 * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure 13961 that records that fit in 64 bits are returned by immediate value, 13962 as required by OpenVMS Calling Standard. 13963 (function_value): Adjust for above modification. 13964 (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use 13965 virtual_incoming_args_rtx as base object, not next_arg. 13966 * config/alpha/vms.h (DEFAULT_PCC_STRUCT_RETURN): Define as 0. 13967 139682009-08-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 13969 13970 * reload.c (find_reloads_subreg_address): Check the original 13971 req_equiv_mem address to detect the case where an address is 13972 not valid in the outer mode. 13973 139742009-08-11 Richard Guenther <rguenther@suse.de> 13975 13976 PR bootstrap/40788 13977 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION. 13978 139792009-08-10 Douglas B Rupp <rupp@gnat.com> 13980 13981 * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove 13982 (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS. 13983 139842009-08-10 Olivier Hainque <hainqueu@adacore.com> 13985 Douglas B Rupp <rupp@gnat.com> 13986 13987 * config/alpha/alpha.c (alpha_sa_size): Force procedure type to 13988 PT_STACK when frame_pointer_needed on OpenVMS. 13989 (alpha_pv_save_size, alpha_using_fp): Remove. 13990 (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE 13991 with proper processing for PT_NULL. 13992 (alpha_vms_initial_elimination_offset): New function. Support for 13993 INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL. 13994 (alpha_sa_size): Force procedure type to PT_STACK when 13995 frame_pointer_needed on OpenVMS. 13996 * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype. 13997 (alpha_using_fp): Likewise. 13998 (alpha_vms_can_eliminate): Add prototype. 13999 (alpha_vms_initial_elimination_offset): Likewise. 14000 * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): 14001 Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset. 14002 140032009-08-10 Eric Botcazou <botcazou@adacore.com> 14004 Douglas B Rupp <rupp@gnat.com> 14005 14006 * config/alpha/alpha.c (common_object_handler): New function. 14007 (vms_attribute_table): Declare a single attribute "common_object". 14008 (vms_output_aligned_decl_common): New global function. 14009 (SECTION_VMS_OVERLAY): Delete. 14010 (SECTION_VMS_GLOBAL): Likewise. 14011 (SECTION_VMS_INITIALIZE): Likewise. 14012 (vms_asm_named_section): Remove support for above flags. 14013 (vms_section_type_flags): Delete. 14014 (TARGET_SECTION_TYPE_FLAGS): Likewise. 14015 * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New. 14016 * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete. 14017 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro. 14018 140192009-08-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp> 14020 14021 PR target/41015 14022 * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list. 14023 (sub_ddmmss): Likewise. 14024 140252009-08-10 Andreas Tobler <a.tobler@schweiz.org> 14026 14027 PR bootstrap/41018 14028 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright 14029 year. 14030 140312009-08-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 14032 14033 PR target/37053 14034 * reload1.c (reload_as_needed): Use cancel_changes to completely 14035 undo a failed replacement attempt. 14036 140372009-08-10 Richard Guenther <rguenther@suse.de> 14038 14039 PR middle-end/41006 14040 * tree-ssa.c (useless_type_conversion_p_1): Fold into ... 14041 (useless_type_conversion_p): ... here. Require pointer targets 14042 to be compatible. 14043 140442009-08-10 Dodji Seketeli <dodji@redhat.com> 14045 14046 PR c++/40866 14047 * tree-inline.c (copy_statement_list): The resulting copy shouldn't 14048 loose the original type of the statement list. 14049 140502009-08-09 Douglas B Rupp <rupp@gnat.com> 14051 14052 * config/alpha/alpha.c: Include libfuncs.h 14053 (avms_asm_output_extern): New function. 14054 (alpha_init_libfuncs): Init some decc libfuncs. 14055 * config/alpha/alpha-protos.h (avms_asm_output_external): Declare. 14056 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define. 14057 (DO_CRTL_NAMES): Define. 14058 (LIB_SPEC): Remove. 14059 * config/alpha/vms64.h (POINTERS_EXTEND_UNSIGNED): Remove undef. 14060 (LONG_TYPE_SIZE): Define. 14061 (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1 14062 (SUBTARGET_SWITCHES): Define malloc64 switch. 14063 (TARGET_DEFAULT): Default MASK_MALLOC64 set. 14064 (MASK_RETURN_ADDR): Define. 14065 doc/invoke.texi (mmalloc64): Document switch. 14066 140672009-08-09 Olivier Hainque <hainque@adacore.com> 14068 Douglas B Rupp <rupp@gnat.com> 14069 14070 * config/alpha/alpha.c (struct machine_function): New flag for VMS, 14071 uses_condition_handler. 14072 (alpha_expand_builtin_establish_vms_condition_handler): New expander. 14073 (alpha_expand_builtin_revert_vms_condition_handler): New expander. 14074 (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER 14075 and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values. 14076 (code_for_builtin): New insn codes for the new alpha_builtins. 14077 (alpha_init_builtins): Register the new functions as BUILT_IN_MD. 14078 (alpha_sa_size): Account for uses_condition_handler. 14079 (alpha_expand_prologue): Likewise. 14080 (alpha_start_function): Likewise. 14081 (alpha_expand_epilogue): Likewise. 14082 * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin 14083 establish/revert expanders. 14084 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define. 14085 * config/alpha/alpha.md (builtin_establish_vms_condition_handler): 14086 New expander, resorting to the alpha.c associated function. 14087 (builtin_revert_vms_condition_handler): Likewise. 14088 * config/alpha/vms-gcc_shell_handler.c: New file. Implements 14089 __gcc_shell_handler, the static VMS condition handler used as 14090 an indirection wrapper to the current dynamically established 14091 handler. 14092 * config/alpha/vms-unwind.h: Complete rewrite. 14093 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c 14094 * config/alpha/vms.h (MD_UNWIND_SUPPORT): 14095 140962009-08-09 Eric Botcazou <botcazou@adacore.com> 14097 Douglas B Rupp <rupp@gnat.com> 14098 14099 * config/alpha/alpha.c (alpha_links): Add 'target' field. 14100 (alpha_need_linkage): Handle aliases. Return function symbol. 14101 (alpha_use_linkage): Rename 'linkage' argument to 'func'. 14102 Use ultimate alias target for the linkage name. 14103 * config/alpha/alpha.md (movmemdi): Use the symbol returned 14104 by alpha_need_linkage for the function symbol. 14105 (setmemdi): Likewise. 14106 141072009-08-09 Douglas B Rupp <rupp@gnat.com> 14108 14109 * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS. 14110 * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define. 14111 (ASM_WEAKEN_LABEL): Define. 14112 (CRT_CALL_STATIC_FUNCTION): Define. 14113 (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o. 14114 (ENDFILE_SPEC): Define. 14115 (INIT_SECTION_ASM_OP): Define. 14116 * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove. 14117 * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o 14118 crtend.o crtendS.o. 14119 (MULTILIB_OSDIRNAMES): Define. 14120 (shlib_version): Define. 14121 (SHLIB_EXT): Define. 14122 (SHLIB_OBJS): Define. 14123 (SHLIB_NAME): Define. 14124 (SHLIB_MULTILIB): Define. 14125 (SHLIB_INSTALL): Define. 14126 (SHLIB_SYMVEC): Define. 14127 (SHLIB_SYMVECX2): Define. 14128 (SHLIB_LINK): Define. 14129 141302009-08-09 Douglas B Rupp <rupp@gnat.com> 14131 14132 * config/alpha/alpha.c (alpha_initialize_trampoline): 14133 Initialize VMS trampoline IAW ABI for bounded procedure calls. 14134 (alpha_start_function): Emit transfer address on nested functions 14135 for VMS trampoline call. 14136 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm 14137 since no longer used. 14138 * config/alpha/vms-tramp.asm: Remove. 14139 * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined 14140 since now only data initialized at runtime. 14141 141422009-08-09 Douglas B Rupp <rupp@gnat.com> 14143 14144 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define. 14145 (LINK_GCC_C_SEQUENCE_SPEC): Define. 14146 (MD_EXEC_PREFIX): Remove, no longer used. 14147 (MD_STARTFILE_PREFIX): Likewise. 14148 (INCLUDE_DEFAULTS): Likewise. 14149 * config/alpha/t-vms: 14150 (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile. 14151 141522009-08-09 Richard Guenther <rguenther@suse.de> 14153 14154 PR tree-optimization/41016 14155 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug. 14156 (operand_precision): Remove. 14157 (integral_operand_p): Likewise. 14158 (recognize_single_bit_test): Adjust. 14159 141602009-08-09 Richard Sandiford <rdsandiford@googlemail.com> 14161 14162 * c-common.c (c_fully_fold_internal): Issue a warning if a binary 14163 operation overflows. Likewise non-cast unary arithmetic. 14164 If one arm of a conditional expression is always taken, 14165 inhibit evaluation warnings for the other arm. Likewise inhibit 14166 evaluation warnings for the second && or || operand if the first 14167 operand is enough to determine the result. 14168 * c-typeck.c (build_conditional_expr): Apply the same inhibition 14169 rules here. 14170 (build_binary_op): Prevent duplicate evaluation warnings. 14171 141722009-08-09 Richard Sandiford <rdsandiford@googlemail.com> 14173 14174 * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source 14175 and destination have different modes, Use promote_mode to 14176 determine the signedness of the conversion. Assert that the 14177 promoted source mode matches the destination mode. Don't pass 14178 the destination and destination mode to expand_expr if the source 14179 mode is different. Simplify conversion logic. 14180 141812009-08-09 Ira Rosen <irar@il.ibm.com> 14182 14183 PR tree-optimization/41008 14184 * tree-vect-loop.c (vect_is_simple_reduction): Get operands 14185 from condition only in case it's a comparison. Adjust checks. 14186 141872009-08-09 Bernd Schmidt <bernd.schmidt@analog.com> 14188 14189 * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function. 14190 * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it. 14191 * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer. 14192 (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE. 14193 (dump_cand): Handle them. 14194 (struct iv_cand): New members COST_STEP and AINC_USE. 14195 (stmt_after_increment): Likewise. 14196 (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All 14197 callers changed. Use gimple_uid comparison instead of scanning. 14198 (add_candidate_1): When looking for identical candidates, take 14199 AINC_USE into account. Set it for new candidates. 14200 (force_expr_to_var_cost): Cast target_spill_cost to int. 14201 (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC. 14202 All callers changed. Check for availability of autoinc addressing 14203 modes, both in general for a given mode, and in the specific use case. 14204 (get_computation_cost_at): New argument CAN_AUTOINC. All callers 14205 changed. 14206 (get_computation_cost): Likewise. 14207 (autoinc_possible_for_pair, set_autoinc_for_original_candidates, 14208 add_autoinc_candidates): New static functions. 14209 (add_candidate): Call add_autoinc_candidates for candidates based on 14210 a USE_ADDRESS use. 14211 (find_iv_candidates): Call set_autoinc_for_original_candidates. 14212 (determine_use_iv_cost_address): If we have an autoinc candidate at 14213 the matching use, verify autoinc is possible and subtract the cost 14214 of the candidate's step from the cost. 14215 (determine_iv_cost): Record the cost of the increment in the COST_STEP 14216 member of the candidate. 14217 (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and 14218 determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks. 14219 142202009-08-09 Douglas B Rupp <rupp@gnat.com> 14221 14222 * config.build (ia64-hp-*vms*): New target. 14223 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify 14224 with ia64-hp-*vms*. 14225 * config.gcc (ia64-hp-*vms*): New target. 14226 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify 14227 with ia64-hp-*vms*. 14228 * config.host (ia64-hp-*vms*): New target. 14229 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify 14230 with ia64-hp-*vms*. 14231 142322009-08-08 Richard Guenther <rguenther@suse.de> 14233 14234 PR tree-optimization/40991 14235 * tree-ssa-pre.c (eliminate): Delay purging EH edges. 14236 142372009-08-08 Richard Sandiford <rdsandiford@googlemail.com> 14238 14239 * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from 14240 mode check. Do truncations in an integer mode. 14241 (force_to_mode): Handle subregs for all mode types. Only do 14242 arithmetic simplifications on integer modes. 14243 142442009-08-07 Richard Guenther <rguenther@suse.de> 14245 14246 PR tree-optimization/40999 14247 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs. 14248 (maybe_fold_reference): Lookup constant initializers. 14249 (fold_gimple_assign): Likewise. 14250 142512009-08-07 Richard Guenther <rguenther@suse.de> 14252 14253 * tree-ssa.c (useless_type_conversion_p_1): Only for types 14254 that require structural equality defer to the langhook. 14255 142562009-08-07 Martin Jambor <mjambor@suse.cz> 14257 14258 * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed 14259 comments. 14260 (struct ipa_pass_through_data): New type. 14261 (struct ipa_ancestor_jf_data): New type. 14262 (union jump_func_value): Removed field formal_id, added fields 14263 pass_through and ancestor. 14264 (struct ipa_param_call_note): Changed type of formal_id to int from 14265 unsigned. 14266 * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with 14267 operations jump functions and ancestor jump functions. 14268 (compute_complex_pass_through): New function. 14269 (compute_scalar_jump_functions): Call compute_complex_pass_through, 14270 reflect changes in the jump function strucutre. 14271 (update_jump_functions_after_inlining): Ignore complex pass-through 14272 and ancestor jump functions. 14273 * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and 14274 polynomial pass-through with operation jump functions. 14275 142762009-08-07 Jakub Jelinek <jakub@redhat.com> 14277 14278 * dwarf2out.c (output_fde): When doing hot/cold partitioning, use 14279 fde->dw_fde_begin as begin label instead of hot/cold label. 14280 Use LLSDAC label instead of LLSDA for second section lsda. 14281 (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC 14282 label instead of LLSDA if it is true. 14283 (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust 14284 callers. 14285 * except.c (add_call_site, dw2_size_of_call_site_table): Add 14286 SECTION argument. Use it as index into crtl->eh.call_site_record 14287 array. 14288 (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument, 14289 use it to determine how to print table entries instead of using 14290 #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold 14291 label instead of normal begin label as base. 14292 (sjlj_assign_call_site_values): Adjust add_call_site caller. 14293 (convert_to_eh_region_ranges): When doing hot/cold partitioning, 14294 ensure no EH range spans between sections and that landing pads 14295 are always in the corresponding section. 14296 (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust 14297 for crtl->eh.call_site_record being an array rather than scalar. 14298 (output_one_function_exception_table): New function, copied 14299 from output_function_exception_table. Adjust 14300 dw2_size_of_call_site_table, dw2_output_call_site_table 14301 callers. For SECOND section use *C suffixed labels. 14302 (output_function_exception_table): Call 14303 output_one_function_exception_table and, when doing hot/cold 14304 partitioning, also another time for the second section. 14305 * opts.c: Include except.h. 14306 (decode_options): Allow -freorder-blocks-and-partition with 14307 exceptions, unless SJLJ or TARGET_UNWIND_INFO. 14308 * Makefile.in (opts.o): Depend on $(EXCEPT_H). 14309 * function.h (struct rtl_eh): Change call_site_record from 14310 scalar into array of 2 elements. 14311 143122009-08-07 Martin Jambor <mjambor@suse.cz> 14313 14314 * ipa-prop.c (count_formal_params_1): New function. 14315 (ipa_get_vector_of_formal_parms): New function. 14316 (get_vector_of_formal_parm_types): New function. 14317 (ipa_modify_formal_parameters): New function. 14318 (ipa_modify_call_arguments): New function. 14319 (index_in_adjustments_multiple_times_p): New function. 14320 (ipa_combine_adjustments): New function. 14321 (ipa_dump_param_adjustments): New function. 14322 * ipa-prop.h (struct ipa_parm_adjustment): New type. 14323 (ipa_get_vector_of_formal_parms): Declare. 14324 (ipa_modify_formal_parameters): Declare. 14325 (ipa_modify_call_arguments): Declare. 14326 (ipa_combine_adjustments): Declare. 14327 (ipa_dump_param_adjustments): Declare. 14328 (build_ref_for_offset): Declare. 14329 * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies. 14330 * tree-sra.c: Include ipa-prop.c. 14331 (build_ref_for_offset): Make public. 14332 143332009-08-06 Neil Vachharajani <nvachhar@gmail.com> 14334 14335 * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC. 14336 143372009-08-06 Thomas Schwinge <tschwinge@gnu.org> 14338 14339 * gcc/doc/extend.texi (__builtin_extract_return_address) 14340 (__builtin_frob_return_address): Document. 14341 143422009-08-06 Paul Brook <paul@codesourcery.com> 14343 14344 * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation. 14345 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1 14346 implementation on ARMv6-M. 14347 143482009-08-06 Richard Earnshaw <rearnsha@arm.com> 14349 14350 * doc/extend.texi (pcs): Document new attribute for ARM. 14351 143522009-08-06 Richard Earnshaw <rearnsha@arm.com> 14353 14354 * arm.c (pcs_attribute_args): Comment out unsupported attribute 14355 variants. 14356 143572009-08-06 Richard Earnshaw <rearnsha@arm.com> 14358 14359 * arm.c (arm_handle_pcs_attribute): Pass the entire name object to 14360 warning (). 14361 143622009-08-06 Richard Earnshaw <rearnsha@arm.com> 14363 14364 * arm.c (arm_handle_pcs_attribute): Use %qE in warning. 14365 143662009-08-06 Richard Earnshaw <rearnsha@arm.com> 14367 14368 Merge ARM/hard_vfp_branch to trunk. 14369 14370 2009-08-04 Richard Earnshaw <rearnsha@arm.com> 14371 14372 * arm.c (libcall_eq): New function. 14373 (libcall_hash): New function. 14374 (add_libcall): New function. 14375 (arm_libcall_uses_aapcs_base): New function. 14376 (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for 14377 libcalls using the base PCS. 14378 (arm_init_cumulative_args): Likewise. 14379 14380 2009-07-20 Joseph Myers <joseph@codesourcery.com> 14381 14382 * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args): 14383 Use base ABI for conversion libfuncs between HFmode and SFmode. 14384 14385 2009-05-12 Joseph Myers <joseph@codesourcery.com> 14386 14387 * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and 14388 V4SImode as representatives of all 64-bit and 128-bit vector 14389 types. Allow vector types without vector modes. 14390 (aapcs_vfp_is_call_or_return_candidate): Handle vector types 14391 without vector modes like BLKmode. 14392 (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like 14393 BLKmode. Avoid unsupported vector modes or TImode moves for 14394 non-TARGET_NEON. 14395 (aapcs_vfp_allocate_return_reg): Likewise. 14396 (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and 14397 V8QImode if TARGET_NEON || TARGET_IWMMXT. 14398 14399 2009-05-12 Joseph Myers <joseph@codesourcery.com> 14400 14401 * config/arm/arm.c (arm_handle_pcs_attribute): New. 14402 (arm_get_pcs_model): Pass attribute arguments to 14403 arm_pcs_from_attribute. 14404 (arm_init_cumulative_args): Use base AAPCS for conversions from 14405 floating-point types to DImode. 14406 (arm_attribute_table): Add pcs attribute. 14407 (arm_handle_pcs_attribute): New. 14408 * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming 14409 conversions from floating-point types to DImode, also declare them 14410 to use base AAPCS and declare functions they call to use base 14411 AAPCS and their RTABI names. 14412 14413 2009-05-12 Joseph Myers <joseph@codesourcery.com> 14414 14415 * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about 14416 -mfloat-abi=hard not being supported for VFP. 14417 14418 2009-05-11 Kazu Hirata <kazu@codesourcery.com> 14419 14420 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall 14421 SYMBOL_REF to hard_libcall_value. 14422 14423 2009-03-05 Joseph Myers <joseph@codesourcery.com> 14424 Richard Earnshaw <rearnsha@arm.com> 14425 14426 * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument 14427 has been put on the stack, all remaining co-processory arguments for 14428 that co-processor also go on the stack. 14429 14430 2009-03-05 Joseph Myers <joseph@codesourcery.com> 14431 14432 * config/arm/arm.c (arm_return_in_memory): Handle returning 14433 vectors of suitable size in registers also for AAPCS case. 14434 14435 2009-01-13 Richard Earnshaw <rearnsha@arm.com> 14436 14437 * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement. 14438 14439 2008-12-09 Richard Earnshaw <rearnsha@arm.com> 14440 14441 ARM Hard-VFP calling convention 14442 * target-def.h (TARGET_LIBCALL_VALUE): New hook. 14443 * target.h (gcc_target): Add libcall_value to table of call hooks. 14444 * targhooks.h (default_libcall_value): Default implementation. 14445 * targhooks.c (default_libcall_value): Likewise. 14446 * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it. 14447 * optabs.c (expand_unop): Use it. 14448 * expr.h (hard_libcall_value): Pass the function RTX through. 14449 * calls.c (emit_library_call_value_1): Update call to 14450 hard_libcall_value. 14451 * explow.c (hard_libcall_value): Use new target hook. 14452 * config/arm/arm.c: Include cgraph.h 14453 (TARGET_FUNCTION_VALUE): Override default hook. 14454 (arm_pcs_default): New variable. 14455 (arm_override_options): Don't fault hard calling convention with VFP. 14456 Add support for AAPCS variants. 14457 (arm_function_value): Make static. Handle AAPCS variants. 14458 (arm_libcall_value): New function. 14459 (arm_apply_result_size): Handle VFP registers in results. 14460 (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp 14461 conventions. 14462 (pcs_attribute_args): New variable. 14463 (arm_pcs_from_attribute): New function. 14464 (arm_get_pcs_model): New function. 14465 (aapcs_vfp_cum_init): New function. 14466 (aapcs_vfp_sub_candidate): New function. 14467 (aapcs_vfp_is_return_candidate): New function. 14468 (aapcs_vfp_is_call_candidate): New function. 14469 (aapcs_vfp_allocate): New function. 14470 (aapcs_vfp_allocate_return_reg): New function. 14471 (aapcs_vfp_advance): New function. 14472 (aapcs_cp_arg_layout): New variable. 14473 (aapcs_select_call_coproc): New function. 14474 (aapcs_select_return_coproc): New function. 14475 (aapcs_allocate_return_reg): New function. 14476 (aapcs_libcall_value): New function. 14477 (aapcs_layout_arg): New function. 14478 (arm_init_cumulative_args): Initialize AAPCS args data. 14479 (arm_function_arg): Handle AAPCS variants using new interface. 14480 (arm_arg_parital_bytes): Likewise. 14481 (arm_function_arg_advance): New function. 14482 (arm_function_ok_for_sibcall): Ensure that sibling calls agree on 14483 calling conventions. 14484 (arm_setup_incoming_varargs): Handle new AAPCS args data. 14485 * arm.h (NUM_VFP_ARG_REGS): Define. 14486 (LIBCALL_VALUE): Update. 14487 (FUNCTION_VALUE): Delete. 14488 (FUNCTION_VALUE_REGNO_P): Add VFP regs. 14489 (arm_pcs): New enum. 14490 (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling. 14491 (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance. 14492 (FUNCTION_ARG_REGNO_P): Add VFP regs. 14493 * arm-protos.h (arm_function_arg_advance): Add. 14494 (aapcs_libcall_value): Add. 14495 (arm_function_value): Delete. 14496 144972009-08-06 Uros Bizjak <ubizjak@gmail.com> 14498 H.J. Lu <hongjiu.lu@intel.com> 14499 14500 PR target/40957 14501 * config/i386/i386.c (standard_sse_mode_p): Remove. 14502 (standard_sse_constant_p): Return 2 for integer mode 14503 vector_all_ones_operand when SSE2 is enabled. 14504 (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd. 14505 (ix86_expand_vector_move): Do not check for negative values from 14506 standard_sse_constant_p. 14507 145082009-08-06 Richard Guenther <rguenther@suse.de> 14509 14510 * tree-ssa.c (useless_type_conversion_p_1): Make function and 14511 array type comparisons frontend independent. 14512 * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency. 14513 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill 14514 out array reference lower bound and element size operands. 14515 (ao_ref_init_from_vn_reference): Properly compute the offset 14516 for ARRAY_RANGE_REF. 14517 (vn_reference_fold_indirect): Fill out array reference lower 14518 bound and element size operands. 14519 * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate 14520 a non gimple valued reference operand which can happen for 14521 array reference lower bound or element size. 14522 (create_component_ref_by_pieces_1): Properly generate the 14523 element size operand for array references. 14524 145252009-08-06 Richard Guenther <rguenther@suse.de> 14526 14527 PR tree-optimization/40964 14528 * tree.c (iterative_hash_host_wide_int): Export. 14529 * tree.h (iterative_hash_host_wide_int): Declare. 14530 * tree-ssa-structalias.c (heapvar_map): New struct. 14531 (heapvar_map_eq): New function. 14532 (heapvar_map_hash): Likewise. 14533 (heapvar_lookup): Adjust. 14534 (heapvar_insert): Likewise. 14535 (make_constraint_from_heapvar): Allow multiple heap variables 14536 per decl at different offsets. 14537 (init_alias_heapvars): Adjust. 14538 145392009-08-04 David Daney <ddaney@caviumnetworks.com> 14540 14541 * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro. 14542 * mips_output_sync_loop (mips_output_sync_loop): Only emit 14543 trailing sync if TARGET_SYNC_AFTER_SC. 14544 145452009-08-05 David Daney <ddaney@caviumnetworks.com> 14546 14547 * gcc/config/mips/sync.md (sync_compare_and_swap<mode>, 14548 compare_and_swap_12, sync_add<mode>, sync_<optab>_12, 14549 sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12, 14550 sync_old_nand_12, sync_new_nand_12, sync_sub<mode>, 14551 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>, 14552 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>, 14553 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>, 14554 sync_new_nand<mode>, sync_lock_test_and_set<mode>, 14555 test_and_set_12): Rewrite calls to mips_output_sync_loop. 14556 * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make 14557 the prototype declaration match the definition. 14558 * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync 14559 instructions explicitly. Add barrier_before and operands 14560 parameters. 14561 * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP, 14562 MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12, 14563 MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP, 14564 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, 14565 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE, 14566 MIPS_SYNC_EXCHANGE_12): Remove sync instructions. 14567 145682009-08-05 Andrew Pinski <pinskia@gmail.com> 14569 14570 * tree-ssa-alias.c: Fix intervals to use [) syntax. 14571 145722009-08-05 Uros Bizjak <ubizjak@gmail.com> 14573 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> 14574 14575 PR target/40906 14576 * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part 14577 source operand. 14578 145792009-08-05 Jakub Jelinek <jakub@redhat.com> 14580 14581 PR rtl-optimization/40924 14582 * dse.c (canon_address): Before calling cselib_expand_value_rtx 14583 make sure canon_rtx (mem_address) isn't simpler than 14584 canon_rtx (expanded_mem_address). 14585 145862009-08-05 Li Feng <nemokingdom@gmail.com> 14587 14588 * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set 14589 for each poly_bb_p. 14590 (build_scop_drs): Build alias set for each SCoP. 14591 145922009-08-04 Sandra Loosemore <sandra@codesourcery.com> 14593 14594 * doc/invoke.texi (MIPS Options): Document new 1004K -march options. 14595 * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores. 14596 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K. 14597 (MIPS_ARCH_FLOAT_SPEC): Likewise. 14598 (BASE_DRIVER_SELF_SPECS): Likewise. 14599 146002009-08-04 Andrew Pinski <pinskia@gmail.com> 14601 14602 * tree-ssa-alias.c: Fix some comment typos. 14603 146042009-08-04 Kaz Kojima <kkojima@gcc.gnu.org> 14605 14606 * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP, 14607 ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define. 14608 146092009-08-03 Janis Johnson <janis187@us.ibm.com> 14610 14611 PR c/39902 14612 * simplify-rtx.c (simplify_binary_operation_1): Disable 14613 simplifications for decimal float operations. 14614 146152009-08-03 Jakub Jelinek <jakub@redhat.com> 14616 14617 PR middle-end/40943 14618 * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for 14619 operand of INDIRECT_REF. 14620 146212009-08-03 Uros Bizjak <ubizjak@gmail.com> 14622 14623 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST 14624 constants referencing TLS symbols. 14625 146262009-08-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp> 14627 14628 * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename 14629 __sync_compare_and_swap_* to __sync_val_compare_and_swap_*. 14630 146312009-08-03 Richard Guenther <rguenther@suse.de> 14632 14633 * tree.c (make_vector_type): Build a main variant first, 14634 get the canonical one and then build the variant. 14635 * tree-ssa.c (useless_type_conversion_p_1): Handle 14636 fixed-point types. 14637 (useless_type_conversion_p): Conversions to pointers to 14638 incomplete record types are useless. 14639 146402009-08-03 Richard Guenther <rguenther@suse.de> 14641 14642 * tree-cfg.c (pass_warn_unused_result): Mark name that no dump 14643 file will be created. 14644 * omp-low.c (pass_diagnose_omp_blocks): Likewise. 14645 * toplev.c (compile_file): Adjust comment. 14646 146472009-08-03 Kaz Kojima <kkojima@gcc.gnu.org> 14648 14649 * config/sh/sh-protos.h (sh_promote_function_mode): Remove. 14650 * config/sh/sh.c (sh_promote_function_mode): Wrap long lines. 14651 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14652 (TARGET_PROMOTE_FUNCTION_ARGS): Remove. 14653 (sh_promote_function_mode): Fix typo. 14654 146552009-08-03 Andreas Krebbel <krebbel1@de.ibm.com> 14656 14657 * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused. 14658 146592009-08-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 14660 14661 * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from 14662 declaration arguments. 14663 146642009-08-02 Uros Bizjak <ubizjak@gmail.com> 14665 14666 * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead 14667 of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01). 14668 (ix86_split_ashl): Ditto. 14669 (ix86_expand_vector_init_one_nonzero): Ditto. 14670 (ix86_expand_vector_set): Ditto. 14671 (ix86_expand_reduc_v4sf): Ditto. 14672 146732009-08-02 Paolo Bonzini <bonzini@gnu.org> 14674 14675 * explow.c (promote_function_mode): Remove assert. 14676 * config/sh/sh.c (sh_promote_function_mode): Declare. 14677 146782009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 14679 14680 * config/pa/pa.c (pa_promote_function_mode): Declare. 14681 Change to static. Fix promote_mode call. 14682 14683 * gthr-dce.h (CONST_CAST2): Define if not defined. 14684 (__gthread_setspecific): Use CONST_CAST2 to fix warning. 14685 14686 * config.gcc (hppa[12]*-*-hpux10*): Add stdint support. 14687 146882009-08-01 Paolo Bonzini <bonzini@gnu.org> 14689 14690 * expr.c (store_constructor): Use promote_decl_mode. Remove 14691 now write-only variable unsignedp. 14692 (expand_expr_real_1): Use promote_decl_mode. 14693 * expr.h (promote_function_mode, promote_decl_mode): New. 14694 (promote_mode): Remove last argument. 14695 * function.c (assign_temp): Drop last argument of promote_mode. 14696 (assign_parm_find_data_types): Use promote_function_mode. 14697 (assign_parm_setup_reg): Likewise. 14698 (expand_function_end): Use promote_function_mode. 14699 * calls.c (initialize_argument_information): Use promote_function_mode. 14700 (precompute_arguments): Use promote_mode instead of checking if 14701 only PROMOTE_FUNCTION_MODE is defined. 14702 (expand_call): When making sibcall decisions, use promote_function_mode. 14703 Below, remove an if for targetm.calls.promote_function_return and 14704 and use promote_function_mode. 14705 (emit_library_call_value_1): Use promote_function_mode, fix bug 14706 where promote_mode was passed FOR_CALL == 0 for a return value in an 14707 assertion. 14708 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode. 14709 * explow.c (promote_function_mode, promote_decl_mode): New. 14710 (promote_mode): Keep only the FOR_CALL == 0 case. 14711 * combine.c (setup_incoming_promotion): Remove test of 14712 promote_function_args. Use promote_function_mode. 14713 * stmt.c (expand_value_return): Use promote_decl_mode. 14714 (expand_decl): Use promote_decl_mode. 14715 14716 * expr.c (store_constructor): Use promote_decl_mode. Remove 14717 now write-only variable unsignedp. 14718 (expand_expr_real_1): Use promote_decl_mode. 14719 * expr.h (promote_function_mode, promote_decl_mode): New. 14720 (promote_mode): Remove last argument. 14721 * function.c (assign_temp): Drop last argument of promote_mode. 14722 (assign_parm_find_data_types): Use promote_function_mode. 14723 (assign_parm_setup_reg): Likewise. 14724 (expand_function_end): Use promote_function_mode. 14725 * calls.c (initialize_argument_information): Use promote_function_mode. 14726 (precompute_arguments): Use promote_mode instead of checking if 14727 only PROMOTE_FUNCTION_MODE is defined. 14728 (expand_call): When making sibcall decisions, use promote_function_mode. 14729 Below, remove an if for targetm.calls.promote_function_return and 14730 and use promote_function_mode. 14731 (emit_library_call_value_1): Use promote_function_mode, fix bug 14732 where promote_mode was passed FOR_CALL == 0 for a return value in an 14733 assertion. 14734 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode. 14735 * explow.c (promote_function_mode, promote_decl_mode): New. 14736 (promote_mode): Keep only the FOR_CALL == 0 case. 14737 * combine.c (setup_incoming_promotion): Remove test of 14738 promote_function_args. Use promote_function_mode. 14739 * stmt.c (expand_value_return): Use promote_decl_mode. 14740 (expand_decl): Use promote_decl_mode. 14741 14742 * explow.c (promote_function_mode): Just call the target hook. 14743 * targhooks.c (default_promote_function_mode, 14744 default_promote_function_mode_always_promote): New. 14745 * targhooks.h (default_promote_function_mode, 14746 default_promote_function_mode_always_promote): Declare. 14747 * target.h (promote_function_args, promote_function_return): Remove. 14748 (promote_function_mode): New. 14749 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS, 14750 TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14751 (TARGET_PROMOTE_FUNCTION_MODE): New. 14752 (TARGET_CALLS): Adjust. 14753 * system.h (TARGET_PROMOTE_FUNCTION_ARGS, 14754 TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison. 14755 14756 * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move... 14757 * config/s390/s390.c (s390_promote_function_mode): ... here, 14758 with pointer handling. 14759 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14760 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14761 14762 * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move... 14763 * config/sparc/sparc.c (sparc_promote_function_mode): ... here, 14764 with pointer handling. 14765 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14766 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14767 14768 * config/sh/sh-protos.h (sh_promote_function_mode): New. 14769 * config/sh/sh.c (sh_promote_function_mode): New. 14770 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14771 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14772 14773 * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move... 14774 * config/cris/cris.c (cris_promote_function_mode): ... here. 14775 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14776 (TARGET_PROMOTE_FUNCTION_ARGS): Remove. 14777 14778 * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move... 14779 * config/mmix/mmix.c (mmix_promote_function_mode): ... here. 14780 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14781 (TARGET_PROMOTE_FUNCTION_ARGS): Remove. 14782 14783 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move... 14784 * config/arm/arm.c (arm_promote_function_mode): ... here, without 14785 complex type handling. 14786 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14787 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14788 14789 * config/pa/pa.c (pa_promote_function_mode): New. 14790 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14791 (TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14792 14793 * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS, 14794 TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14795 (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently. 14796 * config/xtensa/xtensa.c: Likewise. 14797 * config/stormy16/stormy16.c: Likewise. 14798 * config/iq2000/iq2000.c: Likewise. 14799 * config/rs6000/rs6000.c: Likewise. 14800 * config/picochip/picochip.c: Likewise. 14801 * config/arc/arc.c: Likewise. 14802 * config/mcore/mcore.c: Likewise. 14803 * config/score/score.c: Likewise. 14804 * config/mips/mips.c: Likewise. 14805 * config/bfin/bfin.c: Likewise. 14806 * config/ia64/ia64.c: Likewise (disabled though). 14807 14808 * config/frv/frv.h: Remove pointless remark. 14809 14810 * doc/tm.texi (PROMOTE_FUNCTION_MODE, 14811 TARGET_PROMOTE_FUNCTION_ARGS, 14812 TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into... 14813 (TARGET_PROMOTE_FUNCTION_MODE): ... this. 14814 148152009-08-01 Sebastian Pop <sebastian.pop@amd.com> 14816 14817 * doc/invoke.texi (-fgraphite-force-parallel): Renamed 14818 -floop-parallelize-all. 14819 * toplev.c (process_options): Rename flag_graphite_force_parallel to 14820 flag_loop_parallelize_all. 14821 * tree-ssa-loop.c (gate_graphite_transforms): Same. 14822 * graphite.c (graphite_transform_loops): Same. 14823 * common.opt: Same. 14824 * graphite-poly.c (apply_poly_transforms): Same. 14825 148262009-07-31 Richard Earnshaw <rearnsha@arm.com> 14827 14828 PR tree-optimization/40914 14829 * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta, 14830 if set, then check the delta field of the PMF record. 14831 (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta. 14832 (ipa_analyze_call_uses): Handle machines where the vbit for a PMF 14833 call is stored in the delta. 14834 148352009-07-31 Adam Nemet <anemet@caviumnetworks.com> 14836 14837 * config/mips/mips.md (*clear_upper32_dext): New pattern. 14838 148392009-07-31 Uros Bizjak <ubizjak@gmail.com> 14840 14841 * config/i386/bsd.h (ASM_BYTE): New define. 14842 * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP. 14843 * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of 14844 .byte. Use fputs or putc instead of fprintf where appropriate. 14845 * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use 14846 fputs or putc instead of fprintf where appropriate. 14847 * config/i386/i386elf.h: Ditto. 14848 * config/i386/sysv4.h: Ditto. 14849 14850 * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define. 14851 * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte. 14852 (*tls_global_dynamic_64): Ditto. 14853 148542009-07-31 Christian Bruel <christian.bruel@st.com> 14855 14856 * gcc/config.gcc (sh*-*-elf): test with_libgloss. 14857 148582009-07-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 14859 14860 * config/arm/arm.c (arm_arm_address_cost): Fix typo. 14861 Remove dead code for MINUS. 14862 148632009-07-31 Anthony Green <green@moxielogic.com> 14864 14865 * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of 14866 $r12 in prologue. 14867 (moxie_expand_epilogue): Ditto for epilogue. 14868 (moxie_setup_incoming_varargs): ABI change. Use 5 registers for 14869 incoming arguments. 14870 (moxie_function_arg): Ditto. 14871 (moxie_pass_by_reference): Ditto. 14872 (moxie_arg_partial_bytes): Ditto. 14873 * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto. 14874 (FUNCTION_ARG_ADVANCE) Ditto. 14875 (REG_PARM_STACK_SPACE) Ditto. 14876 (FUNCTION_ARG_REGNO_P) Dito. 14877 14878 * config.gcc: Add moxie linux config support. 14879 * gcc/config/moxie/uclinux.h: New file. 14880 148812009-07-31 DJ Delorie <dj@redhat.com> 14882 14883 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New. 14884 (UNSPECV_SP_SWITCH_E): New. 14885 (sp_switch_1): Change to an unspec. 14886 (sp_switch_2): Change to an unspec. Don't use post-inc when we 14887 replace $r15. 14888 * config/sh/sh.c (sh_expand_prologue): Use the constant pool to 14889 reference the new stack's address 14890 148912009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14892 14893 * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o, 14894 graphite-clast-to-gimple.o, graphite-dependences.o, 14895 graphite-interchange.o, graphite-poly.o, graphite-ppl.o, 14896 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o. 14897 (graphite-blocking.o, 14898 graphite-clast-to-gimple.o, graphite-dependences.o, 14899 graphite-interchange.o, graphite-poly.o, graphite-ppl.o, 14900 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New. 14901 * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false. 14902 * cfgloop.h (struct loop): Add can_be_parallel field. 14903 * common.opt (fgraphite-identity): Moved up. 14904 (fgraphite-force-parallel): New flag. 14905 * graphite.c: Rewrite. 14906 * graphite.h: Rewrite. 14907 * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM 14908 after Graphite. 14909 * toplev.c (graphite_out_file): New file descriptor. 14910 (graphite_in_file): New. 14911 (process_options): flag_graphite_force_parallel cannot be used without 14912 Graphite. 14913 * tree-ssa-loop.c: Include toplev.h. 14914 (gate_graphite_transforms): Enable flag_graphite for 14915 flag_graphite_force_parallel. 14916 149172009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14918 14919 * ChangeLog.graphite: New. 14920 * graphite-blocking.c: New. 14921 * graphite-clast-to-gimple.c: New. 14922 * graphite-clast-to-gimple.h: New. 14923 * graphite-dependences.c: New. 14924 * graphite-dependences.h: New. 14925 * graphite-interchange.c: New. 14926 * graphite-poly.c: New. 14927 * graphite-poly.h: New. 14928 * graphite-ppl.c: New. 14929 * graphite-ppl.h: New. 14930 * graphite-scop-detection.c: New. 14931 * graphite-scop-detection.h: New. 14932 * graphite-sese-to-poly.c: New. 14933 * graphite-sese-to-poly.h: New. 14934 * sese.c: New. 14935 * sese.h: New. 14936 149372009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14938 14939 * tree-chrec.c (evolution_function_right_is_integer_cst): New. 14940 * tree-chrec.h (evolution_function_right_is_integer_cst): Declared. 14941 149422009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14943 14944 * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR. 14945 (scev_is_linear_expression): Return false if the evolution is not 14946 affine multivariate. 14947 149482009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14949 14950 * tree-data-ref.c (graphite_find_data_references_in_stmt): New. 14951 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared. 14952 149532009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14954 14955 * tree-data-ref.c (debug_data_references): New. 14956 (debug_data_reference): New. 14957 * tree-data-ref.h (debug_data_references): Declared. 14958 (debug_data_reference): Declared. 14959 149602009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14961 14962 * tree-data-ref.c (stmt_simple_memref_p: Removed. 14963 * tree-data-ref.h (scop_p): Removed. 14964 (struct data_reference): Remove field scop. 14965 (DR_SCOP): Removed. 14966 (stmt_simple_memref_p): Removed. 14967 149682009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14969 14970 * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument. 14971 * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch 14972 basic block empty. 14973 149742009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14975 14976 * doc/invoke.texi (-fgraphite-force-parallel): Documented. 14977 149782009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14979 14980 * doc/invoke.texi (-fgraphite-identity): Documented. 14981 149822009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14983 14984 * tree-scalar-evolution.c: Fix comment. 14985 (instantiate_scev_1): Return unknow from scev instantiation if the 14986 result is not above instantiate_below. 14987 149882009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14989 14990 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not 14991 static anymore. Instantiate the symbols that may have been introduced 14992 by chrec_apply. 14993 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop): 14994 Declared. 14995 149962009-07-30 DJ Delorie <dj@redhat.com> 14997 14998 * config/mep/mep.c (mep_asm_init_sections): Add section flags and 14999 .vliw directive to VLIW sections. 15000 150012009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 15002 15003 * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps): 15004 New variables. 15005 ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules. 15006 (AUTOHEADER): New variable. 15007 ($(srcdir)/cstamp-h.in): Use it. 15008 150092009-07-30 Michael Meissner <meissner@linux.vnet.ibm.com> 15010 Pat Haugen <pthaugen@us.ibm.com> 15011 Revital Eres <ERES@il.ibm.com> 15012 15013 * config/rs6000/vector.md (VEC_F): Add VSX support. 15014 (VEC_A): Ditto. 15015 (VEC_N): Ditto. 15016 (mov<mode>): Ditto. 15017 (vector_load_<mode>): Ditto. 15018 (vector_store_<mode>): Ditto. 15019 (vector GPR move split): Ditto. 15020 (vec_reload_and_plus_<mptrsize>): Ditto. 15021 (vec_reload_and_reg_<mptrsize>): Ditto. 15022 (add<mode>3): Ditto. 15023 (sub<mode>3): Ditto. 15024 (mul<mode>3): Ditto. 15025 (neg<mode>2): Ditto. 15026 (abs<mode>2): Ditto. 15027 (smin<mode>3): Ditto. 15028 (smax<mode>3): Ditto. 15029 (vector_eq<mode>): Ditto. 15030 (vector_gt<mode>): Ditto. 15031 (vector_ge<mode>): Ditto. 15032 (vector_gtu<mode>): Ditto. 15033 (vector_select_<mode>_uns): Ditto. 15034 (vector_eq_<mode>_p): Ditto. 15035 (vector_gt_<mode>_p): Ditto. 15036 (vector_ge_<mode>_p): Ditto. 15037 (vector_gtu_<mode>_p): Ditto. 15038 (cr6_test_for_zero): Ditto. 15039 (cr6_test_for_zero_reverse): Ditto. 15040 (cr6_test_for_lt): Ditto. 15041 (cr6_test_for_lt_reverse): Ditto. 15042 (xor<mode>3): Ditto. 15043 (ior<mode>3): Ditto. 15044 (and<mode>3): Ditto. 15045 (one_cmpl<mode>2): Ditto. 15046 (nor<mode>2): Ditto. 15047 (andc<mode>2): Ditto. 15048 (float<VEC_int<mode>2): Ditto. 15049 (unsigned_float<VEC_int><mode>2): Ditto. 15050 (fix_trunc<mode><VEC_int>2): Ditto. 15051 (fixuns_trunc<mode><VEC_int>2): Ditto. 15052 (vec_init<mode>): 15053 (vec_set<mode>): Ditto. 15054 (vec_extract<mode>): Ditto. 15055 (vec_interleave_highv4sf): Ditto. 15056 (vec_interleave_lowv4sf): Ditto. 15057 (vec_realign_load_<mode>): Ditto. 15058 (vec_shl_<mode>): Ditto. 15059 (vec_shr_<mode>): Ditto. 15060 (div<mode>3): New patterns for VSX. 15061 (vec_interleave_highv2df): Ditto. 15062 (vec_interleave_lowv2df): Ditto. 15063 (vec_pack_trunc_v2df): Ditto. 15064 (vec_pack_sfix_trunc_v2df): Ditto. 15065 (vec_pack_ufix_trunc_v2df): Ditto. 15066 (vec_unpacks_hi_v4sf): Ditto. 15067 (vec_unpacks_lo_v4sf): Ditto. 15068 (vec_unpacks_float_hi_v4si): Ditto. 15069 (vec_unpacks_float_lo_v4si): Ditto. 15070 (vec_unpacku_float_hi_v4si): Ditto. 15071 (vec_unpacku_float_lo_v4si): Ditto. 15072 (movmisalign<mode>): Ditto. 15073 (vector_ceil<mode>2): New patterns for vectorizing math library. 15074 (vector_floor<mode>2): Ditto. 15075 (vector_btrunc<mode>2): Ditto. 15076 (vector_copysign<mode>3): Ditto. 15077 15078 * config/rs6000/predicates.md (easy_vector_constant_msb): New 15079 predicate for setting the high bit in each word, used for copysign. 15080 15081 * config/rs6000/ppc-asm.h (f19): Whitespace. 15082 (f32-f63): Define if VSX. 15083 (v0-v31): Define if Altivec. 15084 (vs0-vs63): Define if VSX. 15085 15086 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md. 15087 15088 * config/rs6000/power7.md: New file, provide tuning parameters for 15089 -mcpu=power7. 15090 15091 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support. 15092 (rs6000_cpu_cpp_builtins): Ditto. 15093 (altivec_overloaded_builtins): Ditto. 15094 (altivec_resolve_overloaded_builtin): Ditto. 15095 15096 * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new 15097 debug switch to disable vectorizing simple math builtin 15098 functions. 15099 15100 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): 15101 Vectorize simple math builtin functions. 15102 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target 15103 hook to vectorize math builtins. 15104 (rs6000_override_options): Enable -mvsx on -mcpu=power7. 15105 (rs6000_builtin_conversion): Add VSX/power7 support. 15106 (rs6000_builtin_vec_perm): Ditto. 15107 (vsplits_constant): Add support for loading up a vector constant 15108 with just the high bit set in each part. 15109 (rs6000_expand_vector_init): Add VSX/power7 support. 15110 (rs6000_expand_vector_set): Ditto. 15111 (rs6000_expand_vector_extract): Ditto. 15112 (rs6000_emit_move): Ditto. 15113 (bdesc_3arg): Ditto. 15114 (bdesc_2arg): Ditto. 15115 (bdesc_1arg): Ditto. 15116 (rs6000_expand_ternop_builtin): Ditto. 15117 (altivec_expand_builtin): Ditto. 15118 (rs6000_expand_unop_builtin): Ditto. 15119 (rs6000_init_builtins): Ditto. 15120 (altivec_init_builtins): Ditto. 15121 (builtin_function_type): Ditto. 15122 (rs6000_common_init_builtins): Ditto. 15123 (rs6000_handle_altivec_attribute); Ditto. 15124 (rs6000_mangle_type): Ditto. 15125 (rs6000_vector_mode_supported_p): Ditto. 15126 (rs6000_mode_dependent_address): Altivec addresses with AND -16 15127 are mode dependent. 15128 15129 * config/rs6000/vsx.md: New file for VSX support. 15130 15131 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for 15132 identifing values with just the most significant bit set. 15133 (enum rs6000_builtins): Add builtins for VSX. Add simple math 15134 vectorized builtins. 15135 15136 * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete. 15137 (UNSPEC_VRFIM): Delete. 15138 (splitter for loading up vector with most significant bit): New 15139 splitter for vectorizing copysign. 15140 (altivec_vrfiz): Rename from altivec_fturncv4sf2. Add support for 15141 vectorizing simple math functions. 15142 (altivec_vrfip): Add support for vectorizing simple math functions. 15143 (altivec_vrfim): Ditto. 15144 (altivec_copysign_v4sf3): New insn for Altivec copysign support. 15145 15146 * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant. 15147 (power7.md, vsx.md): Include for power7 support. 15148 (copysigndf3): Use VSX instructions if -mvsx. 15149 (negdf2_fpr): Ditto. 15150 (absdf2_fpr): Ditto. 15151 (nabsdf2_fpr): Ditto. 15152 (adddf3_fpr): Ditto. 15153 (subdf3_fpr): Ditto. 15154 (muldf3_fpr): Ditto. 15155 (divdf3_fpr): Ditto. 15156 (fix_truncdfdi2_fpr): Ditto. 15157 (cmpdf_internal1): Ditto. 15158 (fred, fred_fpr): Convert into expander/insn to add VSX support. 15159 (btruncdf2, btruncdf2_fpr): Ditto. 15160 (ceildf2, ceildf2_fpr): Ditto. 15161 (floordf2, floordf2_fpr): Ditto. 15162 (floatdidf2, floatdidf2_fpr): Ditto. 15163 (fmadddf4_fpr): Name insn. Use VSX instructions if -mvsx. 15164 (fmsubdf4_fpr): Ditto. 15165 (fnmadddf4_fpr_1): Ditto. 15166 (fnmadddf4_fpr_2): Ditto. 15167 (fnmsubdf4_fpr_1): Ditto. 15168 (fnmsubdf4_fpr_2): Ditto. 15169 (fixuns_truncdfdi2): Add expander for VSX support. 15170 (fix_truncdfdi2): Ditto. 15171 (fix_truncdfsi2): Ditto. 15172 (ftruncdf2): Ditto. 15173 (btruncsf2): Whitespace. 15174 (movdf_hardfloat32): Add support for VSX registers. 15175 (movdf_softfloat32): Ditto. 15176 (movdf_hardfloat64): Ditto. 15177 (movdf_hardfloat64_mfpgpr): Ditto. 15178 (movdf_softfloat64): Ditto. 15179 (movti splitters): Add check for vector registers supporting 15180 TImode in the future. 15181 (bpermd): Add power7 bpermd instruction. 15182 15183 * config/rs6000/altivec.h (vec_div): Define if VSX. 15184 (vec_mul): Ditto. 15185 (vec_msub): Ditto. 15186 (vec_nmadd): Ditto. 15187 (vec_nearbyint): Ditto. 15188 (vec_rint): Ditto. 15189 (vec_sqrt): Ditto. 15190 (all predicates): Use the generic builtin function, and not the V4SF 15191 specific function so that the predicates will work with VSX's V2DF. 15192 (vec_all_*): Ditto. 15193 (vec_any_*): Ditto. 15194 15195 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions): 15196 Document new VSX functions and types. 15197 15198 * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx 15199 switches. 15200 15201 * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws", 15202 "wa", and "j" constraints. Modify "v" to talk about Altivec 15203 instead of just vector. 15204 152052009-07-30 Andrew MacLeod <amacleod@redhat.com> 15206 15207 PR debug/26475 15208 * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set 15209 location for phi arguments. 15210 (rewrite_update_phi_arguments): Find locations for reaching defs. 15211 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): 15212 Add location to add_phi_arg calls. 15213 * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations. 15214 * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge, 15215 split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations. 15216 * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call, 15217 create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations. 15218 * tree.h (struct phi_arg_d): Add location_t to PHI arguments. 15219 * tree-phinodes.c (make_phi_node): Initialize location. 15220 (resize_phi_node): Initialize location to UNKNOWN_LOCATION. 15221 (add_phi_arg): Add location parameter. 15222 (remove_phi_arg_num): Move location when moving phi argument. 15223 * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set 15224 location. 15225 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop, 15226 slpeel_update_phi_nodes_for_guard1, 15227 slpeel_update_phi_nodes_for_guard2, 15228 slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations, 15229 vect_loop_versioning): Set locations. 15230 * tree-parloops.c (create_phi_for_local_result, 15231 transform_to_exit_first_loop, create_parallel_loop): Add locations. 15232 * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present. 15233 * tree-vect-loop.c (get_initial_def_for_induction, 15234 vect_create_epilog_for_reduction, vect_finalize_reduction): Add 15235 locations. 15236 * tree-flow-inline.h (gimple_phi_arg_location): New. Return locus. 15237 (gimple_phi_arg_location_from_edge): New. Return locus from an edge. 15238 (gimple_phi_arg_set_location): New. Set locus. 15239 (gimple_phi_arg_has_location): New. Check for locus. 15240 (redirect_edge_var_map_location): New. Return locus from var_map. 15241 * tree-vect-data-refs.c (vect_setup_realignment): Set location. 15242 * tree-ssa-phiopt.c (conditional_replacement): Set locus when 15243 combining PHI arguments. 15244 (cond_store_replacement): Set location. 15245 * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible. 15246 * grpahite.c (add_loop_exit_phis, add_guard_exit_phis, 15247 scop_add_exit_phis_edge): Add locations. 15248 * tree-cfgcleanup.c (remove_forwarder_block, 15249 remove_forwarder_block_with_phi): Add locations. 15250 * tree-ssa-pre.c (insert_into_preds_of_block): Add locations. 15251 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add 15252 locations. 15253 * tree-ssa-dce.c (forward_edge_to_pdom): Add locations. 15254 * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge, 15255 flush_pending_stmts): Add source location. 15256 * lambda-code.c (perfect_nestify): Maintain location stack with argument 15257 stack to preserve locations. 15258 * tree-vect-stmts.c (vectorizable_load): Add location. 15259 * tree-inline.c (copy_phis_for_bb): Copy locus. 15260 (setup_one_parameter): Add call locus to inlined parameter stmts. 15261 (initialize_inlined_parameters): Pass in call location as parameter 15262 assignment locus. 15263 (tree_function_versioning): Pass location to setup_one_parameter. 15264 * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations. 15265 * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for 15266 copy and edge lists. 15267 (insert_partition_copy_on_edge, insert_value_copy_on_edge, 15268 insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a 15269 locus parameter and override the stmt default if provided. 15270 (new_elim_graph, clear_elim_graph, delete_elim_graph, 15271 elim_graph_add_edge, elim_graph_remove_succ_edge, 15272 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build, 15273 elim_forward, elim_unvisited_predecessor, elim_backward, elim_create, 15274 eliminate_phi): Add locus info in elimination graph for each edge and 15275 value copy. 15276 (insert_backedge_copies): Copy locus if present. 15277 * tree-flow.h (struct _edge_var_map): Add locus field. 15278 * tree-switch_conversions.c (fix_phi_nodes): Add locations. 15279 * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block, 15280 add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add 15281 locations. 15282 * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations. 15283 152842009-07-30 Martin Jambor <mjambor@suse.cz> 15285 15286 PR tree-optimization/40570 15287 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single 15288 use inlining loops. 15289 152902009-07-30 Razya Ladelsky <razya@il.ibm.com> 15291 15292 * ssa-loop-manip.c: Include langhooks.h. 15293 (rewrite_phi_with_iv): New. 15294 (rewrite_all_phi_nodes_with_iv): New. 15295 (canonicalize_loop_ivs): Move here from tree-parloops.c. 15296 Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv. 15297 * tree-parloops.c (loop_parallel_p): Move out all conditions 15298 except dependency check. 15299 (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c. 15300 (gen_parallel_loop): Call canonicalize_loop_ivs without 15301 reduction_list argument. 15302 (build_new_reduction): New. 15303 (gather_scalar_reductions): New. 15304 (try_get_loop_niter): New. 15305 (try_create_reduction_list): New. 15306 (parallleize_loops): Change the parallel conditions check. 15307 * tree-flow.h (canonicalize_loop_ivs): Remove one argument. 15308 * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency. 15309 153102009-07-30 Dave Korn <dave.korn.cygwin@gmail.com> 15311 15312 * opt-functions.awk (opt_args): Allow argument to be enclosed in 15313 curly braces. 15314 * doc/options.texi (Option properties): Mention new quoting syntax. 15315 153162009-07-29 Douglas B Rupp <rupp@gnat.com> 15317 15318 * config/alpha/alpha.c (alpha_start_function): 15319 Handle VMS_DEBUG_MAIN_POINTER 15320 * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro. 15321 * doc/invoke.texi: Document -mdebug-main switch. 15322 153232009-07-29 Richard Henderson <rth@redhat.com> 15324 15325 * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy. 15326 (cgraph_create_edge_including_clones): Likewise. 15327 * tree-inline.c (copy_bb): Operate on the correct edges 15328 when updating the callgraph. 15329 153302009-07-29 Douglas B Rupp <rupp@gnat.com> 15331 15332 * config/alpha/vms-cc.c: Deleted. 15333 * config/alpha/vms-ld.c: Deleted. 15334 * config/alpha/t-vms64: Moved to config/vms 15335 * config/alpha/vms-crt0-64.c: Moved to config/vms 15336 * config/alpha/vms-crt0.c: Moved to config/vms 15337 * config/alpha/vms-psxcrt0-64.c: Moved to config/vms 15338 * config/alpha/vms-psxcrt0.c: Moved to config/vms 15339 * config/alpha/xm-vms.h: Moved to config/vms 15340 * config/alpha/x-vms: Moved to config/vms 15341 * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file 15342 config/vms/t-vms. 15343 * config/vms/t-vms: Moved here from config/alpha. Alpha specific 15344 parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set. 15345 (version): Set. 15346 * config/vms/t-vms64: Moved here from config/alpha 15347 * config/vms/vms-crt0-64.c: Moved here from config/alpha. 15348 (argc,argv,envp): Enforce 32bit malloc'ing. 15349 * config/vms/vms-psxcrt0-64.c: Likewise. 15350 * config/vms/vms-crt0.c: Moved here from config/alpha. 15351 * config/vms/vms-psxcrt0.c: Likewise. 15352 * config/vms/vms-crtl-64.h: New file. 15353 * config/vms/vms-crtl.h: New file. 15354 * config/vms/vms.opt: New file. 15355 * config/vms/xm-vms64.h: New file. 15356 * config/vms/xm-vms.h: Moved here from config/alpha. 15357 (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR): 15358 Set. 15359 * config/vms/x-vms: Moved here from config/alpha. 15360 (version, VMS_EXTRA_PARTS): Moved to t-vms. 15361 (vms-ld.o, vms-cc.o): Removed. 15362 (LN, LN_S, USE_COLLECT2, POD2MAN): Set. 15363 153642009-07-29 Douglas B Rupp <rupp@gnat.com> 15365 15366 * dwarf2out.c (add_name_and_src_coords_attributes): Push on the 15367 correct stack (obvious VMS fix). 15368 153692009-07-29 Douglas B Rupp <rupp@gnat.com> 15370 15371 * dwarf2out.c (output_file_names): Output VMS style file name, size, 15372 date, version info if VMS_DEBUGGING_INFO defined. 15373 * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name, 15374 size, date calculating code moved here. 15375 153762009-07-29 Paul Brook <paul@codesourcery.com> 15377 15378 * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and 15379 do_push/do_pop. 15380 153812009-07-29 Uros Bizjak <ubizjak@gmail.com> 15382 15383 PR target/40577 15384 * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src 15385 to DImode when generating insq_le insn. 15386 153872009-07-28 Douglas B Rupp <rupp@gnat.com> 15388 15389 * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET): 15390 New macro set for VMS_DEBUGGGING_INFO. 15391 (AT_string_form): Use it. 15392 153932009-07-28 DJ Delorie <dj@redhat.com> 15394 15395 * config/mep/mep.c (vtext_section): New. 15396 (vftext_section): New. 15397 (ftext_section): New. 15398 (mep_select_section): Add support for functions. 15399 (mep_unique_section): Likewise. 15400 (mep_asm_init_sections): Likewise. 15401 (mep_encode_section_info): Remove it from here. 15402 15403 * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define. 15404 154052009-07-28 Paolo Bonzini <bonzinI@gnu.org> 15406 15407 * tree.h (TREE_DEPRECATED): Document it is used for types too. 15408 (TYPE_VECTOR_OPAQUE): Use default_def_flag 15409 154102009-07-28 Douglas B Rupp <rupp@gnat.com> 15411 15412 * dwarf2out.c (output_file_names): Test new macro 15413 DWARF2_DIR_SHOULD_END_WITH_SEPARATOR. 15414 (add_comp_dir_attribute): Likewise. 15415 154162009-07-28 Kai Tietz <kai.tietz@onevision.com> 15417 15418 * config/i386/mingw-w64.h (LINK_SPEC): Add 15419 separating space between commands. 15420 154212009-07-28 Jan Hubicka <jh@suse.cz> 15422 15423 PR tree-optimization/40759 15424 * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses 15425 for renaming. 15426 154272009-07-27 DJ Delorie <dj@redhat.com> 15428 15429 * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit 15430 types are dword-aligned. 15431 (mep_expand_va_start): Likewise. 15432 154332009-07-27 Olivier Hainque <hainque@adacore.com> 15434 Douglas B Rupp <rupp@gnat.com> 15435 15436 * convert.c (convert_to_pointer): Don't assume the target 15437 pointer type is POINTER_SIZE long. Fetch its precision instead. 15438 154392009-07-27 Douglas B Rupp <rupp@gnat.com> 15440 15441 * system.h (fopen): Undefine if macro. 15442 154432009-07-27 Jakub Jelinek <jakub@redhat.com> 15444 15445 * dwarf2out.c (output_cfi_p): Removed. 15446 (output_cfis): New function. 15447 (output_fde): New function, split from output_call_frame_info. 15448 (output_call_frame_info): Use it. 15449 (dwarf2out_switch_text_section): Use output_cfis. 15450 154512009-07-24 Kai Tietz <kai.tietz@onevision.com> 15452 15453 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when 15454 TARGET_BI_ARCH is specified without enabling SJLJ. 15455 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT, 15456 if TARGET_64BIT and TARGET_BI_ARCH aren't defined. 15457 154582009-07-26 Mikael Pettersson <mikpe@it.uu.se> 15459 15460 * arm.md (negdi2): Use DImode if forcing a value into a register. 15461 154622009-07-26 Ira Rosen <irar@il.ibm.com> 15463 15464 PR tree-optimization/40801 15465 * tree-vect-stmts.c (vectorizable_call): Get previous copy 15466 of vector operand from the previous copy of vector statement. 15467 Pass the correct definition type value to 15468 vect_get_vec_def_for_stmt_copy(). 15469 154702009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 15471 15472 * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to 15473 const char ** conversion. 15474 154752009-07-25 David Daney <ddaney@caviumnetworks.com> 15476 15477 * system.h (gcc_assert): Invoke __builtin_unreachable() instead of 15478 fancy_abort() if !ENABLE_ASSERT_CHECKING. 15479 (gcc_unreachable): Invoke __builtin_unreachable() if 15480 !ENABLE_ASSERT_CHECKING. 15481 154822009-07-25 David Daney <ddaney@caviumnetworks.com> 15483 15484 PR rtl-optimization/40445 15485 * emit-rtl.c (next_nonnote_insn_bb): New function. 15486 * rtl.h (next_nonnote_insn_bb): Declare new function. 15487 * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block 15488 with no successors that is the successor of the ENTRY_BLOCK. 15489 Continue from the top after removing an empty fallthrough block. 15490 * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead 15491 of next_nonnote_insn. 15492 154932009-07-25 David Daney <ddaney@caviumnetworks.com> 15494 15495 * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks. 15496 154972009-07-25 Martin Jambor <mjambor@suse.cz> 15498 15499 * c-common.c (c_common_attribute_table): New element for noclone. 15500 (handle_noclone_attribute): New function. Forward-declare. 15501 * tree-inline.c (tree_versionable_function_p): Check for noclone 15502 attribute. 15503 * doc/extend.texi (Labels as Values): Document need for noclone. 15504 (Function Attributes): Document noclone attribute. 15505 155062009-07-25 Jakub Jelinek <jakub@redhat.com> 15507 15508 PR rtl-optimization/34999 15509 * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi 15510 and dw_fde_switched_cold_to_hot fields. 15511 (output_cfi_p): New function. 15512 (output_call_frame_info): If fde->dw_fde_switched_sections, 15513 output 2 FDEs instead of one with corrupted header. 15514 (dwarf2out_do_cfi_startproc): New function. 15515 (dwarf2out_begin_prologue): Use it. Initialize fde->dw_fde_switch_cfi 15516 and fde->dw_fde_switched_cold_to_hot. 15517 (dwarf2out_switch_text_section): Compute 15518 fde->dw_fde_switched_cold_to_hot. Switch to new text section here. 15519 If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call 15520 dwarf2out_do_cfi_startproc plus emit again currently active CFI insns. 15521 Otherwise, compute fde->dw_fde_switch_cfi. 15522 155232009-07-24 Cary Coutant <ccoutant@google.com> 15524 15525 * tree-cfg.c (assign_discriminator): Add explicit parentheses. 15526 155272009-07-24 Cary Coutant <ccoutant@google.com> 15528 15529 * cfghooks.c (split_block): Copy discriminator to new block. 15530 * tree-cfg.c (assign_discriminator): Check location of last 15531 instruction in block as well as first. 15532 155332009-07-24 Uros Bizjak <ubizjak@gmail.com> 15534 15535 * config/i386/linux.c: Use fputs or putc instead of fprintf 15536 where appropriate. 15537 * config/i386/gas.h: Ditto. 15538 * config/i386/x86-64.h: Ditto. 15539 * config/i386/att.h: Ditto. 15540 155412009-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 15542 15543 * expmed.c (emit_store_flag): Use a recursive call to optimize the 15544 xor case. 15545 155462009-07-24 Martin Jambor <mjambor@suse.cz> 15547 15548 * ipa-prop.h (struct ipa_node_params): New flag node_enqued. 15549 (ipa_push_func_to_list_1): Declare. 15550 (ipa_push_func_to_list): New function. 15551 15552 * ipa-prop.c (ipa_push_func_to_list_1): New function. 15553 (ipa_init_func_list): Call ipa_push_func_to_list_1. 15554 (ipa_push_func_to_list): Removed. 15555 (ipa_pop_func_from_list): Clear node_enqueued flag. 15556 155572009-07-24 Andreas Krebbel <krebbel1@de.ibm.com> 15558 15559 * config/s390/s390.c (override_options): Default 15560 max-unrolled-insns to 100 for z10 tuning. 15561 155622009-07-24 Tobias Grosser <grosser@fim.uni-passau.de> 15563 15564 * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o 15565 tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o, 15566 tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o, 15567 tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o, 15568 tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o 15569 tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o, 15570 lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H. 15571 155722009-07-24 Kai Tietz <kai.tietz@onevision.com> 15573 15574 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and 15575 use default set in mingw32.h header. 15576 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and 15577 64-bit /mingw/include path. 15578 (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib 15579 path. 15580 155812009-07-23 Neil Vachharajani <nvachhar@google.com> 15582 15583 PR rtl-optimization/40209 15584 * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem. 15585 155862009-07-23 Uros Bizjak <ubizjak@gmail.com> 15587 15588 * config/i386/i386.c: Use ASM_LONG instead of .long. Concatenate 15589 ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings 15590 with the rest of string where appropriate. Use fputs or putc 15591 instead of fprintf where appropriate. 15592 155932009-07-22 Michael Meissner <meissner@linux.vnet.ibm.com> 15594 Pat Haugen <pthaugen@us.ibm.com> 15595 Revital Eres <ERES@il.ibm.com> 15596 15597 * config/rs6000/vector.md: New file. Move most of the vector 15598 expander support here from altivec.md to allow for the VSX vector 15599 unit in the future. Add support for secondary_reload patterns. 15600 Rewrite the patterns for vector comparison, and vector comparison 15601 predicate instructions so that the RTL expresses the desired 15602 behavior, instead of using unspec. 15603 15604 * config/rs6000/constraints.md ("f" constraint): Use 15605 rs6000_constraints to hold the precalculated register class. 15606 ("d" constraint): Ditto. 15607 ("wd" constraint): New constraint for VSX. 15608 ("wf" constraint): Ditto. 15609 ("ws" constraint): Ditto. 15610 ("wa" constraint): Ditto. 15611 ("wZ" constraint): Ditto. 15612 ("j" constraint): Ditto. 15613 15614 * config/rs6000/predicates.md (vsx_register_operand): New 15615 predicate for VSX. 15616 (vfloat_operand): New predicate for vector.md. 15617 (vint_operand): Ditto. 15618 (vlogical_operand): Ditto. 15619 (easy_fp_constant): If VSX, 0.0 is an easy constant. 15620 (easy_vector_constant): Add VSX support. 15621 (altivec_indexed_or_indirect_operand): New predicate for 15622 recognizing Altivec style memory references with AND -16. 15623 15624 * config/rs6000/rs6000.c (rs6000_vector_reload): New static global 15625 for vector secondary reload support. 15626 (rs6000_vector_reg_class): Delete, replacing it with 15627 rs6000_constraints. 15628 (rs6000_vsx_reg_class): Ditto. 15629 (rs6000_constraints): New array to hold the register classes of 15630 each of the register constraints that can vary at runtime. 15631 (builtin_mode_to_type): New static array for builtin function type 15632 creation. 15633 (builtin_hash_table): New static hash table for builtin function 15634 type creation. 15635 (TARGET_SECONDARY_RELOAD): Define target hook. 15636 (TARGET_IRA_COVER_CLASSES): Ditto. 15637 (rs6000_hard_regno_nregs_internal): If -mvsx, floating point 15638 registers are 128 bits if VSX memory reference instructions are used. 15639 (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory 15640 unit is being used. 15641 (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global. 15642 (rs6000_debug_reg_global): Move -mdebug=reg statements here. 15643 Print several of the scheduling related parameters. 15644 (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in 15645 rs6000_constraints instead of rs6000_vector_reg_class. Move 15646 -mdebug=reg code to rs6000_debug_reg_global. Add support for 15647 -mvsx-align-128 debug switch. Drop testing float_p if VSX or 15648 Altivec. Add VSX support. Setup for secondary reload support on 15649 Altivec/VSX registers. 15650 (rs6000_override_options): Make power7 set the scheduling groups 15651 like the power5. Add support for new debug switches to override 15652 the scheduling defaults. Temporarily disable -mcpu=power7 from 15653 setting -mvsx. Add support for debug switches -malways-hint, 15654 -msched-groups, and -malign-branch-targets. 15655 (rs6000_buitlin_conversion): Add support for returning unsigned 15656 vector conversion functions to fix regressions due to stricter 15657 type checking. 15658 (rs6000_builtin_mul_widen_even): Ditto. 15659 (rs6000_builtin_mul_widen_odd): Ditto. 15660 (rs6000_builtin_vec_perm): Ditto. 15661 (rs6000_vec_const_move): On VSX, use xxlxor to clear register. 15662 (rs6000_expand_vector_init): Initial VSX support for using xxlxor 15663 to zero a register. 15664 (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is 15665 generated upstream. 15666 (bdesc_3arg): Add builtins for unsigned types. Add builtins for 15667 VSX types for bit operations. Changes to accomidate vector.md. 15668 (bdesc_2arg): Ditto. 15669 (bdesc_1arg): Ditto. 15670 (struct builtin_description_predicates): Rewrite predicate 15671 handling so that RTL describes the operation, instead of passing 15672 the instruction to be used as a string argument. 15673 (bdesc_altivec_preds): Ditto. 15674 (altivec_expand_predicate_builtin): Ditto. 15675 (altivec_expand_builtin): Ditto. 15676 (rs6000_expand_ternop_builtin): Use a switch instead of an if 15677 statement for vsldoi support. 15678 (altivec_expand_ld_builtin): Change to use new names from vector.md. 15679 (altivec_expand_st_builtin): Ditto. 15680 (paired_expand_builtin): Whitespace changes. 15681 (rs6000_init_builtins): Add V2DF/V2DI types. Initialize the 15682 builtin_mode_to_type table for secondary reload. Call 15683 builtin_function_type to build random builtin functions. 15684 (altivec_init_builtins): Change to use builtin_function_type to 15685 create builtin function types dynamically as we need them. 15686 (builtin_hash_function): New support for hashing the tree types 15687 for builtin function as we need it, rather than trying to build 15688 all of the trees that we need. Add initial preliminary VSX support. 15689 (builtin_function_type): Ditto. 15690 (builtin_function_eq): Ditto. 15691 (builtin_hash_struct): Ditto. 15692 (rs6000_init_builtins): Ditto. 15693 (rs6000_common_init_builtins): Ditto. 15694 (altivec_init_builtins): Ditto. 15695 (rs6000_common_init_builtins): Ditto. 15696 (enum reload_reg_type): New enum for simplifing reg classes. 15697 (rs6000_reload_register_type): Simplify register classes into GPR, 15698 Vector, and other registers. Altivec and VSX addresses in reload. 15699 (rs6000_secondary_reload_inner): Ditto. 15700 (rs6000_ira_cover_classes): New target hook, that returns the 15701 appropriate cover classes, based on -mvsx being used or not. 15702 (rs6000_secondary_reload_class): Add VSX support. 15703 (get_vec_cmp_insn): Delete, rewrite vector conditionals. 15704 (get_vsel_insn): Ditto. 15705 (rs6000_emit_vector_compare): Rewrite vector conditional support 15706 so that where we can, we use RTL operators, instead of blindly use 15707 UNSPEC. 15708 (rs6000_emit_vector_select): Ditto. 15709 (rs6000_emit_vector_cond_expr): Ditto. 15710 (rs6000_emit_minmax): Directly generate min/max under altivec, vsx. 15711 (create_TOC_reference): Add -mdebug=addr support. 15712 (emit_frame_save): VSX loads/stores need register indexed addressing. 15713 15714 * config/rs6000/rs6000.md: Include vector.md. 15715 15716 * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md. 15717 15718 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 15719 support for V2DI, V2DF in logical, permute, select operations. 15720 15721 * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug 15722 switch for vsx/power7. 15723 (-mvsx-scalar-memory): Ditto. 15724 (-mvsx-align-128): Ditto. 15725 (-mallow-movmisalign): Ditto. 15726 (-mallow-df-permute): Ditto. 15727 (-msched-groups): Ditto. 15728 (-malways-hint): Ditto. 15729 (-malign-branch-targets): Ditto. 15730 15731 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target 15732 hook instead. 15733 (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx. 15734 (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx. 15735 (rs6000_vector_reg_class): Delete. 15736 (rs6000_vsx_reg_class): Ditto. 15737 (enum rs6000_reg_class_enum): New enum for the constraints that 15738 vary based on target switches. 15739 (rs6000_constraints): New array to hold the register class for all 15740 of the register constraints that vary based on the switches used. 15741 (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions. 15742 (enum rs6000_builtins): Add unsigned varients for the builtin 15743 declarations returned by target hooks for expanding multiplies, 15744 select, and permute operations. Add VSX builtins. 15745 (enum rs6000_builtin_type_index): Add entries for VSX. 15746 (V2DI_type_node): Ditto. 15747 (V2DF_type_node): Ditto. 15748 (unsigned_V2DI_type_node): Ditto. 15749 (bool_long_type_node): Ditto. 15750 (intDI_type_internal_node): Ditto. 15751 (uintDI_type_internal_node): Ditto. 15752 (double_type_internal_node): Ditto. 15753 15754 * config/rs6000/altivec.md (whole file): Move all expanders to 15755 vector.md from altivec.md. Rename insn matching functions to be 15756 altivec_foo. 15757 (UNSPEC_VCMP*): Delete, rewrite vector comparisons. 15758 (altivec_vcmp*): Ditto. 15759 (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm. 15760 (VM): New iterator for moves that includes the VSX types. 15761 (altivec_vperm_<mode>): Add VSX types. Add unsigned types. 15762 (altivec_vperm_<mode>_uns): New, for unsigned types. 15763 (altivec_vsel_*): Rewrite vector comparisons and predicate builtins. 15764 (altivec_eq<mode>): Ditto. 15765 (altivec_gt<mode>): Ditto. 15766 (altivec_gtu<mode>): Ditto. 15767 (altivec_eqv4sf): Ditto. 15768 (altivec_gev4sf): Ditto. 15769 (altivec_gtv4sf): Ditto. 15770 (altivec_vcmpbfp_p): Ditto. 15771 157722009-07-23 Richard Earnshaw <rearnsha@arm.com> 15773 15774 * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to 15775 unsigned HWI. 15776 157772009-07-23 Uros Bizjak <ubizjak@gmail.com> 15778 15779 PR target/40832 15780 * config/i386/i386.c (output_387_ffreep): Rewrite to use 15781 ASM_SHORT instead of .word. 15782 * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT 15783 instead of .word in asm template. 15784 157852009-07-22 Vladimir Makarov <vmakarov@redhat.com> 15786 15787 PR target/37488 15788 * ira-lives.c (bb_has_abnormal_call_pred): New function. 15789 (process_bb_node_lives): Use it. 15790 15791 * ira.c (setup_cover_and_important_classes): Don't setup 15792 ira_important_class_nums. Add cover classes to the end of 15793 important classes. 15794 (cover_class_order, comp_reg_classes_func, reorder_important_classes): 15795 New. 15796 (find_reg_class_closure): Use reorder_important_classes. 15797 15798 * config/i386/i386.h (IRA_COVER_CLASSES): Remove. 15799 15800 * config/i386/i386.c (i386_ira_cover_classes): New function. 15801 (TARGET_IRA_COVER_CLASSES): Redefine. 15802 15803 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about 15804 importance of order of cover classes in the array. 15805 158062009-07-22 Diego Novillo <dnovillo@google.com> 15807 15808 * tree-pass.h (TDF_EH): Define. 15809 * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS 15810 contains TDF_EH, print the EH region number holding GS. 15811 * tree-dump.c (dump_options): Add "eh". 15812 * doc/invoke.texi: Document it. 15813 158142009-07-22 Doug Kwan <dougkwan@google.com> 15815 15816 * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers. 15817 158182009-07-22 Michael Matz <matz@suse.de> 15819 15820 PR tree-optimization/35229 15821 PR tree-optimization/39300 15822 15823 * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h. 15824 (inhibit_phi_insertion): New function. 15825 (insert_into_preds_of_block): Call it for REFERENCEs. 15826 (init_pre): Initialize and finalize scalar evolutions. 15827 * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h . 15828 158292009-07-22 Uros Bizjak <ubizjak@gmail.com> 15830 15831 * config/i386/predicates.md (zero_extended_scalar_load_operand): 15832 Use CONST_VECTOR_NUNITS to determine number of elements. 15833 158342009-07-22 Andreas Krebbel <krebbel1@de.ibm.com> 15835 15836 * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints. 15837 (U, W): Constraints are now deprecated and will be removed if we 15838 run out of letters. 15839 * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout 15840 the file. 15841 ("prefetch"): Add the stcmh instruction for prefetching. 15842 * config/s390/s390.c (s390_symref_operand_p): Function moved. No 15843 changes. 15844 (s390_short_displacement): Return always true if compiling for 15845 machines not providing the long displacement facility. 15846 (s390_mem_constraint): Support the new constraint letter Z. 15847 (s390_check_qrst_address): New function. 15848 158492009-07-21 DJ Delorie <dj@redhat.com> 15850 15851 * config/mep/mep.c (mep_legitimize_arg): Leave control registers 15852 alone too. 15853 158542009-07-21 Jason Merrill <jason@redhat.com> 15855 15856 * c-common.c (max_tinst_depth): Increase default to 1024. 15857 158582009-07-21 Uros Bizjak <ubizjak@gmail.com> 15859 15860 * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander. 15861 (vec_unpacku_float_lo_v4si): Ditto. 15862 158632009-07-21 Uros Bizjak <ubizjak@gmail.com> 15864 15865 PR target/40811 15866 * config/i386/sse.md (sse2_cvtudq2ps): New expander. 15867 (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS. 15868 (builtin_description): Add __builtin_ia32_cvtudq2ps. 15869 (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS. 15870 158712009-07-21 Jakub Jelinek <jakub@redhat.com> 15872 15873 PR tree-optimization/40813 15874 * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before 15875 it. 15876 158772009-07-21 Kaz Kojima <kkojima@gcc.gnu.org> 15878 15879 * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result 15880 with a NOP_EXPR if needed. 15881 158822009-07-21 Paul Brook <paul@codesourcery.com> 15883 15884 * tree-vectorizer.c (increase_alignment): Handle nested arrays. 15885 Terminate debug dump with newline. 15886 158872009-07-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 15888 15889 * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb. 15890 Cast "1" to unsigned HOST_WIDE_INT. 15891 (compute_zdepdi_operands): Limit maximum length to 64 bits. Limit 15892 deposit length to the maximum length - lsb. Extend length if 15893 HOST_BITS_PER_WIDE_INT is 32. 15894 158952009-07-20 Olatunji Ruwase <tjruwase@google.com> 15896 15897 * cgraph.h (constant_pool_htab): New function. 15898 (constant_descriptor_tree): Move from varasm.c. 15899 * varasm.c (constant_pool_htab): New function. 15900 (constant_descriptor_tree): Move to cgraph.h. 15901 159022009-07-20 Olatunji Ruwase <tjruwase@google.com> 15903 15904 * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize(). 15905 159062009-07-20 Shujing Zhao <pearly.zhao@oracle.com> 15907 15908 * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove 15909 $(VARRAY_H). 15910 159112009-07-20 Xinliang David Li <davidxl@google.com> 15912 15913 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check. 15914 159152009-07-20 Adam Nemet <anemet@caviumnetworks.com> 15916 15917 * config/mips/mips.md (move_type): Add arith. 15918 (type): Handle arith. 15919 (zero_extendsidi2): Rename this into ... 15920 (*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS. 15921 (zero_extendsidi2): New expander. 15922 (*zero_extendsidi2_dext): New pattern. 15923 159242009-07-20 Nick Clifton <nickc@redhat.com> 15925 15926 * config.gcc (mips64-*-*): Add definition of tm_defines in order 15927 to set MIPS_ABI_DEFAULT. 15928 * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition. 15929 159302009-07-20 Jakub Jelinek <jakub@redhat.com> 15931 15932 * tree-object-size.c (addr_object_size): Handle unions with 15933 array in it as last field of structs in __bos (, 1) as __bos (, 0). 15934 15935 PR tree-optimization/40792 15936 * tree.c (build_function_type_skip_args): Remove bogus assert. 15937 159382009-07-20 Jan Hubicka <jh@suse.cz> 15939 Martin Jambor <mjambor@suse.cz> 15940 15941 * cgraph.h (combined_args_to_skip): New field. 15942 * cgraph.c (cgraph_create_virtual_clone): Properly handle 15943 combined_args_to_skip and args_to_skip. 15944 * tree-inline.c (update_clone_info): New function. 15945 (tree_function_versioning): Call update_clone_info. 15946 * cgraphunit.c (cgraph_materialize_clone): Dump materialized 15947 functions. 15948 (cgraph_materialize_all_clones): More extensive dumping, working 15949 with combined_args_to_skip rather than args_to_skip. 15950 159512009-07-20 Ira Rosen <irar@il.ibm.com> 15952 15953 * tree-vectorizer.h (vectorizable_condition): Add parameters. 15954 * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR. 15955 (get_initial_def_for_reduction): Likewise. 15956 (vectorizable_reduction): Skip the check of first operand in case 15957 of COND_EXPR. Add check that it is outer loop vectorization if 15958 nested cycle was detected. Call vectorizable_condition() for 15959 COND_EXPR. If reduction epilogue cannot be created do not fail for 15960 nested cycles (if it is not double reduction). Assert that there 15961 is only one type in the loop in case of COND_EXPR. Call 15962 vectorizable_condition() to vectorize COND_EXPR. 15963 * tree-vect-stmts.c (vectorizable_condition): Update comment. 15964 Add parameters. Allow nested cycles if called from 15965 vectorizable_reduction(). Use reduction vector variable if provided. 15966 (vect_analyze_stmt): Call vectorizable_reduction() before 15967 vectorizable_condition(). 15968 (vect_transform_stmt): Update call to vectorizable_condition(). 15969 159702009-07-20 Christian Bruel <christian.bruel@st.com> 15971 15972 * config/sh/sh.opt (-mfmovd): Resurrect and document. 15973 * doc/invoke.texi (-mfmovd): Likewise. 15974 * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting. 15975 159762009-07-20 Jan Hubicka <jh@suse.cz> 15977 15978 * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs 15979 when handling SSA name. 15980 159812009-07-19 Jan Hubicka <jh@suse.cz> 15982 15983 PR tree-optimization/40676 15984 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all 15985 virtual PHIs in empty BBs. 15986 159872009-07-18 Adam Nemet <anemet@caviumnetworks.com> 15988 15989 * combine.c (make_compound_operation) <SUBREG>: If force_to_mode 15990 re-expanded the compound use gen_lowpart instead to convert to the 15991 desired mode. 15992 159932009-07-18 Adam Nemet <anemet@caviumnetworks.com> 15994 15995 * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and 15996 OUTER_CONST arguments. 15997 <LSHIFTRT>: Use them to allow widening if the bits shifted in from 15998 the new wider mode will be masked off. 15999 (simplify_shift_const_1): Adjust calls to try_widen_shift_mode. 16000 160012009-07-18 Adam Nemet <anemet@caviumnetworks.com> 16002 16003 * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the 16004 high-order bits are zero. 16005 160062009-07-18 Adam Nemet <anemet@caviumnetworks.com> 16007 16008 * combine.c (simplify_shift_const_1): Split code to determine 16009 shift_mode into ... 16010 (try_widen_shift_mode): ... here. Allow widening for ASHIFTRT if the 16011 new bits shifted in are identical to the old sign bit. 16012 160132009-07-18 Richard Guenther <rguenther@suse.de> 16014 16015 PR c/40787 16016 * gimplify.c (gimplify_call_expr): Reject code using results from 16017 functions returning void. 16018 160192009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com> 16020 16021 * doc/md.texi: Document the new PowerPC "es" constraint. 16022 Document that "m" can include automodified addresses on this target, 16023 and explain how %U must be used. Extend the "Q" and "Z" documentation 16024 to suggest "es" as well as "m". 16025 * config/rs6000/constraints.md (es): New memory constraint. 16026 (Q, Z): Update strings to match new documentation. 16027 160282009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com> 16029 16030 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any 16031 offset from virtual_stack_vars_rtx and arg_pointer_rtx. 16032 * config/rs6000/predicates.md (volatile_mem_operand): Use 16033 offsettable_nonstrict_memref_p. 16034 * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check. 16035 (*floatunssidf2_internal): Likewise. 16036 (*fix_truncdfsi2_internal): Likewise. 16037 (*fix_trunctfsi2_internal): Likewise. 16038 160392009-07-17 Anatoly Sokolov <aesok@post.ru> 16040 16041 * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and 16042 atmega32u2 devices. 16043 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). 16044 160452009-07-17 Richard Guenther <rguenther@suse.de> 16046 16047 PR c/40401 16048 * tree-pass.h (pass_diagnose_omp_blocks): Declare. 16049 (pass_warn_unused_result): Likewise. 16050 (TODO_set_props): Remove. 16051 * omp-low.c (diagnose_omp_structured_block_errors): Change to 16052 run as a pass. 16053 (pass_diagnose_omp_blocks): Define. 16054 * c-decl.c (pop_file_scope): Do not finalize the CU here. 16055 (c_gimple_diagnostics_recursively): Remove. 16056 (finish_function): Do not call it. 16057 (c_write_global_declarations): Continue after errors. 16058 Finalize the CU here. 16059 * c-gimplify.c (c_genericize): Do not gimplify here. 16060 * c-common.c (c_warn_unused_result): Move ... 16061 * tree-cfg.c (do_warn_unused_result): ... here. 16062 (run_warn_unused_result): New function. 16063 (gate_warn_unused_result): New function. 16064 (pass_warn_unused_result): New pass. 16065 * c-common.h (c_warn_unused_result): Remove. 16066 * flags.h (flag_warn_unused_result): Declare. 16067 * c-opts.c (c_common_init_options): Enable flag_warn_unused_result. 16068 * opts.c (flag_warn_unused_result): Initialize to false. 16069 * toplev.c (compile_file): Add comment. 16070 * omp-low.c (create_omp_child_function): Do not register 16071 the function with the frontend. 16072 (diagnose_omp_structured_block_errors): Prepare to be 16073 called as optimization pass. 16074 (gate_diagnose_omp_blocks): New function. 16075 (pass_diagnose_omp_blocks): New pass. 16076 * cgraph.h (cgraph_optimize): Remove. 16077 (cgraph_analyze_function): Likewise. 16078 * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks. 16079 * cgraphunit.c (cgraph_lower_function): Lower nested functions 16080 before their parents here. 16081 (cgraph_finalize_function): Not here. 16082 (cgraph_analyze_function): Gimplify functions here. 16083 (cgraph_finalize_compilation_unit): Continue after errors. 16084 Optimize the callgraph from here. 16085 (cgraph_optimize): Make static. 16086 * langhooks.c (write_global_declarations): Finalize the CU. 16087 * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors. 16088 (gimplify_function_tree): Assert we gimplify only once. 16089 Set PROP_gimple_any property. 16090 * tree-nested.c (gimplify_all_functions): New function. 16091 (lower_nested_functions): Gimplify all nested functions. 16092 * gimple.h (diagnose_omp_structured_block_errors): Remove. 16093 * passes.c (init_optimization_passes): Add pass_warn_unused_result 16094 and pass_diagnose_omp_blocks after gimplification. Do not 16095 set TODO_set_props on all_lowering_passes. 16096 (execute_one_pass): Do not handle TODO_set_props. 16097 * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency. 16098 (gimplify.o): Add tree-pass.h dependency. 16099 * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST. 16100 (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR. 16101 (unsave_r): Likewise. 16102 * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the 16103 temporary variable. 16104 161052009-07-17 Sandra Loosemore <sandra@codesourcery.com> 16106 16107 * doc/service.texi (Service): Restore previously removed link, 16108 which isn't broken after all. 16109 161102009-07-17 Richard Guenther <rguenther@suse.de> 16111 16112 PR tree-optimization/40321 16113 * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by 16114 PHI nodes to the maximal set. 16115 (make_values_for_phi): Add PHI arguments to the maximal set. 16116 (execute_pre): Dump PHI_GEN and the maximal set. 16117 161182009-07-17 Jakub Jelinek <jakub@redhat.com> 16119 16120 PR c++/40780 16121 * gimplify.c (gimplify_conversion): Don't change non-conversions into 16122 VIEW_CONVERT_EXPR. 16123 161242009-07-16 Sandra Loosemore <sandra@codesourcery.com> 16125 16126 * doc/extend.texi (Nested Functions): Replace broken link with 16127 textual reference. 16128 * doc/service.texi (Service): Remove broken link. 16129 161302009-07-16 H.J. Lu <hongjiu.lu@intel.com> 16131 16132 PR bootstrap/40781 16133 * builtins.c (expand_builtin_memcmp): Use loc instead of 16134 EXPR_LOCATION (exp). 16135 (expand_builtin_strncmp): Likewise. 16136 161372009-07-17 Aldy Hernandez <aldyh@redhat.com> 16138 Manuel López-Ibáñez <manu@gcc.gnu.org> 16139 16140 PR 40435 16141 * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h, 16142 builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c, 16143 tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c, 16144 c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c, 16145 calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c, 16146 tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c, 16147 tree-inline.c, c-common.c, c-common.h, gimple.c, 16148 tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c, 16149 convert.c: Add location argument to fold_{unary,binary,ternary}, 16150 fold_build[123], build_call_expr, build_size_arg, 16151 build_fold_addr_expr, build_call_array, non_lvalue, size_diffop, 16152 fold_build1_initializer, fold_build2_initializer, 16153 fold_build3_initializer, fold_build_call_array, 16154 fold_build_call_array_initializer, fold_single_bit_test, 16155 omit_one_operand, omit_two_operands, invert_truthvalue, 16156 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref, 16157 combine_comparisons, fold_builtin_*, fold_call_expr, 16158 build_range_check, maybe_fold_offset_to_address, round_up, 16159 round_down. 16160 161612009-07-16 Jason Merrill <jason@redhat.com> 16162 16163 PR libstdc++/37907 16164 * c-common.c (c_common_reswords): Add __is_standard_layout 16165 and __is_trivial. 16166 * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL. 16167 * doc/implement-cxx.texi: New. 16168 * doc/gcc.texi: Include it. 16169 161702009-07-16 DJ Delorie <dj@redhat.com> 16171 16172 * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing 16173 compares that may be indirectly affected by previous instructions. 16174 161752009-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16176 16177 * builtins.c (do_mpc_arg2): New. 16178 (fold_builtin_2): Fold builtin cpow. 16179 * real.h (HAVE_mpc_pow): New. 16180 161812009-07-16 Bingfeng Mei <bmei@broadcom.com> 16182 16183 * modulo-sched.c (sms_schedule): stage_count <= 1 as correct 16184 comparison to skip unprofitable schedule 16185 161862009-07-16 Simon Baldwin <simonb@google.com> 16187 16188 * gcc.c (option_map): New flag -no-canonical-prefixes. 16189 * (display_help): Print help text for new flag. 16190 * (process_command): Move options translation and language specifics 16191 and handle new flag early. Use it to set a function pointer to a 16192 prefix builder. Replace make_relative_prefix calls with calls to 16193 the function pointed to. Ignore new flag in regular options handling. 16194 * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes. 16195 161962009-07-15 DJ Delorie <dj@redhat.com> 16197 16198 * config/mep/mep.md (sibcall_internal): Change register to avoid 16199 argument registers. 16200 (sibcall_value_internal): Likewise. 16201 162022009-07-15 Eric Botcazou <ebotcazou@adacore.com> 16203 16204 PR rtl-optimization/40710 16205 * resource.c (mark_target_live_regs): Reset DF problem to LR. 16206 162072009-07-15 Adam Nemet <anemet@caviumnetworks.com> 16208 16209 * config/mips/mips.md (*extenddi_truncate<mode>, 16210 *extendsi_truncate<mode>): Change type attribute to move_type 16211 with shift_shift. Split out code handling exts from here ... 16212 (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new 16213 pattern. 16214 (*extendhi_truncateqi): Change type attribute to move_type with 16215 shift_shift. Split out code handling exts from here ... 16216 (*extendhi_truncateqi_exts): ... to this new pattern. 16217 162182009-07-15 Uros Bizjak <ubizjak@gmail.com> 16219 16220 * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction 16221 instead of "and" with inverted sign bit mask value. Use 16222 "nonimmediate_operand" for operand 1 and operand 2 predicate. 16223 Allocate registers only for operand 4 and operand 5. 16224 162252009-07-15 Jakub Jelinek <jakub@redhat.com> 16226 16227 PR middle-end/40747 16228 * fold-const.c (fold_cond_expr_with_comparison): When folding 16229 < and <= to MIN, make sure the MIN uses the same type as the 16230 comparison's operands. 16231 162322009-07-15 Richard Earnshaw <rearnsha@arm.com> 16233 16234 * arm.md (ior_xor): New code iterator. 16235 (split for ior/xor with shift and zero-extend): New split pattern. 16236 * arm/predicates.md (subreg_lowpart_operator): New special predicate. 16237 162382009-07-15 Richard Guenther <rguenther@suse.de> 16239 16240 * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize 16241 offset member. 16242 162432009-07-15 Richard Guenther <rguenther@suse.de> 16244 16245 PR middle-end/40753 16246 * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases. 16247 162482009-07-15 Maxim Kuvyrkov <maxim@codesourcery.com> 16249 16250 * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to 16251 handle 2.6.30 kernel. 16252 162532009-07-15 DJ Delorie <dj@redhat.com> 16254 16255 * config/mep/mep.md (sibcall_internal): Change register to allow 16256 for 24-bit addresses. 16257 (sibcall_value_internal): Likewise. 16258 162592009-07-14 Ghassan Shobaki <ghassan.shobaki@amd.com> 16260 16261 * doc/invoke.texi: Added descriptions of the scheduling heuristics 16262 that are enabled/disabled by the flags introduced by a previous patch. 16263 162642009-07-14 DJ Delorie <dj@redhat.com> 16265 16266 * config/mep/mep.md (sibcall_internal): Include non-toggling 16267 non-jmp case. 16268 (sibcall_value_internal): Likewise. 16269 162702009-07-14 Taras Glek <tglek@mozilla.com> 16271 Rafael Espindola <espindola@google.com> 16272 16273 * doc/sourcebuild.texi: Document install-plugin target. 16274 * configure.ac: Added install-plugin target to language makefiles. 16275 * configure: Regenerate. 16276 * Makefile.in (install-plugin): Install more headers, 16277 depend on lang.install-plugin. 16278 162792009-07-15 Manuel López-Ibáñez <manu@gcc.gnu.org> 16280 16281 * tree-vrp.c (vrp_evaluate_conditional): Mark strings for 16282 translation. 16283 162842009-07-14 DJ Delorie <dj@redhat.com> 16285 16286 * config/mep/mep.c (mep_vliw_jmp_match): New function. 16287 * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it. 16288 * config/mep/mep.md (sibcall_internal): Change test from 16289 mep_vliw_mode_match to mep_vliw_jmp_match. 16290 (sibcall_value_internal): Likewise. 16291 162922009-07-14 Uros Bizjak <ubizjak@gmail.com> 16293 16294 * config/i386/sse.md (copysign<mode>3): New expander. 16295 * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype. 16296 * config/i386/i386.c (ix86_build_signbit_mask): Make public. 16297 Use ix86_build_const_vector. 16298 (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and 16299 IX86_BUILTIN_CPYSGNPD. 16300 (builtin_description): Add __builtin_ia32_copysignps and 16301 __builtin_ia32_copysignpd. 16302 (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN 16303 and BUILT_IN_COPYSIGNF. 16304 163052009-07-13 Jason Merrill <jason@redhat.com> 16306 16307 * builtins.c (can_trust_pointer_alignment): New fn. 16308 (get_pointer_alignment): Factor it out from here. 16309 * tree.h: Declare it. 16310 163112009-07-14 David Edelsohn <edelsohn@gnu.org> 16312 16313 * config/rs6000/predicates.md (offsettable_mem_operand): Test 16314 RTX_AUTOINC class. 16315 163162009-07-14 Dodji Seketeli <dodji@redhat.com> 16317 16318 PR debug/40705 16319 PR c++/403057 16320 * dwarf2.out.c (gen_type_die_with_usage): Added comment. 16321 163222009-07-14 Richard Guenther <rguenther@suse.de> 16323 Andrey Belevantsev <abel@ispras.ru> 16324 16325 PR middle-end/40745 16326 * cfgexpand.c (partition_stack_vars): Do not bother to update 16327 alias information when not optimizing. 16328 163292009-07-14 Richard Guenther <rguenther@suse.de> 16330 Andrey Belevantsev <abel@ispras.ru> 16331 16332 * tree-ssa-alias.h (refs_may_alias_p_1): Declare. 16333 (pt_solution_set): Likewise. 16334 * tree-ssa-alias.c (refs_may_alias_p_1): Export. 16335 * tree-ssa-structalias.c (pt_solution_set): New function. 16336 * final.c (rest_of_clean_state): Free SSA data structures. 16337 * print-rtl.c (print_decl_name): Remove. 16338 (print_mem_expr): Implement in terms of print_generic_expr. 16339 * alias.c (ao_ref_from_mem): New function. 16340 (rtx_refs_may_alias_p): Likewise. 16341 (true_dependence): Query alias-export info. 16342 (canon_true_dependence): Likewise. 16343 (write_dependence_p): Likewise. 16344 * tree-dfa.c (get_ref_base_and_extent): For void types leave 16345 size unknown. 16346 * emit-rtl.c (component_ref_for_mem_expr): Remove. 16347 (mem_expr_equal_p): Use operand_equal_p. 16348 (set_mem_attributes_minus_bitpos): Do not use 16349 component_ref_for_mem_expr. 16350 * cfgexpand.c (add_partitioned_vars_to_ptset): New function. 16351 (update_alias_info_with_stack_vars): Likewise. 16352 (partition_stack_vars): Call update_alias_info_with_stack_vars. 16353 * tree-ssa.c (delete_tree_ssa): Do not release SSA names 16354 explicitly nor clear stmt operands. 16355 Free the decl-to-pointer map. 16356 * tree-optimize.c (execute_free_datastructures): Do not free 16357 SSA data structures here. 16358 * tree-flow.h (struct gimple_df): Add decls_to_pointers member. 16359 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency. 16360 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H) 16361 dependencies. 16362 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency. 16363 163642009-07-13 DJ Delorie <dj@redhat.com> 16365 16366 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger 16367 unrolling at the right iteration count. 16368 16369 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer 16370 calculations. 16371 163722009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com> 16373 16374 * haifa-sched.c (rank_for_schedule): Introduced flags to 16375 enable/disable individual scheduling heuristics. 16376 * common.opt: Introduced flags to enable/disable individual 16377 heuristics in the scheduler. 16378 * doc/invoke.texi: Introduced flags to enable/disable individual 16379 heuristics in the scheduler. 16380 163812009-07-13 Kai Tietz <kai.tietz@onevision.com> 16382 16383 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file 16384 config/i386/mingw-tls.c. 16385 * config/i386/mingw-tls.c: Removed. 16386 163872009-07-13 Ira Rosen <irar@il.ibm.com> 16388 16389 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 16390 checks access only relevant statements. 16391 (vectorizable_reduction): Likewise. 16392 163932009-07-12 Kai Tietz <kai.tietz@onevision.com> 16394 16395 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_ 16396 just for 32-bit case. 16397 163982009-07-12 Jan Hubicka <jh@suse.cz> 16399 16400 PR tree-optimization/40585 16401 * except.c (expand_resx_expr): When there already is resume 16402 instruction, produce linked list. 16403 (build_post_landing_pads): Assert that resume is empty. 16404 (connect_post_landing_pads): Handle resume lists. 16405 (dump_eh_tree): Dump resume list. 16406 164072009-07-12 Ira Rosen <irar@il.ibm.com> 16408 16409 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction 16410 with additional argument. 16411 * tree-vectorizer.h (enum vect_def_type): Add 16412 vect_double_reduction_def. 16413 (vect_is_simple_reduction): Add argument. 16414 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix 16415 indentation. 16416 (vect_analyze_scalar_cycles_1): Detect double reduction. Call 16417 vect_is_simple_reduction with additional argument. 16418 (vect_analyze_loop_operations): Handle exit phi nodes in case of 16419 double reduction. 16420 (reduction_code_for_scalar_code): Handle additional codes by 16421 returning ERROR_MARK for them. Fix comment and indentation. 16422 (vect_is_simple_reduction): Fix comment, add argument to specify 16423 double reduction. Detect double reduction. 16424 (get_initial_def_for_induction): Fix indentation. 16425 (get_initial_def_for_reduction): Fix comment and indentation. 16426 Handle double reduction. Create initial definitions that do not 16427 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases. 16428 (vect_create_epilog_for_reduction): Fix comment, add argument to 16429 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in 16430 epilogue result extraction. Create double reduction phi node and 16431 replace relevant uses. 16432 (vectorizable_reduction): Call vect_is_simple_reduction with 16433 additional argument. Fix indentation. Update epilogue code treatment 16434 according to the changes in reduction_code_for_scalar_code. Check 16435 for double reduction. Call vect_create_epilog_for_reduction with 16436 additional argument. 16437 * tree-vect-stmts.c (process_use): Handle double reduction, update 16438 documentation. 16439 (vect_mark_stmts_to_be_vectorized): Handle double reduction. 16440 (vect_get_vec_def_for_operand): Likewise. 16441 164422009-07-12 Danny Smith <dansmister@gmail.com> 16443 16444 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't 16445 dllexport if !TREE_PUBLIC. 16446 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC. 16447 164482009-07-11 Anatoly Sokolov <aesok@post.ru> 16449 16450 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine. 16451 (avr_extra_arch_macro) Remove declatation. 16452 * config/avr/avr.c (avr_cpu_cpp_builtins): New function. 16453 (avr_extra_arch_macro) Declare as static. 16454 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare. 16455 164562009-07-11 Jan Hubicka <jh@suse.cz> 16457 16458 PR middle-end/48388 16459 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap. 16460 164612009-07-11 Jakub Jelinek <jakub@redhat.com> 16462 16463 PR debug/40713 16464 * dwarf2out.c (dw_fde_struct): Add in_std_section and 16465 cold_in_std_section bits. 16466 (dwarf2out_begin_prologue): Initialize them. 16467 (dwarf2out_finish): Don't emit FDE range into .debug_ranges 16468 if already covered by text_section or cold_text_section range. 16469 16470 PR rtl-optimization/40667 16471 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined. 16472 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it. 16473 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define. 16474 * config/i386/i386.c (ix86_minimum_alignment): New function. 16475 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype. 16476 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT. 16477 * emit-rtl.c (gen_reg_rtx): Likewise. 16478 * function.c (assign_parms): Likewise. If nominal_type needs 16479 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment 16480 rather than passed_type's alignment. 16481 16482 PR target/40668 16483 * function.c (assign_parm_setup_stack): Adjust 16484 MEM_OFFSET (data->stack_parm) if promoted_mode is different 16485 from nominal_mode on big endian. 16486 164872009-07-11 Paolo Bonzini <bonzini@gnu.org> 16488 16489 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension. 16490 164912009-07-10 DJ Delorie <dj@redhat.com> 16492 16493 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify. 16494 164952009-07-10 Mark Mitchell <mark@codesourcery.com> 16496 16497 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length 16498 attribute. 16499 (thumb2_cbnz): Likewise. 16500 165012009-07-10 David Daney <ddaney@caviumnetworks.com> 16502 16503 PR target/39079 16504 * config.gcc (supported_defaults): Add synci. 16505 (with_synci): Add validation. 16506 (all_defaults): Add synci. 16507 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of 16508 ISA_HAS_SYNCI. 16509 (synci): Same. 16510 * config/mips/mips.opt (msynci): New option. 16511 * config/mips/mips.c (mips_override_options): Warn on use of 16512 -msynci for targets that do now support it. 16513 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for 16514 msynci. 16515 * gcc/doc/invoke.texi (-msynci): Document the new option. 16516 * doc/install.texi (--with-synci): Document the new option. 16517 165182009-07-10 Richard Guenther <rguenther@suse.de> 16519 16520 PR tree-optimization/40496 16521 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create 16522 the PHI result with a compatible type. 16523 165242009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org> 16525 16526 PR 25509 16527 PR 40614 16528 * c.opt (Wunused-result): New. 16529 * doc/invoke.texi: Document it. 16530 * c-common.c (c_warn_unused_result): Use it. 16531 165322009-07-09 DJ Delorie <dj@redhat.com> 16533 16534 * targhooks.c (default_target_can_inline_p): Rename from 16535 default_target_option_can_inline_p. 16536 * targhooks.h (default_target_can_inline_p): Likewise. 16537 * target-def.h (TARGET_CAN_INLINE_P): Rename from 16538 TARGET_OPTION_CAN_INLINE_P. 16539 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise. 16540 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise. 16541 (mep_target_can_inline_p): Rename from 16542 mep_target_option_can_inline_p. 16543 16544 PR target/40626 16545 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor 16546 registers used to pass vectors. 16547 16548 * config/mep/mep.c (mep_option_can_inline_p): Remove error call. 16549 165502009-07-09 Tom Tromey <tromey@redhat.com> 16551 16552 * unwind-dw2-fde-darwin.c: Include dwarf2.h. 16553 * config/mmix/mmix.c: Include dwarf2.h. 16554 * config/rs6000/darwin-fallback.c: Include dwarf2.h. 16555 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h. 16556 * config/sh/sh.c: Include dwarf2.h. 16557 * config/i386/i386.c: Include dwarf2.h. 16558 * Makefile.in (DWARF2_H): Remove 'elf'. 16559 * except.c: Include dwarf2.h. 16560 * unwind-dw2.c: Include dwarf2.h. 16561 * dwarf2out.c: Include dwarf2.h. 16562 * unwind-dw2-fde-glibc.c: Include dwarf2.h. 16563 * unwind-dw2-fde.c: Include dwarf2.h. 16564 * dwarf2asm.c: Include dwarf2.h. 16565 165662009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com> 16567 16568 * haifa-sched.c (insn_finishes_cycle_p): New static function. 16569 (max_issue): Use it. 16570 * sched-int.h (struct sched_info: insn_finishes_block_p): New 16571 scheduler hook. 16572 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it. 16573 (region_sched_info): Update. 16574 * sched-ebb.c (ebb_sched_info): Update. 16575 * modulo-sched.c (sms_sched_info): Update. 16576 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update. 16577 165782009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com> 16579 16580 * varasm.c (build_constant_desc): Don't share RTL in pool entries. 16581 165822009-07-09 Basile Starynkevitch <basile@starynkevitch.net> 16583 16584 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 16585 165862009-07-09 Jakub Jelinek <jakub@redhat.com> 16587 16588 PR middle-end/40692 16589 * fold-const.c (fold_cond_expr_with_comparison): Don't replace 16590 arg1 with arg01 if arg1 is already INTEGER_CST. 16591 165922009-07-08 Adam Nemet <anemet@caviumnetworks.com> 16593 16594 * simplify-rtx.c (simplify_binary_operation_1) <AND>: 16595 Transform (and (truncate)) into (truncate (and)). 16596 165972009-07-08 Adam Nemet <anemet@caviumnetworks.com> 16598 16599 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before 16600 creating LHS paradoxical subregs. Fix surrounding returns to 16601 use NULL_RTX rather than 0. 16602 166032009-07-08 DJ Delorie <dj@redhat.com> 16604 16605 * config/mep/mep.c (mep_option_can_inline_p): New. 16606 (TARGET_OPTION_CAN_INLINE_P): Define. 16607 166082009-07-08 Mark Wielaard <mjw@redhat.com> 16609 16610 PR debug/40659 16611 * dwarf2out.c (add_data_member_location_attribute): When we have 16612 only a constant offset don't emit a new location description using 16613 DW_OP_plus_uconst, but just add the constant with add_AT_int, when 16614 dwarf_version > 2. 16615 166162009-07-08 Richard Henderson <rth@redhat.com> 16617 16618 PR target/38900 16619 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c. 16620 (enum reg_class): Add CLOBBERED_REGS. 16621 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. 16622 * config/i386/i386.c (ix86_conditional_register_usage): Moved 16623 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit. 16624 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls. 16625 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't 16626 force 64-bit sibcalls into R11. 16627 * config/i386/constraints.md (U): New constraint. 16628 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it. 16629 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise. 16630 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove. 16631 166322009-07-08 Shujing Zhao <pearly.zhao@oracle.com> 16633 16634 * basic-block.h (dump_regset, debug_regset): Remove duplicate 16635 prototypes. 16636 * c-objc-common.h (c_initialize_diagnostics): Ditto. 16637 * ebitmap.h (dump_ebitmap): Ditto. 16638 * optabs.h (optab_libfunc): Ditto. 16639 * tree.h (tree_expr_nonzero_warnv_p): Ditto. 16640 * tree-flow.h (vect_can_force_dr_alignment_p, 16641 get_vectype_for_scalar_type): Ditto. 16642 (vectorize_loops): Move prototype to ... 16643 * tree-vectorizer.h: ... here. Also, adjust comment. 16644 (vect_set_verbosity_level): Remove duplicate prototype. 16645 * tree-ssa-loop.c: Include tree-vectorizer.h. 16646 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h. 16647 166482009-07-08 Nick Clifton <nickc@redhat.com> 16649 16650 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the 16651 forward slash. 16652 166532009-07-08 DJ Delorie <dj@redhat.com> 16654 16655 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3, 16656 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1, 16657 cpmovtocc_P0S_P1): Mark volatile. Note which registers are 16658 written to. 16659 * config/mep/intrinsics.md: Regenerated. 16660 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control 16661 registers when asm() or calls are detected. 16662 166632009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org> 16664 16665 PR c++/31246 16666 * gimplify.c (gimplify_expr): Propagate no_warning flag when 16667 gimplifying. 16668 * gimple (gimple_build_call_from_tree): Likewise. 16669 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check 16670 no_warning flag before warning. 16671 166722009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 16673 16674 * tree.c (set_expr_locus): Remove. 16675 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove. 16676 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by 16677 EXPR_LOCATION. 16678 * gimplify.c (internal_get_tmp_var): Likewise. 16679 (gimplify_call_expr): Likewise. 16680 (gimplify_one_sizepos): Likewise. 16681 166822009-07-07 Eric Botcazou <ebotcazou@adacore.com> 16683 16684 PR debug/40666 16685 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing 16686 to variables for debugging purposes. 16687 166882009-06-23 Mark Loeser <mark@halcy0n.com> 16689 16690 PR build/40010 16691 * Makefile.in (gcc.pod): Depend on gcc-vers.texi. 16692 166932009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 16694 16695 * pretty-print.c (pp_base_format): Remove %J. 16696 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table, 16697 gcc_cxxdiag_char_table): Likewise. 16698 (init_dynamic_diag_info): Likewise. 16699 167002009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 16701 16702 * pretty-print.c (pp_base_format): Remove %H. 16703 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table, 16704 gcc_cxxdiag_char_table): Likewise. 16705 (init_dynamic_diag_info): Likewise. 16706 * config/mep/mep.c (mep_select_section): Likewise. 16707 167082009-07-07 Duncan Sands <baldrick@free.fr> 16709 16710 * final.c (pass_clean_state): Give the pass a name. 16711 * passes.c (pass_rest_of_compilation): Likewise. 16712 * tree-optimize.c (pass_all_optimizations): Likewise. 16713 167142009-07-07 H.J. Lu <hongjiu.lu@intel.com> 16715 16716 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove 16717 an extra 'decl' for error_at. 16718 167192009-07-07 Jakub Jelinek <jakub@redhat.com> 16720 16721 PR middle-end/40669 16722 * tree-tailcall.c (adjust_return_value_with_ops, 16723 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary 16724 if it has complex or vector type. 16725 167262009-07-07 Olivier Hainque <hainque@adacore.com> 16727 16728 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak 16729 pthread symbols. 16730 167312009-07-07 Basile Starynkevitch <basile@starynkevitch.net> 16732 16733 * Makefile.in: added more lists of includes to PLUGIN_HEADERS. 16734 167352009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 16736 16737 * cgraphunit.c: Replace %J by an explicit location. Update all calls. 16738 * c-decl.c: Likewise. 16739 * function.c: Likewise. 16740 * varasm.c: Likewise. 16741 * tree-ssa.c: Likewise. 16742 * c-common.c: Likewise. 16743 * tree-cfg.c: Likewise. 16744 * config/spu/spu.c: Likewise. 16745 * config/ia64/ia64.c: Likewise. 16746 * config/v850/v850.c: Likewise. 16747 167482009-07-06 DJ Delorie <dj@redhat.com> 16749 16750 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE. 16751 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make 16752 unspecified accesses to control registers. 16753 * config/mep/intrinsics.md: Regenerate. 16754 * config/mep/intrinsics.h: Regenerate. 16755 * config/mep/mep-intrin.h: Regenerate. 16756 167572009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 16758 16759 * c-lex.c: Replace %H by an explicit location. Update all calls. 16760 * c-common.c: Likewise. 16761 * c-decl.c: Likewise. 16762 * c-typeck.c: Likewise. 16763 * fold-const.c: Likewise. 16764 * gimplify.c: Likewise. 16765 * stmt.c: Likewise. 16766 * tree-cfg.c: Likewise. 16767 * tree-ssa-loop-niter.c: Likewise. 16768 * tree-vrp.c: Likewise. 16769 * value-prof.c: Likewise. 16770 167712009-07-06 Diego Novillo <dnovillo@google.com> 16772 16773 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR 16774 if it has one. Handle cases where VAR does not have an 16775 annotation or cfun is NULL. 16776 167772009-07-06 Diego Novillo <dnovillo@google.com> 16778 16779 * tree.c: Include debug.h. 16780 (initialize_tree_contains_struct): New. 16781 (init_ttree): Call it. 16782 (tree_node_structure_for_code): Factor out of ... 16783 (tree_node_structure): ... here. 16784 * treestruct.def (TS_PHI_NODE): Remove. 16785 (TS_GIMPLE_STATEMENT): Remove. 16786 167872009-07-06 Diego Novillo <dnovillo@google.com> 16788 16789 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0. 16790 (debug_tree_chain): Handle cycles. 16791 167922009-07-06 Nick Clifton <nickc@redhat.com> 16793 DJ Delorie <dj@redhat.com> 16794 16795 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if 16796 __FMOVD_ENABLED__ is defined. 16797 * config/sh/sh.h 16798 (TARGET_FMOVD): Provide a default definition. 16799 (MASK_FMOVD): Likewise. 16800 (TARGET_CPU_CPP_BUILTINS): Define 16801 __FMOVD_ENABLED__ if TARGET_FMOVD is true. 16802 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or 16803 two fmov instructions depending upon whether TARGET_FMOVD is enabled. 16804 (split for DF load from memory into register): Also handle 16805 MEMs which consist of REG+DISP addressing. 16806 (split for DF store from register to memory): Likewise. 16807 (movsf_ie): Always use single fp_mode. 16808 * config/sh/sh.c (sh_override_options): Do not automatically 16809 enable TARGET_MOVD for the SH2A when supporting doubles - leave 16810 that to the -mfmovd command line switch. 16811 (broken_move): Do not restrict fldi test to only the SH4 and SH4A. 16812 (fldi_ok): Always allow. 16813 * config/sh/sh.opt (mfmovd): Remove this switch. 16814 * doc/invoke.texi (-mfmovd): Remove documentation of this switch. 16815 168162009-07-06 J"orn Rennecke <joern.rennecke@arc.com> 16817 Kaz Kojima <kkojima@gcc.gnu.org> 16818 16819 PR rtl-optimization/30807 16820 * postreload.c (reload_combine): For every new use of REG_SUM, 16821 record the use of BASE. 16822 168232009-07-06 Jan Hubicka <jh@suse.cz> 16824 16825 * params.def: Revert my accidental commit at 2009-06-30. 16826 168272009-07-04 Ian Lance Taylor <iant@google.com> 16828 16829 PR target/40636 16830 * config/i386/msformat-c.c (mingw_format_attributes): Declare as 16831 EXPORTED_CONST. 16832 (mingw_format_attribute_overrides): Likewise. 16833 168342009-07-04 Jakub Jelinek <jakub@redhat.com> 16835 16836 PR debug/40596 16837 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried 16838 don't check cfa.reg. Instead of cfa.indirect use 16839 fde && fde->drap_reg != INVALID_REGNUM test. 16840 168412009-07-04 Eric Botcazou <ebotcazou@adacore.com> 16842 16843 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG. 16844 168452009-07-03 Vladimir Makarov <vmakarov@redhat.com> 16846 16847 PR target/40587 16848 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out. 16849 168502009-07-03 Richard Guenther <rguenther@suse.de> 16851 16852 PR tree-optimization/40640 16853 * tree-switch-conversion.c (build_arrays): Perform arithmetic 16854 in original type. 16855 168562009-07-03 Jan Hubicka <jh@suse.cz> 16857 16858 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing 16859 for size, reduce amount of inlining. 16860 168612009-07-03 Richard Guenther <rguenther@suse.de> 16862 16863 PR middle-end/34163 16864 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x 16865 if t +- x is known to not overflow and the conversion widens the 16866 operation. 16867 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency. 16868 168692009-07-03 Jan Hubicka <jh@suse.cz> 16870 16871 * ipa-pure-const.c (analyze): Update loop optimizer init. 16872 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop, 16873 try_remove_empty_loop, remove_empty_loops): Remove. 16874 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove. 16875 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info 16876 to mark regular loops as neccesary. 16877 (degenerate_phi_p): New function. 16878 (propagate_necessity, remove_dead_phis): Use it. 16879 (forward_edge_to_pdom): Likewise. 16880 (eliminate_unnecessary_stmts): Take care to remove uses of results of 16881 virtual PHI nodes that became unreachable. 16882 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer. 16883 * tree-flow.h (remove_empty_loops): Remove. 16884 * passes.c (init_optimization_passes): Remove. 16885 168862009-07-03 Uros Bizjak <ubizjak@gmail.com> 16887 16888 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use 16889 can_create_pseudo_p. 16890 (*fix_trunc<mode>_i387_1): Ditto. 16891 (*floathi<mode>2_1): Ditto. 16892 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto. 16893 (*fistdi2_1): Ditto. 16894 (*fist<mode>2_1): Ditto. 16895 (frndintxf2_floor): Ditto. 16896 (*fist<mode>2_floor_1): Ditto. 16897 (frndintxf2_ceil): Ditto. 16898 (*fist<mode>2_ceil_1): Ditto. 16899 (frndintxf2_trunc): Ditto. 16900 (frndintxf2_mask_pm): Ditto. 16901 (fxam<mode>2_i387_with_temp): Ditto. 16902 * config/i386/sse.md (mulv16qi3): Ditto. 16903 (*sse2_mulv4si3): Ditto. 16904 (mulv2di3): Ditto. 16905 (sse4_2_pcmpestr): Ditto. 16906 (sse4_2_pcmpistr): Ditto. 16907 169082009-07-03 Jan Hubicka <jh@suse.cz> 16909 16910 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap. 16911 (mark_stmt_necessary): Set it. 16912 (mark_operand_necessary): Set it. 16913 (mark_control_dependent_edges_necessary): Set it. 16914 (mark_virtual_phi_result_for_renaming): New function. 16915 (get_live_post_dom): New function. 16916 (forward_edge_to_pdom): New function. 16917 (remove_dead_stmt): Fix handling of control dependences. 16918 (tree_dce_init): Init new bitmap. 16919 (tree_dce_done): Free it. 16920 169212009-07-02 Richard Guenther <rguenther@suse.de> 16922 16923 PR bootstrap/40617 16924 * tree-ssa-structalias.c (new_var_info): Initialize 16925 is_restrict_var. 16926 169272009-07-02 Jan Hubicka <jh@suse.cz> 16928 16929 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is 16930 local. 16931 169322009-07-02 Paolo Bonzini <bonzini@gnu.org> 16933 16934 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode 16935 instead of recomputing it. Adjust calls. 16936 (emit_store_flag): Adjust recursive calls. 16937 169382009-07-02 Richard Guenther <rguenther@suse.de> 16939 16940 * tree-ssa-live.c (remove_unused_locals): Do not remove 16941 heap variables. 16942 * tree-ssa-structalias.c (handle_lhs_call): Delay setting 16943 of DECL_EXTERNAL for HEAP variables. 16944 (compute_points_to_sets): Set DECL_EXTERNAL for escaped 16945 HEAP variables. Do not adjust RESTRICT vars. 16946 (find_what_var_points_to): Nobody cares if something 16947 points to READONLY. 16948 169492009-07-02 Ben Elliston <bje@au.ibm.com> 16950 16951 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move 16952 pc_low and pc_high declarations to the top of the function. 16953 169542009-07-01 DJ Delorie <dj@redhat.com> 16955 16956 * config/mep/mep.c (mep_handle_option): Leave IVC2 control 16957 registers as fixed. 16958 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers. 16959 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make 16960 unspecified accesses to control registers. 16961 * config/mep/intrinsics.md: Regenerate. 16962 * config/mep/intrinsics.h: Regenerate. 16963 * config/mep/mep-intrin.h: Regenerate. 16964 169652009-07-01 Anthony Green <green@moxielogic.com> 16966 16967 * config/moxie/moxie.c (moxie_expand_prologue): Use dec 16968 instruction when possible. 16969 (moxie_expand_prologue): Ditto. Also, save an instruction and 16970 some complexity by popping off of $r12 instead of $sp. 16971 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two 16972 operands. 16973 169742009-07-01 Richard Henderson <rth@redhat.com> 16975 16976 PR bootstrap/40347 16977 * function.c (reposition_prologue_and_epilogue_notes): If epilogue 16978 contained no insns, reposition note before last insn. 16979 169802009-07-01 Richard Henderson <rth@redhat.com> 16981 16982 PR debug/40431 16983 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for 16984 DW_CFA_def_cfa_offset and DW_CFA_def_cfa. 16985 169862009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com> 16987 16988 PR bootstrap/40558 16989 * config/rs6000/rs6000.c (print_operand): Undo change that breaks 16990 darwin9 for printing reg addresses with %y. 16991 169922009-07-01 Adam Nemet <anemet@caviumnetworks.com> 16993 16994 * combine.c (force_to_mode): Handle TRUNCATE. Factor out 16995 truncation from operands in binary operations. 16996 169972009-07-01 Adam Nemet <anemet@caviumnetworks.com> 16998 16999 Revert: 17000 2009-01-11 Adam Nemet <anemet@caviumnetworks.com> 17001 * expmed.c (store_bit_field_1): Properly truncate the paradoxical 17002 subreg of op0 to the original op0. 17003 17004 * expmed.c (store_bit_field_1): Use a temporary as the destination 17005 instead of a paradoxical subreg when we need to truncate the result. 17006 170072009-07-01 DJ Delorie <dj@redhat.com> 17008 17009 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic 17010 names to VLIW variants. 17011 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants. 17012 * config/mep/intrinsics.md: Regenerate. 17013 * config/mep/intrinsics.h: Regenerate. 17014 * config/mep/mep-intrin.h: Regenerate. 17015 170162009-07-01 Jakub Jelinek <jakub@redhat.com> 17017 17018 PR debug/40462 17019 * jump.c (returnjump_p): Revert last patch. 17020 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs. 17021 170222009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 17023 17024 PR target/40575 17025 * pa.md (casesi32p): Use jump table label to determine the offset 17026 of the jump table. 17027 (casesi64p): Likewise. 17028 17029 * pa.c (forward_branch_p): Return bool type. Use instruction 17030 addresses when available. Assert that INSN has a jump label. 17031 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't 17032 have a jump label. 17033 170342009-07-01 Richard Guenther <rguenther@suse.de> 17035 17036 PR tree-optimization/19831 17037 * tree-ssa-dce.c (propagate_necessity): Calls to functions 17038 that only act as barriers do not make any previous stores necessary. 17039 * tree-ssa-structalias.c (handle_lhs_call): Delay making 17040 HEAP variables global, do not add a constraint from nonlocal. 17041 (find_func_aliases): Handle escapes through return statements. 17042 (compute_points_to_sets): Make escaped HEAP variables global. 17043 170442009-07-01 Paolo Bonzini <bonzini@gnu.org> 17045 17046 PR bootstrap/40597 17047 * expmed.c (emit_store_flag): Perform a conversion if necessary, 17048 after reducing a DImode cstore to SImode. 17049 170502009-07-01 Paolo Bonzini <bonzini@gnu.org> 17051 17052 * expr.c (expand_expr_real_1): Reinstate fallthrough to 17053 TRUTH_ANDIF_EXPR if do_store_flag returns NULL. 17054 170552009-07-01 Maciej W. Rozycki <macro@linux-mips.org> 17056 17057 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1. 17058 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the 17059 to 0. 17060 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab 17061 and umod_optab if TARGET_BSD_DIVMOD. 17062 * config/vax/lib1funcs.asm: New file. 17063 * config/vax/t-linux: New file. 17064 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux. 17065 170662009-06-30 Jakub Jelinek <jakub@redhat.com> 17067 17068 PR c++/40566 17069 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert 17070 to type arguments that have void type. 17071 17072 PR debug/40573 17073 * dwarf2out.c (gen_formal_parameter_die): Call 17074 equate_decl_number_to_die if node is different from origin. 17075 170762009-06-30 Anthony Green <green@moxielogic.com> 17077 17078 Clean up moxie port for --enable-build-with-cxx. 17079 * config/moxie/moxie.c (moxie_function_value): First two 17080 parameters are const_tree, not tree. 17081 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS. 17082 (REG_CLASS_NAMES): Ditto. 17083 (REGNO_REG_CLASS): Ditto. 17084 * config/moxie/moxie-protos.h (moxie_override_options): Declare. 17085 (moxie_function_value): Fix constyness of arguments. 17086 170872009-06-30 Eric Botcazou <ebotcazou@adacore.com> 17088 17089 * cgraphunit.c (cgraph_finalize_compilation_unit): Call 17090 finalize_size_functions before further processing. 17091 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h. 17092 (variable_size): Call self_referential_size on size expressions 17093 that contain a PLACEHOLDER_EXPR. 17094 (size_functions): New static variable. 17095 (copy_self_referential_tree_r): New static function. 17096 (self_referential_size): Likewise. 17097 (finalize_size_functions): New global function. 17098 * tree.c: Include tree-inline.h. 17099 (push_without_duplicates): New static function. 17100 (find_placeholder_in_expr): New global function. 17101 (substitute_in_expr) <tcc_declaration>: Return the replacement object 17102 on equality. 17103 <tcc_expression>: Likewise. 17104 <tcc_vl_exp>: If the replacement object is a constant, try to inline 17105 the call in the expression. 17106 * tree.h (finalize_size_functions): Declare. 17107 (find_placeholder_in_expr): Likewise. 17108 (FIND_PLACEHOLDER_IN_EXPR): New macro. 17109 (substitute_placeholder_in_expr): Update comment. 17110 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare 17111 is true. 17112 (copy_tree_body_r): Likewise. 17113 (copy_tree_body): New static function. 17114 (maybe_inline_call_in_expr): New global function. 17115 * tree-inline.h (struct copy_body_data): Add do_not_unshare field. 17116 (maybe_inline_call_in_expr): Declare. 17117 * Makefile.in (tree.o): Depend on TREE_INLINE_H. 17118 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and 17119 GIMPLE_H. 17120 171212009-06-30 Richard Guenther <rguenther@suse.de> 17122 17123 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always 17124 continue walking. 17125 (propagate_necessity): Do not mark reaching defs of stores 17126 as necessary. 17127 171282009-06-30 Jan Hubicka <jh@suse.cz> 17129 17130 * cfgloopanal.c (check_irred): Move into ... 17131 (mark_irreducible_loops): ... here; return true if ireducible 17132 loops was found. 17133 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h 17134 (analyze_function): Try to prove loop finiteness. 17135 * cfgloop.h (mark_irreducible_loops): Update prototype. 17136 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP. 17137 171382009-06-30 Basile Starynkevitch <basile@starynkevitch.net> 17139 17140 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print. 17141 171422009-06-30 Ira Rosen <irar@il.ibm.com> 17143 17144 PR tree-optimization/40542 17145 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 17146 types. 17147 171482009-06-30 Martin Jambor <mjambor@suse.cz> 17149 17150 PR tree-optimization/40582 17151 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather 17152 than useless_type_conversion_p. 17153 (generate_subtree_copies): Increment sra_stats.subtree_copies at a 17154 proper place. 17155 171562009-06-30 Martin Jambor <mjambor@suse.cz> 17157 17158 PR middle-end/40554 17159 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset. 17160 171612009-06-30 Richard Guenther <rguenther@suse.de> 17162 17163 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to 17164 use ao_ref references. 17165 (walk_aliased_vdefs): Likewise. 17166 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype. 17167 * tree-ssa-dce.c (struct ref_data): Remove. 17168 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument. 17169 (mark_aliased_reaching_defs_necessary): Adjust. 17170 (mark_all_reaching_defs_necessary_1): Likewise. 17171 171722009-06-30 Paolo Bonzini <bonzini@gnu.org> 17173 17174 PR boostrap/40597 17175 * expmed.c (emit_cstore): New name of emit_store_flag_1. 17176 (emit_store_flag_1): Extract from emit_store_flag, adjust 17177 calls to (what now is) emit_cstore. 17178 (emit_store_flag): Call emit_store_flag_1 and also use it 17179 for what used to be recursive calls. 17180 171812009-06-30 Wei Guozhi <carrot@google.com> 17182 17183 PR/40416 17184 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression 17185 if the target bb post dominates from bb. 17186 * config/i386/i386.c (memory_address_length): Check existence of base 17187 register before using it. 17188 171892009-06-30 Nick Clifton <nickc@redhat.com> 17190 DJ Delorie <dj@redhat.com> 17191 17192 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if 17193 __FMOVD_ENABLED__ is defined. 17194 * config/sh/sh.h 17195 (TARGET_FMOVD): Provide a default definition. 17196 (MASK_FMOVD): Likewise. 17197 (TARGET_CPU_CPP_BUILTINS): Define 17198 __FMOVD_ENABLED__ if TARGET_FMOVD is true. 17199 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or 17200 two fmov instructions depending upon whether TARGET_FMOVD is 17201 enabled. 17202 (split for DF load from memory into register): Also handle 17203 MEMs which consist of REG+DISP addressing. 17204 (split for DF store from register to memory): Likewise. 17205 * config/sh/sh.opt (mfmovd): Remove this switch. 17206 * doc/invoke.texi (-mfmovd): Remove documentation of this switch. 17207 * config/sh/sh.c (sh_override_options): Do not automatically 17208 enable TARGET_MOVD for the SH2A when supporting doubles - leave 17209 that to the -mfmovd command line switch. 17210 17211 * config/sh/sh.c (broken_move): Do not restrict fldi test to only 17212 the SH4 and SH4A. 17213 (fldi_ok): Always allow. 17214 * config/sh/sh.md (movsf_ie): Always use single fp_mode. 17215 172162009-06-29 DJ Delorie <dj@redhat.com> 17217 17218 * doc/install.texi (mep-x-elf): Correct chip's full name. 17219 172202009-06-29 H.J. Lu <hongjiu.lu@intel.com> 17221 17222 * doc/extend.texi: Fix typo. 17223 172242009-06-29 Tom Tromey <tromey@redhat.com> 17225 17226 * dwarf2.h: Remove. 17227 * Makefile.in (DWARF2_H): New variable. 17228 (except.o): Use it. 17229 (dwarf2out.o): Likewise. 17230 (dwarf2asm.o): Likewise. 17231 * config/i386/t-i386: Use DWARF2_H. 17232 * except.c: Include elf/dwarf2.h. 17233 * unwind-dw2.c: Include elf/dwarf2.h. 17234 * dwarf2out.c: Include elf/dwarf2.h. 17235 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield. 17236 <dtprel>: New field. 17237 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr. 17238 (size_of_loc_descr): Likewise. 17239 (output_loc_operands_raw): Likewise. 17240 (output_loc_operands): Handle new dtprel field. 17241 (loc_checksum): Update. 17242 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field. 17243 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h. 17244 * unwind-dw2-fde.c: Include elf/dwarf2.h. 17245 * dwarf2asm.c: Include elf/dwarf2.h. 17246 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h. 17247 * config/mmix/mmix.c: Include elf/dwarf2.h. 17248 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h. 17249 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h. 17250 * config/sh/sh.c: Include elf/dwarf2.h. 17251 * config/i386/i386.c: Include elf/dwarf2.h. 17252 172532009-06-29 DJ Delorie <dj@redhat.com> 17254 17255 * config/mep/mep.h (CPP_SPEC): Remove __cop macro. 17256 17257 * doc/extend.texi: Add MeP attributes and pragmas. 17258 * doc/invoke.text: Add MeP Options. 17259 * doc/contrib.texi: Add MeP contribution. 17260 * doc/md.texi: Add MeP constraints. 17261 * doc/install.texi: Add MeP target. 17262 172632009-06-30 Anatoly Sokolov <aesok@post.ru> 17264 17265 * target.h (struct gcc_target): Add frame_pointer_required field. 17266 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New. 17267 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED. 17268 * ira.c (setup_eliminable_regset): Use frame_pointer_required target 17269 hook. 17270 * reload1.c (update_eliminables): (Ditto.). 17271 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison. 17272 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation. 17273 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.). 17274 17275 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro. 17276 17277 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro. 17278 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define. 17279 (arm_frame_pointer_required): New function. 17280 17281 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro. 17282 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17283 (avr_frame_pointer_required_p): Declare as static. 17284 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove. 17285 17286 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro. 17287 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define. 17288 (bfin_frame_pointer_required): Make as static, change return type 17289 to bool. 17290 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove. 17291 17292 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro. 17293 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17294 (cris_frame_pointer_required): New function. 17295 17296 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro. 17297 17298 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro. 17299 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17300 (fr30_frame_pointer_required): New function. 17301 17302 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro. 17303 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define. 17304 (frv_frame_pointer_required): Make as static, change return type 17305 to bool. 17306 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove. 17307 17308 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro. 17309 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17310 (ix86_frame_pointer_required): Make as static, change return type to 17311 bool. 17312 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove. 17313 17314 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro. 17315 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17316 17317 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro. 17318 17319 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro. 17320 17321 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro. 17322 17323 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro. 17324 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17325 (mips_frame_pointer_required): Make as static. 17326 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove. 17327 17328 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro. 17329 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17330 (mmix_frame_pointer_required): Mew function. 17331 17332 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro. 17333 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17334 17335 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro. 17336 17337 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro. 17338 17339 * config/sh/sh.h (CAN_ELIMINATE): Remove macro. 17340 17341 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro. 17342 (CAN_ELIMINATE): Redefine. 17343 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17344 (sparc_frame_pointer_required): New function. 17345 (sparc_can_eliminate): New function. 17346 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare. 17347 17348 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro. 17349 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define. 17350 17351 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro. 17352 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define. 17353 (xtensa_frame_pointer_required): Make as static, change return type 17354 to bool. 17355 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required): 17356 Remove. 17357 173582009-06-29 Olatunji Ruwase <tjruwase@google.com> 17359 17360 * doc/plugins.texi: Document PLUGIN_START_UNIT. 17361 * toplev.c (compile_file): Call PLUGIN_START_UNIT. 17362 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event. 17363 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT. 17364 (register_callback): Handle PLUGIN_START_UNIT. 17365 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT. 17366 173672009-06-29 Eric Botcazou <ebotcazou@adacore.com> 17368 17369 * tree.c (process_call_operands): Propagate TREE_READONLY from the 17370 operands. 17371 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P. 17372 (build3_stat): Propagate TREE_READONLY for COND_EXPR. 17373 173742009-06-29 Daniel Jacobowitz <dan@codesourcery.com> 17375 17376 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register 17377 move cost. 17378 173792009-06-29 Uros Bizjak <ubizjak@gmail.com> 17380 17381 * doc/extend.texi (Additional Floating Types): __float128 is also 17382 supported on i386 targets. 17383 173842009-06-29 Richard Guenther <rguenther@suse.de> 17385 17386 PR middle-end/14187 17387 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict 17388 flag. 17389 (pt_solutions_same_restrict_base): Declare. 17390 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var 17391 flag. 17392 (new_var_info): Initialize is_global_var properly for SSA_NAMEs. 17393 (make_constraint_from, make_copy_constraint): Move earlier. 17394 (make_constraint_from_heapvar): New function. 17395 (make_constraint_from_restrict): Likewise. 17396 (handle_lhs_call): Use it. 17397 (find_func_aliases): Use it to track conversions to restrict 17398 qualified pointers. 17399 (struct fieldoff): Add only_restrict_pointers flag. 17400 (push_fields_onto_fieldstack): Initialize it. 17401 (create_variable_info_for): Track global restrict qualified pointers. 17402 (intra_create_variable_infos): Use make_constraint_from_heapvar. 17403 Track restrict qualified pointer arguments. 17404 (set_uids_in_ptset): Use varinfo is_global_var flag. 17405 (find_what_var_points_to): Set the vars_contains_restrict flag. 17406 Always create the points-to solution for sets including restrict tags. 17407 (pt_solutions_same_restrict_base): New function. 17408 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict 17409 qualified pointers use pt_solutions_same_restrict_base as 17410 additional source for disambiguation. 17411 174122009-06-29 Richard Guenther <rguenther@suse.de> 17413 17414 PR middle-end/38212 17415 * alias.c (find_base_decl): Remove. 17416 (get_deref_alias_set_1): Remove restrict handling. 17417 * c-common.c (c_apply_type_quals_to_decl): Do not set 17418 DECL_POINTER_ALIAS_SET. 17419 * gimplify.c (find_single_pointer_decl_1): Remove. 17420 (find_single_pointer_decl): Likewise. 17421 (internal_get_tmp_var): Remove restrict handling. 17422 (gimple_regimplify_operands): Likewise. 17423 * omp-low.c (expand_omp_atomic_pipeline): Do not set 17424 DECL_POINTER_ALIAS_SET. Use ref-all pointers. 17425 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET. 17426 * tree.c (restrict_base_for_decl): Remove. 17427 (init_ttree): Do not allocate it. 17428 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set 17429 LABEL_DECL_UID for label decls. 17430 (copy_node_stat): Do not copy restrict information. 17431 (decl_restrict_base_lookup): Remove. 17432 (decl_restrict_base_insert): Likewise. 17433 (print_restrict_base_statistics): Likewise. 17434 (dump_tree_statistics): Do not call print_restrict_base_statistics. 17435 * tree.h (DECL_POINTER_ALIAS_SET): Remove. 17436 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise. 17437 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid. 17438 (LABEL_DECL_UID): Adjust. 17439 (DECL_BASED_ON_RESTRICT_P): Remove. 17440 (DECL_GET_RESTRICT_BASE): Likewise. 17441 (SET_DECL_RESTRICT_BASE): Likewise. 17442 (struct tree_decl_with_vis): Remove based_on_restrict_p flag. 17443 17444 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers 17445 instead of DECL_POINTER_ALIAS_SET. 17446 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise. 17447 * config/s390/s390.c (s390_gimplify_va_arg): Likewise. 17448 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise. 17449 174502009-06-29 Richard Guenther <rguenther@suse.de> 17451 17452 PR tree-optimization/40579 17453 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if 17454 the IL to simplify has constants that overflowed. 17455 174562009-06-28 Uros Bizjak <ubizjak@gmail.com> 17457 17458 PR tree-optimization/40550 17459 * tree-vect-generic.c (expand_vector_operations_1): Compute in 17460 vector_compute_type only when the size of vector_compute_type is 17461 less than the size of type. 17462 174632009-06-28 Eric Botcazou <ebotcazou@adacore.com> 17464 17465 * fold-const.c (contains_label_1): Fix comments. 17466 (contains_label_p): Do not walk trees multiple time. 17467 174682009-06-28 Paolo Bonzini <bonzini@gnu.org> 17469 17470 * config/i386/i386.h (enum ix86_fpcmp_strategy): New. 17471 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4, 17472 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to 17473 ix86_fp_comparison_operator. 17474 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed, 17475 *fp_jcc_2_sse, *fp_jcc_2_387): Delete 17476 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387, 17477 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to 17478 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call 17479 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator. 17480 (related splits): Change predicate to ix86_fp_comparison_operator. 17481 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator 17482 instead of ix86_fp_comparison_codes. 17483 (ix86_trivial_fp_comparison_operator, 17484 ix86_fp_comparison_operator): New. 17485 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New. 17486 (ix86_expand_compare): Eliminate last two parameters. 17487 (ix86_fp_jump_nontrivial_p): Kill. 17488 * config/i386/i386.c (put_condition_code): Eliminate call to 17489 ix86_fp_comparison_codes and subsequent assertion. 17490 (ix86_fp_comparison_codes): Eliminate. 17491 (ix86_fp_swap_condition): New. 17492 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost, 17493 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate 17494 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy. 17495 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy 17496 and ix86_fp_swap_condition. 17497 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump. 17498 Use ix86_fp_comparison_strategy. 17499 (ix86_expand_compare): Likewise. Eliminate last two arguments. 17500 (ix86_fp_jump_nontrivial_p): Eliminate. 17501 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust 17502 call to ix86_expand_compare. 17503 (ix86_split_fp_branch, ix86_expand_setcc, 17504 ix86_expand_carry_flag_compare, ix86_expand_int_movcc, 17505 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump. 17506 175072009-06-28 Paolo Bonzini <bonzini@gnu.org> 17508 17509 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code 17510 related to jump_clobbers. 17511 * config/arm/arm.md (conds): Remove jump_clob case. 17512 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two 17513 splits): Change comparison_operator to arm_comparison_operator. 17514 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed): 17515 Eliminate. 17516 175172009-06-28 Paolo Bonzini <bonzini@gnu.org> 17518 17519 * dojump.c (do_compare_rtx_and_jump): Try swapping the 17520 condition for floating point modes. 17521 * expmed.c (emit_store_flag_1): Move here a bigger part 17522 of emit_store_flag. 17523 (emit_store_flag): Try swapping the condition for floating point 17524 modes. 17525 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better. 17526 175272009-06-28 Paolo Bonzini <bonzini@gnu.org> 17528 17529 * expr.c (expand_expr_real_1): Just use do_store_flag. 17530 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use 17531 emit_store_flag_force. 17532 * expmed.c (emit_store_flag_force): Copy here trick 17533 previously in expand_expr_real_1. Try reversing the comparison. 17534 (emit_store_flag_1): Work if target is NULL. 17535 (emit_store_flag): Work if target is NULL, using the result mode 17536 from the comparison. Use split_comparison, restructure final part 17537 to simplify conditionals. 17538 175392009-06-28 Paolo Bonzini <bonzini@gnu.org> 17540 17541 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump. 17542 * dojump.c (do_jump): Change handling of floating-point 17543 ops to use just do_compare_and_jump. 17544 (split_comparison): New. 17545 (do_compare_rtx_and_jump): Add here logic coming previously 17546 in do_jump, using split_comparison. 17547 175482009-06-27 H.J. Lu <hongjiu.lu@intel.com> 17549 17550 PR target/40489 17551 * config/ia64/ia64.c (ia64_reorg): Check NULL insn. 17552 175532009-06-27 Paolo Bonzini <bonzini@gnu.org> 17554 17555 * tree-ssa-alias.c: Fix unintentional commit. 17556 175572009-06-27 Paolo Bonzini <bonzini@gnu.org> 17558 17559 * passes.c (execute_one_pass): Fix unintentional commit. 17560 175612009-06-27 Paolo Bonzini <bonzini@gnu.org> 17562 17563 * df-problems.c (df_set_seen, df_unset_seen): Delete. 17564 (df_rd_local_compute, df_md_local_compute): Inline them. 17565 17566 (df_md_scratch): New. 17567 (df_md_alloc, df_md_free): Allocate/free it. 17568 (df_md_local_compute): Only include live registers in init. 17569 (df_md_transfer_function): Prune the in-set computed by 17570 the confluence function, and the gen-set too. 17571 175722009-06-27 Paolo Bonzini <bonzini@gnu.org> 17573 17574 PR rtl-optimization/26854 17575 * timevar.def: Remove TV_DF_RU, add TV_DF_MD. 17576 * df-problems.c (df_rd_add_problem): Fix comment. 17577 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc, 17578 df_md_simulate_artificial_defs_at_top, 17579 df_md_simulate_one_insn, df_md_bb_local_compute_process_def, 17580 df_md_bb_local_compute, df_md_local_compute, df_md_reset, 17581 df_md_transfer_function, df_md_init, df_md_confluence_0, 17582 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump, 17583 problem_MD, df_md_add_problem): New. 17584 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md, 17585 df_md_get_bb_info): New. 17586 (DF_LAST_PROBLEM_PLUS1): Adjust. 17587 17588 * Makefile.in (fwprop.o): Include domwalk.h. 17589 * fwprop.c: Include domwalk.h. 17590 (reg_defs, reg_defs_stack): New. 17591 (bitmap_only_bit_between): Remove. 17592 (process_defs): New. 17593 (process_uses): Use reg_defs and local_md instead of 17594 bitmap_only_bit_between and local_rd. 17595 (single_def_use_enter_block): New, from build_single_def_use_links. 17596 (single_def_use_leave_block): New. 17597 (build_single_def_use_links): Remove code moved to 17598 single_def_use_enter_block, invoke domwalk. 17599 (use_killed_between): Adjust comment. 17600 176012009-06-27 Paolo Bonzini <bonzini@gnu.org> 17602 17603 * bitmap.h (bitmap_ior_and_into): New. 17604 * bitmap.c (bitmap_ior_and_into): New. 17605 176062009-06-27 Paolo Bonzini <bonzini@gnu.org> 17607 17608 * domwalk.h (struct dom_walk_data): Remove all callbacks except 17609 before_dom_children_before_stmts and after_dom_children_after_stmts. 17610 Rename the two remaining callbacks to just before_dom_children and 17611 after_dom_children. Remove other GIMPLE statement walking bits. 17612 * domwalk.c (walk_dominator_tree): Remove now unsupported features. 17613 * graphite.c: Do not include domwalk.h. 17614 * tree-into-ssa.c (interesting_blocks): New global. 17615 (struct mark_def_sites_global_data): Remove it and names_to_rename. 17616 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments, 17617 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify 17618 now that they're not domwalk callbacks. 17619 (rewrite_initialize_block): Rename to... 17620 (rewrite_enter_block): ... this, place after called functions. Test 17621 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments. 17622 (rewrite_finalize_block): Rename to... 17623 (rewrite_leave_block): ... this, place after called functions. 17624 (rewrite_update_init_block): Rename to... 17625 (rewrite_update_enter_block): ... this, place after called functions. 17626 Test interesting_blocks, call rewrite_update_stmt and 17627 rewrite_update_phi_arguments. 17628 (rewrite_update_fini_block): Rename to... 17629 (rewrite_leave_block): ... this, place after called functions. 17630 (rewrite_blocks): Remove last argument, simplify initialization of 17631 walk_data. 17632 (mark_def_sites_initialize_block): Rename to... 17633 (mark_def_sites_block): ... this, call mark_def_sites. 17634 (mark_def_sites_blocks): Remove argument, simplify initialization of 17635 walk_data. 17636 (rewrite_into_ssa): Adjust for interesting_blocks_being a global. 17637 (update_ssa): Likewise. 17638 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk 17639 callback. 17640 (tree_ssa_dominator_optimize): Simplify initialization of walk_data. 17641 (dom_opt_initialize_block): Rename to... 17642 (dom_opt_enter_block): ... this, place after called functions. Walk 17643 statements here, inline propagate_to_outgoing_edges. 17644 (dom_opt_finalize_block): Rename to... 17645 (dom_opt_leave_block): ... this, place after called functions. 17646 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a 17647 domwalk callback. 17648 (dse_enter_block, dse_record_phi): New. 17649 (dse_record_phis): Delete. 17650 (dse_finalize_block): Rename to... 17651 (dse_leave_block): ... this. 17652 (tree_ssa_dse): Simplify initialization of walk_data. 17653 * tree-ssa-loop-im.c (determine_invariantness, move_computations): 17654 Adjust initialization of walk_data. 17655 * tree-ssa-loop-unswitch.c: Do not include domwalk.h. 17656 * tree-ssa-loop-phiopt.c (get_non_trapping): 17657 Adjust initialization of walk_data. 17658 * tree-ssa-loop-threadedge.c: Do not include domwalk.h. 17659 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that 17660 it's not a domwalk callback. 17661 (uncprop_initialize_block): Rename to... 17662 (dse_enter_block): ... this, call uncprop_into_successor_phis. 17663 (dse_finalize_block): Rename to... 17664 (dse_leave_block): ... this. 17665 (tree_ssa_uncprop): Simplify initialization of walk_data. 17666 * Makefile.in: Adjust dependencies. 17667 176682009-06-27 Richard Earnshaw <rearnsha@arm.com> 17669 17670 * arm.md (casesi): Fix test for Thumb1. 17671 (thumb1_casesi_internal_pic): Likewise. 17672 (thumb1_casesi_dispatch): Likewise. 17673 176742009-06-26 Daniel Gutson <dgutson@codesourcery.com> 17675 17676 * config/arm/arm-cores.def: Added core cortex-m0. 17677 * config/arm/arm-tune.md: Regenerated. 17678 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0. 17679 176802009-06-26 DJ Delorie <dj@redhat.com> 17681 17682 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything. 17683 17684 * config/mep/mep.c (mep_bundle_insns): Account for the fact that 17685 the scheduler doesn't tag jump insns. 17686 176872009-06-26 H.J. Lu <hongjiu.lu@intel.com> 17688 17689 * c-decl.c (merge_decls): Re-indent. 17690 176912009-06-26 Janis Johnson <janis187@us.ibm.com> 17692 17693 PR c/39902 17694 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep): 17695 Special-case decimal float constants. 17696 176972009-06-26 Richard Henderson <rth@redhat.com> 17698 17699 * function.h (struct function): Add cannot_be_copied_reason, 17700 and cannot_be_copied_set. 17701 * tree-inline.c (has_label_address_in_static_1): Rename from 17702 inline_forbidden_p_2; don't set inline_forbidden_reason here. 17703 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise 17704 don't set inline_forbidden_reason. 17705 (copy_forbidden): New function, split out of inline_forbidden_p. 17706 (inline_forbidden_p_stmt): Don't check for nonlocal labels here. 17707 (inline_forbidden_p): Use copy_forbidden. 17708 (tree_versionable_function_p): Likewise. 17709 (inlinable_function_p): Merge into tree_inlinable_function_p. 17710 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area. 17711 * ipa-cp.c (ipcp_versionable_function_p): New function. 17712 (ipcp_cloning_candidate_p): Use it. 17713 (ipcp_node_modifiable_p): Likewise. 17714 177152009-06-26 Olatunji Ruwase <tjruwase@google.com> 17716 17717 * builtins.c (expand_builtin_alloca): Handle builtin alloca 17718 that is marked not to be inlined. Remove flag_mudflap use. 17719 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements. 17720 (mf_xform_statements): Mark builtin alloca calls as un-inlineable. 17721 177222009-06-26 Steve Ellcey <sje@cup.hp.com> 17723 17724 PR bootstrap/40338 17725 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed. 17726 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto. 17727 177282009-06-26 Kai Tietz <kai.tietz@onevision.com> 17729 17730 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none 17731 shared libgcc. 17732 (__mingwthr_remove_key_dtor): Likewise. 17733 177342009-06-26 Richard Guenther <rguenther@suse.de> 17735 17736 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling. 17737 177382009-06-26 Steven Bosscher <steven@gcc.gnu.org> 17739 17740 PR middle-end/40525 17741 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails, 17742 try the non-cond_exec path also. 17743 177442009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 17745 17746 PR target/40468 17747 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions. 17748 (output_cbranch): Use new functions. 17749 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb): 17750 Likewise. 17751 177522009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com> 17753 Pat Haugen <pthaugen@us.ibm.com> 17754 Revital Eres <ERES@il.ibm.com> 17755 17756 * config/rs6000/rs6000.c (print_operand): Correct lossage message 17757 for %c error. Add %x support to print VSX registers as a unified 17758 register set, instead of separate float and altivec registers. 17759 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for 17760 %y case, and add support for VSX pre-modify addresses. 17761 (output_toc): Add assert for CONST containing an integer constant 17762 in the PLUS case. 17763 (rs6000_adjust_cost): Add POWER7 support. 17764 (insn_must_be_first_in_group): Ditto. 17765 (insn_must_be_last_in_group): Ditto. 17766 (rs6000_emit_popcount): Ditto. 17767 (rs6000_vector_mode_supported_p): Ditto. 17768 17769 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class): 17770 Change some of the functions called by macros to being called 17771 through a pointer, so debug functions can be inserted if 17772 -mdebug=addr or -mdebug=cost. 17773 (rs6000_preferred_reload_class_ptr): Ditto. 17774 (rs6000_secondary_reload_class_ptr): Ditto. 17775 (rs6000_secondary_memory_needed_ptr): Ditto. 17776 (rs6000_cannot_change_mode_class_ptr): Ditto. 17777 (rs6000_secondary_reload_inner): Ditto. 17778 (rs6000_legitimize_reload_address): Ditto. 17779 (rs6000_legitimize_reload_address_ptr): Ditto. 17780 (rs6000_mode_dependent_address): Ditto. 17781 (rs6000_mode_dependent_address_ptr): Ditto. 17782 17783 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New 17784 function to return true if the mode allows reg + integer 17785 addresses. 17786 (virtual_stack_registers_memory_p): New function to return true if 17787 the address refers to a virtual stack register. 17788 (rs6000_legitimate_offset_address_p): Move code to say whether a 17789 mode supports reg+int addressing to reg_offset_addressing_ok_p and 17790 call it. 17791 (rs6000_legitimate_address_p): Add checks for modes that only can 17792 do reg+reg addressing. Start adding VSX support. 17793 (rs6000_legitimize_reload_address): Ditto. 17794 (rs6000_legitimize_address): Ditto. 17795 (rs6000_debug_legitimate_address_p): New debug functions for 17796 -mdebug=addr and -mdebug=cost. 17797 (rs6000_debug_rtx_costs): Ditto. 17798 (rs6000_debug_address_costs): Ditto. 17799 (rs6000_debug_adjust_cost): Ditto. 17800 (rs6000_debug_legitimize_address): Ditto. 17801 (rs6000_legitimize_reload_address_ptr): Point to call normal 17802 function or debug function. Make functions called via pointer 17803 static. 17804 (rs6000_mode_dependent_address_ptr): Ditto. 17805 (rs6000_secondary_reload_class_ptr): Ditto. 17806 (rs6000_hard_regno_mode_ok): Add preliminary VSX support. 17807 (rs6000_emit_move): Add -mdebug=addr support. Change an abort 17808 into a friendlier error. 17809 (rs6000_init_builtins): Add initial VSX support. 17810 (rs6000_adjust_cost): Fix some spacing issues. 17811 17812 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS. 17813 (REG_CLASS_NAMES): Ditto. 17814 (REG_CLASS_CONTENTS): Ditto. 17815 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a 17816 pointer, to add -mdebug=addr support. 17817 (CANNOT_CHANGE_MODE_CLASS): Ditto. 17818 (SECONDARY_RELOAD_CLASS): Call through a pointer to add 17819 -mdebug=addr support. 17820 (LEGITIMIZE_RELOAD_ADDRESS): Ditto. 17821 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto. 17822 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI. 17823 17824 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping 17825 16-bit values. 17826 (bswapsi*): Set attribute types for load/store. Add combiner 17827 patterns to eliminate zero extend on 64-bit. 17828 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and 17829 stdbrx if the hardware supports those instructions. 17830 178312009-06-25 Ian Lance Taylor <iant@google.com> 17832 17833 * doc/invoke.texi (Option Summary): Mention -static-libstdc++. 17834 (Link Options): Document -static-libstdc++. 17835 178362009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com> 17837 17838 PR target/38731 17839 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use 17840 DATA_ALIGNMENT instead. 17841 178422009-06-25 Richard Guenther <rguenther@suse.de> 17843 17844 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate 17845 indirect references against the callused/escaped solutions. 17846 (call_may_clobber_ref_p_1): Likewise. 17847 178482009-06-25 Martin Jambor <mjambor@suse.cz> 17849 17850 PR tree-optimization/40493 17851 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers. 17852 (enum unscalarized_data_handling): New type. 17853 (handle_unscalarized_data_in_subtree): Return what has been done. 17854 (load_assign_lhs_subreplacements): Handle left flushes differently. 17855 (sra_modify_assign): Use unscalarized_data_handling, simplified 17856 condition determining whether to remove the statement. 17857 178582009-06-25 Basile Starynkevitch <basile@starynkevitch.net> 17859 17860 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile 17861 excerpt - @ should be doubled for texinfo. 17862 178632009-06-24 Ian Lance Taylor <iant@google.com> 17864 17865 * config/arc/arc.c: Include "df.h". 17866 (arc_attribute_table): Make static. Move higher in file. 17867 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx. 17868 (output_shift): Initialize n later to avoid warning. 17869 * config/arm/arm.c (arm_attribute_table): Make static. Move 17870 higher in file. 17871 * config/avr/avr.c (avr_attribute_table): Make static. Move 17872 higher in file. 17873 (reg_class_tab): Change array type from int to enum reg_class. 17874 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for 17875 LABEL_REF. 17876 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and". 17877 (lshrhi3_out): Likewise. 17878 (class_likely_spilled_p): Change return type to bool. 17879 (avr_rtx_costs): Use local code variable with enum type. 17880 * config/avr/avr.md (movmemhi): Use add_reg_note. 17881 (andhi3, andsi3): Don't use AS2 with "and". 17882 (iorhi3, iorsi3): Don't use AS2 with "or". 17883 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration. 17884 * config/crx/crx.c: Include "df.h". 17885 (crx_attribute_table): Make static. 17886 * config/m32r/m32r.c: Include "df.h". 17887 (m32r_attribute_table): Make static. Move higher in file. 17888 (pop): Use add_reg_note. 17889 (block_move_call): Change 0 to LCT_NORMAL in function call. 17890 * config/m32r/m32r.md (movsi_insn): Remove unused local value. 17891 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise. 17892 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always 17893 declare, not just when TREE_CODE is defined. 17894 * config/m68hc11/m68hc11.c: Include "expr.h". 17895 (m68hc11_attribute_table): Make static. Move higher in file. 17896 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in 17897 function call. 17898 (m68hc11_register_indirect_p): Likewise. 17899 (m68hc11_function_arg_padding): Change return type to enum 17900 direction. 17901 (emit_move_after_reload): Use add_reg_note. 17902 (m68hc11_emit_logical): Change code parameter to enum rtx_code. 17903 (m68hc11_split_logical): Likewise. 17904 (m68hc11_rtx_costs): Add local code_and outer_code variables with 17905 enum type. 17906 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0 17907 to VOIDmode in function call. 17908 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if 17909 tree is defined. 17910 (m68hc11_split_logical): Update declaration. 17911 (m68hc11_function_arg_padding): Update declaration. 17912 * config/mcore/mcore.c (regno_reg_class): Change form array of int 17913 to array of enum reg_class. 17914 (mcore_attribute_table): Make static. Move higher in file. 17915 (mcore_rtx_costs): Add cast to enum type. 17916 * config/mcore/mcore.h (regno_reg_class): Update declaration. 17917 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning. 17918 * config/sh/sh.c (sh_attribute_table): Make static. Move higher 17919 in file. 17920 * config/sh/predicates.md (trapping_target_operand): Rename and to 17921 and_expr. 17922 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move 17923 higher in file. 17924 * config/spu/spu.c (spu_attribute_table): Make static. Move 17925 higher in file. 17926 * config/v850/v850.c (v850_attribute_table): Make static. Move 17927 higher in file. 17928 (v850_rtx_costs): Use local code with enum type. 17929 (expand_epilogue): Add cast. 17930 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat. 17931 179322009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com> 17933 17934 PR target/40515 17935 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single, 17936 -m2a-single-only and -m2a-nofpu. 17937 * config/sh/sh.opt: Document m2a generates FPU code. 17938 179392009-06-24 Anatoly Sokolov <aesok@post.ru> 17940 17941 * defaults.h (CAN_ELIMINATE): Provide default. 17942 * doc/tm.texi (CAN_ELIMINATE): Revise documentation. 17943 * config/alpha/alpha.h (CAN_ELIMINATE): Delete. 17944 * config/m32c/m32c.h (CAN_ELIMINATE): Delete. 17945 * config/spu/spu.h (CAN_ELIMINATE): Delete. 17946 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete. 17947 * config/moxie/moxie.h (CAN_ELIMINATE): Delete. 17948 * config/cris/cris.h (CAN_ELIMINATE): Delete. 17949 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete. 17950 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete. 17951 * config/mmix/mmix.h (CAN_ELIMINATE): Delete. 17952 179532009-06-24 DJ Delorie <dj@redhat.com> 17954 17955 * mep-ext-cop.cpu: Fix copyright notice. 17956 * mep-default: Fix copyright notice. 17957 * mep-core: Fix copyright notice. 17958 * mep: Fix copyright notice. 17959 * mep-ivc2: Fix copyright notice. 17960 * mep-c5: Fix copyright notice. 17961 179622009-06-24 Denis Chertykov <chertykov@gmail.com> 17963 17964 * doc/contrib.texi (Contributors): 17965 179662009-06-24 Andreas Krebbel <krebbel1@de.ibm.com> 17967 17968 PR middle-end/40501 17969 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap 17970 src and dst operands if necessary. 17971 179722009-06-23 DJ Delorie <dj@redhat.com> 17973 17974 Add MeP port. 17975 * config.gcc: Add mep support. 17976 * recog.c: Resurrect validate_replace_rtx_subexp(). 17977 * recog.h: Likewise. 17978 * config/mep/: Add new port: 17979 * config/mep/constraints.md: New file. 17980 * config/mep/default.h: New file. 17981 * config/mep/intrinsics.h: New file. 17982 * config/mep/intrinsics.md: New file. 17983 * config/mep/ivc2-template.h: New file. 17984 * config/mep/mep-c5.cpu: New file. 17985 * config/mep/mep-core.cpu: New file. 17986 * config/mep/mep-default.cpu: New file. 17987 * config/mep/mep-ext-cop.cpu: New file. 17988 * config/mep/mep-intrin.h: New file. 17989 * config/mep/mep-ivc2.cpu: New file. 17990 * config/mep/mep-lib1.asm: New file. 17991 * config/mep/mep-lib2.c: New file. 17992 * config/mep/mep-pragma.c: New file. 17993 * config/mep/mep-protos.h: New file. 17994 * config/mep/mep-tramp.c: New file. 17995 * config/mep/mep.c: New file. 17996 * config/mep/mep.cpu: New file. 17997 * config/mep/mep.h: New file. 17998 * config/mep/mep.md: New file. 17999 * config/mep/mep.opt: New file. 18000 * config/mep/predicates.md: New file. 18001 * config/mep/t-mep: New file. 18002 180032009-06-23 Ian Lance Taylor <iant@google.com> 18004 18005 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings 18006 from loose_warn into c_loose_warn and from strict_warn into 18007 c_strict_warn. Set and substitute warn_cxxflags. Check for 18008 --enable-build-with-cxx. Set and substitute 18009 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS. 18010 * Makefile.in (CXXFLAGS): New variable. 18011 (C_LOOSE_WARN, C_STRICT_WARN): New variables. 18012 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if 18013 the default is the same as $(STRICT_WARN). 18014 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables. 18015 (CXX): New variable. 18016 (COMPILER): New value if ENABLE_BUILD_WITH_CXX. 18017 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise. 18018 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise. 18019 (HOST_LIBS): New variable. 18020 (GCC_CFLAGS): Add $(C_LOOSE_WARN). 18021 (ALL_CXXFLAGS): New variable. 18022 (LIBS, BACKENDLIBS): Add $(HOST_LIBS). 18023 * doc/install.texi (Configuration): Document 18024 --enable-build-with-cxx, --with-stage1-ldflags, 18025 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs. 18026 * configure: Rebuild. 18027 180282009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 18029 18030 * config/arm/arm.c (arm_override_options): Fix braces and formatting 18031 from previous commit. 18032 180332009-06-23 Ian Lance Taylor <iant@google.com> 18034 18035 * Makefile.in ($(out_object_file)): Depend upon $(DF_H). 18036 180372009-06-23 Ian Lance Taylor <iant@google.com> 18038 18039 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter 18040 with ATTRIBUTE_UNUSED. 18041 180422009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> 18043 Pat Haugen <pthaugen@us.ibm.com> 18044 Revital Eres <eres@il.ibm.com> 18045 18046 * config.in (HAVE_AS_POPCNTD): Add default definition. 18047 (HAVE_AS_LWSYNC): Ditto. 18048 18049 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils 18050 release number. 18051 (gcc_cv_as_powerpc_cmpb): Ditto. 18052 (gcc_cv_as_powerpc_dfp): Ditto. 18053 (gcc_cv_as_powerpc_vsx): Ditto. 18054 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler 18055 supporting the popcntd/lwsync instructions. 18056 (gcc_cv_as_powerpc_lwsync): Ditto. 18057 * configure: Regenerate. 18058 18059 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for 18060 -mcpu=native and -mcpu=power7. 18061 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto. 18062 18063 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be 18064 a variable instead of a mask to reduce the number of mask bits. 18065 * config/rs6000/sysv4.opt (-mbit-align): Ditto. 18066 (-mbit-word): Ditto. 18067 (-mregnames): Ditto. 18068 * config/rs6000/rs6000.opt (-mupdate): Ditto. 18069 (-mfused-madd): Ditto. 18070 18071 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA 18072 2.06 instructions. 18073 (-mvsx): New switch for VSX instructions. 18074 (-misel): Move from a variable to a mask to allow it to be set by 18075 -mcpu=. 18076 18077 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change 18078 function declaration to an array declaration. 18079 (rs6000_hard_regno_nregs): New external array declaration. 18080 18081 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md 18082 files included by rs6000.md. 18083 18084 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use 18085 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch. 18086 18087 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be 18088 a target mask. 18089 (rs6000_debug_reg): New -mdebug= variables. 18090 (rs6000_debug_addr): Ditto. 18091 (rs6000_debug_cost): Ditto. 18092 (rs6000_pmode): New variable to hold Pmode. 18093 (rs6000_pointer_size): New variable to hold POINTER_SIZE. 18094 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS 18095 calculated at compiler start. 18096 (rs6000_hard_regno_nregs): Change function to an array which holds 18097 HARD_REGNO_NREGS calculated at compiler start. 18098 (rs6000_explicit_options): Delete isel field. 18099 (rs6000_vector_unit): New array to hold which vector unit 18100 supports arithmetic options for a given type. 18101 (rs6000_vector_mem): New array to hold which vector unit supports 18102 memory reference operations for a given type. 18103 (rs6000_vector_align): New array to given the alignment of each 18104 vector type. 18105 (power7_cost): New basic costs for power7. 18106 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel. 18107 (rs6000_hard_regno_nregs_internal): New function, moved from 18108 HARD_REGNO_NREGS, to calculate the number of registers each hard 18109 register takes for each type. 18110 (rs6000_debug_reg_print): New function for -mdebug=reg support. 18111 (rs6000_debug_vector_unit): New array, map rs6000_vector to string. 18112 (+rs6000_init_hard_regno_mode_ok): New function, move calculation 18113 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector 18114 unit information here so it is calculated once at compiler startup 18115 time. 18116 (rs6000_override_options): Make -misel a target mask. Add more 18117 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial 18118 VSX support. Add support for -mdebug=reg, -mdebug=addr, and 18119 -mdebug=cost. 18120 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL. 18121 (rs6000_handle_option): Move -misel from variable to target mask. 18122 (rs6000_builtin_mask_for_load): Add VSX support. 18123 (rs6000_conditional_register_usage): Ditto. 18124 (USE_ALTIVEC_FOR_ARG_P): Ditto. 18125 (function_arg_boundary): Ditto. 18126 (rs6000_expand_builtin): Ditto. 18127 (def_builtin): Make abort message a little friendlier. 18128 (rs6000_emit_int_cmove): Add support for 64-bit isel. 18129 18130 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the 18131 assembler support the popcntd instruction instead of a vsx 18132 instruction to enable power7 support. 18133 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7. 18134 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right 18135 option to the assembler if -mcpu=native. 18136 (ASM_CPU_NATIVE_SPEC): Ditto. 18137 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off 18138 ISA 2.06 features. 18139 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue 18140 the lwsync instruction. 18141 (enum processor_type): Add PROCESSOR_POWER7. 18142 (rs6000_debug_reg): New -mdebug= options. 18143 (rs6000_debug_addr): Ditto. 18144 (rs6000_debug_cost): Ditto. 18145 (rs6000_isel): Delete. 18146 (enum rs6000_vector): New enum to say what vector unit we have. 18147 (VECTOR_UNIT_*): New macros to say which vector unit has 18148 arithmetic operations for a given type. 18149 (VECTOR_MEM_*): New macros to say which vector unit has memory 18150 operations for a given type. 18151 (TARGET_LDBRX): Whether the machine supports the ldbrx 18152 instruction. 18153 (TARGET_ISEL): Delete, -misel moved to be a mask. 18154 (TARGET_ISEL64): New macro for 64-bit isel support. 18155 (UNITS_PER_VSX_WORD): New macro. 18156 (POINTER_SIZE): Move to be an external variable, rather than 18157 calculating whether we are generating 32 ot 64-bit code. 18158 (Pmode): Ditto. 18159 (STACK_BOUNDARY): Add VSX support. 18160 (LOCAL_ALIGNMENT): Ditto. 18161 (SLOW_UNALIGNED_ACCESS): Ditto. 18162 (VSX_REGNO_P): New macro for VSX support. 18163 (VFLOAT_REGNO_P): Ditto. 18164 (VINT_REGNO_P): Ditto. 18165 (VLOGICAL_REGNO_P): Ditto. 18166 (VSX_VECTOR_MODE): Ditto. 18167 (VSX_SCALAR_MODE): Ditto. 18168 (VSX_MODE): Ditto. 18169 (VSX_MOVE_MODE): Ditto. 18170 (VSX_REG_CLASS_P): Ditto. 18171 (HARD_REGNO_NREGS): Instead of calling a function, use an array 18172 lookup. 18173 (UNITS_PER_SIMD_WORD): Add VSX support. 18174 (MODES_TIEABLE_P): Ditto. 18175 (STARTING_FRAME_OFFSET): Ditto. 18176 (STACK_DYNAMIC_OFFSET): Ditto. 18177 (EPILOGUE_USES): Ditto. 18178 (REGNO_REG_CLASS): Move to array lookup. 18179 (CLASS_MAX_NREGS): Ditto. 18180 (rs6000_vector_reg_class): Add declaration. 18181 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that 18182 overlap with the floating point and Altivec registers. 18183 18184 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx. 18185 18186 * config/rs6000/driver-rs6000.c (asm_names): New static array to 18187 give the appropriate asm switches if -mcpu=native. 18188 (host_detect_local_cpu): Add support for "asm". 18189 (host_detect_local_cpu): Follow GNU code guidelines for name. 18190 18191 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move 18192 -mbit-word to a variable instead of being a target mask. 18193 18194 * config/rs6000/sync.md (lwsync): If the assembler supports it, 18195 emit the lwsync instruction instead of emitting the instruction as 18196 an integer constant. 18197 18198 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from 18199 fixuns_trundfsi2, move expander into rs6000.md. 18200 18201 * config/rs6000/rs6000.md (cpu): Add power7. 18202 (sel, *ptrsize): New mode attributes for 32/64-bit isel. 18203 (logical predicate patterns): Change the single instruction 18204 primitives that set CR0 to be fast_compare instead of compare. 18205 (norsi*): Ditto. 18206 (popcntwsi2): Add support for ISA 2.06 popcount instructions. 18207 (popcntddi2): Ditto. 18208 (popcount<mode>): Ditto. 18209 (floating multiply/add insns): Name the floating point 18210 multiply/add insns. 18211 (isel_signed_<mode>): Add support for -misel on 64-bit systems. 18212 (isel_unsigned_<mode>): Ditto. 18213 (fixuns_trundfsi2): Move expander here from spe.md. 18214 (smindi3): Define if we have -misel on 64-bit systems. 18215 (smaxdi3): Ditto. 18216 (umindi3): Ditto. 18217 (umaxdi3): Ditto. 18218 182192009-06-23 Anatoly Sokolov <aesok@post.ru> 18220 18221 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and 18222 extra_objs. 18223 * config/avr/avr.c (avr_current_device): New variable. 18224 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c. 18225 (avr_arch, mcu_type_s): Move to avr.h. 18226 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and 18227 default_data_section_start fields. 18228 (avr_arch): Moved from avr.c. 18229 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and 18230 library_name fields. 18231 (avr_current_device, avr_mcu_types, avr_arch_types, 18232 avr_device_to_arch, avr_device_to_data_start, 18233 avr_device_to_startfiles, avr_device_to_devicelib): Declare. 18234 (EXTRA_SPEC_FUNCTIONS): Define. 18235 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker 18236 options mapping. Use device_to_arch and device_to_data_start insted. 18237 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils. 18238 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove. 18239 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules. 18240 * config/avr/driver-avr.c: New file. 18241 * config/avr/avr-devices.c: New file. 18242 182432009-06-23 Jakub Jelinek <jakub@redhat.com> 18244 18245 * var-tracking.c (unshare_variable): Force initialized to 18246 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit. 18247 (set_variable_part): Likewise. 18248 (struct variable_union_info): Remove pos_src field. 18249 (vui_vec, vui_allocated): New variables. 18250 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable 18251 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l 18252 == 1 use a simpler sorting algorithm. Compute pos field right 18253 away, don't fill in pos_src. For dst_l == 2 avoid qsort. 18254 Avoid quadratic comparison if !flag_var_tracking_uninit. 18255 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to 18256 unshare_variable unconditionally. 18257 (dataflow_set_different_2): Removed. 18258 (dataflow_set_different): Don't traverse second hash table. 18259 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED 18260 unconditionally to var_reg_set or var_mem_set. 18261 (emit_notes_in_bb): Likewise. 18262 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to 18263 unshare_variable. 18264 (emit_note_insn_var_location): Don't set initialized to 18265 VAR_INIT_STATUS_INITIALIZED early. 18266 (vt_finalize): Free vui_vec if needed, clear vui_vec and 18267 vui_allocated. 18268 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb. 18269 18270 * tree-object-size.c (addr_object_size): Instead of checking 18271 for non-NULL TREE_CHAIN of the FIELD_DECL check that there 18272 are no FIELD_DECLs following it. 18273 182742009-06-23 Andreas Krebbel <krebbel1@de.ibm.com> 18275 18276 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in 18277 order to match bswaps with signed source operands. 18278 182792009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 18280 18281 * sdbout.c (sdbout_one_type): Fix braces in switch. 18282 182832009-06-23 Richard Guenther <rguenther@suse.de> 18284 18285 * tree-ssa-structalias.c (struct variable_info): Add is_global_var 18286 member. 18287 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly, 18288 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree, 18289 var_callused, callused_tree, var_storedanything, storedanything_tree, 18290 var_integer, integer_tree): Remove global variables. 18291 (new_var_info): Do not pass new id, append the new var to the 18292 global variable vector. 18293 (do_ds_constraint): Use is_global_var member of the variable-info. 18294 (new_scalar_tmp_constraint_exp): Adjust. 18295 (create_function_info_for): Likewise. 18296 (create_variable_info_for): Likewise. 18297 (find_what_var_points_to): Remove dead code. 18298 (init_base_vars): Simplify. 18299 (compute_points_to_sets): Adjust. 18300 183012009-06-22 Adam Nemet <anemet@caviumnetworks.com> 18302 18303 * combine.c (try_combine): Dump information about the insns we're 18304 combining. 18305 183062009-06-22 Adam Nemet <anemet@caviumnetworks.com> 18307 18308 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION 18309 check when calling force_to_mode on TRUNCATE's operand. 18310 183112009-06-22 Ian Lance Taylor <iant@google.com> 18312 18313 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog. 18314 183152009-06-22 Steven Bosscher <steven@gcc.gnu.org> 18316 18317 * config/arm/arm.md (prologue_use): Set length of fake insn to 0. 18318 183192009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 18320 18321 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib 18322 override library linkage flags such as -static-libgcc or 18323 -shared-libgcc. 18324 183252009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com> 18326 18327 * config/m68k/m68k-devices.def: Add line for MCF5221x. 18328 183292009-06-22 Ian Lance Taylor <iant@google.com> 18330 18331 * config/linux.opt: Put mglibc ahead of muclibc. 18332 18333 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning 18334 for duplicate decls. 18335 183362009-06-22 Matthias Klose <doko@ubuntu.com> 18337 18338 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR). 18339 183402009-06-22 Steven Bosscher <steven@gcc.gnu.org> 18341 18342 PR objc/28050 18343 * c-parser.c (c_parser_objc_message_args): Return error_mark_node 18344 instead of NULL if a parser error occurs. 18345 183462009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 18347 18348 * dwarf2out.c (dwarf2_debug_hooks): Initialize 18349 non-DWARF2_DEBUGGING_INFO version. 18350 183512009-06-22 Kai Tietz <kai.tietz@onevision.com> 18352 18353 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add 18354 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file. 18355 18356 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define. 18357 (LIBGCC2_TF_CEXT): Define. 18358 (TF_SIZE): Define. 18359 183602009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 18361 18362 PR target/40463 18363 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition. 18364 183652009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 18366 18367 * config/arm/arm.c (arm_override_options): Disable 18368 -mcaller-super-interworking and -mcallee-super-interworking. 18369 * doc/invoke.texi (ARM Options): Document this. 18370 183712009-06-22 Nathan Sidwell <nathan@codesourcery.com> 18372 18373 * config/arm/arm.c (arm_print_operand): Deal with HIGH. 18374 * config/arm/constraints.md (j): New constraint for movw operands. 18375 (N): Remove thumb2 meaning. 18376 * config/arm/arm.md (*arm_movw): Delete. 18377 (*arm_movsi_insn): Use j constraint for movw instead of N constraint. 18378 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise. 18379 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise. 18380 183812009-06-22 Martin Jambor <mjambor@suse.cz> 18382 18383 PR tree-optimization/40492 18384 * tree-sra.c (sra_modify_assign): Pass zero offsets to 18385 build_ref_for_offset. 18386 183872009-06-22 Shujing Zhao <pearly.zhao@oracle.com> 18388 18389 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and 18390 JUMP_TABLE_DATA_P predicates where applicable. 18391 * auto-inc-dec.c: Ditto. 18392 * builtins.c: Ditto. 18393 * caller-save.c: Ditto. 18394 * calls.c: Ditto. 18395 * cfgcleanup.c: Ditto. 18396 * cfglayout.c: Ditto. 18397 * cfgrtl.c: Ditto. 18398 * combine.c: Ditto. 18399 * combine-stack-adj.c: Ditto. 18400 * cse.c: Ditto. 18401 * cselib.c: Ditto. 18402 * dbxout.c: Ditto. 18403 * df-scan.c: Ditto. 18404 * dse.c: Ditto. 18405 * dwarf2asm.c: Ditto. 18406 * dwarf2out.c: Ditto. 18407 * emit-rtl.c: Ditto. 18408 * except.c: Ditto. 18409 * explow.c: Ditto. 18410 * expmed.c: Ditto. 18411 * expr.c: Ditto. 18412 * final.c: Ditto. 18413 * function.c: Ditto. 18414 * fwprop.c: Ditto. 18415 * gcse.c: Ditto. 18416 * genpreds.c: Ditto. 18417 * genrecog.c: Ditto. 18418 * ifcvt.c: Ditto. 18419 * ira-costs.c: Ditto. 18420 * ira-lives.c: Ditto. 18421 * jump.c: Ditto. 18422 * loop-iv.c: Ditto. 18423 * lower-subreg.c: Ditto. 18424 * modulo-sched.c: Ditto. 18425 * optabs.c: Ditto. 18426 * postreload.c: Ditto. 18427 * print-rtl.c: Ditto. 18428 * recog.c: Ditto. 18429 * reginfo.c: Ditto. 18430 * regmove.c: Ditto. 18431 * reload1.c: Ditto. 18432 * reload.c: Ditto. 18433 * reorg.c: Ditto. 18434 * rtlanal.c: Ditto. 18435 * rtl.c: Ditto. 18436 * sched-vis.c: Ditto. 18437 * sdbout.c: Ditto. 18438 * sel-sched-ir.c: Ditto. 18439 * simplify-rtx.c: Ditto. 18440 * targhooks.c: Ditto. 18441 * var-tracking.c: Ditto. 18442 * vmsdbgout.c: Ditto. 18443 184442009-06-22 Matthias Klose <doko@ubuntu.com> 18445 18446 * Makefile.in (install-plugin): Always use DESTDIR. 18447 184482009-06-22 Olivier Hainque <hainque@adacore.com> 18449 18450 * config/pa/pa.c (output_call): Don't optimize post call jumps 18451 into return address adjustments if the call may throw. 18452 184532009-06-21 Richard Earnshaw <rearnsha@arm.com> 18454 18455 * arm.c (thumb1_output_casesi): New function. 18456 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if 18457 optimizing for size or PIC. 18458 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1. 18459 * arm.md (UNSPEC_THUMB1_CASESI): New constant. 18460 (casesi): Handle Thumb-1 when optimizing for size or PIC. 18461 (thumb1_casesi_internal_pic): New expand rule. 18462 (thumb1_casesi_dispatch): New pattern. 18463 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for 18464 thumb-1 mode. 18465 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now 18466 in the text seciton when PIC or optimizing for size. 18467 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. 18468 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack 18469 preservation properties of code. 18470 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions. 18471 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions. 18472 (__gnu_thumb1_case_si): New function. 18473 * t-arm (LIB1ASMSRC): Define here. 18474 (LIB1ASMFUNCS): Add some common functions. 18475 * t-arm-elf (LIB1ASMSRC): Delete. 18476 (LIB1ASMFUNCS): Append to existing set. 18477 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. 18478 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. 18479 * t-symbian (LIB1ASMFUNCS): Likewise. 18480 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. 18481 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. 18482 184832009-06-21 Richard Guenther <rguenther@suse.de> 18484 18485 PR tree-optimization/38729 18486 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict 18487 to loops with a single exit if -fno-expensive-optimizations. 18488 184892009-06-21 Jakub Jelinek <jakub@redhat.com> 18490 18491 * var-tracking.c (struct shared_hash_def, shared_hash): New types. 18492 (dataflow_set): Change vars type from htab_t to shared_hash. 18493 (shared_hash_pool, empty_shared_hash): New variables. 18494 (vars_clear): Removed. 18495 (shared_hash_shared, shared_hash_htab, shared_hash_copy, 18496 shared_hash_find_slot_unshare, shared_hash_find_slot, 18497 shared_hash_find_slot_noinsert, shared_hash_find): New 18498 static inlines. 18499 (shared_hash_unshare, shared_hash_destroy): New functions. 18500 (unshare_variable): Unshare set->vars if shared, use 18501 shared_hash_htab. 18502 (vars_copy): Use htab_traverse_noresize instead of htab_traverse. 18503 (get_init_value, find_src_set_src, dump_dataflow_set, 18504 clobber_variable_part, emit_notes_for_differences): Use 18505 shared_hash_htab. 18506 (dataflow_set_init): Remove second argument, set vars to 18507 empty_shared_hash instead of creating a new htab. 18508 (dataflow_set_clear): Call shared_hash_destroy and set vars 18509 to empty_shared_hash instead of calling vars_clear. 18510 (dataflow_set_copy): Don't call vars_copy, instead just share 18511 the src htab with dst. 18512 (variable_union): Use shared_hash_*, use initially NO_INSERT 18513 lookup if set->vars is shared. Don't keep slot cleared before 18514 calling unshare_variable. Unshare set->vars if needed. 18515 Even ->refcount == 1 vars must be unshared if set->vars is shared 18516 and var needs to be modified. 18517 (variable_canonicalize): New function. 18518 (dataflow_set_union): If dst->vars is empty, just share src->vars 18519 with dst->vars and traverse with variable_canonicalize to canonicalize 18520 and unshare what is needed. 18521 (dataflow_set_different): If old_set and new_set use the same shared 18522 htab, they aren't different. If number of htab elements is different, 18523 htabs are different. Use shared_hash_*. 18524 (dataflow_set_destroy): Call shared_hash_destroy instead of 18525 htab_delete. 18526 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass 18527 second argument to dataflow_set_init. 18528 (vt_initialize): Likewise. Initialize shared_hash_pool and 18529 empty_shared_hash, move bb in/out initialization afterwards. 18530 Use variable_htab_free instead of NULL as changed_variables del hook. 18531 (variable_was_changed): Change type of second argument to pointer to 18532 dataflow_set. When inserting var into changed_variables, bump 18533 refcount. Unshare set->vars if set is shared htab and slot needs to 18534 be cleared. 18535 (set_variable_part): Use shared_hash_*, use initially NO_INSERT 18536 lookup if set->vars is shared. Unshare set->vars if needed. 18537 Even ->refcount == 1 vars must be unshared if set->vars is shared 18538 and var needs to be modified. Adjust variable_was_changed caller. 18539 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1 18540 vars must be unshared if set->vars is shared and var needs to be 18541 modified. Adjust variable_was_changed caller. 18542 (emit_note_insn_var_location): Don't pool_free var. 18543 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0 18544 instead of 1. 18545 (vt_finalize): Call htab_delete on empty_shared_hash->htab and 18546 free_alloc_pool on shared_hash_pool. 18547 185482009-06-20 Anthony Green <green@moxielogic.com> 18549 18550 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define. 18551 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define. 18552 185532009-06-20 Richard Guenther <rguenther@suse.de> 18554 18555 * tree-ssa-structalias.c (find_func_aliases): For memset use 18556 a constraint from NULL if we memset to zero. 18557 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins 18558 we explicitly handle that do not read from memory. 18559 (call_may_clobber_ref_p_1): Properly handle builtins that may 18560 set errno. 18561 185622009-06-20 Richard Guenther <rguenther@suse.de> 18563 18564 PR tree-optimization/40495 18565 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove. 18566 (new_scalar_tmp_constraint_exp): New function. 18567 (process_constraint): Do not create temporary decls. 18568 (process_all_all_constraints): Likewise. 18569 (handle_const_call): Likewise. 18570 (create_function_info_for): Do not set decl. 18571 185722009-06-19 Ian Lance Taylor <iant@google.com> 18573 18574 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static. 18575 (rs6000_attribute_table): Make static; move before use. 18576 185772009-06-19 Eric Botcazou <ebotcazou@adacore.com> 18578 18579 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat. 18580 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR. 18581 Propagate the TREE_READONLY flag without overwriting it. 18582 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise. 18583 Propagate the TREE_READONLY flag onto the result. 18584 (process_call_operands): Move around. Use correct constant value. 18585 185862009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 18587 18588 PR target/40482 18589 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits. 18590 * config/arm/arm.md: Likewise. 18591 185922009-06-19 Ian Lance Taylor <iant@google.com> 18593 18594 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK 18595 to GIMPLE_ERROR_MARK. 18596 18597 * c-typeck.c (build_conditional_expr): Add op1_original_type and 18598 op2_original_type parameters. Warn about using different enum types. 18599 * c-parser.c (c_parser_conditional_expression): Pass original 18600 types to build_conditional_expr. 18601 * c-tree.h (build_conditional_expr): Update declaration. 18602 186032009-06-19 Ian Lance Taylor <iant@google.com> 18604 18605 * config/i386/i386.c (ix86_function_specific_save): Test that 18606 fields match values, rather than testing the values are in a 18607 certain range. 18608 186092009-06-19 Richard Guenther <rguenther@suse.de> 18610 18611 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle 18612 ADDR_EXPR pointers. 18613 (ptr_derefs_may_alias_p): Likewise. 18614 (ptr_deref_may_alias_ref_p_1): New function. 18615 (ptr_deref_may_alias_ref_p): Likewise. 18616 (ref_maybe_used_by_call_p_1): Handle builtins that are not 18617 covered by looking at the ESCAPED solution. 18618 (call_may_clobber_ref_p_1): Likewise. 18619 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): 18620 Handle NULL_TREE offset. Do not produce redundant constraints. 18621 (process_all_all_constraints): New helper function. 18622 (do_structure_copy): Use it. 18623 (handle_lhs_call): Likewise. 18624 (find_func_aliases): Handle some builtins with pointer arguments 18625 and/or return values explicitly. 18626 186272009-06-19 Ian Lance Taylor <iant@google.com> 18628 18629 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift. 18630 186312009-06-19 Ian Lance Taylor <iant@google.com> 18632 18633 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int. 18634 186352009-06-19 Ian Lance Taylor <iant@google.com> 18636 18637 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes. 18638 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO 18639 version. 18640 18641 * c-decl.c (finish_decl): If -Wc++-compat, warn about 18642 uninitialized const. 18643 186442009-06-19 Ian Lance Taylor <iant@google.com> 18645 18646 * dse.c (struct store_info): Rename bitmap field to bmap. Change 18647 all uses. 18648 18649 * c-decl.c (in_struct, struct_types): Remove. 18650 (struct c_binding): Add in_struct field. 18651 (c_binding_ptr): Define type, along with VEC. 18652 (struct c_struct_parse_info): Define. 18653 (struct_parse_info): New static variable. 18654 (bind): Initialize in_struct field. 18655 (start_struct): Remove enclosing_in_struct and 18656 enclosing_struct_types parameters. Add 18657 enclosing_struct_parse_info parameter. Change all callers. Set 18658 struct_parse_info rather than in_struct and struct_types. 18659 (grokfield): If -Wc++-compat and there is a symbol binding for the 18660 field name, set the in_struct flag and push it on the 18661 struct_parse_info->fields vector. 18662 (warn_cxx_compat_finish_struct): New static function. 18663 (finish_struct): Remove enclosing_in_struct and 18664 enclosing_struct_types parameters. Add 18665 enclosing_struct_parse_info parameter. Change all callers. Don't 18666 set C_TYPE_DEFINED_IN_STRUCT here. Call 18667 warn_cxx_compat_finish_struct. Free struct_parse_info and set to 18668 parameter. Only push on struct_types if warn_cxx_compat. 18669 (finish_enum): Only push on struct_types if warn_cxx_compat. 18670 (declspecs_add_type): Add loc parameter. Change all callers. 18671 Change all error calls to error_at. Pass loc, not input_location, 18672 to pedwarn calls. Warn if -Wc++-compat and a typedef name is 18673 defined in a struct. If -Wc++-compat and parsing a struct, record 18674 that a typedef name was used. 18675 * c-parser.c (c_parser_declspecs): Get location to pass to 18676 declspecs_add_type. 18677 (c_parser_struct_or_union_specifier): Update calls to start_struct 18678 and finish_struct. 18679 * c-tree.h (struct c_struct_parse_info): Declare. 18680 (finish_struct, start_struct): Update declarations. 18681 (declspecs_add_type): Update declaration. 18682 186832009-06-19 Ian Lance Taylor <iant@google.com> 18684 18685 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global 18686 variable with an anonymous type. 18687 186882009-06-19 Uros Bizjak <ubizjak@gmail.com> 18689 18690 * see.c: Remove for real. 18691 186922009-06-19 Uros Bizjak <ubizjak@gmail.com> 18693 18694 * optabs.h (enum optab_index): Add new OTI_significand. 18695 (significand_optab): Define corresponding macro. 18696 * optabs.c (init_optabs): Initialize significand_optab. 18697 * genopinit.c (optabs): Implement significand_optab using 18698 significand?f2 patterns. 18699 * builtins.c (expand_builtin_mathfn): Handle 18700 BUILT_IN_SIGNIFICAND{,F,L}. 18701 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using 18702 expand_builtin_mathfn if flag_unsafe_math_optimizations is set. 18703 18704 * config/i386/i386.md (significandxf2, significand<mode>2): New 18705 expanders to implement significandf, significand and significandl 18706 built-ins as inline x87 intrinsics. 18707 187082009-06-18 Anatoly Sokolov <aesok@post.ru> 18709 18710 * config/avr/avr.c (avr_override_options): Remove setting value of 18711 PARAM_INLINE_CALL_COST. 18712 187132009-06-18 Richard Henderson <rth@redhat.com> 18714 18715 PR 40488 18716 * tree-pass.h (TDF_ASMNAME): New. 18717 * tree-dump.c (dump_options): Add asmname. 18718 * doc/invoke.texi: Document it. 18719 18720 * tree-pretty-print.c (maybe_dump_asm_name): Merge into... 18721 (dump_decl_name): ...here. 18722 (dump_function_name): New flags arg; mind TDF_ASMNAME. 18723 (dump_generic_node): Update dump_function_name calls. 18724 (print_call_name): New flags arg; update all dump calls. 18725 * diagnostic.h (print_call_name): Update. 18726 * gimple-pretty-print.c (dump_gimple_call): Update. 18727 187282009-06-18 H.J. Lu <hongjiu.lu@intel.com> 18729 18730 PR target/40470 18731 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG. 18732 187332009-06-18 Diego Novillo <dnovillo@google.com> 18734 18735 * doc/plugins.texi: Document plugin_is_GPL_compatible. 18736 * plugin.c (str_license): Declare. 18737 (try_init_one_plugin): Assert that the symbol 18738 'plugin_is_GPL_compatible' exists. 18739 187402009-06-18 Sergei Dyshel <sergeid@il.ibm.com> 18741 18742 * see.c: Remove. 18743 * Makefile.in (OBJS-common): Remove see.o. 18744 (see.o): Remove. 18745 * common.opt (fsee): Mark as preserved for backward compatibility. 18746 * opts.c (common_handle_option): Add OPT_fsee to the backward 18747 compatibility section. 18748 * passes.c (init_optimization_passes, pass_see): Remove pass. 18749 * timevar.def (TV_SEE): Remove. 18750 * tree-pass.h (pass_see): Remove declaration. 18751 * doc/invoke.texi (-fsee): Remove documentation. 18752 187532009-06-18 Martin Jambor <mjambor@suse.cz> 18754 18755 * tree-sra.c: Include statistics.h 18756 (sra_stats): New variable. 18757 (sra_initialize): Clear sra_stats. 18758 (create_access_replacement): Increment sra_stats.replacements. 18759 (get_access_replacement): Do not return twice. 18760 (analyze_all_variable_accesses): Increment statistics counter by the 18761 number of scalarized aggregates. 18762 (generate_subtree_copies): Increment sra_stats.subtree_copies. 18763 (sra_modify_expr): Increment sra_stats.exprs. 18764 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements. 18765 (sra_modify_assign): Increment sra_stats.exprs, 18766 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted. 18767 (perform_intra_sra): Update statistics counters. 18768 * Makefile.in (tree-sra.o): Add statistics.h to dependencies. 18769 187702009-06-18 Sandra Loosemore <sandra@codesourcery.com> 18771 18772 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine. 18773 (arm_scalar_mode_supported_p): New function. 18774 187752009-06-18 Paul Brook <paul@codesourcery.com> 18776 Sandra Loosemore <sandra@codesourcery.com> 18777 18778 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define. 18779 (__extendhfsf2, __truncsfhf2): Define. 18780 * config/arm/fp16.c: New file. 18781 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c. 18782 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c. 18783 187842009-06-18 Sandra Loosemore <sandra@codesourcery.com> 18785 18786 * doc/extend.texi (Half-Precision): New section. 18787 * doc/invoke.texi (Option Summary): List -mfp16-format. 18788 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format. 18789 * config/arm/arm.opt (mfp16-format=): New. 18790 * config/arm/arm.c: Include intl.h. 18791 (TARGET_INVALID_PARAMETER_TYPE): Redefine. 18792 (TARGET_INVALID_RETURN_TYPE): Redefine. 18793 (TARGET_PROMOTED_TYPE): Redefine. 18794 (TARGET_CONVERT_TO_TYPE): Redefine. 18795 (arm_fp16_format): Define. 18796 (all_fpus): Add entry for neon-fp16. 18797 (fp_model_for_fpu): Likewise. 18798 (struct fp16_format): Declare. 18799 (all_fp16_formats): Define. 18800 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic 18801 functions. 18802 (arm_override_options): Set arm_fp16_format. Call sorry for fp16 18803 and no ldrh. 18804 (arm_legitimate_index_p): Treat HFmode like HImode. 18805 (thumb1_legitimate_address_p): Make it recognize HFmode constants. 18806 (coproc_secondary_reload_class): Special-case HFmode. 18807 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16. 18808 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers. 18809 (arm_init_fp16_builtins): New. 18810 (arm_init_builtins): Call it. 18811 (arm_invalid_parameter_type): New. 18812 (arm_invalid_return_type): New. 18813 (arm_promoted_type): New. 18814 (arm_convert_to_type). 18815 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16 18816 format. 18817 (arm_emit_fp16_const): New function. 18818 (arm_mangle_type): Mangle __fp16 as "Dh". 18819 * config/arm/arm.h (TARGET_VFPD32): Make it know about 18820 FPUTYPE_NEON_FP16. 18821 (TARGET_NEON_FP16): New. 18822 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16. 18823 (enum fputype): Add FPUTYPE_NEON_FP16. 18824 (enum arm_fp16_format_type): Declare. 18825 (arm_fp16_format): Declare. 18826 (LARGEST_EXPONENT_IS_NORMAL): Define. 18827 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare. 18828 * config/arm/arm-modes.def (HFmode): Define. 18829 * config/arm/vfp.md (*movhf_vfp): New. 18830 (extendhfsf2): New. 18831 (truncsfhf2): New. 18832 * config/arm/arm.md (fpu): Add neon_fp16. 18833 (floatsihf2, floatdihf2): New. 18834 (fix_trunchfsi2, fix_trunchfdi2): New. 18835 (truncdfhf2): New. 18836 (extendhfdf2): New. 18837 (movhf): New. 18838 (*arm32_movhf): New. 18839 (*thumb1_movhf): New. 18840 (consttable_2): Add check for HFmode constants. 18841 (consttable_4): Handle HFmode constants. 18842 188432009-06-18 Uros Bizjak <ubizjak@gmail.com> 18844 18845 * convert.c (convert_to_integer): Convert (int)logb() into ilogb(). 18846 188472009-06-17 Olivier Hainque <hainque@adacore.com> 18848 18849 * collect2.c (main): Use CONST_CAST2 to perform char ** to 18850 const char ** conversion in AIX specific section. 18851 188522009-06-17 H.J. Lu <hongjiu.lu@intel.com> 18853 18854 * config/i386/i386.c (ix86_special_builtin_type): Remove 18855 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED. 18856 (bdesc_special_args): Updated. 18857 (ix86_init_mmx_sse_builtins): Likewise. 18858 (ix86_expand_special_args_builtin): Likewise. 18859 188602009-06-17 Richard Henderson <rth@redhat.com> 18861 18862 * tree-pretty-print.c (maybe_dump_asm_name): New. 18863 (dump_decl_name): Use it. 18864 (PRINT_FUNCTION_NAME): Merge into... 18865 (dump_function_name): ... here. Use maybe_dump_asm_name. 18866 188672009-06-17 Cary Coutant <ccoutant@google.com> 18868 18869 * dbxout.c (dbxout_source_line): Add is_stmt parameter. 18870 Change caller. 18871 * debug.c (struct gcc_debug_hooks): Change placeholder for 18872 source_line hook. 18873 (debug_nothing_int_charstar_int): Replaced by... 18874 (debug_nothing_int_charstar_int_bool): ...this. 18875 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to 18876 source_line prototype. 18877 (debug_nothing_int_charstar_int): Replaced by... 18878 (debug_nothing_int_charstar_int_bool): ...this. 18879 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant. 18880 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter. 18881 Output is_stmt operand when necessary. 18882 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook. 18883 (notice_source_line): Add is_stmt parameter. 18884 * sdbout.c (sdbout_source_line): Add is_stmt parameter. 18885 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter. 18886 Change callers. 18887 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter. 18888 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter. 18889 188902009-06-17 Ian Lance Taylor <iant@google.com> 18891 18892 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces. 18893 Change all uses. 18894 (struct store_by_pieces_d): Rename from store_by_pieces. Change 18895 call uses. 18896 188972009-06-17 Adam Nemet <anemet@caviumnetworks.com> 18898 18899 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, 18900 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions, 18901 tree_strip_sign_nop_conversions and 18902 tree_ssa_strip_useless_type_conversions rather than stripping 18903 the operations here. 18904 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions): 18905 Declare them. 18906 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it. 18907 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function. 18908 * tree.c (tree_nop_conversion, tree_sign_nop_conversion, 18909 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New 18910 functions. 18911 189122009-06-17 Michael Eager <eager@eagercon.com> 18913 18914 * config/rs6000/constraints.md (register_constraint "d"): New. 18915 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2, 18916 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr, 18917 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64, 18918 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2, 18919 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3, 18920 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2, 18921 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd' 18922 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs, 18923 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte, 18924 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw, 18925 __fctiwz): Same. 18926 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr, 18927 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr, 18928 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2, 18929 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal, 18930 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt, 18931 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2, 18932 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1, 18933 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64, 18934 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1, 18935 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper, 18936 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32, 18937 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2, 18938 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same. 18939 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint. 18940 189412009-06-16 Ian Lance Taylor <iant@google.com> 18942 18943 * profile.c (total_num_never_executed): Don't define. 18944 (compute_branch_probabilities): Don't count or print 18945 num_never_executed. 18946 (init_branch_prob): Don't set total_num_never_executed. 18947 (end_branch_prob): Don't print total_num_never_executed. 18948 189492009-06-17 David Daney <ddaney@caviumnetworks.com> 18950 18951 * jump.c (cleanup_barriers): Handle case of no insns before a barrier. 18952 189532009-06-17 David Edelsohn <edelsohn@gnu.org> 18954 18955 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode. 18956 (nabstd2_fpr): Same. 18957 189582009-06-17 Steve Ellcey <sje@cup.hp.com> 18959 18960 * expr.c (expand_assignment): Change complex type check. 18961 189622009-06-17 Basile Starynkevitch <basile@starynkevitch.net> 18963 18964 * doc/plugins.texi (Building GCC plugins): Added new section. 18965 189662009-06-17 Ian Lance Taylor <iant@google.com> 18967 18968 * c-pch.c (get_ident): Don't set size of templ array. 18969 (pch_init): Don't set size of partial_pch array. 18970 18971 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a 18972 string constant to intialize an array whose size is the length of 18973 the string. 18974 189752009-06-17 Richard Guenther <rguenther@suse.de> 18976 18977 PR tree-optimization/40389 18978 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case 18979 to addressable types. 18980 * gimple.c (walk_stmt_load_store_addr_ops): Likewise. 18981 189822009-06-17 Richard Guenther <rguenther@suse.de> 18983 18984 PR middle-end/40460 18985 * tree-chrec.h (build_polynomial_chrec): If we cannot determine 18986 if there is no evolution of left in the loop bail out. 18987 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one 18988 chrec_fold_multiply. 18989 189902009-06-16 J"orn Rennecke <joern.rennecke@arc.com> 18991 Janis Johnson <janis187@us.ibm.com> 18992 18993 PR target/39254 18994 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE 18995 for the symbol ref of a constant that is the source of a move 18996 - nor for any other not-obvious-label-ref constants. 18997 189982009-06-16 Olatunji Ruwase <tjruwase@google.com> 18999 19000 * plugin.c (position_pass): Skip newly inserted pass during list 19001 traversal to avoid repeated insertion. 19002 190032009-06-16 Ian Lance Taylor <iant@google.com> 19004 19005 * vec.h (VEC_stack_alloc): Define different version if 19006 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT. 19007 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL. 19008 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise. 19009 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise. 19010 190112009-06-16 H.J. Lu <hongjiu.lu@intel.com> 19012 19013 * config.gcc (extra_headers): Add ia32intrin.h for x86. 19014 19015 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI, 19016 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC. 19017 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI, 19018 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI. 19019 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID, 19020 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT, 19021 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT. 19022 (bdesc_special_args): Add __builtin_ia32_rdtsc and 19023 __builtin_ia32_rdtscp. 19024 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi, 19025 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi 19026 and __builtin_ia32_rorhi. 19027 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID, 19028 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT, 19029 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT. 19030 (ix86_expand_args_builtin): Likewise. 19031 (ix86_expand_special_args_builtin): Likewise. 19032 19033 * config/i386/i386.md (UNSPECV_RDTSCP): New. 19034 (UNSPECV_RDTSC): Likewise. 19035 (UNSPECV_RDPMC): Likewise. 19036 (*bsr): Renamed to ... 19037 (bsr): This 19038 (*bsr_rex64): Renamed to ... 19039 (bsr_rex64): This. 19040 (rdpmc): New. 19041 (*rdpmc): Likewise. 19042 (*rdpmc_rex64): Likewise. 19043 (rdtsc): Likewise. 19044 (*rdtsc): Likewise. 19045 (*rdtsc_rex64): Likewise. 19046 (rdtscp): Likewise. 19047 (*rdtscp): Likewise. 19048 (*rdtscp_rex64): Likewise. 19049 19050 * config/i386/ia32intrin.h: New. 19051 19052 * config/i386/x86intrin.h: Include <ia32intrin.h>. 19053 190542009-06-16 Ian Lance Taylor <iant@google.com> 19055 19056 * ira-build.c (copy_info_to_removed_store_destinations): 19057 Initialize parent_a. 19058 190592009-06-16 Ian Lance Taylor <iant@google.com> 19060 19061 * c-decl.c (grokdeclarator): Change size_varies to bool. 19062 190632009-06-16 Ian Lance Taylor <iant@google.com> 19064 19065 * sel-sched.c: Make forward declarations of move_op_hooks and 19066 fur_hooks explicitly extern. 19067 190682009-06-16 Ian Lance Taylor <iant@google.com> 19069 19070 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself. 19071 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself. 19072 190732009-06-16 Ian Lance Taylor <iant@google.com> 19074 19075 * resource.c (mark_referenced_resources): Change 19076 include_delayed_effects parameter to bool. Change all callers. 19077 (mark_end_of_function_resources): Likewise. 19078 * reorg.c (insn_references_resource_p): Likewise. 19079 (insn_sets_resource_p): Likewise. 19080 * resource.h (mark_referenced_resources): Update declaration. 19081 (mark_end_of_function_resources): Update declaration. 19082 190832009-06-16 David Edelsohn <edelsohn@gnu.org> 19084 19085 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++. 19086 190872009-06-16 David Edelsohn <edelsohn@gnu.org> 19088 19089 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap. 19090 GCC can bootstrap on AIX with GNU Binutils 2.20. 19091 190922009-06-16 Ian Lance Taylor <iant@google.com> 19093 19094 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H). 19095 190962009-06-16 Ian Lance Taylor <iant@google.com> 19097 19098 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static 19099 inline, not extern inline. 19100 (exact_log2): Likewise. 19101 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't 19102 test CLZ_HWI. 19103 (exact_log2): Likewise, but don't test CTZ_HWI. 19104 191052009-06-16 Ian Lance Taylor <iant@google.com> 19106 19107 * bitmap.c (bitmap_clear): Don't declare as inline. 19108 * gimple.c (gimplify_assign): Likewise. 19109 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise. 19110 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE. 19111 (sched_scan_info): Remove duplicate definition. 19112 191132009-06-16 Ian Lance Taylor <iant@google.com> 19114 19115 * c-common.c (skip_evaluation): Don't define. 19116 (c_inhibit_evaluation_warnings): Define global variable. 19117 (overflow_warning): Check c_inhibit_evaluation_warnings rather 19118 than skip_evaluation. 19119 (convert_and_check, warn_for_div_by_zero): Likewise. 19120 * c-common.h (skip_evaluation): Don't declare. 19121 (c_inhibit_evaluation_warnings): Declare. 19122 * c-parser.c (c_parser_typeof_specifier): Set 19123 c_inhibit_evaluation_warnings rather than skip_evaluation. 19124 (c_parser_conditional_expression): Likewise. 19125 (c_parser_binary_expression): Likewise. 19126 (c_parser_sizeof_expression): Likewise. 19127 (c_parser_alignof_expression): Likewise. 19128 * c-typeck.c (build_indirect_ref): Check 19129 c_inhibit_evaluation_warnings rather than skip_evaluation. 19130 (build_conditional_expr, build_binary_op): Likewise. 19131 191322009-06-16 Richard Guenther <rguenther@suse.de> 19133 19134 * tree-ssa-alias.c (is_escape_site): Remove. 19135 * tree-ssa-alias.h (enum escape_type): Remove. 19136 (is_escape_site): Likewise. 19137 * tree-ssa-structalias.c (find_func_aliases): Handle escapes 19138 via casts and asms without deferring to is_escape_site. 19139 191402009-06-16 Jakub Jelinek <jakub@redhat.com> 19141 19142 PR middle-end/40446 19143 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't 19144 use gen_lowpart if op0 has complex mode. 19145 191462009-06-16 Richard Guenther <rguenther@suse.de> 19147 19148 * tree-ssa-structalias.c (do_ds_constraint): Stores in global 19149 variables add them to ESCAPED. 19150 (find_func_aliases): Do not make all indirectly stored values escaped. 19151 191522009-06-16 Rafael Avila de Espindola <espindola@google.com> 19153 19154 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to 19155 make_decl_one_only. 19156 191572009-06-16 Martin Jambor <mjambor@suse.cz> 19158 19159 PR tree-optimization/40432 19160 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR, 19161 check whether we need to force gimple register operand. 19162 191632009-06-16 Martin Jambor <mjambor@suse.cz> 19164 19165 PR tree-optimization/40413 19166 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to 19167 build_ref_for_offset. 19168 (propagate_subacesses_accross_link): Fix a typo in a comment. 19169 191702009-06-16 Ira Rosen <irar@il.ibm.com> 19171 19172 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction 19173 with additional parameter. 19174 * tree-vectorizer.h (enum vect_def_type): Add new value 19175 vect_nested_cycle. 19176 (enum vect_relevant): Add comments. 19177 (vect_is_simple_reduction): Add new argument. 19178 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments. 19179 Detect nested cycles. 19180 (vect_is_simple_reduction): Update documentation, add an argument to 19181 distinguish inner-loop reduction from nested cycle, detect nested 19182 cycles, fix printings and indentation, don't swap operands in case 19183 of nested cycle. 19184 (get_initial_def_for_reduction): Handle subtraction. 19185 (vect_create_epilog_for_reduction): Add new argument to specify 19186 reduction variable. 19187 (vect_finalize_reduction): Handle subtraction, fix comments. 19188 (vectorizable_reduction): Handle nested cycles. In case of nested 19189 cycle keep track of the reduction variable position. Call 19190 vect_is_simple_reduction with additional parameter. Use original 19191 statement code in reduction epilogue for nested cycle. Call 19192 vect_create_epilog_for_reduction with additional parameter. 19193 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert 19194 inner-loop vectorization. 19195 (vect_recog_widen_sum_pattern): Likewise. 19196 * tree-vect-stmts.c (process_use): Distinguish between nested cycles 19197 and reductions. 19198 (vect_mark_stmts_to_be_vectorized): Likewise. 19199 (vect_get_vec_def_for_operand): Handle nested cycles. 19200 192012009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 19202 19203 * doc/invoke.texi (Debugging Options): Fix option index entries 19204 for -fdump-statistics, -frandom-seed add entries for 19205 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed. 19206 (FRV Options): Fix entries for -mTLS, -mtls. 19207 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld. 19208 (i386 and x86-64 Options): Fix entry for -mno-red-zone. 19209 (M68hc1x Options): Fix @itemx for -mnominmax. 19210 (MCore Options): Fix entry for -mno-lsim. 19211 (MMIX Options): Fix entry for -mabi=mmixware. 19212 (PDP-11 Options): Fix entry for -mbcopy-builtin. 19213 192142009-06-16 Basile Starynkevitch <basile@starynkevitch.net> 19215 19216 * doc/plugins.texi (Interacting with the GCC Garbage Collector): 19217 Mention the plugin mode of gengtype. 19218 * doc/gty.texi (Source Files Containing Type Information): Likewise. 19219 * gengtype.c: Updated copyright. 19220 (plugin_files, nb_plugin_files) Added new static variables. 19221 (measure_input_list) Care about plugin_files. 19222 (write_rtx_next): Added early return in plugin mode. 19223 (create_file): Updated copyright year in generated file. Added 19224 asserts. 19225 (oprintf): Added early return if NULL outf. 19226 (get_output_file_with_visibility): Care of plugin_files. 19227 (get_output_file_name): May return null. 19228 (write_local): Added early return. 19229 (put_mangled_filename): Ditto. 19230 (finish_root_table): Added check for base_files. 19231 (write_roots): Care about null when plugins. 19232 (main): Added plugin mode. 19233 192342009-06-15 Ian Lance Taylor <iant@google.com> 19235 19236 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. 19237 * gcov.c (read_count_file): Add braces around variables declared 19238 before label. 19239 19240 * c.opt (Wjump-misses-init): New warning. 19241 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for 19242 -Wall and -Wc++-compat if not already set. 19243 (c_common_post_options): Clear warn_jump_misses_init if it was not 19244 set. 19245 * c-decl.c (struct c_binding): Change type field to a union with 19246 new label field. Make it the first field in the struct. Update 19247 references to type to use u.type instead. 19248 (struct c_spot_bindings): Define. 19249 (struct c_goto_bindings): Define. 19250 (c_goto_bindings_p): Define, along with VECs. 19251 (struct c_label_vars): Define. 19252 (struct c_scope): Add has_label_bindings field. 19253 (bind_label, set_spot_bindings): New static functions. 19254 (decl_jump_unsafe, update_spot_bindings): New static functions. 19255 (update_label_decls): New static function. 19256 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope. 19257 Update binding u.label field to shadowed field. 19258 (c_binding_start_stmt_expr): New function. 19259 (c_binding_end_stmt_expr): New function. 19260 (pushdecl): Don't call c_begin_vm_scope. 19261 (make_label): Add defining and p_label_vars parameters. Change 19262 all callers. 19263 (lookup_label): Correct test for whether a label has not yet been 19264 defined. Call bind_label rather than bind. 19265 (warn_about_goto): New static function. 19266 (lookup_label_for_goto): New function. 19267 (declare_label): Call bind_label rather than bind. 19268 (check_earlier_gotos): New static function. 19269 (define_label): Don't give errors about jumping into statement 19270 expressions or scopes of variably modified types. Call 19271 set_spot_bindings and check_earlier_gotos. Call bind_label 19272 instead of bind. Don't set label_context_stack_se or 19273 label_context_stack_vm. 19274 (c_get_switch_bindings): New function. 19275 (c_release_switch_bindings): New function. 19276 (c_check_switch_jump_warnings): New function. 19277 (start_function): Don't set label_context_stack_se or 19278 label_context_stack_vm. 19279 (finish_function): Likewise. 19280 * c-typeck.c (label_context_stack_se): Don't define. 19281 (label_context_stack_vm): Don't define. 19282 (c_finish_goto_label): Call lookup_label_for_goto rather than 19283 lookup_label. Don't give errors about jumping into a statement 19284 expression or the scope of a variably modified type. Don't set 19285 label_context_stack_se or label_context_stack_vm. 19286 (struct c_switch): Remove blocked_stmt_expr and blocked_vm 19287 fields. Add bindings field. 19288 (c_start_case): Don't set deleted fields. Set bindings field. 19289 (do_case): Rework order of tests. Don't check blocked_stmt_expr 19290 or blocked_vm. Call c_check_switch_jump_warnings. 19291 (c_finish_case): Don't test blocked_stmt_expr field. Call 19292 c_release_switch_bindings. 19293 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in 19294 c_switch_stack. Don't walk label_context_stack_se labels. Don't 19295 set label_context_stack_se. Call c_bindings_start_stmt_expr. 19296 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in 19297 c_switch_stack. Don't walk label_context_stack_se labels. Don't 19298 set label_context_stack_se. Call c_bindings_end_stmt_expr. 19299 (c_begin_vm_scope, c_end_vm_scope): Don't define. 19300 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define. 19301 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define. 19302 (C_DECL_UNJUMPABLE_VM): Don't define. 19303 (C_DECL_UNDEFINABLE_VM): Don't define. 19304 (struct c_label_list): Don't define. 19305 (struct c_label_context_se): Don't define. 19306 (struct c_label_context_vm): Don't define. 19307 (struct c_spot_bindings): Declare. 19308 (c_bindings_start_stmt_expr): Declare. 19309 (c_bindings_end_stmt_expr): Declare. 19310 (lookup_label_for_goto): Declare. 19311 (c_get_switch_bindings, c_release_switch_bindings): Declare. 19312 (c_check_switch_jump_warnings): Declare. 19313 (label_context_stack_se, label_context_stack_vm): Don't declare. 19314 (c_finish_goto_label): Update declaration. 19315 (c_begin_vm_scope, c_end_vm_scope): Don't declare. 19316 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init. 19317 (Warning Options): Document -Wjump-misses-init. 19318 193192009-06-15 Jakub Jelinek <jakub@redhat.com> 19320 19321 * tree-object-size.c (addr_object_size): Fix a pasto in the last 19322 change. 19323 193242009-06-15 Rafael Avila de Espindola <espindola@google.com> 19325 19326 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP. 19327 193282009-06-15 Aldy Hernandez <aldyh@redhat.com> 19329 19330 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl. 19331 193322009-06-15 Aldy Hernandez <aldyh@redhat.com> 19333 19334 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc. 19335 193362009-06-15 Rafael Avila de Espindola <espindola@google.com> 19337 19338 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body): 19339 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY. 19340 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP. 19341 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP. 19342 * dwarf2asm.c (dw2_force_const_mem): Update call to 19343 make_decl_one_only. 19344 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove. 19345 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP. 19346 * langhooks.c (lhd_comdat_group): Remove. 19347 * langhooks.h (lang_hooks_for_decls): Remove comdat_group. 19348 * tree.h (DECL_COMDAT_GROUP): New. 19349 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP. 19350 (tree_decl_with_vis): Add comdat_group. Remove one_only. 19351 (make_decl_one_only): Change signature. 19352 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to 19353 make_decl_one_only. 19354 (make_decl_one_only): Change signature. 19355 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP. 19356 193572009-06-15 Richard Guenther <rguenther@suse.de> 19358 19359 PR middle-end/40439 19360 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts. 19361 193622009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 19363 19364 * tree-ssa-math-opts.c: Remove extra divide. 19365 193662009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 19367 19368 * config/s390/s390.md ("bswap<mode>2"): Only available on z900. 19369 193702009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 19371 19372 * passes.c: Add bswap pass. 19373 * tree-pass.h: Add pass_optimize_bswap declaration. 19374 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt. 19375 Include rtl.h, expr.h and optabs.h for optab_handler check. 19376 (struct symbolic_number, pass_optimize_bswap): New definition. 19377 (do_shift_rotate, verify_symbolic_number_p): New functions. 19378 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions. 19379 (gate_optimize_bswap): New function. 19380 * tree.c (widest_int_cst_value): New function. 19381 * tree.h (widest_int_cst_value): Prototype added. 19382 193832009-06-14 Steven Bosscher <steven@gcc.gnu.org> 19384 19385 * cfgcleanup.c (old_insns_match_p): Remove code to substitute 19386 REG_EQUAL/REG_EQUIV notes. 19387 193882009-06-14 Richard Guenther <rguenther@suse.de> 19389 19390 PR middle-end/40389 19391 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call 19392 has its address taken if NRV was applied and it is addressable. 19393 * tree-ssa-structalias.c (get_constraint_for_address_of): New 19394 function split out from ... 19395 (get_constraint_for_1): ... here. 19396 (handle_rhs_call): Use it to mark the return slot escaped if 19397 it is addressable and NRV was applied. 19398 193992009-06-13 Aldy Hernandez <aldyh@redhat.com> 19400 19401 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin): 19402 Change first argument type to location_t. 19403 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same. 19404 Do not set input_location. 19405 Use loc instead of input_location throughout. 19406 194072009-06-13 Richard Guenther <rguenther@suse.de> 19408 19409 PR tree-optimization/40421 19410 * tree-predcom.c (should_unroll_loop_p): Remove. 19411 (tree_predictive_commoning_loop): Use can_unroll_loop_p. 19412 194132009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com> 19414 19415 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 19416 Add location argument. 19417 194182009-06-13 Aldy Hernandez <aldyh@redhat.com> 19419 19420 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to 19421 build_decl. 19422 * config/s390/s390.c (s390_build_builtin_va_list): Same. 19423 (s390_gimplify_va_arg): Pass location to create_artificial_label. 19424 * config/spu/spu-protos.h: Add location to 19425 spu_resolve_overloaded_builtin. 19426 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to 19427 spu_build_builtin_va_list. 19428 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location 19429 argument. Pass location to build_function_call_vec. 19430 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to 19431 build_decl. 19432 (emit_fpu_switch): Same. 19433 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label. 19434 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location 19435 to build_decl and create_artificial_label. 19436 (xtensa_gimplify_va_arg_expr): Same. 19437 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same. 19438 (xstormy16_gimplify_va_arg_expr): Same. 19439 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same. 19440 * config/arm/arm.c (arm_build_builtin_va_list): Same. 19441 * config/mips/mips.c (mips_build_builtin_va_list): Same. 19442 (mips16_build_function_stub): Same. 19443 (mips16_build_call_stub): Same. 19444 194452009-06-13 Richard Earnshaw <rearnsha@arm.com> 19446 19447 PR target/40327 19448 * arm/constraints.md (Pa, Pb): New constraints. 19449 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a 19450 split pattern to deal with them. 19451 194522009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de> 19453 19454 * doc/invoke.texi: Add missing option -Wp,OPTION in list, 19455 fix index entry for -Xpreprocessor. 19456 194572009-06-12 Aldy Hernandez <aldyh@redhat.com> 19458 19459 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 19460 Add location argument to build_decl call. 19461 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same. 19462 (rs6000_init_builtins): Same. 19463 (spe_init_builtins): Same. 19464 (rs6000_gimplify_va_arg): Add location argument to 19465 create_artificial_label call. 19466 194672009-06-12 Steven Bosscher <steven@gcc.gnu.org> 19468 19469 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar. 19470 * combine-stack-adj.c (pass_stack_adjustments): Use it. 19471 * Makefile.in: Fix GGC dependency for gcse.o. 19472 194732009-06-12 Aldy Hernandez <aldyh@redhat.com> 19474 19475 * tree-pretty-print.c (dump_generic_node): Dump column numbers. 19476 * gimple-pretty-print.c (dump_gimple_stmt): Same. 19477 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs 19478 created. 19479 * c-parser.c (c_parser_binary_expression): Use current column while 19480 building binary operations. 19481 * common.opt (fshow-column): Enable by default. 19482 * tree-vrp.c (check_array_ref): Use warning_at. 19483 (check_array_bounds): Use location from call back if expr has no 19484 location. 19485 * tree.h: Add location argument to maybe_fold_*. 19486 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*. 19487 (maybe_fold_offset_to_array_ref): Add location argument and use it. 19488 (maybe_fold_offset_to_component_ref): Same. 19489 (maybe_fold_offset_to_reference): Same. 19490 (maybe_fold_offset_to_address): Same. 19491 (maybe_fold_stmt_indirect): Same. 19492 (maybe_fold_stmt_addition): Same. 19493 (fold_stmt_r): Pass location to maybe_fold_*. 19494 (fold_gimple_assign): Same. 19495 * c-tree.h: Add location argument to finish_decl, 19496 default_function_array_conversion, store_init_value. 19497 * c-decl.c (define_label): Use error_at. 19498 (c_make_fname_decl): Pass location to finish_decl. 19499 (finish_decl): New location argument. 19500 (build_compound_literal): Pass location to store_init_value. 19501 (grokdeclarator): Pass location to finish_decl. 19502 (grokfield): Same. 19503 * c-typeck.c (array_to_pointer_conversion): New location argument. 19504 (function_to_pointer_conversion): Same. 19505 (default_function_array_conversion): Same. 19506 (parser_build_unary_op): Pass location to overflow_warning. 19507 (parser_build_binary_op): Same. Use warning_at. 19508 (build_unary_op): Pass location to array_to_pointer_conversion. 19509 (build_c_cast): Pass location to digest_init. 19510 (build_modify_expr): New location argument. 19511 (convert_for_assignment): Same. 19512 (store_init_value): Same. 19513 (digest_init): Same. 19514 (output_init_element): Pass location to digest_init and 19515 array_to_pointer_conversion. 19516 (c_finish_return): Pass location to convert_for_assignment. 19517 * gimplify.c (gimplify_conversion): Pass location to 19518 maybe_fold_offset_to_address. 19519 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location 19520 to maybe_fold_stmt_addition. 19521 * c-omp.c (c_finish_omp_atomic): Pass new location to 19522 build_modify_expr. 19523 (c_finish_omp_for): Same. 19524 * c-common.c (overflow_warning): New argument. 19525 * c-common.h: New argument to build_modify_expr, overflow_warning. 19526 * c-parser.c (c_parser_declaration_or_fndef): Pass location to 19527 finish_decl. 19528 (c_parser_initializer): Pass location to 19529 default_function_array_conversion. 19530 (c_parser_initelt): Same. 19531 (c_parser_initval): Same. 19532 (c_parser_asm_operands): Same. 19533 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr. 19534 (c_parser_conditional_expression): Same. 19535 (c_parser_binary_expression): Add location info to stack. Use it. 19536 (c_parser_unary_expression): Pass location to 19537 default_function_array_conversion, parser_build_unary_op, 19538 build_indirect_ref, c_parser_postfix_expression_after_primary. 19539 (c_parser_postfix_expression_after_primary): New location argument. 19540 Use it. 19541 (c_parser_expression_conv): Pass location to 19542 default_function_array_conversion. 19543 (c_parser_expr_list): Same. 19544 (c_parser_omp_atomic): Same. 19545 (c_parser_omp_for_loop): Same. 19546 * c-tree.h (struct c_declarator): Add comment to id_loc. 19547 (build_array_declarator): New argument. 19548 * c-decl.c (build_array_declarator): Add location argument. 19549 (grokdeclarator): Set id_loc for cdk_array. 19550 * c-parser.c (c_parser_direct_declarator_inner): Pass location to 19551 build_array_declarator. 19552 * tree.c (build_omp_clause): Add location argument. 19553 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro. 19554 (OMP_CLAUSE_LOCATION): New macro. 19555 (struct tree_omp_clause): Add location field. 19556 (build_omp_clause): Add argument. 19557 * cp/pt.c (tsubst_omp_for_iterator): Pass location to 19558 build_omp_clause. 19559 * cp/parser.c (cp_parser_omp_var_list_no_open): Same. 19560 (cp_parser_omp_clause_collapse): Same. 19561 (cp_parser_omp_clause_default): Same. 19562 (cp_parser_omp_clause_if): Same. 19563 (cp_parser_omp_clause_nowait): Same. 19564 (cp_parser_omp_clause_num_threads): Same. 19565 (cp_parser_omp_clause_ordered): Same. 19566 (cp_parser_omp_clause_schedule): Same. 19567 (cp_parser_omp_clause_untied): Same. 19568 (cp_parser_omp_for_loop): Same. 19569 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses. 19570 * c-tree.h (c_start_case): Add location argument. 19571 (c_process_expr_stmt): Same. 19572 (c_finish_goto_*): Same. 19573 * tree-parloops.c (initialize_reductions): Pass location to 19574 build_omp_clause. 19575 (create_parallel_loop): Same. 19576 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same. 19577 (gfc_trans_omp_reduction_list): Same. 19578 (gfc_trans_omp_clauses): Same. 19579 (gfc_trans_omp_do): Same. 19580 * c-typeck.c (c_finish_goto_label): Same. 19581 (c_finish_goto_ptr): New location argument. 19582 (c_start_case): Same. 19583 (emit_side_effect_warnings): Same. 19584 (c_process_expr_stmt): Same. 19585 (c_finish_stmt_expr): Same. 19586 (c_finish_omp_clauses): Use error_at instead of error. 19587 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to 19588 build_omp_clause. 19589 * c-omp.c (c_split_parallel_clauses): New location argument. 19590 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location 19591 to build_omp_clause. 19592 (convert_local_reference_stmt): Same. 19593 (convert_gimple_call): Same. 19594 * c-common.h (c_split_parallel_clauses): New argument. 19595 * c-parser.c (c_parser_statement_after_labels): Pass location to 19596 c_finish_goto_label. 19597 (c_parser_switch_statement): Pass location to c_start_case. 19598 (c_parser_for_statement): Pass location to c_finish_expr_stmt, 19599 and c_process_expr_stmt. 19600 (c_parser_omp_variable_list): Add location argument. 19601 (c_parser_omp_clause_collapse): Pass location to build_omp_clause. 19602 (c_parser_omp_clause_default): Same. 19603 (c_parser_omp_clause_if): Same. 19604 (c_parser_omp_clause_num_threads): Same. 19605 (-c_parser_omp_clause_ordered): Same. 19606 (c_parser_omp_clause_reduction): Pass location to 19607 c_parser_omp_variable_list. 19608 (c_parser_omp_clause_schedule): Pass location to build_omp_clause. 19609 (c_parser_omp_clause_untied): Same. 19610 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt. 19611 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses. 19612 19613 * c-tree.h (check_for_loop_decls, undeclared_variable, 19614 build_component_ref, build_array_ref, build_external_ref, 19615 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op, 19616 build_conditional_expr, build_compound_expr, c_cast_expr, 19617 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr, 19618 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New 19619 argument. 19620 * c-semantics.c (build_stmt): Same. 19621 (build_case_label): Same. 19622 * c-decl.c (c_finish_incomplete_decl): Pass location on down. 19623 (undeclared_variable): New argument. 19624 (make_label): Same. 19625 (lookup_label): Pass location on down. 19626 (define_label): Same. 19627 (finish_decl): Same. 19628 (build_compound_literal): Same. 19629 (finish_struct): Same. 19630 (finish_function): Do not set location here. 19631 (check_for_loop_decls): New argument. 19632 * tree.c (save_expr): Set location. 19633 (build_empty_stmt): New argument. 19634 * tree.h (build_empty_stmt): New argument to build_empty_stmt. 19635 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node. 19636 * builtins.c (gimplify_va_arg_expr): Use locations. 19637 (expand_builtin_sync_operation): Same. 19638 * c-typeck.c (build_component_ref): New argument. 19639 (build_array_ref): Same. 19640 (build_external_ref): Same. 19641 (c_expr_sizeof_expr): Same. 19642 (c_expr_sizeof_type): Same. 19643 (parser_build_unary_op): Same. 19644 (build_conditional_expr): Same. 19645 (build_compound_expr): Pass location on down. 19646 (build_compound_expr): New argument. 19647 (build_c_cast): Same. 19648 (c_cast_expr): Same. 19649 (build_asm_expr): Same. 19650 (c_finish_return): Same. 19651 (c_process_expr_stmt): Pass location on down. 19652 (c_finish_stmt_expr): New argument. 19653 (push_clenaup): Same. 19654 (c_finish_omp_parallel): Same. 19655 (c_finish_omp_task): Same. 19656 * gimplify.c (gimplify_call_expr): Pass location on down. 19657 * c-omp.c (c_finish_omp_master): New argument. 19658 (c_finish_omp_critical): Same. 19659 (c_finish_omp_ordered): Same. 19660 (c_finish_omp_barrier): Same. 19661 (-c_finish_omp_taskwait): Same. 19662 (c_finish_omp_atomic): Same. 19663 (c_finish_omp_flush): Same. 19664 * tree-inline.c (copy_tree_body_r): Pass location on down. 19665 (inline_forbidden_p): Remove use of input_location. 19666 * c-gimplify.c (c_build_bind_expr): New argument. 19667 * c-common.c (c_common_truthvalue_conversion): Pass location on down. 19668 (c_sizeof_or_alignof_type): New argument. 19669 (c_alignof_expr): Same. 19670 (build_va_arg): Same. 19671 (c_add_case_label): Same. 19672 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr, 19673 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label, 19674 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt, 19675 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered, 19676 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush, 19677 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses): 19678 New argument. 19679 * stub-objc.c (objc_build_selector_expr): Same. 19680 (objc_build_throw_stmt): Same. 19681 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down. 19682 (c_parser_initelt): Same. 19683 (c_parser_compound_statement): Same. 19684 (c_parser_compound_statement_nostart): Same. 19685 (c_parser_label): Same. 19686 (c_parser_statement_after_labels): Same. 19687 (c_parser_if_body): Same. 19688 (c_parser_else_body): Same. 19689 (c_parser_if_statement): Same. 19690 (c_parser_switch_statement): Same. 19691 (c_parser_while_statement): Same. 19692 (c_parser_do_statement): Same. 19693 (c_parser_for_statement): Same. 19694 (c_parser_asm_statement): Same. 19695 (c_parser_conditional_expression): Same. 19696 (c_parser_binary_expression): Same. 19697 (c_parser_cast_expression): Same. 19698 (c_parser_unary_expression): Same. 19699 (c_parser_sizeof_expression): Same. 19700 (c_parser_alignof_expression): Same. 19701 (c_parser_postfix_expression): Same. 19702 (c_parser_expression): Same. 19703 (c_parser_objc_receiver): Same. 19704 (c_parser_omp_variable_list): Same. 19705 (c_parser_omp_structured_block): Same. 19706 (c_parser_omp_atomic): New argument. 19707 (c_parser_omp_barrier): Same. 19708 (c_parser_omp_critical): Same. 19709 (c_parser_omp_flush): Pass location on down. 19710 (c_parser_omp_for_loop): New argument. 19711 (c_parser_omp_for): Same. 19712 (c_parser_omp_master): Same. 19713 (c_parser_omp_ordered): Same. 19714 (c_parser_omp_sections_scope): Same. 19715 (c_parser_omp_sections): Same. 19716 (c_parser_omp_parallel): Same. 19717 (c_parser_omp_single): Same. 19718 (c_parser_omp_task): Same. 19719 (c_parser_omp_taskwait): Pass location on down. 19720 (c_parser_omp_construct): Same. 19721 (c_parser_omp_threadprivate): Same. 19722 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h, 19723 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c, 19724 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c, 19725 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c, 19726 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c, 19727 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c, 19728 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h, 19729 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c, 19730 config/i386/i386.c, stmt.c: 19731 Add location argument to the following function definitions and/or 19732 function calls: build_decl, objcp_start_struct, objcp_finish_struct, 19733 start_struct, finish_struct, PUSH_FIELD, create_artificial_label, 19734 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl, 19735 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin, 19736 do_case, c_finish_bc_stmt, build_compound_literal, 19737 build_function_call. 19738 * c-decl.c (build_compound_literal): Add location argument. 19739 Make all diagnostic calls use location. 19740 (start_struct): Same. 19741 (finish_struct): Same. 19742 (start_enum): Same. 19743 (build_enumerator): Same. 19744 (start_function): Same. 19745 (grokdeclarator): Make all diagnostic calls use location. 19746 (store_parm_decls_oldstyle): Same. 19747 * c-typeck.c (build_function_call): Add location argument. 19748 Make all diagnostic calls use location. 19749 (do_case): Same. 19750 (c_finish_bc_stmt): Same. 19751 * tree-nested.c (get_trampoline_type): Add argument. 19752 Pass location to build_decl. 19753 (lookup_tramp_for_decl): Pass location to get_trampoline_type. 19754 * rtl.h (RTL_LOCATION): New. 19755 * c-common.c (c_add_case_label): Add location argument. 19756 Make all diagnostic calls use location. 19757 * c-common.h: Add location argument to make_fname_decl, do_case, 19758 c_add_case_label, build_function_call, resolve_overloaded_builtin. 19759 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc. 19760 Set it appropriately for every case. Pass enum_loc to start_enum 19761 call. Pass value_loc first to build_enumerator. Pass enum_loc to 19762 parser_xref_tag. 19763 (c_parser_struct_or_union_specifier): Save location. Use it for 19764 start_struct, finish_struct, and parser_xref_tag. 19765 197662009-06-12 Ian Lance Taylor <iant@google.com> 19767 19768 * fold-const.c (fold_unary): Rename local variable and to and_expr. 19769 19770 * c-opts.c (c_common_handle_option): For -Wc++-compat set 19771 cpp_opts->warn_cxx_operator_names. 19772 197732009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com> 19774 19775 PR tree-opt/38865 19776 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup 19777 is returns NULL and OP is a VCE, look through the VCE. 19778 197792009-06-12 Ian Lance Taylor <iant@google.com> 19780 19781 PR bootstrap/40430 19782 * collect2.c (main): Use CONST_CAST2 in code inside #if 19783 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES. 19784 197852009-06-12 Joey Ye <joey.ye@intel.com> 19786 19787 PR middle-end/39146 19788 * cfgexpand.c (get_decl_align_unit): Update 19789 max_used_stack_slot_alignment with align instead of 19790 stack_alignment_needed. 19791 19792 * function.c (assign_stack_local_1): Update 19793 max_used_stack_slot_alignment with alignment_in_bits instead 19794 of stack_alignment_needed. 19795 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment 19796 here. 19797 197982009-06-12 Jakub Jelinek <jakub@redhat.com> 19799 19800 * dwarf2out.c (last_var_location_insn): New variable. 19801 (dwarf2out_end_epilogue): Clear last_var_location_insn. 19802 (dwarf2out_var_location): Don't record anything after last real 19803 insn. Only change labels if there were any real instructions 19804 in between last note and this one, or if changed sections. 19805 198062009-06-11 Richard Henderson <rth@redhat.com> 19807 19808 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER 19809 note when storing the frame pointer in a register. 19810 (FRP): Don't redefine to nothing for epilogue. 19811 (alpha_expand_epilogue): Mark register and sp restores. 19812 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust. 19813 19814 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for 19815 when gen_lowpart is needed. 19816 198172009-06-11 Richard Henderson <rth@redhat.com> 19818 19819 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset. 19820 19821 * dwarf2out.c (need_data_align_sf_opcode): New. 19822 (div_data_align): Move earlier. 19823 (def_cfa_1, reg_save): Use it. 19824 198252009-06-11 H.J. Lu <hongjiu.lu@intel.com> 19826 19827 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New. 19828 (OPTION_MASK_ISA_CRC32_UNSET): Likewise. 19829 (ix86_handle_option): Handle OPT_mcrc32. 19830 (ix86_target_string): Add -mcrc32. 19831 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32. 19832 19833 * config/i386/i386.h (TARGET_CRC32): New. 19834 19835 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32. 19836 (sse4_2_crc32di): Likewise. 19837 19838 * config/i386/i386.opt (mcrc32): New. 19839 19840 * doc/invoke.texi: Document -mcrc32. 19841 198422009-06-11 Richard Henderson <rth@redhat.com> 19843 19844 * common.opt (gdwarf-): Accept a version number. 19845 * doc/invoke.texi (gdwarf-): Update docs. 19846 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus. 19847 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf 19848 version level, and record it. 19849 19850 * dwarf2.h (DW_CIE_VERSION): Remove. 19851 * dwarf2out.c (DWARF_VERSION): Remove. 19852 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3. 19853 (output_call_frame_info): Use CIE version 3 for dwarf3, 19854 or if the return register column is out of range for version 1. 19855 (dwarf_stack_op_name): Add all dwarf3 values. 19856 (DEBUG_PUBTYPES_SECTION): New. 19857 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr 19858 encoding change for dwarf3. 19859 (output_die) [dw_val_class_die_ref]: Likewise. 19860 (output_compilation_unit_header): Emit correct version for dwarf3. 19861 (output_line_info): Likewise. 19862 (output_pubnames): Update for DWARF_VERSION removal. 19863 (output_aranges): Likewise. 19864 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3. 19865 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION. 19866 (dwarf2out_finish): Likewise. 19867 198682009-06-11 David Daney <ddaney@caviumnetworks.com> 19869 19870 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit 19871 in r148403. 19872 198732009-06-11 David Daney <ddaney@caviumnetworks.com> 19874 19875 PR c/39252 19876 * doc/extend.texi ( __builtin_unreachable): Document new builtin. 19877 * builtins.c (expand_builtin_unreachable): New function. 19878 (expand_builtin): Handle BUILT_IN_UNREACHABLE case. 19879 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin. 19880 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no 19881 successors. 19882 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when 19883 searching for missing barriers. 19884 198852009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 19886 19887 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov 19888 when -fprofile-generate* was passed. 19889 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise. 19890 198912009-06-11 Anthony Green <green@moxielogic.com> 19892 19893 * config/moxie/moxie.md: Define length attribute for all instructions. 19894 (rCC): Define. 19895 (*b<cond:code>): Support limited branch ranges for new PC-relative 19896 branch instructions. 19897 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define. 19898 198992009-06-11 Jakub Jelinek <jakub@redhat.com> 19900 19901 * config/i386/i386.c (min_insn_size): Use get_attr_length 19902 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP. 19903 For __asm return 0. 19904 19905 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before 19906 instead of emit_insn_before. 19907 199082009-06-10 Ian Lance Taylor <iant@google.com> 19909 19910 PR bootstrap/40408 19911 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to 19912 GIMPLE_SWITCH. 19913 199142009-06-10 Revital Eres <eres@il.ibm.com> 19915 19916 * passes.c (init_optimization_passes): Reschedule 19917 predictive-commoning pass before complete unroll pass. 19918 199192009-06-10 Martin Jambor <mjambor@suse.cz> 19920 19921 * cgraph.c (cgraph_node_can_be_local_p): New function. 19922 (cgraph_make_node_local): New function. 19923 * cgraph.h (cgraph_node_can_be_local_p): Declare. 19924 (cgraph_make_node_local): Declare. 19925 199262009-06-10 Nathan Froyd <froydnj@codesourcery.com> 19927 19928 * tree.h (tree_base): Add packed_flag and user_align fields. 19929 Decrease size of spare field. 19930 (TYPE_USER_ALIGN): Use user_align from tree_base. 19931 (DECL_USER_ALIGN): Likewise. 19932 (TYPE_PACKED): Use packed_flag from tree_base. 19933 (DECL_PACKED): Likewise. 19934 (tree_type): Delete packed_flag and user_align fields. Widen 19935 precision field. Widen mode field and shuffle fields to align 19936 mode on an 8-bit boundary. 19937 (tree_decl_common): Delete decl_flag_1 and user_align fields. 19938 Renumber decl_flag_* fields. Fix comments. Widen 19939 decl_common_unused field. 19940 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields. 19941 (DECL_EXTERNAL): Likewise. 19942 (DECL_BIT_FIELD): Likewise. 19943 (DECL_NONADDRESSABLE_P): Likewise. 19944 (TYPE_DECL_SUPRESS_DEBUG): Likewise. 19945 * config/arm/arm-modes.def (XImode): Make it an INT_MODE. 19946 199472009-06-10 Ian Lance Taylor <iant@google.com> 19948 19949 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I. 19950 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P. 19951 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O. 19952 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc). 19953 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old 19954 DEF_VEC_ALLOC_FUNC_P. 19955 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc). 19956 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old 19957 DEF_VEC_ALLOC_FUNC_O. 19958 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc). 19959 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old 19960 DEF_VEC_ALLOC_FUNC_I. 19961 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare. 19962 (vec_stack_p_reserve_exact_1): Declare. 19963 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare. 19964 (vec_stack_free): Declare. 19965 (VEC_stack_alloc): Define. 19966 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define. 19967 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define. 19968 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define. 19969 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P 19970 for void_p. 19971 (stack_vecs): New static variable. 19972 (vec_stack_p_reserve_exact_1): New function. 19973 (vec_stack_o_reserve_1): New static function. 19974 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions. 19975 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions. 19976 (vec_stack_free): New function. 19977 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK. 19978 (VEC_df_ref_stack_alloc): Define. 19979 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and 19980 DEF_VEC_ALLOC_P_STACK. 19981 (VEC_df_mw_hardreg_ptr_stack_alloc): Define. 19982 (struct df_collection_rec): Change _vec fields to VEC. Remove 19983 _use fields. 19984 (df_free_collection_rec): Adjust for new fields. 19985 (df_insn_rescan): Use new df_collection_rec fields. 19986 (df_notes_rescan, df_canonize_collection_rec): Likewise. 19987 (df_ref_create_structure, df_ref_record): Likewise. 19988 (df_get_conditional_uses, df_get_call_refs): Likewise. 19989 (df_insn_refs_collect, df_bb_refs_collect): Likewise. 19990 (df_bb_refs_record, df_record_entry_block_defs): Likewise. 19991 (df_record_exit_block_uses, df_bb_verify): Likewise. 19992 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers. 19993 (df_sort_and_compress_refs): Change ref_vec parameter to VEC. 19994 Remove count parameter. Change return type to void. Change all 19995 callers. 19996 (df_sort_and_compress_mws): Change mw_vec parameter to VEC. 19997 Remove count parameter. Change return type to void. Change all 19998 callers. 19999 (df_install_refs): Change old_vec parameter to VEC. Remove count 20000 parameter. Change all callers. 20001 (df_install_mws): Change old_vec parameter to VEC. Remove count 20002 parameter. Change all callers. 20003 (df_refs_verify): Change new_rec parameter to VEC. Change call 20004 callers. 20005 (df_mws_verify): Likewise. 20006 200072009-06-10 Alexandre Oliva <aoliva@redhat.com> 20008 20009 * gcc.c (compare_files): Cast munmap argumento to caddr_t. 20010 200112009-06-10 H.J. Lu <hongjiu.lu@intel.com> 20012 20013 * doc/extend.texi: Add description for __builtin_ia32_crc32di. 20014 200152009-06-10 Anthony Green <green@moxielogic.com> 20016 20017 * config/moxie/crti.asm: New file. 20018 * config/moxie/crtn.asm: New file. 20019 * config/moxie/moxie.c: New file. 20020 * config/moxie/moxie.h: New file. 20021 * config/moxie/sfp-machine.h: New file. 20022 * config/moxie/moxie-protos.h: New file. 20023 * config/moxie/t-moxie: Created. 20024 * config/moxie/t-moxie-softfp: Created. 20025 * config/moxie/moxie.md: Created. 20026 * config/moxie/constraints.md: Created. 20027 * config.gcc: Add moxie support. 20028 * doc/md.texi (Machine Constraints): Add moxie constraints. 20029 * doc/contrib.texi (Contributors): Mention moxie port. 20030 * doc/install.texi (Specific): Mention the moxie port. 20031 200322009-06-09 Ian Lance Taylor <iant@google.com> 20033 20034 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if 20035 compiling with C++. 20036 * optabs.c (optab_table): Only use designated initializers if 20037 HAVE_DESIGNATED_INITIALIZERS is defined. 20038 (convert_optab_table): Likewise. 20039 (init_optabs): Always call init_insn_codes if 20040 HAVE_DESIGNATED_INITIALIZERS is not defined. 20041 200422009-06-09 Ian Lance Taylor <iant@google.com> 20043 20044 * targhooks.c (default_builtin_vectorized_function): Change fn 20045 parameter to unsigned int. 20046 (default_builtin_vectorized_conversion): Change code parameter to 20047 unsigned int. 20048 (default_builtin_reciprocal): Change fn parameter to unsigned int. 20049 * targhooks.h: Update declarations. 20050 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code 20051 parameter to unsigned int. 20052 20053 * c-typeck.c (comptypes_check_enum_int): New static function. 20054 (comptypes_internal): Add enum_and_int_p parameter. Change all 20055 callers. 20056 (comp_target_types): Add location parameter. Change all callers. 20057 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter. 20058 Change all callers. 20059 (function_types_compatible_p, type_lists_compatible_p): Likewise. 20060 (build_conditional_expr): Add colon_loc parameter. Change all 20061 callers. 20062 (convert_for_assignment): Add location parameter. Change all callers. 20063 * c-parser.c (c_parser_conditional_expression): Pass location of 20064 colon to build_conditional_expr. 20065 * c-tree.h (build_conditional_expr): Update declaration. 20066 200672009-06-09 Sebastian Pop <sebastian.pop@amd.com> 20068 20069 * graphite.c: Revert previous patch. 20070 200712009-06-09 Sebastian Pop <sebastian.pop@amd.com> 20072 20073 PR bootstrap/40103 20074 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat". 20075 200762009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com> 20077 20078 * tree-ssa-loop-prefetch.c 20079 (loop_prefetch_arrays): Fixed a portability problem in printf format 20080 string. 20081 200822009-06-09 Martin Jambor <mjambor@suse.cz> 20083 20084 PR tree-optimization/40351 20085 * tree-sra.c (propagate_subacesses_accross_link): Check that a 20086 refrence to a potential artifical subaccess can be constructed. 20087 200882009-06-08 Kaz Kojima <kkojima@gcc.gnu.org> 20089 20090 * config/sh/sh-protos.h (sh_optimization_options): Declare. 20091 (sh_override_options): Likewise. 20092 * config/sh/sh.c: Include params.h. 20093 (sh_optimization_options): New. 20094 (sh_override_options): Likewise. 20095 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options. 20096 (OVERRIDE_OPTIONS): Use sh_override_options. 20097 200982009-06-08 Jakub Jelinek <jakub@redhat.com> 20099 20100 * dwarf2out.c (emit_cfa_remember): New variable. 20101 (add_fde_cfi): If emit_cfa_remember, recurse to add 20102 DW_CFA_remember_state first. 20103 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state, 20104 instead just set emit_cfa_remember. 20105 201062009-06-08 Jan Hubicka <jh@suse.cz> 20107 20108 PR debug/40126 20109 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table. 20110 201112009-06-08 Jan Hubicka <jh@suse.cz> 20112 20113 PR middle-end/39834 20114 * cgraphunit.c (save_inline_function_body): Do not copy transform 20115 hooks for saved inline bodies. 20116 * ipa-passes.c (do_per_function): Do not add the hoks multiple times 20117 for given function. 20118 201192009-06-08 Adam Nemet <anemet@caviumnetworks.com> 20120 20121 * jump.c (returnjump_p): Handle delayed branches. Add missing 20122 function comment. 20123 201242009-06-08 Jan Hubicka <jh@suse.cz> 20125 20126 PR middle-end/40102 20127 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the 20128 original node might've been modified. 20129 * tree-inline.c (copy_bb): Do not assume that all clones are the same. 20130 201312009-06-08 Jakub Jelinek <jakub@redhat.com> 20132 20133 * tree-object-size.c (addr_object_size): Add OSI argument. 20134 Handle also INDIRECT_REF with SSA_NAME inside of it as base address. 20135 (compute_builtin_object_size, expr_object_size): Adjust callers. 20136 (plus_stmt_object_size): Call addr_object_size instead of 20137 compute_builtin_object_size. 20138 201392009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com> 20140 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 20141 20142 * tree-ssa-loop-prefetch.c 20143 (gather_memory_references): Introduced a counter for the number of 20144 memory references. 20145 (anything_to_prefetch_p): Introduced a counter for the number of 20146 prefetches. 20147 (is_loop_prefetching_profitable): New function with a cost model 20148 for prefetching. 20149 (loop_prefetch_arrays): Use the new cost model to determine if 20150 prefetching is profitable. 20151 * params.def (MIN_INSN_TO_PREFETCH_RATIO, 20152 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters. 20153 * params.h (MIN_INSN_TO_PREFETCH_RATIO, 20154 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters. 20155 * doc/invoke.texi (MIN_INSN_TO_PREFETCT_RATIO, 20156 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters. 20157 201582009-06-08 Michael Matz <matz@suse.de> 20159 20160 PR debug/40012 20161 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all 20162 partitions use the same. 20163 (expand_one_var): Deal with DECL_RTL sometimes begin set also 20164 for basevars of SSA_NAMEs. 20165 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs, 20166 to not expand them twice. 20167 (gimple_expand_cfg): Clear DECL_RTL for those decls that have 20168 multiple places. 20169 201702009-06-08 Alexandre Oliva <aoliva@redhat.com> 20171 20172 * common.opt (fcompare-debug=, fcompare-debug-second): New. 20173 (fdump-final-insns=, gtoggle): New. 20174 * doc/invoke.texi: Document them. 20175 * final.c (rest_of_clean_state): Dump final insn stream. 20176 * gcc.c (invoke_as): Hook in -fcompare-debug. 20177 (static_spec_functions): Add compare-debug-dump-opt, 20178 compare-debug-self-opt and compare-debug-auxbase-opt. 20179 (compare_debug, compare_debug_second, compare_debug_opt): New. 20180 (switches_debug_check, n_switches_debug_check): New. 20181 (debug_auxbase_opt, debug_check_temp_file): New. 20182 (process_command): Handle -fno-compare-debug, -fcompare-debug and 20183 -fcompare-debug=*. 20184 (do_self_spec): Handle arguments after switches. 20185 (do_spec_1): Add .gk extension to temp file basenames for compare. 20186 (check_live_switch): Take SWITCH_IGNORE into account, and earlier. 20187 (cc1_options): Use it instead of normal auxbase computation for 20188 the second compare-debug compilation. 20189 (compare_files): New. 20190 (main): Set up and implement compare debug mode. 20191 (compare_debug_dump_opt_spec_function): New. 20192 (compare_debug_self_opt_spec_function): New. 20193 (compare_debug_auxbase_opt_spec_function): New. 20194 * toplev.c (process_options): Handle flag_gtoggle, 20195 flag_dump_final_insns. 20196 * coverage.c (coverage_begin_output): Don't overwrite .gcno file 20197 during -fcompare-debug-second compilation. 20198 201992009-06-07 Ian Lance Taylor <iant@google.com> 20200 20201 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr. 20202 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define. 20203 20204 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch 20205 with no default node. Change warning with %H to warning_at. 20206 Don't clear warn_switch around case checking. 20207 * doc/invoke.texi (Warning Options): Clarify distinction between 20208 -Wswitch and -Wswitch-enum. 20209 202102009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20211 20212 * tree-pass.h (TODO_update_ssa_any): Document internal use only. 20213 202142009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20215 20216 * gbl-ctors.h: Add header guard. 20217 202182009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20219 20220 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses, 20221 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt, 20222 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses, 20223 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove 20224 prototypes for removed functions. 20225 (expressions_equal_p): Move to ... 20226 * tree-ssa-sccvn.h: ... here and ... 20227 * matrix-reorg.c: ... adjust includes. 20228 202292009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20230 20231 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output. 20232 202332009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20234 20235 * c-decl.c (finish_decl): Use bool for variable was_incomplete. 20236 (finish_function): Remove erroneous whitespace. 20237 202382009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20239 20240 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix. 20241 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB 20242 202432009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20244 20245 * errors.c (internal_error): Commentary typo fix. 20246 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto. 20247 * tree-ssa-pre.c: Ditto. 20248 202492009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20250 20251 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of 20252 them is supposed to hold actual statements. 20253 202542009-06-06 Ian Lance Taylor <iant@google.com> 20255 20256 * doc/extend.texi (Attribute Syntax): Document that C++ labels on 20257 empty statements can now have attributes. 20258 202592009-06-05 Shujing Zhao <pearly.zhao@oracle.com> 20260 20261 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable. 20262 * config/mips/mips.md: Ditto. 20263 202642009-06-05 Nathan Froyd <froydnj@codesourcery.com> 20265 20266 * config/rs6000/eabi.asm (__eabi_convert): Don't define if 20267 _RELOCATABLE. 20268 (__eabi_uconvert): Likewise. 20269 202702009-06-05 Nathan Froyd <froydnj@codesourcery.com> 20271 20272 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and 20273 CFI_* definitions with IN_GCC. 20274 202752009-06-05 David Edelsohn <edelsohn@gnu.org> 20276 20277 * xcoffout.h (xcoffout_source_line): Update prototype. 20278 202792009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 20280 20281 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use 20282 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM. 20283 202842009-06-05 Jakub Jelinek <jakub@redhat.com> 20285 20286 PR middle-end/40340 20287 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune 20288 inlined_function_outer_scope_p blocks for artificial inlines 20289 even at -g0/-g1. 20290 * tree.c (tree_nonartificial_location): Rewrite using 20291 block_nonartificial_location. 20292 202932009-06-05 Revital Eres <eres@il.ibm.com> 20294 Leehod Baruch <leehod@il.ibm.com> 20295 20296 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF. 20297 (expand_expr_real_1): Remove comment. 20298 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 20299 Vectorize misaligned access when the target supports it. 20300 (vect_supportable_dr_alignment): Check for unaligned access support. 20301 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store 20302 and remove asset. 20303 203042009-06-05 Julian Brown <julian@codesourcery.com> 20305 20306 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP. 20307 * config/arm/ieee754-sf.S (cmpsf2): Likewise. 20308 203092009-06-05 Richard Guenther <rguenther@suse.de> 20310 20311 PR bootstrap/40350 20312 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator 20313 as possibly unused. 20314 203152009-06-05 Jakub Jelinek <jakub@redhat.com> 20316 20317 * config/s390/s390.c (global_not_special_regno_p): New static inline. 20318 (save_gprs): Don't tell unwinder when a global register is saved. 20319 (s390_emit_epilogue): Emit needed epilogue unwind info. 20320 203212009-06-05 Alexandre Oliva <aoliva@redhat.com> 20322 20323 * dwarf2out.c (deferred_asm_name): New. 20324 (add_name_and_src_coords_attributes): Defer creation of 20325 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not 20326 computed yet. 20327 (move_linkage_attr): New. 20328 (dwarf2out_finish): Revisit deferrals and emit attributes at the 20329 right place. 20330 203312009-06-05 Alexandre Oliva <aoliva@redhat.com> 20332 20333 * tree-nested.c (finalize_nesting_tree_1): Declare the 20334 frame_decl in the binding tree. 20335 203362009-06-04 Cary Coutant <ccoutant@google.com> 20337 20338 * basic-block.h (struct basic_block_def): Add discriminator field. 20339 * dbxout.c (dbxout_source_line): Add new parameter. Change all 20340 callers. 20341 * debug.c (do_nothing_debug_hooks): Add additional entry. 20342 (debug_nothing_int_charstar_int): New function. 20343 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook. 20344 (debug_nothing_int_charstar_int): New declaration. 20345 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write 20346 discriminator value in .loc directive. 20347 * final.c (last_discriminator): New variable. 20348 (discriminator): New variable. 20349 (final_start_function): Initialize above variables, pass current 20350 discriminator to debug hook. 20351 (notice_source_line): Check for discriminator change. 20352 * gimple-pretty-print.c (dump_bb_header): Print discriminator value. 20353 * sdbout.c (sdbout_source_line): New parameter. 20354 * tree-cfg.c (struct locus_discrim_map): New structure type. 20355 (discriminator_per_locus): New hash table. 20356 (build_gimple_cfg): Allocate and free discriminator hash table. 20357 (make_edges): Call assign_discriminator. 20358 (locus_map_hash): New function. 20359 (locus_map_eq): New function. 20360 (next_discriminator_for_locus): New function. 20361 (same_line_p): New function. 20362 (assign_discriminator): New function. 20363 (make_cond_expr_edges): Call assign_discriminator. 20364 (make_gimple_switch_edges): Likewise. 20365 (first_non_label_stmt): New function. 20366 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change 20367 all callers. 20368 * xcoffout.c (xcoffout_source_line): Add new parameter. 20369 20370 * configure.ac (gcc_cv_as_discriminator): New configury check for 20371 gas support for discriminator. 20372 * configure: Regenerate. 20373 * config.in: Regenerate. 20374 203752009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 20376 20377 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize 20378 val after checking for integers. 20379 203802009-06-04 Uros Bizjak <ubizjak@gmail.com> 20381 20382 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from 20383 X64_REGPARM_MAX. 20384 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX. 20385 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX. 20386 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX. 20387 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of 20388 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of 20389 X64_SSE_REGPARM_MAX. 20390 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of 20391 X64_SSE_REGPARM_MAX. 20392 203932009-06-04 Alexandre Oliva <aoliva@redhat.com> 20394 20395 * gcc.c (report_times_to_file): New. 20396 (execute): Implement it. 20397 (process_command): Support -time=. 20398 * doc/invoke.texi: Document it. 20399 204002009-06-04 Alexandre Oliva <aoliva@redhat.com> 20401 20402 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables 20403 that have value exprs. 20404 204052009-06-04 Alexandre Oliva <aoliva@redhat.com> 20406 20407 * dwarf2asm.c (dw2_force_const_mem): Defer creation of 20408 declarations for constants until... 20409 (dw2_output_indirect_constant_1): ... this point. 20410 204112009-06-04 Richard Earnshaw <rearnsha@arm.com> 20412 20413 PR target/10242 20414 * arm.md (arm_addsi3): Don't try to split an add with an 20415 eliminable register until after reload has completed. 20416 204172009-06-03 Ian Lance Taylor <iant@google.com> 20418 20419 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST. 20420 * genattrtab.c (write_length_unit_log): Likewise. 20421 * genchecksum.c (dosum): Likewise. 20422 * gengtype.c (write_rtx_next): Likewise. 20423 (finish_root_table, write_roots): Likewise. 20424 * gimple.c (gimple_ops_offset_): Likewise. 20425 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise. 20426 * config/arc/arc.c (arc_attribute_table): Likewise. 20427 * config/arm/arm.c (arm_attribute_table): Likewise. 20428 * config/avr/avr.c (avr_attribute_table): Likewise. 20429 * config/crx/crx.c (crx_attribute_table): Likewise. 20430 * config/m32r/m32r.c (m32r_attribute_table): Likewise. 20431 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise. 20432 * config/mcore/mcore.c (mcore_attribute_table): Likewise. 20433 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise. 20434 * config/sh/sh.c (sh_attribute_table): Likewise. 20435 * config/sparc/sparc.c (sparc_attribute_table): Likewise. 20436 * config/spu/spu.c (spu_attribute_table): Likewise. 20437 * config/v850/v850.c (v850_attribute_table): Likewise. 20438 20439 * config/alpha/alpha.c (vms_attribute_table): Make static. 20440 * config/bfin/bfin.c (bfin_attribute_table): Likewise. 20441 * config/h8300/h8300.c (h8300_attribute_table): Likewise. 20442 * config/mips/mips.c (mips_attribute_table): Likewise. 20443 20444 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and 20445 $(SYSTEM_H). 20446 (cc1-checksum.o): Likewise. 20447 204482009-06-03 Steve Ellcey <sje@cup.hp.com> 20449 20450 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case. 20451 204522009-06-03 Jakub Jelinek <jakub@redhat.com> 20453 20454 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated 20455 insn if it is changing sp. Use gen_add3_insn instead of 20456 conditionally gen_addsi3 and gen_adddi3. 20457 (offset_below_red_zone_p): New static inline function. 20458 (rs6000_emit_epilogue): Emit needed epilogue unwind info. 20459 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3. 20460 * config/rs6000/ppc-asm.h: Include auto-host.h. 20461 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET, 20462 CFI_RESTORE): Define. 20463 * config/rs6000/crtresxgpr.asm: Add unwind info. 20464 * config/rs6000/crtresxfpr.asm: Likewise. 20465 * config/rs6000/crtresgpr.asm: Likewise. 20466 * config/rs6000/crtresfpr.asm: Likewise. 20467 * config/rs6000/crtsavgpr.asm: Likewise. 20468 * config/rs6000/crtsavfpr.asm: Likewise. 20469 20470 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second 20471 argument of DWARF2_FRAME_REG_OUT macros. 20472 204732009-06-03 Julian Brown <julian@codesourcery.com> 20474 20475 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four 20476 words or less (including TImode) in core registers. 20477 204782009-06-03 Richard Guenther <rguenther@suse.de> 20479 20480 PR middle-end/40328 20481 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR. 20482 204832009-06-03 Andrey Belevantsev <abel@ispras.ru> 20484 20485 * statistics.c (statistics_counter_event): Do not record event 20486 in pass dump if its number == -1. 20487 (curr_statistics_hash): Add assert that we never get passes 20488 with static number == -1. 20489 204902009-06-03 Richard Guenther <rguenther@suse.de> 20491 Andrey Belevantsev <abel@ispras.ru> 20492 20493 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 20494 non-BLKmode arrays addressable. 20495 204962009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com> 20497 20498 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ... 20499 * config/m68k/m68k.h: ... here. 20500 205012009-06-03 Martin Jambor <mjambor@suse.cz> 20502 20503 PR tree-optimization/40323 20504 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single 20505 assignment. 20506 205072009-06-03 Richard Guenther <rguenther@suse.de> 20508 20509 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE 20510 consistently. 20511 205122009-06-03 Shujing Zhao <pearly.zhao@oracle.com> 20513 20514 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, 20515 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and 20516 JUMP_TABLE_DATA_P where applicable. 20517 * config/sh/sh.c: Ditto. 20518 * config/sh/sh.h: Ditto. 20519 * config/sh/sh.md: Ditto. 20520 * config/sh/symbian.c: Ditto. 20521 205222009-06-03 Uros Bizjak <ubizjak@gmail.com> 20523 20524 * config/i386/driver-i386.c (describe_cache): Optimize 20525 concatenation of strings. Use snprintf instead of sprintf. 20526 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native 20527 target when not compiling with GCC. 20528 205292009-06-02 Kaz Kojima <kkojima@gcc.gnu.org> 20530 20531 * config/sh/sh.c: Revert last change. 20532 (sh_expand_epilogue): Emit a blockage insn before the frame 20533 pointer adjustment unconditionally. 20534 205352009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> 20536 20537 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program". 20538 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise. 20539 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise. 20540 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program 20541 to COLLECT_GCC_OPTIONS. 20542 205432009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> 20544 20545 * collect2.c (target_system_root): New variable. 20546 (main): Handle --sysroot=. 20547 (ignore_library): Strip the sysroot from the library path. 20548 205492009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> 20550 20551 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o. 20552 (collect2.o): Depend on collect2-aix.h. 20553 (collect2-aix.o): New rule. 20554 * collect2-aix.h: New file. 20555 * collect2-aix.c: Likewise. 20556 * collect2.c: Include collect2-aix.h. Don't undefine 20557 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined. 20558 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE. 20559 Use TARGET_AIX_VERSION instead of _AIX51. 20560 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define. 20561 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise. 20562 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise. 20563 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise. 20564 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise. 20565 205662009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> 20567 20568 * collect2.c (ignore_library): Avoid premature post-increment 20569 and null deference. 20570 205712009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> 20572 20573 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT. 20574 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the 20575 !CROSS_DIRECTORY_STRUCTURE alternative and use it for 20576 CROSS_DIRECTORY_STRUCTURE too. 20577 (LINK_LIBG_SPEC): Likewise. 20578 (LIB_SPEC): Add %R to sysroot paths. 20579 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths. 20580 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise. 20581 * config/rs6000/aix51.h: As for aix43.h. 20582 * config/rs6000/aix52.h: Likewise. 20583 * config/rs6000/aix53.h: Likewise. 20584 * config/rs6000/aix61.h: Likewise. 20585 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT) 20586 to the beginning of sysroot paths. 20587 205882009-06-02 Alexandre Oliva <aoliva@redhat.com> 20589 20590 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and 20591 INSN_LISTs that are out of the REG_NOTE range. 20592 205932009-06-02 Alexandre Oliva <aoliva@redhat.com> 20594 20595 * loop-unroll.c (struct iv_to_split): Add pointer to next. 20596 (struct var_to_expand): Likewise. 20597 (struct opt_info): Add head and tail for linked lists of the above. 20598 (analyze_insn_to_expand_var): Initialize next. 20599 (analyze_iv_to_split_insn): Likewise. 20600 (analyze_insns_in_loop): Create linked lists. 20601 (allocate_basic_variable): Simplify for use without hash table. 20602 (insert_var_expansion_initialization): Likewise, make it type-safer. 20603 (combine_var_copies_in_loop_exit): Likewise. 20604 (apply_opt_in_copies): Walk lists rather than hash tables. 20605 (release_var_copies): Simplified and inlined by hand into... 20606 (free_opt_info): ... this function. 20607 206082009-06-02 Richard Guenther <rguenther@suse.de> 20609 20610 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE 20611 for field decls. 20612 206132009-06-02 Alexandre Oliva <aoliva@redhat.com> 20614 20615 * cfgexpand.c (gimple_expand_cfg): Discard the source location 20616 only for builtins that are not overridden. 20617 206182009-06-02 Alexandre Oliva <aoliva@redhat.com> 20619 20620 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's 20621 label string. 20622 206232009-06-02 Alexandre Oliva <aoliva@redhat.com> 20624 20625 * df-core.c (df_ref_debug): Honor -fdump-noaddr. 20626 206272009-06-02 Alexandre Oliva <aoliva@redhat.com> 20628 20629 * combine.c (move_deaths): Compare LUIDs within the same BB only. 20630 206312009-06-02 Alexandre Oliva <aoliva@redhat.com> 20632 20633 * common.opt (fdump-unnumbered-links): New. 20634 * doc/invoke.texi (-fdump-unnumbered-links): Document it. 20635 * print-rtl.c (flag_dump_unnumbered_links): New. 20636 (print_rtx): Test it. 20637 206382009-06-02 Richard Earnshaw <rearnsha@arm.com> 20639 20640 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a 20641 push/pop multiple to 8-byte alignment. 20642 206432009-06-01 Jakub Jelinek <jakub@redhat.com> 20644 20645 * config/i386/i386.c (queued_cfa_restores): New static variable. 20646 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New 20647 functions. 20648 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes. 20649 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument. 20650 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note. 20651 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET 20652 note unconditionally. 20653 (ix86_emit_restore_regs_using_mov): Likewise. 20654 (ix86_emit_restore_sse_regs_using_mov): Likewise. 20655 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass 20656 it through to ix86_emit_restore_reg_using_pop. 20657 (ix86_emit_leave): Add RED_OFFSET argument. Call 20658 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note 20659 instead of adding REG_CFA_OFFSET note unconditionally. 20660 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to 20661 the above functions. Call ix86_add_queued_cfa_restore_notes when 20662 needed. 20663 20664 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true, 20665 force output of the label even for dwarf2out_do_cfi_asm. 20666 (add_fde_cfi): If -g2 and above and cfi might change CFA, 20667 force creation of CFI label and chain DW_CFA_set_loc jumping to it 20668 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label 20669 caller. 20670 (dwarf2out_stack_adjust, dwarf2out_frame_debug, 20671 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust 20672 dwarf2out_cfi_label callers. 20673 * tree.h (dwarf2out_cfi_label): Adjust prototype. 20674 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue): 20675 Adjust dwarf2out_cfi_label callers. 20676 * config/vax/vax.c (vax_output_function_prologue): Likewise. 20677 20678 * config/i386/i386.h (struct machine_cfa_state, 20679 struct machine_function): Guard with ifndef USED_FOR_TARGET 20680 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS. 20681 20682 PR other/40024 20683 * emutls.c (__emutls_get_address): Change arr->size to mean number 20684 of allocated arr->data entries instead of # of slots + 1. 20685 20686 PR middle-end/40316 20687 * recog.c (peep2_reinit_state): New function. 20688 (peephole2_init_state): Use it at the end of a basic block and also 20689 when seeing a RTX_FRAME_RELATED_P insn. 20690 206912009-06-01 Steve Ellcey <sje@cup.hp.com> 20692 20693 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf, 20694 fixuns_truncrfdi2): New. 20695 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts, 20696 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts, 20697 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts, 20698 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf, 20699 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts, 20700 *recip_approx): Remove. 20701 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3, 20702 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr, 20703 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and 20704 move to div.md. 20705 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt, 20706 setf_exp_rf): New. 20707 207082009-06-01 Ian Lance Taylor <iant@google.com> 20709 20710 * attribs.c (register_attribute): Use CONST_CAST. 20711 * collect2.c (main): Use CONST_CAST2. 20712 (scan_prog_file): Likewise. 20713 * gcc.c (process_command, main): Likewise. 20714 * toplev.c (toplev_main): Likewise. 20715 20716 * c-typeck.c (handle_warn_cast_qual): New static function, 20717 partially broken out of build_c_cast. 20718 (build_c_cast): Call handle_warn_cast_qual. 20719 * doc/invoke.texi (Warning Options): Document new effect of 20720 -Wcast-qual. 20721 207222009-06-01 Aldy Hernandez <aldyh@redhat.com> 20723 20724 * diagnostic.c (diagnostic_build_prefix): Always print columns. 20725 (diagnostic_report_current_module): Print columns. 20726 * common.opt (flag_show_column): Enable by default. 20727 207282009-06-01 Luis Machado <luisgpm@br.ibm.com> 20729 20730 * alias.c (find_base_term): Check for NULL term before returning. 20731 207322009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com> 20733 20734 Revert due to PR40320: 20735 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com> 20736 * calls.c (emit_library_call_value_1): Don't force_operand for move 20737 and push insns. 20738 207392009-06-01 Olivier Hainque <hainque@adacore.com> 20740 Eric Botcazou <ebotcazou@adacore.com> 20741 20742 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is 20743 to be processed as a bitfield for constructor output purposes. 20744 * output.h (initializer_constant_valid_for_bitfield_p): Declare 20745 new function. 20746 * varasm.c (oc_local_state): New type, output_constructor 20747 local state to support communication with helpers. 20748 (oc_outer_state): New type, output_constructor outer state of 20749 relevance in recursive calls. 20750 (output_constructor_array_range): New output_constructor helper, 20751 extracted code for an array range element. 20752 (output_constructor_regular_field): New output_constructor helper, 20753 extracted code for an element that is not a bitfield. 20754 (output_constructor_bitfield): New output_constructor helper, 20755 extracted code for a bitfield element. Accept an OUTER state 20756 argument for recursive processing. Recurse on record or array 20757 CONSTRUCTOR values, possibly past noop conversions. 20758 (initializer_constant_valid_for_bitfield_p): New predicate. Whether 20759 VALUE is a valid constant-valued expression for use in a static 20760 bit-field initializer. 20761 (output_constructor): Rework to use helpers. Accept and honor an 20762 OUTER state argument for recursive calls. Return total size. Be 20763 prepared for nested constructors initializing bitfields. 20764 (output_constant): Feed OUTER in calls to output_constructor. 20765 207662009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com> 20767 20768 * calls.c (emit_library_call_value_1): Don't force_operand for move 20769 and push insns. 20770 207712009-06-01 Nick Clifton <nickc@redhat.com> 20772 20773 * doc/invoke.texi (IA-64 Options): Fix typo. 20774 207752009-06-01 Ira Rosen <irar@il.ibm.com> 20776 20777 PR tree-optimization/39129 20778 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 20779 printed message. 20780 (vect_do_peeling_for_loop_bound): Use 20781 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and 20782 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros. 20783 (vect_loop_versioning): Likewise. 20784 (vect_create_cond_for_alias_checks): Fix indentation. 20785 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 20786 macros. 20787 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define. 20788 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise. 20789 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 20790 "control flow in loop". 20791 (vect_estimate_min_profitable_iters): Use 20792 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and 20793 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros. 20794 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. 20795 (vect_create_data_ref_ptr): Don't mention array dimension in printing. 20796 * tree-vect-stmts.c (vectorizable_store): Replace the check that the 20797 statement belongs to a group of strided accesses with the exact code 20798 check. 20799 (vectorizable_load): Likewise. 20800 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block". 20801 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise. 20802 208032009-06-01 Gerald Pfeifer <gerald@pfeifer.com> 20804 20805 * config/freebsd-stdint.h: New file. 20806 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap. 20807 Add freebsd-stdint.h to tm_file. 20808 208092009-06-01 Richard Earnshaw <rearnsha@arm.com> 20810 20811 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split. 20812 (thumb2_extendhidi2): Likewise. 20813 208142009-05-31 Ian Lance Taylor <iant@google.com> 20815 20816 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition. 20817 208182009-05-31 Ian Lance Taylor <iant@google.com> 20819 20820 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H). 20821 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H). 20822 (ipa-reference.o): Depend upon gt-ipa-reference.h. 20823 208242009-05-31 Jason Merrill <jason@redhat.com> 20825 20826 * tree-pretty-print.c (print_call_name): Take the callee, not the 20827 call itself. Make non-static. Use dump_function_name for functions. 20828 (dump_generic_node): Adjust. 20829 * diagnostic.h: Declare print_call_name. 20830 * gimple-pretty-print.c (dump_gimple_call): Use it. 20831 208322009-05-31 Kaz Kojima <kkojima@gcc.gnu.org> 20833 20834 * config/sh/sh.md (ashldi3_std): New define_expand. 20835 (ashldi3): Use it. 20836 208372009-05-31 Kaz Kojima <kkojima@gcc.gnu.org> 20838 20839 PR target/40313 20840 * config/sh/sh.c: Include debug.h. 20841 (sh_expand_epilogue): Emit a blockage insn before the frame 20842 pointer adjustment also when dwarf2out_do_frame returns true. 20843 208442009-05-31 Richard Earnshaw <rearnsha@arm.com> 20845 20846 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern. 20847 (thumb2_extendqidi2): New pattern. 20848 208492009-05-31 Ira Rosen <irar@il.ibm.com> 20850 20851 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't 20852 mark phis for renaming. 20853 * tree-vectorizer.c (vect_memsyms_to_rename): Remove. 20854 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename. 20855 Call mark_sym_for_renaming. 20856 * tree-vectorizer.h (vect_memsyms_to_rename): Remove. 20857 * tree-vect-loop.c (vect_transform_loop): Remove 20858 vect_memsyms_to_rename initialization and a call to 20859 mark_set_for_renaming. 20860 208612009-05-31 Jakub Jelinek <jakub@redhat.com> 20862 20863 PR middle-end/40304 20864 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns 20865 frame related even if !set_cfa && style < 0. 20866 208672009-05-30 Kai Tietz <kai.tietz@onevision.com> 20868 20869 * config/i386/mingw-tls.c: New file. 20870 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file. 20871 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets 20872 defining _WIN32 but not __CYGWIN__. 20873 208742009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 20875 20876 * configure.ac: Add MPC support. 20877 20878 * config.in, configure: Regenerate. 20879 208802009-05-29 Richard Henderson <rth@redhat.com> 20881 20882 * cfgcleanup.c (try_crossjump_to_edge): Only skip past 20883 NOTE_INSN_BASIC_BLOCK. 20884 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks. 20885 Duplicate NOTE_INSN_EPILOGUE_BEG notes. 20886 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG 20887 to be deleted. 20888 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield, 20889 add in_use field. 20890 (add_cfi): Disable check redefining cfa away from drap. 20891 (lookup_cfa_1): Add remember argument; handle remember/restore. 20892 (lookup_cfa): Pass remember argument. 20893 (cfa_remember): New. 20894 (compute_barrier_args_size_1): Remove sibcall check. 20895 (dwarf2out_frame_debug_def_cfa): New. 20896 (dwarf2out_frame_debug_adjust_cfa): New. 20897 (dwarf2out_frame_debug_cfa_offset): New. 20898 (dwarf2out_frame_debug_cfa_register): New. 20899 (dwarf2out_frame_debug_cfa_restore): New. 20900 (dwarf2out_frame_debug): Handle REG_CFA_* notes. 20901 (dwarf2out_begin_epilogue): New. 20902 (dwarf2out_frame_debug_restore_state): New. 20903 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state, 20904 DW_CFA_restore_state. 20905 (output_cfi_directive): Likewise. 20906 (convert_cfa_to_fb_loc_list): Likewise. 20907 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore. 20908 * dwarf2out.h: Update. 20909 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P. 20910 (copy_insn_1): Early out for null. 20911 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue 20912 and dwarf2out_frame_debug_restore_state. 20913 * function.c (prologue, epilogue, sibcall_epilogue): Remove. 20914 (prologue_insn_hash, epilogue_insn_hash): New. 20915 (free_after_compilation): Adjust freeing accordingly. 20916 (record_insns): Create hash table if needed; push insns into 20917 hash instead of array. 20918 (maybe_copy_epilogue_insn): New. 20919 (contains): Search hash table instead of array. 20920 (sibcall_epilogue_contains): Remove. 20921 (thread_prologue_and_epilogue_insns): Split eh_return insns 20922 and mark them as epilogues. 20923 (reposition_prologue_and_epilogue_notes): Rewrite epilogue 20924 scanning in terms of basic blocks. 20925 * insn-notes.def (CFA_RESTORE_STATE): New. 20926 * jump.c (returnjump_p_1): Accept EH_RETURN. 20927 (eh_returnjump_p_1, eh_returnjump_p): New. 20928 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET, 20929 CFA_REGISTER, CFA_RESTORE): New. 20930 * rtl.def (EH_RETURN): New. 20931 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare. 20932 20933 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove. 20934 (eh_return_internal): Use eh_return rtx; split w/ epilogue. 20935 20936 * config/i386/i386.c (gen_push): Update cfa state. 20937 (pro_epilogue_adjust_stack): Add set_cfa argument. When true, 20938 add a CFA_ADJUST_CFA note. 20939 (ix86_dwarf_handle_frame_unspec): Remove. 20940 (ix86_expand_prologue): Update cfa state. 20941 (ix86_emit_restore_reg_using_pop): New. 20942 (ix86_emit_restore_regs_using_pop): New. 20943 (ix86_emit_leave): New. 20944 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes. 20945 (ix86_expand_epilogue): Add notes for unwinding the epilogue. 20946 * config/i386/i386.h (struct machine_cfa_state): New. 20947 (ix86_cfa_state): New. 20948 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove. 20949 (eh_return_internal): Merge from eh_return_<mode>, 20950 use eh_return rtx, split w/ epilogue. 20951 209522009-05-29 Ian Lance Taylor <iant@google.com> 20953 20954 * builtins.c (validate_gimple_arglist): Don't use va_arg with 20955 enum type. 20956 * calls.c (emit_library_call_value_1): Likewise. 20957 20958 * c-typeck.c (c_build_va_arg): New function. 20959 * c-tree.h (c_build_va_arg): Declare. 20960 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg 20961 instead of build_va_arg. 20962 209632009-05-29 Eric Botcazou <ebotcazou@adacore.com> 20964 20965 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case. 20966 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise. 20967 (ptr_difference_cost): Use affine combinations to compute it. 20968 (difference_cost): Likewise. 20969 (get_computation_cost_at): Compute more accurate cost for addresses 20970 if the ratio is a multiplier allowed in addresses. 20971 For non-addresses, consider that an additional offset or symbol is 20972 added only once. 20973 209742009-05-29 Jakub Jelinek <jakub@redhat.com> 20975 20976 * config/i386/i386.c (ix86_decompose_address): Avoid useless 20977 0 displacement. Add 0 displacement if base is %[er]bp or %r13. 20978 20979 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for 20980 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default. 20981 (prefix_rex): For UNIT_MMX don't imply the prefix by default 20982 if MODE_DI. 20983 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and 20984 to 1 for TYPE_SSE{IADD1,CVT1}. 20985 (prefix_vex_imm8): Removed. 20986 (length_vex): Only pass 1 as second argument to 20987 ix86_attr_length_vex_default if prefix_extra is 0. 20988 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT. 20989 (length): For prefix vex computation use length_immediate 20990 attribute instead of prefix_vex_imm8. 20991 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64, 20992 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0, 20993 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1, 20994 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1. 20995 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2, 20996 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit 20997 a space in between the operands. 20998 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1 20999 if one operand is 0xff and the other one si, di, bp or sp. 21000 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the 21001 other one si, di, bp or sp. 21002 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute. 21003 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add 21004 type and mode attributes. 21005 (*bsr, *bsr_rex64, *bsrhi): Add type attribute. 21006 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear 21007 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF. 21008 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set 21009 prefix_data16 attribute iff MODE_DF. 21010 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute. 21011 (fix_trunc<mode>di_sse): Set prefix_rex attribute. 21012 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of 21013 constm128_operand in length_immediate computation. 21014 (*addhi_4): Likewise. Fix mode attribute to MODE_HI. 21015 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq. 21016 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set 21017 length_immediate attribute to 1. 21018 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute. 21019 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes 21020 for certain alternatives. 21021 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override 21022 prefix_data16 attribute if MODE_V1DF. 21023 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set 21024 length_immediate to 1. 21025 (set_got_rex64, set_rip_rex64): Remove length attribute, set 21026 length_address to 4, set mode attribute to MODE_DI. 21027 (set_got_offset_rex64): Likewise. Set length_immediate to 0. 21028 (fxam<mode>2_i387): Set length attribute to 4. 21029 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow, 21030 *prefetch_3dnow_rex): Override length_address attribute. 21031 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex 21032 attributes. 21033 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate. 21034 (constm128_operand): Removed. 21035 * config/i386/i386.c (memory_address_length): For 21036 disp && !index && !base in 64-bit mode account for SIB byte if 21037 print_operand_address can't optimize disp32 into disp32(%rip) 21038 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length 21039 for fs: or gs: segment. 21040 (ix86_attr_length_immediate_default): When checking if shortform 21041 is possible, truncate immediate to the length of the non-shortened 21042 immediate. 21043 (ix86_attr_length_address_default): Ignore MEM_P operands 21044 with X constraint. 21045 (ix86_attr_length_vex_default): Only check for DImode on 21046 GENERAL_REG_P operands. 21047 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear 21048 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF. 21049 (sse_cvttps2pi): Clear prefix_rep attribute. 21050 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16 21051 attribute. 21052 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute. 21053 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3, 21054 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1 21055 iff operand 2 is const_int_operand. 21056 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>, 21057 sse2_shufpd_<mode>): Set length_immediate attribute to 1. 21058 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex 21059 instead of vex. 21060 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear 21061 prefix_data16. 21062 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set 21063 prefix_data16 attribute for movlpd and movhpd instructions. 21064 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override 21065 length_immediate for shufpd instruction. 21066 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute. 21067 (avx_cmpp<avxmodesuffixf2c><mode>3, 21068 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3, 21069 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3, 21070 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>, 21071 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1. 21072 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4. 21073 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1. 21074 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override 21075 prefix_data16 attribute for the first alternative to 1. 21076 (*avx_loadlps): Override length_immediate for the first alternative. 21077 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra 21078 attributes for second alternative. 21079 (*vec_concatv2sf_sse4_1): Override length_immediate and 21080 prefix_data16 attributes for second alternative. 21081 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>, 21082 vec_extract_hi_<mode>, vec_extract_lo_v16hi, 21083 vec_extract_hi_v16hi, vec_extract_lo_v32qi, 21084 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1. 21085 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set 21086 prefix_data16 and length_immediate to 1. 21087 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra 21088 to 1. 21089 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set 21090 prefix_extra attribute for variants that don't have 0f prefix alone. 21091 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1. 21092 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb, 21093 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory, 21094 *sse4_1_pextrd): Set length_immediate to 1. 21095 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1. 21096 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate 21097 to 1. 21098 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64, 21099 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override 21100 length_immediate to 1 for second alternative. 21101 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override 21102 prefix_extra and length_immediate attributes for the first 21103 alternative. 21104 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the 21105 first alternative. 21106 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex 21107 to 1 for the first and third alternative. 21108 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second 21109 alternative. 21110 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex 21111 attribute. 21112 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address 21113 attribute to 0. 21114 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3, 21115 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi, 21116 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3, 21117 *avx_psign<mode>3): Set prefix_extra attribute to 1. 21118 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3, 21119 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3, 21120 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3, 21121 ssse3_psign<mode>3): Override prefix_rex attribute. 21122 (*avx_palignrti): Override prefix_extra and length_immediate to 1. 21123 (ssse3_palignrti): Override length_immediate to 1. 21124 (ssse3_palignrdi): Override length_immediate to 1, override 21125 prefix_rex attribute. 21126 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute. 21127 (sse4a_extrqi): Override length_immediate to 2. 21128 (sse4a_insertqi): Likewise. Override prefix_data16 to 0. 21129 (sse4a_insertq): Override prefix_data16 to 0. 21130 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>, 21131 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>, 21132 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw, 21133 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256, 21134 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra 21135 and length_immediate to 1. 21136 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>, 21137 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm, 21138 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri, 21139 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16 21140 and length_immediate to 1. 21141 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1. 21142 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1. 21143 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>, 21144 avx_ptest256): Override prefix_extra to 1. 21145 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>): 21146 Override prefix_data16 and length_immediate to 1. 21147 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi, 21148 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si, 21149 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di, 21150 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override 21151 prefix_data16 to 0 and prefix_extra to 2. 21152 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1. 21153 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra 21154 attribute. 21155 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3, 21156 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3): 21157 Override prefix_data16 and prefix_rep to 0, length_immediate to 1 21158 and prefix_extra to 2. 21159 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override 21160 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2. 21161 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast, 21162 avx_vpermilvar<mode>3, 21163 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>, 21164 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256, 21165 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>, 21166 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): 21167 Override prefix_extra to 1. 21168 (aeskeygenassist, pclmulqdq): Override length_immediate to 1. 21169 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3, 21170 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi, 21171 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override 21172 prefix_extra and length_immediate to 1. 21173 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override 21174 modrm to 0. 21175 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate 21176 to 1 for the first alternative. 21177 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override 21178 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain 21179 cases. 21180 (*mov<mode>_internal_avx, *movv2sf_internal_rex64, 21181 *movv2sf_internal_avx, *movv2sf_internal): Override 21182 prefix_rep attribute for certain alternatives. 21183 (*mov<mode>_internal): Override prefix_rep or prefix_data16 21184 attributes for certain alternatives. 21185 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex 21186 attributes for certain alternatives. 21187 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3, 21188 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2, 21189 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3, 21190 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3, 21191 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw, 21192 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3, 21193 mmx_pswapdv2si2): Set prefix_extra attribute to 1. 21194 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set 21195 length_immediate to 1 if operand 2 is const_int_operand. 21196 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi, 21197 *vec_extractv2si_1): Set length_immediate attribute to 1. 21198 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if 21199 using old 3DNOW insn rather than SSE/3DNOW_A. 21200 (mmx_emms, mmx_femms): Clear modrm attribute. 21201 212022009-05-29 Martin Jambor <mjambor@suse.cz> 21203 21204 * tree-sra.c: New implementation of SRA. 21205 21206 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed. 21207 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed. 21208 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed. 21209 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed. 21210 (SRA_MAX_STRUCTURE_COUNT): Removed. 21211 (SRA_FIELD_STRUCTURE_RATIO): Removed. 21212 * doc/invoke.texi (sra-max-structure-size): Removed. 21213 (sra-field-structure-ratio): Removed. 21214 212152009-05-29 Jakub Jelinek <jakub@redhat.com> 21216 21217 PR middle-end/40291 21218 * builtins.c (expand_builtin_memcmp): Convert len to sizetype 21219 before expansion. 21220 212212009-05-29 Andrey Belevantsev <abel@ispras.ru> 21222 21223 PR rtl-optimization/40101 21224 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative 21225 seqno. Adjust comment. 21226 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 21227 inserting bookkeeping before a jump, the jump is not scheduled. 21228 When no positive seqno found, provide a value. Add comment. 21229 212302009-05-29 Richard Guenther <rguenther@suse.de> 21231 21232 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove 21233 short-cutting on the first component. 21234 212352009-05-29 Jakub Jelinek <jakub@redhat.com> 21236 21237 PR middle-end/39958 21238 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE 21239 for trees other than decls/types. 21240 212412009-05-29 Richard Guenther <rguenther@suse.de> 21242 21243 * tree-ssa-operands.c (get_expr_operands): Do not handle 21244 INDIRECT_REFs in the handled-component case. Remove 21245 unused get_ref_base_and_extent case. 21246 * tree-dfa.c (get_ref_base_and_extent): Avoid calling 21247 tree_low_cst and host_integerp where possible. 21248 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash 21249 codes for equivalence. 21250 * dce.c (find_call_stack_args): Avoid redundant bitmap queries. 21251 212522009-05-29 David Billinghurst <billingd@gcc.gnu.org> 21253 21254 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp 21255 to tmake_file for i[34567]86-*-cygwin*. 21256 212572009-05-29 Jakub Jelinek <jakub@redhat.com> 21258 21259 PR target/40017 21260 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable. 21261 (altivec_categorize_keyword, init_vector_keywords, 21262 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro 21263 similar to bool. 21264 212652009-05-29 Kai Tietz <kai.tietz@onevision.com> 21266 21267 * tree.c (handle_dll_attribute): Check if node is 21268 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check. 21269 212702009-05-29 Richard Earnshaw <rearnsha@arm.com> 21271 21272 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split 21273 component. 21274 (thumb2_zero_extendqidi2): Likewise. 21275 212762009-05-28 Kaz Kojima <kkojima@gcc.gnu.org> 21277 21278 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt 21279 instead of gen_movrt. 21280 * config/sh/sh.md (movrt): Remove. 21281 212822009-05-28 Steve Ellcey <sje@cup.hp.com> 21283 21284 * doc/invoke.texi (IA-64 Options): 21285 Add -msdata, -mfused-madd, -mno-inline-float-divide, 21286 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc, 21287 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns, 21288 -msched-prefer-non-control-spec-insns, 21289 -msched-stop-bits-after-every-cycle, 21290 -msched-count-spec-in-critical-path, 21291 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost 21292 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns. 21293 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc, 21294 and -msched-spec-verbose. 21295 212962009-05-28 Joseph Myers <joseph@codesourcery.com> 21297 21298 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache. 21299 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an 21300 error if used. 21301 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache. 21302 213032009-05-28 Richard Guenther <rguenther@suse.de> 21304 21305 * tree-ssa-alias.c (ao_ref_init): New function. 21306 (ao_ref_base): Likewise. 21307 (ao_ref_base_alias_set): Likewise. 21308 (ao_ref_alias_set): Likewise. 21309 (refs_may_alias_p_1): Change signature. 21310 (refs_may_alias_p): Adjust. 21311 (refs_anti_dependent_p): Likewise. 21312 (refs_output_dependent_p): Likewise. 21313 (call_may_clobber_ref_p_1): Change signature. 21314 (call_may_clobber_ref_p): Adjust. 21315 (stmt_may_clobber_ref_p_1): New function split out from ... 21316 (stmt_may_clobber_ref_p): ... here. 21317 (maybe_skip_until): Adjust signature. 21318 (get_continuation_for_phi): Likewise. 21319 (walk_non_aliased_vuses): Likewise. 21320 * tree-ssa-alias.h (struct ao_ref_s): New structure type. 21321 (ao_ref_init): Declare. 21322 (ao_ref_base): Likewise. 21323 (ao_ref_alias_set): Likewise. 21324 (stmt_may_clobber_ref_p_1): Likewise. 21325 (walk_non_aliased_vuses): Adjust. 21326 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function. 21327 (get_ref_from_reference_ops): remove. 21328 (vn_reference_lookup_2): Adjust signature. 21329 (vn_reference_lookup_3): Do not re-build trees. Handle unions. 21330 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees. 21331 (vn_reference_lookup): Adjust. 21332 (vn_reference_insert): Likewise. 21333 (vn_reference_insert_pieces): Adjust signature. 21334 (visit_reference_op_call): Adjust. 21335 * tree-ssa-pre.c (get_expr_type): Simplify. 21336 (phi_translate_1): Adjust. 21337 (compute_avail): Likewise. 21338 (translate_vuse_through_block): Do not re-build trees. 21339 (value_dies_in_block_x): Likewise. 21340 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set 21341 fields. 21342 (vn_reference_lookup_pieces): Adjust declaration. 21343 (vn_reference_insert_pieces): Likewise. 21344 213452009-05-28 Benjamin Kosnik <bkoz@redhat.com> 21346 21347 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use 21348 with checking disabled. 21349 213502009-05-28 Dave Korn <dave.korn.cygwin@gmail.com> 21351 21352 PR target/37216 21353 21354 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and 21355 macro definition for support of three-operand format aligned 21356 .comm directive in assembler on cygwin/pe/mingw target OS. 21357 * configure: Regenerate. 21358 * config.h: Regenerate. 21359 21360 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use 21361 aligned form of .comm directive if -mpe-aligned-commons is in effect. 21362 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option. 21363 21364 * doc/invoke.texi (-mpe-aligned-commons): Document new target option. 21365 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons. 21366 213672009-05-28 Ira Rosen <irar@il.ibm.com> 21368 21369 PR tree-optimization/40254 21370 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account 21371 in analysis of basic blocks. 21372 213732009-05-28 Adam Nemet <anemet@caviumnetworks.com> 21374 21375 PR middle-end/33699 21376 * target.h (struct gcc_target): Fix indentation. Add const_anchor. 21377 * target-def.h (TARGET_CONST_ANCHOR): New macro. 21378 (TARGET_INITIALIZER): Use it. 21379 * cse.c (CHEAPER): Move it up to the other macros. 21380 (insert): Rename this ... 21381 (insert_with_costs): ... to this. Add cost parameters. Update 21382 function comment. 21383 (insert): New function. Call insert_with_costs. 21384 (compute_const_anchors, insert_const_anchor, insert_const_anchors, 21385 find_reg_offset_for_const, try_const_anchors): New functions. 21386 (cse_insn): Call try_const_anchors. Adjust cost of src_related 21387 when using a const-anchor. Call insert_const_anchors. 21388 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor. 21389 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR. 21390 213912009-05-28 Alexandre Oliva <aoliva@redhat.com> 21392 21393 * tree-inline.c (remap_decls): Enable nonlocalized variables 21394 when not optimizing. 21395 213962009-05-28 Alexandre Oliva <aoliva@redhat.com> 21397 21398 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing. 21399 Simplify other tests involving optimize. 21400 214012009-05-27 Tom Tromey <tromey@redhat.com> 21402 21403 * unwind-dw2.c (_Unwind_DebugHook): New function. 21404 (uw_install_context): Call _Unwind_DebugHook. 21405 214062009-05-27 Tom Tromey <tromey@redhat.com> 21407 21408 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++ 21409 214102009-05-27 Ian Lance Taylor <iant@google.com> 21411 21412 * Makefile.in (LINKER, LINKER_FLAGS): Define. 21413 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define. 21414 (ALL_LINKERFLAGS): Define. 21415 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER). 21416 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise. 21417 (collect2$(exeext), mips-tfile, mips-tdump): Likewise. 21418 (gcov$(exeext), gcov-dump$(exeext)): Likewise. 21419 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to 21420 $(LINKER_FOR_BUILD). 21421 (build/gcov-iov$(build_exeext)): Likewise. 21422 214232009-05-27 Julian Brown <julian@codesourcery.com> 21424 21425 * gcse.c (target.h): Include. 21426 (can_assign_to_reg_without_clobbers_p): Check that the target allows 21427 copy of argument to a pseudo register. 21428 214292009-05-27 Diego Novillo <dnovillo@google.com> 21430 21431 * tree-ssa-live.c (dump_scope_block): Document arguments. 21432 (dump_scope_blocks): Document. 21433 (debug_scope_blocks): New. 21434 * tree-flow.h (debug_scope_blocks): Declare. 21435 214362009-05-21 Denis Chertykov <denisc@overta.ru> 21437 21438 * doc/contrib.texi (Contributors): Add myself to the list. 21439 214402009-05-27 Olivier Hainque <hainque@adacore.com> 21441 21442 * expr.c (target_align): New function. Alignment the TARGET of an 21443 assignment may be assume to have. 21444 (highest_pow2_factor_for_target): Use it instead of relying on 21445 immediate tree attributes of TARGET, not necessarily honored when 21446 intermediate bitfields are involved. 21447 214482009-05-27 H.J. Lu <hongjiu.lu@intel.com> 21449 21450 PR target/40266 21451 * config/i386/driver-i386.c (host_detect_local_cpu): Support 21452 AVX, SSE4, AES, PCLMUL and POPCNT. 21453 214542009-05-27 Diego Novillo <dnovillo@google.com> 21455 21456 * tree-pretty-print.c (dump_location): New. 21457 (dump_generic_node): Call it. 21458 Factor code to handle BLOCK nodes ... 21459 (dump_block_node): ... here. 21460 214612009-05-27 Rafael Avila de Espindola <espindola@google.com> 21462 21463 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h 21464 with it. 21465 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be 21466 included. 21467 * gcc-plugin.h: Include config.h and system.h. 21468 (IN_GCC): Define if not defined. 21469 214702009-05-27 Hans-Peter Nilsson <hp@axis.com> 21471 21472 PR middle-end/40249 21473 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions 21474 with -fno-inline. 21475 214762009-05-27 Shujing Zhao <pearly.zhao@oracle.com> 21477 21478 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where 21479 applicable. 21480 * config/m32r/m32r.h: Ditto. 21481 * config/m32r/m32r.md: Ditto. 21482 * config/m32r/predicates.md: Ditto. 21483 214842009-05-27 Alexandre Oliva <aoliva@redhat.com> 21485 21486 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr. 21487 214882009-05-26 Basile Starynkevitch <basile@starynkevitch.net> 21489 21490 * doc/plugins.texi 21491 (Loading plugins): typo. 21492 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START, 21493 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS. 21494 (Interacting with the GCC Garbage Collector): Added new section. 21495 (Giving information about a plugin): Added new section for 21496 PLUGIN_INFO. 21497 * ggc.h (ggc_register_root_tab): Added declaration. 21498 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING) 21499 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events. 21500 (register_callback): Improved comment in declaration. 21501 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors. 21502 (extra_root_vec) Added static variable for dynamic roots registration. 21503 (ggc_register_root_tab) Added new routine. 21504 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke 21505 PLUGIN_GGC_MARKING event. 21506 * ggc-zone.c: Include plugin.h. 21507 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events. 21508 * ggc-page.c: Include plugin.h. 21509 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events. 21510 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START, 21511 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS 21512 (register_callback): check lack of callbacks for 21513 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS, 21514 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END. 21515 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START, 21516 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS. 21517 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added 21518 dependency on plugin.h. 21519 (plugin.o): Added dependency on ggc.h... 21520 215212009-05-26 Richard Guenther <rguenther@suse.de> 21522 21523 PR middle-end/40248 21524 Revert 21525 * expr.c (expand_expr_real_1): Avoid calling do_store_flag 21526 with mismatched comparison modes. 21527 21528 * expr.c (expand_expr_real_1): Expand the operand of a 21529 VIEW_CONVERT_EXPR in its natural mode. 21530 215312009-05-26 Ian Lance Taylor <iant@google.com> 21532 21533 * Makefile.in (COMPILER, COMPILER_FLAGS): Define. 21534 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define. 21535 (ALL_COMPILERFLAGS): Define. 21536 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER). 21537 (cc1-dummy$(exeext), cc1$(exeext)): Likewise. 21538 (collect2$(exeext), collect2.o): Likewise. 21539 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise. 21540 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise. 21541 ($(out_object_file), mips-tfile, mips-tdump): Likewise. 21542 (libbackend.o, intl.o, cppdefault.o): Likewise. 21543 (gcov$(exeext), gcov-dump$(exeext)): Likewise. 21544 (build/%.o): Use $(COMPILER_FOR_BUILD). 21545 (build/gen%$(build_exeext)): Likewise. 21546 (build/gcov-iov$(build_exeext)): LIkewise. 21547 * config/t-darwin (darwin.o): Use $(COMPILER). 21548 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise. 21549 * config/t-sol2 (sol2-c.o): Likewise. 21550 (sol2.o): Likewise. 21551 * config/t-vxworks (vxworks.o): Likewise. 21552 * config/x-darwin (host-darwin.o): Likewise. 21553 * config/x-hpux (host-hpux.o): Likewise. 21554 * config/x-linux (host-linux.o): Likewise. 21555 * config/x-solaris (host-solaris.o): Likewise. 21556 * config/alpha/x-alpha (driver-alpha.o): Likewise. 21557 * config/arm/t-arm (arm-c.o): Likewise. 21558 * config/arm/t-pe (pe.o): Likewise. 21559 * config/arm/t-wince-pe (pe.o): Likewise. 21560 * config/i386/t-cygming (winnt.o): Likewise. 21561 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise. 21562 * config/i386/t-cygwin (cygwin1.o): Likewise. 21563 (cygwin2.o): Likewise. 21564 * config/i386/t-i386 (i386-c.o): Likewise. 21565 * config/i386/t-interix (winnt.o): Likewise. 21566 * config/i386/t-netware (netware.o): Likewise. 21567 * config/i386/t-nwld (nwld.o): Likewise. 21568 * config/i386/x-darwin (host-i386-darwin.o): Likewise. 21569 * config/i386/x-i386 (driver-i386.o): Likewise. 21570 * config/i386/x-cygwin (host-cygwin.o): Likewise. 21571 * config/i386/x-mingw32 (host-mingw32.o): Likewise. 21572 * config/ia64/t-ia64 (ia64-c.o): Likewise. 21573 * config/m32c/t-m32c (m32c-pragma.o): Likewise. 21574 * config/mips/x-native (driver-native.o): Likewise. 21575 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise. 21576 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise. 21577 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise. 21578 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise. 21579 * config/score/t-score-elf (score7.o): Likewise. 21580 (score3.o): Likewise. 21581 * config/sh/t-sh (sh-c.o): Likewise. 21582 * config/sh/t-symbian (sh-c.o): Likewise. 21583 (symbian.o): Likewise. 21584 * config/spu/t-spu-elf (spu-c.o): Likewise. 21585 * config/v850/t-v850 (v850-c.o): Likewise. 21586 * config/v850/t-v850e (v850-c.o): Likewise. 21587 215882009-05-26 Richard Guenther <rguenther@suse.de> 21589 21590 PR tree-optimization/40122 21591 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to 21592 VECTOR_CSTs if possible. 21593 (fold_gimple_assign): Likewise. 21594 215952009-05-26 Richard Guenther <rguenther@suse.de> 21596 21597 PR middle-end/40252 21598 * fold-const.c (fold_binary): Use the correct types for building 21599 rotates. 21600 216012009-05-26 Richard Guenther <rguenther@suse.de> 21602 21603 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove 21604 redundant calls to merge_alias_info. 21605 (bump_vector_ptr): Likewise. 21606 * tree-ssa-copy.c (merge_alias_info): Remove. 21607 (replace_exp_1): Remove call to merge_alias_info. 21608 (propagate_tree_value): Likewise. 21609 (fini_copy_prop): Propagate points-to info. 21610 * tree-flow.h (merge_alias_info): Remove. 21611 216122009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com> 21613 21614 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove. 21615 216162009-05-25 Jan Hubicka <jh@suse.cz> 21617 21618 * cgraph.c (dump_cgraph_node): Dump size/time/benefit. 21619 * cgraph.h (struct inline_summary): New filed self_wize, 21620 size_inlining_benefit, self_time and time_inlining_benefit. 21621 (struct cgraph_global_info): Replace insns by time ans size fields. 21622 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size 21623 (ipcp_estimate_growth, ipcp_insert_stage): Likewise. 21624 (ipcp_update_callgraph): Do not touch function bodies. 21625 * ipa-inline.c: Include except.h 21626 (MAX_TIME): New constant. 21627 (overall_insns): Remove. 21628 (leaf_node_p): New. 21629 (overall_size, max_benefit): New static variables. 21630 (cgraph_estimate_time_after_inlining): New function. 21631 (cgraph_estimate_size_after_inlining): Rewrite using benefits. 21632 (cgraph_clone_inlined_nodes): Update size. 21633 (cgraph_mark_inline_edge): Update size. 21634 (cgraph_estimate_growth): Use size info. 21635 (cgraph_check_inline_limits): Check size. 21636 (cgraph_default_inline_p): Likewise. 21637 (cgraph_edge_badness): Compute badness based on benefit and size cost. 21638 (cgraph_decide_recursive_inlining): Check size. 21639 (cgraph_decide_inlining_of_small_function): Update size; dump sizes 21640 and times. 21641 (cgraph_decide_inlining): Likewise. 21642 (cgraph_decide_inlining_incrementally): Likewise; honor 21643 PARAM_EARLY_INLINING_INSNS. 21644 (likely_eliminated_by_inlining_p): New predicate. 21645 (estimate_function_body_sizes): New function. 21646 (compute_inline_parameters): Use it. 21647 * except.c (must_not_throw_labels): New function. 21648 * except.h (must_not_throw_labels): Declare. 21649 * tree-inline.c (init_inline_once): Kill inlining_weigths 21650 * tree-ssa-structalias.c: Avoid uninitialized warning. 21651 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300. 21652 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60. 21653 (PARAM_INLINE_CALL_COST): Remove. 21654 (PARAM_EARLY_INLINING_INSNS): New. 21655 216562009-05-25 Richard Guenther <rguenther@suse.de> 21657 21658 PR tree-optimization/36327 21659 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker 21660 callback for reference translation or lookup at the point of may-defs. 21661 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype. 21662 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out 21663 for union COMPONENT_REFs. 21664 (vn_reference_lookup_3): New callback. Lookup from memset 21665 and CONSTRUCTOR assignment, translate through struct copies. 21666 (vn_reference_lookup_pieces): Make sure to not free the 21667 passed operands array. Adjust walk_non_aliased_vuses call. 21668 (vn_reference_lookup): Adjust walk_non_aliased_vuses call, 21669 make sure we do not leak memory. 21670 216712009-05-25 Richard Guenther <rguenther@suse.de> 21672 21673 * tree-ssa-alias.h (dump_points_to_solution): Declare. 21674 * tree-inline.c (expand_call_inline): Reset the escaped and 21675 callused solutions. 21676 * tree-ssa-structalias.c (pass_build_ealias): New. 21677 * tree-pass.h (pass_build_ealias): Declare. 21678 * passes.c (init_optimization_passes): Add PTA during 21679 early optimizations. 21680 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED 21681 and CALLUSED solutions. 21682 (dump_points_to_solution): New function, split out from ... 21683 (dump_points_to_info_for): ... here. 21684 * tree-parloops.c (parallelize_loops): Reset the escaped and 21685 callused solutions. 21686 216872009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 21688 21689 PR bootstrap/40027 21690 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing. 21691 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define. 21692 216932009-05-25 Ira Rosen <irar@il.ibm.com> 21694 21695 PR tree-optimization/40238 21696 * tree-vect-stmts.c (vect_init_vector): Insert initialization 21697 statements after basic block's labels. 21698 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 21699 to free the allocated memory. 21700 217012009-05-24 Kaz Kojima <kkojima@gcc.gnu.org> 21702 21703 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of 21704 return address with a USE. 21705 217062009-05-24 Richard Guenther <rguenther@suse.de> 21707 21708 PR middle-end/40233 21709 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs 21710 array type from the main variant of the inner type. 21711 217122009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de> 21713 21714 * config/vax/vax-protos.h (legitimate_constant_address_p): Change 21715 definition to bool (from int) to un-break build. 21716 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise. 21717 217182009-05-24 Paolo Bonzini <bonzini@gnu.org> 21719 21720 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes, 21721 discard_stmt_changes): Delete. 21722 * tree-ssa-operands.c (scb_stack): Delete. 21723 (init_ssa_operands): Do not initialize it. 21724 (fini_ssa_operands): Do not free it. 21725 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete. 21726 21727 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 21728 update_stmt, remove the others. Fix comments. 21729 * tree-dfa.c (optimize_stack_restore): Likewise. 21730 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise. 21731 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise. 21732 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise. 21733 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins): 21734 Likewise. 21735 * tree-ssa-propagate.c (substitute_and_fold): Likewise. 21736 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise. 21737 (dom_opt_finalize_block): Likewise, adjusting access to 21738 stmts_to_rescan. 21739 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan. 21740 (stmts_to_rescan): Change item type to gimple. 21741 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan. 21742 217432009-05-24 Ira Rosen <irar@il.ibm.com> 21744 21745 * doc/passes.texi (Tree-SSA passes): Document SLP pass. 21746 * tree-pass.h (pass_slp_vectorize): New pass. 21747 * params.h (SLP_MAX_INSNS_IN_BB): Define. 21748 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define. 21749 * tree-vectorizer.c (timevar.h): Include. 21750 (user_vect_verbosity_level): Declare. 21751 (vect_location): Fix comment. 21752 (vect_set_verbosity_level): Update user_vect_verbosity_level 21753 instead of vect_verbosity_level. 21754 (vect_set_dump_settings): Add an argument. Ignore user defined 21755 verbosity if dump flags require higher level of verbosity. Print to 21756 stderr only for loop vectorization. 21757 (vectorize_loops): Update call to vect_set_dump_settings. 21758 (execute_vect_slp): New function. 21759 (gate_vect_slp): Likewise. 21760 (struct gimple_opt_pass pass_slp_vectorize): New. 21761 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to 21762 access its members. 21763 (vec_info_for_bb): New function. 21764 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access. 21765 (VECTORIZATION_ENABLED): New macro. 21766 (SLP_ENABLED, SLP_DISABLED): Likewise. 21767 (vect_is_simple_use): Add bb_vec_info argument. 21768 (new_stmt_vec_info, vect_analyze_data_ref_dependences, 21769 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment, 21770 vect_analyze_data_ref_accesses, vect_analyze_data_refs, 21771 vect_schedule_slp, vect_analyze_slp): Likewise. 21772 (vect_analyze_stmt): Add slp_tree argument. 21773 (find_bb_location): Declare. 21774 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise. 21775 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls. 21776 (vect_analyze_loop_operations, vect_analyze_loop, 21777 get_initial_def_for_induction, vect_create_epilog_for_reduction, 21778 vect_finalize_reduction, vectorizable_reduction, 21779 vectorizable_live_operation, vect_transform_loop): Likewise. 21780 * tree-data-ref.c (dr_analyze_innermost): Update comment, 21781 skip evolution analysis if analyzing a basic block. 21782 (dr_analyze_indices): Likewise. 21783 (initialize_data_dependence_relation): Skip the test whether the 21784 object is invariant for basic blocks. 21785 (compute_all_dependences): Skip dependence analysis for data 21786 references in basic blocks. 21787 (find_data_references_in_stmt): Don't fail in case of invariant 21788 access in basic block. 21789 (find_data_references_in_bb): New function. 21790 (find_data_references_in_loop): Move code to 21791 find_data_references_in_bb and add a call to it. 21792 (compute_data_dependences_for_bb): New function. 21793 * tree-data-ref.h (compute_data_dependences_for_bb): Declare. 21794 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case 21795 that STEP is 0. 21796 (vect_analyze_data_ref_dependence): Check for interleaving in case of 21797 unknown dependence in basic block and fail in case of dependence in 21798 basic block. 21799 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data 21800 dependence instances from either loop or basic block vectorization 21801 info. 21802 (vect_compute_data_ref_alignment): Check if it is loop vectorization 21803 before calling nested_in_vect_loop_p. 21804 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data 21805 dependence instances from either loop or basic block vectorization 21806 info. 21807 (vect_verify_datarefs_alignment): Likewise. 21808 (vect_enhance_data_refs_alignment): Adjust function calls. 21809 (vect_analyze_data_refs_alignment): Likewise. 21810 (vect_analyze_group_access): Fix printing. Skip different checks if 21811 DR_STEP is 0. Keep strided stores either in loop or basic block 21812 vectorization data structure. Fix indentation. 21813 (vect_analyze_data_ref_access): Fix comments, allow zero step in 21814 basic blocks. 21815 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data 21816 dependence instances from either loop or basic block vectorization 21817 info. 21818 (vect_analyze_data_refs): Update comment. Call 21819 compute_data_dependences_for_bb to analyze basic blocks. 21820 (vect_create_addr_base_for_vector_ref): Check for outer loop only in 21821 case of loop vectorization. In case of basic block vectorization use 21822 data-ref itself as a base. 21823 (vect_create_data_ref_ptr): In case of basic block vectorization: 21824 don't advance the pointer, add new statements before the current 21825 statement. Adjust function calls. 21826 (vect_supportable_dr_alignment): Support only aligned accesses in 21827 basic block vectorization. 21828 * common.opt (ftree-slp-vectorize): New flag. 21829 * tree-vect-patterns.c (widened_name_p): Adjust function calls. 21830 (vect_pattern_recog_1): Likewise. 21831 * tree-vect-stmts.c (process_use): Likewise. 21832 (vect_init_vector): Add new statements in the beginning of the basic 21833 block in case of basic block SLP. 21834 (vect_get_vec_def_for_operand): Adjust function calls. 21835 (vect_finish_stmt_generation): Likewise. 21836 (vectorizable_call): Add assert that it is loop vectorization, adjust 21837 function calls. 21838 (vectorizable_conversion, vectorizable_assignment): Likewise. 21839 (vectorizable_operation): In case of basic block SLP, take 21840 vectorization factor from statement's type and skip the relevance 21841 check. Adjust function calls. 21842 (vectorizable_type_demotion): Add assert that it is loop 21843 vectorization, adjust function calls. 21844 (vectorizable_type_promotion): Likewise. 21845 (vectorizable_store): Check for outer loop only in case of loop 21846 vectorization. Adjust function calls. For basic blocks, skip the 21847 relevance check and don't advance pointers. 21848 (vectorizable_load): Likewise. 21849 (vectorizable_condition): Add assert that it is loop vectorization, 21850 adjust function calls. 21851 (vect_analyze_stmt): Add argument. In case of basic block SLP, check 21852 that it is not reduction, get vector type, call only supported 21853 functions, skip loop specific parts. 21854 (vect_transform_stmt): Check for outer loop only in case of loop 21855 vectorization. 21856 (new_stmt_vec_info): Add new argument and initialize bb_vinfo. 21857 (vect_is_simple_use): Fix comment, add new argument, fix conditions 21858 for external definition. 21859 * passes.c (pass_slp_vectorize): New pass. 21860 * tree-vect-slp.c (find_bb_location): New function. 21861 (vect_get_and_check_slp_defs): Add argument, adjust function calls, 21862 check for patterns only in loops. 21863 (vect_build_slp_tree): Add argument, adjust function calls, fail in 21864 case of multiple types in basic block SLP. 21865 (vect_mark_slp_stmts_relevant): New function. 21866 (vect_supported_load_permutation_p): Fix comment. 21867 (vect_analyze_slp_instance): Add argument. In case of basic block 21868 SLP, take vectorization factor from statement's type, check that 21869 unrolling factor is 1. Adjust function call. Save SLP instance in 21870 either loop or basic block vectorization structure. Return FALSE, 21871 if SLP failed. 21872 (vect_analyze_slp): Add argument. Get strided stores groups from 21873 either loop or basic block vectorization structure. Return FALSE 21874 if basic block SLP failed. 21875 (new_bb_vec_info): New function. 21876 (destroy_bb_vec_info, vect_slp_analyze_node_operations, 21877 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise. 21878 (vect_schedule_slp): Add argument. Get SLP instances from either 21879 loop or basic block vectorization structure. Set vectorization factor 21880 to be 1 for basic block SLP. 21881 (vect_slp_transform_bb): New function. 21882 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define. 21883 218842009-05-23 Mark Mitchell <mark@codesourcery.com> 21885 21886 * final.c (shorten_branches): Do not align labels for jump tables. 21887 (final_scan_insn): Use JUMP_TABLE_DATA_P. 21888 218892009-05-23 Eric Botcazou <ebotcazou@adacore.com> 21890 21891 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA. 21892 Remove outdated reference to flow.c and fix nits. 21893 * doc/gccint.texi: Tweak RTL description. 21894 * doc/rtl.texi: Likewise. 21895 218962009-05-23 Denis Chertykov <chertykov@gmail.com> 21897 21898 * config/avr/avr.c: Change my email address. 21899 * config/avr/avr.h: Likewise. 21900 * config/avr/avr.md: Likewise. 21901 * config/avr/avr-protos.h: Likewise. 21902 * config/avr/libgcc.S: Likewise. 21903 219042009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> 21905 21906 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove. 21907 (spu_split_load, spu_split_store): Change return type to int. 21908 (spu_split_convert): Declare. 21909 * config/spu/predicates.md (spu_mem_operand): Remove. 21910 (spu_mov_operand): Update. 21911 (spu_dest_operand, shiftrt_operator, extend_operator): Define. 21912 * config/spu/spu.c (regno_aligned_for_load): Remove. 21913 (reg_aligned_for_addr, spu_expand_load): Define. 21914 (spu_expand_extv): Reimplement and handle MEM. 21915 (spu_expand_insv): Handle MEM. 21916 (spu_sched_reorder): Handle insn's with length 0. 21917 (spu_legitimate_address_p): Reimplement. 21918 (store_with_one_insn_p): Return TRUE for any mode with size 21919 larger than 16 bytes. 21920 (address_needs_split): Define. 21921 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM 21922 operands. 21923 (spu_convert_move): Define. 21924 (spu_split_load): Use spu_expand_load and change all MEM's to TImode. 21925 (spu_split_store): Change all MEM's to TImode. 21926 (spu_init_expanders): Preallocate registers that correspond to 21927 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with 21928 mark_reg_pointer. 21929 (spu_split_convert): Define. 21930 * config/spu/spu.md (QHSI, QHSDI): New mode iterators. 21931 (_move<mode>, _movdi, _movti): Update predicate and condition. 21932 (load, store): Change to define_split. 21933 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to 21934 extend<mode>ti2. 21935 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define. 21936 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one 21937 define_insn_and_split of lshr<mode>3. 21938 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand. 21939 (<v>ashr<mode>3_imm): Define. 21940 (extv, extzv, insv): Allow MEM operands. 21941 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti, 21942 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi, 21943 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine. 21944 (_spu_convert2): Change to define_insn_and_split and remove the 21945 corresponding define_peephole2. 21946 (stack_protect_set, stack_protect_test, stack_protect_test_si): 21947 Change predicates to memory_operand. 21948 219492009-05-22 Mark Mitchell <mark@codesourcery.com> 21950 21951 * config/arm/thumb2.md: Add 16-bit multiply instructions. 21952 219532009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com> 21954 21955 PR tree-optimization/40219 21956 * tree.c (iterative_hash_expr): Make sure the builtin function is 21957 a normal builtin function and not a front end or back end builtin 21958 before indexing into the built_in_decls array. 21959 219602009-05-22 Richard Guenther <rguenther@suse.de> 21961 21962 PR middle-end/38964 21963 * alias.c (write_dependence_p): Do not use TBAA for answering 21964 anti-dependence or output-dependence. 21965 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code. 21966 (emit_pointer_definition): Remove. 21967 (emit_alias_warning): Likewise. 21968 (find_what_var_points_to): Remove TBAA pruning code. 21969 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing 21970 violations. 21971 (compute_points_to_sets): Remove code computing the set of 21972 dereferenced pointers. 21973 * tree-data-ref.c (dr_may_alias_p): Properly use the split 21974 oracle for querying anti and output dependencies. 21975 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying 21976 if TBAA may be applied. 21977 (refs_anti_dependent_p): New function. 21978 (refs_output_dependent_p): Likewise. 21979 * tree-ssa-alias.h (refs_anti_dependent_p): Declare. 21980 (refs_output_dependent_p): Likewise. 21981 * doc/tree-ssa.texi (Memory model): New section. 21982 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove. 21983 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove. 21984 * cfgexpand.c (expand_gimple_basic_block): Do not handle 21985 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR. 21986 * expr.c (expand_expr_real_1): Likewise. 21987 * gimple-low.c (lower_stmt): Likewise. 21988 * gimple-pretty-print.c (dump_gimple_stmt): Likewise. 21989 (dump_gimple_cdt): Remove. 21990 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE. 21991 (gimple_size): Likewise. 21992 (walk_gimple_op): Likewise. 21993 (is_gimple_stmt): Likewise. 21994 (walk_stmt_load_store_addr_ops): Likewise. 21995 (gimple_build_cdt): Remove. 21996 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove. 21997 * gimple.h (gimple_cdt_new_type): Remove. 21998 (gimple_cdt_new_type_ptr): Likewise. 21999 (gimple_cdt_set_new_type): Likewise. 22000 (gimple_cdt_location): Likewise. 22001 (gimple_cdt_location_ptr): Likewise. 22002 (gimple_cdt_set_location): Likewise. 22003 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR. 22004 * tree-cfg.c (remove_useless_stmts_1): Do not handle 22005 GIMPLE_CHANGE_DYNAMIC_TYPE. 22006 (verify_types_in_gimple_stmt): Likewise. 22007 * tree-inline.c (estimate_num_insns): Likewise. 22008 (expand_call_inline): Do not copy DECL_NO_TBAA_P. 22009 (copy_decl_to_var): Likewise. 22010 (copy_result_decl_to_var): Likewise. 22011 * tree-pretty-print.c (dump_generic_node): Do not handle 22012 CHANGE_DYNAMIC_TYPE_EXPR. 22013 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. 22014 * tree-ssa-operands.c (get_expr_operands): Likewise. 22015 * tree-ssa-structalias.c (struct variable_info): Remove 22016 no_tbaa_pruning member. 22017 (new_var_info): Do not set it based on DECL_NO_TBAA_P. 22018 (unify_nodes): Do not copy it. 22019 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE. 22020 (dump_solution_for_var): Do not dump no_tbaa_pruning state. 22021 (set_uids_in_ptset): Do not check it. 22022 (find_what_var_points_to): Likewise. 22023 (compute_tbaa_pruning): Remove. 22024 (compute_points_to_sets): Do not call it. 22025 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR. 22026 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove. 22027 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove. 22028 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise. 22029 (DECL_NO_TBAA_P): Likewise. 22030 (struct tree_decl_common): Move no_tbaa_flag to unused flags section. 22031 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P. 22032 (expand_omp_atomic_pipeline): Do not set it. 22033 * print-tree.c (print_node): Do not dump it. 22034 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove 22035 redundant check. 22036 220372009-05-22 Vladimir Makarov <vmakarov@redhat.com> 22038 22039 PR target/39856 22040 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note 22041 for clobber. 22042 220432009-05-22 Mark Mitchell <mark@codesourcery.com> 22044 22045 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as 22046 non-external. 22047 220482009-05-22 Ben Elliston <bje@au.ibm.com> 22049 22050 * Makefile.in (bversion.h, s-bversion): New targets. 22051 (TOPLEV_H): Add bversion.h. 22052 * toplev.h: Include "bversion.h". 22053 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use 22054 the __format__ attribute only if compiling with the same version 22055 of GCC as the sources (the "build version"). 22056 220572009-05-22 Ben Elliston <bje@au.ibm.com> 22058 22059 * c-format.c (handle_format_attribute): Fix comment typo. 22060 220612009-05-21 Steve Ellcey <sje@cup.hp.com> 22062 22063 PR target/37846 22064 * config/ia64/ia64.opt (mfused-madd): New. 22065 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD. 22066 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto. 22067 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4, 22068 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4, 22069 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf, 22070 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4, 22071 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD. 22072 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 22073 instruction if !TARGET_FUSED_MADD. 22074 (fpma, fpms): Remove colon from name. 22075 220762009-05-22 Richard Guenther <rguenther@suse.de> 22077 22078 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record 22079 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE. 22080 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle 22081 TARGET_MEM_REF. 22082 (create_expression_by_pieces): Only convert if necessary. 22083 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF. 22084 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST. 22085 220862009-05-21 Adam Nemet <anemet@caviumnetworks.com> 22087 22088 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a 22089 regular pattern from a template and rename it ... 22090 (*extzv_truncsi_exts): ... to this. 22091 220922009-05-21 Richard Guenther <rguenther@suse.de> 22093 22094 * cgraph.h (struct cgraph_node): Remove inline_decl member. 22095 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it. 22096 (cgraph_default_inline_p): Likewise. 22097 (cgraph_decide_inlining_incrementally): Likewise. 22098 220992009-05-21 H.J. Lu <hongjiu.lu@intel.com> 22100 Uros Bizjak <ubizjak@gmail.com> 22101 22102 * config/i386/cpuid.h (bit_MOVBE): New. 22103 22104 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe. 22105 22106 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New. 22107 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise. 22108 (ix86_handle_option): Handle OPT_mmovbe. 22109 (ix86_target_string): Add -mmovbe. 22110 (pta_flags): Add PTA_MOVBE. 22111 (processor_alias_table): Add PTA_MOVBE to "atom". 22112 (override_options): Handle PTA_MOVBE. 22113 22114 * config/i386/i386.h (TARGET_MOVBE): New. 22115 22116 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE. 22117 (*bswapsi_movbe): New. 22118 (*bswapdi_movbe): Likewise. 22119 (bswapdi2): Renamed to ... 22120 (*bswapdi_1): This. 22121 (bswapdi2): New expander. 22122 22123 * config/i386/i386.opt (mmovbe): New. 22124 22125 * doc/invoke.texi: Document -mmovbe. 22126 221272009-05-21 Taras Glek <tglek@mozilla.com> 22128 22129 * plugin.c (try_init_one_plugin): Updated to new plugin_init API. 22130 * gcc-plugin.h (plugin_init): Updated signature. 22131 * gcc-plugin.h (plugin_name_args): Moved to this header. 22132 * doc/plugins.texi (plugin_init): Updated documention to reflect 22133 API change. 22134 * doc/plugins.texi (plugin_name_args): Added to documention. 22135 221362009-05-21 Mark Mitchell <mark@codesourcery.com> 22137 22138 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern. 22139 (*mul<mode>3neg<mode>add<mode>_neon): Likewise. 22140 221412009-05-21 Shujing Zhao <pearly.zhao@oracle.com> 22142 22143 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and 22144 JUMP_TABLE_DATA_P predicates where applicable. 22145 * config/i386/predicates.md: Ditto. 22146 * config/i386/sse.md: Ditto. 22147 221482009-05-21 Jakub Jelinek <jakub@redhat.com> 22149 22150 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For 22151 operand2 -128 override length_immediate attribute to 1. 22152 * config/i386/predicates.md (constm128_operand): New predicate. 22153 22154 * config/i386/i386.c (memory_address_length): Handle %r12 22155 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp 22156 also check REGNO. 22157 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit 22158 mode look through optional ZERO_EXTEND and SUBREG. 22159 * config/i386/i386.md (R12_REG): New define_constant. 22160 (prefix_data16): For sse unit set also for MODE_TI insns. 22161 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX 22162 insns set if operand 1 is ext_QIreg_operand. 22163 (modrm): For TYPE_IMOV clear only if not MODE_DI. For 22164 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened 22165 immediate. 22166 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change 22167 mode from MODE_DI to MODE_SI. 22168 (movdi_1_rex64): Override modrm and length_immediate attributes 22169 only for movabs (TYPE_IMOV, alternative 2). 22170 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX. 22171 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit, 22172 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit, 22173 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit, 22174 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set 22175 prefix_rex attribute if DImode. 22176 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64, 22177 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3, 22178 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3, 22179 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate 22180 attribute to 1 if TYPE_ALU and operand 2 is const128_operand. 22181 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64): 22182 Likewise. For TYPE_IMOV clear length_immediate attribute. 22183 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, 22184 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly, 22185 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp, 22186 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp, 22187 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU 22188 or one operand TYPE_ISHIFT. 22189 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64, 22190 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit, 22191 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp, 22192 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext, 22193 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly, 22194 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp, 22195 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64, 22196 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64, 22197 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp, 22198 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext, 22199 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly, 22200 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp, 22201 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit, 22202 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp, 22203 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit, 22204 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit, 22205 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0, 22206 set mode attribute, don't override length attribute. 22207 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute 22208 to 1. 22209 (return_internal_long): Set length attribute to 2 instead of 1. 22210 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64, 22211 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear 22212 prefix_rex attribute. 22213 * config/i386/predicates.md (ext_QIreg_operand, const128_operand): 22214 New predicates. 22215 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT. 22216 222172009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 22218 22219 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern. 22220 222212009-05-20 Ian Lance Taylor <iant@google.com> 22222 22223 * tree.c (build_tree_list_vec_stat): New function. 22224 (ctor_to_vec): New function. 22225 (build_nt_call_vec): New function. 22226 (build_call_array): Change args to be a const pointer. 22227 (build_call_vec): New function. 22228 * tree.h (build_nt_call_vec): Declare. 22229 (build_tree_list_vec_stat): Declare. 22230 (build_tree_list_vec): Define. 22231 (build_call_array): Update declaration. 22232 (build_call_vec): Declare. 22233 (ctor_to_vec): Declare. 22234 * c-common.c (tree_vector_cache): New static variable. 22235 (make_tree_vector): New function. 22236 (release_tree_vector): New function. 22237 (make_tree_vector_single): New function. 22238 (make_tree_vector_copy): New function. 22239 * c-common.h (tree_vector_cache, make_tree_vector): Declare. 22240 (make_tree_vector_single, make_tree_vector_copy): Declare. 22241 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove. 22242 (c_parser_expr_list): Don't manage cache here, instead call 22243 make_tree_vector. 22244 (c_parser_release_expr_list): Remove static function. 22245 (c_parser_vec_to_tree_list): Remove static function. 22246 (c_parser_attributes): Call build_tree_list_vec instead of 22247 c_parser_vec_to_tree_list. Call release_tree_vector instead of 22248 c_parser_release_expr_list. 22249 (c_parser_postfix_expression_after_primary): Likewise. 22250 (c_parser_objc_keywordexpr): Likewise. 22251 222522009-05-20 Sandra Loosemore <sandra@codesourcery.com> 22253 22254 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE, 22255 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and 22256 TARGET_CONVERT_TO_TYPE. 22257 * hooks.c (hook_tree_const_tree_null): Define. 22258 * hooks.h (hook_tree_const_tree_null): Declare. 22259 * target.h (struct gcc_target): Add invalid_parameter_type, 22260 invalid_return_type, promoted_type, and convert_to_type fields. 22261 * target-def.h (TARGET_INVALID_PARAMETER_TYPE): Define. 22262 (TARGET_INVALID_RETURN_TYPE): Define. 22263 (TARGET_PROMOTED_TYPE): Define. 22264 (TARGET_CONVERT_TO_TYPE): Define. 22265 (TARGET_INITIALIZER): Update for new fields. 22266 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type. 22267 (grokparms): Check targetm.invalid_parameter_type. 22268 * c-typeck.c (default_conversion): Check targetm.promoted_type. 22269 * c-convert.c (convert): Check targetm.convert_to_type. 22270 222712009-05-20 Adam Nemet <anemet@caviumnetworks.com> 22272 22273 * config/mips/mips.md (*extenddi_truncate<mode>, 22274 *extendsi_truncate<mode>): Emit exts if supported. Add attribute 22275 defintions. 22276 (*extendhi_truncateqi): New define_insn_and_sptit. 22277 222782009-05-20 Jakub Jelinek <jakub@redhat.com> 22279 22280 PR middle-end/40204 22281 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite 22282 recursion if build_int_cst_type returns the same INTEGER_CST as arg1. 22283 222842009-05-20 Eric Botcazou <ebotcazou@adacore.com> 22285 22286 * fold-const.c (build_fold_addr_expr_with_type): Take the address of 22287 the operand of VIEW_CONVERT_EXPR. 22288 222892009-05-20 H.J. Lu <hongjiu.lu@intel.com> 22290 22291 * config/i386/driver-i386.c (host_detect_local_cpu): Check 22292 extended family and model for Intel processors. Support Intel Atom. 22293 222942009-05-20 Olivier Hainque <hainque@adacore.com> 22295 22296 * gstab.h (stab_code_type): Define, to be used instead of the 22297 __stab_debug_code enum, made anonymous. Add 2009 to the copyright 22298 notice. 22299 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use 22300 occurrences by stab_code_type. 22301 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused. 22302 223032009-05-20 Martin Jambor <mjambor@suse.cz> 22304 22305 * tree-flow.h (insert_edge_copies_seq): Undeclare. 22306 (sra_insert_before): Likewise. 22307 (sra_insert_after): Likewise. 22308 (sra_init_cache): Likewise. 22309 (sra_type_can_be_decomposed_p): Likewise. 22310 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c 22311 * tree-sra.c (sra_type_can_be_decomposed_p): Made static. 22312 (sra_insert_before): Likewise. 22313 (sra_insert_after): Likewise. 22314 (sra_init_cache): Likewise. 22315 (insert_edge_copies_seq): Made static and moved upwards. 22316 22317 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch 22318 case. 22319 22320 * tree-flow-inline.h (contains_view_convert_expr_p): New function. 22321 22322 * ipa-prop.c (get_ssa_def_if_simple_copy): New function. 22323 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip 22324 simple copies. 22325 223262009-05-20 Richard Guenther <rguenther@suse.de> 22327 22328 * expr.c (expand_expr_real_1): Avoid calling do_store_flag 22329 with mismatched comparison modes. 22330 223312009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 22332 22333 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM. 22334 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM. 22335 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic 22336 with shifts for Thumb2. 22337 (orsi_notsi): New for orn. 22338 (*thumb_orsi_notshiftsi_si): Allow orn with shifts. 22339 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2. 22340 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2. 22341 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments. 22342 Don't invert remainder for IOR. 22343 223442009-05-19 Zdenek Dvorak <ook@ucw.cz> 22345 22346 PR tree-optimization/40087 22347 * tree-ssa-loop-niter.c (number_of_iterations_ne_max, 22348 number_of_iterations_ne): Rename never_infinite argument. 22349 (number_of_iterations_lt_to_ne, number_of_iterations_lt, 22350 number_of_iterations_le): Handle pointer-type ivs when 22351 exit_must_be_taken is false. 22352 (number_of_iterations_cond): Do not always assume that 22353 exit_must_be_taken if the control variable is a pointer. 22354 223552009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com> 22356 22357 * c-typeck.c (build_binary_op): Allow % on integal vectors. 22358 * doc/extend.texi (Vector Extension): Document that % is allowed too. 22359 223602009-05-19 H.J. Lu <hongjiu.lu@intel.com> 22361 22362 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check 22363 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN. 22364 223652009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org> 22366 22367 PR c/40172 22368 * c.opt (Wlogical-op): Disabled by default. 22369 * c-opt (c_common_post_options): Do not enable Wlogical-op with 22370 Wextra. 22371 * doc/invoke.texi (Wlogical-op): Likewise. 22372 223732009-05-19 Eric Botcazou <ebotcazou@adacore.com> 22374 22375 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn 22376 into CASE_CONVERT. 22377 <PLUS_EXPR>: Strip useless type conversions instead of type nops. 22378 Propagate the type of the first operand. 22379 <ASSERT_EXPR>: Simplify. 22380 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type. 22381 Rewrite using the RHS code as discriminant. 22382 <NOP_EXPR>: Turn into CASE_CONVERT. 22383 <PLUS_EXPR>: Propagate the type of the first operand. 22384 223852009-05-19 Steve Ellcey <sje@cup.hp.com> 22386 22387 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New. 22388 (ia64_dconst_0_375): New. 22389 * config/ia64/ia64.c (ia64_override_options): Remove 22390 -minline-sqrt-min-latency warning. 22391 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New. 22392 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New 22393 * config/ia64/ia64.md (*sqrt_approx): Remove. 22394 (sqrtsf2): Remove #if 0. 22395 (sqrtsf2_internal_thr): Rewrite and move to div.md. 22396 (sqrtdf): Remove assert. 22397 (sqrtdf2_internal_thr): Rewrite and move to div.md. 22398 (sqrtxf2): Remove #if 0. 22399 (sqrtxf2_internal_thr): Rewrite and move to div.md. 22400 * div.md (sqrt_approx_rf): New. 22401 (sqrtsf2_internal_thr): New implementation. 22402 (sqrtsf2_internal_lat): New. 22403 (sqrtdf2_internal_thr: New implementation. 22404 (sqrtxf2_internal): New implementation. 22405 224062009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com> 22407 Hans-Peter Nilsson <hp@axis.com> 22408 22409 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE) 22410 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE) 22411 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE) 22412 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE) 22413 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE) 22414 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE) 22415 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE) 22416 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE) 22417 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE) 22418 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here... 22419 * c-common.c: ...from here. 22420 224212009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org> 22422 22423 * c-common.c (warn_logical_operator): Remove unnecessary conditionals. 22424 224252009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 22426 22427 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types. 22428 224292009-05-19 Ben Elliston <bje@au.ibm.com> 22430 22431 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning 22432 assignments with memcpy calls. 22433 (add_fdes): Likewise. 22434 (binary_search_unencoded_fdes): Likewise. 22435 (linear_search_fdes): Eliminate type puns. 22436 224372009-05-19 Richard Guenther <rguenther@suse.de> 22438 22439 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do 22440 not falsely claim to have propagated into all uses. 22441 224422009-05-19 Ben Elliston <bje@au.ibm.com> 22443 22444 * doc/invoke.texi (C Dialect Options): Update OpenMP specification 22445 version to v3.0. 22446 224472009-05-18 Kaz Kojima <kkojima@gcc.gnu.org> 22448 22449 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove. 22450 * config/sh/sh.c (sh_legitimate_address_p): Make static. 22451 (TARGET_LEGITIMATE_ADDRESS_P): New. 22452 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 22453 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS. 22454 224552009-05-18 Dodji Seketeli <dodji@redhat.com> 22456 22457 PR debug/40109 22458 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a 22459 child of the containing namespace's DIE. 22460 224612009-05-18 Adam Nemet <anemet@caviumnetworks.com> 22462 22463 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>, 22464 *zero_extendhi_truncqi): Move after the zero_extend patterns. 22465 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the 22466 extend patterns. 22467 224682009-05-18 H.J. Lu <hongjiu.lu@intel.com> 22469 22470 PR target/39942 22471 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace 22472 gen_align with gen_pad. 22473 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of 22474 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN. 22475 22476 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New. 22477 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. 22478 22479 * config/i386/i386.md (align): Renamed to ... 22480 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with 22481 ASM_OUTPUT_MAX_SKIP_PAD. 22482 224832009-05-18 Andreas Schwab <schwab@linux-m68k.org> 22484 22485 * config.gcc: Fix variable syntax. 22486 22487 PR target/39531 22488 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies 22489 before calling exact_log2. 22490 (output_iorsi3): Likewise. 22491 (output_xorsi3): Likewise. 22492 224932009-05-18 Kaz Kojima <kkojima@gcc.gnu.org> 22494 22495 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register 22496 for the none zero constant operand except for EQ and NE 22497 comprisons even when the first operand is R0. 22498 224992009-05-18 Andreas Krebbel <krebbel1@de.ibm.com> 22500 22501 * config/s390/2064.md: Remove trailing whitespaces. 22502 * config/s390/2084.md: Likewise. 22503 * config/s390/constraints.md: Likewise. 22504 * config/s390/fixdfdi.h: Likewise. 22505 * config/s390/libgcc-glibc.ver: Likewise. 22506 * config/s390/s390-modes.def: Likewise. 22507 * config/s390/s390-protos.h: Likewise. 22508 * config/s390/s390.c: Likewise. 22509 * config/s390/s390.h: Likewise. 22510 * config/s390/s390.md: Likewise. 22511 * config/s390/tpf-unwind.h: Likewise. 22512 225132009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com> 22514 22515 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature. 22516 225172009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com> 22518 22519 M68K TLS support. 22520 * configure.ac (m68k-*-*): Check if binutils support TLS. 22521 * configure: Regenerate. 22522 * config/m68k/predicates.md (symbolic_operand): Extend comment. 22523 * config/m68k/constraints.md (Cu): New constraint. 22524 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove. 22525 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants. 22526 (movsi): Handle TLS symbols. 22527 (addsi3_5200): Handle XTLS symbols, indent. 22528 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare. 22529 (m68k_tls_reference_p): Declare. 22530 (m68k_legitimize_address): Declare. 22531 (m68k_unwrap_symbol): Declare. 22532 * config/m68k/m68k.opt (mxtls): New option. 22533 * config/m68k/m68k.c (ggc.h): Include. 22534 (m68k_output_dwarf_dtprel): Implement hook. 22535 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define. 22536 (m68k_expand_prologue): Load GOT pointer when function needs it. 22537 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols. 22538 (m68k_legitimate_constant_address_p): Same. 22539 (m68k_decompose_address): Handle TLS references. 22540 (m68k_get_gp): New static function. 22541 (enum m68k_reloc): New contants. 22542 (TLS_RELOC_P): New macro. 22543 (m68k_wrap_symbol): New static function. 22544 (m68k_unwrap_symbol): New function. 22545 (m68k_final_prescan_insn_1): New static function. 22546 (m68k_final_prescan_insn): New function. 22547 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static 22548 functions. 22549 (legitimize_pic_address): Handle TLS references.. 22550 (m68k_tls_get_addr, m68k_get_tls_get_addr) 22551 (m68k_libcall_value_in_a0_p) 22552 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp) 22553 (m68k_call_m68k_read_tp): Helper variables and functions for ... 22554 (m68k_legitimize_tls_address): Handle TLS references. 22555 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p): 22556 New functions. 22557 (m68k_legitimize_address): Handle TLS symbols. 22558 (m68k_get_reloc_decoration): New static function. 22559 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and 22560 UNSPEC_RELOC32. 22561 (m68k_output_dwarf_dtprel): Implement hook. 22562 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32. 22563 (m68k_libcall_value): Return result in A0 instead of D0 when asked by 22564 m68k_call_* routines. 22565 (sched_attr_op_type): Handle TLS symbols. 22566 (gt-m68k.h): Include. 22567 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define. 22568 (LEGITIMATE_PIC_OPERAND_P): Support TLS. 22569 225702009-05-18 Martin Jambor <mjambor@suse.cz> 22571 22572 * ipa-prop.c (ipa_check_stmt_modifications): Removed. 22573 (visit_store_addr_for_mod_analysis): New function. 22574 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops. 22575 (determine_cst_member_ptr): Use gimple_assign_single_p. 22576 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p. 22577 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of 22578 operands. Don't check number of operands of a NOP_EXPR. 22579 225802009-05-18 Eric Fisher <joefoxreal@gmail.com> 22581 22582 * doc/tree-ssa.texi (SSA Operands): Fix a mistake. 22583 225842009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org> 22585 22586 PR c/40172 22587 * c-common.c (warn_logical_operator): Don't warn if one of 22588 expression isn't always true or false. 22589 225902009-05-17 Kai Tietz <kai.tietz@onevision.com> 22591 22592 * config/i386/biarch32.h: New file. 22593 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file. 22594 225952009-05-17 Adam Nemet <anemet@caviumnetworks.com> 22596 22597 * config/mips/mips.md (*zero_extend<mode>_trunchi, 22598 *zero_extend<mode>_truncqi): Merge these into ... 22599 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern. 22600 Name the pattern following this as *zero_extendhi_truncqi. 22601 226022009-05-16 Brad Lucier <lucier@math.purdue.edu> 22603 22604 PR middle-end/39301 22605 * hwint.h: Add macro HOST_WIDEST_INT_PRINT. 22606 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT. 22607 (output_info): Make field HOST_WIDEST_INT. 22608 (print_statistics): Use HOST_WIDEST_INT_PRINT. 22609 (dump_bitmat_statistics): Same. 22610 226112009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com> 22612 22613 * config.gcc (use_gcc_stdint): Set to wrap. 22614 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, 22615 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, 22616 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, 22617 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, 22618 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE, 22619 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE, 22620 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, 22621 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define. 22622 226232009-05-16 Joseph Myers <joseph@codesourcery.com> 22624 22625 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and 22626 tune_64. 22627 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT): 22628 Move definitions earlier. 22629 (OPT_ARCH64, OPT_ARCH32): Define. 22630 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32 22631 and tune_64. 22632 226332009-05-16 Richard Earnshaw <rearnsha@arm.com> 22634 22635 PR target/40153 22636 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name 22637 implies. 22638 226392009-05-16 Richard Earnshaw <rearnsha@arm.com> 22640 22641 * arm.md (movdi2): Copy non-reg values to DImode registers. 22642 226432009-05-16 Jakub Jelinek <jakub@redhat.com> 22644 22645 PR target/39942 22646 * final.c (label_to_max_skip): New function. 22647 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if 22648 CODE_LABEL_NUMBER <= max_labelno. 22649 * output.h (label_to_max_skip): New prototype. 22650 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to... 22651 (ix86_avoid_jump_mispredicts): ... this. Don't define if 22652 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment. 22653 Handle CODE_LABELs with >= 16 byte alignment or with 22654 max_skip == (1 << align) - 1. 22655 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if 22656 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. 22657 22658 PR target/39942 22659 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second 22660 .p2align 3 if MAX_SKIP is smaller than 7. 22661 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 22662 226632009-05-15 Ian Lance Taylor <iant@google.com> 22664 22665 * alias.c (struct alias_set_entry_d): Rename from struct 22666 alias_set_entry. Change all uses. 22667 * except.c (struct call_site_record_d): Rename from struct 22668 call_site_record. Change all uses. 22669 * except.h (struct eh_region_d): Rename from struct eh_region. 22670 Change all uses. 22671 * gcse.c (struct hash_table_d): Rename from struct hash_table. 22672 Change all uses. 22673 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct 22674 ivtype_map_elt. Change all uses. 22675 (struct rename_map_elt_d): Rename fromstruct rename_map_elt. 22676 Change all uses. 22677 (struct ifsese_d): Rename fromstruct ifsese. Change all uses. 22678 * graphite.h (struct name_tree_d): Rename from struct name_tree. 22679 Change all uses. 22680 (struct sese_d): Rename from struct sese. Change all uses. 22681 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses. 22682 (struct omega_pb_d): Rename from struct omega_pb. Change all uses. 22683 * optabs.h (struct optab_d): Rename from struct optab. Change all 22684 uses. 22685 (struct convert_optab_d): Rename from struct convert_optab. 22686 Change all uses. 22687 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct 22688 ipa_opt_pass. Change all uses. 22689 * tree-predcom.c (struct dref_d): Rename from struct dref. Change 22690 all uses. 22691 22692 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already 22693 defined as a typedef. 22694 (grokdeclarator): If -Wc++-compat, warn if a typedef is already 22695 defined as a tag. 22696 226972009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org> 22698 22699 PR 16302 22700 * fold-const.c (make_range,build_range_check,merge_ranges): Move 22701 declaration to... 22702 (merge_ranges): Returns bool. 22703 * tree.h (make_range): .. to here. 22704 (build_range_check): Likewise. 22705 (merge_ranges): Likewise. Renamed from merge_ranges. 22706 * c-typeck.c (parser_build_binary_op): Update calls to 22707 warn_logical_operator. 22708 * c-common.c (warn_logical_operator): Add new warning. 22709 * c-common.h (warn_logical_operator): Update declaration. 22710 227112009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org> 22712 22713 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional. 22714 227152009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 22716 22717 * doc/install.texi: Document MPC requirements, flags etc. 22718 22719 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New. 22720 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE. 22721 Evaluate constant arguments. 22722 (fold_builtin_carg): Ensure we get a complex REAL_TYPE. 22723 (fold_builtin_1): Likewise, also evaluate constant arguments. 22724 Remove superfluous break. 22725 (do_mpc_ckconv): New. 22726 * real.h: Include mpc.h. 22727 * toplev.c (print_version): Output MPC version info if available. 22728 227292009-05-15 Sandra Loosemore <sandra@codesourcery.com> 22730 22731 * fold-const.c (fold_convert_const_real_from_real): Check for overflow. 22732 227332009-05-15 H.J. Lu <hongjiu.lu@intel.com> 22734 22735 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p 22736 only once. 22737 227382009-05-15 Jan Hubicka <jh@suse.cz> 22739 22740 * doc/invoke.texi (max-early-inliner-iterations): New flag. 22741 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE. 22742 (try_inline): Fix return value. 22743 (cgraph_decide_inlining_incrementally): Honor new value. 22744 (cgraph_early_inlining): Handle indirect inlining. 22745 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New. 22746 227472009-05-15 Jan Hubicka <jh@suse.cz> 22748 22749 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag. 22750 * cgraphunit.c (cgraph_finalize_function): Set it. 22751 (cgraph_expand_function): Use it. 22752 227532009-05-15 Sandra Loosemore <sandra@codesourcery.com> 22754 22755 * real.c (encode_ieee_half): Define. 22756 (decode_ieee_half): Define. 22757 (ieee_half_format): Define. 22758 (arm_half_format): Define. 22759 * real.h (ieee_half_format): Declare. 22760 (arm_half_format): Declare. 22761 227622009-05-15 Sandra Loosemore <sandra@codesourcery.com> 22763 22764 * optabs.c (prepare_float_lib_cmp): Test that the comparison, 22765 swapped, and reversed optabs exist before trying to use them. 22766 227672009-05-15 Paul Brook <paul@codesourcery.com> 22768 Sandra Loosemore <sandra@codesourcery.com> 22769 22770 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure 22771 loads. Allow PRE_DEC. 22772 (output_move_neon): Handle PRE_DEC. 22773 (arm_print_operand): Add 'A' for neon structure loads. 22774 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype. 22775 * config/arm/neon.md (neon_mov): Update comment. 22776 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand 22777 calls. 22778 (Um): New constraint. 22779 227802009-05-15 Jan Hubicka <jh@suse.cz> 22781 22782 Revert the following patch until testsuite fallout is fixed: 22783 * cgraph.c (dump_cgraph_node): Dump size/time/benefit. 22784 * cgraph.h (struct inline_summary): New filed self_wize, 22785 size_inlining_benefit, self_time and time_inlining_benefit. 22786 (struct cgraph_global_info): Replace insns by time ans size fields. 22787 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size 22788 (ipcp_estimate_growth, ipcp_insert_stage): Likewise. 22789 (ipcp_update_callgraph): Do not touch function bodies. 22790 * ipa-inline.c: Include except.h 22791 (MAX_TIME): New constant. 22792 (overall_insns): Remove 22793 (overall_size, max_benefit): New static variables. 22794 (cgraph_estimate_time_after_inlining): New function. 22795 (cgraph_estimate_size_after_inlining): Rewrite using benefits. 22796 (cgraph_clone_inlined_nodes): Update size. 22797 (cgraph_mark_inline_edge): Update size. 22798 (cgraph_estimate_growth): Use size info. 22799 (cgraph_check_inline_limits): Check size. 22800 (cgraph_default_inline_p): Likewise. 22801 (cgraph_edge_badness): Compute badness based on benefit and size cost. 22802 (cgraph_decide_recursive_inlining): Check size. 22803 (cgraph_decide_inlining_of_small_function): Update size; dump sizes 22804 and times. 22805 (cgraph_decide_inlining): Likewise. 22806 (cgraph_decide_inlining_incrementally): Likewise; honor 22807 PARAM_EARLY_INLINING_INSNS. 22808 (likely_eliminated_by_inlining_p): New predicate. 22809 (estimate_function_body_sizes): New function. 22810 (compute_inline_parameters): Use it. 22811 * except.c (must_not_throw_labels): New function. 22812 * except.h (must_not_throw_labels): Declare. 22813 * tree-inline.c (init_inline_once): Kill inlining_weigths 22814 * tree-ssa-structalias.c: Avoid uninitialized warning. 22815 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300. 22816 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60. 22817 (PARAM_INLINE_CALL_COST): Remove. 22818 (PARAM_EARLY_INLINING_INSNS): New. 22819 228202009-05-15 Richard Guenther <rguenther@suse.de> 22821 22822 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals, 22823 not TODO_update_ssa. 22824 228252009-05-15 Richard Guenther <rguenther@suse.de> 22826 22827 PR tree-optimization/39999 22828 * gimple.h (gimple_expr_type): Use the expression type looking 22829 through useless conversions. 22830 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type. 22831 (vn_nary_op_insert_stmt): Likewise. 22832 (simplify_binary_expression): Likewise. 22833 228342009-05-15 Richard Guenther <rguenther@suse.de> 22835 22836 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta): 22837 New options, enabled by default. 22838 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta): 22839 Document. 22840 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop. 22841 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop. 22842 * tree-ssa-structalias.c (gate_tree_pta): New function. 22843 (pass_build_alias): Use it. 22844 228452009-05-15 Joseph Myers <joseph@codesourcery.com> 22846 22847 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also 22848 recurse on an invariant address if a conversion from a pointer 22849 type to a wider integer type is involved. 22850 228512009-05-15 Jan Hubicka <jh@suse.cz> 22852 22853 * cgraph.c (dump_cgraph_node): Dump size/time/benefit. 22854 * cgraph.h (struct inline_summary): New filed self_wize, 22855 size_inlining_benefit, self_time and time_inlining_benefit. 22856 (struct cgraph_global_info): Replace insns by time ans size fields. 22857 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size 22858 (ipcp_estimate_growth, ipcp_insert_stage): Likewise. 22859 (ipcp_update_callgraph): Do not touch function bodies. 22860 * ipa-inline.c: Include except.h 22861 (MAX_TIME): New constant. 22862 (overall_insns): Remove 22863 (overall_size, max_benefit): New static variables. 22864 (cgraph_estimate_time_after_inlining): New function. 22865 (cgraph_estimate_size_after_inlining): Rewrite using benefits. 22866 (cgraph_clone_inlined_nodes): Update size. 22867 (cgraph_mark_inline_edge): Update size. 22868 (cgraph_estimate_growth): Use size info. 22869 (cgraph_check_inline_limits): Check size. 22870 (cgraph_default_inline_p): Likewise. 22871 (cgraph_edge_badness): Compute badness based on benefit and size cost. 22872 (cgraph_decide_recursive_inlining): Check size. 22873 (cgraph_decide_inlining_of_small_function): Update size; dump sizes 22874 and times. 22875 (cgraph_decide_inlining): Likewise. 22876 (cgraph_decide_inlining_incrementally): Likewise; honor 22877 PARAM_EARLY_INLINING_INSNS. 22878 (likely_eliminated_by_inlining_p): New predicate. 22879 (estimate_function_body_sizes): New function. 22880 (compute_inline_parameters): Use it. 22881 * except.c (must_not_throw_labels): New function. 22882 * except.h (must_not_throw_labels): Declare. 22883 * tree-inline.c (init_inline_once): Kill inlining_weigths 22884 * tree-ssa-structalias.c: Avoid uninitialized warning. 22885 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300. 22886 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60. 22887 (PARAM_INLINE_CALL_COST): Remove. 22888 (PARAM_EARLY_INLINING_INSNS): New. 22889 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update. 22890 (inline-call-cost): Remove. 22891 (early-inlining-insns): New. 22892 228932009-05-15 Eric Botcazou <ebotcazou@adacore.com> 22894 22895 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them 22896 for bounds. 22897 (print_int_cst_bounds_in_octal_p): Likewise. 22898 (dbxout_type): Adjust calls to above functions. Be prepared to deal 22899 with subtypes. 22900 * dwarf2out.c (base_type_die): Likewise. 22901 (is_subrange_type): Delete. 22902 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds. 22903 (modified_type_die): Call subrange_type_for_debug_p on subtypes. 22904 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it 22905 if the destination type is boolean. 22906 (build_range_check): Do not special-case subtypes. 22907 (fold_sign_changed_comparison): Likewise. 22908 (fold_unary): Likewise. 22909 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define. 22910 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS. 22911 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds. 22912 * tree.c (subrange_type_for_debug_p): New predicate based on the 22913 former is_subrange_type. 22914 * tree.h (subrange_type_for_debug_p): Declare. 22915 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete. 22916 (convert_affine_scev): Remove call to above function. 22917 (chrec_convert_aggressive): Likewise. 22918 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return 22919 false for conversions involving subtypes. 22920 * tree-vrp.c (vrp_val_max): Do not special-case subtypes. 22921 (vrp_val_min): Likewise. 22922 (needs_overflow_infinity): Likewise. 22923 (extract_range_from_unary_expr): Likewise. 22924 229252009-05-15 Paolo Bonzini <bonzini@gnu.org> 22926 22927 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS. 22928 * config/frv/frv.c: Likewise. 22929 * config/s390/s390.c: Likewise. 22930 * config/sparc/sparc.h: Likewise. 22931 * config/i386/i386.h: Likewise. 22932 * config/i386/i386.c: Likewise. 22933 * config/crx/crx.c: Likewise. 22934 * config/m68hc11/m68hc11.h: Likewise. 22935 * config/iq2000/iq2000.c: Likewise. 22936 * config/mn10300/mn10300.h: Likewise. 22937 * config/mn10300/mn10300.c: Likewise. 22938 * config/m68k/m68k.c: Likewise. 22939 * config/rs6000/rs6000.c: Likewise. 22940 * config/rs6000/xcoff.h: Likewise. 22941 * config/rs6000/linux64.h: Likewise. 22942 * config/rs6000/sysv4.h: Likewise. 22943 * config/score/score3.c: Likewise. 22944 * config/score/score7.c: Likewise. 22945 * config/score/score.c: Likewise. 22946 * config/arm/arm.md: Likewise. 22947 * config/mips/mips.c: Likewise. 22948 * config/mips/mips.md: Likewise. 22949 * config/bfin/bfin.h: Likewise. 22950 * config/pa/pa.c: Likewise. 22951 * config/pa/constraints.md: Likewise. 22952 22953 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete. 22954 * config/pdp11/pdp11.c (legitimate_address_p): Delete. 22955 * config/pdp11/pdp11.h: Use memory_address_p instead. 22956 229572009-05-14 Ian Lance Taylor <iant@google.com> 22958 22959 * passes.c (finish_optimization_passes): Change i to int. 22960 * plugin.c (plugins_active_p): Change event to int. 22961 (dump_active_plugins): Likewise. 22962 * reginfo.c (invalid_mode_change_p): Change to to unsigned int. 22963 Add cast. 22964 * tree.c (tree_range_check_failed): Change c to unsigned int. 22965 (omp_clause_range_check_failed): Likewise. 22966 (build_common_builtin_nodes): Change mode to int. Add cast. 22967 * config/ia64/ia64.c (is_emitted): Change r to unsigned int. 22968 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise. 22969 22970 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using 22971 ++ or -- with a variable of enum type. 22972 229732009-05-14 Steven Bosscher <steven@gcc.gnu.org> 22974 22975 PR driver/40144 22976 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op. 22977 229782009-05-14 Steven Bosscher <steven@gcc.gnu.org> 22979 22980 * store-motion.c: Do not include params.h 22981 * Makefile.in: Fix dependencies for various files. 22982 229832009-05-14 Steven Bosscher <steven@gcc.gnu.org> 22984 22985 * auto-inc-dec.c: Fix pass description, remove apparent 22986 accidental duplication. 22987 229882009-05-14 H.J. Lu <hongjiu.lu@intel.com> 22989 22990 PR middle-end/40147 22991 * ipa-utils.h (memory_identifier_string): Moved to ... 22992 * tree.h (memory_identifier_string): Here. Add GTY(()). 22993 229942009-05-14 Paolo Bonzini <bonzini@gnu.org> 22995 22996 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this 22997 in the former documentation of... 22998 (GO_IF_LEGITIMATE_ADDRESS): ... this. 22999 * ira-conflicts.c (get_dup_num): Use address_operand. 23000 * targhooks.c (default_legitimate_address_p): New. 23001 * targhooks.h (default_legitimate_address_p): New. 23002 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: 23003 Call hook. 23004 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook. 23005 * target.h (struct target): Add legitimate_address_p. 23006 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New. 23007 (TARGET_INITIALIZER): Include it. 23008 23009 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23010 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove. 23011 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static. 23012 (TARGET_LEGITIMATE_ADDRESS_P): New. 23013 23014 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23015 (REG_OK_STRICT_P): Delete. 23016 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to... 23017 (frv_legitimate_address_p_1): ... this. 23018 * config/frv/frv.c (frv_legitimate_address_p): Forward to... 23019 (frv_legitimate_address_p_1): ... the renamed old 23020 frv_legitimate_address_p. 23021 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p. 23022 (TARGET_LEGITIMATE_ADDRESS_P): New. 23023 23024 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23025 * config/s390/s390-protos.h (legitimate_address_p): Remove. 23026 * config/s390/s390.c (legitimate_address_p): Rename to... 23027 (s390_legitimate_address_p): ... this, make static. 23028 (legitimize_address): Adjust call. 23029 (TARGET_LEGITIMATE_ADDRESS_P): New. 23030 * config/s390/constraints.md ("e"): Call strict_memory_address_p. 23031 23032 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23033 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove. 23034 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static. 23035 (TARGET_LEGITIMATE_ADDRESS_P): New. 23036 23037 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23038 * config/spu/spu-protos.h (spu_legitimate_address): Remove. 23039 * config/spu/spu.c (spu_legitimate_address): Rename to... 23040 (spu_legitimate_address_p): ... this, make static. 23041 (TARGET_LEGITIMATE_ADDRESS_P): New. 23042 23043 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23044 * config/sparc/sparc-protos.h (legitimate_address_p): Remove. 23045 * config/sparc/sparc.c (legitimate_address_p): Rename to... 23046 (sparc_legitimate_address_p): ... this, make static and return bool. 23047 (legitimize_address): Adjust call. 23048 (TARGET_LEGITIMATE_ADDRESS_P): New. 23049 23050 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23051 * config/i386/i386-protos.h (legitimate_address_p): Remove. 23052 * config/i386/i386.c (legitimate_address_p): Rename to... 23053 (ix86_legitimate_address_p): ... this, make static. 23054 (constant_address_p): Move after it, adjust call. 23055 (TARGET_LEGITIMATE_ADDRESS_P): New. 23056 23057 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23058 * config/avr/avr-protos.h (legitimate_address_p): Remove. 23059 * config/avr/avr.c (legitimate_address_p): Rename to... 23060 (avr_legitimate_address_p): ... this, make static. 23061 (legitimize_address): Adjust call. 23062 (TARGET_LEGITIMATE_ADDRESS_P): New. 23063 23064 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23065 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove. 23066 * config/crx/crx.c (crx_legitimate_address_p): Make static. 23067 (TARGET_LEGITIMATE_ADDRESS_P): New. 23068 23069 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23070 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove. 23071 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static. 23072 (TARGET_LEGITIMATE_ADDRESS_P): New. 23073 23074 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23075 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p): 23076 Remove. 23077 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): 23078 Make static. 23079 (TARGET_LEGITIMATE_ADDRESS_P): New. 23080 23081 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23082 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address): 23083 Remove. 23084 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address): 23085 Rename to... 23086 (m68hc11_legitimate_address_p): ... this, make static. 23087 (go_if_legitimate_address_internal): Rename to... 23088 (m68hc11_legitimate_address_p_1): ... this. 23089 (legitimize_address): Adjust call. 23090 (TARGET_LEGITIMATE_ADDRESS_P): New. 23091 23092 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23093 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove. 23094 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static. 23095 (TARGET_LEGITIMATE_ADDRESS_P): New. 23096 23097 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23098 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove. 23099 * config/mn10300/mn10300.c (legitimate_address_p): Rename to... 23100 (mn10300_legitimate_address_p): ... this, make static. 23101 (TARGET_LEGITIMATE_ADDRESS_P): New. 23102 23103 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23104 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove. 23105 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static. 23106 (TARGET_LEGITIMATE_ADDRESS_P): New. 23107 23108 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23109 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete. 23110 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above. 23111 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23112 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove. 23113 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to... 23114 (rs6000_legitimate_address_p): ... this, make static. 23115 (TARGET_LEGITIMATE_ADDRESS_P): New. 23116 (REG_MODE_OK_FOR_BASE_P): Delete. 23117 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P. 23118 23119 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23120 * config/picochip/picochip-protos.h (picochip_legitimate_address_p): 23121 Delete. 23122 * config/picochip/picochip.c (picochip_legitimate_address_p): Make 23123 static, adjust types. 23124 (TARGET_LEGITIMATE_ADDRESS_P): New. 23125 23126 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23127 * config/score/score.c (score_address_p): Rename to... 23128 (score_legitimate_address_p): ... this. 23129 (TARGET_LEGITIMATE_ADDRESS_P): New. 23130 * config/score/score3.c (score3_address_p): Rename to... 23131 (score3_legitimate_address_p): ... this. 23132 * config/score/score7.c (score7_address_p): Rename to... 23133 (score7_legitimate_address_p): ... this. 23134 23135 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS, 23136 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS, 23137 GO_IF_LEGITIMATE_ADDRESS): Delete. 23138 * config/arm/arm-protos.h (thumb1_legitimate_address_p, 23139 thumb2_legitimate_address_p): Delete. 23140 (arm_legitimate_address_p): Rename to... 23141 (arm_legitimate_address_outer_p): ... this. 23142 * config/arm/constraints.md ("Uq"): Adjust call. 23143 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise. 23144 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one 23145 to... 23146 (arm_legitimate_address_outer_p): ... this. 23147 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make 23148 static. 23149 (TARGET_LEGITIMATE_ADDRESS_P): New. 23150 23151 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23152 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove. 23153 * config/mips/mips.c (mips_legitimate_address_p): ... Make static. 23154 (TARGET_LEGITIMATE_ADDRESS_P): New. 23155 23156 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23157 * config/vax/vax-protos.h (legitimate_address_p): Remove. 23158 * config/vax/vax.c (legitimate_address_p): Rename to... 23159 (vax_legitimate_address_p): ... this, make static. 23160 (TARGET_LEGITIMATE_ADDRESS_P): New. 23161 23162 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23163 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove. 23164 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static. 23165 (TARGET_LEGITIMATE_ADDRESS_P): New. 23166 23167 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23168 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove. 23169 * config/mmix/mmix.c (mmix_legitimate_address): Rename to... 23170 (mmix_legitimate_address_p): ... this, make static. 23171 (TARGET_LEGITIMATE_ADDRESS_P): New. 23172 23173 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23174 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove. 23175 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static. 23176 (TARGET_LEGITIMATE_ADDRESS_P): New. 23177 231782009-05-14 Paolo Bonzini <bonzini@gnu.org> 23179 23180 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling 23181 of MODE_COMPLEX_INT. 23182 231832009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 23184 23185 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to 23186 LCT_NORMAL in function call. 23187 * mips-tdump.c (print_file_desc): Add cast to enum type. 23188 * mips-tfile.c (add_ext_symbol): Add casts to enum types. 23189 (mark_stabs): Add casts to enum types. 23190 (parse_stabs_common): Add casts to enum types. 23191 231922009-05-13 Adam Nemet <anemet@caviumnetworks.com> 23193 23194 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>: 23195 Check for invalid values of LETTER. 23196 231972009-05-13 Taras Glek <tglek@mozilla.com> 23198 23199 * attribs.c (register_attribute): moved out attribute registration 23200 into register_attribute. 23201 * doc/plugins.texi: Documented register_attribute and 23202 PLUGIN_ATTRIBUTES. 23203 * gcc-plugin.h: Added forward decl for register_attribute. 23204 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES. 23205 * plugin.c (register_callback, invoke_plugin_callbacks): Added 23206 PLUGIN_ATTRIBUTES boilerplate. 23207 232082009-05-14 Dave Korn <dave.korn.cygwin@gmail.com> 23209 23210 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration 23211 values even in sentinel and empty entries. 23212 (ms_printf_flag_specs): Likewise. 23213 (ms_scanf_flag_specs): Likewise. 23214 (ms_strftime_flag_specs): Likewise. 23215 (ms_print_char_table): Likewise. 23216 (ms_scan_char_table): Likewise. 23217 (ms_time_char_table): Likewise. 23218 232192009-05-13 Doug Kwan <dougkwan@google.com> 23220 23221 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort. 23222 232232009-05-13 Adam Nemet <anemet@caviumnetworks.com> 23224 23225 * config/mips/mips.md (store): Add attributes for QI and HI. 23226 Update comment. 23227 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ... 23228 (truncdi<mode>2): ... this new pattern. 23229 232302009-05-13 Brad Hards <bradh@kde.org> 23231 23232 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi. 23233 232342009-05-14 Jakub Jelinek <jakub@redhat.com> 23235 Ben Elliston <bje@au.ibm.com> 23236 23237 PR middle-end/40035 23238 * dse.c (check_mem_read_rtx): Guard against width == -1. 23239 232402009-05-13 Michael Matz <matz@suse.de> 23241 23242 PR middle-end/39976 23243 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function. 23244 (trivially_conflicts_p): New function. 23245 (insert_backedge_copies): Use it. 23246 232472009-05-13 Janis Johnson <janis187@us.ibm.com> 23248 23249 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_. 23250 (handle_stdc_pragma): Use new enum constant names. 23251 (handle_pragma_float_const_decimal64): Ditto. 23252 232532009-05-13 Ian Lance Taylor <iant@google.com> 23254 23255 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not 23256 tree.def. 23257 232582009-05-13 Nathan Sidwell <nathan@codesourcery.com> 23259 23260 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX. 23261 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455 23262 multilibs. 23263 * config/m68k/m68k.h (FL_UCLINUX): Define. 23264 232652009-05-13 Jan Hubicka <jh@suse.cz> 23266 23267 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file. 23268 232692009-05-12 Kaz Kojima <kkojima@gcc.gnu.org> 23270 23271 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns 23272 unless -fschedule-insns is specified. 23273 232742009-05-12 Kaz Kojima <kkojima@gcc.gnu.org> 23275 23276 PR target/39561 23277 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set 23278 TARGET_EXPAND_CBRANCHDI4. 23279 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4. 23280 * config/sh/sh.opt (mexpand-cbranchdi): Remove. 23281 (cmpeqdi): Fix comment. 23282 232832009-05-12 Kaz Kojima <kkojima@gcc.gnu.org> 23284 23285 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare. 23286 (sh_legitimate_address_p): Likewise. 23287 * config/sh/sh.c (sh_legitimate_index_p): New. 23288 (sh_legitimate_address_p): Likewise. 23289 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter. 23290 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise. 23291 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove. 23292 (MAYBE_BASE_REGISTER_RTX_P): New macro. 23293 (MAYBE_INDEX_REGISTER_RTX_P): Likewise. 23294 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P. 23295 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P. 23296 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p. 23297 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p. 23298 232992009-05-12 Jan Hubicka <jh@suse.cz> 23300 23301 * tree-inline.c (estimate_operator_cost): Add operands; 23302 when division happens by constant, it is cheap. 23303 (estimate_num_insns): Loads and stores are not having cost of 0; 23304 EH magic stuff is cheap; when computing runtime cost of switch, 23305 use log2 base of amount of its cases; builtin_expect has cost of 0; 23306 compute cost for moving return value of call. 23307 (init_inline_once): Initialize time_based flags. 23308 * tree-inline.h (eni_weights_d): Add time_based flag. 23309 233102009-05-12 Paolo Bonzini <bonzini@gnu.org> 23311 23312 * df-core.c: Update head documentation. 23313 233142009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com> 23315 23316 PR bootstrap/40118 23317 * rs6000.c (rs6000_generate_compare): Use op1b instead of 23318 shadowing exisiting variable op1. 23319 233202009-05-12 Uros Bizjak <ubizjak@gmail.com> 23321 23322 PR target/37179 23323 * config/i386/driver-i386.c (processor_signatures): New enum. 23324 (SIG_GEODE): Move from vendor_signatures to processor_signatures. 23325 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE 23326 processor signature to detect geode processor. 23327 233282009-05-12 Paolo Bonzini <bonzini@gnu.org> 23329 23330 Revert: 23331 23332 2009-05-12 Paolo Bonzini <bonzini@gnu.org> 23333 23334 * optabs.c (prepare_cmp_insn): Temporarily disable test that 23335 causes spurious differences between trunk and cond-optab branch. 23336 233372009-05-12 Paolo Bonzini <bonzini@gnu.org> 23338 23339 * dojump.c (compare_from_rtx): Delete. 23340 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize 23341 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail 23342 if the comparison does not satisfy the predicate; test predicates for 23343 operands 2 and 3 of a cstore pattern. Don't try cstore optab 23344 further if one existing pattern fails. 23345 * expr.h (compare_from_rtx): Delete. 23346 (prepare_operand): Declare it. 23347 * optabs.c: Change "lib call" to "libcall" throughout. 23348 (bcc_gen_fctn, setcc_gen_code, trap_rtx, 23349 HAVE_conditional_trap, emit_cmp_insn): Delete. 23350 (can_compare_p): Delete cmp_optab case. 23351 (prepare_float_lib_cmp): Return an rtx and a machine mode. 23352 Accept other parameters by value. 23353 (prepare_operand): Make non-static. 23354 (prepare_cmp_insn): Return an rtx and a machine mode. Accept 23355 other parameters by value. Try to widen operands here based on 23356 an optab_methods argument and looking at cbranch_optab. 23357 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening 23358 loop. Use cbranch_optab directly. 23359 (emit_cmp_and_jump_insns): Fix comment. Adjust call to 23360 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete 23361 assertion. 23362 (emit_conditional_move, emit_conditional_add): Inline what's needed 23363 of compare_from_rtx, using new prepare_cmp_insn for the rest. 23364 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab 23365 with COMPARE. Move cmov_optab and cstore_optab above 23366 with cbranch_optab, move cmp_optab down with ucmp_optab, 23367 remove tst_otpab. Do not initialize trap_rtx. 23368 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate 23369 for trap code. Do not check HAVE_conditional_trap. Use 23370 prepare_cmp_insn. Accept no predicate for operand 3. 23371 * optabs.h (OTI_cmp): Mark as used only for libcalls. 23372 (OTI_ctrap, ctrap_optab): New. 23373 (tst_optab): Delete. 23374 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete. 23375 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap 23376 with lookup of ctrap_optab. 23377 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code): 23378 Delete. 23379 (ctrap_optab): New. 23380 23381 * combine.c (combine_simplify_rtx, simplify_set): Do not 23382 special case comparing against zero for cc0 machines. 23383 * simplify-rtx.c (simplify_binary_operation_1): Never remove 23384 COMPARE on cc0 machines. 23385 (simplify_relational_operation): Return a new expression when 23386 a COMPARE could be removed. 23387 * final.c (final_scan_insn): Compare cc_status values 23388 against LHS of a (compare FOO (const_int 0)) cc0 source. 23389 Also check if cc_status.value is the full compare. 23390 23391 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete. 23392 (cstoreMM4): Document. 23393 (conditional_trap): Document ctrapMM4 instead. 23394 (sync_compare_and_swapMM): Refer to cbranchcc4. 23395 (Dependent Patterns): Eliminate obsolete information referring to 23396 the old jump optimization phase. 23397 (Canonicalization): Include cbranchcc4 case, omit canonicalization 23398 of compares with 0 on cc0 machines. 23399 (Jump Patterns): Refer to MODE_CC jump patterns preferably, 23400 avoiding references to cc0. Remove text about storing operands 23401 in cmpMM. 23402 * doc/tm.texi (Condition Codes): Include blurb on different 23403 condition code representations, separate into subsections for 23404 CC0, MODE_CC and conditional execution. 23405 23406 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch, 23407 alpha_emit_setcc): Accept operands and a machine mode. 23408 * config/alpha/alpha.c (alpha_emit_conditional_branch): 23409 Get code/op0/op1 from operands, use machine mode argument 23410 instead of alpha_compare.fp_p. Emit the branch here. 23411 (alpha_emit_setcc): Likewise, and return boolean. 23412 (alpha_emit_conditional_move): Likewise. Assert that 23413 cmp_op_mode == cmp_mode, and simplify accordingly. 23414 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete. 23415 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete. 23416 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4): 23417 Delete. 23418 (stack probe test): Use cbranchdi4. 23419 * config/alpha/predicates.md (alpha_cbranch_operator): New. 23420 23421 * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 23422 * config/arc/arc.h (movsicc, movsfcc): Use it. 23423 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove. 23424 (cbranchsi4, cstoresi4): New. 23425 (cmpsi, bCC and sCC expanders): Remove. 23426 23427 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete. 23428 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete. 23429 * config/arm/predicates.md (arm_comparison_operator): Only include 23430 floating-point operators if there is a hardware floating-point unit. 23431 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT, 23432 deferring to cbranch_cc and cstore_cc respectively. 23433 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4, 23434 cbranch_cc, cstore_cc): New. 23435 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and 23436 arm_compare_op1. 23437 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete. 23438 23439 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype. 23440 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand 23441 as an argument. 23442 (adjust_insn_length): Adjust calls. 23443 (avr_reorg): Handle (compare (foo) (const_int 0)). 23444 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove. 23445 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize. 23446 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity. 23447 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here. 23448 (bCC): Remove. 23449 (cbranchqi4, cbranchhi4, cbranchsi4): New. 23450 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE. 23451 23452 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete. 23453 (cbranchsi4, cstorebi4, cstoresi4): New. 23454 (movbisi): This insn is duplicate, split it to zero_extend. 23455 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete 23456 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode. 23457 (bfin_optimize_loop): Use cbranch expander. 23458 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete. 23459 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to... 23460 (bfin_bimode_comparison_operator): ... this. 23461 (bfin_direct_comparison_operator): New. 23462 23463 * config/cris/cris.c (cris_normal_notice_update_cc): Look 23464 inside (compare FOO (const_int 0)). 23465 (cris_rtx_costs): Handle ZERO_EXTRACT. 23466 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete. 23467 (*tstdi_non_v32): Fold in *cmpdi_non_v32. 23468 (*tstdi_v32): Delete. 23469 (*cmpdi_non_v32): Add M alternative for operand 1. 23470 (cmpsi, cmp<mode>): Make private. 23471 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS 23472 with COMPARE. 23473 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New. 23474 23475 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New. 23476 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete. 23477 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator. 23478 (cc_reg_operand): New. 23479 (any_cond): Delete. 23480 * config/crx/crx.c (crx_compare_op0, crx_compare_op1, 23481 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete. 23482 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete. 23483 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch, 23484 crx_expand_scond): Delete. 23485 23486 * config/fr30/fr30.md (cmp<mode>, bCC): Delete. 23487 (cbranchsi4): New. 23488 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete 23489 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete. 23490 23491 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4, 23492 cstoresi4, cstoresf4, cstoredf4): New. 23493 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove. 23494 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc): 23495 Receive the entire operands array. 23496 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete. 23497 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete. 23498 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc): 23499 Get test/op0/op1 from the operands array. 23500 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx. 23501 23502 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands. 23503 (h8300_expand_store): New. 23504 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO 23505 (const_int 0)). 23506 (h8300_expand_branch): Emit compare here. Adjust for new arguments. 23507 (h8300_expand_store): New. 23508 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE 23509 or do not try to produce (set (cc0) REG). 23510 (peepholes): Wrap arguments with COMPARE. Add a peephole to 23511 change a compare into a move to a scratch register. Disable some 23512 peepholes when comparing with zero. 23513 (tstsi, tsthi, tstsi, cmpqi): Make private. 23514 (cmphi): Delete. 23515 (bCC, sCC): Delete. 23516 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4, 23517 cstoresi4): New. 23518 23519 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc, 23520 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1. 23521 (ix86_emit_i387_log1p): Use gen_cbranchxf4. 23522 (ix86_emit_i387_log1p): Use cbranchxf2. 23523 (ix86_expand_setcc): Return void. 23524 * config/i386/i386-protos.h (ix86_expand_setcc): Return void. 23525 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf, 23526 cmp<MODEF>, cmpcc): Remove. 23527 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4, 23528 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4, 23529 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New. 23530 (sCC and bCC expanders): Remove. 23531 (stack_protect_test): Use cbranchcc4. 23532 23533 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1): 23534 Delete. 23535 (ia64_expand_compare): Accept three rtx by reference and return void. 23536 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete. 23537 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code 23538 from *expr. Update *expr with the BImode comparison to do. 23539 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf, 23540 cmptf, bCC, sCC, conditional_trap): Delete. 23541 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 23542 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4, 23543 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4, 23544 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New. 23545 * config/ia64/predicates.md (ia64_cbranch_operator): New. 23546 23547 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change 23548 type of last argument. 23549 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove. 23550 (gen_conditional_branch): Get code/cmp0/cmp1 from operands, 23551 use machine mode argument instead of branch_type. Remove dead 23552 code for floating-point comparisons. 23553 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove. 23554 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC): 23555 Remove. 23556 (cbranchsi4, cstoresi4): New. 23557 * config/iq2000/predicates.md (reg_or_const_operand): New. 23558 23559 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup. 23560 * config/m32c/m32c.md (any_cond, gl_cond): Delete. 23561 (b<code>_op): Rewrite to... 23562 (bcc_op): ... this, using match_operator. 23563 (s<code>_op): Rewrite to... 23564 (scc_op): ... this, using match_operator. 23565 (s<code>_24_op): Rewrite to... 23566 (scc_op_24): ... this, using match_operator. 23567 (s<code>_<mode>): Rewrite to... 23568 (cstore<mode>4): ... this, using match_operator. 23569 (s<code>_<mode>_24): Rewrite to... 23570 (cstore<mode>4_24): ... this, using match_operator. 23571 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare, 23572 m32c_unpend_compare, m32c_expand_scc): Delete. 23573 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0, 23574 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete. 23575 (m32c_expand_movcc): Change NE to EQ if necessary. 23576 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code. 23577 23578 * config/m32r/m32r-protos.h (gen_cond_store): New. 23579 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete. 23580 (gen_cond_store): New, from sCC patterns. 23581 (m32r_expand_block_move): Use cbranchsi4. 23582 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete. 23583 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete. 23584 (cbranchsi4, cstoresi4): New. 23585 23586 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1): 23587 Delete. 23588 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT. 23589 (m68hc11_notice_update_cc): Look into a compare with 0. 23590 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1): 23591 Delete. 23592 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi, 23593 cmphi, cmpqi, bCC): Delete. 23594 (cbranchsi4, cbranchhi4, cbranchqi4): New. 23595 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used, 23596 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg 23597 sets with COMPARE. 23598 23599 * config/m68k/predicates.md (m68k_cstore_comparison_operator, 23600 const0_operand, const1_operand, m68k_subword_comparison_operand): New. 23601 * config/m68k/constraints.md (H): New. 23602 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for 23603 the define_insn below. 23604 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete. 23605 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal, 23606 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed 23607 patterns): Wrap RHS with COMPARE. 23608 (tst<FP>_68881, tst<FP>_cf): Use const0_operand. 23609 (*cmpdi_internal): Name this pattern. 23610 (cmpdi): Change to define_insn. 23611 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4, 23612 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New. 23613 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator 23614 predicate. 23615 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered, 23616 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete 23617 (conditional_trap): Change to... 23618 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these. 23619 (*conditional_trap): Use the ordered_comparison_operator and 23620 const1_operand predicates. 23621 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete. 23622 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap. 23623 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE. 23624 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete. 23625 23626 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1, 23627 mcore_modify_comparison, mcore_gen_compare_reg): Remove. 23628 (mcore_gen_compare): New. 23629 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete. 23630 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into... 23631 (mcore_gen_compare): ... this. 23632 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove. 23633 (cbranchsi4, cstoresi4): New, using mcore_gen_compare. 23634 (stack probe pattern): Use cbranchsi4. 23635 23636 * config/mips/predicates.md (mips_cstore_operator): New. 23637 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands. 23638 * config/mips/mips.md (any_cond): Delete. 23639 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates, 23640 always succeed. 23641 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2, 23642 fixuns_truncsfdi2): Use cbranch patterns. 23643 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 23644 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4. 23645 Adjust call to mips_expand_conditional_branch. 23646 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to 23647 cstore<GPR:mode>4. 23648 * config/mips/mips-protos.h (mips_expand_conditional_branch, 23649 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes. 23650 * config/mips/mips.c (cmp_operands): Delete. 23651 (mips_emit_compare): Get comparison operands from *op0/*op1. 23652 (mips_expand_scc): Get code/op0/op1/target from operands. Assert 23653 that it succeeds. Use op0/op1 instead of cmp_operands. 23654 (mips_expand_conditional_branch, mips_expand_conditional_move, 23655 mips_expand_conditional_trap): Likewise. 23656 (mips_block_move_loop): Use cbranch patterns. 23657 * config/mips/mips.h (cmp_operands): Delete. 23658 23659 * config/mmix/mmix.c (mmix_valid_comparison): Delete. 23660 (mmix_gen_compare_reg): Just return a register in the right CC mode. 23661 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New. 23662 * config/mmix/mmix.md (cmpdi, cmpdf): Remove. 23663 (*cmpcc_folded): Rename to... 23664 (*cmpdi_folded): this. 23665 (*cmpcc): Rename to... 23666 (*cmps): ... this. 23667 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg. 23668 (bCC): Remove. 23669 (cbranchdi4): New. 23670 (cbranchdf4): New. Handle invalid comparisons here. 23671 * config/mmix/predicates.md (float_comparison_operator): New. 23672 23673 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and 23674 zero_extract to be cheap in (compare (zero_extract) (const_int 0). 23675 * config/mn10300/mn10300.md (tst): Delete. 23676 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi): 23677 Name these patterns and wrap RHS in a compare. 23678 (*cmpsi): Make this pattern private. Include tst. 23679 (*cmpsf): Make this pattern private. 23680 (and and zero_extract cc0 set): Wrap RHS in a COMPARE. 23681 (compare with zero peepholes): Likewise. 23682 (bCC): Remove. 23683 (cbranchsi4, cbranchsf4): New. 23684 (casesi): Use cbranchsi4. 23685 23686 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1, 23687 hppa_branch_type): Delete. 23688 (return_addr_rtx): Use cbranchsi4. 23689 (emit_bcond_fp): Accept all operands. Replace CODE with NE. 23690 Emit CCFPmode comparison here. 23691 (gen_cmp_fp): Delete, now part of emit_bcond_fp. 23692 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1, 23693 hppa_branch_type): Delete. 23694 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete. 23695 (movsicc, movdicc): Remove references to hppa_compare_op0, 23696 hppa_compare_op1 and compare_from_rtx. 23697 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New. 23698 (casesi): Use cbranchsi4. 23699 23700 * config/pdp11/pdp11-protos.h (output_jump): Change prototype. 23701 * config/pdp11/pdp11.c (output_jump): Embed opcodes here. 23702 * config/pdp11/pdp11.md (register_or_const0_operand): New. 23703 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives. 23704 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete. 23705 (bCC): Delete. 23706 (cbranchdf4, cbranchhi4, cbranchqi4): New. 23707 (*branch, *branch_inverted): New. 23708 23709 * config/picochip/picochip.md (cbranchhi4): Use 23710 ordered_comparison_operator. 23711 (cmphi, bCC): Remove. 23712 23713 * config/rs6000/predicates.md (rs6000_cbranch_operator): New. 23714 (trap_comparison_operator): Delete. 23715 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND, 23716 rs6000_emit_cbranch): Accept mode and operands. 23717 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1, 23718 rs6000_compare_fp_p): Delete. 23719 (rs6000_generate_compare): Accept mode and comparison. Extract code 23720 and op0/op1 from there. Replace references to rs6000_compare_op0 23721 and rs6000_compare_op1. 23722 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and 23723 extract result from passed operands. 23724 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and 23725 extract loc from passed operands. 23726 (rs6000_emit_cmove): Likewise. 23727 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1, 23728 rs6000_compare_fp_p): Delete. 23729 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete. 23730 (cbranch<GPR>4, cbranch<FP>4): New. 23731 (cstore<mode>4): New. Consolidate here all choices about when to use 23732 portable or specialized sCC sequences. 23733 (stack_protect_test): Use cbranchsi4. 23734 (conditional_trap): Replace with ctrap<GPR>4. 23735 (conditional trap insn): Replace trap_comparison_operator with 23736 ordered_comparison_operator. 23737 23738 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete. 23739 (s390_emit_prologue): Use ctrap. 23740 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete. 23741 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator): 23742 New predicates replacing... 23743 * config/s390/s390.md (COMPARE, SCOND): ... these iterators. 23744 (cmp<GPR>, cmp<FP>, cmpcc): Delete. 23745 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch. 23746 (add<mode>cc): Do not use s390_compare_op0/op1. 23747 (s<code>): Change to... 23748 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1. 23749 (seq): Change to... 23750 (cstorecc4): ... this. Handle EQ or NE equally. 23751 (*sne): Un-privatize for use in cstorecc4. 23752 (b<code>): Change to... 23753 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these. 23754 (conditional_trap): Replace with... 23755 (ctrap<GPR>4, ctrap<FP>4): ... these. 23756 (stack_protect): Use cbranchcc4. 23757 23758 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete. 23759 * config/score/score-protos.h (score_gen_cmp): Delete. 23760 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete. 23761 (score_block_move-loop): Use cbranchsi4. 23762 * config/score/score.md (cbranchsi4): New. 23763 (cmpsi, bCC): Delete. 23764 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete. 23765 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1. 23766 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete. 23767 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1. 23768 * config/score/score3.h (score3_gen_cmp): Delete. 23769 * config/score/score7.h (score7_gen_cmp): Delete. 23770 23771 * config/sh/sh-protos.h (prepare_scc_operands): Rename to... 23772 (sh_emit_scc_to_t): ... this. Return void. 23773 (from_compare): Rename to... 23774 (sh_emit_compare_and_branch): ... this. 23775 (sh_emit_compare_and_set): New. 23776 (sh_expand_t_scc): Accept operands. 23777 * config/sh/predicates.md (sh_float_comparison_operator): New. 23778 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete. 23779 (prepare_scc_operands): Rename to... 23780 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from 23781 arguments. 23782 (sh_emit_cheap_store_flag): New. 23783 (sh_emit_set_t_insn): New. 23784 (from_compare): Rename to... 23785 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite 23786 handling of TARGET_SH2E floating point to avoid recursive call. 23787 Generate branch here. 23788 (sh_emit_compare_and_set): New. 23789 (sh_expand_t_scc): Get op0/op1 from arguments. 23790 (sh_emit_cheap_store_flag): New. 23791 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi 23792 cases. 23793 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint. 23794 (cmpsi, cmpdi, cmpsf, cmpdf): Delete. 23795 (movsicc, movdicc): Do nothing when it recreated operands from 23796 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to 23797 prepare_scc_operands (now sh_emit_scc_to_t). 23798 (udivdi3): Use cstoresi4. 23799 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq, 23800 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete. 23801 (cbranchint4_media, cbranchfp4_media): New. 23802 (casesi): Use cbranchdi4. 23803 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered): 23804 Delete. 23805 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New. 23806 (movnegt): Remove second operand. 23807 (cbranchsf4, cbranchdf4): New. 23808 (stack_protect): Use cbranchdi4/cbranchsi4. 23809 23810 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete. 23811 (gen_compare_reg): Accept comparison, extract part of it to... 23812 (gen_compare_reg_1): ... this. 23813 (gen_compare_operator): Delete. 23814 (gen_v9_scc): Accept separate destination, comparison code and arms. 23815 Do not use sparc_compare_op0/sparc_compare_op1. 23816 (emit_scc_insn, emit_conditional_branch_insn): New. 23817 (emit_v9_brxx): Make static. Remove useless assertion. 23818 (sparc_emit_float_lib_cmp): Return RTL instead of calling 23819 emit_cmp_insn. 23820 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4. 23821 * config/sparc/sparc-protos.h (gen_compare_reg, 23822 sparc_emit_float_lib_cmp): Adjust prototype. 23823 (emit_scc_insn, emit_conditional_branch_insn): New. 23824 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete. 23825 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete. 23826 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all 23827 iterators to the top. 23828 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend, 23829 snesi_special_extend, sCC, bCC, seqdi_special_trunc, 23830 snedi_special_trunc): Delete. 23831 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc 23832 and snedi_special_trunc. 23833 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4, 23834 cbranchdi4, cbranch<F:mode>4): New. 23835 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp 23836 here. Use gen_compare_reg instead of gen_compare_operator. 23837 (conditional_trap): Replace with... 23838 (ctrapsi4, ctrapdi4): ... this. 23839 (stack_protect_test): Use cbranchcc4. 23840 23841 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second 23842 argument to rtx. 23843 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 23844 (spu_emit_branch_or_set): Get code/op0/op1 from second argument. 23845 Change spu_compare_op0/op1 to op0/op1 throughout. Get target 23846 from operands[0] or operands[3] depending on is_set. 23847 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove. 23848 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>, 23849 cmpdf, bCC), sCC: Remove. 23850 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 23851 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4, 23852 cstoredf4): New. 23853 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to 23854 spu_emit_branch_or_set. 23855 23856 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch): 23857 Add two arguments. 23858 * config/stormy16/stormy16.h (xstormy16_compare_op0, 23859 xstormy16_compare_op1): Delete. 23860 * config/stormy16/stormy16.c (xstormy16_compare_op0, 23861 xstormy16_compare_op1): Delete. 23862 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments. 23863 Adjust calls. 23864 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New. 23865 (cmphi, cmpsi, bCC): Remove. 23866 23867 * config/v850/v850.md (tstsi, cmpsi): Fold into... 23868 (*cmpsi): ... this one. 23869 (cbranchsi4, cstoresi4): New. 23870 (bCC expanders): Delete. 23871 (sCC insns): Fold into... 23872 (*setcc): ... this one. 23873 (casesi): Do not use gen_cmpsi and gen_bgtu. 23874 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE. 23875 (movsicc): Simplify. 23876 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE. 23877 23878 * config/vax/vax-protos.h (cond_name): New. 23879 (vax_output_conditional_branch): Remove. 23880 * config/vax/vax.c (cond_name): New. 23881 (vax_output_conditional_branch): Remove. 23882 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name. 23883 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove. 23884 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst. 23885 (bit<VAXint>): Wrap source with (compare). 23886 (b<code> and following unnamed pattern): Rename to *branch and 23887 *branch_reversed. Change macroization to match_operator. 23888 (cbranch<VAXint>4, cbranch<VAXfp>4): New. 23889 23890 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New. 23891 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch): 23892 Change last argument to machine_mode. 23893 (xtensa_expand_scc): Add machine_mode argument. 23894 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove. 23895 (gen_conditional_move, xtensa_expand_conditional_branch, 23896 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode 23897 instead of branch_type, fetch cmp0/cmp1/test_code from operands[]. 23898 Adjust operand numbers. 23899 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type): 23900 Delete. 23901 * config/xtensa/xtensa.md (any_cond, any_scc): Delete. 23902 (cmpsi, cmpsf, b<code>, s<code>): Delete. 23903 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New. 23904 239052009-05-12 Paolo Bonzini <bonzini@gnu.org> 23906 23907 * optabs.c (prepare_cmp_insn): Temporarily disable test that 23908 causes spurious differences between trunk and cond-optab branch. 23909 239102009-05-12 Alexandre Oliva <aoliva@redhat.com> 23911 23912 PR target/37137 23913 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document. 23914 239152009-05-12 Alexandre Oliva <aoliva@redhat.com> 23916 23917 * tree.c (iterative_hash_pointer): Delete. 23918 (iterative_hash_expr): Short-circuit handling of NULL pointer. 23919 Hash UIDs and versions of SSA names. Don't special-case built-in 23920 function declarations. 23921 239222009-05-11 Ian Lance Taylor <iant@google.com> 23923 23924 PR bootstrap/40103 23925 * graphite.c: Force -Wc++-compat to only be a warning before 23926 #including "cloog/cloog.h". 23927 239282009-05-11 Martin Jambor <mjambor@suse.cz> 23929 23930 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false. 23931 239322009-05-11 Jan Hubicka <jh@suse.cz> 23933 23934 * tree-ssa-loop-ivcanon.c: Include target.h 23935 (struct loop_size): new structure. 23936 (constant_after_peeling): New predicate. 23937 (tree_estimate_loop_size): New function. 23938 (estimated_unrolled_size): Rewrite for new estimates. 23939 (try_unroll_loop_completely): Use new estimates. 23940 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h 23941 239422009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com> 23943 23944 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent 23945 libcpp interface change. 23946 (spu_macro_to_expand): Likewise. 23947 239482009-05-11 Paolo Bonzini <bonzini@gnu.org> 23949 23950 PR tree-optimization/40026 23951 * gimplify.c (gimplify_init_constructor): Change initial conditional 23952 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after 23953 optimize_compound_literals_in_ctor. 23954 239552009-05-11 Nathan Sidwell <nathan@codesourcery.com> 23956 23957 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx): 23958 New devices. 23959 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus. 23960 239612009-05-11 H.J. Lu <hongjiu.lu@intel.com> 23962 23963 * tree-vect-data-refs.c (vect_analyze_group_access): Use 23964 HOST_WIDE_INT for gap. 23965 239662009-05-11 Ira Rosen <irar@il.ibm.com> 23967 23968 PR tree-optimization/40074 23969 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into 23970 account in group size and step comparison. 23971 239722009-05-11 Richard Guenther <rguenther@suse.de> 23973 23974 * passes.c (init_optimization_passes): Strip now incorrect comment. 23975 (execute_function_todo): Do not set PROP_alias. 23976 * tree-pass.h (PROP_alias): Remove. 23977 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias. 23978 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias. 23979 * tree-nrv.c (pass_return_slot): Likewise. 23980 * tree-object-size.c (pass_object_sizes): Likewise. 23981 * tree-ssa-dom.c (pass_dominator): Likewise. 23982 (pass_phi_only_cprop): Likewise. 23983 * tree-ssa-dse.c (pass_dse): Likewise. 23984 * tree-ssa-phiopt.c (pass_phiopt): Likewise. 23985 (pass_cselim): Likewise. 23986 * tree-ssa-pre.c (pass_pre): Likewise. 23987 (pass_fre): Likewise. 23988 * tree-ssa-reassoc.c (pass_reassoc): Likewise. 23989 * tree-ssa-sink.c (pass_sink_code): Likewise. 23990 * tree-stdarg.c (pass_stdarg): Likewise. 23991 * tree-tailcall.c (pass_tail_calls): Likewise. 23992 * tree-vrp.c (pass_vrp): Likewise. 23993 239942009-05-10 Ian Lance Taylor <iant@google.com> 23995 23996 * basic-block.h (enum profile_status): Break out of struct 23997 control_flow_graph. 23998 * cgraph.h (struct inline_summary): Break out of struct 23999 cgraph_local_info. 24000 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out 24001 of struct cgraph_order_sort. 24002 * combine.c (enum undo_kind): New enum, broken out of struct undo. 24003 * cse.c (struct branch_path): Break out of struct 24004 cse_basic_block_data. 24005 * except.h (enum eh_region_type): Break out of struct eh_region. 24006 * gcc.c (enum add_del): Break out of struct modify_target. 24007 * genrecog.c (enum decision_type): Break out of struct decision_test. 24008 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct 24009 ggc_pch_data. 24010 * matrix-reorg.c (struct free_info): Break out of struct matrix_info. 24011 * regmove.c (enum match_use): New enum, broken out of struct match. 24012 * sched-int.h (enum post_call_group): New enum, broken out of 24013 struct deps. 24014 (struct deps_reg): Break out of struct deps. 24015 * target.h (struct asm_int_op): Break out of struct gcc_target. 24016 * tree-eh.c (struct goto_queue_node): Break out of struct 24017 leh_tf_state. 24018 * tree-inline.h (enum copy_body_cge_which): Break out of 24019 copy_body_data. 24020 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass. 24021 24022 * c-decl.c (in_struct, struct_types): New static variables. 24023 (pushtag): Add loc parameter. Change all callers. 24024 (lookup_tag): Add ploc parameter. Change all callers. 24025 (check_compound_literal_type): New function. 24026 (parser_xref_tag): Add loc parameter. Change all callers. If 24027 -Wc++-compat, warn about struct/union/enum types defined within a 24028 struct or union. 24029 (start_struct): Add enclosing_in_struct, enclosing_struct_types, 24030 and loc parameters. Change all callers. Change error calls to 24031 error_at, using loc. For a redefinition, if the location of the 24032 original definition is known, report it. Set in_struct and 24033 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof. 24034 (finish_struct): Add new parameters enclosing_in_struct and 24035 enclosing_struct_types. Change all callers. Set 24036 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined 24037 in the struct. If in a struct, add this struct to struct_types. 24038 (start_enum): Add loc parameter. Change all callers. Use 24039 error_at for errors, using loc. For a redefinition, if the 24040 location of the original definition is known, report it. If in a 24041 struct, add this enum type to struct_types. If -Wc++-compat warn 24042 if in sizeof, typeof, or alignof. 24043 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat. 24044 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate. 24045 (c_parser_enum_specifier): Get enum location for start_enum. 24046 (c_parser_struct_or_union_specifier): Get struct location for 24047 start_struct. Save in_struct and struct_types status between 24048 start_struct and finish_struct. 24049 (c_parser_cast_expression): Get location of cast. 24050 (c_parser_alignof_expression): Get location of type. 24051 (c_parser_postfix_expression): Likewise. 24052 (c_parser_postfix_expression_after_paren_type): Add type_loc 24053 parameter. Change all callers. Call check_compound_literal_type. 24054 Use type_loc for error about variable size type. 24055 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use 24056 of an enum constant from an enum type defined in a struct or union. 24057 (c_cast_expr): Add loc parameter. Change all callers. If 24058 -Wc++-compat, warn about defining a type in a cast. 24059 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define. 24060 (start_enum, start_struct, finish_struct): Update declarations. 24061 (parser_xref_tag, c_cast_expr): Update declarations. 24062 (check_compound_literal_type): Declare. 24063 240642009-05-11 Ben Elliston <bje@au.ibm.com> 24065 24066 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update 24067 for recent libcpp interface change. 24068 (rs6000_macro_to_expand): Likewise. 24069 240702009-05-10 Michael Matz <matz@suse.de> 24071 24072 PR target/40031 24073 * config/arm/arm.c (require_pic_register): Emit on entry edge, 24074 not at entry of function. 24075 240762009-05-10 Richard Guenther <rguenther@suse.de> 24077 24078 PR tree-optimization/40081 24079 Revert 24080 * tree-sra.c (instantiate_element): Instantiate scalar replacements 24081 using the main variant of the element type. Do not fiddle with 24082 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS. 24083 24084 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose 24085 structs with volatile fields. 24086 240872009-05-10 Jan Hubicka <jh@suse.cz> 24088 24089 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare. 24090 (estimate_move_cost): Assert that it does not get called for 24091 VOID_TYPE_P. 24092 (estimate_num_insns): Skip VOID types in argument handling. 24093 (optimize_inline_calls): Delete unreachable blocks and verify that 24094 callgraph is valid. 24095 240962009-05-10 Jan Hubicka <jh@suse.cz> 24097 24098 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node. 24099 * cgraph.c (cgraph_mark_address_taken_node): New function. 24100 (dump_cgraph_node): Dump new flag. 24101 * cgraph.h (struct cgraph_node): Add address_taken. 24102 (cgraph_mark_address_taken_node): New function. 24103 * ipa.c (cgraph_postorder): Prioritize functions with address taken 24104 since new direct calls can be born. 24105 241062009-05-10 Joseph Myers <joseph@codesourcery.com> 24107 24108 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in 24109 tok->val.node.node. 24110 241112009-05-10 Jan Hubicka <jh@suse.cz> 24112 24113 PR middle-end/40084 24114 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call 24115 argument; rewrite. 24116 (cgraph_update_edges_for_call_stmt): Take old_decl argument. 24117 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype. 24118 * tree-inline.c (copy_bb): Set frequency correctly. 24119 (fold_marked_statements): Update call to 24120 cgraph_update_edges_for_call_stmt. 24121 241222009-05-10 Joseph Myers <joseph@codesourcery.com> 24123 24124 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for 24125 identifiers in diagnostics. 24126 * config/arm/arm.c (arm_handle_fndecl_attribute, 24127 arm_handle_isr_attribute): Likewise. 24128 * config/avr/avr.c (avr_handle_progmem_attribute, 24129 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise. 24130 * config/bfin/bfin.c (handle_int_attribute, 24131 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute, 24132 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute, 24133 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute): 24134 Likewise. 24135 * config/darwin.c (darwin_handle_kext_attribute, 24136 darwin_handle_weak_import_attribute): Likewise. 24137 * config/h8300/h8300.c (h8300_handle_fndecl_attribute, 24138 h8300_handle_eightbit_data_attribute, 24139 h8300_handle_tiny_data_attribute): Likewise. 24140 * config/i386/i386.c (ix86_handle_cconv_attribute, 24141 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise. 24142 * config/i386/winnt.c (ix86_handle_shared_attribute, 24143 ix86_handle_selectany_attribute): Likewise. 24144 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise. 24145 * config/m32c/m32c.c (function_vector_handler): Likewise. 24146 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute, 24147 m68hc11_handle_fntype_attribute): Likewise. 24148 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise. 24149 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise. 24150 * config/mips/mips.c (mips_insert_attributes, 24151 mips_merge_decl_attributes, mips_expand_builtin): Likewise. 24152 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute, 24153 rs6000_handle_struct_attribute): Likewise. 24154 * config/sh/sh.c (sh_insert_attributes, 24155 sh_handle_resbank_handler_attribute, 24156 sh_handle_interrupt_handler_attribute, 24157 sh2a_handle_function_vector_handler_attribute, 24158 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute): 24159 Likewise. 24160 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise. 24161 * config/spu/spu.c (spu_handle_fndecl_attribute, 24162 spu_handle_vector_attribute): Likewise. 24163 * config/stormy16/stormy16.c 24164 (xstormy16_handle_interrupt_attribute): Likewise. 24165 * config/v850/v850-c.c (ghs_pragma_section): Likewise. 24166 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise. 24167 241682009-05-10 Joseph Myers <joseph@codesourcery.com> 24169 24170 * pretty-print.h (struct pretty_print_info): Add translate_identifiers. 24171 (pp_translate_identifiers): New. 24172 (pp_identifier): Only conditionally translate identifier to locale 24173 character set. 24174 * pretty-print.c (pp_construct): Set pp_translate_identifiers. 24175 (pp_base_tree_identifier): Only conditionally translate identifier 24176 to locale character set. 24177 * c-pretty-print.c (M_): Define. 24178 (pp_c_type_specifier, pp_c_primary_expression): Mark English 24179 fragments for conditional translation with M_. 24180 * tree-pretty-print.c (maybe_init_pretty_print): Disable 24181 identifier translation. 24182 241832009-05-10 Richard Guenther <rguenther@suse.de> 24184 24185 PR tree-optimization/40081 24186 * tree-sra.c (instantiate_element): Instantiate scalar replacements 24187 using the main variant of the element type. Do not fiddle with 24188 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS. 24189 241902009-05-09 Jan Hubicka <jh@suse.cz> 24191 24192 PR middle-end/40080 24193 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect 24194 indirect calls; verify cgraph afterwards. 24195 241962009-05-09 Jan Hubicka <jh@suse.cz> 24197 24198 PR bootstrap/40082 24199 * ipa.c (update_inlined_to_pointer): New function. 24200 (cgraph_remove_unreachable_nodes): Use it. 24201 242022009-05-09 Jan Hubicka <jh@suse.cz> 24203 24204 * tree-eh.c (struct leh_state): Remove prev_try. 24205 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do 24206 not track prev_try. 24207 * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 24208 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label, 24209 remove_eh_handler_and_replace, foreach_reachable_handler, 24210 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer. 24211 * except.h (struct eh_region): Remove eh_region_u_cleanup. 24212 (gen_eh_region_cleanup): Update prototype. 24213 242142009-05-09 Jan Hubicka <jh@suse.cz> 24215 24216 PR middle-end/40043 24217 * except.c (copy_eh_region): Always set prev_try. 24218 (redirect_eh_edge_to_label): Find outer try. 24219 (foreach_reachable_handler): When looking for prev try 24220 handle case where previous try is not going to be taken. 24221 242222009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com> 24223 24224 PR tree-optimization/40049 24225 * tree-vect-stmts.c (vectorizable_operation): If the machine has 24226 only vector/vector shifts, convert the type of the constant to the 24227 appropriate type to avoid building incorrect trees, which 24228 eventually have problems with garbage collection. 24229 242302009-05-08 Joseph Myers <joseph@codesourcery.com> 24231 24232 * fold-const.c (fold_binary): Do not fold multiplication by 1 or 24233 -1 for complex floating-point types if honoring signed zeros. 24234 242352009-05-08 Jan Hubicka <jh@suse.cz> 24236 24237 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function 24238 argument; handle correctly when profile is absent. 24239 (build_cgraph_edges): Update. 24240 (rebuild_cgraph_edges): Update. 24241 * cgraph.c: Do not include varray.h. 24242 (cgraph_set_call_stmt_including_clones): New function. 24243 (cgraph_create_edge_including_clones): Likewise 24244 (cgraph_update_edges_for_call_stmt_node): New static cfunction. 24245 (cgraph_update_edges_for_call_stmt): Handle clones. 24246 (cgraph_remove_node): Handle clone tree. 24247 (cgraph_remove_node_and_inline_clones): New function. 24248 (dump_cgraph_node): Dump clone tree. 24249 (cgraph_clone_node): Handle clone tree. 24250 (clone_function_name): Bring here from tree-inline.c. 24251 (cgraph_create_virtual_clone): New function. 24252 * cgraph.h (ipa_replace_map): Move here from ipa.h. 24253 (cgraph_clone_info): New function. 24254 (strut cgraph_node): Add clone_info and new clone tree pointers. 24255 (cgraph_remove_node_and_inline_clones, 24256 cgraph_set_call_stmt_including_clones, 24257 cgraph_create_edge_including_clones, 24258 cgraph_create_virtual_clone): Declare. 24259 (cgraph_function_versioning): Use VEC argument. 24260 (compute_call_stmt_bb_frequency): Update prototype. 24261 (cgraph_materialize_all_clones): New function. 24262 * ipa-cp.c (ipcp_update_cloned_node): Remove. 24263 (ipcp_create_replace_map): Update to VECtors. 24264 (ipcp_update_callgraph): Use virtual clones. 24265 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove. 24266 (ipcp_update_profiling): Do not update local profiling. 24267 (ipcp_insert_stage): Use VECtors and virtual clones. 24268 * cgraphunit.c (verify_cgraph_node): Verify clone tree. 24269 (clone_of_p): New function. 24270 (cgraph_preserve_function_body_p): Use clone tree. 24271 (cgraph_optimize): Materialize clones. 24272 (cgraph_function_versioning): Update for VECtors. 24273 (save_inline_function_body): Use clone tree. 24274 (cgraph_materialize_clone): New function. 24275 (cgraph_materialize_all_clones): Likewise. 24276 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags. 24277 * ipa.c: Include gimple.h. 24278 (cgraph_remove_unreachable_nodes): Use clone tree. 24279 * ipa-prop.c (ipa_note_param_call): Update call to 24280 compute_call_stmt_bb_frequencycall. 24281 * ipa-prop.h (ipa_replace_map): Move to cgraph.h. 24282 * tree-inline.c: Do not include varray.h or gt-tree-inline.h. 24283 (copy_bb): Handle updating of clone tree; add new edge when new call 24284 appears. 24285 (expand_call_inline): Be strict about every call having edge. 24286 (clone_fn_id_num, clone_function_name): Move to cgraph.c. 24287 (delete_unreachable_blocks_update_callgraph): New function. 24288 (tree_function_versioning): Use VECtors; always remove unreachable 24289 blocks and fold conditionals. 24290 * tree-inline.h: Do not include varray.h. 24291 (tree_function_versioning): Remove. 24292 * Makefile.in (GTFILES): Remove tree-inline.c 24293 * passes.c (do_per_function): Do only functions having body. 24294 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone 24295 tree. 24296 242972009-05-08 H.J. Lu <hongjiu.lu@intel.com> 24298 Andrew Morrow <acm@google.com> 24299 24300 PR c/36892 24301 * c-common.c (c_common_attribute_table): Permit deprecated 24302 attribute to take an optional argument. 24303 (handle_deprecated_attribute): If the optional argument to 24304 __attribute__((deprecated)) is not a string ignore the attribute 24305 and emit a warning. 24306 24307 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call. 24308 * c-typeck.c (build_component_ref): Likewise. 24309 (build_external_ref): Likewise. 24310 24311 * toplev.c (warn_deprecated_use): Add an attribute argument. 24312 Emit the message associated with __attribute__((deprecated)). 24313 24314 * toplev.h (warn_deprecated_use): Updated. 24315 24316 * doc/extend.texi: Document new optional parameter to 24317 __attribute__((deprecated)) 24318 243192009-05-08 Michael Eager <eager@eagercon.com> 24320 24321 * config/rs6000/rs6000.md (*movdf_softfloat32): replace 24322 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT. 24323 243242009-05-08 Richard Guenther <rguenther@suse.de> 24325 24326 PR tree-optimization/40062 24327 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi): 24328 Avoid exponential behavior. 24329 243302009-05-08 Paolo Bonzini <bonzini@gnu.org> 24331 24332 PR rtl-optimization/33928 24333 PR 26854 24334 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween, 24335 process_uses, build_single_def_use_links): New. 24336 (update_df): Update use_def_ref. 24337 (forward_propagate_into): Use get_def_for_use instead of use-def 24338 chains. 24339 (fwprop_init): Call build_single_def_use_links and let it initialize 24340 dataflow. 24341 (fwprop_done): Free use_def_ref. 24342 (fwprop_addr): Eliminate duplicate call to df_set_flags. 24343 * df-problems.c (df_rd_simulate_artificial_defs_at_top, 24344 df_rd_simulate_one_insn): New. 24345 (df_rd_bb_local_compute_process_def): Update head comment. 24346 (df_chain_create_bb): Use the new RD simulation functions. 24347 * df.h (df_rd_simulate_artificial_defs_at_top, 24348 df_rd_simulate_one_insn): New. 24349 * opts.c (decode_options): Enable fwprop at -O1. 24350 * doc/invoke.texi (-fforward-propagate): Document this. 24351 243522009-05-08 Joseph Myers <joseph@codesourcery.com> 24353 24354 PR c/24581 24355 * c-typeck.c (build_binary_op): Handle arithmetic between one real 24356 and one complex operand specially. 24357 * tree-complex.c (some_nonzerop): Do not identify a real value as 24358 zero if flag_signed_zeros. 24359 243602009-05-08 Paolo Bonzini <bonzini@gnu.org> 24361 24362 PR rtl-optimization/33928 24363 * loop-invariant.c (record_use): Fix && vs. || mishap. 24364 243652009-05-08 Paolo Bonzini <bonzini@gnu.org> 24366 24367 PR rtl-optimization/33928 24368 * loop-invariant.c (struct use): Add addr_use_p. 24369 (struct def): Add n_addr_uses. 24370 (struct invariant): Add cheap_address. 24371 (create_new_invariant): Set cheap_address. 24372 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses. 24373 (record_uses): Pass df_ref to record_use. 24374 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses 24375 used only as such. 24376 243772009-05-08 Kaz Kojima <kkojima@gcc.gnu.org> 24378 24379 * config/sh/sh.c: Do not include c-pragma.h. 24380 243812009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com> 24382 24383 * config/spu/spu.c: Remove include of c-common.h. 24384 243852009-05-07 Janis Johnson <janis187@us.ibm.com> 24386 24387 PR c/39037 24388 * c-common.h (mark_valid_location_for_stdc_pragma, 24389 valid_location_for_stdc_pragma_p, set_float_const_decimal64, 24390 clear_float_const_decimal64, float_const_decimal64_p): New. 24391 * c.opt (Wunsuffixed-float-constants): New. 24392 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for 24393 unsuffixed float constant, handle new warning. 24394 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants. 24395 * c-decl.c (c_scope): New flag float_const_decimal64. 24396 (set_float_const_decimal64, clear_float_const_decimal64, 24397 float_const_decimal64_p): New. 24398 (push_scope): Set new flag. 24399 * c-parser.c (c_parser_translation_unit): Mark when it's valid 24400 to use STDC pragmas. 24401 (c_parser_external_declaration): Ditto. 24402 (c_parser_compound_statement_nostart): Ditto. 24403 * c-pragma.c (valid_location_for_stdc_pragma, 24404 mark_valid_location_for_stdc_pragma, 24405 valid_location_for_stdc_pragma_p, handle_stdc_pragma, 24406 handle_pragma_float_const_decimal64): New. 24407 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64. 24408 * cp/semantics.c (valid_location_for_stdc_pragma_p, 24409 set_float_const_decimal64, clear_float_const_decimal64, 24410 float_const_decimal64_p): New dummy functions. 24411 * doc/extend.texi (Decimal Float): Remove statement that the 24412 pragma, and suffix for double constants, are not supported. 24413 * doc/invoke.texi (Warning Options): List new option. 24414 (-Wunsuffixed-float-constants): New. 24415 244162009-05-08 Steven Bosscher <steven@gcc.gnu.org> 24417 24418 * config/i386/i386.c: Do not include c-common.h. 24419 244202009-05-07 Mark Heffernan <meheff@google.com> 24421 24422 * doc/invoke.texi (Debugging Options): Document change of debugging 24423 dump location. 24424 * opts.c (decode_options): Make dump_base_name relative to 24425 aux_base_name directory. 24426 244272009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com> 24428 24429 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added. 24430 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton. 24431 244322009-05-07 Rafael Avila de Espindola <espindola@google.com> 24433 24434 * Makefile.in (install-plugin): Simplify a bit. 24435 244362009-05-07 Paolo Bonzini <bonzini@gnu.org> 24437 24438 * Makefile.in (OBJS-common): Add regcprop.o. 24439 (regcprop.o): New. 24440 * timevar.def (TV_CPROP_REGISTERS): New. 24441 * regrename.c (regrename_optimize): Return 0. 24442 (rest_of_handle_regrename): Delete. 24443 (pass_rename_registers): Point to regrename_optimize. 24444 (struct value_data_entry, struct value_data, 24445 kill_value_one_regno, kill_value_regno, kill_value, 24446 set_value_regno, init_value_data, kill_clobbered_value, 24447 kill_set_value, kill_autoinc_value, copy_value, 24448 mode_change_ok, maybe_mode_change, find_oldest_value_reg, 24449 replace_oldest_value_reg, replace_oldest_value_addr, 24450 replace_oldest_value_mem, copyprop_hardreg_forward_1, 24451 debug_value_data, validate_value_data): Move... 24452 * regcprop.c: ... here. 24453 (rest_of_handle_cprop): Delete. 24454 (pass_cprop_hardreg): Point to copyprop_hardreg_forward. 24455 244562009-05-07 Jakub Jelinek <jakub@redhat.com> 24457 24458 PR middle-end/40057 24459 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of 24460 GEN_INT for 1 << bitnum. 24461 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of 24462 build_int_cst_type. 24463 244642009-05-07 Uros Bizjak <ubizjak@gmail.com> 24465 24466 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]: 24467 Remove wrong description of "nand" operation. 24468 244692009-05-06 Richard Guenther <rguenther@suse.de> 24470 Adam Nemet <anemet@caviumnetworks.com> 24471 24472 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the 24473 comment. Add that if LHS is not a gimple register, then RHS1 has 24474 to be a single object (GIMPLE_SINGLE_RHS). 24475 244762009-05-06 Adam Nemet <anemet@caviumnetworks.com> 24477 24478 * expr.c (get_def_for_expr): Move it up in the file. 24479 (store_field): When expanding a bit-field store, look at the 24480 defining gimple stmt for the masking conversion. 24481 244822009-05-06 Janis Johnson <janis187@us.ibm.com> 24483 24484 PR middle-end/39986 24485 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64, 24486 decode_decimal64, encode_decimal128, decode_decimal128): Avoid 24487 32-bit memcpy into long. 24488 244892009-05-06 Jakub Jelinek <jakub@redhat.com> 24490 24491 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX. 24492 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling 24493 new_reg_loc_descr. 24494 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0 24495 instead of appending DW_OP_deref*. 24496 244972009-05-06 Michael Matz <matz@suse.de> 24498 24499 PR middle-end/40021 24500 * cfgexpand.c (maybe_cleanup_end_of_block): New static function. 24501 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps. 24502 245032009-05-06 Rafael Avila de Espindola <espindola@google.com> 24504 24505 * Makefile.in (install-plugin): Fix srcdir handling. 24506 245072009-05-06 Andrey Belevantsev <abel@ispras.ru> 24508 24509 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF 24510 when processing for not_regs_needed bitmap. 24511 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address, 24512 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while 24513 handling it for rhs. 24514 245152009-05-06 H.J. Lu <hongjiu.lu@intel.com> 24516 24517 * config/i386/i386.md (unnamed inc/dec peephole): Use 24518 optimize_insn_for_size_p instead of optimize_size. 24519 * config/i386/predicates.md (incdec_operand): Likewise. 24520 (aligned_operand): Likewise. 24521 * config/i386/sse.md (divv8sf3): Likewise. 24522 (sqrtv8sf2): Likewise. 24523 245242009-05-06 H.J. Lu <hongjiu.lu@intel.com> 24525 24526 * config/i386/i386.c (ix86_build_signbit_mask): Make it static. 24527 24528 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed. 24529 245302009-05-06 H.J. Lu <hongjiu.lu@intel.com> 24531 24532 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace 24533 ssemodesuffixf2c with avxmodesuffixf2c. 24534 245352009-05-06 Joseph Myers <joseph@codesourcery.com> 24536 24537 PR c/40032 24538 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field. 24539 245402009-05-05 Jakub Jelinek <jakub@redhat.com> 24541 24542 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment. 24543 (struct tree_base): Adjust spacing for 8 bit boundaries. 24544 (struct tree_decl_common): Add decl_by_reference_flag bit. 24545 (DECL_BY_REFERENCE): Adjust. 24546 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL, 24547 print DECL_BY_REFERENCE bit. 24548 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change. 24549 * dwarf2out.c (loc_by_reference, gen_decl_die): Check 24550 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones. 24551 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED 24552 unconditionally. 24553 24554 PR middle-end/39666 24555 * gimplify.c (gimplify_switch_expr): If case labels cover the whole 24556 range of the type, but default label is missing, add it with one 24557 of the existing labels instead of adding a new label for it. 24558 245592009-05-05 Joseph Myers <joseph@codesourcery.com> 24560 24561 * dwarf.h: Remove. 24562 245632009-05-05 Rafael Avila de Espindola <espindola@google.com> 24564 24565 * Makefile.in (enable_plugin, plugin_includedir): New. 24566 (install): Depend on install-plugin. 24567 (PLUGIN_HEADERS): New. 24568 (install-plugin): New. 24569 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64. 24570 245712009-05-05 Richard Guenther <rguenther@suse.de> 24572 24573 PR tree-optimization/40022 24574 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for 24575 the only vuse. 24576 (phivn_valid_p): Fix tuplification error, simplify. 24577 (phiprop_insert_phi): Add dumps. 24578 (propagate_with_phi): Simplify. 24579 245802009-05-05 Richard Guenther <rguenther@suse.de> 24581 24582 PR middle-end/40023 24583 * builtins.c (gimplify_va_arg_expr): Properly build the address. 24584 245852009-05-05 Shujing Zhao <pearly.zhao@oracle.com> 24586 24587 * tree.h (strip_float_extensions): Remove duplicate declaration. 24588 (build_low_bits_mask, debug_fold_checksum, expand_function_end, 24589 expand_function_start, stack_protect_prologue, stack_protect_epilogue, 24590 block_ultimate_origin): Rearrange the declarations line to match the 24591 comment that indicates the .c file which the functions are defined. 24592 (dwarf2out_*, set_decl_rtl): Add comment. 24593 (get_base_address): Adjust comment. 24594 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the 24595 declarations line and add comment. 24596 (is_builtin_name): Add blank after function name, for clarity. 24597 245982009-05-04 Joseph Myers <joseph@codesourcery.com> 24599 24600 * attribs.c (decl_attributes): Use %qE for identifiers in 24601 diagnostics. 24602 * cgraphunit.c (verify_cgraph_node): Translate function names to 24603 locale character set in diagnostics. 24604 * coverage.c (get_coverage_counts): Use %qE for identifiers in 24605 diagnostics. 24606 * doc/invoke.texi (-finstrument-functions-exclude-function-list): 24607 Document that functions are named in UTF-8. 24608 * expr.c (expand_expr_real_1): Translate function names to locale 24609 character set in diagnostics. 24610 * gimplify.c (omp_notice_variable, omp_is_private, 24611 gimplify_scan_omp_clauses): Use %qE for identifiers in 24612 diagnostics. 24613 * langhooks.c (lhd_print_error_function): Translate function names 24614 to locale character set. 24615 * langhooks.h (decl_printable_name): Document that return value is 24616 in internal character set. 24617 * stmt.c: Include pretty-print.h 24618 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in 24619 diagnostics. 24620 (resolve_operand_name_1): Translate named operand name to locale 24621 character set. 24622 * stor-layout.c (finalize_record_size): Use %qE for identifiers in 24623 diagnostics. 24624 * toplev.c (announce_function): Translate function names to locale 24625 character set. 24626 (warn_deprecated_use): Use %qE for identifiers in diagnostics. 24627 (default_tree_printer): Use pp_identifier or translate identifiers 24628 to locale character set. Mark "<anonymous>" for translation. 24629 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE 24630 for identifiers in diagnostics. 24631 * tree.c (handle_dll_attribute): Use %qE for identifiers in 24632 diagnostics. 24633 * varasm.c (output_constructor): Use %qE for identifiers in 24634 diagnostics. 24635 246362009-05-04 Rafael Avila de Espindola <espindola@google.com> 24637 24638 * configure.ac: use ` ` instead of $() 24639 * configure: Regenerate. 24640 246412009-05-05 Ben Elliston <bje@au.ibm.com> 24642 24643 * config/pa/linux-atomic.c: Eliminate conditional include of 24644 errno.h on non-LP64 systems to simplify build requirements. 24645 246462009-05-04 Joseph Myers <joseph@codesourcery.com> 24647 24648 * c-common.c (handle_mode_attribute): Use %qE for identifiers in 24649 diagnostics. 24650 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree 24651 and pass value to identifier_to_locale. 24652 (warn_variable_length_array): Make name a tree. 24653 (grokdeclarator): Separate diagnostic texts for named and unnamed 24654 declarators. Use %qE for named declarators. 24655 * c-parser.c (c_lex_one_token): Use %qE for identifiers in 24656 diagnostics. 24657 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for 24658 identifiers in diagnostics. 24659 * c-typeck.c (push_member_name, start_init): Pass identifiers to 24660 identifier_to_locale. Mark "anonymous" strings for translation. 24661 246622009-05-04 Michael Eager <eager@eagercon.com> 24663 24664 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow 24665 address for DImode/DFmode only if double-precision FP regs. 24666 246672009-05-04 Michael Eager <eager@eagercon.com> 24668 24669 * config/rs6000/rs6000.c (rs6000_libcall_value): Add 24670 TARGET_SINGLE_FLOAT check. 24671 246722009-05-04 Michael Eager <eager@eagercon.com> 24673 24674 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options. 24675 246762009-05-04 Michael Eager <eager@eagercon.com> 24677 24678 * gcc/config.gcc (powerpc-xilinx-eabi*): Add tm t-xilinx 24679 * config/rs6000/t-xilinx: New 24680 246812009-05-04 Paolo Bonzini <bonzini@gnu.org> 24682 24683 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation. 24684 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete. 24685 * gcc/explow.c (memory_address): Use target hook. 24686 * gcc/targhooks.c (default_legitimize_address): New. 24687 * gcc/targhooks.h (default_legitimize_address): New. 24688 * gcc/target.h (legitimize_address): New. 24689 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New. 24690 (TARGET_INITIALIZER): Include it. 24691 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison. 24692 24693 * config/bfin/bfin-protos.h (legitimize_address): Remove. 24694 * config/bfin/bfin.c (legitimize_address): Remove. 24695 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove. 24696 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address): 24697 Remove. 24698 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove. 24699 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove. 24700 24701 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS, 24702 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete. 24703 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete. 24704 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete. 24705 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete. 24706 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete. 24707 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete. 24708 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete. 24709 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete. 24710 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete. 24711 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete. 24712 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete. 24713 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete. 24714 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete. 24715 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete. 24716 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete. 24717 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete. 24718 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete. 24719 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete. 24720 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete. 24721 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete. 24722 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete. 24723 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete. 24724 24725 * gcc/config/s390/s390-protos.h (legitimize_address): Delete. 24726 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete. 24727 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete. 24728 * gcc/config/i386/i386-protos.h (legitimize_address): Delete. 24729 * gcc/config/avr/avr-protos.h (legitimize_address): Delete. 24730 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete. 24731 * gcc/config/score/score-protos.h (score_legitimize_address): Delete. 24732 * gcc/config/arm/arm-protos.h (arm_legitimize_address, 24733 (thumb_legitimize_address): Delete. 24734 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete. 24735 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete. 24736 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete. 24737 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete. 24738 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete. 24739 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address): 24740 Delete. 24741 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address): 24742 Delete. 24743 24744 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version. 24745 * config/m32c/m32c.c (m32c_legitimize_address): Standardize. 24746 * config/m32r/m32r.c (m32r_legitimize_address): New. 24747 * config/m68k/m68k.c (m68k_legitimize_address): New. 24748 * config/score/score.c (score_legitimize_address): Standardize. 24749 * config/score/score3.c (score3_legitimize_address): Standardize. 24750 * config/score/score3.h (score3_legitimize_address): Adjust. 24751 * config/score/score7.c (score7_legitimize_address): Standardize. 24752 * config/score/score7.h (score7_legitimize_address): Adjust. 24753 * config/sh/sh.c (sh_legitimize_address): New. 24754 * config/iq2000/iq2000.c (iq2000_legitimize_address): New. 24755 24756 * gcc/config/s390/s390.c (legitimize_address): Rename to... 24757 (s390_legitimize_address): ... this. 24758 * gcc/config/sparc/sparc.c (legitimize_address): Rename to... 24759 (sparc_legitimize_address): ... this. 24760 * gcc/config/i386/i386.c (legitimize_address): Rename to... 24761 (ix86_legitimize_address): ... this. 24762 * gcc/config/avr/avr.c (legitimize_address): Rename to... 24763 (avr_legitimize_address): ... this. 24764 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to... 24765 (mn10300_legitimize_address): ... this. 24766 * config/alpha/alpha.c (alpha_legitimize_address): Wrap... 24767 (alpha_legitimize_address_1): ... the old alpha_legitimize_address. 24768 (alpha_expand_mov): Adjust call. 24769 24770 * config/frv/frv.c (frv_legitimize_address): Return x on failure. 24771 * config/spu/spu.c (spu_legitimize_address): Likewise. 24772 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise. 24773 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise. 24774 247752009-05-04 Joseph Myers <joseph@codesourcery.com> 24776 24777 * intl.c (locale_encoding, locale_utf8): New. 24778 (gcc_init_libintl): Initialize locale_encoding and locale_utf8. 24779 * intl.h (locale_encoding, locale_utf8): Declare. 24780 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV. 24781 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale): 24782 New. 24783 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID 24784 argument. 24785 (pp_tree_identifier): Define to call pp_base_tree_identifier. 24786 (pp_base_tree_identifier): Declare as function. 24787 (identifier_to_locale): Declare. 24788 * Makefile.in (pretty-print.o): Update dependencies. 24789 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics. 24790 247912009-05-04 Richard Guenther <rguenther@suse.de> 24792 24793 PR middle-end/40015 24794 * builtins.c (fold_builtin_memory_op): Do not decay to element 24795 type if the size matches the whole array. 24796 247972009-05-04 Kazu Hirata <kazu@codesourcery.com> 24798 24799 * expmed.c (synth_mult): When trying out a shift, pass the result 24800 of a signed shift. 24801 248022009-05-04 Kazu Hirata <kazu@codesourcery.com> 24803 24804 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost. 24805 (shiftsub1_cost): New. 24806 (init_expmed): Compute shiftsub1_cost. 24807 (synth_mult): Optimize multiplications by constants of the form 24808 -(2^^m-1) for some constant positive integer m. 24809 248102009-05-03 Richard Guenther <rguenther@suse.de> 24811 24812 PR c/39983 24813 * c-typeck.c (array_to_pointer_conversion): Do not built 24814 ADDR_EXPRs of arrays of pointer-to-element type. 24815 * c-gimplify.c (c_gimplify_expr): Revert change fixing 24816 up wrong ADDR_EXPRs after-the-fact. 24817 * c-common.c (strict_aliasing_warning): Strip pointer 24818 conversions for obtaining the original type. 24819 * builtins.c (fold_builtin_memset): Handle array types. 24820 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs 24821 and array types 24822 248232009-05-03 Richard Guenther <rguenther@suse.de> 24824 24825 PR middle-end/23329 24826 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set. 24827 Do not lose casts from array types with unknown extent to array 24828 types with known extent. 24829 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for 24830 alias set compatibility. 24831 248322009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org> 24833 24834 * flags.h (extra_warnings): Delete. 24835 * toplev.c (process_options): Handle Wuninitialized here. 24836 * opts.c (extra_warnings): Delete. 24837 (set_Wextra): Delete. 24838 (common_handle_option): -Wextra can be handled automatically. 24839 * c-opts.c (c_common_handle_option): Delete obsolete code. 24840 (c_common_post_options): Simplify comment. 24841 * common.opt (W): Add Var. 24842 (Wextra): Add Var. 24843 (Wuninitialized): Initialize to -1. 24844 248452009-05-03 Adam Nemet <anemet@caviumnetworks.com> 24846 Richard Guenther <rguenther@suse.de> 24847 24848 * expr.c (get_def_for_expr): New function. 24849 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with 24850 SSA rather than trees. 24851 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of 24852 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1). 24853 248542009-05-03 Joseph Myers <joseph@codesourcery.com> 24855 24856 * c-common.c (reswords): Add _Imaginary. 24857 * c-common.c (enum rid): Add RID_IMAGINARY. 24858 248592009-05-03 Paolo Bonzini <bonzini@gnu.org> 24860 24861 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation. 24862 Patch by Richard Guenther. 24863 248642009-05-03 Anatoly Sokolov <aesok@post.ru> 24865 24866 * defaults.h (FRAME_POINTER_REQUIRED): Provide default. 24867 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation. 24868 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete. 24869 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete. 24870 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete. 24871 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete. 24872 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete. 24873 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete. 24874 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete. 24875 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete. 24876 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete. 24877 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete. 24878 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete. 24879 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete. 24880 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete. 24881 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete. 24882 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete. 24883 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete. 24884 248852009-05-02 Richard Guenther <rguenther@suse.de> 24886 24887 PR tree-optimization/39940 24888 * tree-ssa-pre.c (eliminate): Make sure we may propagate before 24889 doing so. 24890 248912009-05-02 Richard Guenther <rguenther@suse.de> 24892 24893 PR middle-end/40001 24894 * tree-ssa.c (execute_update_addresses_taken): Properly check 24895 if we can mark a variable DECL_GIMPLE_REG_P. 24896 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P 24897 back to the end of the function. 24898 (is_gimple_reg_type): Remove complex type special casing. 24899 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P 24900 if not optimizing. 24901 249022009-05-02 Ben Elliston <bje@au.ibm.com> 24903 24904 * doc/collect2.texi (Collect2): Document search path behaviour 24905 when configured with --with-ld. 24906 249072009-05-02 Jan Hubicka <jh@suse.cz> 24908 24909 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical 24910 parameter; update callers. 24911 (coalesce_cost_edge): EH edges are costier because they needs 24912 splitting even if not critical and even more costier when there are 24913 multiple EH predecestors. 24914 249152009-05-02 Jan Hubicka <jh@suse.cz> 24916 24917 * except.c (remove_eh_handler_and_replace): Handle updating after 24918 removing TRY blocks. 24919 249202009-05-02 Eric Botcazou <ebotcazou@adacore.com> 24921 24922 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard. 24923 249242009-05-02 Steven Bosscher <steven@gcc.gnu.org> 24925 24926 * varasm.c: Do not include c-pragma.h. 24927 * attribs.c: Do not incude c-common.h. 24928 249292009-05-01 Michael Matz <matz@suse.de> 24930 24931 * calls.c (initialize_argument_information): Handle SSA names like 24932 decls with a non MEM_P DECL_RTL. 24933 249342009-05-01 Steven Bosscher <steven@gcc.gnu.org> 24935 24936 * ipa-reference.c: Do not include c-common.h, include splay-tree.h. 24937 * ipa-utils.c: Likewise. 24938 * ipa-type-escape.c: Likewise. 24939 * cgraphunit.c Do not include c-common.h. 24940 * ipa-pure-const.c: Likewise. 24941 * tree-if-conv.c: Likewise. 24942 * matrix-reorg.c: Do not include c-common.h and c-tree.h. 24943 * ipa-struct-reorg.c: Likewise. 24944 * tree-nomudflap.c: Likewise. 24945 * tree-ssa-structalias.c: Likewise. 24946 249472009-05-01 Steven Bosscher <steven@gcc.gnu.org> 24948 24949 * store-motion.c: Many cleanups to make this pass a first-class 24950 citizen instead of an appendix to gcse load motion. Add TODO list 24951 to make this pass faster/cleaner/better. 24952 24953 (struct ls_expr): Post gcse.c-split cleanups. 24954 Rename to st_expr. Rename "loads" field to "antic_stores". Rename 24955 "stores" field to "avail_stores". 24956 (pre_ldst_mems): Rename to store_motion_mems. 24957 (pre_ldst_table): Rename to store_motion_mems_table. 24958 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users. 24959 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users. 24960 (ldst_entry): Rename to st_expr_entry, update users. 24961 (free_ldst_entry): Rename to free_st_expr_entry, update users. 24962 (free_ldst_mems): Rename to free_store_motion_mems, update users. 24963 (enumerate_ldsts): Rename to enumerate_store_motion_mems, 24964 update caller. 24965 (first_ls_expr): Rename to first_st_expr, update users. 24966 (next_ls_expr): Rename to next_st_expr, update users. 24967 (print_ldst_list): Rename to print_store_motion_mems. Print names of 24968 fields properly for store motion instead of names inherited from load 24969 motion in gcse.c. 24970 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove. 24971 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we 24972 are done with it. 24973 24974 (ae_kill): Rename to st_kill, update users. 24975 (ae_gen): Rename to st_avloc, update users. 24976 (transp): Rename to st_transp, update users. 24977 (pre_insert_map): Rename to st_insert_map, update users. 24978 (pre_delete_map): Rename to st_delete_map, update users. 24979 (insert_store, build_store_vectors, free_store_memory, 24980 one_store_motion_pass): Update for abovementioned changes. 24981 24982 (gcse_subst_count, gcse_create_count): Remove. 24983 (one_store_motion_pass): New statistics counters "n_stores_deleted" 24984 and "n_stores_created", local variables. 24985 24986 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to 24987 use for_each_rtx. 24988 24989 (regvec, compute_store_table_current_insn): Remove. 24990 (reg_set_info, reg_clear_last_set): Remove. 24991 (compute_store_table): Use DF caches instead of local dataflow 24992 solvers. 24993 249942009-05-01 Joseph Myers <joseph@codesourcery.com> 24995 24996 * c-objc-common.c (c_tree_printer): Print identifiers with 24997 pp_identifier, not pp_string. Mark "({anonymous})" for 24998 translation. 24999 * c-pretty-print.c (pp_c_ws_string): New. 25000 (pp_c_cv_qualifier, pp_c_type_specifier, 25001 pp_c_specifier_qualifier_list, pp_c_parameter_type_list, 25002 pp_c_storage_class_specifier, pp_c_function_specifier, 25003 pp_c_attributes, pp_c_bool_constant, pp_c_constant, 25004 pp_c_primary_expression, pp_c_postfix_expression, 25005 pp_c_unary_expression, pp_c_shift_expression, 25006 pp_c_relational_expression, pp_c_equality_expression, 25007 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly 25008 use pp_string and pp_c_ws_string in place of pp_identifier and 25009 pp_c_identifier for non-identifiers. Mark English strings for 25010 translation. 25011 * c-pretty-print.h (pp_c_ws_string): Declare. 25012 250132009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com> 25014 Roland McGrath <roland@redhat.com> 25015 25016 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support. 25017 (ENABLE_LD_BUILDID): New configuration option. 25018 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID] 25019 (LINK_BUILDID_SPEC): New macro. 25020 (init_spec): If defined, prepend it between LINK_EH_SPEC and 25021 link_spec. 25022 * doc/install.texi: Document --enable-linker-build-id option. 25023 * configure: Rebuild. 25024 * config.in: Rebuild. 25025 250262009-04-30 Adam Nemet <anemet@caviumnetworks.com> 25027 25028 * config/mips/mips.h (FRAME_GROWS_DOWNWARD, 25029 MIPS_GP_SAVE_AREA_SIZE): Define new macros. 25030 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use 25031 MIPS_GP_SAVE_AREA_SIZE. 25032 * config/mips/mips.c (struct mips_frame_info): Update comment 25033 before arg_pointer_offset and hard_frame_pointer_offset. 25034 (mips_compute_frame_info): Update diagram before function: to 25035 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to 25036 indicate the position of frame_pointer_rtx with -fstack-protector and 25037 to show args_size. Don't allocate cprestore area for leaf functions 25038 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set 25039 cprestore_size. 25040 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD. 25041 250422009-04-30 Michael Matz <matz@suse.de> 25043 25044 PR tree-optimization/39955 25045 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs. 25046 250472009-04-30 Dave Korn <dave.korn.cygwin@gmail.com> 25048 25049 * ira.c (setup_cover_and_important_classes): Use safe macro 25050 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint 25051 directly. 25052 * genpreds.c (write_tm_preds_h): Output suitable definition of 25053 REG_CLASS_FOR_CONSTRAINT. 25054 250552009-04-30 Rafael Avila de Espindola <espindola@google.com> 25056 25057 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value 25058 instead of an int. 25059 * bitmap.c (bitmap_descriptor): Likewise. 25060 * ggc-common.c (loc_descriptor): Likewise. 25061 * varray.c (varray_descriptor): Likewise. 25062 * vec.c (vec_descriptor): Likewise. 25063 250642009-04-30 Eric Botcazou <ebotcazou@adacore.com> 25065 25066 * Makefile.in (dce.o): Add $(EXCEPT_H). 25067 * dce.c: Include except.h and delete redundant vector definitions. 25068 (deletable_insn_p): Return false for non-call insns that can throw 25069 if DF is running. 25070 250712009-04-30 Steven Bosscher <steven@gcc.gnu.org> 25072 25073 * gcse.c (ae_gen): Remove. 25074 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p 25075 and make non-static function to make it available in store-motion.c. 25076 Update call sites with search-and-replace. 25077 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok, 25078 extract_mentioned_regs, extract_mentioned_regs_helper, 25079 find_moveable_store, compute_store_table, load_kills_store, find_loads, 25080 store_killed_in_insn, store_killed_after, store_killed_before, 25081 build_store_vectors, insert_insn_start_basic_block, insert-store, 25082 remove_reachable_equiv_notes, replace_store_insn, delete_store, 25083 free_store_memory, one_store_motion_pass, gate_rtl_store_motion, 25084 execute_rtl_store_motion, pass_rtl_store_motion): Move to... 25085 * store-motion.c: ...new file. Also copy data structures from gcse.c 25086 and clean up to remove parts not used by store motion. 25087 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype. 25088 * Makefile.in (store-motion.o): New rule. Add to OBJS-common. 25089 250902009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 25091 25092 PR target/38571 25093 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb 25094 when optimizing for size. 25095 250962009-04-30 Hans-Peter Nilsson <hp@axis.com> 25097 25098 * gcse.c (gcse_constant_p): Fix typo in last change. 25099 251002009-04-30 Rafael Avila de Espindola <espindola@google.com> 25101 25102 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined. 25103 251042009-04-30 Andreas Krebbel <krebbel1@de.ibm.com> 25105 25106 * gcse.c (gcse_constant_p): Make sure the constant is sharable. 25107 251082009-04-29 James E. Wilson <wilson@codesourcery.com> 25109 25110 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for 25111 CONST_HIGH_PART result. 25112 251132009-04-29 Anatoly Sokolov <aesok@post.ru> 25114 25115 * config/avr/avr.c (initial_elimination_offset): Rename to 25116 avr_initial_elimination_offset. 25117 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p, 25118 change return type to bool. 25119 (avr_can_eliminate): New function. 25120 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate. 25121 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p. 25122 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset. 25123 * config/avr/avr-protos.h (initial_elimination_offset): Rename to 25124 avr_initial_elimination_offset. 25125 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p. 25126 (avr_initial_elimination_offset): Define. 25127 251282009-04-29 Eric Botcazou <ebotcazou@adacore.com> 25129 Steven Bosscher <steven@gcc.gnu.org> 25130 25131 PR rtl-optimization/39938 25132 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H). 25133 * cfgrtl.c: Include insn-attr.h. 25134 (rest_of_pass_free_cfg): New function. 25135 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function. 25136 * resource.c (init_resource_info): Remove call to df_analyze. 25137 251382009-04-29 Richard Guenther <rguenther@suse.de> 25139 25140 PR target/39943 25141 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only 25142 allow conversion to signed integers. 25143 251442009-04-29 Richard Guenther <rguenther@suse.de> 25145 25146 * tree-cfg.c (verify_gimple_assign_binary): Allow vector 25147 shifts of floating point vectors if the shift amount is 25148 a constant multiple of the element size. 25149 251502009-04-29 Andreas Krebbel <krebbel1@de.ibm.com> 25151 Michael Matz <matz@suse.de> 25152 25153 PR middle-end/39927 25154 PR bootstrap/39929 25155 * tree-outof-ssa.c (emit_partition_copy): New function. 25156 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge, 25157 insert_part_to_rtx_on_edge): Perform the partition base var 25158 copy using emit_partition_copy. 25159 (insert_value_copy_on_edge): Convert constants to the right mode. 25160 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter. 25161 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge. 25162 251632009-04-29 Bernd Schmidt <bernd.schmidt@analog.com> 25164 25165 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg, 25166 scan backwards to try to find a constant to initialize it. 25167 25168 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last 25169 insn before the loop_end instruction, don't look past labels. 25170 251712009-04-29 Richard Guenther <rguenther@suse.de> 25172 25173 PR middle-end/39937 25174 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not 25175 loose type conversions. 25176 (forward_propagate_addr_expr): Fix tuplification bug. Remove 25177 stmts only if there are no uses of its definition. 25178 251792009-04-29 Bernd Schmidt <bernd.schmidt@analog.com> 25180 25181 * config/bfin/bfin.h (splitting_loops): Declare. 25182 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315): 25183 Reorder bit definitions to be ascending. 25184 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros. 25185 * config/bfin/bfin.c (splitting_loops): New variable. 25186 (bfin_cpus): Add WA_LOAD_LCREGS as needed. 25187 (struct loop_info): Remove members INIT and LOOP_INIT. 25188 (bfin_optimize_loop): Don't set them. Reorder the code that generates 25189 the LSETUP sequence. Allow LC to be loaded from any register, but 25190 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS. 25191 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops 25192 set to 1. 25193 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead 25194 of reload_completed. 25195 25196 From Jie Zhang: 25197 * config/bfin/bfin.md (movsi_insn): Refine constraints. 25198 251992009-04-29 Rafael Avila de Espindola <espindola@google.com> 25200 25201 * Makefile.in (PLUGIN_VERSION_H): New. 25202 (OBJS-common): Remove plugin-version.o. 25203 (plugin.o): Depend on (PLUGIN_VERSION_H). 25204 (plugin-version.o): Remove. 25205 * configure: Regenerate 25206 * configure.ac: Create plugin-version.h. 25207 * gcc-plugin.h (plugin_gcc_version): Remove. 25208 (plugin_default_version_check): Change signature. 25209 * plugin-version.c: Remove. 25210 * plugin.c: Include plugin-version.h. 25211 (str_plugin_gcc_version_name): Remove. 25212 (try_init_one_plugin): Pass gcc version to plugin_init. 25213 (plugin_default_version_check): Both gcc and plugin versions are now 25214 arguments. 25215 252162009-04-29 Bernd Schmidt <bernd.schmidt@analog.com> 25217 25218 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of 25219 problematic last insns. Test for TYPE_CALL rather than CALL_P. 25220 Remove special case testing for last insn of inner loops. Don't fail 25221 if the loop ends with a jump, emit an extra nop instead. 25222 25223 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of 25224 DREGS rather than comparing directly. Remove code that tries to 25225 account for latencies. 25226 252272009-04-29 Richard Guenther <rguenther@suse.de> 25228 25229 PR tree-optimization/39941 25230 * tree-ssa-pre.c (eliminate): Schedule update-ssa after 25231 eliminating an indirect call. 25232 252332009-04-29 Richard Guenther <rguenther@suse.de> 25234 25235 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue 25236 parameter. Allow invariants as base if !require_lvalue. 25237 (verify_gimple_assign_single): Adjust. 25238 252392009-04-29 Bernd Schmidt <bernd.schmidt@analog.com> 25240 25241 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro. 25242 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts, 25243 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3, 25244 ssubhi3, ssaddhi3_parts and sssubhi3_parts. 25245 (flag_mulhi3_parts): Produce a HImode output rather than trying to set 25246 a VEC_SELECT. 25247 * config/bfin/bfin.c (bfin_expand_builtin, 25248 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly. 25249 252502009-04-28 Richard Guenther <rguenther@suse.de> 25251 25252 * tree-vect-loop.c (get_initial_def_for_induction): Use 25253 correct types for pointer increment. 25254 252552009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 25256 25257 * toplev.c (print_version): Update GMP version string calculation. 25258 252592009-04-28 Eric Botcazou <ebotcazou@adacore.com> 25260 25261 PR rtl-optimization/39938 25262 * resource.c (init_resource_info): Add call to df_analyze. 25263 252642009-04-28 Uros Bizjak <ubizjak@gmail.com> 25265 25266 * config/alpha/alpha.md (usegp): Cast the result of 25267 alpha_find_lo_sum_using_gp to enum attr_usegp. 25268 * config/alpha/alpha.c (override_options): Remove end-of-structure 25269 marker element from cpu_table. Use array size of cpu_table to handle 25270 -mcpu and -mtune options. 25271 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE. 25272 252732009-04-28 Joseph Myers <joseph@codesourcery.com> 25274 25275 * config.gcc (powerpc*-*-* | rs6000-*-*): Add 25276 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64, 25277 tune_32 and tune_64. 25278 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document 25279 support on PowerPC. 25280 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ... 25281 * config/rs6000/option-defaults.h: ... here. New file. 25282 (OPT_64, OPT_32): Define. 25283 (MASK_64BIT): Define to 0 if not already defined. 25284 (OPT_ARCH64, OPT_ARCH32): Define. 25285 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32 25286 and tune_64. 25287 252882009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 25289 25290 * config/arm/arm.c (arm_override_options): Emit error on using 25291 fpa with AAPCS. 25292 252932009-04-28 Uros Bizjak <ubizjak@gmail.com> 25294 25295 PR rtl-optimization/39914 25296 * ira-conflicts.c (ira_build_conflicts): Prohibit call used 25297 registers for allocnos created from user-defined variables only 25298 when not optimizing. 25299 253002009-04-28 Richard Guenther <rguenther@suse.de> 25301 25302 PR middle-end/39937 25303 * fold-const.c (fold_binary): Use distribute_real_division only 25304 on float types. 25305 253062009-04-28 Steve Ellcey <sje@cup.hp.com> 25307 25308 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and 25309 add hpux-stdint.h to tm_file. 25310 (hppa[12]*-*-hpux11*): Ditto. 25311 (ia64*-*-hpux*): Ditto. 25312 * config/hpux-stdint.h: New. 25313 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set 25314 __STDC_EXT__ for all compiles. 25315 * config/pa/pa-hpux.h: Ditto. 25316 * config/pa/pa-hpux10.h: Ditto. 25317 * config/pa/pa-hpux11.h: Ditto. 25318 253192009-04-28 Catherine Moore <clm@codesourcery.com> 25320 25321 * debug.h (set_name): Add comment. 25322 253232009-04-28 Andrew Pinski <pinskia@gmail.com> 25324 25325 PR target/39929 25326 * config/darwin.c (machopic_gen_offset): Check 25327 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE. 25328 * config/arm/arm.c (require_pic_register): Likewise. 25329 253302009-04-28 Paolo Bonzini <bonzini@gnu.org> 25331 25332 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN, 25333 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES, 25334 m32c_promote_prototypes): Delete. 25335 253362009-04-28 Michael Matz <matz@suse.de> 25337 25338 PR middle-end/39922 25339 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert 25340 constants. 25341 253422009-04-28 Richard Guenther <rguenther@suse.de> 25343 25344 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error. 25345 253462009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 25347 25348 * config/arm/arm-cores.def: Add support for arm1156t2f-s. 25349 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s. 25350 * config/arm/arm-tune.md: Regenerate. 25351 253522009-04-28 Alexander Monakov <amonakov@ispras.ru> 25353 25354 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a 25355 block if there are complex incoming edges. 25356 (sel_merge_blocks): Remove useless assert. 25357 (sel_redirect_edge_and_branch): Check that edge was redirected. 25358 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert. 25359 (sel_find_rgns): Delete declaration. 25360 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of 25361 the region when it is not a preheader. 25362 253632009-04-28 Uros Bizjak <ubizjak@gmail.com> 25364 25365 PR c/39323 25366 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h 25367 253682009-04-28 Richard Guenther <rguenther@suse.de> 25369 25370 * tree.h (SSA_NAME_VALUE): Remove. 25371 (struct tree_ssa_name): Remove value_handle member. 25372 * tree-vrp.c (execute_vrp): Initialize/free the value-handle 25373 array for jump threading. 25374 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize 25375 SSA_NAME_VALUEs. 25376 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs. 25377 * tree-flow.h (threadedge_initialize_values): Declare. 25378 (threadedge_finalize_values): Likewise. 25379 * tree-ssa-threadedge.c (ssa_name_values): New global variable. 25380 (SSA_NAME_VALUE): Define. 25381 (threadedge_initialize_values): New function. 25382 (threadedge_finalize_values): Likewise. 25383 * tree-ssa-dom.c (ssa_name_values): New global variable. 25384 (SSA_NAME_VALUE): Define. 25385 (tree_ssa_dominator_optimize): Initialize/free the value-handle array. 25386 253872009-04-28 Ira Rosen <irar@il.ibm.com> 25388 25389 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): 25390 Use REPORT_VECTORIZED_LOCATIONS instead 25391 REPORT_VECTORIZED_LOOPS. 25392 * tree-vectorizer.c (vect_verbosity_level): Make static. 25393 (vect_loop_location): Rename to vect_location. 25394 (vect_set_verbosity_level): Update comment. 25395 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS 25396 and vect_location. 25397 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS 25398 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS 25399 instead REPORT_UNVECTORIZED_LOOPS. 25400 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def 25401 and vect_loop_def to vect_external_def and vect_internal_def. 25402 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS 25403 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 25404 REPORT_UNVECTORIZED_LOCATIONS. 25405 (enum vect_relevant): Update comment. Rename vect_unused_in_loop 25406 and vect_used_in_loop and to vect_unused_in_scope and 25407 vect_used_in_scope. 25408 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope. 25409 (vect_verbosity_level): Remove declaration. 25410 (vect_analyze_operations): Likewise. 25411 (vect_analyze_stmt): Declare. 25412 * tree-vect-loop.c (vect_determine_vectorization_factor): Use 25413 REPORT_UNVECTORIZED_LOCATIONS. 25414 (vect_get_loop_niters): Fix indentation. 25415 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS. 25416 (vect_analyze_loop_operations): New function. 25417 (vect_analyze_loop): Call vect_analyze_loop_operations instead of 25418 vect_analyze_operations. 25419 (vect_is_simple_reduction): Use new names. 25420 (vectorizable_live_operation, vect_transform_loop): Likewise. 25421 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value 25422 to specify whether the data references can be a part of interleaving 25423 chain. 25424 (vect_analyze_data_ref_dependence): Use new names. 25425 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise. 25426 (vect_create_addr_base_for_vector_ref): Remove redundant code. 25427 * tree-vect-patterns.c (widened_name_p): Use new names. 25428 (vect_recog_dot_prod_pattern): Likewise. 25429 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names. 25430 (process_use, vect_mark_stmts_to_be_vectorized, 25431 vect_model_simple_cost, vect_model_store_cost, 25432 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy, 25433 vectorizable_call, vectorizable_conversion, vectorizable_assignment, 25434 vectorizable_operation, vectorizable_type_demotion, 25435 vectorizable_type_promotion, vectorizable_store, vectorizable_load, 25436 vectorizable_condition): Likewise. 25437 (vect_analyze_operations): Split into vect_analyze_loop_operations 25438 and ... 25439 (vect_analyze_stmt): ... new function. 25440 (new_stmt_vec_info): Use new names. 25441 (vect_is_simple_use): Use new names and fix comment. 25442 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names. 25443 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise. 25444 254452009-04-28 Uros Bizjak <ubizjak@gmail.com> 25446 25447 PR target/39911 25448 * config/i386/i386.c (print_operand) ['Z']: Handle floating point 25449 and integer modes for x87 operands. Do not ICE for unsupported size, 25450 generate error instead. Generate error for unsupported operand types. 25451 ['z']: Do not handle HImode memory operands specially. Warning 25452 for floating-point operands. Fallthru to 'Z' for unsupported operand 25453 types. Do not ICE for unsupported size, generate error instead. 25454 (output_387_binary_op): Use %Z to output operands. 25455 (output_fp_compare): Ditto. 25456 (output_387_reg_move): Ditto. 25457 254582009-04-28 Ben Elliston <bje@au.ibm.com> 25459 25460 PR c++/35652 25461 Revert: 25462 25463 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 25464 25465 * builtins.c (c_strlen): Do not warn here. 25466 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum. 25467 * c-common.c (pointer_int_sum): Take an explicit location. 25468 Warn about offsets out of bounds. 25469 * c-common.h (pointer_int_sum): Adjust declaration. 25470 254712009-04-27 Ian Lance Taylor <iant@google.com> 25472 25473 * collect2.c (is_ctor_dtor): Change type of ret field in struct 25474 names to symkind. 25475 * dce.c (run_fast_df_dce): Change type of old_flags to int. 25476 * df-core.c (df_set_flags): Change return type to int. Change 25477 type of old_flags to int. 25478 (df_clear_flags): Likewise. 25479 * df-scan.c (df_def_record_1): Change 0 to VOIDmode. 25480 (df_get_conditional_uses): Likewise. 25481 * df.h (df_set_flags, df_clear_flags): Update declarations. 25482 * dwarf2out.c (struct indirect_string_node): Change type of form 25483 field to enum dwarf_form. 25484 (AT_string_form): Change return type to enum dwarf_form. 25485 * fixed-value.c (fixed_compare): Add cast to enum type. 25486 * fwprop.c (update_df): Change 0 to VOIDmode. 25487 * gensupport.c: Change 0 to UNKNOWN. 25488 * gimple.h (gimple_cond_code): Add cast to enum type. 25489 * haifa-sched.c (reemit_notes): Add cast to enum type. 25490 * hooks.c (hook_int_void_no_regs): Remove function. 25491 * hooks.h (hook_int_void_no_regs): Remove declaration. 25492 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode. 25493 * predict.c (combine_predictions_for_insn): Add casts to enum type. 25494 * real.c (real_arithmetic): Add cast to enum type. 25495 (real_compare): Likewise. 25496 * target.h (struct gcc_target): Change return type of 25497 branch_target_register_class to enum reg_class. 25498 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as 25499 default_branch_target_register_class. 25500 * targhooks.c (default_branch_target_register_class): New function. 25501 * targhooks.h (default_branch_target_register_class): Declare. 25502 * tree-data-ref.c (print_direction_vector): Add cast to enum type. 25503 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove 25504 cast to int. 25505 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to 25506 ERROR_MARK. 25507 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to 25508 vect_uninitialized_def. Change 0 to ERROR_MARK. 25509 * tree-vect-stmts.c (supportable_widening_operation): Don't 25510 initialize icode1 and icode2. 25511 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def. 25512 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none 25513 and to STD_C89. 25514 (cmn_err_flag_specs): Change 0 to STD_C89. 25515 (cmn_err_char_table): Likewise. 25516 * config/arm/arm.c (get_arm_condition_code): Change type of code 25517 to enum arm_cond_code. 25518 (IWMMXT_BUILTIN): Change 0 to UNKNOWN. 25519 (IWMMXT_BUILTIN2): Likewise. 25520 (neon_builtin_type_bits): Don't define typedef. 25521 (neon_builtin_datum): Change type of bits field to int. 25522 (arm_expand_neon_args): Add cast to enum type. 25523 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to 25524 TLS_MODEL_NONE. 25525 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add 25526 casts to enum type. 25527 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to 25528 MIPS_FP_COND_f. 25529 * config/mips/mips.md (jal_macro): Return enum constant. 25530 (single_insn): Likewise. 25531 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to 25532 CODE_FOR_nothing. 25533 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 25534 casts to enum type. 25535 * config/s390/s390.c (s390_tune_flags): Change type to int. 25536 (s390_arch_flags): Likewise. 25537 (s390_handle_arch_option): Change flags field of struct pta to int. 25538 * config/s390/s390.h (s390_tune_flags): Update declaration. 25539 (s390_arch_flags): Likewise. 25540 * config/sh/sh.c (prepare_move_operands): Compare 25541 tls_symbolic_operand result with enum constant. 25542 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND. 25543 (sh_expand_prologue): Add cast to enum type. 25544 (sh_expand_epilogue): Likewise. 25545 (tls_symbolic_operand): Change return type to enum tls_model. 25546 (fpscr_set_from_mem): Add cast to enum type. 25547 (legitimize_pic_address): Compare tls_symbolic_operand result with 25548 enum constant. 25549 (sh_target_reg_class): Change return type to enum reg_class. 25550 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to 25551 PROCESSOR_xxx. 25552 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration. 25553 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type. 25554 * config/sparc/sparc.md (empty_delay_slot): Return enum constant. 25555 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise. 25556 (delayed_branch, tls_call_delay): Likewise. 25557 (eligible_for_sibcall_delay): Likewise. 25558 (eligible_for_return_delay): Likewise. 25559 * config/spu/spu.c (expand_builtin_args): Add cast to enum type. 25560 (spu_expand_builtin_1): Likewise. 25561 25562 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings 25563 for all types of conversions. 25564 (output_init_element): Issue -Wc++-compat warning if needed when 25565 initializing a bitfield with enum type. 25566 * c-parser.c (c_parser_expression): Set original_type to 25567 original_type of right hand operand of comma operator. 25568 255692009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 25570 25571 * doc/c-tree.texi (Types, Functions, Expression trees): Fix 25572 grammar nits. 25573 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise. 25574 * doc/cpp.texi (Standard Predefined Macros) 25575 (Implementation-defined behavior): Likewise. 25576 * doc/extend.texi (Function Attributes, Type Attributes): Likewise. 25577 * doc/gimple.texi (GIMPLE Exception Handling) 25578 (@code{GIMPLE_ASSIGN}): Likewise. 25579 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise. 25580 * doc/invoke.texi (Warning Options, Optimize Options) 25581 (AVR Options, Darwin Options): Likewise. 25582 (Optimize Options): Reformulate -fwhole-program description. 25583 * doc/loop.texi (Lambda): Likewise. 25584 * doc/md.texi (Output Template, Define Constraints) 25585 (Standard Names, Insn Splitting): Likewise. 25586 * doc/options.texi (Option properties): Likewise. 25587 * doc/passes.texi (Tree-SSA passes): Likewise. 25588 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise. 25589 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return) 25590 (File Names and DBX): Likewise. 25591 * doc/trouble.texi (Incompatibilities): Likewise. 25592 255932009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com> 25594 25595 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint 25596 instruction is correct. 25597 255982009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com> 25599 25600 Allow non-constant arguments to conversion intrinsics. 25601 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare. 25602 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New. 25603 * spu.c (print_operand): Handle 'v' and 'w'. 25604 (exp2_immediate_p, spu_gen_exp2): Define. 25605 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0, 25606 spu_convtf_1): Update parameter descriptions. 25607 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update. 25608 * constraints.md ('v', 'w'): New. 25609 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU): 25610 Remove. 25611 (i2f, I2F): New define_mode_attr. 25612 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2, 25613 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2, 25614 fixuns_truncv4sfv4si2): Update to use mode attribute. 25615 (float<mode><i2f>2_mul, float<mode><i2f>2_div, 25616 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul, 25617 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New 25618 patterns for combine. 25619 256202009-04-27 Steven Bosscher <steven@gcc.gnu.org> 25621 25622 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove 25623 (cprop, hoist, pre, store_motion): New debug counters. 25624 * tree-pass.h (pass_tracer): Move to list of gimple passes, it 25625 is not an RTL pass anymore. 25626 (pass_profiling): Remove extern decl for pass removed in 2005. 25627 (pass_gcse, pass_jump_bypass): Remove. 25628 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts 25629 to 0 for clean state. 25630 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration. 25631 * cse.c (gate_handle_cse_after_global_opts, 25632 rest_of_handle_cse_after_global_opts): New functions. 25633 (pass_cse_after_global_opts): New pass, does local CSE. 25634 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove. 25635 (TV_CPROP): New timevar. 25636 * gcse.c (flag_rerun_cse_after_global_opts): New global variable. 25637 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars. 25638 (gcse_main, recompute_all_luids): Remove. 25639 (compute_hash_table_work): Call max_reg_num instead of reading 25640 max_gcse_regno. 25641 (cprop_jump): Don't set run_jump_opt_after_gcse. 25642 (constprop_register): Always allow to alter jumps. 25643 (cprop_insn): Likewise. 25644 (do_local_cprop): Likewise. 25645 (local_cprop_pass): Likewise. Return non-zero if something changed. 25646 (cprop): Remove function, fold interesting bits into one_cprop_pass. 25647 (find_implicit_sets): Add note about missed optimization opportunity. 25648 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the 25649 pass_rtl_cprop execute function. 25650 Don't bother tracking the pass number, each pass gets its own dumpfile 25651 now anyway. 25652 Always allow to alter jumpsand bypass jumps. 25653 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set 25654 will just find no suitable set. 25655 (pre_edge_insert): Fix dumping, this function is for PRE only. 25656 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the 25657 pass_rtl_pre execute function. 25658 (hoist_code): Return non-zero if something changed. Keep track of 25659 substitutions and insertions for statistics gathering similar to PRE. 25660 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass, 25661 called from the pass_rtl_hoist execute function. Show pass statistics. 25662 (compute_store_table): Use max_reg_num directly instead of using the 25663 formerly global max_gcse_regno. 25664 (build_store_vectors): Likewise. 25665 (replace_store_insn): Fix dumping. 25666 (store_motion): Rename to ... 25667 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION 25668 pass, called from the pass_rtl_store_motion execute function. Keep 25669 track of substitutions and insertions for statistics gathering similar 25670 to PRE. 25671 (bypass_jumps): Remove, fold interesting bits into ... 25672 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called 25673 from the pass_rtl_cprop execute function. 25674 (gate_handle_jump_bypass, rest_of_handle_jump_bypass, 25675 pass_jump_bypass): Remove. 25676 (gate_handle_gcse, rest_of_handle_gcse): Remove. 25677 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New. 25678 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New. 25679 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New. 25680 (gate_rtl_store_motion, execute_rtl_store_motion, 25681 pass_rtl_store_motion): New. 25682 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to 25683 make it clear that -fcse-skip-blocks is a no-op for backward compat. 25684 * passes.c (init_optimization_passes): Remove pass_gcse and 25685 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion, 25686 and cse_after_global_opts in place of pass_gcse. Schedule cprop 25687 instead of pass_jump_bypass. 25688 256892009-04-27 Richard Guenther <rguenther@suse.de> 25690 25691 PR middle-end/39928 25692 * gimplify.c (gimplify_expr): If we are required to create 25693 a temporary make sure it ends up as register. 25694 256952009-04-27 H.J. Lu <hongjiu.lu@intel.com> 25696 25697 PR target/39903 25698 * config/i386/i386.c (construct_container): Don't call 25699 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS, 25700 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS. 25701 257022009-04-27 Michael Matz <matz@suse.de> 25703 25704 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap. 25705 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT. 25706 * tree-ssa-live.h (find_replaceable_exprs): Return a bitmap. 25707 (dump_replaceable_exprs): Take a bitmap. 25708 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of 25709 array. 25710 (expand_gimple_basic_block): Likewise. 25711 * tree-ssa-ter.c (struct temp_expr_table_d): Make 25712 replaceable_expressions member a bitmap. 25713 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*. 25714 (mark_replaceable): Likewise. 25715 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise. 25716 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap. 25717 257182009-04-27 Richard Guenther <rguenther@suse.de> 25719 25720 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards. 25721 (verify_stmts): Dispatch to gimple/type verification code. 25722 * tree-inline.c (remap_gimple_op_r): Work around C++ FE 25723 issue with call argument types. 25724 257252009-04-27 Michael Matz <matz@suse.de> 25726 25727 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove. 25728 (init_update_ssa, delete_update_ssa, update_ssa): Remove references 25729 to above. 25730 257312009-04-27 Richard Sandiford <rdsandiford@googlemail.com> 25732 Eric Botcazou <ebotcazou@adacore.com> 25733 25734 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up 25735 a label's basic block. 25736 (mark_target_live_regs): Tidy and rework obsolete comments. 25737 Change back DF problem to LIVE. If a label starts a basic block, 25738 assume that all registers that used to be live then still are. 25739 (init_resource_info): If a label starts a basic block, set its 25740 BLOCK_FOR_INSN accordingly. 25741 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN. 25742 257432009-04-27 Richard Guenther <rguenther@suse.de> 25744 25745 * tree-flow-inline.h (function_ann): Remove. 25746 (get_function_ann): Likewise. 25747 * tree-dfa.c (create_function_ann): Remove. 25748 * tree-flow.h (struct static_var_ann_d): Remove. 25749 (struct function_ann_d): Likewise. 25750 (union tree_ann_d): Remove fdecl member. 25751 (function_ann_t): Remove. 25752 (function_ann, get_function_ann, create_function_ann): Remove 25753 declarations. 25754 257552009-04-27 Uros Bizjak <ubizjak@gmail.com> 25756 25757 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code. 25758 257592009-04-27 Jan Hubicka <jh@suse.cz> 25760 25761 * ipa-pure-const.c (struct funct_state_d): New fields 25762 state_previously_known, looping_previously_known; remove 25763 state_set_in_source. 25764 (analyze_function): Use new fields. 25765 (propagate): Avoid assumption that state_set_in_source imply 25766 nonlooping. 25767 25768 * tree-ssa-loop-niter.c (finite_loop_p): New function. 25769 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it. 25770 * cfgloop.h (finite_loop_p): Declare. 25771 257722009-04-26 Michael Matz <matz@suse.de> 25773 25774 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members. 25775 257762009-04-26 Michael Matz <matz@suse.de> 25777 25778 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks, 25779 pass_free_cfg_annotations, pass_free_datastructures): Remove decls. 25780 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks, 25781 pass_mark_used_blocks): Remove. 25782 * tree-optimize.c (pass_free_datastructures, 25783 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove. 25784 * passes.c (init_optimization_passes): Don't call 25785 pass_mark_used_blocks, remove dead code. 25786 257872009-04-26 H.J. Lu <hongjiu.lu@intel.com> 25788 25789 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED. 25790 * tree-ssa-live.h (register_ssa_partition): Likewise. 25791 257922009-04-26 Michael Matz <matz@suse.de> 25793 25794 Expand from SSA. 25795 * builtins.c (fold_builtin_next_arg): Handle SSA names. 25796 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly. 25797 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful 25798 SSA names. 25799 (compare_pairs): Swap cost comparison. 25800 (coalesce_ssa_name): Don't use change_partition_var. 25801 * tree-nrv.c (struct nrv_data): Add modified member. 25802 (finalize_nrv_r): Set it. 25803 (tree_nrv): Use it to update statements. 25804 (pass_nrv): Require PROP_ssa. 25805 * tree-mudflap.c (mf_decl_cache_locals, 25806 mf_build_check_statement_for): Use make_rename_temp. 25807 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish. 25808 * alias.c (find_base_decl): Handle SSA names. 25809 * emit-rtl (set_reg_attrs_for_parm): Make non-static. 25810 (component_ref_for_mem_expr): Don't leak SSA names into RTL. 25811 * rtl.h (set_reg_attrs_for_parm): Declare. 25812 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename 25813 to "optimized", remove unused locals at finish. 25814 (execute_free_datastructures): Make global, call 25815 delete_tree_cfg_annotations. 25816 (execute_free_cfg_annotations): Don't call 25817 delete_tree_cfg_annotations. 25818 25819 * ssaexpand.h: New file. 25820 * expr.c (toplevel): Include ssaexpand.h. 25821 (expand_assignment): Handle SSA names the same as register variables. 25822 (expand_expr_real_1): Expand SSA names. 25823 * cfgexpand.c (toplevel): Include ssaexpand.h. 25824 (SA): New global variable. 25825 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates. 25826 (SSAVAR): New macro. 25827 (set_rtl): New helper function. 25828 (add_stack_var): Deal with SSA names, use set_rtl. 25829 (expand_one_stack_var_at): Likewise. 25830 (expand_one_stack_var): Deal with SSA names. 25831 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker 25832 before unique numbers. 25833 (expand_stack_vars): Use set_rtl. 25834 (expand_one_var): Accept SSA names, add asserts for them, feed them 25835 to above subroutines. 25836 (expand_used_vars): Expand all partitions (without default defs), 25837 then only the local decls (ignoring those expanded already). 25838 (expand_gimple_cond): Remove edges when jumpif() expands an 25839 unconditional jump. 25840 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here, 25841 or remove abnormal edges. Ignore insns setting the LHS of a TERed 25842 SSA name. 25843 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize 25844 members of SA; deal with PARM_DECL partitions here; expand 25845 all PHI nodes, free tree datastructures and SA. Commit instructions 25846 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here. 25847 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow 25848 info and statements at start, collect garbage at finish. 25849 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member. 25850 (VAR_ANN_PARTITION) Remove. 25851 (change_partition_var): Don't declare. 25852 (partition_to_var): Always return SSA names. 25853 (var_to_partition): Only accept SSA names. 25854 (register_ssa_partition): Only check argument. 25855 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var 25856 member. 25857 (delete_var_map): Don't free it. 25858 (var_union): Only accept SSA names, simplify. 25859 (partition_view_init): Mark only useful SSA names as used. 25860 (partition_view_fini): Only deal with SSA names. 25861 (change_partition_var): Remove. 25862 (dump_var_map): Use ssa_name instead of partition_to_var member. 25863 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL 25864 basic blocks. 25865 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h. 25866 (struct _elim_graph): New member const_dests; nodes member vector of 25867 ints. 25868 (set_location_for_edge): New static helper. 25869 (create_temp): Remove. 25870 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge, 25871 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions. 25872 (new_elim_graph): Allocate const_dests member. 25873 (clean_elim_graph): Truncate const_dests member. 25874 (delete_elim_graph): Free const_dests member. 25875 (elim_graph_size): Adapt to new type of nodes member. 25876 (elim_graph_add_node): Likewise. 25877 (eliminate_name): Likewise. 25878 (eliminate_build): Don't take basic block argument, deal only with 25879 partition numbers, not variables. 25880 (get_temp_reg): New static helper. 25881 (elim_create): Use it, deal with RTL temporaries instead of trees. 25882 (eliminate_phi): Adjust all calls to new signature. 25883 (assign_vars, replace_use_variable, replace_def_variable): Remove. 25884 (rewrite_trees): Only do checking. 25885 (edge_leader, stmt_list, leader_has_match, leader_match): Remove. 25886 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p, 25887 init_analyze_edges_for_bb, fini_analyze_edges_for_bb, 25888 contains_tree_r, MAX_STMTS_IN_LATCH, 25889 process_single_block_loop_latch, analyze_edges_for_bb, 25890 perform_edge_inserts): Remove. 25891 (expand_phi_nodes): New global function. 25892 (remove_ssa_form): Take ssaexpand parameter. Don't call removed 25893 functions, initialize new parameter, remember partitions having a 25894 default def. 25895 (finish_out_of_ssa): New global function. 25896 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form, 25897 don't reset in_ssa_p here, don't disable TER when mudflap. 25898 (pass_del_ssa): Remove. 25899 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and 25900 partition members. 25901 (execute_free_datastructures): Declare. 25902 * Makefile.in (SSAEXPAND_H): New variable. 25903 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H. 25904 * basic-block.h (commit_one_edge_insertion): Declare. 25905 * passes.c (init_optimization_passes): Move pass_nrv and 25906 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove 25907 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations. 25908 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare. 25909 (redirect_branch_edge): Deal with super block when expanding, split 25910 out jump patching itself into ... 25911 (patch_jump_insn): ... here, new static helper. 25912 259132009-04-26 Michael Matz <matz@suse.de> 25914 25915 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate 25916 beyond num_ssa_names. 25917 * tree-ssa-ter.c (free_temp_expr_table): Likewise. 25918 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise. 25919 259202009-04-26 Jakub Jelinek <jakub@redhat.com> 25921 25922 PR inline-asm/39543 25923 * fwprop.c (forward_propagate_asm): New function. 25924 (forward_propagate_and_simplify): Propagate also into __asm, if it 25925 doesn't increase the number of referenced registers. 25926 25927 PR c/39889 25928 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR. 25929 259302009-04-26 Jakub Jelinek <jakub@redhat.com> 25931 25932 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call 25933 note_nonlocal_vla_type for nonlocal VLAs. 25934 (note_nonlocal_vla_type, note_nonlocal_block_vlas, 25935 contains_remapped_vars, remap_vla_decls): New functions. 25936 (convert_nonlocal_reference_stmt): If not optimizing, call 25937 note_nonlocal_block_vlas on GIMPLE_BIND block vars. 25938 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified 25939 if it wasn't found in var_map. 25940 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost 25941 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain 25942 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling 25943 declare_vars. 25944 * gimplify.c (nonlocal_vlas): New variable. 25945 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local 25946 referenced VLAs. 25947 (gimplify_body): Create and destroy nonlocal_vlas. 25948 25949 * dwarf2out.c (loc_descr_plus_const): New function. 25950 (build_cfa_aligned_loc, tls_mem_loc_descriptor, 25951 mem_loc_descriptor, loc_descriptor_from_tree_1, 25952 descr_info_loc, gen_variable_die): Use it. 25953 25954 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for 25955 !TREE_STATIC VAR_DECLs. 25956 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle 25957 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs. 25958 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if 25959 DECL_BY_REFERENCE is valid. 25960 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE 25961 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs. 25962 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl): 25963 Copy DECL_BY_REFERENCE. 25964 (struct nesting_copy_body_data): New type. 25965 (nesting_copy_decl): New function. 25966 (finalize_nesting_tree_1): Remap types of debug_var_chain variables, 25967 if they have variable length. 25968 259692009-04-26 Michael Matz <matz@suse.de> 25970 25971 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode, 25972 mark new temporaries for renaming. 25973 259742009-04-26 Joseph Myers <joseph@codesourcery.com> 25975 25976 PR c/39581 25977 * c-decl.c (global_bindings_p): Return negative value. 25978 (c_variable_size): New. Based on variable_size from 25979 stor-layout.c. 25980 (grokdeclarator): Call c_variable_size not variable_size. 25981 259822009-04-26 Uros Bizjak <ubizjak@gmail.com> 25983 25984 * config/i386/i386.c (print_operand) ['z']: Fix typo. 25985 259862009-04-26 Kai Tietz <kai.tietz@onevision.com> 25987 25988 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): 25989 Redefine it to just use mingw/include. 25990 (ASM_SPEC): Rules for -m32 and -m64. 25991 (LINK_SPEC): Use Likewise. 25992 (SPEC_32): New define. 25993 (SPEC_64): Likewise. 25994 (SUB_LINK_SPEC): Likewise. 25995 (MULTILIB_DEFAULTS): New define. 25996 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS): 25997 Add multilib options. 25998 (MULTILIB_DIRNAMES): Likewise. 25999 (MULTILIB_OSDIRNAMES): Likewise. 26000 (LIBGCC): Likewise. 26001 (INSTALL_LIBGCC): Likewise. 26002 260032009-04-26 Joseph Myers <joseph@codesourcery.com> 26004 26005 PR c/39556 26006 * c-tree.h (enum c_inline_static_type): New. 26007 (record_inline_static): Declare. 26008 * c-decl.c (struct c_inline_static, c_inline_statics, 26009 record_inline_static, check_inline_statics): New. 26010 (pop_file_scope): Call check_inline_statics. 26011 (start_decl): Call record_inline_static instead of pedwarning 26012 directly for static in inline function. 26013 * c-typeck.c (build_external_ref): Call record_inline_static 26014 instead of pedwarning directly for static referenced in inline 26015 function. 26016 260172009-04-26 Steven Bosscher <steven@gcc.gnu.org> 26018 26019 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is 26020 not new but only being rescanned. 26021 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set, 26022 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block, 26023 alloc_reg_set_mem, free_reg_set_mem, record_one_set, 26024 record_set_info, compute_set, grealloc): Remove. 26025 (recompute_all_luids): New function. 26026 (gcse_main): Don't compute sets, and don't do related memory 26027 allocations/free-ing. If something changed before the end of the 26028 pass, update LUIDs using recompute_all_luids. 26029 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory. 26030 (free_gcse_mem): Don't free it either. 26031 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info): 26032 Use the df insn LUIDs. 26033 (load_killed_in_block): Likewise. 26034 (compute_hash_table_work): Don't compute reg_set_in_block. 26035 (compute_transp): Use DF_REG_DEF_CHAINs. 26036 (local_cprop_pass): Don't use compute_sets and related functions. 26037 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass): 26038 Use get_max_uid() instead of max_cuid. 26039 (insert_insn_end_basic_block, pre_insert_copy_insn, 26040 update_ld_motion_stores): Don't try to 26041 keep reg_set tables up to date. 26042 (pre_insert_copies): Use df insn LUIDs. 26043 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P. 26044 (reg_set_info): Don't use extra bitmap argument. 26045 (compute_store_table): Don't compute reg_set_in_block. Use DF scan 26046 information to compute regs_set_in_block. 26047 (free_store_memory, store_motion): Don't nullify reg_set_in_block. 26048 (bypass_jumps): Don't use compute_sets and friends. 26049 260502009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 26051 26052 PR testsuite/39710 26053 * opts.c (undocumented_msg): Do not leave blank even with 26054 ENABLE_CHECKING. 26055 260562009-04-25 Joseph Myers <joseph@codesourcery.com> 26057 26058 * c-decl.c (build_enumerator): Allow values folding to integer 26059 constants but not integer constant expressions with a pedwarn if 26060 pedantic. 26061 260622009-04-25 Joseph Myers <joseph@codesourcery.com> 26063 26064 PR c/39582 26065 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR 26066 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length 26067 type is an integer constant. 26068 260692009-04-25 Uros Bizjak <ubizjak@gmail.com> 26070 26071 PR target/39897 26072 * config/i386/i386.c (print_operand) ['z']: Revert handling of 26073 HImode operands. 26074 260752009-04-25 Joseph Myers <joseph@codesourcery.com> 26076 26077 PR c/39564 26078 * c-decl.c (grokdeclarator): Diagnose declarations of functions 26079 with variably modified return type and no storage class 26080 specifiers, except for the case of nested functions. Distinguish 26081 extern declarations of functions with variably modified return 26082 types from those of objects with variably modified types. 26083 260842009-04-25 Jan Hubicka <jh@suse.cz> 26085 26086 * tree.c (list_equal_p): New function. 26087 * tree.h (list_equal_p): Declare. 26088 * coretypes.h (edge_def, edge, const_edge, basic_block_def 26089 basic_block_def, basic_block, const_basic_block): New. 26090 * tree-eh.c (make_eh_edge): EH edges are not abnormal. 26091 (redirect_eh_edge): New function. 26092 (make_eh_edge_update_phi): EH edges are not abnormal. 26093 * except.c: Include tree-flow.h. 26094 (list_match): New function. 26095 (eh_region_replaceable_by_p): New function. 26096 (replace_region): New function. 26097 (hash_type_list): New function. 26098 (hash_eh_region): New function. 26099 (eh_regions_equal_p): New function. 26100 (merge_peers): New function. 26101 (remove_unreachable_regions): Verify EH tree when checking; 26102 merge peers. 26103 (copy_eh_region_1): New function. 26104 (copy_eh_region): New function. 26105 (push_reachable_handler): New function. 26106 (build_post_landing_pads, dw2_build_landing_pads): Be ready for 26107 regions without label but with live RESX. 26108 * except.h (redirect_eh_edge_to_label): New. 26109 * tree-flow.h (redirect_eh_edge): New. 26110 * coretypes.h (edge_def, edge, const_edge, basic_block_def 26111 basic_block_def, basic_block, const_basic_block): Remove. 26112 * Makefile.in (except.o): Add dependency on tree-flow.h 26113 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges. 26114 * basic-block.h (edge, const_edge, basic_block, const_basic_block): 26115 Remove. 26116 261172009-04-25 Eric Botcazou <ebotcazou@adacore.com> 26118 26119 PR bootstrap/39645 26120 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE 26121 on the destination of memcpy. 26122 261232009-04-25 Paolo Bonzini <bonzini@gnu.org> 26124 26125 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P, 26126 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P, 26127 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference. 26128 261292009-04-25 Jan Hubicka <jh@suse.cz> 26130 26131 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels. 26132 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region 26133 to be reached by different label than left. 26134 (update_eh_edges): Update comment; remove edge_to_remove if possible 26135 and return true if suceeded. 26136 (cleanup_empty_eh): Accept sharing map; handle shared regions. 26137 (cleanup_eh): Compute sharing map. 26138 * except.c (remove_eh_handler_and_replace): Add argument if we should 26139 update regions. 26140 (remove_unreachable_regions): Update for label sharing. 26141 (label_to_region_map): Likewise. 26142 (get_next_region_sharing_label): New function. 26143 (remove_eh_handler_and_replace): Add update_catch_try parameter; update 26144 prev_try pointers. 26145 (remove_eh_handler): Update. 26146 (remove_eh_region_and_replace_by_outer_of): New function. 26147 * except.h (struct eh_region): Add next_region_sharing_label. 26148 (remove_eh_region_and_replace_by_outer_of, 26149 get_next_region_sharing_label): Declare. 26150 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify. 26151 261522009-04-25 Jan Hubicka <jh@suse.cz> 26153 26154 * tree-cfg.c (split_critical_edges): Split also edges where we can't 26155 insert code even if they are not critical. 26156 261572009-04-25 Jan Hubicka <jh@suse.cz> 26158 26159 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable. 26160 (gimple_can_remove_branch_p): EH edges won't remove branch by 26161 redirection. 26162 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle 26163 updating of non-abnormal EH edges. 26164 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable. 26165 (gimple_can_remove_branch_p): EH edges are unremovable by redirection. 26166 (split_critical_edges): Split also edges where emitting code on them 26167 will lead to splitting later. 26168 261692009-04-25 Uros Bizjak <ubizjak@gmail.com> 26170 H.J. Lu <hongjiu.lu@intel.com> 26171 26172 PR target/39590 26173 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether 26174 the configured assembler supports fildq and fistpq mnemonics. 26175 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS. 26176 * configure: Regenerated. 26177 * config.in: Ditto. 26178 26179 * config/i386/i386.c (print_operand): Handle 'Z'. 26180 ['z']: Remove handling of special fild/fist suffixes. 26181 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn. 26182 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output 26183 suffix of fild insn. 26184 (*floatsi<mode>2_vector_mixed): Ditto. 26185 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto. 26186 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto. 26187 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto. 26188 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto. 26189 * config/i386/gas.h (GAS_MNEMONICS): Remove. 26190 261912009-04-25 Ben Elliston <bje@au.ibm.com> 26192 26193 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as 26194 the source of a set operation. 26195 261962009-04-25 Anatoly Sokolov <aesok@post.ru> 26197 26198 * target.h (struct gcc_target): Add case_values_threshold field. 26199 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New. 26200 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD. 26201 * targhooks.c (default_case_values_threshold): New function. 26202 * targhooks.h (default_case_values_threshold): Declare function. 26203 * stmt.c (expand_case): Use case_values_threshold target hook. 26204 * expr.h (case_values_threshold): Remove declartation. 26205 * expr.c (case_values_threshold): Remove function. 26206 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation. 26207 26208 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro. 26209 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro. 26210 (avr_case_values_threshold): Declare as static. 26211 * config/avr/avr-protos.h (avr_case_values_threshold): Remove. 26212 26213 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro. 26214 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro. 26215 (mn10300_case_values_threshold): New function. 26216 262172009-04-24 H.J. Lu <hongjiu.lu@intel.com> 26218 26219 * ira.c (setup_cover_and_important_classes): Add enum cast. 26220 262212009-04-24 Vladimir Makarov <vmakarov@redhat.com> 26222 26223 * genpreds.c (write_enum_constraint_num): Output definition of 26224 CONSTRAINT_NUM_DEFINED_P macro. 26225 * ira.c (setup_cover_and_important_classes): Use 26226 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef. 26227 262282009-04-24 DJ Delorie <dj@redhat.com> 26229 26230 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test 26231 __SH2A_SINGLE_ONLY__ also. 26232 262332009-04-24 Steve Ellcey <sje@cup.hp.com> 26234 26235 * config/ia64/ia64.md (movfs_internal): Allow flt constants. 26236 (movdf_internal): Ditto. 26237 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow 26238 SFmode and DFmode constants. 26239 (ia64_print_operand): Add 'G' format for printing 26240 floating point constants. 26241 262422009-04-24 Richard Guenther <rguenther@suse.de> 26243 26244 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow 26245 from unsigned additions. 26246 262472009-04-24 Joseph Myers <joseph@codesourcery.com> 26248 26249 * c-typeck.c (set_init_index): Allow array designators that are 26250 not integer constant expressions with a pedwarn if pedantic. 26251 262522009-04-24 Bernd Schmidt <bernd.schmidt@analog.com> 26253 26254 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is 26255 zero if no overlap in nonzero bits between the operands. 26256 262572009-04-24 Ian Lance Taylor <iant@google.com> 26258 26259 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice. 26260 (record_dead_and_set_regs): Likewise. 26261 * df.h (struct df_mw_hardreg): Change flags field to int. 26262 (struct df_base_ref): Likewise. 26263 (struct df): Change changeable_flags field to int. 26264 * df-scan.c (df_defs_record): Change clobber_flags to int. 26265 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum 26266 constants rather than #define macros. 26267 (enum dwarf_attribute, enum dwarf_location_atom): Likewise. 26268 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise. 26269 (enum dwarf_calling_convention): Likewise. 26270 (enum dwarf_line_number_x_ops): Likewise. 26271 (enum dwarf_call_frame_info): Likewise. 26272 (enum dwarf_source_language): Likewise. 26273 * dwarf2out.c (int_loc_descriptor): Add cast to enum type. 26274 (add_calling_convention_attribute): Likewise. 26275 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type. 26276 (combine_comparisons): Change compcode to int. Add cast to enum type. 26277 * genrecog.c (maybe_both_true_2): Change c to int. 26278 (write_switch): Likewise. Add cast to enum type. 26279 * gimplify.c (gimplify_omp_for): Handle return values from 26280 gimplify_expr using MIN rather than bitwise or. 26281 (gimplify_expr): Add cast to enum type. 26282 * ipa-prop.c (update_jump_functions_after_inlining): Change 26283 IPA_BOTTOM to IPA_JF_UNKNOWN. 26284 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int. 26285 Add casts to enum type. 26286 (setup_cover_and_important_classes): Change cl to int. Add casts 26287 to enum type. 26288 (setup_class_translate): Change cl and mode to int. 26289 (ira_init_once): Change mode to int. 26290 (free_register_move_costs): Likewise. 26291 (setup_prohibited_mode_move_regs): Add casts to enum type. 26292 * langhooks.c (add_builtin_function_common): Rework assertion that 26293 value fits bitfield. 26294 * mcf.c (add_fixup_edge): Change type parameter to edge_type. 26295 * omega.c (omega_do_elimination): Avoid math on enum types. 26296 * optabs.c (expand_vec_shift_expr): Remove casts to int. 26297 * opts.c (set_debug_level): Change 2 to enum constant. Use new 26298 int local to handle integral_argment value. 26299 * regmove.c (try_auto_increment): Change PUT_MODE to 26300 PUT_REG_NOTE_KIND. 26301 * reload.c (push_secondary_reload): Add casts to enum type. 26302 (secondary_reload_class, find_valid_class): Likewise. 26303 * reload1.c (emit_input_reload_insns): Likewise. 26304 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise. 26305 * sel-sched.c (init_hard_regs_data): Change cur_mode to int. 26306 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum 26307 constant. 26308 * tree.c (build_common_builtin_nodes): Add casts to enum type. 26309 * tree-complex.c (complex_lattice_t): Typedef to int rather than 26310 enum type. 26311 (expand_complex_libcall): Add casts to enum type. 26312 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant. 26313 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code 26314 with ERROR_MARK, not NUM_TREE_CODES. 26315 (vect_create_epilog_for_reduction): Likewise. 26316 (vectorizable_reduction): Don't initialize epiloc_reduc_code. 26317 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES. 26318 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to 26319 enum machine_mode. 26320 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to 26321 vect_unused_in_loop. Change 0 to loop_vect. 26322 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type. 26323 * var-tracking.c (get_init_value): Change return type to enum 26324 var_init_status. 26325 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T. 26326 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum 26327 arm_fp_model. 26328 (arm_override_options): Add casts to enum type. 26329 (arm_emit_tls_decoration): Likewise. 26330 * config/i386/i386.c (ix86_function_specific_restore): Add casts 26331 to enum type. 26332 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise. 26333 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int. 26334 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to 26335 enum type. 26336 * config/s390/s390.c (code_for_builtin_64): Change to array of 26337 enum insn_code. 26338 (code_for_builtin_31): Likewise. 26339 (s390_expand_builtin): Change code_for_builtin to enum insn_code 26340 const *. 26341 * config/sparc/sparc.c (sparc_override_options): Change value 26342 field in struct code_model to enum cmodel. In initializer change 26343 0 to NULL and add cast to enum type. 26344 26345 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter. 26346 Change all callers. Issue a -Wc++-compat warning using 26347 lhs_origtype if necessary. 26348 (convert_for_assignment): Issue -Wc++-compat warnings about 26349 invalid conversions to enum type on assignment. 26350 * c-common.h (build_modify_expr): Update declaration. 26351 263522009-04-24 Nick Clifton <nickc@redhat.com> 26353 26354 * config/iq2000/iq2000.c (function_arg): Handle TImode values. 26355 (function_arg_advance): Likewise. 26356 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the 26357 5th alternative. 26358 263592009-04-24 Andreas Krebbel <krebbel1@de.ibm.com> 26360 26361 * config/s390/constraints.md ('I', 'J'): Fix condition. 26362 263632009-04-24 Diego Novillo <dnovillo@google.com> 26364 26365 * gengtype-parse.c (parse_error): Add newline after message. 26366 263672009-04-24 H.J. Lu <hongjiu.lu@intel.com> 26368 26369 * config/i386/sse.md (avxmodesuffixs): Removed. 26370 (*avx_pinsr<avxmodesuffixs>): Renamed to ... 26371 (*avx_pinsr<ssevecsize>): This. 26372 263732009-04-24 Bernd Schmidt <bernd.schmidt@analog.com> 26374 26375 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes; 26376 follow chains of regs with a single definition, and allow expressions 26377 that are function_invariant_p. 26378 (simple_rhs_p): Allow expressions that are function_invariant_p. 26379 263802009-04-24 Paolo Bonzini <bonzini@gnu.org> 26381 26382 PR middle-end/39867 26383 * fold-const.c (fold_cond_expr_with_comparison): When folding 26384 > and >= to MAX, make sure the MAX uses the same type as the 26385 comparison's operands. 26386 263872009-04-24 Nick Clifton <nickc@redhat.com> 26388 26389 * config/frv/frv.c (frv_frame_access): Do not use reg+reg 26390 addressing for DImode accesses. 26391 (frv_print_operand_address): Handle PLUS case. 26392 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed. 26393 263942009-04-24 Jakub Jelinek <jakub@redhat.com> 26395 26396 PR rtl-optimization/39794 26397 * alias.c (canon_true_dependence): Add x_addr argument. 26398 * rtl.h (canon_true_dependence): Adjust prototype. 26399 * cse.c (check_dependence): Adjust canon_true_dependence callers. 26400 * cselib.c (cselib_invalidate_mem): Likewise. 26401 * gcse.c (compute_transp): Likewise. 26402 * dse.c (scan_reads_nospill): Likewise. 26403 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame 26404 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses 26405 canon_base_addr of the group, plus optional offset. 26406 (struct group_info): Rename canon_base_mem to 26407 canon_base_addr. 26408 (get_group_info): Set canon_base_addr to canon_rtx of base, not 26409 canon_rtx of base_mem. 26410 264112009-04-23 Paolo Bonzini <bonzini@gnu.org> 26412 26413 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue): 26414 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS. 26415 264162009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 26417 26418 * config/spu/spu-builtins.h: Delete file. 26419 26420 * config/spu/spu.h (enum spu_builtin_type): Move here from 26421 spu-builtins.h. 26422 (struct spu_builtin_description): Likewise. Add GTY marker. 26423 Do not use enum spu_function_code or enum insn_code. 26424 (spu_builtins): Add extern declaration. 26425 26426 * config/spu/spu.c: Do not include "spu-builtins.h". 26427 (enum spu_function_code, enum spu_builtin_type_index, 26428 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node, 26429 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node, 26430 unsigned_V8HI_type_node, unsigned_V4SI_type_node, 26431 unsigned_V2DI_type_node): Move here from spu-builtins.h. 26432 (spu_builtin_types): Make static. Add GTY marker. 26433 (spu_builtins): Add extern declaration with GTY marker. 26434 Include "gt-spu.h". 26435 26436 * config/spu/spu-c.c: Do not include "spu-builtins.h". 26437 (spu_resolve_overloaded_builtin): Do not use spu_function_code. 26438 Check programmatically whether all parameters are scalar. 26439 26440 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies. 26441 264422009-04-23 Eric Botcazou <ebotcazou@adacore.com> 26443 26444 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct 26445 assignment from the constructor either if the target is volatile. 26446 264472009-04-23 Daniel Jacobowitz <dan@codesourcery.com> 26448 26449 * config/arm/arm.md (insv): Do not share operands[0]. 26450 264512009-04-23 Nathan Sidwell <nathan@codesourcery.com> 26452 26453 * config/vxlib-tls.c (active_tls_threads): Delete. 26454 (delete_hook_installed): New. 26455 (tls_delete_hook): Don't delete the delete hook. 26456 (tls_destructor): Delete it here. 26457 (__gthread_set_specific): Adjust installing the delete hook. 26458 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and 26459 __gthread_leave_tsd_dtor_context. 26460 264612009-04-23 Rafael Avila de Espindola <espindola@google.com> 26462 26463 * c-format.c (gcc_tdiag_char_table): Add support for %E. 26464 264652009-04-23 Uros Bizjak <ubizjak@gmail.com> 26466 26467 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to 26468 enum type. 26469 (alpha_rtx_costs): Ditto. 26470 (emit_unlikely_jump): Use add_reg_note. 26471 (emit_frame_store_1): Ditto. 26472 (alpha_expand_prologue): Ditto. 26473 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call. 26474 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note. 26475 264762009-04-23 Nick Clifton <nickc@redhat.com> 26477 26478 * config/v850/v850.md (epilogue): Remove suppressed code. 26479 (return): Rename to return_simple and remove test of frame size. 26480 * config/v850/v850.c (expand_epilogue): Rename call to gen_return 26481 to gen_return_simple. 26482 264832009-04-22 Jing Yu <jingyu@google.com> 26484 26485 PR testsuite/39781 26486 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP. 26487 264882009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com> 26489 26490 PR C/31499 26491 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE 26492 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the 26493 value is a VECTOR_CST, the element type is the element type of the 26494 vector. 26495 264962009-04-22 DJ Delorie <dj@redhat.com> 26497 26498 * config/m32c/m32c.h: Update GTY annotations to new syntax. 26499 265002009-04-22 Jakub Jelinek <jakub@redhat.com> 26501 26502 * alias.c (find_base_term): Move around LO_SUM case, so that 26503 CONST falls through into PLUS/MINUS handling. 26504 26505 PR c/39855 26506 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing 26507 into 0, use omit_one_operand. 26508 265092009-04-23 Ben Elliston <bje@au.ibm.com> 26510 26511 * config/rs6000/linux-unwind.h (get_regs): Remove type 26512 puns. Change the type of `pc' to an array of unsigned ints and 26513 update all users. Constify frame24. 26514 265152009-04-22 DJ Delorie <dj@redhat.com> 26516 26517 * config/m32c/m32c.c (m32c_special_page_vector_p): Move 26518 declarations before code. 26519 (current_function_special_page_vector): Likewise. 26520 (m32c_expand_insv): Silence a warning. 26521 265222009-04-21 Taras Glek <tglek@mozilla.com> 26523 26524 * alias.c: Update GTY annotations to new syntax. 26525 * basic-block.h: Likewise. 26526 * bitmap.h: Likewise. 26527 * c-common.h: Likewise. 26528 * c-decl.c: Likewise. 26529 * c-parser.c: Likewise. 26530 * c-pragma.c: Likewise. 26531 * c-tree.h: Likewise. 26532 * cfgloop.h: Likewise. 26533 * cgraph.h: Likewise. 26534 * config/alpha/alpha.c: Likewise. 26535 * config/arm/arm.h: Likewise. 26536 * config/avr/avr.h: Likewise. 26537 * config/bfin/bfin.c: Likewise. 26538 * config/cris/cris.c: Likewise. 26539 * config/darwin.c: Likewise. 26540 * config/frv/frv.c: Likewise. 26541 * config/i386/i386.c: Likewise. 26542 * config/i386/i386.h: Likewise. 26543 * config/i386/winnt.c: Likewise. 26544 * config/ia64/ia64.h: Likewise. 26545 * config/iq2000/iq2000.c: Likewise. 26546 * config/mips/mips.c: Likewise. 26547 * config/mmix/mmix.h: Likewise. 26548 * config/pa/pa.c: Likewise. 26549 * config/pa/pa.h: Likewise. 26550 * config/rs6000/rs6000.c: Likewise. 26551 * config/s390/s390.c: Likewise. 26552 * config/sparc/sparc.c: Likewise. 26553 * config/xtensa/xtensa.c: Likewise. 26554 * cselib.h: Likewise. 26555 * dbxout.c: Likewise. 26556 * dwarf2out.c: Likewise. 26557 * except.c: Likewise. 26558 * except.h: Likewise. 26559 * fixed-value.h: Likewise. 26560 * function.c: Likewise. 26561 * function.h: Likewise. 26562 * gimple.h: Likewise. 26563 * integrate.c: Likewise. 26564 * optabs.c: Likewise. 26565 * output.h: Likewise. 26566 * real.h: Likewise. 26567 * rtl.h: Likewise. 26568 * stringpool.c: Likewise. 26569 * tree-data-ref.c: Likewise. 26570 * tree-flow.h: Likewise. 26571 * tree-scalar-evolution.c: Likewise. 26572 * tree-ssa-address.c: Likewise. 26573 * tree-ssa-alias.h: Likewise. 26574 * tree-ssa-operands.h: Likewise. 26575 * tree.c: Likewise. 26576 * tree.h: Likewise. 26577 * varasm.c: Likewise. 26578 * varray.h: Likewise. 26579 * vec.h: Likewise. 26580 * coretypes.h: Do not define GTY macro if it is already defined. 26581 * doc/gty.texi: Update GTY documentation to new syntax. 26582 * gengtype-lex.l: Enforce attribute-like syntax for GTY 26583 annotations on structs. 26584 * gengtype-parse.c: Likewise. 26585 265862009-04-22 Mark Heffernan <meheff@google.com> 26587 26588 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=. 26589 265902009-04-22 Kazu Hirata <kazu@codesourcery.com> 26591 26592 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand 26593 where appropriate. 26594 265952009-04-22 Kazu Hirata <kazu@codesourcery.com> 26596 26597 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift 26598 the same as a PLUS without a shift. Increase the cost of a 26599 CONST_INT in MULT. 26600 266012009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26602 26603 * Makefile.in: Update dependencies. 26604 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'. 26605 * errors.h: Remove bogus comment about compatibility. 26606 (warning): Update declaration. 26607 * genautomata.c: Update all calls to warning. 26608 * gimple.c: Do not include errors.h. Include toplev.h. 26609 * tree-ssa-structalias.c: Do not include errors.h. 26610 * omega.c: Likewise. 26611 * tree-ssa-reassoc.c: Likewise. 26612 * config/spu/spu-c.c: Likewise. 26613 * config/spu/t-spu-elf: Update dependencies. 26614 266152009-04-22 Richard Guenther <rguenther@suse.de> 26616 26617 PR tree-optimization/39824 26618 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs 26619 make sure the types are compatible. 26620 266212009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26622 26623 PR c++/14875 26624 * c-common.c (c_parse_error): Take a token_flags parameter. 26625 Use token_type for the token type instead. 26626 Pass token_flags to cpp_type2name. 26627 * c-common.h (c_parse_error): Update declaration. 26628 * c-parser.c (c_parser_error): Pass 0 as token flags. 26629 266302009-04-22 Andrey Belevantsev <abel@ispras.ru> 26631 26632 PR rtl-optimization/39580 26633 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 26634 266352009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 26636 26637 * function.c (expand_function_end): Do not emit a jump to the "naked" 26638 return label for fall-through returns. 26639 * except.c (sjlj_emit_function_exit): Always place the call to the 26640 unregister function at the location installed by expand_function_end. 26641 266422009-04-22 Richard Guenther <rguenther@suse.de> 26643 26644 PR tree-optimization/39845 26645 * tree-switch-conversion.c (build_arrays): Add new referenced vars. 26646 (gen_inbound_check): Likewise. 26647 266482009-04-22 Nathan Sidwell <nathan@codesourcery.com> 26649 26650 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and 26651 padding for PPC. 26652 (__GTHREAD_ONCE_INIT): Adjust ppc initializer. 26653 * config/vxlib.c (__gthread_once): Add race guard for PPC. 26654 266552009-04-22 Paolo Bonzini <bonzini@gnu.org> 26656 26657 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op, 26658 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate 26659 shift counts to avoid out-of-bounds array accesses. 26660 266612009-04-22 Paolo Bonzini <bonzini@gnu.org> 26662 26663 * config/sparc/sparc.h (POINTER_SIZE): Fix comment. 26664 (Pmode): Move above. 26665 266662009-04-22 Uros Bizjak <ubizjak@gmail.com> 26667 26668 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P, 26669 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of 26670 GET_CODE macro. Use IN_RANGE macro where appropriate. 26671 * config/alpha/alpha.h: Ditto. 26672 * config/alpha/alpha.md: Ditto. 26673 * config/alpha/constraints.md: Ditto. 26674 * config/alpha/predicates.md: Ditto. 26675 266762009-04-22 Paolo Bonzini <bonzini@gnu.org> 26677 26678 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default. 26679 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26680 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26681 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26682 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26683 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26684 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26685 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26686 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26687 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26688 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26689 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26690 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26691 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26692 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26693 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26694 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26695 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26696 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26697 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26698 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26699 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26700 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26701 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26702 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26703 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26704 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26705 267062009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com> 26707 26708 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks 26709 references from comments. 26710 * cfgbuild.c (count_basic_blocks): Delete. 26711 (find_basic_blocks_1): Delete. 26712 (find_basic_blocks): Delete. 26713 * except.c (finish_eh_generation): Make static. Move comment from 26714 except.h here. Remove find_basic_blocks references from comments. 26715 * except.h (finish_eh_generation): Delete. 26716 * basic-block.h (find_basic_blocks): Delete. 26717 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block. 26718 267192009-04-22 Dave Korn <dave.korn.cygwin@gmail.com> 26720 26721 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs. 26722 (sdbout_parms): Likewise. 26723 267242009-04-21 Kaz Kojima <kkojima@gcc.gnu.org> 26725 26726 * config/sh/sh.c (prepare_cbranch_operands): Use 26727 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing. 26728 (expand_cbranchdi4): Likewise. 26729 (from_compare): Add cast to enum type. 26730 (expand_cbranchsi4): Use add_reg_note. 26731 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise. 26732 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu. 26733 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call. 26734 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call. 26735 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE 26736 instead of CODE_FOR_nothing. 26737 (cbranchdi4): Likewise. Fix the order of arguments for 26738 gen_rtx_fmt_ee. 26739 (push_fpscr): Use add_reg_note. 26740 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4, 26741 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise. 26742 267432009-04-21 Joseph Myers <joseph@codesourcery.com> 26744 26745 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998, 26746 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, 26747 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, 26748 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib, 26749 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog, 26750 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4, 26751 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver, 26752 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h, 26753 config/alpha/x-vms, config/arc/t-arc, 26754 config/arm/README-interworking, config/arm/arm-c.c, 26755 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver, 26756 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp, 26757 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi, 26758 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf, 26759 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe, 26760 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver, 26761 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf, 26762 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux, 26763 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris, 26764 config/cris/t-elfmulti, config/crx/t-crx, 26765 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def, 26766 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver, 26767 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh, 26768 config/h8300/t-h8300, config/i386/athlon.md, 26769 config/i386/darwin-libgcc.10.4.ver, 26770 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver, 26771 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc, 26772 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386, 26773 config/i386/t-linux64, config/i386/t-nwld, 26774 config/i386/t-rtems-i386, config/i386/t-sol2-10, 26775 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h, 26776 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver, 26777 config/ia64/libgcc-ia64.ver, config/ia64/linux.h, 26778 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64, 26779 config/iq2000/abi, config/iq2000/lib2extra-funcs.c, 26780 config/iq2000/t-iq2000, config/libgcc-glibc.ver, 26781 config/m32r/libgcc-glibc.ver, config/m32r/t-linux, 26782 config/m32r/t-m32r, config/m68hc11/t-m68hc11, 26783 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs, 26784 config/m68k/t-uclinux, config/mcore/t-mcore, 26785 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md, 26786 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm, 26787 config/mips/crtn.asm, config/mips/irix-crti.asm, 26788 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver, 26789 config/mips/mips-dsp.md, config/mips/mips-dspr2.md, 26790 config/mips/mips-fixed.md, config/mips/sb1.md, 26791 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast, 26792 config/mips/t-iris6, config/mips/t-isa3264, 26793 config/mips/t-libgcc-mips16, config/mips/t-linux64, 26794 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems, 26795 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk, 26796 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st, 26797 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix, 26798 config/mn10300/t-linux, config/mn10300/t-mn10300, 26799 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux, 26800 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11, 26801 config/picochip/libgccExtras/clzsi2.asm, 26802 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format, 26803 config/rs6000/darwin-libgcc.10.4.ver, 26804 config/rs6000/darwin-libgcc.10.5.ver, 26805 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h, 26806 config/rs6000/t-aix43, config/rs6000/t-aix52, 26807 config/rs6000/t-darwin, config/rs6000/t-fprules, 26808 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64, 26809 config/rs6000/t-lynx, config/rs6000/t-netbsd, 26810 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian, 26811 config/rs6000/t-ppcgas, config/rs6000/t-rs6000, 26812 config/rs6000/t-rtems, config/rs6000/t-spe, 26813 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver, 26814 config/score/t-score-elf, config/sh/divcost-analysis, 26815 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh, 26816 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian, 26817 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h, 26818 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h, 26819 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2, 26820 config/stormy16/stormy-abi, config/stormy16/t-stormy16, 26821 config/t-darwin, config/t-libunwind, config/t-libunwind-elf, 26822 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver, 26823 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks, 26824 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850, 26825 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def, 26826 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog, 26827 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver, 26828 limitx.h, version.c, xcoff.h: Add copyright and license notices. 26829 * config/h8300/genmova.sh: Include copyright and license notices 26830 in generated output. 26831 * config/h8300/mova.md: Regenerate. 26832 * doc/install.texi2html: Include word "Copyright" in copyright 26833 notice and use name "Free Software Foundation, Inc.". 26834 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, 26835 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, 26836 ChangeLog-2007, ChangeLog-2008: Correct dates. 26837 268382009-04-21 Eric Botcazou <ebotcazou@adacore.com> 26839 26840 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build 26841 NE_EXPR operations as well. 26842 * c-parser.c (c_parser_condition): Do not set location information on 26843 the condition. 26844 (c_parser_conditional_expression): Likewise. 26845 (c_parser_binary_expression): Set location information on operators. 26846 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if 26847 TRUTH_NOT_EXPR has been folded. 26848 * fold-const.c (fold_truth_not_expr): Copy location information from 26849 the incoming expression to the outgoing one. 26850 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to 26851 recursive calls on the LHS of the operator but pass that of the 26852 operator to recursive calls on the RHS of the operator. Set it 26853 on the COND_EXPR. 26854 (shortcut_cond_expr): Set the locus of the operator on the second 26855 COND_EXPR and that of the expression on the first in degenerate cases. 26856 Pass the locus of the expression to calls to shortcut_cond_r. 26857 Set the locus of the 'then' block on the associated jump, if any. 26858 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR. 26859 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer 26860 expression to call to gimplify_boolean_expr. 26861 268622009-04-21 Kai Tietz <kai.tietz@onevision.com> 26863 26864 * config.gcc: Add additional configuration for 26865 i686-w64-mingw* and x86_64-w64-mingw* triplet. 26866 * config/i386/mingw-w64.h: New mingw-w64 specific header. 26867 (CPP_SPEC): Redefine for allowing -municode option. 26868 (STARTFILE_SPEC): Likewise. 26869 * config/i386/t-mingw-w64: New. 26870 * config/i386/mingw-w64.opt: New. 26871 (municode): Add new target option. 26872 * doc/invoke.texi (municode): Add documentation for new option. 26873 268742009-04-21 Ian Lance Taylor <iant@google.com> 26875 26876 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 26877 Correct test for number of arguments. 26878 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise. 26879 268802009-04-21 Andreas Schwab <schwab@linux-m68k.org> 26881 26882 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second 26883 argument of emit_library_call. 26884 268852009-04-21 Richard Guenther <rguenther@suse.de> 26886 26887 PR middle-end/39829 26888 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses 26889 inside VIEW_CONVERT_EXPRs. 26890 268912009-04-21 Martin Jambor <mjambor@suse.cz> 26892 26893 * tree-switch-conversion.c (build_constructors): Split a long line. 26894 (constructor_contains_same_values_p): New function. 26895 (build_one_array): Create assigns of constants if possible, do not 26896 call mark_sym_for_renaming, call update_stmt. 26897 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of 26898 make_rename_temp. Do not call mark_symbols_for_renaming, call 26899 update_stmt. 26900 (gen_def_assigns): Do not call mark_symbols_for_renaming or 26901 find_new_referenced_vars, call update_stmt. 26902 (gen_inbound_check): Use create_tmp_var and create ssa names manually 26903 instead of calling make_rename_temp. Do not call 26904 find_new_referenced_vars or mark_symbols_for_renaming, call 26905 update_stmt. 26906 269072009-04-21 Richard Guenther <rguenther@suse.de> 26908 26909 PR tree-optimization/39827 26910 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range. 26911 (tree_ssa_phiprop): Pass the correct array size. 26912 269132009-04-21 Uros Bizjak <ubizjak@gmail.com> 26914 26915 * config/alpha/alpha.md (tune): Add cast to enum attr_tune. 26916 269172009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org> 26918 26919 PR 16202 26920 * c-typeck.c (lvalue_p): Move declaration ... 26921 * c-common.h (lvalue_p): ... to here. 26922 * c-common.c (candidate_equal_p): New. 26923 (add_tlist): Use it. 26924 (merge_tlist): Use it. 26925 (warn_for_collisions_1): Likewise. 26926 (warning_candidate_p): Accept more candidates. 26927 (verify_tree): A warning candidate can be an expression. Use 26928 candidate_equal_p. 26929 269302009-04-21 Ben Elliston <bje@au.ibm.com> 26931 26932 PR target/5267 26933 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation 26934 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd 26935 options. Remove -mcall-solaris documentation. 26936 269372009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26938 26939 PR c++/13358 26940 * doc/invoke.texi (-Wlong-long): Update description. 26941 * c-lex (interpret_integer): Only warn if there was no previous 26942 overflow and -Wlong-long is enabled. 26943 * c-decl.c (declspecs_add_type): Drop redundant flags. 26944 * c.opt (Wlong-long): Init to -1. 26945 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long 26946 and front-end warn_long_long. Wlong-long only depends on other 26947 flags if it is uninitialized. 26948 * c-parser.c (disable_extension_diagnostics): warn_long_long is 26949 the same for CPP and FE. 26950 (restore_extension_diagnostics): Likewise. 26951 269522009-04-20 Ian Lance Taylor <iant@google.com> 26953 26954 Fix enum conversions which are invalid in C++: 26955 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call. 26956 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call. 26957 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call. 26958 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type. 26959 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call. 26960 (dbxout_parms): Likewise. 26961 * df-core.c (df_set_flags): Change changeable_flags parameter to int. 26962 (df_clear_flags): Likewise. 26963 * df-problems.c (df_rd_bb_local_compute_process_def): Change 26964 top_flag parameter to int. 26965 (df_chain_create_bb_process_use): Likewise. 26966 (df_chain_add_problem): Change chain_flags parameter to unsigned int. 26967 Remove cast. 26968 * df-scan.c (df_ref_create): Change ref_flags parameter to int. 26969 (df_ref_create_structure, df_def_record_1): Likewise. 26970 (df_defs_record, df_uses_record, df_get_call_refs): Likewise. 26971 (df_notes_rescan): Change 0 to VOIDmode in function call. 26972 (df_get_call_refs, df_insn_refs_collect): Likewise. 26973 (df_bb_regs_collect): Likewise. 26974 (df_entry_block_defs_collect): Likewise. 26975 (df_exit_block_uses_collect): Likewise. 26976 * df.h: Update declarations. 26977 * double-int.c (double_int_divmod): Add cast to enum type. 26978 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode. 26979 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type. 26980 (based_loc_descr): Likewise. 26981 (loc_descriptor_from_tree_1): Change first_op and second_op to 26982 enum dwarf_location_atom. Add cast to enum type. 26983 * expmed.c (init_expmed): Change 0 to SET in function call. 26984 * expr.c (init_expr_target): Change 0 to VOIDmode in function call. 26985 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call. 26986 (do_store_flag): Likewise. 26987 * fixed-value.h (struct fixed_value): Change mode to enum 26988 machine_mode. 26989 * function.c (assign_parms): Change 0 to VOIDmode in function call. 26990 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in 26991 function call. 26992 (insert_insn_decl, insert_decl, insert_state): Likewise. 26993 (automata_list_finish): Likewise. 26994 * genrecog.c (process_define_predicate): Add cast to enum type. 26995 * gensupport.c (init_predicate_table): Add cast to enum type. 26996 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in 26997 function call. 26998 (gimple_build_call_1, gimple_build_label): Likewise. 26999 (gimple_build_goto, gimple_build_asm_1): Likewise. 27000 (gimple_build_switch_1, gimple_build_cdt): Likewise. 27001 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call. 27002 (enum fallback): Rename from enum fallback_t. 27003 (fallback_t): Typedef as int. 27004 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to 27005 GSI_SAME_STMT in function call. 27006 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to 27007 enum type. 27008 (setup_reg_class_relations): Likewise. 27009 (setup_reg_class_nregs): Change cl to int. Add casts to enum type. 27010 (setup_prohibited_class_mode_regs): Add cast to enum type. 27011 (setup_prohibited_mode_move_regs): Likewise. 27012 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class. 27013 (record_address_regs): Change i to enum reg_class. 27014 * lists.c (alloc_EXPR_LIST): Add cast to enum type. 27015 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class. 27016 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode. 27017 (GET_MODE_2XWIDER_MODE): Likewise. 27018 (GET_CLASS_NARROWEST_MODE): Likewise. 27019 * omp-low.c (expand_omp_for): Add cast to enum type. 27020 * optabs.c (debug_optab_libfuncs): Add casts to enum type. 27021 * opts.c (enable_warning_as_error): Change kind to diagostic_t. 27022 * postreload.c (reload_cse_simplify_operands): Change rclass local 27023 to enum reg_class. 27024 * predict.c (combine_predictions_for_insn): Change best_predictor 27025 and predictor to enum br_predictor. 27026 (combine_predictions_for_bb): Likewise. 27027 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to 27028 use SET_PREDICT_EXPR_OUTCOME. 27029 * real.c (real_arithmetic): Change icode to code in function call. 27030 * reginfo.c (init_move_cost): Add casts to enum type. 27031 (init_reg_sets_1, init_fake_stack_mems): Likewise. 27032 * regmove.c (regclass_compatible_p): Change class0 and class1 to 27033 enum reg_class. 27034 * reload.c (find_valid_class): Add casts to enum type. 27035 (push_reload): Change 0 to NO_REGS in function call. 27036 (find_reloads): Change this_alternative to array of enum 27037 reg_class. Remove some now-unnecessary casts. 27038 (make_memloc): Change 0 to VOIDmode in function call. 27039 * reload1.c (reload): Change 0 to VOIDmode in function call. 27040 (eliminate_regs_1, elimination_effects): Likewise. 27041 (eliminate_regs_in_insn): Likewise. 27042 (emit_input_reload_insns): Add cast to enum type. 27043 (delete_output_reload): Change 0 to VOIDmode in function call. 27044 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects 27045 to enum type in function call. 27046 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type. 27047 (SET_PREDICT_EXPR_OUTCOME): Define. 27048 * tree-dump.c (get_dump_file_info): Change phase parameter to int. 27049 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise. 27050 (dump_initialized_p, dump_flag_name, dump_end): Likewise. 27051 (dump_function): Likewise. 27052 * tree-dump.h: Update declarations. 27053 * tree-pass.h: Update declarations. 27054 * varasm.c (assemble_integer): Change mclass to enum mode_class. 27055 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to 27056 enum type. 27057 (arm_rtx_costs_1): Correct parenthesization. 27058 (arm_rtx_costs): Add casts to enum type. 27059 (adjacent_mem_locations): Reverse arguments to const_ok_for_op. 27060 (vfp_emit_fstmd): Use add_rg_note. 27061 (emit_multi_reg_push, emit_sfm): Likewise. 27062 (thumb_set_frame_pointer): Likewise. 27063 (arm_expand_prologue): Likewise. 27064 (arm_regno_class): Change return type to enum reg_class. 27065 (thumb1_expand_prologue): Use add_reg_note. 27066 * config/arm/arm-protos.h (arm_regno_class): Update declaration. 27067 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL 27068 in function call. 27069 * config/arm/gentune.sh: Add cast to enum type. 27070 * config/arm/arm-tune.md: Rebuild. 27071 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note. 27072 (ix86_split_fp_branch, predict_jump): Likewise. 27073 (ix86_expand_multi_arg_builtin): Change sub_code from enum 27074 insn_code to enum rtx_code. 27075 (ix86_builtin_vectorized_function): Add cast to enum type. 27076 * config/i386/i386.md (truncdfsf2): Change slot to enum 27077 ix86_stack_slot. 27078 (truncxf<mode>2, isinf<mode>2): Likewise. 27079 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to 27080 enum type. 27081 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note. 27082 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise. 27083 (insert_bundle_state): Change 1 to INSERT in function call. 27084 (ia64_add_bundle_selector_before): Likewise. 27085 * config/ia64/ia64.md (cpu attr): Add cast to enum type. 27086 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call. 27087 (restore_stack_nonlocal): Likewise. 27088 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in 27089 function call. 27090 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in 27091 function call. 27092 (mips_rtx_costs): Likewise. 27093 (mips_override_options): Add casts to enum type. 27094 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL 27095 in function call. 27096 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note. 27097 (store_reg, set_reg_plus_d): Likewise. 27098 (hppa_expand_prologue, hppa_profile_hook): Likewise. 27099 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add 27100 cast to enum type. 27101 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in 27102 function call. 27103 (emit_unlikely_jump): Use add_reg_note. 27104 (rs6000_emit_allocate_stack): Likewise. 27105 (rs6000_frame_related, rs6000_emit_prologue): Likewise. 27106 (output_toc): Change 1 to INSERT in function call. 27107 (output_profile_hook): Change 0 to LCT_NORMAL in function call. 27108 (rs6000_initialize_trampoline): Likewise. 27109 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in 27110 function call. 27111 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type. 27112 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call. 27113 (s390_expand_setmem, s390_expand_cmpmem): Likewise. 27114 (save_gprs): Use add_reg_note. 27115 (s390_emit_prologue): Likewise. 27116 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call. 27117 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note. 27118 (sparc_fold_builtin): Add cast to enum type. 27119 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to 27120 enum insn_code. 27121 (spu_expand_prologue): Use add_reg_note. 27122 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call. 27123 271242009-04-20 Ian Lance Taylor <iant@google.com> 27125 27126 * c-parser.c (c_parser_attributes): Change VEC back to tree list. 27127 (c_parser_postfix_expression_after_primary): Get VEC for list of 27128 arguments. Get original types of arguments. Call 27129 build_function_call_vec. 27130 (cached_expr_list_1, cached_expr_list_2): New static variables. 27131 (c_parser_expr_list): Change return type to VEC *. Add 27132 p_orig_types parameter. Change all callers. 27133 (c_parser_release_expr): New static function. 27134 (c_parser_vec_to_tree_list): New static function. 27135 * c-typeck.c (build_function_call): Rewrite to build a VEC and 27136 call build_function_call_vec. 27137 (build_function_call_vec): New function, based on old 27138 build_function_call. 27139 (convert_arguments): Remove nargs and argarray parameters. Change 27140 values to a VEC. Add origtypes parameter. 27141 (build_modify_expr): Add rhs_origtype parameter. Change all callers. 27142 (convert_for_assignment): Add origtype parameter. Change all 27143 callers. If warn_cxx_compat, check for conversion to an enum 27144 type when calling a function. 27145 (store_init_value): Add origtype parameter. Change all callers. 27146 (digest_init): Likewise. 27147 (struct init_node): Add origtype field. 27148 (add_pending_init): Add origtype parameter. Change all callers. 27149 (output_init_element): Likewise. 27150 (output_pending_init_elements): Pass origtype from init_node to 27151 output_init_element. 27152 (process_init_element): Pass origtype from c_expr to 27153 output_init_element. 27154 (c_finish_return): Add origtype parameter. Change all callers. 27155 * c-common.c (sync_resolve_size): Change params to VEC *. Change 27156 caller. 27157 (sync_resolve_params): Likewise. 27158 (sync_resolve_return): Change params to first_param. Change caller. 27159 (resolve_overloaded_builtins): Change params to VEC *. Change 27160 callers. Save first parameter around call to build_function_call_vec. 27161 * c-decl.c (finish_decl): Add origtype parameter. Change all 27162 callers. Call build_function_call_vec rather than 27163 build_function_call for cleanup. 27164 * c-tree.h: Update declarations. 27165 * c-common.h: Update declarations. 27166 * stub-objc.c (objc_rewrite_function_call): Change parameter from 27167 params to first_param. 27168 * target.h (struct gcc_target): Change resolve_overloaded_builtin 27169 params parameter from tree to void *. 27170 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 27171 Change arglist parameter to have type void *, and to be a pointer 27172 to a VEC. 27173 * config/rs6000/rs6000-protos.h 27174 (altivec_resolve_overloaded_builtin): Update declaration. 27175 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change 27176 fnargs parameter to have type void *, and to be a pointer to a 27177 VEC. Call build_function_call_vec instead of 27178 build_function_call. 27179 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration. 27180 271812009-04-20 Joey Ye <joey.ye@intel.com> 27182 Xuepeng Guo <xuepeng.guo@intel.com> 27183 H.J. Lu <hongjiu.lu@intel.com> 27184 27185 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count. 27186 27187 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro. 27188 (IX86_LEA_PRIORITY): Likewise. 27189 (distance_non_agu_define): New function. 27190 (distance_agu_use): Likewise. 27191 (ix86_lea_for_add_ok): Likewise. 27192 (ix86_dep_by_shift_count): Likewise. 27193 27194 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we 27195 should split for LEA. 27196 27197 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new 27198 function. 27199 (ix86_dep_by_shift_count): Likewise. 27200 272012009-04-20 Richard Guenther <rguenther@suse.de> 27202 27203 * expr.c (handled_component_p): Move ... 27204 * tree.h (handled_component_p): ... here. 27205 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF, 27206 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR 27207 and REALPART_EXPR to be in one group. 27208 272092009-04-20 Richard Guenther <rguenther@suse.de> 27210 27211 * basic-block.h (get_all_dominated_blocks): Declare. 27212 * dominance.c (get_all_dominated_blocks): New function. 27213 * tree-cfg.c (get_all_dominated_blocks): Remove. 27214 (remove_edge_and_dominated_blocks): Adjust. 27215 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ... 27216 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks 27217 instead of recursing. 27218 272192009-04-20 Doug Kwan <dougkwan@google.com> 27220 27221 * cgraph.h (cgraph_node_ptr): New type for vector functions. 27222 (struct cgraph_node_set_def): New type. 27223 (cgraph_node_set) New type. Also declare vector functions. 27224 (struct cgraph_node_set_element_def): New type. 27225 (cgraph_node_set_element): Ditto. 27226 (cgraph_node_set_iterator): New iterator type. 27227 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add, 27228 cgraph_node_set_remove, dump_cgraph_node_set, 27229 debug_cgraph_node_set): New prototypes. 27230 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p, 27231 cgraph_node_set_size): New inlines. 27232 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid 27233 including cgraph.h. 27234 (struct ipa_opt_pass): Add struct cgraph_node_set_def 27235 argument to function 'write_summary'. 27236 * ipa.c: Include ggc.h. 27237 (hash_cgraph_node_set_element, 27238 eq_cgraph_node_set_element, cgraph_node_set_new, 27239 cgraph_node_set_add, cgraph_node_set_remove, 27240 cgraph_node_set_find, dump_cgraph_node_set, 27241 debug_cgraph_node_set): New functions. 27242 * Makefile.in (ipa.o): Add dependency on GGC_H. 27243 272442009-04-20 Ira Rosen <irar@il.ibm.com> 27245 27246 PR tree-optimization/39675 27247 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant 27248 check of the return code of vect_schedule_slp. Check that 27249 stmt_vec_info still exists for the statement, before checking its 27250 vectorization type. 27251 272522009-04-20 Michael Matz <matz@suse.de> 27253 27254 * Makefile.in (generated_files): Take out $(simple_generated_c). 27255 272562009-04-19 Dave Korn <dave.korn.cygwin@gmail.com> 27257 27258 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long". 27259 (UINTPTR_TYPE): Likewise. 27260 272612009-04-19 Joseph Myers <joseph@codesourcery.com> 27262 27263 PR c/37481 27264 * c-typeck.c (digest_init): Check for initializing an array with a 27265 string literal. 27266 272672009-04-19 Joseph Myers <joseph@codesourcery.com> 27268 27269 PR c/19771 27270 * c-semantics.c (pop_stmt_list): Propagate 27271 STATEMENT_LIST_HAS_LABEL to parent statement list. 27272 272732009-04-19 Adam Nemet <anemet@caviumnetworks.com> 27274 27275 * config/mips/mips.h (mips_tune_attr): New macro. 27276 * config/mips/mips.md (cpu): Use it. 27277 272782009-04-19 Joseph Myers <joseph@codesourcery.com> 27279 27280 PR c/38243 27281 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when 27282 declaring a tag. 27283 272842009-04-19 Diego Novillo <dnovillo@google.com> 27285 27286 * toplev.c (compile_file): Move call to coverage_finish ... 27287 * cgraphunit.c (ipa_passes): ... here. 27288 Call cgraph_process_new_functions. 27289 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR. 27290 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H. 27291 272922009-04-19 Jan Hubicka <jh@suse.cz> 27293 27294 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper 27295 cfun. 27296 (dump_cgraph_node): Dump can throw external flag. 27297 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags. 27298 272992009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org> 27300 27301 PR c/32061 27302 PR c++/36954 27303 * doc/invoke.texi: Add -Wlogical-op to -Wextra. 27304 * common.opt (Wlogical-op): Move from here... 27305 * c.opt (Wlogical-op): ... to here. 27306 * c-typeck.c (parser_build_binary_op): Update call to 27307 warn_logical_operator. 27308 * c-opts.c (c_common_post_options): Enable warn_logical_op with 27309 extra_warnings. 27310 * c-common.c (warn_logical_op): Update. 27311 * c-common.h (warn_logical_op): Update declaration. 27312 273132009-04-19 Eric Botcazou <ebotcazou@adacore.com> 27314 27315 * tree.c (protected_set_expr_location): Fix formatting. 27316 273172009-04-18 Joseph Myers <joseph@codesourcery.com> 27318 27319 PR c/27676 27320 * c-typeck.c (readonly_warning): new. 27321 (build_unary_op, build_modify_expr): Use readonly_warning for 27322 storing into something readonly but not const-qualified. 27323 273242009-04-18 Joseph Myers <joseph@codesourcery.com> 27325 27326 PR c/22367 27327 * c-typeck.c (build_unary_op): Check for taking address of 27328 expression of type void. 27329 273302009-04-18 Joseph Myers <joseph@codesourcery.com> 27331 27332 PR c/35210 27333 * c-typeck.c (build_function_call): Check for calling a function 27334 with qualified void return types. Call require_complete_type when 27335 generating a trap. 27336 273372009-04-18 Jan Hubicka <jh@suse.cz> 27338 27339 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt): 27340 Set nothrow flag. 27341 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add 27342 can_throw_external flag. 27343 * ipa-reference.c (ipa_utils_reduced_inorder): Update call. 27344 * ipa-pure-const.c (ignore_edge): New function. 27345 (propagate): Compute order for NOTHROW computation; set NOTHROWs 27346 only over can_throw_external edges. 27347 (local_pure_const): Add nothrow flag. 27348 * ipa-utils.c (searchc): Add ignore_edge callback. 27349 (ipa_utils_reduced_inorder): Add ignore_edge callback. 27350 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype. 27351 (set_nothrow_function_flags): Update cgraph. 27352 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode. 27353 273542009-04-18 Richard Guenther <rguenther@suse.de> 27355 27356 PR middle-end/39804 27357 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ... 27358 (fold_stmt): ... this and ... 27359 (fold_stmt_inplace): ... this. 27360 (fold_stmt_1): Fold references in calls and asms. 27361 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt. 27362 273632009-04-18 Kazu Hirata <kazu@codesourcery.com> 27364 27365 * tree-vrp.c (ssa_name_nonzero_p): Remove. 27366 * tree.h: Remove the prototype for ssa_name_nonzero_p. 27367 273682009-04-18 Kazu Hirata <kazu@codesourcery.com> 27369 27370 * tree.c (function_args_count): Remove. 27371 * tree.h: Remove the prototype for function_args_count. 27372 273732009-04-18 Kazu Hirata <kazu@codesourcery.com> 27374 27375 * tree-iterator.c (expr_only): Remove. 27376 * tree.h: Remove the prototype for expr_only. 27377 273782009-04-18 Kazu Hirata <kazu@codesourcery.com> 27379 27380 * reginfo.c (cannot_change_mode_set_regs): Remove. 27381 * rtl.h: Remove the prototype for cannot_change_mode_set_regs. 27382 273832009-04-08 Anatoly Sokolov <aesok@post.ru> 27384 27385 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check 27386 whether operands 0 and 1 overlaps. 27387 273882009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org> 27389 27390 PR middle-end/36902 27391 * tree-vrp.c (check_array_ref): Pass a location_t instead of a 27392 pointer. Use warning_at instead of warning. 27393 (search_for_addr_array): Likewise. 27394 (check_array_bounds): Likewise. 27395 (check_all_array_refs): Check that the incoming edge is not in the 27396 list of edges to be removed. 27397 (check_all_array_refs): Avoid the temporal pointer. 27398 (vrp_visit_cond_stmt): Fix typo. 27399 (simplify_switch_using_ranges): Handle the case where the switch 27400 index is an integer constant. 27401 274022009-04-18 Adam Nemet <anemet@caviumnetworks.com> 27403 27404 * config/mips/mips.c (mips_final_postscan_insn): Make it static. 27405 274062009-04-18 Kazu Hirata <kazu@codesourcery.com> 27407 27408 * doc/extend.texi, doc/invoke.texi: Fix typos. 27409 274102009-04-17 Cary Coutant <ccoutant@google.com> 27411 27412 * tree-flow-inline.h (get_lineno): Fix inverted test. 27413 274142009-04-17 Diego Novillo <dnovillo@google.com> 27415 27416 * tree-ssa-pre.c (create_expression_by_pieces): Remove 27417 assertion for AVAIL_OUT. 27418 274192009-04-17 Mike Frysinger <vapier@gentoo.org> 27420 27421 PR target/38627 27422 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack. 27423 * config/sh/linux-atomic.asm: Likewise. 27424 274252009-04-17 Diego Novillo <dnovillo@google.com> 27426 27427 * except.c (debug_eh_tree): New. 27428 (struct eh_region, struct eh_status): Move ... 27429 * except.h: ... here. 27430 (add_type_for_runtime): Declare extern. 27431 (lookup_type_for_runtime): Likewise. 27432 (debug_eh_tree): Declare. 27433 * Makefile.in (GTFILES): List except.h before except.c 27434 274352009-04-17 Diego Novillo <dnovillo@google.com> 27436 27437 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL. 27438 * cgraphunit.c (cgraph_build_static_cdtor): Likewise. 27439 * tree-dfa.c (find_referenced_vars_in): Factor out of ... 27440 (find_vars_r): ... here. 27441 * tree-flow.h (find_referenced_vars_in): Declare. 27442 * tree-ssa-pre.c (create_expression_by_pieces): Assert 27443 that AVAIL_OUT exists for BLOCK. 27444 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def 27445 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H. 27446 (tree-parloops.o): Likewise. 27447 274482009-04-17 Simon Baldwin <simonb@google.com> 27449 27450 * toplev.c (default_tree_printer): Add handling for %E format. 27451 274522009-04-17 Diego Novillo <dnovillo@google.com> 27453 27454 * tree-pretty-print.c (dump_generic_node): Add break after 27455 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and 27456 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and 27457 FUNCTION_TYPE together. Call print_struct_decl when printing 27458 structures and TDF_SLIM is not given. 27459 (print_struct_decl): Fix logic for detecting recursion. 27460 274612009-04-17 Rafael Avila de Espindola <espindola@google.com> 27462 27463 PR 31567 27464 * gcc.c (create_at_file): New. 27465 (compile_input_file_p): New. 27466 (do_spec_1): Use @args files for %i. Use create_at_file for %o. 27467 * main.c (main): Update call to toplev_main. 27468 * toplev.c (toplev_main): Change signature. Call expandargv. 27469 * toplev.h (toplev_main): Change signature. 27470 274712009-04-17 Eric Botcazou <ebotcazou@adacore.com> 27472 27473 * dwarf2out.c (field_byte_offset): Use the type size as the field size 27474 if the latter is not constant. 27475 274762009-04-17 David Edelsohn <edelsohn@gnu.org> 27477 27478 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing. 27479 274802009-04-17 Eric Botcazou <ebotcazou@adacore.com> 27481 27482 * dbxout.c (dbxout_block): Reinstate test on TREE_USED. 27483 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit. 27484 274852009-04-17 Richard Guenther <rguenther@suse.de> 27486 27487 * tree-ssa-structalias.c (get_constraint_for_component_ref): 27488 Handle component references view-converting an invariant address. 27489 274902009-04-17 Adam Nemet <anemet@caviumnetworks.com> 27491 27492 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS, 27493 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET, 27494 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS, 27495 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO): 27496 Use @deftypevr rather than @deftypevar. 27497 274982009-04-17 Richard Guenther <rguenther@suse.de> 27499 27500 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification. 27501 (get_prop_source_stmt): Likewise. 27502 (can_propagate_from): Likewise. 27503 275042009-04-17 Andrew Stubbs <ams@codesourcery.com> 27505 27506 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG, 27507 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG. 27508 (--with-multilib-list): Add default value. 27509 * configure: Regenerate. 27510 * Makefile.in (TM_ENDIAN_CONFIG): Define. 27511 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define. 27512 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG, 27513 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG. 27514 Don't add default cpu to multilib list unnecessarily, but do enable 27515 the relevant compiler option.. 27516 Add support for --with-multilib-list=<blank> and 27517 --with-multilib-list=!<somelib> to supress unwanted multilibs. 27518 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables. 27519 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables. 27520 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and 27521 TM_MULTILIB_CONFIG. 27522 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG. 27523 (MULTILIB_OSDIRNAMES): New variable. 27524 * config/sh/t-1e: Delete file. 27525 * config/sh/t-mlib-sh1: Delete file. 27526 * config/sh/t-mlib-sh2: Delete file. 27527 * config/sh/t-mlib-sh2a: Delete file. 27528 * config/sh/t-mlib-sh2a-nofpu: Delete file. 27529 * config/sh/t-mlib-sh2a-single: Delete file. 27530 * config/sh/t-mlib-sh2a-single-only: Delete file. 27531 * config/sh/t-mlib-sh2e: Delete file. 27532 * config/sh/t-mlib-sh3e: Delete file. 27533 * config/sh/t-mlib-sh4: Delete file. 27534 * config/sh/t-mlib-sh4-nofpu: Delete file. 27535 * config/sh/t-mlib-sh4-single: Delete file. 27536 * config/sh/t-mlib-sh4-single-only: Delete file. 27537 * config/sh/t-mlib-sh4a: Delete file. 27538 * config/sh/t-mlib-sh4a-nofpu: Delete file. 27539 * config/sh/t-mlib-sh4a-single: Delete file. 27540 * config/sh/t-mlib-sh4a-single-only: Delete file. 27541 * config/sh/t-mlib-sh4al: Delete file. 27542 * config/sh/t-mlib-sh5-32media: Delete file. 27543 * config/sh/t-mlib-sh5-32media-nofpu: Delete file. 27544 * config/sh/t-mlib-sh5-64media: Delete file. 27545 * config/sh/t-mlib-sh5-64media-nofpu: Delete file. 27546 * config/sh/t-mlib-sh5-compact: Delete file. 27547 * config/sh/t-mlib-sh5-compact-nofpu: Delete file. 27548 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS. 27549 * doc/install.texi (Options specification): Add 27550 --with-multilib-list and --with-endian. 27551 275522009-04-17 Rafael Avila de Espindola <espindola@google.com> 27553 27554 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use 27555 REVISION_c. 27556 (OBJS-common): Add plugin-version.o. 27557 (plugin-version.o): New. 27558 * gcc-plugin.h (plugin_gcc_version): New. 27559 (plugin_default_version_check): New. 27560 (plugin_init_func, plugin_init): Add version argument. 27561 * plugin-version.c: New. 27562 * plugin.c (str_plugin_gcc_version_name): New. 27563 (try_init_one_plugin): Read plugin_gcc_version from the plugin and 27564 pass it to the init function. 27565 (plugin_default_version_check): New. 27566 275672009-04-17 Richard Guenther <rguenther@suse.de> 27568 27569 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA 27570 for decl-vs-decl disambiguation. 27571 275722009-04-17 Andreas Krebbel <krebbel1@de.ibm.com> 27573 27574 * config/s390/s390.h (s390_tune_attr): New macro definition. 27575 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr. 27576 275772009-04-17 Richard Guenther <rguenther@suse.de> 27578 27579 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove. 27580 (fold_stmt_r): Likewise. 27581 (maybe_fold_reference): New function. 27582 (fold_gimple_assign): Handle cases fold_stmt_r did. 27583 (fold_stmt): Do not use fold_stmt_r. 27584 (fold_stmt_inplace): Likewise. 27585 275862009-04-17 Richard Guenther <rguenther@suse.de> 27587 27588 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove. 27589 (record_equivalences_from_stmt): Remove useless checks and 27590 simplifications. 27591 * tree-ssa-pre.c (eliminate): Avoid converting a constant if 27592 the type is already suitable. 27593 275942009-04-17 Paolo Bonzini <bonzini@gnu.org> 27595 27596 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes. 27597 275982009-04-17 Uros Bizjak <ubizjak@gmail.com> 27599 27600 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef. 27601 (CMPtype): Define as __gcc_CMPtype. 27602 276032009-04-17 Aurelien Jarno <aurelien@aurel32.net> 27604 27605 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file 27606 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*. 27607 276082009-04-17 Richard Guenther <rguenther@suse.de> 27609 27610 PR tree-optimization/39746 27611 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove 27612 special-casing for builtins and static variable use/def. 27613 (call_may_clobber_ref_p_1): Likewise. 27614 276152009-04-16 Ian Lance Taylor <iant@google.com> 27616 27617 * df.h: Include "timevar.h". 27618 (struct df_problem): Change tv_id field to timevar_id_t. 27619 * tree-pass.h: Include "timevar.h". 27620 (struct opt_pass): Change tv_id field to timevar_id_t. 27621 * timevar.h (timevar_id_t): Define TV_NONE. 27622 * passes.c (execute_one_ipa_transform_pass): Check for tv_id != 27623 TV_NONE rather than tv_id != 0. 27624 (execute_one_pass): Likewise. 27625 * Makefile.in (DF_H): Add $(TIMEVAR_H). 27626 (TREE_PASS_H): Define. Change all instances of tree-pass.h in 27627 dependencies to $(TREE_PASS_H). 27628 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field 27629 to TV_NONE. 27630 (pass_branch_target_load_optimize2): Likewise. 27631 * cfglayout.c (pass_into_cfg_layout_mode): Likewise. 27632 (pass_outof_cfg_layout_mode): Likewise. 27633 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise. 27634 (pass_rebuild_cgraph_edges): Likewise. 27635 (pass_remove_cgraph_callee_edges): Likewise. 27636 * df-core.c (pass_df_initialize_opt): Likewise. 27637 (pass_df_initialize_no_opt): Likewise. 27638 (pass_df_finish): Likewise. 27639 * emit-rtl.c (pass_unshare_all_rtl): Likewise. 27640 * except.c (pass_set_nothrow_function_flags): Likewise. 27641 (pass_convert_to_eh_region_ranges): Likewise. 27642 * final.c (pass_compute_alignments): Likewise. 27643 * function.c (pass_instantiate_virtual_regs): Likewise. 27644 (pass_init_function): Likewise. 27645 (pass_leaf_regs): Likewise. 27646 (pass_match_asm_constraints): Likewise. 27647 * gimple-low.c (pass_lower_cf): Likewise. 27648 (pass_mark_used_blocks): Likewise. 27649 * init-regs.c (pass_initialize_regs): Likewise. 27650 * integrate.c (pass_initial_value_sets): Likewise. 27651 * ira.c (pass_ira): Likewise. 27652 * jump.c (pass_cleanup_barriers): Likewise. 27653 * omp-low.c (pass_expand_omp): Likewise. 27654 (pass_lower_omp): Likewise. 27655 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise. 27656 * recog.c (pass_split_all_insns): Likewise. 27657 (pass_split_after_reload): Likewise. 27658 (pass_split_before_regstack): Likewise. 27659 (pass_split_before_sched2): Likewise. 27660 (pass_split_for_shorten_branches): Likewise. 27661 * reginfo.c (pass_reginfo_init): Likewise. 27662 (pass_subregs_of_mode_init): Likewise. 27663 (pass_subregs_of_mode_finish): Likewise. 27664 * passes.c (pass_postreload): Likewise. 27665 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise. 27666 * tree-cfg.c (pass_remove_useless_stmts): Likewise. 27667 (pass_warn_function_return): Likewise. 27668 (pass_warn_function_noreturn): Likewise. 27669 * tree-complex.c (pass_lower_complex): Likewise. 27670 (pass_lower_complex_O0): Likewise. 27671 * tree-if-conv.c (pass_if_conversion): Likewise. 27672 * tree-into-ssa.c (pass_build_ssa): Likewise. 27673 * tree-mudflap.c (pass_mudflap_1): Likewise. 27674 (pass_mudflap_2): Likewise. 27675 * tree-nomudflap.c (pass_mudflap_1): Likewise. 27676 (pass_mudflap_2): Likewise. 27677 * tree-nrv.c (pass_return_slot): Likewise. 27678 * tree-object-size.c (pass_object_sizes): Likewise. 27679 * tree-optimize.c (pass_all_optimizations): Likewise. 27680 (pass_early_local_passes): Likewise. 27681 (pass_all_early_optimizations): Likewise. 27682 (pass_cleanup_cfg): Likewise. 27683 (pass_cleanup_cfg_post_optimizing): Likewise. 27684 (pass_free_datastructures): Likewise. 27685 (pass_free_cfg_annotations): Likewise. 27686 (pass_fixup_cfg): Likewise. 27687 (pass_init_datastructures): Likewise. 27688 * tree-ssa.c (pass_early_warn_uninitialized): Likewise. 27689 (pass_late_warn_uninitialized): Likewise. 27690 (pass_update_address_taken): Likewise. 27691 * tree-ssa-ccp.c (pass_fold_builtins): Likewise. 27692 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise. 27693 (pass_cse_sincos): Likewise. 27694 (pass_convert_to_rsqrt): Likewise. 27695 * tree-ssa-structalias.c (pass_build_alias): Likewise. 27696 * tree-stdarg.c (pass_stdarg): Likewise. 27697 * tree-tailcall.c (pass_tail_recursion): Likewise. 27698 (pass_tail_calls): Likewise. 27699 * tree-vect-generic.c (pass_lower_vector): Likewise. 27700 (pass_lower_vector_ssa): Likewise. 27701 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise. 27702 277032009-04-16 Joseph Myers <joseph@codesourcery.com> 27704 27705 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in 27706 XLR entry. 27707 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): 27708 Handle -march=xlr. 27709 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move, 27710 logical and signext. 27711 277122009-04-16 Kaz Kojima <kkojima@gcc.gnu.org> 27713 27714 PR target/39767 27715 * config/sh/predicates.md (arith_operand): Check if the operand 27716 of TRUNCATE is a REG. 27717 277182009-04-16 Kazu Hirata <kazu@codesourcery.com> 27719 27720 * cfgrtl.c (delete_insn_chain_and_edges): Remove. 27721 * rtl.h: Remove the prototype for delete_insn_chain_and_edges. 27722 277232009-04-16 Kazu Hirata <kazu@codesourcery.com> 27724 27725 * tree-iterator.c (tsi_split_statement_list_after, 27726 tsi_split_statement_list_before): Remove. 27727 * tree-iterator.h: Remove the prototypes for 27728 tsi_split_statement_list_after and tsi_split_statement_list_before. 27729 277302009-04-16 Kazu Hirata <kazu@codesourcery.com> 27731 27732 * tree-ssa-propagate.c (stmt_makes_single_load): Remove. 27733 * tree-ssa-propagate.h: Remove the prototype for 27734 stmt_makes_single_load. 27735 277362009-04-16 Kazu Hirata <kazu@codesourcery.com> 27737 27738 * emit-rtl.c (set_mem_attrs_from_reg): Remove. 27739 * rtl.h: Remove the prototype for set_mem_attrs_from_reg. 27740 277412009-04-16 Kazu Hirata <kazu@codesourcery.com> 27742 27743 * tree-iterator.c (EXPR_LAST_BODY): Remove. 27744 277452009-04-16 Kazu Hirata <kazu@codesourcery.com> 27746 27747 * except.c (eh_region_outer_p): Remove. 27748 * except.h: Remove the prototype for eh_region_outer_p. 27749 277502009-04-16 Kazu Hirata <kazu@codesourcery.com> 27751 27752 * function.c (current_function_assembler_name): Remove. 27753 * function.h: Remove the prototype for 27754 current_function_assembler_name. 27755 277562009-04-16 Ian Lance Taylor <iant@google.com> 27757 27758 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note. 27759 (add_reg_note): Call alloc_reg_note. 27760 * rtl.h (alloc_reg_note): Declare. 27761 * combine.c (try_combine): Use alloc_reg_note. 27762 (recog_for_combine, move_deaths): Likewise. 27763 (distribute_notes): Use alloc_reg_note and add_reg_note. 27764 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note. 27765 * combine-stack-adj.c (adjust_frame_related_expr): Likewise. 27766 * reload1.c (eliminate_regs_1): Use alloc_reg_note. 27767 277682009-04-16 Vladimir Makarov <vmakarov@redhat.com> 27769 27770 PR rtl-optimization/39762 27771 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost, 27772 ira_may_move_out_cost): Add comments about way of their usage. 27773 (ira_get_register_move_cost, ira_get_may_move_cost): New functions. 27774 27775 * ira-conflicts.c (process_regs_for_copy): Use function 27776 ira_get_register_move_cost instead of global 27777 ira_register_move_cost. 27778 27779 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost, 27780 color_pass, move_spill_restore, update_curr_costs): Ditto. 27781 27782 * ira-lives.c (process_single_reg_class_operands): Ditto. 27783 27784 * ira-emit.c (emit_move_list): Ditto. 27785 27786 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost. 27787 (record_reg_classes): Ditto. Use functions 27788 ira_get_register_move_cost and ira_get_may_move_cost instead of 27789 global vars ira_register_move_cost, ira_may_move_out_cost and 27790 ira_may_move_in_cost. 27791 (record_address_regs): Don't call ira_init_register_move_cost. 27792 Use function ira_get_may_move_cost instead of global 27793 ira_may_move_in_cost. 27794 (process_bb_node_for_hard_reg_moves): Use function 27795 ira_get_register_move_cost instead of global ira_register_move_cost. 27796 (ira_costs): Don't call ira_init_register_move_cost. 27797 277982009-04-16 Richard Guenther <rguenther@suse.de> 27799 27800 * tree-cfg.c (verify_gimple_assign_binary): 27801 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors. 27802 * ipa-struct-reorg.c (gen_size): Fold the built expressions. 27803 (create_general_new_stmt): Note that this function is broken. 27804 278052009-04-16 Rafael Avila de Espindola <espindola@google.com> 27806 27807 * common.opt (fhelp): Add Var(help_flag). 27808 * gcc-plugin.h (plugin_info): Add help. 27809 * plugin.c (plugin_name_args): Add help. 27810 (register_plugin_info): Set plugin->help. 27811 (print_help_one_plugin): New. 27812 (print_plugins_help): New. 27813 * plugin.h (print_plugins_help): New. 27814 * toplev.c (toplev_main): Call print_plugins_help if needed. 27815 278162009-04-16 Richard Guenther <rguenther@suse.de> 27817 27818 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap. 27819 (gimple_ior_addresses_taken_1): New function. 27820 (gimple_ior_addresses_taken): Likewise. 27821 * gimple.h (struct gimple_statement_with_ops_base): Remove 27822 addresses_taken member. 27823 (gimple_ior_addresses_taken): Declare. 27824 (gimple_addresses_taken, gimple_addresses_taken_ptr, 27825 gimple_set_addresses_taken): Remove. 27826 * ipa-reference.c (mark_address): New function. 27827 (scan_stmt_for_static_refs): Use it for marking addresses taken. 27828 * tree-ssa-operands.c (add_to_addressable_set): Rename to ... 27829 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE. 27830 (gimple_add_to_addresses_taken): Remove. 27831 (get_tmr_operands): Call mark_address_taken. 27832 (get_asm_expr_operands): Likewise. 27833 (get_expr_operands): Likewise. 27834 (build_ssa_operands): Do not clear the addresses_taken bitmap. 27835 (free_stmt_operands): Do not free it. 27836 * tree-ssa.c (delete_tree_ssa): Likewise. 27837 (execute_update_addresses_taken): Use gimple_ior_addresses_taken. 27838 278392009-04-16 Richard Guenther <rguenther@suse.de> 27840 27841 * gimple.h (walk_stmt_load_store_addr_ops): Declare. 27842 (walk_stmt_load_store_ops): Likewise. 27843 * gimple.c (get_base_loadstore): New function. 27844 (walk_stmt_load_store_addr_ops): Likewise. 27845 (walk_stmt_load_store_ops): Likewise. 27846 * ipa-pure-const.c (check_op): Simplify. 27847 (check_load, check_store): New functions. 27848 (check_stmt): Use walk_stmt_load_store_ops. 27849 * ipa-reference.c (mark_load): Adjust signature. 27850 (mark_store): Likewise. 27851 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops. 27852 278532009-04-16 Rafael Avila de Espindola <espindola@google.com> 27854 27855 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO. 27856 (plugin_info): New. 27857 * opts.c (common_handle_option): Don't call print_version. 27858 * plugin.c (plugin_name_args): Add version. 27859 (register_plugin_info): New. 27860 (register_callback): Handle PLUGIN_INFO. 27861 (try_init_one_plugin): New. 27862 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args 27863 if failed to init. 27864 (finalize_one_plugin): New. 27865 (finalize_plugins): New. 27866 (print_one_plugin): New. 27867 (print_plugins_versions): New. 27868 * plugin.h (print_plugins_versions): New. 27869 (finalize_plugins): New. 27870 * toplev.c (compile_file): Don't call initialize_plugins. 27871 (print_version): Call print_plugins_versions. 27872 (toplev_main): Call initialize_plugins. Print version if needed. 27873 Call finalize_plugins. 27874 278752009-04-16 Rafael Avila de Espindola <espindola@google.com> 27876 27877 * common.opt (fversion): New. 27878 * gcc.c (print_version): New. 27879 (process_command): Don't print the version. Just set print_version. 27880 (main): Print version. Call subprocesses if print_version and 27881 verbose_flag are set. 27882 * opts.c (common_handle_option): Handle OPT_fversion. 27883 278842009-04-16 Richard Guenther <rguenther@suse.de> 27885 Ira Rosen <irar@il.ibm.com> 27886 27887 PR tree-optimization/39698 27888 * tree-vect-loop.c (get_initial_def_for_reduction): Use the 27889 type of the reduction variable. Only generate the def if 27890 it is needed. 27891 27892 * omp-low.c (expand_omp_for_generic): When converting to a pointer 27893 make sure to first convert to an integer of the same precision. 27894 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain 27895 the type of the evolution correctly in computing the new 27896 induction variable base. 27897 278982009-04-16 Richard Guenther <rguenther@suse.de> 27899 27900 PR middle-end/39625 27901 * tree-cfg.c (make_blocks): Split statements with to-be 27902 abnormal SSA names on the lhs. 27903 279042009-04-16 Paolo Bonzini <bonzini@gnu.org> 27905 27906 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p): 27907 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p. 27908 * c-typeck.c (really_start_incremental_init): Likewise. 27909 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove. 27910 (TARGET_INITIALIZER): Remove it. 27911 * target.h (struct target): Remove vector_opaque_p. 27912 * tree.c (build_opaque_vector_type): New. 27913 * tree.h (TYPE_VECTOR_OPAQUE): New. 27914 (build_opaque_vector_type): Declare. 27915 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove. 27916 * config/rs6000/rs6000.c (build_opaque_vector_type, 27917 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove. 27918 (rs6000_init_builtins): Use build_opaque_vector_type for 27919 opaque_V4SI_type_node. 27920 279212009-04-15 Catherine Moore <clm@codesourcery.com> 27922 27923 * debug.h (set_name): Declare. 27924 * dwarf2out.c (dwarf2out_set_name): Declare. 27925 (dwarf2_debug_hooks): Add set_name. 27926 (find_AT_string): New. 27927 (add_AT_string): Call find_AT_string. 27928 (dwarf2out_set_name): New. 27929 * cp/decl.c (grokdeclarator): Call set_name. 27930 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing. 27931 * debug.c (do_nothing_debug_hooks): Likewise. 27932 * dbxout.c (dbx_debug_hooks): Likewise. 27933 * sdbout.c (sdb_debug_hooks): Likewise. 27934 279352009-04-15 Michael Eager <eager@eagercon.com> 27936 27937 * config/rs6000/rs6000.c (rs6000_function_value): Set function return 27938 reg for single-precision FPU. 27939 * config/rs6000/rs6000.md (movsi_internal1): Only for 27940 !TARGET_SINGLE_FPU. 27941 (movsi_internal1_single): New. Add pattern to move SI values to/from 27942 single-precision FP regs. 27943 279442009-04-15 Richard Guenther <rguenther@suse.de> 27945 27946 * omp-low.c (lower_rec_input_clauses): Build correct address 27947 expressions. 27948 (expand_omp_for_generic): Fix multiplication type. 27949 * tree-loop-distribution.c (build_size_arg): Build a size_t argument. 27950 (generate_memset_zero): Fix types. 27951 * tree-profile.c (prepare_instrumented_value): Correctly 27952 widen a pointer. 27953 279542009-04-15 Ian Lance Taylor <iant@google.com> 27955 27956 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1. 27957 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare 27958 for -Wall and for -Wc++-compat. 27959 (c_common_post_options): For C++, set warn_enum_compare if not 27960 already set. 27961 * c-tree.h (struct c_expr): Add field original_type. 27962 (build_external_ref): Update declaration. 27963 * c-parser.c (c_parser_braced_init): Set original_type. 27964 (c_parser_initelt): Likewise. 27965 (c_parser_expr_no_commas): Likewise. 27966 (c_parser_conditional_expression): Likewise. 27967 (c_parser_cast_expression): Likewise. 27968 (c_parser_unary_expression): Likewise. Pull setting of 27969 original_code to top of function. 27970 (c_parser_sizeof_expression): Set original_type. 27971 (c_parser_alignof_expression): Likewise. 27972 (c_parser_postfix_expression): Likewise. Pull setting of 27973 original_code to top of function. 27974 (c_parser_postfix_expression_after_paren_type): Set original_type. 27975 (c_parser_postfix_expression_after_primary): Likewise. 27976 (c_parser_expression): Likewise. 27977 * c-typeck.c (build_external_ref): Add type parameter. Change all 27978 callers. 27979 (c_expr_sizeof_expr): Set original_type field. 27980 (parser_build_unary_op): Likewise. 27981 (parser_build_binary_op): Likewise. Optionally warn about 27982 comparisons of enums of different types. 27983 (digest_init): Set original_type field. 27984 (really_start_incremental_init): Likewise. 27985 (push_init_level, pop_init_level): Likewise. 27986 * doc/invoke.texi (Warning Options): -Wenum-compare now 27987 supported in C. 27988 279892009-04-15 Richard Guenther <rguenther@suse.de> 27990 27991 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry 27992 out a necessary conversion. 27993 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to 27994 names we didn't value number. 27995 * tree-mudflap.c (mf_build_check_statement_for): Use correct types. 27996 279972009-04-15 Richard Guenther <rguenther@suse.de> 27998 27999 PR tree-optimization/39764 28000 * tree-ssa-ccp.c (get_value): Canonicalize value with 28001 canonicalize_float_value. 28002 280032009-04-15 Jan Hubicka <jh@suse.cz> 28004 28005 * builtins.def (va_start, va_end, va_copy): Fix my previous commit. 28006 Wrong version of patch. 28007 280082009-04-15 Jan Hubicka <jh@suse.cz> 28009 28010 * builtins.def (va_start, va_end, va_copy): Mark nothrow. 28011 280122009-04-15 Nathan Sidwell <nathan@codesourcery.com> 28013 28014 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of 28015 our distinct integral and vector types. 28016 280172009-04-15 Rafael Avila de Espindola <espindola@google.com> 28018 28019 * class.c (build_vtbl_ref_1): Remove call to assemble_external. 28020 * init.c (build_vtbl_address): Remove call to assemble_external. 28021 280222009-04-14 Daniel Jacobowitz <dan@codesourcery.com> 28023 28024 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug 28025 output for other floating point modes. 28026 280272009-04-14 Diego Novillo <dnovillo@google.com> 28028 28029 * diagnostic.c (diagnostic_report_diagnostic): Do not 28030 warn about loaded plugins for DK_ERROR and DK_WARNING. 28031 * c-decl.c (declspecs_add_type): Move call to 28032 invoke_plugin_callbacks ... 28033 * c-parser.c (c_parser_declspecs): ... here. 28034 * plugin.c (dump_active_plugins): Tidy output. 28035 280362009-04-14 Diego Novillo <dnovillo@google.com> 28037 Le-Chun Wu <lcwu@google.com> 28038 28039 * configure.ac: Add --enable-plugin support. 28040 Define ENABLE_PLUGIN and PLUGINLIBS when specified. 28041 * Makefile.in (PLUGIN_H): Define. 28042 Export ENABLE_PLUGIN and GMPINC to site.exp. 28043 Add PLUGINLIBS to link command. 28044 Add/modify dependencies for plugin.o and files including plugin.h. 28045 (plugin.o): New. 28046 * config.in: Regenerate. 28047 28048 * opts.c (common_handle_option): Handle OPT_fplugin_ and 28049 OPT_fplugin_arg_. 28050 280512009-04-14 Le-Chun Wu <lcwu@google.com> 28052 28053 * tree-pass.h (register_one_dump_file): Add a prototype for 28054 register_one_dump_file. 28055 * toplev.c (compile_file): Call initialize_plugins. 28056 (do_compile): Call invoke_plugin_callbacks. 28057 (toplev_main): Call invoke_plugin_callbacks. 28058 * common.opt: Add -fplugin= and -fplugin-arg-. 28059 * gcc-plugin.h: New public header file for plugins to include. 28060 * plugin.c: New source file. 28061 * plugin.h: New internal header file. 28062 * passes.c (register_one_dump_file): Make it external. 28063 28064 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks. 28065 280662009-04-14 Diego Novillo <dnovillo@google.com> 28067 28068 * doc/plugins.texi: New. 28069 * doc/gccint.texi: Add reference to Plugins chapter. 28070 * doc/invoke.texi: Document -fplugin and -fplugin-arg 28071 * diagnostic.c (diagnostic_report_diagnostic): Warn about 28072 loaded plugins, if any. 28073 * timevar.def (TV_PLUGIN_INIT): Define. 28074 (TV_PLUGIN_RUN): Define. 28075 * plugin.c: Include timevar.h 28076 (plugins_active_p): New. 28077 (dump_active_plugins): New. 28078 (debug_active_plugins): New. 28079 280802009-04-14 Joseph Myers <joseph@codesourcery.com> 28081 28082 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute 28083 library paths. 28084 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise. 28085 280862009-04-14 Kazu Hirata <kazu@codesourcery.com> 28087 28088 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift 28089 the same as a minus without a shift. 28090 280912009-04-14 Nick Clifton <nickc@redhat.com> 28092 28093 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that 28094 comparisons with small integers will always produce a short 28095 branch. 28096 280972009-04-14 Rafael Avila de Espindola <espindola@google.com> 28098 28099 Merge: 28100 2008-12-19 Diego Novillo <dnovillo@google.com> 28101 28102 * cgraph.c (dump_cgraph_node): Show memory address of NODE. 28103 281042009-04-14 Richard Guenther <rguenther@suse.de> 28105 28106 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code 28107 verification. 28108 (verify_gimple_assign_binary): Likewise. Handle shifts and 28109 rotates correctly. 28110 (verify_gimple_phi): Print the mismatched argument position. 28111 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): 28112 Fix types. 28113 (vect_update_init_of_dr): Likewise. 28114 * matrix-reorg.c (transform_access_sites): Do what the 28115 comment suggests. 28116 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types. 28117 281182009-04-13 Michael Eager <eager@eagercon.com> 28119 28120 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu: 28121 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL 28122 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi 28123 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file, 28124 remove duplicate config 28125 281262009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 28127 28128 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump 28129 file_name:line_number type locator of the call site. 28130 281312009-04-13 Vladimir Makarov <vmakarov@redhat.com> 28132 28133 * genautomata.c: Put blank after comma. 28134 (automaton_decls): New. 28135 (struct unit_usage): Add comments to member next. 28136 (store_alt_unit_usage): Keep the list ordered. 28137 (unit_present_on_list_p, equal_alternatives_p): New. 28138 (check_regexp_units_distribution): Check units distribution 28139 correctness correctly. 28140 (main): Don't write automata if error is found. Return correct 28141 exit code. 28142 28143 * config/m68k/cf.md (cfv4_ds): Remove. 28144 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3, 28145 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds. 28146 28147 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4, 28148 power4-load-ext, power4-store, power4-store-update, 28149 power4-fpstore, power4-fpstore-update, power4-two, power4-three, 28150 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp, 28151 power4-lmul, , power4-imul, power4-imul3, power4-sdiv, 28152 power4-sqrt, power4-isync): Modify reservation to make correct 28153 unit distribution to automata. 28154 28155 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store, 28156 power5-store-update, power5-two, power5-three, power5-lmul, 28157 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto. 28158 281592009-04-13 Adam Nemet <anemet@caviumnetworks.com> 28160 28161 * except.c (pass_set_nothrow_function_flags): Set name and add 28162 TODO_dump_func. 28163 (set_nothrow_function_flags): Mention in the dump file when 28164 changing a function to nothrow. 28165 281662009-04-13 Ozkan Sezer <sezeroz@gmail.com> 28167 28168 PR/39066 28169 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__ 28170 instead of unsigned long. 28171 281722009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 28173 28174 * config/arm/arm.c (return_used_this_function): Remove. 28175 (arm_output_function_prologue): Remove use of 28176 return_used_this_function. 28177 (output_return_instruction): Replace use of 28178 return_used_this_function 28179 by cfun->machine->return_used_this_function. 28180 (arm_output_epilogue): Likewise. 28181 (arm_output_function_epilogue): Likewise. 28182 (thumb_unexpanded_epilogue): Likewise. 28183 * config/arm/arm.h (struct machine_function): 28184 New member return_used_this_function. 28185 281862009-04-12 Mark Mitchell <mark@codesourcery.com> 28187 28188 * doc/install.texi: Correct description of default directory for 28189 --with-gxx-include-dir. 28190 281912009-04-12 Eric Botcazou <ebotcazou@adacore.com> 28192 28193 * fold-const.c (build_range_check): Properly deal with enumeral and 28194 boolean base types. 28195 281962009-04-12 Steven Bosscher <steven@gcc.gnu.org> 28197 28198 * doc/invoke.texi (max_gcse_passes): Remove documentation. 28199 * params.def (PARAM_MAX_GCSE_PASSES): Remove. 28200 * params.h (MAX_GCSE_PASSES): Remove. 28201 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2 28202 in sequence. Remove ability to run multiple passes. 28203 (bypass_jumps): Report run as third CPROP pass. 28204 282052009-04-12 Adam Nemet <anemet@caviumnetworks.com> 28206 28207 PR middle-end/39651 28208 * except.c (can_throw_external): Look at each insn in a SEQUENCE 28209 when deciding whether the whole SEQUENCE can throw. 28210 282112009-04-12 Uros Bizjak <ubizjak@gmail.com> 28212 28213 PR target/39740 28214 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for 28215 offseted label references. 28216 282172009-04-11 Jan Hubicka <jh@suse.cz> 28218 28219 * tree-ssa-pre.c (eliminate): Fix call of update_stmt. 28220 282212009-04-11 Richard Guenther <rguenther@suse.de> 28222 28223 PR middle-end/39732 28224 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE 28225 return variables as TREE_ADDRESSABLE. 28226 282272009-04-11 Richard Guenther <rguenther@suse.de> 28228 28229 PR tree-optimization/39713 28230 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built 28231 reference trees have SSA_NAME operands. 28232 282332009-04-11 Richard Guenther <rguenther@suse.de> 28234 28235 PR c/39712 28236 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched 28237 address expressions. 28238 282392009-04-11 Dave Korn <dave.korn.cygwin@gmail.com> 28240 28241 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to 28242 match changes in Cygwin 1.7 28243 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE, 28244 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise. 28245 282462009-04-10 Paolo Bonzini <bonzini@gnu.org> 28247 28248 PR tree-optimization/39701 28249 * doc/invoke.texi (Optimization Options): Document change in 28250 meaning and initialization of -fdelete-null-pointer-checks. 28251 282522009-04-10 H.J. Lu <hongjiu.lu@intel.com> 28253 28254 PR middle-end/39701 28255 * common.opt (-fdelete-null-pointer-checks): Initialize to 1. 28256 28257 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks 28258 here. 28259 28260 * doc/invoke.texi: Update -fdelete-null-pointer-checks. 28261 282622009-04-10 Chao-ying Fu <fu@mips.com> 28263 28264 * doc/tm.texi (Instruction Output): Document 28265 TARGET_ASM_FINAL_POSTSCAN_INSN. 28266 * target.h (final_postscan_insn): New field in asm_out. 28267 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define. 28268 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN. 28269 * final.c (final_scan_insn): Call 28270 targetm.asm_out.final_postscan_insn after outputting 28271 an asm macro and a normal instruction. 28272 28273 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define. 28274 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare. 28275 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback. 28276 (mips_final_prescan_insn, mips_final_postscan_insn): New functions. 28277 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define. 28278 282792009-04-10 Paolo Bonzini <bonzini@gnu.org> 28280 28281 PR middle-end/39701 28282 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static 28283 variables as non-NULL even with -fdelete-null-pointer-checks. 28284 282852009-04-10 H.J. Lu <hongjiu.lu@intel.com> 28286 28287 * config/rs6000/darwin-vecsave.asm: Remove extra "*/". 28288 282892009-04-09 H.J. Lu <hongjiu.lu@intel.com> 28290 28291 PR target/39678 28292 * config/i386/i386.c (classify_argument): Handle SCmode with 28293 (bit_offset % 64) != 0. 28294 282952009-04-09 Sandra Loosemore <sandra@codesourcery.com> 28296 28297 * doc/invoke.texi (Optimize Options): Add cross-reference to 28298 -Q --help=optimizers examples. 28299 283002009-04-10 Ben Elliston <bje@au.ibm.com> 28301 28302 PR target/36800 28303 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set 28304 regalign for the reg == fpr and TDmode case. 28305 283062009-04-09 David Ayers <ayers@fsfe.org> 28307 28308 PR objc/29200 28309 * objc/objc-act.c (warn_with_method): Remove helper function. 28310 (check_duplicates): Call warning and inform directly. 28311 (really_start_method): Likewise. 28312 283132009-04-09 Paolo Bonzini <bonzini@gnu.org> 28314 28315 * expmed.c (expand_divmod): Always use a comparison for a division 28316 by a large unsigned integer. 28317 28318 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls 28319 for things others than variables or functions as nonzero. 28320 283212009-04-09 Nick Clifton <nickc@redhat.com> 28322 28323 * unwind-compat.c: Change copyright header to refer to version 28324 3 of the GNU General Public License with version 3.1 of the 28325 GCC Runtime Library Exception and to point readers at the 28326 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page. 28327 * config/alpha/crtfastmath.c: Likewise. 28328 * config/alpha/linux-unwind.h: Likewise. 28329 * config/alpha/qrnnd.asm: Likewise. 28330 * config/alpha/vms-crt0-64.c: Likewise. 28331 * config/alpha/vms-crt0.c: Likewise. 28332 * config/alpha/vms-dwarf2.asm: Likewise. 28333 * config/alpha/vms-dwarf2eh.asm: Likewise. 28334 * config/alpha/vms-psxcrt0-64.c: Likewise. 28335 * config/alpha/vms-psxcrt0.c: Likewise. 28336 * config/alpha/vms_tramp.asm: Likewise. 28337 * config/arc/initfini.c: Likewise. 28338 * config/arc/lib1funcs.asm: Likewise. 28339 * config/arm/bpabi-v6m.S: Likewise. 28340 * config/arm/bpabi.S: Likewise. 28341 * config/arm/bpabi.c: Likewise. 28342 * config/arm/crti.asm: Likewise. 28343 * config/arm/crtn.asm: Likewise. 28344 * config/arm/ieee754-df.S: Likewise. 28345 * config/arm/ieee754-sf.S: Likewise. 28346 * config/arm/lib1funcs.asm: Likewise. 28347 * config/arm/libunwind.S: Likewise. 28348 * config/arm/linux-atomic.c: Likewise. 28349 * config/arm/mmintrin.h: Likewise. 28350 * config/arm/pr-support.c: Likewise. 28351 * config/arm/unaligned-funcs.c: Likewise. 28352 * config/arm/unwind-arm.c: Likewise. 28353 * config/arm/unwind-arm.h: Likewise. 28354 * config/avr/libgcc.S: Likewise. 28355 * config/bfin/crti.s: Likewise. 28356 * config/bfin/crtlibid.s: Likewise. 28357 * config/bfin/crtn.s: Likewise. 28358 * config/bfin/lib1funcs.asm: Likewise. 28359 * config/bfin/linux-unwind.h: Likewise. 28360 * config/cris/arit.c: Likewise. 28361 * config/cris/cris_abi_symbol.c: Likewise. 28362 * config/darwin-64.c: Likewise. 28363 * config/darwin-crt2.c: Likewise. 28364 * config/darwin-crt3.c: Likewise. 28365 * config/darwin.h: Likewise. 28366 * config/dbxelf.h: Likewise. 28367 * config/dfp-bit.c: Likewise. 28368 * config/dfp-bit.h: Likewise. 28369 * config/elfos.h: Likewise. 28370 * config/fixed-bit.c: Likewise. 28371 * config/fixed-bit.h: Likewise. 28372 * config/fp-bit.c: Likewise. 28373 * config/fp-bit.h: Likewise. 28374 * config/fr30/crti.asm: Likewise. 28375 * config/fr30/crtn.asm: Likewise. 28376 * config/fr30/lib1funcs.asm: Likewise. 28377 * config/freebsd-spec.h: Likewise. 28378 * config/frv/cmovd.c: Likewise. 28379 * config/frv/cmovh.c: Likewise. 28380 * config/frv/cmovw.c: Likewise. 28381 * config/frv/frvbegin.c: Likewise. 28382 * config/frv/frvend.c: Likewise. 28383 * config/frv/lib1funcs.asm: Likewise. 28384 * config/glibc-stdint.h: Likewise. 28385 * config/h8300/clzhi2.c: Likewise. 28386 * config/h8300/crti.asm: Likewise. 28387 * config/h8300/crtn.asm: Likewise. 28388 * config/h8300/ctzhi2.c: Likewise. 28389 * config/h8300/fixunssfsi.c: Likewise. 28390 * config/h8300/lib1funcs.asm: Likewise. 28391 * config/h8300/parityhi2.c: Likewise. 28392 * config/h8300/popcounthi2.c: Likewise. 28393 * config/i386/ammintrin.h: Likewise. 28394 * config/i386/att.h: Likewise. 28395 * config/i386/avxintrin.h: Likewise. 28396 * config/i386/biarch64.h: Likewise. 28397 * config/i386/bmmintrin.h: Likewise. 28398 * config/i386/cpuid.h: Likewise. 28399 * config/i386/cross-stdarg.h: Likewise. 28400 * config/i386/crtfastmath.c: Likewise. 28401 * config/i386/crtprec.c: Likewise. 28402 * config/i386/cygming-crtbegin.c: Likewise. 28403 * config/i386/cygming-crtend.c: Likewise. 28404 * config/i386/cygwin.asm: Likewise. 28405 * config/i386/emmintrin.h: Likewise. 28406 * config/i386/gmm_malloc.h: Likewise. 28407 * config/i386/gthr-win32.c: Likewise. 28408 * config/i386/i386.h: Likewise. 28409 * config/i386/immintrin.h: Likewise. 28410 * config/i386/linux-unwind.h: Likewise. 28411 * config/i386/linux64.h: Likewise. 28412 * config/i386/mm3dnow.h: Likewise. 28413 * config/i386/mmintrin-common.h: Likewise. 28414 * config/i386/mmintrin.h: Likewise. 28415 * config/i386/nmmintrin.h: Likewise. 28416 * config/i386/pmm_malloc.h: Likewise. 28417 * config/i386/pmmintrin.h: Likewise. 28418 * config/i386/smmintrin.h: Likewise. 28419 * config/i386/sol2-c1.asm: Likewise. 28420 * config/i386/sol2-ci.asm: Likewise. 28421 * config/i386/sol2-cn.asm: Likewise. 28422 * config/i386/sol2-gc1.asm: Likewise. 28423 * config/i386/tmmintrin.h: Likewise. 28424 * config/i386/unix.h: Likewise. 28425 * config/i386/w32-unwind.h: Likewise. 28426 * config/i386/wmmintrin.h: Likewise. 28427 * config/i386/x86-64.h: Likewise. 28428 * config/i386/x86intrin.h: Likewise. 28429 * config/i386/xmmintrin.h: Likewise. 28430 * config/ia64/crtbegin.asm: Likewise. 28431 * config/ia64/crtend.asm: Likewise. 28432 * config/ia64/crtfastmath.c: Likewise. 28433 * config/ia64/crti.asm: Likewise. 28434 * config/ia64/crtn.asm: Likewise. 28435 * config/ia64/fde-glibc.c: Likewise. 28436 * config/ia64/lib1funcs.asm: Likewise. 28437 * config/ia64/linux-unwind.h: Likewise. 28438 * config/ia64/quadlib.c: Likewise. 28439 * config/ia64/unwind-ia64.c: Likewise. 28440 * config/linux.h: Likewise. 28441 * config/m32c/m32c-lib1.S: Likewise. 28442 * config/m32c/m32c-lib2-trapv.c: Likewise. 28443 * config/m32c/m32c-lib2.c: Likewise. 28444 * config/m32r/initfini.c: Likewise. 28445 * config/m68hc11/larith.asm: Likewise. 28446 * config/m68hc11/m68hc11-crt0.S: Likewise. 28447 * config/m68k/cf.md: Likewise. 28448 * config/m68k/crti.s: Likewise. 28449 * config/m68k/crtn.s: Likewise. 28450 * config/m68k/lb1sf68.asm: Likewise. 28451 * config/m68k/linux-unwind.h: Likewise. 28452 * config/mcore/crti.asm: Likewise. 28453 * config/mcore/crtn.asm: Likewise. 28454 * config/mcore/lib1.asm: Likewise. 28455 * config/mips/linux-unwind.h: Likewise. 28456 * config/mips/loongson.h: Likewise. 28457 * config/mips/mips16.S: Likewise. 28458 * config/mmix/crti.asm: Likewise. 28459 * config/mmix/crtn.asm: Likewise. 28460 * config/pa/fptr.c: Likewise. 28461 * config/pa/hpux-unwind.h: Likewise. 28462 * config/pa/lib2funcs.asm: Likewise. 28463 * config/pa/linux-atomic.c: Likewise. 28464 * config/pa/linux-unwind.h: Likewise. 28465 * config/pa/milli64.S: Likewise. 28466 * config/pa/quadlib.c: Likewise. 28467 * config/pa/stublib.c: Likewise. 28468 * config/picochip/libgccExtras/adddi3.asm: Likewise. 28469 * config/picochip/libgccExtras/ashlsi3.asm: Likewise. 28470 * config/picochip/libgccExtras/ashlsi3.c: Likewise. 28471 * config/picochip/libgccExtras/ashrsi3.asm: Likewise. 28472 * config/picochip/libgccExtras/ashrsi3.c: Likewise. 28473 * config/picochip/libgccExtras/cmpsi2.asm: Likewise. 28474 * config/picochip/libgccExtras/divmod15.asm: Likewise. 28475 * config/picochip/libgccExtras/divmodhi4.asm: Likewise. 28476 * config/picochip/libgccExtras/divmodsi4.asm: Likewise. 28477 * config/picochip/libgccExtras/longjmp.asm: Likewise. 28478 * config/picochip/libgccExtras/lshrsi3.asm: Likewise. 28479 * config/picochip/libgccExtras/lshrsi3.c: Likewise. 28480 * config/picochip/libgccExtras/parityhi2.asm: Likewise. 28481 * config/picochip/libgccExtras/popcounthi2.asm: Likewise. 28482 * config/picochip/libgccExtras/setjmp.asm: Likewise. 28483 * config/picochip/libgccExtras/subdi3.asm: Likewise. 28484 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise. 28485 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise. 28486 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise. 28487 * config/rs6000/750cl.h: Likewise. 28488 * config/rs6000/altivec.h: Likewise. 28489 * config/rs6000/biarch64.h: Likewise. 28490 * config/rs6000/crtresfpr.asm: Likewise. 28491 * config/rs6000/crtresgpr.asm: Likewise. 28492 * config/rs6000/crtresxfpr.asm: Likewise. 28493 * config/rs6000/crtresxgpr.asm: Likewise. 28494 * config/rs6000/crtsavfpr.asm: Likewise. 28495 * config/rs6000/crtsavgpr.asm: Likewise. 28496 * config/rs6000/darwin-asm.h: Likewise. 28497 * config/rs6000/darwin-fallback.c: Likewise. 28498 * config/rs6000/darwin-fpsave.asm: Likewise. 28499 * config/rs6000/darwin-ldouble.c: Likewise. 28500 * config/rs6000/darwin-tramp.asm: Likewise. 28501 * config/rs6000/darwin-unwind.h: Likewise. 28502 * config/rs6000/darwin-vecsave.asm: Likewise. 28503 * config/rs6000/darwin-world.asm: Likewise. 28504 * config/rs6000/e500crtres32gpr.asm: Likewise. 28505 * config/rs6000/e500crtres64gpr.asm: Likewise. 28506 * config/rs6000/e500crtres64gprctr.asm: Likewise. 28507 * config/rs6000/e500crtrest32gpr.asm: Likewise. 28508 * config/rs6000/e500crtrest64gpr.asm: Likewise. 28509 * config/rs6000/e500crtresx32gpr.asm: Likewise. 28510 * config/rs6000/e500crtresx64gpr.asm: Likewise. 28511 * config/rs6000/e500crtsav32gpr.asm: Likewise. 28512 * config/rs6000/e500crtsav64gpr.asm: Likewise. 28513 * config/rs6000/e500crtsav64gprctr.asm: Likewise. 28514 * config/rs6000/e500crtsavg32gpr.asm: Likewise. 28515 * config/rs6000/e500crtsavg64gpr.asm: Likewise. 28516 * config/rs6000/e500crtsavg64gprctr.asm: Likewise. 28517 * config/rs6000/eabi-ci.asm: Likewise. 28518 * config/rs6000/eabi-cn.asm: Likewise. 28519 * config/rs6000/eabi.asm: Likewise. 28520 * config/rs6000/linux-unwind.h: Likewise. 28521 * config/rs6000/linux64.h: Likewise. 28522 * config/rs6000/paired.h: Likewise. 28523 * config/rs6000/paired.md: Likewise. 28524 * config/rs6000/ppc64-fp.c: Likewise. 28525 * config/rs6000/ppu_intrinsics.h: Likewise. 28526 * config/rs6000/rs6000.h: Likewise. 28527 * config/rs6000/si2vmx.h: Likewise. 28528 * config/rs6000/sol-ci.asm: Likewise. 28529 * config/rs6000/sol-cn.asm: Likewise. 28530 * config/rs6000/spe.h: Likewise. 28531 * config/rs6000/spu2vmx.h: Likewise. 28532 * config/rs6000/sysv4.h: Likewise. 28533 * config/rs6000/tramp.asm: Likewise. 28534 * config/rs6000/vec_types.h: Likewise. 28535 * config/s390/linux-unwind.h: Likewise. 28536 * config/s390/tpf-unwind.h: Likewise. 28537 * config/score/crti.asm: Likewise. 28538 * config/score/crtn.asm: Likewise. 28539 * config/sh/crt1.asm: Likewise. 28540 * config/sh/crti.asm: Likewise. 28541 * config/sh/crtn.asm: Likewise. 28542 * config/sh/divtab-sh4-300.c: Likewise. 28543 * config/sh/divtab-sh4.c: Likewise. 28544 * config/sh/divtab.c: Likewise. 28545 * config/sh/lib1funcs-4-300.asm: Likewise. 28546 * config/sh/lib1funcs-Os-4-200.asm: Likewise. 28547 * config/sh/lib1funcs.asm: Likewise. 28548 * config/sh/lib1funcs.h: Likewise. 28549 * config/sh/linux-atomic.asm: Likewise. 28550 * config/sh/linux-unwind.h: Likewise. 28551 * config/sh/shmedia.h: Likewise. 28552 * config/sh/sshmedia.h: Likewise. 28553 * config/sh/ushmedia.h: Likewise. 28554 * config/sparc/crtfastmath.c: Likewise. 28555 * config/sparc/linux-unwind.h: Likewise. 28556 * config/sparc/sol2-c1.asm: Likewise. 28557 * config/sparc/sol2-ci.asm: Likewise. 28558 * config/sparc/sol2-cn.asm: Likewise. 28559 * config/spu/divmodti4.c: Likewise. 28560 * config/spu/divv2df3.c: Likewise. 28561 * config/spu/float_disf.c: Likewise. 28562 * config/spu/float_unsdidf.c: Likewise. 28563 * config/spu/float_unsdisf.c: Likewise. 28564 * config/spu/float_unssidf.c: Likewise. 28565 * config/spu/mfc_multi_tag_release.c: Likewise. 28566 * config/spu/mfc_multi_tag_reserve.c: Likewise. 28567 * config/spu/mfc_tag_release.c: Likewise. 28568 * config/spu/mfc_tag_reserve.c: Likewise. 28569 * config/spu/mfc_tag_table.c: Likewise. 28570 * config/spu/multi3.c: Likewise. 28571 * config/spu/spu_internals.h: Likewise. 28572 * config/spu/spu_intrinsics.h: Likewise. 28573 * config/spu/spu_mfcio.h: Likewise. 28574 * config/spu/vec_types.h: Likewise. 28575 * config/spu/vmx2spu.h: Likewise. 28576 * config/stormy16/stormy16-lib2.c: Likewise. 28577 * config/svr4.h: Likewise. 28578 * config/sync.c: Likewise. 28579 * config/v850/lib1funcs.asm: Likewise. 28580 * config/vxlib-tls.c: Likewise. 28581 * config/vxlib.c: Likewise. 28582 * config/vxworks-dummy.h: Likewise. 28583 * config/xtensa/crti.asm: Likewise. 28584 * config/xtensa/crtn.asm: Likewise. 28585 * config/xtensa/ieee754-df.S: Likewise. 28586 * config/xtensa/ieee754-sf.S: Likewise. 28587 * config/xtensa/lib1funcs.asm: Likewise. 28588 * config/xtensa/lib2funcs.S: Likewise. 28589 * config/xtensa/linux-unwind.h: Likewise. 28590 * config/xtensa/unwind-dw2-xtensa.c: Likewise. 28591 * config/xtensa/unwind-dw2-xtensa.h: Likewise. 28592 * coretypes.h: Likewise. 28593 * crtstuff.c: Likewise. 28594 * defaults.h: Likewise. 28595 * dwarf2.h: Likewise. 28596 * emutls.c: Likewise. 28597 * gbl-ctors.h: Likewise. 28598 * gcov-io.h: Likewise. 28599 * ginclude/float.h: Likewise. 28600 * ginclude/iso646.h: Likewise. 28601 * ginclude/stdarg.h: Likewise. 28602 * ginclude/stdbool.h: Likewise. 28603 * ginclude/stddef.h: Likewise. 28604 * ginclude/stdfix.h: Likewise. 28605 * ginclude/stdint-gcc.h: Likewise. 28606 * ginclude/tgmath.h: Likewise. 28607 * gthr-aix.h: Likewise. 28608 * gthr-dce.h: Likewise. 28609 * gthr-gnat.c: Likewise. 28610 * gthr-gnat.h: Likewise. 28611 * gthr-lynx.h: Likewise. 28612 * gthr-mipssde.h: Likewise. 28613 * gthr-nks.h: Likewise. 28614 * gthr-posix.c: Likewise. 28615 * gthr-posix.h: Likewise. 28616 * gthr-posix95.h: Likewise. 28617 * gthr-rtems.h: Likewise. 28618 * gthr-single.h: Likewise. 28619 * gthr-solaris.h: Likewise. 28620 * gthr-tpf.h: Likewise. 28621 * gthr-vxworks.h: Likewise. 28622 * gthr-win32.h: Likewise. 28623 * gthr.h: Likewise. 28624 * libgcc2.c: Likewise. 28625 * libgcc2.h: Likewise. 28626 * libgcov.c: Likewise. 28627 * tsystem.h: Likewise. 28628 * typeclass.h: Likewise. 28629 * unwind-c.c: Likewise. 28630 * unwind-compat.h: Likewise. 28631 * unwind-dw2-fde-compat.c: Likewise. 28632 * unwind-dw2-fde-darwin.c: Likewise. 28633 * unwind-dw2-fde-glibc.c: Likewise. 28634 * unwind-dw2-fde.c: Likewise. 28635 * unwind-dw2-fde.h: Likewise. 28636 * unwind-dw2.c: Likewise. 28637 * unwind-dw2.h: Likewise. 28638 * unwind-generic.h: Likewise. 28639 * unwind-pe.h: Likewise. 28640 * unwind-sjlj.c: Likewise. 28641 * unwind.inc: Likewise. 28642 * config/arm/neon-gen.ml: Change generated copyright header to 28643 refer to version 3 of the GNU General Public License with 28644 version 3.1 of the GCC Runtime Library Exception and to point 28645 readers at the COPYING3 and COPYING3.RUNTIME files and the 28646 FSF's license web page. 28647 * config/arm/arm_neon.h: Regenerate. 28648 286492009-04-09 Jakub Jelinek <jakub@redhat.com> 28650 28651 * config/cris/cris.md: Change copyright header to refer to version 28652 3 of the GNU General Public License. 28653 * doc/install.texi2html: Change copyright header to refer to version 28654 3 of the GNU General Public License and to point readers at the 28655 COPYING3 file and the FSF's license web page. 28656 * config/vax/linux.h: Likewise. 28657 286582009-04-09 Paolo Bonzini <bonzini@gnu.org> 28659 28660 * config/i386/i386.md (cmpcc): New. 28661 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG. 28662 (sync_compare_and_swap_cc*): Delete. 28663 28664 * config/s390/s390.c (s390_compare_emitted): Remove. 28665 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like 28666 s390_compare_emitted used to be handled. Assert that modes match. 28667 (s390_emit_compare_and_swap): Use s390_emit_compare, do not 28668 refer to sync_compare_and_swap_ccsi. 28669 * config/s390/s390.h (s390_compare_emitted): Remove. 28670 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0 28671 instead of s390_compare_emitted. 28672 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0 28673 instead of s390_compare_emitted. 28674 * config/s390/s390.md (cmpcc): New. 28675 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber 28676 CC_REGNUM, do not pretend it's set. 28677 (sync_compare_and_swap_cc*): Delete. 28678 * config/s390/predicates.md (cc_reg_operand): New. 28679 28680 * expr.c (sync_compare_and_swap_cc): Delete. 28681 * optabs.h (sync_compare_and_swap_cc): Delete. 28682 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode 28683 is being used with can_compare_p. 28684 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab. 28685 (find_cc_set): New. 28686 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc, 28687 look for a MODE_CC set instead. Use emit_store_flag. 28688 (expand_compare_and_swap_loop): Likewise, with some additional 28689 complication to avoid a force_reg when useless. Use 28690 emit_cmp_and_jump_insns. 28691 * genopinit.c (optabs): Delete sync_compare_and_swap_cc. 28692 * doc/md.texi (sync_compare_and_swap_cc): Merge with 28693 sync_compare_and_swap documentation. 28694 286952009-04-09 Jan Hubicka <jh@suse.cz> 28696 28697 * except.c (find_prev_try): Break out from .... 28698 (duplicate_eh_regions): ... here; properly update prev_try pointers 28699 when duplication part of tree. 28700 (dump_eh_tree): Improve dumping. 28701 (verify_eh_region): New. 28702 (verify_eh_tree): Use it. 28703 287042009-04-06 Richard Guenther <rguenther@suse.de> 28705 28706 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC 28707 &ARRAY addresses by adjusting their types and prepending 28708 a conversion. 28709 * tree-cfg.c (verify_gimple_assign_single): Verify that 28710 addresses are correct. 28711 287122009-04-09 Richard Guenther <rguenther@suse.de> 28713 28714 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant 28715 indices into an array reference if possible. 28716 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): 28717 Fold POINTER_PLUS_EXPR statements with invariant address. 28718 287192009-04-09 Alan Modra <amodra@bigpond.net.au> 28720 28721 PR target/39634 28722 * config.gcc (powerpc64-*-linux*): Always build biarch. 28723 287242009-04-09 Joseph Myers <joseph@codesourcery.com> 28725 28726 PR c/39613 28727 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold 28728 it and pedwarn if this results in an INTEGER_CST. 28729 287302009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 28731 28732 * doc/install.texi: Update minimum GMP version. Remove obsolete 28733 text in MPFR section. 28734 287352009-04-08 Jakub Jelinek <jakub@redhat.com> 28736 28737 * dwarf2out.c (class_scope_p): New static inline. 28738 (class_or_namespace_scope_p): Use it. 28739 (gen_variable_die): Use DW_TAG_member tag for static data member 28740 declarations instead of DW_TAG_variable. 28741 28742 PR middle-end/39573 28743 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls 28744 variables. 28745 287462009-04-08 Richard Guenther <rguenther@suse.de> 28747 28748 * tree-ssa-sccvn.c (valueize_refs): Do not continue to 28749 valueize random data. 28750 287512009-04-08 David Edelsohn <edelsohn@gnu.org> 28752 28753 * config.gcc (aix tm_file): Add aix-stdint.h. 28754 (aix tm clause use_gcc_stdint): Set to wrap. 28755 * config/rs6000/aix-stdint.h: New file. 28756 287572009-04-08 Richard Guenther <rguenther@suse.de> 28758 28759 PR middle-end/36291 28760 * tree-dfa.c (add_referenced_var): Do not recurse into 28761 global initializers. 28762 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly 28763 exposed variables. 28764 (fold_const_aggregate_ref): Likewise. 28765 287662009-04-08 Paolo Bonzini <bonzini@gnu.org> 28767 28768 * recog.c (ordered_comparison_operator): New. 28769 * gensupport.c (std_preds): Add it. 28770 * doc/md.texi (Machine-Independent Predicates): Document it. 28771 287722009-04-08 Jan Hubicka <jh@suse.cz> 28773 28774 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging. 28775 * function.h (rtl_eh): Remove exception_handler_label_map. 28776 * except.c (ehl_hash, ehl_eq, add_ehl_entry, 28777 remove_exception_handler_label, for_each_eh_label_1): Remove. 28778 (rtl_remove_unreachable_regions): Remove. 28779 (convert_from_eh_region_ranges): Do not remove unreachable regions. 28780 (find_exception_handler_labels): Don't build the hashtable. 28781 (maybe_remove_eh_handler): Remove. 28782 (for_each_eh_label): Rewrite to walk the tree. 28783 (rest_of_handle_eh): Do not cleanup cfg prior EH construction. 28784 * except.h (maybe_remove_eh_handler): Remove. 28785 * passes.c (init_optimization_passes): Schedule second EH cleanup 28786 before out-of-ssa. 28787 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks, 28788 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler. 28789 287902009-04-08 Paolo Bonzini <bonzini@gnu.org> 28791 28792 * genoutput.c (validate_optab_operands): New. 28793 (gen_insn, gen_expand): Call it. 28794 28795 * genflags.c (gen_insn): Detect misused iterators. 28796 (main): Pass line_no to gen_insn, exit with status 1 on error. 28797 28798 * genextract.c (line_no): Make global. 28799 (VEC_safe_set_locstr): Change assertion to error message. 28800 (main): Exit with status 1 on error. 28801 288022009-04-08 Joseph Myers <joseph@codesourcery.com> 28803 28804 PR c/39614 28805 PR c/39673 28806 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR, 28807 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST, 28808 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions. 28809 * c-convert.c (convert): Do not call fold on results of conversion 28810 functions when the result is a C_MAYBE_CONST_EXPR. 28811 * c-parser.c (c_parser_postfix_expression): Do not fold condition 28812 of __builtin_choose_expr. 28813 * c-typeck.c (remove_c_maybe_const_expr): New. 28814 (build_unary_op, build_conditional_expr, build_compound_expr, 28815 build_binary_op, c_objc_common_truthvalue_conversion): Call 28816 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with 28817 integer operands. 28818 288192009-04-08 Bingfeng Mei <bmei@broadcom.com> 28820 28821 * fold-const.c (const_binop): Combine two VECTOR_CST under operation 28822 CODE to produce a new one. Add a prototype to use fold_convert_const 28823 288242009-04-08 Danny Smith <dannysmith@users.sourceforge.net> 28825 28826 PR bootstrap/39660 28827 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't 28828 mix declarations and code. 28829 288302009-04-08 Ben Elliston <bje@au.ibm.com> 28831 28832 * gcc.c: Replace `CC' with `GCC' throughout. 28833 288342009-04-07 H.J. Lu <hongjiu.lu@intel.com> 28835 28836 * doc/invoke.texi: Document Atom support. 28837 288382009-04-07 Jason Merrill <jason@redhat.com> 28839 28840 PR c++/25185 28841 * c-common.h, c-common.c: Add flag_pretty_templates. 28842 * c-opts.c (c_common_handle_option): Set it. 28843 * c.opt: Add -fno-pretty-templates. 28844 * doc/invoke.texi (C++ Dialect Options): Likewise. 28845 288462009-04-07 Uros Bizjak <ubizjak@gmail.com> 28847 28848 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ. 28849 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ. 28850 (ia64_expand_builtin): Likewise. 28851 288522009-04-07 Martin Jambor <mjambor@suse.cz> 28853 28854 * tree-ssa-alias.c (refs_may_alias_p_1): Check for 28855 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant 28856 ADDR_EXPRS are include too. 28857 288582009-04-07 Richard Guenther <rguenther@suse.de> 28859 28860 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased 28861 decls are only used if passes as parameters or if they are 28862 local statics and the call is not to a builtin. 28863 (call_may_clobber_ref_p_1): Likewise. 28864 288652009-04-07 Paolo Bonzini <bonzini@gnu.org> 28866 28867 * expr.c (do_store_flag): Remove last argument. Simplify code 28868 to avoid duplication of tests already done by can_compare_p. 28869 (expand_expr_real_1): Adjust caller. 28870 288712009-04-07 Paolo Bonzini <bonzini@gnu.org> 28872 28873 * optabs.c (can_compare_p): Test the predicate of a 28874 cbranch and cstore pattern. 28875 288762009-04-07 Paolo Bonzini <bonzini@gnu.org> 28877 28878 * expr.c (convert_move): Use emit_store_flag instead of 28879 "emulating" it. 28880 288812009-04-07 Paolo Bonzini <bonzini@gnu.org> 28882 28883 * config/i386/i386.c (ix86_compare_emitted): Remove. 28884 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC 28885 ix86_compare_op0 like ix86_compare_emitted used to be handled. 28886 * config/i386/i386.h (ix86_compare_emitted): Remove. 28887 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0 28888 instead of ix86_compare_emitted. 28889 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise. 28890 288912009-04-07 Andrew Stubbs <ams@codesourcery.com> 28892 28893 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file. 28894 Add t-sysroot-suffix to tmake_file. 28895 * config/print-sysroot-suffix.sh: New file. 28896 * config/t-sysroot-suffix: New file. 28897 288982009-04-07 Ben Elliston <bje@au.ibm.com> 28899 28900 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf, 28901 as the latter produces a warning when the target does not support 28902 infinity. 28903 289042009-04-07 Ben Elliston <bje@au.ibm.com> 28905 28906 * dfp.c: Replace type punning assignments with memcpy throughout. 28907 * Makefile.in (dfp.o-warn): Remove. 28908 289092009-04-07 Alan Modra <amodra@bigpond.net.au> 28910 28911 PR target/39634 28912 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*. 28913 Include soft-fp/t-softfp after rs6000/t-linux64. 28914 289152009-04-06 Eric Botcazou <ebotcazou@adacore.com> 28916 28917 * stor-layout.c (set_sizetype): Use the full precision of their 28918 machine mode for bitsize types. 28919 289202009-04-06 H.J. Lu <hongjiu.lu@intel.com> 28921 28922 * config/i386/i386.md: Revert 2 accidental checkins. 28923 289242009-04-06 Joey Ye <joey.ye@intel.com> 28925 Xuepeng Guo <xuepeng.guo@intel.com> 28926 H.J. Lu <hongjiu.lu@intel.com> 28927 28928 Atom pipeline model, tuning and insn selection. 28929 * config.gcc (atom): Add atom config options and target. 28930 28931 * config/i386/atom.md: New. 28932 28933 * config/i386/i386.c (atom_cost): New cost. 28934 (m_ATOM): New macro flag. 28935 (initial_ix86_tune_features): Set m_ATOM. 28936 (x86_accumulate_outgoing_args): Likewise. 28937 (x86_arch_always_fancy_math_387): Likewise. 28938 (processor_target): Add Atom cost. 28939 (cpu_names): Add Atom cpu name. 28940 (override_options): Set Atom ISA. 28941 (ix86_issue_rate): New case PROCESSOR_ATOM. 28942 (ix86_adjust_cost): Likewise. 28943 28944 * config/i386/i386.h (TARGET_ATOM): New target macro. 28945 (ix86_tune_indices): Add X86_TUNE_OPT_AGU. 28946 (TARGET_OPT_AGU): New target option. 28947 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom. 28948 (processor_type): Add PROCESSOR_ATOM. 28949 28950 * config/i386/i386.md (cpu): Add new value "atom". 28951 (use_carry, movu): New attr. 28952 (atom.md): Include atom.md. 28953 (adddi3_carry_rex64): Set attr "use_carry". 28954 (addqi3_carry): Likewise. 28955 (addhi3_carry): Likewise. 28956 (addsi3_carry): Likewise. 28957 (*addsi3_carry_zext): Likewise. 28958 (subdi3_carry_rex64): Likewise. 28959 (subqi3_carry): Likewise. 28960 (subhi3_carry): Likewise. 28961 (subsi3_carry): Likewise. 28962 (x86_movdicc_0_m1_rex64): Likewise. 28963 (*x86_movdicc_0_m1_se): Likewise. 28964 (x86_movsicc_0_m1): Likewise. 28965 (*x86_movsicc_0_m1_se): Likewise. 28966 (*adddi_1_rex64): Emit add insn as much as possible. 28967 (*addsi_1): Likewise. 28968 (return_internal): Set atom_unit. 28969 (return_internal_long): Likewise. 28970 (return_pop_internal): Likewise. 28971 (*rcpsf2_sse): Set atom_sse_attr attr. 28972 (*qrt<mode>2_sse): Likewise. 28973 (*prefetch_sse): Likewise. 28974 28975 * config/i386/i386-c.c (ix86_target_macros_internal): New case 28976 PROCESSOR_ATOM. 28977 (ix86_target_macros_internal): Likewise. 28978 28979 * config/i386/sse.md (cpu): Set attr "atom_sse_attr". 28980 (*prefetch_sse_rex): Likewise. 28981 (sse_rcpv4sf2): Likewise. 28982 (sse_vmrcpv4sf2): Likewise. 28983 (sse_sqrtv4sf2): Likewise. 28984 (<sse>_vmsqrt<mode>2): Likewise. 28985 (sse_ldmxcsr): Likewise. 28986 (sse_stmxcsr): Likewise. 28987 (*sse_sfence): Likewise. 28988 (sse2_clflush): Likewise. 28989 (*sse2_mfence): Likewise. 28990 (*sse2_lfence): Likewise. 28991 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu". 28992 (<sse>_movup<ssemodesuffixf2c>): Likewise. 28993 (avx_movdqu<avxmodesuffix>): Likewise. 28994 (avx_lddqu<avxmodesuffix>): Likewise. 28995 (sse2_movntv2di): Change attr "type" to "ssemov". 28996 (sse2_movntsi): Likewise. 28997 (rsqrtv8sf2): Change attr "type" to "sseadd". 28998 (sse3_addsubv2df3): Set attr "atom_unit". 28999 (sse3_h<plusminus_insn>v4sf3): Likewise. 29000 (*sse2_pmaddwd): Likewise. 29001 (*vec_extractv2di_1_rex64): Likewise. 29002 (*vec_extractv2di_1_avx): Likewise. 29003 (sse2_psadbw): Likewise. 29004 (ssse3_phaddwv8hi3): Likewise. 29005 (ssse3_phaddwv4hi3): Likewise. 29006 (ssse3_phadddv4si3): Likewise. 29007 (ssse3_phadddv2si3): Likewise. 29008 (ssse3_phaddswv8hi3): Likewise. 29009 (ssse3_phaddswv4hi3): Likewise. 29010 (ssse3_phsubwv8hi3): Likewise. 29011 (ssse3_phsubwv4hi3): Likewise. 29012 (ssse3_phsubdv4si3): Likewise. 29013 (ssse3_phsubdv2si3): Likewise. 29014 (ssse3_phsubswv8hi3): Likewise. 29015 (ssse3_phsubswv4hi3): Likewise. 29016 (ssse3_pmaddubsw128): Likewise. 29017 (sse3_pmaddubsw: Likewise. 29018 (ssse3_palignrti): Likewise. 29019 (ssse3_palignrdi): Likewise. 29020 290212009-04-06 Gerald Pfeifer <gerald@pfeifer.com> 29022 29023 * doc/install.texi (Specific): Fix two cross-references to MinGW. 29024 290252009-04-06 Richard Guenther <rguenther@suse.de> 29026 29027 PR tree-optimization/28868 29028 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track 29029 of which PHI results we inserted. 29030 (insert_into_preds_of_block): Record inserted PHIs. 29031 (eliminate): Eliminate redundant PHI nodes. 29032 (init_pre): Init inserted_phi_names. 29033 290342009-04-06 Richard Guenther <rguenther@suse.de> 29035 29036 PR tree-optimization/39643 29037 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and 29038 IMAGPART_EXPRs of complex constants. 29039 (execute_fold_all_builtins): If we folded a call queue 29040 TODO_update_address_taken. 29041 290422009-04-06 Jan Hubicka <jh@suse.cz> 29043 29044 PR middle-end/39659 29045 * except.c (remove_unreachable_regions): Propagate may_contain_throw 29046 flag. 29047 290482009-04-06 Andrew Stubbs <ams@codesourcery.com> 29049 29050 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the 29051 delay slot. 29052 (ic_invalidate_array): Likewise. 29053 290542009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com> 29055 29056 * calls.c (emit_library_call_value_1): Fix a problem with parameter 29057 alignment for library calls. 29058 290592009-04-06 Danny Smith <dannysmith@users.sourceforge.net> 29060 29061 * config.gcc (mingw32 tm_file): Add mingw-stdint.h. 29062 (mingw32 tm clause use_gcc_stdint): Set to wrap. 29063 * config/i386/mingw-stdint.h: New file. 29064 290652009-04-05 Richard Guenther <rguenther@suse.de> 29066 29067 PR tree-optimization/39648 29068 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around 29069 our &A vs. &A[0] IL deficiencies. 29070 290712009-04-04 Jan Hubicka <jh@suse.cz> 29072 29073 * except.c (sjlj_find_directly_reachable_regions): Be ready for 29074 removed toplevel regions. 29075 (sjlj_mark_call_sites): Likewise. 29076 290772009-04-04 Dave Korn <dave.korn.cygwin@gmail.com> 29078 29079 * config.gcc (cygwin tm_file): Add cygwin-stdint.h. 29080 (cygwin tm clause use_gcc_stdint): Set to wrap. 29081 * config/i386/cygwin-stdint.h: New file. 29082 290832009-04-04 Richard Guenther <rguenther@suse.de> 29084 29085 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency. 29086 * tree-ssa-copy.c (init_copy_prop): Do not propagate through 29087 single-argument PHIs if we are in loop-closed SSA form. 29088 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards 29089 for the pre-condition. 29090 (slpeel_tree_peel_loop_to_edge): Likewise. 29091 (vect_build_loop_niters): Take an optional sequence to append stmts. 29092 (vect_generate_tmps_on_preheader): Likewise. 29093 (vect_do_peeling_for_loop_bound): Take extra guards for the 29094 pre-condition. 29095 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply 29096 the cost model check. 29097 (vect_loop_versioning): Take stmt and stmt list to put pre-condition 29098 guards if we are going to peel. Do not apply versioning in that case. 29099 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration. 29100 (vect_do_peeling_for_loop_bound): Likewise. 29101 * tree-vect-loop.c (vect_transform_loop): If we are peeling for 29102 loop bound only record extra pre-conditions, do not apply loop 29103 versioning. 29104 291052009-04-04 Richard Guenther <rguenther@suse.de> 29106 29107 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic 29108 renaming code. 29109 291102009-04-04 Jan Hubicka <jh@suse.cz> 29111 29112 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use 29113 last_basic_block for size of bb->index indexed array. 29114 * bt-load.c (compute_defs_uses_and_gen, compute_kill, 29115 compute_out, link_btr_uses, build_btr_def_use_webs, 29116 build_btr_def_use_webs, migrate_btr_defs): Likewise. 29117 291182009-04-04 Jan Hubicka <jh@suse.cz> 29119 29120 * except.c (remove_eh_handler_and_replace): Break out from ... 29121 (remove_eh_handler): ... here. 29122 (bring_to_root): New function. 29123 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime 29124 handled ones, bring others to root of tree. 29125 291262009-04-04 Jan Hubicka <jh@suse.cz> 29127 29128 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully. 29129 (all_phis_safe_to_merge): New function. 29130 (update_info): New structure. 29131 (make_eh_edge_and_update_phi, update_eh_edges): New functions. 29132 (cleanup_empty_eh): Update SSA if possible. 29133 291342009-04-04 Richard Guenther <rguenther@suse.de> 29135 29136 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs. 29137 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0. 29138 (append_vuse): Likewise. 29139 291402009-04-04 Jakub Jelinek <jakub@redhat.com> 29141 29142 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value. 29143 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED 29144 instead of REG_UNSAVED for DW_CFA_undefined. 29145 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED. 29146 (uw_update_context): If RA column is REG_UNDEFINED, mark it as 29147 outermost frame. 29148 291492009-04-04 Richard Earnshaw <rearnsha@arm.com> 29150 29151 PR target/39501 29152 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT. 29153 291542009-04-04 Richard Guenther <rguenther@suse.de> 29155 29156 PR tree-optimization/8781 29157 PR tree-optimization/37892 29158 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare. 29159 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function. 29160 (valueize_refs): Call it for *& valueizations. 29161 (shared_reference_ops_from_ref): Rename to ... 29162 (valueize_shared_reference_ops_from_ref): ... this and valueize. 29163 (shared_reference_ops_from_call): Rename to ... 29164 (valueize_shared_reference_ops_from_call): ... this and valueize. 29165 (vn_reference_lookup): Update. 29166 (visit_reference_op_call): Likewise. 29167 * tree-ssa-pre.c (phi_translate_1): Fold *&. 29168 (eliminate): Value-replace the call address in call statements. 29169 291702009-04-04 Richard Guenther <rguenther@suse.de> 29171 29172 PR tree-optimization/39636 29173 * tree-ssa-forwprop.c 29174 (forward_propagate_addr_into_variable_array_index): Check for 29175 GIMPLE_ASSIGN before accessing the rhs code. 29176 291772009-04-03 Jason Merrill <jason@redhat.com> 29178 29179 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL. 29180 291812009-04-03 Steve Ellcey <sje@cup.hp.com> 29182 29183 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2, 29184 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2, 29185 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2, 29186 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2, 29187 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal, 29188 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf, 29189 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal, 29190 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2, 29191 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4, 29192 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr, 29193 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2, 29194 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc, 29195 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf, 29196 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3, 29197 sqrtxf2, sqrtxf2_internal_thr, *recip_approx): 29198 Use fr_reg_or_fp01_operand instead of fr_register_operand 29199 29200 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2, 29201 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat, 29202 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto. 29203 292042009-04-03 Vladimir Makarov <vmakarov@redhat.com> 29205 29206 PR rtl-optimization/39607 29207 PR rtl-optimization/39631 29208 29209 Revert: 29210 29211 2009-03-30 Vladimir Makarov <vmakarov@redhat.com> 29212 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out 29213 instead of DF_LR_OUT. 29214 * ira-lives.c (process_bb_node_lives): Ditto. 29215 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in} 29216 instead of DF_LR_{OUT,IN}. 29217 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto. 29218 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto. 29219 292202009-04-03 Steven Bosscher <steven@gcc.gnu.org> 29221 29222 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp. 29223 (execute_lower_omp): Always run but take the short way out if -fopenmp 29224 is not given. 29225 (gate_lower_omp): Remove, forcing the pass manager to always run the 29226 pass and always set PROP_gimple_lomp. 29227 (pass_lower_omp): Remove gate function. 29228 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide 29229 PROP_trees. Instead, require it. 29230 * ipa-cp.c (pass_ipa_cp): Likewise. 29231 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg. 29232 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem. 29233 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg 29234 and PROP_gimple_leh. 29235 292362009-04-03 Richard Guenther <rguenther@suse.de> 29237 29238 PR middle-end/13146 29239 PR tree-optimization/23940 29240 PR tree-optimization/33237 29241 PR middle-end/33974 29242 PR middle-end/34093 29243 PR tree-optimization/36201 29244 PR tree-optimization/36230 29245 PR tree-optimization/38049 29246 PR tree-optimization/38207 29247 PR tree-optimization/38230 29248 PR tree-optimization/38301 29249 PR tree-optimization/38585 29250 PR middle-end/38895 29251 PR tree-optimization/38985 29252 PR tree-optimization/39299 29253 * tree-ssa-structalias.h: Remove. 29254 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. 29255 (NULL_DEF_OPERAND_P): Make of type def_operand_p. 29256 (struct vuse_element_d): Remove. 29257 (struct vuse_vec_d): Likewise. 29258 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, 29259 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, 29260 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, 29261 VUSE_ELEMENT_VAR): Likewise. 29262 (struct voptype_d): Likewise. 29263 (NUM_VOP_FREE_BUCKETS): Likewise. 29264 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. 29265 (struct stmt_operands_d): Remove. 29266 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, 29267 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, 29268 VDEF_NUM, VDEF_VECT): Likewise. 29269 (copy_virtual_operands): Remove. 29270 (operand_build_cmp): Likewise. 29271 (create_ssa_artificial_load_stmt): Likewise. 29272 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. 29273 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm 29274 vuse_index and mayuse_index members. Pack and move done and iter_type 29275 members to the front. 29276 (SSA_OP_VMAYUSE): Remove. 29277 (SSA_OP_VIRTUAL_USES): Adjust. 29278 (FOR_EACH_SSA_VDEF_OPERAND): Remove. 29279 (unlink_stmt_vdef): Declare. 29280 (add_to_addressable_set): Remove. 29281 * tree-vrp.c (stmt_interesting_for_vrp): Adjust. 29282 (vrp_visit_stmt): Likewise. 29283 * doc/tree-ssa.texi (Alias analysis): Update. 29284 * doc/invoke.texi (max-aliased-vops): Remove docs. 29285 (avg-aliased-vops): Likewise. 29286 * tree-into-ssa.c (syms_to_rename): Remove. 29287 (need_to_update_vops_p): Likewise. 29288 (need_to_initialize_update_ssa_p): Rename to ... 29289 (update_ssa_initialized_fn): ... this. Track function we are 29290 initialized for. 29291 (symbol_marked_for_renaming): Simplify. 29292 (add_new_name_mapping): Do not set need_to_update_vops_p. 29293 (dump_currdefs): Use SYMS_TO_RENAME. 29294 (rewrite_update_stmt): Always walk all uses/defs. 29295 (dump_update_ssa): Adjust. 29296 (init_update_ssa): Take function argument. Track what we are 29297 initialized for. 29298 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. 29299 (create_new_def_for): Initialize for cfun, assert we are initialized 29300 for cfun. 29301 (mark_sym_for_renaming): Simplify. 29302 (mark_set_for_renaming): Do not initialize update-ssa. 29303 (need_ssa_update_p): Simplify. Take function argument. 29304 (name_mappings_registered_p): Assert we ask for the correct function. 29305 (name_registered_for_update_p): Likewise. 29306 (ssa_names_to_replace): Likewise. 29307 (release_ssa_name_after_update_ssa): Likewise. 29308 (update_ssa): Likewise. Use SYMS_TO_RENAME. 29309 (dump_decl_set): Do not print a newline. 29310 (debug_decl_set): Do it here. 29311 (dump_update_ssa): And here. 29312 * tree-ssa-loop-im.c (move_computations): Adjust. 29313 (movement_possibility): Likewise. 29314 (determine_max_movement): Likewise. 29315 (gather_mem_refs_stmt): Likewise. 29316 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG 29317 or NAME_MEMORY_TAG. 29318 * tree-complex.c (update_all_vops): Remove. 29319 (expand_complex_move): Adjust. 29320 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. 29321 Simplify test for memory referencing statement. Exclude 29322 non-invariant ADDR_EXPRs. 29323 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. 29324 * tree-loop-distribution.c (generate_memset_zero): Adjust. 29325 (rdg_flag_uses): Likewise. 29326 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag 29327 related code. 29328 (tree_optimize_tail_calls_1): Also split the 29329 edge from the entry block if we have degenerate PHI nodes in 29330 the first basic block. 29331 * tree.c (init_ttree): Remove memory-tag related code. 29332 (tree_code_size): Likewise. 29333 (tree_node_structure): Likewise. 29334 (build7_stat): Re-write to be build6_stat. 29335 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove. 29336 (SSA_VAR_P): Adjust. 29337 (struct tree_memory_tag): Remove. 29338 (struct tree_memory_partition_tag): Likewise. 29339 (union tree_node): Adjust. 29340 (build7): Re-write to be build6. 29341 * tree-pass.h (pass_reset_cc_flags): Remove. 29342 (TODO_update_address_taken): New flag. 29343 (pass_simple_dse): Remove. 29344 * ipa-cp.c (ipcp_update_callgraph): Update SSA form. 29345 * params.h (MAX_ALIASED_VOPS): Remove. 29346 (AVG_ALIASED_VOPS): Likewise. 29347 * omp-low.c (expand_omp_taskreg): Update SSA form. 29348 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs 29349 aliases the lhs in a copy stmt. 29350 * tree-ssa-dse.c (struct address_walk_data): Remove. 29351 (memory_ssa_name_same): Likewise. 29352 (memory_address_same): Likewise. 29353 (get_kill_of_stmt_lhs): Likewise. 29354 (dse_possible_dead_store_p): Simplify, use the oracle. Handle 29355 unused stores. Look through PHI nodes into post-dominated regions. 29356 (dse_optimize_stmt): Simplify. Properly remove stores. 29357 (tree_ssa_dse): Compute dominators. 29358 (execute_simple_dse): Remove. 29359 (pass_simple_dse): Likewise. 29360 * ipa-reference.c (scan_stmt_for_static_refs): Open-code 29361 gimple_loaded_syms and gimple_stored_syms computation. 29362 * toplev.c (dump_memory_report): Dump alias and pta stats. 29363 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify. 29364 (vn_reference_eq): Likewise. 29365 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec, 29366 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt, 29367 valueize_vuses): Remove. 29368 (get_def_ref_stmt_vuses): Simplify. Rename to ... 29369 (get_def_ref_stmt_vuse): ... this. 29370 (vn_reference_lookup_2): New function. 29371 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for 29372 walking equivalent vuses. Simplify. 29373 (vn_reference_lookup): Likewise. 29374 (vn_reference_insert): Likewise. 29375 (vn_reference_insert_pieces): Likewise. 29376 (visit_reference_op_call): Simplify. 29377 (visit_reference_op_load): Likewise. 29378 (visit_reference_op_store): Likewise. 29379 (init_scc_vn): Remove shared_lookup_vuses initialization. 29380 (free_scc_vn): Remove shared_lookup_vuses freeing. 29381 (sort_vuses, sort_vuses_heap): Remove. 29382 (get_ref_from_reference_ops): Export. 29383 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses 29384 vector with single vuse pointer. 29385 (vn_reference_lookup_pieces, vn_reference_lookup, 29386 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes. 29387 (shared_vuses_from_stmt): Remove. 29388 (get_ref_from_reference_ops): Declare. 29389 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust. 29390 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove 29391 memory-tag related code. 29392 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code. 29393 (likely_value): Add comment, skip static-chain of call statements. 29394 (surely_varying_stmt_p): Adjust. 29395 (gimplify_and_update_call_from_tree): Likewise. 29396 (execute_fold_all_builtins): Do not rebuild alias info. 29397 (gimplify_and_update_call_from_tree): Properly update VOPs. 29398 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove. 29399 (copy_ref_info): Remove memory-tag related code. 29400 * tree-call-cdce.c (tree_call_cdce): Rename the VOP. 29401 * ipa-pure-const.c (check_decl): Remove memory-tag related code. 29402 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms 29403 computation. 29404 * tree-ssa-dom.c (gimple_p): Remove typedef. 29405 (eliminate_redundant_computations): Adjust. 29406 (record_equivalences_from_stmt): Likewise. 29407 (avail_expr_hash): Likewise. 29408 (avail_expr_eq): Likewise. 29409 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs. 29410 (stmt_makes_single_load): Likewise. 29411 (stmt_makes_single_store): Likewise. 29412 * tree-ssa-alias.c: Rewrite completely. 29413 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats, 29414 debug_mem_sym_stats, dump_mem_sym_stats_for_var, 29415 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt, 29416 delete_mem_ref_stats, create_tag_raw, dump_points_to_info, 29417 dump_may_aliases_for, debug_may_aliases_for, new_type_alias): 29418 Remove public functions. 29419 (pass_reset_cc_flags): Remove. 29420 (pass_build_alias): Move ... 29421 * tree-ssa-structalias.c (pass_build_alias): ... here. 29422 * tree-ssa-alias.c (may_be_aliased): Move ... 29423 * tree-flow-inline.h (may_be_aliased): ... here. 29424 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs, 29425 count_uses_and_derefs): Move ... 29426 * gimple.c: ... here. 29427 * gimple.h (count_uses_and_derefs): Declare. 29428 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p, 29429 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p, 29430 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p, 29431 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p, 29432 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p, 29433 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until, 29434 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs): 29435 New functions. 29436 * tree-dfa.c (refs_may_alias_p): Move ... 29437 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend. 29438 * tree-ssa-alias.h: New file. 29439 * tree-ssa-sink.c (is_hidden_global_store): Adjust. 29440 (statement_sink_location): Likewise. 29441 * opts.c (decode_options): Do not adjust max-aliased-vops or 29442 avg-aliased-vops values. 29443 * timevar.def (TV_TREE_MAY_ALIAS): Remove. 29444 (TV_CALL_CLOBBER): Likewise. 29445 (TV_FLOW_SENSITIVE): Likewise. 29446 (TV_FLOW_INSENSITIVE): Likewise. 29447 (TV_MEMORY_PARTITIONING): Likewise. 29448 (TV_ALIAS_STMT_WALK): New timevar. 29449 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust. 29450 * tree-ssa-address.c (create_mem_ref_raw): Use build6. 29451 (get_address_description): Remove memory-tag related code. 29452 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust. 29453 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove. 29454 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs 29455 and immediate uses in statements. Document. 29456 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust. 29457 (dump_symbols): Remove. 29458 (dump_gimple_mem_ops): Do not dump loaded or stored syms. 29459 * alias.c (get_deref_alias_set): New function split out from ... 29460 (get_alias_set): ... here. 29461 * alias.h (get_deref_alias_set): Declare. 29462 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused 29463 type parameter. Remove restrict pointer handling. Create a 29464 ref-all pointer in case type-based alias sets do not conflict. 29465 (vect_analyze_data_refs): Remove SMT related code. 29466 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert. 29467 (vectorizable_load): Likewise. 29468 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field. 29469 (DR_SYMBOL_TAG, DR_VOPS): Remove. 29470 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle. 29471 Ignore vops and SMTs. 29472 (dr_analyze_alias): Likewise.. 29473 (free_data_ref): Likewise. 29474 (create_data_ref): Likewise. 29475 (analyze_all_data_dependences): Likewise. 29476 (get_references_in_stmt): Adjust. 29477 * tree-flow-inline.h (gimple_aliases_computed_p, 29478 gimple_addressable_vars, gimple_call_clobbered_vars, 29479 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition, 29480 factoring_name_p, mark_call_clobbered, clear_call_clobbered, 29481 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag, 29482 gimple_mem_ref_stats): Remove. 29483 (gimple_vop): New function. 29484 (op_iter_next_use): Remove vuses and mayuses cases. 29485 (op_iter_next_def): Remove vdefs case. 29486 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases. 29487 (clear_and_done_ssa_iter): Do not set removed fields. 29488 (op_iter_init): Likewise. Skip vuse and/or vdef if requested. 29489 Assert we are not iterating over vuses or vdefs if not also 29490 iterating over uses or defs. 29491 (op_iter_init_use): Likewise. 29492 (op_iter_init_def): Likewise. 29493 (op_iter_next_vdef): Remove. 29494 (op_iter_next_mustdef): Likewise. 29495 (op_iter_init_vdef): Likewise. 29496 (compare_ssa_operands_equal): Likewise. 29497 (link_use_stmts_after): Handle vuse operand. 29498 (is_call_used): Use is_call_clobbered. 29499 (is_call_clobbered): Global variables are always call clobbered, 29500 query the call-clobbers bitmap. 29501 (mark_call_clobbered): Ignore global variables. 29502 (clear_call_clobbered): Likewise. 29503 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust 29504 virtual operands sanity check. 29505 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG): 29506 Remove. 29507 (TARGET_MEM_REF): Remove TMR_TAG operand. 29508 * tree-dfa.c (add_referenced_var): Initialize call-clobber state. 29509 Remove call-clobber related code. 29510 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag. 29511 (dump_variable): Do not dump SMTs, memory stats, may-aliases or 29512 partitions or escape reason. 29513 (get_single_def_stmt, get_single_def_stmt_from_phi, 29514 get_single_def_stmt_with_phi): Remove. 29515 (dump_referenced_vars): Tidy. 29516 (get_ref_base_and_extent): Allow bare decls. 29517 (collect_dfa_stats): Adjust. 29518 * graphite.c (rename_variables_in_stmt): Adjust. 29519 (graphite_copy_stmts_from_block): Likewise. 29520 (translate_clast): Likewise. 29521 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap. 29522 (EXPR_DIES): New. 29523 (translate_vuse_through_block): Use the oracle. 29524 (phi_translate_1): Adjust. 29525 (value_dies_in_block_x): Use the oracle. Cache the outcome 29526 in EXPR_DIES. 29527 (valid_in_sets): Check if the VUSE for 29528 a REFERENCE is available. 29529 (eliminate): Do not remove stmts during elimination, 29530 instead queue and remove them afterwards. 29531 (do_pre): Do not rebuild alias info. 29532 (pass_pre): Run TODO_rebuild_alias before PRE. 29533 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code. 29534 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p. 29535 (mark_all_v_defs_stmt): Remove. 29536 (mark_all_v_defs_seq): Adjust. 29537 (sra_replace): Likewise. 29538 (scalarize_use): Likewise. 29539 (scalarize_copy): Likewise. 29540 (scalarize_init): Likewise. 29541 (scalarize_ldst): Likewise. 29542 (todoflags): Remove. 29543 (tree_sra): Do not rebuild alias info. 29544 (tree_sra_early): Adjust. 29545 (pass_sra): Run TODO_update_address_taken before SRA. 29546 * tree-predcom.c (set_alias_info): Remove. 29547 (prepare_initializers_chain): Do not call it. 29548 (mark_virtual_ops_for_renaming): Adjust. 29549 (mark_virtual_ops_for_renaming_list): Remove. 29550 (initialize_root_vars): Adjust. 29551 (initialize_root_vars_lm): Likewise. 29552 (prepare_initializers_chain): Likewise. 29553 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code. 29554 (may_propagate_copy_into_stmt): Likewise. 29555 (merge_alias_info): Do nothing for now. 29556 (propagate_tree_value_into_stmt): Adjust. 29557 (stmt_may_generate_copy): Likewise. 29558 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do 29559 not mark symbols for renaming. 29560 (forward_propagate_addr_expr): Match up push/pop_stmt_changes 29561 with the same statement, make sure to update the new pointed-to one. 29562 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy 29563 call statements, do not mark symbols for renaming. 29564 (mark_operand_necessary): Dump something. 29565 (ref_may_be_aliased): New function. 29566 (mark_aliased_reaching_defs_necessary_1): New helper function. 29567 (mark_aliased_reaching_defs_necessary): Likewise. 29568 (mark_all_reaching_defs_necessary_1): Likewise. 29569 (mark_all_reaching_defs_necessary): Likewise. 29570 (propagate_necessity): Do not process virtual PHIs. For 29571 non-aliased loads mark all reaching definitions as necessary. 29572 For aliased loads and stores mark the immediate dominating 29573 aliased clobbers as necessary. 29574 (visited): New global static. 29575 (perform_tree_ssa_dce): Free visited bitmap after propagating 29576 necessity. 29577 (remove_dead_phis): Perform simple dead virtual PHI removal. 29578 (remove_dead_stmt): Properly unlink virtual operands when 29579 removing stores. 29580 (eliminate_unnecessary_stmts): Schedule PHI removal after 29581 stmt removal. 29582 * tree-ssa-ter.c (is_replaceable_p): Adjust. 29583 (process_replaceable): Likewise. 29584 (find_replaceable_in_bb): Likewise. 29585 * tree-ssa.c (verify_ssa_name): Verify all VOPs are 29586 based on the single gimple vop. 29587 (verify_flow_insensitive_alias_info): Remove. 29588 (verify_flow_sensitive_alias_info): Likewise. 29589 (verify_call_clobbering): Likewise. 29590 (verify_memory_partitions): Likewise. 29591 (verify_alias_info): Likewise. 29592 (verify_ssa): Adjust.. 29593 (execute_update_addresses_taken): Export. Update SSA 29594 manually. Optimize only when optimizing. Use a local bitmap. 29595 (pass_update_address_taken): Remove TODO_update_ssa, add 29596 TODO_dump_func. 29597 (pass_update_address_taken): Just use TODO_update_address_taken. 29598 (init_tree_ssa): Do not initialize addressable_vars. 29599 (verify_ssa): Verify new VUSE / VDEF properties. 29600 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT. 29601 Do not call verify_alias_info. 29602 (delete_tree_ssa): Clear the VUSE, VDEF operands. 29603 Do not free the loaded and stored syms bitmaps. Reset the escaped 29604 and callused solutions. Do not free addressable_vars. 29605 Remove memory-tag related code. 29606 (warn_uninitialized_var): Aliases are always available. 29607 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust. 29608 * lambda-code.c (can_put_in_inner_loop): Adjust. 29609 (can_put_after_inner_loop): Likewise. 29610 (perfect_nestify): Likewise. 29611 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust. 29612 (vect_gen_widened_results_half): Remove CALL_EXPR handling. 29613 (vectorizable_conversion): Do not mark symbols for renaming. 29614 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF. 29615 (expand_call_inline): Unlink the calls virtual operands before 29616 replacing it. 29617 (tree_function_versioning): Do not call update_ssa if we are not 29618 updating clones. Simplify. 29619 * tree-ssa-phiprop.c (phivn_valid_p): Adjust. 29620 (propagate_with_phi): Likewise.. 29621 * tree-outof-ssa.c (create_temp): Remove memory tag and call 29622 clobber code. Assert we are not aliased or global. 29623 * tree-flow.h: Include tree-ssa-alias.h 29624 (enum escape_type): Remove. 29625 (struct mem_sym_stats_d): Likewise. 29626 (struct mem_ref_stats_d): Likewise. 29627 (struct gimple_df): Add vop member. Remove global_var, 29628 call_clobbered_vars, call_used_vars, addressable_vars, 29629 aliases_compted_p and mem_ref_stats members. Add syms_to_rename, 29630 escaped and callused members. 29631 (struct ptr_info_def): Remove all members, add points-to solution 29632 member pt. 29633 (struct var_ann_d): Remove in_vuse_list, in_vdef_list, 29634 call_clobbered, escape_mask, mpt and symbol_mem_tag members. 29635 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h. 29636 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h. 29637 (tree-ssa-alias.o): Likewise. 29638 (toplev.o): Add tree-ssa-alias.h 29639 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h. 29640 * gimple.c (gimple_set_bb): Fix off-by-one error. 29641 (is_gimple_reg): Do not handle memory tags. 29642 (gimple_copy): Also copy virtual operands. 29643 Delay updating the statement. Do not reset loaded and stored syms. 29644 (gimple_set_stored_syms): Remove. 29645 (gimple_set_loaded_syms): Likewise. 29646 (gimple_call_copy_skip_args): Copy the virtual operands 29647 and mark the new statement modified. 29648 * tree-ssa-structalias.c (may_alias_p): Remove. 29649 (set_uids_in_ptset): Take the alias set to prune with as 29650 parameter. Fold in the alias test of may_alias_p. 29651 (compute_points_to_sets): Compute whether a ptr is dereferenced 29652 in a local sbitmap. 29653 (process_constraint): Deal with &ANYTHING on the lhs, reject all 29654 other ADDRESSOF constraints on the lhs. 29655 (get_constraint_for_component_ref): Assert that we don't get 29656 ADDRESSOF constraints from the base of the reference. 29657 Properly generate UNKNOWN_OFFSET for DEREF if needed. 29658 (struct variable_info): Remove collapsed_to member. 29659 (get_varinfo_fc): Remove. 29660 (new_var_info): Do not set collapsed_to. 29661 (dump_constraint): Do not follow cycles. 29662 (dump_constraint_graph): Likewise. 29663 (build_pred_graph): Likewise. 29664 (build_succ_graph): Likewise. 29665 (rewrite_constraints): Likewise. 29666 (do_simple_structure_copy): Remove. 29667 (do_rhs_deref_structure_copy): Remove. 29668 (do_lhs_deref_structure_copy): Remove. 29669 (collapse_rest_of_var): Remove. 29670 (do_structure_copy): Re-implement. 29671 (pta_stats): New global variable. 29672 (dump_pta_stats): New function. 29673 (struct constraint_expr): Make offset signed. 29674 (UNKNOWN_OFFSET): Define special value. 29675 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN. 29676 (solution_set_expand): New helper function split out from ... 29677 (do_sd_constraint): ... here. 29678 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets. 29679 (do_ds_constraint): Likewise. 29680 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED 29681 and CALLUSED = *CALLUSED. 29682 (set_union_with_increment): Make inc argument signed. 29683 (type_safe): Remove. 29684 (get_constraint_for_ptr_offset): Handle unknown and negative 29685 constant offsets. 29686 (first_vi_for_offset): Handle offsets before start. Bail 29687 out early for offsets beyond the variable extent. 29688 (first_or_preceding_vi_for_offset): New function. 29689 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint. 29690 Together with ESCAPED = *ESCAPED this properly computes reachability. 29691 (find_what_var_points_to): New function. 29692 (find_what_p_points_to): Implement in terms of find_what_var_points_to. 29693 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global, 29694 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1, 29695 pt_solutions_intersect): New functions. 29696 (compute_call_used_vars): Remove. 29697 (compute_may_aliases): New main entry into PTA computation. 29698 * gimple.h (gimple_p): New typedef. 29699 (struct gimple_statement_base): Remove references_memory_p. 29700 (struct gimple_statement_with_memory_ops_base): Remove 29701 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse 29702 members. 29703 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops, 29704 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms, 29705 gimple_set_references_memory): Remove. 29706 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef, 29707 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef): 29708 New functions. 29709 * tree-cfg.c (move_block_to_fn): Fix off-by-one error. 29710 (verify_expr): Allow RESULT_DECL. 29711 (gimple_duplicate_bb): Do not copy virtual operands. 29712 (gimple_duplicate_sese_region): Adjust. 29713 (gimple_duplicate_sese_tail): Likewise. 29714 (mark_virtual_ops_in_region): Remove. 29715 (move_sese_region_to_fn): Do not call it. 29716 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags 29717 and pass_simple_dse. 29718 (execute_function_todo): Handle TODO_update_address_taken, 29719 call execute_update_addresses_taken for TODO_rebuild_alias. 29720 (execute_todo): Adjust. 29721 (execute_one_pass): Init dump files early. 29722 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars 29723 call-clobbered. 29724 (create_general_new_stmt): Clear vops. 29725 * tree-ssa-reassoc.c (get_rank): Adjust. 29726 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark 29727 symbols for renaming. 29728 * params.def (PARAM_MAX_ALIASED_VOPS): Remove. 29729 (PARAM_AVG_ALIASED_VOPS): Likewise. 29730 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME. 29731 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps. 29732 * tree-ssa-operands.c: Simplify for new virtual operand representation. 29733 (operand_build_cmp, copy_virtual_operands, 29734 create_ssa_artificial_load_stmt, add_to_addressable_set, 29735 gimple_add_to_addresses_taken): Remove public functions. 29736 (unlink_stmt_vdef): New function. 29737 297382009-04-03 Alan Modra <amodra@bigpond.net.au> 29739 29740 * config.gcc (powerpc-*-linux*): Merge variants. 29741 297422009-04-02 Chao-ying Fu <fu@mips.com> 29743 James Grosbach <james.grosbach@microchip.com> 29744 29745 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc, 29746 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset, 29747 cop0_sp_offset. 29748 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p, 29749 keep_interrupts_masked_p, use_debug_exception_return_p. 29750 (mips_attribute_table): Add interrupt, use_shadow_register_set, 29751 keep_interrupts_masked, use_debug_exception_return. 29752 (mips_interrupt_type_p, mips_use_shadow_register_set_p, 29753 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p): 29754 New functions. 29755 (mips_function_ok_for_sibcall): Return false for interrupt handlers. 29756 (mips_print_operand): Process COP0 registers to print $0 .. $31 29757 correctly for GAS to process. 29758 (mips_interrupt_extra_call_saved_reg_p): New function. 29759 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check 29760 extra registers. 29761 (mips_cfun_might_clobber_call_saved_reg_p): Likewise. 29762 (mips_compute_frame_info): Add supports for interrupt context that 29763 includes doubleword accumulators and COP0 registers. 29764 (mips_for_each_saved_acc): New function. 29765 (mips_for_each_saved_gpr_and_fpr): Change the function name from 29766 mips_for_each_saved_reg. 29767 (mips_save_reg): Save accumulators. 29768 (mips_kernel_reg_p): A new for_each_rtx callback. 29769 (mips_expand_prologue): Support interrupt handlers. 29770 (mips_restore_reg): Restore accumulators. 29771 (mips_expand_epilogue): Support interrupt handlers. 29772 (mips_can_use_return_insn): Return false for interrupt handlers. 29773 (mips_epilogue_uses): New function. 29774 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI, 29775 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC. 29776 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr, 29777 cop0_move): New instructions. 29778 * config/mips/mips-protos.h (mips_epilogue_uses): Declare. 29779 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New 29780 defines. 29781 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM): 29782 New defines. 29783 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines. 29784 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For 29785 interrupt handlers, we use K0 as the temporary register. 29786 (EPILOGUE_USES): Change to a function call. 29787 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt 29788 handlers, we use K0 as the temporary register. 29789 29790 * doc/extend.texi (Function Attributes): Document interrupt, 29791 use_shadow_register_set, keep_interrupts_masked, 29792 use_debug_exception_return for MIPS attributes. 29793 297942009-04-03 Alan Modra <amodra@bigpond.net.au> 29795 29796 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file. 29797 Remove a number of t-files from tmake_file. 29798 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype. 29799 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define. 29800 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set 29801 target_prototype, not TARGET_PROTOTYPE. 29802 (LINK_OS_GNU_SPEC): Define. 29803 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S 29804 and darwin-ldoubdle.c. 29805 298062009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com> 29807 29808 PR driver/39293 29809 * gcc.c (save_temps_flag): Add support for -save-temps=obj. 29810 (cpp_options): Ditto. 29811 (default_compilers): Ditto. 29812 (display_help): Ditto. 29813 (process_command): Ditto. 29814 (do_spec_1): Ditto. 29815 (set_input): Use lbasename instead of duplicate code. 29816 (save_temps_prefix): New static for -save-temps=obj. 29817 (save_temps_length): Ditto. 29818 29819 * doc/invoke.texi (-save-temps=obj): Document new variant to 29820 -save-temps switch. 29821 298222009-04-02 Jeff Law <law@redhat.com> 29823 29824 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count" 29825 variable. 29826 298272009-04-02 H.J. Lu <hongjiu.lu@intel.com> 29828 29829 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2. 29830 * configure: Regenerated. 29831 298322009-04-02 Rafael Avila de Espindola <espindola@google.com> 29833 29834 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't 29835 share the argument list. 29836 298372009-04-02 Rafael Avila de Espindola <espindola@google.com> 29838 29839 Merge 29840 29841 2009-02-12 Diego Novillo <dnovillo@google.com> 29842 29843 * varpool.c (debug_varpool): New. 29844 * cgraph.h (debug_varpool): Declare. 29845 298462009-04-02 Jan Hubicka <jh@suse.cz> 29847 29848 * passes.c (init_optimization_passes): Remove two copies of ehcleanup 29849 pass. 29850 298512009-04-02 H.J. Lu <hongjiu.lu@intel.com> 29852 29853 * config/i386/i386.c (ix86_abi): Move initialization to ... 29854 (override_options): Here. 29855 298562009-04-02 Christian Bruel <christian.bruel@st.com> 29857 29858 * config/sh/sh.c (sh_dwarf_register_span): New function. 29859 (TARGET_DWARF_REGISTER_SPAN): Define. 29860 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare. 29861 298622009-04-02 Ira Rosen <irar@il.ibm.com> 29863 29864 PR tree-optimization/39595 29865 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 29866 interleaved loads group is not greater than the SLP group size. 29867 298682009-04-02 Rafael Avila de Espindola <espindola@google.com> 29869 29870 * builtins.c (is_builtin_name): New. 29871 (called_as_built_in): Use is_builtin_name. 29872 * tree.h (is_builtin_name): New. 29873 * varasm.c (incorporeal_function_p): Use is_builtin_name 29874 298752009-04-02 Andrew Stubbs <ams@codesourcery.com> 29876 29877 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined. 29878 298792009-04-02 Dodji Seketeli <dodji@redhat.com> 29880 29881 PR c++/26693 29882 * c-decl.c (clone_underlying_type): Move this ... 29883 * c-common.c (set_underlying_type): ... here. 29884 Also, make sure the function properly sets TYPE_STUB_DECL() on 29885 the newly created typedef variant type. 29886 * c-common.h (is_typedef_decl, set_underlying_type): Declare ... 29887 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry 29888 points. 29889 298902009-04-02 Richard Guenther <rguenther@suse.de> 29891 29892 PR tree-optimization/37221 29893 * tree-flow.h (degenerate_phi_result): Declare. 29894 * tree-ssa-dom.c (degenerate_phi_result): Export. 29895 * tree-scalar-evolution.c (analyze_initial_condition): If 29896 the initial condition is defined by a degenerate PHI node 29897 use the degenerate value. 29898 298992009-04-01 Eric Botcazou <ebotcazou@adacore.com> 29900 29901 PR rtl-optimization/39588 29902 * combine.c (merge_outer_ops): Do not set the constant when this 29903 is not necessary. 29904 (simplify_shift_const_1): Do not modify it either in this case. 29905 299062009-04-01 Steven Bosscher <steven@gcc.gnu.org> 29907 29908 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1 29909 tuning is deprecated if -mtune value is set to an Itanium1 variant. 29910 299112009-04-01 Janis Johnson <janis187@us.ibm.com> 29912 29913 PR c/29027 29914 * c-lex.c (interpret_float): Default (no suffix) is double. 29915 299162009-04-1 Xinliang David Li <davidxl@google.com> 29917 29918 * config/i386/i386.c (legitimate_constant_p): Recognize 29919 all one vector constant. 29920 299212009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29922 29923 * config/vax/vax.c: Add #includes to silence warnings. 29924 Change #include order to silence two warnings. 29925 299262009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29927 29928 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit. 29929 (ASM_SPEC): Pass -k to the assembler for PIC code. 29930 299312009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29932 29933 * config.gcc: Add vax-*-linux* to the switch. 29934 * config/vax/linux.h: New file. (TARGET_VERSION, 29935 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define. 29936 299372009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29938 29939 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p): 29940 Use predicate macros instead of GET_CODE() == foo. 29941 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3, 29942 ashlsi3, rotrsi3, <unnamed>): Likewise. 29943 299442009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29945 29946 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi, 29947 jbbccihi, jbbccisi): Remova trailing whitespace. 29948 * config/vax/constraints.md: Likewise. 29949 * config/vax/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): Likewise. 29950 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise. 29951 * config/vax/predicates.md: Likewise. 29952 * config/vax/vax.c (print_operand_address, vax_output_int_move, 29953 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise. 29954 * config/vax/vax.h: Likewise. 29955 * config/vax/vax.md (nonlocal_goto): Likewise. 29956 299572009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29958 29959 * config/vax/vax.c (vax_float_literal, vax_output_int_move) 29960 (indirectable_address_p, adjacent_operands_p): Add spaces around 29961 braces. 29962 * config/vax/vax-protos.h (adjacent_operands_p): Likewise. 29963 299642009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29965 29966 * config/vax/vax.c (legitimate_constant_address_p, 29967 legitimate_constant_p, indirectable_address_p, nonindexed_address_p, 29968 index_term_p, reg_plus_index_p, legitimate_address_p, 29969 vax_mode_dependent_address_p): Update comments to match functions 29970 modified by the recent int->bool conversion. 29971 299722009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29973 29974 * config/vax/builtins.md: Update copyright message. 29975 * config/vax/constraints.md: Likewise. 29976 * config/vax/netbsd-elf.h: Likewise. 29977 * config/vax/predicates.md: Likewise. 29978 * config/vax/vax-protos.h: Likewise. 29979 * config/vax/vax.c: Likewise. 29980 * config/vax/vax.h: Likewise. 29981 * config/vax/vax.md: Likewise. 29982 * config/vax/vax.opt: Likewise. 29983 299842009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29985 29986 * config/vax/builtins.md (ffssi2, ffssi2_internal, 29987 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention. 29988 * config/vax/constraints.md (B, R): Likewise. 29989 * config/vax/predicates.md (external_memory_operand, 29990 nonimmediate_addsub_di_operand): Likewise. 29991 * config/vax/vax.c (vax_output_int_add): Likewise. 29992 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value, 29993 untyped_call): Likewise. 29994 299952009-04-01 Matt Thomas <matt@3am-software.com> 29996 29997 * config/vax/predicates.md: New file. 29998 (symbolic_operand, local_symbolic_operand, external_symbolic_operand, 29999 external_const_operand, nonsymbolic_operand, external_memory_operand, 30000 indirect_memory_operand, indexed_memory_operand, 30001 illegal_blk_memory_operand, illegal_addsub_di_memory_operand, 30002 nonimmediate_addsub_di_operand, general_addsub_di_operand): New 30003 predicate. 30004 * config/vax/constraints.md: New file. 30005 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T): 30006 New constraint. 30007 * config/vax/builtins.md: New file. 30008 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi, 30009 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi, 30010 jbbccisi): Define. 30011 * config/vax/vax.opt (mqmath): Add option. 30012 * config/vax/vax.md (isfx): Extend with DI. 30013 (VAXintQH, VAXintQHSD): Define. 30014 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2, 30015 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>, 30016 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2, 30017 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints. 30018 (movdi): Update constraints and use vax_output_int_move(). 30019 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg, 30020 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym, 30021 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>, 30022 nonlocal_goto): New. 30023 (mov<mode>): Extend accepted operand types. 30024 (subdi3_old): Rename from subdi3, change update constraints and use 30025 a new implementation. 30026 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space. 30027 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS, 30028 MOVE_RATIO, CLEAR_RATIO): Define. 30029 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P, 30030 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete. 30031 (PRINT_OPERAND): Redefine using a function instead of inlined code. 30032 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define. 30033 (split_quadword_operands): Make static and really allow variable 30034 splitting. 30035 (print_operand_address): Update for PIC generation. 30036 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract, 30037 indexable_address_p, fixup_mathdi_operand, 30038 vax_expand_addsub_di_operands, adjacent_operands_p): New. 30039 (vax_float_literal, legitimate_constant_p, 30040 indirectable_constant_address_p, index_term_p, 30041 reg_plus_index_p): Return bool instead of int. 30042 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT 30043 where needed. 30044 (vax_output_int_move, vax_output_int_add): Extend to allow PIC 30045 generation. 30046 (vax_output_conditional_branch): Indent. 30047 (legitimate_constant_address_p, indirectable_constant_address_p, 30048 indirectable_address_p, nonindexed_address_p, legitimate_address_p, 30049 vax_mode_dependent_address_p): Return bool instead of int, update for 30050 PIC generation. 30051 * config/vax/vax-protos.h (legitimate_constant_address_p, 30052 legitimate_constant_p, legitimate_address_p, 30053 vax_mode_dependent_address_p): Change declaration to bool. 30054 (legitimate_pic_operand_p, adjacent_operands_p, print_operand, 30055 vax_expand_addsub_di_operands, vax_output_int_subtract, 30056 vax_output_movmemsi): Declare. 30057 (split_quadword_operands, vax_float_literal): Delete declaration. 30058 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define. 30059 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS, 30060 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT, 30061 ASM_OUTPUT_DWARF_PCREL): Define. 30062 (ASM_SPEC): Change definition to allow PIC generation. 30063 300642009-04-01 Steve Ellcey <sje@cup.hp.com> 30065 30066 * doc/sourcebuild.texi: Update front-end requirements. 30067 300682009-04-01 Jakub Jelinek <jakub@redhat.com> 30069 30070 PR target/39226 30071 * config/rs6000/rs6000.md (andsi3_internal5_nomc, 30072 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed. 30073 (booldi3_internal3): Use boolean_or_operator instead of 30074 boolean_operator. 30075 300762009-04-01 Joseph Myers <joseph@codesourcery.com> 30077 30078 PR c/39605 30079 * c-decl.c (grokdeclarator): Pedwarn for file-scope array 30080 declarator whose size is not an integer constant expression but 30081 folds to an integer constant, then treat it as a constant 30082 subsequently. 30083 300842009-04-01 Richard Guenther <rguenther@suse.de> 30085 30086 * fold-const.c (fold_plusminus_mult_expr): Do not fold 30087 i * 4 + 2 to (i * 2 + 1) * 2. 30088 300892009-04-01 Jakub Jelinek <jakub@redhat.com> 30090 30091 PR c/37772 30092 * c-parser.c (c_parser_asm_statement): Skip until close paren and 30093 return if c_parser_asm_string_literal returned NULL. 30094 300952009-04-01 Nick Clifton <nickc@redhat.com> 30096 30097 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not 30098 already defined. 30099 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c. 30100 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the 30101 other typedefs to avoid conflicts with libgcc2.c. Define labels 30102 to gain 16-bit bit-manipulation functions from libgcc2.c and then 30103 include it. 30104 * config/m32c/m32c-lib2-trapv.c: New file. Define labels 30105 to gain 16-bit trapping arithmetic functions from libgcc2.c and 30106 then include it. 30107 301082009-04-01 Rafael Avila de Espindola <espindola@google.com> 30109 30110 * varasm.c (default_function_rodata_section): Declare DOT as 30111 const char*. 30112 301132009-04-01 Kai Tietz <kai.tietz@onevision.com> 30114 Andrey Galkin <agalkin@hypercom.com> 30115 30116 PR/39492 30117 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): 30118 Make object_name unique for each process. 30119 301202009-04-01 Jakub Jelinek <jakub@redhat.com> 30121 30122 PR other/39591 30123 * omp-low.c (remove_exit_barrier): Don't optimize if there are any 30124 addressable variables in the parallel that could go out of scope while 30125 running queued tasks. 30126 301272009-04-01 Anatoly Sokolov <aesok@post.ru> 30128 30129 * config/avr/avr.h (avr_case_values_threshold): Remove declaration. 30130 (CASE_VALUES_THRESHOLD): Redefine. 30131 * config/avr/avr.c (avr_override_options): Remove initialization of 30132 avr_case_values_threshold variable. 30133 (avr_case_values_threshold): Remove variable. Add new function. 30134 * config/avr/avr-protos.h (avr_case_values_threshold): Declare. 30135 * config/avr/avr.opt (mno-tablejump): Remove option. 30136 * doc/invoke.texi (AVR Options): Remove -mno-tablejump. 30137 301382009-04-01 DJ Delorie <dj@redhat.com> 30139 30140 * varasm.c (default_function_rodata_section): Don't assume 30141 anything about where the first '.' in the section name is. 30142 301432009-04-01 Alan Modra <amodra@bigpond.net.au> 30144 30145 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant 30146 rs6000_emit_stack_tie. 30147 301482009-03-31 Ian Lance Taylor <iant@google.com> 30149 30150 * tree-eh.c (tree_remove_unreachable_handlers): Compare 30151 gimple_code with GIMPLE_RESX, not RESX. 30152 301532009-03-31 Joseph Myers <joseph@codesourcery.com> 30154 30155 * c-common.c (c_get_ident): New. 30156 (c_common_nodes_and_builtins): Call it for type names that may be NULL. 30157 301582009-04-01 Ben Elliston <bje@au.ibm.com> 30159 30160 * config/rs6000/sysv4.opt (msdata): Improve option description. 30161 301622009-03-31 Steve Ellcey <sje@cup.hp.com> 30163 30164 * config/ia64/ia64.md (divsf3_internal_lat): Remove. 30165 (divdf3_internal_lat): Remove. 30166 (divxf3_internal_lat): Remove. 30167 (divxf3_internal_thr): Remove. 30168 (divxf): Use divxf3_internal. 30169 * config/ia64/div.md (divsf3_internal_lat): New. 30170 (divdf3_internal_lat): New. 30171 (divxf3_internal): New. 30172 301732009-03-31 Joseph Myers <joseph@codesourcery.com> 30174 30175 PR c/448 30176 * Makefile.in (USE_GCC_STDINT): Define. 30177 (stmp-int-hdrs): Install stdint.h if applicable. 30178 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE 30179 if known. 30180 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known. 30181 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE, 30182 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE, 30183 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, 30184 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, 30185 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE, 30186 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE, 30187 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, 30188 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define. 30189 (c_common_nodes_and_builtins): Initialize 30190 underlying_wchar_type_node. Do not initialize 30191 signed_wchar_type_node or unsigned_wchar_type_node. Initialize 30192 nodes for new types. 30193 (c_stddef_cpp_builtins): Define macros for new types. 30194 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE): 30195 Remove. 30196 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE, 30197 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE, 30198 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE, 30199 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE, 30200 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE, 30201 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE, 30202 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE, 30203 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE, 30204 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define. 30205 (signed_wchar_type_node, unsigned_wchar_type_node): Remove. 30206 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node, 30207 int16_type_node, int32_type_node, int64_type_node, 30208 uint8_type_node, uint16_type_node, c_uint32_type_node, 30209 c_uint64_type_node, int_least8_type_node, int_least16_type_node, 30210 int_least32_type_node, int_least64_type_node, 30211 uint_least8_type_node, uint_least16_type_node, 30212 uint_least32_type_node, uint_least64_type_node, 30213 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node, 30214 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node, 30215 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node, 30216 uintptr_type_node): Define. 30217 * c-cppbuiltin.c (builtin_define_constants, 30218 builtin_define_type_minmax): New. 30219 (builtin_define_stdint_macros): Define more macros. 30220 (c_cpp_builtins): Define more limit macros. 30221 (type_suffix): New. 30222 (builtin_define_type_max): Define in terms of 30223 builtin_define_type_minmax. Remove is_long parameter. All 30224 callers changed. 30225 * config.gcc (use_gcc_stdint): Define. 30226 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc. 30227 Add newlib-stdint.h for generic targets. 30228 * config/glibc-stdint.h, config/newlib-stdint.h, 30229 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New. 30230 * config/m32c/m32c.h (UINTPTR_TYPE): Define. 30231 * config/score/score.h (UINTPTR_TYPE): Define. 30232 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, 30233 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, 30234 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, 30235 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, 30236 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE, 30237 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE, 30238 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, 30239 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define. 30240 * config/spu/spu.h (STDINT_LONG32): Define. 30241 * configure.ac (use_gcc_stdint): Substitute. 30242 * configure: Regenerate. 30243 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__, 30244 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__, 30245 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__, 30246 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__, 30247 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__, 30248 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__, 30249 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__, 30250 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__, 30251 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__, 30252 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__, 30253 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__, 30254 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__, 30255 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__, 30256 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__, 30257 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__, 30258 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__, 30259 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__, 30260 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__, 30261 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__, 30262 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C, 30263 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document. 30264 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, 30265 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE, 30266 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, 30267 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, 30268 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE, 30269 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE, 30270 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, 30271 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document. 30272 302732009-03-31 Bernd Schmidt <bernd.schmidt@analog.com> 30274 30275 * loop-iv.c (suitable_set_for_replacement): Renamed from 30276 simplify_using_assignment; changed to return bool and to accept new 30277 args DEST and SRC. Return true iff we find a source/destination pair 30278 that can be used to make a replacement, and fill SRC and DEST if so. 30279 Remove arg ALTERED. Don't deal with altered regs here. All callers 30280 changed. 30281 (simplify_using_initial_values): Deal with altered regs here and track 30282 more precisely the effect they have on the validity of our expression. 30283 30284 * loop-iv.c (simplify_using_condition): A condition of the form 30285 (EQ REG CONST) can be used to simply make a substitution. 30286 (simplify_using_initial_values): Keep track of conditions we have seen 30287 and keep using them to simplify new expressions, while applying the 30288 same substitutions to them as to the expression. 30289 30290 * simplify-rtx.c (simplify_relational_operation_1): Simplify 30291 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with 30292 GEU/LTU reversed. 30293 30294 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers 30295 changed. Use this when trying to improve the upper bound. 30296 Generate the comparison by using simplify_gen_relational. 30297 30298 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions. 30299 30300 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static 30301 functions. 30302 (simplify_using_assignment, simplify_using_initial_values): Call 30303 replace_in_expr to make replacements. Call replace_single_def_regs 30304 once on the initial version of the expression. 30305 303062009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 30307 30308 PR target/27237 30309 * doc/invoke.texi (ARM Options): Update documentation for -mthumb. 30310 303112009-03-31 Richard Guenther <rguenther@suse.de> 30312 30313 PR middle-end/31029 30314 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for 30315 equality comparisons. Fold C - X CMP X if C % 2 == 1. 30316 303172009-03-31 Richard Guenther <rguenther@suse.de> 30318 30319 * tree.h (div_if_zero_remainder): Declare. 30320 * fold-const.c (div_if_zero_remainder): Export. 30321 * tree-ssa-forwprop.c 30322 (forward_propagate_addr_into_variable_array_index): Handle 30323 constant array index addition outside of the variable index. 30324 303252009-03-31 Joseph Myers <joseph@codesourcery.com> 30326 30327 PR target/39592 30328 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed 30329 define_splits, floatunssi<mode>2): Require x87 conversions from 30330 DImode to be permitted. 30331 303322009-03-31 Joseph Myers <joseph@codesourcery.com> 30333 30334 PR preprocessor/15638 30335 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL. 30336 303372009-03-31 Richard Guenther <rguenther@suse.de> 30338 30339 PR middle-end/23401 30340 PR middle-end/27810 30341 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove. 30342 (struct tree_decl_with_vis): Remove gimple_formal_temp member. 30343 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to 30344 a separate statement. 30345 * gimplify.c (pop_gimplify_context): Remove formal temp handling. 30346 (lookup_tmp_var): Likewise. 30347 (is_gimple_formal_tmp_or_call_rhs): Remove. 30348 (is_gimple_reg_or_call_rhs): Rename to ... 30349 (is_gimple_reg_rhs_or_call): ... this. 30350 (is_gimple_mem_or_call_rhs): Rename to ... 30351 (is_gimple_mem_rhs_or_call): ... this. 30352 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set 30353 DECL_GIMPLE_REG_P only if is_formal is true. 30354 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround 30355 for non-proper post-modify expression gimplification. 30356 (gimplify_self_mod_expr): For post-modify expressions gimplify 30357 the lvalue to a minimal lvalue. 30358 (rhs_predicate_for): Remove formal temp case. 30359 (gimplify_modify_expr_rhs): Likewise. 30360 (gimplify_addr_expr): Use is_gimple_reg. 30361 (gimplify_expr): Remove formal temp cases. 30362 (gimple_regimplify_operands): Likewise. 30363 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR 30364 and FILTER_EXPR like constants. 30365 * gimple.c (walk_gimple_op): Fix val_only initialization, use 30366 is_gimple_reg. 30367 (is_gimple_formal_tmp_rhs): Remove. 30368 (is_gimple_reg_rhs): Remove special casing. 30369 (is_gimple_mem_rhs): Fix. 30370 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier. 30371 (is_gimple_formal_tmp_var): Remove. 30372 (is_gimple_formal_tmp_reg): Likewise. 30373 (is_gimple_min_lval): Allow invariant component ref parts. 30374 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var, 30375 is_gimple_formal_tmp_reg): Remove declarations. 30376 * tree-cfg.c (verify_expr): Verify that variables with address 30377 taken do not have DECL_GIMPLE_REG_P set. 30378 * tree-mudflap.c (mf_build_check_statement_for): Use 30379 force_gimple_operand instead of gimplify_expr. 30380 303812009-03-31 Ayal Zaks <zaks@il.ibm.com> 30382 30383 * modulo-sched.c (sms_schedule_by_order): Pass the actual 30384 schedulable rows to compute_split_row. 30385 303862009-03-31 Ben Elliston <bje@au.ibm.com> 30387 30388 PR target/31635 30389 * config/rs6000/rs6000.c (rs6000_handle_option): Handle 30390 OPT_mvrsave. 30391 303922009-03-31 Alan Modra <amodra@bigpond.net.au> 30393 30394 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers. 30395 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check. 30396 * configure: Regenerate. 30397 * config.in: Regenerate. 30398 * config/rs6000/rs6000.opt (mtls-markers): Add. 30399 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define. 30400 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter. 30401 (tls_ld_aix, tls_ld_sysv): Likewise. 30402 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns. 30403 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise. 30404 304052009-03-31 Alan Modra <amodra@bigpond.net.au> 30406 30407 * config/spu/spu.c (spu_expand_prologue): Delete redundant code. 30408 304092009-03-30 Jan Hubicka <jh@suse.cz> 30410 30411 * tree-eh.c (make_eh_edges): Set probability 100% to first edge 30412 out of RESX. 30413 (tree_remove_unreachable_handlers): Cleanup EH predecestor 30414 detection and label handling. 30415 304162009-03-30 Vladimir Makarov <vmakarov@redhat.com> 30417 30418 * ira-int.h (ira_allocno): Rename left_conflicts_num to 30419 left_conflicts_size. 30420 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to 30421 ALLOCNO_LEFT_CONFLICTS_SIZE. 30422 30423 * ira-color.c (allocno_spill_priority, push_allocno_to_stack, 30424 remove_allocno_from_bucket_and_push, 30425 allocno_spill_priority_compare, push_allocnos_to_stack, 30426 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE 30427 instead of ALLOCNO_LEFT_CONFLICTS_NUM. 30428 (setup_allocno_left_conflicts_num): Ditto. Rename to 30429 setup_allocno_left_conflicts_size. 30430 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE 30431 instead of ALLOCNO_LEFT_CONFLICTS_NUM and 30432 setup_allocno_left_conflicts_size instead of 30433 setup_allocno_left_conflicts_num. 30434 30435 * ira-build.c (ira_create_allocno): Use 30436 ALLOCNO_LEFT_CONFLICTS_SIZE instead of 30437 ALLOCNO_LEFT_CONFLICTS_NUM. 30438 304392009-03-30 Vladimir Makarov <vmakarov@redhat.com> 30440 30441 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out 30442 instead of DF_LR_OUT. 30443 30444 * ira-lives.c (process_bb_node_lives): Ditto. 30445 30446 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in} 30447 instead of DF_LR_{OUT,IN}. 30448 30449 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto. 30450 30451 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto. 30452 304532009-03-30 Jan Hubicka <jh@suse.cz> 30454 30455 * except.c (label_to_region_map): Fix thinko. 30456 304572009-03-30 Steve Ellcey <sje@cup.hp.com> 30458 30459 PR middle-end/38237 30460 * tree.h (tree_find_value): New declaration. 30461 * tree.c (tree_find_value): New function. 30462 * varasm.c (assemble_external): Avoid duplicate entries on lists. 30463 304642009-03-30 Jakub Jelinek <jakub@redhat.com> 30465 30466 PR debug/39563 30467 * c-decl.c (struct c_binding): Add locus field. 30468 (bind): Add locus argument, set locus field from it. 30469 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL, 30470 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS. 30471 (push_file_scope, pushtag, pushdecl, pushdecl_top_level, 30472 implicitly_declare, undeclared_variable, lookup_label, 30473 declare_label, c_make_fname_decl, c_builtin_function, 30474 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust 30475 bind callers. 30476 304772009-03-30 H.J. Lu <hongjiu.lu@intel.com> 30478 30479 PR target/38781 30480 * config/i386/i386.c (classify_argument): Check total size of 30481 structure. 30482 304832009-03-30 Martin Jambor <mjambor@suse.cz> 30484 30485 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST, 30486 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN, 30487 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH 30488 respectively. 30489 30490 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if 30491 seen_variable_array_ref while also traversing a union. 30492 30493 * tree-inline.c (optimize_inline_calls): Do not call 30494 cgraph_node_remove_callees. 30495 * cgraphbuild.c (remove_cgraph_callee_edges): New function. 30496 (pass_remove_cgraph_callee_edges): New variable. 30497 * passes.c (init_optimization_passes): Add 30498 pass_remove_cgraph_callee_edges after early inlining and before all 30499 late intraprocedural passes. 30500 30501 * omp-low.c (expand_omp_taskreg): Always set current_function_decl. 30502 305032009-03-30 Paolo Bonzini <bonzini@gnu.org> 30504 30505 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis): 30506 Fix typos in names. 30507 305082009-03-30 Paolo Bonzini <bonzini@gnu.org> 30509 30510 * combine.c (simplify_comparison): Use have_insn_for. 30511 * dojump.c (do_jump): Likewise. 30512 305132009-03-30 Paolo Bonzini <bonzini@gnu.org> 30514 30515 * config/sparc/sparc.c (sparc_compare_emitted): Remove. 30516 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC 30517 sparc_compare_op0 like sparc_compare_emitted used to be handled. 30518 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0 30519 instead of sparc_compare_emitted. 30520 * config/sparc/sparc.h (sparc_compare_emitted): Remove. 30521 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0 30522 instead of sparc_compare_emitted. 30523 305242009-03-30 Paolo Bonzini <bonzini@gnu.org> 30525 30526 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not 30527 enter/exit cfglayout mode. 30528 (pass_partition_block): Require it. 30529 * combine.c (find_single_use, reg_dead_at_p): Use CFG. 30530 (combine_instructions): Track basic blocks instead of labels. 30531 (update_cfg_for_uncondjump): New. 30532 (try_combine): Use it. Update jumps after rescanning. 30533 (pass_combine): Require PROP_cfglayout. 30534 * passes.c (pass_outof_cfg_layout_mode): Move after regmove. 30535 305362009-03-30 Paolo Bonzini <bonzini@gnu.org> 30537 30538 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): 30539 Provide/destroy PROP_cfglayout respectively. 30540 * gcse.c (pass_jump_bypass, pass_gcse): Require it. 30541 * tree-pass.h (PROP_cfglayout): New. 30542 305432009-03-30 Paolo Bonzini <bonzini@gnu.org> 30544 30545 * fold-const.c (const_binop, fold_convert_const_real_from_fixed, 30546 fold_convert_const_fixed_from_fixed, 30547 fold_convert_const_fixed_from_int, 30548 fold_convert_const_fixed_from_real, fold_negate_const): Do not 30549 set TREE_CONSTANT_OVERFLOW. 30550 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW. 30551 * tree.h (TREE_CONSTANT_OVERFLOW): Delete. 30552 305532009-03-30 Ira Rosen <irar@il.ibm.com> 30554 30555 * tree-vect-loop-manip.c: New file. 30556 * tree-vectorizer.c: Update documentation and included files. 30557 (vect_loop_location): Make extern. 30558 (rename_use_op): Move to tree-vect-loop-manip.c 30559 (rename_variables_in_bb, rename_variables_in_loop, 30560 slpeel_update_phis_for_duplicate_loop, 30561 slpeel_update_phi_nodes_for_guard1, 30562 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes, 30563 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard, 30564 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling, 30565 set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 30566 find_loop_location): Likewise. 30567 (new_stmt_vec_info): Move to tree-vect-stmts.c. 30568 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info, 30569 get_vectype_for_scalar_type, vect_is_simple_use, 30570 supportable_widening_operation, supportable_narrowing_operation): 30571 Likewise. 30572 (bb_in_loop_p): Move to tree-vect-loop.c. 30573 (new_loop_vec_info, destroy_loop_vec_info, 30574 reduction_code_for_scalar_code, report_vect_op, 30575 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise. 30576 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c. 30577 (vect_supportable_dr_alignment): Likewise. 30578 * tree-vectorizer.h (tree-data-ref.h): Include. 30579 (vect_loop_location): Declare. 30580 Reorganize function declarations according to the new file structure. 30581 * tree-vect-loop.c: New file. 30582 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 30583 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c. 30584 * tree-vect-data-refs.c: New file. 30585 * tree-vect-patterns.c (timevar.h): Don't include. 30586 * tree-vect-stmts.c: New file. 30587 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 30588 tree-vect-slp.c, tree-vect-loop.c. 30589 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 30590 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 30591 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o. 30592 (tree-vect-analyze.o): Remove. 30593 (tree-vect-transform.o): Likewise. 30594 (tree-vect-data-refs.o): Add rule. 30595 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 30596 tree-vect-slp.o): Likewise. 30597 (tree-vect-patterns.o): Remove redundant dependencies. 30598 (tree-vectorizer.o): Likewise. 30599 * tree-vect-slp.c: New file. 30600 306012009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 30602 30603 * optc-gen.awk: Warn if an option flag has multiple different 30604 help strings. 30605 306062009-03-30 Sebastian Pop <sebastian.pop@amd.com> 30607 30608 * doc/invoke.texi (-floop-interchange, -floop-strip-mine, 30609 -floop-block): Document dependences on PPL, CLooG and Graphite. 30610 306112009-03-30 Joseph Myers <joseph@codesourcery.com> 30612 30613 PR rtl-optimization/323 30614 * c-common.c (c_fully_fold, convert_and_check, 30615 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR. 30616 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR. 30617 * c-common.def (EXCESS_PRECISION_EXPR): New. 30618 * c-cppbuiltin.c (builtin_define_float_constants): Define 30619 constants with enough digits for long double. 30620 * c-lex.c (interpret_float): Interpret constant with excess 30621 precision where appropriate. 30622 * c-opts.c (c_common_post_options): Set 30623 flag_excess_precision_cmdline. Give an error for 30624 -fexcess-precision=standard for C++ for processors where the 30625 option is significant. 30626 * c-parser.c (c_parser_conditional_expression): Handle excess 30627 precision in condition. 30628 * c-typeck.c (convert_arguments): Handle arguments with excess 30629 precision. 30630 (build_unary_op): Move excess precision outside operation. 30631 (build_conditional_expr): Likewise. 30632 (build_compound_expr): Likewise. 30633 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR. 30634 (build_modify_expr): Handle excess precision in RHS. 30635 (convert_for_assignment): Handle excess precision in converted 30636 value. 30637 (digest_init, output_init_element, process_init_element): Handle 30638 excess precision in initializer. 30639 (c_finish_return): Handle excess precision in return value. 30640 (build_binary_op): Handle excess precision in operands and add 30641 excess precision as needed for operation. 30642 * common.opt (-fexcess-precision=): New option. 30643 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New. 30644 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2): 30645 For standard excess precision, output explicit conversion to and 30646 truncation from XFmode. 30647 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1, 30648 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp, 30649 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed 30650 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed 30651 define_splits, *floatunssi<mode>2_1, two unnamed define_splits, 30652 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3, 30653 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387, 30654 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387, 30655 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed 30656 define_splits, sqrt<mode>2): Disable where appropriate for 30657 standard excess precision. 30658 * convert.c (convert_to_real): Do not shorten arithmetic to type 30659 for which excess precision would be used. 30660 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define. 30661 * doc/invoke.texi (-fexcess-precision=): Document option. 30662 (-mfpmath=): Correct index entry. 30663 * flags.h (enum excess_precision, flag_excess_precision_cmdline, 30664 flag_excess_precision): New. 30665 * langhooks.c (lhd_post_options): Set 30666 flag_excess_precision_cmdline. 30667 * opts.c (common_handle_option): Handle -fexcess-precision=. 30668 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision, 30669 init_excess_precision): New. 30670 (lang_dependent_init_target): Call init_excess_precision. 30671 * tree.c (excess_precision_type): New. 30672 * tree.h (excess_precision_type): Declare. 30673 306742009-03-30 Joseph Myers <joseph@codesourcery.com> 30675 30676 PR c/35235 30677 * c-typeck.c (build_component_ref): Do not copy qualifiers from 30678 non-lvalue to component. 30679 306802009-03-29 Joseph Myers <joseph@codesourcery.com> 30681 30682 PR preprocessor/34695 30683 * Makefile.in (c-opts.o): Depend on c-tree.h. 30684 * c-common.c: Move down include of diagnostic.h. 30685 (done_lexing, c_cpp_error): New. 30686 * c-common.h (done_lexing): Declare. 30687 * c-decl.c (c_write_global_declarations): Don't check cpp_errors 30688 (parse_in). 30689 * c-opts.c: Include c-tree.h. 30690 (c_common_init_options): Set preprocessor error callback. 30691 (c_common_handle_option): Do not set preprocessor 30692 inhibit_warnings, warnings_are_errors, warn_system_headers, 30693 pedantic_errors or inhibit_warnings flags. 30694 (c_common_post_options): Do not check cpp_errors (parse_in). 30695 (c_common_finish): Do not output dependencies if there were 30696 errors. Do not check return value of cpp_finish. 30697 * c-ppoutput.c (pp_file_change): Set input_location. 30698 * c-tree.h (c_cpp_error): Declare. 30699 * diagnostic.c (diagnostic_set_info_translated): Also initialize 30700 override_column. 30701 (diagnostic_build_prefix): Check override_column. 30702 * diagnostic.h (diagnostic_info): Add override_column field. 30703 (diagnostic_override_column): Define. 30704 307052009-03-28 Paolo Bonzini <bonzini@gnu.org> 30706 30707 * c-common.c (c_expand_expr, c_staticp): Remove. 30708 * c-common.def (COMPOUND_LITERAL_EXPR): Delete. 30709 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL, 30710 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove. 30711 * c-gimplify.c (gimplify_compound_literal_expr, 30712 optimize_compound_literals_in_ctor): Remove. 30713 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling. 30714 * c-objc-common.h (LANG_HOOKS_STATICP): Remove. 30715 * c-semantics.c (emit_local_var): Remove. 30716 30717 * langhooks-def.h (lhd_expand_expr): Remove. 30718 * langhooks.c (lhd_expand_expr): Remove. 30719 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR. 30720 30721 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR 30722 handling from c-semantics.c; don't call into langhook. 30723 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees. 30724 * gimplify.c (gimplify_compound_literal_expr, 30725 optimize_compound_literals_in_ctor): Move from c-gimplify.c. 30726 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor. 30727 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR 30728 as was done in c-gimplify.c. 30729 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp. 30730 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR): 30731 Move from c-common.h. 30732 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def. 30733 30734 * tree.c (staticp): Do not call langhook. 30735 * langhooks.c (lhd_staticp): Delete. 30736 * langhooks-def.h (lhd_staticp): Delete prototype. 30737 (LANG_HOOKS_STATICP): Delete. 30738 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP. 30739 30740 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs 30741 instead of DECL_STMTs. 30742 307432009-03-29 Joseph Myers <joseph@codesourcery.com> 30744 30745 PR c/456 30746 PR c/5675 30747 PR c/19976 30748 PR c/29116 30749 PR c/31871 30750 PR c/35198 30751 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in 30752 void_type_node. 30753 (fold_call_expr): Return a NOP_EXPR from folding rather than the 30754 contained expression. 30755 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New. 30756 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold 30757 conditional expressions for C. 30758 (decl_constant_value_for_optimization): Move from 30759 decl_constant_value_for_broken_optimization in c-typeck.c. Check 30760 whether optimizing and that the expression is a VAR_DECL not of 30761 array type instead of doing such checks in the caller. Do not 30762 check pedantic. Call gcc_unreachable for C++. 30763 * c-common.def (C_MAYBE_CONST_EXPR): New. 30764 * c-common.h (c_fully_fold, c_save_expr, 30765 decl_constant_value_for_optimization): New prototypes. 30766 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR, 30767 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST, 30768 EXPR_INT_CONST_OPERANDS): Define. 30769 * c-convert.c (convert): Strip nops from expression. 30770 * c-decl.c (groktypename): Take extra parameters expr and 30771 expr_const_operands. Update call to grokdeclarator. 30772 (start_decl): Update call to grokdeclarator. Add statement for 30773 expressions used in type of decl. 30774 (grokparm): Update call to grokdeclarator. 30775 (push_parm_decl): Update call to grokdeclarator. 30776 (build_compound_literal): Add parameter non_const and build a 30777 C_MAYBE_COSNT_EXPR if applicable. 30778 (grokdeclarator): Take extra parameters expr and 30779 expr_const_operands. Track expressions used in declaration 30780 specifiers and declarators. Fold array sizes and track whether 30781 they are constant expressions and whether they are integer 30782 constant expressions. 30783 (parser_xref_tag): Set expr and expr_const_operands fields in 30784 return value. 30785 (grokfield): Update call to grokdeclarator. 30786 (start_function): Update call to grokdeclarator. 30787 (build_null_declspecs): Set expr and expr_const_operands fields in 30788 return value. 30789 (declspecs_add_type): Handle expressions in typeof specifiers. 30790 * c-parser.c (c_parser_declspecs): Set expr and 30791 expr_const_operands fields for declaration specifiers. 30792 (c_parser_enum_specifier): Likewise. 30793 (c_parser_struct_or_union_specifier): Likewise. 30794 (c_parser_typeof_specifier): Likewise. Update call to 30795 groktypename. Fold expression as needed. Return expressions with 30796 type instead of adding statements. 30797 (c_parser_attributes): Update calls to c_parser_expr_list. 30798 (c_parser_statement_after_labels): Fold expression before passing 30799 to objc_build_throw_stmt. 30800 (c_parser_condition): Fold expression. 30801 (c_parser_asm_operands): Fold expression. 30802 (c_parser_conditional_expression): Use c_save_expr. Update call 30803 to build_conditional_expr. 30804 (c_parser_alignof_expression): Update call to groktypename. 30805 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as 30806 original_code. Fold expression argument of va_arg. Create 30807 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type 30808 argument to va_arg. Update calls to groktypename. Fold array 30809 index for offsetof. Verify that first argument to 30810 __builtin_choose_expr has integer type. 30811 (c_parser_postfix_expression_after_paren_type): Update calls to 30812 groktypename and build_compound_literal. Handle expressions with 30813 side effects in type name. 30814 (c_parser_postfix_expression_after_primary): Update call to 30815 c_parser_expr_list. Set original_code for calls to 30816 __builtin_constant_p. 30817 (c_parser_expr_list): Take extra parameter fold_p. Fold 30818 expressions if requested. 30819 (c_parser_objc_type_name): Update call to groktypename. 30820 (c_parser_objc_synchronized_statement): Fold expression. 30821 (c_parser_objc_receiver): Fold expression. 30822 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list. 30823 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule, 30824 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions. 30825 * c-tree.h (CONSTRUCTOR_NON_CONST): Define. 30826 (struct c_typespec): Add elements expr and expr_const_operands. 30827 (struct c_declspecs): Add elements expr and expr_const_operands. 30828 (groktypename, build_conditional_expr, build_compound_literal): 30829 Update prototypes. 30830 (in_late_binary_op): Declare. 30831 * c-typeck.c (note_integer_operands): New function. 30832 (in_late_binary_op): New variable. 30833 (decl_constant_value_for_broken_optimization): Move to c-common.c 30834 and rename to decl_constant_value_for_optimization. 30835 (default_function_array_conversion): Do not strip nops. 30836 (default_conversion): Do not call 30837 decl_constant_value_for_broken_optimization. 30838 (build_array_ref): Do not fold result. 30839 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for 30840 result when operand is a VLA. 30841 (c_expr_sizeof_type): Update call to groktypename. Handle 30842 expressions included in type name. Use C_MAYBE_CONST_EXPR for 30843 result when operand names a VLA type. 30844 (build_function_call): Update call to build_compound_literal. 30845 Only fold result for calls to __builtin_* functions. Strip 30846 NOP_EXPR from INTEGER_CST returned from such functions. Fold 30847 the function designator. 30848 (convert_arguments): Fold arguments. Update call to 30849 convert_for_assignment. 30850 (build_unary_op): Handle increment and decrement of 30851 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and 30852 decrement earlier. Fold operand of increment and decrement. 30853 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being 30854 built for integer operand. Wrap returns that are INTEGER_CSTs 30855 without being integer constant expressions or that have integer 30856 constant operands without being INTEGER_CSTs. 30857 (lvalue_p): Handle C_MAYBE_CONST_EXPR. 30858 (build_conditional_expr): Add operand ifexp_bcp. Track whether 30859 result is an integer constant expression or can be used in 30860 unevaluated parts of one and avoid folding and wrap as 30861 appropriate. Fold operands before possibly doing -Wsign-compare 30862 warnings. 30863 (build_compound_expr): Wrap result for C99 if operands can be used 30864 in integer constant expressions. 30865 (build_c_cast): Update call to digest_init. Do not ignore 30866 overflow from casting floating-point constants to integers. Wrap 30867 results that could be confused with integer constant expressions, 30868 null pointer constants or floating-point constants. 30869 (c_cast_expr): Update call to groktypename. Handle expressions 30870 included in type name. 30871 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold 30872 lhs inside possible SAVE_EXPR. Fold RHS before assignment. 30873 Update calls to convert_for_assignment. 30874 (convert_for_assignment): Take new parameter 30875 null_pointer_constant. Do not strip nops or call 30876 decl_constant_value_for_broken_optimization. Set 30877 in_late_binary_op for conversions to boolean. 30878 (store_init_value): Update call to digest_init. 30879 (digest_init): Take new parameter null_pointer_constant. Do not 30880 call decl_constant_value_for_broken_optimization. pedwarn for 30881 initializers not constant expressions. Update calls to 30882 convert_for_assignment. 30883 (constructor_nonconst): New. 30884 (struct constructor_stack): Add nonconst element. 30885 (really_start_incremental_init, push_init_level, pop_init_level): 30886 Handle constructor_nonconst and nonconst element. 30887 (set_init_index): Call constant_expression_warning for array 30888 designators. 30889 (output_init_element): Fold value. Set constructor_nonconst as 30890 applicable. pedwarn for initializers not constant expressions. 30891 Update call to digest_init. Call constant_expression_warning 30892 where constant initializers are required. 30893 (process_init_element): Use c_save_expr. 30894 (c_finish_goto_ptr): Fold expression. 30895 (c_finish_return): Fold return value. Update call to 30896 convert_for_assignment. 30897 (c_start_case): Fold switch expression. 30898 (c_process_expr_stmt): Fold expression. 30899 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to 30900 ensure statement expression is not evaluated in constant expression. 30901 (build_binary_op): Track whether results are integer constant 30902 expressions or may occur in such, disable folding and wrap results 30903 as applicable. Fold operands for -Wsign-compare warnings unless 30904 in_late_binary_op. 30905 (c_objc_common_truthvalue_conversion): Handle results folded to 30906 integer constants that are not integer constant expressions. 30907 * doc/extend.texi: Document when typeof operands are evaluated, 30908 that condition of __builtin_choose_expr is an integer constant 30909 expression, and more about use of __builtin_constant_p in 30910 initializers. 30911 309122009-03-29 Richard Guenther <rguenther@suse.de> 30913 30914 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly 30915 propagate addresses of array references. 30916 309172009-03-29 Steven Bosscher <steven@gcc.gnu.org> 30918 30919 * regmove.c (perhaps_ends_bb_p): Remove. 30920 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block 30921 from INSN and check that the main loop stays within that basic block. 30922 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise. 30923 (regmove_forward_pass): Split out from regmove_optimize. Use 30924 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream. 30925 (regmove_backward_pass): Split out from regmove_optimize. Use 30926 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE. 30927 (regmove_optimize): Simplify. 30928 309292009-03-29 H.J. Lu <hongjiu.lu@intel.com> 30930 30931 PR target/39545 30932 * config/i386/i386.c (classify_argument): Ignore flexible array 30933 member in struct and warn ABI change. 30934 309352009-03-29 H.J. Lu <hongjiu.lu@intel.com> 30936 30937 * config/i386/i386-protos.h (ix86_agi_dependent): New. 30938 30939 * config/i386/i386.c (ix86_agi_dependent): Rewrite. 30940 (ix86_adjust_cost): Updated. 30941 309422009-03-29 Jan Hubicka <jh@suse.cz> 30943 30944 PR middle-end/28850 30945 * tree-pass.h (pass_cleanup_eh): New function. 30946 (remove_unreachable_regions): Break code handling RTL 30947 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW 30948 that can not be reached by runtime. 30949 (can_be_reached_by_runtime): New function. 30950 (label_to_region_map): New function. 30951 (num_eh_regions): New function. 30952 (rtl_remove_unreachable_regions): New function. 30953 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions. 30954 (remove_eh_region): New function. 30955 * except.h: Include sbitmap and vecprim. 30956 (remove_eh_region, remove_unreachable_regions, label_to_region_map, 30957 num_eh_regions): Declare. 30958 * passes.c (init_optimization_passes): Schedule cleanup_eh. 30959 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it. 30960 * tree-eh.c (tree_remove_unreachable_handlers): New function. 30961 (tree_empty_eh_handler_p): New function. 30962 (cleanup_empty_eh): New function. 30963 (cleanup_eh): New function. 30964 (pass_cleanup_eh): New function. 30965 309662009-03-29 Jan Hubicka <jh@suse.cz> 30967 30968 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready 30969 for removed regions. 30970 309712009-03-29 Jan Hubicka <jh@suse.cz> 30972 30973 * except.c (dump_eh_tree): Dump all datastructures. 30974 309752009-03-29 Jan Hubicka <jh@suse.cz> 30976 30977 * except.c (duplicate_eh_regions_0): Handle AKA bitmap. 30978 (duplicate_eh_regions_1): Likewise. 30979 (duplicate_eh_regions): Likewise; cleanup code gorwing the region 30980 vector; call EH verification. 30981 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1): 30982 Be ready for region being removed. 30983 309842009-03-29 Jan Hubicka <jh@suse.cz> 30985 30986 * bitmap.c (bitmap_last_set_bit): New function. 30987 * bitmap.h (bitmap_last_set_bit): Declare. 30988 309892009-03-29 David Ayers <ayers@fsfe.org> 30990 30991 PR objc/27377 30992 * c-typeck.c (build_conditional_expr): Emit ObjC warnings 30993 by calling objc_compare_types and surpress warnings about 30994 incompatible C pointers that are compatible ObjC pointers. 30995 309962009-03-29 Adam Nemet <anemet@caviumnetworks.com> 30997 30998 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't 30999 call initialize_inline_failed. 31000 (initialize_inline_failed): Move it from here ... 31001 * cgraph.c (initialize_inline_failed): ... to here. 31002 (cgraph_create_edge): Call initialize_inline_failed rather than 31003 setting inline_failed directly. 31004 310052009-03-29 Ben Elliston <bje@au.ibm.com> 31006 31007 PR target/32542 31008 * sysv4.opt (msdata): Improve comment. 31009 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given. 31010 * sysv4.h (SVR4_ASM_SPEC): Likewise. 31011 310122009-03-29 Ben Elliston <bje@au.ibm.com> 31013 31014 PR target/30451 31015 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of 31016 load and store attributes. 31017 310182009-03-29 Ben Elliston <bje@au.ibm.com> 31019 31020 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ. 31021 (ix86_init_builtins): Add built-in function __builtin_huge_valq. 31022 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ. 31023 * doc/extend.texi (X86 Built-in Functions): Add index entries for 31024 __builtin_infq and __builtin_huge_valq. 31025 310262009-03-28 Anatoly Sokolov <aesok@post.ru> 31027 31028 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and 31029 atmega8m1 devices. 31030 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). 31031 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.) 31032 310332009-03-28 Xinliang David Li <davidxl@google.com> 31034 31035 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 31036 (do_dbg_cnt): New function. 31037 310382009-03-28 Jan Hubicka <jh@suse.cz> 31039 31040 Merge from pretty-ipa: 31041 31042 2009-03-27 Jan Hubicka <jh@suse.cz> 31043 31044 * cgraph.c (dump_cgraph_node): Add replace output flag by process. 31045 * tree-pass.h (function_called_by_processed_nodes_p): Declare. 31046 * passes.c (function_called_by_processed_nodes_p): New. 31047 * ipa-pure-const.c (check_call): Fix handling of operands. 31048 (analyze_function): Dump debug output for skipped bodies. 31049 (local_pure_const): Use function_called_by_processed_nodes_p. 31050 * dwarf2out.c (reference_to_unused): Use output. 31051 * passes.c (do_per_function_toporder): Likewise. 31052 31053 2008-11-12 Jan Hubicka <jh@suse.cz> 31054 31055 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare. 31056 * ipa-pure-const.c (funct_state_d): Add can throw field; make 31057 state_set_in_source enum 31058 (check_decl): Ignore memory tags; do not set fake looping flags; 31059 dump diagnostics. 31060 (check_operand, check_tree, check_rhs_var, check_lhs_var, 31061 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove. 31062 (check_call, analyze_function): Rewrite. 31063 (check_stmt): New. 31064 (add_new_function): Update call of analyze_function. 31065 (generate_summary): Add call of analyze_function. 31066 (propagate): Propagate can_throw; handle state_set_in_source correctly. 31067 (local_pure_const): New function. 31068 (pass_local_pure_const): New pass. 31069 * ipa-inline.c (inline_transform): Set after_inlining. 31070 * tree-eh.c (stmt_can_throw_external): New. 31071 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining; 31072 work with aliasing built. 31073 * tree-flow.h (stmt_can_throw_external): New. 31074 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early; 31075 and local pure/const pass in early and late optimization queue. 31076 310772009-03-28 Martin Jambor <mjambor@suse.cz> 31078 31079 * fold-const.c (get_pointer_modulus_and_residue): New parameter 31080 allow_func_align. 31081 (fold_binary): Allow function decl aligment consideration is the 31082 second argument is integer constant one. 31083 * tree-ssa-forwprop.c (simplify_bitwise_and): New function. 31084 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements 31085 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and. 31086 310872009-03-28 Jan Hubicka <jh@suse.cz> 31088 31089 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow 31090 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls. 31091 * function.h (rtl_data): Add nothrow flag. 31092 * except.c (set_nothrow_function_flags): Use crtl->nothrow; 31093 set DECL_NOTHROW for AVAILABLE functions. 31094 310952009-03-28 Jakub Jelinek <jakub@redhat.com> 31096 31097 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro 31098 following vector keyword has expansion starting with pixel or bool 31099 keyword, expand vector to __vector and pixel or bool to __pixel or 31100 __bool. 31101 31102 PR c++/39554 31103 * opts.c (warning_disallowed_functions, warn_disallowed_functions, 31104 warn_if_disallowed_function_p): Removed. 31105 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_. 31106 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call 31107 warning_if_disallowed_function_p. 31108 * flags.h (warn_if_disallowed_function_p, 31109 warn_disallowed_functions): Removed. 31110 * common.opt (Wdisallowed-function-list=): Removed. 31111 * doc/invoke.texi (-Wdisallowed-function-list=): Removed. 31112 311132009-03-28 Richard Guenther <rguenther@suse.de> 31114 31115 PR tree-optimization/38723 31116 * tree-ssa-pre.c (compute_avail): Add all default definitions to 31117 the entry block. 31118 311192009-03-28 Jan Hubicka <jh@suse.cz> 31120 31121 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed 31122 test introduced by my previous patch. 31123 311242009-03-28 Richard Guenther <rguenther@suse.de> 31125 31126 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave 31127 the PHIs value undefined. 31128 311292009-03-28 Jan Hubicka <jh@suse.cz> 31130 31131 * tree-pass.h (pass_fixup_cfg): New pass. 31132 * ipa-inline.c (inline_transform): Set 31133 always_inline_functions_inlined/after_inlining. 31134 * tree-optimize.c (execute_fixup_cfg): Do not set them here. 31135 (pass_fixup_cfg): New pass. 31136 * passes.c (init_optimization_passes): Add fixup_cfg. 31137 311382009-03-28 Richard Guenther <rguenther@suse.de> 31139 31140 PR tree-optimization/38458 31141 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first 31142 argument use the arguments copy-of value. 31143 311442009-03-28 Richard Guenther <rguenther@suse.de> 31145 31146 PR tree-optimization/38180 31147 * tree-ssa-ccp.c (get_default_value): Simplify. 31148 (likely_value): Likewise. 31149 (surely_varying_stmt_p): Properly handle VOP case. 31150 (ccp_initialize): Likewise. 31151 (ccp_fold): Handle propagating through *&. 31152 (fold_const_aggregate_ref): Also handle decls. 31153 311542009-03-28 Jan Hubicka <jh@suse.cz> 31155 31156 * cgraph.c (dump_cgraph_node): Add replace output flag by process. 31157 * cgraph.h (cgraph_node): Likewise. 31158 * cgraphunit.c (cgraph_process_new_functions): Set process flag. 31159 (cgraph_reset_node): Use process flag. 31160 (cgraph_mark_functions_to_output): Likewise. 31161 (cgraph_expand_function): Likewise. 31162 (cgraph_expand_all_functions): Likewise. 31163 (cgraph_output_in_order): Likewise. 31164 * dwarf2out.c (reference_to_unused): Likewise. 31165 * passes.c do_per_function_toporder): Likewise. 31166 311672009-03-28 Jan Hubicka <jh@suse.cz> 31168 31169 Bring from lto-branch: 31170 31171 2008-09-03 Doug Kwan <dougkwan@google.com> 31172 31173 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t 31174 enums instead of reason strings. 31175 * cgraph.c (cgraph_create_edge): Same. 31176 (cgraph_inline_failed_string): New function. 31177 * cgraph.h (cgraph_inline_failed_t): New enum type. 31178 (cgraph_inline_failed_string): New prototype. 31179 (struct cgraph_edge): Change type of INLINED_FAILED from constant 31180 char pointer to cgraph_inline_failed_t. 31181 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t. 31182 (cgraph_default_inline_p): Ditto. 31183 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON 31184 to cgraph_inline_failed_t pointer. 31185 * cif-code.def: New file. 31186 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a 31187 reason string. 31188 (cgraph_check_inline_limits): Change type of REASON to pointer to 31189 cgraph_inline_failed_t. Replace reason strings with enums. 31190 (cgraph_default_inline_p): Ditto. 31191 (cgraph_recursive_inlining_p): Ditto. 31192 (update_caller_keys): Change type of FAILED_REASON to 31193 cgraph_inline_failed_t. 31194 (cgraph_set_inline_failed): Change type of REASON to pointer to 31195 cgraph_inline_failed_t. Call cgraph_inline_failed_string to 31196 convert enums to strings for text output. 31197 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON 31198 to be of type cgraph_inline_failed_t. Replace reason strings with 31199 enums. Call cgraph_inline_failed_string to covert enums 31200 to strings for text output. 31201 (cgraph_decide_inlining): Replace reason strings with enums. 31202 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON 31203 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string 31204 for text output. 31205 * tree-inline.c (expand_call_inline): Change type of REASON 31206 to cgraph_inline_failed_t. Replace reason strings with enums. 31207 Call cgraph_inline_failed_string for text output. 31208 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies. 31209 (cgraph.o): Ditto. 31210 312112009-03-28 Jan Hubicka <jh@suse.cz> 31212 31213 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node, 31214 cgraph_clone_node): Remove master clone handling. 31215 (cgraph_is_master_clone, cgraph_master_clone): Remove. 31216 * cgraph.h (master_clone): Remove. 31217 (cgraph_is_master_clone, cgraph_master_clone): Remove. 31218 * ipa-type-escape.c (type_escape_execute): Remove use of master clone. 31219 (tree-ssa-structalias.c (ipa_pta_execute): Likewise. 31220 312212009-03-28 Jan Hubicka <jh@suse.cz> 31222 31223 * cgraph.c (cgraph_function_body_availability): Functions declared 31224 inline are always safe to assume that it is not going to be replaced. 31225 312262009-03-28 Richard Guenther <rguenther@suse.de> 31227 31228 PR tree-optimization/38513 31229 * tree-ssa-pre.c (eliminate): Remove redundant stores. 31230 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle 31231 EXC_PTR_EXPR and FILTER_EXPR. 31232 (get_ref_from_reference_ops): Likewise. 31233 312342009-03-28 Richard Guenther <rguenther@suse.de> 31235 31236 PR tree-optimization/38968 31237 * tree-vect-analyze.c (vect_compute_data_ref_alignment): 31238 Use FLOOR_MOD_EXPR to compute misalignment. 31239 312402009-03-28 Richard Guenther <rguenther@suse.de> 31241 31242 PR tree-optimization/37795 31243 * tree.h (combine_comparisons): Declare. 31244 * fold-const.c (combine_comparisons): Export. 31245 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive 31246 comparisons. 31247 (ifcombine_iforif): Use combine_comparisons. 31248 312492009-03-28 Jan Hubicka <jh@suse.cz> 31250 31251 * tree-eh.c (inlinable_call_p): New function. 31252 (make_eh_edges): Use it. 31253 (verify_eh_edges): Use it. 31254 (stmt_can_throw_external, stmt_can_throw_internal): Use it. 31255 * except.c (reachable_next_level): Add inlinable_function argument 31256 (sjlj_find_directly_reachable_regions): Update. 31257 (add_reachable_handler): Do not set saw_any_handlers. 31258 (reachable_next_level): Handle MUST_NOT_THROW more curefully. 31259 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1): 31260 Add new inlinable call parameter. 31261 (can_throw_internal, can_throw_external): Update. 31262 * except.h (can_throw_internal_1, can_throw_external_1, 31263 foreach_reachable_handler): Update declaration. 31264 312652009-03-28 Joseph Myers <joseph@codesourcery.com> 31266 31267 * config/arm/t-arm-coff, config/h8300/coff.h, 31268 config/i386/i386-aout.h, config/i386/i386-coff.h, 31269 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h, 31270 config/pdp11/2bsd.h, config/rs6000/aix41.h, 31271 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h, 31272 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c, 31273 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h, 31274 sys-types.h: Remove. 31275 * Makefile.in: Remove protoize and fixproto support and references 31276 in comments. 31277 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO, 31278 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES): 31279 Remove. 31280 (ALL_HOST_OBJS): Remove $(PROTO_OBJS). 31281 (MOSTLYCLEANFILES): Remove protoize$(exeext) and 31282 unprotoize$(exeext). 31283 (rest.encap): Don't depend on $(STMP_FIXPROTO) 31284 (.PHONY): Don't depend on proto. 31285 (libgcc-support): Don't depend on $(STMP_FIXPROTO). 31286 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext), 31287 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple, 31288 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext), 31289 build/gen-protos.o, build/scan.o, xsys-protos.h, 31290 build/fix-header$(build_exeext), build/fix-header.o, 31291 build/scan-decls.o, fixhdr.ready, stmp-fixproto, 31292 stmp-install-fixproto): Remove. 31293 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X, 31294 SYSCALLS.c or fixproto files. 31295 (install-common): Don't install protoize. 31296 (install-headers-tar, install-headers-cpio, install-headers-cp): 31297 Don't depend on $(STMP_FIXPROTO). 31298 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't 31299 install fixproto files or write out fixproto settings. 31300 (uninstall): Don't uninstall protoize. 31301 * config.gcc (use_fixproto): Remove. 31302 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*, 31303 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd, 31304 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove. 31305 * config/m32r/t-linux (STMP_FIXPROTO): Remove. 31306 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code. 31307 * config/mips/t-iris (FIXPROTO_DEFINES): Remove. 31308 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove. 31309 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code. 31310 * config/t-svr4 (FIXPROTO_DEFINES): Remove. 31311 * config/t-vxworks (STMP_FIXPROTO): Remove. 31312 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T, 31313 STMP_FIXPROTO): Remove. 31314 * config.in, configure: Regenerate. 31315 * crtstuff.c (gid_t, uid_t): Don't undefine. 31316 * doc/install.texi: Change m68k-coff to m68k-elf in example. 31317 (arm-*-coff, arm-*-aout: Remove target entries. 31318 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older. 31319 Remove mention of AIX 4.1. 31320 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*. 31321 * doc/invoke.texi (Running Protoize): Remove. 31322 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto. 31323 (Protoize Caveats): Remove. 31324 * tsystem.h: Update comments on headers assumed to exist. 31325 313262009-03-27 Vladimir Makarov <vmakarov@redhat.com> 31327 31328 * genautomata.c: Add a new year to the copyright. Add a new 31329 reference. 31330 (struct insn_reserv_decl): Add comments for member bypass_list. 31331 (find_bypass): Remove. 31332 (insert_bypass): New. 31333 (process_decls): Use insert_bypass. 31334 (output_internal_insn_latency_func): Output all bypasses with the 31335 same input insn in one switch case. 31336 31337 * rtl.def (define_bypass): Describe bypass choice. 31338 * doc/md.texi (define_bypass): Ditto. 31339 313402009-03-27 Richard Guenther <rguenther@suse.de> 31341 31342 * gimplify.c (mark_addressable): Export. 31343 * tree-flow.h (mark_addressable): Declare. 31344 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable. 31345 * tree-ssa.c (verify_phi_args): Verify that address taken 31346 variables have TREE_ADDRESSABLE set. 31347 313482009-03-27 Richard Guenther <rguenther@suse.de> 31349 31350 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ... 31351 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling. 31352 Do not mark decls TREE_ADDRESSABLE. 31353 (build_fold_addr_expr): Adjust. 31354 (fold_addr_expr): Remove. 31355 (fold_unary): Use build_fold_addr_expr. 31356 (fold_comparison): Likewise. 31357 (split_address_to_core_and_offset): Likewise. 31358 * coverage.c (tree_coverage_counter_addr): Mark the array decl 31359 TREE_ADDRESSABLE. 31360 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs. 31361 (gimplify_modify_expr_to_memcpy): Mark source and destination 31362 addressable. 31363 * omp-low.c (create_omp_child_function): Mark the object decl 31364 TREE_ADDRESSABLE. 31365 (lower_rec_input_clauses): Mark the var we take the address of 31366 TREE_ADDRESSABLE. 31367 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE. 31368 313692009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31370 31371 PR middle-end/39315 31372 * cfgexpand.c (expand_one_stack_var_at): Change alignment 31373 limit to MAX_SUPPORTED_STACK_ALIGNMENT. 31374 313752009-03-27 Richard Guenther <rguenther@suse.de> 31376 31377 PR tree-optimization/39120 31378 * tree-ssa-structalias.c (handle_rhs_call): Fill out return 31379 constraints. 31380 (handle_lhs_call): Process return constraints. Add escape 31381 constraints if necessary. 31382 (handle_const_call): Fill out return constraints. Make nested 31383 case more precise. Avoid consttmp if possible. 31384 (handle_pure_call): Fill out return constraints. Avoid 31385 callused if possible. 31386 (find_func_aliases): Simplify call handling. 31387 313882009-03-27 Richard Guenther <rguenther@suse.de> 31389 31390 PR tree-optimization/39120 31391 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED 31392 as a representative. 31393 (solve_graph): Do propagate CALLUSED. 31394 (handle_pure_call): Use a scalar constraint from CALLUSED for 31395 the return value. 31396 (find_what_p_points_to): CALLUSED shall not appear in poins-to 31397 solutions. 31398 313992009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31400 31401 PR c/39323 31402 * c-common.c (handle_aligned_attribute): Properly check alignment 31403 overflow. Use (1U << i) instead of (1 << i). 31404 31405 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align. 31406 31407 * expr.h (get_mem_align_offset): Updated. 31408 31409 * tree.h (tree_decl_common): Change align to "unsigned int" and 31410 move it before pointer_alias_set. 31411 314122009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31413 Jakub Jelinek <jakub@redhat.com> 31414 31415 PR target/38034 31416 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input 31417 gr_register_operand with gr_reg_or_0_operand. 31418 (cmpxchg_rel_di): Likewise. 31419 (sync_lock_test_and_set<mode>): Likewise. 31420 314212009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31422 31423 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info. 31424 (true_regnum): Likewise. 31425 31426 * rtlanal.c (subreg_info): Moved to ... 31427 * rtl.h (subreg_info): Here. New. 31428 (subreg_get_info): New. 31429 31430 * rtlanal.c (subreg_get_info): Make it extern. 31431 314322009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31433 31434 PR target/39472 31435 * config/i386/i386.c (ix86_abi): New. 31436 (override_options): Handle -mabi=. 31437 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi. 31438 (ix86_call_abi_override): Likewise. 31439 (init_cumulative_args): Likewise. 31440 (function_arg_advance): Likewise. 31441 (function_arg_64): Likewise. 31442 (function_arg): Likewise. 31443 (ix86_pass_by_reference): Likewise. 31444 (ix86_function_value_regno_p): Likewise. 31445 (ix86_build_builtin_va_list_abi): Likewise. 31446 (setup_incoming_varargs_64): Likewise. 31447 (is_va_list_char_pointer): Likewise. 31448 (ix86_init_machine_status): Likewise. 31449 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi. 31450 (ix86_function_type_abi): Return enum calling_abi. Rewrite 31451 for 64bit. Replace DEFAULT_ABI with ix86_abi. 31452 (ix86_function_abi): Make it static and return enum calling_abi. 31453 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI 31454 with ix86_abi. 31455 (ix86_fn_abi_va_list): Updated. 31456 31457 * config/i386/i386.h (ix86_abi): New. 31458 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi. 31459 (CONDITIONAL_REGISTER_USAGE): Likewise. 31460 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi. 31461 (machine_function): Likewise. 31462 31463 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI 31464 with ix86_abi. 31465 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise. 31466 (STACK_BOUNDARY): Likewise. 31467 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise. 31468 31469 * config/i386/i386.opt (mabi=): New. 31470 31471 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to 31472 return enum calling_abi. 31473 (ix86_function_type_abi): Likewise. 31474 (ix86_function_abi): Removed. 31475 31476 * doc/invoke.texi: Document -mabi= option for x86. 31477 314782009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 31479 31480 * builtins.c (real_dconstp): Delete. 31481 (fold_builtin_logarithm): Remove inaccurate log(e) special case. 31482 314832009-03-27 Dodji Seketeli <dodji@redhat.com> 31484 Jakub Jelinek <jakub@redhat.com> 31485 31486 PR debug/37959 31487 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute. 31488 (gen_subprogram_die): When a function is explicit, generate the 31489 DW_AT_explicit attribute. 31490 * langhooks.h (struct lang_hooks_for_decls): Add 31491 function_decl_explicit_p langhook. 31492 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define. 31493 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P. 31494 314952009-03-27 Jakub Jelinek <jakub@redhat.com> 31496 31497 * builtins.c (fold_builtin_memory_op): Optimize memmove 31498 into memcpy if we can prove source and destination don't overlap. 31499 31500 * tree-inline.c: Include gt-tree-inline.h. 31501 (clone_fn_id_num): New variable. 31502 (clone_function_name): New function. 31503 (tree_function_versioning): Use it. 31504 * Makefile.in (GTFILES): Add tree-inline.c. 31505 315062009-03-27 Mark Mitchell <mark@codesourcery.com> 31507 31508 * BASE-VER: Change to 4.5.0. 31509 315102009-03-27 Xinliang David Li <davidxl@google.com> 31511 31512 PR tree-optimization/39557 31513 * tree-ssa.c (warn_uninitialized_vars): free postdom info. 31514 315152009-03-27 Xinliang David Li <davidxl@google.com> 31516 31517 PR tree-optimization/39548 31518 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 31519 candidate check. 31520 315212009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31522 31523 * c-common.c (pointer_int_sum): Use %wd on return from 31524 tree_low_cst. 31525 315262009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31527 31528 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC 31529 on return from tree_low_cst. 31530 315312009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com> 31532 31533 PR c++/36799 31534 * ginclude/stdarg.h (va_copy): Define also for 31535 __GXX_EXPERIMENTAL_CXX0X__. 31536 315372009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 31538 31539 PR c++/35652 31540 * builtins.h (c_strlen): Do not warn here. 31541 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum. 31542 * c-common.c (pointer_int_sum): Take an explicit location. 31543 Warn about offsets out of bounds. 31544 * c-common.h (pointer_int_sum): Adjust declaration. 31545 315462009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 31547 31548 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo 31549 markup glitch. 31550 315512009-03-26 Jakub Jelinek <jakub@redhat.com> 31552 31553 PR c++/39554 31554 * opts.c (warn_if_disallowed_function_p): Don't assume 31555 get_callee_fndecl must return non-NULL. 31556 315572009-03-26 Vladimir Makarov <vmakarov@redhat.com> 31558 31559 PR rtl-optimization/39522 31560 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too 31561 when reg_reloaded_valid is set. 31562 315632009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 31564 31565 * config/spu/divv2df3.c: New file. 31566 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it. 31567 (DPBIT_FUNCS): Filter out _div_df. 31568 315692009-03-26 Bernd Schmidt <bernd.schmidt@analog.com> 31570 31571 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before 31572 a jump insn, count that jump in the distance to the loop start. 31573 315742009-03-25 Kaz Kojima <kkojima@gcc.gnu.org> 31575 31576 PR target/39523 31577 * config/sh/sh.c (calc_live_regs): Fix condition for global 31578 registers except PIC_OFFSET_TABLE_REGNUM. 31579 315802009-03-25 Kai Tietz <kai.tietz@onevision.com> 31581 31582 PR/39518 31583 * doc/invoke.texi (-mconsole): New. 31584 (-mcygwin): New. 31585 (-mno-cygwin): New. 31586 (-mdll): New. 31587 (-mnop-fun-dllimport): New. 31588 (-mthread): New. 31589 (-mwin32): New. 31590 (-mwindows): New. 31591 (sub section "i386 and x86-64 Windows Options"): New. 31592 315932009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org> 31594 31595 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC. 31596 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS. 31597 315982009-03-25 Richard Guenther <rguenther@suse.de> 31599 31600 PR middle-end/39497 31601 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead 31602 of -Wno-error. 31603 316042009-03-25 Andrey Belevantsev <abel@ispras.ru> 31605 31606 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when 31607 neither of haifa/selective schedulers are working. 31608 316092009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 31610 31611 * doc/invoke.texi (Debugging Options): Fix description of 31612 -fno-merge-debug-strings. 31613 316142009-03-24 Hans-Peter Nilsson <hp@axis.com> 31615 31616 * config/cris/libgcc.ver: New version-script. 31617 * config/cris/t-linux (SHLIB_MAPFILES): Use it. 31618 31619 * configure.ac <GAS features, nop mnemonic>: Add pattern 31620 crisv32-*-* for "nop". 31621 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32. 31622 * configure: Regenerate. 31623 316242009-03-24 Ira Rosen <irar@il.ibm.com> 31625 31626 PR tree-optimization/39529 31627 * tree-vect-transform.c (vect_create_data_ref_ptr): Call 31628 mark_sym_for_renaming for the tag copied to the new vector 31629 pointer. 31630 316312009-03-24 Arthur Loiret <aloiret@debian.org> 31632 31633 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha. 31634 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to 31635 EXTRA_SPEC_FUNCTIONS. 31636 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros. 31637 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New. 31638 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for 31639 -march and -mtune options. 31640 316412009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org> 31642 31643 * config/m68k/t-rtems: Add m5329 multilib. 31644 316452009-03-24 Dodji Seketeli <dodji@redhat.com> 31646 Jakub Jelinek <jakub@redhat.com> 31647 31648 PR debug/39524 31649 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration 31650 nodes. 31651 316522009-03-23 Jakub Jelinek <jakub@redhat.com> 31653 31654 PR c/39495 31655 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression 31656 instead of c_parser_expression_conv, if original_code isn't one of the 31657 4 allowed comparison codes, fail. 31658 316592009-03-23 Richard Guenther <rguenther@suse.de> 31660 31661 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts. 31662 * tree.h (struct tree_type): Likewise. 31663 * reload.h (struct insn_chain): Likewise. 31664 * dwarf2out.c (struct dw_loc_descr_struct): Likewise. 31665 * function.h (struct function): Likewise. 31666 * tree-ssa-structalias.c (struct equiv_class_label): Likewise. 31667 316682009-03-23 Jakub Jelinek <jakub@redhat.com> 31669 31670 PR tree-optimization/39516 31671 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable. 31672 316732009-03-23 Bingfeng Mei <bmei@broadcom.com> 31674 31675 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 31676 should be set true if BITS_PER_WORD of target is bigger than 32 31677 316782009-03-22 Hans-Peter Nilsson <hp@axis.com> 31679 31680 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): 31681 Translate -B-options to -rpath-link. Correct existing 31682 rpath-link and conditionalize on !nostdlib. 31683 316842009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 31685 31686 * doc/extend.texi (Function Attributes, Variable Attributes): 31687 Fix typos. 31688 * doc/invoke.texi (Debugging Options, Optimize Options) 31689 (i386 and x86-64 Options, MCore Options): Likewise. 31690 316912009-03-20 Jakub Jelinek <jakub@redhat.com> 31692 31693 PR debug/37890 31694 * dwarf2out.c (gen_namespace_die): Add context_die argument and use 31695 it for block local namespace aliases. 31696 (gen_decl_die): Pass context_die to gen_namespace_die. 31697 316982009-03-19 Jakub Jelinek <jakub@redhat.com> 31699 31700 PR c/39495 31701 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s 31702 minimum or maximum value. 31703 317042009-03-19 Alexandre Oliva <aoliva@redhat.com> 31705 31706 * reginfo.c (globalize_reg): Recompute derived reg sets. 31707 317082009-03-19 Ozkan Sezer <sezeroz@gmail.com> 31709 31710 PR target/39063 31711 * libgcc2.c (mprotect): Do not use signed arguments for 31712 VirtualProtect, use DWORD arguments. Also fix the 'may 31713 be used uninitialized' warning for the np variable. 31714 317152009-03-19 Jakub Jelinek <jakub@redhat.com> 31716 31717 PR target/39496 31718 * config/i386/i386.c (ix86_function_regparm): Don't optimize local 31719 functions using regparm calling conventions when not optimizing. 31720 (ix86_function_sseregparm): Similarly for sseregparm calling 31721 conventions. 31722 317232009-03-19 Li Feng <nemokingdom@gmail.com> 31724 31725 PR middle-end/39500 31726 * tree-data-ref.c (analyze_subscript_affine_affine): There is no 31727 dependence if the first conflict is after niter iterations. 31728 317292009-03-19 Hans-Peter Nilsson <hp@axis.com> 31730 31731 PR middle-end/38609 31732 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all 31733 functions with dynamic stack-pointer adjustments. 31734 317352009-03-19 Ben Elliston <bje@au.ibm.com> 31736 31737 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data 31738 option; change to -msdata=data. 31739 317402009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 31741 31742 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers, 31743 and -fopenmp. 31744 317452009-03-18 Eric Botcazou <ebotcazou@adacore.com> 31746 31747 PR target/35180 31748 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output. 31749 317502009-03-18 Sandra Loosemore <sandra@codesourcery.com> 31751 31752 * doc/invoke.texi (Code Gen Options): Expand discussion of 31753 -fno-common. 31754 317552009-03-18 Jakub Jelinek <jakub@redhat.com> 31756 31757 * dse.c (struct group_info): Reorder fields for 64-bit hosts. 31758 * matrix-reorg.c (struct matrix_info): Likewise. 31759 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise. 31760 * rtl.h (struct mem_attrs): Likewise. 31761 * df.h (struct df): Likewise. 31762 * tree-data-ref.h (struct data_dependence_relation): Likewise. 31763 * ira-int.h (struct ira_allocno): Likewise. 31764 * df-scan.c (struct df_collection_rec): Likewise. 31765 * ira.c (struct equivalence): Likewise. 31766 * function.c (struct temp_slot): Likewise. 31767 * cfgloop.h (struct loop): Likewise. 31768 31769 PR debug/39485 31770 * function.c (use_register_for_decl): When not optimizing, disregard 31771 register keyword for variables with types containing methods. 31772 317732009-03-18 Sebastian Pop <sebastian.pop@amd.com> 31774 31775 PR middle-end/39447 31776 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p. 31777 (is_simple_operand): Call contains_component_ref_p before calling data 31778 reference analysis that would fail on COMPONENT_REFs. 31779 31780 * tree-vrp.c (search_for_addr_array): Fix formatting. 31781 317822009-03-18 Richard Guenther <rguenther@suse.de> 31783 31784 * tree-vect-transform.c (vect_loop_versioning): Fold the 31785 generated comparisons. 31786 * tree-vectorizer.c (set_prologue_iterations): Likewise. 31787 (slpeel_tree_peel_loop_to_edge): Likewise. 31788 317892009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 31790 31791 PR middle-end/37805 31792 * opts.c (print_specific_help): In addition to `undocumented', 31793 accept `separate' and `joined' flags if passed alone. Describe 31794 output by the first matched one of those. 31795 (common_handle_option): Skip over empty strings. 31796 * gcc.c (display_help): Fix help string for `--help='. 31797 * doc/invoke.texi (Option Summary, Overall Options): With 31798 `--help=', classes and qualifiers can both be repeated, but 31799 only the latter can be negated. One should not pass only 31800 negated qualifiers. Fix markup and examples. 31801 31802 Revert 31803 2008-10-14 Jakub Jelinek <jakub@redhat.com> 31804 PR middle-end/37805 31805 * opts.c (common_handle_option): Don't ICE on -fhelp=joined 31806 and -fhelp=separate. 31807 318082009-03-17 Jing Yu <jingyu@google.com> 31809 31810 PR middle-end/39378 31811 * function.h (struct rtl_data): Move is_thunk from here... 31812 (struct function): ...to here. 31813 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun. 31814 * varasm.c (assemble_start_function): Change is_thunk from crtl to 31815 cfun. 31816 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to 31817 cfun. 31818 (alpha_does_function_need_gp, alpha_start_function): Likewise. 31819 (alpha_output_function_end_prologue): Likewise. 31820 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise. 31821 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise. 31822 (rs6000_output_function_epilogue): Likewise. 31823 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise. 31824 318252009-03-17 Uros Bizjak <ubizjak@gmail.com> 31826 31827 PR target/39482 31828 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers 31829 from different units in a single alternative. 31830 (*truncdfsf_i387): Ditto. 31831 (*truncxfsf2_mixed): Ditto. 31832 (*truncxfdf2_mixed): Ditto. 31833 318342009-03-17 Jakub Jelinek <jakub@redhat.com> 31835 31836 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow 31837 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL. 31838 31839 PR debug/39474 31840 * tree-ssa-live.c (remove_unused_locals): Don't remove local 31841 unused non-artificial variables when not optimizing. 31842 31843 PR debug/39471 31844 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit 31845 DW_TAG_imported_module even if decl is IMPORTED_DECL with 31846 NAMESPACE_DECL in its DECL_INITIAL. 31847 31848 PR middle-end/39443 31849 * optabs.c (set_user_assembler_libfunc): New function. 31850 * expr.h (set_user_assembler_libfunc): New prototype. 31851 * c-common.c: Include libfuncs.h. 31852 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc 31853 for memcmp, memset, memcpy, memmove and abort. 31854 * Makefile.in (c-common.o): Depend on libfuncs.h. 31855 31856 PR debug/39412 31857 * dwarf2out.c (gen_inlined_enumeration_type_die, 31858 gen_inlined_structure_type_die, gen_inlined_union_type_die, 31859 gen_tagged_type_instantiation_die): Removed. 31860 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin 31861 do nothing. 31862 318632009-03-17 Janis Johnson <janis187@us.ibm.com> 31864 31865 PR testsuite/38526 31866 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment 31867 its use. 31868 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest. 31869 (check-parallel-%): Ditto. 31870 (check-consistency): Ditto. 31871 318722009-03-17 Kai Tietz <kai.tietz@onevision.com> 31873 31874 * ipa-struct-reorg.c (create_general_new_stmt): Initialize 31875 local variable rhs by NULL_TREE. 31876 318772009-03-17 H.J. Lu <hongjiu.lu@intel.com> 31878 31879 PR target/39477 31880 * doc/extend.texi: Correct register behavior for regparm on Intel 386. 31881 318822009-03-17 H.J. Lu <hongjiu.lu@intel.com> 31883 31884 PR target/39476 31885 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit. 31886 318872009-03-17 H.J. Lu <hongjiu.lu@intel.com> 31888 31889 PR target/39473 31890 * config/i386/i386.c (ix86_expand_call): Check extra clobbers 31891 for ms->sysv ABI calls only in 64bit mode. 31892 31893 * config/i386/i386.md (untyped_call): Support 32bit. 31894 318952009-03-16 H.J. Lu <hongjiu.lu@intel.com> 31896 31897 * doc/extend.texi: Replace x86_65 with x86_64. 31898 318992009-03-16 Jakub Jelinek <jakub@redhat.com> 31900 31901 PR tree-optimization/39455 31902 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types 31903 mismatches for POINTER_TYPE_P (type). 31904 (number_of_iterations_le): Likewise. 31905 319062009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com> 31907 31908 * config/picochip/picochip.c: Removed profiling support. 31909 * config/picochip/picochip.md: Removed profiling instruction. 31910 * config/picochip/picochip.h: Removed profiling builtin. 31911 319122009-03-16 Joseph Myers <joseph@codesourcery.com> 31913 31914 * doc/install.texi (--with-host-libstdcxx): Document. 31915 319162009-03-14 Anatoly Sokolov <aesok@post.ru> 31917 31918 PR target/34299 31919 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for 31920 generate a warning if the function name does not begin with 31921 "__vector" and the function has either the 'signal' or 'interrupt' 31922 attribute, from here to ... 31923 (avr_declare_function_name): ...here. New function. 31924 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine. 31925 * config/avr/avr-protos.h (avr_declare_function_name): Declare. 31926 319272009-03-14 Jakub Jelinek <jakub@redhat.com> 31928 31929 PR bootstrap/39454 31930 * cse.c (fold_rtx): Don't modify original const_arg1 when 31931 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a 31932 separate variable instead. 31933 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything 31934 from out of range shift counts. 31935 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly. 31936 319372009-03-13 Catherine Moore <clm@codesourcery.com> 31938 31939 * config/i386/x-mingw32 (host-mingw32.o): Replace 31940 diagnostic.h with $(DIAGNOSTIC_H). 31941 319422009-03-12 Jakub Jelinek <jakub@redhat.com> 31943 31944 PR target/39431 31945 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New 31946 predicate. 31947 * config/i386/sync.md (sync_compare_and_swap<mode>, 31948 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check 31949 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address 31950 into a register. 31951 (sync_double_compare_and_swapdi_pic, 31952 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be 31953 cmpxchg8b_pic_memory_operand instead of just memory_operand. 31954 319552009-03-12 H.J. Lu <hongjiu.lu@intel.com> 31956 31957 PR target/39445 31958 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment. 31959 319602009-03-12 H.J. Lu <hongjiu.lu@intel.com> 31961 31962 PR target/39327 31963 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits. 31964 (avx_addsubv4df3): Likewise. 31965 (*avx_addsubv4sf3): Likewise. 31966 (sse3_addsubv4sf3): Likewise. 31967 319682009-03-12 H.J. Lu <hongjiu.lu@intel.com> 31969 31970 PR target/38824 31971 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns. 31972 319732009-03-12 Vladimir Makarov <vmakarov@redhat.com> 31974 31975 PR debug/39432 31976 * ira-int.h (struct allocno): Fix comment for calls_crossed_num. 31977 * ira-conflicts.c (ira_build_conflicts): Prohibit call used 31978 registers for allocnos created from user-defined variables. 31979 319802009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 31981 31982 PR target/39181 31983 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs 31984 of non-integer mode as well. 31985 319862009-03-11 Adam Nemet <anemet@caviumnetworks.com> 31987 31988 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P 31989 for functions for which the parameter types are unknown. 31990 319912009-03-11 Jakub Jelinek <jakub@redhat.com> 31992 31993 PR target/39137 31994 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro. 31995 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined. 31996 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define. 31997 * config/i386/i386.c (ix86_local_alignment): For 31998 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for 31999 long long variables on the stack to avoid dynamic realignment. 32000 Allow the first argument to be a decl rather than type. 32001 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document. 32002 320032009-03-11 Nick Clifton <nickc@redhat.com> 32004 32005 PR target/5362 32006 * config/mcore/mcore.opt: Remove deprecated m4align and m8align 32007 options. 32008 Add description to mno-lsim option. 32009 * config/mcore/mcore.h: Remove comment about deprecated m4align 32010 option. 32011 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN. 32012 * doc/invoke.texi: Add description of mno-lsim and 32013 mstack-increment options. 32014 32015 * config/fr30/fr30.opt: Document the -mno-lsim option. 32016 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model 32017 and -mno-lsim options. 32018 320192009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 32020 32021 * fold-const.c (fold_comparison): Only call fold_inf_compare 32022 if the mode supports infinities. 32023 320242009-03-11 Jason Merrill <jason@redhat.com> 32025 32026 PR debug/39086 32027 * tree-nrv.c (tree_nrv): Don't do this optimization if the front 32028 end already did. Notice GIMPLE_CALL modifications of the result. 32029 Don't copy debug information from an ignored decl or a decl from 32030 another function. 32031 320322009-03-10 Richard Guenther <rguenther@suse.de> 32033 Nathan Froyd <froydnj@codesourcery.com> 32034 32035 PR middle-end/37850 32036 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result. 32037 (__divMODE3): Likewise. 32038 320392009-03-09 Jakub Jelinek <jakub@redhat.com> 32040 32041 PR tree-optimization/39394 32042 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and 32043 DECL_SIZE_UNIT of variable length FIELD_DECLs. 32044 320452009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 32046 32047 * recog.c (verfiy_changes): Disallow renaming of hard regs in 32048 inline asms for register asm ("") declarations. 32049 320502009-03-09 Eric Botcazou <ebotcazou@adacore.com> 32051 32052 * fold-const.c (fold_unary): Fix comment. 32053 320542009-03-07 Jan Hubicka <jh@suse.cz> 32055 32056 PR target/39361 32057 * tree-inline.c (setup_one_parameter): Do replacement of const 32058 argument by constant in SSA form. 32059 320602009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 32061 32062 PR middle-end/38028 32063 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to 32064 determine alignment passed to assign_stack_local. 32065 (assign_parms_unsplit_complex): Likewise. 32066 * except.c (sjlj_build_landing_pads): Likewise. 32067 320682009-03-06 Jakub Jelinek <jakub@redhat.com> 32069 32070 PR middle-end/39360 32071 * tree-flow.h (add_referenced_var): Return bool instead of void. 32072 * tree-dfa.c (add_referenced_var): Return result of 32073 referenced_var_check_and_insert call. 32074 * tree-inline.c (expand_call_inline): Call add_referenced_var instead 32075 of referenced_var_check_and_insert. 32076 32077 PR debug/39372 32078 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die. 32079 (gen_variable_die): Emit DW_AT_location on abstract static variable's 32080 DIE, don't emit it if abstract origin already has it. 32081 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any 32082 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless. 32083 320842009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de> 32085 32086 * genpreds.c (needs_variable): Fix parentheses at variable name 32087 detection. 32088 (write_tm_constrs_h): Indent generated code. 32089 320902009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 32091 32092 * doc/extend.texi (Function Attributes): Add documentation 32093 for isr attributes. 32094 320952009-03-06 Jakub Jelinek <jakub@redhat.com> 32096 32097 PR debug/39387 32098 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL 32099 take locus from its DECL_SOURCE_LOCATION instead of input_location. 32100 321012009-03-05 Bernd Schmidt <bernd.schmidt@analog.com> 32102 32103 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark 32104 the loop as bad. 32105 321062009-03-05 Jakub Jelinek <jakub@redhat.com> 32107 32108 PR debug/39379 32109 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs 32110 with blocks containing IMPORTED_DECLs in BLOCK_VARS. 32111 321122009-03-05 Uros Bizjak <ubizjak@gmail.com> 32113 32114 * config/i386/i386.md (R8_REG, R9_REG): New constants. 32115 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named 32116 constants instead of magic numbers. 32117 (HARD_REGNO_CALLER_SAVE_MODE): Ditto. 32118 (QI_REG_P): Ditto. 32119 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto. 32120 (x86_64_ms_abi_int_parameter_registers): Ditto. 32121 (x86_64_int_return_registers): Ditto. 32122 (ix86_maybe_switch_abi): Ditto. 32123 (ix86_expand_call): Ditto for clobbered_registers array. 32124 (ix86_hard_regno_mode_ok): Ditto. 32125 (x86_extended_QIreg_mentioned_p): Ditto. 32126 321272009-03-05 J"orn Rennecke <joern.rennecke@arc.com> 32128 32129 PR tree-optimization/39349 32130 * cse.c (cse_insn): Fix loop to stop at VOIDmode. 32131 32132 * combine.c (gen_lowpart_for_combine): Use omode when generating 32133 clobber. 32134 321352009-03-04 J"orn Rennecke <joern.rennecke@arc.com> 32136 32137 PR rtl-optimization/39235 32138 * loop-iv.c (get_simple_loop_desc): Use XCNEW. 32139 321402009-03-04 Zdenek Dvorak <ook@ucw.cz> 32141 32142 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments. 32143 321442009-03-04 Richard Guenther <rguenther@suse.de> 32145 32146 PR tree-optimization/39362 32147 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs 32148 that occur in abnormal PHIs should be varying. 32149 321502009-03-04 Zdenek Dvorak <ook@ucw.cz> 32151 32152 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): 32153 Extend comments. 32154 (simple_iv): Take loop as an argument instead of statement. 32155 * tree-scalar-evolution.h (simple_iv): Declaration changed. 32156 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls 32157 to simple_iv. 32158 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev): 32159 Ditto. 32160 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto. 32161 * matrix-reorg.c (analyze_transpose): Ditto. 32162 * tree-data-ref.c (dr_analyze_innermost): Ditto. 32163 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto. 32164 * tree-predcom.c (ref_at_iteration): Ditto. 32165 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto. 32166 321672009-03-04 Richard Guenther <rguenther@suse.de> 32168 32169 PR tree-optimization/39358 32170 * tree-ssa-structalias.c (do_sd_constraint): Fix check for 32171 escaped_id and callused_id. 32172 (solve_graph): Likewise. 32173 321742009-03-04 Richard Guenther <rguenther@suse.de> 32175 32176 PR tree-optimization/39339 32177 * tree-sra.c (try_instantiate_multiple_fields): Make it 32178 no longer ICE on the above. 32179 321802009-03-03 Joseph Myers <joseph@codesourcery.com> 32181 32182 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value 32183 that fits within Pmode. 32184 321852009-03-03 Steve Ellcey <sje@cup.hp.com> 32186 32187 PR middle-end/10109 32188 * tm.texi (LIBCALL_VALUE): Update description. 32189 321902009-03-03 Steve Ellcey <sje@cup.hp.com> 32191 32192 PR middle-end/34443 32193 * doc/extend.texi (section): Update description. 32194 321952009-03-03 H.J. Lu <hongjiu.lu@intel.com> 32196 32197 PR middle-end/39345 32198 * tree-inline.c (remapped_type): New. 32199 (can_be_nonlocal): Call remapped_type instead of remap_type. 32200 322012009-03-03 Jakub Jelinek <jakub@redhat.com> 32202 32203 PR fortran/39354 32204 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison, 32205 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR. 32206 322072009-03-03 Richard Guenther <rguenther@suse.de> 32208 32209 PR middle-end/39272 32210 * tree.c (tree_nonartificial_location): New function. 32211 * tree.h (tree_nonartificial_location): Declare. 32212 * builtins.c (expand_builtin_memory_chk): Provide location 32213 of the call location for artificial function pieces. 32214 (maybe_emit_chk_warning): Likewise. 32215 (maybe_emit_sprintf_chk_warning): Likewise. 32216 (maybe_emit_free_warning): Likewise. 32217 * expr.c (expand_expr_real_1): Likewise. 32218 322192009-03-03 Jakub Jelinek <jakub@redhat.com> 32220 32221 PR tree-optimization/39343 32222 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if 32223 COMPONENT_REF t has ARRAY_TYPE. 32224 322252009-03-02 Sebastian Pop <sebastian.pop@amd.com> 32226 32227 PR middle-end/39335 32228 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert 32229 when the type precision of the induction variable should be 32230 larger than the type precision of nit. 32231 (gen_parallel_loop): Update use of canonicalize_loop_ivs. 32232 * graphite.c (graphite_loop_normal_form): Same. 32233 * tree-flow.h (canonicalize_loop_ivs): Update declaration. 32234 322352009-03-02 Uros Bizjak <ubizjak@gmail.com> 32236 32237 * config/i386/i386.md (ST?_REG, MM?_REG): New constants. 32238 (*call_1_rex64_ms_sysv): Use named constants instead of magic 32239 numbers to describe clobbered registers. 32240 (*call_value_0_rex64_ms_sysv): Ditto. 32241 * config/i386/mmx.md (mmx_emms): Ditto. 32242 (mmx_femms): Ditto. 32243 322442009-03-02 Richard Sandiford <rdsandiford@googlemail.com> 32245 32246 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling 32247 of ABI_64. 32248 322492009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 32250 32251 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define. 32252 (spu_section_type_flags): New function. 32253 322542009-03-02 Uros Bizjak <ubizjak@gmail.com> 32255 32256 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy 32257 reg_class_contents of FLOAT_REGS into a temporary. 32258 322592009-03-02 Richard Guenther <rguenther@suse.de> 32260 Ira Rosen <irar@il.ibm.com> 32261 32262 PR tree-optimization/39318 32263 * tree-vect-transform.c (vectorizable_call): Transfer the EH region 32264 information to the vectorized statement. 32265 322662009-03-01 Uros Bizjak <ubizjak@gmail.com> 32267 32268 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i" 32269 variable. Use defined names instead of magic constants for REX SSE 32270 registers. 32271 322722009-03-01 Richard Guenther <rguenther@suse.de> 32273 32274 PR tree-optimization/39331 32275 * omp-low.c (lower_send_shared_vars): Do not receive new 32276 values for the reference of DECL_BY_REFERENCE parms or results. 32277 322782009-03-01 Jan Hubicka <jh@suse.cz> 32279 32280 PR debug/39267 32281 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS, 32282 BLOCK_NONLOCALIZED_VAR): New macros. 32283 (tree_block): Add nonlocalized_vars. 32284 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die, 32285 gen_decl_die): Add origin argument. Allow generation of die with 32286 origin at hand only. 32287 (gen_member_die, gen_type_die_with_usage, force_decl_die, 32288 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use 32289 of gen_*. 32290 (gen_block_die): Fix checking for unused blocks. 32291 (process_scope_var): Break out from .... ; work with origins only. 32292 (decls_for_scope) ... here; process nonlocalized list. 32293 (dwarf2out_ignore_block): Look for nonlocalized vars. 32294 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized 32295 vars. 32296 (dump_scope_block): Dump them. 32297 * tree-inline.c (remap_decls): Handle nonlocalized vars. 32298 (remap_block): Likewise. 32299 (can_be_nonlocal): New predicate. 32300 (copy_bind_expr, copy_gimple_bind): Update use of remap_block. 32301 323022009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 32303 32304 * configure: Regenerate. 32305 323062009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 32307 32308 * optc-gen.awk: No need to duplicate option flags twice. 32309 Reuse help texts for duplicate options which do not have any. 32310 32311 * gcc.c (display_help): Document --version. 32312 32313 * gcc.c (main): If print_help_list and verbose_flag, ensure 32314 driver output comes before subprocess output. 32315 32316 * optc-gen.awk: Assign all remaining fields to help string, 32317 space-separated, for multi-line help in *.opt. 32318 32319 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only. 32320 -Wno-pedantic-ms-format is for MinGW targets only. 32321 32322 * doc/options.texi (Option file format): Fix bad indentation, 32323 restoring dropped sentence. 32324 323252009-02-28 Jan Hubicka <jh@suse.cz> 32326 32327 * tree-inline.c (tree_function_versioning): Output debug info. 32328 323292009-02-28 Jan Hubicka <jh@suse.cz> 32330 32331 PR debug/39267 32332 * tree-inline.c (setup_one_parameter): Do not copy propagate 32333 arguments when not optimizing. 32334 323352009-02-28 H.J. Lu <hongjiu.lu@intel.com> 32336 32337 PR target/39327 32338 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits. 32339 (avx_addsubv4df3): Likewise. 32340 (*avx_addsubv4sf3): Likewise. 32341 (sse3_addsubv4sf3): Likewise. 32342 (*avx_addsubv2df3): Likewise. 32343 (sse3_addsubv2df3): Likewise. 32344 (avx_unpckhps256): Correct item selectors. 32345 (avx_unpcklps256): Likewise. 32346 (avx_unpckhpd256): Likewise. 32347 (avx_unpcklpd256): Likewise. 32348 323492009-02-28 Jan Hubicka <jh@suse.cz> 32350 32351 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of 32352 static vars. 32353 (copy_arguments_for_versioning): If var is declared don't declare it. 32354 (tree_function_versioning): First setup substitutions and then copy 32355 args. 32356 323572009-02-27 Jan Hubicka <jh@suse.cz> 32358 32359 PR debug/39267 32360 * cgraph.h (varpool_output_debug_info): Remove. 32361 * cgraphunit.c (varpool_output_debug_info): Remove. 32362 * dwarf2out.c (deferred_locations_struct): New struct 32363 (deferred_locations): New type. 32364 (deferred_locations_list): New static var. 32365 (deffer_location): New function. 32366 (gen_variable_die): Use it. 32367 (decls_for_scope): Output info on local static vars. 32368 (dwarf2out_finish): Process deferred locations. 32369 * varpool.c (varpool_output_debug_info): Remove. 32370 323712009-02-27 Jan Hubicka <jh@suse.cz> 32372 32373 PR debug/39267 32374 * tree.h (TREE_PROTECTED): Fix comment. 32375 (BLOCK_HANDLER_BLOCK): Remove. 32376 (struct tree_block): Remove handler_block add body_block. 32377 (inlined_function_outer_scope_p): New. 32378 (is_body_block): Remove. 32379 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK. 32380 * dwarf2out.c (is_inlined_entry_point): Remove. 32381 (add_high_low_attributes): Use inlined_function_outer_scope_p. 32382 (gen_block_die): Use is_inlined_entry_point check. Remove body block 32383 code. 32384 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks. 32385 * gimplify.c (gimplify_expr): Gimplify body blocks. 32386 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper 32387 block with multiple subblocks. 32388 (dump_scope_block): Prettier output; dump more flags and info. 32389 (dump_scope_blocks): New. 32390 (remove_unused_locals): Use dump_scope_blocks. 32391 * tree-flow.h (dump_scope_blocks): Declare. 32392 * tree-cfg.c (execute_build_cfg): Dump scope blocks. 32393 * stmt.c (is_body_block): Remove. 32394 * tree-inline.c (remap_block): Copy BODY_BLOCK info. 32395 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove. 32396 323972009-02-27 Sebastian Pop <sebastian.pop@amd.com> 32398 32399 PR middle-end/39308 32400 * graphite.c (graphite_loop_normal_form): Do not call 32401 number_of_iterations_exit from a gcc_assert. 32402 324032009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 32404 32405 * config/s390/s390.c (s390_swap_cmp): Look for conditional 32406 jumps if COND is NULL. 32407 (find_cond_jump): New function. 32408 (s390_z10_optimize_cmp): Handling for reg-reg compares added. 32409 * config/s390/s390.md: Remove z10_cobra attribute value. 32410 324112009-02-26 Uros Bizjak <ubizjak@gmail.com> 32412 32413 * config/alpha/alpha.h (alpha_expand_mov): Return false if 32414 force_const_mem returns NULL_RTX. 32415 324162009-02-26 Jan Hubicka <jh@suse.cz> 32417 32418 PR debug/39267 32419 * cgraph.h (varpool_output_debug_info): Remove. 32420 * cgraphunit.c (varpool_output_debug_info): Remove. 32421 * dwarf2out.c (deferred_locations_struct): New struct 32422 (deferred_locations): New type. 32423 (deferred_locations_list): New static var. 32424 (deffer_location): New function. 32425 (gen_variable_die): Use it. 32426 (decls_for_scope): Output info on local static vars. 32427 (dwarf2out_finish): Process deferred locations. 32428 * varpool.c (varpool_output_debug_info): Remove. 32429 324302009-02-25 H.J. Lu <hongjiu.lu@intel.com> 32431 32432 PR rtl-optimization/39241 32433 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls 32434 to subreg_offset_representable_p. 32435 324362009-02-25 Paolo Bonzini <bonzini@gnu.org> 32437 32438 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass 32439 execute function prototype. Get f and nregs from max_reg_num 32440 and get_insns. Remove the first backward pass as it's dead, 32441 guard the forward pass by flag_expensive_optimizations. 32442 (rest_of_handle_regmove): Delete. 32443 (pass_regmove): Replace it with regmove_optimize. 32444 324452009-02-25 Martin Jambor <mjambor@suse.cz> 32446 32447 PR tree-optimization/39259 32448 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and 32449 calls_alloca function flags. 32450 (copy_bb): Set calls_setjmp and alls_alloca function flags if such 32451 calls are detected. 32452 324532009-02-25 Paolo Bonzini <bonzini@gnu.org> 32454 32455 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones, 32456 flags_set_1_rtx, flags_set_1_set): Delete. 32457 (regmove_optimize): Do not call mark_flags_life_zones. 32458 324592009-02-24 Julian Brown <julian@codesourcery.com> 32460 32461 PR target/35965 32462 * config/arm/arm.c (require_pic_register): Only set 32463 cfun->machine->pic_reg once per function. 32464 324652009-02-24 Sandra Loosemore <sandra@codesourcery.com> 32466 32467 * doc/invoke.texi (Link Options): Document an easier way to pass 32468 options that take arguments to the GNU linker using -Xlinker and -Wl. 32469 324702009-02-24 Steve Ellcey <sje@cup.hp.com> 32471 32472 PR target/33785 32473 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description. 32474 324752009-02-24 Richard Guenther <rguenther@suse.de> 32476 32477 PR debug/39285 32478 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs. 32479 324802009-02-24 Richard Guenther <rguenther@suse.de> 32481 Zdenek Dvorak <ook@ucw.cz> 32482 32483 PR tree-optimization/39233 32484 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers 32485 from converting them to a generic type. 32486 324872009-02-23 Sebastian Pop <sebastian.pop@amd.com> 32488 32489 PR tree-optimization/39260 32490 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block 32491 contains a condition with a real type. 32492 (build_scop_conditions_1): Conditions are always last_stmt of a bb. 32493 324942009-02-23 Jason Merrill <jason@redhat.com> 32495 32496 PR c++/38880 32497 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check 32498 narrowing_initializer_constant_valid_p. 32499 (narrowing_initializer_constant_valid_p): Don't return 32500 null_pointer_node for adding a pointer to itself. 32501 325022009-02-23 Jan Hubicka <jh@suse.cz> 32503 32504 PR c/12245 32505 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when 32506 resizing. 32507 325082009-02-23 Jan Hubicka <jh@suse.cz> 32509 32510 PR tree-optimization/37709 32511 * tree.c (block_ultimate_origin): Move here from dwarf2out. 32512 * tree.h (block_ultimate_origin): Declare. 32513 * dwarf2out.c (block_ultimate_origin): Move to tree.c 32514 * tree-ssa-live.c (remove_unused_scope_block_p): 32515 Eliminate blocks containig no instructions nor live variables nor 32516 nested blocks. 32517 (dump_scope_block): New function. 32518 (remove_unused_locals): Enable removal of dead blocks by default; 32519 enable dumping at TDF_DETAILS. 32520 325212009-02-21 H.J. Lu <hongjiu.lu@intel.com> 32522 32523 * config/i386/i386.c (classify_argument): Don't allow COImode 32524 and OImode. 32525 (function_arg_advance_32): Don't allow OImode. 32526 (function_arg_32): Likewise. 32527 (function_value_32): Likewise. 32528 (return_in_memory_32): Likewise. 32529 (function_arg_64): Remove OImode comment. 32530 325312009-02-21 H.J. Lu <hongjiu.lu@intel.com> 32532 32533 PR target/39261 32534 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use 32535 ix86_expand_vector_set for V4DImode in 64bit mode only. 32536 (ix86_expand_vector_init_one_var): Likewise. 32537 325382009-02-21 Sebastian Pop <sebastian.pop@amd.com> 32539 32540 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51. 32541 325422009-02-21 Richard Sandiford <rdsandiford@googlemail.com> 32543 32544 PR bootstrap/39257 32545 * loop-iv.c: Revert last change. 32546 * emit-rtl.c: Likewise. 32547 325482009-02-21 H.J. Lu <hongjiu.lu@intel.com> 32549 32550 PR target/39256 32551 * config/i386/i386.c (type_natural_mode): Remove an extra 32552 space in the warning message. 32553 (function_value_32): Handle 32-byte vector modes. 32554 (return_in_memory_32): Likewise. 32555 325562009-02-21 Richard Sandiford <rdsandiford@googlemail.com> 32557 32558 * loop-iv.c (truncate_value): New function. 32559 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead 32560 of lowpart_subreg. 32561 (lowpart_subreg): Move to... 32562 * emit-rtl.c: ...here. 32563 325642009-02-21 Danny Smith <dannysmith@users.sourceforge.net> 32565 32566 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert 32567 accidental and undocumented change at revision 140860. 32568 325692009-02-21 Joseph Myers <joseph@codesourcery.com> 32570 32571 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to 32572 take gimple_seq * arguments. 32573 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to 32574 types_compatible_p langhook. 32575 325762009-02-20 Mark Mitchell <mark@codesourcery.com> 32577 Joseph Myers <joseph@codesourcery.com> 32578 32579 * config/arm/arm.c (arm_builtin_va_list): New function. 32580 (arm_expand_builtin_va_start): Likewise. 32581 (arm_gimplify_va_arg_expr): Likewise. 32582 (TARGET_BUILD_BUILTIN_VA_LIST): Define. 32583 (TARGET_BUILD_BUILTIN_VA_START): Likewise. 32584 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise. 32585 (va_list_type): New variable. 32586 (arm_mangle_type): Mangle va_list_type appropriately. 32587 325882009-02-20 Jakub Jelinek <jakub@redhat.com> 32589 32590 PR middle-end/39157 32591 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H). 32592 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define. 32593 * params.def (loop-invariant-max-bbs-in-loop): New parameter. 32594 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop 32595 parameter to 1000 for -O1 by default. 32596 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new 32597 parameter. 32598 * loop-invariant.c: Include params.h. 32599 (move_loop_invariants): Don't call move_single_loop_invariants on 32600 very large loops. 32601 326022009-02-20 Jaka Mocnik <jaka@xlab.si> 32603 32604 * calls.c (emit_library_call_value_1): Use slot_offset instead of 32605 offset when calculating bounds for indexing stack_usage_map. Fixes 32606 a buffer overflow with certain target setups. 32607 326082009-02-20 Jakub Jelinek <jakub@redhat.com> 32609 32610 PR target/39240 32611 * calls.c (expand_call): Clear try_tail_call if caller and callee 32612 disagree in promotion of function return value. 32613 326142009-02-19 Jakub Jelinek <jakub@redhat.com> 32615 32616 PR target/39175 32617 * c-common.c (c_determine_visibility): If visibility changed and 32618 DECL_RTL has been already set, call make_decl_rtl to update symbol 32619 flags. 32620 326212009-02-19 H.J. Lu <hongjiu.lu@intel.com> 32622 32623 PR c++/39188 32624 * varasm.c (assemble_variable): Don't check DECL_NAME when 32625 globalizing a variable. 32626 326272009-02-19 Joseph Myers <joseph@codesourcery.com> 32628 32629 PR c/38483 32630 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list 32631 expression before any __builtin_trap call. 32632 * c-typeck.c (build_function_call): Convert and check function 32633 arguments before generating a call to a trap. Evaluate the 32634 function arguments before the trap. 32635 326362009-02-19 Uros Bizjak <ubizjak@gmail.com> 32637 32638 PR target/39228 32639 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2. 32640 (UNSPEC_FXAM_MEM): New unspec. 32641 (fxam<mode>2_i387_with_temp): New insn and split pattern. 32642 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through 32643 memory using fxam<mode>2_i387_with_temp to remove excess precision. 32644 326452009-02-19 Richard Guenther <rguenther@suse.de> 32646 32647 PR tree-optimization/39207 32648 PR tree-optimization/39074 32649 * tree-ssa-structalias.c (storedanything_id, var_storedanything, 32650 storedanything_tree): New. 32651 (do_ds_constraint): Simplify ANYTHING shortcutting. Update 32652 the STOREDANYTHING solution if the lhs solution contains ANYTHING. 32653 (build_succ_graph): Add edges from STOREDANYTHING to all 32654 non-direct nodes. 32655 (init_base_vars): Initialize STOREDANYTHING. 32656 (compute_points_to_sets): Free substitution info after 32657 building the succ graph. 32658 (ipa_pta_execute): Likewise. 32659 32660 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers 32661 field. 32662 (do_ds_constraint): Do not add to special var or non-pointer 32663 field solutions. 32664 (type_could_have_pointers): Split out from ... 32665 (could_have_pointers): ... here. For arrays use the element type. 32666 (create_variable_info_for): Initialize may_have_pointers. 32667 (new_var_info): Likewise. 32668 (handle_lhs_call): Make the HEAP variable unknown-sized. 32669 (intra_create_variable_infos): Use a type with pointers for 32670 PARM_NOALIAS, make it unknown-sized. 32671 326722009-02-18 H.J. Lu <hongjiu.lu@intel.com> 32673 32674 PR target/39224 32675 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI. 32676 326772009-02-18 Jason Merrill <jason@redhat.com> 32678 32679 PR target/39179 32680 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero 32681 value if DECL_EXTERNAL. 32682 * tree-sra.c (sra_walk_gimple_assign): Likewise. 32683 * target.h (gcc_target::binds_local_p): Clarify "module". 32684 * tree.h (TREE_PUBLIC): Clarify "module". 32685 326862009-02-17 Xuepeng Guo <xuepeng.guo@intel.com> 32687 32688 PR target/38891 32689 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of 32690 initialization for MS_ABI prior to the hunk of !TARGET_MMX. 32691 326922009-02-17 H.J. Lu <hongjiu.lu@intel.com> 32693 32694 PR target/39082 32695 * c.opt (Wabi): Support C and ObjC. 32696 (Wpsabi): New. 32697 32698 * c-opts.c (c_common_handle_option): Handle OPT_Wabi. 32699 32700 * config/i386/i386.c (classify_argument): Warn once about the ABI 32701 change when passing union with long double. 32702 32703 * doc/invoke.texi: Update -Wabi for warning psABI changes. 32704 327052009-02-18 Joseph Myers <joseph@codesourcery.com> 32706 32707 PR c/35447 32708 * c-parser.c (c_parser_compound_statement): Always enter and leave 32709 a scope. 32710 327112009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 32712 32713 PR target/34587 32714 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define. 32715 327162009-02-18 Jakub Jelinek <jakub@redhat.com> 32717 32718 PR tree-optimization/36922 32719 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR. 32720 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1): 32721 Likewise. 32722 327232009-02-17 Richard Sandiford <rdsandiford@googlemail.com> 32724 32725 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm 32726 to 0 for EABI64. 32727 327282009-02-17 Richard Sandiford <rdsandiford@googlemail.com> 32729 32730 * config/mips/mips.md (type): Reclassify lui_movf as "unknown". 32731 327322009-02-17 Richard Sandiford <rdsandiford@googlemail.com> 32733 32734 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid 32735 tree sharing. 32736 327372009-02-17 Ruan Beihong <ruanbeihong@gmail.com> 32738 Richard Sandiford <rdsandiford@googlemail.com> 32739 32740 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete. 32741 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to... 32742 (loongson_biadd): ...this. 32743 327442009-02-17 Richard Guenther <rguenther@suse.de> 32745 32746 PR tree-optimization/39202 32747 * tree-ssa-structalias.c (do_structure_copy): Before collapsing 32748 a var make sure to follow existing collapses. 32749 327502009-02-17 Richard Guenther <rguenther@suse.de> 32751 32752 PR middle-end/39214 32753 * langhooks.c (lhd_print_error_function): Check for NULL block. 32754 327552009-02-17 Richard Guenther <rguenther@suse.de> 32756 32757 PR tree-optimization/39204 32758 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number 32759 of the PHI arg. 32760 327612009-02-17 Uros Bizjak <ubizjak@gmail.com> 32762 32763 * config/soft-fp/double.h: Update from glibc CVS. 32764 327652009-02-17 Richard Guenther <rguenther@suse.de> 32766 32767 PR tree-optimization/39207 32768 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit 32769 strict-aliasing warnings for pointers pointing to NULL. 32770 327712009-02-16 Joseph Myers <joseph@codesourcery.com> 32772 32773 PR c/35446 32774 * c-parser.c (c_parser_braced_init): Call pop_init_level when 32775 skipping until next close brace. 32776 327772009-02-16 H.J. Lu <hongjiu.lu@intel.com> 32778 32779 PR target/37049 32780 * config/i386/i386.c (ix86_expand_push): Set memory alignment 32781 to function argument boundary. 32782 327832009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com> 32784 32785 * config/picochip/picochip.md (lea_add): Allow any nonimmediate 32786 in the lea_add. Reload eventually constraints it properly. 32787 * config/picochip/constraints.md: Remove the target constraint 32788 "b", since it is not needed anymore. 32789 327902009-02-16 Jakub Jelinek <jakub@redhat.com> 32791 32792 * gthr-dce.h: Uglify function parameter and local variable names. 32793 * gthr-gnat.h: Likewise. 32794 * gthr-mipssde.h: Likewise. 32795 * gthr-nks.h: Likewise. 32796 * gthr-posix95.h: Likewise. 32797 * gthr-posix.h: Likewise. 32798 * gthr-rtems.h: Likewise. 32799 * gthr-single.h: Likewise. 32800 * gthr-solaris.h: Likewise. 32801 * gthr-tpf.h: Likewise. 32802 * gthr-vxworks.h: Likewise. 32803 * gthr-win32.h: Likewise. 32804 328052009-02-15 H.J. Lu <hongjiu.lu@intel.com> 32806 32807 PR target/39196 32808 * config/i386/i386.md: Restrict the new peephole2 to move 32809 between MMX/SSE registers. 32810 328112009-02-15 Richard Guenther <rguenther@suse.de> 32812 32813 Revert 32814 2009-02-13 Richard Guenther <rguenther@suse.de> 32815 32816 * configure.ac: Enable LFS. 32817 * configure: Re-generate. 32818 * config.in: Likewise. 32819 328202009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 32821 32822 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw, 32823 spu_srqwbyte, spu_srqwbytebc): Define. 32824 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw, 32825 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins. 32826 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>", 32827 "shrqby_<mode>"): New insn-and-split patterns. 32828 * config/spu/spu.c (expand_builtin_args): Determine and return 32829 number of operands using spu_builtin_description data. 32830 (spu_expand_builtin_1): Use it. 32831 328322009-02-13 Steve Ellcey <sje@cup.hp.com> 32833 32834 PR target/38056 32835 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check 32836 TARGET_CONST_GP. 32837 328382009-02-13 H.J. Lu <hongjiu.lu@intel.com> 32839 32840 PR target/39149 32841 * config/i386/i386.c (override_options): Correct warning 32842 messages for -malign-loops, -malign-jumps and -malign-functions. 32843 328442009-02-13 H.J. Lu <hongjiu.lu@intel.com> 32845 32846 PR target/39152 32847 * config/i386/i386.md: Restrict the new peephole2 to move 32848 between the general purpose registers. 32849 328502009-02-13 H.J. Lu <hongjiu.lu@intel.com> 32851 32852 PR target/39162 32853 * config/i386/i386.c (type_natural_mode): Add a new argument. 32854 Return the original mode and warn ABI change if vector size is 32byte. 32855 (function_arg_advance): Updated. 32856 (function_arg): Likewise. 32857 (ix86_function_value): Likewise. 32858 (ix86_return_in_memory): Likewise. 32859 (ix86_sol10_return_in_memory): Likewise. 32860 (ix86_gimplify_va_arg): Likewise. 32861 (function_arg_32): Don't warn ABX ABI change here. 32862 (function_arg_64): Likewise. 32863 328642009-02-13 Bernd Schmidt <bernd.schmidt@analog.com> 32865 32866 * loop-iv.c (implies_p): In the final case, test that operands 0 32867 of the two comparisons match. 32868 32869 * config/bfin/bfin.c (find_prev_insn_start): New function. 32870 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN. 32871 (find_next_insn_start): Move. 32872 328732009-02-13 Richard Guenther <rguenther@suse.de> 32874 32875 * configure.ac: Enable LFS. 32876 * configure: Re-generate. 32877 * config.in: Likewise. 32878 328792009-02-13 Joseph Myers <joseph@codesourcery.com> 32880 32881 PR c/35444 32882 * c-parser.c (c_parser_parms_list_declarator): Discard pending 32883 sizes on syntax error after some arguments have been parsed. 32884 328852009-02-12 Jakub Jelinek <jakub@redhat.com> 32886 32887 * doc/invoke.texi (-fira): Remove. 32888 328892009-02-12 H.J. Lu <hongjiu.lu@intel.com> 32890 32891 * caller-save.c: Replace regclass.c with reginfo.c in comments. 32892 * recog.c: Likewise. 32893 * rtl.h: Likewise. 32894 328952009-02-12 Uros Bizjak <ubizjak@gmail.com> 32896 32897 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2. 32898 (umul_ppmm): Likewise. 32899 (count_leading_zeros): Likewise. 32900 (count_trailing_zeros): Likewise. 32901 (UMUL_TIME): Likewise. 32902 329032009-02-12 H.J. Lu <hongjiu.lu@intel.com> 32904 32905 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and 32906 soft-fp/t-softfp to tmake_file. 32907 32908 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New. 32909 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX. 32910 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ, 32911 IA64_BUILTIN_INFQ]: New. 32912 (ia64_init_builtins): Initialize __builtin_infq, 32913 __builtin_fabsq and __builtin_copysignq if not HPUX. 32914 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ, 32915 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ. 32916 32917 * config/ia64/lib1funcs.asm (__divtf3): Define only if 32918 SHARED is defined. 32919 (__fixtfti): Likewise. 32920 (__fixunstfti): Likewise. 32921 (__floattitf): Likewise. 32922 32923 * config/ia64/libgcc-glibc.ver: New. 32924 * config/ia64/t-fprules-softfp: Likewise. 32925 * config/ia64/sfp-machine.h: Likewise. 32926 32927 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New. 32928 (LIBGCC2_TF_CEXT): Likewise. 32929 (TF_SIZE): Likewise. 32930 (TARGET_INIT_LIBFUNCS): Likewise. 32931 32932 * config/ia64/t-glibc (SHLINB_MAPFILES): 32933 Add $(srcdir)/config/ia64/libgcc-glibc.ver. 32934 329352009-02-12 H.J. Lu <hongjiu.lu@intel.com> 32936 32937 * config/i386/i386.c (construct_container): Rewrite processing 32938 BLKmode with X86_64_SSE_CLASS. 32939 329402009-02-12 Paolo Bonzini <bonzini@gnu.org> 32941 32942 PR target/39152 32943 * config/i386/i386.md: Replace simplify_replace_rtx with 32944 replace_rtx in the new peephole2. 32945 329462009-02-12 Nathan Sidwell <nathan@codesourcery.com> 32947 32948 * doc/invoke.texi (Optimize Options): Stop claiming inlining and 32949 loop unrolling do not happen at -O2. 32950 329512009-02-12 Michael Matz <matz@suse.de> 32952 32953 * gcc.c (ASM_DEBUG_SPEC): Check for -g0. 32954 329552009-02-12 Jakub Jelinek <jakub@redhat.com> 32956 32957 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die 32958 for -g3. 32959 329602009-02-12 Ben Elliston <bje@au.ibm.com> 32961 32962 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of 32963 patterns when updating the back chain. Missed in the 2009-02-10 32964 change. 32965 329662009-02-11 Janis Johnson <janis187@us.ibm.com> 32967 32968 * doc/extend.texi (Decimal Floating Types): Update identifier of 32969 draft TR and list of missing support. 32970 329712009-02-11 Jakub Jelinek <jakub@redhat.com> 32972 32973 PR middle-end/39154 32974 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN 32975 bit to variable length decl's flags, add it also to its 32976 pointer replacement variable. 32977 329782009-02-11 Uros Bizjak <ubizjak@gmail.com> 32979 Jakub Jelinek <jakub@redhat.com> 32980 32981 PR target/39118 32982 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant. 32983 (memory_blockage): New expander. 32984 (*memory_blockage): New insn pattern. 32985 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage 32986 instead of general blockage at the end of function prologue when 32987 frame pointer is used to access red zone area. Do not emit blockage 32988 when profiling, it is emitted in generic code. 32989 (ix86_expand_epilogue): Emit memory_blockage at the beginning of 32990 function epilogue when frame pointer is used to access red zone area. 32991 329922009-02-11 Paolo Bonzini <bonzini@gnu.org> 32993 32994 PR target/38824 32995 * config/i386/i386.md: Add two new peephole2 to avoid mov followed 32996 by arithmetic with memory operands. 32997 * config/i386/predicates.md (commutative_operator): New. 32998 329992009-02-10 Janis Johnson <janis187@us.ibm.com> 33000 33001 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into 33002 bulleted lists. 33003 330042009-02-10 Eric Botcazou <ebotcazou@adacore.com> 33005 33006 * alias.h (record_alias_subset): Declare. 33007 * alias.c (record_alias_subset): Make global. 33008 330092009-02-10 Nick Clifton <nickc@redhat.com> 33010 33011 * tree-parloops.c: Change license to GPLv3. 33012 * ipa-struct-reorg.c: Change license to GPLv3. 33013 * ipa-struct-reorg.h: Change license to GPLv3. 33014 330152009-02-10 Steve Ellcey <sje@cup.hp.com> 33016 33017 PR c/39084 33018 * c-decl.c (start_struct): Return NULL on error. 33019 330202009-02-10 Jakub Jelinek <jakub@redhat.com> 33021 33022 PR middle-end/39124 33023 * cfgloopmanip.c (remove_path): Call remove_bbs after 33024 cancel_loop_tree, not before it. 33025 33026 PR target/39139 33027 * function.h (struct function): Add has_local_explicit_reg_vars bit. 33028 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER 33029 VAR_DECLs were seen. 33030 * tree-ssa-live.c (remove_unused_locals): Recompute 33031 cfun->has_local_explicit_reg_vars. 33032 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode 33033 copies or clearings if cfun->has_local_explicit_reg_vars. 33034 330352009-02-10 Uros Bizjak <ubizjak@gmail.com> 33036 33037 PR target/39118 33038 * config/i386/i386.c (expand_prologue): Emit blockage at the end 33039 of function prologue when frame pointer is used to access 33040 red zone area. 33041 330422009-02-10 Richard Guenther <rguenther@suse.de> 33043 33044 PR middle-end/39127 33045 * gimplify.c (gimple_regimplify_operands): Always look if 33046 we need to create a temporary. 33047 330482009-02-10 Richard Guenther <rguenther@suse.de> 33049 33050 PR tree-optimization/39132 33051 * tree-loop-distribution.c (todo): New global var. 33052 (generate_memset_zero): Trigger TODO_rebuild_alias. 33053 (tree_loop_distribution): Return todo. 33054 330552009-02-10 H.J. Lu <hongjiu.lu@intel.com> 33056 33057 PR target/39119 33058 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS. 33059 (x86_64_reg_class_name): Removed. 33060 (classify_argument): Return 0 if bytes > 32. Return 0 if the 33061 first one isn't X86_64_SSE_CLASS or any other ones aren't 33062 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn 33063 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one 33064 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS 33065 and 3 X86_64_SSEUP_CLASS. 33066 (construct_container): Remove X86_64_AVX_CLASS. Handle 4 33067 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS. 33068 330692009-02-10 Ben Elliston <bje@au.ibm.com> 33070 33071 * config/rs6000/rs6000.md (allocate_stack): Always use an update 33072 form instruction to update the stack back chain word, even if the 33073 user has disabled the generation of update instructions. 33074 (movdi_<mode>_update_stack): New. 33075 (movsi_update_stack): Likewise. 33076 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise, 33077 always use an update form instruction to update the stack back 33078 chain word. 33079 330802009-02-09 Sebastian Pop <sebastian.pop@amd.com> 33081 33082 PR middle-end/38953 33083 * graphite.c (if_region_set_false_region): After moving a region in 33084 the false branch of a condition, remove the empty dummy basic block. 33085 (gloog): Remove wrong fix for PR38953. 33086 330872009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 33088 33089 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code 33090 generation due to implicit sign extension. 33091 330922009-02-09 Eric Botcazou <ebotcazou@adacore.com> 33093 33094 PR middle-end/38981 33095 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs 33096 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST. 33097 330982009-02-09 Richard Guenther <rguenther@suse.de> 33099 33100 PR middle-end/35202 33101 * convert.c (convert_to_real): Disable (float)fn((double)x) 33102 to fnf(x) conversion if errno differences may occur and 33103 -fmath-errno is set. 33104 331052009-02-07 Anatoly Sokolov <aesok@post.ru> 33106 33107 * config/avr/avr.c (avr_mcu_t): Add ata6289 device. 33108 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). 33109 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). 33110 331112009-02-06 Joseph Myers <joseph@codesourcery.com> 33112 33113 PR c/35434 33114 * c-common.c (handle_alias_attribute): Disallow attribute for 33115 anything not a FUNCTION_DECL or VAR_DECL. 33116 331172009-02-06 Janis Johnson <janis187@us.ibm.com> 33118 33119 PR c/39035 33120 * real.c (do_compare): Special-case compare of zero against 33121 decimal float value. 33122 331232009-02-06 Joseph Myers <joseph@codesourcery.com> 33124 33125 PR c/36432 33126 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields 33127 as indicating flexible array members unless the field itself is 33128 being declarared as the incomplete array. 33129 331302009-02-06 Jan Hubicka <jh@suse.cz> 33131 33132 PR tree-optimization/38844 33133 * ipa-inline.c (try_inline): Stop inlining recursion when edge 33134 is already inlined. 33135 331362009-02-06 Richard Guenther <rguenther@suse.de> 33137 33138 PR middle-end/38977 33139 * tree-cfg.c (need_fake_edge_p): Force a fake edge for 33140 fork because we may expand it as __gcov_fork. 33141 331422009-02-06 Nick Clifton <nickc@redhat.com> 33143 33144 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero. 33145 331462009-02-06 Paolo Bonzini <bonzini@gnu.org> 33147 33148 PR tree-optimization/35659 33149 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq 33150 vn_phi_eq): Shortcut if hashcode does not match. 33151 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for 33152 NULL operands. 33153 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available, 33154 and avoid iterative_hash_expr. 33155 (FOR_EACH_VALUE_ID_IN_SET): New. 33156 (value_id_compare): Remove. 33157 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to 33158 sort expressions by value id. 33159 331602009-02-05 Kaz Kojima <kkojima@gcc.gnu.org> 33161 33162 PR target/38991 33163 * config/sh/predicates.md (general_movsrc_operand): Don't check 33164 the subreg of system registers here. 33165 331662009-02-05 Jakub Jelinek <jakub@redhat.com> 33167 33168 PR c++/39106 33169 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P 33170 on the copied decl. 33171 331722009-02-05 Paolo Bonzini <bonzini@gnu.org> 33173 33174 PR rtl-optimization/39110 33175 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned 33176 addresses, not aligned ones. 33177 331782009-02-05 Daniel Berlin <dberlin@dberlin.org> 33179 Richard Guenther <rguenther@suse.de> 33180 33181 PR tree-optimization/39100 33182 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the 33183 comment says and add edges. 33184 331852009-02-05 Joseph Myers <joseph@codesourcery.com> 33186 33187 PR c/35435 33188 * c-common.c (handle_tls_model_attribute): Ignore attribute for 33189 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P. 33190 331912009-02-04 Tobias Grosser <grosser@fim.uni-passau.de> 33192 33193 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use, 33194 sese_build_livein_liveouts_bb, sese_build_livein_liveouts, 33195 register_bb_in_sese, new_sese, free_sese): Moved. 33196 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains, 33197 outermost_loop_in_scop, build_scop_iteration_domain, 33198 expand_scalar_variables_ssa_name, get_vdef_before_scop, 33199 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p. 33200 Use loop_in_sese_p instead of loop_in_scop_p. 33201 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B. 33202 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B. 33203 (scopdet_basic_block_info): Fix bug in scop detection. 33204 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop, 33205 eq_loop_to_cloog_loop): Remove. 33206 (nb_loops_around_loop_in_scop, nb_loop 33207 ref_nb_loops): Moved here... 33208 * graphite.h (ref_nb_loops): ... from here. 33209 (struct scop): Remove bbs_b bitmap and loop2cloog_loop. 33210 (loop_domain_dim, loop_iteration_vector_dim): Remove. 33211 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed. 33212 332132009-02-04 Paolo Bonzini <bonzini@gnu.org> 33214 Hans-Peter Nilsson <hp@axis.com> 33215 33216 PR rtl-optimization/37889 33217 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments. 33218 Move offset handling from PLUS to before the switch. Use new 33219 arguments when considering SYMBOL_REFs too. 33220 (rtx_addr_can_trap_p): Pass dummy offset and size. 33221 (enum may_trap_p_flags): Remove. 33222 (may_trap_p_1): Pass size from MEM_SIZE. 33223 33224 PR rtl-optimization/38921 33225 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p. 33226 * rtl.h (may_trap_after_code_motion_p): Delete prototype. 33227 * rtlanal.c (may_trap_after_code_motion_p): Delete. 33228 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags. 33229 332302009-02-04 H.J. Lu <hongjiu.lu@intel.com> 33231 33232 AVX Programming Reference (January, 2009) 33233 * config/i386/sse.md (*vpclmulqdq): New. 33234 332352009-02-04 Jakub Jelinek <jakub@redhat.com> 33236 33237 PR tree-optimization/38977 33238 PR gcov-profile/38292 33239 * calls.c (special_function_p): Disregard __builtin_ prefix. 33240 332412009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com> 33242 33243 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow 33244 non-indexable addresses even before reload. 33245 332462009-02-03 Joseph Myers <joseph@codesourcery.com> 33247 33248 PR c/29129 33249 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators 33250 as having variable size. Do not give an error for unnamed 33251 parameters with [*] declarators. Give a warning for type names 33252 with [*] declarators and mark them as variable size. 33253 * c-parser.c (c_parser_sizeof_expression): Do not give an error 33254 for sizeof applied to [*] type names. 33255 332562009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com> 33257 33258 PR C++/36607 33259 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE. 33260 332612009-02-03 Jakub Jelinek <jakub@redhat.com> 33262 33263 * gcc.c (process_command): Update copyright notice dates. 33264 * gcov.c (print_version): Likewise. 33265 * gcov-dump.c (print_version): Likewise. 33266 * mips-tfile.c (main): Likewise. 33267 * mips-tdump.c (main): Likewise. 33268 332692009-02-03 Joseph Myers <joseph@codesourcery.com> 33270 33271 PR c/35433 33272 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT 33273 for composite type involving a zero-length array type. 33274 332752009-02-03 Jakub Jelinek <jakub@redhat.com> 33276 33277 PR target/35318 33278 * function.c (match_asm_constraints_1): Skip over 33279 initial optional % in the constraint. 33280 33281 PR inline-asm/39059 33282 * c-parser.c (c_parser_postfix_expression): If fixed point is not 33283 supported, don't accept FIXED_CSTs. 33284 * c-decl.c (finish_declspecs): Error if fixed point is not supported 33285 and _Sat is used without _Fract/_Accum. Set specs->type to 33286 integer_type_node for cts_fract/cts_accum if fixed point is not 33287 supported. 33288 332892009-02-02 Catherine Moore <clm@codesourcery.com> 33290 33291 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls. 33292 332932009-02-02 Richard Sandiford <rdsandiford@googlemail.com> 33294 33295 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro. 33296 (ABI_HAS_64BIT_SYMBOLS): Use it. 33297 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS. 33298 332992009-02-02 Paul Brook <paul@codesourcery.com> 33300 33301 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative. 33302 333032009-02-02 Jakub Jelinek <jakub@redhat.com> 33304 33305 PR inline-asm/39058 33306 * recog.h (asm_operand_ok): Add constraints argument. 33307 * recog.c (asm_operand_ok): Likewise. If it is set, for digits 33308 recurse on matching constraint. 33309 (check_asm_operands): Pass constraints as 3rd argument to 33310 asm_operand_ok. Don't look up matching constraint here. 33311 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument 33312 to asm_operand_ok. 33313 333142009-02-02 Ben Elliston <bje@au.ibm.com> 33315 33316 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and 33317 TARGET_NARROW_VOLATILE_BITFIELD macro names. 33318 333192009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 33320 33321 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker 33322 information. Remove some obsolete information. Reorganize. 33323 33324 * config/pa/fptr.c: Revert license to GPL 2. 33325 * config/pa/milli64.S: Likewise. 33326 333272009-01-31 Dave Korn <dave.korn.cygwin@gmail.com> 33328 33329 PR target/38904 33330 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass 33331 LIBRARY name in, instead of hard-coding it. 33332 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an 33333 extra target make frag to tmake_files according to EH model. 33334 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise. 33335 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target 33336 frags that define makefile variable EH_MODEL appropriately. 33337 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment. 33338 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or 33339 to "-sjlj" according to type of EH configured. 33340 (LIBGCC_SONAME): Concatenate it to shared library base name. 33341 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or 33342 to "_sjlj" according to type of EH configured. 33343 (LIBGCC_SONAME): Concatenate it to shared library base name. 33344 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL. 33345 (SHLIB_LINK): Add missing semicolon to if-else construct. 33346 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as 33347 string value of "pe_dll" command-line option. 33348 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper. 33349 (SHLIB_SONAME): Use it when overriding t-cygming default. 33350 (SHLIB_IMPLIB): Override t-cygming default. 33351 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as 33352 string value of "pe_dll" command-line option. 33353 333542009-01-31 Dave Korn <dave.korn.cygwin@gmail.com> 33355 33356 PR target/38952 33357 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New. 33358 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it. 33359 333602009-01-31 Richard Guenther <rguenther@suse.de> 33361 33362 PR tree-optimization/38937 33363 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut 33364 computing the transitive closure. 33365 333662009-01-30 Richard Guenther <rguenther@suse.de> 33367 33368 PR tree-optimization/39041 33369 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): 33370 Propagate variable indices only if the types match for this stmt. 33371 333722009-01-30 Jakub Jelinek <jakub@redhat.com> 33373 33374 PR target/39013 33375 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared 33376 inline but never defined. 33377 333782009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com> 33379 33380 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed. 33381 (*insv_h_di_reg_extimm): New insn. 33382 (*insv_l<mode>_reg_extimm): New insn. 33383 333842009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com> 33385 33386 * config/picochip/picochip.c (flag_conserve_stack): set 33387 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under 33388 fconserve-stack. Reduce call-overhead used by inliner. 33389 333902009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com> 33391 33392 PR/38157 33393 * common.opt (flag_conserve_stack): Initialised to zero. 33394 333952009-01-30 Kai Tietz <kai.tietz@onevision.com> 33396 33397 PR/39002 33398 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs. 33399 (ix86_expand_epilogue): Take nsseregs in account to use proper restore 33400 method. 33401 334022009-01-29 H.J. Lu <hongjiu.lu@intel.com> 33403 33404 * ira-color.c (allocno_reload_assign): Update comments. 33405 * regmove.c (regmove_optimize): Likewise. 33406 33407 * ra.h: Removed. 33408 334092009-01-29 Robert Millan <rmh@aybabtu.com> 33410 33411 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu). 33412 * config/i386/kopensolaris-gnu.h: New file. Undefine 33413 `MD_UNWIND_SUPPORT'. 33414 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h). 33415 334162009-01-29 Kazu Hirata <kazu@codesourcery.com> 33417 33418 PR tree-optimization/39007 33419 * tree-loop-distribution.c (generate_builtin): Use 33420 recompute_dominator to compute the immediate dominator of the 33421 basic block just after the loop. 33422 334232009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 33424 33425 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA] 33426 (ASM_OUTPUT_DWARF_PCREL): Define. 33427 334282009-01-29 Vladimir Makarov <vmakarov@redhat.com> 33429 33430 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description. 33431 * doc/passes.texi: Remove entries about regclass, local-alloc, and 33432 global. Modify entries about regmove and IRA. 33433 33434 * ra-conflict.c: Remove the file. 33435 33436 * reload.c (push_reload, find_dummy_reload): Remove flag_ira. 33437 33438 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove. 33439 (pass_regclass_init): Rename to pass_reginfo_init. 33440 33441 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira. 33442 33443 * toplev.h (flag_ira): Remove. 33444 33445 * caller-save.c (setup_save_areas): Remove flag_ira. 33446 33447 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto. 33448 33449 * global.c: Remove the file. 33450 33451 * opts.c (decode_options): Remove flag_ira. 33452 33453 * hard-reg-set.h (losing_caller_save_reg_set): Remove. 33454 33455 * regmove.c: Modify file description. 33456 (find_use_as_address, try_auto_increment): Define them only if 33457 AUTO_INC_DEC is defined. 33458 (replacement_quality, replace_in_call_usage, fixup_match_1, 33459 stable_and_no_regs_but_for_p): Remove. 33460 (reg_set_in_bb): Make it static. 33461 (regmove_optimize): Remove flag_ira and code which worked for 33462 !flag_ira. 33463 33464 * local-alloc.c: Remove the file. 33465 33466 * common.opt (fira): Remove. 33467 33468 * ira.c: Include except.h. 33469 (eliminable_regset): Move from global.c. 33470 (mark_elimination): Ditto. Remove flag_ira. 33471 (reg_renumber, struct equivalence, reg_equiv, equiv_mem, 33472 equiv_mem_modified, validate_equiv_mem_from_store, 33473 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p, 33474 contains_replace_regs, memref_referenced_p, memref_used_between_p, 33475 no_equiv, recorded_label_ref): Move from local-alloc.c. 33476 (update_equiv_regs): Ditto. Make it static. 33477 (print_insn_chain, print_insn_chains): Move it from global.c. 33478 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira. 33479 (build_insn_chain): Ditto. Make it static. 33480 (ra_init_live_subregs): Move from ra-conflict.c. Make it static. 33481 Rename to init_live_subregs. 33482 (gate_ira): Remove flag_ira. 33483 33484 * regclass.c: Rename reginfo.c. Change file description. 33485 (FORBIDDEN_INC_DEC_CLASSES): Remove. 33486 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove. 33487 (init_reg_sets_1): Remove code for evaluation of 33488 reg_class_superclasses and losing_caller_save_reg_set. 33489 (init_regs): Remove init_reg_autoinc. 33490 (struct costs, costs, init_cost, ok_for_index_p_nonstrict, 33491 ok_for_base_p_nonstrict): Remove. 33492 (regclass_init): Rename to reginfo_init. Don't initialize init_cost. 33493 (pass_regclass_init): Rename to pass_reginfo_init. Modify 33494 corresponding entries. 33495 (dump_regclass, record_operand_costs, scan_one_insn, 33496 init_reg_autoinc, regclass, record_reg_classes, copy_cost, 33497 record_address_regs, auto_inc_dec_reg_p): Remove. 33498 (gt-regclass.h): Rename to gt-reginfo.h. 33499 33500 * rtl.h (dump_global_regs, retry_global_alloc, 33501 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove. 33502 33503 * Makefile.in (RA_H): Remove. 33504 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o. 33505 Rename regclass.o to reginfo.o. 33506 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to 33507 gt-reginfo.h. 33508 (global.o, local-alloc.o, ra-conflict.o): Remove entries. 33509 (GTFILES): Rename regclass.c to reginfo.c. 33510 33511 * passes.c (init_optimization_passes): Remove pass_local_alloc and 33512 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init. 33513 33514 * reload1.c (compute_use_by_pseudos, reload, count_pseudo, 33515 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload): 33516 Remove flag_ira. 33517 (finish_spills): Ditto. Remove code for !flag_ira. 33518 335192009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com> 33520 33521 PR middle-end/35854 33522 * doc/invoke.texi (rtl debug options): Complete rewrite. 33523 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec" 33524 to auto_inc_dec". 33525 * mode-switching.c (pass_mode_switching): Rename pass from 33526 "mode-sw" to "mode_sw". 33527 * except.c (pass_convert_to_eh_ranges): Rename pass from 33528 "eh-ranges" to "eh_ranges". 33529 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg" 33530 to "subreg1". 33531 33532 335332009-01-29 Andrey Belevantsev <abel@ispras.ru> 33534 Alexander Monakov <amonakov@ispras.ru> 33535 33536 PR middle-end/38857 33537 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard 33538 register. 33539 (move_exprs_to_boundary): Change return type and pass through 33540 should_move from move_op. Relax assert. Update usage ... 33541 (schedule_expr_on_boundary): ... here. Use should_move instead of 33542 cant_move. 33543 (move_op_orig_expr_found): Indicate that insn was disconnected from 33544 stream. 33545 (code_motion_process_successors): Do not call after_merge_succs 33546 callback if original expression was not found when traversing any of 33547 the branches. 33548 (code_motion_path_driver): Change return type. Update prototype. 33549 (move_op): Update comment. Add a new parameter (should_move). Update 33550 prototype. Set *should_move based on indication provided by 33551 move_op_orig_expr_found. 33552 335532009-01-28 Pat Haugen <pthaugen@us.ibm.com> 33554 33555 * doc/invoke.texi (avoid-indexed-addresses): Document new option. 33556 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare. 33557 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option. 33558 * config/rs6000/rs6000.c (rs6000_override_options): Default 33559 avoid-indexed-addresses on for Power6, off for everything else. 33560 (avoiding_indexed_address_p): New function. 33561 (rs6000_legitimize_address): Use it. 33562 (rs6000_legitimate_address): Likewise. 33563 * config/rs6000/rs6000.md (movXX_updateX): Likewise 33564 335652009-01-28 Kazu Hirata <kazu@codesourcery.com> 33566 33567 PR tree-optimization/38997 33568 * tree-loop-distribution.c (generate_memset_zero): Use 33569 POINTER_PLUS_EXPR for a pointer addition. 33570 335712009-01-28 Andreas Krebbel <krebbel1@de.ibm.com> 33572 33573 * config/s390/s390.md (bswap<mode>2): New pattern added. 33574 335752009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com> 33576 33577 * config/s390/s390.md (*tls_load_31): Added type attribute. 33578 335792009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com> 33580 33581 * config/s390/s390.md: Fix a few comments. 33582 335832009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com> 33584 33585 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute. 33586 (*tm<mode>_full): Fixed z10prop attribute. 33587 (*tst<mode>_extimm): Fixed z10prop attribute. 33588 (*tst<mode>_cconly_extimm): Fixed z10prop attribute. 33589 (*tstqiCCT_cconly): Fixed z10prop attribute. 33590 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute. 33591 (*movsi_larl): Fixed z10prop attribute. 33592 (*movsi_zarch): Fixed z10prop attribute. 33593 (*movsi_eas): Fixed z10prop attribute. 33594 (*movhi): Fixed z10prop attribute. 33595 (*movqi): Fixed z10prop attribute. 33596 (*movstrictqi): Fixed z10prop attribute. 33597 (*mov<mode>): Fixed z10prop attribute. 33598 (*movcc): Fixed z10prop attribute. 33599 (*sethighpartdi_64): Fixed z10prop attribute. 33600 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute. 33601 (*negdi2_sign_cc): Fixed z10prop attribute. 33602 (*negdi2_sign): Fixed z10prop attribute. 33603 (*absdi2_sign_cc): Fixed z10prop attribute. 33604 (*absdi2_sign): Fixed z10prop attribute. 33605 (*negabsdi2_sign_cc): Fixed z10prop attribute. 33606 (*negabsdi2_sign): Fixed z10prop attribute. 33607 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute. 33608 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute. 33609 (doloop_si64): Fixed z10prop attribute. 33610 (doloop_si31): Fixed z10prop attribute. 33611 (doloop_long): Fixed z10prop attribute. 33612 (indirect_jump): Fixed z10prop attribute. 33613 (nop): Fixed z10prop attribute. 33614 (main_base_64): Fixed z10prop attribute. 33615 (reload_base_64): Fixed z10prop attribute. 33616 336172009-01-28 Jakub Jelinek <jakub@redhat.com> 33618 33619 PR rtl-optimization/38740 33620 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling 33621 if !optimize. 33622 * config/mips/mips.c (mips_reorg): Likewise. 33623 336242009-01-28 Richard Guenther <rguenther@suse.de> 33625 33626 PR tree-optimization/38926 33627 * tree-ssa-pre.c (add_to_value): Assert we add only expressions 33628 with the correct value id to a value. 33629 (do_regular_insertion): Use the value number of edoubleprime 33630 for the value number of the expr. 33631 33632 Revert 33633 2008-08-21 Richard Guenther <rguenther@suse.de> 33634 33635 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting 33636 a PHI ask VN if it is already available. 33637 * tree-ssa-sccvn.h (vn_phi_lookup): Declare. 33638 * tree-ssa-sccvn.c (vn_phi_lookup): Export. 33639 336402009-01-28 Jakub Jelinek <jakub@redhat.com> 33641 33642 PR middle-end/38934 33643 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR 33644 set to varying whenever max has TREE_OVERFLOW set, similarly 33645 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min. 33646 336472009-01-28 Richard Guenther <rguenther@suse.de> 33648 33649 PR middle-end/38908 33650 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly 33651 uninitialized aggregate uses in call arguments. 33652 336532009-01-28 Paolo Bonzini <bonzini@gnu.org> 33654 33655 PR tree-optimization/38984 33656 * tree-ssa-structalias.c (get_constraints_for_1): Do not use 33657 the nothing_id variable if -fno-delete-null-pointer-checks. 33658 336592009-01-28 Uros Bizjak <ubizjak@gmail.com> 33660 33661 PR target/38988 33662 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref. 33663 (set_got_offset_rex64): Ditto. 33664 336652009-01-27 H.J. Lu <hongjiu.lu@intel.com> 33666 33667 PR target/38941 33668 * doc/extend.texi: Improve local variable with asm reg. 33669 336702009-01-27 Adam Nemet <anemet@caviumnetworks.com> 33671 33672 * c.opt (Wpacked-bitfield-compat): Change init value to -1. 33673 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat 33674 was not supplied then set warn_packed_bitfield_compat to the 33675 default value of 1. 33676 * stor-layout.c (place_field): Check warn_packed_bitfield_compat 33677 against 1. 33678 336792009-01-27 Richard Guenther <rguenther@suse.de> 33680 33681 PR tree-optimization/38503 33682 * cfgexpand.c (expand_gimple_basic_block): Ignore 33683 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion. 33684 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune 33685 variables that cannot have TBAA applied. 33686 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE 33687 statements. 33688 336892009-01-27 Uros Bizjak <ubizjak@gmail.com> 33690 33691 PR middle-end/38969 33692 * calls.c (initialize_argument_information): Do not wrap complex 33693 arguments in SAVE_EXPR. 33694 336952009-01-26 Andreas Tobler <a.tobler@schweiz.org> 33696 33697 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo. 33698 (INSTALL_LIBGCC): Revert typo commit. 33699 337002009-01-26 Richard Guenther <rguenther@suse.de> 33701 33702 PR tree-optimization/38745 33703 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL 33704 from special handling. 33705 337062009-01-26 Richard Guenther <rguenther@suse.de> 33707 33708 PR tree-optimization/38745 33709 * tree-ssa.c (execute_update_addresses_taken): Do not include 33710 variables that cannot possibly be a register in not_reg_needs. 33711 Do not clear TREE_ADDRESSABLE on vars that may not become 33712 registers. 33713 * tree-ssa.c (update_alias_info_1): Include those in the set 33714 of addressable vars. 33715 337162009-01-26 Richard Guenther <rguenther@suse.de> 33717 33718 PR middle-end/38851 33719 * Makefile.in (tree-ssa-dse.o): Add langhooks.h. 33720 * tree-ssa-dse.c: Include langhooks.h 33721 (execute_simple_dse): Remove stores with zero size. 33722 337232009-01-24 Jakub Jelinek <jakub@redhat.com> 33724 33725 PR c/38957 33726 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way 33727 as PLUS_EXPR. 33728 337292009-01-24 Julian Brown <julian@codesourcery.com> 33730 33731 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add 33732 config/arm/linux-atomic.c. 33733 * config/arm/linux-atomic.c: New. 33734 337352009-01-24 Eric Botcazou <ebotcazou@adacore.com> 33736 33737 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete. 33738 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise. 33739 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise. 33740 337412009-01-24 H.J. Lu <hongjiu.lu@intel.com> 33742 33743 PR c/38938 33744 * c-opts.c (c_common_handle_option): Update warn_pointer_sign 33745 properly. 33746 337472009-01-24 Sebastian Pop <sebastian.pop@amd.com> 33748 33749 PR tree-optimization/38953 33750 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa. 33751 (scop_adjust_phis_for_liveouts): Initialize false_i to zero. 33752 (gloog): Split the exit of the scop when the scop exit is a loop exit. 33753 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog 33754 changed the CFG. 33755 337562009-01-24 Paul Brook <paul@codesourcery.com> 33757 33758 * config/arm/neon.md (neon_type): Move to arm.md. 33759 (neon_mov<VSTRUCT>): Add neon_type attribute. 33760 * config/arm/arm.md (neon_type): Move to here. 33761 (conds): Add "unconditioal" and use as default for NEON insns. 33762 337632009-01-24 Ben Elliston <bje@au.ibm.com> 33764 33765 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from 33766 void *' warning from -Wc++-compat. 33767 * Makefile.in (dominance.o-warn): Remove. 33768 337692009-01-23 Paolo Bonzini <bonzini@gnu.org> 33770 33771 PR tree-optimization/38932 33772 * fold-const.c (fold_unary_ignore_overflow): New. 33773 * tree.h (fold_unary_ignore_overflow): Declare. 33774 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow. 33775 * tree-ssa-sccvn.c (visit_reference_op_load, 33776 simplify_unary_expression): Likewise. 33777 337782009-01-22 Adam Nemet <anemet@caviumnetworks.com> 33779 33780 * c-decl.c (finish_struct): Move code to set DECL_PACKED after 33781 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields 33782 regardless of their type. 33783 * c-common.c (handle_packed_attribute): Don't ignore packed on 33784 bitfields. 33785 * c.opt (Wpacked-bitfield-compat): New warning option. 33786 * stor-layout.c (place_field): Warn if offset of a field changed. 33787 * doc/extend.texi (packed): Mention the ABI change. 33788 * doc/invoke.texi (-Wpacked-bitfield-compat): Document. 33789 (Warning Options): Add it to the list. 33790 337912009-01-22 H.J. Lu <hongjiu.lu@intel.com> 33792 33793 * c-opts.c (c_common_post_options): Fix a typo in comments. 33794 337952009-01-22 Steve Ellcey <sje@cup.hp.com> 33796 33797 PR middle-end/38615 33798 * gimplify.c (gimplify_init_constructor): Fix promotion of const 33799 variables to static. 33800 * doc/invoke.texi (-fmerge-all-constants): Update description. 33801 338022009-01-22 Uros Bizjak <ubizjak@gmail.com> 33803 33804 PR target/38931 33805 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2. 33806 (*movdi_1_rex64): Use type "mmx" for alternative 5. 33807 338082009-01-22 Richard Earnshaw <rearnsha@arm.com> 33809 33810 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to 33811 a word boundary. 33812 (LOCAL_ALIGNMENT): Similarly. 33813 338142009-01-22 Mark Shinwell <shinwell@codesourcery.com> 33815 Joseph Myers <joseph@codesourcery.com> 33816 33817 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry. 33818 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2. 33819 * config/arm/arm-tune.md: Regenerate. 33820 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and 33821 -march=iwmmxt2. 33822 338232009-01-22 Mark Shinwell <shinwell@codesourcery.com> 33824 33825 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI 33826 version number to five. 33827 338282009-01-22 Dodji Seketeli <dodji@redhat.com> 33829 33830 PR c++/38930 33831 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes. 33832 * c-common.c (set_underlying_type): Likewise. 33833 (is_typedef_decl ): Likewise 33834 * tree.h: Likewise 33835 (set_underlying_type): Likewise. 33836 (is_typedef_type): Likewise. 33837 338382009-01-21 Vladimir Makarov <vmakarov@redhat.com> 33839 33840 PR middle-end/38587 33841 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos 33842 crossing setjmps. 33843 338442009-01-21 Dave Korn <dave.korn.cygwin@gmail.com> 33845 33846 PR bootstrap/37660 33847 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro. 33848 (LIBGCC_SPEC): Don't define. 33849 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC. 33850 338512009-01-21 Uros Bizjak <ubizjak@gmail.com> 33852 33853 PR rtl-optimization/38879 33854 * alias.c (base_alias_check): Unaligned access via AND address can 33855 alias all surrounding object types except those with sizes equal 33856 or wider than the size of unaligned access. 33857 338582009-01-21 Dodji Seketeli <dodji@redhat.com> 33859 33860 PR c++/26693 33861 * c-decl.c (clone_underlying_type): Move this ... 33862 * c-common.c (set_underlying_type): ... here. 33863 Also, make sure the function properly sets TYPE_STUB_DECL() on 33864 the newly created typedef variant type. 33865 (is_typedef_decl ): New entry point. 33866 * tree.h: Added a new member member_types_needing_access_check to 33867 struct tree_decl_non_common. 33868 (set_underlying_type): New entry point. 33869 (is_typedef_type): Likewise. 33870 338712009-01-21 Bingfeng Mei <bmei@broadcom.com> 33872 33873 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p): 33874 Check whether two instructions have memory references that 33875 belong to conflicting alias sets. walk_mems_1 and walk_mems_2 33876 are helper functions for traversing. 33877 * alias.h (insn_alias_sets_confilict_p): New prototypes. 33878 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p 33879 not to draw dependency edge for instructions with non-conflicting 33880 alias sets. 33881 338822009-01-20 Joseph Myers <joseph@codesourcery.com> 33883 33884 PR other/38758 33885 * longlong.h: Update copyright years. Use soft-fp license notice. 33886 Sync __clz_tab declaration with glibc. 33887 338882009-01-20 Steve Ellcey <sje@cup.hp.com> 33889 33890 PR target/30687 33891 * doc/extend.texi (syscall_linkage): New. 33892 (version_id): Modify. 33893 338942009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com> 33895 Richard Guenther <rguenther@suse.de> 33896 33897 PR tree-optimization/38747 33898 PR tree-optimization/38748 33899 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE 33900 conversion if the base address is an indirect reference and the 33901 aliasing sets could cause issues. 33902 339032009-01-20 Sebastian Pop <sebastian.pop@amd.com> 33904 33905 * common.opt (fgraphite, fgraphite-identity): Add comment for 33906 explaining why these options are not documented. 33907 339082009-01-20 Sebastian Pop <sebastian.pop@amd.com> 33909 33910 * graphite.c (stmt_simple_for_scop_p): Also handle cases when 33911 gimple_call_lhs is NULL. 33912 339132009-01-20 Paolo Bonzini <bonzini@gnu.org> 33914 33915 PR target/38868 33916 * emit-rtl.c (adjust_address_1): Make sure memref is never 33917 overwritten. 33918 339192009-01-20 Ben Elliston <bje@au.ibm.com> 33920 33921 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove 33922 const qualifier from arg parameter. Remove unnecessary cast to char *. 33923 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove 33924 const qualifier from arg 2. 33925 339262009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 33927 33928 * config/darwin.h: Add static-libgfortran to LINK_SPEC. 33929 339302009-01-19 Vladimir Makarov <vmakarov@redhat.com> 33931 33932 PR c/38869 33933 * rtl.h (reinit_regs): New prototype. 33934 * regclass.c: Include ira.h. 33935 (reinit_regs): New. 33936 * Makefile.in (regclass.o): Add ira.h. 33937 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs. 33938 339392009-01-18 H.J. Lu <hongjiu.lu@intel.com> 33940 33941 PR target/38736 33942 * c-common.c (handle_aligned_attribute): Use 33943 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for 33944 default alignment value. 33945 33946 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__. 33947 33948 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New. 33949 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise. 33950 33951 * doc/extend.texi: Update __attribute__ ((aligned)). Document 33952 __BIGGEST_ALIGNMENT__. 33953 33954 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE. 33955 339562009-01-18 Richard Guenther <rguenther@suse.de> 33957 33958 PR tree-optimization/38819 33959 * tree-flow.h (operation_could_trap_helper_p): Declare. 33960 * tree-eh.c (operation_could_trap_helper_p): Export. 33961 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare. 33962 * tree-ssa-sccvn.c (vn_nary_may_trap): New function. 33963 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we 33964 are about to insert a possibly trapping instruction and fail 33965 in this case. 33966 339672009-01-18 Andreas Schwab <schwab@suse.de> 33968 33969 * doc/install.texi (Configuration): Remove obsolete paragraph 33970 about use of --with-gnu-ld with --with-gnu-as. 33971 339722009-01-18 Kazu Hirata <kazu@codesourcery.com> 33973 33974 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi, 33975 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos. 33976 Follow spelling conventions. 33977 339782009-01-18 Ben Elliston <bje@au.ibm.com> 33979 33980 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate 33981 C++ warning about implicit conversion from void * to struct 33982 bitmap_head_def *. 33983 (bitmap_obstack_free): Likewise for bitmap_element *. 33984 * Makefile.in (bitmap.o-warn): Remove. 33985 339862009-01-17 Dave Korn <dave.korn.cygwin@gmail.com> 33987 33988 * Makefile.in (BACKENDLIBS): Reorder to match dependencies. 33989 339902009-01-17 Sebastian Pop <sebastian.pop@amd.com> 33991 Tobias Grosser <tobi.grosser@amd.com> 33992 33993 * graphite.c (graphite_trans_scop_block): Do not block single 33994 nested loops. 33995 339962009-01-16 Alexandre Oliva <aoliva@redhat.com> 33997 33998 * ebitmap.h (ebitmap_iter_init): Initialize all fields. 33999 * ipa-struct-reorg.c (gen_struct_type): Replace known-true 34000 test with assertion. 34001 340022009-01-16 Richard Guenther <rguenther@suse.de> 34003 34004 PR tree-optimization/38835 34005 PR middle-end/36227 34006 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT) 34007 and INT + PTR -> (INT)(PTR p+ INT) folding. 34008 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR. 34009 340102009-01-16 Adam Nemet <anemet@caviumnetworks.com> 34011 34012 PR target/38554 34013 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift 34014 the subreg from a lowpart subreg if it is also casting the value. 34015 340162009-01-16 Sebastian Pop <sebastian.pop@amd.com> 34017 Tobias Grosser <tobi.grosser@amd.com> 34018 34019 * graphite.c (compare_prefix_loops): New. 34020 (build_scop_canonical_schedules): Rewritten. 34021 (graphite_transform_loops): Move build_scop_canonical_schedules 34022 after build_scop_iteration_domain. 34023 340242009-01-16 Sebastian Pop <sebastian.pop@amd.com> 34025 Tobias Grosser <tobi.grosser@amd.com> 34026 34027 * graphite.c (add_conditions_to_domain): Add the loops to 34028 the dimension of the iteration domain. Do copy the domain 34029 only when it exists. 34030 (build_scop_conditions_1): Do not call add_conditions_to_domain. 34031 (add_conditions_to_constraints): New. 34032 (can_generate_code_stmt, can_generate_code): Removed. 34033 (gloog): Do not call can_generate_code. 34034 (graphite_transform_loops): Call add_conditions_to_constraints 34035 after building the iteration domain. 34036 340372009-01-16 Jakub Jelinek <jakub@redhat.com> 34038 34039 PR tree-optimization/38789 34040 * tree-ssa-threadedge.c 34041 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to 34042 __builtin_constant_p. 34043 340442009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com> 34045 34046 * dce.c (delete_unmarked_insns): Reversed the order that insns are 34047 examined before deleting them. 34048 340492009-01-16 Richard Earnshaw <rearnsha@arm.com> 34050 34051 * function.c (aggregate_value_p): Correctly extract the function 34052 type from CALL_EXPR_FN lookup. 34053 340542009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com> 34055 34056 * config/picochip/picochip.c (picochip_override_options): Revert 34057 CFI asm flag disable commited previously. 34058 340592009-01-15 Sebastian Pop <sebastian.pop@amd.com> 34060 Tobias Grosser <tobi.grosser@amd.com> 34061 Jan Sjodin <jan.sjodin@amd.com> 34062 34063 * graphite.c (scan_tree_for_params): On substractions negate 34064 all the coefficients of the term. 34065 (clast_to_gcc_expression_red): New. Handle reduction expressions 34066 of more than two operands. 34067 (clast_to_gcc_expression): Call clast_to_gcc_expression_red. 34068 (get_vdef_before_scop): Handle also the case of default definitions. 34069 340702009-01-15 Richard Sandiford <rdsandiford@googlemail.com> 34071 34072 * caller-save.c (add_used_regs_1, add_used_regs): New functions. 34073 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes. 34074 Also use them when walking CALL_INSN_FUNCTION_USAGE. 34075 340762009-01-15 H.J. Lu <hongjiu.lu@intel.com> 34077 Joey Ye <joey.ye@intel.com> 34078 34079 PR middle-end/37843 34080 * cfgexpand.c (expand_stack_alignment): Don't update stack 34081 boundary nor check incoming stack boundary here. 34082 (gimple_expand_cfg): Update stack boundary and check incoming 34083 stack boundary here. 34084 340852009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com> 34086 34087 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments. 34088 340892009-01-14 Jakub Jelinek <jakub@redhat.com> 34090 34091 PR rtl-optimization/38245 34092 * calls.c (expand_call): Add stack arguments to 34093 CALL_INSN_FUNCTION_USAGE even for pure calls (when 34094 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed 34095 in regs and partially in memory or BLKmode arguments. 34096 (emit_library_call_value_1): Add stack arguments to 34097 CALL_INSN_FUNCTION_USAGE even for pure calls (when 34098 ACCUMULATE_OUTGOING_ARGS). 34099 * dce.c: Include tm_p.h. 34100 (find_call_stack_args): New function. 34101 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES 34102 argument. 34103 (mark_insn): Call find_call_stack_args for CALL_Ps. 34104 (prescan_insns_for_dce): Walk insns backwards in bb rather than 34105 forwards. Allocate and free arg_stores bitmap if needed, pass it 34106 down to deletable_insn_p, don't mark stores set in arg_stores 34107 bitmap, clear the bitmap at the beginning of each bb. 34108 * Makefile.in (dce.o): Depend on $(TM_P_H). 34109 341102009-01-14 Michael Meissner <gnu@the-meissners.org> 34111 34112 PR target/22599 34113 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f' 34114 to make sure the insn is a conditional test (bug 22599). Reformat a 34115 few long lines. 34116 341172009-01-14 Sebastian Pop <sebastian.pop@amd.com> 34118 34119 PR middle-end/38431 34120 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New. 34121 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi. 34122 (gloog): Do not call cleanup_tree_cfg. 34123 (graphite_transform_loops): Call cleanup_tree_cfg after all 34124 scops have been code generated. 34125 341262009-01-14 Basile Starynkevitch <basile@starynkevitch.net> 34127 * doc/gty.texi (Invoking the garbage collector): Added new node 34128 and section documenting ggc_collect. 34129 341302009-01-14 Richard Guenther <rguenther@suse.de> 34131 34132 PR tree-optimization/38826 34133 PR middle-end/38477 34134 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer 34135 initialization notes only if we actually emitted a warning. 34136 (intra_create_variable_infos): Add constraints for a result decl 34137 that is passed by hidden reference. 34138 (build_pred_graph): Mark all related variables non-direct on 34139 address-taking. 34140 341412009-01-14 Nick Clifton <nickc@redhat.com> 34142 34143 * ira-conflicts.c: Include addresses.h for the definition of 34144 base_reg_class. 34145 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS. 34146 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h. 34147 341482009-01-13 Vladimir Makarov <vmakarov@redhat.com> 34149 34150 PR target/38811 34151 * Makefile.in (ira-lives.o): Add except.h. 34152 34153 * ira-lives.c: Include except.h. 34154 (process_bb_node_lives): Process can_throw_internal. 34155 341562009-01-13 Jakub Jelinek <jakub@redhat.com> 34157 34158 PR rtl-optimization/38774 34159 * combine.c (simplify_set): When undoing cc_use change, don't do 34160 PUT_CODE on the newly created comparison, but instead put back the 34161 old comparison. 34162 341632009-01-13 Joseph Myers <joseph@codesourcery.com> 34164 34165 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march 34166 values. Remove duplicate arm8 entry. 34167 341682009-01-13 Sebastian Pop <sebastian.pop@amd.com> 34169 34170 PR tree-optimization/38786 34171 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from 34172 the SSA_NAME case of expand_scalar_variables_expr. 34173 Set the type of an expression to the type of its assign statement. 34174 (expand_scalar_variables_expr): Also gather the scalar computation 34175 used to index the memory access. Do not pass loop_p. 34176 Fix comment. Stop recursion on tcc_constant or tcc_declaration. 34177 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr 34178 the gimple_stmt_iterator where it inserts new code. 34179 Do not pass loop_p. 34180 (copy_bb_and_scalar_dependences): Do not pass loop_p. 34181 (translate_clast): Update call to copy_bb_and_scalar_dependences. 34182 341832009-01-13 Sebastian Pop <sebastian.pop@amd.com> 34184 34185 * graphite.h (debug_value): Removed. 34186 * graphite.c (debug_value): Removed. 34187 341882009-01-13 Richard Earnshaw <rearnsha@arm.com> 34189 34190 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2 34191 ldrd/strd with two 32-bit instructions. 34192 341932009-01-13 Richard Earnshaw <rearnsha@arm.com> 34194 34195 * config/arm/arm.c (struct processors): Pass for speed down into 34196 cost helper functions. 34197 (const_ok_for_op): Handle COMPARE and inequality nodes. 34198 (arm_rtx_costs_1): Rewrite. 34199 (arm_size_rtx_costs): Update prototype. 34200 (arm_rtx_costs): Pass speed down to helper functions. 34201 (arm_slowmul_rtx_costs): Rework cost calculations. 34202 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise. 34203 (arm_9e_rtx_costs): Likewise. 34204 342052009-01-13 Uros Bizjak <ubizjak@gmail.com> 34206 34207 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit 34208 relocations of local symbols wider than UNITS_PER_WORD are not valid. 34209 (alpha_legitimize_address): Do not split local symbols wider than 34210 UNITS_PER_WORD into HIGH/LO_SUM parts. 34211 342122009-01-13 Danny Smith <dannysmith@users.sourceforge.net> 34213 34214 PR bootstrap/38580 34215 * gcc.c (process_command): Replace call to execvp with calls 34216 to pex_one and exit. 34217 342182009-01-03 Anatoly Sokolov <aesok@post.ru> 34219 34220 PR target/29141 34221 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm. 34222 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add 34223 variant for devices with 3-byte PC. 34224 (__tablejump_elpm__): New. 34225 342262009-01-12 Jakub Jelinek <jakub@redhat.com> 34227 34228 PR c/32041 34229 * c-parser.c (c_parser_postfix_expression): Allow `->' in 34230 offsetof member-designator, handle it as `[0].'. 34231 342322009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 34233 34234 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk 34235 function when not using named sections on targets with named sections 34236 if branch distance is less than 262132. 34237 342382009-01-12 Richard Earnshaw <rearnsha@arm.com> 34239 34240 * combine.c (combine_instructions): Recompute 34241 optimize_this_for_speed_p for each BB in the main combine loop. 34242 342432009-01-12 Tomas Bily <tbily@suse.cz> 34244 34245 PR middlend/38385 34246 * tree-loop-distribution.c (prop_phis): New function. 34247 (generate_builtin): Call prop_phis. 34248 342492009-01-12 Jakub Jelinek <jakub@redhat.com> 34250 34251 PR tree-optimization/38807 34252 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at 34253 gimple_visited_p unless stmt is GIMPLE_ASSIGN. 34254 342552009-01-11 Adam Nemet <anemet@caviumnetworks.com> 34256 34257 * expmed.c (store_bit_field_1): Properly truncate the paradoxical 34258 subreg of op0 to the original op0. 34259 342602009-01-11 Laurent GUERBY <laurent@guerby.net> 34261 34262 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc. 34263 342642009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de> 34265 34266 PR debug/7055 34267 * mips-tfile.c (parse_def): Fix parsing of def strings 34268 starting with digits. 34269 342702009-01-10 Jakub Jelinek <jakub@redhat.com> 34271 34272 PR target/38695 34273 * config/arm/arm.c (arm_is_long_call_p): Don't call 34274 arm_function_in_section_p if decl isn't a FUNCTION_DECL. 34275 342762009-01-09 Steven Bosscher <steven@gcc.gnu.org> 34277 34278 * regrename.c (regrename_optimize): Fix dumping. 34279 (find_oldest_value_reg): Preserve REG_POINTER. 34280 (copy_hardreg_forward_1): Likewise. 34281 342822009-01-09 Diego Novillo <dnovillo@google.com> 34283 34284 * gimple.h (struct gimple_statement_base) <uid>: Document 34285 the restrictions on its use. 34286 (gimple_uid): Tidy. 34287 (gimple_set_uid): Tidy. 34288 342892009-01-09 Jakub Jelinek <jakub@redhat.com> 34290 34291 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add 34292 zero guard even if align_bytes != 0 and count is smaller than 34293 size_needed. 34294 342952009-01-09 Vladimir Makarov <vmakarov@redhat.com> 34296 34297 PR rtl-optimization/38495 34298 * ira-emit.c (print_move_list, ira_debug_move_list): New functions. 34299 (add_range_and_copies_from_move_list): Print all added ranges. 34300 Add ranges to memory optimized destination. 34301 343022009-01-09 Jakub Jelinek <jakub@redhat.com> 34303 34304 PR target/38686 34305 PR target/38708 34306 * config/i386/i386.c (override_options): Reject 34307 -mstringop-strategy=rep_8byte with -m32. 34308 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed 34309 to 1. Do count comparison against epilogue_size_needed at compile 34310 time even when count_exp was constant forced into register. For 34311 size_needed don't jump to epilogue, instead just avoid aligning 34312 and invoke the body algorithm. If need_zero_guard, add zero guard 34313 even if count is non-zero, but smaller than size_needed + number of 34314 bytes that could be stored for alignment. 34315 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed 34316 to 1. If need_zero_guard, add zero guard even if count is non-zero, 34317 but smaller than size_needed + number of bytes that could be stored 34318 for alignment. Compare size_needed with epilogue_size_needed instead 34319 of desired_align - align, don't adjust size_needed, pass 34320 epilogue_size_needed to the epilogue expanders. 34321 34322 PR c/35742 34323 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR. 34324 343252009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 34326 34327 * pa.c (last_address): Change to unsigned. 34328 (update_total_code_bytes): Change argument to unsigned. Don't 34329 check if insn addresses are set. 34330 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn 34331 addresses are not set. 34332 (pa_asm_output_mi_thunk): Handle wrap when updating last_address. 34333 343342009-01-09 Nick Clifton <nickc@redhat.com> 34335 34336 * config/sh/symbian.c: Replace uses of DECL_INLINE with 34337 DECL_DECLARED_INLINE_P. 34338 343392009-01-09 Jakub Jelinek <jakub@redhat.com> 34340 34341 PR middle-end/38347 34342 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of 34343 GET_MODE (op0) in operand_subword_force calls. 34344 34345 PR middle-end/38771 34346 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR, 34347 fold_convert arg0 operands to TREE_TYPE (op0) first. 34348 343492009-01-08 Vladimir Makarov <vmakarov@redhat.com> 34350 34351 * params.def (ira-max-conflict-table-size): Decrease default value 34352 to 1000. 34353 343542009-01-08 Jakub Jelinek <jakub@redhat.com> 34355 34356 PR tree-optimization/37031 34357 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy 34358 on parameter_set. 34359 (build_access_matrix): Reserve correct size for AM_MATRIX vector, 34360 allocate it using gc instead of heap, use VEC_quick_push instead of 34361 VEC_safe_push. 34362 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc 34363 instead of heap, use VEC_quick_push instead of VEC_safe_push. 34364 * tree-data-ref.h (struct access_matrix): Change matrix to gc 34365 allocated vector from heap allocated. 34366 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector. 34367 * tree-loop-linear.c (linear_transform_loops): Allocate nest 34368 vector only after perfect_loop_nest_depth call. 34369 343702009-01-08 Sebastian Pop <sebastian.pop@amd.com> 34371 Jan Sjodin <jan.sjodin@amd.com> 34372 34373 PR tree-optimization/38559 34374 * graphite.c (debug_value, copy_constraint, 34375 swap_constraint_variables, scale_constraint_variable, ): New. 34376 (get_lower_bound, get_upper_bound): Removed. 34377 (graphite_trans_bb_strip_mine): Clean up this code that works 34378 only for constant number of iterations. Fully copy upper and 34379 lower bound constraints, not only the constant part of them. 34380 * graphite.h (debug_value): Declared. 34381 343822009-01-08 Ira Rosen <irar@il.ibm.com> 34383 34384 PR tree-optimization/37194 34385 * tree-vect-transform.c (vect_estimate_min_profitable_iters): 34386 Don't add the cost of cost model guard in prologue to scalar 34387 outside cost in case of known number of iterations. 34388 343892009-01-07 Nathan Froyd <froydnj@codesourcery.com> 34390 Alan Modra <amodra@bigpond.net.au> 34391 34392 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for 34393 non-word-aligned REG+CONST addressing. 34394 343952009-01-07 Uros Bizjak <ubizjak@gmail.com> 34396 34397 PR target/38706 34398 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call 34399 free_after_compilation when outputting a thunk. 34400 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk. 34401 Do not call free_after_compilation here. 34402 344032009-01-07 Uros Bizjak <ubizjak@gmail.com> 34404 34405 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE. 34406 (ix86_valid_target_attribute_inner_p): Ditto. 34407 344082009-01-07 Jan Sjodin <jan.sjodin@amd.com> 34409 34410 PR tree-optimization/38492 34411 PR tree-optimization/38498 34412 * tree-check.c (operator_is_linear, scev_is_linear_expression): New. 34413 * tree-chrec.h (scev_is_linear_expression): Declared. 34414 * graphite.c (graphite_cannot_represent_loop_niter): New. 34415 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter. 34416 (graphite_loop_normal_form): Use gcc_assert. 34417 (scan_tree_for_params): Use CASE_CONVERT. 34418 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New. 34419 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes. 34420 Use gcc_assert. Discard scops that contain unhandled cases. 34421 (build_scop_conditions): Return a boolean status for unhandled cases. 34422 (strip_mine_profitable_p): Print the loop number, not its depth. 34423 (is_interchange_valid): Pass the depth of the loop nest, don't 34424 recompute it wrongly. 34425 (graphite_trans_bb_block): Same. 34426 (graphite_trans_bb_block): Print tentative of loop blocking. 34427 (graphite_trans_scop_block): Do not print that the loop has been 34428 blocked. 34429 (graphite_transform_loops): Do not handle scops that contain condition 34430 scalar phi nodes. 34431 344322009-01-07 H.J. Lu <hongjiu.lu@intel.com> 34433 34434 AVX Programming Reference (December, 2008) 34435 * config/i386/avxintrin.h (_mm256_stream_si256): New. 34436 (_mm256_stream_pd): Likewise. 34437 (_mm256_stream_ps): Likewise. 34438 34439 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256, 34440 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256. 34441 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI. 34442 (bdesc_special_args): Add __builtin_ia32_movntdq256, 34443 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256. 34444 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI. 34445 (ix86_expand_special_args_builtin): Likewise. 34446 34447 * config/i386/sse.md (AVXMODEDI): New. 34448 (avx_movnt<mode>): Likewise. 34449 (avx_movnt<mode>): Likewise. 34450 (<sse>_movnt<mode>): Remove AVX support. 34451 (sse2_movntv2di): Likewise. 34452 344532009-01-07 Richard Guenther <rguenther@suse.de> 34454 34455 PR middle-end/38751 34456 * fold-const.c (extract_muldiv): Remove obsolete comment. 34457 (fold_plusminus_mult_expr): Undo MINUS_EXPR 34458 to PLUS_EXPR canonicalization for the canonicalization. 34459 344602009-01-07 Gerald Pfeifer <gerald@pfeifer.com> 34461 34462 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit 34463 hosted cross-compilers generating less efficient code. 34464 344652009-01-06 Richard Sandiford <rdsandiford@googlemail.com> 34466 34467 * function.h (rtl_data): Add a dbr_scheduled_p field. 34468 * reorg.c (dbr_schedule): Set it. 34469 (gate_handle_delay_slots): Check it. 34470 * config/mips/mips.c (mips_base_delayed_branch): Delete. 34471 (mips_reorg): Check flag_delayed_branch instead of 34472 mips_base_delayed_branch. 34473 (mips_override_options): Don't set mips_base_delayed_branch 34474 or flag_delayed_branch. 34475 344762009-01-06 Richard Sandiford <rdsandiford@googlemail.com> 34477 34478 PR rtl-optimization/38426. 34479 * ira.c (ira): Set current_function_is_leaf earlier. 34480 344812009-01-06 Jakub Jelinek <jakub@redhat.com> 34482 34483 PR rtl-optimization/38722 34484 * combine.c (try_combine): Don't modify PATTERN (i3) and notes 34485 too early, only set a flag and modify after last possible 34486 undo_all point. 34487 344882009-01-06 Janis Johnson <janis187@us.ibm.com> 34489 34490 PR c/34252 34491 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN. 34492 * real.c (decimal_single_format): Correct values of emin and emax. 34493 (decimal_double_format): Ditto. 34494 (decimal_quad_format): Ditto. 34495 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust 34496 computation of DECnn_MIN and DECnn_MAX for corrected values of 34497 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of 34498 __DECnn_MIN__, and adjust its computation for the corrected value 34499 of emin. 34500 345012009-01-06 Jan Hubicka <jh@suse.cz> 34502 34503 PR target/38744 34504 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE. 34505 345062009-01-06 Gerald Pfeifer <gerald@pfeifer.com> 34507 34508 * doc/contrib.texi (Contributors): Slightly adjust the end note. 34509 Add Robert Clark to the list of testers. 34510 345112009-01-06 Jan Hubicka <jh@suse.cz> 34512 Kai Tietz <kai.tietz@onevision.com> 34513 34514 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers. 34515 * config/i386/i386.c (ix86_expand_call): Add clobbers. 34516 345172009-01-06 Jan Hubicka <jh@suse.cz> 34518 Kai Tietz <kai.tietz@onevision.com> 34519 34520 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used 34521 for w64 ABI. 34522 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs. 34523 (ix86_nsaved_regs): Count only general purpose regs. 34524 (ix86_nsaved_sseregs): New. 34525 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment 34526 to 16 for w64; compute padding and size of sse reg save area. 34527 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only 34528 general purpose regs. 34529 (ix86_emit_save_sse_regs_using_mov): New. 34530 (ix86_expand_prologue): Save SSE regs if needed. 34531 (ix86_emit_restore_regs_using_mov): Use only general purpose regs. 34532 (ix86_emit_restore_sse_regs_using_mov): New. 34533 (ix86_expand_epilogue): Save SSE regs if needed. 34534 345352009-01-06 Jan Hubicka <jh@suse.cz> 34536 Kai Tietz <kai.tietz@onevision.com> 34537 34538 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI 34539 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI 34540 functions when accumulate outgoing args is off. 34541 345422009-01-06 H.J. Lu <hongjiu.lu@intel.com> 34543 34544 PR bootstrap/38742 34545 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING 34546 before using pseudos_have_intersected_live_ranges_p. 34547 34548 * ira-int.h (ira_assert): Always define. 34549 345502009-01-06 H.J. Lu <hongjiu.lu@intel.com> 34551 34552 AVX Programming Reference (December, 2008) 34553 * config/i386/avxintrin.h (_mm_permute2_pd): Removed. 34554 (_mm256_permute2_pd): Likewise. 34555 (_mm_permute2_ps): Likewise. 34556 (_mm256_permute2_ps): Likewise. 34557 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise. 34558 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise. 34559 34560 * config/i386/i386.c (ix86_builtins): Remove 34561 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS, 34562 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256. 34563 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT, 34564 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT 34565 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT. 34566 (bdesc_args): Remove __builtin_ia32_vpermil2pd, 34567 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and 34568 __builtin_ia32_vpermil2ps256. 34569 (ix86_init_mmx_sse_builtins): Updated. 34570 (ix86_expand_args_builtin): Likewise. 34571 345722009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 34573 34574 * pa.c (output_call): Relocate non-jump insns in the delay slot of 34575 long absolute calls when generating PA 2.0 code. 34576 345772009-01-05 Vladimir Makarov <vmakarov@redhat.com> 34578 34579 PR rtl-optimization/38583 34580 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro. 34581 34582 * params.def (ira-max-conflict-table-size): New. 34583 34584 * doc/invoke.texi (ira-max-conflict-table-size): Decribe. 34585 34586 * ira.h (ira_conflicts_p): New external definition. 34587 34588 * ira-conflicts.c (build_conflict_bit_table): Do not build too big 34589 table. Report this. Return result of building. 34590 (ira_build_conflicts): Use ira_conflicts_p. Check result of 34591 building conflict table. 34592 34593 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num. 34594 (ira_color): Use ira_conflicts_p. 34595 34596 * global.c: Include ira.h. 34597 (pseudo_for_reload_consideration_p, build_insn_chain): Use 34598 ira_conflicts_p. 34599 34600 * Makefile.in (global.o): Add ira.h. 34601 34602 * ira-build.c (mark_all_loops_for_removal, 34603 propagate_some_info_from_allocno): New. 34604 (remove_unnecessary_allocnos): Call 34605 propagate_some_info_from_allocno. 34606 (remove_low_level_allocnos): New. 34607 (remove_unnecessary_regions): Add parameter. Call 34608 mark_all_loops_for_removal and remove_low_level_allocnos. Pass 34609 parameter to remove_unnecessary_regions. 34610 (ira_build): Remove all regions but root if the conflict table was 34611 not built. Update conflict hard regs for allocnos crossing calls. 34612 34613 * ira.c (ira_conflicts_p): New global. 34614 (ira): Define and use ira_conflicts_p. 34615 34616 * reload1.c (compute_use_by_pseudos, reload, count_pseudo, 34617 count_spilled_pseudo, find_reg, alter_reg, finish_spills, 34618 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p. 34619 346202009-01-06 Ben Elliston <bje@au.ibm.com> 34621 34622 * gengtype-lex.l (YY_NO_INPUT): Define. 34623 346242009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com> 34625 34626 PR c/34911 34627 * c-common.c (handle_vector_size_attribute): Also reject 34628 BOOLEAN_TYPE types. 34629 346302009-01-05 Sebastian Pop <sebastian.pop@amd.com> 34631 34632 PR tree-optimization/38492 34633 * graphite.c (rename_map_elt, debug_rename_elt, 34634 debug_rename_map_1, debug_rename_map, new_rename_map_elt, 34635 rename_map_elt_info, eq_rename_map_elts, 34636 get_new_name_from_old_name, bb_in_sese_p): Moved around. 34637 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use. 34638 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb. 34639 (sese_build_livein_liveouts): New. 34640 (new_sese, free_sese): New. 34641 (new_scop): Call new_sese. 34642 (free_scop): Call free_sese. 34643 (rename_variables_from_edge, rename_phis_end_scop): Removed. 34644 (register_old_new_names): Renamed register_old_and_new_names. 34645 (register_scop_liveout_renames, add_loop_exit_phis, 34646 insert_loop_close_phis, struct igp, 34647 default_liveout_before_guard, add_guard_exit_phis, 34648 insert_guard_phis, copy_renames): New. 34649 (translate_clast): Call insert_loop_close_phis and insert_guard_phis. 34650 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge. 34651 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts. 34652 (scop_adjust_phis_for_liveouts): New. 34653 (gloog): Call scop_adjust_phis_for_liveouts. 34654 34655 * graphite.h (struct sese): Documented. Added fields liveout, 34656 num_ver and livein. 34657 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New. 34658 (new_sese, free_sese, sese_build_livein_liveouts): Declared. 34659 (struct scop): Added field liveout_renames. 34660 (SCOP_LIVEOUT_RENAMES): New. 34661 346622009-01-05 Harsha Jagasia <harsha.jagasia@amd.com> 34663 34664 PR tree-optimization/38510 34665 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops. 34666 (translate_clast): Call recompute_all_dominators before 34667 graphite_verify. 34668 (gloog): Call recompute_all_dominators before graphite_verify. 34669 346702009-01-05 Harsha Jagasia <harsha.jagasia@amd.com> 34671 Jan Sjodin <jan.sjodin@amd.com> 34672 34673 PR tree-optimization/38500 34674 * graphite.c (create_sese_edges): Call fix_loop_structure after 34675 splitting blocks. 34676 346772009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com> 34678 34679 * config.gcc: Add m32r*-*-rtems*. 34680 * config/m32r/rtems.h: New file. 34681 346822009-01-05 Ben Elliston <bje@au.ibm.com> 34683 34684 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir. 34685 (.po.pox): Likewise. 34686 (po/gcc.pot): Likewise. 34687 346882009-01-04 David S. Miller <davem@davemloft.net> 34689 34690 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete. 34691 (STARTING_FRAME_OFFSET): Always set to zero. 34692 346932009-01-04 Richard Sandiford <rdsandiford@googlemail.com> 34694 34695 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary. 34696 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of 34697 fixed-point types, and vectors of the same. 34698 346992009-01-04 Richard Sandiford <rdsandiford@googlemail.com> 34700 34701 * config/mips/sync.md (*mb_barrier): Rename to... 34702 (*memory_barrier): ...this. 34703 347042009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com> 34705 34706 * doc/extend.texi (Function Attributes): Move @cindex after @item 34707 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible' 34708 and put in alphabetical order. Fix 'target' name and put in order. 34709 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix 34710 typos. 34711 347122009-01-04 Uros Bizjak <ubizjak@gmail.com> 34713 34714 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB. 34715 (memory_barrier): Expand as unspec instead of unspec_volatile. 34716 Remove mem:BLK from insn operands. Use Pmode scratch register. 34717 (*memory_barrier): Define as unspec instead of unspec_volatile. 34718 Use (match_dup 0) as input operand. 34719 34720 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR. 34721 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of 34722 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode 34723 scratch register. Remove operand 1. 34724 (*stbar): Define as unspec instead of unspec_volatile. 34725 Use (match_dup 0) as input operand, remove (const_int 8). 34726 (*membar): Define as unspec instead of unspec_volatile. 34727 Use (match_dup 0) as input operand, remove input operand 2. 34728 34729 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW. 34730 (memory_barrier): Expand as unspec instead of unspec_volatile. 34731 Remove mem:BLK from insn operands. Use Pmode scratch register. 34732 (*memory_barrier): Define as unspec instead of unspec_volatile. 34733 Use (match_dup 0) as input operand. 34734 34735 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern. 34736 Remove mem:BLK from insn operands. Use Pmode scratch register. 34737 Set volatile flag on operand 0. 34738 (*memory_barrier): New insn pattern. 34739 34740 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from 34741 insn operands. 34742 (*memory_barrier): Use (match_dup 0) as input operand. 34743 34744 * config/mips/sync.md (memory_barrier): Redefine as expander pattern. 34745 Remove mem:BLK from insn operands. Use Pmode scratch register. 34746 Set volatile flag on operand 0. 34747 (*mb_internal): New insn pattern. 34748 34749 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal. 34750 347512009-01-04 Steven Bosscher <steven@gcc.gnu.org> 34752 34753 PR middle-end/38586 34754 * function.c (struct temp_slot): Move to the section of the file 34755 that deals with temp slots. Remove field 'address'. 34756 (temp_slot_address_table): New hash table of address -> temp slot. 34757 (struct temp_slot_address_entry): New struct, items for the table. 34758 (temp_slot_address_compute_hash, temp_slot_address_hash, 34759 temp_slot_address_eq, insert_temp_slot_address): Support functions 34760 for the new table. 34761 (find_temp_slot_from_address): Rewrite to use the new hash table. 34762 (remove_unused_temp_slot_addresses): Remove addresses of temp 34763 slots that have been made available. 34764 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse, 34765 worker function for remove_unused_temp_slot_addresses. 34766 (assign_stack_temp_for_type): Don't clear the temp slot address list. 34767 Add the temp slot address to the address -> temp slot map. 34768 (update_temp_slot_address): Update via insert_temp_slot_address. 34769 (free_temp_slots): Call remove_unused_temp_slot_addresses. 34770 (pop_temp_slots): Likewise. 34771 (init_temp_slots): Allocate the address -> temp slot map, or empty 34772 the map if it is already allocated. 34773 (prepare_function_start): Initialize temp slot processing. 34774 347752009-01-04 Steven Bosscher <steven@gcc.gnu.org> 34776 34777 PR middle-end/38584 34778 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate: 34779 Calculate the size of all stack vars assuming no packing of stack 34780 vars will happen, replacing a quadratic algorithm with a linear one. 34781 347822009-01-03 Jakub Jelinek <jakub@redhat.com> 34783 34784 PR target/38707 34785 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn 34786 can't be used. 34787 347882009-01-03 Diego Novillo <dnovillo@google.com> 34789 34790 * doc/contrib.texi: Update contributions. 34791 347922009-01-03 Jakub Jelinek <jakub@redhat.com> 34793 34794 PR c++/38705 34795 * builtins.c (fold_builtin_memory_op): Give up if either operand 34796 is volatile. Set srctype or desttype to non-qualified version 34797 of the other type. 34798 34799 PR c/38700 34800 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs 34801 and FUNCTION_DECLs. 34802 348032009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com> 34804 34805 PR rtl-optimization/35805 34806 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr 34807 problem if fast dce is able to remove any instructions. 34808 * dce.c (dce_process_block): Fix dump message. 34809 348102009-01-02 Mark Mitchell <mark@codesourcery.com> 34811 34812 PR 33649 34813 * tree-ssa-pre.c (compute_antic): Correct loop bounds. 34814 348152009-01-02 Jakub Jelinek <jakub@redhat.com> 34816 34817 PR middle-end/38690 34818 * tree-flow.h (op_code_prio, op_prio): New prototypes. 34819 * tree-pretty-print.c (op_code_prio): New function. 34820 (op_prio): No longer static. Use op_code_prio. 34821 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs): 34822 Use op_prio and op_code_prio to determine if () should be 34823 printed around operand(s) or not. 34824 34825 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs, 34826 dump_gimple_call, dump_gimple_switch, dump_gimple_cond, 34827 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi, 34828 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use 34829 pp_character instead of pp_string for single letter printing. 34830 348312009-01-02 Richard Sandiford <rdsandiford@googlemail.com> 34832 34833 * doc/extend.texi: Fix '#pragma GCC option' typo. 34834 348352009-01-02 Richard Guenther <rguenther@suse.de> 34836 34837 * doc/install.texi (--enable-checking): Mention different 34838 default for stage1. 34839 (--enable-stage1-checking): Document. 34840 348412009-01-01 Andrew Pinski <pinskia@gmail.com> 34842 34843 PR middle-end/30142 34844 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR 34845 case to be an error. 34846 348472009-01-02 Ben Elliston <bje@au.ibm.com> 34848 34849 * config/fp-bit.h (pack_d): Constify argument. 34850 * config/fp-bit.c (makenan): Constify return type. Remove casts. 34851 (isnan): Constify argument. 34852 (isinf): Likewise. 34853 (iszero): Likewise. 34854 (pack_d): Likewise. 34855 (_fpadd_parts): Constify return type. 34856 (_fpmul_parts): Likewise. 34857 (_fpdiv_parts): Likewise. 34858 348592009-01-01 Jakub Jelinek <jakub@redhat.com> 34860 34861 PR c/36489 34862 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only 34863 warn about overwriting initializer with side-effects or 34864 -Woverride-init if !IMPLICIT. 34865 (output_init_element): Likewise. Pass IMPLICIT down to 34866 add_pending_init. 34867 (process_init_element): Add IMPLICIT argument. Pass it down 34868 to output_init_element. 34869 (push_init_element, pop_init_level, set_designator): Adjust 34870 process_init_element callers. 34871 (set_nonincremental_init, set_nonincremental_init_from_string): 34872 Adjust add_pending_init callers. 34873 (output_pending_init_elements): Adjust output_init_element callers. 34874 * c-tree.h (process_init_element): Adjust prototype. 34875 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust 34876 process_init_element callers. 34877 34878 34879Copyright (C) 2009 Free Software Foundation, Inc. 34880 34881Copying and distribution of this file, with or without modification, 34882are permitted in any medium without royalty provided the copyright 34883notice and this notice are preserved. 34884